[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
scratch/oclosure e07802ff10: Merge branch 'main' into oclosure
From: |
Stefan Monnier |
Subject: |
scratch/oclosure e07802ff10: Merge branch 'main' into oclosure |
Date: |
Fri, 28 Jan 2022 17:59:59 -0500 (EST) |
branch: scratch/oclosure
commit e07802ff10476647d3514de7678336a6d8519075
Merge: 9aa72cce6b 7531bf096e
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
Merge branch 'main' into oclosure
---
.gitignore | 1 +
CONTRIBUTE | 16 +
ChangeLog.3 | 654 +-
INSTALL | 27 +
Makefile.in | 5 +-
admin/MAINTAINERS | 71 +-
admin/emake | 2 +
admin/grammars/Makefile.in | 4 +-
admin/notes/unicode | 20 +-
admin/unidata/IdnaMappingTable.txt | 8921 ++++++++++++++++++++
admin/unidata/Makefile.in | 24 +-
admin/unidata/PropertyValueAliases.txt | 1615 ++++
admin/unidata/README | 16 +
admin/unidata/ScriptExtensions.txt | 628 ++
admin/unidata/Scripts.txt | 2991 +++++++
admin/unidata/blocks.awk | 6 +-
admin/unidata/confusables.txt | 9637 ++++++++++++++++++++++
admin/unidata/unidata-gen.el | 183 +-
configure.ac | 139 +-
doc/emacs/buffers.texi | 10 +-
doc/emacs/cmdargs.texi | 4 +
doc/emacs/frames.texi | 25 +-
doc/emacs/haiku.texi | 22 +-
doc/emacs/help.texi | 3 +
doc/emacs/maintaining.texi | 27 +-
doc/emacs/misc.texi | 26 +-
doc/emacs/mule.texi | 46 +-
doc/emacs/search.texi | 26 +-
doc/emacs/text.texi | 12 +-
doc/emacs/xresources.texi | 36 +-
doc/lispref/commands.texi | 39 +
doc/lispref/display.texi | 33 +-
doc/lispref/elisp.texi | 4 +
doc/lispref/frames.texi | 8 +-
doc/lispref/functions.texi | 16 +
doc/lispref/modes.texi | 3 +
doc/lispref/os.texi | 3 +
doc/lispref/processes.texi | 10 +-
doc/lispref/streams.texi | 44 +
doc/lispref/symbols.texi | 83 +-
doc/lispref/text.texi | 87 +
doc/lispref/windows.texi | 7 -
doc/misc/Makefile.in | 4 +
doc/misc/auth.texi | 17 +-
doc/misc/ert.texi | 5 +-
doc/misc/eshell.texi | 175 +-
doc/misc/gnus-faq.texi | 3 +-
doc/misc/gnus.texi | 20 +-
doc/misc/rcirc.texi | 5 +
doc/misc/tramp.texi | 439 +-
etc/AUTHORS | 60 +-
etc/NEWS | 230 +-
etc/PROBLEMS | 7 +
etc/e/eterm-color | Bin 1296 -> 1318 bytes
etc/e/eterm-color.ti | 5 +-
etc/e/eterm-direct | Bin 1375 -> 1397 bytes
leim/Makefile.in | 5 +-
lib-src/Makefile.in | 3 +
lib-src/be_resources.cc | 39 +-
lib-src/ebrowse.c | 10 +-
lib-src/seccomp-filter.c | 2 +
lisp/Makefile.in | 21 +-
lisp/abbrev.el | 32 +-
lisp/apropos.el | 34 +-
lisp/auth-source.el | 23 +-
lisp/battery.el | 2 +
lisp/cedet/ede/project-am.el | 3 +-
lisp/cedet/semantic/db-el.el | 4 +-
lisp/cedet/semantic/fw.el | 32 +-
lisp/cus-face.el | 144 +-
lisp/cus-start.el | 7 +-
lisp/dired-aux.el | 16 +-
lisp/dired.el | 2 +-
lisp/doc-view.el | 185 +-
lisp/ebuff-menu.el | 1 +
lisp/elide-head.el | 111 +-
lisp/emacs-lisp/autoload.el | 4 +-
lisp/emacs-lisp/benchmark.el | 6 +-
lisp/emacs-lisp/bindat.el | 1 +
lisp/emacs-lisp/byte-opt.el | 156 +-
lisp/emacs-lisp/byte-run.el | 85 +-
lisp/emacs-lisp/bytecomp.el | 708 +-
lisp/emacs-lisp/cconv.el | 39 +-
lisp/emacs-lisp/cl-generic.el | 6 +-
lisp/emacs-lisp/cl-macs.el | 12 +-
lisp/emacs-lisp/cl-preloaded.el | 2 +-
lisp/emacs-lisp/comp.el | 44 +-
lisp/emacs-lisp/copyright.el | 8 +-
lisp/emacs-lisp/easy-mmode.el | 11 +-
lisp/emacs-lisp/edebug.el | 6 +-
lisp/emacs-lisp/eieio-core.el | 5 +
lisp/emacs-lisp/eieio.el | 17 +-
lisp/emacs-lisp/ert.el | 52 +-
lisp/emacs-lisp/find-func.el | 12 +-
lisp/emacs-lisp/gv.el | 5 +-
lisp/emacs-lisp/inline.el | 2 +-
lisp/emacs-lisp/macroexp.el | 326 +-
lisp/emacs-lisp/multisession.el | 21 +-
lisp/emacs-lisp/package.el | 8 +-
lisp/emacs-lisp/pcase.el | 2 +
lisp/emacs-lisp/pp.el | 5 +-
lisp/{gnus/gnus-range.el => emacs-lisp/range.el} | 446 +-
lisp/emacs-lisp/shortdoc.el | 3 +
lisp/emacs-lisp/subr-x.el | 42 +
lisp/emacs-lisp/tabulated-list.el | 27 +-
lisp/erc/erc-autoaway.el | 2 +-
lisp/erc/erc-backend.el | 2 +-
lisp/erc/erc-button.el | 2 +-
lisp/erc/erc-capab.el | 4 +-
lisp/erc/erc-compat.el | 2 +-
lisp/erc/erc-dcc.el | 2 +-
lisp/erc/erc-desktop-notifications.el | 2 +-
lisp/erc/erc-ezbounce.el | 2 +-
lisp/erc/erc-fill.el | 2 +-
lisp/erc/erc-goodies.el | 2 +-
lisp/erc/erc-ibuffer.el | 2 +-
lisp/erc/erc-identd.el | 2 +-
lisp/erc/erc-imenu.el | 2 +-
lisp/erc/erc-join.el | 2 +-
lisp/erc/erc-lang.el | 2 +-
lisp/erc/erc-list.el | 2 +-
lisp/erc/erc-log.el | 2 +-
lisp/erc/erc-match.el | 2 +-
lisp/erc/erc-menu.el | 2 +-
lisp/erc/erc-netsplit.el | 2 +-
lisp/erc/erc-networks.el | 2 +-
lisp/erc/erc-notify.el | 2 +-
lisp/erc/erc-page.el | 2 +-
lisp/erc/erc-pcomplete.el | 2 +-
lisp/erc/erc-replace.el | 2 +-
lisp/erc/erc-ring.el | 2 +-
lisp/erc/erc-services.el | 17 +-
lisp/erc/erc-sound.el | 2 +-
lisp/erc/erc-speedbar.el | 2 +-
lisp/erc/erc-spelling.el | 2 +-
lisp/erc/erc-stamp.el | 2 +-
lisp/erc/erc-status-sidebar.el | 2 +-
lisp/erc/erc-track.el | 2 +-
lisp/erc/erc-truncate.el | 2 +-
lisp/erc/erc-xdcc.el | 2 +-
lisp/erc/erc.el | 37 +-
lisp/eshell/em-basic.el | 37 +-
lisp/eshell/em-extpipe.el | 190 +
lisp/eshell/em-script.el | 18 +-
lisp/eshell/em-tramp.el | 118 +-
lisp/eshell/esh-cmd.el | 63 +-
lisp/eshell/esh-module.el | 1 +
lisp/eshell/esh-opt.el | 109 +-
lisp/face-remap.el | 16 +-
lisp/faces.el | 122 +-
lisp/ffap.el | 11 +-
lisp/files.el | 163 +-
lisp/font-lock.el | 5 +-
lisp/frame.el | 80 +-
lisp/gnus/gnus-agent.el | 45 +-
lisp/gnus/gnus-art.el | 74 +-
lisp/gnus/gnus-cloud.el | 3 +-
lisp/gnus/gnus-draft.el | 2 +-
lisp/gnus/gnus-group.el | 52 +-
lisp/gnus/gnus-int.el | 2 +-
lisp/gnus/gnus-kill.el | 2 +-
lisp/gnus/gnus-range.el | 443 +-
lisp/gnus/gnus-registry.el | 102 +-
lisp/gnus/gnus-start.el | 14 +-
lisp/gnus/gnus-sum.el | 71 +-
lisp/gnus/mail-source.el | 5 +-
lisp/gnus/message.el | 19 +-
lisp/gnus/mm-view.el | 2 -
lisp/gnus/nnheader.el | 8 +-
lisp/gnus/nnimap.el | 37 +-
lisp/gnus/nnmaildir.el | 16 +-
lisp/gnus/nnmairix.el | 2 +-
lisp/gnus/nnmbox.el | 6 +-
lisp/gnus/nnml.el | 19 +-
lisp/gnus/nnnil.el | 2 +-
lisp/gnus/nnselect.el | 30 +-
lisp/gnus/nntp.el | 14 +-
lisp/gnus/nnvirtual.el | 2 +-
lisp/help-fns.el | 57 +-
lisp/help-mode.el | 9 +
lisp/help.el | 24 +-
lisp/hi-lock.el | 57 +-
lisp/image-dired.el | 7 +-
lisp/image.el | 5 +-
lisp/indent.el | 35 +-
lisp/info-look.el | 7 +
lisp/info.el | 2 +-
lisp/international/characters.el | 23 +-
lisp/international/emoji.el | 75 +-
lisp/international/fontset.el | 4 -
lisp/international/textsec-check.el | 78 +
lisp/international/textsec.el | 448 +
lisp/isearch.el | 21 +
lisp/jsonrpc.el | 6 +-
lisp/keymap.el | 75 +-
lisp/ldefs-boot.el | 342 +-
lisp/leim/quail/emoji.el | 2003 +++++
lisp/macros.el | 5 +-
lisp/mail/rmail.el | 7 +-
lisp/mail/smtpmail.el | 8 +-
lisp/man.el | 26 +
lisp/menu-bar.el | 34 +-
lisp/minibuffer.el | 30 +-
lisp/mouse.el | 6 +
lisp/net/dictionary.el | 2 +-
lisp/net/eudcb-bbdb.el | 2 +-
lisp/net/mailcap.el | 79 +-
lisp/net/rcirc.el | 11 +-
lisp/net/shr.el | 17 +-
lisp/net/sieve-manage.el | 6 +-
lisp/net/tramp-adb.el | 10 +-
lisp/net/tramp-archive.el | 5 +-
lisp/net/tramp-cache.el | 2 +-
lisp/net/tramp-compat.el | 10 +
lisp/net/tramp-crypt.el | 4 +-
lisp/net/tramp-sh.el | 498 +-
lisp/net/tramp-smb.el | 5 +-
lisp/net/tramp-sshfs.el | 38 +-
lisp/net/tramp-sudoedit.el | 3 +-
lisp/net/tramp.el | 131 +-
lisp/org/ob-gnuplot.el | 25 +-
lisp/org/org-agenda.el | 5 +-
lisp/org/org-version.el | 2 +-
lisp/org/org.el | 20 +-
lisp/org/ox-ascii.el | 6 +-
lisp/outline.el | 217 +-
lisp/paren.el | 4 +-
lisp/progmodes/bat-mode.el | 6 +-
lisp/progmodes/gud.el | 30 +-
lisp/progmodes/project.el | 4 +-
lisp/progmodes/python.el | 12 +-
lisp/progmodes/ruby-mode.el | 22 +-
lisp/progmodes/scheme.el | 53 +-
lisp/progmodes/sh-script.el | 4 +-
lisp/progmodes/xref.el | 45 +-
lisp/replace.el | 1 +
lisp/shell.el | 2 +-
lisp/simple.el | 25 +-
lisp/speedbar.el | 4 +-
lisp/startup.el | 99 +-
lisp/subr.el | 61 +-
lisp/term.el | 92 +-
lisp/term/haiku-win.el | 18 +-
lisp/term/pgtk-win.el | 6 +-
lisp/term/x-win.el | 46 +
lisp/textmodes/fill.el | 18 +-
lisp/textmodes/ispell.el | 7 +-
lisp/textmodes/reftex-global.el | 4 +-
lisp/textmodes/tex-mode.el | 4 +-
lisp/tooltip.el | 17 +-
lisp/url/url-queue.el | 17 +-
lisp/userlock.el | 2 +-
lisp/vc/add-log.el | 15 +
lisp/vc/diff-mode.el | 63 +-
lisp/vc/pcvs-info.el | 8 +-
lisp/vc/smerge-mode.el | 7 +-
lisp/vc/vc-git.el | 2 +-
lisp/vc/vc-hooks.el | 1 +
lisp/vc/vc.el | 48 +-
lisp/wdired.el | 1 +
lisp/window.el | 16 +-
lisp/xwidget.el | 1 +
src/.gdbinit | 12 +
src/Makefile.in | 7 +-
src/alloc.c | 78 +-
src/bidi.c | 8 +-
src/buffer.c | 15 +-
src/bytecode.c | 341 +-
src/ccl.c | 1 +
src/comp.c | 323 +-
src/composite.c | 3 +-
src/cygw32.c | 4 +-
src/data.c | 176 +-
src/dispextern.h | 9 +
src/dispnew.c | 4 +
src/emacs.c | 8 +-
src/emacsgtkfixed.c | 6 +-
src/eval.c | 202 +-
src/filelock.c | 62 +-
src/fns.c | 586 +-
src/font.c | 50 +-
src/frame.c | 15 +-
src/ftfont.c | 21 +
src/gtkutil.c | 428 +-
src/gtkutil.h | 4 +
src/haiku_draw_support.cc | 2 +-
src/haiku_font_support.cc | 20 +-
src/haiku_select.cc | 27 +
src/haiku_support.cc | 374 +-
src/haiku_support.h | 26 +-
src/haikufns.c | 515 +-
src/haikuimage.c | 2 +
src/haikumenu.c | 24 +-
src/haikuselect.c | 33 +
src/haikuselect.h | 9 +
src/haikuterm.c | 239 +-
src/haikuterm.h | 2 +
src/image.c | 20 +-
src/keyboard.c | 63 +-
src/keyboard.h | 2 -
src/lisp.h | 296 +-
src/lread.c | 206 +-
src/nsfont.m | 12 -
src/nsmenu.m | 49 +-
src/nsterm.m | 88 +-
src/pdumper.c | 8 +-
src/pgtkfns.c | 28 +-
src/pgtkterm.c | 73 +-
src/print.c | 482 +-
src/process.c | 5 +-
src/syntax.c | 5 +-
src/term.c | 8 +-
src/termhooks.h | 4 +-
src/verbose.mk.in | 31 +-
src/w16select.c | 2 +-
src/w32fns.c | 12 +-
src/w32font.c | 3 -
src/w32menu.c | 6 +-
src/w32term.c | 20 +-
src/window.c | 17 +-
src/xdisp.c | 74 +-
src/xfaces.c | 29 +-
src/xfns.c | 565 +-
src/xftfont.c | 8 +-
src/xgselect.c | 46 +
src/xmenu.c | 30 +-
src/xsettings.h | 5 +-
src/xterm.c | 1148 ++-
src/xterm.h | 84 +-
src/xwidget.c | 698 +-
src/xwidget.h | 6 +
test/Makefile.in | 8 +-
test/README | 4 +-
test/lisp/auth-source-tests.el | 30 +-
test/lisp/elide-head-tests.el | 88 +-
test/lisp/emacs-lisp/cl-generic-tests.el | 2 +-
test/lisp/emacs-lisp/copyright-tests.el | 42 +
test/lisp/emacs-lisp/derived-tests.el | 21 +
test/lisp/emacs-lisp/edebug-tests.el | 10 +
test/lisp/emacs-lisp/ert-tests.el | 3 +
test/lisp/emacs-lisp/range-tests.el | 65 +
test/lisp/emacs-lisp/tabulated-list-tests.el | 59 +-
test/lisp/eshell/em-extpipe-tests.el | 209 +
test/lisp/eshell/em-tramp-tests.el | 85 +
test/lisp/eshell/esh-opt-tests.el | 289 +-
test/lisp/eshell/eshell-tests-helpers.el | 91 +
test/lisp/eshell/eshell-tests.el | 64 +-
test/lisp/ffap-tests.el | 17 +
test/lisp/files-tests.el | 93 +-
test/lisp/gnus/mml-sec-tests.el | 3 +
test/lisp/help-fns-tests.el | 9 +
test/lisp/hi-lock-tests.el | 14 +-
test/lisp/international/textsec-tests.el | 202 +
test/lisp/net/mailcap-resources/mailcap | 9 +
test/lisp/net/mailcap-resources/test.test | 1 +
test/lisp/net/mailcap-tests.el | 70 +
test/lisp/net/puny-resources/IdnaTestV2.txt | 6344 ++++++++++++++
test/lisp/net/puny-tests.el | 6 +
test/lisp/net/tramp-tests.el | 133 +-
test/lisp/progmodes/ruby-mode-tests.el | 7 +
test/lisp/so-long-tests/spelling-tests.el | 16 +-
test/lisp/subr-tests.el | 21 +
test/lisp/textmodes/fill-tests.el | 23 +
test/lisp/vc/vc-tests.el | 31 +-
test/src/comp-resources/comp-test-45603.el | 5 +-
test/src/comp-resources/comp-test-funcs.el | 12 +-
test/src/fns-tests.el | 70 +
test/src/print-tests.el | 11 +
test/src/syntax-tests.el | 15 +
369 files changed, 46596 insertions(+), 5882 deletions(-)
diff --git a/.gitignore b/.gitignore
index 35ff949e93..16f449a446 100644
--- a/.gitignore
+++ b/.gitignore
@@ -221,6 +221,7 @@ lisp/international/emoji-zwj.el
lisp/international/emoji-labels.el
lisp/international/eucjp-ms.el
lisp/international/uni-*.el
+lisp/international/idna-mapping.el
lisp/language/pinyin.el
# Documentation.
diff --git a/CONTRIBUTE b/CONTRIBUTE
index 7c3421ed75..614afa27db 100644
--- a/CONTRIBUTE
+++ b/CONTRIBUTE
@@ -366,6 +366,22 @@ reasons. These should be marked by including something
like "Do not
merge to master" or anything that matches gitmerge-skip-regexp (see
admin/gitmerge.el) in the commit message.
+** Some packages in Emacs are maintained externally
+
+Sometimes a package that ships as part of GNU Emacs is maintained as a
+separate project, with its own upstream repository, its own maintainer
+group, its own development conventions, etc. The upstream project's
+code is periodically merged into Emacs (exactly when and how such
+merges happen depends on the package).
+
+So when you are making a contribution -- such as fixing a bug or
+proposing an enhancement -- to one of these externally maintained
+packages, you sometimes need to deal with that package at its upstream
+source.
+
+In the section "Externally maintained packages" in "admin/MAINTAINERS"
+we maintain a list of such packages.
+
** GNU ELPA
This repository does not contain the Emacs Lisp package archive
diff --git a/ChangeLog.3 b/ChangeLog.3
index 177321dc45..18b7b7c11a 100644
--- a/ChangeLog.3
+++ b/ChangeLog.3
@@ -1,3 +1,655 @@
+2022-01-05 Dmitry Gutov <dgutov@yandex.ru>
+
+ Fix vc-git with old Git over Tramp and cygwin-mount.el
+
+ * lisp/vc/vc-git.el (vc-git-use-literal-pathspecs): New variable.
+ (vc-git-command, vc-git--call): Use it to determine whether to set
+ GIT_LITERAL_PATHSPECS=1 (bug#51497).
+ (vc-git--literal-pathspec, vc-git--literal-pathspecs): Remove.
+ Update all callers. This reverts the previous solution for bug#39452.
+
+ * lisp/progmodes/project.el (project--vc-list-files):
+ Use the new variable.
+
+2022-01-05 Philipp Stephani <phst@google.com>
+
+ * lisp/emacs-lisp/checkdoc.el (bytecomp): Add missing require
+
+2022-01-02 Eli Zaretskii <eliz@gnu.org>
+
+ Avoid inflooping when 'tab-bar-format' includes embedded newlines
+
+ * src/xdisp.c (tab_bar_height, redisplay_tab_bar): Support
+ 'tab-bar-format' with embedded newlines. (Bug#52947)
+
+2022-01-02 Juri Linkov <juri@linkov.net>
+
+ * lisp/tab-line.el: Revert part of the fix in a6adfe21e4 (bug#52881)
+
+ (tab-line--get-tab-property, tab-line-auto-hscroll): Use
get-pos-property
+ instead of get-text-property that fails after
previous-single-property-change.
+
+2022-01-02 Eli Zaretskii <eliz@gnu.org>
+
+ Clarify %g and %G time format specs
+
+ * src/timefns.c (Fformat_time_string):
+ * doc/lispref/os.texi (Time Parsing): Clarify %g/%G. (Bug#52934)
+
+2022-01-02 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ (define-char-code-property): Workaround for bug#52945
+
+ * lisp/international/mule-cmds.el (define-char-code-property): Ignore
+ requests to re-setup lazy loading after the char-table is already
loaded.
+
+2022-01-01 Eli Zaretskii <eliz@gnu.org>
+
+ Update more copyright years
+
+ * etc/tutorials/TUTORIAL.he (זכויות שימוש):
+ * config.bat: Update Copyright years.
+
+2022-01-01 Michael Albinus <michael.albinus@gmx.de>
+
+ * lisp/net/tramp-sh.el: Adapt copyright year
+
+2022-01-01 Zhehao Lin <zh_lin1@outlook.com> (tiny change)
+
+ * src/xfaces.c (face_for_font): Make 'hash' be uintptr_t.
+
+2021-12-31 Eli Zaretskii <eliz@gnu.org>
+
+ Improve doc strings of fringe indicator variables
+
+ * src/buffer.c (syms_of_buffer): Fix doc strings of
+ 'indicate-empty-lines' and 'indicate-buffer-boundaries'.
+
+2021-12-31 Juri Linkov <juri@linkov.net>
+
+ * lisp/tab-line.el (tab-line--get-tab-property): New function
(bug#52881).
+
+ (tab-line-auto-hscroll): Use ‘tab-line--get-tab-property’ instead of
+ ‘get-pos-property 1’, and ‘get-text-property’ instead of
+ ‘get-pos-property’.
+ (tab-line-select-tab, tab-line-close-tab): Use
tab-line--get-tab-property.
+
+2021-12-30 Eli Zaretskii <eliz@gnu.org>
+
+ Avoid assertion violations with variable-weight fonts
+
+ * src/font.c (font_score, font_delete_unmatched): Don't assume
+ weight, slant, and width properties of the font must be fixnums:
+ some variable-weight fonts violate that assumption. Reported
+ by Sean Whitton <spwhitton@spwhitton.name>. Do not merge to
+ master. (Bug#52888)
+
+2021-12-30 Eli Zaretskii <eliz@gnu.org>
+
+ Minor improvement in user documentation of completion style
+
+ * doc/emacs/mini.texi (Completion Styles): Add reference to
+ "Completion Variables" in the ELisp manual. (Bug#52901)
+
+2021-12-30 Campbell Barton <ideasman42@gmail.com> (tiny change)
+
+ Fix bug where bookmark-jump used (point), not (point-at-bol)
+
+ This matches changes from e852822f3db469c985bf022651f184d6ff2c518a,
+ regression in 7fe88446c30279285e3171091189b3d1af697c05.
+ * lisp/bookmark.el (bookmark--jump-via): Look at overlays at BOL.
+ Otherwise the fringe bookmark indication is not deleted with the
+ bookmark.
+
+2021-12-29 Alan Mackenzie <acm@muc.de>
+
+ CC Mode: c-update-brace-stack: After struct foo *, do not expect a
brace.
+
+ This fixes bug #52796.
+
+ * lisp/progmodes/cc-engine.el (c-update-brace-stack): Handle a "*" like
a
+ semicolon, cancelling the expectation of a brace.
+
+ * lisp/progmodes/cc-langs.el (c-brace-stack-thing-key): Add a "*" into
the
+ sets of significant characters.
+
+2021-12-29 Eli Zaretskii <eliz@gnu.org>
+
+ Improve documentation of 'M-X' and related features
+
+ * doc/emacs/m-x.texi (M-x): Index 'M-X'.
+ * doc/lispref/commands.texi (Interactive Call, Command Modes):
+ Mention 'M-X' and 'execute-extended-command-for-buffer'.
+
+ * etc/NEWS: Clarify that the '(declare (completion ...' and
+ '(declare (modes ...' forms have no effect by default. Likewise
+ for '(interactive "..." MODE)' specs. (Bug#52839)
+
+2021-12-28 Sean Whitton <spwhitton@spwhitton.name>
+
+ Improve rectangle-mark-mode documentation regarding mark activation
+
+ * doc/emacs/killing.texi: Describe how rectangle-mark-mode works when
+ Transient Mark mode is off. Qualify discussion of
+ rectangle-exchange-point-and-mark to say that it cycles the four
+ corners only when the region is active.
+ * lisp/rect.el (rectangle-mark-mode): State that rectangle-mark-mode
+ does not activate the mark when Transient Mark mode is off. Reword
+ sentence about how long the mode lasts to account for when Transient
+ Mark mode is off. (Bug#42663)
+
+2021-12-27 Eli Zaretskii <eliz@gnu.org>
+
+ Fix typos in in 'reset-language-environment'
+
+ * lisp/international/mule-cmds.el (reset-language-environment):
+ Fix a typo in 'windows-nt'. (Bug#52816)
+
+2021-12-27 Óscar Fuentes <ofv@wanadoo.es>
+
+ eshell-complete-parse-arguments: don't use string-match on a list
+
+ When there is more than one candidate for completion, `val' is a list.
+
+ Fixes bug#52794.
+
+ * lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments): protect
+ use of string-match with stringp.
+
+2021-12-26 Kyle Meyer <kyle@kyleam.com>
+
+ Update to Org 9.5.2-3-geb9f34
+
+2021-12-26 Stefan Kangas <stefan@marxist.se>
+
+ Improve documentation of read-multiple-choice
+
+ * doc/lispref/commands.texi (Reading One Event): Document optional
+ third argument help-string of read-multiple-choice.
+
+2021-12-25 Eli Zaretskii <eliz@gnu.org>
+
+ Explain why we remove stuff from 'user-full-name'
+
+ * src/editfns.c (Fuser_full_name): Document why we chop everything
+ starting from the first comma. (Bug#52785)
+
+2021-12-24 Dmitry Gutov <dgutov@yandex.ru>
+
+ Fix the bug with duplicate entries in xref output
+
+ * lisp/progmodes/etags.el (xref-backend-definitions): Make sure to
+ save the changed intermediate value of the list (bug#52734).
+
+2021-12-24 Dmitry Gutov <dgutov@yandex.ru>
+
+ Improve Xref documentation
+
+ * lisp/progmodes/xref.el (xref-item): Add docstring for 'summary'.
+ Fix typo in the header Commentary.
+
+2021-12-23 Andreas Schwab <schwab@linux-m68k.org>
+
+ * lisp/net/shr.el (shr-expand-url): Also strip trailing
+ whitespace.
+
+2021-12-22 Lars Ingebrigtsen <larsi@gnus.org>
+
+ Revert field-related thingatpt changes
+
+ This reverts 7db376e560448e61485ba054def8c82b21f33d6a, which led to
+ severe performance regressions when being run in large buffers with no
+ fields (bug#52593)
+
+2021-12-21 Juri Linkov <juri@linkov.net>
+
+ * lisp/window.el (quit-restore-window): Select previously selected
window.
+
+ After deleting the dedicated window, such as a window with *Completions*
+ buffer, select the previously selected window, like most of other 'cond'
+ branches do in this function (bug#52491).
+
+2021-12-21 Robert Pluim <rpluim@gmail.com>
+
+ Revert "Remove Motif support"
+
+ This reverts commit db237850abc240e2c3e765e9cc7e15ee5681dcaf.
+
+2021-12-19 Martin Rudalics <rudalics@gmx.at>
+
+ Clarify description of two mouse dragging parameters (Bug#52537)
+
+ * doc/lispref/frames.texi (Child Frames): Clarify description of
+ 'top-visible' and 'bottom-visible' parameters (Bug#52537).
+
+2021-12-18 Kyle Meyer <kyle@kyleam.com>
+
+ Update to Org 9.5.1-31-ga18849
+
+2021-12-15 Martin Rudalics <rudalics@gmx.at>
+
+ Fix control buffer window height in 'ediff-setup-control-buffer'
(Bug#49277)
+
+ * lisp/vc/ediff-util.el (ediff-setup-control-buffer): Emulate
+ original 'shrink-window-if-larger-than-buffer' call by calling
+ 'fit-window-to-buffer' with an appropriate maximum height
+ argument (Bug#49277).
+
+2021-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ Fix crash when dumping charset_table with portable dumper (Bug#52461)
+
+ * src/charset.h:
+ * src/charset.c (charset_table_used): Now extern.
+ * src/pdumper.c (dump_charset): Don't dump code_space_mask for unused
+ slots of charset_table.
+
+2021-12-14 Philipp Stephani <phst@google.com>
+
+ Remove maintainer comment from Emacs 28 module snippet.
+
+ This is the same as 44c13eefe8d30841000a96d82f467fb8d222e365 on
+ master. We should also remove this comment on the release branch,
+ otherwise it ends up in the emacs-module.h shipped to users.
+
+ * src/module-env-28.h: Remove maintainer comment.
+
+2021-12-14 Stefan Kangas <stefan@marxist.se>
+
+ Set calc-make-windows-dedicated to nil by default
+
+ * lisp/calc/calc.el (calc-make-windows-dedicated):
+ Default to nil. (Bug#52016)
+
+2021-12-14 Stefan Kangas <stefan@marxist.se>
+
+ * make-dist: Don't run "make --question info". (Bug#52322)
+
+2021-12-13 Eli Zaretskii <eliz@gnu.org>
+
+ Fix regression in help-mode prompt
+
+ * lisp/help-macro.el (make-help-screen): Restore SPC and DEL in
+ prompt. Reported by Colin Baxter <m43cap@yandex.com>.
+
+2021-12-13 Kévin Le Gouguec <kevin.legouguec@gmail.com>
+
+ Make `M-x run-python' select the window again
+
+ Interactively, we want M-x run-python to focus the interpreter buffer.
+ The previous code failed in two ways:
+
+ - the call to 'display-buffer' was not reached if an interpreter
+ was already running,
+
+ - set-buffer is ineffectual if the interpreter's window is not
+ selected: once Emacs returns to the command loop, the current buffer
+ will revert back to what the selected window contains.
+
+ * lisp/progmodes/python.el (python-shell-make-comint): Handle the SHOW
+ argument regardless of whether an interpreter buffer exists, and use
+ pop-to-buffer to select the window.
+ (run-python): Delegate buffer management to
+ 'python-shell-make-comint'.
+
+ * test/lisp/progmodes/python-tests.el
+ (python-tests--run-python-selects-window): Rename from
+ 'python-tests--bug31398', and adjust assertions (bug#52380).
+
+2021-12-12 Juri Linkov <juri@linkov.net>
+
+ * lisp/tab-bar.el (tab-bar-switch-to-last-tab): Add 'abs' for
precautions.
+
+ https://lists.gnu.org/archive/html/emacs-devel/2021-11/msg01149.html
+
+2021-12-12 Eli Zaretskii <eliz@gnu.org>
+
+ * make-dist (manifest): Filter out msdos/autogen/* files.
+
+2021-12-12 Richard Stallman <rms@gnu.org>
+
+ Rewrite the "Quitting Windows" section of Emacs Lisp Reference
+
+ * doc/lispref/windows.texi (Quitting Windows): Rewrite for
+ clarity. (Bug#52328)
+
+2021-12-12 Po Lu <luangruo@yahoo.com>
+
+ Fix eshell for systems that do not have subprocesses
+
+ * lisp/eshell/esh-cmd.el (eshell-eval-command): Use
+ `eshell-processp' instead of `processp'.
+
+2021-12-11 Philipp Stephani <phst@google.com>
+
+ Avoid undefined behavior in 'send-process-region' (Bug#52369).
+
+ * src/process.c (send_process): Signal an error if the file descriptor
+ has already been closed.
+
+2021-12-11 Kyle Meyer <kyle@kyleam.com>
+
+ Update to Org 9.5.1-25-g9ca3bc
+
+2021-12-11 Po Lu <luangruo@yahoo.com>
+
+ Fix the DJGPP port
+
+ * config.bat:
+ * msdos/sed1v2.inp:
+ * msdos/sed2v2.inp:
+ * msdos/sed3v2.inp:
+ * msdos/sedlibmk.inp: Update for Emacs 28.
+ * msdos/langinfo.h: New file.
+
+ * lisp/loadup.el: Use correct path to temacs when dumping on
+ MS-DOS.
+ * src/callproc.c (environ) [MSDOS]: New declaration.
+ (child_setup, emacs_spawn): Update MS-DOS parts for Emacs 28.
+ * src/fileio.c (Fcopy_file): Don't use copy_file_range on
+ MS-DOS.
+ * src/msdos.c (initialize_msdos_display): Add
+ `defined_color_hook'.
+ (openat, fchmodat, futimens, utimensat): New functions.
+
+ * src/msdos.h (FRAME_X_DISPLAY): New macro.
+ * src/process.c: Make some more things conditional on
+ subprocess support.
+ (PIPECONN_P, PIPECONN1_P) [!subprocesses]: New placeholder
+ macros.
+ (Fnum_processors): Return 1 on MSDOS.
+ (open_channel_for_module): Avoid subprocess specific code
+ on MSDOS.
+
+2021-12-10 Lars Ingebrigtsen <larsi@gnus.org>
+
+ Revert "Make `M-x run-python' select the window again"
+
+ This reverts commit aa2872a12770282ede3548ed3fcab00c5a5b9f18.
+
+ This led to a test failure.
+
+2021-12-10 Kévin Le Gouguec <kevin.legouguec@gmail.com>
+
+ Make `M-x run-python' select the window again
+
+ * lisp/progmodes/python.el (python-shell-make-comint): Make `M-x
+ run-python' select the window again like in 27.2 (bug#52380).
+
+2021-12-10 Lars Ingebrigtsen <larsi@gnus.org>
+
+ Don't bug out on certain empty elements with ids
+
+ * lisp/net/shr.el (shr-descend): Fix empty-element #id targetting
+ (bug#52391).
+
+2021-12-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ emacsclient takes more care about XDG_RUNTIME_DIR
+
+ * lib-src/emacsclient.c (set_local_socket): Revert to the Emacs 27
+ behavior of not trying TMPDIR if XDG_RUNTIME_DIR is set.
+ This is one of the suggestions made by Jim Porter and
+ independently by Ulrich Mueller in Bug#51327.
+
+2021-12-09 Cameron Desautels <camdez@gmail.com>
+
+ Add missing K key documentation for Cangjie input methods
+
+ * lisp/international/titdic-cnv.el (tsang-quick-converter): Add the
+ missing K key in input method documentation. (Bug#52264)
+
+2021-12-09 Martin Rudalics <rudalics@gmx.at>
+
+ Fix manual entry of 'quit-restore-window' (Bug#52328)
+
+ * doc/lispref/windows.texi (Quitting Windows): Fix bug in
+ description of 'quit-restore-window' (Bug#52328).
+
+2021-12-09 Eli Zaretskii <eliz@gnu.org>
+
+ Clarify a comment in xdisp.c
+
+ * src/xdisp.c (compute_window_start_on_continuation_line): Clarify
+ a comment. (Bug#52378)
+
+2021-12-08 Óscar Fuentes <ofv@wanadoo.es>
+
+ Revert "Grep alias `all' shall not match parent directory"
+
+ This reverts commit 856cd948d1a5a016ad36721246a049d33451902f.
+
+ Emacs got better at quoting shell arguments and the original value
+ works correctly for vc-git-grep. At the same time, the value
+ introduced on that commit caused a regression on lgrep.
+
+ * lisp/progmodes/grep.el (grep-files-aliases): Use previous value for
+ `all'. Fixes bug#52367
+
+2021-12-08 Eli Zaretskii <eliz@gnu.org>
+
+ Fix mode-line display in Calendar mode
+
+ * lisp/help.el (substitute-command-keys): New optional argument
+ NO-FACE, to avoid putting the 'help-key-binding' face on the key
+ bindings.
+ * lisp/calendar/calendar.el (calendar-mode-line-entry): Call
+ 'substitute-command-keys' with the new optional argument non-nil.
+ (Bug#52366)
+
+ * doc/lispref/help.texi (Keys in Documentation): Document the new
+ optional argument of 'substitute-command-keys'.
+
+ * etc/NEWS: Announce the addition of a new argument to
+ 'substitute-command-keys'.
+
+2021-12-08 Lele Gaifax <lele@metapensiero.it>
+
+ * etc/tutorials/TUTORIAL.it (CONCLUSIONI): Reword paragraph.
+
+ Don't merge to master.
+
+2021-12-08 Michael Albinus <michael.albinus@gmx.de>
+
+ Backport: Make a more robust check in Tramp using scripts
+
+ * lisp/net/tramp-sh.el (tramp-find-inline-encoding):
+ Check, whether scripts in `tramp-remote-coding-commands' are
+ expandable.
+
+ (cherry picked from commit 1d0a60113fd155c77ef5ea4ea44fcba3504adcbf)
+
+2021-12-07 Robert Pluim <rpluim@gmail.com>
+
+ Document native-comp-async-report-warning-errors more
+
+ The docstring has a description of how fix problems in lisp code
+ detected by native compilation, but not the Emacs Lisp manual, so
+ document it there as well.
+
+ * doc/lispref/compile.texi (Native-Compilation Functions): Refer to
+ 'native-comp-async-report-warning-errors'
+ (Native-Compilation Variables): Explain potential cause of warnings
+ from native compilation.
+
+2021-12-07 Stefan Kangas <stefan@marxist.se>
+
+ Doc fix; Epiphany has been renamed to GNOME Web
+
+ * lisp/net/browse-url.el: Doc fix; Epiphany is called GNOME Web
+ since GNOME 3.4, released in 2012.
+ Ref: https://help.gnome.org/misc/release-notes/3.4/
+
+2021-12-07 Eli Zaretskii <eliz@gnu.org>
+
+ * lisp/dired-aux.el (dired-check-process): Doc fix. (Bug#52337)
+
+2021-12-07 Stefan Kangas <stefan@marxist.se>
+
+ Remove dead link from newsticker
+
+ * lisp/net/newst-backend.el (newsticker--parse-rss-0.91):
+ * lisp/net/newsticker.el: Remove dead link.
+
+2021-12-06 Juri Linkov <juri@linkov.net>
+
+ Select the right buffer for event in context-menu functions (bug#9923)
+
+ * lisp/mouse.el (context-menu-region):
+ * lisp/progmodes/prog-mode.el (prog-context-menu):
+ Switch to the buffer displayed by the window of the event
+ before using syntax-ppss, char-after.
+
+2021-12-06 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ lisp/minibuffer.el: Fix for bug#52169 regression
+
+ * lisp/minibuffer.el (completion-table-subvert): Make sure we return
+ a boundary that's not outside of the limit of the string.
+
+2021-12-05 Christer Enfors <christer.enfors@gmail.com>
+
+ Fix typos and improve consistency in ERC manual
+
+ * doc/misc/erc.texi (Sample Session, Special Features, History): Fix
+ typos and improve consistency. (Bug52318)
+
+2021-12-05 Glenn Morris <rgm@gnu.org>
+
+ * test/Makefile.in (check-declare): Add missing --batch.
+
+2021-12-05 Eli Zaretskii <eliz@gnu.org>
+
+ Document the subtleties of the 'cursor' text property
+
+ * doc/lispref/text.texi (Special Properties): Update the
+ documentation of the 'cursor' property per bug#8627.
+
+2021-12-05 Kyle Meyer <kyle@kyleam.com>
+
+ Update to Org 9.5.1-15-gdb4805
+
+2021-12-04 Stefan Kangas <stefan@marxist.se>
+
+ * lisp/emacs-lisp/edebug.el (edebug-eval-defun): Minor doc fix.
+
+2021-12-04 Eli Zaretskii <eliz@gnu.org>
+
+ Fix the enumeration values returned by 'try_scrolling'
+
+ * src/xdisp.c (try_scrolling): Make the enum values match the
+ commentary. Reported by Po Lu <luangruo@yahoo.com>.
+
+2021-12-04 Stefan Kangas <stefan@marxist.se>
+
+ * src/dosfns.c (Fint86): Doc fix; don't use obsolete names.
+
+2021-12-03 Stefan Kangas <stefan@marxist.se>
+
+ * doc/misc/erc.texi (Keystroke Summary): Fix doc for TAB.
+
+2021-12-03 Stefan Kangas <stefan@marxist.se>
+
+ Remove reference to variable obsolete since 24.1
+
+ * doc/emacs/custom.texi (Minibuffer Maps, Minibuffer Maps): Remove
+ reference to variable 'minibuffer-local-filename-must-match-map',
+ obsolete since 24.1.
+
+2021-12-03 Stefan Kangas <stefan@marxist.se>
+
+ * doc/misc/efaq.texi (New in Emacs 28): New node.
+
+2021-12-03 Michael Albinus <michael.albinus@gmx.de>
+
+ Add Tramp version integrated in Emacs 28.1
+
+ * lisp/net/trampver.el (customize-package-emacs-version-alist):
+ Add Tramp version integrated in Emacs 28.1.
+
+2021-12-03 Michael Albinus <michael.albinus@gmx.de>
+
+ Update Tramp version (don't merge with master)
+
+ * doc/misc/trampver.texi:
+ * lisp/net/trampver.el: Change version to "2.5.2.28.1".
+
+2021-12-03 Philipp Stephani <phst@google.com>
+
+ Unbreak build after 9c222b9c1a7f91497a37567b4d7de3a511fff069.
+
+ * src/pdumper.c (dump_subr): Fix Lisp_Subr hash value.
+
+2021-12-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ Port to C compilers that lack size-0 arrays
+
+ The C standard does not allow size-zero arrays, so redo struct
+ Lisp_Subr to not use size-zero arrays when native compilation is
+ not being used. Formerly, the code was using size-zero arrays (a
+ GNU C extension) to avoid using memory unnecessarily when
+ HAVE_NATIVE_COMP is not defined. Replace this hack with the
+ more-traditional hack of putting the relevant members inside
+ ‘#ifdef HAVE_NATIVE_COMP’.
+ * src/alloc.c (cleanup_vector, mark_object):
+ * src/comp.c (make_subr):
+ * src/data.c (Fsubr_native_lambda_list, Fsubr_native_comp_unit):
+ * src/eval.c (init_eval_once, funcall_lambda):
+ * src/lisp.h (SUBR_NATIVE_COMPILEDP, SUBR_NATIVE_COMPILED_DYNP)
+ (SUBR_TYPE):
+ * src/lread.c (Fload):
+ Conditionally compile with ‘#ifdef HAVE_NATIVE_COMP’ instead of
+ with ‘if (NATIVE_COMP_FLAG)’. Redo members like native_comp_u[0]
+ to be plain native_comp_u. Put all uses of these members inside
+ ‘#ifdef HAVE_NATIVE_COMP’.
+ * src/lisp.h (struct Lisp_Subr): Members native_comp_u,
+ native_c_name, lambda_list, type are now all ifdeffed out if
+ HAVE_NATIVE_COMP is not defined, instead of being size-zero
+ arrays. All uses changed.
+ * src/pdumper.c (dump_subr, dump_cold_native_subr)
+ (dump_do_dump_relocation):
+ * src/comp.h (NATIVE_COMP_FLAG): Remove; no longer needed.
+
+2021-12-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ Port emacsclient to Solaris 10
+
+ Without this patch, the build fails on Solaris 10 with the diagnostic
+ “Undefined symbol acl_trivial first referenced in file
+ ../lib/libgnu.a(file-has-acl.o)”.
+ * lib-src/Makefile.in (LIB_HAS_ACL): New macro.
+ (emacsclient${EXEEXT}): Link with $(LIB_HAS_ACL).
+
+2021-12-03 Karl Fogel <kfogel@red-bean.com>
+
+ * CONTRIBUTE: Improve commit message instructions
+
+2021-12-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ Work around IBM XL C compiler bug
+
+ * src/fileio.c (Fcopy_file): Work around a compiler bug in IBM XL
+ C for AIX, V12.1 (5765-J02, 5725-C72). Without this patch, the
+ compiler incorrectly complains “Initialization between types "int"
+ and "struct timespec" is not allowed” and “Initialization between
+ types "long" and "struct timespec" is not allowed”.
+
+2021-12-03 Stefan Kangas <stefan@marxist.se>
+
+ * admin/make-tarball.txt: Various clarifications.
+
+2021-12-02 Stefan Kangas <stefan@marxist.se>
+
+ * admin/diff-tar-files: Don't assume .tar.gz.
+
+2021-12-02 Juri Linkov <juri@linkov.net>
+
+ * lisp/tab-bar.el (tab-bar-close-other-tabs): Fix regression.
+
+ * test/lisp/tab-bar-tests.el: New file.
+ (tab-bar-tests-close-other-tabs-with-arg): Test for regression
+ that closed the selected tab after selecting it.
+
2021-12-01 Juri Linkov <juri@linkov.net>
* lisp/repeat.el: Use same logic for repeat-check-key and
repeat-exit-timeout.
@@ -233413,7 +234065,7 @@
This file records repository revisions from
commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to
-commit 334ff0232e07dad2ff5595b7f85c0f6f5efcb11c (inclusive).
+commit e7aa3ece52d26cc7e4d3f3990aff56127389779f (inclusive).
See ChangeLog.2 for earlier changes.
;; Local Variables:
diff --git a/INSTALL b/INSTALL
index 02d5a09d63..7cb7e0526a 100644
--- a/INSTALL
+++ b/INSTALL
@@ -226,6 +226,33 @@ e.g. 'emacs25'). On Red Hat-based systems, the
corresponding command is
On FreeBSD, the command is 'pkg install -y `pkg rquery %dn emacs-devel`'.
+* Alternative window systems
+
+If you want to use Emacs on one of the alternative window systems
+available on GNU/Linux and some Unix systems, such as Wayland or
+Broadway, you can build the PGTK ("Pure GTK") port of Emacs, which
+utilizes the GTK+ toolkit to support those window systems. To this
+end, invoke the configure script with the '--with-pgtk' option, like
+this:
+
+ ./configure --with-pgtk
+
+This build is only supported with GTK+ version 3, and it is an error
+to specify any other X-specific configuration option when PGTK is
+enabled.
+
+With the PGTK build, you will be able to switch between running Emacs
+on X, Wayland and Broadway using the 'GDK_BACKEND' environment
+variable. GTK+ should automatically detect and use the correct value
+for your system, but you can also specify it manually. For example,
+to force GTK+ to run under Broadway, start Emacs like this:
+
+ GDK_BACKEND=broadway emacs ...
+
+(where '...' denotes any further options you may want to pass to Emacs).
+
+The GNUstep build also supports the Wayland window system. If that is
+what you want, see nextstep/INSTALL.
DETAILED BUILDING AND INSTALLATION:
diff --git a/Makefile.in b/Makefile.in
index b72127dde6..877802ec11 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -319,6 +319,9 @@ GLIB_COMPILE_SCHEMAS = glib-compile-schemas
# Program name transformation.
TRANSFORM = @program_transform_name@
+# Prevent any settings in the user environment causing problems.
+unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH
+
# What emacs should be called when installed.
EMACS_NAME = `echo emacs | sed '$(TRANSFORM)'`
EMACS = ${EMACS_NAME}${EXEEXT}
@@ -691,8 +694,6 @@ install-etcdoc: src install-arch-indep
printf 'Copying %s to %s ...\n' "etc/$$docfile" \
"$(DESTDIR)${etcdocdir}"; \
${INSTALL_DATA} etc/$${docfile}
"$(DESTDIR)${etcdocdir}/$${docfile}"; \
- $(set_installuser); \
- chown $${installuser} "$(DESTDIR)${etcdocdir}/$${docfile}" || true
; \
else true; fi
## FIXME:
diff --git a/admin/MAINTAINERS b/admin/MAINTAINERS
index 33aeb52865..092978f6d2 100644
--- a/admin/MAINTAINERS
+++ b/admin/MAINTAINERS
@@ -58,10 +58,7 @@ Artur Malabarba
Michael Albinus
Tramp
- lisp/net/tramp*.el
lisp/url/url-tramp.el
- doc/misc/tramp*.texi
- test/lisp/net/tramp*-tests.el
test/lisp/url/url-tramp-tests.el
D-Bus
@@ -141,6 +138,27 @@ Andrea Corallo
Stefan Kangas
admin/automerge
+Po Lu
+ The Haiku port:
+ src/haikuterm.c
+ src/haikufns.c
+ src/haikuimage.c
+ src/haikuselect.c
+ src/haiku_io.c
+ src/haiku.c
+ src/haiku_select.cc
+ src/haiku_support.cc
+ src/haiku_font_support.cc
+ src/haiku_draw_support.cc
+ src/haikugui.h
+ src/haikuterm.h
+ src/haikuselect.h
+ src/haiku_support.h
+ lisp/term/haiku-win.el
+ doc/emacs/haiku.texi
+
+ Haiku battery support in lisp/battery.el
+
==============================================================================
2. Areas that someone is willing to maintain, although he would not
necessarily mind if someone else was the official maintainer.
@@ -270,6 +288,53 @@ Amin Bandali
lisp/eshell/*
doc/misc/eshell.texi
+Po Lu
+ The X port
+ src/xterm.c
+ src/xfns.c
+ X11 and GTK xwidget support in src/xwidget.c
+ Precision pixel scrolling in lisp/pixel-scroll.el
+
+==============================================================================
+3. Externally maintained packages.
+==============================================================================
+
+Tramp
+ Maintainer: Michael Albinus
+ Repository: git://git.savannah.gnu.org/tramp.git
+ Mailing List: tramp-devel@gnu.org
+ Bug Reports: M-x tramp-bug
+ Notes: For backward compatibility requirements, see
+ lisp/net/trampver.el.
+
+ lisp/net/tramp*.el
+ doc/misc/tramp*.texi
+ test/lisp/net/tramp*-tests.el
+
+Modus themes
+ Maintainer: Protesilaos Stavrou
+ Repository and issue tracker:
https://gitlab.com/protesilaos/modus-themes
+
+ doc/misc/modus-themes.org
+ etc/themes/modus*.el
+
+Org Mode
+ Home Page: https://orgmode.org/
+ Maintainer: Org Mode developers
+ Repository: git://git.sv.gnu.org/emacs/org-mode.git
+ Mailing list: emacs-orgmode@gnu.org
+ Bug Reports: M-x org-submit-bug-report
+ Notes: Org Mode is maintained as a separate project that is
+ periodically merged into Emacs. To view or participate in
+ Org Mode development, please go to https://orgmode.org/ and
+ follow the instructions there.
+
+ lisp/org/*.el
+ etc/org/*
+ etc/refcards/orgcard.tex
+ doc/misc/org.org
+ doc/misc/org-setup.org
+
;;; Local Variables:
;;; coding: utf-8
diff --git a/admin/emake b/admin/emake
index 2ff553289d..6c778c85d4 100755
--- a/admin/emake
+++ b/admin/emake
@@ -79,6 +79,8 @@ The GNU allocators don't work|\
^git config |\
^'\.git/|\
^\^\(\(|\
+^ANCIENT=yes make|\
+^touch -t|\
^'build-aux/git-hooks\
" | \
while read
diff --git a/admin/grammars/Makefile.in b/admin/grammars/Makefile.in
index 83ac2ef46e..6f69943089 100644
--- a/admin/grammars/Makefile.in
+++ b/admin/grammars/Makefile.in
@@ -31,10 +31,10 @@ top_builddir = @top_builddir@
-include ${top_builddir}/src/verbose.mk
# Prevent any settings in the user environment causing problems.
-unexport EMACSDATA EMACSDOC EMACSPATH
+unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH
EMACS = ${top_builddir}/src/emacs
-emacs = EMACSLOADPATH= "${EMACS}" -batch --no-site-file --no-site-lisp --eval
'(setq load-prefer-newer t)'
+emacs = "${EMACS}" -batch --no-site-file --no-site-lisp --eval '(setq
load-prefer-newer t)'
make_bovine = ${emacs} -l semantic/bovine/grammar -f bovine-batch-make-parser
make_wisent = ${emacs} -l semantic/wisent/grammar -f wisent-batch-make-parser
diff --git a/admin/notes/unicode b/admin/notes/unicode
index 2c4b5e0106..4166199500 100644
--- a/admin/notes/unicode
+++ b/admin/notes/unicode
@@ -15,20 +15,26 @@ Emacs uses the following files from the Unicode Character
Database
. BidiMirroring.txt
. IVD_Sequences.txt
. NormalizationTest.txt
+ . PropertyValueAliases.txt
+ . ScriptExtensions.txt
+ . Scripts.txt
. SpecialCasing.txt
+ . confusables.txt
. emoji-data.txt
. emoji-zwj-sequences.txt
. emoji-sequences.txt
. BidiCharacterTest.txt
Emacs also uses the file emoji-test.txt which should be imported from
-the Unicode's Public/emoji/ directory.
-
-First, the first 10 files and emoji-test.txt need to be copied into
-admin/unidata/, and the file https://www.unicode.org/copyright.html
-should be copied over copyright.html in admin/unidata (some of them
-might need trailing whitespace removed before they can be committed to
-the Emacs repository).
+the Unicode's Public/emoji/ directory, and IdnaMappingTable.txt from
+the Public/idna/ directory.
+
+First, the first 14 files, emoji-test.txt and IdnaMappingTable.txt
+need to be copied into admin/unidata/, and the file
+https://www.unicode.org/copyright.html should be copied over
+copyright.html in admin/unidata (some of them might need trailing
+whitespace removed before they can be committed to the Emacs
+repository).
Then Emacs should be rebuilt for them to take effect. Rebuilding
Emacs updates several derived files elsewhere in the Emacs source
diff --git a/admin/unidata/IdnaMappingTable.txt
b/admin/unidata/IdnaMappingTable.txt
new file mode 100644
index 0000000000..1b862827ef
--- /dev/null
+++ b/admin/unidata/IdnaMappingTable.txt
@@ -0,0 +1,8921 @@
+# IdnaMappingTable.txt
+# Date: 2021-07-10, 00:49:51 GMT
+# © 2021 Unicode®, Inc.
+# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in
the U.S. and other countries.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+#
+# Unicode IDNA Compatible Preprocessing for UTS #46
+# Version: 14.0.0
+#
+# For documentation and usage, see http://www.unicode.org/reports/tr46
+#
+0000..002C ; disallowed_STD3_valid # 1.1
<control-0000>..COMMA
+002D..002E ; valid # 1.1
HYPHEN-MINUS..FULL STOP
+002F ; disallowed_STD3_valid # 1.1 SOLIDUS
+0030..0039 ; valid # 1.1 DIGIT
ZERO..DIGIT NINE
+003A..0040 ; disallowed_STD3_valid # 1.1
COLON..COMMERCIAL AT
+0041 ; mapped ; 0061 # 1.1 LATIN CAPITAL
LETTER A
+0042 ; mapped ; 0062 # 1.1 LATIN CAPITAL
LETTER B
+0043 ; mapped ; 0063 # 1.1 LATIN CAPITAL
LETTER C
+0044 ; mapped ; 0064 # 1.1 LATIN CAPITAL
LETTER D
+0045 ; mapped ; 0065 # 1.1 LATIN CAPITAL
LETTER E
+0046 ; mapped ; 0066 # 1.1 LATIN CAPITAL
LETTER F
+0047 ; mapped ; 0067 # 1.1 LATIN CAPITAL
LETTER G
+0048 ; mapped ; 0068 # 1.1 LATIN CAPITAL
LETTER H
+0049 ; mapped ; 0069 # 1.1 LATIN CAPITAL
LETTER I
+004A ; mapped ; 006A # 1.1 LATIN CAPITAL
LETTER J
+004B ; mapped ; 006B # 1.1 LATIN CAPITAL
LETTER K
+004C ; mapped ; 006C # 1.1 LATIN CAPITAL
LETTER L
+004D ; mapped ; 006D # 1.1 LATIN CAPITAL
LETTER M
+004E ; mapped ; 006E # 1.1 LATIN CAPITAL
LETTER N
+004F ; mapped ; 006F # 1.1 LATIN CAPITAL
LETTER O
+0050 ; mapped ; 0070 # 1.1 LATIN CAPITAL
LETTER P
+0051 ; mapped ; 0071 # 1.1 LATIN CAPITAL
LETTER Q
+0052 ; mapped ; 0072 # 1.1 LATIN CAPITAL
LETTER R
+0053 ; mapped ; 0073 # 1.1 LATIN CAPITAL
LETTER S
+0054 ; mapped ; 0074 # 1.1 LATIN CAPITAL
LETTER T
+0055 ; mapped ; 0075 # 1.1 LATIN CAPITAL
LETTER U
+0056 ; mapped ; 0076 # 1.1 LATIN CAPITAL
LETTER V
+0057 ; mapped ; 0077 # 1.1 LATIN CAPITAL
LETTER W
+0058 ; mapped ; 0078 # 1.1 LATIN CAPITAL
LETTER X
+0059 ; mapped ; 0079 # 1.1 LATIN CAPITAL
LETTER Y
+005A ; mapped ; 007A # 1.1 LATIN CAPITAL
LETTER Z
+005B..0060 ; disallowed_STD3_valid # 1.1 LEFT SQUARE
BRACKET..GRAVE ACCENT
+0061..007A ; valid # 1.1 LATIN SMALL
LETTER A..LATIN SMALL LETTER Z
+007B..007F ; disallowed_STD3_valid # 1.1 LEFT CURLY
BRACKET..<control-007F>
+0080..009F ; disallowed # 1.1
<control-0080>..<control-009F>
+00A0 ; disallowed_STD3_mapped ; 0020 # 1.1 NO-BREAK SPACE
+00A1..00A7 ; valid ; ; NV8 # 1.1 INVERTED
EXCLAMATION MARK..SECTION SIGN
+00A8 ; disallowed_STD3_mapped ; 0020 0308 # 1.1 DIAERESIS
+00A9 ; valid ; ; NV8 # 1.1 COPYRIGHT SIGN
+00AA ; mapped ; 0061 # 1.1 FEMININE ORDINAL
INDICATOR
+00AB..00AC ; valid ; ; NV8 # 1.1 LEFT-POINTING
DOUBLE ANGLE QUOTATION MARK..NOT SIGN
+00AD ; ignored # 1.1 SOFT HYPHEN
+00AE ; valid ; ; NV8 # 1.1 REGISTERED SIGN
+00AF ; disallowed_STD3_mapped ; 0020 0304 # 1.1 MACRON
+00B0..00B1 ; valid ; ; NV8 # 1.1 DEGREE
SIGN..PLUS-MINUS SIGN
+00B2 ; mapped ; 0032 # 1.1 SUPERSCRIPT TWO
+00B3 ; mapped ; 0033 # 1.1 SUPERSCRIPT THREE
+00B4 ; disallowed_STD3_mapped ; 0020 0301 # 1.1 ACUTE ACCENT
+00B5 ; mapped ; 03BC # 1.1 MICRO SIGN
+00B6 ; valid ; ; NV8 # 1.1 PILCROW SIGN
+00B7 ; valid # 1.1 MIDDLE DOT
+00B8 ; disallowed_STD3_mapped ; 0020 0327 # 1.1 CEDILLA
+00B9 ; mapped ; 0031 # 1.1 SUPERSCRIPT ONE
+00BA ; mapped ; 006F # 1.1 MASCULINE
ORDINAL INDICATOR
+00BB ; valid ; ; NV8 # 1.1 RIGHT-POINTING
DOUBLE ANGLE QUOTATION MARK
+00BC ; mapped ; 0031 2044 0034 #1.1 VULGAR FRACTION
ONE QUARTER
+00BD ; mapped ; 0031 2044 0032 #1.1 VULGAR FRACTION
ONE HALF
+00BE ; mapped ; 0033 2044 0034 #1.1 VULGAR FRACTION
THREE QUARTERS
+00BF ; valid ; ; NV8 # 1.1 INVERTED
QUESTION MARK
+00C0 ; mapped ; 00E0 # 1.1 LATIN CAPITAL
LETTER A WITH GRAVE
+00C1 ; mapped ; 00E1 # 1.1 LATIN CAPITAL
LETTER A WITH ACUTE
+00C2 ; mapped ; 00E2 # 1.1 LATIN CAPITAL
LETTER A WITH CIRCUMFLEX
+00C3 ; mapped ; 00E3 # 1.1 LATIN CAPITAL
LETTER A WITH TILDE
+00C4 ; mapped ; 00E4 # 1.1 LATIN CAPITAL
LETTER A WITH DIAERESIS
+00C5 ; mapped ; 00E5 # 1.1 LATIN CAPITAL
LETTER A WITH RING ABOVE
+00C6 ; mapped ; 00E6 # 1.1 LATIN CAPITAL
LETTER AE
+00C7 ; mapped ; 00E7 # 1.1 LATIN CAPITAL
LETTER C WITH CEDILLA
+00C8 ; mapped ; 00E8 # 1.1 LATIN CAPITAL
LETTER E WITH GRAVE
+00C9 ; mapped ; 00E9 # 1.1 LATIN CAPITAL
LETTER E WITH ACUTE
+00CA ; mapped ; 00EA # 1.1 LATIN CAPITAL
LETTER E WITH CIRCUMFLEX
+00CB ; mapped ; 00EB # 1.1 LATIN CAPITAL
LETTER E WITH DIAERESIS
+00CC ; mapped ; 00EC # 1.1 LATIN CAPITAL
LETTER I WITH GRAVE
+00CD ; mapped ; 00ED # 1.1 LATIN CAPITAL
LETTER I WITH ACUTE
+00CE ; mapped ; 00EE # 1.1 LATIN CAPITAL
LETTER I WITH CIRCUMFLEX
+00CF ; mapped ; 00EF # 1.1 LATIN CAPITAL
LETTER I WITH DIAERESIS
+00D0 ; mapped ; 00F0 # 1.1 LATIN CAPITAL
LETTER ETH
+00D1 ; mapped ; 00F1 # 1.1 LATIN CAPITAL
LETTER N WITH TILDE
+00D2 ; mapped ; 00F2 # 1.1 LATIN CAPITAL
LETTER O WITH GRAVE
+00D3 ; mapped ; 00F3 # 1.1 LATIN CAPITAL
LETTER O WITH ACUTE
+00D4 ; mapped ; 00F4 # 1.1 LATIN CAPITAL
LETTER O WITH CIRCUMFLEX
+00D5 ; mapped ; 00F5 # 1.1 LATIN CAPITAL
LETTER O WITH TILDE
+00D6 ; mapped ; 00F6 # 1.1 LATIN CAPITAL
LETTER O WITH DIAERESIS
+00D7 ; valid ; ; NV8 # 1.1 MULTIPLICATION
SIGN
+00D8 ; mapped ; 00F8 # 1.1 LATIN CAPITAL
LETTER O WITH STROKE
+00D9 ; mapped ; 00F9 # 1.1 LATIN CAPITAL
LETTER U WITH GRAVE
+00DA ; mapped ; 00FA # 1.1 LATIN CAPITAL
LETTER U WITH ACUTE
+00DB ; mapped ; 00FB # 1.1 LATIN CAPITAL
LETTER U WITH CIRCUMFLEX
+00DC ; mapped ; 00FC # 1.1 LATIN CAPITAL
LETTER U WITH DIAERESIS
+00DD ; mapped ; 00FD # 1.1 LATIN CAPITAL
LETTER Y WITH ACUTE
+00DE ; mapped ; 00FE # 1.1 LATIN CAPITAL
LETTER THORN
+00DF ; deviation ; 0073 0073 # 1.1 LATIN SMALL
LETTER SHARP S
+00E0..00F6 ; valid # 1.1 LATIN SMALL
LETTER A WITH GRAVE..LATIN SMALL LETTER O WITH DIAERESIS
+00F7 ; valid ; ; NV8 # 1.1 DIVISION SIGN
+00F8..00FF ; valid # 1.1 LATIN SMALL
LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS
+0100 ; mapped ; 0101 # 1.1 LATIN CAPITAL
LETTER A WITH MACRON
+0101 ; valid # 1.1 LATIN SMALL
LETTER A WITH MACRON
+0102 ; mapped ; 0103 # 1.1 LATIN CAPITAL
LETTER A WITH BREVE
+0103 ; valid # 1.1 LATIN SMALL
LETTER A WITH BREVE
+0104 ; mapped ; 0105 # 1.1 LATIN CAPITAL
LETTER A WITH OGONEK
+0105 ; valid # 1.1 LATIN SMALL
LETTER A WITH OGONEK
+0106 ; mapped ; 0107 # 1.1 LATIN CAPITAL
LETTER C WITH ACUTE
+0107 ; valid # 1.1 LATIN SMALL
LETTER C WITH ACUTE
+0108 ; mapped ; 0109 # 1.1 LATIN CAPITAL
LETTER C WITH CIRCUMFLEX
+0109 ; valid # 1.1 LATIN SMALL
LETTER C WITH CIRCUMFLEX
+010A ; mapped ; 010B # 1.1 LATIN CAPITAL
LETTER C WITH DOT ABOVE
+010B ; valid # 1.1 LATIN SMALL
LETTER C WITH DOT ABOVE
+010C ; mapped ; 010D # 1.1 LATIN CAPITAL
LETTER C WITH CARON
+010D ; valid # 1.1 LATIN SMALL
LETTER C WITH CARON
+010E ; mapped ; 010F # 1.1 LATIN CAPITAL
LETTER D WITH CARON
+010F ; valid # 1.1 LATIN SMALL
LETTER D WITH CARON
+0110 ; mapped ; 0111 # 1.1 LATIN CAPITAL
LETTER D WITH STROKE
+0111 ; valid # 1.1 LATIN SMALL
LETTER D WITH STROKE
+0112 ; mapped ; 0113 # 1.1 LATIN CAPITAL
LETTER E WITH MACRON
+0113 ; valid # 1.1 LATIN SMALL
LETTER E WITH MACRON
+0114 ; mapped ; 0115 # 1.1 LATIN CAPITAL
LETTER E WITH BREVE
+0115 ; valid # 1.1 LATIN SMALL
LETTER E WITH BREVE
+0116 ; mapped ; 0117 # 1.1 LATIN CAPITAL
LETTER E WITH DOT ABOVE
+0117 ; valid # 1.1 LATIN SMALL
LETTER E WITH DOT ABOVE
+0118 ; mapped ; 0119 # 1.1 LATIN CAPITAL
LETTER E WITH OGONEK
+0119 ; valid # 1.1 LATIN SMALL
LETTER E WITH OGONEK
+011A ; mapped ; 011B # 1.1 LATIN CAPITAL
LETTER E WITH CARON
+011B ; valid # 1.1 LATIN SMALL
LETTER E WITH CARON
+011C ; mapped ; 011D # 1.1 LATIN CAPITAL
LETTER G WITH CIRCUMFLEX
+011D ; valid # 1.1 LATIN SMALL
LETTER G WITH CIRCUMFLEX
+011E ; mapped ; 011F # 1.1 LATIN CAPITAL
LETTER G WITH BREVE
+011F ; valid # 1.1 LATIN SMALL
LETTER G WITH BREVE
+0120 ; mapped ; 0121 # 1.1 LATIN CAPITAL
LETTER G WITH DOT ABOVE
+0121 ; valid # 1.1 LATIN SMALL
LETTER G WITH DOT ABOVE
+0122 ; mapped ; 0123 # 1.1 LATIN CAPITAL
LETTER G WITH CEDILLA
+0123 ; valid # 1.1 LATIN SMALL
LETTER G WITH CEDILLA
+0124 ; mapped ; 0125 # 1.1 LATIN CAPITAL
LETTER H WITH CIRCUMFLEX
+0125 ; valid # 1.1 LATIN SMALL
LETTER H WITH CIRCUMFLEX
+0126 ; mapped ; 0127 # 1.1 LATIN CAPITAL
LETTER H WITH STROKE
+0127 ; valid # 1.1 LATIN SMALL
LETTER H WITH STROKE
+0128 ; mapped ; 0129 # 1.1 LATIN CAPITAL
LETTER I WITH TILDE
+0129 ; valid # 1.1 LATIN SMALL
LETTER I WITH TILDE
+012A ; mapped ; 012B # 1.1 LATIN CAPITAL
LETTER I WITH MACRON
+012B ; valid # 1.1 LATIN SMALL
LETTER I WITH MACRON
+012C ; mapped ; 012D # 1.1 LATIN CAPITAL
LETTER I WITH BREVE
+012D ; valid # 1.1 LATIN SMALL
LETTER I WITH BREVE
+012E ; mapped ; 012F # 1.1 LATIN CAPITAL
LETTER I WITH OGONEK
+012F ; valid # 1.1 LATIN SMALL
LETTER I WITH OGONEK
+0130 ; mapped ; 0069 0307 # 1.1 LATIN CAPITAL
LETTER I WITH DOT ABOVE
+0131 ; valid # 1.1 LATIN SMALL
LETTER DOTLESS I
+0132..0133 ; mapped ; 0069 006A # 1.1 LATIN CAPITAL
LIGATURE IJ..LATIN SMALL LIGATURE IJ
+0134 ; mapped ; 0135 # 1.1 LATIN CAPITAL
LETTER J WITH CIRCUMFLEX
+0135 ; valid # 1.1 LATIN SMALL
LETTER J WITH CIRCUMFLEX
+0136 ; mapped ; 0137 # 1.1 LATIN CAPITAL
LETTER K WITH CEDILLA
+0137..0138 ; valid # 1.1 LATIN SMALL
LETTER K WITH CEDILLA..LATIN SMALL LETTER KRA
+0139 ; mapped ; 013A # 1.1 LATIN CAPITAL
LETTER L WITH ACUTE
+013A ; valid # 1.1 LATIN SMALL
LETTER L WITH ACUTE
+013B ; mapped ; 013C # 1.1 LATIN CAPITAL
LETTER L WITH CEDILLA
+013C ; valid # 1.1 LATIN SMALL
LETTER L WITH CEDILLA
+013D ; mapped ; 013E # 1.1 LATIN CAPITAL
LETTER L WITH CARON
+013E ; valid # 1.1 LATIN SMALL
LETTER L WITH CARON
+013F..0140 ; mapped ; 006C 00B7 # 1.1 LATIN CAPITAL
LETTER L WITH MIDDLE DOT..LATIN SMALL LETTER L WITH MIDDLE DOT
+0141 ; mapped ; 0142 # 1.1 LATIN CAPITAL
LETTER L WITH STROKE
+0142 ; valid # 1.1 LATIN SMALL
LETTER L WITH STROKE
+0143 ; mapped ; 0144 # 1.1 LATIN CAPITAL
LETTER N WITH ACUTE
+0144 ; valid # 1.1 LATIN SMALL
LETTER N WITH ACUTE
+0145 ; mapped ; 0146 # 1.1 LATIN CAPITAL
LETTER N WITH CEDILLA
+0146 ; valid # 1.1 LATIN SMALL
LETTER N WITH CEDILLA
+0147 ; mapped ; 0148 # 1.1 LATIN CAPITAL
LETTER N WITH CARON
+0148 ; valid # 1.1 LATIN SMALL
LETTER N WITH CARON
+0149 ; mapped ; 02BC 006E # 1.1 LATIN SMALL
LETTER N PRECEDED BY APOSTROPHE
+014A ; mapped ; 014B # 1.1 LATIN CAPITAL
LETTER ENG
+014B ; valid # 1.1 LATIN SMALL
LETTER ENG
+014C ; mapped ; 014D # 1.1 LATIN CAPITAL
LETTER O WITH MACRON
+014D ; valid # 1.1 LATIN SMALL
LETTER O WITH MACRON
+014E ; mapped ; 014F # 1.1 LATIN CAPITAL
LETTER O WITH BREVE
+014F ; valid # 1.1 LATIN SMALL
LETTER O WITH BREVE
+0150 ; mapped ; 0151 # 1.1 LATIN CAPITAL
LETTER O WITH DOUBLE ACUTE
+0151 ; valid # 1.1 LATIN SMALL
LETTER O WITH DOUBLE ACUTE
+0152 ; mapped ; 0153 # 1.1 LATIN CAPITAL
LIGATURE OE
+0153 ; valid # 1.1 LATIN SMALL
LIGATURE OE
+0154 ; mapped ; 0155 # 1.1 LATIN CAPITAL
LETTER R WITH ACUTE
+0155 ; valid # 1.1 LATIN SMALL
LETTER R WITH ACUTE
+0156 ; mapped ; 0157 # 1.1 LATIN CAPITAL
LETTER R WITH CEDILLA
+0157 ; valid # 1.1 LATIN SMALL
LETTER R WITH CEDILLA
+0158 ; mapped ; 0159 # 1.1 LATIN CAPITAL
LETTER R WITH CARON
+0159 ; valid # 1.1 LATIN SMALL
LETTER R WITH CARON
+015A ; mapped ; 015B # 1.1 LATIN CAPITAL
LETTER S WITH ACUTE
+015B ; valid # 1.1 LATIN SMALL
LETTER S WITH ACUTE
+015C ; mapped ; 015D # 1.1 LATIN CAPITAL
LETTER S WITH CIRCUMFLEX
+015D ; valid # 1.1 LATIN SMALL
LETTER S WITH CIRCUMFLEX
+015E ; mapped ; 015F # 1.1 LATIN CAPITAL
LETTER S WITH CEDILLA
+015F ; valid # 1.1 LATIN SMALL
LETTER S WITH CEDILLA
+0160 ; mapped ; 0161 # 1.1 LATIN CAPITAL
LETTER S WITH CARON
+0161 ; valid # 1.1 LATIN SMALL
LETTER S WITH CARON
+0162 ; mapped ; 0163 # 1.1 LATIN CAPITAL
LETTER T WITH CEDILLA
+0163 ; valid # 1.1 LATIN SMALL
LETTER T WITH CEDILLA
+0164 ; mapped ; 0165 # 1.1 LATIN CAPITAL
LETTER T WITH CARON
+0165 ; valid # 1.1 LATIN SMALL
LETTER T WITH CARON
+0166 ; mapped ; 0167 # 1.1 LATIN CAPITAL
LETTER T WITH STROKE
+0167 ; valid # 1.1 LATIN SMALL
LETTER T WITH STROKE
+0168 ; mapped ; 0169 # 1.1 LATIN CAPITAL
LETTER U WITH TILDE
+0169 ; valid # 1.1 LATIN SMALL
LETTER U WITH TILDE
+016A ; mapped ; 016B # 1.1 LATIN CAPITAL
LETTER U WITH MACRON
+016B ; valid # 1.1 LATIN SMALL
LETTER U WITH MACRON
+016C ; mapped ; 016D # 1.1 LATIN CAPITAL
LETTER U WITH BREVE
+016D ; valid # 1.1 LATIN SMALL
LETTER U WITH BREVE
+016E ; mapped ; 016F # 1.1 LATIN CAPITAL
LETTER U WITH RING ABOVE
+016F ; valid # 1.1 LATIN SMALL
LETTER U WITH RING ABOVE
+0170 ; mapped ; 0171 # 1.1 LATIN CAPITAL
LETTER U WITH DOUBLE ACUTE
+0171 ; valid # 1.1 LATIN SMALL
LETTER U WITH DOUBLE ACUTE
+0172 ; mapped ; 0173 # 1.1 LATIN CAPITAL
LETTER U WITH OGONEK
+0173 ; valid # 1.1 LATIN SMALL
LETTER U WITH OGONEK
+0174 ; mapped ; 0175 # 1.1 LATIN CAPITAL
LETTER W WITH CIRCUMFLEX
+0175 ; valid # 1.1 LATIN SMALL
LETTER W WITH CIRCUMFLEX
+0176 ; mapped ; 0177 # 1.1 LATIN CAPITAL
LETTER Y WITH CIRCUMFLEX
+0177 ; valid # 1.1 LATIN SMALL
LETTER Y WITH CIRCUMFLEX
+0178 ; mapped ; 00FF # 1.1 LATIN CAPITAL
LETTER Y WITH DIAERESIS
+0179 ; mapped ; 017A # 1.1 LATIN CAPITAL
LETTER Z WITH ACUTE
+017A ; valid # 1.1 LATIN SMALL
LETTER Z WITH ACUTE
+017B ; mapped ; 017C # 1.1 LATIN CAPITAL
LETTER Z WITH DOT ABOVE
+017C ; valid # 1.1 LATIN SMALL
LETTER Z WITH DOT ABOVE
+017D ; mapped ; 017E # 1.1 LATIN CAPITAL
LETTER Z WITH CARON
+017E ; valid # 1.1 LATIN SMALL
LETTER Z WITH CARON
+017F ; mapped ; 0073 # 1.1 LATIN SMALL
LETTER LONG S
+0180 ; valid # 1.1 LATIN SMALL
LETTER B WITH STROKE
+0181 ; mapped ; 0253 # 1.1 LATIN CAPITAL
LETTER B WITH HOOK
+0182 ; mapped ; 0183 # 1.1 LATIN CAPITAL
LETTER B WITH TOPBAR
+0183 ; valid # 1.1 LATIN SMALL
LETTER B WITH TOPBAR
+0184 ; mapped ; 0185 # 1.1 LATIN CAPITAL
LETTER TONE SIX
+0185 ; valid # 1.1 LATIN SMALL
LETTER TONE SIX
+0186 ; mapped ; 0254 # 1.1 LATIN CAPITAL
LETTER OPEN O
+0187 ; mapped ; 0188 # 1.1 LATIN CAPITAL
LETTER C WITH HOOK
+0188 ; valid # 1.1 LATIN SMALL
LETTER C WITH HOOK
+0189 ; mapped ; 0256 # 1.1 LATIN CAPITAL
LETTER AFRICAN D
+018A ; mapped ; 0257 # 1.1 LATIN CAPITAL
LETTER D WITH HOOK
+018B ; mapped ; 018C # 1.1 LATIN CAPITAL
LETTER D WITH TOPBAR
+018C..018D ; valid # 1.1 LATIN SMALL
LETTER D WITH TOPBAR..LATIN SMALL LETTER TURNED DELTA
+018E ; mapped ; 01DD # 1.1 LATIN CAPITAL
LETTER REVERSED E
+018F ; mapped ; 0259 # 1.1 LATIN CAPITAL
LETTER SCHWA
+0190 ; mapped ; 025B # 1.1 LATIN CAPITAL
LETTER OPEN E
+0191 ; mapped ; 0192 # 1.1 LATIN CAPITAL
LETTER F WITH HOOK
+0192 ; valid # 1.1 LATIN SMALL
LETTER F WITH HOOK
+0193 ; mapped ; 0260 # 1.1 LATIN CAPITAL
LETTER G WITH HOOK
+0194 ; mapped ; 0263 # 1.1 LATIN CAPITAL
LETTER GAMMA
+0195 ; valid # 1.1 LATIN SMALL
LETTER HV
+0196 ; mapped ; 0269 # 1.1 LATIN CAPITAL
LETTER IOTA
+0197 ; mapped ; 0268 # 1.1 LATIN CAPITAL
LETTER I WITH STROKE
+0198 ; mapped ; 0199 # 1.1 LATIN CAPITAL
LETTER K WITH HOOK
+0199..019B ; valid # 1.1 LATIN SMALL
LETTER K WITH HOOK..LATIN SMALL LETTER LAMBDA WITH STROKE
+019C ; mapped ; 026F # 1.1 LATIN CAPITAL
LETTER TURNED M
+019D ; mapped ; 0272 # 1.1 LATIN CAPITAL
LETTER N WITH LEFT HOOK
+019E ; valid # 1.1 LATIN SMALL
LETTER N WITH LONG RIGHT LEG
+019F ; mapped ; 0275 # 1.1 LATIN CAPITAL
LETTER O WITH MIDDLE TILDE
+01A0 ; mapped ; 01A1 # 1.1 LATIN CAPITAL
LETTER O WITH HORN
+01A1 ; valid # 1.1 LATIN SMALL
LETTER O WITH HORN
+01A2 ; mapped ; 01A3 # 1.1 LATIN CAPITAL
LETTER OI
+01A3 ; valid # 1.1 LATIN SMALL
LETTER OI
+01A4 ; mapped ; 01A5 # 1.1 LATIN CAPITAL
LETTER P WITH HOOK
+01A5 ; valid # 1.1 LATIN SMALL
LETTER P WITH HOOK
+01A6 ; mapped ; 0280 # 1.1 LATIN LETTER YR
+01A7 ; mapped ; 01A8 # 1.1 LATIN CAPITAL
LETTER TONE TWO
+01A8 ; valid # 1.1 LATIN SMALL
LETTER TONE TWO
+01A9 ; mapped ; 0283 # 1.1 LATIN CAPITAL
LETTER ESH
+01AA..01AB ; valid # 1.1 LATIN LETTER
REVERSED ESH LOOP..LATIN SMALL LETTER T WITH PALATAL HOOK
+01AC ; mapped ; 01AD # 1.1 LATIN CAPITAL
LETTER T WITH HOOK
+01AD ; valid # 1.1 LATIN SMALL
LETTER T WITH HOOK
+01AE ; mapped ; 0288 # 1.1 LATIN CAPITAL
LETTER T WITH RETROFLEX HOOK
+01AF ; mapped ; 01B0 # 1.1 LATIN CAPITAL
LETTER U WITH HORN
+01B0 ; valid # 1.1 LATIN SMALL
LETTER U WITH HORN
+01B1 ; mapped ; 028A # 1.1 LATIN CAPITAL
LETTER UPSILON
+01B2 ; mapped ; 028B # 1.1 LATIN CAPITAL
LETTER V WITH HOOK
+01B3 ; mapped ; 01B4 # 1.1 LATIN CAPITAL
LETTER Y WITH HOOK
+01B4 ; valid # 1.1 LATIN SMALL
LETTER Y WITH HOOK
+01B5 ; mapped ; 01B6 # 1.1 LATIN CAPITAL
LETTER Z WITH STROKE
+01B6 ; valid # 1.1 LATIN SMALL
LETTER Z WITH STROKE
+01B7 ; mapped ; 0292 # 1.1 LATIN CAPITAL
LETTER EZH
+01B8 ; mapped ; 01B9 # 1.1 LATIN CAPITAL
LETTER EZH REVERSED
+01B9..01BB ; valid # 1.1 LATIN SMALL
LETTER EZH REVERSED..LATIN LETTER TWO WITH STROKE
+01BC ; mapped ; 01BD # 1.1 LATIN CAPITAL
LETTER TONE FIVE
+01BD..01C3 ; valid # 1.1 LATIN SMALL
LETTER TONE FIVE..LATIN LETTER RETROFLEX CLICK
+01C4..01C6 ; mapped ; 0064 017E # 1.1 LATIN CAPITAL
LETTER DZ WITH CARON..LATIN SMALL LETTER DZ WITH CARON
+01C7..01C9 ; mapped ; 006C 006A # 1.1 LATIN CAPITAL
LETTER LJ..LATIN SMALL LETTER LJ
+01CA..01CC ; mapped ; 006E 006A # 1.1 LATIN CAPITAL
LETTER NJ..LATIN SMALL LETTER NJ
+01CD ; mapped ; 01CE # 1.1 LATIN CAPITAL
LETTER A WITH CARON
+01CE ; valid # 1.1 LATIN SMALL
LETTER A WITH CARON
+01CF ; mapped ; 01D0 # 1.1 LATIN CAPITAL
LETTER I WITH CARON
+01D0 ; valid # 1.1 LATIN SMALL
LETTER I WITH CARON
+01D1 ; mapped ; 01D2 # 1.1 LATIN CAPITAL
LETTER O WITH CARON
+01D2 ; valid # 1.1 LATIN SMALL
LETTER O WITH CARON
+01D3 ; mapped ; 01D4 # 1.1 LATIN CAPITAL
LETTER U WITH CARON
+01D4 ; valid # 1.1 LATIN SMALL
LETTER U WITH CARON
+01D5 ; mapped ; 01D6 # 1.1 LATIN CAPITAL
LETTER U WITH DIAERESIS AND MACRON
+01D6 ; valid # 1.1 LATIN SMALL
LETTER U WITH DIAERESIS AND MACRON
+01D7 ; mapped ; 01D8 # 1.1 LATIN CAPITAL
LETTER U WITH DIAERESIS AND ACUTE
+01D8 ; valid # 1.1 LATIN SMALL
LETTER U WITH DIAERESIS AND ACUTE
+01D9 ; mapped ; 01DA # 1.1 LATIN CAPITAL
LETTER U WITH DIAERESIS AND CARON
+01DA ; valid # 1.1 LATIN SMALL
LETTER U WITH DIAERESIS AND CARON
+01DB ; mapped ; 01DC # 1.1 LATIN CAPITAL
LETTER U WITH DIAERESIS AND GRAVE
+01DC..01DD ; valid # 1.1 LATIN SMALL
LETTER U WITH DIAERESIS AND GRAVE..LATIN SMALL LETTER TURNED E
+01DE ; mapped ; 01DF # 1.1 LATIN CAPITAL
LETTER A WITH DIAERESIS AND MACRON
+01DF ; valid # 1.1 LATIN SMALL
LETTER A WITH DIAERESIS AND MACRON
+01E0 ; mapped ; 01E1 # 1.1 LATIN CAPITAL
LETTER A WITH DOT ABOVE AND MACRON
+01E1 ; valid # 1.1 LATIN SMALL
LETTER A WITH DOT ABOVE AND MACRON
+01E2 ; mapped ; 01E3 # 1.1 LATIN CAPITAL
LETTER AE WITH MACRON
+01E3 ; valid # 1.1 LATIN SMALL
LETTER AE WITH MACRON
+01E4 ; mapped ; 01E5 # 1.1 LATIN CAPITAL
LETTER G WITH STROKE
+01E5 ; valid # 1.1 LATIN SMALL
LETTER G WITH STROKE
+01E6 ; mapped ; 01E7 # 1.1 LATIN CAPITAL
LETTER G WITH CARON
+01E7 ; valid # 1.1 LATIN SMALL
LETTER G WITH CARON
+01E8 ; mapped ; 01E9 # 1.1 LATIN CAPITAL
LETTER K WITH CARON
+01E9 ; valid # 1.1 LATIN SMALL
LETTER K WITH CARON
+01EA ; mapped ; 01EB # 1.1 LATIN CAPITAL
LETTER O WITH OGONEK
+01EB ; valid # 1.1 LATIN SMALL
LETTER O WITH OGONEK
+01EC ; mapped ; 01ED # 1.1 LATIN CAPITAL
LETTER O WITH OGONEK AND MACRON
+01ED ; valid # 1.1 LATIN SMALL
LETTER O WITH OGONEK AND MACRON
+01EE ; mapped ; 01EF # 1.1 LATIN CAPITAL
LETTER EZH WITH CARON
+01EF..01F0 ; valid # 1.1 LATIN SMALL
LETTER EZH WITH CARON..LATIN SMALL LETTER J WITH CARON
+01F1..01F3 ; mapped ; 0064 007A # 1.1 LATIN CAPITAL
LETTER DZ..LATIN SMALL LETTER DZ
+01F4 ; mapped ; 01F5 # 1.1 LATIN CAPITAL
LETTER G WITH ACUTE
+01F5 ; valid # 1.1 LATIN SMALL
LETTER G WITH ACUTE
+01F6 ; mapped ; 0195 # 3.0 LATIN CAPITAL
LETTER HWAIR
+01F7 ; mapped ; 01BF # 3.0 LATIN CAPITAL
LETTER WYNN
+01F8 ; mapped ; 01F9 # 3.0 LATIN CAPITAL
LETTER N WITH GRAVE
+01F9 ; valid # 3.0 LATIN SMALL
LETTER N WITH GRAVE
+01FA ; mapped ; 01FB # 1.1 LATIN CAPITAL
LETTER A WITH RING ABOVE AND ACUTE
+01FB ; valid # 1.1 LATIN SMALL
LETTER A WITH RING ABOVE AND ACUTE
+01FC ; mapped ; 01FD # 1.1 LATIN CAPITAL
LETTER AE WITH ACUTE
+01FD ; valid # 1.1 LATIN SMALL
LETTER AE WITH ACUTE
+01FE ; mapped ; 01FF # 1.1 LATIN CAPITAL
LETTER O WITH STROKE AND ACUTE
+01FF ; valid # 1.1 LATIN SMALL
LETTER O WITH STROKE AND ACUTE
+0200 ; mapped ; 0201 # 1.1 LATIN CAPITAL
LETTER A WITH DOUBLE GRAVE
+0201 ; valid # 1.1 LATIN SMALL
LETTER A WITH DOUBLE GRAVE
+0202 ; mapped ; 0203 # 1.1 LATIN CAPITAL
LETTER A WITH INVERTED BREVE
+0203 ; valid # 1.1 LATIN SMALL
LETTER A WITH INVERTED BREVE
+0204 ; mapped ; 0205 # 1.1 LATIN CAPITAL
LETTER E WITH DOUBLE GRAVE
+0205 ; valid # 1.1 LATIN SMALL
LETTER E WITH DOUBLE GRAVE
+0206 ; mapped ; 0207 # 1.1 LATIN CAPITAL
LETTER E WITH INVERTED BREVE
+0207 ; valid # 1.1 LATIN SMALL
LETTER E WITH INVERTED BREVE
+0208 ; mapped ; 0209 # 1.1 LATIN CAPITAL
LETTER I WITH DOUBLE GRAVE
+0209 ; valid # 1.1 LATIN SMALL
LETTER I WITH DOUBLE GRAVE
+020A ; mapped ; 020B # 1.1 LATIN CAPITAL
LETTER I WITH INVERTED BREVE
+020B ; valid # 1.1 LATIN SMALL
LETTER I WITH INVERTED BREVE
+020C ; mapped ; 020D # 1.1 LATIN CAPITAL
LETTER O WITH DOUBLE GRAVE
+020D ; valid # 1.1 LATIN SMALL
LETTER O WITH DOUBLE GRAVE
+020E ; mapped ; 020F # 1.1 LATIN CAPITAL
LETTER O WITH INVERTED BREVE
+020F ; valid # 1.1 LATIN SMALL
LETTER O WITH INVERTED BREVE
+0210 ; mapped ; 0211 # 1.1 LATIN CAPITAL
LETTER R WITH DOUBLE GRAVE
+0211 ; valid # 1.1 LATIN SMALL
LETTER R WITH DOUBLE GRAVE
+0212 ; mapped ; 0213 # 1.1 LATIN CAPITAL
LETTER R WITH INVERTED BREVE
+0213 ; valid # 1.1 LATIN SMALL
LETTER R WITH INVERTED BREVE
+0214 ; mapped ; 0215 # 1.1 LATIN CAPITAL
LETTER U WITH DOUBLE GRAVE
+0215 ; valid # 1.1 LATIN SMALL
LETTER U WITH DOUBLE GRAVE
+0216 ; mapped ; 0217 # 1.1 LATIN CAPITAL
LETTER U WITH INVERTED BREVE
+0217 ; valid # 1.1 LATIN SMALL
LETTER U WITH INVERTED BREVE
+0218 ; mapped ; 0219 # 3.0 LATIN CAPITAL
LETTER S WITH COMMA BELOW
+0219 ; valid # 3.0 LATIN SMALL
LETTER S WITH COMMA BELOW
+021A ; mapped ; 021B # 3.0 LATIN CAPITAL
LETTER T WITH COMMA BELOW
+021B ; valid # 3.0 LATIN SMALL
LETTER T WITH COMMA BELOW
+021C ; mapped ; 021D # 3.0 LATIN CAPITAL
LETTER YOGH
+021D ; valid # 3.0 LATIN SMALL
LETTER YOGH
+021E ; mapped ; 021F # 3.0 LATIN CAPITAL
LETTER H WITH CARON
+021F ; valid # 3.0 LATIN SMALL
LETTER H WITH CARON
+0220 ; mapped ; 019E # 3.2 LATIN CAPITAL
LETTER N WITH LONG RIGHT LEG
+0221 ; valid # 4.0 LATIN SMALL
LETTER D WITH CURL
+0222 ; mapped ; 0223 # 3.0 LATIN CAPITAL
LETTER OU
+0223 ; valid # 3.0 LATIN SMALL
LETTER OU
+0224 ; mapped ; 0225 # 3.0 LATIN CAPITAL
LETTER Z WITH HOOK
+0225 ; valid # 3.0 LATIN SMALL
LETTER Z WITH HOOK
+0226 ; mapped ; 0227 # 3.0 LATIN CAPITAL
LETTER A WITH DOT ABOVE
+0227 ; valid # 3.0 LATIN SMALL
LETTER A WITH DOT ABOVE
+0228 ; mapped ; 0229 # 3.0 LATIN CAPITAL
LETTER E WITH CEDILLA
+0229 ; valid # 3.0 LATIN SMALL
LETTER E WITH CEDILLA
+022A ; mapped ; 022B # 3.0 LATIN CAPITAL
LETTER O WITH DIAERESIS AND MACRON
+022B ; valid # 3.0 LATIN SMALL
LETTER O WITH DIAERESIS AND MACRON
+022C ; mapped ; 022D # 3.0 LATIN CAPITAL
LETTER O WITH TILDE AND MACRON
+022D ; valid # 3.0 LATIN SMALL
LETTER O WITH TILDE AND MACRON
+022E ; mapped ; 022F # 3.0 LATIN CAPITAL
LETTER O WITH DOT ABOVE
+022F ; valid # 3.0 LATIN SMALL
LETTER O WITH DOT ABOVE
+0230 ; mapped ; 0231 # 3.0 LATIN CAPITAL
LETTER O WITH DOT ABOVE AND MACRON
+0231 ; valid # 3.0 LATIN SMALL
LETTER O WITH DOT ABOVE AND MACRON
+0232 ; mapped ; 0233 # 3.0 LATIN CAPITAL
LETTER Y WITH MACRON
+0233 ; valid # 3.0 LATIN SMALL
LETTER Y WITH MACRON
+0234..0236 ; valid # 4.0 LATIN SMALL
LETTER L WITH CURL..LATIN SMALL LETTER T WITH CURL
+0237..0239 ; valid # 4.1 LATIN SMALL
LETTER DOTLESS J..LATIN SMALL LETTER QP DIGRAPH
+023A ; mapped ; 2C65 # 4.1 LATIN CAPITAL
LETTER A WITH STROKE
+023B ; mapped ; 023C # 4.1 LATIN CAPITAL
LETTER C WITH STROKE
+023C ; valid # 4.1 LATIN SMALL
LETTER C WITH STROKE
+023D ; mapped ; 019A # 4.1 LATIN CAPITAL
LETTER L WITH BAR
+023E ; mapped ; 2C66 # 4.1 LATIN CAPITAL
LETTER T WITH DIAGONAL STROKE
+023F..0240 ; valid # 4.1 LATIN SMALL
LETTER S WITH SWASH TAIL..LATIN SMALL LETTER Z WITH SWASH TAIL
+0241 ; mapped ; 0242 # 4.1 LATIN CAPITAL
LETTER GLOTTAL STOP
+0242 ; valid # 5.0 LATIN SMALL
LETTER GLOTTAL STOP
+0243 ; mapped ; 0180 # 5.0 LATIN CAPITAL
LETTER B WITH STROKE
+0244 ; mapped ; 0289 # 5.0 LATIN CAPITAL
LETTER U BAR
+0245 ; mapped ; 028C # 5.0 LATIN CAPITAL
LETTER TURNED V
+0246 ; mapped ; 0247 # 5.0 LATIN CAPITAL
LETTER E WITH STROKE
+0247 ; valid # 5.0 LATIN SMALL
LETTER E WITH STROKE
+0248 ; mapped ; 0249 # 5.0 LATIN CAPITAL
LETTER J WITH STROKE
+0249 ; valid # 5.0 LATIN SMALL
LETTER J WITH STROKE
+024A ; mapped ; 024B # 5.0 LATIN CAPITAL
LETTER SMALL Q WITH HOOK TAIL
+024B ; valid # 5.0 LATIN SMALL
LETTER Q WITH HOOK TAIL
+024C ; mapped ; 024D # 5.0 LATIN CAPITAL
LETTER R WITH STROKE
+024D ; valid # 5.0 LATIN SMALL
LETTER R WITH STROKE
+024E ; mapped ; 024F # 5.0 LATIN CAPITAL
LETTER Y WITH STROKE
+024F ; valid # 5.0 LATIN SMALL
LETTER Y WITH STROKE
+0250..02A8 ; valid # 1.1 LATIN SMALL
LETTER TURNED A..LATIN SMALL LETTER TC DIGRAPH WITH CURL
+02A9..02AD ; valid # 3.0 LATIN SMALL
LETTER FENG DIGRAPH..LATIN LETTER BIDENTAL PERCUSSIVE
+02AE..02AF ; valid # 4.0 LATIN SMALL
LETTER TURNED H WITH FISHHOOK..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND
TAIL
+02B0 ; mapped ; 0068 # 1.1 MODIFIER LETTER
SMALL H
+02B1 ; mapped ; 0266 # 1.1 MODIFIER LETTER
SMALL H WITH HOOK
+02B2 ; mapped ; 006A # 1.1 MODIFIER LETTER
SMALL J
+02B3 ; mapped ; 0072 # 1.1 MODIFIER LETTER
SMALL R
+02B4 ; mapped ; 0279 # 1.1 MODIFIER LETTER
SMALL TURNED R
+02B5 ; mapped ; 027B # 1.1 MODIFIER LETTER
SMALL TURNED R WITH HOOK
+02B6 ; mapped ; 0281 # 1.1 MODIFIER LETTER
SMALL CAPITAL INVERTED R
+02B7 ; mapped ; 0077 # 1.1 MODIFIER LETTER
SMALL W
+02B8 ; mapped ; 0079 # 1.1 MODIFIER LETTER
SMALL Y
+02B9..02C1 ; valid # 1.1 MODIFIER LETTER
PRIME..MODIFIER LETTER REVERSED GLOTTAL STOP
+02C2..02C5 ; valid ; ; NV8 # 1.1 MODIFIER LETTER
LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
+02C6..02D1 ; valid # 1.1 MODIFIER LETTER
CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
+02D2..02D7 ; valid ; ; NV8 # 1.1 MODIFIER LETTER
CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN
+02D8 ; disallowed_STD3_mapped ; 0020 0306 # 1.1 BREVE
+02D9 ; disallowed_STD3_mapped ; 0020 0307 # 1.1 DOT ABOVE
+02DA ; disallowed_STD3_mapped ; 0020 030A # 1.1 RING ABOVE
+02DB ; disallowed_STD3_mapped ; 0020 0328 # 1.1 OGONEK
+02DC ; disallowed_STD3_mapped ; 0020 0303 # 1.1 SMALL TILDE
+02DD ; disallowed_STD3_mapped ; 0020 030B # 1.1 DOUBLE ACUTE
ACCENT
+02DE ; valid ; ; NV8 # 1.1 MODIFIER LETTER
RHOTIC HOOK
+02DF ; valid ; ; NV8 # 3.0 MODIFIER LETTER
CROSS ACCENT
+02E0 ; mapped ; 0263 # 1.1 MODIFIER LETTER
SMALL GAMMA
+02E1 ; mapped ; 006C # 1.1 MODIFIER LETTER
SMALL L
+02E2 ; mapped ; 0073 # 1.1 MODIFIER LETTER
SMALL S
+02E3 ; mapped ; 0078 # 1.1 MODIFIER LETTER
SMALL X
+02E4 ; mapped ; 0295 # 1.1 MODIFIER LETTER
SMALL REVERSED GLOTTAL STOP
+02E5..02E9 ; valid ; ; NV8 # 1.1 MODIFIER LETTER
EXTRA-HIGH TONE BAR..MODIFIER LETTER EXTRA-LOW TONE BAR
+02EA..02EB ; valid ; ; NV8 # 3.0 MODIFIER LETTER
YIN DEPARTING TONE MARK..MODIFIER LETTER YANG DEPARTING TONE MARK
+02EC ; valid # 3.0 MODIFIER LETTER
VOICING
+02ED ; valid ; ; NV8 # 3.0 MODIFIER LETTER
UNASPIRATED
+02EE ; valid # 3.0 MODIFIER LETTER
DOUBLE APOSTROPHE
+02EF..02FF ; valid ; ; NV8 # 4.0 MODIFIER LETTER
LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
+0300..033F ; valid # 1.1 COMBINING GRAVE
ACCENT..COMBINING DOUBLE OVERLINE
+0340 ; mapped ; 0300 # 1.1 COMBINING GRAVE
TONE MARK
+0341 ; mapped ; 0301 # 1.1 COMBINING ACUTE
TONE MARK
+0342 ; valid # 1.1 COMBINING GREEK
PERISPOMENI
+0343 ; mapped ; 0313 # 1.1 COMBINING GREEK
KORONIS
+0344 ; mapped ; 0308 0301 # 1.1 COMBINING GREEK
DIALYTIKA TONOS
+0345 ; mapped ; 03B9 # 1.1 COMBINING GREEK
YPOGEGRAMMENI
+0346..034E ; valid # 3.0 COMBINING BRIDGE
ABOVE..COMBINING UPWARDS ARROW BELOW
+034F ; ignored # 3.2 COMBINING
GRAPHEME JOINER
+0350..0357 ; valid # 4.0 COMBINING RIGHT
ARROWHEAD ABOVE..COMBINING RIGHT HALF RING ABOVE
+0358..035C ; valid # 4.1 COMBINING DOT
ABOVE RIGHT..COMBINING DOUBLE BREVE BELOW
+035D..035F ; valid # 4.0 COMBINING DOUBLE
BREVE..COMBINING DOUBLE MACRON BELOW
+0360..0361 ; valid # 1.1 COMBINING DOUBLE
TILDE..COMBINING DOUBLE INVERTED BREVE
+0362 ; valid # 3.0 COMBINING DOUBLE
RIGHTWARDS ARROW BELOW
+0363..036F ; valid # 3.2 COMBINING LATIN
SMALL LETTER A..COMBINING LATIN SMALL LETTER X
+0370 ; mapped ; 0371 # 5.1 GREEK CAPITAL
LETTER HETA
+0371 ; valid # 5.1 GREEK SMALL
LETTER HETA
+0372 ; mapped ; 0373 # 5.1 GREEK CAPITAL
LETTER ARCHAIC SAMPI
+0373 ; valid # 5.1 GREEK SMALL
LETTER ARCHAIC SAMPI
+0374 ; mapped ; 02B9 # 1.1 GREEK NUMERAL
SIGN
+0375 ; valid # 1.1 GREEK LOWER
NUMERAL SIGN
+0376 ; mapped ; 0377 # 5.1 GREEK CAPITAL
LETTER PAMPHYLIAN DIGAMMA
+0377 ; valid # 5.1 GREEK SMALL
LETTER PAMPHYLIAN DIGAMMA
+0378..0379 ; disallowed # NA
<reserved-0378>..<reserved-0379>
+037A ; disallowed_STD3_mapped ; 0020 03B9 # 1.1 GREEK
YPOGEGRAMMENI
+037B..037D ; valid # 5.0 GREEK SMALL
REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037E ; disallowed_STD3_mapped ; 003B # 1.1 GREEK QUESTION
MARK
+037F ; mapped ; 03F3 # 7.0 GREEK CAPITAL
LETTER YOT
+0380..0383 ; disallowed # NA
<reserved-0380>..<reserved-0383>
+0384 ; disallowed_STD3_mapped ; 0020 0301 # 1.1 GREEK TONOS
+0385 ; disallowed_STD3_mapped ; 0020 0308 0301 #1.1 GREEK DIALYTIKA
TONOS
+0386 ; mapped ; 03AC # 1.1 GREEK CAPITAL
LETTER ALPHA WITH TONOS
+0387 ; mapped ; 00B7 # 1.1 GREEK ANO TELEIA
+0388 ; mapped ; 03AD # 1.1 GREEK CAPITAL
LETTER EPSILON WITH TONOS
+0389 ; mapped ; 03AE # 1.1 GREEK CAPITAL
LETTER ETA WITH TONOS
+038A ; mapped ; 03AF # 1.1 GREEK CAPITAL
LETTER IOTA WITH TONOS
+038B ; disallowed # NA <reserved-038B>
+038C ; mapped ; 03CC # 1.1 GREEK CAPITAL
LETTER OMICRON WITH TONOS
+038D ; disallowed # NA <reserved-038D>
+038E ; mapped ; 03CD # 1.1 GREEK CAPITAL
LETTER UPSILON WITH TONOS
+038F ; mapped ; 03CE # 1.1 GREEK CAPITAL
LETTER OMEGA WITH TONOS
+0390 ; valid # 1.1 GREEK SMALL
LETTER IOTA WITH DIALYTIKA AND TONOS
+0391 ; mapped ; 03B1 # 1.1 GREEK CAPITAL
LETTER ALPHA
+0392 ; mapped ; 03B2 # 1.1 GREEK CAPITAL
LETTER BETA
+0393 ; mapped ; 03B3 # 1.1 GREEK CAPITAL
LETTER GAMMA
+0394 ; mapped ; 03B4 # 1.1 GREEK CAPITAL
LETTER DELTA
+0395 ; mapped ; 03B5 # 1.1 GREEK CAPITAL
LETTER EPSILON
+0396 ; mapped ; 03B6 # 1.1 GREEK CAPITAL
LETTER ZETA
+0397 ; mapped ; 03B7 # 1.1 GREEK CAPITAL
LETTER ETA
+0398 ; mapped ; 03B8 # 1.1 GREEK CAPITAL
LETTER THETA
+0399 ; mapped ; 03B9 # 1.1 GREEK CAPITAL
LETTER IOTA
+039A ; mapped ; 03BA # 1.1 GREEK CAPITAL
LETTER KAPPA
+039B ; mapped ; 03BB # 1.1 GREEK CAPITAL
LETTER LAMDA
+039C ; mapped ; 03BC # 1.1 GREEK CAPITAL
LETTER MU
+039D ; mapped ; 03BD # 1.1 GREEK CAPITAL
LETTER NU
+039E ; mapped ; 03BE # 1.1 GREEK CAPITAL
LETTER XI
+039F ; mapped ; 03BF # 1.1 GREEK CAPITAL
LETTER OMICRON
+03A0 ; mapped ; 03C0 # 1.1 GREEK CAPITAL
LETTER PI
+03A1 ; mapped ; 03C1 # 1.1 GREEK CAPITAL
LETTER RHO
+03A2 ; disallowed # NA <reserved-03A2>
+03A3 ; mapped ; 03C3 # 1.1 GREEK CAPITAL
LETTER SIGMA
+03A4 ; mapped ; 03C4 # 1.1 GREEK CAPITAL
LETTER TAU
+03A5 ; mapped ; 03C5 # 1.1 GREEK CAPITAL
LETTER UPSILON
+03A6 ; mapped ; 03C6 # 1.1 GREEK CAPITAL
LETTER PHI
+03A7 ; mapped ; 03C7 # 1.1 GREEK CAPITAL
LETTER CHI
+03A8 ; mapped ; 03C8 # 1.1 GREEK CAPITAL
LETTER PSI
+03A9 ; mapped ; 03C9 # 1.1 GREEK CAPITAL
LETTER OMEGA
+03AA ; mapped ; 03CA # 1.1 GREEK CAPITAL
LETTER IOTA WITH DIALYTIKA
+03AB ; mapped ; 03CB # 1.1 GREEK CAPITAL
LETTER UPSILON WITH DIALYTIKA
+03AC..03C1 ; valid # 1.1 GREEK SMALL
LETTER ALPHA WITH TONOS..GREEK SMALL LETTER RHO
+03C2 ; deviation ; 03C3 # 1.1 GREEK SMALL
LETTER FINAL SIGMA
+03C3..03CE ; valid # 1.1 GREEK SMALL
LETTER SIGMA..GREEK SMALL LETTER OMEGA WITH TONOS
+03CF ; mapped ; 03D7 # 5.1 GREEK CAPITAL
KAI SYMBOL
+03D0 ; mapped ; 03B2 # 1.1 GREEK BETA SYMBOL
+03D1 ; mapped ; 03B8 # 1.1 GREEK THETA
SYMBOL
+03D2 ; mapped ; 03C5 # 1.1 GREEK UPSILON
WITH HOOK SYMBOL
+03D3 ; mapped ; 03CD # 1.1 GREEK UPSILON
WITH ACUTE AND HOOK SYMBOL
+03D4 ; mapped ; 03CB # 1.1 GREEK UPSILON
WITH DIAERESIS AND HOOK SYMBOL
+03D5 ; mapped ; 03C6 # 1.1 GREEK PHI SYMBOL
+03D6 ; mapped ; 03C0 # 1.1 GREEK PI SYMBOL
+03D7 ; valid # 3.0 GREEK KAI SYMBOL
+03D8 ; mapped ; 03D9 # 3.2 GREEK LETTER
ARCHAIC KOPPA
+03D9 ; valid # 3.2 GREEK SMALL
LETTER ARCHAIC KOPPA
+03DA ; mapped ; 03DB # 1.1 GREEK LETTER
STIGMA
+03DB ; valid # 3.0 GREEK SMALL
LETTER STIGMA
+03DC ; mapped ; 03DD # 1.1 GREEK LETTER
DIGAMMA
+03DD ; valid # 3.0 GREEK SMALL
LETTER DIGAMMA
+03DE ; mapped ; 03DF # 1.1 GREEK LETTER
KOPPA
+03DF ; valid # 3.0 GREEK SMALL
LETTER KOPPA
+03E0 ; mapped ; 03E1 # 1.1 GREEK LETTER
SAMPI
+03E1 ; valid # 3.0 GREEK SMALL
LETTER SAMPI
+03E2 ; mapped ; 03E3 # 1.1 COPTIC CAPITAL
LETTER SHEI
+03E3 ; valid # 1.1 COPTIC SMALL
LETTER SHEI
+03E4 ; mapped ; 03E5 # 1.1 COPTIC CAPITAL
LETTER FEI
+03E5 ; valid # 1.1 COPTIC SMALL
LETTER FEI
+03E6 ; mapped ; 03E7 # 1.1 COPTIC CAPITAL
LETTER KHEI
+03E7 ; valid # 1.1 COPTIC SMALL
LETTER KHEI
+03E8 ; mapped ; 03E9 # 1.1 COPTIC CAPITAL
LETTER HORI
+03E9 ; valid # 1.1 COPTIC SMALL
LETTER HORI
+03EA ; mapped ; 03EB # 1.1 COPTIC CAPITAL
LETTER GANGIA
+03EB ; valid # 1.1 COPTIC SMALL
LETTER GANGIA
+03EC ; mapped ; 03ED # 1.1 COPTIC CAPITAL
LETTER SHIMA
+03ED ; valid # 1.1 COPTIC SMALL
LETTER SHIMA
+03EE ; mapped ; 03EF # 1.1 COPTIC CAPITAL
LETTER DEI
+03EF ; valid # 1.1 COPTIC SMALL
LETTER DEI
+03F0 ; mapped ; 03BA # 1.1 GREEK KAPPA
SYMBOL
+03F1 ; mapped ; 03C1 # 1.1 GREEK RHO SYMBOL
+03F2 ; mapped ; 03C3 # 1.1 GREEK LUNATE
SIGMA SYMBOL
+03F3 ; valid # 1.1 GREEK LETTER YOT
+03F4 ; mapped ; 03B8 # 3.1 GREEK CAPITAL
THETA SYMBOL
+03F5 ; mapped ; 03B5 # 3.1 GREEK LUNATE
EPSILON SYMBOL
+03F6 ; valid ; ; NV8 # 3.2 GREEK REVERSED
LUNATE EPSILON SYMBOL
+03F7 ; mapped ; 03F8 # 4.0 GREEK CAPITAL
LETTER SHO
+03F8 ; valid # 4.0 GREEK SMALL
LETTER SHO
+03F9 ; mapped ; 03C3 # 4.0 GREEK CAPITAL
LUNATE SIGMA SYMBOL
+03FA ; mapped ; 03FB # 4.0 GREEK CAPITAL
LETTER SAN
+03FB ; valid # 4.0 GREEK SMALL
LETTER SAN
+03FC ; valid # 4.1 GREEK RHO WITH
STROKE SYMBOL
+03FD ; mapped ; 037B # 4.1 GREEK CAPITAL
REVERSED LUNATE SIGMA SYMBOL
+03FE ; mapped ; 037C # 4.1 GREEK CAPITAL
DOTTED LUNATE SIGMA SYMBOL
+03FF ; mapped ; 037D # 4.1 GREEK CAPITAL
REVERSED DOTTED LUNATE SIGMA SYMBOL
+0400 ; mapped ; 0450 # 3.0 CYRILLIC CAPITAL
LETTER IE WITH GRAVE
+0401 ; mapped ; 0451 # 1.1 CYRILLIC CAPITAL
LETTER IO
+0402 ; mapped ; 0452 # 1.1 CYRILLIC CAPITAL
LETTER DJE
+0403 ; mapped ; 0453 # 1.1 CYRILLIC CAPITAL
LETTER GJE
+0404 ; mapped ; 0454 # 1.1 CYRILLIC CAPITAL
LETTER UKRAINIAN IE
+0405 ; mapped ; 0455 # 1.1 CYRILLIC CAPITAL
LETTER DZE
+0406 ; mapped ; 0456 # 1.1 CYRILLIC CAPITAL
LETTER BYELORUSSIAN-UKRAINIAN I
+0407 ; mapped ; 0457 # 1.1 CYRILLIC CAPITAL
LETTER YI
+0408 ; mapped ; 0458 # 1.1 CYRILLIC CAPITAL
LETTER JE
+0409 ; mapped ; 0459 # 1.1 CYRILLIC CAPITAL
LETTER LJE
+040A ; mapped ; 045A # 1.1 CYRILLIC CAPITAL
LETTER NJE
+040B ; mapped ; 045B # 1.1 CYRILLIC CAPITAL
LETTER TSHE
+040C ; mapped ; 045C # 1.1 CYRILLIC CAPITAL
LETTER KJE
+040D ; mapped ; 045D # 3.0 CYRILLIC CAPITAL
LETTER I WITH GRAVE
+040E ; mapped ; 045E # 1.1 CYRILLIC CAPITAL
LETTER SHORT U
+040F ; mapped ; 045F # 1.1 CYRILLIC CAPITAL
LETTER DZHE
+0410 ; mapped ; 0430 # 1.1 CYRILLIC CAPITAL
LETTER A
+0411 ; mapped ; 0431 # 1.1 CYRILLIC CAPITAL
LETTER BE
+0412 ; mapped ; 0432 # 1.1 CYRILLIC CAPITAL
LETTER VE
+0413 ; mapped ; 0433 # 1.1 CYRILLIC CAPITAL
LETTER GHE
+0414 ; mapped ; 0434 # 1.1 CYRILLIC CAPITAL
LETTER DE
+0415 ; mapped ; 0435 # 1.1 CYRILLIC CAPITAL
LETTER IE
+0416 ; mapped ; 0436 # 1.1 CYRILLIC CAPITAL
LETTER ZHE
+0417 ; mapped ; 0437 # 1.1 CYRILLIC CAPITAL
LETTER ZE
+0418 ; mapped ; 0438 # 1.1 CYRILLIC CAPITAL
LETTER I
+0419 ; mapped ; 0439 # 1.1 CYRILLIC CAPITAL
LETTER SHORT I
+041A ; mapped ; 043A # 1.1 CYRILLIC CAPITAL
LETTER KA
+041B ; mapped ; 043B # 1.1 CYRILLIC CAPITAL
LETTER EL
+041C ; mapped ; 043C # 1.1 CYRILLIC CAPITAL
LETTER EM
+041D ; mapped ; 043D # 1.1 CYRILLIC CAPITAL
LETTER EN
+041E ; mapped ; 043E # 1.1 CYRILLIC CAPITAL
LETTER O
+041F ; mapped ; 043F # 1.1 CYRILLIC CAPITAL
LETTER PE
+0420 ; mapped ; 0440 # 1.1 CYRILLIC CAPITAL
LETTER ER
+0421 ; mapped ; 0441 # 1.1 CYRILLIC CAPITAL
LETTER ES
+0422 ; mapped ; 0442 # 1.1 CYRILLIC CAPITAL
LETTER TE
+0423 ; mapped ; 0443 # 1.1 CYRILLIC CAPITAL
LETTER U
+0424 ; mapped ; 0444 # 1.1 CYRILLIC CAPITAL
LETTER EF
+0425 ; mapped ; 0445 # 1.1 CYRILLIC CAPITAL
LETTER HA
+0426 ; mapped ; 0446 # 1.1 CYRILLIC CAPITAL
LETTER TSE
+0427 ; mapped ; 0447 # 1.1 CYRILLIC CAPITAL
LETTER CHE
+0428 ; mapped ; 0448 # 1.1 CYRILLIC CAPITAL
LETTER SHA
+0429 ; mapped ; 0449 # 1.1 CYRILLIC CAPITAL
LETTER SHCHA
+042A ; mapped ; 044A # 1.1 CYRILLIC CAPITAL
LETTER HARD SIGN
+042B ; mapped ; 044B # 1.1 CYRILLIC CAPITAL
LETTER YERU
+042C ; mapped ; 044C # 1.1 CYRILLIC CAPITAL
LETTER SOFT SIGN
+042D ; mapped ; 044D # 1.1 CYRILLIC CAPITAL
LETTER E
+042E ; mapped ; 044E # 1.1 CYRILLIC CAPITAL
LETTER YU
+042F ; mapped ; 044F # 1.1 CYRILLIC CAPITAL
LETTER YA
+0430..044F ; valid # 1.1 CYRILLIC SMALL
LETTER A..CYRILLIC SMALL LETTER YA
+0450 ; valid # 3.0 CYRILLIC SMALL
LETTER IE WITH GRAVE
+0451..045C ; valid # 1.1 CYRILLIC SMALL
LETTER IO..CYRILLIC SMALL LETTER KJE
+045D ; valid # 3.0 CYRILLIC SMALL
LETTER I WITH GRAVE
+045E..045F ; valid # 1.1 CYRILLIC SMALL
LETTER SHORT U..CYRILLIC SMALL LETTER DZHE
+0460 ; mapped ; 0461 # 1.1 CYRILLIC CAPITAL
LETTER OMEGA
+0461 ; valid # 1.1 CYRILLIC SMALL
LETTER OMEGA
+0462 ; mapped ; 0463 # 1.1 CYRILLIC CAPITAL
LETTER YAT
+0463 ; valid # 1.1 CYRILLIC SMALL
LETTER YAT
+0464 ; mapped ; 0465 # 1.1 CYRILLIC CAPITAL
LETTER IOTIFIED E
+0465 ; valid # 1.1 CYRILLIC SMALL
LETTER IOTIFIED E
+0466 ; mapped ; 0467 # 1.1 CYRILLIC CAPITAL
LETTER LITTLE YUS
+0467 ; valid # 1.1 CYRILLIC SMALL
LETTER LITTLE YUS
+0468 ; mapped ; 0469 # 1.1 CYRILLIC CAPITAL
LETTER IOTIFIED LITTLE YUS
+0469 ; valid # 1.1 CYRILLIC SMALL
LETTER IOTIFIED LITTLE YUS
+046A ; mapped ; 046B # 1.1 CYRILLIC CAPITAL
LETTER BIG YUS
+046B ; valid # 1.1 CYRILLIC SMALL
LETTER BIG YUS
+046C ; mapped ; 046D # 1.1 CYRILLIC CAPITAL
LETTER IOTIFIED BIG YUS
+046D ; valid # 1.1 CYRILLIC SMALL
LETTER IOTIFIED BIG YUS
+046E ; mapped ; 046F # 1.1 CYRILLIC CAPITAL
LETTER KSI
+046F ; valid # 1.1 CYRILLIC SMALL
LETTER KSI
+0470 ; mapped ; 0471 # 1.1 CYRILLIC CAPITAL
LETTER PSI
+0471 ; valid # 1.1 CYRILLIC SMALL
LETTER PSI
+0472 ; mapped ; 0473 # 1.1 CYRILLIC CAPITAL
LETTER FITA
+0473 ; valid # 1.1 CYRILLIC SMALL
LETTER FITA
+0474 ; mapped ; 0475 # 1.1 CYRILLIC CAPITAL
LETTER IZHITSA
+0475 ; valid # 1.1 CYRILLIC SMALL
LETTER IZHITSA
+0476 ; mapped ; 0477 # 1.1 CYRILLIC CAPITAL
LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0477 ; valid # 1.1 CYRILLIC SMALL
LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0478 ; mapped ; 0479 # 1.1 CYRILLIC CAPITAL
LETTER UK
+0479 ; valid # 1.1 CYRILLIC SMALL
LETTER UK
+047A ; mapped ; 047B # 1.1 CYRILLIC CAPITAL
LETTER ROUND OMEGA
+047B ; valid # 1.1 CYRILLIC SMALL
LETTER ROUND OMEGA
+047C ; mapped ; 047D # 1.1 CYRILLIC CAPITAL
LETTER OMEGA WITH TITLO
+047D ; valid # 1.1 CYRILLIC SMALL
LETTER OMEGA WITH TITLO
+047E ; mapped ; 047F # 1.1 CYRILLIC CAPITAL
LETTER OT
+047F ; valid # 1.1 CYRILLIC SMALL
LETTER OT
+0480 ; mapped ; 0481 # 1.1 CYRILLIC CAPITAL
LETTER KOPPA
+0481 ; valid # 1.1 CYRILLIC SMALL
LETTER KOPPA
+0482 ; valid ; ; NV8 # 1.1 CYRILLIC
THOUSANDS SIGN
+0483..0486 ; valid # 1.1 COMBINING
CYRILLIC TITLO..COMBINING CYRILLIC PSILI PNEUMATA
+0487 ; valid # 5.1 COMBINING
CYRILLIC POKRYTIE
+0488..0489 ; valid ; ; NV8 # 3.0 COMBINING
CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
+048A ; mapped ; 048B # 3.2 CYRILLIC CAPITAL
LETTER SHORT I WITH TAIL
+048B ; valid # 3.2 CYRILLIC SMALL
LETTER SHORT I WITH TAIL
+048C ; mapped ; 048D # 3.0 CYRILLIC CAPITAL
LETTER SEMISOFT SIGN
+048D ; valid # 3.0 CYRILLIC SMALL
LETTER SEMISOFT SIGN
+048E ; mapped ; 048F # 3.0 CYRILLIC CAPITAL
LETTER ER WITH TICK
+048F ; valid # 3.0 CYRILLIC SMALL
LETTER ER WITH TICK
+0490 ; mapped ; 0491 # 1.1 CYRILLIC CAPITAL
LETTER GHE WITH UPTURN
+0491 ; valid # 1.1 CYRILLIC SMALL
LETTER GHE WITH UPTURN
+0492 ; mapped ; 0493 # 1.1 CYRILLIC CAPITAL
LETTER GHE WITH STROKE
+0493 ; valid # 1.1 CYRILLIC SMALL
LETTER GHE WITH STROKE
+0494 ; mapped ; 0495 # 1.1 CYRILLIC CAPITAL
LETTER GHE WITH MIDDLE HOOK
+0495 ; valid # 1.1 CYRILLIC SMALL
LETTER GHE WITH MIDDLE HOOK
+0496 ; mapped ; 0497 # 1.1 CYRILLIC CAPITAL
LETTER ZHE WITH DESCENDER
+0497 ; valid # 1.1 CYRILLIC SMALL
LETTER ZHE WITH DESCENDER
+0498 ; mapped ; 0499 # 1.1 CYRILLIC CAPITAL
LETTER ZE WITH DESCENDER
+0499 ; valid # 1.1 CYRILLIC SMALL
LETTER ZE WITH DESCENDER
+049A ; mapped ; 049B # 1.1 CYRILLIC CAPITAL
LETTER KA WITH DESCENDER
+049B ; valid # 1.1 CYRILLIC SMALL
LETTER KA WITH DESCENDER
+049C ; mapped ; 049D # 1.1 CYRILLIC CAPITAL
LETTER KA WITH VERTICAL STROKE
+049D ; valid # 1.1 CYRILLIC SMALL
LETTER KA WITH VERTICAL STROKE
+049E ; mapped ; 049F # 1.1 CYRILLIC CAPITAL
LETTER KA WITH STROKE
+049F ; valid # 1.1 CYRILLIC SMALL
LETTER KA WITH STROKE
+04A0 ; mapped ; 04A1 # 1.1 CYRILLIC CAPITAL
LETTER BASHKIR KA
+04A1 ; valid # 1.1 CYRILLIC SMALL
LETTER BASHKIR KA
+04A2 ; mapped ; 04A3 # 1.1 CYRILLIC CAPITAL
LETTER EN WITH DESCENDER
+04A3 ; valid # 1.1 CYRILLIC SMALL
LETTER EN WITH DESCENDER
+04A4 ; mapped ; 04A5 # 1.1 CYRILLIC CAPITAL
LIGATURE EN GHE
+04A5 ; valid # 1.1 CYRILLIC SMALL
LIGATURE EN GHE
+04A6 ; mapped ; 04A7 # 1.1 CYRILLIC CAPITAL
LETTER PE WITH MIDDLE HOOK
+04A7 ; valid # 1.1 CYRILLIC SMALL
LETTER PE WITH MIDDLE HOOK
+04A8 ; mapped ; 04A9 # 1.1 CYRILLIC CAPITAL
LETTER ABKHASIAN HA
+04A9 ; valid # 1.1 CYRILLIC SMALL
LETTER ABKHASIAN HA
+04AA ; mapped ; 04AB # 1.1 CYRILLIC CAPITAL
LETTER ES WITH DESCENDER
+04AB ; valid # 1.1 CYRILLIC SMALL
LETTER ES WITH DESCENDER
+04AC ; mapped ; 04AD # 1.1 CYRILLIC CAPITAL
LETTER TE WITH DESCENDER
+04AD ; valid # 1.1 CYRILLIC SMALL
LETTER TE WITH DESCENDER
+04AE ; mapped ; 04AF # 1.1 CYRILLIC CAPITAL
LETTER STRAIGHT U
+04AF ; valid # 1.1 CYRILLIC SMALL
LETTER STRAIGHT U
+04B0 ; mapped ; 04B1 # 1.1 CYRILLIC CAPITAL
LETTER STRAIGHT U WITH STROKE
+04B1 ; valid # 1.1 CYRILLIC SMALL
LETTER STRAIGHT U WITH STROKE
+04B2 ; mapped ; 04B3 # 1.1 CYRILLIC CAPITAL
LETTER HA WITH DESCENDER
+04B3 ; valid # 1.1 CYRILLIC SMALL
LETTER HA WITH DESCENDER
+04B4 ; mapped ; 04B5 # 1.1 CYRILLIC CAPITAL
LIGATURE TE TSE
+04B5 ; valid # 1.1 CYRILLIC SMALL
LIGATURE TE TSE
+04B6 ; mapped ; 04B7 # 1.1 CYRILLIC CAPITAL
LETTER CHE WITH DESCENDER
+04B7 ; valid # 1.1 CYRILLIC SMALL
LETTER CHE WITH DESCENDER
+04B8 ; mapped ; 04B9 # 1.1 CYRILLIC CAPITAL
LETTER CHE WITH VERTICAL STROKE
+04B9 ; valid # 1.1 CYRILLIC SMALL
LETTER CHE WITH VERTICAL STROKE
+04BA ; mapped ; 04BB # 1.1 CYRILLIC CAPITAL
LETTER SHHA
+04BB ; valid # 1.1 CYRILLIC SMALL
LETTER SHHA
+04BC ; mapped ; 04BD # 1.1 CYRILLIC CAPITAL
LETTER ABKHASIAN CHE
+04BD ; valid # 1.1 CYRILLIC SMALL
LETTER ABKHASIAN CHE
+04BE ; mapped ; 04BF # 1.1 CYRILLIC CAPITAL
LETTER ABKHASIAN CHE WITH DESCENDER
+04BF ; valid # 1.1 CYRILLIC SMALL
LETTER ABKHASIAN CHE WITH DESCENDER
+04C0 ; disallowed # 1.1 CYRILLIC LETTER
PALOCHKA
+04C1 ; mapped ; 04C2 # 1.1 CYRILLIC CAPITAL
LETTER ZHE WITH BREVE
+04C2 ; valid # 1.1 CYRILLIC SMALL
LETTER ZHE WITH BREVE
+04C3 ; mapped ; 04C4 # 1.1 CYRILLIC CAPITAL
LETTER KA WITH HOOK
+04C4 ; valid # 1.1 CYRILLIC SMALL
LETTER KA WITH HOOK
+04C5 ; mapped ; 04C6 # 3.2 CYRILLIC CAPITAL
LETTER EL WITH TAIL
+04C6 ; valid # 3.2 CYRILLIC SMALL
LETTER EL WITH TAIL
+04C7 ; mapped ; 04C8 # 1.1 CYRILLIC CAPITAL
LETTER EN WITH HOOK
+04C8 ; valid # 1.1 CYRILLIC SMALL
LETTER EN WITH HOOK
+04C9 ; mapped ; 04CA # 3.2 CYRILLIC CAPITAL
LETTER EN WITH TAIL
+04CA ; valid # 3.2 CYRILLIC SMALL
LETTER EN WITH TAIL
+04CB ; mapped ; 04CC # 1.1 CYRILLIC CAPITAL
LETTER KHAKASSIAN CHE
+04CC ; valid # 1.1 CYRILLIC SMALL
LETTER KHAKASSIAN CHE
+04CD ; mapped ; 04CE # 3.2 CYRILLIC CAPITAL
LETTER EM WITH TAIL
+04CE ; valid # 3.2 CYRILLIC SMALL
LETTER EM WITH TAIL
+04CF ; valid # 5.0 CYRILLIC SMALL
LETTER PALOCHKA
+04D0 ; mapped ; 04D1 # 1.1 CYRILLIC CAPITAL
LETTER A WITH BREVE
+04D1 ; valid # 1.1 CYRILLIC SMALL
LETTER A WITH BREVE
+04D2 ; mapped ; 04D3 # 1.1 CYRILLIC CAPITAL
LETTER A WITH DIAERESIS
+04D3 ; valid # 1.1 CYRILLIC SMALL
LETTER A WITH DIAERESIS
+04D4 ; mapped ; 04D5 # 1.1 CYRILLIC CAPITAL
LIGATURE A IE
+04D5 ; valid # 1.1 CYRILLIC SMALL
LIGATURE A IE
+04D6 ; mapped ; 04D7 # 1.1 CYRILLIC CAPITAL
LETTER IE WITH BREVE
+04D7 ; valid # 1.1 CYRILLIC SMALL
LETTER IE WITH BREVE
+04D8 ; mapped ; 04D9 # 1.1 CYRILLIC CAPITAL
LETTER SCHWA
+04D9 ; valid # 1.1 CYRILLIC SMALL
LETTER SCHWA
+04DA ; mapped ; 04DB # 1.1 CYRILLIC CAPITAL
LETTER SCHWA WITH DIAERESIS
+04DB ; valid # 1.1 CYRILLIC SMALL
LETTER SCHWA WITH DIAERESIS
+04DC ; mapped ; 04DD # 1.1 CYRILLIC CAPITAL
LETTER ZHE WITH DIAERESIS
+04DD ; valid # 1.1 CYRILLIC SMALL
LETTER ZHE WITH DIAERESIS
+04DE ; mapped ; 04DF # 1.1 CYRILLIC CAPITAL
LETTER ZE WITH DIAERESIS
+04DF ; valid # 1.1 CYRILLIC SMALL
LETTER ZE WITH DIAERESIS
+04E0 ; mapped ; 04E1 # 1.1 CYRILLIC CAPITAL
LETTER ABKHASIAN DZE
+04E1 ; valid # 1.1 CYRILLIC SMALL
LETTER ABKHASIAN DZE
+04E2 ; mapped ; 04E3 # 1.1 CYRILLIC CAPITAL
LETTER I WITH MACRON
+04E3 ; valid # 1.1 CYRILLIC SMALL
LETTER I WITH MACRON
+04E4 ; mapped ; 04E5 # 1.1 CYRILLIC CAPITAL
LETTER I WITH DIAERESIS
+04E5 ; valid # 1.1 CYRILLIC SMALL
LETTER I WITH DIAERESIS
+04E6 ; mapped ; 04E7 # 1.1 CYRILLIC CAPITAL
LETTER O WITH DIAERESIS
+04E7 ; valid # 1.1 CYRILLIC SMALL
LETTER O WITH DIAERESIS
+04E8 ; mapped ; 04E9 # 1.1 CYRILLIC CAPITAL
LETTER BARRED O
+04E9 ; valid # 1.1 CYRILLIC SMALL
LETTER BARRED O
+04EA ; mapped ; 04EB # 1.1 CYRILLIC CAPITAL
LETTER BARRED O WITH DIAERESIS
+04EB ; valid # 1.1 CYRILLIC SMALL
LETTER BARRED O WITH DIAERESIS
+04EC ; mapped ; 04ED # 3.0 CYRILLIC CAPITAL
LETTER E WITH DIAERESIS
+04ED ; valid # 3.0 CYRILLIC SMALL
LETTER E WITH DIAERESIS
+04EE ; mapped ; 04EF # 1.1 CYRILLIC CAPITAL
LETTER U WITH MACRON
+04EF ; valid # 1.1 CYRILLIC SMALL
LETTER U WITH MACRON
+04F0 ; mapped ; 04F1 # 1.1 CYRILLIC CAPITAL
LETTER U WITH DIAERESIS
+04F1 ; valid # 1.1 CYRILLIC SMALL
LETTER U WITH DIAERESIS
+04F2 ; mapped ; 04F3 # 1.1 CYRILLIC CAPITAL
LETTER U WITH DOUBLE ACUTE
+04F3 ; valid # 1.1 CYRILLIC SMALL
LETTER U WITH DOUBLE ACUTE
+04F4 ; mapped ; 04F5 # 1.1 CYRILLIC CAPITAL
LETTER CHE WITH DIAERESIS
+04F5 ; valid # 1.1 CYRILLIC SMALL
LETTER CHE WITH DIAERESIS
+04F6 ; mapped ; 04F7 # 4.1 CYRILLIC CAPITAL
LETTER GHE WITH DESCENDER
+04F7 ; valid # 4.1 CYRILLIC SMALL
LETTER GHE WITH DESCENDER
+04F8 ; mapped ; 04F9 # 1.1 CYRILLIC CAPITAL
LETTER YERU WITH DIAERESIS
+04F9 ; valid # 1.1 CYRILLIC SMALL
LETTER YERU WITH DIAERESIS
+04FA ; mapped ; 04FB # 5.0 CYRILLIC CAPITAL
LETTER GHE WITH STROKE AND HOOK
+04FB ; valid # 5.0 CYRILLIC SMALL
LETTER GHE WITH STROKE AND HOOK
+04FC ; mapped ; 04FD # 5.0 CYRILLIC CAPITAL
LETTER HA WITH HOOK
+04FD ; valid # 5.0 CYRILLIC SMALL
LETTER HA WITH HOOK
+04FE ; mapped ; 04FF # 5.0 CYRILLIC CAPITAL
LETTER HA WITH STROKE
+04FF ; valid # 5.0 CYRILLIC SMALL
LETTER HA WITH STROKE
+0500 ; mapped ; 0501 # 3.2 CYRILLIC CAPITAL
LETTER KOMI DE
+0501 ; valid # 3.2 CYRILLIC SMALL
LETTER KOMI DE
+0502 ; mapped ; 0503 # 3.2 CYRILLIC CAPITAL
LETTER KOMI DJE
+0503 ; valid # 3.2 CYRILLIC SMALL
LETTER KOMI DJE
+0504 ; mapped ; 0505 # 3.2 CYRILLIC CAPITAL
LETTER KOMI ZJE
+0505 ; valid # 3.2 CYRILLIC SMALL
LETTER KOMI ZJE
+0506 ; mapped ; 0507 # 3.2 CYRILLIC CAPITAL
LETTER KOMI DZJE
+0507 ; valid # 3.2 CYRILLIC SMALL
LETTER KOMI DZJE
+0508 ; mapped ; 0509 # 3.2 CYRILLIC CAPITAL
LETTER KOMI LJE
+0509 ; valid # 3.2 CYRILLIC SMALL
LETTER KOMI LJE
+050A ; mapped ; 050B # 3.2 CYRILLIC CAPITAL
LETTER KOMI NJE
+050B ; valid # 3.2 CYRILLIC SMALL
LETTER KOMI NJE
+050C ; mapped ; 050D # 3.2 CYRILLIC CAPITAL
LETTER KOMI SJE
+050D ; valid # 3.2 CYRILLIC SMALL
LETTER KOMI SJE
+050E ; mapped ; 050F # 3.2 CYRILLIC CAPITAL
LETTER KOMI TJE
+050F ; valid # 3.2 CYRILLIC SMALL
LETTER KOMI TJE
+0510 ; mapped ; 0511 # 5.0 CYRILLIC CAPITAL
LETTER REVERSED ZE
+0511 ; valid # 5.0 CYRILLIC SMALL
LETTER REVERSED ZE
+0512 ; mapped ; 0513 # 5.0 CYRILLIC CAPITAL
LETTER EL WITH HOOK
+0513 ; valid # 5.0 CYRILLIC SMALL
LETTER EL WITH HOOK
+0514 ; mapped ; 0515 # 5.1 CYRILLIC CAPITAL
LETTER LHA
+0515 ; valid # 5.1 CYRILLIC SMALL
LETTER LHA
+0516 ; mapped ; 0517 # 5.1 CYRILLIC CAPITAL
LETTER RHA
+0517 ; valid # 5.1 CYRILLIC SMALL
LETTER RHA
+0518 ; mapped ; 0519 # 5.1 CYRILLIC CAPITAL
LETTER YAE
+0519 ; valid # 5.1 CYRILLIC SMALL
LETTER YAE
+051A ; mapped ; 051B # 5.1 CYRILLIC CAPITAL
LETTER QA
+051B ; valid # 5.1 CYRILLIC SMALL
LETTER QA
+051C ; mapped ; 051D # 5.1 CYRILLIC CAPITAL
LETTER WE
+051D ; valid # 5.1 CYRILLIC SMALL
LETTER WE
+051E ; mapped ; 051F # 5.1 CYRILLIC CAPITAL
LETTER ALEUT KA
+051F ; valid # 5.1 CYRILLIC SMALL
LETTER ALEUT KA
+0520 ; mapped ; 0521 # 5.1 CYRILLIC CAPITAL
LETTER EL WITH MIDDLE HOOK
+0521 ; valid # 5.1 CYRILLIC SMALL
LETTER EL WITH MIDDLE HOOK
+0522 ; mapped ; 0523 # 5.1 CYRILLIC CAPITAL
LETTER EN WITH MIDDLE HOOK
+0523 ; valid # 5.1 CYRILLIC SMALL
LETTER EN WITH MIDDLE HOOK
+0524 ; mapped ; 0525 # 5.2 CYRILLIC CAPITAL
LETTER PE WITH DESCENDER
+0525 ; valid # 5.2 CYRILLIC SMALL
LETTER PE WITH DESCENDER
+0526 ; mapped ; 0527 # 6.0 CYRILLIC CAPITAL
LETTER SHHA WITH DESCENDER
+0527 ; valid # 6.0 CYRILLIC SMALL
LETTER SHHA WITH DESCENDER
+0528 ; mapped ; 0529 # 7.0 CYRILLIC CAPITAL
LETTER EN WITH LEFT HOOK
+0529 ; valid # 7.0 CYRILLIC SMALL
LETTER EN WITH LEFT HOOK
+052A ; mapped ; 052B # 7.0 CYRILLIC CAPITAL
LETTER DZZHE
+052B ; valid # 7.0 CYRILLIC SMALL
LETTER DZZHE
+052C ; mapped ; 052D # 7.0 CYRILLIC CAPITAL
LETTER DCHE
+052D ; valid # 7.0 CYRILLIC SMALL
LETTER DCHE
+052E ; mapped ; 052F # 7.0 CYRILLIC CAPITAL
LETTER EL WITH DESCENDER
+052F ; valid # 7.0 CYRILLIC SMALL
LETTER EL WITH DESCENDER
+0530 ; disallowed # NA <reserved-0530>
+0531 ; mapped ; 0561 # 1.1 ARMENIAN CAPITAL
LETTER AYB
+0532 ; mapped ; 0562 # 1.1 ARMENIAN CAPITAL
LETTER BEN
+0533 ; mapped ; 0563 # 1.1 ARMENIAN CAPITAL
LETTER GIM
+0534 ; mapped ; 0564 # 1.1 ARMENIAN CAPITAL
LETTER DA
+0535 ; mapped ; 0565 # 1.1 ARMENIAN CAPITAL
LETTER ECH
+0536 ; mapped ; 0566 # 1.1 ARMENIAN CAPITAL
LETTER ZA
+0537 ; mapped ; 0567 # 1.1 ARMENIAN CAPITAL
LETTER EH
+0538 ; mapped ; 0568 # 1.1 ARMENIAN CAPITAL
LETTER ET
+0539 ; mapped ; 0569 # 1.1 ARMENIAN CAPITAL
LETTER TO
+053A ; mapped ; 056A # 1.1 ARMENIAN CAPITAL
LETTER ZHE
+053B ; mapped ; 056B # 1.1 ARMENIAN CAPITAL
LETTER INI
+053C ; mapped ; 056C # 1.1 ARMENIAN CAPITAL
LETTER LIWN
+053D ; mapped ; 056D # 1.1 ARMENIAN CAPITAL
LETTER XEH
+053E ; mapped ; 056E # 1.1 ARMENIAN CAPITAL
LETTER CA
+053F ; mapped ; 056F # 1.1 ARMENIAN CAPITAL
LETTER KEN
+0540 ; mapped ; 0570 # 1.1 ARMENIAN CAPITAL
LETTER HO
+0541 ; mapped ; 0571 # 1.1 ARMENIAN CAPITAL
LETTER JA
+0542 ; mapped ; 0572 # 1.1 ARMENIAN CAPITAL
LETTER GHAD
+0543 ; mapped ; 0573 # 1.1 ARMENIAN CAPITAL
LETTER CHEH
+0544 ; mapped ; 0574 # 1.1 ARMENIAN CAPITAL
LETTER MEN
+0545 ; mapped ; 0575 # 1.1 ARMENIAN CAPITAL
LETTER YI
+0546 ; mapped ; 0576 # 1.1 ARMENIAN CAPITAL
LETTER NOW
+0547 ; mapped ; 0577 # 1.1 ARMENIAN CAPITAL
LETTER SHA
+0548 ; mapped ; 0578 # 1.1 ARMENIAN CAPITAL
LETTER VO
+0549 ; mapped ; 0579 # 1.1 ARMENIAN CAPITAL
LETTER CHA
+054A ; mapped ; 057A # 1.1 ARMENIAN CAPITAL
LETTER PEH
+054B ; mapped ; 057B # 1.1 ARMENIAN CAPITAL
LETTER JHEH
+054C ; mapped ; 057C # 1.1 ARMENIAN CAPITAL
LETTER RA
+054D ; mapped ; 057D # 1.1 ARMENIAN CAPITAL
LETTER SEH
+054E ; mapped ; 057E # 1.1 ARMENIAN CAPITAL
LETTER VEW
+054F ; mapped ; 057F # 1.1 ARMENIAN CAPITAL
LETTER TIWN
+0550 ; mapped ; 0580 # 1.1 ARMENIAN CAPITAL
LETTER REH
+0551 ; mapped ; 0581 # 1.1 ARMENIAN CAPITAL
LETTER CO
+0552 ; mapped ; 0582 # 1.1 ARMENIAN CAPITAL
LETTER YIWN
+0553 ; mapped ; 0583 # 1.1 ARMENIAN CAPITAL
LETTER PIWR
+0554 ; mapped ; 0584 # 1.1 ARMENIAN CAPITAL
LETTER KEH
+0555 ; mapped ; 0585 # 1.1 ARMENIAN CAPITAL
LETTER OH
+0556 ; mapped ; 0586 # 1.1 ARMENIAN CAPITAL
LETTER FEH
+0557..0558 ; disallowed # NA
<reserved-0557>..<reserved-0558>
+0559 ; valid # 1.1 ARMENIAN
MODIFIER LETTER LEFT HALF RING
+055A..055F ; valid ; ; NV8 # 1.1 ARMENIAN
APOSTROPHE..ARMENIAN ABBREVIATION MARK
+0560 ; valid # 11.0 ARMENIAN SMALL
LETTER TURNED AYB
+0561..0586 ; valid # 1.1 ARMENIAN SMALL
LETTER AYB..ARMENIAN SMALL LETTER FEH
+0587 ; mapped ; 0565 0582 # 1.1 ARMENIAN SMALL
LIGATURE ECH YIWN
+0588 ; valid # 11.0 ARMENIAN SMALL
LETTER YI WITH STROKE
+0589 ; valid ; ; NV8 # 1.1 ARMENIAN FULL
STOP
+058A ; valid ; ; NV8 # 3.0 ARMENIAN HYPHEN
+058B..058C ; disallowed # NA
<reserved-058B>..<reserved-058C>
+058D..058E ; valid ; ; NV8 # 7.0 RIGHT-FACING
ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
+058F ; valid ; ; NV8 # 6.1 ARMENIAN DRAM
SIGN
+0590 ; disallowed # NA <reserved-0590>
+0591..05A1 ; valid # 2.0 HEBREW ACCENT
ETNAHTA..HEBREW ACCENT PAZER
+05A2 ; valid # 4.1 HEBREW ACCENT
ATNAH HAFUKH
+05A3..05AF ; valid # 2.0 HEBREW ACCENT
MUNAH..HEBREW MARK MASORA CIRCLE
+05B0..05B9 ; valid # 1.1 HEBREW POINT
SHEVA..HEBREW POINT HOLAM
+05BA ; valid # 5.0 HEBREW POINT
HOLAM HASER FOR VAV
+05BB..05BD ; valid # 1.1 HEBREW POINT
QUBUTS..HEBREW POINT METEG
+05BE ; valid ; ; NV8 # 1.1 HEBREW
PUNCTUATION MAQAF
+05BF ; valid # 1.1 HEBREW POINT RAFE
+05C0 ; valid ; ; NV8 # 1.1 HEBREW
PUNCTUATION PASEQ
+05C1..05C2 ; valid # 1.1 HEBREW POINT
SHIN DOT..HEBREW POINT SIN DOT
+05C3 ; valid ; ; NV8 # 1.1 HEBREW
PUNCTUATION SOF PASUQ
+05C4 ; valid # 2.0 HEBREW MARK
UPPER DOT
+05C5 ; valid # 4.1 HEBREW MARK
LOWER DOT
+05C6 ; valid ; ; NV8 # 4.1 HEBREW
PUNCTUATION NUN HAFUKHA
+05C7 ; valid # 4.1 HEBREW POINT
QAMATS QATAN
+05C8..05CF ; disallowed # NA
<reserved-05C8>..<reserved-05CF>
+05D0..05EA ; valid # 1.1 HEBREW LETTER
ALEF..HEBREW LETTER TAV
+05EB..05EE ; disallowed # NA
<reserved-05EB>..<reserved-05EE>
+05EF ; valid # 11.0 HEBREW YOD
TRIANGLE
+05F0..05F4 ; valid # 1.1 HEBREW LIGATURE
YIDDISH DOUBLE VAV..HEBREW PUNCTUATION GERSHAYIM
+05F5..05FF ; disallowed # NA
<reserved-05F5>..<reserved-05FF>
+0600..0603 ; disallowed # 4.0 ARABIC NUMBER
SIGN..ARABIC SIGN SAFHA
+0604 ; disallowed # 6.1 ARABIC SIGN
SAMVAT
+0605 ; disallowed # 7.0 ARABIC NUMBER
MARK ABOVE
+0606..060A ; valid ; ; NV8 # 5.1 ARABIC-INDIC
CUBE ROOT..ARABIC-INDIC PER TEN THOUSAND SIGN
+060B ; valid ; ; NV8 # 4.1 AFGHANI SIGN
+060C ; valid ; ; NV8 # 1.1 ARABIC COMMA
+060D..060F ; valid ; ; NV8 # 4.0 ARABIC DATE
SEPARATOR..ARABIC SIGN MISRA
+0610..0615 ; valid # 4.0 ARABIC SIGN
SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL HIGH TAH
+0616..061A ; valid # 5.1 ARABIC SMALL
HIGH LIGATURE ALEF WITH LAM WITH YEH..ARABIC SMALL KASRA
+061B ; valid ; ; NV8 # 1.1 ARABIC SEMICOLON
+061C ; disallowed # 6.3 ARABIC LETTER
MARK
+061D ; valid ; ; NV8 # 14.0 ARABIC END OF
TEXT MARK
+061E ; valid ; ; NV8 # 4.1 ARABIC TRIPLE
DOT PUNCTUATION MARK
+061F ; valid ; ; NV8 # 1.1 ARABIC QUESTION
MARK
+0620 ; valid # 6.0 ARABIC LETTER
KASHMIRI YEH
+0621..063A ; valid # 1.1 ARABIC LETTER
HAMZA..ARABIC LETTER GHAIN
+063B..063F ; valid # 5.1 ARABIC LETTER
KEHEH WITH TWO DOTS ABOVE..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
+0640 ; valid ; ; NV8 # 1.1 ARABIC TATWEEL
+0641..0652 ; valid # 1.1 ARABIC LETTER
FEH..ARABIC SUKUN
+0653..0655 ; valid # 3.0 ARABIC MADDAH
ABOVE..ARABIC HAMZA BELOW
+0656..0658 ; valid # 4.0 ARABIC SUBSCRIPT
ALEF..ARABIC MARK NOON GHUNNA
+0659..065E ; valid # 4.1 ARABIC
ZWARAKAY..ARABIC FATHA WITH TWO DOTS
+065F ; valid # 6.0 ARABIC WAVY
HAMZA BELOW
+0660..0669 ; valid # 1.1 ARABIC-INDIC
DIGIT ZERO..ARABIC-INDIC DIGIT NINE
+066A..066D ; valid ; ; NV8 # 1.1 ARABIC PERCENT
SIGN..ARABIC FIVE POINTED STAR
+066E..066F ; valid # 3.2 ARABIC LETTER
DOTLESS BEH..ARABIC LETTER DOTLESS QAF
+0670..0674 ; valid # 1.1 ARABIC LETTER
SUPERSCRIPT ALEF..ARABIC LETTER HIGH HAMZA
+0675 ; mapped ; 0627 0674 # 1.1 ARABIC LETTER
HIGH HAMZA ALEF
+0676 ; mapped ; 0648 0674 # 1.1 ARABIC LETTER
HIGH HAMZA WAW
+0677 ; mapped ; 06C7 0674 # 1.1 ARABIC LETTER U
WITH HAMZA ABOVE
+0678 ; mapped ; 064A 0674 # 1.1 ARABIC LETTER
HIGH HAMZA YEH
+0679..06B7 ; valid # 1.1 ARABIC LETTER
TTEH..ARABIC LETTER LAM WITH THREE DOTS ABOVE
+06B8..06B9 ; valid # 3.0 ARABIC LETTER
LAM WITH THREE DOTS BELOW..ARABIC LETTER NOON WITH DOT BELOW
+06BA..06BE ; valid # 1.1 ARABIC LETTER
NOON GHUNNA..ARABIC LETTER HEH DOACHASHMEE
+06BF ; valid # 3.0 ARABIC LETTER
TCHEH WITH DOT ABOVE
+06C0..06CE ; valid # 1.1 ARABIC LETTER
HEH WITH YEH ABOVE..ARABIC LETTER YEH WITH SMALL V
+06CF ; valid # 3.0 ARABIC LETTER
WAW WITH DOT ABOVE
+06D0..06D3 ; valid # 1.1 ARABIC LETTER
E..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D4 ; valid ; ; NV8 # 1.1 ARABIC FULL STOP
+06D5..06DC ; valid # 1.1 ARABIC LETTER
AE..ARABIC SMALL HIGH SEEN
+06DD ; disallowed # 1.1 ARABIC END OF
AYAH
+06DE ; valid ; ; NV8 # 1.1 ARABIC START OF
RUB EL HIZB
+06DF..06E8 ; valid # 1.1 ARABIC SMALL
HIGH ROUNDED ZERO..ARABIC SMALL HIGH NOON
+06E9 ; valid ; ; NV8 # 1.1 ARABIC PLACE OF
SAJDAH
+06EA..06ED ; valid # 1.1 ARABIC EMPTY
CENTRE LOW STOP..ARABIC SMALL LOW MEEM
+06EE..06EF ; valid # 4.0 ARABIC LETTER
DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
+06F0..06F9 ; valid # 1.1 EXTENDED
ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
+06FA..06FE ; valid # 3.0 ARABIC LETTER
SHEEN WITH DOT BELOW..ARABIC SIGN SINDHI POSTPOSITION MEN
+06FF ; valid # 4.0 ARABIC LETTER
HEH WITH INVERTED V
+0700..070D ; valid ; ; NV8 # 3.0 SYRIAC END OF
PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
+070E ; disallowed # NA <reserved-070E>
+070F ; disallowed # 3.0 SYRIAC
ABBREVIATION MARK
+0710..072C ; valid # 3.0 SYRIAC LETTER
ALAPH..SYRIAC LETTER TAW
+072D..072F ; valid # 4.0 SYRIAC LETTER
PERSIAN BHETH..SYRIAC LETTER PERSIAN DHALATH
+0730..074A ; valid # 3.0 SYRIAC PTHAHA
ABOVE..SYRIAC BARREKH
+074B..074C ; disallowed # NA
<reserved-074B>..<reserved-074C>
+074D..074F ; valid # 4.0 SYRIAC LETTER
SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE
+0750..076D ; valid # 4.1 ARABIC LETTER
BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER SEEN WITH TWO DOTS
VERTICALLY ABOVE
+076E..077F ; valid # 5.1 ARABIC LETTER
HAH WITH SMALL ARABIC LETTER TAH BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
+0780..07B0 ; valid # 3.0 THAANA LETTER
HAA..THAANA SUKUN
+07B1 ; valid # 3.2 THAANA LETTER NAA
+07B2..07BF ; disallowed # NA
<reserved-07B2>..<reserved-07BF>
+07C0..07F5 ; valid # 5.0 NKO DIGIT
ZERO..NKO LOW TONE APOSTROPHE
+07F6..07FA ; valid ; ; NV8 # 5.0 NKO SYMBOL OO
DENNEN..NKO LAJANYALAN
+07FB..07FC ; disallowed # NA
<reserved-07FB>..<reserved-07FC>
+07FD ; valid # 11.0 NKO DANTAYALAN
+07FE..07FF ; valid ; ; NV8 # 11.0 NKO DOROME
SIGN..NKO TAMAN SIGN
+0800..082D ; valid # 5.2 SAMARITAN LETTER
ALAF..SAMARITAN MARK NEQUDAA
+082E..082F ; disallowed # NA
<reserved-082E>..<reserved-082F>
+0830..083E ; valid ; ; NV8 # 5.2 SAMARITAN
PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
+083F ; disallowed # NA <reserved-083F>
+0840..085B ; valid # 6.0 MANDAIC LETTER
HALQA..MANDAIC GEMINATION MARK
+085C..085D ; disallowed # NA
<reserved-085C>..<reserved-085D>
+085E ; valid ; ; NV8 # 6.0 MANDAIC
PUNCTUATION
+085F ; disallowed # NA <reserved-085F>
+0860..086A ; valid # 10.0 SYRIAC LETTER
MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
+086B..086F ; disallowed # NA
<reserved-086B>..<reserved-086F>
+0870..0887 ; valid # 14.0 ARABIC LETTER
ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
+0888 ; valid ; ; NV8 # 14.0 ARABIC RAISED
ROUND DOT
+0889..088E ; valid # 14.0 ARABIC LETTER
NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
+088F ; disallowed # NA <reserved-088F>
+0890..0891 ; disallowed # 14.0 ARABIC POUND
MARK ABOVE..ARABIC PIASTRE MARK ABOVE
+0892..0897 ; disallowed # NA
<reserved-0892>..<reserved-0897>
+0898..089F ; valid # 14.0 ARABIC SMALL
HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
+08A0 ; valid # 6.1 ARABIC LETTER
BEH WITH SMALL V BELOW
+08A1 ; valid # 7.0 ARABIC LETTER
BEH WITH HAMZA ABOVE
+08A2..08AC ; valid # 6.1 ARABIC LETTER
JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
+08AD..08B2 ; valid # 7.0 ARABIC LETTER
LOW ALEF..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
+08B3..08B4 ; valid # 8.0 ARABIC LETTER
AIN WITH THREE DOTS BELOW..ARABIC LETTER KAF WITH DOT BELOW
+08B5 ; valid # 14.0 ARABIC LETTER
QAF WITH DOT BELOW AND NO DOTS ABOVE
+08B6..08BD ; valid # 9.0 ARABIC LETTER
BEH WITH SMALL MEEM ABOVE..ARABIC LETTER AFRICAN NOON
+08BE..08C7 ; valid # 13.0 ARABIC LETTER
PEH WITH SMALL V..ARABIC LETTER LAM WITH SMALL ARABIC LETTER TAH ABOVE
+08C8..08D2 ; valid # 14.0 ARABIC LETTER
GRAF..ARABIC LARGE ROUND DOT INSIDE CIRCLE BELOW
+08D3 ; valid # 11.0 ARABIC SMALL LOW
WAW
+08D4..08E1 ; valid # 9.0 ARABIC SMALL
HIGH WORD AR-RUB..ARABIC SMALL HIGH SIGN SAFHA
+08E2 ; disallowed # 9.0 ARABIC DISPUTED
END OF AYAH
+08E3 ; valid # 8.0 ARABIC TURNED
DAMMA BELOW
+08E4..08FE ; valid # 6.1 ARABIC CURLY
FATHA..ARABIC DAMMA WITH DOT
+08FF ; valid # 7.0 ARABIC MARK
SIDEWAYS NOON GHUNNA
+0900 ; valid # 5.2 DEVANAGARI SIGN
INVERTED CANDRABINDU
+0901..0903 ; valid # 1.1 DEVANAGARI SIGN
CANDRABINDU..DEVANAGARI SIGN VISARGA
+0904 ; valid # 4.0 DEVANAGARI
LETTER SHORT A
+0905..0939 ; valid # 1.1 DEVANAGARI
LETTER A..DEVANAGARI LETTER HA
+093A..093B ; valid # 6.0 DEVANAGARI VOWEL
SIGN OE..DEVANAGARI VOWEL SIGN OOE
+093C..094D ; valid # 1.1 DEVANAGARI SIGN
NUKTA..DEVANAGARI SIGN VIRAMA
+094E ; valid # 5.2 DEVANAGARI VOWEL
SIGN PRISHTHAMATRA E
+094F ; valid # 6.0 DEVANAGARI VOWEL
SIGN AW
+0950..0954 ; valid # 1.1 DEVANAGARI
OM..DEVANAGARI ACUTE ACCENT
+0955 ; valid # 5.2 DEVANAGARI VOWEL
SIGN CANDRA LONG E
+0956..0957 ; valid # 6.0 DEVANAGARI VOWEL
SIGN UE..DEVANAGARI VOWEL SIGN UUE
+0958 ; mapped ; 0915 093C # 1.1 DEVANAGARI
LETTER QA
+0959 ; mapped ; 0916 093C # 1.1 DEVANAGARI
LETTER KHHA
+095A ; mapped ; 0917 093C # 1.1 DEVANAGARI
LETTER GHHA
+095B ; mapped ; 091C 093C # 1.1 DEVANAGARI
LETTER ZA
+095C ; mapped ; 0921 093C # 1.1 DEVANAGARI
LETTER DDDHA
+095D ; mapped ; 0922 093C # 1.1 DEVANAGARI
LETTER RHA
+095E ; mapped ; 092B 093C # 1.1 DEVANAGARI
LETTER FA
+095F ; mapped ; 092F 093C # 1.1 DEVANAGARI
LETTER YYA
+0960..0963 ; valid # 1.1 DEVANAGARI
LETTER VOCALIC RR..DEVANAGARI VOWEL SIGN VOCALIC LL
+0964..0965 ; valid ; ; NV8 # 1.1 DEVANAGARI
DANDA..DEVANAGARI DOUBLE DANDA
+0966..096F ; valid # 1.1 DEVANAGARI DIGIT
ZERO..DEVANAGARI DIGIT NINE
+0970 ; valid ; ; NV8 # 1.1 DEVANAGARI
ABBREVIATION SIGN
+0971..0972 ; valid # 5.1 DEVANAGARI SIGN
HIGH SPACING DOT..DEVANAGARI LETTER CANDRA A
+0973..0977 ; valid # 6.0 DEVANAGARI
LETTER OE..DEVANAGARI LETTER UUE
+0978 ; valid # 7.0 DEVANAGARI
LETTER MARWARI DDA
+0979..097A ; valid # 5.2 DEVANAGARI
LETTER ZHA..DEVANAGARI LETTER HEAVY YA
+097B..097C ; valid # 5.0 DEVANAGARI
LETTER GGA..DEVANAGARI LETTER JJA
+097D ; valid # 4.1 DEVANAGARI
LETTER GLOTTAL STOP
+097E..097F ; valid # 5.0 DEVANAGARI
LETTER DDDA..DEVANAGARI LETTER BBA
+0980 ; valid # 7.0 BENGALI ANJI
+0981..0983 ; valid # 1.1 BENGALI SIGN
CANDRABINDU..BENGALI SIGN VISARGA
+0984 ; disallowed # NA <reserved-0984>
+0985..098C ; valid # 1.1 BENGALI LETTER
A..BENGALI LETTER VOCALIC L
+098D..098E ; disallowed # NA
<reserved-098D>..<reserved-098E>
+098F..0990 ; valid # 1.1 BENGALI LETTER
E..BENGALI LETTER AI
+0991..0992 ; disallowed # NA
<reserved-0991>..<reserved-0992>
+0993..09A8 ; valid # 1.1 BENGALI LETTER
O..BENGALI LETTER NA
+09A9 ; disallowed # NA <reserved-09A9>
+09AA..09B0 ; valid # 1.1 BENGALI LETTER
PA..BENGALI LETTER RA
+09B1 ; disallowed # NA <reserved-09B1>
+09B2 ; valid # 1.1 BENGALI LETTER LA
+09B3..09B5 ; disallowed # NA
<reserved-09B3>..<reserved-09B5>
+09B6..09B9 ; valid # 1.1 BENGALI LETTER
SHA..BENGALI LETTER HA
+09BA..09BB ; disallowed # NA
<reserved-09BA>..<reserved-09BB>
+09BC ; valid # 1.1 BENGALI SIGN
NUKTA
+09BD ; valid # 4.0 BENGALI SIGN
AVAGRAHA
+09BE..09C4 ; valid # 1.1 BENGALI VOWEL
SIGN AA..BENGALI VOWEL SIGN VOCALIC RR
+09C5..09C6 ; disallowed # NA
<reserved-09C5>..<reserved-09C6>
+09C7..09C8 ; valid # 1.1 BENGALI VOWEL
SIGN E..BENGALI VOWEL SIGN AI
+09C9..09CA ; disallowed # NA
<reserved-09C9>..<reserved-09CA>
+09CB..09CD ; valid # 1.1 BENGALI VOWEL
SIGN O..BENGALI SIGN VIRAMA
+09CE ; valid # 4.1 BENGALI LETTER
KHANDA TA
+09CF..09D6 ; disallowed # NA
<reserved-09CF>..<reserved-09D6>
+09D7 ; valid # 1.1 BENGALI AU
LENGTH MARK
+09D8..09DB ; disallowed # NA
<reserved-09D8>..<reserved-09DB>
+09DC ; mapped ; 09A1 09BC # 1.1 BENGALI LETTER
RRA
+09DD ; mapped ; 09A2 09BC # 1.1 BENGALI LETTER
RHA
+09DE ; disallowed # NA <reserved-09DE>
+09DF ; mapped ; 09AF 09BC # 1.1 BENGALI LETTER
YYA
+09E0..09E3 ; valid # 1.1 BENGALI LETTER
VOCALIC RR..BENGALI VOWEL SIGN VOCALIC LL
+09E4..09E5 ; disallowed # NA
<reserved-09E4>..<reserved-09E5>
+09E6..09F1 ; valid # 1.1 BENGALI DIGIT
ZERO..BENGALI LETTER RA WITH LOWER DIAGONAL
+09F2..09FA ; valid ; ; NV8 # 1.1 BENGALI RUPEE
MARK..BENGALI ISSHAR
+09FB ; valid ; ; NV8 # 5.2 BENGALI GANDA
MARK
+09FC ; valid # 10.0 BENGALI LETTER
VEDIC ANUSVARA
+09FD ; valid ; ; NV8 # 10.0 BENGALI
ABBREVIATION SIGN
+09FE ; valid # 11.0 BENGALI SANDHI
MARK
+09FF..0A00 ; disallowed # NA
<reserved-09FF>..<reserved-0A00>
+0A01 ; valid # 4.0 GURMUKHI SIGN
ADAK BINDI
+0A02 ; valid # 1.1 GURMUKHI SIGN
BINDI
+0A03 ; valid # 4.0 GURMUKHI SIGN
VISARGA
+0A04 ; disallowed # NA <reserved-0A04>
+0A05..0A0A ; valid # 1.1 GURMUKHI LETTER
A..GURMUKHI LETTER UU
+0A0B..0A0E ; disallowed # NA
<reserved-0A0B>..<reserved-0A0E>
+0A0F..0A10 ; valid # 1.1 GURMUKHI LETTER
EE..GURMUKHI LETTER AI
+0A11..0A12 ; disallowed # NA
<reserved-0A11>..<reserved-0A12>
+0A13..0A28 ; valid # 1.1 GURMUKHI LETTER
OO..GURMUKHI LETTER NA
+0A29 ; disallowed # NA <reserved-0A29>
+0A2A..0A30 ; valid # 1.1 GURMUKHI LETTER
PA..GURMUKHI LETTER RA
+0A31 ; disallowed # NA <reserved-0A31>
+0A32 ; valid # 1.1 GURMUKHI LETTER
LA
+0A33 ; mapped ; 0A32 0A3C # 1.1 GURMUKHI LETTER
LLA
+0A34 ; disallowed # NA <reserved-0A34>
+0A35 ; valid # 1.1 GURMUKHI LETTER
VA
+0A36 ; mapped ; 0A38 0A3C # 1.1 GURMUKHI LETTER
SHA
+0A37 ; disallowed # NA <reserved-0A37>
+0A38..0A39 ; valid # 1.1 GURMUKHI LETTER
SA..GURMUKHI LETTER HA
+0A3A..0A3B ; disallowed # NA
<reserved-0A3A>..<reserved-0A3B>
+0A3C ; valid # 1.1 GURMUKHI SIGN
NUKTA
+0A3D ; disallowed # NA <reserved-0A3D>
+0A3E..0A42 ; valid # 1.1 GURMUKHI VOWEL
SIGN AA..GURMUKHI VOWEL SIGN UU
+0A43..0A46 ; disallowed # NA
<reserved-0A43>..<reserved-0A46>
+0A47..0A48 ; valid # 1.1 GURMUKHI VOWEL
SIGN EE..GURMUKHI VOWEL SIGN AI
+0A49..0A4A ; disallowed # NA
<reserved-0A49>..<reserved-0A4A>
+0A4B..0A4D ; valid # 1.1 GURMUKHI VOWEL
SIGN OO..GURMUKHI SIGN VIRAMA
+0A4E..0A50 ; disallowed # NA
<reserved-0A4E>..<reserved-0A50>
+0A51 ; valid # 5.1 GURMUKHI SIGN
UDAAT
+0A52..0A58 ; disallowed # NA
<reserved-0A52>..<reserved-0A58>
+0A59 ; mapped ; 0A16 0A3C # 1.1 GURMUKHI LETTER
KHHA
+0A5A ; mapped ; 0A17 0A3C # 1.1 GURMUKHI LETTER
GHHA
+0A5B ; mapped ; 0A1C 0A3C # 1.1 GURMUKHI LETTER
ZA
+0A5C ; valid # 1.1 GURMUKHI LETTER
RRA
+0A5D ; disallowed # NA <reserved-0A5D>
+0A5E ; mapped ; 0A2B 0A3C # 1.1 GURMUKHI LETTER
FA
+0A5F..0A65 ; disallowed # NA
<reserved-0A5F>..<reserved-0A65>
+0A66..0A74 ; valid # 1.1 GURMUKHI DIGIT
ZERO..GURMUKHI EK ONKAR
+0A75 ; valid # 5.1 GURMUKHI SIGN
YAKASH
+0A76 ; valid ; ; NV8 # 11.0 GURMUKHI
ABBREVIATION SIGN
+0A77..0A80 ; disallowed # NA
<reserved-0A77>..<reserved-0A80>
+0A81..0A83 ; valid # 1.1 GUJARATI SIGN
CANDRABINDU..GUJARATI SIGN VISARGA
+0A84 ; disallowed # NA <reserved-0A84>
+0A85..0A8B ; valid # 1.1 GUJARATI LETTER
A..GUJARATI LETTER VOCALIC R
+0A8C ; valid # 4.0 GUJARATI LETTER
VOCALIC L
+0A8D ; valid # 1.1 GUJARATI VOWEL
CANDRA E
+0A8E ; disallowed # NA <reserved-0A8E>
+0A8F..0A91 ; valid # 1.1 GUJARATI LETTER
E..GUJARATI VOWEL CANDRA O
+0A92 ; disallowed # NA <reserved-0A92>
+0A93..0AA8 ; valid # 1.1 GUJARATI LETTER
O..GUJARATI LETTER NA
+0AA9 ; disallowed # NA <reserved-0AA9>
+0AAA..0AB0 ; valid # 1.1 GUJARATI LETTER
PA..GUJARATI LETTER RA
+0AB1 ; disallowed # NA <reserved-0AB1>
+0AB2..0AB3 ; valid # 1.1 GUJARATI LETTER
LA..GUJARATI LETTER LLA
+0AB4 ; disallowed # NA <reserved-0AB4>
+0AB5..0AB9 ; valid # 1.1 GUJARATI LETTER
VA..GUJARATI LETTER HA
+0ABA..0ABB ; disallowed # NA
<reserved-0ABA>..<reserved-0ABB>
+0ABC..0AC5 ; valid # 1.1 GUJARATI SIGN
NUKTA..GUJARATI VOWEL SIGN CANDRA E
+0AC6 ; disallowed # NA <reserved-0AC6>
+0AC7..0AC9 ; valid # 1.1 GUJARATI VOWEL
SIGN E..GUJARATI VOWEL SIGN CANDRA O
+0ACA ; disallowed # NA <reserved-0ACA>
+0ACB..0ACD ; valid # 1.1 GUJARATI VOWEL
SIGN O..GUJARATI SIGN VIRAMA
+0ACE..0ACF ; disallowed # NA
<reserved-0ACE>..<reserved-0ACF>
+0AD0 ; valid # 1.1 GUJARATI OM
+0AD1..0ADF ; disallowed # NA
<reserved-0AD1>..<reserved-0ADF>
+0AE0 ; valid # 1.1 GUJARATI LETTER
VOCALIC RR
+0AE1..0AE3 ; valid # 4.0 GUJARATI LETTER
VOCALIC LL..GUJARATI VOWEL SIGN VOCALIC LL
+0AE4..0AE5 ; disallowed # NA
<reserved-0AE4>..<reserved-0AE5>
+0AE6..0AEF ; valid # 1.1 GUJARATI DIGIT
ZERO..GUJARATI DIGIT NINE
+0AF0 ; valid ; ; NV8 # 6.1 GUJARATI
ABBREVIATION SIGN
+0AF1 ; valid ; ; NV8 # 4.0 GUJARATI RUPEE
SIGN
+0AF2..0AF8 ; disallowed # NA
<reserved-0AF2>..<reserved-0AF8>
+0AF9 ; valid # 8.0 GUJARATI LETTER
ZHA
+0AFA..0AFF ; valid # 10.0 GUJARATI SIGN
SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
+0B00 ; disallowed # NA <reserved-0B00>
+0B01..0B03 ; valid # 1.1 ORIYA SIGN
CANDRABINDU..ORIYA SIGN VISARGA
+0B04 ; disallowed # NA <reserved-0B04>
+0B05..0B0C ; valid # 1.1 ORIYA LETTER
A..ORIYA LETTER VOCALIC L
+0B0D..0B0E ; disallowed # NA
<reserved-0B0D>..<reserved-0B0E>
+0B0F..0B10 ; valid # 1.1 ORIYA LETTER
E..ORIYA LETTER AI
+0B11..0B12 ; disallowed # NA
<reserved-0B11>..<reserved-0B12>
+0B13..0B28 ; valid # 1.1 ORIYA LETTER
O..ORIYA LETTER NA
+0B29 ; disallowed # NA <reserved-0B29>
+0B2A..0B30 ; valid # 1.1 ORIYA LETTER
PA..ORIYA LETTER RA
+0B31 ; disallowed # NA <reserved-0B31>
+0B32..0B33 ; valid # 1.1 ORIYA LETTER
LA..ORIYA LETTER LLA
+0B34 ; disallowed # NA <reserved-0B34>
+0B35 ; valid # 4.0 ORIYA LETTER VA
+0B36..0B39 ; valid # 1.1 ORIYA LETTER
SHA..ORIYA LETTER HA
+0B3A..0B3B ; disallowed # NA
<reserved-0B3A>..<reserved-0B3B>
+0B3C..0B43 ; valid # 1.1 ORIYA SIGN
NUKTA..ORIYA VOWEL SIGN VOCALIC R
+0B44 ; valid # 5.1 ORIYA VOWEL SIGN
VOCALIC RR
+0B45..0B46 ; disallowed # NA
<reserved-0B45>..<reserved-0B46>
+0B47..0B48 ; valid # 1.1 ORIYA VOWEL SIGN
E..ORIYA VOWEL SIGN AI
+0B49..0B4A ; disallowed # NA
<reserved-0B49>..<reserved-0B4A>
+0B4B..0B4D ; valid # 1.1 ORIYA VOWEL SIGN
O..ORIYA SIGN VIRAMA
+0B4E..0B54 ; disallowed # NA
<reserved-0B4E>..<reserved-0B54>
+0B55 ; valid # 13.0 ORIYA SIGN
OVERLINE
+0B56..0B57 ; valid # 1.1 ORIYA AI LENGTH
MARK..ORIYA AU LENGTH MARK
+0B58..0B5B ; disallowed # NA
<reserved-0B58>..<reserved-0B5B>
+0B5C ; mapped ; 0B21 0B3C # 1.1 ORIYA LETTER RRA
+0B5D ; mapped ; 0B22 0B3C # 1.1 ORIYA LETTER RHA
+0B5E ; disallowed # NA <reserved-0B5E>
+0B5F..0B61 ; valid # 1.1 ORIYA LETTER
YYA..ORIYA LETTER VOCALIC LL
+0B62..0B63 ; valid # 5.1 ORIYA VOWEL SIGN
VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
+0B64..0B65 ; disallowed # NA
<reserved-0B64>..<reserved-0B65>
+0B66..0B6F ; valid # 1.1 ORIYA DIGIT
ZERO..ORIYA DIGIT NINE
+0B70 ; valid ; ; NV8 # 1.1 ORIYA ISSHAR
+0B71 ; valid # 4.0 ORIYA LETTER WA
+0B72..0B77 ; valid ; ; NV8 # 6.0 ORIYA FRACTION
ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS
+0B78..0B81 ; disallowed # NA
<reserved-0B78>..<reserved-0B81>
+0B82..0B83 ; valid # 1.1 TAMIL SIGN
ANUSVARA..TAMIL SIGN VISARGA
+0B84 ; disallowed # NA <reserved-0B84>
+0B85..0B8A ; valid # 1.1 TAMIL LETTER
A..TAMIL LETTER UU
+0B8B..0B8D ; disallowed # NA
<reserved-0B8B>..<reserved-0B8D>
+0B8E..0B90 ; valid # 1.1 TAMIL LETTER
E..TAMIL LETTER AI
+0B91 ; disallowed # NA <reserved-0B91>
+0B92..0B95 ; valid # 1.1 TAMIL LETTER
O..TAMIL LETTER KA
+0B96..0B98 ; disallowed # NA
<reserved-0B96>..<reserved-0B98>
+0B99..0B9A ; valid # 1.1 TAMIL LETTER
NGA..TAMIL LETTER CA
+0B9B ; disallowed # NA <reserved-0B9B>
+0B9C ; valid # 1.1 TAMIL LETTER JA
+0B9D ; disallowed # NA <reserved-0B9D>
+0B9E..0B9F ; valid # 1.1 TAMIL LETTER
NYA..TAMIL LETTER TTA
+0BA0..0BA2 ; disallowed # NA
<reserved-0BA0>..<reserved-0BA2>
+0BA3..0BA4 ; valid # 1.1 TAMIL LETTER
NNA..TAMIL LETTER TA
+0BA5..0BA7 ; disallowed # NA
<reserved-0BA5>..<reserved-0BA7>
+0BA8..0BAA ; valid # 1.1 TAMIL LETTER
NA..TAMIL LETTER PA
+0BAB..0BAD ; disallowed # NA
<reserved-0BAB>..<reserved-0BAD>
+0BAE..0BB5 ; valid # 1.1 TAMIL LETTER
MA..TAMIL LETTER VA
+0BB6 ; valid # 4.1 TAMIL LETTER SHA
+0BB7..0BB9 ; valid # 1.1 TAMIL LETTER
SSA..TAMIL LETTER HA
+0BBA..0BBD ; disallowed # NA
<reserved-0BBA>..<reserved-0BBD>
+0BBE..0BC2 ; valid # 1.1 TAMIL VOWEL SIGN
AA..TAMIL VOWEL SIGN UU
+0BC3..0BC5 ; disallowed # NA
<reserved-0BC3>..<reserved-0BC5>
+0BC6..0BC8 ; valid # 1.1 TAMIL VOWEL SIGN
E..TAMIL VOWEL SIGN AI
+0BC9 ; disallowed # NA <reserved-0BC9>
+0BCA..0BCD ; valid # 1.1 TAMIL VOWEL SIGN
O..TAMIL SIGN VIRAMA
+0BCE..0BCF ; disallowed # NA
<reserved-0BCE>..<reserved-0BCF>
+0BD0 ; valid # 5.1 TAMIL OM
+0BD1..0BD6 ; disallowed # NA
<reserved-0BD1>..<reserved-0BD6>
+0BD7 ; valid # 1.1 TAMIL AU LENGTH
MARK
+0BD8..0BE5 ; disallowed # NA
<reserved-0BD8>..<reserved-0BE5>
+0BE6 ; valid # 4.1 TAMIL DIGIT ZERO
+0BE7..0BEF ; valid # 1.1 TAMIL DIGIT
ONE..TAMIL DIGIT NINE
+0BF0..0BF2 ; valid ; ; NV8 # 1.1 TAMIL NUMBER
TEN..TAMIL NUMBER ONE THOUSAND
+0BF3..0BFA ; valid ; ; NV8 # 4.0 TAMIL DAY
SIGN..TAMIL NUMBER SIGN
+0BFB..0BFF ; disallowed # NA
<reserved-0BFB>..<reserved-0BFF>
+0C00 ; valid # 7.0 TELUGU SIGN
COMBINING CANDRABINDU ABOVE
+0C01..0C03 ; valid # 1.1 TELUGU SIGN
CANDRABINDU..TELUGU SIGN VISARGA
+0C04 ; valid # 11.0 TELUGU SIGN
COMBINING ANUSVARA ABOVE
+0C05..0C0C ; valid # 1.1 TELUGU LETTER
A..TELUGU LETTER VOCALIC L
+0C0D ; disallowed # NA <reserved-0C0D>
+0C0E..0C10 ; valid # 1.1 TELUGU LETTER
E..TELUGU LETTER AI
+0C11 ; disallowed # NA <reserved-0C11>
+0C12..0C28 ; valid # 1.1 TELUGU LETTER
O..TELUGU LETTER NA
+0C29 ; disallowed # NA <reserved-0C29>
+0C2A..0C33 ; valid # 1.1 TELUGU LETTER
PA..TELUGU LETTER LLA
+0C34 ; valid # 7.0 TELUGU LETTER
LLLA
+0C35..0C39 ; valid # 1.1 TELUGU LETTER
VA..TELUGU LETTER HA
+0C3A..0C3B ; disallowed # NA
<reserved-0C3A>..<reserved-0C3B>
+0C3C ; valid # 14.0 TELUGU SIGN NUKTA
+0C3D ; valid # 5.1 TELUGU SIGN
AVAGRAHA
+0C3E..0C44 ; valid # 1.1 TELUGU VOWEL
SIGN AA..TELUGU VOWEL SIGN VOCALIC RR
+0C45 ; disallowed # NA <reserved-0C45>
+0C46..0C48 ; valid # 1.1 TELUGU VOWEL
SIGN E..TELUGU VOWEL SIGN AI
+0C49 ; disallowed # NA <reserved-0C49>
+0C4A..0C4D ; valid # 1.1 TELUGU VOWEL
SIGN O..TELUGU SIGN VIRAMA
+0C4E..0C54 ; disallowed # NA
<reserved-0C4E>..<reserved-0C54>
+0C55..0C56 ; valid # 1.1 TELUGU LENGTH
MARK..TELUGU AI LENGTH MARK
+0C57 ; disallowed # NA <reserved-0C57>
+0C58..0C59 ; valid # 5.1 TELUGU LETTER
TSA..TELUGU LETTER DZA
+0C5A ; valid # 8.0 TELUGU LETTER
RRRA
+0C5B..0C5C ; disallowed # NA
<reserved-0C5B>..<reserved-0C5C>
+0C5D ; valid # 14.0 TELUGU LETTER
NAKAARA POLLU
+0C5E..0C5F ; disallowed # NA
<reserved-0C5E>..<reserved-0C5F>
+0C60..0C61 ; valid # 1.1 TELUGU LETTER
VOCALIC RR..TELUGU LETTER VOCALIC LL
+0C62..0C63 ; valid # 5.1 TELUGU VOWEL
SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C64..0C65 ; disallowed # NA
<reserved-0C64>..<reserved-0C65>
+0C66..0C6F ; valid # 1.1 TELUGU DIGIT
ZERO..TELUGU DIGIT NINE
+0C70..0C76 ; disallowed # NA
<reserved-0C70>..<reserved-0C76>
+0C77 ; valid ; ; NV8 # 12.0 TELUGU SIGN
SIDDHAM
+0C78..0C7F ; valid ; ; NV8 # 5.1 TELUGU FRACTION
DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU SIGN TUUMU
+0C80 ; valid # 9.0 KANNADA SIGN
SPACING CANDRABINDU
+0C81 ; valid # 7.0 KANNADA SIGN
CANDRABINDU
+0C82..0C83 ; valid # 1.1 KANNADA SIGN
ANUSVARA..KANNADA SIGN VISARGA
+0C84 ; valid ; ; NV8 # 11.0 KANNADA SIGN
SIDDHAM
+0C85..0C8C ; valid # 1.1 KANNADA LETTER
A..KANNADA LETTER VOCALIC L
+0C8D ; disallowed # NA <reserved-0C8D>
+0C8E..0C90 ; valid # 1.1 KANNADA LETTER
E..KANNADA LETTER AI
+0C91 ; disallowed # NA <reserved-0C91>
+0C92..0CA8 ; valid # 1.1 KANNADA LETTER
O..KANNADA LETTER NA
+0CA9 ; disallowed # NA <reserved-0CA9>
+0CAA..0CB3 ; valid # 1.1 KANNADA LETTER
PA..KANNADA LETTER LLA
+0CB4 ; disallowed # NA <reserved-0CB4>
+0CB5..0CB9 ; valid # 1.1 KANNADA LETTER
VA..KANNADA LETTER HA
+0CBA..0CBB ; disallowed # NA
<reserved-0CBA>..<reserved-0CBB>
+0CBC..0CBD ; valid # 4.0 KANNADA SIGN
NUKTA..KANNADA SIGN AVAGRAHA
+0CBE..0CC4 ; valid # 1.1 KANNADA VOWEL
SIGN AA..KANNADA VOWEL SIGN VOCALIC RR
+0CC5 ; disallowed # NA <reserved-0CC5>
+0CC6..0CC8 ; valid # 1.1 KANNADA VOWEL
SIGN E..KANNADA VOWEL SIGN AI
+0CC9 ; disallowed # NA <reserved-0CC9>
+0CCA..0CCD ; valid # 1.1 KANNADA VOWEL
SIGN O..KANNADA SIGN VIRAMA
+0CCE..0CD4 ; disallowed # NA
<reserved-0CCE>..<reserved-0CD4>
+0CD5..0CD6 ; valid # 1.1 KANNADA LENGTH
MARK..KANNADA AI LENGTH MARK
+0CD7..0CDC ; disallowed # NA
<reserved-0CD7>..<reserved-0CDC>
+0CDD ; valid # 14.0 KANNADA LETTER
NAKAARA POLLU
+0CDE ; valid # 1.1 KANNADA LETTER FA
+0CDF ; disallowed # NA <reserved-0CDF>
+0CE0..0CE1 ; valid # 1.1 KANNADA LETTER
VOCALIC RR..KANNADA LETTER VOCALIC LL
+0CE2..0CE3 ; valid # 5.0 KANNADA VOWEL
SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CE4..0CE5 ; disallowed # NA
<reserved-0CE4>..<reserved-0CE5>
+0CE6..0CEF ; valid # 1.1 KANNADA DIGIT
ZERO..KANNADA DIGIT NINE
+0CF0 ; disallowed # NA <reserved-0CF0>
+0CF1..0CF2 ; valid # 5.0 KANNADA SIGN
JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3..0CFF ; disallowed # NA
<reserved-0CF3>..<reserved-0CFF>
+0D00 ; valid # 10.0 MALAYALAM SIGN
COMBINING ANUSVARA ABOVE
+0D01 ; valid # 7.0 MALAYALAM SIGN
CANDRABINDU
+0D02..0D03 ; valid # 1.1 MALAYALAM SIGN
ANUSVARA..MALAYALAM SIGN VISARGA
+0D04 ; valid # 13.0 MALAYALAM LETTER
VEDIC ANUSVARA
+0D05..0D0C ; valid # 1.1 MALAYALAM LETTER
A..MALAYALAM LETTER VOCALIC L
+0D0D ; disallowed # NA <reserved-0D0D>
+0D0E..0D10 ; valid # 1.1 MALAYALAM LETTER
E..MALAYALAM LETTER AI
+0D11 ; disallowed # NA <reserved-0D11>
+0D12..0D28 ; valid # 1.1 MALAYALAM LETTER
O..MALAYALAM LETTER NA
+0D29 ; valid # 6.0 MALAYALAM LETTER
NNNA
+0D2A..0D39 ; valid # 1.1 MALAYALAM LETTER
PA..MALAYALAM LETTER HA
+0D3A ; valid # 6.0 MALAYALAM LETTER
TTTA
+0D3B..0D3C ; valid # 10.0 MALAYALAM SIGN
VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
+0D3D ; valid # 5.1 MALAYALAM SIGN
AVAGRAHA
+0D3E..0D43 ; valid # 1.1 MALAYALAM VOWEL
SIGN AA..MALAYALAM VOWEL SIGN VOCALIC R
+0D44 ; valid # 5.1 MALAYALAM VOWEL
SIGN VOCALIC RR
+0D45 ; disallowed # NA <reserved-0D45>
+0D46..0D48 ; valid # 1.1 MALAYALAM VOWEL
SIGN E..MALAYALAM VOWEL SIGN AI
+0D49 ; disallowed # NA <reserved-0D49>
+0D4A..0D4D ; valid # 1.1 MALAYALAM VOWEL
SIGN O..MALAYALAM SIGN VIRAMA
+0D4E ; valid # 6.0 MALAYALAM LETTER
DOT REPH
+0D4F ; valid ; ; NV8 # 9.0 MALAYALAM SIGN
PARA
+0D50..0D53 ; disallowed # NA
<reserved-0D50>..<reserved-0D53>
+0D54..0D56 ; valid # 9.0 MALAYALAM LETTER
CHILLU M..MALAYALAM LETTER CHILLU LLL
+0D57 ; valid # 1.1 MALAYALAM AU
LENGTH MARK
+0D58..0D5E ; valid ; ; NV8 # 9.0 MALAYALAM
FRACTION ONE ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH
+0D5F ; valid # 8.0 MALAYALAM LETTER
ARCHAIC II
+0D60..0D61 ; valid # 1.1 MALAYALAM LETTER
VOCALIC RR..MALAYALAM LETTER VOCALIC LL
+0D62..0D63 ; valid # 5.1 MALAYALAM VOWEL
SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
+0D64..0D65 ; disallowed # NA
<reserved-0D64>..<reserved-0D65>
+0D66..0D6F ; valid # 1.1 MALAYALAM DIGIT
ZERO..MALAYALAM DIGIT NINE
+0D70..0D75 ; valid ; ; NV8 # 5.1 MALAYALAM NUMBER
TEN..MALAYALAM FRACTION THREE QUARTERS
+0D76..0D78 ; valid ; ; NV8 # 9.0 MALAYALAM
FRACTION ONE SIXTEENTH..MALAYALAM FRACTION THREE SIXTEENTHS
+0D79 ; valid ; ; NV8 # 5.1 MALAYALAM DATE
MARK
+0D7A..0D7F ; valid # 5.1 MALAYALAM LETTER
CHILLU NN..MALAYALAM LETTER CHILLU K
+0D80 ; disallowed # NA <reserved-0D80>
+0D81 ; valid # 13.0 SINHALA SIGN
CANDRABINDU
+0D82..0D83 ; valid # 3.0 SINHALA SIGN
ANUSVARAYA..SINHALA SIGN VISARGAYA
+0D84 ; disallowed # NA <reserved-0D84>
+0D85..0D96 ; valid # 3.0 SINHALA LETTER
AYANNA..SINHALA LETTER AUYANNA
+0D97..0D99 ; disallowed # NA
<reserved-0D97>..<reserved-0D99>
+0D9A..0DB1 ; valid # 3.0 SINHALA LETTER
ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
+0DB2 ; disallowed # NA <reserved-0DB2>
+0DB3..0DBB ; valid # 3.0 SINHALA LETTER
SANYAKA DAYANNA..SINHALA LETTER RAYANNA
+0DBC ; disallowed # NA <reserved-0DBC>
+0DBD ; valid # 3.0 SINHALA LETTER
DANTAJA LAYANNA
+0DBE..0DBF ; disallowed # NA
<reserved-0DBE>..<reserved-0DBF>
+0DC0..0DC6 ; valid # 3.0 SINHALA LETTER
VAYANNA..SINHALA LETTER FAYANNA
+0DC7..0DC9 ; disallowed # NA
<reserved-0DC7>..<reserved-0DC9>
+0DCA ; valid # 3.0 SINHALA SIGN
AL-LAKUNA
+0DCB..0DCE ; disallowed # NA
<reserved-0DCB>..<reserved-0DCE>
+0DCF..0DD4 ; valid # 3.0 SINHALA VOWEL
SIGN AELA-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD5 ; disallowed # NA <reserved-0DD5>
+0DD6 ; valid # 3.0 SINHALA VOWEL
SIGN DIGA PAA-PILLA
+0DD7 ; disallowed # NA <reserved-0DD7>
+0DD8..0DDF ; valid # 3.0 SINHALA VOWEL
SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DE0..0DE5 ; disallowed # NA
<reserved-0DE0>..<reserved-0DE5>
+0DE6..0DEF ; valid # 7.0 SINHALA LITH
DIGIT ZERO..SINHALA LITH DIGIT NINE
+0DF0..0DF1 ; disallowed # NA
<reserved-0DF0>..<reserved-0DF1>
+0DF2..0DF3 ; valid # 3.0 SINHALA VOWEL
SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0DF4 ; valid ; ; NV8 # 3.0 SINHALA
PUNCTUATION KUNDDALIYA
+0DF5..0E00 ; disallowed # NA
<reserved-0DF5>..<reserved-0E00>
+0E01..0E32 ; valid # 1.1 THAI CHARACTER
KO KAI..THAI CHARACTER SARA AA
+0E33 ; mapped ; 0E4D 0E32 # 1.1 THAI CHARACTER
SARA AM
+0E34..0E3A ; valid # 1.1 THAI CHARACTER
SARA I..THAI CHARACTER PHINTHU
+0E3B..0E3E ; disallowed # NA
<reserved-0E3B>..<reserved-0E3E>
+0E3F ; valid ; ; NV8 # 1.1 THAI CURRENCY
SYMBOL BAHT
+0E40..0E4E ; valid # 1.1 THAI CHARACTER
SARA E..THAI CHARACTER YAMAKKAN
+0E4F ; valid ; ; NV8 # 1.1 THAI CHARACTER
FONGMAN
+0E50..0E59 ; valid # 1.1 THAI DIGIT
ZERO..THAI DIGIT NINE
+0E5A..0E5B ; valid ; ; NV8 # 1.1 THAI CHARACTER
ANGKHANKHU..THAI CHARACTER KHOMUT
+0E5C..0E80 ; disallowed # NA
<reserved-0E5C>..<reserved-0E80>
+0E81..0E82 ; valid # 1.1 LAO LETTER
KO..LAO LETTER KHO SUNG
+0E83 ; disallowed # NA <reserved-0E83>
+0E84 ; valid # 1.1 LAO LETTER KHO
TAM
+0E85 ; disallowed # NA <reserved-0E85>
+0E86 ; valid # 12.0 LAO LETTER PALI
GHA
+0E87..0E88 ; valid # 1.1 LAO LETTER
NGO..LAO LETTER CO
+0E89 ; valid # 12.0 LAO LETTER PALI
CHA
+0E8A ; valid # 1.1 LAO LETTER SO TAM
+0E8B ; disallowed # NA <reserved-0E8B>
+0E8C ; valid # 12.0 LAO LETTER PALI
JHA
+0E8D ; valid # 1.1 LAO LETTER NYO
+0E8E..0E93 ; valid # 12.0 LAO LETTER PALI
NYA..LAO LETTER PALI NNA
+0E94..0E97 ; valid # 1.1 LAO LETTER
DO..LAO LETTER THO TAM
+0E98 ; valid # 12.0 LAO LETTER PALI
DHA
+0E99..0E9F ; valid # 1.1 LAO LETTER
NO..LAO LETTER FO SUNG
+0EA0 ; valid # 12.0 LAO LETTER PALI
BHA
+0EA1..0EA3 ; valid # 1.1 LAO LETTER
MO..LAO LETTER LO LING
+0EA4 ; disallowed # NA <reserved-0EA4>
+0EA5 ; valid # 1.1 LAO LETTER LO
LOOT
+0EA6 ; disallowed # NA <reserved-0EA6>
+0EA7 ; valid # 1.1 LAO LETTER WO
+0EA8..0EA9 ; valid # 12.0 LAO LETTER
SANSKRIT SHA..LAO LETTER SANSKRIT SSA
+0EAA..0EAB ; valid # 1.1 LAO LETTER SO
SUNG..LAO LETTER HO SUNG
+0EAC ; valid # 12.0 LAO LETTER PALI
LLA
+0EAD..0EB2 ; valid # 1.1 LAO LETTER
O..LAO VOWEL SIGN AA
+0EB3 ; mapped ; 0ECD 0EB2 # 1.1 LAO VOWEL SIGN AM
+0EB4..0EB9 ; valid # 1.1 LAO VOWEL SIGN
I..LAO VOWEL SIGN UU
+0EBA ; valid # 12.0 LAO SIGN PALI
VIRAMA
+0EBB..0EBD ; valid # 1.1 LAO VOWEL SIGN
MAI KON..LAO SEMIVOWEL SIGN NYO
+0EBE..0EBF ; disallowed # NA
<reserved-0EBE>..<reserved-0EBF>
+0EC0..0EC4 ; valid # 1.1 LAO VOWEL SIGN
E..LAO VOWEL SIGN AI
+0EC5 ; disallowed # NA <reserved-0EC5>
+0EC6 ; valid # 1.1 LAO KO LA
+0EC7 ; disallowed # NA <reserved-0EC7>
+0EC8..0ECD ; valid # 1.1 LAO TONE MAI
EK..LAO NIGGAHITA
+0ECE..0ECF ; disallowed # NA
<reserved-0ECE>..<reserved-0ECF>
+0ED0..0ED9 ; valid # 1.1 LAO DIGIT
ZERO..LAO DIGIT NINE
+0EDA..0EDB ; disallowed # NA
<reserved-0EDA>..<reserved-0EDB>
+0EDC ; mapped ; 0EAB 0E99 # 1.1 LAO HO NO
+0EDD ; mapped ; 0EAB 0EA1 # 1.1 LAO HO MO
+0EDE..0EDF ; valid # 6.1 LAO LETTER KHMU
GO..LAO LETTER KHMU NYO
+0EE0..0EFF ; disallowed # NA
<reserved-0EE0>..<reserved-0EFF>
+0F00 ; valid # 2.0 TIBETAN SYLLABLE
OM
+0F01..0F0A ; valid ; ; NV8 # 2.0 TIBETAN MARK
GTER YIG MGO TRUNCATED A..TIBETAN MARK BKA- SHOG YIG MGO
+0F0B ; valid # 2.0 TIBETAN MARK
INTERSYLLABIC TSHEG
+0F0C ; mapped ; 0F0B # 2.0 TIBETAN MARK
DELIMITER TSHEG BSTAR
+0F0D..0F17 ; valid ; ; NV8 # 2.0 TIBETAN MARK
SHAD..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F18..0F19 ; valid # 2.0 TIBETAN
ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F1A..0F1F ; valid ; ; NV8 # 2.0 TIBETAN SIGN
RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
+0F20..0F29 ; valid # 2.0 TIBETAN DIGIT
ZERO..TIBETAN DIGIT NINE
+0F2A..0F34 ; valid ; ; NV8 # 2.0 TIBETAN DIGIT
HALF ONE..TIBETAN MARK BSDUS RTAGS
+0F35 ; valid # 2.0 TIBETAN MARK
NGAS BZUNG NYI ZLA
+0F36 ; valid ; ; NV8 # 2.0 TIBETAN MARK
CARET -DZUD RTAGS BZHI MIG CAN
+0F37 ; valid # 2.0 TIBETAN MARK
NGAS BZUNG SGOR RTAGS
+0F38 ; valid ; ; NV8 # 2.0 TIBETAN MARK CHE
MGO
+0F39 ; valid # 2.0 TIBETAN MARK TSA
-PHRU
+0F3A..0F3D ; valid ; ; NV8 # 2.0 TIBETAN MARK GUG
RTAGS GYON..TIBETAN MARK ANG KHANG GYAS
+0F3E..0F42 ; valid # 2.0 TIBETAN SIGN YAR
TSHES..TIBETAN LETTER GA
+0F43 ; mapped ; 0F42 0FB7 # 2.0 TIBETAN LETTER
GHA
+0F44..0F47 ; valid # 2.0 TIBETAN LETTER
NGA..TIBETAN LETTER JA
+0F48 ; disallowed # NA <reserved-0F48>
+0F49..0F4C ; valid # 2.0 TIBETAN LETTER
NYA..TIBETAN LETTER DDA
+0F4D ; mapped ; 0F4C 0FB7 # 2.0 TIBETAN LETTER
DDHA
+0F4E..0F51 ; valid # 2.0 TIBETAN LETTER
NNA..TIBETAN LETTER DA
+0F52 ; mapped ; 0F51 0FB7 # 2.0 TIBETAN LETTER
DHA
+0F53..0F56 ; valid # 2.0 TIBETAN LETTER
NA..TIBETAN LETTER BA
+0F57 ; mapped ; 0F56 0FB7 # 2.0 TIBETAN LETTER
BHA
+0F58..0F5B ; valid # 2.0 TIBETAN LETTER
MA..TIBETAN LETTER DZA
+0F5C ; mapped ; 0F5B 0FB7 # 2.0 TIBETAN LETTER
DZHA
+0F5D..0F68 ; valid # 2.0 TIBETAN LETTER
WA..TIBETAN LETTER A
+0F69 ; mapped ; 0F40 0FB5 # 2.0 TIBETAN LETTER
KSSA
+0F6A ; valid # 3.0 TIBETAN LETTER
FIXED-FORM RA
+0F6B..0F6C ; valid # 5.1 TIBETAN LETTER
KKA..TIBETAN LETTER RRA
+0F6D..0F70 ; disallowed # NA
<reserved-0F6D>..<reserved-0F70>
+0F71..0F72 ; valid # 2.0 TIBETAN VOWEL
SIGN AA..TIBETAN VOWEL SIGN I
+0F73 ; mapped ; 0F71 0F72 # 2.0 TIBETAN VOWEL
SIGN II
+0F74 ; valid # 2.0 TIBETAN VOWEL
SIGN U
+0F75 ; mapped ; 0F71 0F74 # 2.0 TIBETAN VOWEL
SIGN UU
+0F76 ; mapped ; 0FB2 0F80 # 2.0 TIBETAN VOWEL
SIGN VOCALIC R
+0F77 ; mapped ; 0FB2 0F71 0F80 #2.0 TIBETAN VOWEL
SIGN VOCALIC RR
+0F78 ; mapped ; 0FB3 0F80 # 2.0 TIBETAN VOWEL
SIGN VOCALIC L
+0F79 ; mapped ; 0FB3 0F71 0F80 #2.0 TIBETAN VOWEL
SIGN VOCALIC LL
+0F7A..0F80 ; valid # 2.0 TIBETAN VOWEL
SIGN E..TIBETAN VOWEL SIGN REVERSED I
+0F81 ; mapped ; 0F71 0F80 # 2.0 TIBETAN VOWEL
SIGN REVERSED II
+0F82..0F84 ; valid # 2.0 TIBETAN SIGN NYI
ZLA NAA DA..TIBETAN MARK HALANTA
+0F85 ; valid ; ; NV8 # 2.0 TIBETAN MARK
PALUTA
+0F86..0F8B ; valid # 2.0 TIBETAN SIGN LCI
RTAGS..TIBETAN SIGN GRU MED RGYINGS
+0F8C..0F8F ; valid # 6.0 TIBETAN SIGN
INVERTED MCHU CAN..TIBETAN SUBJOINED SIGN INVERTED MCHU CAN
+0F90..0F92 ; valid # 2.0 TIBETAN
SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER GA
+0F93 ; mapped ; 0F92 0FB7 # 2.0 TIBETAN
SUBJOINED LETTER GHA
+0F94..0F95 ; valid # 2.0 TIBETAN
SUBJOINED LETTER NGA..TIBETAN SUBJOINED LETTER CA
+0F96 ; valid # 3.0 TIBETAN
SUBJOINED LETTER CHA
+0F97 ; valid # 2.0 TIBETAN
SUBJOINED LETTER JA
+0F98 ; disallowed # NA <reserved-0F98>
+0F99..0F9C ; valid # 2.0 TIBETAN
SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER DDA
+0F9D ; mapped ; 0F9C 0FB7 # 2.0 TIBETAN
SUBJOINED LETTER DDHA
+0F9E..0FA1 ; valid # 2.0 TIBETAN
SUBJOINED LETTER NNA..TIBETAN SUBJOINED LETTER DA
+0FA2 ; mapped ; 0FA1 0FB7 # 2.0 TIBETAN
SUBJOINED LETTER DHA
+0FA3..0FA6 ; valid # 2.0 TIBETAN
SUBJOINED LETTER NA..TIBETAN SUBJOINED LETTER BA
+0FA7 ; mapped ; 0FA6 0FB7 # 2.0 TIBETAN
SUBJOINED LETTER BHA
+0FA8..0FAB ; valid # 2.0 TIBETAN
SUBJOINED LETTER MA..TIBETAN SUBJOINED LETTER DZA
+0FAC ; mapped ; 0FAB 0FB7 # 2.0 TIBETAN
SUBJOINED LETTER DZHA
+0FAD ; valid # 2.0 TIBETAN
SUBJOINED LETTER WA
+0FAE..0FB0 ; valid # 3.0 TIBETAN
SUBJOINED LETTER ZHA..TIBETAN SUBJOINED LETTER -A
+0FB1..0FB7 ; valid # 2.0 TIBETAN
SUBJOINED LETTER YA..TIBETAN SUBJOINED LETTER HA
+0FB8 ; valid # 3.0 TIBETAN
SUBJOINED LETTER A
+0FB9 ; mapped ; 0F90 0FB5 # 2.0 TIBETAN
SUBJOINED LETTER KSSA
+0FBA..0FBC ; valid # 3.0 TIBETAN
SUBJOINED LETTER FIXED-FORM WA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FBD ; disallowed # NA <reserved-0FBD>
+0FBE..0FC5 ; valid ; ; NV8 # 3.0 TIBETAN KU RU
KHA..TIBETAN SYMBOL RDO RJE
+0FC6 ; valid # 3.0 TIBETAN SYMBOL
PADMA GDAN
+0FC7..0FCC ; valid ; ; NV8 # 3.0 TIBETAN SYMBOL
RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
+0FCD ; disallowed # NA <reserved-0FCD>
+0FCE ; valid ; ; NV8 # 5.1 TIBETAN SIGN
RDEL NAG RDEL DKAR
+0FCF ; valid ; ; NV8 # 3.0 TIBETAN SIGN
RDEL NAG GSUM
+0FD0..0FD1 ; valid ; ; NV8 # 4.1 TIBETAN MARK
BSKA- SHOG GI MGO RGYAN..TIBETAN MARK MNYAM YIG GI MGO RGYAN
+0FD2..0FD4 ; valid ; ; NV8 # 5.1 TIBETAN MARK
NYIS TSHEG..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
+0FD5..0FD8 ; valid ; ; NV8 # 5.2 RIGHT-FACING
SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS
+0FD9..0FDA ; valid ; ; NV8 # 6.0 TIBETAN MARK
LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS
+0FDB..0FFF ; disallowed # NA
<reserved-0FDB>..<reserved-0FFF>
+1000..1021 ; valid # 3.0 MYANMAR LETTER
KA..MYANMAR LETTER A
+1022 ; valid # 5.1 MYANMAR LETTER
SHAN A
+1023..1027 ; valid # 3.0 MYANMAR LETTER
I..MYANMAR LETTER E
+1028 ; valid # 5.1 MYANMAR LETTER
MON E
+1029..102A ; valid # 3.0 MYANMAR LETTER
O..MYANMAR LETTER AU
+102B ; valid # 5.1 MYANMAR VOWEL
SIGN TALL AA
+102C..1032 ; valid # 3.0 MYANMAR VOWEL
SIGN AA..MYANMAR VOWEL SIGN AI
+1033..1035 ; valid # 5.1 MYANMAR VOWEL
SIGN MON II..MYANMAR VOWEL SIGN E ABOVE
+1036..1039 ; valid # 3.0 MYANMAR SIGN
ANUSVARA..MYANMAR SIGN VIRAMA
+103A..103F ; valid # 5.1 MYANMAR SIGN
ASAT..MYANMAR LETTER GREAT SA
+1040..1049 ; valid # 3.0 MYANMAR DIGIT
ZERO..MYANMAR DIGIT NINE
+104A..104F ; valid ; ; NV8 # 3.0 MYANMAR SIGN
LITTLE SECTION..MYANMAR SYMBOL GENITIVE
+1050..1059 ; valid # 3.0 MYANMAR LETTER
SHA..MYANMAR VOWEL SIGN VOCALIC LL
+105A..1099 ; valid # 5.1 MYANMAR LETTER
MON NGA..MYANMAR SHAN DIGIT NINE
+109A..109D ; valid # 5.2 MYANMAR SIGN
KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON AI
+109E..109F ; valid ; ; NV8 # 5.1 MYANMAR SYMBOL
SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
+10A0..10C5 ; disallowed # 1.1 GEORGIAN CAPITAL
LETTER AN..GEORGIAN CAPITAL LETTER HOE
+10C6 ; disallowed # NA <reserved-10C6>
+10C7 ; mapped ; 2D27 # 6.1 GEORGIAN CAPITAL
LETTER YN
+10C8..10CC ; disallowed # NA
<reserved-10C8>..<reserved-10CC>
+10CD ; mapped ; 2D2D # 6.1 GEORGIAN CAPITAL
LETTER AEN
+10CE..10CF ; disallowed # NA
<reserved-10CE>..<reserved-10CF>
+10D0..10F6 ; valid # 1.1 GEORGIAN LETTER
AN..GEORGIAN LETTER FI
+10F7..10F8 ; valid # 3.2 GEORGIAN LETTER
YN..GEORGIAN LETTER ELIFI
+10F9..10FA ; valid # 4.1 GEORGIAN LETTER
TURNED GAN..GEORGIAN LETTER AIN
+10FB ; valid ; ; NV8 # 1.1 GEORGIAN
PARAGRAPH SEPARATOR
+10FC ; mapped ; 10DC # 4.1 MODIFIER LETTER
GEORGIAN NAR
+10FD..10FF ; valid # 6.1 GEORGIAN LETTER
AEN..GEORGIAN LETTER LABIAL SIGN
+1100..1159 ; valid ; ; NV8 # 1.1 HANGUL CHOSEONG
KIYEOK..HANGUL CHOSEONG YEORINHIEUH
+115A..115E ; valid ; ; NV8 # 5.2 HANGUL CHOSEONG
KIYEOK-TIKEUT..HANGUL CHOSEONG TIKEUT-RIEUL
+115F..1160 ; disallowed # 1.1 HANGUL CHOSEONG
FILLER..HANGUL JUNGSEONG FILLER
+1161..11A2 ; valid ; ; NV8 # 1.1 HANGUL JUNGSEONG
A..HANGUL JUNGSEONG SSANGARAEA
+11A3..11A7 ; valid ; ; NV8 # 5.2 HANGUL JUNGSEONG
A-EU..HANGUL JUNGSEONG O-YAE
+11A8..11F9 ; valid ; ; NV8 # 1.1 HANGUL JONGSEONG
KIYEOK..HANGUL JONGSEONG YEORINHIEUH
+11FA..11FF ; valid ; ; NV8 # 5.2 HANGUL JONGSEONG
KIYEOK-NIEUN..HANGUL JONGSEONG SSANGNIEUN
+1200..1206 ; valid # 3.0 ETHIOPIC
SYLLABLE HA..ETHIOPIC SYLLABLE HO
+1207 ; valid # 4.1 ETHIOPIC
SYLLABLE HOA
+1208..1246 ; valid # 3.0 ETHIOPIC
SYLLABLE LA..ETHIOPIC SYLLABLE QO
+1247 ; valid # 4.1 ETHIOPIC
SYLLABLE QOA
+1248 ; valid # 3.0 ETHIOPIC
SYLLABLE QWA
+1249 ; disallowed # NA <reserved-1249>
+124A..124D ; valid # 3.0 ETHIOPIC
SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
+124E..124F ; disallowed # NA
<reserved-124E>..<reserved-124F>
+1250..1256 ; valid # 3.0 ETHIOPIC
SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
+1257 ; disallowed # NA <reserved-1257>
+1258 ; valid # 3.0 ETHIOPIC
SYLLABLE QHWA
+1259 ; disallowed # NA <reserved-1259>
+125A..125D ; valid # 3.0 ETHIOPIC
SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
+125E..125F ; disallowed # NA
<reserved-125E>..<reserved-125F>
+1260..1286 ; valid # 3.0 ETHIOPIC
SYLLABLE BA..ETHIOPIC SYLLABLE XO
+1287 ; valid # 4.1 ETHIOPIC
SYLLABLE XOA
+1288 ; valid # 3.0 ETHIOPIC
SYLLABLE XWA
+1289 ; disallowed # NA <reserved-1289>
+128A..128D ; valid # 3.0 ETHIOPIC
SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
+128E..128F ; disallowed # NA
<reserved-128E>..<reserved-128F>
+1290..12AE ; valid # 3.0 ETHIOPIC
SYLLABLE NA..ETHIOPIC SYLLABLE KO
+12AF ; valid # 4.1 ETHIOPIC
SYLLABLE KOA
+12B0 ; valid # 3.0 ETHIOPIC
SYLLABLE KWA
+12B1 ; disallowed # NA <reserved-12B1>
+12B2..12B5 ; valid # 3.0 ETHIOPIC
SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
+12B6..12B7 ; disallowed # NA
<reserved-12B6>..<reserved-12B7>
+12B8..12BE ; valid # 3.0 ETHIOPIC
SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
+12BF ; disallowed # NA <reserved-12BF>
+12C0 ; valid # 3.0 ETHIOPIC
SYLLABLE KXWA
+12C1 ; disallowed # NA <reserved-12C1>
+12C2..12C5 ; valid # 3.0 ETHIOPIC
SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
+12C6..12C7 ; disallowed # NA
<reserved-12C6>..<reserved-12C7>
+12C8..12CE ; valid # 3.0 ETHIOPIC
SYLLABLE WA..ETHIOPIC SYLLABLE WO
+12CF ; valid # 4.1 ETHIOPIC
SYLLABLE WOA
+12D0..12D6 ; valid # 3.0 ETHIOPIC
SYLLABLE PHARYNGEAL A..ETHIOPIC SYLLABLE PHARYNGEAL O
+12D7 ; disallowed # NA <reserved-12D7>
+12D8..12EE ; valid # 3.0 ETHIOPIC
SYLLABLE ZA..ETHIOPIC SYLLABLE YO
+12EF ; valid # 4.1 ETHIOPIC
SYLLABLE YOA
+12F0..130E ; valid # 3.0 ETHIOPIC
SYLLABLE DA..ETHIOPIC SYLLABLE GO
+130F ; valid # 4.1 ETHIOPIC
SYLLABLE GOA
+1310 ; valid # 3.0 ETHIOPIC
SYLLABLE GWA
+1311 ; disallowed # NA <reserved-1311>
+1312..1315 ; valid # 3.0 ETHIOPIC
SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
+1316..1317 ; disallowed # NA
<reserved-1316>..<reserved-1317>
+1318..131E ; valid # 3.0 ETHIOPIC
SYLLABLE GGA..ETHIOPIC SYLLABLE GGO
+131F ; valid # 4.1 ETHIOPIC
SYLLABLE GGWAA
+1320..1346 ; valid # 3.0 ETHIOPIC
SYLLABLE THA..ETHIOPIC SYLLABLE TZO
+1347 ; valid # 4.1 ETHIOPIC
SYLLABLE TZOA
+1348..135A ; valid # 3.0 ETHIOPIC
SYLLABLE FA..ETHIOPIC SYLLABLE FYA
+135B..135C ; disallowed # NA
<reserved-135B>..<reserved-135C>
+135D..135E ; valid # 6.0 ETHIOPIC
COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING VOWEL LENGTH MARK
+135F ; valid # 4.1 ETHIOPIC
COMBINING GEMINATION MARK
+1360 ; valid ; ; NV8 # 4.1 ETHIOPIC SECTION
MARK
+1361..137C ; valid ; ; NV8 # 3.0 ETHIOPIC
WORDSPACE..ETHIOPIC NUMBER TEN THOUSAND
+137D..137F ; disallowed # NA
<reserved-137D>..<reserved-137F>
+1380..138F ; valid # 4.1 ETHIOPIC
SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
+1390..1399 ; valid ; ; NV8 # 4.1 ETHIOPIC TONAL
MARK YIZET..ETHIOPIC TONAL MARK KURT
+139A..139F ; disallowed # NA
<reserved-139A>..<reserved-139F>
+13A0..13F4 ; valid # 3.0 CHEROKEE LETTER
A..CHEROKEE LETTER YV
+13F5 ; valid # 8.0 CHEROKEE LETTER
MV
+13F6..13F7 ; disallowed # NA
<reserved-13F6>..<reserved-13F7>
+13F8 ; mapped ; 13F0 # 8.0 CHEROKEE SMALL
LETTER YE
+13F9 ; mapped ; 13F1 # 8.0 CHEROKEE SMALL
LETTER YI
+13FA ; mapped ; 13F2 # 8.0 CHEROKEE SMALL
LETTER YO
+13FB ; mapped ; 13F3 # 8.0 CHEROKEE SMALL
LETTER YU
+13FC ; mapped ; 13F4 # 8.0 CHEROKEE SMALL
LETTER YV
+13FD ; mapped ; 13F5 # 8.0 CHEROKEE SMALL
LETTER MV
+13FE..13FF ; disallowed # NA
<reserved-13FE>..<reserved-13FF>
+1400 ; valid ; ; NV8 # 5.2 CANADIAN
SYLLABICS HYPHEN
+1401..166C ; valid # 3.0 CANADIAN
SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
+166D..166E ; valid ; ; NV8 # 3.0 CANADIAN
SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
+166F..1676 ; valid # 3.0 CANADIAN
SYLLABICS QAI..CANADIAN SYLLABICS NNGAA
+1677..167F ; valid # 5.2 CANADIAN
SYLLABICS WOODS-CREE THWEE..CANADIAN SYLLABICS BLACKFOOT W
+1680 ; disallowed # 3.0 OGHAM SPACE MARK
+1681..169A ; valid # 3.0 OGHAM LETTER
BEITH..OGHAM LETTER PEITH
+169B..169C ; valid ; ; NV8 # 3.0 OGHAM FEATHER
MARK..OGHAM REVERSED FEATHER MARK
+169D..169F ; disallowed # NA
<reserved-169D>..<reserved-169F>
+16A0..16EA ; valid # 3.0 RUNIC LETTER
FEHU FEOH FE F..RUNIC LETTER X
+16EB..16F0 ; valid ; ; NV8 # 3.0 RUNIC SINGLE
PUNCTUATION..RUNIC BELGTHOR SYMBOL
+16F1..16F8 ; valid # 7.0 RUNIC LETTER
K..RUNIC LETTER FRANKS CASKET AESC
+16F9..16FF ; disallowed # NA
<reserved-16F9>..<reserved-16FF>
+1700..170C ; valid # 3.2 TAGALOG LETTER
A..TAGALOG LETTER YA
+170D ; valid # 14.0 TAGALOG LETTER RA
+170E..1714 ; valid # 3.2 TAGALOG LETTER
LA..TAGALOG SIGN VIRAMA
+1715 ; valid # 14.0 TAGALOG SIGN
PAMUDPOD
+1716..171E ; disallowed # NA
<reserved-1716>..<reserved-171E>
+171F ; valid # 14.0 TAGALOG LETTER
ARCHAIC RA
+1720..1734 ; valid # 3.2 HANUNOO LETTER
A..HANUNOO SIGN PAMUDPOD
+1735..1736 ; valid ; ; NV8 # 3.2 PHILIPPINE
SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
+1737..173F ; disallowed # NA
<reserved-1737>..<reserved-173F>
+1740..1753 ; valid # 3.2 BUHID LETTER
A..BUHID VOWEL SIGN U
+1754..175F ; disallowed # NA
<reserved-1754>..<reserved-175F>
+1760..176C ; valid # 3.2 TAGBANWA LETTER
A..TAGBANWA LETTER YA
+176D ; disallowed # NA <reserved-176D>
+176E..1770 ; valid # 3.2 TAGBANWA LETTER
LA..TAGBANWA LETTER SA
+1771 ; disallowed # NA <reserved-1771>
+1772..1773 ; valid # 3.2 TAGBANWA VOWEL
SIGN I..TAGBANWA VOWEL SIGN U
+1774..177F ; disallowed # NA
<reserved-1774>..<reserved-177F>
+1780..17B3 ; valid # 3.0 KHMER LETTER
KA..KHMER INDEPENDENT VOWEL QAU
+17B4..17B5 ; disallowed # 3.0 KHMER VOWEL
INHERENT AQ..KHMER VOWEL INHERENT AA
+17B6..17D3 ; valid # 3.0 KHMER VOWEL SIGN
AA..KHMER SIGN BATHAMASAT
+17D4..17D6 ; valid ; ; NV8 # 3.0 KHMER SIGN
KHAN..KHMER SIGN CAMNUC PII KUUH
+17D7 ; valid # 3.0 KHMER SIGN LEK
TOO
+17D8..17DB ; valid ; ; NV8 # 3.0 KHMER SIGN
BEYYAL..KHMER CURRENCY SYMBOL RIEL
+17DC ; valid # 3.0 KHMER SIGN
AVAKRAHASANYA
+17DD ; valid # 4.0 KHMER SIGN
ATTHACAN
+17DE..17DF ; disallowed # NA
<reserved-17DE>..<reserved-17DF>
+17E0..17E9 ; valid # 3.0 KHMER DIGIT
ZERO..KHMER DIGIT NINE
+17EA..17EF ; disallowed # NA
<reserved-17EA>..<reserved-17EF>
+17F0..17F9 ; valid ; ; NV8 # 4.0 KHMER SYMBOL LEK
ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
+17FA..17FF ; disallowed # NA
<reserved-17FA>..<reserved-17FF>
+1800..1805 ; valid ; ; NV8 # 3.0 MONGOLIAN
BIRGA..MONGOLIAN FOUR DOTS
+1806 ; disallowed # 3.0 MONGOLIAN TODO
SOFT HYPHEN
+1807..180A ; valid ; ; NV8 # 3.0 MONGOLIAN SIBE
SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU
+180B..180D ; ignored # 3.0 MONGOLIAN FREE
VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+180E ; disallowed # 3.0 MONGOLIAN VOWEL
SEPARATOR
+180F ; ignored # 14.0 MONGOLIAN FREE
VARIATION SELECTOR FOUR
+1810..1819 ; valid # 3.0 MONGOLIAN DIGIT
ZERO..MONGOLIAN DIGIT NINE
+181A..181F ; disallowed # NA
<reserved-181A>..<reserved-181F>
+1820..1877 ; valid # 3.0 MONGOLIAN LETTER
A..MONGOLIAN LETTER MANCHU ZHA
+1878 ; valid # 11.0 MONGOLIAN LETTER
CHA WITH TWO DOTS
+1879..187F ; disallowed # NA
<reserved-1879>..<reserved-187F>
+1880..18A9 ; valid # 3.0 MONGOLIAN LETTER
ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI DAGALGA
+18AA ; valid # 5.1 MONGOLIAN LETTER
MANCHU ALI GALI LHA
+18AB..18AF ; disallowed # NA
<reserved-18AB>..<reserved-18AF>
+18B0..18F5 ; valid # 5.2 CANADIAN
SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
+18F6..18FF ; disallowed # NA
<reserved-18F6>..<reserved-18FF>
+1900..191C ; valid # 4.0 LIMBU
VOWEL-CARRIER LETTER..LIMBU LETTER HA
+191D..191E ; valid # 7.0 LIMBU LETTER
GYAN..LIMBU LETTER TRA
+191F ; disallowed # NA <reserved-191F>
+1920..192B ; valid # 4.0 LIMBU VOWEL SIGN
A..LIMBU SUBJOINED LETTER WA
+192C..192F ; disallowed # NA
<reserved-192C>..<reserved-192F>
+1930..193B ; valid # 4.0 LIMBU SMALL
LETTER KA..LIMBU SIGN SA-I
+193C..193F ; disallowed # NA
<reserved-193C>..<reserved-193F>
+1940 ; valid ; ; NV8 # 4.0 LIMBU SIGN LOO
+1941..1943 ; disallowed # NA
<reserved-1941>..<reserved-1943>
+1944..1945 ; valid ; ; NV8 # 4.0 LIMBU
EXCLAMATION MARK..LIMBU QUESTION MARK
+1946..196D ; valid # 4.0 LIMBU DIGIT
ZERO..TAI LE LETTER AI
+196E..196F ; disallowed # NA
<reserved-196E>..<reserved-196F>
+1970..1974 ; valid # 4.0 TAI LE LETTER
TONE-2..TAI LE LETTER TONE-6
+1975..197F ; disallowed # NA
<reserved-1975>..<reserved-197F>
+1980..19A9 ; valid # 4.1 NEW TAI LUE
LETTER HIGH QA..NEW TAI LUE LETTER LOW XVA
+19AA..19AB ; valid # 5.2 NEW TAI LUE
LETTER HIGH SUA..NEW TAI LUE LETTER LOW SUA
+19AC..19AF ; disallowed # NA
<reserved-19AC>..<reserved-19AF>
+19B0..19C9 ; valid # 4.1 NEW TAI LUE
VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2
+19CA..19CF ; disallowed # NA
<reserved-19CA>..<reserved-19CF>
+19D0..19D9 ; valid # 4.1 NEW TAI LUE
DIGIT ZERO..NEW TAI LUE DIGIT NINE
+19DA ; valid ; ; XV8 # 5.2 NEW TAI LUE THAM
DIGIT ONE
+19DB..19DD ; disallowed # NA
<reserved-19DB>..<reserved-19DD>
+19DE..19DF ; valid ; ; NV8 # 4.1 NEW TAI LUE SIGN
LAE..NEW TAI LUE SIGN LAEV
+19E0..19FF ; valid ; ; NV8 # 4.0 KHMER SYMBOL
PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC
+1A00..1A1B ; valid # 4.1 BUGINESE LETTER
KA..BUGINESE VOWEL SIGN AE
+1A1C..1A1D ; disallowed # NA
<reserved-1A1C>..<reserved-1A1D>
+1A1E..1A1F ; valid ; ; NV8 # 4.1 BUGINESE
PALLAWA..BUGINESE END OF SECTION
+1A20..1A5E ; valid # 5.2 TAI THAM LETTER
HIGH KA..TAI THAM CONSONANT SIGN SA
+1A5F ; disallowed # NA <reserved-1A5F>
+1A60..1A7C ; valid # 5.2 TAI THAM SIGN
SAKOT..TAI THAM SIGN KHUEN-LUE KARAN
+1A7D..1A7E ; disallowed # NA
<reserved-1A7D>..<reserved-1A7E>
+1A7F..1A89 ; valid # 5.2 TAI THAM
COMBINING CRYPTOGRAMMIC DOT..TAI THAM HORA DIGIT NINE
+1A8A..1A8F ; disallowed # NA
<reserved-1A8A>..<reserved-1A8F>
+1A90..1A99 ; valid # 5.2 TAI THAM THAM
DIGIT ZERO..TAI THAM THAM DIGIT NINE
+1A9A..1A9F ; disallowed # NA
<reserved-1A9A>..<reserved-1A9F>
+1AA0..1AA6 ; valid ; ; NV8 # 5.2 TAI THAM SIGN
WIANG..TAI THAM SIGN REVERSED ROTATED RANA
+1AA7 ; valid # 5.2 TAI THAM SIGN
MAI YAMOK
+1AA8..1AAD ; valid ; ; NV8 # 5.2 TAI THAM SIGN
KAAN..TAI THAM SIGN CAANG
+1AAE..1AAF ; disallowed # NA
<reserved-1AAE>..<reserved-1AAF>
+1AB0..1ABD ; valid # 7.0 COMBINING
DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE ; valid ; ; NV8 # 7.0 COMBINING
PARENTHESES OVERLAY
+1ABF..1AC0 ; valid # 13.0 COMBINING LATIN
SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER TURNED W BELOW
+1AC1..1ACE ; valid # 14.0 COMBINING LEFT
PARENTHESIS ABOVE LEFT..COMBINING LATIN SMALL LETTER INSULAR T
+1ACF..1AFF ; disallowed # NA
<reserved-1ACF>..<reserved-1AFF>
+1B00..1B4B ; valid # 5.0 BALINESE SIGN
ULU RICEM..BALINESE LETTER ASYURA SASAK
+1B4C ; valid # 14.0 BALINESE LETTER
ARCHAIC JNYA
+1B4D..1B4F ; disallowed # NA
<reserved-1B4D>..<reserved-1B4F>
+1B50..1B59 ; valid # 5.0 BALINESE DIGIT
ZERO..BALINESE DIGIT NINE
+1B5A..1B6A ; valid ; ; NV8 # 5.0 BALINESE
PANTI..BALINESE MUSICAL SYMBOL DANG GEDE
+1B6B..1B73 ; valid # 5.0 BALINESE MUSICAL
SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+1B74..1B7C ; valid ; ; NV8 # 5.0 BALINESE MUSICAL
SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+1B7D..1B7E ; valid ; ; NV8 # 14.0 BALINESE PANTI
LANTANG..BALINESE PAMADA LANTANG
+1B7F ; disallowed # NA <reserved-1B7F>
+1B80..1BAA ; valid # 5.1 SUNDANESE SIGN
PANYECEK..SUNDANESE SIGN PAMAAEH
+1BAB..1BAD ; valid # 6.1 SUNDANESE SIGN
VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAE..1BB9 ; valid # 5.1 SUNDANESE LETTER
KHA..SUNDANESE DIGIT NINE
+1BBA..1BBF ; valid # 6.1 SUNDANESE
AVAGRAHA..SUNDANESE LETTER FINAL M
+1BC0..1BF3 ; valid # 6.0 BATAK LETTER
A..BATAK PANONGONAN
+1BF4..1BFB ; disallowed # NA
<reserved-1BF4>..<reserved-1BFB>
+1BFC..1BFF ; valid ; ; NV8 # 6.0 BATAK SYMBOL
BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
+1C00..1C37 ; valid # 5.1 LEPCHA LETTER
KA..LEPCHA SIGN NUKTA
+1C38..1C3A ; disallowed # NA
<reserved-1C38>..<reserved-1C3A>
+1C3B..1C3F ; valid ; ; NV8 # 5.1 LEPCHA
PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
+1C40..1C49 ; valid # 5.1 LEPCHA DIGIT
ZERO..LEPCHA DIGIT NINE
+1C4A..1C4C ; disallowed # NA
<reserved-1C4A>..<reserved-1C4C>
+1C4D..1C7D ; valid # 5.1 LEPCHA LETTER
TTA..OL CHIKI AHAD
+1C7E..1C7F ; valid ; ; NV8 # 5.1 OL CHIKI
PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
+1C80 ; mapped ; 0432 # 9.0 CYRILLIC SMALL
LETTER ROUNDED VE
+1C81 ; mapped ; 0434 # 9.0 CYRILLIC SMALL
LETTER LONG-LEGGED DE
+1C82 ; mapped ; 043E # 9.0 CYRILLIC SMALL
LETTER NARROW O
+1C83 ; mapped ; 0441 # 9.0 CYRILLIC SMALL
LETTER WIDE ES
+1C84..1C85 ; mapped ; 0442 # 9.0 CYRILLIC SMALL
LETTER TALL TE..CYRILLIC SMALL LETTER THREE-LEGGED TE
+1C86 ; mapped ; 044A # 9.0 CYRILLIC SMALL
LETTER TALL HARD SIGN
+1C87 ; mapped ; 0463 # 9.0 CYRILLIC SMALL
LETTER TALL YAT
+1C88 ; mapped ; A64B # 9.0 CYRILLIC SMALL
LETTER UNBLENDED UK
+1C89..1C8F ; disallowed # NA
<reserved-1C89>..<reserved-1C8F>
+1C90 ; mapped ; 10D0 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER AN
+1C91 ; mapped ; 10D1 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER BAN
+1C92 ; mapped ; 10D2 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER GAN
+1C93 ; mapped ; 10D3 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER DON
+1C94 ; mapped ; 10D4 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER EN
+1C95 ; mapped ; 10D5 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER VIN
+1C96 ; mapped ; 10D6 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER ZEN
+1C97 ; mapped ; 10D7 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER TAN
+1C98 ; mapped ; 10D8 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER IN
+1C99 ; mapped ; 10D9 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER KAN
+1C9A ; mapped ; 10DA # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER LAS
+1C9B ; mapped ; 10DB # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER MAN
+1C9C ; mapped ; 10DC # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER NAR
+1C9D ; mapped ; 10DD # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER ON
+1C9E ; mapped ; 10DE # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER PAR
+1C9F ; mapped ; 10DF # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER ZHAR
+1CA0 ; mapped ; 10E0 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER RAE
+1CA1 ; mapped ; 10E1 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER SAN
+1CA2 ; mapped ; 10E2 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER TAR
+1CA3 ; mapped ; 10E3 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER UN
+1CA4 ; mapped ; 10E4 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER PHAR
+1CA5 ; mapped ; 10E5 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER KHAR
+1CA6 ; mapped ; 10E6 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER GHAN
+1CA7 ; mapped ; 10E7 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER QAR
+1CA8 ; mapped ; 10E8 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER SHIN
+1CA9 ; mapped ; 10E9 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER CHIN
+1CAA ; mapped ; 10EA # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER CAN
+1CAB ; mapped ; 10EB # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER JIL
+1CAC ; mapped ; 10EC # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER CIL
+1CAD ; mapped ; 10ED # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER CHAR
+1CAE ; mapped ; 10EE # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER XAN
+1CAF ; mapped ; 10EF # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER JHAN
+1CB0 ; mapped ; 10F0 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER HAE
+1CB1 ; mapped ; 10F1 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER HE
+1CB2 ; mapped ; 10F2 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER HIE
+1CB3 ; mapped ; 10F3 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER WE
+1CB4 ; mapped ; 10F4 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER HAR
+1CB5 ; mapped ; 10F5 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER HOE
+1CB6 ; mapped ; 10F6 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER FI
+1CB7 ; mapped ; 10F7 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER YN
+1CB8 ; mapped ; 10F8 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER ELIFI
+1CB9 ; mapped ; 10F9 # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER TURNED GAN
+1CBA ; mapped ; 10FA # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER AIN
+1CBB..1CBC ; disallowed # NA
<reserved-1CBB>..<reserved-1CBC>
+1CBD ; mapped ; 10FD # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER AEN
+1CBE ; mapped ; 10FE # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER HARD SIGN
+1CBF ; mapped ; 10FF # 11.0 GEORGIAN
MTAVRULI CAPITAL LETTER LABIAL SIGN
+1CC0..1CC7 ; valid ; ; NV8 # 6.1 SUNDANESE
PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
+1CC8..1CCF ; disallowed # NA
<reserved-1CC8>..<reserved-1CCF>
+1CD0..1CD2 ; valid # 5.2 VEDIC TONE
KARSHANA..VEDIC TONE PRENKHA
+1CD3 ; valid ; ; NV8 # 5.2 VEDIC SIGN
NIHSHVASA
+1CD4..1CF2 ; valid # 5.2 VEDIC SIGN
YAJURVEDIC MIDLINE SVARITA..VEDIC SIGN ARDHAVISARGA
+1CF3..1CF6 ; valid # 6.1 VEDIC SIGN
ROTATED ARDHAVISARGA..VEDIC SIGN UPADHMANIYA
+1CF7 ; valid # 10.0 VEDIC SIGN
ATIKRAMA
+1CF8..1CF9 ; valid # 7.0 VEDIC TONE RING
ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1CFA ; valid # 12.0 VEDIC SIGN
DOUBLE ANUSVARA ANTARGOMUKHA
+1CFB..1CFF ; disallowed # NA
<reserved-1CFB>..<reserved-1CFF>
+1D00..1D2B ; valid # 4.0 LATIN LETTER
SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
+1D2C ; mapped ; 0061 # 4.0 MODIFIER LETTER
CAPITAL A
+1D2D ; mapped ; 00E6 # 4.0 MODIFIER LETTER
CAPITAL AE
+1D2E ; mapped ; 0062 # 4.0 MODIFIER LETTER
CAPITAL B
+1D2F ; valid # 4.0 MODIFIER LETTER
CAPITAL BARRED B
+1D30 ; mapped ; 0064 # 4.0 MODIFIER LETTER
CAPITAL D
+1D31 ; mapped ; 0065 # 4.0 MODIFIER LETTER
CAPITAL E
+1D32 ; mapped ; 01DD # 4.0 MODIFIER LETTER
CAPITAL REVERSED E
+1D33 ; mapped ; 0067 # 4.0 MODIFIER LETTER
CAPITAL G
+1D34 ; mapped ; 0068 # 4.0 MODIFIER LETTER
CAPITAL H
+1D35 ; mapped ; 0069 # 4.0 MODIFIER LETTER
CAPITAL I
+1D36 ; mapped ; 006A # 4.0 MODIFIER LETTER
CAPITAL J
+1D37 ; mapped ; 006B # 4.0 MODIFIER LETTER
CAPITAL K
+1D38 ; mapped ; 006C # 4.0 MODIFIER LETTER
CAPITAL L
+1D39 ; mapped ; 006D # 4.0 MODIFIER LETTER
CAPITAL M
+1D3A ; mapped ; 006E # 4.0 MODIFIER LETTER
CAPITAL N
+1D3B ; valid # 4.0 MODIFIER LETTER
CAPITAL REVERSED N
+1D3C ; mapped ; 006F # 4.0 MODIFIER LETTER
CAPITAL O
+1D3D ; mapped ; 0223 # 4.0 MODIFIER LETTER
CAPITAL OU
+1D3E ; mapped ; 0070 # 4.0 MODIFIER LETTER
CAPITAL P
+1D3F ; mapped ; 0072 # 4.0 MODIFIER LETTER
CAPITAL R
+1D40 ; mapped ; 0074 # 4.0 MODIFIER LETTER
CAPITAL T
+1D41 ; mapped ; 0075 # 4.0 MODIFIER LETTER
CAPITAL U
+1D42 ; mapped ; 0077 # 4.0 MODIFIER LETTER
CAPITAL W
+1D43 ; mapped ; 0061 # 4.0 MODIFIER LETTER
SMALL A
+1D44 ; mapped ; 0250 # 4.0 MODIFIER LETTER
SMALL TURNED A
+1D45 ; mapped ; 0251 # 4.0 MODIFIER LETTER
SMALL ALPHA
+1D46 ; mapped ; 1D02 # 4.0 MODIFIER LETTER
SMALL TURNED AE
+1D47 ; mapped ; 0062 # 4.0 MODIFIER LETTER
SMALL B
+1D48 ; mapped ; 0064 # 4.0 MODIFIER LETTER
SMALL D
+1D49 ; mapped ; 0065 # 4.0 MODIFIER LETTER
SMALL E
+1D4A ; mapped ; 0259 # 4.0 MODIFIER LETTER
SMALL SCHWA
+1D4B ; mapped ; 025B # 4.0 MODIFIER LETTER
SMALL OPEN E
+1D4C ; mapped ; 025C # 4.0 MODIFIER LETTER
SMALL TURNED OPEN E
+1D4D ; mapped ; 0067 # 4.0 MODIFIER LETTER
SMALL G
+1D4E ; valid # 4.0 MODIFIER LETTER
SMALL TURNED I
+1D4F ; mapped ; 006B # 4.0 MODIFIER LETTER
SMALL K
+1D50 ; mapped ; 006D # 4.0 MODIFIER LETTER
SMALL M
+1D51 ; mapped ; 014B # 4.0 MODIFIER LETTER
SMALL ENG
+1D52 ; mapped ; 006F # 4.0 MODIFIER LETTER
SMALL O
+1D53 ; mapped ; 0254 # 4.0 MODIFIER LETTER
SMALL OPEN O
+1D54 ; mapped ; 1D16 # 4.0 MODIFIER LETTER
SMALL TOP HALF O
+1D55 ; mapped ; 1D17 # 4.0 MODIFIER LETTER
SMALL BOTTOM HALF O
+1D56 ; mapped ; 0070 # 4.0 MODIFIER LETTER
SMALL P
+1D57 ; mapped ; 0074 # 4.0 MODIFIER LETTER
SMALL T
+1D58 ; mapped ; 0075 # 4.0 MODIFIER LETTER
SMALL U
+1D59 ; mapped ; 1D1D # 4.0 MODIFIER LETTER
SMALL SIDEWAYS U
+1D5A ; mapped ; 026F # 4.0 MODIFIER LETTER
SMALL TURNED M
+1D5B ; mapped ; 0076 # 4.0 MODIFIER LETTER
SMALL V
+1D5C ; mapped ; 1D25 # 4.0 MODIFIER LETTER
SMALL AIN
+1D5D ; mapped ; 03B2 # 4.0 MODIFIER LETTER
SMALL BETA
+1D5E ; mapped ; 03B3 # 4.0 MODIFIER LETTER
SMALL GREEK GAMMA
+1D5F ; mapped ; 03B4 # 4.0 MODIFIER LETTER
SMALL DELTA
+1D60 ; mapped ; 03C6 # 4.0 MODIFIER LETTER
SMALL GREEK PHI
+1D61 ; mapped ; 03C7 # 4.0 MODIFIER LETTER
SMALL CHI
+1D62 ; mapped ; 0069 # 4.0 LATIN SUBSCRIPT
SMALL LETTER I
+1D63 ; mapped ; 0072 # 4.0 LATIN SUBSCRIPT
SMALL LETTER R
+1D64 ; mapped ; 0075 # 4.0 LATIN SUBSCRIPT
SMALL LETTER U
+1D65 ; mapped ; 0076 # 4.0 LATIN SUBSCRIPT
SMALL LETTER V
+1D66 ; mapped ; 03B2 # 4.0 GREEK SUBSCRIPT
SMALL LETTER BETA
+1D67 ; mapped ; 03B3 # 4.0 GREEK SUBSCRIPT
SMALL LETTER GAMMA
+1D68 ; mapped ; 03C1 # 4.0 GREEK SUBSCRIPT
SMALL LETTER RHO
+1D69 ; mapped ; 03C6 # 4.0 GREEK SUBSCRIPT
SMALL LETTER PHI
+1D6A ; mapped ; 03C7 # 4.0 GREEK SUBSCRIPT
SMALL LETTER CHI
+1D6B ; valid # 4.0 LATIN SMALL
LETTER UE
+1D6C..1D77 ; valid # 4.1 LATIN SMALL
LETTER B WITH MIDDLE TILDE..LATIN SMALL LETTER TURNED G
+1D78 ; mapped ; 043D # 4.1 MODIFIER LETTER
CYRILLIC EN
+1D79..1D9A ; valid # 4.1 LATIN SMALL
LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+1D9B ; mapped ; 0252 # 4.1 MODIFIER LETTER
SMALL TURNED ALPHA
+1D9C ; mapped ; 0063 # 4.1 MODIFIER LETTER
SMALL C
+1D9D ; mapped ; 0255 # 4.1 MODIFIER LETTER
SMALL C WITH CURL
+1D9E ; mapped ; 00F0 # 4.1 MODIFIER LETTER
SMALL ETH
+1D9F ; mapped ; 025C # 4.1 MODIFIER LETTER
SMALL REVERSED OPEN E
+1DA0 ; mapped ; 0066 # 4.1 MODIFIER LETTER
SMALL F
+1DA1 ; mapped ; 025F # 4.1 MODIFIER LETTER
SMALL DOTLESS J WITH STROKE
+1DA2 ; mapped ; 0261 # 4.1 MODIFIER LETTER
SMALL SCRIPT G
+1DA3 ; mapped ; 0265 # 4.1 MODIFIER LETTER
SMALL TURNED H
+1DA4 ; mapped ; 0268 # 4.1 MODIFIER LETTER
SMALL I WITH STROKE
+1DA5 ; mapped ; 0269 # 4.1 MODIFIER LETTER
SMALL IOTA
+1DA6 ; mapped ; 026A # 4.1 MODIFIER LETTER
SMALL CAPITAL I
+1DA7 ; mapped ; 1D7B # 4.1 MODIFIER LETTER
SMALL CAPITAL I WITH STROKE
+1DA8 ; mapped ; 029D # 4.1 MODIFIER LETTER
SMALL J WITH CROSSED-TAIL
+1DA9 ; mapped ; 026D # 4.1 MODIFIER LETTER
SMALL L WITH RETROFLEX HOOK
+1DAA ; mapped ; 1D85 # 4.1 MODIFIER LETTER
SMALL L WITH PALATAL HOOK
+1DAB ; mapped ; 029F # 4.1 MODIFIER LETTER
SMALL CAPITAL L
+1DAC ; mapped ; 0271 # 4.1 MODIFIER LETTER
SMALL M WITH HOOK
+1DAD ; mapped ; 0270 # 4.1 MODIFIER LETTER
SMALL TURNED M WITH LONG LEG
+1DAE ; mapped ; 0272 # 4.1 MODIFIER LETTER
SMALL N WITH LEFT HOOK
+1DAF ; mapped ; 0273 # 4.1 MODIFIER LETTER
SMALL N WITH RETROFLEX HOOK
+1DB0 ; mapped ; 0274 # 4.1 MODIFIER LETTER
SMALL CAPITAL N
+1DB1 ; mapped ; 0275 # 4.1 MODIFIER LETTER
SMALL BARRED O
+1DB2 ; mapped ; 0278 # 4.1 MODIFIER LETTER
SMALL PHI
+1DB3 ; mapped ; 0282 # 4.1 MODIFIER LETTER
SMALL S WITH HOOK
+1DB4 ; mapped ; 0283 # 4.1 MODIFIER LETTER
SMALL ESH
+1DB5 ; mapped ; 01AB # 4.1 MODIFIER LETTER
SMALL T WITH PALATAL HOOK
+1DB6 ; mapped ; 0289 # 4.1 MODIFIER LETTER
SMALL U BAR
+1DB7 ; mapped ; 028A # 4.1 MODIFIER LETTER
SMALL UPSILON
+1DB8 ; mapped ; 1D1C # 4.1 MODIFIER LETTER
SMALL CAPITAL U
+1DB9 ; mapped ; 028B # 4.1 MODIFIER LETTER
SMALL V WITH HOOK
+1DBA ; mapped ; 028C # 4.1 MODIFIER LETTER
SMALL TURNED V
+1DBB ; mapped ; 007A # 4.1 MODIFIER LETTER
SMALL Z
+1DBC ; mapped ; 0290 # 4.1 MODIFIER LETTER
SMALL Z WITH RETROFLEX HOOK
+1DBD ; mapped ; 0291 # 4.1 MODIFIER LETTER
SMALL Z WITH CURL
+1DBE ; mapped ; 0292 # 4.1 MODIFIER LETTER
SMALL EZH
+1DBF ; mapped ; 03B8 # 4.1 MODIFIER LETTER
SMALL THETA
+1DC0..1DC3 ; valid # 4.1 COMBINING DOTTED
GRAVE ACCENT..COMBINING SUSPENSION MARK
+1DC4..1DCA ; valid # 5.0 COMBINING
MACRON-ACUTE..COMBINING LATIN SMALL LETTER R BELOW
+1DCB..1DE6 ; valid # 5.1 COMBINING
BREVE-MACRON..COMBINING LATIN SMALL LETTER Z
+1DE7..1DF5 ; valid # 7.0 COMBINING LATIN
SMALL LETTER ALPHA..COMBINING UP TACK ABOVE
+1DF6..1DF9 ; valid # 10.0 COMBINING KAVYKA
ABOVE RIGHT..COMBINING WIDE INVERTED BRIDGE BELOW
+1DFA ; valid # 14.0 COMBINING DOT
BELOW LEFT
+1DFB ; valid # 9.0 COMBINING
DELETION MARK
+1DFC ; valid # 6.0 COMBINING DOUBLE
INVERTED BREVE BELOW
+1DFD ; valid # 5.2 COMBINING ALMOST
EQUAL TO BELOW
+1DFE..1DFF ; valid # 5.0 COMBINING LEFT
ARROWHEAD ABOVE..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+1E00 ; mapped ; 1E01 # 1.1 LATIN CAPITAL
LETTER A WITH RING BELOW
+1E01 ; valid # 1.1 LATIN SMALL
LETTER A WITH RING BELOW
+1E02 ; mapped ; 1E03 # 1.1 LATIN CAPITAL
LETTER B WITH DOT ABOVE
+1E03 ; valid # 1.1 LATIN SMALL
LETTER B WITH DOT ABOVE
+1E04 ; mapped ; 1E05 # 1.1 LATIN CAPITAL
LETTER B WITH DOT BELOW
+1E05 ; valid # 1.1 LATIN SMALL
LETTER B WITH DOT BELOW
+1E06 ; mapped ; 1E07 # 1.1 LATIN CAPITAL
LETTER B WITH LINE BELOW
+1E07 ; valid # 1.1 LATIN SMALL
LETTER B WITH LINE BELOW
+1E08 ; mapped ; 1E09 # 1.1 LATIN CAPITAL
LETTER C WITH CEDILLA AND ACUTE
+1E09 ; valid # 1.1 LATIN SMALL
LETTER C WITH CEDILLA AND ACUTE
+1E0A ; mapped ; 1E0B # 1.1 LATIN CAPITAL
LETTER D WITH DOT ABOVE
+1E0B ; valid # 1.1 LATIN SMALL
LETTER D WITH DOT ABOVE
+1E0C ; mapped ; 1E0D # 1.1 LATIN CAPITAL
LETTER D WITH DOT BELOW
+1E0D ; valid # 1.1 LATIN SMALL
LETTER D WITH DOT BELOW
+1E0E ; mapped ; 1E0F # 1.1 LATIN CAPITAL
LETTER D WITH LINE BELOW
+1E0F ; valid # 1.1 LATIN SMALL
LETTER D WITH LINE BELOW
+1E10 ; mapped ; 1E11 # 1.1 LATIN CAPITAL
LETTER D WITH CEDILLA
+1E11 ; valid # 1.1 LATIN SMALL
LETTER D WITH CEDILLA
+1E12 ; mapped ; 1E13 # 1.1 LATIN CAPITAL
LETTER D WITH CIRCUMFLEX BELOW
+1E13 ; valid # 1.1 LATIN SMALL
LETTER D WITH CIRCUMFLEX BELOW
+1E14 ; mapped ; 1E15 # 1.1 LATIN CAPITAL
LETTER E WITH MACRON AND GRAVE
+1E15 ; valid # 1.1 LATIN SMALL
LETTER E WITH MACRON AND GRAVE
+1E16 ; mapped ; 1E17 # 1.1 LATIN CAPITAL
LETTER E WITH MACRON AND ACUTE
+1E17 ; valid # 1.1 LATIN SMALL
LETTER E WITH MACRON AND ACUTE
+1E18 ; mapped ; 1E19 # 1.1 LATIN CAPITAL
LETTER E WITH CIRCUMFLEX BELOW
+1E19 ; valid # 1.1 LATIN SMALL
LETTER E WITH CIRCUMFLEX BELOW
+1E1A ; mapped ; 1E1B # 1.1 LATIN CAPITAL
LETTER E WITH TILDE BELOW
+1E1B ; valid # 1.1 LATIN SMALL
LETTER E WITH TILDE BELOW
+1E1C ; mapped ; 1E1D # 1.1 LATIN CAPITAL
LETTER E WITH CEDILLA AND BREVE
+1E1D ; valid # 1.1 LATIN SMALL
LETTER E WITH CEDILLA AND BREVE
+1E1E ; mapped ; 1E1F # 1.1 LATIN CAPITAL
LETTER F WITH DOT ABOVE
+1E1F ; valid # 1.1 LATIN SMALL
LETTER F WITH DOT ABOVE
+1E20 ; mapped ; 1E21 # 1.1 LATIN CAPITAL
LETTER G WITH MACRON
+1E21 ; valid # 1.1 LATIN SMALL
LETTER G WITH MACRON
+1E22 ; mapped ; 1E23 # 1.1 LATIN CAPITAL
LETTER H WITH DOT ABOVE
+1E23 ; valid # 1.1 LATIN SMALL
LETTER H WITH DOT ABOVE
+1E24 ; mapped ; 1E25 # 1.1 LATIN CAPITAL
LETTER H WITH DOT BELOW
+1E25 ; valid # 1.1 LATIN SMALL
LETTER H WITH DOT BELOW
+1E26 ; mapped ; 1E27 # 1.1 LATIN CAPITAL
LETTER H WITH DIAERESIS
+1E27 ; valid # 1.1 LATIN SMALL
LETTER H WITH DIAERESIS
+1E28 ; mapped ; 1E29 # 1.1 LATIN CAPITAL
LETTER H WITH CEDILLA
+1E29 ; valid # 1.1 LATIN SMALL
LETTER H WITH CEDILLA
+1E2A ; mapped ; 1E2B # 1.1 LATIN CAPITAL
LETTER H WITH BREVE BELOW
+1E2B ; valid # 1.1 LATIN SMALL
LETTER H WITH BREVE BELOW
+1E2C ; mapped ; 1E2D # 1.1 LATIN CAPITAL
LETTER I WITH TILDE BELOW
+1E2D ; valid # 1.1 LATIN SMALL
LETTER I WITH TILDE BELOW
+1E2E ; mapped ; 1E2F # 1.1 LATIN CAPITAL
LETTER I WITH DIAERESIS AND ACUTE
+1E2F ; valid # 1.1 LATIN SMALL
LETTER I WITH DIAERESIS AND ACUTE
+1E30 ; mapped ; 1E31 # 1.1 LATIN CAPITAL
LETTER K WITH ACUTE
+1E31 ; valid # 1.1 LATIN SMALL
LETTER K WITH ACUTE
+1E32 ; mapped ; 1E33 # 1.1 LATIN CAPITAL
LETTER K WITH DOT BELOW
+1E33 ; valid # 1.1 LATIN SMALL
LETTER K WITH DOT BELOW
+1E34 ; mapped ; 1E35 # 1.1 LATIN CAPITAL
LETTER K WITH LINE BELOW
+1E35 ; valid # 1.1 LATIN SMALL
LETTER K WITH LINE BELOW
+1E36 ; mapped ; 1E37 # 1.1 LATIN CAPITAL
LETTER L WITH DOT BELOW
+1E37 ; valid # 1.1 LATIN SMALL
LETTER L WITH DOT BELOW
+1E38 ; mapped ; 1E39 # 1.1 LATIN CAPITAL
LETTER L WITH DOT BELOW AND MACRON
+1E39 ; valid # 1.1 LATIN SMALL
LETTER L WITH DOT BELOW AND MACRON
+1E3A ; mapped ; 1E3B # 1.1 LATIN CAPITAL
LETTER L WITH LINE BELOW
+1E3B ; valid # 1.1 LATIN SMALL
LETTER L WITH LINE BELOW
+1E3C ; mapped ; 1E3D # 1.1 LATIN CAPITAL
LETTER L WITH CIRCUMFLEX BELOW
+1E3D ; valid # 1.1 LATIN SMALL
LETTER L WITH CIRCUMFLEX BELOW
+1E3E ; mapped ; 1E3F # 1.1 LATIN CAPITAL
LETTER M WITH ACUTE
+1E3F ; valid # 1.1 LATIN SMALL
LETTER M WITH ACUTE
+1E40 ; mapped ; 1E41 # 1.1 LATIN CAPITAL
LETTER M WITH DOT ABOVE
+1E41 ; valid # 1.1 LATIN SMALL
LETTER M WITH DOT ABOVE
+1E42 ; mapped ; 1E43 # 1.1 LATIN CAPITAL
LETTER M WITH DOT BELOW
+1E43 ; valid # 1.1 LATIN SMALL
LETTER M WITH DOT BELOW
+1E44 ; mapped ; 1E45 # 1.1 LATIN CAPITAL
LETTER N WITH DOT ABOVE
+1E45 ; valid # 1.1 LATIN SMALL
LETTER N WITH DOT ABOVE
+1E46 ; mapped ; 1E47 # 1.1 LATIN CAPITAL
LETTER N WITH DOT BELOW
+1E47 ; valid # 1.1 LATIN SMALL
LETTER N WITH DOT BELOW
+1E48 ; mapped ; 1E49 # 1.1 LATIN CAPITAL
LETTER N WITH LINE BELOW
+1E49 ; valid # 1.1 LATIN SMALL
LETTER N WITH LINE BELOW
+1E4A ; mapped ; 1E4B # 1.1 LATIN CAPITAL
LETTER N WITH CIRCUMFLEX BELOW
+1E4B ; valid # 1.1 LATIN SMALL
LETTER N WITH CIRCUMFLEX BELOW
+1E4C ; mapped ; 1E4D # 1.1 LATIN CAPITAL
LETTER O WITH TILDE AND ACUTE
+1E4D ; valid # 1.1 LATIN SMALL
LETTER O WITH TILDE AND ACUTE
+1E4E ; mapped ; 1E4F # 1.1 LATIN CAPITAL
LETTER O WITH TILDE AND DIAERESIS
+1E4F ; valid # 1.1 LATIN SMALL
LETTER O WITH TILDE AND DIAERESIS
+1E50 ; mapped ; 1E51 # 1.1 LATIN CAPITAL
LETTER O WITH MACRON AND GRAVE
+1E51 ; valid # 1.1 LATIN SMALL
LETTER O WITH MACRON AND GRAVE
+1E52 ; mapped ; 1E53 # 1.1 LATIN CAPITAL
LETTER O WITH MACRON AND ACUTE
+1E53 ; valid # 1.1 LATIN SMALL
LETTER O WITH MACRON AND ACUTE
+1E54 ; mapped ; 1E55 # 1.1 LATIN CAPITAL
LETTER P WITH ACUTE
+1E55 ; valid # 1.1 LATIN SMALL
LETTER P WITH ACUTE
+1E56 ; mapped ; 1E57 # 1.1 LATIN CAPITAL
LETTER P WITH DOT ABOVE
+1E57 ; valid # 1.1 LATIN SMALL
LETTER P WITH DOT ABOVE
+1E58 ; mapped ; 1E59 # 1.1 LATIN CAPITAL
LETTER R WITH DOT ABOVE
+1E59 ; valid # 1.1 LATIN SMALL
LETTER R WITH DOT ABOVE
+1E5A ; mapped ; 1E5B # 1.1 LATIN CAPITAL
LETTER R WITH DOT BELOW
+1E5B ; valid # 1.1 LATIN SMALL
LETTER R WITH DOT BELOW
+1E5C ; mapped ; 1E5D # 1.1 LATIN CAPITAL
LETTER R WITH DOT BELOW AND MACRON
+1E5D ; valid # 1.1 LATIN SMALL
LETTER R WITH DOT BELOW AND MACRON
+1E5E ; mapped ; 1E5F # 1.1 LATIN CAPITAL
LETTER R WITH LINE BELOW
+1E5F ; valid # 1.1 LATIN SMALL
LETTER R WITH LINE BELOW
+1E60 ; mapped ; 1E61 # 1.1 LATIN CAPITAL
LETTER S WITH DOT ABOVE
+1E61 ; valid # 1.1 LATIN SMALL
LETTER S WITH DOT ABOVE
+1E62 ; mapped ; 1E63 # 1.1 LATIN CAPITAL
LETTER S WITH DOT BELOW
+1E63 ; valid # 1.1 LATIN SMALL
LETTER S WITH DOT BELOW
+1E64 ; mapped ; 1E65 # 1.1 LATIN CAPITAL
LETTER S WITH ACUTE AND DOT ABOVE
+1E65 ; valid # 1.1 LATIN SMALL
LETTER S WITH ACUTE AND DOT ABOVE
+1E66 ; mapped ; 1E67 # 1.1 LATIN CAPITAL
LETTER S WITH CARON AND DOT ABOVE
+1E67 ; valid # 1.1 LATIN SMALL
LETTER S WITH CARON AND DOT ABOVE
+1E68 ; mapped ; 1E69 # 1.1 LATIN CAPITAL
LETTER S WITH DOT BELOW AND DOT ABOVE
+1E69 ; valid # 1.1 LATIN SMALL
LETTER S WITH DOT BELOW AND DOT ABOVE
+1E6A ; mapped ; 1E6B # 1.1 LATIN CAPITAL
LETTER T WITH DOT ABOVE
+1E6B ; valid # 1.1 LATIN SMALL
LETTER T WITH DOT ABOVE
+1E6C ; mapped ; 1E6D # 1.1 LATIN CAPITAL
LETTER T WITH DOT BELOW
+1E6D ; valid # 1.1 LATIN SMALL
LETTER T WITH DOT BELOW
+1E6E ; mapped ; 1E6F # 1.1 LATIN CAPITAL
LETTER T WITH LINE BELOW
+1E6F ; valid # 1.1 LATIN SMALL
LETTER T WITH LINE BELOW
+1E70 ; mapped ; 1E71 # 1.1 LATIN CAPITAL
LETTER T WITH CIRCUMFLEX BELOW
+1E71 ; valid # 1.1 LATIN SMALL
LETTER T WITH CIRCUMFLEX BELOW
+1E72 ; mapped ; 1E73 # 1.1 LATIN CAPITAL
LETTER U WITH DIAERESIS BELOW
+1E73 ; valid # 1.1 LATIN SMALL
LETTER U WITH DIAERESIS BELOW
+1E74 ; mapped ; 1E75 # 1.1 LATIN CAPITAL
LETTER U WITH TILDE BELOW
+1E75 ; valid # 1.1 LATIN SMALL
LETTER U WITH TILDE BELOW
+1E76 ; mapped ; 1E77 # 1.1 LATIN CAPITAL
LETTER U WITH CIRCUMFLEX BELOW
+1E77 ; valid # 1.1 LATIN SMALL
LETTER U WITH CIRCUMFLEX BELOW
+1E78 ; mapped ; 1E79 # 1.1 LATIN CAPITAL
LETTER U WITH TILDE AND ACUTE
+1E79 ; valid # 1.1 LATIN SMALL
LETTER U WITH TILDE AND ACUTE
+1E7A ; mapped ; 1E7B # 1.1 LATIN CAPITAL
LETTER U WITH MACRON AND DIAERESIS
+1E7B ; valid # 1.1 LATIN SMALL
LETTER U WITH MACRON AND DIAERESIS
+1E7C ; mapped ; 1E7D # 1.1 LATIN CAPITAL
LETTER V WITH TILDE
+1E7D ; valid # 1.1 LATIN SMALL
LETTER V WITH TILDE
+1E7E ; mapped ; 1E7F # 1.1 LATIN CAPITAL
LETTER V WITH DOT BELOW
+1E7F ; valid # 1.1 LATIN SMALL
LETTER V WITH DOT BELOW
+1E80 ; mapped ; 1E81 # 1.1 LATIN CAPITAL
LETTER W WITH GRAVE
+1E81 ; valid # 1.1 LATIN SMALL
LETTER W WITH GRAVE
+1E82 ; mapped ; 1E83 # 1.1 LATIN CAPITAL
LETTER W WITH ACUTE
+1E83 ; valid # 1.1 LATIN SMALL
LETTER W WITH ACUTE
+1E84 ; mapped ; 1E85 # 1.1 LATIN CAPITAL
LETTER W WITH DIAERESIS
+1E85 ; valid # 1.1 LATIN SMALL
LETTER W WITH DIAERESIS
+1E86 ; mapped ; 1E87 # 1.1 LATIN CAPITAL
LETTER W WITH DOT ABOVE
+1E87 ; valid # 1.1 LATIN SMALL
LETTER W WITH DOT ABOVE
+1E88 ; mapped ; 1E89 # 1.1 LATIN CAPITAL
LETTER W WITH DOT BELOW
+1E89 ; valid # 1.1 LATIN SMALL
LETTER W WITH DOT BELOW
+1E8A ; mapped ; 1E8B # 1.1 LATIN CAPITAL
LETTER X WITH DOT ABOVE
+1E8B ; valid # 1.1 LATIN SMALL
LETTER X WITH DOT ABOVE
+1E8C ; mapped ; 1E8D # 1.1 LATIN CAPITAL
LETTER X WITH DIAERESIS
+1E8D ; valid # 1.1 LATIN SMALL
LETTER X WITH DIAERESIS
+1E8E ; mapped ; 1E8F # 1.1 LATIN CAPITAL
LETTER Y WITH DOT ABOVE
+1E8F ; valid # 1.1 LATIN SMALL
LETTER Y WITH DOT ABOVE
+1E90 ; mapped ; 1E91 # 1.1 LATIN CAPITAL
LETTER Z WITH CIRCUMFLEX
+1E91 ; valid # 1.1 LATIN SMALL
LETTER Z WITH CIRCUMFLEX
+1E92 ; mapped ; 1E93 # 1.1 LATIN CAPITAL
LETTER Z WITH DOT BELOW
+1E93 ; valid # 1.1 LATIN SMALL
LETTER Z WITH DOT BELOW
+1E94 ; mapped ; 1E95 # 1.1 LATIN CAPITAL
LETTER Z WITH LINE BELOW
+1E95..1E99 ; valid # 1.1 LATIN SMALL
LETTER Z WITH LINE BELOW..LATIN SMALL LETTER Y WITH RING ABOVE
+1E9A ; mapped ; 0061 02BE # 1.1 LATIN SMALL
LETTER A WITH RIGHT HALF RING
+1E9B ; mapped ; 1E61 # 2.0 LATIN SMALL
LETTER LONG S WITH DOT ABOVE
+1E9C..1E9D ; valid # 5.1 LATIN SMALL
LETTER LONG S WITH DIAGONAL STROKE..LATIN SMALL LETTER LONG S WITH HIGH STROKE
+1E9E ; mapped ; 0073 0073 # 5.1 LATIN CAPITAL
LETTER SHARP S
+1E9F ; valid # 5.1 LATIN SMALL
LETTER DELTA
+1EA0 ; mapped ; 1EA1 # 1.1 LATIN CAPITAL
LETTER A WITH DOT BELOW
+1EA1 ; valid # 1.1 LATIN SMALL
LETTER A WITH DOT BELOW
+1EA2 ; mapped ; 1EA3 # 1.1 LATIN CAPITAL
LETTER A WITH HOOK ABOVE
+1EA3 ; valid # 1.1 LATIN SMALL
LETTER A WITH HOOK ABOVE
+1EA4 ; mapped ; 1EA5 # 1.1 LATIN CAPITAL
LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA5 ; valid # 1.1 LATIN SMALL
LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA6 ; mapped ; 1EA7 # 1.1 LATIN CAPITAL
LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA7 ; valid # 1.1 LATIN SMALL
LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA8 ; mapped ; 1EA9 # 1.1 LATIN CAPITAL
LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EA9 ; valid # 1.1 LATIN SMALL
LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EAA ; mapped ; 1EAB # 1.1 LATIN CAPITAL
LETTER A WITH CIRCUMFLEX AND TILDE
+1EAB ; valid # 1.1 LATIN SMALL
LETTER A WITH CIRCUMFLEX AND TILDE
+1EAC ; mapped ; 1EAD # 1.1 LATIN CAPITAL
LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAD ; valid # 1.1 LATIN SMALL
LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAE ; mapped ; 1EAF # 1.1 LATIN CAPITAL
LETTER A WITH BREVE AND ACUTE
+1EAF ; valid # 1.1 LATIN SMALL
LETTER A WITH BREVE AND ACUTE
+1EB0 ; mapped ; 1EB1 # 1.1 LATIN CAPITAL
LETTER A WITH BREVE AND GRAVE
+1EB1 ; valid # 1.1 LATIN SMALL
LETTER A WITH BREVE AND GRAVE
+1EB2 ; mapped ; 1EB3 # 1.1 LATIN CAPITAL
LETTER A WITH BREVE AND HOOK ABOVE
+1EB3 ; valid # 1.1 LATIN SMALL
LETTER A WITH BREVE AND HOOK ABOVE
+1EB4 ; mapped ; 1EB5 # 1.1 LATIN CAPITAL
LETTER A WITH BREVE AND TILDE
+1EB5 ; valid # 1.1 LATIN SMALL
LETTER A WITH BREVE AND TILDE
+1EB6 ; mapped ; 1EB7 # 1.1 LATIN CAPITAL
LETTER A WITH BREVE AND DOT BELOW
+1EB7 ; valid # 1.1 LATIN SMALL
LETTER A WITH BREVE AND DOT BELOW
+1EB8 ; mapped ; 1EB9 # 1.1 LATIN CAPITAL
LETTER E WITH DOT BELOW
+1EB9 ; valid # 1.1 LATIN SMALL
LETTER E WITH DOT BELOW
+1EBA ; mapped ; 1EBB # 1.1 LATIN CAPITAL
LETTER E WITH HOOK ABOVE
+1EBB ; valid # 1.1 LATIN SMALL
LETTER E WITH HOOK ABOVE
+1EBC ; mapped ; 1EBD # 1.1 LATIN CAPITAL
LETTER E WITH TILDE
+1EBD ; valid # 1.1 LATIN SMALL
LETTER E WITH TILDE
+1EBE ; mapped ; 1EBF # 1.1 LATIN CAPITAL
LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBF ; valid # 1.1 LATIN SMALL
LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC0 ; mapped ; 1EC1 # 1.1 LATIN CAPITAL
LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC1 ; valid # 1.1 LATIN SMALL
LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC2 ; mapped ; 1EC3 # 1.1 LATIN CAPITAL
LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC3 ; valid # 1.1 LATIN SMALL
LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC4 ; mapped ; 1EC5 # 1.1 LATIN CAPITAL
LETTER E WITH CIRCUMFLEX AND TILDE
+1EC5 ; valid # 1.1 LATIN SMALL
LETTER E WITH CIRCUMFLEX AND TILDE
+1EC6 ; mapped ; 1EC7 # 1.1 LATIN CAPITAL
LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC7 ; valid # 1.1 LATIN SMALL
LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC8 ; mapped ; 1EC9 # 1.1 LATIN CAPITAL
LETTER I WITH HOOK ABOVE
+1EC9 ; valid # 1.1 LATIN SMALL
LETTER I WITH HOOK ABOVE
+1ECA ; mapped ; 1ECB # 1.1 LATIN CAPITAL
LETTER I WITH DOT BELOW
+1ECB ; valid # 1.1 LATIN SMALL
LETTER I WITH DOT BELOW
+1ECC ; mapped ; 1ECD # 1.1 LATIN CAPITAL
LETTER O WITH DOT BELOW
+1ECD ; valid # 1.1 LATIN SMALL
LETTER O WITH DOT BELOW
+1ECE ; mapped ; 1ECF # 1.1 LATIN CAPITAL
LETTER O WITH HOOK ABOVE
+1ECF ; valid # 1.1 LATIN SMALL
LETTER O WITH HOOK ABOVE
+1ED0 ; mapped ; 1ED1 # 1.1 LATIN CAPITAL
LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED1 ; valid # 1.1 LATIN SMALL
LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED2 ; mapped ; 1ED3 # 1.1 LATIN CAPITAL
LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED3 ; valid # 1.1 LATIN SMALL
LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED4 ; mapped ; 1ED5 # 1.1 LATIN CAPITAL
LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED5 ; valid # 1.1 LATIN SMALL
LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED6 ; mapped ; 1ED7 # 1.1 LATIN CAPITAL
LETTER O WITH CIRCUMFLEX AND TILDE
+1ED7 ; valid # 1.1 LATIN SMALL
LETTER O WITH CIRCUMFLEX AND TILDE
+1ED8 ; mapped ; 1ED9 # 1.1 LATIN CAPITAL
LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED9 ; valid # 1.1 LATIN SMALL
LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1EDA ; mapped ; 1EDB # 1.1 LATIN CAPITAL
LETTER O WITH HORN AND ACUTE
+1EDB ; valid # 1.1 LATIN SMALL
LETTER O WITH HORN AND ACUTE
+1EDC ; mapped ; 1EDD # 1.1 LATIN CAPITAL
LETTER O WITH HORN AND GRAVE
+1EDD ; valid # 1.1 LATIN SMALL
LETTER O WITH HORN AND GRAVE
+1EDE ; mapped ; 1EDF # 1.1 LATIN CAPITAL
LETTER O WITH HORN AND HOOK ABOVE
+1EDF ; valid # 1.1 LATIN SMALL
LETTER O WITH HORN AND HOOK ABOVE
+1EE0 ; mapped ; 1EE1 # 1.1 LATIN CAPITAL
LETTER O WITH HORN AND TILDE
+1EE1 ; valid # 1.1 LATIN SMALL
LETTER O WITH HORN AND TILDE
+1EE2 ; mapped ; 1EE3 # 1.1 LATIN CAPITAL
LETTER O WITH HORN AND DOT BELOW
+1EE3 ; valid # 1.1 LATIN SMALL
LETTER O WITH HORN AND DOT BELOW
+1EE4 ; mapped ; 1EE5 # 1.1 LATIN CAPITAL
LETTER U WITH DOT BELOW
+1EE5 ; valid # 1.1 LATIN SMALL
LETTER U WITH DOT BELOW
+1EE6 ; mapped ; 1EE7 # 1.1 LATIN CAPITAL
LETTER U WITH HOOK ABOVE
+1EE7 ; valid # 1.1 LATIN SMALL
LETTER U WITH HOOK ABOVE
+1EE8 ; mapped ; 1EE9 # 1.1 LATIN CAPITAL
LETTER U WITH HORN AND ACUTE
+1EE9 ; valid # 1.1 LATIN SMALL
LETTER U WITH HORN AND ACUTE
+1EEA ; mapped ; 1EEB # 1.1 LATIN CAPITAL
LETTER U WITH HORN AND GRAVE
+1EEB ; valid # 1.1 LATIN SMALL
LETTER U WITH HORN AND GRAVE
+1EEC ; mapped ; 1EED # 1.1 LATIN CAPITAL
LETTER U WITH HORN AND HOOK ABOVE
+1EED ; valid # 1.1 LATIN SMALL
LETTER U WITH HORN AND HOOK ABOVE
+1EEE ; mapped ; 1EEF # 1.1 LATIN CAPITAL
LETTER U WITH HORN AND TILDE
+1EEF ; valid # 1.1 LATIN SMALL
LETTER U WITH HORN AND TILDE
+1EF0 ; mapped ; 1EF1 # 1.1 LATIN CAPITAL
LETTER U WITH HORN AND DOT BELOW
+1EF1 ; valid # 1.1 LATIN SMALL
LETTER U WITH HORN AND DOT BELOW
+1EF2 ; mapped ; 1EF3 # 1.1 LATIN CAPITAL
LETTER Y WITH GRAVE
+1EF3 ; valid # 1.1 LATIN SMALL
LETTER Y WITH GRAVE
+1EF4 ; mapped ; 1EF5 # 1.1 LATIN CAPITAL
LETTER Y WITH DOT BELOW
+1EF5 ; valid # 1.1 LATIN SMALL
LETTER Y WITH DOT BELOW
+1EF6 ; mapped ; 1EF7 # 1.1 LATIN CAPITAL
LETTER Y WITH HOOK ABOVE
+1EF7 ; valid # 1.1 LATIN SMALL
LETTER Y WITH HOOK ABOVE
+1EF8 ; mapped ; 1EF9 # 1.1 LATIN CAPITAL
LETTER Y WITH TILDE
+1EF9 ; valid # 1.1 LATIN SMALL
LETTER Y WITH TILDE
+1EFA ; mapped ; 1EFB # 5.1 LATIN CAPITAL
LETTER MIDDLE-WELSH LL
+1EFB ; valid # 5.1 LATIN SMALL
LETTER MIDDLE-WELSH LL
+1EFC ; mapped ; 1EFD # 5.1 LATIN CAPITAL
LETTER MIDDLE-WELSH V
+1EFD ; valid # 5.1 LATIN SMALL
LETTER MIDDLE-WELSH V
+1EFE ; mapped ; 1EFF # 5.1 LATIN CAPITAL
LETTER Y WITH LOOP
+1EFF ; valid # 5.1 LATIN SMALL
LETTER Y WITH LOOP
+1F00..1F07 ; valid # 1.1 GREEK SMALL
LETTER ALPHA WITH PSILI..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F08 ; mapped ; 1F00 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH PSILI
+1F09 ; mapped ; 1F01 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH DASIA
+1F0A ; mapped ; 1F02 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH PSILI AND VARIA
+1F0B ; mapped ; 1F03 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH DASIA AND VARIA
+1F0C ; mapped ; 1F04 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH PSILI AND OXIA
+1F0D ; mapped ; 1F05 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH DASIA AND OXIA
+1F0E ; mapped ; 1F06 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH PSILI AND PERISPOMENI
+1F0F ; mapped ; 1F07 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F10..1F15 ; valid # 1.1 GREEK SMALL
LETTER EPSILON WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F16..1F17 ; disallowed # NA
<reserved-1F16>..<reserved-1F17>
+1F18 ; mapped ; 1F10 # 1.1 GREEK CAPITAL
LETTER EPSILON WITH PSILI
+1F19 ; mapped ; 1F11 # 1.1 GREEK CAPITAL
LETTER EPSILON WITH DASIA
+1F1A ; mapped ; 1F12 # 1.1 GREEK CAPITAL
LETTER EPSILON WITH PSILI AND VARIA
+1F1B ; mapped ; 1F13 # 1.1 GREEK CAPITAL
LETTER EPSILON WITH DASIA AND VARIA
+1F1C ; mapped ; 1F14 # 1.1 GREEK CAPITAL
LETTER EPSILON WITH PSILI AND OXIA
+1F1D ; mapped ; 1F15 # 1.1 GREEK CAPITAL
LETTER EPSILON WITH DASIA AND OXIA
+1F1E..1F1F ; disallowed # NA
<reserved-1F1E>..<reserved-1F1F>
+1F20..1F27 ; valid # 1.1 GREEK SMALL
LETTER ETA WITH PSILI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+1F28 ; mapped ; 1F20 # 1.1 GREEK CAPITAL
LETTER ETA WITH PSILI
+1F29 ; mapped ; 1F21 # 1.1 GREEK CAPITAL
LETTER ETA WITH DASIA
+1F2A ; mapped ; 1F22 # 1.1 GREEK CAPITAL
LETTER ETA WITH PSILI AND VARIA
+1F2B ; mapped ; 1F23 # 1.1 GREEK CAPITAL
LETTER ETA WITH DASIA AND VARIA
+1F2C ; mapped ; 1F24 # 1.1 GREEK CAPITAL
LETTER ETA WITH PSILI AND OXIA
+1F2D ; mapped ; 1F25 # 1.1 GREEK CAPITAL
LETTER ETA WITH DASIA AND OXIA
+1F2E ; mapped ; 1F26 # 1.1 GREEK CAPITAL
LETTER ETA WITH PSILI AND PERISPOMENI
+1F2F ; mapped ; 1F27 # 1.1 GREEK CAPITAL
LETTER ETA WITH DASIA AND PERISPOMENI
+1F30..1F37 ; valid # 1.1 GREEK SMALL
LETTER IOTA WITH PSILI..GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F38 ; mapped ; 1F30 # 1.1 GREEK CAPITAL
LETTER IOTA WITH PSILI
+1F39 ; mapped ; 1F31 # 1.1 GREEK CAPITAL
LETTER IOTA WITH DASIA
+1F3A ; mapped ; 1F32 # 1.1 GREEK CAPITAL
LETTER IOTA WITH PSILI AND VARIA
+1F3B ; mapped ; 1F33 # 1.1 GREEK CAPITAL
LETTER IOTA WITH DASIA AND VARIA
+1F3C ; mapped ; 1F34 # 1.1 GREEK CAPITAL
LETTER IOTA WITH PSILI AND OXIA
+1F3D ; mapped ; 1F35 # 1.1 GREEK CAPITAL
LETTER IOTA WITH DASIA AND OXIA
+1F3E ; mapped ; 1F36 # 1.1 GREEK CAPITAL
LETTER IOTA WITH PSILI AND PERISPOMENI
+1F3F ; mapped ; 1F37 # 1.1 GREEK CAPITAL
LETTER IOTA WITH DASIA AND PERISPOMENI
+1F40..1F45 ; valid # 1.1 GREEK SMALL
LETTER OMICRON WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F46..1F47 ; disallowed # NA
<reserved-1F46>..<reserved-1F47>
+1F48 ; mapped ; 1F40 # 1.1 GREEK CAPITAL
LETTER OMICRON WITH PSILI
+1F49 ; mapped ; 1F41 # 1.1 GREEK CAPITAL
LETTER OMICRON WITH DASIA
+1F4A ; mapped ; 1F42 # 1.1 GREEK CAPITAL
LETTER OMICRON WITH PSILI AND VARIA
+1F4B ; mapped ; 1F43 # 1.1 GREEK CAPITAL
LETTER OMICRON WITH DASIA AND VARIA
+1F4C ; mapped ; 1F44 # 1.1 GREEK CAPITAL
LETTER OMICRON WITH PSILI AND OXIA
+1F4D ; mapped ; 1F45 # 1.1 GREEK CAPITAL
LETTER OMICRON WITH DASIA AND OXIA
+1F4E..1F4F ; disallowed # NA
<reserved-1F4E>..<reserved-1F4F>
+1F50..1F57 ; valid # 1.1 GREEK SMALL
LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F58 ; disallowed # NA <reserved-1F58>
+1F59 ; mapped ; 1F51 # 1.1 GREEK CAPITAL
LETTER UPSILON WITH DASIA
+1F5A ; disallowed # NA <reserved-1F5A>
+1F5B ; mapped ; 1F53 # 1.1 GREEK CAPITAL
LETTER UPSILON WITH DASIA AND VARIA
+1F5C ; disallowed # NA <reserved-1F5C>
+1F5D ; mapped ; 1F55 # 1.1 GREEK CAPITAL
LETTER UPSILON WITH DASIA AND OXIA
+1F5E ; disallowed # NA <reserved-1F5E>
+1F5F ; mapped ; 1F57 # 1.1 GREEK CAPITAL
LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F60..1F67 ; valid # 1.1 GREEK SMALL
LETTER OMEGA WITH PSILI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F68 ; mapped ; 1F60 # 1.1 GREEK CAPITAL
LETTER OMEGA WITH PSILI
+1F69 ; mapped ; 1F61 # 1.1 GREEK CAPITAL
LETTER OMEGA WITH DASIA
+1F6A ; mapped ; 1F62 # 1.1 GREEK CAPITAL
LETTER OMEGA WITH PSILI AND VARIA
+1F6B ; mapped ; 1F63 # 1.1 GREEK CAPITAL
LETTER OMEGA WITH DASIA AND VARIA
+1F6C ; mapped ; 1F64 # 1.1 GREEK CAPITAL
LETTER OMEGA WITH PSILI AND OXIA
+1F6D ; mapped ; 1F65 # 1.1 GREEK CAPITAL
LETTER OMEGA WITH DASIA AND OXIA
+1F6E ; mapped ; 1F66 # 1.1 GREEK CAPITAL
LETTER OMEGA WITH PSILI AND PERISPOMENI
+1F6F ; mapped ; 1F67 # 1.1 GREEK CAPITAL
LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F70 ; valid # 1.1 GREEK SMALL
LETTER ALPHA WITH VARIA
+1F71 ; mapped ; 03AC # 1.1 GREEK SMALL
LETTER ALPHA WITH OXIA
+1F72 ; valid # 1.1 GREEK SMALL
LETTER EPSILON WITH VARIA
+1F73 ; mapped ; 03AD # 1.1 GREEK SMALL
LETTER EPSILON WITH OXIA
+1F74 ; valid # 1.1 GREEK SMALL
LETTER ETA WITH VARIA
+1F75 ; mapped ; 03AE # 1.1 GREEK SMALL
LETTER ETA WITH OXIA
+1F76 ; valid # 1.1 GREEK SMALL
LETTER IOTA WITH VARIA
+1F77 ; mapped ; 03AF # 1.1 GREEK SMALL
LETTER IOTA WITH OXIA
+1F78 ; valid # 1.1 GREEK SMALL
LETTER OMICRON WITH VARIA
+1F79 ; mapped ; 03CC # 1.1 GREEK SMALL
LETTER OMICRON WITH OXIA
+1F7A ; valid # 1.1 GREEK SMALL
LETTER UPSILON WITH VARIA
+1F7B ; mapped ; 03CD # 1.1 GREEK SMALL
LETTER UPSILON WITH OXIA
+1F7C ; valid # 1.1 GREEK SMALL
LETTER OMEGA WITH VARIA
+1F7D ; mapped ; 03CE # 1.1 GREEK SMALL
LETTER OMEGA WITH OXIA
+1F7E..1F7F ; disallowed # NA
<reserved-1F7E>..<reserved-1F7F>
+1F80 ; mapped ; 1F00 03B9 # 1.1 GREEK SMALL
LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+1F81 ; mapped ; 1F01 03B9 # 1.1 GREEK SMALL
LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+1F82 ; mapped ; 1F02 03B9 # 1.1 GREEK SMALL
LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F83 ; mapped ; 1F03 03B9 # 1.1 GREEK SMALL
LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F84 ; mapped ; 1F04 03B9 # 1.1 GREEK SMALL
LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F85 ; mapped ; 1F05 03B9 # 1.1 GREEK SMALL
LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F86 ; mapped ; 1F06 03B9 # 1.1 GREEK SMALL
LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F87 ; mapped ; 1F07 03B9 # 1.1 GREEK SMALL
LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F88 ; mapped ; 1F00 03B9 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+1F89 ; mapped ; 1F01 03B9 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+1F8A ; mapped ; 1F02 03B9 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F8B ; mapped ; 1F03 03B9 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F8C ; mapped ; 1F04 03B9 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F8D ; mapped ; 1F05 03B9 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F8E ; mapped ; 1F06 03B9 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F8F ; mapped ; 1F07 03B9 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1F90 ; mapped ; 1F20 03B9 # 1.1 GREEK SMALL
LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+1F91 ; mapped ; 1F21 03B9 # 1.1 GREEK SMALL
LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+1F92 ; mapped ; 1F22 03B9 # 1.1 GREEK SMALL
LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F93 ; mapped ; 1F23 03B9 # 1.1 GREEK SMALL
LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F94 ; mapped ; 1F24 03B9 # 1.1 GREEK SMALL
LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F95 ; mapped ; 1F25 03B9 # 1.1 GREEK SMALL
LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F96 ; mapped ; 1F26 03B9 # 1.1 GREEK SMALL
LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F97 ; mapped ; 1F27 03B9 # 1.1 GREEK SMALL
LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F98 ; mapped ; 1F20 03B9 # 1.1 GREEK CAPITAL
LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+1F99 ; mapped ; 1F21 03B9 # 1.1 GREEK CAPITAL
LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+1F9A ; mapped ; 1F22 03B9 # 1.1 GREEK CAPITAL
LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F9B ; mapped ; 1F23 03B9 # 1.1 GREEK CAPITAL
LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F9C ; mapped ; 1F24 03B9 # 1.1 GREEK CAPITAL
LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F9D ; mapped ; 1F25 03B9 # 1.1 GREEK CAPITAL
LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F9E ; mapped ; 1F26 03B9 # 1.1 GREEK CAPITAL
LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F9F ; mapped ; 1F27 03B9 # 1.1 GREEK CAPITAL
LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FA0 ; mapped ; 1F60 03B9 # 1.1 GREEK SMALL
LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+1FA1 ; mapped ; 1F61 03B9 # 1.1 GREEK SMALL
LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+1FA2 ; mapped ; 1F62 03B9 # 1.1 GREEK SMALL
LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1FA3 ; mapped ; 1F63 03B9 # 1.1 GREEK SMALL
LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1FA4 ; mapped ; 1F64 03B9 # 1.1 GREEK SMALL
LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1FA5 ; mapped ; 1F65 03B9 # 1.1 GREEK SMALL
LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1FA6 ; mapped ; 1F66 03B9 # 1.1 GREEK SMALL
LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1FA7 ; mapped ; 1F67 03B9 # 1.1 GREEK SMALL
LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1FA8 ; mapped ; 1F60 03B9 # 1.1 GREEK CAPITAL
LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+1FA9 ; mapped ; 1F61 03B9 # 1.1 GREEK CAPITAL
LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+1FAA ; mapped ; 1F62 03B9 # 1.1 GREEK CAPITAL
LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1FAB ; mapped ; 1F63 03B9 # 1.1 GREEK CAPITAL
LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1FAC ; mapped ; 1F64 03B9 # 1.1 GREEK CAPITAL
LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1FAD ; mapped ; 1F65 03B9 # 1.1 GREEK CAPITAL
LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1FAE ; mapped ; 1F66 03B9 # 1.1 GREEK CAPITAL
LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1FAF ; mapped ; 1F67 03B9 # 1.1 GREEK CAPITAL
LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FB0..1FB1 ; valid # 1.1 GREEK SMALL
LETTER ALPHA WITH VRACHY..GREEK SMALL LETTER ALPHA WITH MACRON
+1FB2 ; mapped ; 1F70 03B9 # 1.1 GREEK SMALL
LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+1FB3 ; mapped ; 03B1 03B9 # 1.1 GREEK SMALL
LETTER ALPHA WITH YPOGEGRAMMENI
+1FB4 ; mapped ; 03AC 03B9 # 1.1 GREEK SMALL
LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB5 ; disallowed # NA <reserved-1FB5>
+1FB6 ; valid # 1.1 GREEK SMALL
LETTER ALPHA WITH PERISPOMENI
+1FB7 ; mapped ; 1FB6 03B9 # 1.1 GREEK SMALL
LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FB8 ; mapped ; 1FB0 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH VRACHY
+1FB9 ; mapped ; 1FB1 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH MACRON
+1FBA ; mapped ; 1F70 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH VARIA
+1FBB ; mapped ; 03AC # 1.1 GREEK CAPITAL
LETTER ALPHA WITH OXIA
+1FBC ; mapped ; 03B1 03B9 # 1.1 GREEK CAPITAL
LETTER ALPHA WITH PROSGEGRAMMENI
+1FBD ; disallowed_STD3_mapped ; 0020 0313 # 1.1 GREEK KORONIS
+1FBE ; mapped ; 03B9 # 1.1 GREEK
PROSGEGRAMMENI
+1FBF ; disallowed_STD3_mapped ; 0020 0313 # 1.1 GREEK PSILI
+1FC0 ; disallowed_STD3_mapped ; 0020 0342 # 1.1 GREEK PERISPOMENI
+1FC1 ; disallowed_STD3_mapped ; 0020 0308 0342 #1.1 GREEK DIALYTIKA
AND PERISPOMENI
+1FC2 ; mapped ; 1F74 03B9 # 1.1 GREEK SMALL
LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+1FC3 ; mapped ; 03B7 03B9 # 1.1 GREEK SMALL
LETTER ETA WITH YPOGEGRAMMENI
+1FC4 ; mapped ; 03AE 03B9 # 1.1 GREEK SMALL
LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC5 ; disallowed # NA <reserved-1FC5>
+1FC6 ; valid # 1.1 GREEK SMALL
LETTER ETA WITH PERISPOMENI
+1FC7 ; mapped ; 1FC6 03B9 # 1.1 GREEK SMALL
LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FC8 ; mapped ; 1F72 # 1.1 GREEK CAPITAL
LETTER EPSILON WITH VARIA
+1FC9 ; mapped ; 03AD # 1.1 GREEK CAPITAL
LETTER EPSILON WITH OXIA
+1FCA ; mapped ; 1F74 # 1.1 GREEK CAPITAL
LETTER ETA WITH VARIA
+1FCB ; mapped ; 03AE # 1.1 GREEK CAPITAL
LETTER ETA WITH OXIA
+1FCC ; mapped ; 03B7 03B9 # 1.1 GREEK CAPITAL
LETTER ETA WITH PROSGEGRAMMENI
+1FCD ; disallowed_STD3_mapped ; 0020 0313 0300 #1.1 GREEK PSILI AND
VARIA
+1FCE ; disallowed_STD3_mapped ; 0020 0313 0301 #1.1 GREEK PSILI AND
OXIA
+1FCF ; disallowed_STD3_mapped ; 0020 0313 0342 #1.1 GREEK PSILI AND
PERISPOMENI
+1FD0..1FD2 ; valid # 1.1 GREEK SMALL
LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+1FD3 ; mapped ; 0390 # 1.1 GREEK SMALL
LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD4..1FD5 ; disallowed # NA
<reserved-1FD4>..<reserved-1FD5>
+1FD6..1FD7 ; valid # 1.1 GREEK SMALL
LETTER IOTA WITH PERISPOMENI..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND
PERISPOMENI
+1FD8 ; mapped ; 1FD0 # 1.1 GREEK CAPITAL
LETTER IOTA WITH VRACHY
+1FD9 ; mapped ; 1FD1 # 1.1 GREEK CAPITAL
LETTER IOTA WITH MACRON
+1FDA ; mapped ; 1F76 # 1.1 GREEK CAPITAL
LETTER IOTA WITH VARIA
+1FDB ; mapped ; 03AF # 1.1 GREEK CAPITAL
LETTER IOTA WITH OXIA
+1FDC ; disallowed # NA <reserved-1FDC>
+1FDD ; disallowed_STD3_mapped ; 0020 0314 0300 #1.1 GREEK DASIA AND
VARIA
+1FDE ; disallowed_STD3_mapped ; 0020 0314 0301 #1.1 GREEK DASIA AND
OXIA
+1FDF ; disallowed_STD3_mapped ; 0020 0314 0342 #1.1 GREEK DASIA AND
PERISPOMENI
+1FE0..1FE2 ; valid # 1.1 GREEK SMALL
LETTER UPSILON WITH VRACHY..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+1FE3 ; mapped ; 03B0 # 1.1 GREEK SMALL
LETTER UPSILON WITH DIALYTIKA AND OXIA
+1FE4..1FE7 ; valid # 1.1 GREEK SMALL
LETTER RHO WITH PSILI..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+1FE8 ; mapped ; 1FE0 # 1.1 GREEK CAPITAL
LETTER UPSILON WITH VRACHY
+1FE9 ; mapped ; 1FE1 # 1.1 GREEK CAPITAL
LETTER UPSILON WITH MACRON
+1FEA ; mapped ; 1F7A # 1.1 GREEK CAPITAL
LETTER UPSILON WITH VARIA
+1FEB ; mapped ; 03CD # 1.1 GREEK CAPITAL
LETTER UPSILON WITH OXIA
+1FEC ; mapped ; 1FE5 # 1.1 GREEK CAPITAL
LETTER RHO WITH DASIA
+1FED ; disallowed_STD3_mapped ; 0020 0308 0300 #1.1 GREEK DIALYTIKA
AND VARIA
+1FEE ; disallowed_STD3_mapped ; 0020 0308 0301 #1.1 GREEK DIALYTIKA
AND OXIA
+1FEF ; disallowed_STD3_mapped ; 0060 # 1.1 GREEK VARIA
+1FF0..1FF1 ; disallowed # NA
<reserved-1FF0>..<reserved-1FF1>
+1FF2 ; mapped ; 1F7C 03B9 # 1.1 GREEK SMALL
LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+1FF3 ; mapped ; 03C9 03B9 # 1.1 GREEK SMALL
LETTER OMEGA WITH YPOGEGRAMMENI
+1FF4 ; mapped ; 03CE 03B9 # 1.1 GREEK SMALL
LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF5 ; disallowed # NA <reserved-1FF5>
+1FF6 ; valid # 1.1 GREEK SMALL
LETTER OMEGA WITH PERISPOMENI
+1FF7 ; mapped ; 1FF6 03B9 # 1.1 GREEK SMALL
LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FF8 ; mapped ; 1F78 # 1.1 GREEK CAPITAL
LETTER OMICRON WITH VARIA
+1FF9 ; mapped ; 03CC # 1.1 GREEK CAPITAL
LETTER OMICRON WITH OXIA
+1FFA ; mapped ; 1F7C # 1.1 GREEK CAPITAL
LETTER OMEGA WITH VARIA
+1FFB ; mapped ; 03CE # 1.1 GREEK CAPITAL
LETTER OMEGA WITH OXIA
+1FFC ; mapped ; 03C9 03B9 # 1.1 GREEK CAPITAL
LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD ; disallowed_STD3_mapped ; 0020 0301 # 1.1 GREEK OXIA
+1FFE ; disallowed_STD3_mapped ; 0020 0314 # 1.1 GREEK DASIA
+1FFF ; disallowed # NA <reserved-1FFF>
+2000..200A ; disallowed_STD3_mapped ; 0020 # 1.1 EN QUAD..HAIR
SPACE
+200B ; ignored # 1.1 ZERO WIDTH SPACE
+200C..200D ; deviation ; # 1.1 ZERO WIDTH
NON-JOINER..ZERO WIDTH JOINER
+200E..200F ; disallowed # 1.1 LEFT-TO-RIGHT
MARK..RIGHT-TO-LEFT MARK
+2010 ; valid ; ; NV8 # 1.1 HYPHEN
+2011 ; mapped ; 2010 # 1.1 NON-BREAKING
HYPHEN
+2012..2016 ; valid ; ; NV8 # 1.1 FIGURE
DASH..DOUBLE VERTICAL LINE
+2017 ; disallowed_STD3_mapped ; 0020 0333 # 1.1 DOUBLE LOW LINE
+2018..2023 ; valid ; ; NV8 # 1.1 LEFT SINGLE
QUOTATION MARK..TRIANGULAR BULLET
+2024..2026 ; disallowed # 1.1 ONE DOT
LEADER..HORIZONTAL ELLIPSIS
+2027 ; valid ; ; NV8 # 1.1 HYPHENATION POINT
+2028..202E ; disallowed # 1.1 LINE
SEPARATOR..RIGHT-TO-LEFT OVERRIDE
+202F ; disallowed_STD3_mapped ; 0020 # 3.0 NARROW NO-BREAK
SPACE
+2030..2032 ; valid ; ; NV8 # 1.1 PER MILLE
SIGN..PRIME
+2033 ; mapped ; 2032 2032 # 1.1 DOUBLE PRIME
+2034 ; mapped ; 2032 2032 2032 #1.1 TRIPLE PRIME
+2035 ; valid ; ; NV8 # 1.1 REVERSED PRIME
+2036 ; mapped ; 2035 2035 # 1.1 REVERSED DOUBLE
PRIME
+2037 ; mapped ; 2035 2035 2035 #1.1 REVERSED TRIPLE
PRIME
+2038..203B ; valid ; ; NV8 # 1.1 CARET..REFERENCE
MARK
+203C ; disallowed_STD3_mapped ; 0021 0021 # 1.1 DOUBLE
EXCLAMATION MARK
+203D ; valid ; ; NV8 # 1.1 INTERROBANG
+203E ; disallowed_STD3_mapped ; 0020 0305 # 1.1 OVERLINE
+203F..2046 ; valid ; ; NV8 # 1.1 UNDERTIE..RIGHT
SQUARE BRACKET WITH QUILL
+2047 ; disallowed_STD3_mapped ; 003F 003F # 3.2 DOUBLE QUESTION
MARK
+2048 ; disallowed_STD3_mapped ; 003F 0021 # 3.0 QUESTION
EXCLAMATION MARK
+2049 ; disallowed_STD3_mapped ; 0021 003F # 3.0 EXCLAMATION
QUESTION MARK
+204A..204D ; valid ; ; NV8 # 3.0 TIRONIAN SIGN
ET..BLACK RIGHTWARDS BULLET
+204E..2052 ; valid ; ; NV8 # 3.2 LOW
ASTERISK..COMMERCIAL MINUS SIGN
+2053..2054 ; valid ; ; NV8 # 4.0 SWUNG
DASH..INVERTED UNDERTIE
+2055..2056 ; valid ; ; NV8 # 4.1 FLOWER
PUNCTUATION MARK..THREE DOT PUNCTUATION
+2057 ; mapped ; 2032 2032 2032 2032 #3.2 QUADRUPLE
PRIME
+2058..205E ; valid ; ; NV8 # 4.1 FOUR DOT
PUNCTUATION..VERTICAL FOUR DOTS
+205F ; disallowed_STD3_mapped ; 0020 # 3.2 MEDIUM
MATHEMATICAL SPACE
+2060 ; ignored # 3.2 WORD JOINER
+2061..2063 ; disallowed # 3.2 FUNCTION
APPLICATION..INVISIBLE SEPARATOR
+2064 ; ignored # 5.1 INVISIBLE PLUS
+2065 ; disallowed # NA <reserved-2065>
+2066..2069 ; disallowed # 6.3 LEFT-TO-RIGHT
ISOLATE..POP DIRECTIONAL ISOLATE
+206A..206F ; disallowed # 1.1 INHIBIT
SYMMETRIC SWAPPING..NOMINAL DIGIT SHAPES
+2070 ; mapped ; 0030 # 1.1 SUPERSCRIPT ZERO
+2071 ; mapped ; 0069 # 3.2 SUPERSCRIPT
LATIN SMALL LETTER I
+2072..2073 ; disallowed # NA
<reserved-2072>..<reserved-2073>
+2074 ; mapped ; 0034 # 1.1 SUPERSCRIPT FOUR
+2075 ; mapped ; 0035 # 1.1 SUPERSCRIPT FIVE
+2076 ; mapped ; 0036 # 1.1 SUPERSCRIPT SIX
+2077 ; mapped ; 0037 # 1.1 SUPERSCRIPT SEVEN
+2078 ; mapped ; 0038 # 1.1 SUPERSCRIPT EIGHT
+2079 ; mapped ; 0039 # 1.1 SUPERSCRIPT NINE
+207A ; disallowed_STD3_mapped ; 002B # 1.1 SUPERSCRIPT PLUS
SIGN
+207B ; mapped ; 2212 # 1.1 SUPERSCRIPT MINUS
+207C ; disallowed_STD3_mapped ; 003D # 1.1 SUPERSCRIPT
EQUALS SIGN
+207D ; disallowed_STD3_mapped ; 0028 # 1.1 SUPERSCRIPT LEFT
PARENTHESIS
+207E ; disallowed_STD3_mapped ; 0029 # 1.1 SUPERSCRIPT
RIGHT PARENTHESIS
+207F ; mapped ; 006E # 1.1 SUPERSCRIPT
LATIN SMALL LETTER N
+2080 ; mapped ; 0030 # 1.1 SUBSCRIPT ZERO
+2081 ; mapped ; 0031 # 1.1 SUBSCRIPT ONE
+2082 ; mapped ; 0032 # 1.1 SUBSCRIPT TWO
+2083 ; mapped ; 0033 # 1.1 SUBSCRIPT THREE
+2084 ; mapped ; 0034 # 1.1 SUBSCRIPT FOUR
+2085 ; mapped ; 0035 # 1.1 SUBSCRIPT FIVE
+2086 ; mapped ; 0036 # 1.1 SUBSCRIPT SIX
+2087 ; mapped ; 0037 # 1.1 SUBSCRIPT SEVEN
+2088 ; mapped ; 0038 # 1.1 SUBSCRIPT EIGHT
+2089 ; mapped ; 0039 # 1.1 SUBSCRIPT NINE
+208A ; disallowed_STD3_mapped ; 002B # 1.1 SUBSCRIPT PLUS
SIGN
+208B ; mapped ; 2212 # 1.1 SUBSCRIPT MINUS
+208C ; disallowed_STD3_mapped ; 003D # 1.1 SUBSCRIPT EQUALS
SIGN
+208D ; disallowed_STD3_mapped ; 0028 # 1.1 SUBSCRIPT LEFT
PARENTHESIS
+208E ; disallowed_STD3_mapped ; 0029 # 1.1 SUBSCRIPT RIGHT
PARENTHESIS
+208F ; disallowed # NA <reserved-208F>
+2090 ; mapped ; 0061 # 4.1 LATIN SUBSCRIPT
SMALL LETTER A
+2091 ; mapped ; 0065 # 4.1 LATIN SUBSCRIPT
SMALL LETTER E
+2092 ; mapped ; 006F # 4.1 LATIN SUBSCRIPT
SMALL LETTER O
+2093 ; mapped ; 0078 # 4.1 LATIN SUBSCRIPT
SMALL LETTER X
+2094 ; mapped ; 0259 # 4.1 LATIN SUBSCRIPT
SMALL LETTER SCHWA
+2095 ; mapped ; 0068 # 6.0 LATIN SUBSCRIPT
SMALL LETTER H
+2096 ; mapped ; 006B # 6.0 LATIN SUBSCRIPT
SMALL LETTER K
+2097 ; mapped ; 006C # 6.0 LATIN SUBSCRIPT
SMALL LETTER L
+2098 ; mapped ; 006D # 6.0 LATIN SUBSCRIPT
SMALL LETTER M
+2099 ; mapped ; 006E # 6.0 LATIN SUBSCRIPT
SMALL LETTER N
+209A ; mapped ; 0070 # 6.0 LATIN SUBSCRIPT
SMALL LETTER P
+209B ; mapped ; 0073 # 6.0 LATIN SUBSCRIPT
SMALL LETTER S
+209C ; mapped ; 0074 # 6.0 LATIN SUBSCRIPT
SMALL LETTER T
+209D..209F ; disallowed # NA
<reserved-209D>..<reserved-209F>
+20A0..20A7 ; valid ; ; NV8 # 1.1 EURO-CURRENCY
SIGN..PESETA SIGN
+20A8 ; mapped ; 0072 0073 # 1.1 RUPEE SIGN
+20A9..20AA ; valid ; ; NV8 # 1.1 WON SIGN..NEW
SHEQEL SIGN
+20AB ; valid ; ; NV8 # 2.0 DONG SIGN
+20AC ; valid ; ; NV8 # 2.1 EURO SIGN
+20AD..20AF ; valid ; ; NV8 # 3.0 KIP
SIGN..DRACHMA SIGN
+20B0..20B1 ; valid ; ; NV8 # 3.2 GERMAN PENNY
SIGN..PESO SIGN
+20B2..20B5 ; valid ; ; NV8 # 4.1 GUARANI
SIGN..CEDI SIGN
+20B6..20B8 ; valid ; ; NV8 # 5.2 LIVRE TOURNOIS
SIGN..TENGE SIGN
+20B9 ; valid ; ; NV8 # 6.0 INDIAN RUPEE SIGN
+20BA ; valid ; ; NV8 # 6.2 TURKISH LIRA SIGN
+20BB..20BD ; valid ; ; NV8 # 7.0 NORDIC MARK
SIGN..RUBLE SIGN
+20BE ; valid ; ; NV8 # 8.0 LARI SIGN
+20BF ; valid ; ; NV8 # 10.0 BITCOIN SIGN
+20C0 ; valid ; ; NV8 # 14.0 SOM SIGN
+20C1..20CF ; disallowed # NA
<reserved-20C1>..<reserved-20CF>
+20D0..20E1 ; valid ; ; NV8 # 1.1 COMBINING LEFT
HARPOON ABOVE..COMBINING LEFT RIGHT ARROW ABOVE
+20E2..20E3 ; valid ; ; NV8 # 3.0 COMBINING
ENCLOSING SCREEN..COMBINING ENCLOSING KEYCAP
+20E4..20EA ; valid ; ; NV8 # 3.2 COMBINING
ENCLOSING UPWARD POINTING TRIANGLE..COMBINING LEFTWARDS ARROW OVERLAY
+20EB ; valid ; ; NV8 # 4.1 COMBINING LONG
DOUBLE SOLIDUS OVERLAY
+20EC..20EF ; valid ; ; NV8 # 5.0 COMBINING
RIGHTWARDS HARPOON WITH BARB DOWNWARDS..COMBINING RIGHT ARROW BELOW
+20F0 ; valid ; ; NV8 # 5.1 COMBINING
ASTERISK ABOVE
+20F1..20FF ; disallowed # NA
<reserved-20F1>..<reserved-20FF>
+2100 ; disallowed_STD3_mapped ; 0061 002F 0063 #1.1 ACCOUNT OF
+2101 ; disallowed_STD3_mapped ; 0061 002F 0073 #1.1 ADDRESSED TO THE
SUBJECT
+2102 ; mapped ; 0063 # 1.1 DOUBLE-STRUCK
CAPITAL C
+2103 ; mapped ; 00B0 0063 # 1.1 DEGREE CELSIUS
+2104 ; valid ; ; NV8 # 1.1 CENTRE LINE
SYMBOL
+2105 ; disallowed_STD3_mapped ; 0063 002F 006F #1.1 CARE OF
+2106 ; disallowed_STD3_mapped ; 0063 002F 0075 #1.1 CADA UNA
+2107 ; mapped ; 025B # 1.1 EULER CONSTANT
+2108 ; valid ; ; NV8 # 1.1 SCRUPLE
+2109 ; mapped ; 00B0 0066 # 1.1 DEGREE FAHRENHEIT
+210A ; mapped ; 0067 # 1.1 SCRIPT SMALL G
+210B..210E ; mapped ; 0068 # 1.1 SCRIPT CAPITAL
H..PLANCK CONSTANT
+210F ; mapped ; 0127 # 1.1 PLANCK CONSTANT
OVER TWO PI
+2110..2111 ; mapped ; 0069 # 1.1 SCRIPT CAPITAL
I..BLACK-LETTER CAPITAL I
+2112..2113 ; mapped ; 006C # 1.1 SCRIPT CAPITAL
L..SCRIPT SMALL L
+2114 ; valid ; ; NV8 # 1.1 L B BAR SYMBOL
+2115 ; mapped ; 006E # 1.1 DOUBLE-STRUCK
CAPITAL N
+2116 ; mapped ; 006E 006F # 1.1 NUMERO SIGN
+2117..2118 ; valid ; ; NV8 # 1.1 SOUND RECORDING
COPYRIGHT..SCRIPT CAPITAL P
+2119 ; mapped ; 0070 # 1.1 DOUBLE-STRUCK
CAPITAL P
+211A ; mapped ; 0071 # 1.1 DOUBLE-STRUCK
CAPITAL Q
+211B..211D ; mapped ; 0072 # 1.1 SCRIPT CAPITAL
R..DOUBLE-STRUCK CAPITAL R
+211E..211F ; valid ; ; NV8 # 1.1 PRESCRIPTION
TAKE..RESPONSE
+2120 ; mapped ; 0073 006D # 1.1 SERVICE MARK
+2121 ; mapped ; 0074 0065 006C #1.1 TELEPHONE SIGN
+2122 ; mapped ; 0074 006D # 1.1 TRADE MARK SIGN
+2123 ; valid ; ; NV8 # 1.1 VERSICLE
+2124 ; mapped ; 007A # 1.1 DOUBLE-STRUCK
CAPITAL Z
+2125 ; valid ; ; NV8 # 1.1 OUNCE SIGN
+2126 ; mapped ; 03C9 # 1.1 OHM SIGN
+2127 ; valid ; ; NV8 # 1.1 INVERTED OHM SIGN
+2128 ; mapped ; 007A # 1.1 BLACK-LETTER
CAPITAL Z
+2129 ; valid ; ; NV8 # 1.1 TURNED GREEK
SMALL LETTER IOTA
+212A ; mapped ; 006B # 1.1 KELVIN SIGN
+212B ; mapped ; 00E5 # 1.1 ANGSTROM SIGN
+212C ; mapped ; 0062 # 1.1 SCRIPT CAPITAL B
+212D ; mapped ; 0063 # 1.1 BLACK-LETTER
CAPITAL C
+212E ; valid ; ; NV8 # 1.1 ESTIMATED SYMBOL
+212F..2130 ; mapped ; 0065 # 1.1 SCRIPT SMALL
E..SCRIPT CAPITAL E
+2131 ; mapped ; 0066 # 1.1 SCRIPT CAPITAL F
+2132 ; disallowed # 1.1 TURNED CAPITAL F
+2133 ; mapped ; 006D # 1.1 SCRIPT CAPITAL M
+2134 ; mapped ; 006F # 1.1 SCRIPT SMALL O
+2135 ; mapped ; 05D0 # 1.1 ALEF SYMBOL
+2136 ; mapped ; 05D1 # 1.1 BET SYMBOL
+2137 ; mapped ; 05D2 # 1.1 GIMEL SYMBOL
+2138 ; mapped ; 05D3 # 1.1 DALET SYMBOL
+2139 ; mapped ; 0069 # 3.0 INFORMATION
SOURCE
+213A ; valid ; ; NV8 # 3.0 ROTATED CAPITAL Q
+213B ; mapped ; 0066 0061 0078 #4.0 FACSIMILE SIGN
+213C ; mapped ; 03C0 # 4.1 DOUBLE-STRUCK
SMALL PI
+213D..213E ; mapped ; 03B3 # 3.2 DOUBLE-STRUCK
SMALL GAMMA..DOUBLE-STRUCK CAPITAL GAMMA
+213F ; mapped ; 03C0 # 3.2 DOUBLE-STRUCK
CAPITAL PI
+2140 ; mapped ; 2211 # 3.2 DOUBLE-STRUCK
N-ARY SUMMATION
+2141..2144 ; valid ; ; NV8 # 3.2 TURNED
SANS-SERIF CAPITAL G..TURNED SANS-SERIF CAPITAL Y
+2145..2146 ; mapped ; 0064 # 3.2 DOUBLE-STRUCK
ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL D
+2147 ; mapped ; 0065 # 3.2 DOUBLE-STRUCK
ITALIC SMALL E
+2148 ; mapped ; 0069 # 3.2 DOUBLE-STRUCK
ITALIC SMALL I
+2149 ; mapped ; 006A # 3.2 DOUBLE-STRUCK
ITALIC SMALL J
+214A..214B ; valid ; ; NV8 # 3.2 PROPERTY
LINE..TURNED AMPERSAND
+214C ; valid ; ; NV8 # 4.1 PER SIGN
+214D ; valid ; ; NV8 # 5.0 AKTIESELSKAB
+214E ; valid # 5.0 TURNED SMALL F
+214F ; valid ; ; NV8 # 5.1 SYMBOL FOR
SAMARITAN SOURCE
+2150 ; mapped ; 0031 2044 0037 #5.2 VULGAR FRACTION
ONE SEVENTH
+2151 ; mapped ; 0031 2044 0039 #5.2 VULGAR FRACTION
ONE NINTH
+2152 ; mapped ; 0031 2044 0031 0030 #5.2 VULGAR
FRACTION ONE TENTH
+2153 ; mapped ; 0031 2044 0033 #1.1 VULGAR FRACTION
ONE THIRD
+2154 ; mapped ; 0032 2044 0033 #1.1 VULGAR FRACTION
TWO THIRDS
+2155 ; mapped ; 0031 2044 0035 #1.1 VULGAR FRACTION
ONE FIFTH
+2156 ; mapped ; 0032 2044 0035 #1.1 VULGAR FRACTION
TWO FIFTHS
+2157 ; mapped ; 0033 2044 0035 #1.1 VULGAR FRACTION
THREE FIFTHS
+2158 ; mapped ; 0034 2044 0035 #1.1 VULGAR FRACTION
FOUR FIFTHS
+2159 ; mapped ; 0031 2044 0036 #1.1 VULGAR FRACTION
ONE SIXTH
+215A ; mapped ; 0035 2044 0036 #1.1 VULGAR FRACTION
FIVE SIXTHS
+215B ; mapped ; 0031 2044 0038 #1.1 VULGAR FRACTION
ONE EIGHTH
+215C ; mapped ; 0033 2044 0038 #1.1 VULGAR FRACTION
THREE EIGHTHS
+215D ; mapped ; 0035 2044 0038 #1.1 VULGAR FRACTION
FIVE EIGHTHS
+215E ; mapped ; 0037 2044 0038 #1.1 VULGAR FRACTION
SEVEN EIGHTHS
+215F ; mapped ; 0031 2044 # 1.1 FRACTION
NUMERATOR ONE
+2160 ; mapped ; 0069 # 1.1 ROMAN NUMERAL ONE
+2161 ; mapped ; 0069 0069 # 1.1 ROMAN NUMERAL TWO
+2162 ; mapped ; 0069 0069 0069 #1.1 ROMAN NUMERAL
THREE
+2163 ; mapped ; 0069 0076 # 1.1 ROMAN NUMERAL
FOUR
+2164 ; mapped ; 0076 # 1.1 ROMAN NUMERAL
FIVE
+2165 ; mapped ; 0076 0069 # 1.1 ROMAN NUMERAL SIX
+2166 ; mapped ; 0076 0069 0069 #1.1 ROMAN NUMERAL
SEVEN
+2167 ; mapped ; 0076 0069 0069 0069 #1.1 ROMAN
NUMERAL EIGHT
+2168 ; mapped ; 0069 0078 # 1.1 ROMAN NUMERAL
NINE
+2169 ; mapped ; 0078 # 1.1 ROMAN NUMERAL TEN
+216A ; mapped ; 0078 0069 # 1.1 ROMAN NUMERAL
ELEVEN
+216B ; mapped ; 0078 0069 0069 #1.1 ROMAN NUMERAL
TWELVE
+216C ; mapped ; 006C # 1.1 ROMAN NUMERAL
FIFTY
+216D ; mapped ; 0063 # 1.1 ROMAN NUMERAL
ONE HUNDRED
+216E ; mapped ; 0064 # 1.1 ROMAN NUMERAL
FIVE HUNDRED
+216F ; mapped ; 006D # 1.1 ROMAN NUMERAL
ONE THOUSAND
+2170 ; mapped ; 0069 # 1.1 SMALL ROMAN
NUMERAL ONE
+2171 ; mapped ; 0069 0069 # 1.1 SMALL ROMAN
NUMERAL TWO
+2172 ; mapped ; 0069 0069 0069 #1.1 SMALL ROMAN
NUMERAL THREE
+2173 ; mapped ; 0069 0076 # 1.1 SMALL ROMAN
NUMERAL FOUR
+2174 ; mapped ; 0076 # 1.1 SMALL ROMAN
NUMERAL FIVE
+2175 ; mapped ; 0076 0069 # 1.1 SMALL ROMAN
NUMERAL SIX
+2176 ; mapped ; 0076 0069 0069 #1.1 SMALL ROMAN
NUMERAL SEVEN
+2177 ; mapped ; 0076 0069 0069 0069 #1.1 SMALL ROMAN
NUMERAL EIGHT
+2178 ; mapped ; 0069 0078 # 1.1 SMALL ROMAN
NUMERAL NINE
+2179 ; mapped ; 0078 # 1.1 SMALL ROMAN
NUMERAL TEN
+217A ; mapped ; 0078 0069 # 1.1 SMALL ROMAN
NUMERAL ELEVEN
+217B ; mapped ; 0078 0069 0069 #1.1 SMALL ROMAN
NUMERAL TWELVE
+217C ; mapped ; 006C # 1.1 SMALL ROMAN
NUMERAL FIFTY
+217D ; mapped ; 0063 # 1.1 SMALL ROMAN
NUMERAL ONE HUNDRED
+217E ; mapped ; 0064 # 1.1 SMALL ROMAN
NUMERAL FIVE HUNDRED
+217F ; mapped ; 006D # 1.1 SMALL ROMAN
NUMERAL ONE THOUSAND
+2180..2182 ; valid ; ; NV8 # 1.1 ROMAN NUMERAL
ONE THOUSAND C D..ROMAN NUMERAL TEN THOUSAND
+2183 ; disallowed # 3.0 ROMAN NUMERAL
REVERSED ONE HUNDRED
+2184 ; valid # 5.0 LATIN SMALL
LETTER REVERSED C
+2185..2188 ; valid ; ; NV8 # 5.1 ROMAN NUMERAL
SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
+2189 ; mapped ; 0030 2044 0033 #5.2 VULGAR FRACTION
ZERO THIRDS
+218A..218B ; valid ; ; NV8 # 8.0 TURNED DIGIT
TWO..TURNED DIGIT THREE
+218C..218F ; disallowed # NA
<reserved-218C>..<reserved-218F>
+2190..21EA ; valid ; ; NV8 # 1.1 LEFTWARDS
ARROW..UPWARDS WHITE ARROW FROM BAR
+21EB..21F3 ; valid ; ; NV8 # 3.0 UPWARDS WHITE
ARROW ON PEDESTAL..UP DOWN WHITE ARROW
+21F4..21FF ; valid ; ; NV8 # 3.2 RIGHT ARROW WITH
SMALL CIRCLE..LEFT RIGHT OPEN-HEADED ARROW
+2200..222B ; valid ; ; NV8 # 1.1 FOR ALL..INTEGRAL
+222C ; mapped ; 222B 222B # 1.1 DOUBLE INTEGRAL
+222D ; mapped ; 222B 222B 222B #1.1 TRIPLE INTEGRAL
+222E ; valid ; ; NV8 # 1.1 CONTOUR INTEGRAL
+222F ; mapped ; 222E 222E # 1.1 SURFACE INTEGRAL
+2230 ; mapped ; 222E 222E 222E #1.1 VOLUME INTEGRAL
+2231..225F ; valid ; ; NV8 # 1.1 CLOCKWISE
INTEGRAL..QUESTIONED EQUAL TO
+2260 ; disallowed_STD3_valid # 1.1 NOT EQUAL TO
+2261..226D ; valid ; ; NV8 # 1.1 IDENTICAL
TO..NOT EQUIVALENT TO
+226E..226F ; disallowed_STD3_valid # 1.1 NOT
LESS-THAN..NOT GREATER-THAN
+2270..22F1 ; valid ; ; NV8 # 1.1 NEITHER
LESS-THAN NOR EQUAL TO..DOWN RIGHT DIAGONAL ELLIPSIS
+22F2..22FF ; valid ; ; NV8 # 3.2 ELEMENT OF WITH
LONG HORIZONTAL STROKE..Z NOTATION BAG MEMBERSHIP
+2300 ; valid ; ; NV8 # 1.1 DIAMETER SIGN
+2301 ; valid ; ; NV8 # 3.0 ELECTRIC ARROW
+2302..2328 ; valid ; ; NV8 # 1.1 HOUSE..KEYBOARD
+2329 ; mapped ; 3008 # 1.1 LEFT-POINTING
ANGLE BRACKET
+232A ; mapped ; 3009 # 1.1 RIGHT-POINTING
ANGLE BRACKET
+232B..237A ; valid ; ; NV8 # 1.1 ERASE TO THE
LEFT..APL FUNCTIONAL SYMBOL ALPHA
+237B ; valid ; ; NV8 # 3.0 NOT CHECK MARK
+237C ; valid ; ; NV8 # 3.2 RIGHT ANGLE WITH
DOWNWARDS ZIGZAG ARROW
+237D..239A ; valid ; ; NV8 # 3.0 SHOULDERED OPEN
BOX..CLEAR SCREEN SYMBOL
+239B..23CE ; valid ; ; NV8 # 3.2 LEFT PARENTHESIS
UPPER HOOK..RETURN SYMBOL
+23CF..23D0 ; valid ; ; NV8 # 4.0 EJECT
SYMBOL..VERTICAL LINE EXTENSION
+23D1..23DB ; valid ; ; NV8 # 4.1 METRICAL
BREVE..FUSE
+23DC..23E7 ; valid ; ; NV8 # 5.0 TOP
PARENTHESIS..ELECTRICAL INTERSECTION
+23E8 ; valid ; ; NV8 # 5.2 DECIMAL EXPONENT
SYMBOL
+23E9..23F3 ; valid ; ; NV8 # 6.0 BLACK
RIGHT-POINTING DOUBLE TRIANGLE..HOURGLASS WITH FLOWING SAND
+23F4..23FA ; valid ; ; NV8 # 7.0 BLACK MEDIUM
LEFT-POINTING TRIANGLE..BLACK CIRCLE FOR RECORD
+23FB..23FE ; valid ; ; NV8 # 9.0 POWER
SYMBOL..POWER SLEEP SYMBOL
+23FF ; valid ; ; NV8 # 10.0 OBSERVER EYE
SYMBOL
+2400..2424 ; valid ; ; NV8 # 1.1 SYMBOL FOR
NULL..SYMBOL FOR NEWLINE
+2425..2426 ; valid ; ; NV8 # 3.0 SYMBOL FOR
DELETE FORM TWO..SYMBOL FOR SUBSTITUTE FORM TWO
+2427..243F ; disallowed # NA
<reserved-2427>..<reserved-243F>
+2440..244A ; valid ; ; NV8 # 1.1 OCR HOOK..OCR
DOUBLE BACKSLASH
+244B..245F ; disallowed # NA
<reserved-244B>..<reserved-245F>
+2460 ; mapped ; 0031 # 1.1 CIRCLED DIGIT ONE
+2461 ; mapped ; 0032 # 1.1 CIRCLED DIGIT TWO
+2462 ; mapped ; 0033 # 1.1 CIRCLED DIGIT
THREE
+2463 ; mapped ; 0034 # 1.1 CIRCLED DIGIT
FOUR
+2464 ; mapped ; 0035 # 1.1 CIRCLED DIGIT
FIVE
+2465 ; mapped ; 0036 # 1.1 CIRCLED DIGIT SIX
+2466 ; mapped ; 0037 # 1.1 CIRCLED DIGIT
SEVEN
+2467 ; mapped ; 0038 # 1.1 CIRCLED DIGIT
EIGHT
+2468 ; mapped ; 0039 # 1.1 CIRCLED DIGIT
NINE
+2469 ; mapped ; 0031 0030 # 1.1 CIRCLED NUMBER
TEN
+246A ; mapped ; 0031 0031 # 1.1 CIRCLED NUMBER
ELEVEN
+246B ; mapped ; 0031 0032 # 1.1 CIRCLED NUMBER
TWELVE
+246C ; mapped ; 0031 0033 # 1.1 CIRCLED NUMBER
THIRTEEN
+246D ; mapped ; 0031 0034 # 1.1 CIRCLED NUMBER
FOURTEEN
+246E ; mapped ; 0031 0035 # 1.1 CIRCLED NUMBER
FIFTEEN
+246F ; mapped ; 0031 0036 # 1.1 CIRCLED NUMBER
SIXTEEN
+2470 ; mapped ; 0031 0037 # 1.1 CIRCLED NUMBER
SEVENTEEN
+2471 ; mapped ; 0031 0038 # 1.1 CIRCLED NUMBER
EIGHTEEN
+2472 ; mapped ; 0031 0039 # 1.1 CIRCLED NUMBER
NINETEEN
+2473 ; mapped ; 0032 0030 # 1.1 CIRCLED NUMBER
TWENTY
+2474 ; disallowed_STD3_mapped ; 0028 0031 0029 #1.1 PARENTHESIZED
DIGIT ONE
+2475 ; disallowed_STD3_mapped ; 0028 0032 0029 #1.1 PARENTHESIZED
DIGIT TWO
+2476 ; disallowed_STD3_mapped ; 0028 0033 0029 #1.1 PARENTHESIZED
DIGIT THREE
+2477 ; disallowed_STD3_mapped ; 0028 0034 0029 #1.1 PARENTHESIZED
DIGIT FOUR
+2478 ; disallowed_STD3_mapped ; 0028 0035 0029 #1.1 PARENTHESIZED
DIGIT FIVE
+2479 ; disallowed_STD3_mapped ; 0028 0036 0029 #1.1 PARENTHESIZED
DIGIT SIX
+247A ; disallowed_STD3_mapped ; 0028 0037 0029 #1.1 PARENTHESIZED
DIGIT SEVEN
+247B ; disallowed_STD3_mapped ; 0028 0038 0029 #1.1 PARENTHESIZED
DIGIT EIGHT
+247C ; disallowed_STD3_mapped ; 0028 0039 0029 #1.1 PARENTHESIZED
DIGIT NINE
+247D ; disallowed_STD3_mapped ; 0028 0031 0030 0029 #1.1
PARENTHESIZED NUMBER TEN
+247E ; disallowed_STD3_mapped ; 0028 0031 0031 0029 #1.1
PARENTHESIZED NUMBER ELEVEN
+247F ; disallowed_STD3_mapped ; 0028 0031 0032 0029 #1.1
PARENTHESIZED NUMBER TWELVE
+2480 ; disallowed_STD3_mapped ; 0028 0031 0033 0029 #1.1
PARENTHESIZED NUMBER THIRTEEN
+2481 ; disallowed_STD3_mapped ; 0028 0031 0034 0029 #1.1
PARENTHESIZED NUMBER FOURTEEN
+2482 ; disallowed_STD3_mapped ; 0028 0031 0035 0029 #1.1
PARENTHESIZED NUMBER FIFTEEN
+2483 ; disallowed_STD3_mapped ; 0028 0031 0036 0029 #1.1
PARENTHESIZED NUMBER SIXTEEN
+2484 ; disallowed_STD3_mapped ; 0028 0031 0037 0029 #1.1
PARENTHESIZED NUMBER SEVENTEEN
+2485 ; disallowed_STD3_mapped ; 0028 0031 0038 0029 #1.1
PARENTHESIZED NUMBER EIGHTEEN
+2486 ; disallowed_STD3_mapped ; 0028 0031 0039 0029 #1.1
PARENTHESIZED NUMBER NINETEEN
+2487 ; disallowed_STD3_mapped ; 0028 0032 0030 0029 #1.1
PARENTHESIZED NUMBER TWENTY
+2488..249B ; disallowed # 1.1 DIGIT ONE FULL
STOP..NUMBER TWENTY FULL STOP
+249C ; disallowed_STD3_mapped ; 0028 0061 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER A
+249D ; disallowed_STD3_mapped ; 0028 0062 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER B
+249E ; disallowed_STD3_mapped ; 0028 0063 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER C
+249F ; disallowed_STD3_mapped ; 0028 0064 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER D
+24A0 ; disallowed_STD3_mapped ; 0028 0065 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER E
+24A1 ; disallowed_STD3_mapped ; 0028 0066 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER F
+24A2 ; disallowed_STD3_mapped ; 0028 0067 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER G
+24A3 ; disallowed_STD3_mapped ; 0028 0068 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER H
+24A4 ; disallowed_STD3_mapped ; 0028 0069 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER I
+24A5 ; disallowed_STD3_mapped ; 0028 006A 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER J
+24A6 ; disallowed_STD3_mapped ; 0028 006B 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER K
+24A7 ; disallowed_STD3_mapped ; 0028 006C 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER L
+24A8 ; disallowed_STD3_mapped ; 0028 006D 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER M
+24A9 ; disallowed_STD3_mapped ; 0028 006E 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER N
+24AA ; disallowed_STD3_mapped ; 0028 006F 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER O
+24AB ; disallowed_STD3_mapped ; 0028 0070 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER P
+24AC ; disallowed_STD3_mapped ; 0028 0071 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER Q
+24AD ; disallowed_STD3_mapped ; 0028 0072 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER R
+24AE ; disallowed_STD3_mapped ; 0028 0073 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER S
+24AF ; disallowed_STD3_mapped ; 0028 0074 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER T
+24B0 ; disallowed_STD3_mapped ; 0028 0075 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER U
+24B1 ; disallowed_STD3_mapped ; 0028 0076 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER V
+24B2 ; disallowed_STD3_mapped ; 0028 0077 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER W
+24B3 ; disallowed_STD3_mapped ; 0028 0078 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER X
+24B4 ; disallowed_STD3_mapped ; 0028 0079 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER Y
+24B5 ; disallowed_STD3_mapped ; 0028 007A 0029 #1.1 PARENTHESIZED
LATIN SMALL LETTER Z
+24B6 ; mapped ; 0061 # 1.1 CIRCLED LATIN
CAPITAL LETTER A
+24B7 ; mapped ; 0062 # 1.1 CIRCLED LATIN
CAPITAL LETTER B
+24B8 ; mapped ; 0063 # 1.1 CIRCLED LATIN
CAPITAL LETTER C
+24B9 ; mapped ; 0064 # 1.1 CIRCLED LATIN
CAPITAL LETTER D
+24BA ; mapped ; 0065 # 1.1 CIRCLED LATIN
CAPITAL LETTER E
+24BB ; mapped ; 0066 # 1.1 CIRCLED LATIN
CAPITAL LETTER F
+24BC ; mapped ; 0067 # 1.1 CIRCLED LATIN
CAPITAL LETTER G
+24BD ; mapped ; 0068 # 1.1 CIRCLED LATIN
CAPITAL LETTER H
+24BE ; mapped ; 0069 # 1.1 CIRCLED LATIN
CAPITAL LETTER I
+24BF ; mapped ; 006A # 1.1 CIRCLED LATIN
CAPITAL LETTER J
+24C0 ; mapped ; 006B # 1.1 CIRCLED LATIN
CAPITAL LETTER K
+24C1 ; mapped ; 006C # 1.1 CIRCLED LATIN
CAPITAL LETTER L
+24C2 ; mapped ; 006D # 1.1 CIRCLED LATIN
CAPITAL LETTER M
+24C3 ; mapped ; 006E # 1.1 CIRCLED LATIN
CAPITAL LETTER N
+24C4 ; mapped ; 006F # 1.1 CIRCLED LATIN
CAPITAL LETTER O
+24C5 ; mapped ; 0070 # 1.1 CIRCLED LATIN
CAPITAL LETTER P
+24C6 ; mapped ; 0071 # 1.1 CIRCLED LATIN
CAPITAL LETTER Q
+24C7 ; mapped ; 0072 # 1.1 CIRCLED LATIN
CAPITAL LETTER R
+24C8 ; mapped ; 0073 # 1.1 CIRCLED LATIN
CAPITAL LETTER S
+24C9 ; mapped ; 0074 # 1.1 CIRCLED LATIN
CAPITAL LETTER T
+24CA ; mapped ; 0075 # 1.1 CIRCLED LATIN
CAPITAL LETTER U
+24CB ; mapped ; 0076 # 1.1 CIRCLED LATIN
CAPITAL LETTER V
+24CC ; mapped ; 0077 # 1.1 CIRCLED LATIN
CAPITAL LETTER W
+24CD ; mapped ; 0078 # 1.1 CIRCLED LATIN
CAPITAL LETTER X
+24CE ; mapped ; 0079 # 1.1 CIRCLED LATIN
CAPITAL LETTER Y
+24CF ; mapped ; 007A # 1.1 CIRCLED LATIN
CAPITAL LETTER Z
+24D0 ; mapped ; 0061 # 1.1 CIRCLED LATIN
SMALL LETTER A
+24D1 ; mapped ; 0062 # 1.1 CIRCLED LATIN
SMALL LETTER B
+24D2 ; mapped ; 0063 # 1.1 CIRCLED LATIN
SMALL LETTER C
+24D3 ; mapped ; 0064 # 1.1 CIRCLED LATIN
SMALL LETTER D
+24D4 ; mapped ; 0065 # 1.1 CIRCLED LATIN
SMALL LETTER E
+24D5 ; mapped ; 0066 # 1.1 CIRCLED LATIN
SMALL LETTER F
+24D6 ; mapped ; 0067 # 1.1 CIRCLED LATIN
SMALL LETTER G
+24D7 ; mapped ; 0068 # 1.1 CIRCLED LATIN
SMALL LETTER H
+24D8 ; mapped ; 0069 # 1.1 CIRCLED LATIN
SMALL LETTER I
+24D9 ; mapped ; 006A # 1.1 CIRCLED LATIN
SMALL LETTER J
+24DA ; mapped ; 006B # 1.1 CIRCLED LATIN
SMALL LETTER K
+24DB ; mapped ; 006C # 1.1 CIRCLED LATIN
SMALL LETTER L
+24DC ; mapped ; 006D # 1.1 CIRCLED LATIN
SMALL LETTER M
+24DD ; mapped ; 006E # 1.1 CIRCLED LATIN
SMALL LETTER N
+24DE ; mapped ; 006F # 1.1 CIRCLED LATIN
SMALL LETTER O
+24DF ; mapped ; 0070 # 1.1 CIRCLED LATIN
SMALL LETTER P
+24E0 ; mapped ; 0071 # 1.1 CIRCLED LATIN
SMALL LETTER Q
+24E1 ; mapped ; 0072 # 1.1 CIRCLED LATIN
SMALL LETTER R
+24E2 ; mapped ; 0073 # 1.1 CIRCLED LATIN
SMALL LETTER S
+24E3 ; mapped ; 0074 # 1.1 CIRCLED LATIN
SMALL LETTER T
+24E4 ; mapped ; 0075 # 1.1 CIRCLED LATIN
SMALL LETTER U
+24E5 ; mapped ; 0076 # 1.1 CIRCLED LATIN
SMALL LETTER V
+24E6 ; mapped ; 0077 # 1.1 CIRCLED LATIN
SMALL LETTER W
+24E7 ; mapped ; 0078 # 1.1 CIRCLED LATIN
SMALL LETTER X
+24E8 ; mapped ; 0079 # 1.1 CIRCLED LATIN
SMALL LETTER Y
+24E9 ; mapped ; 007A # 1.1 CIRCLED LATIN
SMALL LETTER Z
+24EA ; mapped ; 0030 # 1.1 CIRCLED DIGIT
ZERO
+24EB..24FE ; valid ; ; NV8 # 3.2 NEGATIVE CIRCLED
NUMBER ELEVEN..DOUBLE CIRCLED NUMBER TEN
+24FF ; valid ; ; NV8 # 4.0 NEGATIVE CIRCLED
DIGIT ZERO
+2500..2595 ; valid ; ; NV8 # 1.1 BOX DRAWINGS
LIGHT HORIZONTAL..RIGHT ONE EIGHTH BLOCK
+2596..259F ; valid ; ; NV8 # 3.2 QUADRANT LOWER
LEFT..QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
+25A0..25EF ; valid ; ; NV8 # 1.1 BLACK
SQUARE..LARGE CIRCLE
+25F0..25F7 ; valid ; ; NV8 # 3.0 WHITE SQUARE
WITH UPPER LEFT QUADRANT..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+25F8..25FF ; valid ; ; NV8 # 3.2 UPPER LEFT
TRIANGLE..LOWER RIGHT TRIANGLE
+2600..2613 ; valid ; ; NV8 # 1.1 BLACK SUN WITH
RAYS..SALTIRE
+2614..2615 ; valid ; ; NV8 # 4.0 UMBRELLA WITH
RAIN DROPS..HOT BEVERAGE
+2616..2617 ; valid ; ; NV8 # 3.2 WHITE SHOGI
PIECE..BLACK SHOGI PIECE
+2618 ; valid ; ; NV8 # 4.1 SHAMROCK
+2619 ; valid ; ; NV8 # 3.0 REVERSED ROTATED
FLORAL HEART BULLET
+261A..266F ; valid ; ; NV8 # 1.1 BLACK LEFT
POINTING INDEX..MUSIC SHARP SIGN
+2670..2671 ; valid ; ; NV8 # 3.0 WEST SYRIAC
CROSS..EAST SYRIAC CROSS
+2672..267D ; valid ; ; NV8 # 3.2 UNIVERSAL
RECYCLING SYMBOL..PARTIALLY-RECYCLED PAPER SYMBOL
+267E..267F ; valid ; ; NV8 # 4.1 PERMANENT PAPER
SIGN..WHEELCHAIR SYMBOL
+2680..2689 ; valid ; ; NV8 # 3.2 DIE
FACE-1..BLACK CIRCLE WITH TWO WHITE DOTS
+268A..2691 ; valid ; ; NV8 # 4.0 MONOGRAM FOR
YANG..BLACK FLAG
+2692..269C ; valid ; ; NV8 # 4.1 HAMMER AND
PICK..FLEUR-DE-LIS
+269D ; valid ; ; NV8 # 5.1 OUTLINED WHITE
STAR
+269E..269F ; valid ; ; NV8 # 5.2 THREE LINES
CONVERGING RIGHT..THREE LINES CONVERGING LEFT
+26A0..26A1 ; valid ; ; NV8 # 4.0 WARNING
SIGN..HIGH VOLTAGE SIGN
+26A2..26B1 ; valid ; ; NV8 # 4.1 DOUBLED FEMALE
SIGN..FUNERAL URN
+26B2 ; valid ; ; NV8 # 5.0 NEUTER
+26B3..26BC ; valid ; ; NV8 # 5.1
CERES..SESQUIQUADRATE
+26BD..26BF ; valid ; ; NV8 # 5.2 SOCCER
BALL..SQUARED KEY
+26C0..26C3 ; valid ; ; NV8 # 5.1 WHITE DRAUGHTS
MAN..BLACK DRAUGHTS KING
+26C4..26CD ; valid ; ; NV8 # 5.2 SNOWMAN WITHOUT
SNOW..DISABLED CAR
+26CE ; valid ; ; NV8 # 6.0 OPHIUCHUS
+26CF..26E1 ; valid ; ; NV8 # 5.2 PICK..RESTRICTED
LEFT ENTRY-2
+26E2 ; valid ; ; NV8 # 6.0 ASTRONOMICAL
SYMBOL FOR URANUS
+26E3 ; valid ; ; NV8 # 5.2 HEAVY CIRCLE
WITH STROKE AND TWO DOTS ABOVE
+26E4..26E7 ; valid ; ; NV8 # 6.0
PENTAGRAM..INVERTED PENTAGRAM
+26E8..26FF ; valid ; ; NV8 # 5.2 BLACK CROSS ON
SHIELD..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
+2700 ; valid ; ; NV8 # 7.0 BLACK SAFETY
SCISSORS
+2701..2704 ; valid ; ; NV8 # 1.1 UPPER BLADE
SCISSORS..WHITE SCISSORS
+2705 ; valid ; ; NV8 # 6.0 WHITE HEAVY
CHECK MARK
+2706..2709 ; valid ; ; NV8 # 1.1 TELEPHONE
LOCATION SIGN..ENVELOPE
+270A..270B ; valid ; ; NV8 # 6.0 RAISED
FIST..RAISED HAND
+270C..2727 ; valid ; ; NV8 # 1.1 VICTORY
HAND..WHITE FOUR POINTED STAR
+2728 ; valid ; ; NV8 # 6.0 SPARKLES
+2729..274B ; valid ; ; NV8 # 1.1 STRESS OUTLINED
WHITE STAR..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+274C ; valid ; ; NV8 # 6.0 CROSS MARK
+274D ; valid ; ; NV8 # 1.1 SHADOWED WHITE
CIRCLE
+274E ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED
CROSS MARK
+274F..2752 ; valid ; ; NV8 # 1.1 LOWER RIGHT
DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE
+2753..2755 ; valid ; ; NV8 # 6.0 BLACK QUESTION
MARK ORNAMENT..WHITE EXCLAMATION MARK ORNAMENT
+2756 ; valid ; ; NV8 # 1.1 BLACK DIAMOND
MINUS WHITE X
+2757 ; valid ; ; NV8 # 5.2 HEAVY
EXCLAMATION MARK SYMBOL
+2758..275E ; valid ; ; NV8 # 1.1 LIGHT VERTICAL
BAR..HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+275F..2760 ; valid ; ; NV8 # 6.0 HEAVY LOW SINGLE
COMMA QUOTATION MARK ORNAMENT..HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
+2761..2767 ; valid ; ; NV8 # 1.1 CURVED STEM
PARAGRAPH SIGN ORNAMENT..ROTATED FLORAL HEART BULLET
+2768..2775 ; valid ; ; NV8 # 3.2 MEDIUM LEFT
PARENTHESIS ORNAMENT..MEDIUM RIGHT CURLY BRACKET ORNAMENT
+2776..2794 ; valid ; ; NV8 # 1.1 DINGBAT NEGATIVE
CIRCLED DIGIT ONE..HEAVY WIDE-HEADED RIGHTWARDS ARROW
+2795..2797 ; valid ; ; NV8 # 6.0 HEAVY PLUS
SIGN..HEAVY DIVISION SIGN
+2798..27AF ; valid ; ; NV8 # 1.1 HEAVY SOUTH EAST
ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27B0 ; valid ; ; NV8 # 6.0 CURLY LOOP
+27B1..27BE ; valid ; ; NV8 # 1.1 NOTCHED UPPER
RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW
+27BF ; valid ; ; NV8 # 6.0 DOUBLE CURLY LOOP
+27C0..27C6 ; valid ; ; NV8 # 4.1 THREE
DIMENSIONAL ANGLE..RIGHT S-SHAPED BAG DELIMITER
+27C7..27CA ; valid ; ; NV8 # 5.0 OR WITH DOT
INSIDE..VERTICAL BAR WITH HORIZONTAL STROKE
+27CB ; valid ; ; NV8 # 6.1 MATHEMATICAL
RISING DIAGONAL
+27CC ; valid ; ; NV8 # 5.1 LONG DIVISION
+27CD ; valid ; ; NV8 # 6.1 MATHEMATICAL
FALLING DIAGONAL
+27CE..27CF ; valid ; ; NV8 # 6.0 SQUARED LOGICAL
AND..SQUARED LOGICAL OR
+27D0..27EB ; valid ; ; NV8 # 3.2 WHITE DIAMOND
WITH CENTRED DOT..MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+27EC..27EF ; valid ; ; NV8 # 5.1 MATHEMATICAL
LEFT WHITE TORTOISE SHELL BRACKET..MATHEMATICAL RIGHT FLATTENED PARENTHESIS
+27F0..27FF ; valid ; ; NV8 # 3.2 UPWARDS
QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
+2800..28FF ; valid ; ; NV8 # 3.0 BRAILLE PATTERN
BLANK..BRAILLE PATTERN DOTS-12345678
+2900..2A0B ; valid ; ; NV8 # 3.2 RIGHTWARDS
TWO-HEADED ARROW WITH VERTICAL STROKE..SUMMATION WITH INTEGRAL
+2A0C ; mapped ; 222B 222B 222B 222B #3.2 QUADRUPLE
INTEGRAL OPERATOR
+2A0D..2A73 ; valid ; ; NV8 # 3.2 FINITE PART
INTEGRAL..EQUALS SIGN ABOVE TILDE OPERATOR
+2A74 ; disallowed_STD3_mapped ; 003A 003A 003D #3.2 DOUBLE COLON
EQUAL
+2A75 ; disallowed_STD3_mapped ; 003D 003D # 3.2 TWO CONSECUTIVE
EQUALS SIGNS
+2A76 ; disallowed_STD3_mapped ; 003D 003D 003D #3.2 THREE
CONSECUTIVE EQUALS SIGNS
+2A77..2ADB ; valid ; ; NV8 # 3.2 EQUALS SIGN WITH
TWO DOTS ABOVE AND TWO DOTS BELOW..TRANSVERSAL INTERSECTION
+2ADC ; mapped ; 2ADD 0338 # 3.2 FORKING
+2ADD..2AFF ; valid ; ; NV8 # 3.2
NONFORKING..N-ARY WHITE VERTICAL BAR
+2B00..2B0D ; valid ; ; NV8 # 4.0 NORTH EAST WHITE
ARROW..UP DOWN BLACK ARROW
+2B0E..2B13 ; valid ; ; NV8 # 4.1 RIGHTWARDS ARROW
WITH TIP DOWNWARDS..SQUARE WITH BOTTOM HALF BLACK
+2B14..2B1A ; valid ; ; NV8 # 5.0 SQUARE WITH
UPPER RIGHT DIAGONAL HALF BLACK..DOTTED SQUARE
+2B1B..2B1F ; valid ; ; NV8 # 5.1 BLACK LARGE
SQUARE..BLACK PENTAGON
+2B20..2B23 ; valid ; ; NV8 # 5.0 WHITE
PENTAGON..HORIZONTAL BLACK HEXAGON
+2B24..2B4C ; valid ; ; NV8 # 5.1 BLACK LARGE
CIRCLE..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+2B4D..2B4F ; valid ; ; NV8 # 7.0 DOWNWARDS
TRIANGLE-HEADED ZIGZAG ARROW..SHORT BACKSLANTED SOUTH ARROW
+2B50..2B54 ; valid ; ; NV8 # 5.1 WHITE MEDIUM
STAR..WHITE RIGHT-POINTING PENTAGON
+2B55..2B59 ; valid ; ; NV8 # 5.2 HEAVY LARGE
CIRCLE..HEAVY CIRCLED SALTIRE
+2B5A..2B73 ; valid ; ; NV8 # 7.0 SLANTED NORTH
ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B74..2B75 ; disallowed # NA
<reserved-2B74>..<reserved-2B75>
+2B76..2B95 ; valid ; ; NV8 # 7.0 NORTH WEST
TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B96 ; disallowed # NA <reserved-2B96>
+2B97 ; valid ; ; NV8 # 13.0 SYMBOL FOR TYPE
A ELECTRONICS
+2B98..2BB9 ; valid ; ; NV8 # 7.0 THREE-D
TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
+2BBA..2BBC ; valid ; ; NV8 # 11.0 OVERLAPPING
WHITE SQUARES..OVERLAPPING BLACK SQUARES
+2BBD..2BC8 ; valid ; ; NV8 # 7.0 BALLOT BOX WITH
LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BC9 ; valid ; ; NV8 # 12.0 NEPTUNE FORM TWO
+2BCA..2BD1 ; valid ; ; NV8 # 7.0 TOP HALF BLACK
CIRCLE..UNCERTAINTY SIGN
+2BD2 ; valid ; ; NV8 # 10.0 GROUP MARK
+2BD3..2BEB ; valid ; ; NV8 # 11.0 PLUTO FORM
TWO..STAR WITH RIGHT HALF BLACK
+2BEC..2BEF ; valid ; ; NV8 # 8.0 LEFTWARDS
TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS..DOWNWARDS TWO-HEADED ARROW WITH
TRIANGLE ARROWHEADS
+2BF0..2BFE ; valid ; ; NV8 # 11.0 ERIS FORM
ONE..REVERSED RIGHT ANGLE
+2BFF ; valid ; ; NV8 # 12.0 HELLSCHREIBER
PAUSE SYMBOL
+2C00 ; mapped ; 2C30 # 4.1 GLAGOLITIC
CAPITAL LETTER AZU
+2C01 ; mapped ; 2C31 # 4.1 GLAGOLITIC
CAPITAL LETTER BUKY
+2C02 ; mapped ; 2C32 # 4.1 GLAGOLITIC
CAPITAL LETTER VEDE
+2C03 ; mapped ; 2C33 # 4.1 GLAGOLITIC
CAPITAL LETTER GLAGOLI
+2C04 ; mapped ; 2C34 # 4.1 GLAGOLITIC
CAPITAL LETTER DOBRO
+2C05 ; mapped ; 2C35 # 4.1 GLAGOLITIC
CAPITAL LETTER YESTU
+2C06 ; mapped ; 2C36 # 4.1 GLAGOLITIC
CAPITAL LETTER ZHIVETE
+2C07 ; mapped ; 2C37 # 4.1 GLAGOLITIC
CAPITAL LETTER DZELO
+2C08 ; mapped ; 2C38 # 4.1 GLAGOLITIC
CAPITAL LETTER ZEMLJA
+2C09 ; mapped ; 2C39 # 4.1 GLAGOLITIC
CAPITAL LETTER IZHE
+2C0A ; mapped ; 2C3A # 4.1 GLAGOLITIC
CAPITAL LETTER INITIAL IZHE
+2C0B ; mapped ; 2C3B # 4.1 GLAGOLITIC
CAPITAL LETTER I
+2C0C ; mapped ; 2C3C # 4.1 GLAGOLITIC
CAPITAL LETTER DJERVI
+2C0D ; mapped ; 2C3D # 4.1 GLAGOLITIC
CAPITAL LETTER KAKO
+2C0E ; mapped ; 2C3E # 4.1 GLAGOLITIC
CAPITAL LETTER LJUDIJE
+2C0F ; mapped ; 2C3F # 4.1 GLAGOLITIC
CAPITAL LETTER MYSLITE
+2C10 ; mapped ; 2C40 # 4.1 GLAGOLITIC
CAPITAL LETTER NASHI
+2C11 ; mapped ; 2C41 # 4.1 GLAGOLITIC
CAPITAL LETTER ONU
+2C12 ; mapped ; 2C42 # 4.1 GLAGOLITIC
CAPITAL LETTER POKOJI
+2C13 ; mapped ; 2C43 # 4.1 GLAGOLITIC
CAPITAL LETTER RITSI
+2C14 ; mapped ; 2C44 # 4.1 GLAGOLITIC
CAPITAL LETTER SLOVO
+2C15 ; mapped ; 2C45 # 4.1 GLAGOLITIC
CAPITAL LETTER TVRIDO
+2C16 ; mapped ; 2C46 # 4.1 GLAGOLITIC
CAPITAL LETTER UKU
+2C17 ; mapped ; 2C47 # 4.1 GLAGOLITIC
CAPITAL LETTER FRITU
+2C18 ; mapped ; 2C48 # 4.1 GLAGOLITIC
CAPITAL LETTER HERU
+2C19 ; mapped ; 2C49 # 4.1 GLAGOLITIC
CAPITAL LETTER OTU
+2C1A ; mapped ; 2C4A # 4.1 GLAGOLITIC
CAPITAL LETTER PE
+2C1B ; mapped ; 2C4B # 4.1 GLAGOLITIC
CAPITAL LETTER SHTA
+2C1C ; mapped ; 2C4C # 4.1 GLAGOLITIC
CAPITAL LETTER TSI
+2C1D ; mapped ; 2C4D # 4.1 GLAGOLITIC
CAPITAL LETTER CHRIVI
+2C1E ; mapped ; 2C4E # 4.1 GLAGOLITIC
CAPITAL LETTER SHA
+2C1F ; mapped ; 2C4F # 4.1 GLAGOLITIC
CAPITAL LETTER YERU
+2C20 ; mapped ; 2C50 # 4.1 GLAGOLITIC
CAPITAL LETTER YERI
+2C21 ; mapped ; 2C51 # 4.1 GLAGOLITIC
CAPITAL LETTER YATI
+2C22 ; mapped ; 2C52 # 4.1 GLAGOLITIC
CAPITAL LETTER SPIDERY HA
+2C23 ; mapped ; 2C53 # 4.1 GLAGOLITIC
CAPITAL LETTER YU
+2C24 ; mapped ; 2C54 # 4.1 GLAGOLITIC
CAPITAL LETTER SMALL YUS
+2C25 ; mapped ; 2C55 # 4.1 GLAGOLITIC
CAPITAL LETTER SMALL YUS WITH TAIL
+2C26 ; mapped ; 2C56 # 4.1 GLAGOLITIC
CAPITAL LETTER YO
+2C27 ; mapped ; 2C57 # 4.1 GLAGOLITIC
CAPITAL LETTER IOTATED SMALL YUS
+2C28 ; mapped ; 2C58 # 4.1 GLAGOLITIC
CAPITAL LETTER BIG YUS
+2C29 ; mapped ; 2C59 # 4.1 GLAGOLITIC
CAPITAL LETTER IOTATED BIG YUS
+2C2A ; mapped ; 2C5A # 4.1 GLAGOLITIC
CAPITAL LETTER FITA
+2C2B ; mapped ; 2C5B # 4.1 GLAGOLITIC
CAPITAL LETTER IZHITSA
+2C2C ; mapped ; 2C5C # 4.1 GLAGOLITIC
CAPITAL LETTER SHTAPIC
+2C2D ; mapped ; 2C5D # 4.1 GLAGOLITIC
CAPITAL LETTER TROKUTASTI A
+2C2E ; mapped ; 2C5E # 4.1 GLAGOLITIC
CAPITAL LETTER LATINATE MYSLITE
+2C2F ; mapped ; 2C5F # 14.0 GLAGOLITIC
CAPITAL LETTER CAUDATE CHRIVI
+2C30..2C5E ; valid # 4.1 GLAGOLITIC SMALL
LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+2C5F ; valid # 14.0 GLAGOLITIC SMALL
LETTER CAUDATE CHRIVI
+2C60 ; mapped ; 2C61 # 5.0 LATIN CAPITAL
LETTER L WITH DOUBLE BAR
+2C61 ; valid # 5.0 LATIN SMALL
LETTER L WITH DOUBLE BAR
+2C62 ; mapped ; 026B # 5.0 LATIN CAPITAL
LETTER L WITH MIDDLE TILDE
+2C63 ; mapped ; 1D7D # 5.0 LATIN CAPITAL
LETTER P WITH STROKE
+2C64 ; mapped ; 027D # 5.0 LATIN CAPITAL
LETTER R WITH TAIL
+2C65..2C66 ; valid # 5.0 LATIN SMALL
LETTER A WITH STROKE..LATIN SMALL LETTER T WITH DIAGONAL STROKE
+2C67 ; mapped ; 2C68 # 5.0 LATIN CAPITAL
LETTER H WITH DESCENDER
+2C68 ; valid # 5.0 LATIN SMALL
LETTER H WITH DESCENDER
+2C69 ; mapped ; 2C6A # 5.0 LATIN CAPITAL
LETTER K WITH DESCENDER
+2C6A ; valid # 5.0 LATIN SMALL
LETTER K WITH DESCENDER
+2C6B ; mapped ; 2C6C # 5.0 LATIN CAPITAL
LETTER Z WITH DESCENDER
+2C6C ; valid # 5.0 LATIN SMALL
LETTER Z WITH DESCENDER
+2C6D ; mapped ; 0251 # 5.1 LATIN CAPITAL
LETTER ALPHA
+2C6E ; mapped ; 0271 # 5.1 LATIN CAPITAL
LETTER M WITH HOOK
+2C6F ; mapped ; 0250 # 5.1 LATIN CAPITAL
LETTER TURNED A
+2C70 ; mapped ; 0252 # 5.2 LATIN CAPITAL
LETTER TURNED ALPHA
+2C71 ; valid # 5.1 LATIN SMALL
LETTER V WITH RIGHT HOOK
+2C72 ; mapped ; 2C73 # 5.1 LATIN CAPITAL
LETTER W WITH HOOK
+2C73 ; valid # 5.1 LATIN SMALL
LETTER W WITH HOOK
+2C74 ; valid # 5.0 LATIN SMALL
LETTER V WITH CURL
+2C75 ; mapped ; 2C76 # 5.0 LATIN CAPITAL
LETTER HALF H
+2C76..2C77 ; valid # 5.0 LATIN SMALL
LETTER HALF H..LATIN SMALL LETTER TAILLESS PHI
+2C78..2C7B ; valid # 5.1 LATIN SMALL
LETTER E WITH NOTCH..LATIN LETTER SMALL CAPITAL TURNED E
+2C7C ; mapped ; 006A # 5.1 LATIN SUBSCRIPT
SMALL LETTER J
+2C7D ; mapped ; 0076 # 5.1 MODIFIER LETTER
CAPITAL V
+2C7E ; mapped ; 023F # 5.2 LATIN CAPITAL
LETTER S WITH SWASH TAIL
+2C7F ; mapped ; 0240 # 5.2 LATIN CAPITAL
LETTER Z WITH SWASH TAIL
+2C80 ; mapped ; 2C81 # 4.1 COPTIC CAPITAL
LETTER ALFA
+2C81 ; valid # 4.1 COPTIC SMALL
LETTER ALFA
+2C82 ; mapped ; 2C83 # 4.1 COPTIC CAPITAL
LETTER VIDA
+2C83 ; valid # 4.1 COPTIC SMALL
LETTER VIDA
+2C84 ; mapped ; 2C85 # 4.1 COPTIC CAPITAL
LETTER GAMMA
+2C85 ; valid # 4.1 COPTIC SMALL
LETTER GAMMA
+2C86 ; mapped ; 2C87 # 4.1 COPTIC CAPITAL
LETTER DALDA
+2C87 ; valid # 4.1 COPTIC SMALL
LETTER DALDA
+2C88 ; mapped ; 2C89 # 4.1 COPTIC CAPITAL
LETTER EIE
+2C89 ; valid # 4.1 COPTIC SMALL
LETTER EIE
+2C8A ; mapped ; 2C8B # 4.1 COPTIC CAPITAL
LETTER SOU
+2C8B ; valid # 4.1 COPTIC SMALL
LETTER SOU
+2C8C ; mapped ; 2C8D # 4.1 COPTIC CAPITAL
LETTER ZATA
+2C8D ; valid # 4.1 COPTIC SMALL
LETTER ZATA
+2C8E ; mapped ; 2C8F # 4.1 COPTIC CAPITAL
LETTER HATE
+2C8F ; valid # 4.1 COPTIC SMALL
LETTER HATE
+2C90 ; mapped ; 2C91 # 4.1 COPTIC CAPITAL
LETTER THETHE
+2C91 ; valid # 4.1 COPTIC SMALL
LETTER THETHE
+2C92 ; mapped ; 2C93 # 4.1 COPTIC CAPITAL
LETTER IAUDA
+2C93 ; valid # 4.1 COPTIC SMALL
LETTER IAUDA
+2C94 ; mapped ; 2C95 # 4.1 COPTIC CAPITAL
LETTER KAPA
+2C95 ; valid # 4.1 COPTIC SMALL
LETTER KAPA
+2C96 ; mapped ; 2C97 # 4.1 COPTIC CAPITAL
LETTER LAULA
+2C97 ; valid # 4.1 COPTIC SMALL
LETTER LAULA
+2C98 ; mapped ; 2C99 # 4.1 COPTIC CAPITAL
LETTER MI
+2C99 ; valid # 4.1 COPTIC SMALL
LETTER MI
+2C9A ; mapped ; 2C9B # 4.1 COPTIC CAPITAL
LETTER NI
+2C9B ; valid # 4.1 COPTIC SMALL
LETTER NI
+2C9C ; mapped ; 2C9D # 4.1 COPTIC CAPITAL
LETTER KSI
+2C9D ; valid # 4.1 COPTIC SMALL
LETTER KSI
+2C9E ; mapped ; 2C9F # 4.1 COPTIC CAPITAL
LETTER O
+2C9F ; valid # 4.1 COPTIC SMALL
LETTER O
+2CA0 ; mapped ; 2CA1 # 4.1 COPTIC CAPITAL
LETTER PI
+2CA1 ; valid # 4.1 COPTIC SMALL
LETTER PI
+2CA2 ; mapped ; 2CA3 # 4.1 COPTIC CAPITAL
LETTER RO
+2CA3 ; valid # 4.1 COPTIC SMALL
LETTER RO
+2CA4 ; mapped ; 2CA5 # 4.1 COPTIC CAPITAL
LETTER SIMA
+2CA5 ; valid # 4.1 COPTIC SMALL
LETTER SIMA
+2CA6 ; mapped ; 2CA7 # 4.1 COPTIC CAPITAL
LETTER TAU
+2CA7 ; valid # 4.1 COPTIC SMALL
LETTER TAU
+2CA8 ; mapped ; 2CA9 # 4.1 COPTIC CAPITAL
LETTER UA
+2CA9 ; valid # 4.1 COPTIC SMALL
LETTER UA
+2CAA ; mapped ; 2CAB # 4.1 COPTIC CAPITAL
LETTER FI
+2CAB ; valid # 4.1 COPTIC SMALL
LETTER FI
+2CAC ; mapped ; 2CAD # 4.1 COPTIC CAPITAL
LETTER KHI
+2CAD ; valid # 4.1 COPTIC SMALL
LETTER KHI
+2CAE ; mapped ; 2CAF # 4.1 COPTIC CAPITAL
LETTER PSI
+2CAF ; valid # 4.1 COPTIC SMALL
LETTER PSI
+2CB0 ; mapped ; 2CB1 # 4.1 COPTIC CAPITAL
LETTER OOU
+2CB1 ; valid # 4.1 COPTIC SMALL
LETTER OOU
+2CB2 ; mapped ; 2CB3 # 4.1 COPTIC CAPITAL
LETTER DIALECT-P ALEF
+2CB3 ; valid # 4.1 COPTIC SMALL
LETTER DIALECT-P ALEF
+2CB4 ; mapped ; 2CB5 # 4.1 COPTIC CAPITAL
LETTER OLD COPTIC AIN
+2CB5 ; valid # 4.1 COPTIC SMALL
LETTER OLD COPTIC AIN
+2CB6 ; mapped ; 2CB7 # 4.1 COPTIC CAPITAL
LETTER CRYPTOGRAMMIC EIE
+2CB7 ; valid # 4.1 COPTIC SMALL
LETTER CRYPTOGRAMMIC EIE
+2CB8 ; mapped ; 2CB9 # 4.1 COPTIC CAPITAL
LETTER DIALECT-P KAPA
+2CB9 ; valid # 4.1 COPTIC SMALL
LETTER DIALECT-P KAPA
+2CBA ; mapped ; 2CBB # 4.1 COPTIC CAPITAL
LETTER DIALECT-P NI
+2CBB ; valid # 4.1 COPTIC SMALL
LETTER DIALECT-P NI
+2CBC ; mapped ; 2CBD # 4.1 COPTIC CAPITAL
LETTER CRYPTOGRAMMIC NI
+2CBD ; valid # 4.1 COPTIC SMALL
LETTER CRYPTOGRAMMIC NI
+2CBE ; mapped ; 2CBF # 4.1 COPTIC CAPITAL
LETTER OLD COPTIC OOU
+2CBF ; valid # 4.1 COPTIC SMALL
LETTER OLD COPTIC OOU
+2CC0 ; mapped ; 2CC1 # 4.1 COPTIC CAPITAL
LETTER SAMPI
+2CC1 ; valid # 4.1 COPTIC SMALL
LETTER SAMPI
+2CC2 ; mapped ; 2CC3 # 4.1 COPTIC CAPITAL
LETTER CROSSED SHEI
+2CC3 ; valid # 4.1 COPTIC SMALL
LETTER CROSSED SHEI
+2CC4 ; mapped ; 2CC5 # 4.1 COPTIC CAPITAL
LETTER OLD COPTIC SHEI
+2CC5 ; valid # 4.1 COPTIC SMALL
LETTER OLD COPTIC SHEI
+2CC6 ; mapped ; 2CC7 # 4.1 COPTIC CAPITAL
LETTER OLD COPTIC ESH
+2CC7 ; valid # 4.1 COPTIC SMALL
LETTER OLD COPTIC ESH
+2CC8 ; mapped ; 2CC9 # 4.1 COPTIC CAPITAL
LETTER AKHMIMIC KHEI
+2CC9 ; valid # 4.1 COPTIC SMALL
LETTER AKHMIMIC KHEI
+2CCA ; mapped ; 2CCB # 4.1 COPTIC CAPITAL
LETTER DIALECT-P HORI
+2CCB ; valid # 4.1 COPTIC SMALL
LETTER DIALECT-P HORI
+2CCC ; mapped ; 2CCD # 4.1 COPTIC CAPITAL
LETTER OLD COPTIC HORI
+2CCD ; valid # 4.1 COPTIC SMALL
LETTER OLD COPTIC HORI
+2CCE ; mapped ; 2CCF # 4.1 COPTIC CAPITAL
LETTER OLD COPTIC HA
+2CCF ; valid # 4.1 COPTIC SMALL
LETTER OLD COPTIC HA
+2CD0 ; mapped ; 2CD1 # 4.1 COPTIC CAPITAL
LETTER L-SHAPED HA
+2CD1 ; valid # 4.1 COPTIC SMALL
LETTER L-SHAPED HA
+2CD2 ; mapped ; 2CD3 # 4.1 COPTIC CAPITAL
LETTER OLD COPTIC HEI
+2CD3 ; valid # 4.1 COPTIC SMALL
LETTER OLD COPTIC HEI
+2CD4 ; mapped ; 2CD5 # 4.1 COPTIC CAPITAL
LETTER OLD COPTIC HAT
+2CD5 ; valid # 4.1 COPTIC SMALL
LETTER OLD COPTIC HAT
+2CD6 ; mapped ; 2CD7 # 4.1 COPTIC CAPITAL
LETTER OLD COPTIC GANGIA
+2CD7 ; valid # 4.1 COPTIC SMALL
LETTER OLD COPTIC GANGIA
+2CD8 ; mapped ; 2CD9 # 4.1 COPTIC CAPITAL
LETTER OLD COPTIC DJA
+2CD9 ; valid # 4.1 COPTIC SMALL
LETTER OLD COPTIC DJA
+2CDA ; mapped ; 2CDB # 4.1 COPTIC CAPITAL
LETTER OLD COPTIC SHIMA
+2CDB ; valid # 4.1 COPTIC SMALL
LETTER OLD COPTIC SHIMA
+2CDC ; mapped ; 2CDD # 4.1 COPTIC CAPITAL
LETTER OLD NUBIAN SHIMA
+2CDD ; valid # 4.1 COPTIC SMALL
LETTER OLD NUBIAN SHIMA
+2CDE ; mapped ; 2CDF # 4.1 COPTIC CAPITAL
LETTER OLD NUBIAN NGI
+2CDF ; valid # 4.1 COPTIC SMALL
LETTER OLD NUBIAN NGI
+2CE0 ; mapped ; 2CE1 # 4.1 COPTIC CAPITAL
LETTER OLD NUBIAN NYI
+2CE1 ; valid # 4.1 COPTIC SMALL
LETTER OLD NUBIAN NYI
+2CE2 ; mapped ; 2CE3 # 4.1 COPTIC CAPITAL
LETTER OLD NUBIAN WAU
+2CE3..2CE4 ; valid # 4.1 COPTIC SMALL
LETTER OLD NUBIAN WAU..COPTIC SYMBOL KAI
+2CE5..2CEA ; valid ; ; NV8 # 4.1 COPTIC SYMBOL MI
RO..COPTIC SYMBOL SHIMA SIMA
+2CEB ; mapped ; 2CEC # 5.2 COPTIC CAPITAL
LETTER CRYPTOGRAMMIC SHEI
+2CEC ; valid # 5.2 COPTIC SMALL
LETTER CRYPTOGRAMMIC SHEI
+2CED ; mapped ; 2CEE # 5.2 COPTIC CAPITAL
LETTER CRYPTOGRAMMIC GANGIA
+2CEE..2CF1 ; valid # 5.2 COPTIC SMALL
LETTER CRYPTOGRAMMIC GANGIA..COPTIC COMBINING SPIRITUS LENIS
+2CF2 ; mapped ; 2CF3 # 6.1 COPTIC CAPITAL
LETTER BOHAIRIC KHEI
+2CF3 ; valid # 6.1 COPTIC SMALL
LETTER BOHAIRIC KHEI
+2CF4..2CF8 ; disallowed # NA
<reserved-2CF4>..<reserved-2CF8>
+2CF9..2CFF ; valid ; ; NV8 # 4.1 COPTIC OLD
NUBIAN FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
+2D00..2D25 ; valid # 4.1 GEORGIAN SMALL
LETTER AN..GEORGIAN SMALL LETTER HOE
+2D26 ; disallowed # NA <reserved-2D26>
+2D27 ; valid # 6.1 GEORGIAN SMALL
LETTER YN
+2D28..2D2C ; disallowed # NA
<reserved-2D28>..<reserved-2D2C>
+2D2D ; valid # 6.1 GEORGIAN SMALL
LETTER AEN
+2D2E..2D2F ; disallowed # NA
<reserved-2D2E>..<reserved-2D2F>
+2D30..2D65 ; valid # 4.1 TIFINAGH LETTER
YA..TIFINAGH LETTER YAZZ
+2D66..2D67 ; valid # 6.1 TIFINAGH LETTER
YE..TIFINAGH LETTER YO
+2D68..2D6E ; disallowed # NA
<reserved-2D68>..<reserved-2D6E>
+2D6F ; mapped ; 2D61 # 4.1 TIFINAGH
MODIFIER LETTER LABIALIZATION MARK
+2D70 ; valid ; ; NV8 # 6.0 TIFINAGH
SEPARATOR MARK
+2D71..2D7E ; disallowed # NA
<reserved-2D71>..<reserved-2D7E>
+2D7F ; valid # 6.0 TIFINAGH
CONSONANT JOINER
+2D80..2D96 ; valid # 4.1 ETHIOPIC
SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
+2D97..2D9F ; disallowed # NA
<reserved-2D97>..<reserved-2D9F>
+2DA0..2DA6 ; valid # 4.1 ETHIOPIC
SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
+2DA7 ; disallowed # NA <reserved-2DA7>
+2DA8..2DAE ; valid # 4.1 ETHIOPIC
SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
+2DAF ; disallowed # NA <reserved-2DAF>
+2DB0..2DB6 ; valid # 4.1 ETHIOPIC
SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
+2DB7 ; disallowed # NA <reserved-2DB7>
+2DB8..2DBE ; valid # 4.1 ETHIOPIC
SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
+2DBF ; disallowed # NA <reserved-2DBF>
+2DC0..2DC6 ; valid # 4.1 ETHIOPIC
SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
+2DC7 ; disallowed # NA <reserved-2DC7>
+2DC8..2DCE ; valid # 4.1 ETHIOPIC
SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
+2DCF ; disallowed # NA <reserved-2DCF>
+2DD0..2DD6 ; valid # 4.1 ETHIOPIC
SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
+2DD7 ; disallowed # NA <reserved-2DD7>
+2DD8..2DDE ; valid # 4.1 ETHIOPIC
SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
+2DDF ; disallowed # NA <reserved-2DDF>
+2DE0..2DFF ; valid # 5.1 COMBINING
CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+2E00..2E17 ; valid ; ; NV8 # 4.1 RIGHT ANGLE
SUBSTITUTION MARKER..DOUBLE OBLIQUE HYPHEN
+2E18..2E1B ; valid ; ; NV8 # 5.1 INVERTED
INTERROBANG..TILDE WITH RING ABOVE
+2E1C..2E1D ; valid ; ; NV8 # 4.1 LEFT LOW
PARAPHRASE BRACKET..RIGHT LOW PARAPHRASE BRACKET
+2E1E..2E2E ; valid ; ; NV8 # 5.1 TILDE WITH DOT
ABOVE..REVERSED QUESTION MARK
+2E2F ; valid # 5.1 VERTICAL TILDE
+2E30 ; valid ; ; NV8 # 5.1 RING POINT
+2E31 ; valid ; ; NV8 # 5.2 WORD SEPARATOR
MIDDLE DOT
+2E32..2E3B ; valid ; ; NV8 # 6.1 TURNED
COMMA..THREE-EM DASH
+2E3C..2E42 ; valid ; ; NV8 # 7.0 STENOGRAPHIC
FULL STOP..DOUBLE LOW-REVERSED-9 QUOTATION MARK
+2E43..2E44 ; valid ; ; NV8 # 9.0 DASH WITH LEFT
UPTURN..DOUBLE SUSPENSION MARK
+2E45..2E49 ; valid ; ; NV8 # 10.0 INVERTED LOW
KAVYKA..DOUBLE STACKED COMMA
+2E4A..2E4E ; valid ; ; NV8 # 11.0 DOTTED
SOLIDUS..PUNCTUS ELEVATUS MARK
+2E4F ; valid ; ; NV8 # 12.0 CORNISH VERSE
DIVIDER
+2E50..2E52 ; valid ; ; NV8 # 13.0 CROSS PATTY WITH
RIGHT CROSSBAR..TIRONIAN SIGN CAPITAL ET
+2E53..2E5D ; valid ; ; NV8 # 14.0 MEDIEVAL
EXCLAMATION MARK..OBLIQUE HYPHEN
+2E5E..2E7F ; disallowed # NA
<reserved-2E5E>..<reserved-2E7F>
+2E80..2E99 ; valid ; ; NV8 # 3.0 CJK RADICAL
REPEAT..CJK RADICAL RAP
+2E9A ; disallowed # NA <reserved-2E9A>
+2E9B..2E9E ; valid ; ; NV8 # 3.0 CJK RADICAL
CHOKE..CJK RADICAL DEATH
+2E9F ; mapped ; 6BCD # 3.0 CJK RADICAL
MOTHER
+2EA0..2EF2 ; valid ; ; NV8 # 3.0 CJK RADICAL
CIVILIAN..CJK RADICAL J-SIMPLIFIED TURTLE
+2EF3 ; mapped ; 9F9F # 3.0 CJK RADICAL
C-SIMPLIFIED TURTLE
+2EF4..2EFF ; disallowed # NA
<reserved-2EF4>..<reserved-2EFF>
+2F00 ; mapped ; 4E00 # 3.0 KANGXI RADICAL
ONE
+2F01 ; mapped ; 4E28 # 3.0 KANGXI RADICAL
LINE
+2F02 ; mapped ; 4E36 # 3.0 KANGXI RADICAL
DOT
+2F03 ; mapped ; 4E3F # 3.0 KANGXI RADICAL
SLASH
+2F04 ; mapped ; 4E59 # 3.0 KANGXI RADICAL
SECOND
+2F05 ; mapped ; 4E85 # 3.0 KANGXI RADICAL
HOOK
+2F06 ; mapped ; 4E8C # 3.0 KANGXI RADICAL
TWO
+2F07 ; mapped ; 4EA0 # 3.0 KANGXI RADICAL
LID
+2F08 ; mapped ; 4EBA # 3.0 KANGXI RADICAL
MAN
+2F09 ; mapped ; 513F # 3.0 KANGXI RADICAL
LEGS
+2F0A ; mapped ; 5165 # 3.0 KANGXI RADICAL
ENTER
+2F0B ; mapped ; 516B # 3.0 KANGXI RADICAL
EIGHT
+2F0C ; mapped ; 5182 # 3.0 KANGXI RADICAL
DOWN BOX
+2F0D ; mapped ; 5196 # 3.0 KANGXI RADICAL
COVER
+2F0E ; mapped ; 51AB # 3.0 KANGXI RADICAL
ICE
+2F0F ; mapped ; 51E0 # 3.0 KANGXI RADICAL
TABLE
+2F10 ; mapped ; 51F5 # 3.0 KANGXI RADICAL
OPEN BOX
+2F11 ; mapped ; 5200 # 3.0 KANGXI RADICAL
KNIFE
+2F12 ; mapped ; 529B # 3.0 KANGXI RADICAL
POWER
+2F13 ; mapped ; 52F9 # 3.0 KANGXI RADICAL
WRAP
+2F14 ; mapped ; 5315 # 3.0 KANGXI RADICAL
SPOON
+2F15 ; mapped ; 531A # 3.0 KANGXI RADICAL
RIGHT OPEN BOX
+2F16 ; mapped ; 5338 # 3.0 KANGXI RADICAL
HIDING ENCLOSURE
+2F17 ; mapped ; 5341 # 3.0 KANGXI RADICAL
TEN
+2F18 ; mapped ; 535C # 3.0 KANGXI RADICAL
DIVINATION
+2F19 ; mapped ; 5369 # 3.0 KANGXI RADICAL
SEAL
+2F1A ; mapped ; 5382 # 3.0 KANGXI RADICAL
CLIFF
+2F1B ; mapped ; 53B6 # 3.0 KANGXI RADICAL
PRIVATE
+2F1C ; mapped ; 53C8 # 3.0 KANGXI RADICAL
AGAIN
+2F1D ; mapped ; 53E3 # 3.0 KANGXI RADICAL
MOUTH
+2F1E ; mapped ; 56D7 # 3.0 KANGXI RADICAL
ENCLOSURE
+2F1F ; mapped ; 571F # 3.0 KANGXI RADICAL
EARTH
+2F20 ; mapped ; 58EB # 3.0 KANGXI RADICAL
SCHOLAR
+2F21 ; mapped ; 5902 # 3.0 KANGXI RADICAL GO
+2F22 ; mapped ; 590A # 3.0 KANGXI RADICAL
GO SLOWLY
+2F23 ; mapped ; 5915 # 3.0 KANGXI RADICAL
EVENING
+2F24 ; mapped ; 5927 # 3.0 KANGXI RADICAL
BIG
+2F25 ; mapped ; 5973 # 3.0 KANGXI RADICAL
WOMAN
+2F26 ; mapped ; 5B50 # 3.0 KANGXI RADICAL
CHILD
+2F27 ; mapped ; 5B80 # 3.0 KANGXI RADICAL
ROOF
+2F28 ; mapped ; 5BF8 # 3.0 KANGXI RADICAL
INCH
+2F29 ; mapped ; 5C0F # 3.0 KANGXI RADICAL
SMALL
+2F2A ; mapped ; 5C22 # 3.0 KANGXI RADICAL
LAME
+2F2B ; mapped ; 5C38 # 3.0 KANGXI RADICAL
CORPSE
+2F2C ; mapped ; 5C6E # 3.0 KANGXI RADICAL
SPROUT
+2F2D ; mapped ; 5C71 # 3.0 KANGXI RADICAL
MOUNTAIN
+2F2E ; mapped ; 5DDB # 3.0 KANGXI RADICAL
RIVER
+2F2F ; mapped ; 5DE5 # 3.0 KANGXI RADICAL
WORK
+2F30 ; mapped ; 5DF1 # 3.0 KANGXI RADICAL
ONESELF
+2F31 ; mapped ; 5DFE # 3.0 KANGXI RADICAL
TURBAN
+2F32 ; mapped ; 5E72 # 3.0 KANGXI RADICAL
DRY
+2F33 ; mapped ; 5E7A # 3.0 KANGXI RADICAL
SHORT THREAD
+2F34 ; mapped ; 5E7F # 3.0 KANGXI RADICAL
DOTTED CLIFF
+2F35 ; mapped ; 5EF4 # 3.0 KANGXI RADICAL
LONG STRIDE
+2F36 ; mapped ; 5EFE # 3.0 KANGXI RADICAL
TWO HANDS
+2F37 ; mapped ; 5F0B # 3.0 KANGXI RADICAL
SHOOT
+2F38 ; mapped ; 5F13 # 3.0 KANGXI RADICAL
BOW
+2F39 ; mapped ; 5F50 # 3.0 KANGXI RADICAL
SNOUT
+2F3A ; mapped ; 5F61 # 3.0 KANGXI RADICAL
BRISTLE
+2F3B ; mapped ; 5F73 # 3.0 KANGXI RADICAL
STEP
+2F3C ; mapped ; 5FC3 # 3.0 KANGXI RADICAL
HEART
+2F3D ; mapped ; 6208 # 3.0 KANGXI RADICAL
HALBERD
+2F3E ; mapped ; 6236 # 3.0 KANGXI RADICAL
DOOR
+2F3F ; mapped ; 624B # 3.0 KANGXI RADICAL
HAND
+2F40 ; mapped ; 652F # 3.0 KANGXI RADICAL
BRANCH
+2F41 ; mapped ; 6534 # 3.0 KANGXI RADICAL
RAP
+2F42 ; mapped ; 6587 # 3.0 KANGXI RADICAL
SCRIPT
+2F43 ; mapped ; 6597 # 3.0 KANGXI RADICAL
DIPPER
+2F44 ; mapped ; 65A4 # 3.0 KANGXI RADICAL
AXE
+2F45 ; mapped ; 65B9 # 3.0 KANGXI RADICAL
SQUARE
+2F46 ; mapped ; 65E0 # 3.0 KANGXI RADICAL
NOT
+2F47 ; mapped ; 65E5 # 3.0 KANGXI RADICAL
SUN
+2F48 ; mapped ; 66F0 # 3.0 KANGXI RADICAL
SAY
+2F49 ; mapped ; 6708 # 3.0 KANGXI RADICAL
MOON
+2F4A ; mapped ; 6728 # 3.0 KANGXI RADICAL
TREE
+2F4B ; mapped ; 6B20 # 3.0 KANGXI RADICAL
LACK
+2F4C ; mapped ; 6B62 # 3.0 KANGXI RADICAL
STOP
+2F4D ; mapped ; 6B79 # 3.0 KANGXI RADICAL
DEATH
+2F4E ; mapped ; 6BB3 # 3.0 KANGXI RADICAL
WEAPON
+2F4F ; mapped ; 6BCB # 3.0 KANGXI RADICAL
DO NOT
+2F50 ; mapped ; 6BD4 # 3.0 KANGXI RADICAL
COMPARE
+2F51 ; mapped ; 6BDB # 3.0 KANGXI RADICAL
FUR
+2F52 ; mapped ; 6C0F # 3.0 KANGXI RADICAL
CLAN
+2F53 ; mapped ; 6C14 # 3.0 KANGXI RADICAL
STEAM
+2F54 ; mapped ; 6C34 # 3.0 KANGXI RADICAL
WATER
+2F55 ; mapped ; 706B # 3.0 KANGXI RADICAL
FIRE
+2F56 ; mapped ; 722A # 3.0 KANGXI RADICAL
CLAW
+2F57 ; mapped ; 7236 # 3.0 KANGXI RADICAL
FATHER
+2F58 ; mapped ; 723B # 3.0 KANGXI RADICAL
DOUBLE X
+2F59 ; mapped ; 723F # 3.0 KANGXI RADICAL
HALF TREE TRUNK
+2F5A ; mapped ; 7247 # 3.0 KANGXI RADICAL
SLICE
+2F5B ; mapped ; 7259 # 3.0 KANGXI RADICAL
FANG
+2F5C ; mapped ; 725B # 3.0 KANGXI RADICAL
COW
+2F5D ; mapped ; 72AC # 3.0 KANGXI RADICAL
DOG
+2F5E ; mapped ; 7384 # 3.0 KANGXI RADICAL
PROFOUND
+2F5F ; mapped ; 7389 # 3.0 KANGXI RADICAL
JADE
+2F60 ; mapped ; 74DC # 3.0 KANGXI RADICAL
MELON
+2F61 ; mapped ; 74E6 # 3.0 KANGXI RADICAL
TILE
+2F62 ; mapped ; 7518 # 3.0 KANGXI RADICAL
SWEET
+2F63 ; mapped ; 751F # 3.0 KANGXI RADICAL
LIFE
+2F64 ; mapped ; 7528 # 3.0 KANGXI RADICAL
USE
+2F65 ; mapped ; 7530 # 3.0 KANGXI RADICAL
FIELD
+2F66 ; mapped ; 758B # 3.0 KANGXI RADICAL
BOLT OF CLOTH
+2F67 ; mapped ; 7592 # 3.0 KANGXI RADICAL
SICKNESS
+2F68 ; mapped ; 7676 # 3.0 KANGXI RADICAL
DOTTED TENT
+2F69 ; mapped ; 767D # 3.0 KANGXI RADICAL
WHITE
+2F6A ; mapped ; 76AE # 3.0 KANGXI RADICAL
SKIN
+2F6B ; mapped ; 76BF # 3.0 KANGXI RADICAL
DISH
+2F6C ; mapped ; 76EE # 3.0 KANGXI RADICAL
EYE
+2F6D ; mapped ; 77DB # 3.0 KANGXI RADICAL
SPEAR
+2F6E ; mapped ; 77E2 # 3.0 KANGXI RADICAL
ARROW
+2F6F ; mapped ; 77F3 # 3.0 KANGXI RADICAL
STONE
+2F70 ; mapped ; 793A # 3.0 KANGXI RADICAL
SPIRIT
+2F71 ; mapped ; 79B8 # 3.0 KANGXI RADICAL
TRACK
+2F72 ; mapped ; 79BE # 3.0 KANGXI RADICAL
GRAIN
+2F73 ; mapped ; 7A74 # 3.0 KANGXI RADICAL
CAVE
+2F74 ; mapped ; 7ACB # 3.0 KANGXI RADICAL
STAND
+2F75 ; mapped ; 7AF9 # 3.0 KANGXI RADICAL
BAMBOO
+2F76 ; mapped ; 7C73 # 3.0 KANGXI RADICAL
RICE
+2F77 ; mapped ; 7CF8 # 3.0 KANGXI RADICAL
SILK
+2F78 ; mapped ; 7F36 # 3.0 KANGXI RADICAL
JAR
+2F79 ; mapped ; 7F51 # 3.0 KANGXI RADICAL
NET
+2F7A ; mapped ; 7F8A # 3.0 KANGXI RADICAL
SHEEP
+2F7B ; mapped ; 7FBD # 3.0 KANGXI RADICAL
FEATHER
+2F7C ; mapped ; 8001 # 3.0 KANGXI RADICAL
OLD
+2F7D ; mapped ; 800C # 3.0 KANGXI RADICAL
AND
+2F7E ; mapped ; 8012 # 3.0 KANGXI RADICAL
PLOW
+2F7F ; mapped ; 8033 # 3.0 KANGXI RADICAL
EAR
+2F80 ; mapped ; 807F # 3.0 KANGXI RADICAL
BRUSH
+2F81 ; mapped ; 8089 # 3.0 KANGXI RADICAL
MEAT
+2F82 ; mapped ; 81E3 # 3.0 KANGXI RADICAL
MINISTER
+2F83 ; mapped ; 81EA # 3.0 KANGXI RADICAL
SELF
+2F84 ; mapped ; 81F3 # 3.0 KANGXI RADICAL
ARRIVE
+2F85 ; mapped ; 81FC # 3.0 KANGXI RADICAL
MORTAR
+2F86 ; mapped ; 820C # 3.0 KANGXI RADICAL
TONGUE
+2F87 ; mapped ; 821B # 3.0 KANGXI RADICAL
OPPOSE
+2F88 ; mapped ; 821F # 3.0 KANGXI RADICAL
BOAT
+2F89 ; mapped ; 826E # 3.0 KANGXI RADICAL
STOPPING
+2F8A ; mapped ; 8272 # 3.0 KANGXI RADICAL
COLOR
+2F8B ; mapped ; 8278 # 3.0 KANGXI RADICAL
GRASS
+2F8C ; mapped ; 864D # 3.0 KANGXI RADICAL
TIGER
+2F8D ; mapped ; 866B # 3.0 KANGXI RADICAL
INSECT
+2F8E ; mapped ; 8840 # 3.0 KANGXI RADICAL
BLOOD
+2F8F ; mapped ; 884C # 3.0 KANGXI RADICAL
WALK ENCLOSURE
+2F90 ; mapped ; 8863 # 3.0 KANGXI RADICAL
CLOTHES
+2F91 ; mapped ; 897E # 3.0 KANGXI RADICAL
WEST
+2F92 ; mapped ; 898B # 3.0 KANGXI RADICAL
SEE
+2F93 ; mapped ; 89D2 # 3.0 KANGXI RADICAL
HORN
+2F94 ; mapped ; 8A00 # 3.0 KANGXI RADICAL
SPEECH
+2F95 ; mapped ; 8C37 # 3.0 KANGXI RADICAL
VALLEY
+2F96 ; mapped ; 8C46 # 3.0 KANGXI RADICAL
BEAN
+2F97 ; mapped ; 8C55 # 3.0 KANGXI RADICAL
PIG
+2F98 ; mapped ; 8C78 # 3.0 KANGXI RADICAL
BADGER
+2F99 ; mapped ; 8C9D # 3.0 KANGXI RADICAL
SHELL
+2F9A ; mapped ; 8D64 # 3.0 KANGXI RADICAL
RED
+2F9B ; mapped ; 8D70 # 3.0 KANGXI RADICAL
RUN
+2F9C ; mapped ; 8DB3 # 3.0 KANGXI RADICAL
FOOT
+2F9D ; mapped ; 8EAB # 3.0 KANGXI RADICAL
BODY
+2F9E ; mapped ; 8ECA # 3.0 KANGXI RADICAL
CART
+2F9F ; mapped ; 8F9B # 3.0 KANGXI RADICAL
BITTER
+2FA0 ; mapped ; 8FB0 # 3.0 KANGXI RADICAL
MORNING
+2FA1 ; mapped ; 8FB5 # 3.0 KANGXI RADICAL
WALK
+2FA2 ; mapped ; 9091 # 3.0 KANGXI RADICAL
CITY
+2FA3 ; mapped ; 9149 # 3.0 KANGXI RADICAL
WINE
+2FA4 ; mapped ; 91C6 # 3.0 KANGXI RADICAL
DISTINGUISH
+2FA5 ; mapped ; 91CC # 3.0 KANGXI RADICAL
VILLAGE
+2FA6 ; mapped ; 91D1 # 3.0 KANGXI RADICAL
GOLD
+2FA7 ; mapped ; 9577 # 3.0 KANGXI RADICAL
LONG
+2FA8 ; mapped ; 9580 # 3.0 KANGXI RADICAL
GATE
+2FA9 ; mapped ; 961C # 3.0 KANGXI RADICAL
MOUND
+2FAA ; mapped ; 96B6 # 3.0 KANGXI RADICAL
SLAVE
+2FAB ; mapped ; 96B9 # 3.0 KANGXI RADICAL
SHORT TAILED BIRD
+2FAC ; mapped ; 96E8 # 3.0 KANGXI RADICAL
RAIN
+2FAD ; mapped ; 9751 # 3.0 KANGXI RADICAL
BLUE
+2FAE ; mapped ; 975E # 3.0 KANGXI RADICAL
WRONG
+2FAF ; mapped ; 9762 # 3.0 KANGXI RADICAL
FACE
+2FB0 ; mapped ; 9769 # 3.0 KANGXI RADICAL
LEATHER
+2FB1 ; mapped ; 97CB # 3.0 KANGXI RADICAL
TANNED LEATHER
+2FB2 ; mapped ; 97ED # 3.0 KANGXI RADICAL
LEEK
+2FB3 ; mapped ; 97F3 # 3.0 KANGXI RADICAL
SOUND
+2FB4 ; mapped ; 9801 # 3.0 KANGXI RADICAL
LEAF
+2FB5 ; mapped ; 98A8 # 3.0 KANGXI RADICAL
WIND
+2FB6 ; mapped ; 98DB # 3.0 KANGXI RADICAL
FLY
+2FB7 ; mapped ; 98DF # 3.0 KANGXI RADICAL
EAT
+2FB8 ; mapped ; 9996 # 3.0 KANGXI RADICAL
HEAD
+2FB9 ; mapped ; 9999 # 3.0 KANGXI RADICAL
FRAGRANT
+2FBA ; mapped ; 99AC # 3.0 KANGXI RADICAL
HORSE
+2FBB ; mapped ; 9AA8 # 3.0 KANGXI RADICAL
BONE
+2FBC ; mapped ; 9AD8 # 3.0 KANGXI RADICAL
TALL
+2FBD ; mapped ; 9ADF # 3.0 KANGXI RADICAL
HAIR
+2FBE ; mapped ; 9B25 # 3.0 KANGXI RADICAL
FIGHT
+2FBF ; mapped ; 9B2F # 3.0 KANGXI RADICAL
SACRIFICIAL WINE
+2FC0 ; mapped ; 9B32 # 3.0 KANGXI RADICAL
CAULDRON
+2FC1 ; mapped ; 9B3C # 3.0 KANGXI RADICAL
GHOST
+2FC2 ; mapped ; 9B5A # 3.0 KANGXI RADICAL
FISH
+2FC3 ; mapped ; 9CE5 # 3.0 KANGXI RADICAL
BIRD
+2FC4 ; mapped ; 9E75 # 3.0 KANGXI RADICAL
SALT
+2FC5 ; mapped ; 9E7F # 3.0 KANGXI RADICAL
DEER
+2FC6 ; mapped ; 9EA5 # 3.0 KANGXI RADICAL
WHEAT
+2FC7 ; mapped ; 9EBB # 3.0 KANGXI RADICAL
HEMP
+2FC8 ; mapped ; 9EC3 # 3.0 KANGXI RADICAL
YELLOW
+2FC9 ; mapped ; 9ECD # 3.0 KANGXI RADICAL
MILLET
+2FCA ; mapped ; 9ED1 # 3.0 KANGXI RADICAL
BLACK
+2FCB ; mapped ; 9EF9 # 3.0 KANGXI RADICAL
EMBROIDERY
+2FCC ; mapped ; 9EFD # 3.0 KANGXI RADICAL
FROG
+2FCD ; mapped ; 9F0E # 3.0 KANGXI RADICAL
TRIPOD
+2FCE ; mapped ; 9F13 # 3.0 KANGXI RADICAL
DRUM
+2FCF ; mapped ; 9F20 # 3.0 KANGXI RADICAL
RAT
+2FD0 ; mapped ; 9F3B # 3.0 KANGXI RADICAL
NOSE
+2FD1 ; mapped ; 9F4A # 3.0 KANGXI RADICAL
EVEN
+2FD2 ; mapped ; 9F52 # 3.0 KANGXI RADICAL
TOOTH
+2FD3 ; mapped ; 9F8D # 3.0 KANGXI RADICAL
DRAGON
+2FD4 ; mapped ; 9F9C # 3.0 KANGXI RADICAL
TURTLE
+2FD5 ; mapped ; 9FA0 # 3.0 KANGXI RADICAL
FLUTE
+2FD6..2FEF ; disallowed # NA
<reserved-2FD6>..<reserved-2FEF>
+2FF0..2FFB ; disallowed # 3.0 IDEOGRAPHIC
DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+2FFC..2FFF ; disallowed # NA
<reserved-2FFC>..<reserved-2FFF>
+3000 ; disallowed_STD3_mapped ; 0020 # 1.1 IDEOGRAPHIC SPACE
+3001 ; valid ; ; NV8 # 1.1 IDEOGRAPHIC COMMA
+3002 ; mapped ; 002E # 1.1 IDEOGRAPHIC FULL
STOP
+3003..3004 ; valid ; ; NV8 # 1.1 DITTO
MARK..JAPANESE INDUSTRIAL STANDARD SYMBOL
+3005..3007 ; valid # 1.1 IDEOGRAPHIC
ITERATION MARK..IDEOGRAPHIC NUMBER ZERO
+3008..3029 ; valid ; ; NV8 # 1.1 LEFT ANGLE
BRACKET..HANGZHOU NUMERAL NINE
+302A..302D ; valid # 1.1 IDEOGRAPHIC
LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
+302E..3035 ; valid ; ; NV8 # 1.1 HANGUL SINGLE
DOT TONE MARK..VERTICAL KANA REPEAT MARK LOWER HALF
+3036 ; mapped ; 3012 # 1.1 CIRCLED POSTAL
MARK
+3037 ; valid ; ; NV8 # 1.1 IDEOGRAPHIC
TELEGRAPH LINE FEED SEPARATOR SYMBOL
+3038 ; mapped ; 5341 # 3.0 HANGZHOU NUMERAL
TEN
+3039 ; mapped ; 5344 # 3.0 HANGZHOU NUMERAL
TWENTY
+303A ; mapped ; 5345 # 3.0 HANGZHOU NUMERAL
THIRTY
+303B ; valid ; ; NV8 # 3.2 VERTICAL
IDEOGRAPHIC ITERATION MARK
+303C ; valid # 3.2 MASU MARK
+303D ; valid ; ; NV8 # 3.2 PART ALTERNATION
MARK
+303E ; valid ; ; NV8 # 3.0 IDEOGRAPHIC
VARIATION INDICATOR
+303F ; valid ; ; NV8 # 1.1 IDEOGRAPHIC HALF
FILL SPACE
+3040 ; disallowed # NA <reserved-3040>
+3041..3094 ; valid # 1.1 HIRAGANA LETTER
SMALL A..HIRAGANA LETTER VU
+3095..3096 ; valid # 3.2 HIRAGANA LETTER
SMALL KA..HIRAGANA LETTER SMALL KE
+3097..3098 ; disallowed # NA
<reserved-3097>..<reserved-3098>
+3099..309A ; valid # 1.1 COMBINING
KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED
SOUND MARK
+309B ; disallowed_STD3_mapped ; 0020 3099 # 1.1
KATAKANA-HIRAGANA VOICED SOUND MARK
+309C ; disallowed_STD3_mapped ; 0020 309A # 1.1
KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309D..309E ; valid # 1.1 HIRAGANA
ITERATION MARK..HIRAGANA VOICED ITERATION MARK
+309F ; mapped ; 3088 308A # 3.2 HIRAGANA DIGRAPH
YORI
+30A0 ; valid ; ; NV8 # 3.2
KATAKANA-HIRAGANA DOUBLE HYPHEN
+30A1..30FE ; valid # 1.1 KATAKANA LETTER
SMALL A..KATAKANA VOICED ITERATION MARK
+30FF ; mapped ; 30B3 30C8 # 3.2 KATAKANA DIGRAPH
KOTO
+3100..3104 ; disallowed # NA
<reserved-3100>..<reserved-3104>
+3105..312C ; valid # 1.1 BOPOMOFO LETTER
B..BOPOMOFO LETTER GN
+312D ; valid # 5.1 BOPOMOFO LETTER
IH
+312E ; valid # 10.0 BOPOMOFO LETTER
O WITH DOT ABOVE
+312F ; valid # 11.0 BOPOMOFO LETTER
NN
+3130 ; disallowed # NA <reserved-3130>
+3131 ; mapped ; 1100 # 1.1 HANGUL LETTER
KIYEOK
+3132 ; mapped ; 1101 # 1.1 HANGUL LETTER
SSANGKIYEOK
+3133 ; mapped ; 11AA # 1.1 HANGUL LETTER
KIYEOK-SIOS
+3134 ; mapped ; 1102 # 1.1 HANGUL LETTER
NIEUN
+3135 ; mapped ; 11AC # 1.1 HANGUL LETTER
NIEUN-CIEUC
+3136 ; mapped ; 11AD # 1.1 HANGUL LETTER
NIEUN-HIEUH
+3137 ; mapped ; 1103 # 1.1 HANGUL LETTER
TIKEUT
+3138 ; mapped ; 1104 # 1.1 HANGUL LETTER
SSANGTIKEUT
+3139 ; mapped ; 1105 # 1.1 HANGUL LETTER
RIEUL
+313A ; mapped ; 11B0 # 1.1 HANGUL LETTER
RIEUL-KIYEOK
+313B ; mapped ; 11B1 # 1.1 HANGUL LETTER
RIEUL-MIEUM
+313C ; mapped ; 11B2 # 1.1 HANGUL LETTER
RIEUL-PIEUP
+313D ; mapped ; 11B3 # 1.1 HANGUL LETTER
RIEUL-SIOS
+313E ; mapped ; 11B4 # 1.1 HANGUL LETTER
RIEUL-THIEUTH
+313F ; mapped ; 11B5 # 1.1 HANGUL LETTER
RIEUL-PHIEUPH
+3140 ; mapped ; 111A # 1.1 HANGUL LETTER
RIEUL-HIEUH
+3141 ; mapped ; 1106 # 1.1 HANGUL LETTER
MIEUM
+3142 ; mapped ; 1107 # 1.1 HANGUL LETTER
PIEUP
+3143 ; mapped ; 1108 # 1.1 HANGUL LETTER
SSANGPIEUP
+3144 ; mapped ; 1121 # 1.1 HANGUL LETTER
PIEUP-SIOS
+3145 ; mapped ; 1109 # 1.1 HANGUL LETTER
SIOS
+3146 ; mapped ; 110A # 1.1 HANGUL LETTER
SSANGSIOS
+3147 ; mapped ; 110B # 1.1 HANGUL LETTER
IEUNG
+3148 ; mapped ; 110C # 1.1 HANGUL LETTER
CIEUC
+3149 ; mapped ; 110D # 1.1 HANGUL LETTER
SSANGCIEUC
+314A ; mapped ; 110E # 1.1 HANGUL LETTER
CHIEUCH
+314B ; mapped ; 110F # 1.1 HANGUL LETTER
KHIEUKH
+314C ; mapped ; 1110 # 1.1 HANGUL LETTER
THIEUTH
+314D ; mapped ; 1111 # 1.1 HANGUL LETTER
PHIEUPH
+314E ; mapped ; 1112 # 1.1 HANGUL LETTER
HIEUH
+314F ; mapped ; 1161 # 1.1 HANGUL LETTER A
+3150 ; mapped ; 1162 # 1.1 HANGUL LETTER AE
+3151 ; mapped ; 1163 # 1.1 HANGUL LETTER YA
+3152 ; mapped ; 1164 # 1.1 HANGUL LETTER YAE
+3153 ; mapped ; 1165 # 1.1 HANGUL LETTER EO
+3154 ; mapped ; 1166 # 1.1 HANGUL LETTER E
+3155 ; mapped ; 1167 # 1.1 HANGUL LETTER YEO
+3156 ; mapped ; 1168 # 1.1 HANGUL LETTER YE
+3157 ; mapped ; 1169 # 1.1 HANGUL LETTER O
+3158 ; mapped ; 116A # 1.1 HANGUL LETTER WA
+3159 ; mapped ; 116B # 1.1 HANGUL LETTER WAE
+315A ; mapped ; 116C # 1.1 HANGUL LETTER OE
+315B ; mapped ; 116D # 1.1 HANGUL LETTER YO
+315C ; mapped ; 116E # 1.1 HANGUL LETTER U
+315D ; mapped ; 116F # 1.1 HANGUL LETTER WEO
+315E ; mapped ; 1170 # 1.1 HANGUL LETTER WE
+315F ; mapped ; 1171 # 1.1 HANGUL LETTER WI
+3160 ; mapped ; 1172 # 1.1 HANGUL LETTER YU
+3161 ; mapped ; 1173 # 1.1 HANGUL LETTER EU
+3162 ; mapped ; 1174 # 1.1 HANGUL LETTER YI
+3163 ; mapped ; 1175 # 1.1 HANGUL LETTER I
+3164 ; disallowed # 1.1 HANGUL FILLER
+3165 ; mapped ; 1114 # 1.1 HANGUL LETTER
SSANGNIEUN
+3166 ; mapped ; 1115 # 1.1 HANGUL LETTER
NIEUN-TIKEUT
+3167 ; mapped ; 11C7 # 1.1 HANGUL LETTER
NIEUN-SIOS
+3168 ; mapped ; 11C8 # 1.1 HANGUL LETTER
NIEUN-PANSIOS
+3169 ; mapped ; 11CC # 1.1 HANGUL LETTER
RIEUL-KIYEOK-SIOS
+316A ; mapped ; 11CE # 1.1 HANGUL LETTER
RIEUL-TIKEUT
+316B ; mapped ; 11D3 # 1.1 HANGUL LETTER
RIEUL-PIEUP-SIOS
+316C ; mapped ; 11D7 # 1.1 HANGUL LETTER
RIEUL-PANSIOS
+316D ; mapped ; 11D9 # 1.1 HANGUL LETTER
RIEUL-YEORINHIEUH
+316E ; mapped ; 111C # 1.1 HANGUL LETTER
MIEUM-PIEUP
+316F ; mapped ; 11DD # 1.1 HANGUL LETTER
MIEUM-SIOS
+3170 ; mapped ; 11DF # 1.1 HANGUL LETTER
MIEUM-PANSIOS
+3171 ; mapped ; 111D # 1.1 HANGUL LETTER
KAPYEOUNMIEUM
+3172 ; mapped ; 111E # 1.1 HANGUL LETTER
PIEUP-KIYEOK
+3173 ; mapped ; 1120 # 1.1 HANGUL LETTER
PIEUP-TIKEUT
+3174 ; mapped ; 1122 # 1.1 HANGUL LETTER
PIEUP-SIOS-KIYEOK
+3175 ; mapped ; 1123 # 1.1 HANGUL LETTER
PIEUP-SIOS-TIKEUT
+3176 ; mapped ; 1127 # 1.1 HANGUL LETTER
PIEUP-CIEUC
+3177 ; mapped ; 1129 # 1.1 HANGUL LETTER
PIEUP-THIEUTH
+3178 ; mapped ; 112B # 1.1 HANGUL LETTER
KAPYEOUNPIEUP
+3179 ; mapped ; 112C # 1.1 HANGUL LETTER
KAPYEOUNSSANGPIEUP
+317A ; mapped ; 112D # 1.1 HANGUL LETTER
SIOS-KIYEOK
+317B ; mapped ; 112E # 1.1 HANGUL LETTER
SIOS-NIEUN
+317C ; mapped ; 112F # 1.1 HANGUL LETTER
SIOS-TIKEUT
+317D ; mapped ; 1132 # 1.1 HANGUL LETTER
SIOS-PIEUP
+317E ; mapped ; 1136 # 1.1 HANGUL LETTER
SIOS-CIEUC
+317F ; mapped ; 1140 # 1.1 HANGUL LETTER
PANSIOS
+3180 ; mapped ; 1147 # 1.1 HANGUL LETTER
SSANGIEUNG
+3181 ; mapped ; 114C # 1.1 HANGUL LETTER
YESIEUNG
+3182 ; mapped ; 11F1 # 1.1 HANGUL LETTER
YESIEUNG-SIOS
+3183 ; mapped ; 11F2 # 1.1 HANGUL LETTER
YESIEUNG-PANSIOS
+3184 ; mapped ; 1157 # 1.1 HANGUL LETTER
KAPYEOUNPHIEUPH
+3185 ; mapped ; 1158 # 1.1 HANGUL LETTER
SSANGHIEUH
+3186 ; mapped ; 1159 # 1.1 HANGUL LETTER
YEORINHIEUH
+3187 ; mapped ; 1184 # 1.1 HANGUL LETTER
YO-YA
+3188 ; mapped ; 1185 # 1.1 HANGUL LETTER
YO-YAE
+3189 ; mapped ; 1188 # 1.1 HANGUL LETTER
YO-I
+318A ; mapped ; 1191 # 1.1 HANGUL LETTER
YU-YEO
+318B ; mapped ; 1192 # 1.1 HANGUL LETTER
YU-YE
+318C ; mapped ; 1194 # 1.1 HANGUL LETTER
YU-I
+318D ; mapped ; 119E # 1.1 HANGUL LETTER
ARAEA
+318E ; mapped ; 11A1 # 1.1 HANGUL LETTER
ARAEAE
+318F ; disallowed # NA <reserved-318F>
+3190..3191 ; valid ; ; NV8 # 1.1 IDEOGRAPHIC
ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
+3192 ; mapped ; 4E00 # 1.1 IDEOGRAPHIC
ANNOTATION ONE MARK
+3193 ; mapped ; 4E8C # 1.1 IDEOGRAPHIC
ANNOTATION TWO MARK
+3194 ; mapped ; 4E09 # 1.1 IDEOGRAPHIC
ANNOTATION THREE MARK
+3195 ; mapped ; 56DB # 1.1 IDEOGRAPHIC
ANNOTATION FOUR MARK
+3196 ; mapped ; 4E0A # 1.1 IDEOGRAPHIC
ANNOTATION TOP MARK
+3197 ; mapped ; 4E2D # 1.1 IDEOGRAPHIC
ANNOTATION MIDDLE MARK
+3198 ; mapped ; 4E0B # 1.1 IDEOGRAPHIC
ANNOTATION BOTTOM MARK
+3199 ; mapped ; 7532 # 1.1 IDEOGRAPHIC
ANNOTATION FIRST MARK
+319A ; mapped ; 4E59 # 1.1 IDEOGRAPHIC
ANNOTATION SECOND MARK
+319B ; mapped ; 4E19 # 1.1 IDEOGRAPHIC
ANNOTATION THIRD MARK
+319C ; mapped ; 4E01 # 1.1 IDEOGRAPHIC
ANNOTATION FOURTH MARK
+319D ; mapped ; 5929 # 1.1 IDEOGRAPHIC
ANNOTATION HEAVEN MARK
+319E ; mapped ; 5730 # 1.1 IDEOGRAPHIC
ANNOTATION EARTH MARK
+319F ; mapped ; 4EBA # 1.1 IDEOGRAPHIC
ANNOTATION MAN MARK
+31A0..31B7 ; valid # 3.0 BOPOMOFO LETTER
BU..BOPOMOFO FINAL LETTER H
+31B8..31BA ; valid # 6.0 BOPOMOFO LETTER
GH..BOPOMOFO LETTER ZY
+31BB..31BF ; valid # 13.0 BOPOMOFO FINAL
LETTER G..BOPOMOFO LETTER AH
+31C0..31CF ; valid ; ; NV8 # 4.1 CJK STROKE
T..CJK STROKE N
+31D0..31E3 ; valid ; ; NV8 # 5.1 CJK STROKE
H..CJK STROKE Q
+31E4..31EF ; disallowed # NA
<reserved-31E4>..<reserved-31EF>
+31F0..31FF ; valid # 3.2 KATAKANA LETTER
SMALL KU..KATAKANA LETTER SMALL RO
+3200 ; disallowed_STD3_mapped ; 0028 1100 0029 #1.1 PARENTHESIZED
HANGUL KIYEOK
+3201 ; disallowed_STD3_mapped ; 0028 1102 0029 #1.1 PARENTHESIZED
HANGUL NIEUN
+3202 ; disallowed_STD3_mapped ; 0028 1103 0029 #1.1 PARENTHESIZED
HANGUL TIKEUT
+3203 ; disallowed_STD3_mapped ; 0028 1105 0029 #1.1 PARENTHESIZED
HANGUL RIEUL
+3204 ; disallowed_STD3_mapped ; 0028 1106 0029 #1.1 PARENTHESIZED
HANGUL MIEUM
+3205 ; disallowed_STD3_mapped ; 0028 1107 0029 #1.1 PARENTHESIZED
HANGUL PIEUP
+3206 ; disallowed_STD3_mapped ; 0028 1109 0029 #1.1 PARENTHESIZED
HANGUL SIOS
+3207 ; disallowed_STD3_mapped ; 0028 110B 0029 #1.1 PARENTHESIZED
HANGUL IEUNG
+3208 ; disallowed_STD3_mapped ; 0028 110C 0029 #1.1 PARENTHESIZED
HANGUL CIEUC
+3209 ; disallowed_STD3_mapped ; 0028 110E 0029 #1.1 PARENTHESIZED
HANGUL CHIEUCH
+320A ; disallowed_STD3_mapped ; 0028 110F 0029 #1.1 PARENTHESIZED
HANGUL KHIEUKH
+320B ; disallowed_STD3_mapped ; 0028 1110 0029 #1.1 PARENTHESIZED
HANGUL THIEUTH
+320C ; disallowed_STD3_mapped ; 0028 1111 0029 #1.1 PARENTHESIZED
HANGUL PHIEUPH
+320D ; disallowed_STD3_mapped ; 0028 1112 0029 #1.1 PARENTHESIZED
HANGUL HIEUH
+320E ; disallowed_STD3_mapped ; 0028 AC00 0029 #1.1 PARENTHESIZED
HANGUL KIYEOK A
+320F ; disallowed_STD3_mapped ; 0028 B098 0029 #1.1 PARENTHESIZED
HANGUL NIEUN A
+3210 ; disallowed_STD3_mapped ; 0028 B2E4 0029 #1.1 PARENTHESIZED
HANGUL TIKEUT A
+3211 ; disallowed_STD3_mapped ; 0028 B77C 0029 #1.1 PARENTHESIZED
HANGUL RIEUL A
+3212 ; disallowed_STD3_mapped ; 0028 B9C8 0029 #1.1 PARENTHESIZED
HANGUL MIEUM A
+3213 ; disallowed_STD3_mapped ; 0028 BC14 0029 #1.1 PARENTHESIZED
HANGUL PIEUP A
+3214 ; disallowed_STD3_mapped ; 0028 C0AC 0029 #1.1 PARENTHESIZED
HANGUL SIOS A
+3215 ; disallowed_STD3_mapped ; 0028 C544 0029 #1.1 PARENTHESIZED
HANGUL IEUNG A
+3216 ; disallowed_STD3_mapped ; 0028 C790 0029 #1.1 PARENTHESIZED
HANGUL CIEUC A
+3217 ; disallowed_STD3_mapped ; 0028 CC28 0029 #1.1 PARENTHESIZED
HANGUL CHIEUCH A
+3218 ; disallowed_STD3_mapped ; 0028 CE74 0029 #1.1 PARENTHESIZED
HANGUL KHIEUKH A
+3219 ; disallowed_STD3_mapped ; 0028 D0C0 0029 #1.1 PARENTHESIZED
HANGUL THIEUTH A
+321A ; disallowed_STD3_mapped ; 0028 D30C 0029 #1.1 PARENTHESIZED
HANGUL PHIEUPH A
+321B ; disallowed_STD3_mapped ; 0028 D558 0029 #1.1 PARENTHESIZED
HANGUL HIEUH A
+321C ; disallowed_STD3_mapped ; 0028 C8FC 0029 #1.1 PARENTHESIZED
HANGUL CIEUC U
+321D ; disallowed_STD3_mapped ; 0028 C624 C804 0029 #4.0
PARENTHESIZED KOREAN CHARACTER OJEON
+321E ; disallowed_STD3_mapped ; 0028 C624 D6C4 0029 #4.0
PARENTHESIZED KOREAN CHARACTER O HU
+321F ; disallowed # NA <reserved-321F>
+3220 ; disallowed_STD3_mapped ; 0028 4E00 0029 #1.1 PARENTHESIZED
IDEOGRAPH ONE
+3221 ; disallowed_STD3_mapped ; 0028 4E8C 0029 #1.1 PARENTHESIZED
IDEOGRAPH TWO
+3222 ; disallowed_STD3_mapped ; 0028 4E09 0029 #1.1 PARENTHESIZED
IDEOGRAPH THREE
+3223 ; disallowed_STD3_mapped ; 0028 56DB 0029 #1.1 PARENTHESIZED
IDEOGRAPH FOUR
+3224 ; disallowed_STD3_mapped ; 0028 4E94 0029 #1.1 PARENTHESIZED
IDEOGRAPH FIVE
+3225 ; disallowed_STD3_mapped ; 0028 516D 0029 #1.1 PARENTHESIZED
IDEOGRAPH SIX
+3226 ; disallowed_STD3_mapped ; 0028 4E03 0029 #1.1 PARENTHESIZED
IDEOGRAPH SEVEN
+3227 ; disallowed_STD3_mapped ; 0028 516B 0029 #1.1 PARENTHESIZED
IDEOGRAPH EIGHT
+3228 ; disallowed_STD3_mapped ; 0028 4E5D 0029 #1.1 PARENTHESIZED
IDEOGRAPH NINE
+3229 ; disallowed_STD3_mapped ; 0028 5341 0029 #1.1 PARENTHESIZED
IDEOGRAPH TEN
+322A ; disallowed_STD3_mapped ; 0028 6708 0029 #1.1 PARENTHESIZED
IDEOGRAPH MOON
+322B ; disallowed_STD3_mapped ; 0028 706B 0029 #1.1 PARENTHESIZED
IDEOGRAPH FIRE
+322C ; disallowed_STD3_mapped ; 0028 6C34 0029 #1.1 PARENTHESIZED
IDEOGRAPH WATER
+322D ; disallowed_STD3_mapped ; 0028 6728 0029 #1.1 PARENTHESIZED
IDEOGRAPH WOOD
+322E ; disallowed_STD3_mapped ; 0028 91D1 0029 #1.1 PARENTHESIZED
IDEOGRAPH METAL
+322F ; disallowed_STD3_mapped ; 0028 571F 0029 #1.1 PARENTHESIZED
IDEOGRAPH EARTH
+3230 ; disallowed_STD3_mapped ; 0028 65E5 0029 #1.1 PARENTHESIZED
IDEOGRAPH SUN
+3231 ; disallowed_STD3_mapped ; 0028 682A 0029 #1.1 PARENTHESIZED
IDEOGRAPH STOCK
+3232 ; disallowed_STD3_mapped ; 0028 6709 0029 #1.1 PARENTHESIZED
IDEOGRAPH HAVE
+3233 ; disallowed_STD3_mapped ; 0028 793E 0029 #1.1 PARENTHESIZED
IDEOGRAPH SOCIETY
+3234 ; disallowed_STD3_mapped ; 0028 540D 0029 #1.1 PARENTHESIZED
IDEOGRAPH NAME
+3235 ; disallowed_STD3_mapped ; 0028 7279 0029 #1.1 PARENTHESIZED
IDEOGRAPH SPECIAL
+3236 ; disallowed_STD3_mapped ; 0028 8CA1 0029 #1.1 PARENTHESIZED
IDEOGRAPH FINANCIAL
+3237 ; disallowed_STD3_mapped ; 0028 795D 0029 #1.1 PARENTHESIZED
IDEOGRAPH CONGRATULATION
+3238 ; disallowed_STD3_mapped ; 0028 52B4 0029 #1.1 PARENTHESIZED
IDEOGRAPH LABOR
+3239 ; disallowed_STD3_mapped ; 0028 4EE3 0029 #1.1 PARENTHESIZED
IDEOGRAPH REPRESENT
+323A ; disallowed_STD3_mapped ; 0028 547C 0029 #1.1 PARENTHESIZED
IDEOGRAPH CALL
+323B ; disallowed_STD3_mapped ; 0028 5B66 0029 #1.1 PARENTHESIZED
IDEOGRAPH STUDY
+323C ; disallowed_STD3_mapped ; 0028 76E3 0029 #1.1 PARENTHESIZED
IDEOGRAPH SUPERVISE
+323D ; disallowed_STD3_mapped ; 0028 4F01 0029 #1.1 PARENTHESIZED
IDEOGRAPH ENTERPRISE
+323E ; disallowed_STD3_mapped ; 0028 8CC7 0029 #1.1 PARENTHESIZED
IDEOGRAPH RESOURCE
+323F ; disallowed_STD3_mapped ; 0028 5354 0029 #1.1 PARENTHESIZED
IDEOGRAPH ALLIANCE
+3240 ; disallowed_STD3_mapped ; 0028 796D 0029 #1.1 PARENTHESIZED
IDEOGRAPH FESTIVAL
+3241 ; disallowed_STD3_mapped ; 0028 4F11 0029 #1.1 PARENTHESIZED
IDEOGRAPH REST
+3242 ; disallowed_STD3_mapped ; 0028 81EA 0029 #1.1 PARENTHESIZED
IDEOGRAPH SELF
+3243 ; disallowed_STD3_mapped ; 0028 81F3 0029 #1.1 PARENTHESIZED
IDEOGRAPH REACH
+3244 ; mapped ; 554F # 5.2 CIRCLED
IDEOGRAPH QUESTION
+3245 ; mapped ; 5E7C # 5.2 CIRCLED
IDEOGRAPH KINDERGARTEN
+3246 ; mapped ; 6587 # 5.2 CIRCLED
IDEOGRAPH SCHOOL
+3247 ; mapped ; 7B8F # 5.2 CIRCLED
IDEOGRAPH KOTO
+3248..324F ; valid ; ; NV8 # 5.2 CIRCLED NUMBER
TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
+3250 ; mapped ; 0070 0074 0065 #4.0 PARTNERSHIP SIGN
+3251 ; mapped ; 0032 0031 # 3.2 CIRCLED NUMBER
TWENTY ONE
+3252 ; mapped ; 0032 0032 # 3.2 CIRCLED NUMBER
TWENTY TWO
+3253 ; mapped ; 0032 0033 # 3.2 CIRCLED NUMBER
TWENTY THREE
+3254 ; mapped ; 0032 0034 # 3.2 CIRCLED NUMBER
TWENTY FOUR
+3255 ; mapped ; 0032 0035 # 3.2 CIRCLED NUMBER
TWENTY FIVE
+3256 ; mapped ; 0032 0036 # 3.2 CIRCLED NUMBER
TWENTY SIX
+3257 ; mapped ; 0032 0037 # 3.2 CIRCLED NUMBER
TWENTY SEVEN
+3258 ; mapped ; 0032 0038 # 3.2 CIRCLED NUMBER
TWENTY EIGHT
+3259 ; mapped ; 0032 0039 # 3.2 CIRCLED NUMBER
TWENTY NINE
+325A ; mapped ; 0033 0030 # 3.2 CIRCLED NUMBER
THIRTY
+325B ; mapped ; 0033 0031 # 3.2 CIRCLED NUMBER
THIRTY ONE
+325C ; mapped ; 0033 0032 # 3.2 CIRCLED NUMBER
THIRTY TWO
+325D ; mapped ; 0033 0033 # 3.2 CIRCLED NUMBER
THIRTY THREE
+325E ; mapped ; 0033 0034 # 3.2 CIRCLED NUMBER
THIRTY FOUR
+325F ; mapped ; 0033 0035 # 3.2 CIRCLED NUMBER
THIRTY FIVE
+3260 ; mapped ; 1100 # 1.1 CIRCLED HANGUL
KIYEOK
+3261 ; mapped ; 1102 # 1.1 CIRCLED HANGUL
NIEUN
+3262 ; mapped ; 1103 # 1.1 CIRCLED HANGUL
TIKEUT
+3263 ; mapped ; 1105 # 1.1 CIRCLED HANGUL
RIEUL
+3264 ; mapped ; 1106 # 1.1 CIRCLED HANGUL
MIEUM
+3265 ; mapped ; 1107 # 1.1 CIRCLED HANGUL
PIEUP
+3266 ; mapped ; 1109 # 1.1 CIRCLED HANGUL
SIOS
+3267 ; mapped ; 110B # 1.1 CIRCLED HANGUL
IEUNG
+3268 ; mapped ; 110C # 1.1 CIRCLED HANGUL
CIEUC
+3269 ; mapped ; 110E # 1.1 CIRCLED HANGUL
CHIEUCH
+326A ; mapped ; 110F # 1.1 CIRCLED HANGUL
KHIEUKH
+326B ; mapped ; 1110 # 1.1 CIRCLED HANGUL
THIEUTH
+326C ; mapped ; 1111 # 1.1 CIRCLED HANGUL
PHIEUPH
+326D ; mapped ; 1112 # 1.1 CIRCLED HANGUL
HIEUH
+326E ; mapped ; AC00 # 1.1 CIRCLED HANGUL
KIYEOK A
+326F ; mapped ; B098 # 1.1 CIRCLED HANGUL
NIEUN A
+3270 ; mapped ; B2E4 # 1.1 CIRCLED HANGUL
TIKEUT A
+3271 ; mapped ; B77C # 1.1 CIRCLED HANGUL
RIEUL A
+3272 ; mapped ; B9C8 # 1.1 CIRCLED HANGUL
MIEUM A
+3273 ; mapped ; BC14 # 1.1 CIRCLED HANGUL
PIEUP A
+3274 ; mapped ; C0AC # 1.1 CIRCLED HANGUL
SIOS A
+3275 ; mapped ; C544 # 1.1 CIRCLED HANGUL
IEUNG A
+3276 ; mapped ; C790 # 1.1 CIRCLED HANGUL
CIEUC A
+3277 ; mapped ; CC28 # 1.1 CIRCLED HANGUL
CHIEUCH A
+3278 ; mapped ; CE74 # 1.1 CIRCLED HANGUL
KHIEUKH A
+3279 ; mapped ; D0C0 # 1.1 CIRCLED HANGUL
THIEUTH A
+327A ; mapped ; D30C # 1.1 CIRCLED HANGUL
PHIEUPH A
+327B ; mapped ; D558 # 1.1 CIRCLED HANGUL
HIEUH A
+327C ; mapped ; CC38 ACE0 # 4.0 CIRCLED KOREAN
CHARACTER CHAMKO
+327D ; mapped ; C8FC C758 # 4.0 CIRCLED KOREAN
CHARACTER JUEUI
+327E ; mapped ; C6B0 # 4.1 CIRCLED HANGUL
IEUNG U
+327F ; valid ; ; NV8 # 1.1 KOREAN STANDARD
SYMBOL
+3280 ; mapped ; 4E00 # 1.1 CIRCLED
IDEOGRAPH ONE
+3281 ; mapped ; 4E8C # 1.1 CIRCLED
IDEOGRAPH TWO
+3282 ; mapped ; 4E09 # 1.1 CIRCLED
IDEOGRAPH THREE
+3283 ; mapped ; 56DB # 1.1 CIRCLED
IDEOGRAPH FOUR
+3284 ; mapped ; 4E94 # 1.1 CIRCLED
IDEOGRAPH FIVE
+3285 ; mapped ; 516D # 1.1 CIRCLED
IDEOGRAPH SIX
+3286 ; mapped ; 4E03 # 1.1 CIRCLED
IDEOGRAPH SEVEN
+3287 ; mapped ; 516B # 1.1 CIRCLED
IDEOGRAPH EIGHT
+3288 ; mapped ; 4E5D # 1.1 CIRCLED
IDEOGRAPH NINE
+3289 ; mapped ; 5341 # 1.1 CIRCLED
IDEOGRAPH TEN
+328A ; mapped ; 6708 # 1.1 CIRCLED
IDEOGRAPH MOON
+328B ; mapped ; 706B # 1.1 CIRCLED
IDEOGRAPH FIRE
+328C ; mapped ; 6C34 # 1.1 CIRCLED
IDEOGRAPH WATER
+328D ; mapped ; 6728 # 1.1 CIRCLED
IDEOGRAPH WOOD
+328E ; mapped ; 91D1 # 1.1 CIRCLED
IDEOGRAPH METAL
+328F ; mapped ; 571F # 1.1 CIRCLED
IDEOGRAPH EARTH
+3290 ; mapped ; 65E5 # 1.1 CIRCLED
IDEOGRAPH SUN
+3291 ; mapped ; 682A # 1.1 CIRCLED
IDEOGRAPH STOCK
+3292 ; mapped ; 6709 # 1.1 CIRCLED
IDEOGRAPH HAVE
+3293 ; mapped ; 793E # 1.1 CIRCLED
IDEOGRAPH SOCIETY
+3294 ; mapped ; 540D # 1.1 CIRCLED
IDEOGRAPH NAME
+3295 ; mapped ; 7279 # 1.1 CIRCLED
IDEOGRAPH SPECIAL
+3296 ; mapped ; 8CA1 # 1.1 CIRCLED
IDEOGRAPH FINANCIAL
+3297 ; mapped ; 795D # 1.1 CIRCLED
IDEOGRAPH CONGRATULATION
+3298 ; mapped ; 52B4 # 1.1 CIRCLED
IDEOGRAPH LABOR
+3299 ; mapped ; 79D8 # 1.1 CIRCLED
IDEOGRAPH SECRET
+329A ; mapped ; 7537 # 1.1 CIRCLED
IDEOGRAPH MALE
+329B ; mapped ; 5973 # 1.1 CIRCLED
IDEOGRAPH FEMALE
+329C ; mapped ; 9069 # 1.1 CIRCLED
IDEOGRAPH SUITABLE
+329D ; mapped ; 512A # 1.1 CIRCLED
IDEOGRAPH EXCELLENT
+329E ; mapped ; 5370 # 1.1 CIRCLED
IDEOGRAPH PRINT
+329F ; mapped ; 6CE8 # 1.1 CIRCLED
IDEOGRAPH ATTENTION
+32A0 ; mapped ; 9805 # 1.1 CIRCLED
IDEOGRAPH ITEM
+32A1 ; mapped ; 4F11 # 1.1 CIRCLED
IDEOGRAPH REST
+32A2 ; mapped ; 5199 # 1.1 CIRCLED
IDEOGRAPH COPY
+32A3 ; mapped ; 6B63 # 1.1 CIRCLED
IDEOGRAPH CORRECT
+32A4 ; mapped ; 4E0A # 1.1 CIRCLED
IDEOGRAPH HIGH
+32A5 ; mapped ; 4E2D # 1.1 CIRCLED
IDEOGRAPH CENTRE
+32A6 ; mapped ; 4E0B # 1.1 CIRCLED
IDEOGRAPH LOW
+32A7 ; mapped ; 5DE6 # 1.1 CIRCLED
IDEOGRAPH LEFT
+32A8 ; mapped ; 53F3 # 1.1 CIRCLED
IDEOGRAPH RIGHT
+32A9 ; mapped ; 533B # 1.1 CIRCLED
IDEOGRAPH MEDICINE
+32AA ; mapped ; 5B97 # 1.1 CIRCLED
IDEOGRAPH RELIGION
+32AB ; mapped ; 5B66 # 1.1 CIRCLED
IDEOGRAPH STUDY
+32AC ; mapped ; 76E3 # 1.1 CIRCLED
IDEOGRAPH SUPERVISE
+32AD ; mapped ; 4F01 # 1.1 CIRCLED
IDEOGRAPH ENTERPRISE
+32AE ; mapped ; 8CC7 # 1.1 CIRCLED
IDEOGRAPH RESOURCE
+32AF ; mapped ; 5354 # 1.1 CIRCLED
IDEOGRAPH ALLIANCE
+32B0 ; mapped ; 591C # 1.1 CIRCLED
IDEOGRAPH NIGHT
+32B1 ; mapped ; 0033 0036 # 3.2 CIRCLED NUMBER
THIRTY SIX
+32B2 ; mapped ; 0033 0037 # 3.2 CIRCLED NUMBER
THIRTY SEVEN
+32B3 ; mapped ; 0033 0038 # 3.2 CIRCLED NUMBER
THIRTY EIGHT
+32B4 ; mapped ; 0033 0039 # 3.2 CIRCLED NUMBER
THIRTY NINE
+32B5 ; mapped ; 0034 0030 # 3.2 CIRCLED NUMBER
FORTY
+32B6 ; mapped ; 0034 0031 # 3.2 CIRCLED NUMBER
FORTY ONE
+32B7 ; mapped ; 0034 0032 # 3.2 CIRCLED NUMBER
FORTY TWO
+32B8 ; mapped ; 0034 0033 # 3.2 CIRCLED NUMBER
FORTY THREE
+32B9 ; mapped ; 0034 0034 # 3.2 CIRCLED NUMBER
FORTY FOUR
+32BA ; mapped ; 0034 0035 # 3.2 CIRCLED NUMBER
FORTY FIVE
+32BB ; mapped ; 0034 0036 # 3.2 CIRCLED NUMBER
FORTY SIX
+32BC ; mapped ; 0034 0037 # 3.2 CIRCLED NUMBER
FORTY SEVEN
+32BD ; mapped ; 0034 0038 # 3.2 CIRCLED NUMBER
FORTY EIGHT
+32BE ; mapped ; 0034 0039 # 3.2 CIRCLED NUMBER
FORTY NINE
+32BF ; mapped ; 0035 0030 # 3.2 CIRCLED NUMBER
FIFTY
+32C0 ; mapped ; 0031 6708 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR JANUARY
+32C1 ; mapped ; 0032 6708 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR FEBRUARY
+32C2 ; mapped ; 0033 6708 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR MARCH
+32C3 ; mapped ; 0034 6708 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR APRIL
+32C4 ; mapped ; 0035 6708 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR MAY
+32C5 ; mapped ; 0036 6708 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR JUNE
+32C6 ; mapped ; 0037 6708 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR JULY
+32C7 ; mapped ; 0038 6708 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR AUGUST
+32C8 ; mapped ; 0039 6708 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR SEPTEMBER
+32C9 ; mapped ; 0031 0030 6708 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR OCTOBER
+32CA ; mapped ; 0031 0031 6708 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR NOVEMBER
+32CB ; mapped ; 0031 0032 6708 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DECEMBER
+32CC ; mapped ; 0068 0067 # 4.0 SQUARE HG
+32CD ; mapped ; 0065 0072 0067 #4.0 SQUARE ERG
+32CE ; mapped ; 0065 0076 # 4.0 SQUARE EV
+32CF ; mapped ; 006C 0074 0064 #4.0 LIMITED
LIABILITY SIGN
+32D0 ; mapped ; 30A2 # 1.1 CIRCLED KATAKANA
A
+32D1 ; mapped ; 30A4 # 1.1 CIRCLED KATAKANA
I
+32D2 ; mapped ; 30A6 # 1.1 CIRCLED KATAKANA
U
+32D3 ; mapped ; 30A8 # 1.1 CIRCLED KATAKANA
E
+32D4 ; mapped ; 30AA # 1.1 CIRCLED KATAKANA
O
+32D5 ; mapped ; 30AB # 1.1 CIRCLED KATAKANA
KA
+32D6 ; mapped ; 30AD # 1.1 CIRCLED KATAKANA
KI
+32D7 ; mapped ; 30AF # 1.1 CIRCLED KATAKANA
KU
+32D8 ; mapped ; 30B1 # 1.1 CIRCLED KATAKANA
KE
+32D9 ; mapped ; 30B3 # 1.1 CIRCLED KATAKANA
KO
+32DA ; mapped ; 30B5 # 1.1 CIRCLED KATAKANA
SA
+32DB ; mapped ; 30B7 # 1.1 CIRCLED KATAKANA
SI
+32DC ; mapped ; 30B9 # 1.1 CIRCLED KATAKANA
SU
+32DD ; mapped ; 30BB # 1.1 CIRCLED KATAKANA
SE
+32DE ; mapped ; 30BD # 1.1 CIRCLED KATAKANA
SO
+32DF ; mapped ; 30BF # 1.1 CIRCLED KATAKANA
TA
+32E0 ; mapped ; 30C1 # 1.1 CIRCLED KATAKANA
TI
+32E1 ; mapped ; 30C4 # 1.1 CIRCLED KATAKANA
TU
+32E2 ; mapped ; 30C6 # 1.1 CIRCLED KATAKANA
TE
+32E3 ; mapped ; 30C8 # 1.1 CIRCLED KATAKANA
TO
+32E4 ; mapped ; 30CA # 1.1 CIRCLED KATAKANA
NA
+32E5 ; mapped ; 30CB # 1.1 CIRCLED KATAKANA
NI
+32E6 ; mapped ; 30CC # 1.1 CIRCLED KATAKANA
NU
+32E7 ; mapped ; 30CD # 1.1 CIRCLED KATAKANA
NE
+32E8 ; mapped ; 30CE # 1.1 CIRCLED KATAKANA
NO
+32E9 ; mapped ; 30CF # 1.1 CIRCLED KATAKANA
HA
+32EA ; mapped ; 30D2 # 1.1 CIRCLED KATAKANA
HI
+32EB ; mapped ; 30D5 # 1.1 CIRCLED KATAKANA
HU
+32EC ; mapped ; 30D8 # 1.1 CIRCLED KATAKANA
HE
+32ED ; mapped ; 30DB # 1.1 CIRCLED KATAKANA
HO
+32EE ; mapped ; 30DE # 1.1 CIRCLED KATAKANA
MA
+32EF ; mapped ; 30DF # 1.1 CIRCLED KATAKANA
MI
+32F0 ; mapped ; 30E0 # 1.1 CIRCLED KATAKANA
MU
+32F1 ; mapped ; 30E1 # 1.1 CIRCLED KATAKANA
ME
+32F2 ; mapped ; 30E2 # 1.1 CIRCLED KATAKANA
MO
+32F3 ; mapped ; 30E4 # 1.1 CIRCLED KATAKANA
YA
+32F4 ; mapped ; 30E6 # 1.1 CIRCLED KATAKANA
YU
+32F5 ; mapped ; 30E8 # 1.1 CIRCLED KATAKANA
YO
+32F6 ; mapped ; 30E9 # 1.1 CIRCLED KATAKANA
RA
+32F7 ; mapped ; 30EA # 1.1 CIRCLED KATAKANA
RI
+32F8 ; mapped ; 30EB # 1.1 CIRCLED KATAKANA
RU
+32F9 ; mapped ; 30EC # 1.1 CIRCLED KATAKANA
RE
+32FA ; mapped ; 30ED # 1.1 CIRCLED KATAKANA
RO
+32FB ; mapped ; 30EF # 1.1 CIRCLED KATAKANA
WA
+32FC ; mapped ; 30F0 # 1.1 CIRCLED KATAKANA
WI
+32FD ; mapped ; 30F1 # 1.1 CIRCLED KATAKANA
WE
+32FE ; mapped ; 30F2 # 1.1 CIRCLED KATAKANA
WO
+32FF ; mapped ; 4EE4 548C # 12.1 SQUARE ERA NAME
REIWA
+3300 ; mapped ; 30A2 30D1 30FC 30C8 #1.1 SQUARE APAATO
+3301 ; mapped ; 30A2 30EB 30D5 30A1 #1.1 SQUARE ARUHUA
+3302 ; mapped ; 30A2 30F3 30DA 30A2 #1.1 SQUARE ANPEA
+3303 ; mapped ; 30A2 30FC 30EB #1.1 SQUARE AARU
+3304 ; mapped ; 30A4 30CB 30F3 30B0 #1.1 SQUARE ININGU
+3305 ; mapped ; 30A4 30F3 30C1 #1.1 SQUARE INTI
+3306 ; mapped ; 30A6 30A9 30F3 #1.1 SQUARE UON
+3307 ; mapped ; 30A8 30B9 30AF 30FC 30C9 #1.1 SQUARE
ESUKUUDO
+3308 ; mapped ; 30A8 30FC 30AB 30FC #1.1 SQUARE EEKAA
+3309 ; mapped ; 30AA 30F3 30B9 #1.1 SQUARE ONSU
+330A ; mapped ; 30AA 30FC 30E0 #1.1 SQUARE OOMU
+330B ; mapped ; 30AB 30A4 30EA #1.1 SQUARE KAIRI
+330C ; mapped ; 30AB 30E9 30C3 30C8 #1.1 SQUARE
KARATTO
+330D ; mapped ; 30AB 30ED 30EA 30FC #1.1 SQUARE
KARORII
+330E ; mapped ; 30AC 30ED 30F3 #1.1 SQUARE GARON
+330F ; mapped ; 30AC 30F3 30DE #1.1 SQUARE GANMA
+3310 ; mapped ; 30AE 30AC # 1.1 SQUARE GIGA
+3311 ; mapped ; 30AE 30CB 30FC #1.1 SQUARE GINII
+3312 ; mapped ; 30AD 30E5 30EA 30FC #1.1 SQUARE KYURII
+3313 ; mapped ; 30AE 30EB 30C0 30FC #1.1 SQUARE
GIRUDAA
+3314 ; mapped ; 30AD 30ED # 1.1 SQUARE KIRO
+3315 ; mapped ; 30AD 30ED 30B0 30E9 30E0 #1.1 SQUARE
KIROGURAMU
+3316 ; mapped ; 30AD 30ED 30E1 30FC 30C8 30EB #1.1
SQUARE KIROMEETORU
+3317 ; mapped ; 30AD 30ED 30EF 30C3 30C8 #1.1 SQUARE
KIROWATTO
+3318 ; mapped ; 30B0 30E9 30E0 #1.1 SQUARE GURAMU
+3319 ; mapped ; 30B0 30E9 30E0 30C8 30F3 #1.1 SQUARE
GURAMUTON
+331A ; mapped ; 30AF 30EB 30BC 30A4 30ED #1.1 SQUARE
KURUZEIRO
+331B ; mapped ; 30AF 30ED 30FC 30CD #1.1 SQUARE
KUROONE
+331C ; mapped ; 30B1 30FC 30B9 #1.1 SQUARE KEESU
+331D ; mapped ; 30B3 30EB 30CA #1.1 SQUARE KORUNA
+331E ; mapped ; 30B3 30FC 30DD #1.1 SQUARE KOOPO
+331F ; mapped ; 30B5 30A4 30AF 30EB #1.1 SQUARE
SAIKURU
+3320 ; mapped ; 30B5 30F3 30C1 30FC 30E0 #1.1 SQUARE
SANTIIMU
+3321 ; mapped ; 30B7 30EA 30F3 30B0 #1.1 SQUARE
SIRINGU
+3322 ; mapped ; 30BB 30F3 30C1 #1.1 SQUARE SENTI
+3323 ; mapped ; 30BB 30F3 30C8 #1.1 SQUARE SENTO
+3324 ; mapped ; 30C0 30FC 30B9 #1.1 SQUARE DAASU
+3325 ; mapped ; 30C7 30B7 # 1.1 SQUARE DESI
+3326 ; mapped ; 30C9 30EB # 1.1 SQUARE DORU
+3327 ; mapped ; 30C8 30F3 # 1.1 SQUARE TON
+3328 ; mapped ; 30CA 30CE # 1.1 SQUARE NANO
+3329 ; mapped ; 30CE 30C3 30C8 #1.1 SQUARE NOTTO
+332A ; mapped ; 30CF 30A4 30C4 #1.1 SQUARE HAITU
+332B ; mapped ; 30D1 30FC 30BB 30F3 30C8 #1.1 SQUARE
PAASENTO
+332C ; mapped ; 30D1 30FC 30C4 #1.1 SQUARE PAATU
+332D ; mapped ; 30D0 30FC 30EC 30EB #1.1 SQUARE
BAARERU
+332E ; mapped ; 30D4 30A2 30B9 30C8 30EB #1.1 SQUARE
PIASUTORU
+332F ; mapped ; 30D4 30AF 30EB #1.1 SQUARE PIKURU
+3330 ; mapped ; 30D4 30B3 # 1.1 SQUARE PIKO
+3331 ; mapped ; 30D3 30EB # 1.1 SQUARE BIRU
+3332 ; mapped ; 30D5 30A1 30E9 30C3 30C9 #1.1 SQUARE
HUARADDO
+3333 ; mapped ; 30D5 30A3 30FC 30C8 #1.1 SQUARE HUIITO
+3334 ; mapped ; 30D6 30C3 30B7 30A7 30EB #1.1 SQUARE
BUSSYERU
+3335 ; mapped ; 30D5 30E9 30F3 #1.1 SQUARE HURAN
+3336 ; mapped ; 30D8 30AF 30BF 30FC 30EB #1.1 SQUARE
HEKUTAARU
+3337 ; mapped ; 30DA 30BD # 1.1 SQUARE PESO
+3338 ; mapped ; 30DA 30CB 30D2 #1.1 SQUARE PENIHI
+3339 ; mapped ; 30D8 30EB 30C4 #1.1 SQUARE HERUTU
+333A ; mapped ; 30DA 30F3 30B9 #1.1 SQUARE PENSU
+333B ; mapped ; 30DA 30FC 30B8 #1.1 SQUARE PEEZI
+333C ; mapped ; 30D9 30FC 30BF #1.1 SQUARE BEETA
+333D ; mapped ; 30DD 30A4 30F3 30C8 #1.1 SQUARE POINTO
+333E ; mapped ; 30DC 30EB 30C8 #1.1 SQUARE BORUTO
+333F ; mapped ; 30DB 30F3 # 1.1 SQUARE HON
+3340 ; mapped ; 30DD 30F3 30C9 #1.1 SQUARE PONDO
+3341 ; mapped ; 30DB 30FC 30EB #1.1 SQUARE HOORU
+3342 ; mapped ; 30DB 30FC 30F3 #1.1 SQUARE HOON
+3343 ; mapped ; 30DE 30A4 30AF 30ED #1.1 SQUARE
MAIKURO
+3344 ; mapped ; 30DE 30A4 30EB #1.1 SQUARE MAIRU
+3345 ; mapped ; 30DE 30C3 30CF #1.1 SQUARE MAHHA
+3346 ; mapped ; 30DE 30EB 30AF #1.1 SQUARE MARUKU
+3347 ; mapped ; 30DE 30F3 30B7 30E7 30F3 #1.1 SQUARE
MANSYON
+3348 ; mapped ; 30DF 30AF 30ED 30F3 #1.1 SQUARE
MIKURON
+3349 ; mapped ; 30DF 30EA # 1.1 SQUARE MIRI
+334A ; mapped ; 30DF 30EA 30D0 30FC 30EB #1.1 SQUARE
MIRIBAARU
+334B ; mapped ; 30E1 30AC # 1.1 SQUARE MEGA
+334C ; mapped ; 30E1 30AC 30C8 30F3 #1.1 SQUARE
MEGATON
+334D ; mapped ; 30E1 30FC 30C8 30EB #1.1 SQUARE
MEETORU
+334E ; mapped ; 30E4 30FC 30C9 #1.1 SQUARE YAADO
+334F ; mapped ; 30E4 30FC 30EB #1.1 SQUARE YAARU
+3350 ; mapped ; 30E6 30A2 30F3 #1.1 SQUARE YUAN
+3351 ; mapped ; 30EA 30C3 30C8 30EB #1.1 SQUARE
RITTORU
+3352 ; mapped ; 30EA 30E9 # 1.1 SQUARE RIRA
+3353 ; mapped ; 30EB 30D4 30FC #1.1 SQUARE RUPII
+3354 ; mapped ; 30EB 30FC 30D6 30EB #1.1 SQUARE
RUUBURU
+3355 ; mapped ; 30EC 30E0 # 1.1 SQUARE REMU
+3356 ; mapped ; 30EC 30F3 30C8 30B2 30F3 #1.1 SQUARE
RENTOGEN
+3357 ; mapped ; 30EF 30C3 30C8 #1.1 SQUARE WATTO
+3358 ; mapped ; 0030 70B9 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR ZERO
+3359 ; mapped ; 0031 70B9 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR ONE
+335A ; mapped ; 0032 70B9 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR TWO
+335B ; mapped ; 0033 70B9 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR THREE
+335C ; mapped ; 0034 70B9 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR FOUR
+335D ; mapped ; 0035 70B9 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR FIVE
+335E ; mapped ; 0036 70B9 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR SIX
+335F ; mapped ; 0037 70B9 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR SEVEN
+3360 ; mapped ; 0038 70B9 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR EIGHT
+3361 ; mapped ; 0039 70B9 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR NINE
+3362 ; mapped ; 0031 0030 70B9 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR TEN
+3363 ; mapped ; 0031 0031 70B9 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR ELEVEN
+3364 ; mapped ; 0031 0032 70B9 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR TWELVE
+3365 ; mapped ; 0031 0033 70B9 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR THIRTEEN
+3366 ; mapped ; 0031 0034 70B9 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR FOURTEEN
+3367 ; mapped ; 0031 0035 70B9 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR FIFTEEN
+3368 ; mapped ; 0031 0036 70B9 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR SIXTEEN
+3369 ; mapped ; 0031 0037 70B9 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
+336A ; mapped ; 0031 0038 70B9 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
+336B ; mapped ; 0031 0039 70B9 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR NINETEEN
+336C ; mapped ; 0032 0030 70B9 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR TWENTY
+336D ; mapped ; 0032 0031 70B9 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
+336E ; mapped ; 0032 0032 70B9 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
+336F ; mapped ; 0032 0033 70B9 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
+3370 ; mapped ; 0032 0034 70B9 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
+3371 ; mapped ; 0068 0070 0061 #1.1 SQUARE HPA
+3372 ; mapped ; 0064 0061 # 1.1 SQUARE DA
+3373 ; mapped ; 0061 0075 # 1.1 SQUARE AU
+3374 ; mapped ; 0062 0061 0072 #1.1 SQUARE BAR
+3375 ; mapped ; 006F 0076 # 1.1 SQUARE OV
+3376 ; mapped ; 0070 0063 # 1.1 SQUARE PC
+3377 ; mapped ; 0064 006D # 4.0 SQUARE DM
+3378 ; mapped ; 0064 006D 0032 #4.0 SQUARE DM SQUARED
+3379 ; mapped ; 0064 006D 0033 #4.0 SQUARE DM CUBED
+337A ; mapped ; 0069 0075 # 4.0 SQUARE IU
+337B ; mapped ; 5E73 6210 # 1.1 SQUARE ERA NAME
HEISEI
+337C ; mapped ; 662D 548C # 1.1 SQUARE ERA NAME
SYOUWA
+337D ; mapped ; 5927 6B63 # 1.1 SQUARE ERA NAME
TAISYOU
+337E ; mapped ; 660E 6CBB # 1.1 SQUARE ERA NAME
MEIZI
+337F ; mapped ; 682A 5F0F 4F1A 793E #1.1 SQUARE
CORPORATION
+3380 ; mapped ; 0070 0061 # 1.1 SQUARE PA AMPS
+3381 ; mapped ; 006E 0061 # 1.1 SQUARE NA
+3382 ; mapped ; 03BC 0061 # 1.1 SQUARE MU A
+3383 ; mapped ; 006D 0061 # 1.1 SQUARE MA
+3384 ; mapped ; 006B 0061 # 1.1 SQUARE KA
+3385 ; mapped ; 006B 0062 # 1.1 SQUARE KB
+3386 ; mapped ; 006D 0062 # 1.1 SQUARE MB
+3387 ; mapped ; 0067 0062 # 1.1 SQUARE GB
+3388 ; mapped ; 0063 0061 006C #1.1 SQUARE CAL
+3389 ; mapped ; 006B 0063 0061 006C #1.1 SQUARE KCAL
+338A ; mapped ; 0070 0066 # 1.1 SQUARE PF
+338B ; mapped ; 006E 0066 # 1.1 SQUARE NF
+338C ; mapped ; 03BC 0066 # 1.1 SQUARE MU F
+338D ; mapped ; 03BC 0067 # 1.1 SQUARE MU G
+338E ; mapped ; 006D 0067 # 1.1 SQUARE MG
+338F ; mapped ; 006B 0067 # 1.1 SQUARE KG
+3390 ; mapped ; 0068 007A # 1.1 SQUARE HZ
+3391 ; mapped ; 006B 0068 007A #1.1 SQUARE KHZ
+3392 ; mapped ; 006D 0068 007A #1.1 SQUARE MHZ
+3393 ; mapped ; 0067 0068 007A #1.1 SQUARE GHZ
+3394 ; mapped ; 0074 0068 007A #1.1 SQUARE THZ
+3395 ; mapped ; 03BC 006C # 1.1 SQUARE MU L
+3396 ; mapped ; 006D 006C # 1.1 SQUARE ML
+3397 ; mapped ; 0064 006C # 1.1 SQUARE DL
+3398 ; mapped ; 006B 006C # 1.1 SQUARE KL
+3399 ; mapped ; 0066 006D # 1.1 SQUARE FM
+339A ; mapped ; 006E 006D # 1.1 SQUARE NM
+339B ; mapped ; 03BC 006D # 1.1 SQUARE MU M
+339C ; mapped ; 006D 006D # 1.1 SQUARE MM
+339D ; mapped ; 0063 006D # 1.1 SQUARE CM
+339E ; mapped ; 006B 006D # 1.1 SQUARE KM
+339F ; mapped ; 006D 006D 0032 #1.1 SQUARE MM SQUARED
+33A0 ; mapped ; 0063 006D 0032 #1.1 SQUARE CM SQUARED
+33A1 ; mapped ; 006D 0032 # 1.1 SQUARE M SQUARED
+33A2 ; mapped ; 006B 006D 0032 #1.1 SQUARE KM SQUARED
+33A3 ; mapped ; 006D 006D 0033 #1.1 SQUARE MM CUBED
+33A4 ; mapped ; 0063 006D 0033 #1.1 SQUARE CM CUBED
+33A5 ; mapped ; 006D 0033 # 1.1 SQUARE M CUBED
+33A6 ; mapped ; 006B 006D 0033 #1.1 SQUARE KM CUBED
+33A7 ; mapped ; 006D 2215 0073 #1.1 SQUARE M OVER S
+33A8 ; mapped ; 006D 2215 0073 0032 #1.1 SQUARE M
OVER S SQUARED
+33A9 ; mapped ; 0070 0061 # 1.1 SQUARE PA
+33AA ; mapped ; 006B 0070 0061 #1.1 SQUARE KPA
+33AB ; mapped ; 006D 0070 0061 #1.1 SQUARE MPA
+33AC ; mapped ; 0067 0070 0061 #1.1 SQUARE GPA
+33AD ; mapped ; 0072 0061 0064 #1.1 SQUARE RAD
+33AE ; mapped ; 0072 0061 0064 2215 0073 #1.1 SQUARE
RAD OVER S
+33AF ; mapped ; 0072 0061 0064 2215 0073 0032 #1.1
SQUARE RAD OVER S SQUARED
+33B0 ; mapped ; 0070 0073 # 1.1 SQUARE PS
+33B1 ; mapped ; 006E 0073 # 1.1 SQUARE NS
+33B2 ; mapped ; 03BC 0073 # 1.1 SQUARE MU S
+33B3 ; mapped ; 006D 0073 # 1.1 SQUARE MS
+33B4 ; mapped ; 0070 0076 # 1.1 SQUARE PV
+33B5 ; mapped ; 006E 0076 # 1.1 SQUARE NV
+33B6 ; mapped ; 03BC 0076 # 1.1 SQUARE MU V
+33B7 ; mapped ; 006D 0076 # 1.1 SQUARE MV
+33B8 ; mapped ; 006B 0076 # 1.1 SQUARE KV
+33B9 ; mapped ; 006D 0076 # 1.1 SQUARE MV MEGA
+33BA ; mapped ; 0070 0077 # 1.1 SQUARE PW
+33BB ; mapped ; 006E 0077 # 1.1 SQUARE NW
+33BC ; mapped ; 03BC 0077 # 1.1 SQUARE MU W
+33BD ; mapped ; 006D 0077 # 1.1 SQUARE MW
+33BE ; mapped ; 006B 0077 # 1.1 SQUARE KW
+33BF ; mapped ; 006D 0077 # 1.1 SQUARE MW MEGA
+33C0 ; mapped ; 006B 03C9 # 1.1 SQUARE K OHM
+33C1 ; mapped ; 006D 03C9 # 1.1 SQUARE M OHM
+33C2 ; disallowed # 1.1 SQUARE AM
+33C3 ; mapped ; 0062 0071 # 1.1 SQUARE BQ
+33C4 ; mapped ; 0063 0063 # 1.1 SQUARE CC
+33C5 ; mapped ; 0063 0064 # 1.1 SQUARE CD
+33C6 ; mapped ; 0063 2215 006B 0067 #1.1 SQUARE C
OVER KG
+33C7 ; disallowed # 1.1 SQUARE CO
+33C8 ; mapped ; 0064 0062 # 1.1 SQUARE DB
+33C9 ; mapped ; 0067 0079 # 1.1 SQUARE GY
+33CA ; mapped ; 0068 0061 # 1.1 SQUARE HA
+33CB ; mapped ; 0068 0070 # 1.1 SQUARE HP
+33CC ; mapped ; 0069 006E # 1.1 SQUARE IN
+33CD ; mapped ; 006B 006B # 1.1 SQUARE KK
+33CE ; mapped ; 006B 006D # 1.1 SQUARE KM CAPITAL
+33CF ; mapped ; 006B 0074 # 1.1 SQUARE KT
+33D0 ; mapped ; 006C 006D # 1.1 SQUARE LM
+33D1 ; mapped ; 006C 006E # 1.1 SQUARE LN
+33D2 ; mapped ; 006C 006F 0067 #1.1 SQUARE LOG
+33D3 ; mapped ; 006C 0078 # 1.1 SQUARE LX
+33D4 ; mapped ; 006D 0062 # 1.1 SQUARE MB SMALL
+33D5 ; mapped ; 006D 0069 006C #1.1 SQUARE MIL
+33D6 ; mapped ; 006D 006F 006C #1.1 SQUARE MOL
+33D7 ; mapped ; 0070 0068 # 1.1 SQUARE PH
+33D8 ; disallowed # 1.1 SQUARE PM
+33D9 ; mapped ; 0070 0070 006D #1.1 SQUARE PPM
+33DA ; mapped ; 0070 0072 # 1.1 SQUARE PR
+33DB ; mapped ; 0073 0072 # 1.1 SQUARE SR
+33DC ; mapped ; 0073 0076 # 1.1 SQUARE SV
+33DD ; mapped ; 0077 0062 # 1.1 SQUARE WB
+33DE ; mapped ; 0076 2215 006D #4.0 SQUARE V OVER M
+33DF ; mapped ; 0061 2215 006D #4.0 SQUARE A OVER M
+33E0 ; mapped ; 0031 65E5 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY ONE
+33E1 ; mapped ; 0032 65E5 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY TWO
+33E2 ; mapped ; 0033 65E5 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY THREE
+33E3 ; mapped ; 0034 65E5 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY FOUR
+33E4 ; mapped ; 0035 65E5 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY FIVE
+33E5 ; mapped ; 0036 65E5 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY SIX
+33E6 ; mapped ; 0037 65E5 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY SEVEN
+33E7 ; mapped ; 0038 65E5 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY EIGHT
+33E8 ; mapped ; 0039 65E5 # 1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY NINE
+33E9 ; mapped ; 0031 0030 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY TEN
+33EA ; mapped ; 0031 0031 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY ELEVEN
+33EB ; mapped ; 0031 0032 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY TWELVE
+33EC ; mapped ; 0031 0033 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY THIRTEEN
+33ED ; mapped ; 0031 0034 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY FOURTEEN
+33EE ; mapped ; 0031 0035 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY FIFTEEN
+33EF ; mapped ; 0031 0036 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY SIXTEEN
+33F0 ; mapped ; 0031 0037 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY SEVENTEEN
+33F1 ; mapped ; 0031 0038 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY EIGHTEEN
+33F2 ; mapped ; 0031 0039 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY NINETEEN
+33F3 ; mapped ; 0032 0030 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY TWENTY
+33F4 ; mapped ; 0032 0031 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
+33F5 ; mapped ; 0032 0032 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
+33F6 ; mapped ; 0032 0033 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
+33F7 ; mapped ; 0032 0034 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
+33F8 ; mapped ; 0032 0035 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
+33F9 ; mapped ; 0032 0036 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
+33FA ; mapped ; 0032 0037 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
+33FB ; mapped ; 0032 0038 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
+33FC ; mapped ; 0032 0039 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
+33FD ; mapped ; 0033 0030 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY THIRTY
+33FE ; mapped ; 0033 0031 65E5 #1.1 IDEOGRAPHIC
TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
+33FF ; mapped ; 0067 0061 006C #4.0 SQUARE GAL
+3400..4DB5 ; valid # 3.0 CJK UNIFIED
IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
+4DB6..4DBF ; valid # 13.0 CJK UNIFIED
IDEOGRAPH-4DB6..CJK UNIFIED IDEOGRAPH-4DBF
+4DC0..4DFF ; valid ; ; NV8 # 4.0 HEXAGRAM FOR THE
CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
+4E00..9FA5 ; valid # 1.1 CJK UNIFIED
IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FA5
+9FA6..9FBB ; valid # 4.1 CJK UNIFIED
IDEOGRAPH-9FA6..CJK UNIFIED IDEOGRAPH-9FBB
+9FBC..9FC3 ; valid # 5.1 CJK UNIFIED
IDEOGRAPH-9FBC..CJK UNIFIED IDEOGRAPH-9FC3
+9FC4..9FCB ; valid # 5.2 CJK UNIFIED
IDEOGRAPH-9FC4..CJK UNIFIED IDEOGRAPH-9FCB
+9FCC ; valid # 6.1 CJK UNIFIED
IDEOGRAPH-9FCC
+9FCD..9FD5 ; valid # 8.0 CJK UNIFIED
IDEOGRAPH-9FCD..CJK UNIFIED IDEOGRAPH-9FD5
+9FD6..9FEA ; valid # 10.0 CJK UNIFIED
IDEOGRAPH-9FD6..CJK UNIFIED IDEOGRAPH-9FEA
+9FEB..9FEF ; valid # 11.0 CJK UNIFIED
IDEOGRAPH-9FEB..CJK UNIFIED IDEOGRAPH-9FEF
+9FF0..9FFC ; valid # 13.0 CJK UNIFIED
IDEOGRAPH-9FF0..CJK UNIFIED IDEOGRAPH-9FFC
+9FFD..9FFF ; valid # 14.0 CJK UNIFIED
IDEOGRAPH-9FFD..CJK UNIFIED IDEOGRAPH-9FFF
+A000..A48C ; valid # 3.0 YI SYLLABLE
IT..YI SYLLABLE YYR
+A48D..A48F ; disallowed # NA
<reserved-A48D>..<reserved-A48F>
+A490..A4A1 ; valid ; ; NV8 # 3.0 YI RADICAL
QOT..YI RADICAL GA
+A4A2..A4A3 ; valid ; ; NV8 # 3.2 YI RADICAL
ZUP..YI RADICAL CYT
+A4A4..A4B3 ; valid ; ; NV8 # 3.0 YI RADICAL
DDUR..YI RADICAL JO
+A4B4 ; valid ; ; NV8 # 3.2 YI RADICAL NZUP
+A4B5..A4C0 ; valid ; ; NV8 # 3.0 YI RADICAL
JJY..YI RADICAL SHAT
+A4C1 ; valid ; ; NV8 # 3.2 YI RADICAL ZUR
+A4C2..A4C4 ; valid ; ; NV8 # 3.0 YI RADICAL
SHOP..YI RADICAL ZZIET
+A4C5 ; valid ; ; NV8 # 3.2 YI RADICAL NBIE
+A4C6 ; valid ; ; NV8 # 3.0 YI RADICAL KE
+A4C7..A4CF ; disallowed # NA
<reserved-A4C7>..<reserved-A4CF>
+A4D0..A4FD ; valid # 5.2 LISU LETTER
BA..LISU LETTER TONE MYA JEU
+A4FE..A4FF ; valid ; ; NV8 # 5.2 LISU PUNCTUATION
COMMA..LISU PUNCTUATION FULL STOP
+A500..A60C ; valid # 5.1 VAI SYLLABLE
EE..VAI SYLLABLE LENGTHENER
+A60D..A60F ; valid ; ; NV8 # 5.1 VAI COMMA..VAI
QUESTION MARK
+A610..A62B ; valid # 5.1 VAI SYLLABLE
NDOLE FA..VAI SYLLABLE NDOLE DO
+A62C..A63F ; disallowed # NA
<reserved-A62C>..<reserved-A63F>
+A640 ; mapped ; A641 # 5.1 CYRILLIC CAPITAL
LETTER ZEMLYA
+A641 ; valid # 5.1 CYRILLIC SMALL
LETTER ZEMLYA
+A642 ; mapped ; A643 # 5.1 CYRILLIC CAPITAL
LETTER DZELO
+A643 ; valid # 5.1 CYRILLIC SMALL
LETTER DZELO
+A644 ; mapped ; A645 # 5.1 CYRILLIC CAPITAL
LETTER REVERSED DZE
+A645 ; valid # 5.1 CYRILLIC SMALL
LETTER REVERSED DZE
+A646 ; mapped ; A647 # 5.1 CYRILLIC CAPITAL
LETTER IOTA
+A647 ; valid # 5.1 CYRILLIC SMALL
LETTER IOTA
+A648 ; mapped ; A649 # 5.1 CYRILLIC CAPITAL
LETTER DJERV
+A649 ; valid # 5.1 CYRILLIC SMALL
LETTER DJERV
+A64A ; mapped ; A64B # 5.1 CYRILLIC CAPITAL
LETTER MONOGRAPH UK
+A64B ; valid # 5.1 CYRILLIC SMALL
LETTER MONOGRAPH UK
+A64C ; mapped ; A64D # 5.1 CYRILLIC CAPITAL
LETTER BROAD OMEGA
+A64D ; valid # 5.1 CYRILLIC SMALL
LETTER BROAD OMEGA
+A64E ; mapped ; A64F # 5.1 CYRILLIC CAPITAL
LETTER NEUTRAL YER
+A64F ; valid # 5.1 CYRILLIC SMALL
LETTER NEUTRAL YER
+A650 ; mapped ; A651 # 5.1 CYRILLIC CAPITAL
LETTER YERU WITH BACK YER
+A651 ; valid # 5.1 CYRILLIC SMALL
LETTER YERU WITH BACK YER
+A652 ; mapped ; A653 # 5.1 CYRILLIC CAPITAL
LETTER IOTIFIED YAT
+A653 ; valid # 5.1 CYRILLIC SMALL
LETTER IOTIFIED YAT
+A654 ; mapped ; A655 # 5.1 CYRILLIC CAPITAL
LETTER REVERSED YU
+A655 ; valid # 5.1 CYRILLIC SMALL
LETTER REVERSED YU
+A656 ; mapped ; A657 # 5.1 CYRILLIC CAPITAL
LETTER IOTIFIED A
+A657 ; valid # 5.1 CYRILLIC SMALL
LETTER IOTIFIED A
+A658 ; mapped ; A659 # 5.1 CYRILLIC CAPITAL
LETTER CLOSED LITTLE YUS
+A659 ; valid # 5.1 CYRILLIC SMALL
LETTER CLOSED LITTLE YUS
+A65A ; mapped ; A65B # 5.1 CYRILLIC CAPITAL
LETTER BLENDED YUS
+A65B ; valid # 5.1 CYRILLIC SMALL
LETTER BLENDED YUS
+A65C ; mapped ; A65D # 5.1 CYRILLIC CAPITAL
LETTER IOTIFIED CLOSED LITTLE YUS
+A65D ; valid # 5.1 CYRILLIC SMALL
LETTER IOTIFIED CLOSED LITTLE YUS
+A65E ; mapped ; A65F # 5.1 CYRILLIC CAPITAL
LETTER YN
+A65F ; valid # 5.1 CYRILLIC SMALL
LETTER YN
+A660 ; mapped ; A661 # 6.0 CYRILLIC CAPITAL
LETTER REVERSED TSE
+A661 ; valid # 6.0 CYRILLIC SMALL
LETTER REVERSED TSE
+A662 ; mapped ; A663 # 5.1 CYRILLIC CAPITAL
LETTER SOFT DE
+A663 ; valid # 5.1 CYRILLIC SMALL
LETTER SOFT DE
+A664 ; mapped ; A665 # 5.1 CYRILLIC CAPITAL
LETTER SOFT EL
+A665 ; valid # 5.1 CYRILLIC SMALL
LETTER SOFT EL
+A666 ; mapped ; A667 # 5.1 CYRILLIC CAPITAL
LETTER SOFT EM
+A667 ; valid # 5.1 CYRILLIC SMALL
LETTER SOFT EM
+A668 ; mapped ; A669 # 5.1 CYRILLIC CAPITAL
LETTER MONOCULAR O
+A669 ; valid # 5.1 CYRILLIC SMALL
LETTER MONOCULAR O
+A66A ; mapped ; A66B # 5.1 CYRILLIC CAPITAL
LETTER BINOCULAR O
+A66B ; valid # 5.1 CYRILLIC SMALL
LETTER BINOCULAR O
+A66C ; mapped ; A66D # 5.1 CYRILLIC CAPITAL
LETTER DOUBLE MONOCULAR O
+A66D..A66F ; valid # 5.1 CYRILLIC SMALL
LETTER DOUBLE MONOCULAR O..COMBINING CYRILLIC VZMET
+A670..A673 ; valid ; ; NV8 # 5.1 COMBINING
CYRILLIC TEN MILLIONS SIGN..SLAVONIC ASTERISK
+A674..A67B ; valid # 6.1 COMBINING
CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC LETTER OMEGA
+A67C..A67D ; valid # 5.1 COMBINING
CYRILLIC KAVYKA..COMBINING CYRILLIC PAYEROK
+A67E ; valid ; ; NV8 # 5.1 CYRILLIC KAVYKA
+A67F ; valid # 5.1 CYRILLIC PAYEROK
+A680 ; mapped ; A681 # 5.1 CYRILLIC CAPITAL
LETTER DWE
+A681 ; valid # 5.1 CYRILLIC SMALL
LETTER DWE
+A682 ; mapped ; A683 # 5.1 CYRILLIC CAPITAL
LETTER DZWE
+A683 ; valid # 5.1 CYRILLIC SMALL
LETTER DZWE
+A684 ; mapped ; A685 # 5.1 CYRILLIC CAPITAL
LETTER ZHWE
+A685 ; valid # 5.1 CYRILLIC SMALL
LETTER ZHWE
+A686 ; mapped ; A687 # 5.1 CYRILLIC CAPITAL
LETTER CCHE
+A687 ; valid # 5.1 CYRILLIC SMALL
LETTER CCHE
+A688 ; mapped ; A689 # 5.1 CYRILLIC CAPITAL
LETTER DZZE
+A689 ; valid # 5.1 CYRILLIC SMALL
LETTER DZZE
+A68A ; mapped ; A68B # 5.1 CYRILLIC CAPITAL
LETTER TE WITH MIDDLE HOOK
+A68B ; valid # 5.1 CYRILLIC SMALL
LETTER TE WITH MIDDLE HOOK
+A68C ; mapped ; A68D # 5.1 CYRILLIC CAPITAL
LETTER TWE
+A68D ; valid # 5.1 CYRILLIC SMALL
LETTER TWE
+A68E ; mapped ; A68F # 5.1 CYRILLIC CAPITAL
LETTER TSWE
+A68F ; valid # 5.1 CYRILLIC SMALL
LETTER TSWE
+A690 ; mapped ; A691 # 5.1 CYRILLIC CAPITAL
LETTER TSSE
+A691 ; valid # 5.1 CYRILLIC SMALL
LETTER TSSE
+A692 ; mapped ; A693 # 5.1 CYRILLIC CAPITAL
LETTER TCHE
+A693 ; valid # 5.1 CYRILLIC SMALL
LETTER TCHE
+A694 ; mapped ; A695 # 5.1 CYRILLIC CAPITAL
LETTER HWE
+A695 ; valid # 5.1 CYRILLIC SMALL
LETTER HWE
+A696 ; mapped ; A697 # 5.1 CYRILLIC CAPITAL
LETTER SHWE
+A697 ; valid # 5.1 CYRILLIC SMALL
LETTER SHWE
+A698 ; mapped ; A699 # 7.0 CYRILLIC CAPITAL
LETTER DOUBLE O
+A699 ; valid # 7.0 CYRILLIC SMALL
LETTER DOUBLE O
+A69A ; mapped ; A69B # 7.0 CYRILLIC CAPITAL
LETTER CROSSED O
+A69B ; valid # 7.0 CYRILLIC SMALL
LETTER CROSSED O
+A69C ; mapped ; 044A # 7.0 MODIFIER LETTER
CYRILLIC HARD SIGN
+A69D ; mapped ; 044C # 7.0 MODIFIER LETTER
CYRILLIC SOFT SIGN
+A69E ; valid # 8.0 COMBINING
CYRILLIC LETTER EF
+A69F ; valid # 6.1 COMBINING
CYRILLIC LETTER IOTIFIED E
+A6A0..A6E5 ; valid # 5.2 BAMUM LETTER
A..BAMUM LETTER KI
+A6E6..A6EF ; valid ; ; NV8 # 5.2 BAMUM LETTER
MO..BAMUM LETTER KOGHOM
+A6F0..A6F1 ; valid # 5.2 BAMUM COMBINING
MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
+A6F2..A6F7 ; valid ; ; NV8 # 5.2 BAMUM
NJAEMLI..BAMUM QUESTION MARK
+A6F8..A6FF ; disallowed # NA
<reserved-A6F8>..<reserved-A6FF>
+A700..A716 ; valid ; ; NV8 # 4.1 MODIFIER LETTER
CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+A717..A71A ; valid # 5.0 MODIFIER LETTER
DOT VERTICAL BAR..MODIFIER LETTER LOWER RIGHT CORNER ANGLE
+A71B..A71F ; valid # 5.1 MODIFIER LETTER
RAISED UP ARROW..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
+A720..A721 ; valid ; ; NV8 # 5.0 MODIFIER LETTER
STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
+A722 ; mapped ; A723 # 5.1 LATIN CAPITAL
LETTER EGYPTOLOGICAL ALEF
+A723 ; valid # 5.1 LATIN SMALL
LETTER EGYPTOLOGICAL ALEF
+A724 ; mapped ; A725 # 5.1 LATIN CAPITAL
LETTER EGYPTOLOGICAL AIN
+A725 ; valid # 5.1 LATIN SMALL
LETTER EGYPTOLOGICAL AIN
+A726 ; mapped ; A727 # 5.1 LATIN CAPITAL
LETTER HENG
+A727 ; valid # 5.1 LATIN SMALL
LETTER HENG
+A728 ; mapped ; A729 # 5.1 LATIN CAPITAL
LETTER TZ
+A729 ; valid # 5.1 LATIN SMALL
LETTER TZ
+A72A ; mapped ; A72B # 5.1 LATIN CAPITAL
LETTER TRESILLO
+A72B ; valid # 5.1 LATIN SMALL
LETTER TRESILLO
+A72C ; mapped ; A72D # 5.1 LATIN CAPITAL
LETTER CUATRILLO
+A72D ; valid # 5.1 LATIN SMALL
LETTER CUATRILLO
+A72E ; mapped ; A72F # 5.1 LATIN CAPITAL
LETTER CUATRILLO WITH COMMA
+A72F..A731 ; valid # 5.1 LATIN SMALL
LETTER CUATRILLO WITH COMMA..LATIN LETTER SMALL CAPITAL S
+A732 ; mapped ; A733 # 5.1 LATIN CAPITAL
LETTER AA
+A733 ; valid # 5.1 LATIN SMALL
LETTER AA
+A734 ; mapped ; A735 # 5.1 LATIN CAPITAL
LETTER AO
+A735 ; valid # 5.1 LATIN SMALL
LETTER AO
+A736 ; mapped ; A737 # 5.1 LATIN CAPITAL
LETTER AU
+A737 ; valid # 5.1 LATIN SMALL
LETTER AU
+A738 ; mapped ; A739 # 5.1 LATIN CAPITAL
LETTER AV
+A739 ; valid # 5.1 LATIN SMALL
LETTER AV
+A73A ; mapped ; A73B # 5.1 LATIN CAPITAL
LETTER AV WITH HORIZONTAL BAR
+A73B ; valid # 5.1 LATIN SMALL
LETTER AV WITH HORIZONTAL BAR
+A73C ; mapped ; A73D # 5.1 LATIN CAPITAL
LETTER AY
+A73D ; valid # 5.1 LATIN SMALL
LETTER AY
+A73E ; mapped ; A73F # 5.1 LATIN CAPITAL
LETTER REVERSED C WITH DOT
+A73F ; valid # 5.1 LATIN SMALL
LETTER REVERSED C WITH DOT
+A740 ; mapped ; A741 # 5.1 LATIN CAPITAL
LETTER K WITH STROKE
+A741 ; valid # 5.1 LATIN SMALL
LETTER K WITH STROKE
+A742 ; mapped ; A743 # 5.1 LATIN CAPITAL
LETTER K WITH DIAGONAL STROKE
+A743 ; valid # 5.1 LATIN SMALL
LETTER K WITH DIAGONAL STROKE
+A744 ; mapped ; A745 # 5.1 LATIN CAPITAL
LETTER K WITH STROKE AND DIAGONAL STROKE
+A745 ; valid # 5.1 LATIN SMALL
LETTER K WITH STROKE AND DIAGONAL STROKE
+A746 ; mapped ; A747 # 5.1 LATIN CAPITAL
LETTER BROKEN L
+A747 ; valid # 5.1 LATIN SMALL
LETTER BROKEN L
+A748 ; mapped ; A749 # 5.1 LATIN CAPITAL
LETTER L WITH HIGH STROKE
+A749 ; valid # 5.1 LATIN SMALL
LETTER L WITH HIGH STROKE
+A74A ; mapped ; A74B # 5.1 LATIN CAPITAL
LETTER O WITH LONG STROKE OVERLAY
+A74B ; valid # 5.1 LATIN SMALL
LETTER O WITH LONG STROKE OVERLAY
+A74C ; mapped ; A74D # 5.1 LATIN CAPITAL
LETTER O WITH LOOP
+A74D ; valid # 5.1 LATIN SMALL
LETTER O WITH LOOP
+A74E ; mapped ; A74F # 5.1 LATIN CAPITAL
LETTER OO
+A74F ; valid # 5.1 LATIN SMALL
LETTER OO
+A750 ; mapped ; A751 # 5.1 LATIN CAPITAL
LETTER P WITH STROKE THROUGH DESCENDER
+A751 ; valid # 5.1 LATIN SMALL
LETTER P WITH STROKE THROUGH DESCENDER
+A752 ; mapped ; A753 # 5.1 LATIN CAPITAL
LETTER P WITH FLOURISH
+A753 ; valid # 5.1 LATIN SMALL
LETTER P WITH FLOURISH
+A754 ; mapped ; A755 # 5.1 LATIN CAPITAL
LETTER P WITH SQUIRREL TAIL
+A755 ; valid # 5.1 LATIN SMALL
LETTER P WITH SQUIRREL TAIL
+A756 ; mapped ; A757 # 5.1 LATIN CAPITAL
LETTER Q WITH STROKE THROUGH DESCENDER
+A757 ; valid # 5.1 LATIN SMALL
LETTER Q WITH STROKE THROUGH DESCENDER
+A758 ; mapped ; A759 # 5.1 LATIN CAPITAL
LETTER Q WITH DIAGONAL STROKE
+A759 ; valid # 5.1 LATIN SMALL
LETTER Q WITH DIAGONAL STROKE
+A75A ; mapped ; A75B # 5.1 LATIN CAPITAL
LETTER R ROTUNDA
+A75B ; valid # 5.1 LATIN SMALL
LETTER R ROTUNDA
+A75C ; mapped ; A75D # 5.1 LATIN CAPITAL
LETTER RUM ROTUNDA
+A75D ; valid # 5.1 LATIN SMALL
LETTER RUM ROTUNDA
+A75E ; mapped ; A75F # 5.1 LATIN CAPITAL
LETTER V WITH DIAGONAL STROKE
+A75F ; valid # 5.1 LATIN SMALL
LETTER V WITH DIAGONAL STROKE
+A760 ; mapped ; A761 # 5.1 LATIN CAPITAL
LETTER VY
+A761 ; valid # 5.1 LATIN SMALL
LETTER VY
+A762 ; mapped ; A763 # 5.1 LATIN CAPITAL
LETTER VISIGOTHIC Z
+A763 ; valid # 5.1 LATIN SMALL
LETTER VISIGOTHIC Z
+A764 ; mapped ; A765 # 5.1 LATIN CAPITAL
LETTER THORN WITH STROKE
+A765 ; valid # 5.1 LATIN SMALL
LETTER THORN WITH STROKE
+A766 ; mapped ; A767 # 5.1 LATIN CAPITAL
LETTER THORN WITH STROKE THROUGH DESCENDER
+A767 ; valid # 5.1 LATIN SMALL
LETTER THORN WITH STROKE THROUGH DESCENDER
+A768 ; mapped ; A769 # 5.1 LATIN CAPITAL
LETTER VEND
+A769 ; valid # 5.1 LATIN SMALL
LETTER VEND
+A76A ; mapped ; A76B # 5.1 LATIN CAPITAL
LETTER ET
+A76B ; valid # 5.1 LATIN SMALL
LETTER ET
+A76C ; mapped ; A76D # 5.1 LATIN CAPITAL
LETTER IS
+A76D ; valid # 5.1 LATIN SMALL
LETTER IS
+A76E ; mapped ; A76F # 5.1 LATIN CAPITAL
LETTER CON
+A76F ; valid # 5.1 LATIN SMALL
LETTER CON
+A770 ; mapped ; A76F # 5.1 MODIFIER LETTER
US
+A771..A778 ; valid # 5.1 LATIN SMALL
LETTER DUM..LATIN SMALL LETTER UM
+A779 ; mapped ; A77A # 5.1 LATIN CAPITAL
LETTER INSULAR D
+A77A ; valid # 5.1 LATIN SMALL
LETTER INSULAR D
+A77B ; mapped ; A77C # 5.1 LATIN CAPITAL
LETTER INSULAR F
+A77C ; valid # 5.1 LATIN SMALL
LETTER INSULAR F
+A77D ; mapped ; 1D79 # 5.1 LATIN CAPITAL
LETTER INSULAR G
+A77E ; mapped ; A77F # 5.1 LATIN CAPITAL
LETTER TURNED INSULAR G
+A77F ; valid # 5.1 LATIN SMALL
LETTER TURNED INSULAR G
+A780 ; mapped ; A781 # 5.1 LATIN CAPITAL
LETTER TURNED L
+A781 ; valid # 5.1 LATIN SMALL
LETTER TURNED L
+A782 ; mapped ; A783 # 5.1 LATIN CAPITAL
LETTER INSULAR R
+A783 ; valid # 5.1 LATIN SMALL
LETTER INSULAR R
+A784 ; mapped ; A785 # 5.1 LATIN CAPITAL
LETTER INSULAR S
+A785 ; valid # 5.1 LATIN SMALL
LETTER INSULAR S
+A786 ; mapped ; A787 # 5.1 LATIN CAPITAL
LETTER INSULAR T
+A787..A788 ; valid # 5.1 LATIN SMALL
LETTER INSULAR T..MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A789..A78A ; valid ; ; NV8 # 5.1 MODIFIER LETTER
COLON..MODIFIER LETTER SHORT EQUALS SIGN
+A78B ; mapped ; A78C # 5.1 LATIN CAPITAL
LETTER SALTILLO
+A78C ; valid # 5.1 LATIN SMALL
LETTER SALTILLO
+A78D ; mapped ; 0265 # 6.0 LATIN CAPITAL
LETTER TURNED H
+A78E ; valid # 6.0 LATIN SMALL
LETTER L WITH RETROFLEX HOOK AND BELT
+A78F ; valid # 8.0 LATIN LETTER
SINOLOGICAL DOT
+A790 ; mapped ; A791 # 6.0 LATIN CAPITAL
LETTER N WITH DESCENDER
+A791 ; valid # 6.0 LATIN SMALL
LETTER N WITH DESCENDER
+A792 ; mapped ; A793 # 6.1 LATIN CAPITAL
LETTER C WITH BAR
+A793 ; valid # 6.1 LATIN SMALL
LETTER C WITH BAR
+A794..A795 ; valid # 7.0 LATIN SMALL
LETTER C WITH PALATAL HOOK..LATIN SMALL LETTER H WITH PALATAL HOOK
+A796 ; mapped ; A797 # 7.0 LATIN CAPITAL
LETTER B WITH FLOURISH
+A797 ; valid # 7.0 LATIN SMALL
LETTER B WITH FLOURISH
+A798 ; mapped ; A799 # 7.0 LATIN CAPITAL
LETTER F WITH STROKE
+A799 ; valid # 7.0 LATIN SMALL
LETTER F WITH STROKE
+A79A ; mapped ; A79B # 7.0 LATIN CAPITAL
LETTER VOLAPUK AE
+A79B ; valid # 7.0 LATIN SMALL
LETTER VOLAPUK AE
+A79C ; mapped ; A79D # 7.0 LATIN CAPITAL
LETTER VOLAPUK OE
+A79D ; valid # 7.0 LATIN SMALL
LETTER VOLAPUK OE
+A79E ; mapped ; A79F # 7.0 LATIN CAPITAL
LETTER VOLAPUK UE
+A79F ; valid # 7.0 LATIN SMALL
LETTER VOLAPUK UE
+A7A0 ; mapped ; A7A1 # 6.0 LATIN CAPITAL
LETTER G WITH OBLIQUE STROKE
+A7A1 ; valid # 6.0 LATIN SMALL
LETTER G WITH OBLIQUE STROKE
+A7A2 ; mapped ; A7A3 # 6.0 LATIN CAPITAL
LETTER K WITH OBLIQUE STROKE
+A7A3 ; valid # 6.0 LATIN SMALL
LETTER K WITH OBLIQUE STROKE
+A7A4 ; mapped ; A7A5 # 6.0 LATIN CAPITAL
LETTER N WITH OBLIQUE STROKE
+A7A5 ; valid # 6.0 LATIN SMALL
LETTER N WITH OBLIQUE STROKE
+A7A6 ; mapped ; A7A7 # 6.0 LATIN CAPITAL
LETTER R WITH OBLIQUE STROKE
+A7A7 ; valid # 6.0 LATIN SMALL
LETTER R WITH OBLIQUE STROKE
+A7A8 ; mapped ; A7A9 # 6.0 LATIN CAPITAL
LETTER S WITH OBLIQUE STROKE
+A7A9 ; valid # 6.0 LATIN SMALL
LETTER S WITH OBLIQUE STROKE
+A7AA ; mapped ; 0266 # 6.1 LATIN CAPITAL
LETTER H WITH HOOK
+A7AB ; mapped ; 025C # 7.0 LATIN CAPITAL
LETTER REVERSED OPEN E
+A7AC ; mapped ; 0261 # 7.0 LATIN CAPITAL
LETTER SCRIPT G
+A7AD ; mapped ; 026C # 7.0 LATIN CAPITAL
LETTER L WITH BELT
+A7AE ; mapped ; 026A # 9.0 LATIN CAPITAL
LETTER SMALL CAPITAL I
+A7AF ; valid # 11.0 LATIN LETTER
SMALL CAPITAL Q
+A7B0 ; mapped ; 029E # 7.0 LATIN CAPITAL
LETTER TURNED K
+A7B1 ; mapped ; 0287 # 7.0 LATIN CAPITAL
LETTER TURNED T
+A7B2 ; mapped ; 029D # 8.0 LATIN CAPITAL
LETTER J WITH CROSSED-TAIL
+A7B3 ; mapped ; AB53 # 8.0 LATIN CAPITAL
LETTER CHI
+A7B4 ; mapped ; A7B5 # 8.0 LATIN CAPITAL
LETTER BETA
+A7B5 ; valid # 8.0 LATIN SMALL
LETTER BETA
+A7B6 ; mapped ; A7B7 # 8.0 LATIN CAPITAL
LETTER OMEGA
+A7B7 ; valid # 8.0 LATIN SMALL
LETTER OMEGA
+A7B8 ; mapped ; A7B9 # 11.0 LATIN CAPITAL
LETTER U WITH STROKE
+A7B9 ; valid # 11.0 LATIN SMALL
LETTER U WITH STROKE
+A7BA ; mapped ; A7BB # 12.0 LATIN CAPITAL
LETTER GLOTTAL A
+A7BB ; valid # 12.0 LATIN SMALL
LETTER GLOTTAL A
+A7BC ; mapped ; A7BD # 12.0 LATIN CAPITAL
LETTER GLOTTAL I
+A7BD ; valid # 12.0 LATIN SMALL
LETTER GLOTTAL I
+A7BE ; mapped ; A7BF # 12.0 LATIN CAPITAL
LETTER GLOTTAL U
+A7BF ; valid # 12.0 LATIN SMALL
LETTER GLOTTAL U
+A7C0 ; mapped ; A7C1 # 14.0 LATIN CAPITAL
LETTER OLD POLISH O
+A7C1 ; valid # 14.0 LATIN SMALL
LETTER OLD POLISH O
+A7C2 ; mapped ; A7C3 # 12.0 LATIN CAPITAL
LETTER ANGLICANA W
+A7C3 ; valid # 12.0 LATIN SMALL
LETTER ANGLICANA W
+A7C4 ; mapped ; A794 # 12.0 LATIN CAPITAL
LETTER C WITH PALATAL HOOK
+A7C5 ; mapped ; 0282 # 12.0 LATIN CAPITAL
LETTER S WITH HOOK
+A7C6 ; mapped ; 1D8E # 12.0 LATIN CAPITAL
LETTER Z WITH PALATAL HOOK
+A7C7 ; mapped ; A7C8 # 13.0 LATIN CAPITAL
LETTER D WITH SHORT STROKE OVERLAY
+A7C8 ; valid # 13.0 LATIN SMALL
LETTER D WITH SHORT STROKE OVERLAY
+A7C9 ; mapped ; A7CA # 13.0 LATIN CAPITAL
LETTER S WITH SHORT STROKE OVERLAY
+A7CA ; valid # 13.0 LATIN SMALL
LETTER S WITH SHORT STROKE OVERLAY
+A7CB..A7CF ; disallowed # NA
<reserved-A7CB>..<reserved-A7CF>
+A7D0 ; mapped ; A7D1 # 14.0 LATIN CAPITAL
LETTER CLOSED INSULAR G
+A7D1 ; valid # 14.0 LATIN SMALL
LETTER CLOSED INSULAR G
+A7D2 ; disallowed # NA <reserved-A7D2>
+A7D3 ; valid # 14.0 LATIN SMALL
LETTER DOUBLE THORN
+A7D4 ; disallowed # NA <reserved-A7D4>
+A7D5 ; valid # 14.0 LATIN SMALL
LETTER DOUBLE WYNN
+A7D6 ; mapped ; A7D7 # 14.0 LATIN CAPITAL
LETTER MIDDLE SCOTS S
+A7D7 ; valid # 14.0 LATIN SMALL
LETTER MIDDLE SCOTS S
+A7D8 ; mapped ; A7D9 # 14.0 LATIN CAPITAL
LETTER SIGMOID S
+A7D9 ; valid # 14.0 LATIN SMALL
LETTER SIGMOID S
+A7DA..A7F1 ; disallowed # NA
<reserved-A7DA>..<reserved-A7F1>
+A7F2 ; mapped ; 0063 # 14.0 MODIFIER LETTER
CAPITAL C
+A7F3 ; mapped ; 0066 # 14.0 MODIFIER LETTER
CAPITAL F
+A7F4 ; mapped ; 0071 # 14.0 MODIFIER LETTER
CAPITAL Q
+A7F5 ; mapped ; A7F6 # 13.0 LATIN CAPITAL
LETTER REVERSED HALF H
+A7F6 ; valid # 13.0 LATIN SMALL
LETTER REVERSED HALF H
+A7F7 ; valid # 7.0 LATIN EPIGRAPHIC
LETTER SIDEWAYS I
+A7F8 ; mapped ; 0127 # 6.1 MODIFIER LETTER
CAPITAL H WITH STROKE
+A7F9 ; mapped ; 0153 # 6.1 MODIFIER LETTER
SMALL LIGATURE OE
+A7FA ; valid # 6.0 LATIN LETTER
SMALL CAPITAL TURNED M
+A7FB..A7FF ; valid # 5.1 LATIN EPIGRAPHIC
LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
+A800..A827 ; valid # 4.1 SYLOTI NAGRI
LETTER A..SYLOTI NAGRI VOWEL SIGN OO
+A828..A82B ; valid ; ; NV8 # 4.1 SYLOTI NAGRI
POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
+A82C ; valid # 13.0 SYLOTI NAGRI
SIGN ALTERNATE HASANTA
+A82D..A82F ; disallowed # NA
<reserved-A82D>..<reserved-A82F>
+A830..A839 ; valid ; ; NV8 # 5.2 NORTH INDIC
FRACTION ONE QUARTER..NORTH INDIC QUANTITY MARK
+A83A..A83F ; disallowed # NA
<reserved-A83A>..<reserved-A83F>
+A840..A873 ; valid # 5.0 PHAGS-PA LETTER
KA..PHAGS-PA LETTER CANDRABINDU
+A874..A877 ; valid ; ; NV8 # 5.0 PHAGS-PA SINGLE
HEAD MARK..PHAGS-PA MARK DOUBLE SHAD
+A878..A87F ; disallowed # NA
<reserved-A878>..<reserved-A87F>
+A880..A8C4 ; valid # 5.1 SAURASHTRA SIGN
ANUSVARA..SAURASHTRA SIGN VIRAMA
+A8C5 ; valid # 9.0 SAURASHTRA SIGN
CANDRABINDU
+A8C6..A8CD ; disallowed # NA
<reserved-A8C6>..<reserved-A8CD>
+A8CE..A8CF ; valid ; ; NV8 # 5.1 SAURASHTRA
DANDA..SAURASHTRA DOUBLE DANDA
+A8D0..A8D9 ; valid # 5.1 SAURASHTRA DIGIT
ZERO..SAURASHTRA DIGIT NINE
+A8DA..A8DF ; disallowed # NA
<reserved-A8DA>..<reserved-A8DF>
+A8E0..A8F7 ; valid # 5.2 COMBINING
DEVANAGARI DIGIT ZERO..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
+A8F8..A8FA ; valid ; ; NV8 # 5.2 DEVANAGARI SIGN
PUSHPIKA..DEVANAGARI CARET
+A8FB ; valid # 5.2 DEVANAGARI
HEADSTROKE
+A8FC ; valid ; ; NV8 # 8.0 DEVANAGARI SIGN
SIDDHAM
+A8FD ; valid # 8.0 DEVANAGARI JAIN
OM
+A8FE..A8FF ; valid # 11.0 DEVANAGARI
LETTER AY..DEVANAGARI VOWEL SIGN AY
+A900..A92D ; valid # 5.1 KAYAH LI DIGIT
ZERO..KAYAH LI TONE CALYA PLOPHU
+A92E..A92F ; valid ; ; NV8 # 5.1 KAYAH LI SIGN
CWI..KAYAH LI SIGN SHYA
+A930..A953 ; valid # 5.1 REJANG LETTER
KA..REJANG VIRAMA
+A954..A95E ; disallowed # NA
<reserved-A954>..<reserved-A95E>
+A95F ; valid ; ; NV8 # 5.1 REJANG SECTION
MARK
+A960..A97C ; valid ; ; NV8 # 5.2 HANGUL CHOSEONG
TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
+A97D..A97F ; disallowed # NA
<reserved-A97D>..<reserved-A97F>
+A980..A9C0 ; valid # 5.2 JAVANESE SIGN
PANYANGGA..JAVANESE PANGKON
+A9C1..A9CD ; valid ; ; NV8 # 5.2 JAVANESE LEFT
RERENGGAN..JAVANESE TURNED PADA PISELEH
+A9CE ; disallowed # NA <reserved-A9CE>
+A9CF..A9D9 ; valid # 5.2 JAVANESE
PANGRANGKEP..JAVANESE DIGIT NINE
+A9DA..A9DD ; disallowed # NA
<reserved-A9DA>..<reserved-A9DD>
+A9DE..A9DF ; valid ; ; NV8 # 5.2 JAVANESE PADA
TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
+A9E0..A9FE ; valid # 7.0 MYANMAR LETTER
SHAN GHA..MYANMAR LETTER TAI LAING BHA
+A9FF ; disallowed # NA <reserved-A9FF>
+AA00..AA36 ; valid # 5.1 CHAM LETTER
A..CHAM CONSONANT SIGN WA
+AA37..AA3F ; disallowed # NA
<reserved-AA37>..<reserved-AA3F>
+AA40..AA4D ; valid # 5.1 CHAM LETTER
FINAL K..CHAM CONSONANT SIGN FINAL H
+AA4E..AA4F ; disallowed # NA
<reserved-AA4E>..<reserved-AA4F>
+AA50..AA59 ; valid # 5.1 CHAM DIGIT
ZERO..CHAM DIGIT NINE
+AA5A..AA5B ; disallowed # NA
<reserved-AA5A>..<reserved-AA5B>
+AA5C..AA5F ; valid ; ; NV8 # 5.1 CHAM PUNCTUATION
SPIRAL..CHAM PUNCTUATION TRIPLE DANDA
+AA60..AA76 ; valid # 5.2 MYANMAR LETTER
KHAMTI GA..MYANMAR LOGOGRAM KHAMTI HM
+AA77..AA79 ; valid ; ; NV8 # 5.2 MYANMAR SYMBOL
AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
+AA7A..AA7B ; valid # 5.2 MYANMAR LETTER
AITON RA..MYANMAR SIGN PAO KAREN TONE
+AA7C..AA7F ; valid # 7.0 MYANMAR SIGN TAI
LAING TONE-2..MYANMAR LETTER SHWE PALAUNG SHA
+AA80..AAC2 ; valid # 5.2 TAI VIET LETTER
LOW KO..TAI VIET TONE MAI SONG
+AAC3..AADA ; disallowed # NA
<reserved-AAC3>..<reserved-AADA>
+AADB..AADD ; valid # 5.2 TAI VIET SYMBOL
KON..TAI VIET SYMBOL SAM
+AADE..AADF ; valid ; ; NV8 # 5.2 TAI VIET SYMBOL
HO HOI..TAI VIET SYMBOL KOI KOI
+AAE0..AAEF ; valid # 6.1 MEETEI MAYEK
LETTER E..MEETEI MAYEK VOWEL SIGN AAU
+AAF0..AAF1 ; valid ; ; NV8 # 6.1 MEETEI MAYEK
CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
+AAF2..AAF6 ; valid # 6.1 MEETEI MAYEK
ANJI..MEETEI MAYEK VIRAMA
+AAF7..AB00 ; disallowed # NA
<reserved-AAF7>..<reserved-AB00>
+AB01..AB06 ; valid # 6.0 ETHIOPIC
SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO
+AB07..AB08 ; disallowed # NA
<reserved-AB07>..<reserved-AB08>
+AB09..AB0E ; valid # 6.0 ETHIOPIC
SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
+AB0F..AB10 ; disallowed # NA
<reserved-AB0F>..<reserved-AB10>
+AB11..AB16 ; valid # 6.0 ETHIOPIC
SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
+AB17..AB1F ; disallowed # NA
<reserved-AB17>..<reserved-AB1F>
+AB20..AB26 ; valid # 6.0 ETHIOPIC
SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
+AB27 ; disallowed # NA <reserved-AB27>
+AB28..AB2E ; valid # 6.0 ETHIOPIC
SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB2F ; disallowed # NA <reserved-AB2F>
+AB30..AB5A ; valid # 7.0 LATIN SMALL
LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5B ; valid ; ; NV8 # 7.0 MODIFIER BREVE
WITH INVERTED BREVE
+AB5C ; mapped ; A727 # 7.0 MODIFIER LETTER
SMALL HENG
+AB5D ; mapped ; AB37 # 7.0 MODIFIER LETTER
SMALL L WITH INVERTED LAZY S
+AB5E ; mapped ; 026B # 7.0 MODIFIER LETTER
SMALL L WITH MIDDLE TILDE
+AB5F ; mapped ; AB52 # 7.0 MODIFIER LETTER
SMALL U WITH LEFT HOOK
+AB60..AB63 ; valid # 8.0 LATIN SMALL
LETTER SAKHA YAT..LATIN SMALL LETTER UO
+AB64..AB65 ; valid # 7.0 LATIN SMALL
LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
+AB66..AB67 ; valid # 12.0 LATIN SMALL
LETTER DZ DIGRAPH WITH RETROFLEX HOOK..LATIN SMALL LETTER TS DIGRAPH WITH
RETROFLEX HOOK
+AB68 ; valid # 13.0 LATIN SMALL
LETTER TURNED R WITH MIDDLE TILDE
+AB69 ; mapped ; 028D # 13.0 MODIFIER LETTER
SMALL TURNED W
+AB6A..AB6B ; valid ; ; NV8 # 13.0 MODIFIER LETTER
LEFT TACK..MODIFIER LETTER RIGHT TACK
+AB6C..AB6F ; disallowed # NA
<reserved-AB6C>..<reserved-AB6F>
+AB70 ; mapped ; 13A0 # 8.0 CHEROKEE SMALL
LETTER A
+AB71 ; mapped ; 13A1 # 8.0 CHEROKEE SMALL
LETTER E
+AB72 ; mapped ; 13A2 # 8.0 CHEROKEE SMALL
LETTER I
+AB73 ; mapped ; 13A3 # 8.0 CHEROKEE SMALL
LETTER O
+AB74 ; mapped ; 13A4 # 8.0 CHEROKEE SMALL
LETTER U
+AB75 ; mapped ; 13A5 # 8.0 CHEROKEE SMALL
LETTER V
+AB76 ; mapped ; 13A6 # 8.0 CHEROKEE SMALL
LETTER GA
+AB77 ; mapped ; 13A7 # 8.0 CHEROKEE SMALL
LETTER KA
+AB78 ; mapped ; 13A8 # 8.0 CHEROKEE SMALL
LETTER GE
+AB79 ; mapped ; 13A9 # 8.0 CHEROKEE SMALL
LETTER GI
+AB7A ; mapped ; 13AA # 8.0 CHEROKEE SMALL
LETTER GO
+AB7B ; mapped ; 13AB # 8.0 CHEROKEE SMALL
LETTER GU
+AB7C ; mapped ; 13AC # 8.0 CHEROKEE SMALL
LETTER GV
+AB7D ; mapped ; 13AD # 8.0 CHEROKEE SMALL
LETTER HA
+AB7E ; mapped ; 13AE # 8.0 CHEROKEE SMALL
LETTER HE
+AB7F ; mapped ; 13AF # 8.0 CHEROKEE SMALL
LETTER HI
+AB80 ; mapped ; 13B0 # 8.0 CHEROKEE SMALL
LETTER HO
+AB81 ; mapped ; 13B1 # 8.0 CHEROKEE SMALL
LETTER HU
+AB82 ; mapped ; 13B2 # 8.0 CHEROKEE SMALL
LETTER HV
+AB83 ; mapped ; 13B3 # 8.0 CHEROKEE SMALL
LETTER LA
+AB84 ; mapped ; 13B4 # 8.0 CHEROKEE SMALL
LETTER LE
+AB85 ; mapped ; 13B5 # 8.0 CHEROKEE SMALL
LETTER LI
+AB86 ; mapped ; 13B6 # 8.0 CHEROKEE SMALL
LETTER LO
+AB87 ; mapped ; 13B7 # 8.0 CHEROKEE SMALL
LETTER LU
+AB88 ; mapped ; 13B8 # 8.0 CHEROKEE SMALL
LETTER LV
+AB89 ; mapped ; 13B9 # 8.0 CHEROKEE SMALL
LETTER MA
+AB8A ; mapped ; 13BA # 8.0 CHEROKEE SMALL
LETTER ME
+AB8B ; mapped ; 13BB # 8.0 CHEROKEE SMALL
LETTER MI
+AB8C ; mapped ; 13BC # 8.0 CHEROKEE SMALL
LETTER MO
+AB8D ; mapped ; 13BD # 8.0 CHEROKEE SMALL
LETTER MU
+AB8E ; mapped ; 13BE # 8.0 CHEROKEE SMALL
LETTER NA
+AB8F ; mapped ; 13BF # 8.0 CHEROKEE SMALL
LETTER HNA
+AB90 ; mapped ; 13C0 # 8.0 CHEROKEE SMALL
LETTER NAH
+AB91 ; mapped ; 13C1 # 8.0 CHEROKEE SMALL
LETTER NE
+AB92 ; mapped ; 13C2 # 8.0 CHEROKEE SMALL
LETTER NI
+AB93 ; mapped ; 13C3 # 8.0 CHEROKEE SMALL
LETTER NO
+AB94 ; mapped ; 13C4 # 8.0 CHEROKEE SMALL
LETTER NU
+AB95 ; mapped ; 13C5 # 8.0 CHEROKEE SMALL
LETTER NV
+AB96 ; mapped ; 13C6 # 8.0 CHEROKEE SMALL
LETTER QUA
+AB97 ; mapped ; 13C7 # 8.0 CHEROKEE SMALL
LETTER QUE
+AB98 ; mapped ; 13C8 # 8.0 CHEROKEE SMALL
LETTER QUI
+AB99 ; mapped ; 13C9 # 8.0 CHEROKEE SMALL
LETTER QUO
+AB9A ; mapped ; 13CA # 8.0 CHEROKEE SMALL
LETTER QUU
+AB9B ; mapped ; 13CB # 8.0 CHEROKEE SMALL
LETTER QUV
+AB9C ; mapped ; 13CC # 8.0 CHEROKEE SMALL
LETTER SA
+AB9D ; mapped ; 13CD # 8.0 CHEROKEE SMALL
LETTER S
+AB9E ; mapped ; 13CE # 8.0 CHEROKEE SMALL
LETTER SE
+AB9F ; mapped ; 13CF # 8.0 CHEROKEE SMALL
LETTER SI
+ABA0 ; mapped ; 13D0 # 8.0 CHEROKEE SMALL
LETTER SO
+ABA1 ; mapped ; 13D1 # 8.0 CHEROKEE SMALL
LETTER SU
+ABA2 ; mapped ; 13D2 # 8.0 CHEROKEE SMALL
LETTER SV
+ABA3 ; mapped ; 13D3 # 8.0 CHEROKEE SMALL
LETTER DA
+ABA4 ; mapped ; 13D4 # 8.0 CHEROKEE SMALL
LETTER TA
+ABA5 ; mapped ; 13D5 # 8.0 CHEROKEE SMALL
LETTER DE
+ABA6 ; mapped ; 13D6 # 8.0 CHEROKEE SMALL
LETTER TE
+ABA7 ; mapped ; 13D7 # 8.0 CHEROKEE SMALL
LETTER DI
+ABA8 ; mapped ; 13D8 # 8.0 CHEROKEE SMALL
LETTER TI
+ABA9 ; mapped ; 13D9 # 8.0 CHEROKEE SMALL
LETTER DO
+ABAA ; mapped ; 13DA # 8.0 CHEROKEE SMALL
LETTER DU
+ABAB ; mapped ; 13DB # 8.0 CHEROKEE SMALL
LETTER DV
+ABAC ; mapped ; 13DC # 8.0 CHEROKEE SMALL
LETTER DLA
+ABAD ; mapped ; 13DD # 8.0 CHEROKEE SMALL
LETTER TLA
+ABAE ; mapped ; 13DE # 8.0 CHEROKEE SMALL
LETTER TLE
+ABAF ; mapped ; 13DF # 8.0 CHEROKEE SMALL
LETTER TLI
+ABB0 ; mapped ; 13E0 # 8.0 CHEROKEE SMALL
LETTER TLO
+ABB1 ; mapped ; 13E1 # 8.0 CHEROKEE SMALL
LETTER TLU
+ABB2 ; mapped ; 13E2 # 8.0 CHEROKEE SMALL
LETTER TLV
+ABB3 ; mapped ; 13E3 # 8.0 CHEROKEE SMALL
LETTER TSA
+ABB4 ; mapped ; 13E4 # 8.0 CHEROKEE SMALL
LETTER TSE
+ABB5 ; mapped ; 13E5 # 8.0 CHEROKEE SMALL
LETTER TSI
+ABB6 ; mapped ; 13E6 # 8.0 CHEROKEE SMALL
LETTER TSO
+ABB7 ; mapped ; 13E7 # 8.0 CHEROKEE SMALL
LETTER TSU
+ABB8 ; mapped ; 13E8 # 8.0 CHEROKEE SMALL
LETTER TSV
+ABB9 ; mapped ; 13E9 # 8.0 CHEROKEE SMALL
LETTER WA
+ABBA ; mapped ; 13EA # 8.0 CHEROKEE SMALL
LETTER WE
+ABBB ; mapped ; 13EB # 8.0 CHEROKEE SMALL
LETTER WI
+ABBC ; mapped ; 13EC # 8.0 CHEROKEE SMALL
LETTER WO
+ABBD ; mapped ; 13ED # 8.0 CHEROKEE SMALL
LETTER WU
+ABBE ; mapped ; 13EE # 8.0 CHEROKEE SMALL
LETTER WV
+ABBF ; mapped ; 13EF # 8.0 CHEROKEE SMALL
LETTER YA
+ABC0..ABEA ; valid # 5.2 MEETEI MAYEK
LETTER KOK..MEETEI MAYEK VOWEL SIGN NUNG
+ABEB ; valid ; ; NV8 # 5.2 MEETEI MAYEK
CHEIKHEI
+ABEC..ABED ; valid # 5.2 MEETEI MAYEK LUM
IYEK..MEETEI MAYEK APUN IYEK
+ABEE..ABEF ; disallowed # NA
<reserved-ABEE>..<reserved-ABEF>
+ABF0..ABF9 ; valid # 5.2 MEETEI MAYEK
DIGIT ZERO..MEETEI MAYEK DIGIT NINE
+ABFA..ABFF ; disallowed # NA
<reserved-ABFA>..<reserved-ABFF>
+AC00..D7A3 ; valid # 2.0 HANGUL SYLLABLE
GA..HANGUL SYLLABLE HIH
+D7A4..D7AF ; disallowed # NA
<reserved-D7A4>..<reserved-D7AF>
+D7B0..D7C6 ; valid ; ; NV8 # 5.2 HANGUL JUNGSEONG
O-YEO..HANGUL JUNGSEONG ARAEA-E
+D7C7..D7CA ; disallowed # NA
<reserved-D7C7>..<reserved-D7CA>
+D7CB..D7FB ; valid ; ; NV8 # 5.2 HANGUL JONGSEONG
NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
+D7FC..D7FF ; disallowed # NA
<reserved-D7FC>..<reserved-D7FF>
+D800..DFFF ; disallowed # 2.0
<surrogate-D800>..<surrogate-DFFF>
+E000..F8FF ; disallowed # 1.1
<private-use-E000>..<private-use-F8FF>
+F900 ; mapped ; 8C48 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F900
+F901 ; mapped ; 66F4 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F901
+F902 ; mapped ; 8ECA # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F902
+F903 ; mapped ; 8CC8 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F903
+F904 ; mapped ; 6ED1 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F904
+F905 ; mapped ; 4E32 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F905
+F906 ; mapped ; 53E5 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F906
+F907..F908 ; mapped ; 9F9C # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F907..CJK COMPATIBILITY IDEOGRAPH-F908
+F909 ; mapped ; 5951 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F909
+F90A ; mapped ; 91D1 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F90A
+F90B ; mapped ; 5587 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F90B
+F90C ; mapped ; 5948 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F90C
+F90D ; mapped ; 61F6 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F90D
+F90E ; mapped ; 7669 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F90E
+F90F ; mapped ; 7F85 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F90F
+F910 ; mapped ; 863F # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F910
+F911 ; mapped ; 87BA # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F911
+F912 ; mapped ; 88F8 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F912
+F913 ; mapped ; 908F # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F913
+F914 ; mapped ; 6A02 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F914
+F915 ; mapped ; 6D1B # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F915
+F916 ; mapped ; 70D9 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F916
+F917 ; mapped ; 73DE # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F917
+F918 ; mapped ; 843D # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F918
+F919 ; mapped ; 916A # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F919
+F91A ; mapped ; 99F1 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F91A
+F91B ; mapped ; 4E82 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F91B
+F91C ; mapped ; 5375 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F91C
+F91D ; mapped ; 6B04 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F91D
+F91E ; mapped ; 721B # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F91E
+F91F ; mapped ; 862D # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F91F
+F920 ; mapped ; 9E1E # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F920
+F921 ; mapped ; 5D50 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F921
+F922 ; mapped ; 6FEB # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F922
+F923 ; mapped ; 85CD # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F923
+F924 ; mapped ; 8964 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F924
+F925 ; mapped ; 62C9 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F925
+F926 ; mapped ; 81D8 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F926
+F927 ; mapped ; 881F # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F927
+F928 ; mapped ; 5ECA # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F928
+F929 ; mapped ; 6717 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F929
+F92A ; mapped ; 6D6A # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F92A
+F92B ; mapped ; 72FC # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F92B
+F92C ; mapped ; 90CE # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F92C
+F92D ; mapped ; 4F86 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F92D
+F92E ; mapped ; 51B7 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F92E
+F92F ; mapped ; 52DE # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F92F
+F930 ; mapped ; 64C4 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F930
+F931 ; mapped ; 6AD3 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F931
+F932 ; mapped ; 7210 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F932
+F933 ; mapped ; 76E7 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F933
+F934 ; mapped ; 8001 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F934
+F935 ; mapped ; 8606 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F935
+F936 ; mapped ; 865C # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F936
+F937 ; mapped ; 8DEF # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F937
+F938 ; mapped ; 9732 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F938
+F939 ; mapped ; 9B6F # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F939
+F93A ; mapped ; 9DFA # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F93A
+F93B ; mapped ; 788C # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F93B
+F93C ; mapped ; 797F # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F93C
+F93D ; mapped ; 7DA0 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F93D
+F93E ; mapped ; 83C9 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F93E
+F93F ; mapped ; 9304 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F93F
+F940 ; mapped ; 9E7F # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F940
+F941 ; mapped ; 8AD6 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F941
+F942 ; mapped ; 58DF # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F942
+F943 ; mapped ; 5F04 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F943
+F944 ; mapped ; 7C60 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F944
+F945 ; mapped ; 807E # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F945
+F946 ; mapped ; 7262 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F946
+F947 ; mapped ; 78CA # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F947
+F948 ; mapped ; 8CC2 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F948
+F949 ; mapped ; 96F7 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F949
+F94A ; mapped ; 58D8 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F94A
+F94B ; mapped ; 5C62 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F94B
+F94C ; mapped ; 6A13 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F94C
+F94D ; mapped ; 6DDA # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F94D
+F94E ; mapped ; 6F0F # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F94E
+F94F ; mapped ; 7D2F # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F94F
+F950 ; mapped ; 7E37 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F950
+F951 ; mapped ; 964B # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F951
+F952 ; mapped ; 52D2 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F952
+F953 ; mapped ; 808B # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F953
+F954 ; mapped ; 51DC # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F954
+F955 ; mapped ; 51CC # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F955
+F956 ; mapped ; 7A1C # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F956
+F957 ; mapped ; 7DBE # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F957
+F958 ; mapped ; 83F1 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F958
+F959 ; mapped ; 9675 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F959
+F95A ; mapped ; 8B80 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F95A
+F95B ; mapped ; 62CF # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F95B
+F95C ; mapped ; 6A02 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F95C
+F95D ; mapped ; 8AFE # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F95D
+F95E ; mapped ; 4E39 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F95E
+F95F ; mapped ; 5BE7 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F95F
+F960 ; mapped ; 6012 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F960
+F961 ; mapped ; 7387 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F961
+F962 ; mapped ; 7570 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F962
+F963 ; mapped ; 5317 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F963
+F964 ; mapped ; 78FB # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F964
+F965 ; mapped ; 4FBF # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F965
+F966 ; mapped ; 5FA9 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F966
+F967 ; mapped ; 4E0D # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F967
+F968 ; mapped ; 6CCC # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F968
+F969 ; mapped ; 6578 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F969
+F96A ; mapped ; 7D22 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F96A
+F96B ; mapped ; 53C3 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F96B
+F96C ; mapped ; 585E # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F96C
+F96D ; mapped ; 7701 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F96D
+F96E ; mapped ; 8449 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F96E
+F96F ; mapped ; 8AAA # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F96F
+F970 ; mapped ; 6BBA # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F970
+F971 ; mapped ; 8FB0 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F971
+F972 ; mapped ; 6C88 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F972
+F973 ; mapped ; 62FE # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F973
+F974 ; mapped ; 82E5 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F974
+F975 ; mapped ; 63A0 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F975
+F976 ; mapped ; 7565 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F976
+F977 ; mapped ; 4EAE # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F977
+F978 ; mapped ; 5169 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F978
+F979 ; mapped ; 51C9 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F979
+F97A ; mapped ; 6881 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F97A
+F97B ; mapped ; 7CE7 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F97B
+F97C ; mapped ; 826F # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F97C
+F97D ; mapped ; 8AD2 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F97D
+F97E ; mapped ; 91CF # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F97E
+F97F ; mapped ; 52F5 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F97F
+F980 ; mapped ; 5442 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F980
+F981 ; mapped ; 5973 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F981
+F982 ; mapped ; 5EEC # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F982
+F983 ; mapped ; 65C5 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F983
+F984 ; mapped ; 6FFE # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F984
+F985 ; mapped ; 792A # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F985
+F986 ; mapped ; 95AD # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F986
+F987 ; mapped ; 9A6A # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F987
+F988 ; mapped ; 9E97 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F988
+F989 ; mapped ; 9ECE # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F989
+F98A ; mapped ; 529B # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F98A
+F98B ; mapped ; 66C6 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F98B
+F98C ; mapped ; 6B77 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F98C
+F98D ; mapped ; 8F62 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F98D
+F98E ; mapped ; 5E74 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F98E
+F98F ; mapped ; 6190 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F98F
+F990 ; mapped ; 6200 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F990
+F991 ; mapped ; 649A # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F991
+F992 ; mapped ; 6F23 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F992
+F993 ; mapped ; 7149 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F993
+F994 ; mapped ; 7489 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F994
+F995 ; mapped ; 79CA # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F995
+F996 ; mapped ; 7DF4 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F996
+F997 ; mapped ; 806F # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F997
+F998 ; mapped ; 8F26 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F998
+F999 ; mapped ; 84EE # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F999
+F99A ; mapped ; 9023 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F99A
+F99B ; mapped ; 934A # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F99B
+F99C ; mapped ; 5217 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F99C
+F99D ; mapped ; 52A3 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F99D
+F99E ; mapped ; 54BD # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F99E
+F99F ; mapped ; 70C8 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F99F
+F9A0 ; mapped ; 88C2 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9A0
+F9A1 ; mapped ; 8AAA # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9A1
+F9A2 ; mapped ; 5EC9 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9A2
+F9A3 ; mapped ; 5FF5 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9A3
+F9A4 ; mapped ; 637B # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9A4
+F9A5 ; mapped ; 6BAE # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9A5
+F9A6 ; mapped ; 7C3E # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9A6
+F9A7 ; mapped ; 7375 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9A7
+F9A8 ; mapped ; 4EE4 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9A8
+F9A9 ; mapped ; 56F9 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9A9
+F9AA ; mapped ; 5BE7 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9AA
+F9AB ; mapped ; 5DBA # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9AB
+F9AC ; mapped ; 601C # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9AC
+F9AD ; mapped ; 73B2 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9AD
+F9AE ; mapped ; 7469 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9AE
+F9AF ; mapped ; 7F9A # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9AF
+F9B0 ; mapped ; 8046 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9B0
+F9B1 ; mapped ; 9234 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9B1
+F9B2 ; mapped ; 96F6 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9B2
+F9B3 ; mapped ; 9748 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9B3
+F9B4 ; mapped ; 9818 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9B4
+F9B5 ; mapped ; 4F8B # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9B5
+F9B6 ; mapped ; 79AE # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9B6
+F9B7 ; mapped ; 91B4 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9B7
+F9B8 ; mapped ; 96B8 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9B8
+F9B9 ; mapped ; 60E1 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9B9
+F9BA ; mapped ; 4E86 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9BA
+F9BB ; mapped ; 50DA # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9BB
+F9BC ; mapped ; 5BEE # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9BC
+F9BD ; mapped ; 5C3F # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9BD
+F9BE ; mapped ; 6599 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9BE
+F9BF ; mapped ; 6A02 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9BF
+F9C0 ; mapped ; 71CE # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9C0
+F9C1 ; mapped ; 7642 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9C1
+F9C2 ; mapped ; 84FC # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9C2
+F9C3 ; mapped ; 907C # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9C3
+F9C4 ; mapped ; 9F8D # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9C4
+F9C5 ; mapped ; 6688 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9C5
+F9C6 ; mapped ; 962E # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9C6
+F9C7 ; mapped ; 5289 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9C7
+F9C8 ; mapped ; 677B # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9C8
+F9C9 ; mapped ; 67F3 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9C9
+F9CA ; mapped ; 6D41 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9CA
+F9CB ; mapped ; 6E9C # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9CB
+F9CC ; mapped ; 7409 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9CC
+F9CD ; mapped ; 7559 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9CD
+F9CE ; mapped ; 786B # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9CE
+F9CF ; mapped ; 7D10 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9CF
+F9D0 ; mapped ; 985E # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9D0
+F9D1 ; mapped ; 516D # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9D1
+F9D2 ; mapped ; 622E # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9D2
+F9D3 ; mapped ; 9678 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9D3
+F9D4 ; mapped ; 502B # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9D4
+F9D5 ; mapped ; 5D19 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9D5
+F9D6 ; mapped ; 6DEA # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9D6
+F9D7 ; mapped ; 8F2A # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9D7
+F9D8 ; mapped ; 5F8B # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9D8
+F9D9 ; mapped ; 6144 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9D9
+F9DA ; mapped ; 6817 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9DA
+F9DB ; mapped ; 7387 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9DB
+F9DC ; mapped ; 9686 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9DC
+F9DD ; mapped ; 5229 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9DD
+F9DE ; mapped ; 540F # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9DE
+F9DF ; mapped ; 5C65 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9DF
+F9E0 ; mapped ; 6613 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9E0
+F9E1 ; mapped ; 674E # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9E1
+F9E2 ; mapped ; 68A8 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9E2
+F9E3 ; mapped ; 6CE5 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9E3
+F9E4 ; mapped ; 7406 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9E4
+F9E5 ; mapped ; 75E2 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9E5
+F9E6 ; mapped ; 7F79 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9E6
+F9E7 ; mapped ; 88CF # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9E7
+F9E8 ; mapped ; 88E1 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9E8
+F9E9 ; mapped ; 91CC # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9E9
+F9EA ; mapped ; 96E2 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9EA
+F9EB ; mapped ; 533F # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9EB
+F9EC ; mapped ; 6EBA # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9EC
+F9ED ; mapped ; 541D # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9ED
+F9EE ; mapped ; 71D0 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9EE
+F9EF ; mapped ; 7498 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9EF
+F9F0 ; mapped ; 85FA # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9F0
+F9F1 ; mapped ; 96A3 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9F1
+F9F2 ; mapped ; 9C57 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9F2
+F9F3 ; mapped ; 9E9F # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9F3
+F9F4 ; mapped ; 6797 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9F4
+F9F5 ; mapped ; 6DCB # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9F5
+F9F6 ; mapped ; 81E8 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9F6
+F9F7 ; mapped ; 7ACB # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9F7
+F9F8 ; mapped ; 7B20 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9F8
+F9F9 ; mapped ; 7C92 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9F9
+F9FA ; mapped ; 72C0 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9FA
+F9FB ; mapped ; 7099 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9FB
+F9FC ; mapped ; 8B58 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9FC
+F9FD ; mapped ; 4EC0 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9FD
+F9FE ; mapped ; 8336 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9FE
+F9FF ; mapped ; 523A # 1.1 CJK
COMPATIBILITY IDEOGRAPH-F9FF
+FA00 ; mapped ; 5207 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA00
+FA01 ; mapped ; 5EA6 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA01
+FA02 ; mapped ; 62D3 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA02
+FA03 ; mapped ; 7CD6 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA03
+FA04 ; mapped ; 5B85 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA04
+FA05 ; mapped ; 6D1E # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA05
+FA06 ; mapped ; 66B4 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA06
+FA07 ; mapped ; 8F3B # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA07
+FA08 ; mapped ; 884C # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA08
+FA09 ; mapped ; 964D # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA09
+FA0A ; mapped ; 898B # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA0A
+FA0B ; mapped ; 5ED3 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA0B
+FA0C ; mapped ; 5140 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA0C
+FA0D ; mapped ; 55C0 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA0D
+FA0E..FA0F ; valid # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA0E..CJK COMPATIBILITY IDEOGRAPH-FA0F
+FA10 ; mapped ; 585A # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA10
+FA11 ; valid # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA11
+FA12 ; mapped ; 6674 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA12
+FA13..FA14 ; valid # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA13..CJK COMPATIBILITY IDEOGRAPH-FA14
+FA15 ; mapped ; 51DE # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA15
+FA16 ; mapped ; 732A # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA16
+FA17 ; mapped ; 76CA # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA17
+FA18 ; mapped ; 793C # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA18
+FA19 ; mapped ; 795E # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA19
+FA1A ; mapped ; 7965 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA1A
+FA1B ; mapped ; 798F # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA1B
+FA1C ; mapped ; 9756 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA1C
+FA1D ; mapped ; 7CBE # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA1D
+FA1E ; mapped ; 7FBD # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA1E
+FA1F ; valid # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA1F
+FA20 ; mapped ; 8612 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA20
+FA21 ; valid # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA21
+FA22 ; mapped ; 8AF8 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA22
+FA23..FA24 ; valid # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA23..CJK COMPATIBILITY IDEOGRAPH-FA24
+FA25 ; mapped ; 9038 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA25
+FA26 ; mapped ; 90FD # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA26
+FA27..FA29 ; valid # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA27..CJK COMPATIBILITY IDEOGRAPH-FA29
+FA2A ; mapped ; 98EF # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA2A
+FA2B ; mapped ; 98FC # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA2B
+FA2C ; mapped ; 9928 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA2C
+FA2D ; mapped ; 9DB4 # 1.1 CJK
COMPATIBILITY IDEOGRAPH-FA2D
+FA2E ; mapped ; 90DE # 6.1 CJK
COMPATIBILITY IDEOGRAPH-FA2E
+FA2F ; mapped ; 96B7 # 6.1 CJK
COMPATIBILITY IDEOGRAPH-FA2F
+FA30 ; mapped ; 4FAE # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA30
+FA31 ; mapped ; 50E7 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA31
+FA32 ; mapped ; 514D # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA32
+FA33 ; mapped ; 52C9 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA33
+FA34 ; mapped ; 52E4 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA34
+FA35 ; mapped ; 5351 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA35
+FA36 ; mapped ; 559D # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA36
+FA37 ; mapped ; 5606 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA37
+FA38 ; mapped ; 5668 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA38
+FA39 ; mapped ; 5840 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA39
+FA3A ; mapped ; 58A8 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA3A
+FA3B ; mapped ; 5C64 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA3B
+FA3C ; mapped ; 5C6E # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA3C
+FA3D ; mapped ; 6094 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA3D
+FA3E ; mapped ; 6168 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA3E
+FA3F ; mapped ; 618E # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA3F
+FA40 ; mapped ; 61F2 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA40
+FA41 ; mapped ; 654F # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA41
+FA42 ; mapped ; 65E2 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA42
+FA43 ; mapped ; 6691 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA43
+FA44 ; mapped ; 6885 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA44
+FA45 ; mapped ; 6D77 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA45
+FA46 ; mapped ; 6E1A # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA46
+FA47 ; mapped ; 6F22 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA47
+FA48 ; mapped ; 716E # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA48
+FA49 ; mapped ; 722B # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA49
+FA4A ; mapped ; 7422 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA4A
+FA4B ; mapped ; 7891 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA4B
+FA4C ; mapped ; 793E # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA4C
+FA4D ; mapped ; 7949 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA4D
+FA4E ; mapped ; 7948 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA4E
+FA4F ; mapped ; 7950 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA4F
+FA50 ; mapped ; 7956 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA50
+FA51 ; mapped ; 795D # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA51
+FA52 ; mapped ; 798D # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA52
+FA53 ; mapped ; 798E # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA53
+FA54 ; mapped ; 7A40 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA54
+FA55 ; mapped ; 7A81 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA55
+FA56 ; mapped ; 7BC0 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA56
+FA57 ; mapped ; 7DF4 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA57
+FA58 ; mapped ; 7E09 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA58
+FA59 ; mapped ; 7E41 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA59
+FA5A ; mapped ; 7F72 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA5A
+FA5B ; mapped ; 8005 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA5B
+FA5C ; mapped ; 81ED # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA5C
+FA5D..FA5E ; mapped ; 8279 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA5D..CJK COMPATIBILITY IDEOGRAPH-FA5E
+FA5F ; mapped ; 8457 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA5F
+FA60 ; mapped ; 8910 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA60
+FA61 ; mapped ; 8996 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA61
+FA62 ; mapped ; 8B01 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA62
+FA63 ; mapped ; 8B39 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA63
+FA64 ; mapped ; 8CD3 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA64
+FA65 ; mapped ; 8D08 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA65
+FA66 ; mapped ; 8FB6 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA66
+FA67 ; mapped ; 9038 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA67
+FA68 ; mapped ; 96E3 # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA68
+FA69 ; mapped ; 97FF # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA69
+FA6A ; mapped ; 983B # 3.2 CJK
COMPATIBILITY IDEOGRAPH-FA6A
+FA6B ; mapped ; 6075 # 5.2 CJK
COMPATIBILITY IDEOGRAPH-FA6B
+FA6C ; mapped ; 242EE # 5.2 CJK
COMPATIBILITY IDEOGRAPH-FA6C
+FA6D ; mapped ; 8218 # 5.2 CJK
COMPATIBILITY IDEOGRAPH-FA6D
+FA6E..FA6F ; disallowed # NA
<reserved-FA6E>..<reserved-FA6F>
+FA70 ; mapped ; 4E26 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA70
+FA71 ; mapped ; 51B5 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA71
+FA72 ; mapped ; 5168 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA72
+FA73 ; mapped ; 4F80 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA73
+FA74 ; mapped ; 5145 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA74
+FA75 ; mapped ; 5180 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA75
+FA76 ; mapped ; 52C7 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA76
+FA77 ; mapped ; 52FA # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA77
+FA78 ; mapped ; 559D # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA78
+FA79 ; mapped ; 5555 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA79
+FA7A ; mapped ; 5599 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA7A
+FA7B ; mapped ; 55E2 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA7B
+FA7C ; mapped ; 585A # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA7C
+FA7D ; mapped ; 58B3 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA7D
+FA7E ; mapped ; 5944 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA7E
+FA7F ; mapped ; 5954 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA7F
+FA80 ; mapped ; 5A62 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA80
+FA81 ; mapped ; 5B28 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA81
+FA82 ; mapped ; 5ED2 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA82
+FA83 ; mapped ; 5ED9 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA83
+FA84 ; mapped ; 5F69 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA84
+FA85 ; mapped ; 5FAD # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA85
+FA86 ; mapped ; 60D8 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA86
+FA87 ; mapped ; 614E # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA87
+FA88 ; mapped ; 6108 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA88
+FA89 ; mapped ; 618E # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA89
+FA8A ; mapped ; 6160 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA8A
+FA8B ; mapped ; 61F2 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA8B
+FA8C ; mapped ; 6234 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA8C
+FA8D ; mapped ; 63C4 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA8D
+FA8E ; mapped ; 641C # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA8E
+FA8F ; mapped ; 6452 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA8F
+FA90 ; mapped ; 6556 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA90
+FA91 ; mapped ; 6674 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA91
+FA92 ; mapped ; 6717 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA92
+FA93 ; mapped ; 671B # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA93
+FA94 ; mapped ; 6756 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA94
+FA95 ; mapped ; 6B79 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA95
+FA96 ; mapped ; 6BBA # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA96
+FA97 ; mapped ; 6D41 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA97
+FA98 ; mapped ; 6EDB # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA98
+FA99 ; mapped ; 6ECB # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA99
+FA9A ; mapped ; 6F22 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA9A
+FA9B ; mapped ; 701E # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA9B
+FA9C ; mapped ; 716E # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA9C
+FA9D ; mapped ; 77A7 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA9D
+FA9E ; mapped ; 7235 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA9E
+FA9F ; mapped ; 72AF # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FA9F
+FAA0 ; mapped ; 732A # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAA0
+FAA1 ; mapped ; 7471 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAA1
+FAA2 ; mapped ; 7506 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAA2
+FAA3 ; mapped ; 753B # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAA3
+FAA4 ; mapped ; 761D # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAA4
+FAA5 ; mapped ; 761F # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAA5
+FAA6 ; mapped ; 76CA # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAA6
+FAA7 ; mapped ; 76DB # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAA7
+FAA8 ; mapped ; 76F4 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAA8
+FAA9 ; mapped ; 774A # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAA9
+FAAA ; mapped ; 7740 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAAA
+FAAB ; mapped ; 78CC # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAAB
+FAAC ; mapped ; 7AB1 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAAC
+FAAD ; mapped ; 7BC0 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAAD
+FAAE ; mapped ; 7C7B # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAAE
+FAAF ; mapped ; 7D5B # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAAF
+FAB0 ; mapped ; 7DF4 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAB0
+FAB1 ; mapped ; 7F3E # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAB1
+FAB2 ; mapped ; 8005 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAB2
+FAB3 ; mapped ; 8352 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAB3
+FAB4 ; mapped ; 83EF # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAB4
+FAB5 ; mapped ; 8779 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAB5
+FAB6 ; mapped ; 8941 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAB6
+FAB7 ; mapped ; 8986 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAB7
+FAB8 ; mapped ; 8996 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAB8
+FAB9 ; mapped ; 8ABF # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAB9
+FABA ; mapped ; 8AF8 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FABA
+FABB ; mapped ; 8ACB # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FABB
+FABC ; mapped ; 8B01 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FABC
+FABD ; mapped ; 8AFE # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FABD
+FABE ; mapped ; 8AED # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FABE
+FABF ; mapped ; 8B39 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FABF
+FAC0 ; mapped ; 8B8A # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAC0
+FAC1 ; mapped ; 8D08 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAC1
+FAC2 ; mapped ; 8F38 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAC2
+FAC3 ; mapped ; 9072 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAC3
+FAC4 ; mapped ; 9199 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAC4
+FAC5 ; mapped ; 9276 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAC5
+FAC6 ; mapped ; 967C # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAC6
+FAC7 ; mapped ; 96E3 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAC7
+FAC8 ; mapped ; 9756 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAC8
+FAC9 ; mapped ; 97DB # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAC9
+FACA ; mapped ; 97FF # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FACA
+FACB ; mapped ; 980B # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FACB
+FACC ; mapped ; 983B # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FACC
+FACD ; mapped ; 9B12 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FACD
+FACE ; mapped ; 9F9C # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FACE
+FACF ; mapped ; 2284A # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FACF
+FAD0 ; mapped ; 22844 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAD0
+FAD1 ; mapped ; 233D5 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAD1
+FAD2 ; mapped ; 3B9D # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAD2
+FAD3 ; mapped ; 4018 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAD3
+FAD4 ; mapped ; 4039 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAD4
+FAD5 ; mapped ; 25249 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAD5
+FAD6 ; mapped ; 25CD0 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAD6
+FAD7 ; mapped ; 27ED3 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAD7
+FAD8 ; mapped ; 9F43 # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAD8
+FAD9 ; mapped ; 9F8E # 4.1 CJK
COMPATIBILITY IDEOGRAPH-FAD9
+FADA..FAFF ; disallowed # NA
<reserved-FADA>..<reserved-FAFF>
+FB00 ; mapped ; 0066 0066 # 1.1 LATIN SMALL
LIGATURE FF
+FB01 ; mapped ; 0066 0069 # 1.1 LATIN SMALL
LIGATURE FI
+FB02 ; mapped ; 0066 006C # 1.1 LATIN SMALL
LIGATURE FL
+FB03 ; mapped ; 0066 0066 0069 #1.1 LATIN SMALL
LIGATURE FFI
+FB04 ; mapped ; 0066 0066 006C #1.1 LATIN SMALL
LIGATURE FFL
+FB05..FB06 ; mapped ; 0073 0074 # 1.1 LATIN SMALL
LIGATURE LONG S T..LATIN SMALL LIGATURE ST
+FB07..FB12 ; disallowed # NA
<reserved-FB07>..<reserved-FB12>
+FB13 ; mapped ; 0574 0576 # 1.1 ARMENIAN SMALL
LIGATURE MEN NOW
+FB14 ; mapped ; 0574 0565 # 1.1 ARMENIAN SMALL
LIGATURE MEN ECH
+FB15 ; mapped ; 0574 056B # 1.1 ARMENIAN SMALL
LIGATURE MEN INI
+FB16 ; mapped ; 057E 0576 # 1.1 ARMENIAN SMALL
LIGATURE VEW NOW
+FB17 ; mapped ; 0574 056D # 1.1 ARMENIAN SMALL
LIGATURE MEN XEH
+FB18..FB1C ; disallowed # NA
<reserved-FB18>..<reserved-FB1C>
+FB1D ; mapped ; 05D9 05B4 # 3.0 HEBREW LETTER
YOD WITH HIRIQ
+FB1E ; valid # 1.1 HEBREW POINT
JUDEO-SPANISH VARIKA
+FB1F ; mapped ; 05F2 05B7 # 1.1 HEBREW LIGATURE
YIDDISH YOD YOD PATAH
+FB20 ; mapped ; 05E2 # 1.1 HEBREW LETTER
ALTERNATIVE AYIN
+FB21 ; mapped ; 05D0 # 1.1 HEBREW LETTER
WIDE ALEF
+FB22 ; mapped ; 05D3 # 1.1 HEBREW LETTER
WIDE DALET
+FB23 ; mapped ; 05D4 # 1.1 HEBREW LETTER
WIDE HE
+FB24 ; mapped ; 05DB # 1.1 HEBREW LETTER
WIDE KAF
+FB25 ; mapped ; 05DC # 1.1 HEBREW LETTER
WIDE LAMED
+FB26 ; mapped ; 05DD # 1.1 HEBREW LETTER
WIDE FINAL MEM
+FB27 ; mapped ; 05E8 # 1.1 HEBREW LETTER
WIDE RESH
+FB28 ; mapped ; 05EA # 1.1 HEBREW LETTER
WIDE TAV
+FB29 ; disallowed_STD3_mapped ; 002B # 1.1 HEBREW LETTER
ALTERNATIVE PLUS SIGN
+FB2A ; mapped ; 05E9 05C1 # 1.1 HEBREW LETTER
SHIN WITH SHIN DOT
+FB2B ; mapped ; 05E9 05C2 # 1.1 HEBREW LETTER
SHIN WITH SIN DOT
+FB2C ; mapped ; 05E9 05BC 05C1 #1.1 HEBREW LETTER
SHIN WITH DAGESH AND SHIN DOT
+FB2D ; mapped ; 05E9 05BC 05C2 #1.1 HEBREW LETTER
SHIN WITH DAGESH AND SIN DOT
+FB2E ; mapped ; 05D0 05B7 # 1.1 HEBREW LETTER
ALEF WITH PATAH
+FB2F ; mapped ; 05D0 05B8 # 1.1 HEBREW LETTER
ALEF WITH QAMATS
+FB30 ; mapped ; 05D0 05BC # 1.1 HEBREW LETTER
ALEF WITH MAPIQ
+FB31 ; mapped ; 05D1 05BC # 1.1 HEBREW LETTER
BET WITH DAGESH
+FB32 ; mapped ; 05D2 05BC # 1.1 HEBREW LETTER
GIMEL WITH DAGESH
+FB33 ; mapped ; 05D3 05BC # 1.1 HEBREW LETTER
DALET WITH DAGESH
+FB34 ; mapped ; 05D4 05BC # 1.1 HEBREW LETTER HE
WITH MAPIQ
+FB35 ; mapped ; 05D5 05BC # 1.1 HEBREW LETTER
VAV WITH DAGESH
+FB36 ; mapped ; 05D6 05BC # 1.1 HEBREW LETTER
ZAYIN WITH DAGESH
+FB37 ; disallowed # NA <reserved-FB37>
+FB38 ; mapped ; 05D8 05BC # 1.1 HEBREW LETTER
TET WITH DAGESH
+FB39 ; mapped ; 05D9 05BC # 1.1 HEBREW LETTER
YOD WITH DAGESH
+FB3A ; mapped ; 05DA 05BC # 1.1 HEBREW LETTER
FINAL KAF WITH DAGESH
+FB3B ; mapped ; 05DB 05BC # 1.1 HEBREW LETTER
KAF WITH DAGESH
+FB3C ; mapped ; 05DC 05BC # 1.1 HEBREW LETTER
LAMED WITH DAGESH
+FB3D ; disallowed # NA <reserved-FB3D>
+FB3E ; mapped ; 05DE 05BC # 1.1 HEBREW LETTER
MEM WITH DAGESH
+FB3F ; disallowed # NA <reserved-FB3F>
+FB40 ; mapped ; 05E0 05BC # 1.1 HEBREW LETTER
NUN WITH DAGESH
+FB41 ; mapped ; 05E1 05BC # 1.1 HEBREW LETTER
SAMEKH WITH DAGESH
+FB42 ; disallowed # NA <reserved-FB42>
+FB43 ; mapped ; 05E3 05BC # 1.1 HEBREW LETTER
FINAL PE WITH DAGESH
+FB44 ; mapped ; 05E4 05BC # 1.1 HEBREW LETTER PE
WITH DAGESH
+FB45 ; disallowed # NA <reserved-FB45>
+FB46 ; mapped ; 05E6 05BC # 1.1 HEBREW LETTER
TSADI WITH DAGESH
+FB47 ; mapped ; 05E7 05BC # 1.1 HEBREW LETTER
QOF WITH DAGESH
+FB48 ; mapped ; 05E8 05BC # 1.1 HEBREW LETTER
RESH WITH DAGESH
+FB49 ; mapped ; 05E9 05BC # 1.1 HEBREW LETTER
SHIN WITH DAGESH
+FB4A ; mapped ; 05EA 05BC # 1.1 HEBREW LETTER
TAV WITH DAGESH
+FB4B ; mapped ; 05D5 05B9 # 1.1 HEBREW LETTER
VAV WITH HOLAM
+FB4C ; mapped ; 05D1 05BF # 1.1 HEBREW LETTER
BET WITH RAFE
+FB4D ; mapped ; 05DB 05BF # 1.1 HEBREW LETTER
KAF WITH RAFE
+FB4E ; mapped ; 05E4 05BF # 1.1 HEBREW LETTER PE
WITH RAFE
+FB4F ; mapped ; 05D0 05DC # 1.1 HEBREW LIGATURE
ALEF LAMED
+FB50..FB51 ; mapped ; 0671 # 1.1 ARABIC LETTER
ALEF WASLA ISOLATED FORM..ARABIC LETTER ALEF WASLA FINAL FORM
+FB52..FB55 ; mapped ; 067B # 1.1 ARABIC LETTER
BEEH ISOLATED FORM..ARABIC LETTER BEEH MEDIAL FORM
+FB56..FB59 ; mapped ; 067E # 1.1 ARABIC LETTER
PEH ISOLATED FORM..ARABIC LETTER PEH MEDIAL FORM
+FB5A..FB5D ; mapped ; 0680 # 1.1 ARABIC LETTER
BEHEH ISOLATED FORM..ARABIC LETTER BEHEH MEDIAL FORM
+FB5E..FB61 ; mapped ; 067A # 1.1 ARABIC LETTER
TTEHEH ISOLATED FORM..ARABIC LETTER TTEHEH MEDIAL FORM
+FB62..FB65 ; mapped ; 067F # 1.1 ARABIC LETTER
TEHEH ISOLATED FORM..ARABIC LETTER TEHEH MEDIAL FORM
+FB66..FB69 ; mapped ; 0679 # 1.1 ARABIC LETTER
TTEH ISOLATED FORM..ARABIC LETTER TTEH MEDIAL FORM
+FB6A..FB6D ; mapped ; 06A4 # 1.1 ARABIC LETTER
VEH ISOLATED FORM..ARABIC LETTER VEH MEDIAL FORM
+FB6E..FB71 ; mapped ; 06A6 # 1.1 ARABIC LETTER
PEHEH ISOLATED FORM..ARABIC LETTER PEHEH MEDIAL FORM
+FB72..FB75 ; mapped ; 0684 # 1.1 ARABIC LETTER
DYEH ISOLATED FORM..ARABIC LETTER DYEH MEDIAL FORM
+FB76..FB79 ; mapped ; 0683 # 1.1 ARABIC LETTER
NYEH ISOLATED FORM..ARABIC LETTER NYEH MEDIAL FORM
+FB7A..FB7D ; mapped ; 0686 # 1.1 ARABIC LETTER
TCHEH ISOLATED FORM..ARABIC LETTER TCHEH MEDIAL FORM
+FB7E..FB81 ; mapped ; 0687 # 1.1 ARABIC LETTER
TCHEHEH ISOLATED FORM..ARABIC LETTER TCHEHEH MEDIAL FORM
+FB82..FB83 ; mapped ; 068D # 1.1 ARABIC LETTER
DDAHAL ISOLATED FORM..ARABIC LETTER DDAHAL FINAL FORM
+FB84..FB85 ; mapped ; 068C # 1.1 ARABIC LETTER
DAHAL ISOLATED FORM..ARABIC LETTER DAHAL FINAL FORM
+FB86..FB87 ; mapped ; 068E # 1.1 ARABIC LETTER
DUL ISOLATED FORM..ARABIC LETTER DUL FINAL FORM
+FB88..FB89 ; mapped ; 0688 # 1.1 ARABIC LETTER
DDAL ISOLATED FORM..ARABIC LETTER DDAL FINAL FORM
+FB8A..FB8B ; mapped ; 0698 # 1.1 ARABIC LETTER
JEH ISOLATED FORM..ARABIC LETTER JEH FINAL FORM
+FB8C..FB8D ; mapped ; 0691 # 1.1 ARABIC LETTER
RREH ISOLATED FORM..ARABIC LETTER RREH FINAL FORM
+FB8E..FB91 ; mapped ; 06A9 # 1.1 ARABIC LETTER
KEHEH ISOLATED FORM..ARABIC LETTER KEHEH MEDIAL FORM
+FB92..FB95 ; mapped ; 06AF # 1.1 ARABIC LETTER
GAF ISOLATED FORM..ARABIC LETTER GAF MEDIAL FORM
+FB96..FB99 ; mapped ; 06B3 # 1.1 ARABIC LETTER
GUEH ISOLATED FORM..ARABIC LETTER GUEH MEDIAL FORM
+FB9A..FB9D ; mapped ; 06B1 # 1.1 ARABIC LETTER
NGOEH ISOLATED FORM..ARABIC LETTER NGOEH MEDIAL FORM
+FB9E..FB9F ; mapped ; 06BA # 1.1 ARABIC LETTER
NOON GHUNNA ISOLATED FORM..ARABIC LETTER NOON GHUNNA FINAL FORM
+FBA0..FBA3 ; mapped ; 06BB # 1.1 ARABIC LETTER
RNOON ISOLATED FORM..ARABIC LETTER RNOON MEDIAL FORM
+FBA4..FBA5 ; mapped ; 06C0 # 1.1 ARABIC LETTER
HEH WITH YEH ABOVE ISOLATED FORM..ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
+FBA6..FBA9 ; mapped ; 06C1 # 1.1 ARABIC LETTER
HEH GOAL ISOLATED FORM..ARABIC LETTER HEH GOAL MEDIAL FORM
+FBAA..FBAD ; mapped ; 06BE # 1.1 ARABIC LETTER
HEH DOACHASHMEE ISOLATED FORM..ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
+FBAE..FBAF ; mapped ; 06D2 # 1.1 ARABIC LETTER
YEH BARREE ISOLATED FORM..ARABIC LETTER YEH BARREE FINAL FORM
+FBB0..FBB1 ; mapped ; 06D3 # 1.1 ARABIC LETTER
YEH BARREE WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA
ABOVE FINAL FORM
+FBB2..FBC1 ; valid ; ; NV8 # 6.0 ARABIC SYMBOL
DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
+FBC2 ; valid ; ; NV8 # 14.0 ARABIC SYMBOL
WASLA ABOVE
+FBC3..FBD2 ; disallowed # NA
<reserved-FBC3>..<reserved-FBD2>
+FBD3..FBD6 ; mapped ; 06AD # 1.1 ARABIC LETTER NG
ISOLATED FORM..ARABIC LETTER NG MEDIAL FORM
+FBD7..FBD8 ; mapped ; 06C7 # 1.1 ARABIC LETTER U
ISOLATED FORM..ARABIC LETTER U FINAL FORM
+FBD9..FBDA ; mapped ; 06C6 # 1.1 ARABIC LETTER OE
ISOLATED FORM..ARABIC LETTER OE FINAL FORM
+FBDB..FBDC ; mapped ; 06C8 # 1.1 ARABIC LETTER YU
ISOLATED FORM..ARABIC LETTER YU FINAL FORM
+FBDD ; mapped ; 06C7 0674 # 1.1 ARABIC LETTER U
WITH HAMZA ABOVE ISOLATED FORM
+FBDE..FBDF ; mapped ; 06CB # 1.1 ARABIC LETTER VE
ISOLATED FORM..ARABIC LETTER VE FINAL FORM
+FBE0..FBE1 ; mapped ; 06C5 # 1.1 ARABIC LETTER
KIRGHIZ OE ISOLATED FORM..ARABIC LETTER KIRGHIZ OE FINAL FORM
+FBE2..FBE3 ; mapped ; 06C9 # 1.1 ARABIC LETTER
KIRGHIZ YU ISOLATED FORM..ARABIC LETTER KIRGHIZ YU FINAL FORM
+FBE4..FBE7 ; mapped ; 06D0 # 1.1 ARABIC LETTER E
ISOLATED FORM..ARABIC LETTER E MEDIAL FORM
+FBE8..FBE9 ; mapped ; 0649 # 1.1 ARABIC LETTER
UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM..ARABIC LETTER UIGHUR KAZAKH
KIRGHIZ ALEF MAKSURA MEDIAL FORM
+FBEA..FBEB ; mapped ; 0626 0627 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA
ABOVE WITH ALEF FINAL FORM
+FBEC..FBED ; mapped ; 0626 06D5 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA
ABOVE WITH AE FINAL FORM
+FBEE..FBEF ; mapped ; 0626 0648 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA
ABOVE WITH WAW FINAL FORM
+FBF0..FBF1 ; mapped ; 0626 06C7 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH U ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE
WITH U FINAL FORM
+FBF2..FBF3 ; mapped ; 0626 06C6 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA
ABOVE WITH OE FINAL FORM
+FBF4..FBF5 ; mapped ; 0626 06C8 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA
ABOVE WITH YU FINAL FORM
+FBF6..FBF8 ; mapped ; 0626 06D0 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH E ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE
WITH E INITIAL FORM
+FBF9..FBFB ; mapped ; 0626 0649 # 1.1 ARABIC LIGATURE
UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM..ARABIC
LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
+FBFC..FBFF ; mapped ; 06CC # 1.1 ARABIC LETTER
FARSI YEH ISOLATED FORM..ARABIC LETTER FARSI YEH MEDIAL FORM
+FC00 ; mapped ; 0626 062C # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
+FC01 ; mapped ; 0626 062D # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
+FC02 ; mapped ; 0626 0645 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
+FC03 ; mapped ; 0626 0649 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
+FC04 ; mapped ; 0626 064A # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
+FC05 ; mapped ; 0628 062C # 1.1 ARABIC LIGATURE
BEH WITH JEEM ISOLATED FORM
+FC06 ; mapped ; 0628 062D # 1.1 ARABIC LIGATURE
BEH WITH HAH ISOLATED FORM
+FC07 ; mapped ; 0628 062E # 1.1 ARABIC LIGATURE
BEH WITH KHAH ISOLATED FORM
+FC08 ; mapped ; 0628 0645 # 1.1 ARABIC LIGATURE
BEH WITH MEEM ISOLATED FORM
+FC09 ; mapped ; 0628 0649 # 1.1 ARABIC LIGATURE
BEH WITH ALEF MAKSURA ISOLATED FORM
+FC0A ; mapped ; 0628 064A # 1.1 ARABIC LIGATURE
BEH WITH YEH ISOLATED FORM
+FC0B ; mapped ; 062A 062C # 1.1 ARABIC LIGATURE
TEH WITH JEEM ISOLATED FORM
+FC0C ; mapped ; 062A 062D # 1.1 ARABIC LIGATURE
TEH WITH HAH ISOLATED FORM
+FC0D ; mapped ; 062A 062E # 1.1 ARABIC LIGATURE
TEH WITH KHAH ISOLATED FORM
+FC0E ; mapped ; 062A 0645 # 1.1 ARABIC LIGATURE
TEH WITH MEEM ISOLATED FORM
+FC0F ; mapped ; 062A 0649 # 1.1 ARABIC LIGATURE
TEH WITH ALEF MAKSURA ISOLATED FORM
+FC10 ; mapped ; 062A 064A # 1.1 ARABIC LIGATURE
TEH WITH YEH ISOLATED FORM
+FC11 ; mapped ; 062B 062C # 1.1 ARABIC LIGATURE
THEH WITH JEEM ISOLATED FORM
+FC12 ; mapped ; 062B 0645 # 1.1 ARABIC LIGATURE
THEH WITH MEEM ISOLATED FORM
+FC13 ; mapped ; 062B 0649 # 1.1 ARABIC LIGATURE
THEH WITH ALEF MAKSURA ISOLATED FORM
+FC14 ; mapped ; 062B 064A # 1.1 ARABIC LIGATURE
THEH WITH YEH ISOLATED FORM
+FC15 ; mapped ; 062C 062D # 1.1 ARABIC LIGATURE
JEEM WITH HAH ISOLATED FORM
+FC16 ; mapped ; 062C 0645 # 1.1 ARABIC LIGATURE
JEEM WITH MEEM ISOLATED FORM
+FC17 ; mapped ; 062D 062C # 1.1 ARABIC LIGATURE
HAH WITH JEEM ISOLATED FORM
+FC18 ; mapped ; 062D 0645 # 1.1 ARABIC LIGATURE
HAH WITH MEEM ISOLATED FORM
+FC19 ; mapped ; 062E 062C # 1.1 ARABIC LIGATURE
KHAH WITH JEEM ISOLATED FORM
+FC1A ; mapped ; 062E 062D # 1.1 ARABIC LIGATURE
KHAH WITH HAH ISOLATED FORM
+FC1B ; mapped ; 062E 0645 # 1.1 ARABIC LIGATURE
KHAH WITH MEEM ISOLATED FORM
+FC1C ; mapped ; 0633 062C # 1.1 ARABIC LIGATURE
SEEN WITH JEEM ISOLATED FORM
+FC1D ; mapped ; 0633 062D # 1.1 ARABIC LIGATURE
SEEN WITH HAH ISOLATED FORM
+FC1E ; mapped ; 0633 062E # 1.1 ARABIC LIGATURE
SEEN WITH KHAH ISOLATED FORM
+FC1F ; mapped ; 0633 0645 # 1.1 ARABIC LIGATURE
SEEN WITH MEEM ISOLATED FORM
+FC20 ; mapped ; 0635 062D # 1.1 ARABIC LIGATURE
SAD WITH HAH ISOLATED FORM
+FC21 ; mapped ; 0635 0645 # 1.1 ARABIC LIGATURE
SAD WITH MEEM ISOLATED FORM
+FC22 ; mapped ; 0636 062C # 1.1 ARABIC LIGATURE
DAD WITH JEEM ISOLATED FORM
+FC23 ; mapped ; 0636 062D # 1.1 ARABIC LIGATURE
DAD WITH HAH ISOLATED FORM
+FC24 ; mapped ; 0636 062E # 1.1 ARABIC LIGATURE
DAD WITH KHAH ISOLATED FORM
+FC25 ; mapped ; 0636 0645 # 1.1 ARABIC LIGATURE
DAD WITH MEEM ISOLATED FORM
+FC26 ; mapped ; 0637 062D # 1.1 ARABIC LIGATURE
TAH WITH HAH ISOLATED FORM
+FC27 ; mapped ; 0637 0645 # 1.1 ARABIC LIGATURE
TAH WITH MEEM ISOLATED FORM
+FC28 ; mapped ; 0638 0645 # 1.1 ARABIC LIGATURE
ZAH WITH MEEM ISOLATED FORM
+FC29 ; mapped ; 0639 062C # 1.1 ARABIC LIGATURE
AIN WITH JEEM ISOLATED FORM
+FC2A ; mapped ; 0639 0645 # 1.1 ARABIC LIGATURE
AIN WITH MEEM ISOLATED FORM
+FC2B ; mapped ; 063A 062C # 1.1 ARABIC LIGATURE
GHAIN WITH JEEM ISOLATED FORM
+FC2C ; mapped ; 063A 0645 # 1.1 ARABIC LIGATURE
GHAIN WITH MEEM ISOLATED FORM
+FC2D ; mapped ; 0641 062C # 1.1 ARABIC LIGATURE
FEH WITH JEEM ISOLATED FORM
+FC2E ; mapped ; 0641 062D # 1.1 ARABIC LIGATURE
FEH WITH HAH ISOLATED FORM
+FC2F ; mapped ; 0641 062E # 1.1 ARABIC LIGATURE
FEH WITH KHAH ISOLATED FORM
+FC30 ; mapped ; 0641 0645 # 1.1 ARABIC LIGATURE
FEH WITH MEEM ISOLATED FORM
+FC31 ; mapped ; 0641 0649 # 1.1 ARABIC LIGATURE
FEH WITH ALEF MAKSURA ISOLATED FORM
+FC32 ; mapped ; 0641 064A # 1.1 ARABIC LIGATURE
FEH WITH YEH ISOLATED FORM
+FC33 ; mapped ; 0642 062D # 1.1 ARABIC LIGATURE
QAF WITH HAH ISOLATED FORM
+FC34 ; mapped ; 0642 0645 # 1.1 ARABIC LIGATURE
QAF WITH MEEM ISOLATED FORM
+FC35 ; mapped ; 0642 0649 # 1.1 ARABIC LIGATURE
QAF WITH ALEF MAKSURA ISOLATED FORM
+FC36 ; mapped ; 0642 064A # 1.1 ARABIC LIGATURE
QAF WITH YEH ISOLATED FORM
+FC37 ; mapped ; 0643 0627 # 1.1 ARABIC LIGATURE
KAF WITH ALEF ISOLATED FORM
+FC38 ; mapped ; 0643 062C # 1.1 ARABIC LIGATURE
KAF WITH JEEM ISOLATED FORM
+FC39 ; mapped ; 0643 062D # 1.1 ARABIC LIGATURE
KAF WITH HAH ISOLATED FORM
+FC3A ; mapped ; 0643 062E # 1.1 ARABIC LIGATURE
KAF WITH KHAH ISOLATED FORM
+FC3B ; mapped ; 0643 0644 # 1.1 ARABIC LIGATURE
KAF WITH LAM ISOLATED FORM
+FC3C ; mapped ; 0643 0645 # 1.1 ARABIC LIGATURE
KAF WITH MEEM ISOLATED FORM
+FC3D ; mapped ; 0643 0649 # 1.1 ARABIC LIGATURE
KAF WITH ALEF MAKSURA ISOLATED FORM
+FC3E ; mapped ; 0643 064A # 1.1 ARABIC LIGATURE
KAF WITH YEH ISOLATED FORM
+FC3F ; mapped ; 0644 062C # 1.1 ARABIC LIGATURE
LAM WITH JEEM ISOLATED FORM
+FC40 ; mapped ; 0644 062D # 1.1 ARABIC LIGATURE
LAM WITH HAH ISOLATED FORM
+FC41 ; mapped ; 0644 062E # 1.1 ARABIC LIGATURE
LAM WITH KHAH ISOLATED FORM
+FC42 ; mapped ; 0644 0645 # 1.1 ARABIC LIGATURE
LAM WITH MEEM ISOLATED FORM
+FC43 ; mapped ; 0644 0649 # 1.1 ARABIC LIGATURE
LAM WITH ALEF MAKSURA ISOLATED FORM
+FC44 ; mapped ; 0644 064A # 1.1 ARABIC LIGATURE
LAM WITH YEH ISOLATED FORM
+FC45 ; mapped ; 0645 062C # 1.1 ARABIC LIGATURE
MEEM WITH JEEM ISOLATED FORM
+FC46 ; mapped ; 0645 062D # 1.1 ARABIC LIGATURE
MEEM WITH HAH ISOLATED FORM
+FC47 ; mapped ; 0645 062E # 1.1 ARABIC LIGATURE
MEEM WITH KHAH ISOLATED FORM
+FC48 ; mapped ; 0645 0645 # 1.1 ARABIC LIGATURE
MEEM WITH MEEM ISOLATED FORM
+FC49 ; mapped ; 0645 0649 # 1.1 ARABIC LIGATURE
MEEM WITH ALEF MAKSURA ISOLATED FORM
+FC4A ; mapped ; 0645 064A # 1.1 ARABIC LIGATURE
MEEM WITH YEH ISOLATED FORM
+FC4B ; mapped ; 0646 062C # 1.1 ARABIC LIGATURE
NOON WITH JEEM ISOLATED FORM
+FC4C ; mapped ; 0646 062D # 1.1 ARABIC LIGATURE
NOON WITH HAH ISOLATED FORM
+FC4D ; mapped ; 0646 062E # 1.1 ARABIC LIGATURE
NOON WITH KHAH ISOLATED FORM
+FC4E ; mapped ; 0646 0645 # 1.1 ARABIC LIGATURE
NOON WITH MEEM ISOLATED FORM
+FC4F ; mapped ; 0646 0649 # 1.1 ARABIC LIGATURE
NOON WITH ALEF MAKSURA ISOLATED FORM
+FC50 ; mapped ; 0646 064A # 1.1 ARABIC LIGATURE
NOON WITH YEH ISOLATED FORM
+FC51 ; mapped ; 0647 062C # 1.1 ARABIC LIGATURE
HEH WITH JEEM ISOLATED FORM
+FC52 ; mapped ; 0647 0645 # 1.1 ARABIC LIGATURE
HEH WITH MEEM ISOLATED FORM
+FC53 ; mapped ; 0647 0649 # 1.1 ARABIC LIGATURE
HEH WITH ALEF MAKSURA ISOLATED FORM
+FC54 ; mapped ; 0647 064A # 1.1 ARABIC LIGATURE
HEH WITH YEH ISOLATED FORM
+FC55 ; mapped ; 064A 062C # 1.1 ARABIC LIGATURE
YEH WITH JEEM ISOLATED FORM
+FC56 ; mapped ; 064A 062D # 1.1 ARABIC LIGATURE
YEH WITH HAH ISOLATED FORM
+FC57 ; mapped ; 064A 062E # 1.1 ARABIC LIGATURE
YEH WITH KHAH ISOLATED FORM
+FC58 ; mapped ; 064A 0645 # 1.1 ARABIC LIGATURE
YEH WITH MEEM ISOLATED FORM
+FC59 ; mapped ; 064A 0649 # 1.1 ARABIC LIGATURE
YEH WITH ALEF MAKSURA ISOLATED FORM
+FC5A ; mapped ; 064A 064A # 1.1 ARABIC LIGATURE
YEH WITH YEH ISOLATED FORM
+FC5B ; mapped ; 0630 0670 # 1.1 ARABIC LIGATURE
THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5C ; mapped ; 0631 0670 # 1.1 ARABIC LIGATURE
REH WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5D ; mapped ; 0649 0670 # 1.1 ARABIC LIGATURE
ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5E ; disallowed_STD3_mapped ; 0020 064C 0651 #1.1 ARABIC LIGATURE
SHADDA WITH DAMMATAN ISOLATED FORM
+FC5F ; disallowed_STD3_mapped ; 0020 064D 0651 #1.1 ARABIC LIGATURE
SHADDA WITH KASRATAN ISOLATED FORM
+FC60 ; disallowed_STD3_mapped ; 0020 064E 0651 #1.1 ARABIC LIGATURE
SHADDA WITH FATHA ISOLATED FORM
+FC61 ; disallowed_STD3_mapped ; 0020 064F 0651 #1.1 ARABIC LIGATURE
SHADDA WITH DAMMA ISOLATED FORM
+FC62 ; disallowed_STD3_mapped ; 0020 0650 0651 #1.1 ARABIC LIGATURE
SHADDA WITH KASRA ISOLATED FORM
+FC63 ; disallowed_STD3_mapped ; 0020 0651 0670 #1.1 ARABIC LIGATURE
SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC64 ; mapped ; 0626 0631 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH REH FINAL FORM
+FC65 ; mapped ; 0626 0632 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
+FC66 ; mapped ; 0626 0645 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
+FC67 ; mapped ; 0626 0646 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
+FC68 ; mapped ; 0626 0649 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
+FC69 ; mapped ; 0626 064A # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
+FC6A ; mapped ; 0628 0631 # 1.1 ARABIC LIGATURE
BEH WITH REH FINAL FORM
+FC6B ; mapped ; 0628 0632 # 1.1 ARABIC LIGATURE
BEH WITH ZAIN FINAL FORM
+FC6C ; mapped ; 0628 0645 # 1.1 ARABIC LIGATURE
BEH WITH MEEM FINAL FORM
+FC6D ; mapped ; 0628 0646 # 1.1 ARABIC LIGATURE
BEH WITH NOON FINAL FORM
+FC6E ; mapped ; 0628 0649 # 1.1 ARABIC LIGATURE
BEH WITH ALEF MAKSURA FINAL FORM
+FC6F ; mapped ; 0628 064A # 1.1 ARABIC LIGATURE
BEH WITH YEH FINAL FORM
+FC70 ; mapped ; 062A 0631 # 1.1 ARABIC LIGATURE
TEH WITH REH FINAL FORM
+FC71 ; mapped ; 062A 0632 # 1.1 ARABIC LIGATURE
TEH WITH ZAIN FINAL FORM
+FC72 ; mapped ; 062A 0645 # 1.1 ARABIC LIGATURE
TEH WITH MEEM FINAL FORM
+FC73 ; mapped ; 062A 0646 # 1.1 ARABIC LIGATURE
TEH WITH NOON FINAL FORM
+FC74 ; mapped ; 062A 0649 # 1.1 ARABIC LIGATURE
TEH WITH ALEF MAKSURA FINAL FORM
+FC75 ; mapped ; 062A 064A # 1.1 ARABIC LIGATURE
TEH WITH YEH FINAL FORM
+FC76 ; mapped ; 062B 0631 # 1.1 ARABIC LIGATURE
THEH WITH REH FINAL FORM
+FC77 ; mapped ; 062B 0632 # 1.1 ARABIC LIGATURE
THEH WITH ZAIN FINAL FORM
+FC78 ; mapped ; 062B 0645 # 1.1 ARABIC LIGATURE
THEH WITH MEEM FINAL FORM
+FC79 ; mapped ; 062B 0646 # 1.1 ARABIC LIGATURE
THEH WITH NOON FINAL FORM
+FC7A ; mapped ; 062B 0649 # 1.1 ARABIC LIGATURE
THEH WITH ALEF MAKSURA FINAL FORM
+FC7B ; mapped ; 062B 064A # 1.1 ARABIC LIGATURE
THEH WITH YEH FINAL FORM
+FC7C ; mapped ; 0641 0649 # 1.1 ARABIC LIGATURE
FEH WITH ALEF MAKSURA FINAL FORM
+FC7D ; mapped ; 0641 064A # 1.1 ARABIC LIGATURE
FEH WITH YEH FINAL FORM
+FC7E ; mapped ; 0642 0649 # 1.1 ARABIC LIGATURE
QAF WITH ALEF MAKSURA FINAL FORM
+FC7F ; mapped ; 0642 064A # 1.1 ARABIC LIGATURE
QAF WITH YEH FINAL FORM
+FC80 ; mapped ; 0643 0627 # 1.1 ARABIC LIGATURE
KAF WITH ALEF FINAL FORM
+FC81 ; mapped ; 0643 0644 # 1.1 ARABIC LIGATURE
KAF WITH LAM FINAL FORM
+FC82 ; mapped ; 0643 0645 # 1.1 ARABIC LIGATURE
KAF WITH MEEM FINAL FORM
+FC83 ; mapped ; 0643 0649 # 1.1 ARABIC LIGATURE
KAF WITH ALEF MAKSURA FINAL FORM
+FC84 ; mapped ; 0643 064A # 1.1 ARABIC LIGATURE
KAF WITH YEH FINAL FORM
+FC85 ; mapped ; 0644 0645 # 1.1 ARABIC LIGATURE
LAM WITH MEEM FINAL FORM
+FC86 ; mapped ; 0644 0649 # 1.1 ARABIC LIGATURE
LAM WITH ALEF MAKSURA FINAL FORM
+FC87 ; mapped ; 0644 064A # 1.1 ARABIC LIGATURE
LAM WITH YEH FINAL FORM
+FC88 ; mapped ; 0645 0627 # 1.1 ARABIC LIGATURE
MEEM WITH ALEF FINAL FORM
+FC89 ; mapped ; 0645 0645 # 1.1 ARABIC LIGATURE
MEEM WITH MEEM FINAL FORM
+FC8A ; mapped ; 0646 0631 # 1.1 ARABIC LIGATURE
NOON WITH REH FINAL FORM
+FC8B ; mapped ; 0646 0632 # 1.1 ARABIC LIGATURE
NOON WITH ZAIN FINAL FORM
+FC8C ; mapped ; 0646 0645 # 1.1 ARABIC LIGATURE
NOON WITH MEEM FINAL FORM
+FC8D ; mapped ; 0646 0646 # 1.1 ARABIC LIGATURE
NOON WITH NOON FINAL FORM
+FC8E ; mapped ; 0646 0649 # 1.1 ARABIC LIGATURE
NOON WITH ALEF MAKSURA FINAL FORM
+FC8F ; mapped ; 0646 064A # 1.1 ARABIC LIGATURE
NOON WITH YEH FINAL FORM
+FC90 ; mapped ; 0649 0670 # 1.1 ARABIC LIGATURE
ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
+FC91 ; mapped ; 064A 0631 # 1.1 ARABIC LIGATURE
YEH WITH REH FINAL FORM
+FC92 ; mapped ; 064A 0632 # 1.1 ARABIC LIGATURE
YEH WITH ZAIN FINAL FORM
+FC93 ; mapped ; 064A 0645 # 1.1 ARABIC LIGATURE
YEH WITH MEEM FINAL FORM
+FC94 ; mapped ; 064A 0646 # 1.1 ARABIC LIGATURE
YEH WITH NOON FINAL FORM
+FC95 ; mapped ; 064A 0649 # 1.1 ARABIC LIGATURE
YEH WITH ALEF MAKSURA FINAL FORM
+FC96 ; mapped ; 064A 064A # 1.1 ARABIC LIGATURE
YEH WITH YEH FINAL FORM
+FC97 ; mapped ; 0626 062C # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
+FC98 ; mapped ; 0626 062D # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
+FC99 ; mapped ; 0626 062E # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
+FC9A ; mapped ; 0626 0645 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
+FC9B ; mapped ; 0626 0647 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
+FC9C ; mapped ; 0628 062C # 1.1 ARABIC LIGATURE
BEH WITH JEEM INITIAL FORM
+FC9D ; mapped ; 0628 062D # 1.1 ARABIC LIGATURE
BEH WITH HAH INITIAL FORM
+FC9E ; mapped ; 0628 062E # 1.1 ARABIC LIGATURE
BEH WITH KHAH INITIAL FORM
+FC9F ; mapped ; 0628 0645 # 1.1 ARABIC LIGATURE
BEH WITH MEEM INITIAL FORM
+FCA0 ; mapped ; 0628 0647 # 1.1 ARABIC LIGATURE
BEH WITH HEH INITIAL FORM
+FCA1 ; mapped ; 062A 062C # 1.1 ARABIC LIGATURE
TEH WITH JEEM INITIAL FORM
+FCA2 ; mapped ; 062A 062D # 1.1 ARABIC LIGATURE
TEH WITH HAH INITIAL FORM
+FCA3 ; mapped ; 062A 062E # 1.1 ARABIC LIGATURE
TEH WITH KHAH INITIAL FORM
+FCA4 ; mapped ; 062A 0645 # 1.1 ARABIC LIGATURE
TEH WITH MEEM INITIAL FORM
+FCA5 ; mapped ; 062A 0647 # 1.1 ARABIC LIGATURE
TEH WITH HEH INITIAL FORM
+FCA6 ; mapped ; 062B 0645 # 1.1 ARABIC LIGATURE
THEH WITH MEEM INITIAL FORM
+FCA7 ; mapped ; 062C 062D # 1.1 ARABIC LIGATURE
JEEM WITH HAH INITIAL FORM
+FCA8 ; mapped ; 062C 0645 # 1.1 ARABIC LIGATURE
JEEM WITH MEEM INITIAL FORM
+FCA9 ; mapped ; 062D 062C # 1.1 ARABIC LIGATURE
HAH WITH JEEM INITIAL FORM
+FCAA ; mapped ; 062D 0645 # 1.1 ARABIC LIGATURE
HAH WITH MEEM INITIAL FORM
+FCAB ; mapped ; 062E 062C # 1.1 ARABIC LIGATURE
KHAH WITH JEEM INITIAL FORM
+FCAC ; mapped ; 062E 0645 # 1.1 ARABIC LIGATURE
KHAH WITH MEEM INITIAL FORM
+FCAD ; mapped ; 0633 062C # 1.1 ARABIC LIGATURE
SEEN WITH JEEM INITIAL FORM
+FCAE ; mapped ; 0633 062D # 1.1 ARABIC LIGATURE
SEEN WITH HAH INITIAL FORM
+FCAF ; mapped ; 0633 062E # 1.1 ARABIC LIGATURE
SEEN WITH KHAH INITIAL FORM
+FCB0 ; mapped ; 0633 0645 # 1.1 ARABIC LIGATURE
SEEN WITH MEEM INITIAL FORM
+FCB1 ; mapped ; 0635 062D # 1.1 ARABIC LIGATURE
SAD WITH HAH INITIAL FORM
+FCB2 ; mapped ; 0635 062E # 1.1 ARABIC LIGATURE
SAD WITH KHAH INITIAL FORM
+FCB3 ; mapped ; 0635 0645 # 1.1 ARABIC LIGATURE
SAD WITH MEEM INITIAL FORM
+FCB4 ; mapped ; 0636 062C # 1.1 ARABIC LIGATURE
DAD WITH JEEM INITIAL FORM
+FCB5 ; mapped ; 0636 062D # 1.1 ARABIC LIGATURE
DAD WITH HAH INITIAL FORM
+FCB6 ; mapped ; 0636 062E # 1.1 ARABIC LIGATURE
DAD WITH KHAH INITIAL FORM
+FCB7 ; mapped ; 0636 0645 # 1.1 ARABIC LIGATURE
DAD WITH MEEM INITIAL FORM
+FCB8 ; mapped ; 0637 062D # 1.1 ARABIC LIGATURE
TAH WITH HAH INITIAL FORM
+FCB9 ; mapped ; 0638 0645 # 1.1 ARABIC LIGATURE
ZAH WITH MEEM INITIAL FORM
+FCBA ; mapped ; 0639 062C # 1.1 ARABIC LIGATURE
AIN WITH JEEM INITIAL FORM
+FCBB ; mapped ; 0639 0645 # 1.1 ARABIC LIGATURE
AIN WITH MEEM INITIAL FORM
+FCBC ; mapped ; 063A 062C # 1.1 ARABIC LIGATURE
GHAIN WITH JEEM INITIAL FORM
+FCBD ; mapped ; 063A 0645 # 1.1 ARABIC LIGATURE
GHAIN WITH MEEM INITIAL FORM
+FCBE ; mapped ; 0641 062C # 1.1 ARABIC LIGATURE
FEH WITH JEEM INITIAL FORM
+FCBF ; mapped ; 0641 062D # 1.1 ARABIC LIGATURE
FEH WITH HAH INITIAL FORM
+FCC0 ; mapped ; 0641 062E # 1.1 ARABIC LIGATURE
FEH WITH KHAH INITIAL FORM
+FCC1 ; mapped ; 0641 0645 # 1.1 ARABIC LIGATURE
FEH WITH MEEM INITIAL FORM
+FCC2 ; mapped ; 0642 062D # 1.1 ARABIC LIGATURE
QAF WITH HAH INITIAL FORM
+FCC3 ; mapped ; 0642 0645 # 1.1 ARABIC LIGATURE
QAF WITH MEEM INITIAL FORM
+FCC4 ; mapped ; 0643 062C # 1.1 ARABIC LIGATURE
KAF WITH JEEM INITIAL FORM
+FCC5 ; mapped ; 0643 062D # 1.1 ARABIC LIGATURE
KAF WITH HAH INITIAL FORM
+FCC6 ; mapped ; 0643 062E # 1.1 ARABIC LIGATURE
KAF WITH KHAH INITIAL FORM
+FCC7 ; mapped ; 0643 0644 # 1.1 ARABIC LIGATURE
KAF WITH LAM INITIAL FORM
+FCC8 ; mapped ; 0643 0645 # 1.1 ARABIC LIGATURE
KAF WITH MEEM INITIAL FORM
+FCC9 ; mapped ; 0644 062C # 1.1 ARABIC LIGATURE
LAM WITH JEEM INITIAL FORM
+FCCA ; mapped ; 0644 062D # 1.1 ARABIC LIGATURE
LAM WITH HAH INITIAL FORM
+FCCB ; mapped ; 0644 062E # 1.1 ARABIC LIGATURE
LAM WITH KHAH INITIAL FORM
+FCCC ; mapped ; 0644 0645 # 1.1 ARABIC LIGATURE
LAM WITH MEEM INITIAL FORM
+FCCD ; mapped ; 0644 0647 # 1.1 ARABIC LIGATURE
LAM WITH HEH INITIAL FORM
+FCCE ; mapped ; 0645 062C # 1.1 ARABIC LIGATURE
MEEM WITH JEEM INITIAL FORM
+FCCF ; mapped ; 0645 062D # 1.1 ARABIC LIGATURE
MEEM WITH HAH INITIAL FORM
+FCD0 ; mapped ; 0645 062E # 1.1 ARABIC LIGATURE
MEEM WITH KHAH INITIAL FORM
+FCD1 ; mapped ; 0645 0645 # 1.1 ARABIC LIGATURE
MEEM WITH MEEM INITIAL FORM
+FCD2 ; mapped ; 0646 062C # 1.1 ARABIC LIGATURE
NOON WITH JEEM INITIAL FORM
+FCD3 ; mapped ; 0646 062D # 1.1 ARABIC LIGATURE
NOON WITH HAH INITIAL FORM
+FCD4 ; mapped ; 0646 062E # 1.1 ARABIC LIGATURE
NOON WITH KHAH INITIAL FORM
+FCD5 ; mapped ; 0646 0645 # 1.1 ARABIC LIGATURE
NOON WITH MEEM INITIAL FORM
+FCD6 ; mapped ; 0646 0647 # 1.1 ARABIC LIGATURE
NOON WITH HEH INITIAL FORM
+FCD7 ; mapped ; 0647 062C # 1.1 ARABIC LIGATURE
HEH WITH JEEM INITIAL FORM
+FCD8 ; mapped ; 0647 0645 # 1.1 ARABIC LIGATURE
HEH WITH MEEM INITIAL FORM
+FCD9 ; mapped ; 0647 0670 # 1.1 ARABIC LIGATURE
HEH WITH SUPERSCRIPT ALEF INITIAL FORM
+FCDA ; mapped ; 064A 062C # 1.1 ARABIC LIGATURE
YEH WITH JEEM INITIAL FORM
+FCDB ; mapped ; 064A 062D # 1.1 ARABIC LIGATURE
YEH WITH HAH INITIAL FORM
+FCDC ; mapped ; 064A 062E # 1.1 ARABIC LIGATURE
YEH WITH KHAH INITIAL FORM
+FCDD ; mapped ; 064A 0645 # 1.1 ARABIC LIGATURE
YEH WITH MEEM INITIAL FORM
+FCDE ; mapped ; 064A 0647 # 1.1 ARABIC LIGATURE
YEH WITH HEH INITIAL FORM
+FCDF ; mapped ; 0626 0645 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
+FCE0 ; mapped ; 0626 0647 # 1.1 ARABIC LIGATURE
YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
+FCE1 ; mapped ; 0628 0645 # 1.1 ARABIC LIGATURE
BEH WITH MEEM MEDIAL FORM
+FCE2 ; mapped ; 0628 0647 # 1.1 ARABIC LIGATURE
BEH WITH HEH MEDIAL FORM
+FCE3 ; mapped ; 062A 0645 # 1.1 ARABIC LIGATURE
TEH WITH MEEM MEDIAL FORM
+FCE4 ; mapped ; 062A 0647 # 1.1 ARABIC LIGATURE
TEH WITH HEH MEDIAL FORM
+FCE5 ; mapped ; 062B 0645 # 1.1 ARABIC LIGATURE
THEH WITH MEEM MEDIAL FORM
+FCE6 ; mapped ; 062B 0647 # 1.1 ARABIC LIGATURE
THEH WITH HEH MEDIAL FORM
+FCE7 ; mapped ; 0633 0645 # 1.1 ARABIC LIGATURE
SEEN WITH MEEM MEDIAL FORM
+FCE8 ; mapped ; 0633 0647 # 1.1 ARABIC LIGATURE
SEEN WITH HEH MEDIAL FORM
+FCE9 ; mapped ; 0634 0645 # 1.1 ARABIC LIGATURE
SHEEN WITH MEEM MEDIAL FORM
+FCEA ; mapped ; 0634 0647 # 1.1 ARABIC LIGATURE
SHEEN WITH HEH MEDIAL FORM
+FCEB ; mapped ; 0643 0644 # 1.1 ARABIC LIGATURE
KAF WITH LAM MEDIAL FORM
+FCEC ; mapped ; 0643 0645 # 1.1 ARABIC LIGATURE
KAF WITH MEEM MEDIAL FORM
+FCED ; mapped ; 0644 0645 # 1.1 ARABIC LIGATURE
LAM WITH MEEM MEDIAL FORM
+FCEE ; mapped ; 0646 0645 # 1.1 ARABIC LIGATURE
NOON WITH MEEM MEDIAL FORM
+FCEF ; mapped ; 0646 0647 # 1.1 ARABIC LIGATURE
NOON WITH HEH MEDIAL FORM
+FCF0 ; mapped ; 064A 0645 # 1.1 ARABIC LIGATURE
YEH WITH MEEM MEDIAL FORM
+FCF1 ; mapped ; 064A 0647 # 1.1 ARABIC LIGATURE
YEH WITH HEH MEDIAL FORM
+FCF2 ; mapped ; 0640 064E 0651 #1.1 ARABIC LIGATURE
SHADDA WITH FATHA MEDIAL FORM
+FCF3 ; mapped ; 0640 064F 0651 #1.1 ARABIC LIGATURE
SHADDA WITH DAMMA MEDIAL FORM
+FCF4 ; mapped ; 0640 0650 0651 #1.1 ARABIC LIGATURE
SHADDA WITH KASRA MEDIAL FORM
+FCF5 ; mapped ; 0637 0649 # 1.1 ARABIC LIGATURE
TAH WITH ALEF MAKSURA ISOLATED FORM
+FCF6 ; mapped ; 0637 064A # 1.1 ARABIC LIGATURE
TAH WITH YEH ISOLATED FORM
+FCF7 ; mapped ; 0639 0649 # 1.1 ARABIC LIGATURE
AIN WITH ALEF MAKSURA ISOLATED FORM
+FCF8 ; mapped ; 0639 064A # 1.1 ARABIC LIGATURE
AIN WITH YEH ISOLATED FORM
+FCF9 ; mapped ; 063A 0649 # 1.1 ARABIC LIGATURE
GHAIN WITH ALEF MAKSURA ISOLATED FORM
+FCFA ; mapped ; 063A 064A # 1.1 ARABIC LIGATURE
GHAIN WITH YEH ISOLATED FORM
+FCFB ; mapped ; 0633 0649 # 1.1 ARABIC LIGATURE
SEEN WITH ALEF MAKSURA ISOLATED FORM
+FCFC ; mapped ; 0633 064A # 1.1 ARABIC LIGATURE
SEEN WITH YEH ISOLATED FORM
+FCFD ; mapped ; 0634 0649 # 1.1 ARABIC LIGATURE
SHEEN WITH ALEF MAKSURA ISOLATED FORM
+FCFE ; mapped ; 0634 064A # 1.1 ARABIC LIGATURE
SHEEN WITH YEH ISOLATED FORM
+FCFF ; mapped ; 062D 0649 # 1.1 ARABIC LIGATURE
HAH WITH ALEF MAKSURA ISOLATED FORM
+FD00 ; mapped ; 062D 064A # 1.1 ARABIC LIGATURE
HAH WITH YEH ISOLATED FORM
+FD01 ; mapped ; 062C 0649 # 1.1 ARABIC LIGATURE
JEEM WITH ALEF MAKSURA ISOLATED FORM
+FD02 ; mapped ; 062C 064A # 1.1 ARABIC LIGATURE
JEEM WITH YEH ISOLATED FORM
+FD03 ; mapped ; 062E 0649 # 1.1 ARABIC LIGATURE
KHAH WITH ALEF MAKSURA ISOLATED FORM
+FD04 ; mapped ; 062E 064A # 1.1 ARABIC LIGATURE
KHAH WITH YEH ISOLATED FORM
+FD05 ; mapped ; 0635 0649 # 1.1 ARABIC LIGATURE
SAD WITH ALEF MAKSURA ISOLATED FORM
+FD06 ; mapped ; 0635 064A # 1.1 ARABIC LIGATURE
SAD WITH YEH ISOLATED FORM
+FD07 ; mapped ; 0636 0649 # 1.1 ARABIC LIGATURE
DAD WITH ALEF MAKSURA ISOLATED FORM
+FD08 ; mapped ; 0636 064A # 1.1 ARABIC LIGATURE
DAD WITH YEH ISOLATED FORM
+FD09 ; mapped ; 0634 062C # 1.1 ARABIC LIGATURE
SHEEN WITH JEEM ISOLATED FORM
+FD0A ; mapped ; 0634 062D # 1.1 ARABIC LIGATURE
SHEEN WITH HAH ISOLATED FORM
+FD0B ; mapped ; 0634 062E # 1.1 ARABIC LIGATURE
SHEEN WITH KHAH ISOLATED FORM
+FD0C ; mapped ; 0634 0645 # 1.1 ARABIC LIGATURE
SHEEN WITH MEEM ISOLATED FORM
+FD0D ; mapped ; 0634 0631 # 1.1 ARABIC LIGATURE
SHEEN WITH REH ISOLATED FORM
+FD0E ; mapped ; 0633 0631 # 1.1 ARABIC LIGATURE
SEEN WITH REH ISOLATED FORM
+FD0F ; mapped ; 0635 0631 # 1.1 ARABIC LIGATURE
SAD WITH REH ISOLATED FORM
+FD10 ; mapped ; 0636 0631 # 1.1 ARABIC LIGATURE
DAD WITH REH ISOLATED FORM
+FD11 ; mapped ; 0637 0649 # 1.1 ARABIC LIGATURE
TAH WITH ALEF MAKSURA FINAL FORM
+FD12 ; mapped ; 0637 064A # 1.1 ARABIC LIGATURE
TAH WITH YEH FINAL FORM
+FD13 ; mapped ; 0639 0649 # 1.1 ARABIC LIGATURE
AIN WITH ALEF MAKSURA FINAL FORM
+FD14 ; mapped ; 0639 064A # 1.1 ARABIC LIGATURE
AIN WITH YEH FINAL FORM
+FD15 ; mapped ; 063A 0649 # 1.1 ARABIC LIGATURE
GHAIN WITH ALEF MAKSURA FINAL FORM
+FD16 ; mapped ; 063A 064A # 1.1 ARABIC LIGATURE
GHAIN WITH YEH FINAL FORM
+FD17 ; mapped ; 0633 0649 # 1.1 ARABIC LIGATURE
SEEN WITH ALEF MAKSURA FINAL FORM
+FD18 ; mapped ; 0633 064A # 1.1 ARABIC LIGATURE
SEEN WITH YEH FINAL FORM
+FD19 ; mapped ; 0634 0649 # 1.1 ARABIC LIGATURE
SHEEN WITH ALEF MAKSURA FINAL FORM
+FD1A ; mapped ; 0634 064A # 1.1 ARABIC LIGATURE
SHEEN WITH YEH FINAL FORM
+FD1B ; mapped ; 062D 0649 # 1.1 ARABIC LIGATURE
HAH WITH ALEF MAKSURA FINAL FORM
+FD1C ; mapped ; 062D 064A # 1.1 ARABIC LIGATURE
HAH WITH YEH FINAL FORM
+FD1D ; mapped ; 062C 0649 # 1.1 ARABIC LIGATURE
JEEM WITH ALEF MAKSURA FINAL FORM
+FD1E ; mapped ; 062C 064A # 1.1 ARABIC LIGATURE
JEEM WITH YEH FINAL FORM
+FD1F ; mapped ; 062E 0649 # 1.1 ARABIC LIGATURE
KHAH WITH ALEF MAKSURA FINAL FORM
+FD20 ; mapped ; 062E 064A # 1.1 ARABIC LIGATURE
KHAH WITH YEH FINAL FORM
+FD21 ; mapped ; 0635 0649 # 1.1 ARABIC LIGATURE
SAD WITH ALEF MAKSURA FINAL FORM
+FD22 ; mapped ; 0635 064A # 1.1 ARABIC LIGATURE
SAD WITH YEH FINAL FORM
+FD23 ; mapped ; 0636 0649 # 1.1 ARABIC LIGATURE
DAD WITH ALEF MAKSURA FINAL FORM
+FD24 ; mapped ; 0636 064A # 1.1 ARABIC LIGATURE
DAD WITH YEH FINAL FORM
+FD25 ; mapped ; 0634 062C # 1.1 ARABIC LIGATURE
SHEEN WITH JEEM FINAL FORM
+FD26 ; mapped ; 0634 062D # 1.1 ARABIC LIGATURE
SHEEN WITH HAH FINAL FORM
+FD27 ; mapped ; 0634 062E # 1.1 ARABIC LIGATURE
SHEEN WITH KHAH FINAL FORM
+FD28 ; mapped ; 0634 0645 # 1.1 ARABIC LIGATURE
SHEEN WITH MEEM FINAL FORM
+FD29 ; mapped ; 0634 0631 # 1.1 ARABIC LIGATURE
SHEEN WITH REH FINAL FORM
+FD2A ; mapped ; 0633 0631 # 1.1 ARABIC LIGATURE
SEEN WITH REH FINAL FORM
+FD2B ; mapped ; 0635 0631 # 1.1 ARABIC LIGATURE
SAD WITH REH FINAL FORM
+FD2C ; mapped ; 0636 0631 # 1.1 ARABIC LIGATURE
DAD WITH REH FINAL FORM
+FD2D ; mapped ; 0634 062C # 1.1 ARABIC LIGATURE
SHEEN WITH JEEM INITIAL FORM
+FD2E ; mapped ; 0634 062D # 1.1 ARABIC LIGATURE
SHEEN WITH HAH INITIAL FORM
+FD2F ; mapped ; 0634 062E # 1.1 ARABIC LIGATURE
SHEEN WITH KHAH INITIAL FORM
+FD30 ; mapped ; 0634 0645 # 1.1 ARABIC LIGATURE
SHEEN WITH MEEM INITIAL FORM
+FD31 ; mapped ; 0633 0647 # 1.1 ARABIC LIGATURE
SEEN WITH HEH INITIAL FORM
+FD32 ; mapped ; 0634 0647 # 1.1 ARABIC LIGATURE
SHEEN WITH HEH INITIAL FORM
+FD33 ; mapped ; 0637 0645 # 1.1 ARABIC LIGATURE
TAH WITH MEEM INITIAL FORM
+FD34 ; mapped ; 0633 062C # 1.1 ARABIC LIGATURE
SEEN WITH JEEM MEDIAL FORM
+FD35 ; mapped ; 0633 062D # 1.1 ARABIC LIGATURE
SEEN WITH HAH MEDIAL FORM
+FD36 ; mapped ; 0633 062E # 1.1 ARABIC LIGATURE
SEEN WITH KHAH MEDIAL FORM
+FD37 ; mapped ; 0634 062C # 1.1 ARABIC LIGATURE
SHEEN WITH JEEM MEDIAL FORM
+FD38 ; mapped ; 0634 062D # 1.1 ARABIC LIGATURE
SHEEN WITH HAH MEDIAL FORM
+FD39 ; mapped ; 0634 062E # 1.1 ARABIC LIGATURE
SHEEN WITH KHAH MEDIAL FORM
+FD3A ; mapped ; 0637 0645 # 1.1 ARABIC LIGATURE
TAH WITH MEEM MEDIAL FORM
+FD3B ; mapped ; 0638 0645 # 1.1 ARABIC LIGATURE
ZAH WITH MEEM MEDIAL FORM
+FD3C..FD3D ; mapped ; 0627 064B # 1.1 ARABIC LIGATURE
ALEF WITH FATHATAN FINAL FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD3E..FD3F ; valid ; ; NV8 # 1.1 ORNATE LEFT
PARENTHESIS..ORNATE RIGHT PARENTHESIS
+FD40..FD4F ; valid ; ; NV8 # 14.0 ARABIC LIGATURE
RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH
+FD50 ; mapped ; 062A 062C 0645 #1.1 ARABIC LIGATURE
TEH WITH JEEM WITH MEEM INITIAL FORM
+FD51..FD52 ; mapped ; 062A 062D 062C #1.1 ARABIC LIGATURE
TEH WITH HAH WITH JEEM FINAL FORM..ARABIC LIGATURE TEH WITH HAH WITH JEEM
INITIAL FORM
+FD53 ; mapped ; 062A 062D 0645 #1.1 ARABIC LIGATURE
TEH WITH HAH WITH MEEM INITIAL FORM
+FD54 ; mapped ; 062A 062E 0645 #1.1 ARABIC LIGATURE
TEH WITH KHAH WITH MEEM INITIAL FORM
+FD55 ; mapped ; 062A 0645 062C #1.1 ARABIC LIGATURE
TEH WITH MEEM WITH JEEM INITIAL FORM
+FD56 ; mapped ; 062A 0645 062D #1.1 ARABIC LIGATURE
TEH WITH MEEM WITH HAH INITIAL FORM
+FD57 ; mapped ; 062A 0645 062E #1.1 ARABIC LIGATURE
TEH WITH MEEM WITH KHAH INITIAL FORM
+FD58..FD59 ; mapped ; 062C 0645 062D #1.1 ARABIC LIGATURE
JEEM WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE JEEM WITH MEEM WITH HAH
INITIAL FORM
+FD5A ; mapped ; 062D 0645 064A #1.1 ARABIC LIGATURE
HAH WITH MEEM WITH YEH FINAL FORM
+FD5B ; mapped ; 062D 0645 0649 #1.1 ARABIC LIGATURE
HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD5C ; mapped ; 0633 062D 062C #1.1 ARABIC LIGATURE
SEEN WITH HAH WITH JEEM INITIAL FORM
+FD5D ; mapped ; 0633 062C 062D #1.1 ARABIC LIGATURE
SEEN WITH JEEM WITH HAH INITIAL FORM
+FD5E ; mapped ; 0633 062C 0649 #1.1 ARABIC LIGATURE
SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FD5F..FD60 ; mapped ; 0633 0645 062D #1.1 ARABIC LIGATURE
SEEN WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE SEEN WITH MEEM WITH HAH
INITIAL FORM
+FD61 ; mapped ; 0633 0645 062C #1.1 ARABIC LIGATURE
SEEN WITH MEEM WITH JEEM INITIAL FORM
+FD62..FD63 ; mapped ; 0633 0645 0645 #1.1 ARABIC LIGATURE
SEEN WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE SEEN WITH MEEM WITH MEEM
INITIAL FORM
+FD64..FD65 ; mapped ; 0635 062D 062D #1.1 ARABIC LIGATURE
SAD WITH HAH WITH HAH FINAL FORM..ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL
FORM
+FD66 ; mapped ; 0635 0645 0645 #1.1 ARABIC LIGATURE
SAD WITH MEEM WITH MEEM FINAL FORM
+FD67..FD68 ; mapped ; 0634 062D 0645 #1.1 ARABIC LIGATURE
SHEEN WITH HAH WITH MEEM FINAL FORM..ARABIC LIGATURE SHEEN WITH HAH WITH MEEM
INITIAL FORM
+FD69 ; mapped ; 0634 062C 064A #1.1 ARABIC LIGATURE
SHEEN WITH JEEM WITH YEH FINAL FORM
+FD6A..FD6B ; mapped ; 0634 0645 062E #1.1 ARABIC LIGATURE
SHEEN WITH MEEM WITH KHAH FINAL FORM..ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH
INITIAL FORM
+FD6C..FD6D ; mapped ; 0634 0645 0645 #1.1 ARABIC LIGATURE
SHEEN WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM
INITIAL FORM
+FD6E ; mapped ; 0636 062D 0649 #1.1 ARABIC LIGATURE
DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD6F..FD70 ; mapped ; 0636 062E 0645 #1.1 ARABIC LIGATURE
DAD WITH KHAH WITH MEEM FINAL FORM..ARABIC LIGATURE DAD WITH KHAH WITH MEEM
INITIAL FORM
+FD71..FD72 ; mapped ; 0637 0645 062D #1.1 ARABIC LIGATURE
TAH WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE TAH WITH MEEM WITH HAH
INITIAL FORM
+FD73 ; mapped ; 0637 0645 0645 #1.1 ARABIC LIGATURE
TAH WITH MEEM WITH MEEM INITIAL FORM
+FD74 ; mapped ; 0637 0645 064A #1.1 ARABIC LIGATURE
TAH WITH MEEM WITH YEH FINAL FORM
+FD75 ; mapped ; 0639 062C 0645 #1.1 ARABIC LIGATURE
AIN WITH JEEM WITH MEEM FINAL FORM
+FD76..FD77 ; mapped ; 0639 0645 0645 #1.1 ARABIC LIGATURE
AIN WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE AIN WITH MEEM WITH MEEM
INITIAL FORM
+FD78 ; mapped ; 0639 0645 0649 #1.1 ARABIC LIGATURE
AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD79 ; mapped ; 063A 0645 0645 #1.1 ARABIC LIGATURE
GHAIN WITH MEEM WITH MEEM FINAL FORM
+FD7A ; mapped ; 063A 0645 064A #1.1 ARABIC LIGATURE
GHAIN WITH MEEM WITH YEH FINAL FORM
+FD7B ; mapped ; 063A 0645 0649 #1.1 ARABIC LIGATURE
GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD7C..FD7D ; mapped ; 0641 062E 0645 #1.1 ARABIC LIGATURE
FEH WITH KHAH WITH MEEM FINAL FORM..ARABIC LIGATURE FEH WITH KHAH WITH MEEM
INITIAL FORM
+FD7E ; mapped ; 0642 0645 062D #1.1 ARABIC LIGATURE
QAF WITH MEEM WITH HAH FINAL FORM
+FD7F ; mapped ; 0642 0645 0645 #1.1 ARABIC LIGATURE
QAF WITH MEEM WITH MEEM FINAL FORM
+FD80 ; mapped ; 0644 062D 0645 #1.1 ARABIC LIGATURE
LAM WITH HAH WITH MEEM FINAL FORM
+FD81 ; mapped ; 0644 062D 064A #1.1 ARABIC LIGATURE
LAM WITH HAH WITH YEH FINAL FORM
+FD82 ; mapped ; 0644 062D 0649 #1.1 ARABIC LIGATURE
LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD83..FD84 ; mapped ; 0644 062C 062C #1.1 ARABIC LIGATURE
LAM WITH JEEM WITH JEEM INITIAL FORM..ARABIC LIGATURE LAM WITH JEEM WITH JEEM
FINAL FORM
+FD85..FD86 ; mapped ; 0644 062E 0645 #1.1 ARABIC LIGATURE
LAM WITH KHAH WITH MEEM FINAL FORM..ARABIC LIGATURE LAM WITH KHAH WITH MEEM
INITIAL FORM
+FD87..FD88 ; mapped ; 0644 0645 062D #1.1 ARABIC LIGATURE
LAM WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE LAM WITH MEEM WITH HAH
INITIAL FORM
+FD89 ; mapped ; 0645 062D 062C #1.1 ARABIC LIGATURE
MEEM WITH HAH WITH JEEM INITIAL FORM
+FD8A ; mapped ; 0645 062D 0645 #1.1 ARABIC LIGATURE
MEEM WITH HAH WITH MEEM INITIAL FORM
+FD8B ; mapped ; 0645 062D 064A #1.1 ARABIC LIGATURE
MEEM WITH HAH WITH YEH FINAL FORM
+FD8C ; mapped ; 0645 062C 062D #1.1 ARABIC LIGATURE
MEEM WITH JEEM WITH HAH INITIAL FORM
+FD8D ; mapped ; 0645 062C 0645 #1.1 ARABIC LIGATURE
MEEM WITH JEEM WITH MEEM INITIAL FORM
+FD8E ; mapped ; 0645 062E 062C #1.1 ARABIC LIGATURE
MEEM WITH KHAH WITH JEEM INITIAL FORM
+FD8F ; mapped ; 0645 062E 0645 #1.1 ARABIC LIGATURE
MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD90..FD91 ; disallowed # NA
<reserved-FD90>..<reserved-FD91>
+FD92 ; mapped ; 0645 062C 062E #1.1 ARABIC LIGATURE
MEEM WITH JEEM WITH KHAH INITIAL FORM
+FD93 ; mapped ; 0647 0645 062C #1.1 ARABIC LIGATURE
HEH WITH MEEM WITH JEEM INITIAL FORM
+FD94 ; mapped ; 0647 0645 0645 #1.1 ARABIC LIGATURE
HEH WITH MEEM WITH MEEM INITIAL FORM
+FD95 ; mapped ; 0646 062D 0645 #1.1 ARABIC LIGATURE
NOON WITH HAH WITH MEEM INITIAL FORM
+FD96 ; mapped ; 0646 062D 0649 #1.1 ARABIC LIGATURE
NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD97..FD98 ; mapped ; 0646 062C 0645 #1.1 ARABIC LIGATURE
NOON WITH JEEM WITH MEEM FINAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH MEEM
INITIAL FORM
+FD99 ; mapped ; 0646 062C 0649 #1.1 ARABIC LIGATURE
NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FD9A ; mapped ; 0646 0645 064A #1.1 ARABIC LIGATURE
NOON WITH MEEM WITH YEH FINAL FORM
+FD9B ; mapped ; 0646 0645 0649 #1.1 ARABIC LIGATURE
NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD9C..FD9D ; mapped ; 064A 0645 0645 #1.1 ARABIC LIGATURE
YEH WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE YEH WITH MEEM WITH MEEM
INITIAL FORM
+FD9E ; mapped ; 0628 062E 064A #1.1 ARABIC LIGATURE
BEH WITH KHAH WITH YEH FINAL FORM
+FD9F ; mapped ; 062A 062C 064A #1.1 ARABIC LIGATURE
TEH WITH JEEM WITH YEH FINAL FORM
+FDA0 ; mapped ; 062A 062C 0649 #1.1 ARABIC LIGATURE
TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FDA1 ; mapped ; 062A 062E 064A #1.1 ARABIC LIGATURE
TEH WITH KHAH WITH YEH FINAL FORM
+FDA2 ; mapped ; 062A 062E 0649 #1.1 ARABIC LIGATURE
TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDA3 ; mapped ; 062A 0645 064A #1.1 ARABIC LIGATURE
TEH WITH MEEM WITH YEH FINAL FORM
+FDA4 ; mapped ; 062A 0645 0649 #1.1 ARABIC LIGATURE
TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA5 ; mapped ; 062C 0645 064A #1.1 ARABIC LIGATURE
JEEM WITH MEEM WITH YEH FINAL FORM
+FDA6 ; mapped ; 062C 062D 0649 #1.1 ARABIC LIGATURE
JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FDA7 ; mapped ; 062C 0645 0649 #1.1 ARABIC LIGATURE
JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA8 ; mapped ; 0633 062E 0649 #1.1 ARABIC LIGATURE
SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDA9 ; mapped ; 0635 062D 064A #1.1 ARABIC LIGATURE
SAD WITH HAH WITH YEH FINAL FORM
+FDAA ; mapped ; 0634 062D 064A #1.1 ARABIC LIGATURE
SHEEN WITH HAH WITH YEH FINAL FORM
+FDAB ; mapped ; 0636 062D 064A #1.1 ARABIC LIGATURE
DAD WITH HAH WITH YEH FINAL FORM
+FDAC ; mapped ; 0644 062C 064A #1.1 ARABIC LIGATURE
LAM WITH JEEM WITH YEH FINAL FORM
+FDAD ; mapped ; 0644 0645 064A #1.1 ARABIC LIGATURE
LAM WITH MEEM WITH YEH FINAL FORM
+FDAE ; mapped ; 064A 062D 064A #1.1 ARABIC LIGATURE
YEH WITH HAH WITH YEH FINAL FORM
+FDAF ; mapped ; 064A 062C 064A #1.1 ARABIC LIGATURE
YEH WITH JEEM WITH YEH FINAL FORM
+FDB0 ; mapped ; 064A 0645 064A #1.1 ARABIC LIGATURE
YEH WITH MEEM WITH YEH FINAL FORM
+FDB1 ; mapped ; 0645 0645 064A #1.1 ARABIC LIGATURE
MEEM WITH MEEM WITH YEH FINAL FORM
+FDB2 ; mapped ; 0642 0645 064A #1.1 ARABIC LIGATURE
QAF WITH MEEM WITH YEH FINAL FORM
+FDB3 ; mapped ; 0646 062D 064A #1.1 ARABIC LIGATURE
NOON WITH HAH WITH YEH FINAL FORM
+FDB4 ; mapped ; 0642 0645 062D #1.1 ARABIC LIGATURE
QAF WITH MEEM WITH HAH INITIAL FORM
+FDB5 ; mapped ; 0644 062D 0645 #1.1 ARABIC LIGATURE
LAM WITH HAH WITH MEEM INITIAL FORM
+FDB6 ; mapped ; 0639 0645 064A #1.1 ARABIC LIGATURE
AIN WITH MEEM WITH YEH FINAL FORM
+FDB7 ; mapped ; 0643 0645 064A #1.1 ARABIC LIGATURE
KAF WITH MEEM WITH YEH FINAL FORM
+FDB8 ; mapped ; 0646 062C 062D #1.1 ARABIC LIGATURE
NOON WITH JEEM WITH HAH INITIAL FORM
+FDB9 ; mapped ; 0645 062E 064A #1.1 ARABIC LIGATURE
MEEM WITH KHAH WITH YEH FINAL FORM
+FDBA ; mapped ; 0644 062C 0645 #1.1 ARABIC LIGATURE
LAM WITH JEEM WITH MEEM INITIAL FORM
+FDBB ; mapped ; 0643 0645 0645 #1.1 ARABIC LIGATURE
KAF WITH MEEM WITH MEEM FINAL FORM
+FDBC ; mapped ; 0644 062C 0645 #1.1 ARABIC LIGATURE
LAM WITH JEEM WITH MEEM FINAL FORM
+FDBD ; mapped ; 0646 062C 062D #1.1 ARABIC LIGATURE
NOON WITH JEEM WITH HAH FINAL FORM
+FDBE ; mapped ; 062C 062D 064A #1.1 ARABIC LIGATURE
JEEM WITH HAH WITH YEH FINAL FORM
+FDBF ; mapped ; 062D 062C 064A #1.1 ARABIC LIGATURE
HAH WITH JEEM WITH YEH FINAL FORM
+FDC0 ; mapped ; 0645 062C 064A #1.1 ARABIC LIGATURE
MEEM WITH JEEM WITH YEH FINAL FORM
+FDC1 ; mapped ; 0641 0645 064A #1.1 ARABIC LIGATURE
FEH WITH MEEM WITH YEH FINAL FORM
+FDC2 ; mapped ; 0628 062D 064A #1.1 ARABIC LIGATURE
BEH WITH HAH WITH YEH FINAL FORM
+FDC3 ; mapped ; 0643 0645 0645 #1.1 ARABIC LIGATURE
KAF WITH MEEM WITH MEEM INITIAL FORM
+FDC4 ; mapped ; 0639 062C 0645 #1.1 ARABIC LIGATURE
AIN WITH JEEM WITH MEEM INITIAL FORM
+FDC5 ; mapped ; 0635 0645 0645 #1.1 ARABIC LIGATURE
SAD WITH MEEM WITH MEEM INITIAL FORM
+FDC6 ; mapped ; 0633 062E 064A #1.1 ARABIC LIGATURE
SEEN WITH KHAH WITH YEH FINAL FORM
+FDC7 ; mapped ; 0646 062C 064A #1.1 ARABIC LIGATURE
NOON WITH JEEM WITH YEH FINAL FORM
+FDC8..FDCE ; disallowed # NA
<reserved-FDC8>..<reserved-FDCE>
+FDCF ; valid ; ; NV8 # 14.0 ARABIC LIGATURE
SALAAMUHU ALAYNAA
+FDD0..FDEF ; disallowed # 3.1
<noncharacter-FDD0>..<noncharacter-FDEF>
+FDF0 ; mapped ; 0635 0644 06D2 #1.1 ARABIC LIGATURE
SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
+FDF1 ; mapped ; 0642 0644 06D2 #1.1 ARABIC LIGATURE
QALA USED AS KORANIC STOP SIGN ISOLATED FORM
+FDF2 ; mapped ; 0627 0644 0644 0647 #1.1 ARABIC
LIGATURE ALLAH ISOLATED FORM
+FDF3 ; mapped ; 0627 0643 0628 0631 #1.1 ARABIC
LIGATURE AKBAR ISOLATED FORM
+FDF4 ; mapped ; 0645 062D 0645 062F #1.1 ARABIC
LIGATURE MOHAMMAD ISOLATED FORM
+FDF5 ; mapped ; 0635 0644 0639 0645 #1.1 ARABIC
LIGATURE SALAM ISOLATED FORM
+FDF6 ; mapped ; 0631 0633 0648 0644 #1.1 ARABIC
LIGATURE RASOUL ISOLATED FORM
+FDF7 ; mapped ; 0639 0644 064A 0647 #1.1 ARABIC
LIGATURE ALAYHE ISOLATED FORM
+FDF8 ; mapped ; 0648 0633 0644 0645 #1.1 ARABIC
LIGATURE WASALLAM ISOLATED FORM
+FDF9 ; mapped ; 0635 0644 0649 #1.1 ARABIC LIGATURE
SALLA ISOLATED FORM
+FDFA ; disallowed_STD3_mapped ; 0635 0644 0649 0020 0627 0644 0644
0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645 #1.1 ARABIC LIGATURE
SALLALLAHOU ALAYHE WASALLAM
+FDFB ; disallowed_STD3_mapped ; 062C 0644 0020 062C 0644 0627 0644
0647 #1.1 ARABIC LIGATURE JALLAJALALOUHOU
+FDFC ; mapped ; 0631 06CC 0627 0644 #3.2 RIAL SIGN
+FDFD ; valid ; ; NV8 # 4.0 ARABIC LIGATURE
BISMILLAH AR-RAHMAN AR-RAHEEM
+FDFE..FDFF ; valid ; ; NV8 # 14.0 ARABIC LIGATURE
SUBHAANAHU WA TAAALAA..ARABIC LIGATURE AZZA WA JALL
+FE00..FE0F ; ignored # 3.2 VARIATION
SELECTOR-1..VARIATION SELECTOR-16
+FE10 ; disallowed_STD3_mapped ; 002C # 4.1 PRESENTATION
FORM FOR VERTICAL COMMA
+FE11 ; mapped ; 3001 # 4.1 PRESENTATION
FORM FOR VERTICAL IDEOGRAPHIC COMMA
+FE12 ; disallowed # 4.1 PRESENTATION
FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
+FE13 ; disallowed_STD3_mapped ; 003A # 4.1 PRESENTATION
FORM FOR VERTICAL COLON
+FE14 ; disallowed_STD3_mapped ; 003B # 4.1 PRESENTATION
FORM FOR VERTICAL SEMICOLON
+FE15 ; disallowed_STD3_mapped ; 0021 # 4.1 PRESENTATION
FORM FOR VERTICAL EXCLAMATION MARK
+FE16 ; disallowed_STD3_mapped ; 003F # 4.1 PRESENTATION
FORM FOR VERTICAL QUESTION MARK
+FE17 ; mapped ; 3016 # 4.1 PRESENTATION
FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+FE18 ; mapped ; 3017 # 4.1 PRESENTATION
FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+FE19 ; disallowed # 4.1 PRESENTATION
FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE1A..FE1F ; disallowed # NA
<reserved-FE1A>..<reserved-FE1F>
+FE20..FE23 ; valid # 1.1 COMBINING
LIGATURE LEFT HALF..COMBINING DOUBLE TILDE RIGHT HALF
+FE24..FE26 ; valid # 5.1 COMBINING MACRON
LEFT HALF..COMBINING CONJOINING MACRON
+FE27..FE2D ; valid # 7.0 COMBINING
LIGATURE LEFT HALF BELOW..COMBINING CONJOINING MACRON BELOW
+FE2E..FE2F ; valid # 8.0 COMBINING
CYRILLIC TITLO LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
+FE30 ; disallowed # 1.1 PRESENTATION
FORM FOR VERTICAL TWO DOT LEADER
+FE31 ; mapped ; 2014 # 1.1 PRESENTATION
FORM FOR VERTICAL EM DASH
+FE32 ; mapped ; 2013 # 1.1 PRESENTATION
FORM FOR VERTICAL EN DASH
+FE33..FE34 ; disallowed_STD3_mapped ; 005F # 1.1 PRESENTATION
FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE35 ; disallowed_STD3_mapped ; 0028 # 1.1 PRESENTATION
FORM FOR VERTICAL LEFT PARENTHESIS
+FE36 ; disallowed_STD3_mapped ; 0029 # 1.1 PRESENTATION
FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37 ; disallowed_STD3_mapped ; 007B # 1.1 PRESENTATION
FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38 ; disallowed_STD3_mapped ; 007D # 1.1 PRESENTATION
FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39 ; mapped ; 3014 # 1.1 PRESENTATION
FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A ; mapped ; 3015 # 1.1 PRESENTATION
FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B ; mapped ; 3010 # 1.1 PRESENTATION
FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C ; mapped ; 3011 # 1.1 PRESENTATION
FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D ; mapped ; 300A # 1.1 PRESENTATION
FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E ; mapped ; 300B # 1.1 PRESENTATION
FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F ; mapped ; 3008 # 1.1 PRESENTATION
FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE40 ; mapped ; 3009 # 1.1 PRESENTATION
FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41 ; mapped ; 300C # 1.1 PRESENTATION
FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42 ; mapped ; 300D # 1.1 PRESENTATION
FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43 ; mapped ; 300E # 1.1 PRESENTATION
FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44 ; mapped ; 300F # 1.1 PRESENTATION
FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE45..FE46 ; valid ; ; NV8 # 3.2 SESAME
DOT..WHITE SESAME DOT
+FE47 ; disallowed_STD3_mapped ; 005B # 4.0 PRESENTATION
FORM FOR VERTICAL LEFT SQUARE BRACKET
+FE48 ; disallowed_STD3_mapped ; 005D # 4.0 PRESENTATION
FORM FOR VERTICAL RIGHT SQUARE BRACKET
+FE49..FE4C ; disallowed_STD3_mapped ; 0020 0305 # 1.1 DASHED
OVERLINE..DOUBLE WAVY OVERLINE
+FE4D..FE4F ; disallowed_STD3_mapped ; 005F # 1.1 DASHED LOW
LINE..WAVY LOW LINE
+FE50 ; disallowed_STD3_mapped ; 002C # 1.1 SMALL COMMA
+FE51 ; mapped ; 3001 # 1.1 SMALL
IDEOGRAPHIC COMMA
+FE52 ; disallowed # 1.1 SMALL FULL STOP
+FE53 ; disallowed # NA <reserved-FE53>
+FE54 ; disallowed_STD3_mapped ; 003B # 1.1 SMALL SEMICOLON
+FE55 ; disallowed_STD3_mapped ; 003A # 1.1 SMALL COLON
+FE56 ; disallowed_STD3_mapped ; 003F # 1.1 SMALL QUESTION
MARK
+FE57 ; disallowed_STD3_mapped ; 0021 # 1.1 SMALL
EXCLAMATION MARK
+FE58 ; mapped ; 2014 # 1.1 SMALL EM DASH
+FE59 ; disallowed_STD3_mapped ; 0028 # 1.1 SMALL LEFT
PARENTHESIS
+FE5A ; disallowed_STD3_mapped ; 0029 # 1.1 SMALL RIGHT
PARENTHESIS
+FE5B ; disallowed_STD3_mapped ; 007B # 1.1 SMALL LEFT CURLY
BRACKET
+FE5C ; disallowed_STD3_mapped ; 007D # 1.1 SMALL RIGHT
CURLY BRACKET
+FE5D ; mapped ; 3014 # 1.1 SMALL LEFT
TORTOISE SHELL BRACKET
+FE5E ; mapped ; 3015 # 1.1 SMALL RIGHT
TORTOISE SHELL BRACKET
+FE5F ; disallowed_STD3_mapped ; 0023 # 1.1 SMALL NUMBER SIGN
+FE60 ; disallowed_STD3_mapped ; 0026 # 1.1 SMALL AMPERSAND
+FE61 ; disallowed_STD3_mapped ; 002A # 1.1 SMALL ASTERISK
+FE62 ; disallowed_STD3_mapped ; 002B # 1.1 SMALL PLUS SIGN
+FE63 ; mapped ; 002D # 1.1 SMALL
HYPHEN-MINUS
+FE64 ; disallowed_STD3_mapped ; 003C # 1.1 SMALL LESS-THAN
SIGN
+FE65 ; disallowed_STD3_mapped ; 003E # 1.1 SMALL
GREATER-THAN SIGN
+FE66 ; disallowed_STD3_mapped ; 003D # 1.1 SMALL EQUALS SIGN
+FE67 ; disallowed # NA <reserved-FE67>
+FE68 ; disallowed_STD3_mapped ; 005C # 1.1 SMALL REVERSE
SOLIDUS
+FE69 ; disallowed_STD3_mapped ; 0024 # 1.1 SMALL DOLLAR SIGN
+FE6A ; disallowed_STD3_mapped ; 0025 # 1.1 SMALL PERCENT
SIGN
+FE6B ; disallowed_STD3_mapped ; 0040 # 1.1 SMALL COMMERCIAL
AT
+FE6C..FE6F ; disallowed # NA
<reserved-FE6C>..<reserved-FE6F>
+FE70 ; disallowed_STD3_mapped ; 0020 064B # 1.1 ARABIC FATHATAN
ISOLATED FORM
+FE71 ; mapped ; 0640 064B # 1.1 ARABIC TATWEEL
WITH FATHATAN ABOVE
+FE72 ; disallowed_STD3_mapped ; 0020 064C # 1.1 ARABIC DAMMATAN
ISOLATED FORM
+FE73 ; valid # 3.2 ARABIC TAIL
FRAGMENT
+FE74 ; disallowed_STD3_mapped ; 0020 064D # 1.1 ARABIC KASRATAN
ISOLATED FORM
+FE75 ; disallowed # NA <reserved-FE75>
+FE76 ; disallowed_STD3_mapped ; 0020 064E # 1.1 ARABIC FATHA
ISOLATED FORM
+FE77 ; mapped ; 0640 064E # 1.1 ARABIC FATHA
MEDIAL FORM
+FE78 ; disallowed_STD3_mapped ; 0020 064F # 1.1 ARABIC DAMMA
ISOLATED FORM
+FE79 ; mapped ; 0640 064F # 1.1 ARABIC DAMMA
MEDIAL FORM
+FE7A ; disallowed_STD3_mapped ; 0020 0650 # 1.1 ARABIC KASRA
ISOLATED FORM
+FE7B ; mapped ; 0640 0650 # 1.1 ARABIC KASRA
MEDIAL FORM
+FE7C ; disallowed_STD3_mapped ; 0020 0651 # 1.1 ARABIC SHADDA
ISOLATED FORM
+FE7D ; mapped ; 0640 0651 # 1.1 ARABIC SHADDA
MEDIAL FORM
+FE7E ; disallowed_STD3_mapped ; 0020 0652 # 1.1 ARABIC SUKUN
ISOLATED FORM
+FE7F ; mapped ; 0640 0652 # 1.1 ARABIC SUKUN
MEDIAL FORM
+FE80 ; mapped ; 0621 # 1.1 ARABIC LETTER
HAMZA ISOLATED FORM
+FE81..FE82 ; mapped ; 0622 # 1.1 ARABIC LETTER
ALEF WITH MADDA ABOVE ISOLATED FORM..ARABIC LETTER ALEF WITH MADDA ABOVE FINAL
FORM
+FE83..FE84 ; mapped ; 0623 # 1.1 ARABIC LETTER
ALEF WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL
FORM
+FE85..FE86 ; mapped ; 0624 # 1.1 ARABIC LETTER
WAW WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER WAW WITH HAMZA ABOVE FINAL
FORM
+FE87..FE88 ; mapped ; 0625 # 1.1 ARABIC LETTER
ALEF WITH HAMZA BELOW ISOLATED FORM..ARABIC LETTER ALEF WITH HAMZA BELOW FINAL
FORM
+FE89..FE8C ; mapped ; 0626 # 1.1 ARABIC LETTER
YEH WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL
FORM
+FE8D..FE8E ; mapped ; 0627 # 1.1 ARABIC LETTER
ALEF ISOLATED FORM..ARABIC LETTER ALEF FINAL FORM
+FE8F..FE92 ; mapped ; 0628 # 1.1 ARABIC LETTER
BEH ISOLATED FORM..ARABIC LETTER BEH MEDIAL FORM
+FE93..FE94 ; mapped ; 0629 # 1.1 ARABIC LETTER
TEH MARBUTA ISOLATED FORM..ARABIC LETTER TEH MARBUTA FINAL FORM
+FE95..FE98 ; mapped ; 062A # 1.1 ARABIC LETTER
TEH ISOLATED FORM..ARABIC LETTER TEH MEDIAL FORM
+FE99..FE9C ; mapped ; 062B # 1.1 ARABIC LETTER
THEH ISOLATED FORM..ARABIC LETTER THEH MEDIAL FORM
+FE9D..FEA0 ; mapped ; 062C # 1.1 ARABIC LETTER
JEEM ISOLATED FORM..ARABIC LETTER JEEM MEDIAL FORM
+FEA1..FEA4 ; mapped ; 062D # 1.1 ARABIC LETTER
HAH ISOLATED FORM..ARABIC LETTER HAH MEDIAL FORM
+FEA5..FEA8 ; mapped ; 062E # 1.1 ARABIC LETTER
KHAH ISOLATED FORM..ARABIC LETTER KHAH MEDIAL FORM
+FEA9..FEAA ; mapped ; 062F # 1.1 ARABIC LETTER
DAL ISOLATED FORM..ARABIC LETTER DAL FINAL FORM
+FEAB..FEAC ; mapped ; 0630 # 1.1 ARABIC LETTER
THAL ISOLATED FORM..ARABIC LETTER THAL FINAL FORM
+FEAD..FEAE ; mapped ; 0631 # 1.1 ARABIC LETTER
REH ISOLATED FORM..ARABIC LETTER REH FINAL FORM
+FEAF..FEB0 ; mapped ; 0632 # 1.1 ARABIC LETTER
ZAIN ISOLATED FORM..ARABIC LETTER ZAIN FINAL FORM
+FEB1..FEB4 ; mapped ; 0633 # 1.1 ARABIC LETTER
SEEN ISOLATED FORM..ARABIC LETTER SEEN MEDIAL FORM
+FEB5..FEB8 ; mapped ; 0634 # 1.1 ARABIC LETTER
SHEEN ISOLATED FORM..ARABIC LETTER SHEEN MEDIAL FORM
+FEB9..FEBC ; mapped ; 0635 # 1.1 ARABIC LETTER
SAD ISOLATED FORM..ARABIC LETTER SAD MEDIAL FORM
+FEBD..FEC0 ; mapped ; 0636 # 1.1 ARABIC LETTER
DAD ISOLATED FORM..ARABIC LETTER DAD MEDIAL FORM
+FEC1..FEC4 ; mapped ; 0637 # 1.1 ARABIC LETTER
TAH ISOLATED FORM..ARABIC LETTER TAH MEDIAL FORM
+FEC5..FEC8 ; mapped ; 0638 # 1.1 ARABIC LETTER
ZAH ISOLATED FORM..ARABIC LETTER ZAH MEDIAL FORM
+FEC9..FECC ; mapped ; 0639 # 1.1 ARABIC LETTER
AIN ISOLATED FORM..ARABIC LETTER AIN MEDIAL FORM
+FECD..FED0 ; mapped ; 063A # 1.1 ARABIC LETTER
GHAIN ISOLATED FORM..ARABIC LETTER GHAIN MEDIAL FORM
+FED1..FED4 ; mapped ; 0641 # 1.1 ARABIC LETTER
FEH ISOLATED FORM..ARABIC LETTER FEH MEDIAL FORM
+FED5..FED8 ; mapped ; 0642 # 1.1 ARABIC LETTER
QAF ISOLATED FORM..ARABIC LETTER QAF MEDIAL FORM
+FED9..FEDC ; mapped ; 0643 # 1.1 ARABIC LETTER
KAF ISOLATED FORM..ARABIC LETTER KAF MEDIAL FORM
+FEDD..FEE0 ; mapped ; 0644 # 1.1 ARABIC LETTER
LAM ISOLATED FORM..ARABIC LETTER LAM MEDIAL FORM
+FEE1..FEE4 ; mapped ; 0645 # 1.1 ARABIC LETTER
MEEM ISOLATED FORM..ARABIC LETTER MEEM MEDIAL FORM
+FEE5..FEE8 ; mapped ; 0646 # 1.1 ARABIC LETTER
NOON ISOLATED FORM..ARABIC LETTER NOON MEDIAL FORM
+FEE9..FEEC ; mapped ; 0647 # 1.1 ARABIC LETTER
HEH ISOLATED FORM..ARABIC LETTER HEH MEDIAL FORM
+FEED..FEEE ; mapped ; 0648 # 1.1 ARABIC LETTER
WAW ISOLATED FORM..ARABIC LETTER WAW FINAL FORM
+FEEF..FEF0 ; mapped ; 0649 # 1.1 ARABIC LETTER
ALEF MAKSURA ISOLATED FORM..ARABIC LETTER ALEF MAKSURA FINAL FORM
+FEF1..FEF4 ; mapped ; 064A # 1.1 ARABIC LETTER
YEH ISOLATED FORM..ARABIC LETTER YEH MEDIAL FORM
+FEF5..FEF6 ; mapped ; 0644 0622 # 1.1 ARABIC LIGATURE
LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF
WITH MADDA ABOVE FINAL FORM
+FEF7..FEF8 ; mapped ; 0644 0623 # 1.1 ARABIC LIGATURE
LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF
WITH HAMZA ABOVE FINAL FORM
+FEF9..FEFA ; mapped ; 0644 0625 # 1.1 ARABIC LIGATURE
LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF
WITH HAMZA BELOW FINAL FORM
+FEFB..FEFC ; mapped ; 0644 0627 # 1.1 ARABIC LIGATURE
LAM WITH ALEF ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FEFD..FEFE ; disallowed # NA
<reserved-FEFD>..<reserved-FEFE>
+FEFF ; ignored # 1.1 ZERO WIDTH
NO-BREAK SPACE
+FF00 ; disallowed # NA <reserved-FF00>
+FF01 ; disallowed_STD3_mapped ; 0021 # 1.1 FULLWIDTH
EXCLAMATION MARK
+FF02 ; disallowed_STD3_mapped ; 0022 # 1.1 FULLWIDTH
QUOTATION MARK
+FF03 ; disallowed_STD3_mapped ; 0023 # 1.1 FULLWIDTH NUMBER
SIGN
+FF04 ; disallowed_STD3_mapped ; 0024 # 1.1 FULLWIDTH DOLLAR
SIGN
+FF05 ; disallowed_STD3_mapped ; 0025 # 1.1 FULLWIDTH
PERCENT SIGN
+FF06 ; disallowed_STD3_mapped ; 0026 # 1.1 FULLWIDTH
AMPERSAND
+FF07 ; disallowed_STD3_mapped ; 0027 # 1.1 FULLWIDTH
APOSTROPHE
+FF08 ; disallowed_STD3_mapped ; 0028 # 1.1 FULLWIDTH LEFT
PARENTHESIS
+FF09 ; disallowed_STD3_mapped ; 0029 # 1.1 FULLWIDTH RIGHT
PARENTHESIS
+FF0A ; disallowed_STD3_mapped ; 002A # 1.1 FULLWIDTH
ASTERISK
+FF0B ; disallowed_STD3_mapped ; 002B # 1.1 FULLWIDTH PLUS
SIGN
+FF0C ; disallowed_STD3_mapped ; 002C # 1.1 FULLWIDTH COMMA
+FF0D ; mapped ; 002D # 1.1 FULLWIDTH
HYPHEN-MINUS
+FF0E ; mapped ; 002E # 1.1 FULLWIDTH FULL
STOP
+FF0F ; disallowed_STD3_mapped ; 002F # 1.1 FULLWIDTH SOLIDUS
+FF10 ; mapped ; 0030 # 1.1 FULLWIDTH DIGIT
ZERO
+FF11 ; mapped ; 0031 # 1.1 FULLWIDTH DIGIT
ONE
+FF12 ; mapped ; 0032 # 1.1 FULLWIDTH DIGIT
TWO
+FF13 ; mapped ; 0033 # 1.1 FULLWIDTH DIGIT
THREE
+FF14 ; mapped ; 0034 # 1.1 FULLWIDTH DIGIT
FOUR
+FF15 ; mapped ; 0035 # 1.1 FULLWIDTH DIGIT
FIVE
+FF16 ; mapped ; 0036 # 1.1 FULLWIDTH DIGIT
SIX
+FF17 ; mapped ; 0037 # 1.1 FULLWIDTH DIGIT
SEVEN
+FF18 ; mapped ; 0038 # 1.1 FULLWIDTH DIGIT
EIGHT
+FF19 ; mapped ; 0039 # 1.1 FULLWIDTH DIGIT
NINE
+FF1A ; disallowed_STD3_mapped ; 003A # 1.1 FULLWIDTH COLON
+FF1B ; disallowed_STD3_mapped ; 003B # 1.1 FULLWIDTH
SEMICOLON
+FF1C ; disallowed_STD3_mapped ; 003C # 1.1 FULLWIDTH
LESS-THAN SIGN
+FF1D ; disallowed_STD3_mapped ; 003D # 1.1 FULLWIDTH EQUALS
SIGN
+FF1E ; disallowed_STD3_mapped ; 003E # 1.1 FULLWIDTH
GREATER-THAN SIGN
+FF1F ; disallowed_STD3_mapped ; 003F # 1.1 FULLWIDTH
QUESTION MARK
+FF20 ; disallowed_STD3_mapped ; 0040 # 1.1 FULLWIDTH
COMMERCIAL AT
+FF21 ; mapped ; 0061 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER A
+FF22 ; mapped ; 0062 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER B
+FF23 ; mapped ; 0063 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER C
+FF24 ; mapped ; 0064 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER D
+FF25 ; mapped ; 0065 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER E
+FF26 ; mapped ; 0066 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER F
+FF27 ; mapped ; 0067 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER G
+FF28 ; mapped ; 0068 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER H
+FF29 ; mapped ; 0069 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER I
+FF2A ; mapped ; 006A # 1.1 FULLWIDTH LATIN
CAPITAL LETTER J
+FF2B ; mapped ; 006B # 1.1 FULLWIDTH LATIN
CAPITAL LETTER K
+FF2C ; mapped ; 006C # 1.1 FULLWIDTH LATIN
CAPITAL LETTER L
+FF2D ; mapped ; 006D # 1.1 FULLWIDTH LATIN
CAPITAL LETTER M
+FF2E ; mapped ; 006E # 1.1 FULLWIDTH LATIN
CAPITAL LETTER N
+FF2F ; mapped ; 006F # 1.1 FULLWIDTH LATIN
CAPITAL LETTER O
+FF30 ; mapped ; 0070 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER P
+FF31 ; mapped ; 0071 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER Q
+FF32 ; mapped ; 0072 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER R
+FF33 ; mapped ; 0073 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER S
+FF34 ; mapped ; 0074 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER T
+FF35 ; mapped ; 0075 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER U
+FF36 ; mapped ; 0076 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER V
+FF37 ; mapped ; 0077 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER W
+FF38 ; mapped ; 0078 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER X
+FF39 ; mapped ; 0079 # 1.1 FULLWIDTH LATIN
CAPITAL LETTER Y
+FF3A ; mapped ; 007A # 1.1 FULLWIDTH LATIN
CAPITAL LETTER Z
+FF3B ; disallowed_STD3_mapped ; 005B # 1.1 FULLWIDTH LEFT
SQUARE BRACKET
+FF3C ; disallowed_STD3_mapped ; 005C # 1.1 FULLWIDTH
REVERSE SOLIDUS
+FF3D ; disallowed_STD3_mapped ; 005D # 1.1 FULLWIDTH RIGHT
SQUARE BRACKET
+FF3E ; disallowed_STD3_mapped ; 005E # 1.1 FULLWIDTH
CIRCUMFLEX ACCENT
+FF3F ; disallowed_STD3_mapped ; 005F # 1.1 FULLWIDTH LOW
LINE
+FF40 ; disallowed_STD3_mapped ; 0060 # 1.1 FULLWIDTH GRAVE
ACCENT
+FF41 ; mapped ; 0061 # 1.1 FULLWIDTH LATIN
SMALL LETTER A
+FF42 ; mapped ; 0062 # 1.1 FULLWIDTH LATIN
SMALL LETTER B
+FF43 ; mapped ; 0063 # 1.1 FULLWIDTH LATIN
SMALL LETTER C
+FF44 ; mapped ; 0064 # 1.1 FULLWIDTH LATIN
SMALL LETTER D
+FF45 ; mapped ; 0065 # 1.1 FULLWIDTH LATIN
SMALL LETTER E
+FF46 ; mapped ; 0066 # 1.1 FULLWIDTH LATIN
SMALL LETTER F
+FF47 ; mapped ; 0067 # 1.1 FULLWIDTH LATIN
SMALL LETTER G
+FF48 ; mapped ; 0068 # 1.1 FULLWIDTH LATIN
SMALL LETTER H
+FF49 ; mapped ; 0069 # 1.1 FULLWIDTH LATIN
SMALL LETTER I
+FF4A ; mapped ; 006A # 1.1 FULLWIDTH LATIN
SMALL LETTER J
+FF4B ; mapped ; 006B # 1.1 FULLWIDTH LATIN
SMALL LETTER K
+FF4C ; mapped ; 006C # 1.1 FULLWIDTH LATIN
SMALL LETTER L
+FF4D ; mapped ; 006D # 1.1 FULLWIDTH LATIN
SMALL LETTER M
+FF4E ; mapped ; 006E # 1.1 FULLWIDTH LATIN
SMALL LETTER N
+FF4F ; mapped ; 006F # 1.1 FULLWIDTH LATIN
SMALL LETTER O
+FF50 ; mapped ; 0070 # 1.1 FULLWIDTH LATIN
SMALL LETTER P
+FF51 ; mapped ; 0071 # 1.1 FULLWIDTH LATIN
SMALL LETTER Q
+FF52 ; mapped ; 0072 # 1.1 FULLWIDTH LATIN
SMALL LETTER R
+FF53 ; mapped ; 0073 # 1.1 FULLWIDTH LATIN
SMALL LETTER S
+FF54 ; mapped ; 0074 # 1.1 FULLWIDTH LATIN
SMALL LETTER T
+FF55 ; mapped ; 0075 # 1.1 FULLWIDTH LATIN
SMALL LETTER U
+FF56 ; mapped ; 0076 # 1.1 FULLWIDTH LATIN
SMALL LETTER V
+FF57 ; mapped ; 0077 # 1.1 FULLWIDTH LATIN
SMALL LETTER W
+FF58 ; mapped ; 0078 # 1.1 FULLWIDTH LATIN
SMALL LETTER X
+FF59 ; mapped ; 0079 # 1.1 FULLWIDTH LATIN
SMALL LETTER Y
+FF5A ; mapped ; 007A # 1.1 FULLWIDTH LATIN
SMALL LETTER Z
+FF5B ; disallowed_STD3_mapped ; 007B # 1.1 FULLWIDTH LEFT
CURLY BRACKET
+FF5C ; disallowed_STD3_mapped ; 007C # 1.1 FULLWIDTH
VERTICAL LINE
+FF5D ; disallowed_STD3_mapped ; 007D # 1.1 FULLWIDTH RIGHT
CURLY BRACKET
+FF5E ; disallowed_STD3_mapped ; 007E # 1.1 FULLWIDTH TILDE
+FF5F ; mapped ; 2985 # 3.2 FULLWIDTH LEFT
WHITE PARENTHESIS
+FF60 ; mapped ; 2986 # 3.2 FULLWIDTH RIGHT
WHITE PARENTHESIS
+FF61 ; mapped ; 002E # 1.1 HALFWIDTH
IDEOGRAPHIC FULL STOP
+FF62 ; mapped ; 300C # 1.1 HALFWIDTH LEFT
CORNER BRACKET
+FF63 ; mapped ; 300D # 1.1 HALFWIDTH RIGHT
CORNER BRACKET
+FF64 ; mapped ; 3001 # 1.1 HALFWIDTH
IDEOGRAPHIC COMMA
+FF65 ; mapped ; 30FB # 1.1 HALFWIDTH
KATAKANA MIDDLE DOT
+FF66 ; mapped ; 30F2 # 1.1 HALFWIDTH
KATAKANA LETTER WO
+FF67 ; mapped ; 30A1 # 1.1 HALFWIDTH
KATAKANA LETTER SMALL A
+FF68 ; mapped ; 30A3 # 1.1 HALFWIDTH
KATAKANA LETTER SMALL I
+FF69 ; mapped ; 30A5 # 1.1 HALFWIDTH
KATAKANA LETTER SMALL U
+FF6A ; mapped ; 30A7 # 1.1 HALFWIDTH
KATAKANA LETTER SMALL E
+FF6B ; mapped ; 30A9 # 1.1 HALFWIDTH
KATAKANA LETTER SMALL O
+FF6C ; mapped ; 30E3 # 1.1 HALFWIDTH
KATAKANA LETTER SMALL YA
+FF6D ; mapped ; 30E5 # 1.1 HALFWIDTH
KATAKANA LETTER SMALL YU
+FF6E ; mapped ; 30E7 # 1.1 HALFWIDTH
KATAKANA LETTER SMALL YO
+FF6F ; mapped ; 30C3 # 1.1 HALFWIDTH
KATAKANA LETTER SMALL TU
+FF70 ; mapped ; 30FC # 1.1 HALFWIDTH
KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71 ; mapped ; 30A2 # 1.1 HALFWIDTH
KATAKANA LETTER A
+FF72 ; mapped ; 30A4 # 1.1 HALFWIDTH
KATAKANA LETTER I
+FF73 ; mapped ; 30A6 # 1.1 HALFWIDTH
KATAKANA LETTER U
+FF74 ; mapped ; 30A8 # 1.1 HALFWIDTH
KATAKANA LETTER E
+FF75 ; mapped ; 30AA # 1.1 HALFWIDTH
KATAKANA LETTER O
+FF76 ; mapped ; 30AB # 1.1 HALFWIDTH
KATAKANA LETTER KA
+FF77 ; mapped ; 30AD # 1.1 HALFWIDTH
KATAKANA LETTER KI
+FF78 ; mapped ; 30AF # 1.1 HALFWIDTH
KATAKANA LETTER KU
+FF79 ; mapped ; 30B1 # 1.1 HALFWIDTH
KATAKANA LETTER KE
+FF7A ; mapped ; 30B3 # 1.1 HALFWIDTH
KATAKANA LETTER KO
+FF7B ; mapped ; 30B5 # 1.1 HALFWIDTH
KATAKANA LETTER SA
+FF7C ; mapped ; 30B7 # 1.1 HALFWIDTH
KATAKANA LETTER SI
+FF7D ; mapped ; 30B9 # 1.1 HALFWIDTH
KATAKANA LETTER SU
+FF7E ; mapped ; 30BB # 1.1 HALFWIDTH
KATAKANA LETTER SE
+FF7F ; mapped ; 30BD # 1.1 HALFWIDTH
KATAKANA LETTER SO
+FF80 ; mapped ; 30BF # 1.1 HALFWIDTH
KATAKANA LETTER TA
+FF81 ; mapped ; 30C1 # 1.1 HALFWIDTH
KATAKANA LETTER TI
+FF82 ; mapped ; 30C4 # 1.1 HALFWIDTH
KATAKANA LETTER TU
+FF83 ; mapped ; 30C6 # 1.1 HALFWIDTH
KATAKANA LETTER TE
+FF84 ; mapped ; 30C8 # 1.1 HALFWIDTH
KATAKANA LETTER TO
+FF85 ; mapped ; 30CA # 1.1 HALFWIDTH
KATAKANA LETTER NA
+FF86 ; mapped ; 30CB # 1.1 HALFWIDTH
KATAKANA LETTER NI
+FF87 ; mapped ; 30CC # 1.1 HALFWIDTH
KATAKANA LETTER NU
+FF88 ; mapped ; 30CD # 1.1 HALFWIDTH
KATAKANA LETTER NE
+FF89 ; mapped ; 30CE # 1.1 HALFWIDTH
KATAKANA LETTER NO
+FF8A ; mapped ; 30CF # 1.1 HALFWIDTH
KATAKANA LETTER HA
+FF8B ; mapped ; 30D2 # 1.1 HALFWIDTH
KATAKANA LETTER HI
+FF8C ; mapped ; 30D5 # 1.1 HALFWIDTH
KATAKANA LETTER HU
+FF8D ; mapped ; 30D8 # 1.1 HALFWIDTH
KATAKANA LETTER HE
+FF8E ; mapped ; 30DB # 1.1 HALFWIDTH
KATAKANA LETTER HO
+FF8F ; mapped ; 30DE # 1.1 HALFWIDTH
KATAKANA LETTER MA
+FF90 ; mapped ; 30DF # 1.1 HALFWIDTH
KATAKANA LETTER MI
+FF91 ; mapped ; 30E0 # 1.1 HALFWIDTH
KATAKANA LETTER MU
+FF92 ; mapped ; 30E1 # 1.1 HALFWIDTH
KATAKANA LETTER ME
+FF93 ; mapped ; 30E2 # 1.1 HALFWIDTH
KATAKANA LETTER MO
+FF94 ; mapped ; 30E4 # 1.1 HALFWIDTH
KATAKANA LETTER YA
+FF95 ; mapped ; 30E6 # 1.1 HALFWIDTH
KATAKANA LETTER YU
+FF96 ; mapped ; 30E8 # 1.1 HALFWIDTH
KATAKANA LETTER YO
+FF97 ; mapped ; 30E9 # 1.1 HALFWIDTH
KATAKANA LETTER RA
+FF98 ; mapped ; 30EA # 1.1 HALFWIDTH
KATAKANA LETTER RI
+FF99 ; mapped ; 30EB # 1.1 HALFWIDTH
KATAKANA LETTER RU
+FF9A ; mapped ; 30EC # 1.1 HALFWIDTH
KATAKANA LETTER RE
+FF9B ; mapped ; 30ED # 1.1 HALFWIDTH
KATAKANA LETTER RO
+FF9C ; mapped ; 30EF # 1.1 HALFWIDTH
KATAKANA LETTER WA
+FF9D ; mapped ; 30F3 # 1.1 HALFWIDTH
KATAKANA LETTER N
+FF9E ; mapped ; 3099 # 1.1 HALFWIDTH
KATAKANA VOICED SOUND MARK
+FF9F ; mapped ; 309A # 1.1 HALFWIDTH
KATAKANA SEMI-VOICED SOUND MARK
+FFA0 ; disallowed # 1.1 HALFWIDTH HANGUL
FILLER
+FFA1 ; mapped ; 1100 # 1.1 HALFWIDTH HANGUL
LETTER KIYEOK
+FFA2 ; mapped ; 1101 # 1.1 HALFWIDTH HANGUL
LETTER SSANGKIYEOK
+FFA3 ; mapped ; 11AA # 1.1 HALFWIDTH HANGUL
LETTER KIYEOK-SIOS
+FFA4 ; mapped ; 1102 # 1.1 HALFWIDTH HANGUL
LETTER NIEUN
+FFA5 ; mapped ; 11AC # 1.1 HALFWIDTH HANGUL
LETTER NIEUN-CIEUC
+FFA6 ; mapped ; 11AD # 1.1 HALFWIDTH HANGUL
LETTER NIEUN-HIEUH
+FFA7 ; mapped ; 1103 # 1.1 HALFWIDTH HANGUL
LETTER TIKEUT
+FFA8 ; mapped ; 1104 # 1.1 HALFWIDTH HANGUL
LETTER SSANGTIKEUT
+FFA9 ; mapped ; 1105 # 1.1 HALFWIDTH HANGUL
LETTER RIEUL
+FFAA ; mapped ; 11B0 # 1.1 HALFWIDTH HANGUL
LETTER RIEUL-KIYEOK
+FFAB ; mapped ; 11B1 # 1.1 HALFWIDTH HANGUL
LETTER RIEUL-MIEUM
+FFAC ; mapped ; 11B2 # 1.1 HALFWIDTH HANGUL
LETTER RIEUL-PIEUP
+FFAD ; mapped ; 11B3 # 1.1 HALFWIDTH HANGUL
LETTER RIEUL-SIOS
+FFAE ; mapped ; 11B4 # 1.1 HALFWIDTH HANGUL
LETTER RIEUL-THIEUTH
+FFAF ; mapped ; 11B5 # 1.1 HALFWIDTH HANGUL
LETTER RIEUL-PHIEUPH
+FFB0 ; mapped ; 111A # 1.1 HALFWIDTH HANGUL
LETTER RIEUL-HIEUH
+FFB1 ; mapped ; 1106 # 1.1 HALFWIDTH HANGUL
LETTER MIEUM
+FFB2 ; mapped ; 1107 # 1.1 HALFWIDTH HANGUL
LETTER PIEUP
+FFB3 ; mapped ; 1108 # 1.1 HALFWIDTH HANGUL
LETTER SSANGPIEUP
+FFB4 ; mapped ; 1121 # 1.1 HALFWIDTH HANGUL
LETTER PIEUP-SIOS
+FFB5 ; mapped ; 1109 # 1.1 HALFWIDTH HANGUL
LETTER SIOS
+FFB6 ; mapped ; 110A # 1.1 HALFWIDTH HANGUL
LETTER SSANGSIOS
+FFB7 ; mapped ; 110B # 1.1 HALFWIDTH HANGUL
LETTER IEUNG
+FFB8 ; mapped ; 110C # 1.1 HALFWIDTH HANGUL
LETTER CIEUC
+FFB9 ; mapped ; 110D # 1.1 HALFWIDTH HANGUL
LETTER SSANGCIEUC
+FFBA ; mapped ; 110E # 1.1 HALFWIDTH HANGUL
LETTER CHIEUCH
+FFBB ; mapped ; 110F # 1.1 HALFWIDTH HANGUL
LETTER KHIEUKH
+FFBC ; mapped ; 1110 # 1.1 HALFWIDTH HANGUL
LETTER THIEUTH
+FFBD ; mapped ; 1111 # 1.1 HALFWIDTH HANGUL
LETTER PHIEUPH
+FFBE ; mapped ; 1112 # 1.1 HALFWIDTH HANGUL
LETTER HIEUH
+FFBF..FFC1 ; disallowed # NA
<reserved-FFBF>..<reserved-FFC1>
+FFC2 ; mapped ; 1161 # 1.1 HALFWIDTH HANGUL
LETTER A
+FFC3 ; mapped ; 1162 # 1.1 HALFWIDTH HANGUL
LETTER AE
+FFC4 ; mapped ; 1163 # 1.1 HALFWIDTH HANGUL
LETTER YA
+FFC5 ; mapped ; 1164 # 1.1 HALFWIDTH HANGUL
LETTER YAE
+FFC6 ; mapped ; 1165 # 1.1 HALFWIDTH HANGUL
LETTER EO
+FFC7 ; mapped ; 1166 # 1.1 HALFWIDTH HANGUL
LETTER E
+FFC8..FFC9 ; disallowed # NA
<reserved-FFC8>..<reserved-FFC9>
+FFCA ; mapped ; 1167 # 1.1 HALFWIDTH HANGUL
LETTER YEO
+FFCB ; mapped ; 1168 # 1.1 HALFWIDTH HANGUL
LETTER YE
+FFCC ; mapped ; 1169 # 1.1 HALFWIDTH HANGUL
LETTER O
+FFCD ; mapped ; 116A # 1.1 HALFWIDTH HANGUL
LETTER WA
+FFCE ; mapped ; 116B # 1.1 HALFWIDTH HANGUL
LETTER WAE
+FFCF ; mapped ; 116C # 1.1 HALFWIDTH HANGUL
LETTER OE
+FFD0..FFD1 ; disallowed # NA
<reserved-FFD0>..<reserved-FFD1>
+FFD2 ; mapped ; 116D # 1.1 HALFWIDTH HANGUL
LETTER YO
+FFD3 ; mapped ; 116E # 1.1 HALFWIDTH HANGUL
LETTER U
+FFD4 ; mapped ; 116F # 1.1 HALFWIDTH HANGUL
LETTER WEO
+FFD5 ; mapped ; 1170 # 1.1 HALFWIDTH HANGUL
LETTER WE
+FFD6 ; mapped ; 1171 # 1.1 HALFWIDTH HANGUL
LETTER WI
+FFD7 ; mapped ; 1172 # 1.1 HALFWIDTH HANGUL
LETTER YU
+FFD8..FFD9 ; disallowed # NA
<reserved-FFD8>..<reserved-FFD9>
+FFDA ; mapped ; 1173 # 1.1 HALFWIDTH HANGUL
LETTER EU
+FFDB ; mapped ; 1174 # 1.1 HALFWIDTH HANGUL
LETTER YI
+FFDC ; mapped ; 1175 # 1.1 HALFWIDTH HANGUL
LETTER I
+FFDD..FFDF ; disallowed # NA
<reserved-FFDD>..<reserved-FFDF>
+FFE0 ; mapped ; 00A2 # 1.1 FULLWIDTH CENT
SIGN
+FFE1 ; mapped ; 00A3 # 1.1 FULLWIDTH POUND
SIGN
+FFE2 ; mapped ; 00AC # 1.1 FULLWIDTH NOT
SIGN
+FFE3 ; disallowed_STD3_mapped ; 0020 0304 # 1.1 FULLWIDTH MACRON
+FFE4 ; mapped ; 00A6 # 1.1 FULLWIDTH BROKEN
BAR
+FFE5 ; mapped ; 00A5 # 1.1 FULLWIDTH YEN
SIGN
+FFE6 ; mapped ; 20A9 # 1.1 FULLWIDTH WON
SIGN
+FFE7 ; disallowed # NA <reserved-FFE7>
+FFE8 ; mapped ; 2502 # 1.1 HALFWIDTH FORMS
LIGHT VERTICAL
+FFE9 ; mapped ; 2190 # 1.1 HALFWIDTH
LEFTWARDS ARROW
+FFEA ; mapped ; 2191 # 1.1 HALFWIDTH
UPWARDS ARROW
+FFEB ; mapped ; 2192 # 1.1 HALFWIDTH
RIGHTWARDS ARROW
+FFEC ; mapped ; 2193 # 1.1 HALFWIDTH
DOWNWARDS ARROW
+FFED ; mapped ; 25A0 # 1.1 HALFWIDTH BLACK
SQUARE
+FFEE ; mapped ; 25CB # 1.1 HALFWIDTH WHITE
CIRCLE
+FFEF..FFF8 ; disallowed # NA
<reserved-FFEF>..<reserved-FFF8>
+FFF9..FFFB ; disallowed # 3.0 INTERLINEAR
ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
+FFFC ; disallowed # 2.1 OBJECT
REPLACEMENT CHARACTER
+FFFD ; disallowed # 1.1 REPLACEMENT
CHARACTER
+FFFE..FFFF ; disallowed # 1.1
<noncharacter-FFFE>..<noncharacter-FFFF>
+10000..1000B ; valid # 4.0 LINEAR B
SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
+1000C ; disallowed # NA <reserved-1000C>
+1000D..10026 ; valid # 4.0 LINEAR B
SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
+10027 ; disallowed # NA <reserved-10027>
+10028..1003A ; valid # 4.0 LINEAR B
SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
+1003B ; disallowed # NA <reserved-1003B>
+1003C..1003D ; valid # 4.0 LINEAR B
SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
+1003E ; disallowed # NA <reserved-1003E>
+1003F..1004D ; valid # 4.0 LINEAR B
SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
+1004E..1004F ; disallowed # NA
<reserved-1004E>..<reserved-1004F>
+10050..1005D ; valid # 4.0 LINEAR B SYMBOL
B018..LINEAR B SYMBOL B089
+1005E..1007F ; disallowed # NA
<reserved-1005E>..<reserved-1007F>
+10080..100FA ; valid # 4.0 LINEAR B
IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
+100FB..100FF ; disallowed # NA
<reserved-100FB>..<reserved-100FF>
+10100..10102 ; valid ; ; NV8 # 4.0 AEGEAN WORD
SEPARATOR LINE..AEGEAN CHECK MARK
+10103..10106 ; disallowed # NA
<reserved-10103>..<reserved-10106>
+10107..10133 ; valid ; ; NV8 # 4.0 AEGEAN NUMBER
ONE..AEGEAN NUMBER NINETY THOUSAND
+10134..10136 ; disallowed # NA
<reserved-10134>..<reserved-10136>
+10137..1013F ; valid ; ; NV8 # 4.0 AEGEAN WEIGHT
BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
+10140..1018A ; valid ; ; NV8 # 4.1 GREEK ACROPHONIC
ATTIC ONE QUARTER..GREEK ZERO SIGN
+1018B..1018C ; valid ; ; NV8 # 7.0 GREEK ONE
QUARTER SIGN..GREEK SINUSOID SIGN
+1018D..1018E ; valid ; ; NV8 # 9.0 GREEK INDICTION
SIGN..NOMISMA SIGN
+1018F ; disallowed # NA <reserved-1018F>
+10190..1019B ; valid ; ; NV8 # 5.1 ROMAN SEXTANS
SIGN..ROMAN CENTURIAL SIGN
+1019C ; valid ; ; NV8 # 13.0 ASCIA SYMBOL
+1019D..1019F ; disallowed # NA
<reserved-1019D>..<reserved-1019F>
+101A0 ; valid ; ; NV8 # 7.0 GREEK SYMBOL TAU
RHO
+101A1..101CF ; disallowed # NA
<reserved-101A1>..<reserved-101CF>
+101D0..101FC ; valid ; ; NV8 # 5.1 PHAISTOS DISC
SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
+101FD ; valid # 5.1 PHAISTOS DISC
SIGN COMBINING OBLIQUE STROKE
+101FE..1027F ; disallowed # NA
<reserved-101FE>..<reserved-1027F>
+10280..1029C ; valid # 5.1 LYCIAN LETTER
A..LYCIAN LETTER X
+1029D..1029F ; disallowed # NA
<reserved-1029D>..<reserved-1029F>
+102A0..102D0 ; valid # 5.1 CARIAN LETTER
A..CARIAN LETTER UUU3
+102D1..102DF ; disallowed # NA
<reserved-102D1>..<reserved-102DF>
+102E0 ; valid # 7.0 COPTIC EPACT
THOUSANDS MARK
+102E1..102FB ; valid ; ; NV8 # 7.0 COPTIC EPACT
DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
+102FC..102FF ; disallowed # NA
<reserved-102FC>..<reserved-102FF>
+10300..1031E ; valid # 3.1 OLD ITALIC
LETTER A..OLD ITALIC LETTER UU
+1031F ; valid # 7.0 OLD ITALIC
LETTER ESS
+10320..10323 ; valid ; ; NV8 # 3.1 OLD ITALIC
NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
+10324..1032C ; disallowed # NA
<reserved-10324>..<reserved-1032C>
+1032D..1032F ; valid # 10.0 OLD ITALIC
LETTER YE..OLD ITALIC LETTER SOUTHERN TSE
+10330..10340 ; valid # 3.1 GOTHIC LETTER
AHSA..GOTHIC LETTER PAIRTHRA
+10341 ; valid ; ; NV8 # 3.1 GOTHIC LETTER
NINETY
+10342..10349 ; valid # 3.1 GOTHIC LETTER
RAIDA..GOTHIC LETTER OTHAL
+1034A ; valid ; ; NV8 # 3.1 GOTHIC LETTER
NINE HUNDRED
+1034B..1034F ; disallowed # NA
<reserved-1034B>..<reserved-1034F>
+10350..1037A ; valid # 7.0 OLD PERMIC
LETTER AN..COMBINING OLD PERMIC LETTER SII
+1037B..1037F ; disallowed # NA
<reserved-1037B>..<reserved-1037F>
+10380..1039D ; valid # 4.0 UGARITIC LETTER
ALPA..UGARITIC LETTER SSU
+1039E ; disallowed # NA <reserved-1039E>
+1039F ; valid ; ; NV8 # 4.0 UGARITIC WORD
DIVIDER
+103A0..103C3 ; valid # 4.1 OLD PERSIAN SIGN
A..OLD PERSIAN SIGN HA
+103C4..103C7 ; disallowed # NA
<reserved-103C4>..<reserved-103C7>
+103C8..103CF ; valid # 4.1 OLD PERSIAN SIGN
AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
+103D0..103D5 ; valid ; ; NV8 # 4.1 OLD PERSIAN WORD
DIVIDER..OLD PERSIAN NUMBER HUNDRED
+103D6..103FF ; disallowed # NA
<reserved-103D6>..<reserved-103FF>
+10400 ; mapped ; 10428 # 3.1 DESERET CAPITAL
LETTER LONG I
+10401 ; mapped ; 10429 # 3.1 DESERET CAPITAL
LETTER LONG E
+10402 ; mapped ; 1042A # 3.1 DESERET CAPITAL
LETTER LONG A
+10403 ; mapped ; 1042B # 3.1 DESERET CAPITAL
LETTER LONG AH
+10404 ; mapped ; 1042C # 3.1 DESERET CAPITAL
LETTER LONG O
+10405 ; mapped ; 1042D # 3.1 DESERET CAPITAL
LETTER LONG OO
+10406 ; mapped ; 1042E # 3.1 DESERET CAPITAL
LETTER SHORT I
+10407 ; mapped ; 1042F # 3.1 DESERET CAPITAL
LETTER SHORT E
+10408 ; mapped ; 10430 # 3.1 DESERET CAPITAL
LETTER SHORT A
+10409 ; mapped ; 10431 # 3.1 DESERET CAPITAL
LETTER SHORT AH
+1040A ; mapped ; 10432 # 3.1 DESERET CAPITAL
LETTER SHORT O
+1040B ; mapped ; 10433 # 3.1 DESERET CAPITAL
LETTER SHORT OO
+1040C ; mapped ; 10434 # 3.1 DESERET CAPITAL
LETTER AY
+1040D ; mapped ; 10435 # 3.1 DESERET CAPITAL
LETTER OW
+1040E ; mapped ; 10436 # 3.1 DESERET CAPITAL
LETTER WU
+1040F ; mapped ; 10437 # 3.1 DESERET CAPITAL
LETTER YEE
+10410 ; mapped ; 10438 # 3.1 DESERET CAPITAL
LETTER H
+10411 ; mapped ; 10439 # 3.1 DESERET CAPITAL
LETTER PEE
+10412 ; mapped ; 1043A # 3.1 DESERET CAPITAL
LETTER BEE
+10413 ; mapped ; 1043B # 3.1 DESERET CAPITAL
LETTER TEE
+10414 ; mapped ; 1043C # 3.1 DESERET CAPITAL
LETTER DEE
+10415 ; mapped ; 1043D # 3.1 DESERET CAPITAL
LETTER CHEE
+10416 ; mapped ; 1043E # 3.1 DESERET CAPITAL
LETTER JEE
+10417 ; mapped ; 1043F # 3.1 DESERET CAPITAL
LETTER KAY
+10418 ; mapped ; 10440 # 3.1 DESERET CAPITAL
LETTER GAY
+10419 ; mapped ; 10441 # 3.1 DESERET CAPITAL
LETTER EF
+1041A ; mapped ; 10442 # 3.1 DESERET CAPITAL
LETTER VEE
+1041B ; mapped ; 10443 # 3.1 DESERET CAPITAL
LETTER ETH
+1041C ; mapped ; 10444 # 3.1 DESERET CAPITAL
LETTER THEE
+1041D ; mapped ; 10445 # 3.1 DESERET CAPITAL
LETTER ES
+1041E ; mapped ; 10446 # 3.1 DESERET CAPITAL
LETTER ZEE
+1041F ; mapped ; 10447 # 3.1 DESERET CAPITAL
LETTER ESH
+10420 ; mapped ; 10448 # 3.1 DESERET CAPITAL
LETTER ZHEE
+10421 ; mapped ; 10449 # 3.1 DESERET CAPITAL
LETTER ER
+10422 ; mapped ; 1044A # 3.1 DESERET CAPITAL
LETTER EL
+10423 ; mapped ; 1044B # 3.1 DESERET CAPITAL
LETTER EM
+10424 ; mapped ; 1044C # 3.1 DESERET CAPITAL
LETTER EN
+10425 ; mapped ; 1044D # 3.1 DESERET CAPITAL
LETTER ENG
+10426 ; mapped ; 1044E # 4.0 DESERET CAPITAL
LETTER OI
+10427 ; mapped ; 1044F # 4.0 DESERET CAPITAL
LETTER EW
+10428..1044D ; valid # 3.1 DESERET SMALL
LETTER LONG I..DESERET SMALL LETTER ENG
+1044E..1049D ; valid # 4.0 DESERET SMALL
LETTER OI..OSMANYA LETTER OO
+1049E..1049F ; disallowed # NA
<reserved-1049E>..<reserved-1049F>
+104A0..104A9 ; valid # 4.0 OSMANYA DIGIT
ZERO..OSMANYA DIGIT NINE
+104AA..104AF ; disallowed # NA
<reserved-104AA>..<reserved-104AF>
+104B0 ; mapped ; 104D8 # 9.0 OSAGE CAPITAL
LETTER A
+104B1 ; mapped ; 104D9 # 9.0 OSAGE CAPITAL
LETTER AI
+104B2 ; mapped ; 104DA # 9.0 OSAGE CAPITAL
LETTER AIN
+104B3 ; mapped ; 104DB # 9.0 OSAGE CAPITAL
LETTER AH
+104B4 ; mapped ; 104DC # 9.0 OSAGE CAPITAL
LETTER BRA
+104B5 ; mapped ; 104DD # 9.0 OSAGE CAPITAL
LETTER CHA
+104B6 ; mapped ; 104DE # 9.0 OSAGE CAPITAL
LETTER EHCHA
+104B7 ; mapped ; 104DF # 9.0 OSAGE CAPITAL
LETTER E
+104B8 ; mapped ; 104E0 # 9.0 OSAGE CAPITAL
LETTER EIN
+104B9 ; mapped ; 104E1 # 9.0 OSAGE CAPITAL
LETTER HA
+104BA ; mapped ; 104E2 # 9.0 OSAGE CAPITAL
LETTER HYA
+104BB ; mapped ; 104E3 # 9.0 OSAGE CAPITAL
LETTER I
+104BC ; mapped ; 104E4 # 9.0 OSAGE CAPITAL
LETTER KA
+104BD ; mapped ; 104E5 # 9.0 OSAGE CAPITAL
LETTER EHKA
+104BE ; mapped ; 104E6 # 9.0 OSAGE CAPITAL
LETTER KYA
+104BF ; mapped ; 104E7 # 9.0 OSAGE CAPITAL
LETTER LA
+104C0 ; mapped ; 104E8 # 9.0 OSAGE CAPITAL
LETTER MA
+104C1 ; mapped ; 104E9 # 9.0 OSAGE CAPITAL
LETTER NA
+104C2 ; mapped ; 104EA # 9.0 OSAGE CAPITAL
LETTER O
+104C3 ; mapped ; 104EB # 9.0 OSAGE CAPITAL
LETTER OIN
+104C4 ; mapped ; 104EC # 9.0 OSAGE CAPITAL
LETTER PA
+104C5 ; mapped ; 104ED # 9.0 OSAGE CAPITAL
LETTER EHPA
+104C6 ; mapped ; 104EE # 9.0 OSAGE CAPITAL
LETTER SA
+104C7 ; mapped ; 104EF # 9.0 OSAGE CAPITAL
LETTER SHA
+104C8 ; mapped ; 104F0 # 9.0 OSAGE CAPITAL
LETTER TA
+104C9 ; mapped ; 104F1 # 9.0 OSAGE CAPITAL
LETTER EHTA
+104CA ; mapped ; 104F2 # 9.0 OSAGE CAPITAL
LETTER TSA
+104CB ; mapped ; 104F3 # 9.0 OSAGE CAPITAL
LETTER EHTSA
+104CC ; mapped ; 104F4 # 9.0 OSAGE CAPITAL
LETTER TSHA
+104CD ; mapped ; 104F5 # 9.0 OSAGE CAPITAL
LETTER DHA
+104CE ; mapped ; 104F6 # 9.0 OSAGE CAPITAL
LETTER U
+104CF ; mapped ; 104F7 # 9.0 OSAGE CAPITAL
LETTER WA
+104D0 ; mapped ; 104F8 # 9.0 OSAGE CAPITAL
LETTER KHA
+104D1 ; mapped ; 104F9 # 9.0 OSAGE CAPITAL
LETTER GHA
+104D2 ; mapped ; 104FA # 9.0 OSAGE CAPITAL
LETTER ZA
+104D3 ; mapped ; 104FB # 9.0 OSAGE CAPITAL
LETTER ZHA
+104D4..104D7 ; disallowed # NA
<reserved-104D4>..<reserved-104D7>
+104D8..104FB ; valid # 9.0 OSAGE SMALL
LETTER A..OSAGE SMALL LETTER ZHA
+104FC..104FF ; disallowed # NA
<reserved-104FC>..<reserved-104FF>
+10500..10527 ; valid # 7.0 ELBASAN LETTER
A..ELBASAN LETTER KHE
+10528..1052F ; disallowed # NA
<reserved-10528>..<reserved-1052F>
+10530..10563 ; valid # 7.0 CAUCASIAN
ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+10564..1056E ; disallowed # NA
<reserved-10564>..<reserved-1056E>
+1056F ; valid ; ; NV8 # 7.0 CAUCASIAN
ALBANIAN CITATION MARK
+10570 ; mapped ; 10597 # 14.0 VITHKUQI CAPITAL
LETTER A
+10571 ; mapped ; 10598 # 14.0 VITHKUQI CAPITAL
LETTER BBE
+10572 ; mapped ; 10599 # 14.0 VITHKUQI CAPITAL
LETTER BE
+10573 ; mapped ; 1059A # 14.0 VITHKUQI CAPITAL
LETTER CE
+10574 ; mapped ; 1059B # 14.0 VITHKUQI CAPITAL
LETTER CHE
+10575 ; mapped ; 1059C # 14.0 VITHKUQI CAPITAL
LETTER DE
+10576 ; mapped ; 1059D # 14.0 VITHKUQI CAPITAL
LETTER DHE
+10577 ; mapped ; 1059E # 14.0 VITHKUQI CAPITAL
LETTER EI
+10578 ; mapped ; 1059F # 14.0 VITHKUQI CAPITAL
LETTER E
+10579 ; mapped ; 105A0 # 14.0 VITHKUQI CAPITAL
LETTER FE
+1057A ; mapped ; 105A1 # 14.0 VITHKUQI CAPITAL
LETTER GA
+1057B ; disallowed # NA <reserved-1057B>
+1057C ; mapped ; 105A3 # 14.0 VITHKUQI CAPITAL
LETTER HA
+1057D ; mapped ; 105A4 # 14.0 VITHKUQI CAPITAL
LETTER HHA
+1057E ; mapped ; 105A5 # 14.0 VITHKUQI CAPITAL
LETTER I
+1057F ; mapped ; 105A6 # 14.0 VITHKUQI CAPITAL
LETTER IJE
+10580 ; mapped ; 105A7 # 14.0 VITHKUQI CAPITAL
LETTER JE
+10581 ; mapped ; 105A8 # 14.0 VITHKUQI CAPITAL
LETTER KA
+10582 ; mapped ; 105A9 # 14.0 VITHKUQI CAPITAL
LETTER LA
+10583 ; mapped ; 105AA # 14.0 VITHKUQI CAPITAL
LETTER LLA
+10584 ; mapped ; 105AB # 14.0 VITHKUQI CAPITAL
LETTER ME
+10585 ; mapped ; 105AC # 14.0 VITHKUQI CAPITAL
LETTER NE
+10586 ; mapped ; 105AD # 14.0 VITHKUQI CAPITAL
LETTER NJE
+10587 ; mapped ; 105AE # 14.0 VITHKUQI CAPITAL
LETTER O
+10588 ; mapped ; 105AF # 14.0 VITHKUQI CAPITAL
LETTER PE
+10589 ; mapped ; 105B0 # 14.0 VITHKUQI CAPITAL
LETTER QA
+1058A ; mapped ; 105B1 # 14.0 VITHKUQI CAPITAL
LETTER RE
+1058B ; disallowed # NA <reserved-1058B>
+1058C ; mapped ; 105B3 # 14.0 VITHKUQI CAPITAL
LETTER SE
+1058D ; mapped ; 105B4 # 14.0 VITHKUQI CAPITAL
LETTER SHE
+1058E ; mapped ; 105B5 # 14.0 VITHKUQI CAPITAL
LETTER TE
+1058F ; mapped ; 105B6 # 14.0 VITHKUQI CAPITAL
LETTER THE
+10590 ; mapped ; 105B7 # 14.0 VITHKUQI CAPITAL
LETTER U
+10591 ; mapped ; 105B8 # 14.0 VITHKUQI CAPITAL
LETTER VE
+10592 ; mapped ; 105B9 # 14.0 VITHKUQI CAPITAL
LETTER XE
+10593 ; disallowed # NA <reserved-10593>
+10594 ; mapped ; 105BB # 14.0 VITHKUQI CAPITAL
LETTER Y
+10595 ; mapped ; 105BC # 14.0 VITHKUQI CAPITAL
LETTER ZE
+10596 ; disallowed # NA <reserved-10596>
+10597..105A1 ; valid # 14.0 VITHKUQI SMALL
LETTER A..VITHKUQI SMALL LETTER GA
+105A2 ; disallowed # NA <reserved-105A2>
+105A3..105B1 ; valid # 14.0 VITHKUQI SMALL
LETTER HA..VITHKUQI SMALL LETTER RE
+105B2 ; disallowed # NA <reserved-105B2>
+105B3..105B9 ; valid # 14.0 VITHKUQI SMALL
LETTER SE..VITHKUQI SMALL LETTER XE
+105BA ; disallowed # NA <reserved-105BA>
+105BB..105BC ; valid # 14.0 VITHKUQI SMALL
LETTER Y..VITHKUQI SMALL LETTER ZE
+105BD..105FF ; disallowed # NA
<reserved-105BD>..<reserved-105FF>
+10600..10736 ; valid # 7.0 LINEAR A SIGN
AB001..LINEAR A SIGN A664
+10737..1073F ; disallowed # NA
<reserved-10737>..<reserved-1073F>
+10740..10755 ; valid # 7.0 LINEAR A SIGN
A701 A..LINEAR A SIGN A732 JE
+10756..1075F ; disallowed # NA
<reserved-10756>..<reserved-1075F>
+10760..10767 ; valid # 7.0 LINEAR A SIGN
A800..LINEAR A SIGN A807
+10768..1077F ; disallowed # NA
<reserved-10768>..<reserved-1077F>
+10780 ; valid # 14.0 MODIFIER LETTER
SMALL CAPITAL AA
+10781 ; mapped ; 02D0 # 14.0 MODIFIER LETTER
SUPERSCRIPT TRIANGULAR COLON
+10782 ; mapped ; 02D1 # 14.0 MODIFIER LETTER
SUPERSCRIPT HALF TRIANGULAR COLON
+10783 ; mapped ; 00E6 # 14.0 MODIFIER LETTER
SMALL AE
+10784 ; mapped ; 0299 # 14.0 MODIFIER LETTER
SMALL CAPITAL B
+10785 ; mapped ; 0253 # 14.0 MODIFIER LETTER
SMALL B WITH HOOK
+10786 ; disallowed # NA <reserved-10786>
+10787 ; mapped ; 02A3 # 14.0 MODIFIER LETTER
SMALL DZ DIGRAPH
+10788 ; mapped ; AB66 # 14.0 MODIFIER LETTER
SMALL DZ DIGRAPH WITH RETROFLEX HOOK
+10789 ; mapped ; 02A5 # 14.0 MODIFIER LETTER
SMALL DZ DIGRAPH WITH CURL
+1078A ; mapped ; 02A4 # 14.0 MODIFIER LETTER
SMALL DEZH DIGRAPH
+1078B ; mapped ; 0256 # 14.0 MODIFIER LETTER
SMALL D WITH TAIL
+1078C ; mapped ; 0257 # 14.0 MODIFIER LETTER
SMALL D WITH HOOK
+1078D ; mapped ; 1D91 # 14.0 MODIFIER LETTER
SMALL D WITH HOOK AND TAIL
+1078E ; mapped ; 0258 # 14.0 MODIFIER LETTER
SMALL REVERSED E
+1078F ; mapped ; 025E # 14.0 MODIFIER LETTER
SMALL CLOSED REVERSED OPEN E
+10790 ; mapped ; 02A9 # 14.0 MODIFIER LETTER
SMALL FENG DIGRAPH
+10791 ; mapped ; 0264 # 14.0 MODIFIER LETTER
SMALL RAMS HORN
+10792 ; mapped ; 0262 # 14.0 MODIFIER LETTER
SMALL CAPITAL G
+10793 ; mapped ; 0260 # 14.0 MODIFIER LETTER
SMALL G WITH HOOK
+10794 ; mapped ; 029B # 14.0 MODIFIER LETTER
SMALL CAPITAL G WITH HOOK
+10795 ; mapped ; 0127 # 14.0 MODIFIER LETTER
SMALL H WITH STROKE
+10796 ; mapped ; 029C # 14.0 MODIFIER LETTER
SMALL CAPITAL H
+10797 ; mapped ; 0267 # 14.0 MODIFIER LETTER
SMALL HENG WITH HOOK
+10798 ; mapped ; 0284 # 14.0 MODIFIER LETTER
SMALL DOTLESS J WITH STROKE AND HOOK
+10799 ; mapped ; 02AA # 14.0 MODIFIER LETTER
SMALL LS DIGRAPH
+1079A ; mapped ; 02AB # 14.0 MODIFIER LETTER
SMALL LZ DIGRAPH
+1079B ; mapped ; 026C # 14.0 MODIFIER LETTER
SMALL L WITH BELT
+1079C ; mapped ; 1DF04 # 14.0 MODIFIER LETTER
SMALL CAPITAL L WITH BELT
+1079D ; mapped ; A78E # 14.0 MODIFIER LETTER
SMALL L WITH RETROFLEX HOOK AND BELT
+1079E ; mapped ; 026E # 14.0 MODIFIER LETTER
SMALL LEZH
+1079F ; mapped ; 1DF05 # 14.0 MODIFIER LETTER
SMALL LEZH WITH RETROFLEX HOOK
+107A0 ; mapped ; 028E # 14.0 MODIFIER LETTER
SMALL TURNED Y
+107A1 ; mapped ; 1DF06 # 14.0 MODIFIER LETTER
SMALL TURNED Y WITH BELT
+107A2 ; mapped ; 00F8 # 14.0 MODIFIER LETTER
SMALL O WITH STROKE
+107A3 ; mapped ; 0276 # 14.0 MODIFIER LETTER
SMALL CAPITAL OE
+107A4 ; mapped ; 0277 # 14.0 MODIFIER LETTER
SMALL CLOSED OMEGA
+107A5 ; mapped ; 0071 # 14.0 MODIFIER LETTER
SMALL Q
+107A6 ; mapped ; 027A # 14.0 MODIFIER LETTER
SMALL TURNED R WITH LONG LEG
+107A7 ; mapped ; 1DF08 # 14.0 MODIFIER LETTER
SMALL TURNED R WITH LONG LEG AND RETROFLEX HOOK
+107A8 ; mapped ; 027D # 14.0 MODIFIER LETTER
SMALL R WITH TAIL
+107A9 ; mapped ; 027E # 14.0 MODIFIER LETTER
SMALL R WITH FISHHOOK
+107AA ; mapped ; 0280 # 14.0 MODIFIER LETTER
SMALL CAPITAL R
+107AB ; mapped ; 02A8 # 14.0 MODIFIER LETTER
SMALL TC DIGRAPH WITH CURL
+107AC ; mapped ; 02A6 # 14.0 MODIFIER LETTER
SMALL TS DIGRAPH
+107AD ; mapped ; AB67 # 14.0 MODIFIER LETTER
SMALL TS DIGRAPH WITH RETROFLEX HOOK
+107AE ; mapped ; 02A7 # 14.0 MODIFIER LETTER
SMALL TESH DIGRAPH
+107AF ; mapped ; 0288 # 14.0 MODIFIER LETTER
SMALL T WITH RETROFLEX HOOK
+107B0 ; mapped ; 2C71 # 14.0 MODIFIER LETTER
SMALL V WITH RIGHT HOOK
+107B1 ; disallowed # NA <reserved-107B1>
+107B2 ; mapped ; 028F # 14.0 MODIFIER LETTER
SMALL CAPITAL Y
+107B3 ; mapped ; 02A1 # 14.0 MODIFIER LETTER
GLOTTAL STOP WITH STROKE
+107B4 ; mapped ; 02A2 # 14.0 MODIFIER LETTER
REVERSED GLOTTAL STOP WITH STROKE
+107B5 ; mapped ; 0298 # 14.0 MODIFIER LETTER
BILABIAL CLICK
+107B6 ; mapped ; 01C0 # 14.0 MODIFIER LETTER
DENTAL CLICK
+107B7 ; mapped ; 01C1 # 14.0 MODIFIER LETTER
LATERAL CLICK
+107B8 ; mapped ; 01C2 # 14.0 MODIFIER LETTER
ALVEOLAR CLICK
+107B9 ; mapped ; 1DF0A # 14.0 MODIFIER LETTER
RETROFLEX CLICK WITH RETROFLEX HOOK
+107BA ; mapped ; 1DF1E # 14.0 MODIFIER LETTER
SMALL S WITH CURL
+107BB..107FF ; disallowed # NA
<reserved-107BB>..<reserved-107FF>
+10800..10805 ; valid # 4.0 CYPRIOT SYLLABLE
A..CYPRIOT SYLLABLE JA
+10806..10807 ; disallowed # NA
<reserved-10806>..<reserved-10807>
+10808 ; valid # 4.0 CYPRIOT SYLLABLE
JO
+10809 ; disallowed # NA <reserved-10809>
+1080A..10835 ; valid # 4.0 CYPRIOT SYLLABLE
KA..CYPRIOT SYLLABLE WO
+10836 ; disallowed # NA <reserved-10836>
+10837..10838 ; valid # 4.0 CYPRIOT SYLLABLE
XA..CYPRIOT SYLLABLE XE
+10839..1083B ; disallowed # NA
<reserved-10839>..<reserved-1083B>
+1083C ; valid # 4.0 CYPRIOT SYLLABLE
ZA
+1083D..1083E ; disallowed # NA
<reserved-1083D>..<reserved-1083E>
+1083F ; valid # 4.0 CYPRIOT SYLLABLE
ZO
+10840..10855 ; valid # 5.2 IMPERIAL ARAMAIC
LETTER ALEPH..IMPERIAL ARAMAIC LETTER TAW
+10856 ; disallowed # NA <reserved-10856>
+10857..1085F ; valid ; ; NV8 # 5.2 IMPERIAL ARAMAIC
SECTION SIGN..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10860..10876 ; valid # 7.0 PALMYRENE LETTER
ALEPH..PALMYRENE LETTER TAW
+10877..1087F ; valid ; ; NV8 # 7.0 PALMYRENE
LEFT-POINTING FLEURON..PALMYRENE NUMBER TWENTY
+10880..1089E ; valid # 7.0 NABATAEAN LETTER
FINAL ALEPH..NABATAEAN LETTER TAW
+1089F..108A6 ; disallowed # NA
<reserved-1089F>..<reserved-108A6>
+108A7..108AF ; valid ; ; NV8 # 7.0 NABATAEAN NUMBER
ONE..NABATAEAN NUMBER ONE HUNDRED
+108B0..108DF ; disallowed # NA
<reserved-108B0>..<reserved-108DF>
+108E0..108F2 ; valid # 8.0 HATRAN LETTER
ALEPH..HATRAN LETTER QOPH
+108F3 ; disallowed # NA <reserved-108F3>
+108F4..108F5 ; valid # 8.0 HATRAN LETTER
SHIN..HATRAN LETTER TAW
+108F6..108FA ; disallowed # NA
<reserved-108F6>..<reserved-108FA>
+108FB..108FF ; valid ; ; NV8 # 8.0 HATRAN NUMBER
ONE..HATRAN NUMBER ONE HUNDRED
+10900..10915 ; valid # 5.0 PHOENICIAN
LETTER ALF..PHOENICIAN LETTER TAU
+10916..10919 ; valid ; ; NV8 # 5.0 PHOENICIAN
NUMBER ONE..PHOENICIAN NUMBER ONE HUNDRED
+1091A..1091B ; valid ; ; NV8 # 5.2 PHOENICIAN
NUMBER TWO..PHOENICIAN NUMBER THREE
+1091C..1091E ; disallowed # NA
<reserved-1091C>..<reserved-1091E>
+1091F ; valid ; ; NV8 # 5.0 PHOENICIAN WORD
SEPARATOR
+10920..10939 ; valid # 5.1 LYDIAN LETTER
A..LYDIAN LETTER C
+1093A..1093E ; disallowed # NA
<reserved-1093A>..<reserved-1093E>
+1093F ; valid ; ; NV8 # 5.1 LYDIAN
TRIANGULAR MARK
+10940..1097F ; disallowed # NA
<reserved-10940>..<reserved-1097F>
+10980..109B7 ; valid # 6.1 MEROITIC
HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
+109B8..109BB ; disallowed # NA
<reserved-109B8>..<reserved-109BB>
+109BC..109BD ; valid ; ; NV8 # 8.0 MEROITIC CURSIVE
FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF
+109BE..109BF ; valid # 6.1 MEROITIC CURSIVE
LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
+109C0..109CF ; valid ; ; NV8 # 8.0 MEROITIC CURSIVE
NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY
+109D0..109D1 ; disallowed # NA
<reserved-109D0>..<reserved-109D1>
+109D2..109FF ; valid ; ; NV8 # 8.0 MEROITIC CURSIVE
NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS
+10A00..10A03 ; valid # 4.1 KHAROSHTHI
LETTER A..KHAROSHTHI VOWEL SIGN VOCALIC R
+10A04 ; disallowed # NA <reserved-10A04>
+10A05..10A06 ; valid # 4.1 KHAROSHTHI VOWEL
SIGN E..KHAROSHTHI VOWEL SIGN O
+10A07..10A0B ; disallowed # NA
<reserved-10A07>..<reserved-10A0B>
+10A0C..10A13 ; valid # 4.1 KHAROSHTHI VOWEL
LENGTH MARK..KHAROSHTHI LETTER GHA
+10A14 ; disallowed # NA <reserved-10A14>
+10A15..10A17 ; valid # 4.1 KHAROSHTHI
LETTER CA..KHAROSHTHI LETTER JA
+10A18 ; disallowed # NA <reserved-10A18>
+10A19..10A33 ; valid # 4.1 KHAROSHTHI
LETTER NYA..KHAROSHTHI LETTER TTTHA
+10A34..10A35 ; valid # 11.0 KHAROSHTHI
LETTER TTTA..KHAROSHTHI LETTER VHA
+10A36..10A37 ; disallowed # NA
<reserved-10A36>..<reserved-10A37>
+10A38..10A3A ; valid # 4.1 KHAROSHTHI SIGN
BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+10A3B..10A3E ; disallowed # NA
<reserved-10A3B>..<reserved-10A3E>
+10A3F ; valid # 4.1 KHAROSHTHI VIRAMA
+10A40..10A47 ; valid ; ; NV8 # 4.1 KHAROSHTHI DIGIT
ONE..KHAROSHTHI NUMBER ONE THOUSAND
+10A48 ; valid ; ; NV8 # 11.0 KHAROSHTHI
FRACTION ONE HALF
+10A49..10A4F ; disallowed # NA
<reserved-10A49>..<reserved-10A4F>
+10A50..10A58 ; valid ; ; NV8 # 4.1 KHAROSHTHI
PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
+10A59..10A5F ; disallowed # NA
<reserved-10A59>..<reserved-10A5F>
+10A60..10A7C ; valid # 5.2 OLD SOUTH
ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A7D..10A7F ; valid ; ; NV8 # 5.2 OLD SOUTH
ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMERIC INDICATOR
+10A80..10A9C ; valid # 7.0 OLD NORTH
ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10A9D..10A9F ; valid ; ; NV8 # 7.0 OLD NORTH
ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+10AA0..10ABF ; disallowed # NA
<reserved-10AA0>..<reserved-10ABF>
+10AC0..10AC7 ; valid # 7.0 MANICHAEAN
LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC8 ; valid ; ; NV8 # 7.0 MANICHAEAN SIGN
UD
+10AC9..10AE6 ; valid # 7.0 MANICHAEAN
LETTER ZAYIN..MANICHAEAN ABBREVIATION MARK BELOW
+10AE7..10AEA ; disallowed # NA
<reserved-10AE7>..<reserved-10AEA>
+10AEB..10AF6 ; valid ; ; NV8 # 7.0 MANICHAEAN
NUMBER ONE..MANICHAEAN PUNCTUATION LINE FILLER
+10AF7..10AFF ; disallowed # NA
<reserved-10AF7>..<reserved-10AFF>
+10B00..10B35 ; valid # 5.2 AVESTAN LETTER
A..AVESTAN LETTER HE
+10B36..10B38 ; disallowed # NA
<reserved-10B36>..<reserved-10B38>
+10B39..10B3F ; valid ; ; NV8 # 5.2 AVESTAN
ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
+10B40..10B55 ; valid # 5.2 INSCRIPTIONAL
PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
+10B56..10B57 ; disallowed # NA
<reserved-10B56>..<reserved-10B57>
+10B58..10B5F ; valid ; ; NV8 # 5.2 INSCRIPTIONAL
PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
+10B60..10B72 ; valid # 5.2 INSCRIPTIONAL
PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B73..10B77 ; disallowed # NA
<reserved-10B73>..<reserved-10B77>
+10B78..10B7F ; valid ; ; NV8 # 5.2 INSCRIPTIONAL
PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10B80..10B91 ; valid # 7.0 PSALTER PAHLAVI
LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10B92..10B98 ; disallowed # NA
<reserved-10B92>..<reserved-10B98>
+10B99..10B9C ; valid ; ; NV8 # 7.0 PSALTER PAHLAVI
SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10B9D..10BA8 ; disallowed # NA
<reserved-10B9D>..<reserved-10BA8>
+10BA9..10BAF ; valid ; ; NV8 # 7.0 PSALTER PAHLAVI
NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
+10BB0..10BFF ; disallowed # NA
<reserved-10BB0>..<reserved-10BFF>
+10C00..10C48 ; valid # 5.2 OLD TURKIC
LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
+10C49..10C7F ; disallowed # NA
<reserved-10C49>..<reserved-10C7F>
+10C80 ; mapped ; 10CC0 # 8.0 OLD HUNGARIAN
CAPITAL LETTER A
+10C81 ; mapped ; 10CC1 # 8.0 OLD HUNGARIAN
CAPITAL LETTER AA
+10C82 ; mapped ; 10CC2 # 8.0 OLD HUNGARIAN
CAPITAL LETTER EB
+10C83 ; mapped ; 10CC3 # 8.0 OLD HUNGARIAN
CAPITAL LETTER AMB
+10C84 ; mapped ; 10CC4 # 8.0 OLD HUNGARIAN
CAPITAL LETTER EC
+10C85 ; mapped ; 10CC5 # 8.0 OLD HUNGARIAN
CAPITAL LETTER ENC
+10C86 ; mapped ; 10CC6 # 8.0 OLD HUNGARIAN
CAPITAL LETTER ECS
+10C87 ; mapped ; 10CC7 # 8.0 OLD HUNGARIAN
CAPITAL LETTER ED
+10C88 ; mapped ; 10CC8 # 8.0 OLD HUNGARIAN
CAPITAL LETTER AND
+10C89 ; mapped ; 10CC9 # 8.0 OLD HUNGARIAN
CAPITAL LETTER E
+10C8A ; mapped ; 10CCA # 8.0 OLD HUNGARIAN
CAPITAL LETTER CLOSE E
+10C8B ; mapped ; 10CCB # 8.0 OLD HUNGARIAN
CAPITAL LETTER EE
+10C8C ; mapped ; 10CCC # 8.0 OLD HUNGARIAN
CAPITAL LETTER EF
+10C8D ; mapped ; 10CCD # 8.0 OLD HUNGARIAN
CAPITAL LETTER EG
+10C8E ; mapped ; 10CCE # 8.0 OLD HUNGARIAN
CAPITAL LETTER EGY
+10C8F ; mapped ; 10CCF # 8.0 OLD HUNGARIAN
CAPITAL LETTER EH
+10C90 ; mapped ; 10CD0 # 8.0 OLD HUNGARIAN
CAPITAL LETTER I
+10C91 ; mapped ; 10CD1 # 8.0 OLD HUNGARIAN
CAPITAL LETTER II
+10C92 ; mapped ; 10CD2 # 8.0 OLD HUNGARIAN
CAPITAL LETTER EJ
+10C93 ; mapped ; 10CD3 # 8.0 OLD HUNGARIAN
CAPITAL LETTER EK
+10C94 ; mapped ; 10CD4 # 8.0 OLD HUNGARIAN
CAPITAL LETTER AK
+10C95 ; mapped ; 10CD5 # 8.0 OLD HUNGARIAN
CAPITAL LETTER UNK
+10C96 ; mapped ; 10CD6 # 8.0 OLD HUNGARIAN
CAPITAL LETTER EL
+10C97 ; mapped ; 10CD7 # 8.0 OLD HUNGARIAN
CAPITAL LETTER ELY
+10C98 ; mapped ; 10CD8 # 8.0 OLD HUNGARIAN
CAPITAL LETTER EM
+10C99 ; mapped ; 10CD9 # 8.0 OLD HUNGARIAN
CAPITAL LETTER EN
+10C9A ; mapped ; 10CDA # 8.0 OLD HUNGARIAN
CAPITAL LETTER ENY
+10C9B ; mapped ; 10CDB # 8.0 OLD HUNGARIAN
CAPITAL LETTER O
+10C9C ; mapped ; 10CDC # 8.0 OLD HUNGARIAN
CAPITAL LETTER OO
+10C9D ; mapped ; 10CDD # 8.0 OLD HUNGARIAN
CAPITAL LETTER NIKOLSBURG OE
+10C9E ; mapped ; 10CDE # 8.0 OLD HUNGARIAN
CAPITAL LETTER RUDIMENTA OE
+10C9F ; mapped ; 10CDF # 8.0 OLD HUNGARIAN
CAPITAL LETTER OEE
+10CA0 ; mapped ; 10CE0 # 8.0 OLD HUNGARIAN
CAPITAL LETTER EP
+10CA1 ; mapped ; 10CE1 # 8.0 OLD HUNGARIAN
CAPITAL LETTER EMP
+10CA2 ; mapped ; 10CE2 # 8.0 OLD HUNGARIAN
CAPITAL LETTER ER
+10CA3 ; mapped ; 10CE3 # 8.0 OLD HUNGARIAN
CAPITAL LETTER SHORT ER
+10CA4 ; mapped ; 10CE4 # 8.0 OLD HUNGARIAN
CAPITAL LETTER ES
+10CA5 ; mapped ; 10CE5 # 8.0 OLD HUNGARIAN
CAPITAL LETTER ESZ
+10CA6 ; mapped ; 10CE6 # 8.0 OLD HUNGARIAN
CAPITAL LETTER ET
+10CA7 ; mapped ; 10CE7 # 8.0 OLD HUNGARIAN
CAPITAL LETTER ENT
+10CA8 ; mapped ; 10CE8 # 8.0 OLD HUNGARIAN
CAPITAL LETTER ETY
+10CA9 ; mapped ; 10CE9 # 8.0 OLD HUNGARIAN
CAPITAL LETTER ECH
+10CAA ; mapped ; 10CEA # 8.0 OLD HUNGARIAN
CAPITAL LETTER U
+10CAB ; mapped ; 10CEB # 8.0 OLD HUNGARIAN
CAPITAL LETTER UU
+10CAC ; mapped ; 10CEC # 8.0 OLD HUNGARIAN
CAPITAL LETTER NIKOLSBURG UE
+10CAD ; mapped ; 10CED # 8.0 OLD HUNGARIAN
CAPITAL LETTER RUDIMENTA UE
+10CAE ; mapped ; 10CEE # 8.0 OLD HUNGARIAN
CAPITAL LETTER EV
+10CAF ; mapped ; 10CEF # 8.0 OLD HUNGARIAN
CAPITAL LETTER EZ
+10CB0 ; mapped ; 10CF0 # 8.0 OLD HUNGARIAN
CAPITAL LETTER EZS
+10CB1 ; mapped ; 10CF1 # 8.0 OLD HUNGARIAN
CAPITAL LETTER ENT-SHAPED SIGN
+10CB2 ; mapped ; 10CF2 # 8.0 OLD HUNGARIAN
CAPITAL LETTER US
+10CB3..10CBF ; disallowed # NA
<reserved-10CB3>..<reserved-10CBF>
+10CC0..10CF2 ; valid # 8.0 OLD HUNGARIAN
SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
+10CF3..10CF9 ; disallowed # NA
<reserved-10CF3>..<reserved-10CF9>
+10CFA..10CFF ; valid ; ; NV8 # 8.0 OLD HUNGARIAN
NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND
+10D00..10D27 ; valid # 11.0 HANIFI ROHINGYA
LETTER A..HANIFI ROHINGYA SIGN TASSI
+10D28..10D2F ; disallowed # NA
<reserved-10D28>..<reserved-10D2F>
+10D30..10D39 ; valid # 11.0 HANIFI ROHINGYA
DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
+10D3A..10E5F ; disallowed # NA
<reserved-10D3A>..<reserved-10E5F>
+10E60..10E7E ; valid ; ; NV8 # 5.2 RUMI DIGIT
ONE..RUMI FRACTION TWO THIRDS
+10E7F ; disallowed # NA <reserved-10E7F>
+10E80..10EA9 ; valid # 13.0 YEZIDI LETTER
ELIF..YEZIDI LETTER ET
+10EAA ; disallowed # NA <reserved-10EAA>
+10EAB..10EAC ; valid # 13.0 YEZIDI COMBINING
HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EAD ; valid ; ; NV8 # 13.0 YEZIDI
HYPHENATION MARK
+10EAE..10EAF ; disallowed # NA
<reserved-10EAE>..<reserved-10EAF>
+10EB0..10EB1 ; valid # 13.0 YEZIDI LETTER
LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+10EB2..10EFF ; disallowed # NA
<reserved-10EB2>..<reserved-10EFF>
+10F00..10F1C ; valid # 11.0 OLD SOGDIAN
LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
+10F1D..10F26 ; valid ; ; NV8 # 11.0 OLD SOGDIAN
NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
+10F27 ; valid # 11.0 OLD SOGDIAN
LIGATURE AYIN-DALETH
+10F28..10F2F ; disallowed # NA
<reserved-10F28>..<reserved-10F2F>
+10F30..10F50 ; valid # 11.0 SOGDIAN LETTER
ALEPH..SOGDIAN COMBINING STROKE BELOW
+10F51..10F59 ; valid ; ; NV8 # 11.0 SOGDIAN NUMBER
ONE..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
+10F5A..10F6F ; disallowed # NA
<reserved-10F5A>..<reserved-10F6F>
+10F70..10F85 ; valid # 14.0 OLD UYGHUR
LETTER ALEPH..OLD UYGHUR COMBINING TWO DOTS BELOW
+10F86..10F89 ; valid ; ; NV8 # 14.0 OLD UYGHUR
PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS
+10F8A..10FAF ; disallowed # NA
<reserved-10F8A>..<reserved-10FAF>
+10FB0..10FC4 ; valid # 13.0 CHORASMIAN
LETTER ALEPH..CHORASMIAN LETTER TAW
+10FC5..10FCB ; valid ; ; NV8 # 13.0 CHORASMIAN
NUMBER ONE..CHORASMIAN NUMBER ONE HUNDRED
+10FCC..10FDF ; disallowed # NA
<reserved-10FCC>..<reserved-10FDF>
+10FE0..10FF6 ; valid # 12.0 ELYMAIC LETTER
ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
+10FF7..10FFF ; disallowed # NA
<reserved-10FF7>..<reserved-10FFF>
+11000..11046 ; valid # 6.0 BRAHMI SIGN
CANDRABINDU..BRAHMI VIRAMA
+11047..1104D ; valid ; ; NV8 # 6.0 BRAHMI
DANDA..BRAHMI PUNCTUATION LOTUS
+1104E..11051 ; disallowed # NA
<reserved-1104E>..<reserved-11051>
+11052..11065 ; valid ; ; NV8 # 6.0 BRAHMI NUMBER
ONE..BRAHMI NUMBER ONE THOUSAND
+11066..1106F ; valid # 6.0 BRAHMI DIGIT
ZERO..BRAHMI DIGIT NINE
+11070..11075 ; valid # 14.0 BRAHMI SIGN OLD
TAMIL VIRAMA..BRAHMI LETTER OLD TAMIL LLA
+11076..1107E ; disallowed # NA
<reserved-11076>..<reserved-1107E>
+1107F ; valid # 7.0 BRAHMI NUMBER
JOINER
+11080..110BA ; valid # 5.2 KAITHI SIGN
CANDRABINDU..KAITHI SIGN NUKTA
+110BB..110BC ; valid ; ; NV8 # 5.2 KAITHI
ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
+110BD ; disallowed # 5.2 KAITHI NUMBER
SIGN
+110BE..110C1 ; valid ; ; NV8 # 5.2 KAITHI SECTION
MARK..KAITHI DOUBLE DANDA
+110C2 ; valid # 14.0 KAITHI VOWEL
SIGN VOCALIC R
+110C3..110CC ; disallowed # NA
<reserved-110C3>..<reserved-110CC>
+110CD ; disallowed # 11.0 KAITHI NUMBER
SIGN ABOVE
+110CE..110CF ; disallowed # NA
<reserved-110CE>..<reserved-110CF>
+110D0..110E8 ; valid # 6.1 SORA SOMPENG
LETTER SAH..SORA SOMPENG LETTER MAE
+110E9..110EF ; disallowed # NA
<reserved-110E9>..<reserved-110EF>
+110F0..110F9 ; valid # 6.1 SORA SOMPENG
DIGIT ZERO..SORA SOMPENG DIGIT NINE
+110FA..110FF ; disallowed # NA
<reserved-110FA>..<reserved-110FF>
+11100..11134 ; valid # 6.1 CHAKMA SIGN
CANDRABINDU..CHAKMA MAAYYAA
+11135 ; disallowed # NA <reserved-11135>
+11136..1113F ; valid # 6.1 CHAKMA DIGIT
ZERO..CHAKMA DIGIT NINE
+11140..11143 ; valid ; ; NV8 # 6.1 CHAKMA SECTION
MARK..CHAKMA QUESTION MARK
+11144..11146 ; valid # 11.0 CHAKMA LETTER
LHAA..CHAKMA VOWEL SIGN EI
+11147 ; valid # 13.0 CHAKMA LETTER VAA
+11148..1114F ; disallowed # NA
<reserved-11148>..<reserved-1114F>
+11150..11173 ; valid # 7.0 MAHAJANI LETTER
A..MAHAJANI SIGN NUKTA
+11174..11175 ; valid ; ; NV8 # 7.0 MAHAJANI
ABBREVIATION SIGN..MAHAJANI SECTION MARK
+11176 ; valid # 7.0 MAHAJANI
LIGATURE SHRI
+11177..1117F ; disallowed # NA
<reserved-11177>..<reserved-1117F>
+11180..111C4 ; valid # 6.1 SHARADA SIGN
CANDRABINDU..SHARADA OM
+111C5..111C8 ; valid ; ; NV8 # 6.1 SHARADA
DANDA..SHARADA SEPARATOR
+111C9..111CC ; valid # 8.0 SHARADA SANDHI
MARK..SHARADA EXTRA SHORT VOWEL MARK
+111CD ; valid ; ; NV8 # 7.0 SHARADA SUTRA
MARK
+111CE..111CF ; valid # 13.0 SHARADA VOWEL
SIGN PRISHTHAMATRA E..SHARADA SIGN INVERTED CANDRABINDU
+111D0..111D9 ; valid # 6.1 SHARADA DIGIT
ZERO..SHARADA DIGIT NINE
+111DA ; valid # 7.0 SHARADA EKAM
+111DB ; valid ; ; NV8 # 8.0 SHARADA SIGN
SIDDHAM
+111DC ; valid # 8.0 SHARADA
HEADSTROKE
+111DD..111DF ; valid ; ; NV8 # 8.0 SHARADA
CONTINUATION SIGN..SHARADA SECTION MARK-2
+111E0 ; disallowed # NA <reserved-111E0>
+111E1..111F4 ; valid ; ; NV8 # 7.0 SINHALA ARCHAIC
DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+111F5..111FF ; disallowed # NA
<reserved-111F5>..<reserved-111FF>
+11200..11211 ; valid # 7.0 KHOJKI LETTER
A..KHOJKI LETTER JJA
+11212 ; disallowed # NA <reserved-11212>
+11213..11237 ; valid # 7.0 KHOJKI LETTER
NYA..KHOJKI SIGN SHADDA
+11238..1123D ; valid ; ; NV8 # 7.0 KHOJKI
DANDA..KHOJKI ABBREVIATION SIGN
+1123E ; valid # 9.0 KHOJKI SIGN SUKUN
+1123F..1127F ; disallowed # NA
<reserved-1123F>..<reserved-1127F>
+11280..11286 ; valid # 8.0 MULTANI LETTER
A..MULTANI LETTER GA
+11287 ; disallowed # NA <reserved-11287>
+11288 ; valid # 8.0 MULTANI LETTER
GHA
+11289 ; disallowed # NA <reserved-11289>
+1128A..1128D ; valid # 8.0 MULTANI LETTER
CA..MULTANI LETTER JJA
+1128E ; disallowed # NA <reserved-1128E>
+1128F..1129D ; valid # 8.0 MULTANI LETTER
NYA..MULTANI LETTER BA
+1129E ; disallowed # NA <reserved-1129E>
+1129F..112A8 ; valid # 8.0 MULTANI LETTER
BHA..MULTANI LETTER RHA
+112A9 ; valid ; ; NV8 # 8.0 MULTANI SECTION
MARK
+112AA..112AF ; disallowed # NA
<reserved-112AA>..<reserved-112AF>
+112B0..112EA ; valid # 7.0 KHUDAWADI LETTER
A..KHUDAWADI SIGN VIRAMA
+112EB..112EF ; disallowed # NA
<reserved-112EB>..<reserved-112EF>
+112F0..112F9 ; valid # 7.0 KHUDAWADI DIGIT
ZERO..KHUDAWADI DIGIT NINE
+112FA..112FF ; disallowed # NA
<reserved-112FA>..<reserved-112FF>
+11300 ; valid # 8.0 GRANTHA SIGN
COMBINING ANUSVARA ABOVE
+11301..11303 ; valid # 7.0 GRANTHA SIGN
CANDRABINDU..GRANTHA SIGN VISARGA
+11304 ; disallowed # NA <reserved-11304>
+11305..1130C ; valid # 7.0 GRANTHA LETTER
A..GRANTHA LETTER VOCALIC L
+1130D..1130E ; disallowed # NA
<reserved-1130D>..<reserved-1130E>
+1130F..11310 ; valid # 7.0 GRANTHA LETTER
EE..GRANTHA LETTER AI
+11311..11312 ; disallowed # NA
<reserved-11311>..<reserved-11312>
+11313..11328 ; valid # 7.0 GRANTHA LETTER
OO..GRANTHA LETTER NA
+11329 ; disallowed # NA <reserved-11329>
+1132A..11330 ; valid # 7.0 GRANTHA LETTER
PA..GRANTHA LETTER RA
+11331 ; disallowed # NA <reserved-11331>
+11332..11333 ; valid # 7.0 GRANTHA LETTER
LA..GRANTHA LETTER LLA
+11334 ; disallowed # NA <reserved-11334>
+11335..11339 ; valid # 7.0 GRANTHA LETTER
VA..GRANTHA LETTER HA
+1133A ; disallowed # NA <reserved-1133A>
+1133B ; valid # 11.0 COMBINING BINDU
BELOW
+1133C..11344 ; valid # 7.0 GRANTHA SIGN
NUKTA..GRANTHA VOWEL SIGN VOCALIC RR
+11345..11346 ; disallowed # NA
<reserved-11345>..<reserved-11346>
+11347..11348 ; valid # 7.0 GRANTHA VOWEL
SIGN EE..GRANTHA VOWEL SIGN AI
+11349..1134A ; disallowed # NA
<reserved-11349>..<reserved-1134A>
+1134B..1134D ; valid # 7.0 GRANTHA VOWEL
SIGN OO..GRANTHA SIGN VIRAMA
+1134E..1134F ; disallowed # NA
<reserved-1134E>..<reserved-1134F>
+11350 ; valid # 8.0 GRANTHA OM
+11351..11356 ; disallowed # NA
<reserved-11351>..<reserved-11356>
+11357 ; valid # 7.0 GRANTHA AU
LENGTH MARK
+11358..1135C ; disallowed # NA
<reserved-11358>..<reserved-1135C>
+1135D..11363 ; valid # 7.0 GRANTHA SIGN
PLUTA..GRANTHA VOWEL SIGN VOCALIC LL
+11364..11365 ; disallowed # NA
<reserved-11364>..<reserved-11365>
+11366..1136C ; valid # 7.0 COMBINING
GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+1136D..1136F ; disallowed # NA
<reserved-1136D>..<reserved-1136F>
+11370..11374 ; valid # 7.0 COMBINING
GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+11375..113FF ; disallowed # NA
<reserved-11375>..<reserved-113FF>
+11400..1144A ; valid # 9.0 NEWA LETTER
A..NEWA SIDDHI
+1144B..1144F ; valid ; ; NV8 # 9.0 NEWA DANDA..NEWA
ABBREVIATION SIGN
+11450..11459 ; valid # 9.0 NEWA DIGIT
ZERO..NEWA DIGIT NINE
+1145A ; valid ; ; NV8 # 13.0 NEWA DOUBLE COMMA
+1145B ; valid ; ; NV8 # 9.0 NEWA PLACEHOLDER
MARK
+1145C ; disallowed # NA <reserved-1145C>
+1145D ; valid ; ; NV8 # 9.0 NEWA INSERTION
SIGN
+1145E ; valid # 11.0 NEWA SANDHI MARK
+1145F ; valid # 12.0 NEWA LETTER
VEDIC ANUSVARA
+11460..11461 ; valid # 13.0 NEWA SIGN
JIHVAMULIYA..NEWA SIGN UPADHMANIYA
+11462..1147F ; disallowed # NA
<reserved-11462>..<reserved-1147F>
+11480..114C5 ; valid # 7.0 TIRHUTA
ANJI..TIRHUTA GVANG
+114C6 ; valid ; ; NV8 # 7.0 TIRHUTA
ABBREVIATION SIGN
+114C7 ; valid # 7.0 TIRHUTA OM
+114C8..114CF ; disallowed # NA
<reserved-114C8>..<reserved-114CF>
+114D0..114D9 ; valid # 7.0 TIRHUTA DIGIT
ZERO..TIRHUTA DIGIT NINE
+114DA..1157F ; disallowed # NA
<reserved-114DA>..<reserved-1157F>
+11580..115B5 ; valid # 7.0 SIDDHAM LETTER
A..SIDDHAM VOWEL SIGN VOCALIC RR
+115B6..115B7 ; disallowed # NA
<reserved-115B6>..<reserved-115B7>
+115B8..115C0 ; valid # 7.0 SIDDHAM VOWEL
SIGN E..SIDDHAM SIGN NUKTA
+115C1..115C9 ; valid ; ; NV8 # 7.0 SIDDHAM SIGN
SIDDHAM..SIDDHAM END OF TEXT MARK
+115CA..115D7 ; valid ; ; NV8 # 8.0 SIDDHAM SECTION
MARK WITH TRIDENT AND U-SHAPED ORNAMENTS..SIDDHAM SECTION MARK WITH CIRCLES AND
FOUR ENCLOSURES
+115D8..115DD ; valid # 8.0 SIDDHAM LETTER
THREE-CIRCLE ALTERNATE I..SIDDHAM VOWEL SIGN ALTERNATE UU
+115DE..115FF ; disallowed # NA
<reserved-115DE>..<reserved-115FF>
+11600..11640 ; valid # 7.0 MODI LETTER
A..MODI SIGN ARDHACANDRA
+11641..11643 ; valid ; ; NV8 # 7.0 MODI DANDA..MODI
ABBREVIATION SIGN
+11644 ; valid # 7.0 MODI SIGN HUVA
+11645..1164F ; disallowed # NA
<reserved-11645>..<reserved-1164F>
+11650..11659 ; valid # 7.0 MODI DIGIT
ZERO..MODI DIGIT NINE
+1165A..1165F ; disallowed # NA
<reserved-1165A>..<reserved-1165F>
+11660..1166C ; valid ; ; NV8 # 9.0 MONGOLIAN BIRGA
WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT
+1166D..1167F ; disallowed # NA
<reserved-1166D>..<reserved-1167F>
+11680..116B7 ; valid # 6.1 TAKRI LETTER
A..TAKRI SIGN NUKTA
+116B8 ; valid # 12.0 TAKRI LETTER
ARCHAIC KHA
+116B9 ; valid ; ; NV8 # 14.0 TAKRI
ABBREVIATION SIGN
+116BA..116BF ; disallowed # NA
<reserved-116BA>..<reserved-116BF>
+116C0..116C9 ; valid # 6.1 TAKRI DIGIT
ZERO..TAKRI DIGIT NINE
+116CA..116FF ; disallowed # NA
<reserved-116CA>..<reserved-116FF>
+11700..11719 ; valid # 8.0 AHOM LETTER
KA..AHOM LETTER JHA
+1171A ; valid # 11.0 AHOM LETTER
ALTERNATE BA
+1171B..1171C ; disallowed # NA
<reserved-1171B>..<reserved-1171C>
+1171D..1172B ; valid # 8.0 AHOM CONSONANT
SIGN MEDIAL LA..AHOM SIGN KILLER
+1172C..1172F ; disallowed # NA
<reserved-1172C>..<reserved-1172F>
+11730..11739 ; valid # 8.0 AHOM DIGIT
ZERO..AHOM DIGIT NINE
+1173A..1173F ; valid ; ; NV8 # 8.0 AHOM NUMBER
TEN..AHOM SYMBOL VI
+11740..11746 ; valid # 14.0 AHOM LETTER
CA..AHOM LETTER LLA
+11747..117FF ; disallowed # NA
<reserved-11747>..<reserved-117FF>
+11800..1183A ; valid # 11.0 DOGRA LETTER
A..DOGRA SIGN NUKTA
+1183B ; valid ; ; NV8 # 11.0 DOGRA
ABBREVIATION SIGN
+1183C..1189F ; disallowed # NA
<reserved-1183C>..<reserved-1189F>
+118A0 ; mapped ; 118C0 # 7.0 WARANG CITI
CAPITAL LETTER NGAA
+118A1 ; mapped ; 118C1 # 7.0 WARANG CITI
CAPITAL LETTER A
+118A2 ; mapped ; 118C2 # 7.0 WARANG CITI
CAPITAL LETTER WI
+118A3 ; mapped ; 118C3 # 7.0 WARANG CITI
CAPITAL LETTER YU
+118A4 ; mapped ; 118C4 # 7.0 WARANG CITI
CAPITAL LETTER YA
+118A5 ; mapped ; 118C5 # 7.0 WARANG CITI
CAPITAL LETTER YO
+118A6 ; mapped ; 118C6 # 7.0 WARANG CITI
CAPITAL LETTER II
+118A7 ; mapped ; 118C7 # 7.0 WARANG CITI
CAPITAL LETTER UU
+118A8 ; mapped ; 118C8 # 7.0 WARANG CITI
CAPITAL LETTER E
+118A9 ; mapped ; 118C9 # 7.0 WARANG CITI
CAPITAL LETTER O
+118AA ; mapped ; 118CA # 7.0 WARANG CITI
CAPITAL LETTER ANG
+118AB ; mapped ; 118CB # 7.0 WARANG CITI
CAPITAL LETTER GA
+118AC ; mapped ; 118CC # 7.0 WARANG CITI
CAPITAL LETTER KO
+118AD ; mapped ; 118CD # 7.0 WARANG CITI
CAPITAL LETTER ENY
+118AE ; mapped ; 118CE # 7.0 WARANG CITI
CAPITAL LETTER YUJ
+118AF ; mapped ; 118CF # 7.0 WARANG CITI
CAPITAL LETTER UC
+118B0 ; mapped ; 118D0 # 7.0 WARANG CITI
CAPITAL LETTER ENN
+118B1 ; mapped ; 118D1 # 7.0 WARANG CITI
CAPITAL LETTER ODD
+118B2 ; mapped ; 118D2 # 7.0 WARANG CITI
CAPITAL LETTER TTE
+118B3 ; mapped ; 118D3 # 7.0 WARANG CITI
CAPITAL LETTER NUNG
+118B4 ; mapped ; 118D4 # 7.0 WARANG CITI
CAPITAL LETTER DA
+118B5 ; mapped ; 118D5 # 7.0 WARANG CITI
CAPITAL LETTER AT
+118B6 ; mapped ; 118D6 # 7.0 WARANG CITI
CAPITAL LETTER AM
+118B7 ; mapped ; 118D7 # 7.0 WARANG CITI
CAPITAL LETTER BU
+118B8 ; mapped ; 118D8 # 7.0 WARANG CITI
CAPITAL LETTER PU
+118B9 ; mapped ; 118D9 # 7.0 WARANG CITI
CAPITAL LETTER HIYO
+118BA ; mapped ; 118DA # 7.0 WARANG CITI
CAPITAL LETTER HOLO
+118BB ; mapped ; 118DB # 7.0 WARANG CITI
CAPITAL LETTER HORR
+118BC ; mapped ; 118DC # 7.0 WARANG CITI
CAPITAL LETTER HAR
+118BD ; mapped ; 118DD # 7.0 WARANG CITI
CAPITAL LETTER SSUU
+118BE ; mapped ; 118DE # 7.0 WARANG CITI
CAPITAL LETTER SII
+118BF ; mapped ; 118DF # 7.0 WARANG CITI
CAPITAL LETTER VIYO
+118C0..118E9 ; valid # 7.0 WARANG CITI
SMALL LETTER NGAA..WARANG CITI DIGIT NINE
+118EA..118F2 ; valid ; ; NV8 # 7.0 WARANG CITI
NUMBER TEN..WARANG CITI NUMBER NINETY
+118F3..118FE ; disallowed # NA
<reserved-118F3>..<reserved-118FE>
+118FF ; valid # 7.0 WARANG CITI OM
+11900..11906 ; valid # 13.0 DIVES AKURU
LETTER A..DIVES AKURU LETTER E
+11907..11908 ; disallowed # NA
<reserved-11907>..<reserved-11908>
+11909 ; valid # 13.0 DIVES AKURU
LETTER O
+1190A..1190B ; disallowed # NA
<reserved-1190A>..<reserved-1190B>
+1190C..11913 ; valid # 13.0 DIVES AKURU
LETTER KA..DIVES AKURU LETTER JA
+11914 ; disallowed # NA <reserved-11914>
+11915..11916 ; valid # 13.0 DIVES AKURU
LETTER NYA..DIVES AKURU LETTER TTA
+11917 ; disallowed # NA <reserved-11917>
+11918..11935 ; valid # 13.0 DIVES AKURU
LETTER DDA..DIVES AKURU VOWEL SIGN E
+11936 ; disallowed # NA <reserved-11936>
+11937..11938 ; valid # 13.0 DIVES AKURU
VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O
+11939..1193A ; disallowed # NA
<reserved-11939>..<reserved-1193A>
+1193B..11943 ; valid # 13.0 DIVES AKURU SIGN
ANUSVARA..DIVES AKURU SIGN NUKTA
+11944..11946 ; valid ; ; NV8 # 13.0 DIVES AKURU
DOUBLE DANDA..DIVES AKURU END OF TEXT MARK
+11947..1194F ; disallowed # NA
<reserved-11947>..<reserved-1194F>
+11950..11959 ; valid # 13.0 DIVES AKURU
DIGIT ZERO..DIVES AKURU DIGIT NINE
+1195A..1199F ; disallowed # NA
<reserved-1195A>..<reserved-1199F>
+119A0..119A7 ; valid # 12.0 NANDINAGARI
LETTER A..NANDINAGARI LETTER VOCALIC RR
+119A8..119A9 ; disallowed # NA
<reserved-119A8>..<reserved-119A9>
+119AA..119D7 ; valid # 12.0 NANDINAGARI
LETTER E..NANDINAGARI VOWEL SIGN VOCALIC RR
+119D8..119D9 ; disallowed # NA
<reserved-119D8>..<reserved-119D9>
+119DA..119E1 ; valid # 12.0 NANDINAGARI
VOWEL SIGN E..NANDINAGARI SIGN AVAGRAHA
+119E2 ; valid ; ; NV8 # 12.0 NANDINAGARI SIGN
SIDDHAM
+119E3..119E4 ; valid # 12.0 NANDINAGARI
HEADSTROKE..NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
+119E5..119FF ; disallowed # NA
<reserved-119E5>..<reserved-119FF>
+11A00..11A3E ; valid # 10.0 ZANABAZAR SQUARE
LETTER A..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
+11A3F..11A46 ; valid ; ; NV8 # 10.0 ZANABAZAR SQUARE
INITIAL HEAD MARK..ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK
+11A47 ; valid # 10.0 ZANABAZAR SQUARE
SUBJOINER
+11A48..11A4F ; disallowed # NA
<reserved-11A48>..<reserved-11A4F>
+11A50..11A83 ; valid # 10.0 SOYOMBO LETTER
A..SOYOMBO LETTER KSSA
+11A84..11A85 ; valid # 12.0 SOYOMBO SIGN
JIHVAMULIYA..SOYOMBO SIGN UPADHMANIYA
+11A86..11A99 ; valid # 10.0 SOYOMBO
CLUSTER-INITIAL LETTER RA..SOYOMBO SUBJOINER
+11A9A..11A9C ; valid ; ; NV8 # 10.0 SOYOMBO MARK
TSHEG..SOYOMBO MARK DOUBLE SHAD
+11A9D ; valid # 11.0 SOYOMBO MARK
PLUTA
+11A9E..11AA2 ; valid ; ; NV8 # 10.0 SOYOMBO HEAD
MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
+11AA3..11AAF ; disallowed # NA
<reserved-11AA3>..<reserved-11AAF>
+11AB0..11ABF ; valid # 14.0 CANADIAN
SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA
+11AC0..11AF8 ; valid # 7.0 PAU CIN HAU
LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+11AF9..11BFF ; disallowed # NA
<reserved-11AF9>..<reserved-11BFF>
+11C00..11C08 ; valid # 9.0 BHAIKSUKI LETTER
A..BHAIKSUKI LETTER VOCALIC L
+11C09 ; disallowed # NA <reserved-11C09>
+11C0A..11C36 ; valid # 9.0 BHAIKSUKI LETTER
E..BHAIKSUKI VOWEL SIGN VOCALIC L
+11C37 ; disallowed # NA <reserved-11C37>
+11C38..11C40 ; valid # 9.0 BHAIKSUKI VOWEL
SIGN E..BHAIKSUKI SIGN AVAGRAHA
+11C41..11C45 ; valid ; ; NV8 # 9.0 BHAIKSUKI
DANDA..BHAIKSUKI GAP FILLER-2
+11C46..11C4F ; disallowed # NA
<reserved-11C46>..<reserved-11C4F>
+11C50..11C59 ; valid # 9.0 BHAIKSUKI DIGIT
ZERO..BHAIKSUKI DIGIT NINE
+11C5A..11C6C ; valid ; ; NV8 # 9.0 BHAIKSUKI NUMBER
ONE..BHAIKSUKI HUNDREDS UNIT MARK
+11C6D..11C6F ; disallowed # NA
<reserved-11C6D>..<reserved-11C6F>
+11C70..11C71 ; valid ; ; NV8 # 9.0 MARCHEN HEAD
MARK..MARCHEN MARK SHAD
+11C72..11C8F ; valid # 9.0 MARCHEN LETTER
KA..MARCHEN LETTER A
+11C90..11C91 ; disallowed # NA
<reserved-11C90>..<reserved-11C91>
+11C92..11CA7 ; valid # 9.0 MARCHEN
SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
+11CA8 ; disallowed # NA <reserved-11CA8>
+11CA9..11CB6 ; valid # 9.0 MARCHEN
SUBJOINED LETTER YA..MARCHEN SIGN CANDRABINDU
+11CB7..11CFF ; disallowed # NA
<reserved-11CB7>..<reserved-11CFF>
+11D00..11D06 ; valid # 10.0 MASARAM GONDI
LETTER A..MASARAM GONDI LETTER E
+11D07 ; disallowed # NA <reserved-11D07>
+11D08..11D09 ; valid # 10.0 MASARAM GONDI
LETTER AI..MASARAM GONDI LETTER O
+11D0A ; disallowed # NA <reserved-11D0A>
+11D0B..11D36 ; valid # 10.0 MASARAM GONDI
LETTER AU..MASARAM GONDI VOWEL SIGN VOCALIC R
+11D37..11D39 ; disallowed # NA
<reserved-11D37>..<reserved-11D39>
+11D3A ; valid # 10.0 MASARAM GONDI
VOWEL SIGN E
+11D3B ; disallowed # NA <reserved-11D3B>
+11D3C..11D3D ; valid # 10.0 MASARAM GONDI
VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
+11D3E ; disallowed # NA <reserved-11D3E>
+11D3F..11D47 ; valid # 10.0 MASARAM GONDI
VOWEL SIGN AU..MASARAM GONDI RA-KARA
+11D48..11D4F ; disallowed # NA
<reserved-11D48>..<reserved-11D4F>
+11D50..11D59 ; valid # 10.0 MASARAM GONDI
DIGIT ZERO..MASARAM GONDI DIGIT NINE
+11D5A..11D5F ; disallowed # NA
<reserved-11D5A>..<reserved-11D5F>
+11D60..11D65 ; valid # 11.0 GUNJALA GONDI
LETTER A..GUNJALA GONDI LETTER UU
+11D66 ; disallowed # NA <reserved-11D66>
+11D67..11D68 ; valid # 11.0 GUNJALA GONDI
LETTER EE..GUNJALA GONDI LETTER AI
+11D69 ; disallowed # NA <reserved-11D69>
+11D6A..11D8E ; valid # 11.0 GUNJALA GONDI
LETTER OO..GUNJALA GONDI VOWEL SIGN UU
+11D8F ; disallowed # NA <reserved-11D8F>
+11D90..11D91 ; valid # 11.0 GUNJALA GONDI
VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
+11D92 ; disallowed # NA <reserved-11D92>
+11D93..11D98 ; valid # 11.0 GUNJALA GONDI
VOWEL SIGN OO..GUNJALA GONDI OM
+11D99..11D9F ; disallowed # NA
<reserved-11D99>..<reserved-11D9F>
+11DA0..11DA9 ; valid # 11.0 GUNJALA GONDI
DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+11DAA..11EDF ; disallowed # NA
<reserved-11DAA>..<reserved-11EDF>
+11EE0..11EF6 ; valid # 11.0 MAKASAR LETTER
KA..MAKASAR VOWEL SIGN O
+11EF7..11EF8 ; valid ; ; NV8 # 11.0 MAKASAR
PASSIMBANG..MAKASAR END OF SECTION
+11EF9..11FAF ; disallowed # NA
<reserved-11EF9>..<reserved-11FAF>
+11FB0 ; valid # 13.0 LISU LETTER YHA
+11FB1..11FBF ; disallowed # NA
<reserved-11FB1>..<reserved-11FBF>
+11FC0..11FF1 ; valid ; ; NV8 # 12.0 TAMIL FRACTION
ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL SIGN VAKAIYARAA
+11FF2..11FFE ; disallowed # NA
<reserved-11FF2>..<reserved-11FFE>
+11FFF ; valid ; ; NV8 # 12.0 TAMIL
PUNCTUATION END OF TEXT
+12000..1236E ; valid # 5.0 CUNEIFORM SIGN
A..CUNEIFORM SIGN ZUM
+1236F..12398 ; valid # 7.0 CUNEIFORM SIGN
KAP ELAMITE..CUNEIFORM SIGN UM TIMES ME
+12399 ; valid # 8.0 CUNEIFORM SIGN U
U
+1239A..123FF ; disallowed # NA
<reserved-1239A>..<reserved-123FF>
+12400..12462 ; valid ; ; NV8 # 5.0 CUNEIFORM
NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+12463..1246E ; valid ; ; NV8 # 7.0 CUNEIFORM
NUMERIC SIGN ONE QUARTER GUR..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+1246F ; disallowed # NA <reserved-1246F>
+12470..12473 ; valid ; ; NV8 # 5.0 CUNEIFORM
PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL
TRICOLON
+12474 ; valid ; ; NV8 # 7.0 CUNEIFORM
PUNCTUATION SIGN DIAGONAL QUADCOLON
+12475..1247F ; disallowed # NA
<reserved-12475>..<reserved-1247F>
+12480..12543 ; valid # 8.0 CUNEIFORM SIGN
AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
+12544..12F8F ; disallowed # NA
<reserved-12544>..<reserved-12F8F>
+12F90..12FF0 ; valid # 14.0 CYPRO-MINOAN
SIGN CM001..CYPRO-MINOAN SIGN CM114
+12FF1..12FF2 ; valid ; ; NV8 # 14.0 CYPRO-MINOAN
SIGN CM301..CYPRO-MINOAN SIGN CM302
+12FF3..12FFF ; disallowed # NA
<reserved-12FF3>..<reserved-12FFF>
+13000..1342E ; valid # 5.2 EGYPTIAN
HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+1342F ; disallowed # NA <reserved-1342F>
+13430..13438 ; disallowed # 12.0 EGYPTIAN
HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13439..143FF ; disallowed # NA
<reserved-13439>..<reserved-143FF>
+14400..14646 ; valid # 8.0 ANATOLIAN
HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
+14647..167FF ; disallowed # NA
<reserved-14647>..<reserved-167FF>
+16800..16A38 ; valid # 6.0 BAMUM LETTER
PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A39..16A3F ; disallowed # NA
<reserved-16A39>..<reserved-16A3F>
+16A40..16A5E ; valid # 7.0 MRO LETTER
TA..MRO LETTER TEK
+16A5F ; disallowed # NA <reserved-16A5F>
+16A60..16A69 ; valid # 7.0 MRO DIGIT
ZERO..MRO DIGIT NINE
+16A6A..16A6D ; disallowed # NA
<reserved-16A6A>..<reserved-16A6D>
+16A6E..16A6F ; valid ; ; NV8 # 7.0 MRO DANDA..MRO
DOUBLE DANDA
+16A70..16ABE ; valid # 14.0 TANGSA LETTER
OZ..TANGSA LETTER ZA
+16ABF ; disallowed # NA <reserved-16ABF>
+16AC0..16AC9 ; valid # 14.0 TANGSA DIGIT
ZERO..TANGSA DIGIT NINE
+16ACA..16ACF ; disallowed # NA
<reserved-16ACA>..<reserved-16ACF>
+16AD0..16AED ; valid # 7.0 BASSA VAH LETTER
ENNI..BASSA VAH LETTER I
+16AEE..16AEF ; disallowed # NA
<reserved-16AEE>..<reserved-16AEF>
+16AF0..16AF4 ; valid # 7.0 BASSA VAH
COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16AF5 ; valid ; ; NV8 # 7.0 BASSA VAH FULL
STOP
+16AF6..16AFF ; disallowed # NA
<reserved-16AF6>..<reserved-16AFF>
+16B00..16B36 ; valid # 7.0 PAHAWH HMONG
VOWEL KEEB..PAHAWH HMONG MARK CIM TAUM
+16B37..16B3F ; valid ; ; NV8 # 7.0 PAHAWH HMONG
SIGN VOS THOM..PAHAWH HMONG SIGN XYEEM FAIB
+16B40..16B43 ; valid # 7.0 PAHAWH HMONG
SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B44..16B45 ; valid ; ; NV8 # 7.0 PAHAWH HMONG
SIGN XAUS..PAHAWH HMONG SIGN CIM TSOV ROG
+16B46..16B4F ; disallowed # NA
<reserved-16B46>..<reserved-16B4F>
+16B50..16B59 ; valid # 7.0 PAHAWH HMONG
DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B5A ; disallowed # NA <reserved-16B5A>
+16B5B..16B61 ; valid ; ; NV8 # 7.0 PAHAWH HMONG
NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+16B62 ; disallowed # NA <reserved-16B62>
+16B63..16B77 ; valid # 7.0 PAHAWH HMONG
SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B78..16B7C ; disallowed # NA
<reserved-16B78>..<reserved-16B7C>
+16B7D..16B8F ; valid # 7.0 PAHAWH HMONG
CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+16B90..16E3F ; disallowed # NA
<reserved-16B90>..<reserved-16E3F>
+16E40 ; mapped ; 16E60 # 11.0 MEDEFAIDRIN
CAPITAL LETTER M
+16E41 ; mapped ; 16E61 # 11.0 MEDEFAIDRIN
CAPITAL LETTER S
+16E42 ; mapped ; 16E62 # 11.0 MEDEFAIDRIN
CAPITAL LETTER V
+16E43 ; mapped ; 16E63 # 11.0 MEDEFAIDRIN
CAPITAL LETTER W
+16E44 ; mapped ; 16E64 # 11.0 MEDEFAIDRIN
CAPITAL LETTER ATIU
+16E45 ; mapped ; 16E65 # 11.0 MEDEFAIDRIN
CAPITAL LETTER Z
+16E46 ; mapped ; 16E66 # 11.0 MEDEFAIDRIN
CAPITAL LETTER KP
+16E47 ; mapped ; 16E67 # 11.0 MEDEFAIDRIN
CAPITAL LETTER P
+16E48 ; mapped ; 16E68 # 11.0 MEDEFAIDRIN
CAPITAL LETTER T
+16E49 ; mapped ; 16E69 # 11.0 MEDEFAIDRIN
CAPITAL LETTER G
+16E4A ; mapped ; 16E6A # 11.0 MEDEFAIDRIN
CAPITAL LETTER F
+16E4B ; mapped ; 16E6B # 11.0 MEDEFAIDRIN
CAPITAL LETTER I
+16E4C ; mapped ; 16E6C # 11.0 MEDEFAIDRIN
CAPITAL LETTER K
+16E4D ; mapped ; 16E6D # 11.0 MEDEFAIDRIN
CAPITAL LETTER A
+16E4E ; mapped ; 16E6E # 11.0 MEDEFAIDRIN
CAPITAL LETTER J
+16E4F ; mapped ; 16E6F # 11.0 MEDEFAIDRIN
CAPITAL LETTER E
+16E50 ; mapped ; 16E70 # 11.0 MEDEFAIDRIN
CAPITAL LETTER B
+16E51 ; mapped ; 16E71 # 11.0 MEDEFAIDRIN
CAPITAL LETTER C
+16E52 ; mapped ; 16E72 # 11.0 MEDEFAIDRIN
CAPITAL LETTER U
+16E53 ; mapped ; 16E73 # 11.0 MEDEFAIDRIN
CAPITAL LETTER YU
+16E54 ; mapped ; 16E74 # 11.0 MEDEFAIDRIN
CAPITAL LETTER L
+16E55 ; mapped ; 16E75 # 11.0 MEDEFAIDRIN
CAPITAL LETTER Q
+16E56 ; mapped ; 16E76 # 11.0 MEDEFAIDRIN
CAPITAL LETTER HP
+16E57 ; mapped ; 16E77 # 11.0 MEDEFAIDRIN
CAPITAL LETTER NY
+16E58 ; mapped ; 16E78 # 11.0 MEDEFAIDRIN
CAPITAL LETTER X
+16E59 ; mapped ; 16E79 # 11.0 MEDEFAIDRIN
CAPITAL LETTER D
+16E5A ; mapped ; 16E7A # 11.0 MEDEFAIDRIN
CAPITAL LETTER OE
+16E5B ; mapped ; 16E7B # 11.0 MEDEFAIDRIN
CAPITAL LETTER N
+16E5C ; mapped ; 16E7C # 11.0 MEDEFAIDRIN
CAPITAL LETTER R
+16E5D ; mapped ; 16E7D # 11.0 MEDEFAIDRIN
CAPITAL LETTER O
+16E5E ; mapped ; 16E7E # 11.0 MEDEFAIDRIN
CAPITAL LETTER AI
+16E5F ; mapped ; 16E7F # 11.0 MEDEFAIDRIN
CAPITAL LETTER Y
+16E60..16E7F ; valid # 11.0 MEDEFAIDRIN
SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y
+16E80..16E9A ; valid ; ; NV8 # 11.0 MEDEFAIDRIN
DIGIT ZERO..MEDEFAIDRIN EXCLAMATION OH
+16E9B..16EFF ; disallowed # NA
<reserved-16E9B>..<reserved-16EFF>
+16F00..16F44 ; valid # 6.1 MIAO LETTER
PA..MIAO LETTER HHA
+16F45..16F4A ; valid # 12.0 MIAO LETTER
BRI..MIAO LETTER RTE
+16F4B..16F4E ; disallowed # NA
<reserved-16F4B>..<reserved-16F4E>
+16F4F ; valid # 12.0 MIAO SIGN
CONSONANT MODIFIER BAR
+16F50..16F7E ; valid # 6.1 MIAO LETTER
NASALIZATION..MIAO VOWEL SIGN NG
+16F7F..16F87 ; valid # 12.0 MIAO VOWEL SIGN
UOG..MIAO VOWEL SIGN UI
+16F88..16F8E ; disallowed # NA
<reserved-16F88>..<reserved-16F8E>
+16F8F..16F9F ; valid # 6.1 MIAO TONE
RIGHT..MIAO LETTER REFORMED TONE-8
+16FA0..16FDF ; disallowed # NA
<reserved-16FA0>..<reserved-16FDF>
+16FE0 ; valid # 9.0 TANGUT ITERATION
MARK
+16FE1 ; valid # 10.0 NUSHU ITERATION
MARK
+16FE2 ; valid ; ; NV8 # 12.0 OLD CHINESE HOOK
MARK
+16FE3 ; valid # 12.0 OLD CHINESE
ITERATION MARK
+16FE4 ; valid # 13.0 KHITAN SMALL
SCRIPT FILLER
+16FE5..16FEF ; disallowed # NA
<reserved-16FE5>..<reserved-16FEF>
+16FF0..16FF1 ; valid # 13.0 VIETNAMESE
ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
+16FF2..16FFF ; disallowed # NA
<reserved-16FF2>..<reserved-16FFF>
+17000..187EC ; valid # 9.0 TANGUT
IDEOGRAPH-17000..TANGUT IDEOGRAPH-187EC
+187ED..187F1 ; valid # 11.0 TANGUT
IDEOGRAPH-187ED..TANGUT IDEOGRAPH-187F1
+187F2..187F7 ; valid # 12.0 TANGUT
IDEOGRAPH-187F2..TANGUT IDEOGRAPH-187F7
+187F8..187FF ; disallowed # NA
<reserved-187F8>..<reserved-187FF>
+18800..18AF2 ; valid # 9.0 TANGUT
COMPONENT-001..TANGUT COMPONENT-755
+18AF3..18CD5 ; valid # 13.0 TANGUT
COMPONENT-756..KHITAN SMALL SCRIPT CHARACTER-18CD5
+18CD6..18CFF ; disallowed # NA
<reserved-18CD6>..<reserved-18CFF>
+18D00..18D08 ; valid # 13.0 TANGUT
IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
+18D09..1AFEF ; disallowed # NA
<reserved-18D09>..<reserved-1AFEF>
+1AFF0..1AFF3 ; valid # 14.0 KATAKANA LETTER
MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
+1AFF4 ; disallowed # NA <reserved-1AFF4>
+1AFF5..1AFFB ; valid # 14.0 KATAKANA LETTER
MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
+1AFFC ; disallowed # NA <reserved-1AFFC>
+1AFFD..1AFFE ; valid # 14.0 KATAKANA LETTER
MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
+1AFFF ; disallowed # NA <reserved-1AFFF>
+1B000..1B001 ; valid # 6.0 KATAKANA LETTER
ARCHAIC E..HIRAGANA LETTER ARCHAIC YE
+1B002..1B11E ; valid # 10.0 HENTAIGANA
LETTER A-1..HENTAIGANA LETTER N-MU-MO-2
+1B11F..1B122 ; valid # 14.0 HIRAGANA LETTER
ARCHAIC WU..KATAKANA LETTER ARCHAIC WU
+1B123..1B14F ; disallowed # NA
<reserved-1B123>..<reserved-1B14F>
+1B150..1B152 ; valid # 12.0 HIRAGANA LETTER
SMALL WI..HIRAGANA LETTER SMALL WO
+1B153..1B163 ; disallowed # NA
<reserved-1B153>..<reserved-1B163>
+1B164..1B167 ; valid # 12.0 KATAKANA LETTER
SMALL WI..KATAKANA LETTER SMALL N
+1B168..1B16F ; disallowed # NA
<reserved-1B168>..<reserved-1B16F>
+1B170..1B2FB ; valid # 10.0 NUSHU
CHARACTER-1B170..NUSHU CHARACTER-1B2FB
+1B2FC..1BBFF ; disallowed # NA
<reserved-1B2FC>..<reserved-1BBFF>
+1BC00..1BC6A ; valid # 7.0 DUPLOYAN LETTER
H..DUPLOYAN LETTER VOCALIC M
+1BC6B..1BC6F ; disallowed # NA
<reserved-1BC6B>..<reserved-1BC6F>
+1BC70..1BC7C ; valid # 7.0 DUPLOYAN AFFIX
LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC7D..1BC7F ; disallowed # NA
<reserved-1BC7D>..<reserved-1BC7F>
+1BC80..1BC88 ; valid # 7.0 DUPLOYAN AFFIX
HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC89..1BC8F ; disallowed # NA
<reserved-1BC89>..<reserved-1BC8F>
+1BC90..1BC99 ; valid # 7.0 DUPLOYAN AFFIX
LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9A..1BC9B ; disallowed # NA
<reserved-1BC9A>..<reserved-1BC9B>
+1BC9C ; valid ; ; NV8 # 7.0 DUPLOYAN SIGN O
WITH CROSS
+1BC9D..1BC9E ; valid # 7.0 DUPLOYAN THICK
LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1BC9F ; valid ; ; NV8 # 7.0 DUPLOYAN
PUNCTUATION CHINOOK FULL STOP
+1BCA0..1BCA3 ; ignored # 7.0 SHORTHAND FORMAT
LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+1BCA4..1CEFF ; disallowed # NA
<reserved-1BCA4>..<reserved-1CEFF>
+1CF00..1CF2D ; valid # 14.0 ZNAMENNY
COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH
ON LEFT
+1CF2E..1CF2F ; disallowed # NA
<reserved-1CF2E>..<reserved-1CF2F>
+1CF30..1CF46 ; valid # 14.0 ZNAMENNY
COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
+1CF47..1CF4F ; disallowed # NA
<reserved-1CF47>..<reserved-1CF4F>
+1CF50..1CFC3 ; valid ; ; NV8 # 14.0 ZNAMENNY NEUME
KRYUK..ZNAMENNY NEUME PAUK
+1CFC4..1CFFF ; disallowed # NA
<reserved-1CFC4>..<reserved-1CFFF>
+1D000..1D0F5 ; valid ; ; NV8 # 3.1 BYZANTINE
MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
+1D0F6..1D0FF ; disallowed # NA
<reserved-1D0F6>..<reserved-1D0FF>
+1D100..1D126 ; valid ; ; NV8 # 3.1 MUSICAL SYMBOL
SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
+1D127..1D128 ; disallowed # NA
<reserved-1D127>..<reserved-1D128>
+1D129 ; valid ; ; NV8 # 5.1 MUSICAL SYMBOL
MULTIPLE MEASURE REST
+1D12A..1D15D ; valid ; ; NV8 # 3.1 MUSICAL SYMBOL
DOUBLE SHARP..MUSICAL SYMBOL WHOLE NOTE
+1D15E ; mapped ; 1D157 1D165 # 3.1 MUSICAL SYMBOL
HALF NOTE
+1D15F ; mapped ; 1D158 1D165 # 3.1 MUSICAL SYMBOL
QUARTER NOTE
+1D160 ; mapped ; 1D158 1D165 1D16E #3.1 MUSICAL SYMBOL
EIGHTH NOTE
+1D161 ; mapped ; 1D158 1D165 1D16F #3.1 MUSICAL SYMBOL
SIXTEENTH NOTE
+1D162 ; mapped ; 1D158 1D165 1D170 #3.1 MUSICAL SYMBOL
THIRTY-SECOND NOTE
+1D163 ; mapped ; 1D158 1D165 1D171 #3.1 MUSICAL SYMBOL
SIXTY-FOURTH NOTE
+1D164 ; mapped ; 1D158 1D165 1D172 #3.1 MUSICAL SYMBOL
ONE HUNDRED TWENTY-EIGHTH NOTE
+1D165..1D172 ; valid ; ; NV8 # 3.1 MUSICAL SYMBOL
COMBINING STEM..MUSICAL SYMBOL COMBINING FLAG-5
+1D173..1D17A ; disallowed # 3.1 MUSICAL SYMBOL
BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+1D17B..1D1BA ; valid ; ; NV8 # 3.1 MUSICAL SYMBOL
COMBINING ACCENT..MUSICAL SYMBOL SEMIBREVIS BLACK
+1D1BB ; mapped ; 1D1B9 1D165 # 3.1 MUSICAL SYMBOL
MINIMA
+1D1BC ; mapped ; 1D1BA 1D165 # 3.1 MUSICAL SYMBOL
MINIMA BLACK
+1D1BD ; mapped ; 1D1B9 1D165 1D16E #3.1 MUSICAL SYMBOL
SEMIMINIMA WHITE
+1D1BE ; mapped ; 1D1BA 1D165 1D16E #3.1 MUSICAL SYMBOL
SEMIMINIMA BLACK
+1D1BF ; mapped ; 1D1B9 1D165 1D16F #3.1 MUSICAL SYMBOL
FUSA WHITE
+1D1C0 ; mapped ; 1D1BA 1D165 1D16F #3.1 MUSICAL SYMBOL
FUSA BLACK
+1D1C1..1D1DD ; valid ; ; NV8 # 3.1 MUSICAL SYMBOL
LONGA PERFECTA REST..MUSICAL SYMBOL PES SUBPUNCTIS
+1D1DE..1D1E8 ; valid ; ; NV8 # 8.0 MUSICAL SYMBOL
KIEVAN C CLEF..MUSICAL SYMBOL KIEVAN FLAT SIGN
+1D1E9..1D1EA ; valid ; ; NV8 # 14.0 MUSICAL SYMBOL
SORI..MUSICAL SYMBOL KORON
+1D1EB..1D1FF ; disallowed # NA
<reserved-1D1EB>..<reserved-1D1FF>
+1D200..1D245 ; valid ; ; NV8 # 4.1 GREEK VOCAL
NOTATION SYMBOL-1..GREEK MUSICAL LEIMMA
+1D246..1D2DF ; disallowed # NA
<reserved-1D246>..<reserved-1D2DF>
+1D2E0..1D2F3 ; valid ; ; NV8 # 11.0 MAYAN NUMERAL
ZERO..MAYAN NUMERAL NINETEEN
+1D2F4..1D2FF ; disallowed # NA
<reserved-1D2F4>..<reserved-1D2FF>
+1D300..1D356 ; valid ; ; NV8 # 4.0 MONOGRAM FOR
EARTH..TETRAGRAM FOR FOSTERING
+1D357..1D35F ; disallowed # NA
<reserved-1D357>..<reserved-1D35F>
+1D360..1D371 ; valid ; ; NV8 # 5.0 COUNTING ROD
UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
+1D372..1D378 ; valid ; ; NV8 # 11.0 IDEOGRAPHIC
TALLY MARK ONE..TALLY MARK FIVE
+1D379..1D3FF ; disallowed # NA
<reserved-1D379>..<reserved-1D3FF>
+1D400 ; mapped ; 0061 # 3.1 MATHEMATICAL
BOLD CAPITAL A
+1D401 ; mapped ; 0062 # 3.1 MATHEMATICAL
BOLD CAPITAL B
+1D402 ; mapped ; 0063 # 3.1 MATHEMATICAL
BOLD CAPITAL C
+1D403 ; mapped ; 0064 # 3.1 MATHEMATICAL
BOLD CAPITAL D
+1D404 ; mapped ; 0065 # 3.1 MATHEMATICAL
BOLD CAPITAL E
+1D405 ; mapped ; 0066 # 3.1 MATHEMATICAL
BOLD CAPITAL F
+1D406 ; mapped ; 0067 # 3.1 MATHEMATICAL
BOLD CAPITAL G
+1D407 ; mapped ; 0068 # 3.1 MATHEMATICAL
BOLD CAPITAL H
+1D408 ; mapped ; 0069 # 3.1 MATHEMATICAL
BOLD CAPITAL I
+1D409 ; mapped ; 006A # 3.1 MATHEMATICAL
BOLD CAPITAL J
+1D40A ; mapped ; 006B # 3.1 MATHEMATICAL
BOLD CAPITAL K
+1D40B ; mapped ; 006C # 3.1 MATHEMATICAL
BOLD CAPITAL L
+1D40C ; mapped ; 006D # 3.1 MATHEMATICAL
BOLD CAPITAL M
+1D40D ; mapped ; 006E # 3.1 MATHEMATICAL
BOLD CAPITAL N
+1D40E ; mapped ; 006F # 3.1 MATHEMATICAL
BOLD CAPITAL O
+1D40F ; mapped ; 0070 # 3.1 MATHEMATICAL
BOLD CAPITAL P
+1D410 ; mapped ; 0071 # 3.1 MATHEMATICAL
BOLD CAPITAL Q
+1D411 ; mapped ; 0072 # 3.1 MATHEMATICAL
BOLD CAPITAL R
+1D412 ; mapped ; 0073 # 3.1 MATHEMATICAL
BOLD CAPITAL S
+1D413 ; mapped ; 0074 # 3.1 MATHEMATICAL
BOLD CAPITAL T
+1D414 ; mapped ; 0075 # 3.1 MATHEMATICAL
BOLD CAPITAL U
+1D415 ; mapped ; 0076 # 3.1 MATHEMATICAL
BOLD CAPITAL V
+1D416 ; mapped ; 0077 # 3.1 MATHEMATICAL
BOLD CAPITAL W
+1D417 ; mapped ; 0078 # 3.1 MATHEMATICAL
BOLD CAPITAL X
+1D418 ; mapped ; 0079 # 3.1 MATHEMATICAL
BOLD CAPITAL Y
+1D419 ; mapped ; 007A # 3.1 MATHEMATICAL
BOLD CAPITAL Z
+1D41A ; mapped ; 0061 # 3.1 MATHEMATICAL
BOLD SMALL A
+1D41B ; mapped ; 0062 # 3.1 MATHEMATICAL
BOLD SMALL B
+1D41C ; mapped ; 0063 # 3.1 MATHEMATICAL
BOLD SMALL C
+1D41D ; mapped ; 0064 # 3.1 MATHEMATICAL
BOLD SMALL D
+1D41E ; mapped ; 0065 # 3.1 MATHEMATICAL
BOLD SMALL E
+1D41F ; mapped ; 0066 # 3.1 MATHEMATICAL
BOLD SMALL F
+1D420 ; mapped ; 0067 # 3.1 MATHEMATICAL
BOLD SMALL G
+1D421 ; mapped ; 0068 # 3.1 MATHEMATICAL
BOLD SMALL H
+1D422 ; mapped ; 0069 # 3.1 MATHEMATICAL
BOLD SMALL I
+1D423 ; mapped ; 006A # 3.1 MATHEMATICAL
BOLD SMALL J
+1D424 ; mapped ; 006B # 3.1 MATHEMATICAL
BOLD SMALL K
+1D425 ; mapped ; 006C # 3.1 MATHEMATICAL
BOLD SMALL L
+1D426 ; mapped ; 006D # 3.1 MATHEMATICAL
BOLD SMALL M
+1D427 ; mapped ; 006E # 3.1 MATHEMATICAL
BOLD SMALL N
+1D428 ; mapped ; 006F # 3.1 MATHEMATICAL
BOLD SMALL O
+1D429 ; mapped ; 0070 # 3.1 MATHEMATICAL
BOLD SMALL P
+1D42A ; mapped ; 0071 # 3.1 MATHEMATICAL
BOLD SMALL Q
+1D42B ; mapped ; 0072 # 3.1 MATHEMATICAL
BOLD SMALL R
+1D42C ; mapped ; 0073 # 3.1 MATHEMATICAL
BOLD SMALL S
+1D42D ; mapped ; 0074 # 3.1 MATHEMATICAL
BOLD SMALL T
+1D42E ; mapped ; 0075 # 3.1 MATHEMATICAL
BOLD SMALL U
+1D42F ; mapped ; 0076 # 3.1 MATHEMATICAL
BOLD SMALL V
+1D430 ; mapped ; 0077 # 3.1 MATHEMATICAL
BOLD SMALL W
+1D431 ; mapped ; 0078 # 3.1 MATHEMATICAL
BOLD SMALL X
+1D432 ; mapped ; 0079 # 3.1 MATHEMATICAL
BOLD SMALL Y
+1D433 ; mapped ; 007A # 3.1 MATHEMATICAL
BOLD SMALL Z
+1D434 ; mapped ; 0061 # 3.1 MATHEMATICAL
ITALIC CAPITAL A
+1D435 ; mapped ; 0062 # 3.1 MATHEMATICAL
ITALIC CAPITAL B
+1D436 ; mapped ; 0063 # 3.1 MATHEMATICAL
ITALIC CAPITAL C
+1D437 ; mapped ; 0064 # 3.1 MATHEMATICAL
ITALIC CAPITAL D
+1D438 ; mapped ; 0065 # 3.1 MATHEMATICAL
ITALIC CAPITAL E
+1D439 ; mapped ; 0066 # 3.1 MATHEMATICAL
ITALIC CAPITAL F
+1D43A ; mapped ; 0067 # 3.1 MATHEMATICAL
ITALIC CAPITAL G
+1D43B ; mapped ; 0068 # 3.1 MATHEMATICAL
ITALIC CAPITAL H
+1D43C ; mapped ; 0069 # 3.1 MATHEMATICAL
ITALIC CAPITAL I
+1D43D ; mapped ; 006A # 3.1 MATHEMATICAL
ITALIC CAPITAL J
+1D43E ; mapped ; 006B # 3.1 MATHEMATICAL
ITALIC CAPITAL K
+1D43F ; mapped ; 006C # 3.1 MATHEMATICAL
ITALIC CAPITAL L
+1D440 ; mapped ; 006D # 3.1 MATHEMATICAL
ITALIC CAPITAL M
+1D441 ; mapped ; 006E # 3.1 MATHEMATICAL
ITALIC CAPITAL N
+1D442 ; mapped ; 006F # 3.1 MATHEMATICAL
ITALIC CAPITAL O
+1D443 ; mapped ; 0070 # 3.1 MATHEMATICAL
ITALIC CAPITAL P
+1D444 ; mapped ; 0071 # 3.1 MATHEMATICAL
ITALIC CAPITAL Q
+1D445 ; mapped ; 0072 # 3.1 MATHEMATICAL
ITALIC CAPITAL R
+1D446 ; mapped ; 0073 # 3.1 MATHEMATICAL
ITALIC CAPITAL S
+1D447 ; mapped ; 0074 # 3.1 MATHEMATICAL
ITALIC CAPITAL T
+1D448 ; mapped ; 0075 # 3.1 MATHEMATICAL
ITALIC CAPITAL U
+1D449 ; mapped ; 0076 # 3.1 MATHEMATICAL
ITALIC CAPITAL V
+1D44A ; mapped ; 0077 # 3.1 MATHEMATICAL
ITALIC CAPITAL W
+1D44B ; mapped ; 0078 # 3.1 MATHEMATICAL
ITALIC CAPITAL X
+1D44C ; mapped ; 0079 # 3.1 MATHEMATICAL
ITALIC CAPITAL Y
+1D44D ; mapped ; 007A # 3.1 MATHEMATICAL
ITALIC CAPITAL Z
+1D44E ; mapped ; 0061 # 3.1 MATHEMATICAL
ITALIC SMALL A
+1D44F ; mapped ; 0062 # 3.1 MATHEMATICAL
ITALIC SMALL B
+1D450 ; mapped ; 0063 # 3.1 MATHEMATICAL
ITALIC SMALL C
+1D451 ; mapped ; 0064 # 3.1 MATHEMATICAL
ITALIC SMALL D
+1D452 ; mapped ; 0065 # 3.1 MATHEMATICAL
ITALIC SMALL E
+1D453 ; mapped ; 0066 # 3.1 MATHEMATICAL
ITALIC SMALL F
+1D454 ; mapped ; 0067 # 3.1 MATHEMATICAL
ITALIC SMALL G
+1D455 ; disallowed # NA <reserved-1D455>
+1D456 ; mapped ; 0069 # 3.1 MATHEMATICAL
ITALIC SMALL I
+1D457 ; mapped ; 006A # 3.1 MATHEMATICAL
ITALIC SMALL J
+1D458 ; mapped ; 006B # 3.1 MATHEMATICAL
ITALIC SMALL K
+1D459 ; mapped ; 006C # 3.1 MATHEMATICAL
ITALIC SMALL L
+1D45A ; mapped ; 006D # 3.1 MATHEMATICAL
ITALIC SMALL M
+1D45B ; mapped ; 006E # 3.1 MATHEMATICAL
ITALIC SMALL N
+1D45C ; mapped ; 006F # 3.1 MATHEMATICAL
ITALIC SMALL O
+1D45D ; mapped ; 0070 # 3.1 MATHEMATICAL
ITALIC SMALL P
+1D45E ; mapped ; 0071 # 3.1 MATHEMATICAL
ITALIC SMALL Q
+1D45F ; mapped ; 0072 # 3.1 MATHEMATICAL
ITALIC SMALL R
+1D460 ; mapped ; 0073 # 3.1 MATHEMATICAL
ITALIC SMALL S
+1D461 ; mapped ; 0074 # 3.1 MATHEMATICAL
ITALIC SMALL T
+1D462 ; mapped ; 0075 # 3.1 MATHEMATICAL
ITALIC SMALL U
+1D463 ; mapped ; 0076 # 3.1 MATHEMATICAL
ITALIC SMALL V
+1D464 ; mapped ; 0077 # 3.1 MATHEMATICAL
ITALIC SMALL W
+1D465 ; mapped ; 0078 # 3.1 MATHEMATICAL
ITALIC SMALL X
+1D466 ; mapped ; 0079 # 3.1 MATHEMATICAL
ITALIC SMALL Y
+1D467 ; mapped ; 007A # 3.1 MATHEMATICAL
ITALIC SMALL Z
+1D468 ; mapped ; 0061 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL A
+1D469 ; mapped ; 0062 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL B
+1D46A ; mapped ; 0063 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL C
+1D46B ; mapped ; 0064 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL D
+1D46C ; mapped ; 0065 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL E
+1D46D ; mapped ; 0066 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL F
+1D46E ; mapped ; 0067 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL G
+1D46F ; mapped ; 0068 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL H
+1D470 ; mapped ; 0069 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL I
+1D471 ; mapped ; 006A # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL J
+1D472 ; mapped ; 006B # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL K
+1D473 ; mapped ; 006C # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL L
+1D474 ; mapped ; 006D # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL M
+1D475 ; mapped ; 006E # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL N
+1D476 ; mapped ; 006F # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL O
+1D477 ; mapped ; 0070 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL P
+1D478 ; mapped ; 0071 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL Q
+1D479 ; mapped ; 0072 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL R
+1D47A ; mapped ; 0073 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL S
+1D47B ; mapped ; 0074 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL T
+1D47C ; mapped ; 0075 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL U
+1D47D ; mapped ; 0076 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL V
+1D47E ; mapped ; 0077 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL W
+1D47F ; mapped ; 0078 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL X
+1D480 ; mapped ; 0079 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL Y
+1D481 ; mapped ; 007A # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL Z
+1D482 ; mapped ; 0061 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL A
+1D483 ; mapped ; 0062 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL B
+1D484 ; mapped ; 0063 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL C
+1D485 ; mapped ; 0064 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL D
+1D486 ; mapped ; 0065 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL E
+1D487 ; mapped ; 0066 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL F
+1D488 ; mapped ; 0067 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL G
+1D489 ; mapped ; 0068 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL H
+1D48A ; mapped ; 0069 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL I
+1D48B ; mapped ; 006A # 3.1 MATHEMATICAL
BOLD ITALIC SMALL J
+1D48C ; mapped ; 006B # 3.1 MATHEMATICAL
BOLD ITALIC SMALL K
+1D48D ; mapped ; 006C # 3.1 MATHEMATICAL
BOLD ITALIC SMALL L
+1D48E ; mapped ; 006D # 3.1 MATHEMATICAL
BOLD ITALIC SMALL M
+1D48F ; mapped ; 006E # 3.1 MATHEMATICAL
BOLD ITALIC SMALL N
+1D490 ; mapped ; 006F # 3.1 MATHEMATICAL
BOLD ITALIC SMALL O
+1D491 ; mapped ; 0070 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL P
+1D492 ; mapped ; 0071 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL Q
+1D493 ; mapped ; 0072 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL R
+1D494 ; mapped ; 0073 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL S
+1D495 ; mapped ; 0074 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL T
+1D496 ; mapped ; 0075 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL U
+1D497 ; mapped ; 0076 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL V
+1D498 ; mapped ; 0077 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL W
+1D499 ; mapped ; 0078 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL X
+1D49A ; mapped ; 0079 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL Y
+1D49B ; mapped ; 007A # 3.1 MATHEMATICAL
BOLD ITALIC SMALL Z
+1D49C ; mapped ; 0061 # 3.1 MATHEMATICAL
SCRIPT CAPITAL A
+1D49D ; disallowed # NA <reserved-1D49D>
+1D49E ; mapped ; 0063 # 3.1 MATHEMATICAL
SCRIPT CAPITAL C
+1D49F ; mapped ; 0064 # 3.1 MATHEMATICAL
SCRIPT CAPITAL D
+1D4A0..1D4A1 ; disallowed # NA
<reserved-1D4A0>..<reserved-1D4A1>
+1D4A2 ; mapped ; 0067 # 3.1 MATHEMATICAL
SCRIPT CAPITAL G
+1D4A3..1D4A4 ; disallowed # NA
<reserved-1D4A3>..<reserved-1D4A4>
+1D4A5 ; mapped ; 006A # 3.1 MATHEMATICAL
SCRIPT CAPITAL J
+1D4A6 ; mapped ; 006B # 3.1 MATHEMATICAL
SCRIPT CAPITAL K
+1D4A7..1D4A8 ; disallowed # NA
<reserved-1D4A7>..<reserved-1D4A8>
+1D4A9 ; mapped ; 006E # 3.1 MATHEMATICAL
SCRIPT CAPITAL N
+1D4AA ; mapped ; 006F # 3.1 MATHEMATICAL
SCRIPT CAPITAL O
+1D4AB ; mapped ; 0070 # 3.1 MATHEMATICAL
SCRIPT CAPITAL P
+1D4AC ; mapped ; 0071 # 3.1 MATHEMATICAL
SCRIPT CAPITAL Q
+1D4AD ; disallowed # NA <reserved-1D4AD>
+1D4AE ; mapped ; 0073 # 3.1 MATHEMATICAL
SCRIPT CAPITAL S
+1D4AF ; mapped ; 0074 # 3.1 MATHEMATICAL
SCRIPT CAPITAL T
+1D4B0 ; mapped ; 0075 # 3.1 MATHEMATICAL
SCRIPT CAPITAL U
+1D4B1 ; mapped ; 0076 # 3.1 MATHEMATICAL
SCRIPT CAPITAL V
+1D4B2 ; mapped ; 0077 # 3.1 MATHEMATICAL
SCRIPT CAPITAL W
+1D4B3 ; mapped ; 0078 # 3.1 MATHEMATICAL
SCRIPT CAPITAL X
+1D4B4 ; mapped ; 0079 # 3.1 MATHEMATICAL
SCRIPT CAPITAL Y
+1D4B5 ; mapped ; 007A # 3.1 MATHEMATICAL
SCRIPT CAPITAL Z
+1D4B6 ; mapped ; 0061 # 3.1 MATHEMATICAL
SCRIPT SMALL A
+1D4B7 ; mapped ; 0062 # 3.1 MATHEMATICAL
SCRIPT SMALL B
+1D4B8 ; mapped ; 0063 # 3.1 MATHEMATICAL
SCRIPT SMALL C
+1D4B9 ; mapped ; 0064 # 3.1 MATHEMATICAL
SCRIPT SMALL D
+1D4BA ; disallowed # NA <reserved-1D4BA>
+1D4BB ; mapped ; 0066 # 3.1 MATHEMATICAL
SCRIPT SMALL F
+1D4BC ; disallowed # NA <reserved-1D4BC>
+1D4BD ; mapped ; 0068 # 3.1 MATHEMATICAL
SCRIPT SMALL H
+1D4BE ; mapped ; 0069 # 3.1 MATHEMATICAL
SCRIPT SMALL I
+1D4BF ; mapped ; 006A # 3.1 MATHEMATICAL
SCRIPT SMALL J
+1D4C0 ; mapped ; 006B # 3.1 MATHEMATICAL
SCRIPT SMALL K
+1D4C1 ; mapped ; 006C # 4.0 MATHEMATICAL
SCRIPT SMALL L
+1D4C2 ; mapped ; 006D # 3.1 MATHEMATICAL
SCRIPT SMALL M
+1D4C3 ; mapped ; 006E # 3.1 MATHEMATICAL
SCRIPT SMALL N
+1D4C4 ; disallowed # NA <reserved-1D4C4>
+1D4C5 ; mapped ; 0070 # 3.1 MATHEMATICAL
SCRIPT SMALL P
+1D4C6 ; mapped ; 0071 # 3.1 MATHEMATICAL
SCRIPT SMALL Q
+1D4C7 ; mapped ; 0072 # 3.1 MATHEMATICAL
SCRIPT SMALL R
+1D4C8 ; mapped ; 0073 # 3.1 MATHEMATICAL
SCRIPT SMALL S
+1D4C9 ; mapped ; 0074 # 3.1 MATHEMATICAL
SCRIPT SMALL T
+1D4CA ; mapped ; 0075 # 3.1 MATHEMATICAL
SCRIPT SMALL U
+1D4CB ; mapped ; 0076 # 3.1 MATHEMATICAL
SCRIPT SMALL V
+1D4CC ; mapped ; 0077 # 3.1 MATHEMATICAL
SCRIPT SMALL W
+1D4CD ; mapped ; 0078 # 3.1 MATHEMATICAL
SCRIPT SMALL X
+1D4CE ; mapped ; 0079 # 3.1 MATHEMATICAL
SCRIPT SMALL Y
+1D4CF ; mapped ; 007A # 3.1 MATHEMATICAL
SCRIPT SMALL Z
+1D4D0 ; mapped ; 0061 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL A
+1D4D1 ; mapped ; 0062 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL B
+1D4D2 ; mapped ; 0063 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL C
+1D4D3 ; mapped ; 0064 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL D
+1D4D4 ; mapped ; 0065 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL E
+1D4D5 ; mapped ; 0066 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL F
+1D4D6 ; mapped ; 0067 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL G
+1D4D7 ; mapped ; 0068 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL H
+1D4D8 ; mapped ; 0069 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL I
+1D4D9 ; mapped ; 006A # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL J
+1D4DA ; mapped ; 006B # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL K
+1D4DB ; mapped ; 006C # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL L
+1D4DC ; mapped ; 006D # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL M
+1D4DD ; mapped ; 006E # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL N
+1D4DE ; mapped ; 006F # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL O
+1D4DF ; mapped ; 0070 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL P
+1D4E0 ; mapped ; 0071 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL Q
+1D4E1 ; mapped ; 0072 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL R
+1D4E2 ; mapped ; 0073 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL S
+1D4E3 ; mapped ; 0074 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL T
+1D4E4 ; mapped ; 0075 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL U
+1D4E5 ; mapped ; 0076 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL V
+1D4E6 ; mapped ; 0077 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL W
+1D4E7 ; mapped ; 0078 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL X
+1D4E8 ; mapped ; 0079 # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL Y
+1D4E9 ; mapped ; 007A # 3.1 MATHEMATICAL
BOLD SCRIPT CAPITAL Z
+1D4EA ; mapped ; 0061 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL A
+1D4EB ; mapped ; 0062 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL B
+1D4EC ; mapped ; 0063 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL C
+1D4ED ; mapped ; 0064 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL D
+1D4EE ; mapped ; 0065 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL E
+1D4EF ; mapped ; 0066 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL F
+1D4F0 ; mapped ; 0067 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL G
+1D4F1 ; mapped ; 0068 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL H
+1D4F2 ; mapped ; 0069 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL I
+1D4F3 ; mapped ; 006A # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL J
+1D4F4 ; mapped ; 006B # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL K
+1D4F5 ; mapped ; 006C # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL L
+1D4F6 ; mapped ; 006D # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL M
+1D4F7 ; mapped ; 006E # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL N
+1D4F8 ; mapped ; 006F # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL O
+1D4F9 ; mapped ; 0070 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL P
+1D4FA ; mapped ; 0071 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL Q
+1D4FB ; mapped ; 0072 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL R
+1D4FC ; mapped ; 0073 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL S
+1D4FD ; mapped ; 0074 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL T
+1D4FE ; mapped ; 0075 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL U
+1D4FF ; mapped ; 0076 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL V
+1D500 ; mapped ; 0077 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL W
+1D501 ; mapped ; 0078 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL X
+1D502 ; mapped ; 0079 # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL Y
+1D503 ; mapped ; 007A # 3.1 MATHEMATICAL
BOLD SCRIPT SMALL Z
+1D504 ; mapped ; 0061 # 3.1 MATHEMATICAL
FRAKTUR CAPITAL A
+1D505 ; mapped ; 0062 # 3.1 MATHEMATICAL
FRAKTUR CAPITAL B
+1D506 ; disallowed # NA <reserved-1D506>
+1D507 ; mapped ; 0064 # 3.1 MATHEMATICAL
FRAKTUR CAPITAL D
+1D508 ; mapped ; 0065 # 3.1 MATHEMATICAL
FRAKTUR CAPITAL E
+1D509 ; mapped ; 0066 # 3.1 MATHEMATICAL
FRAKTUR CAPITAL F
+1D50A ; mapped ; 0067 # 3.1 MATHEMATICAL
FRAKTUR CAPITAL G
+1D50B..1D50C ; disallowed # NA
<reserved-1D50B>..<reserved-1D50C>
+1D50D ; mapped ; 006A # 3.1 MATHEMATICAL
FRAKTUR CAPITAL J
+1D50E ; mapped ; 006B # 3.1 MATHEMATICAL
FRAKTUR CAPITAL K
+1D50F ; mapped ; 006C # 3.1 MATHEMATICAL
FRAKTUR CAPITAL L
+1D510 ; mapped ; 006D # 3.1 MATHEMATICAL
FRAKTUR CAPITAL M
+1D511 ; mapped ; 006E # 3.1 MATHEMATICAL
FRAKTUR CAPITAL N
+1D512 ; mapped ; 006F # 3.1 MATHEMATICAL
FRAKTUR CAPITAL O
+1D513 ; mapped ; 0070 # 3.1 MATHEMATICAL
FRAKTUR CAPITAL P
+1D514 ; mapped ; 0071 # 3.1 MATHEMATICAL
FRAKTUR CAPITAL Q
+1D515 ; disallowed # NA <reserved-1D515>
+1D516 ; mapped ; 0073 # 3.1 MATHEMATICAL
FRAKTUR CAPITAL S
+1D517 ; mapped ; 0074 # 3.1 MATHEMATICAL
FRAKTUR CAPITAL T
+1D518 ; mapped ; 0075 # 3.1 MATHEMATICAL
FRAKTUR CAPITAL U
+1D519 ; mapped ; 0076 # 3.1 MATHEMATICAL
FRAKTUR CAPITAL V
+1D51A ; mapped ; 0077 # 3.1 MATHEMATICAL
FRAKTUR CAPITAL W
+1D51B ; mapped ; 0078 # 3.1 MATHEMATICAL
FRAKTUR CAPITAL X
+1D51C ; mapped ; 0079 # 3.1 MATHEMATICAL
FRAKTUR CAPITAL Y
+1D51D ; disallowed # NA <reserved-1D51D>
+1D51E ; mapped ; 0061 # 3.1 MATHEMATICAL
FRAKTUR SMALL A
+1D51F ; mapped ; 0062 # 3.1 MATHEMATICAL
FRAKTUR SMALL B
+1D520 ; mapped ; 0063 # 3.1 MATHEMATICAL
FRAKTUR SMALL C
+1D521 ; mapped ; 0064 # 3.1 MATHEMATICAL
FRAKTUR SMALL D
+1D522 ; mapped ; 0065 # 3.1 MATHEMATICAL
FRAKTUR SMALL E
+1D523 ; mapped ; 0066 # 3.1 MATHEMATICAL
FRAKTUR SMALL F
+1D524 ; mapped ; 0067 # 3.1 MATHEMATICAL
FRAKTUR SMALL G
+1D525 ; mapped ; 0068 # 3.1 MATHEMATICAL
FRAKTUR SMALL H
+1D526 ; mapped ; 0069 # 3.1 MATHEMATICAL
FRAKTUR SMALL I
+1D527 ; mapped ; 006A # 3.1 MATHEMATICAL
FRAKTUR SMALL J
+1D528 ; mapped ; 006B # 3.1 MATHEMATICAL
FRAKTUR SMALL K
+1D529 ; mapped ; 006C # 3.1 MATHEMATICAL
FRAKTUR SMALL L
+1D52A ; mapped ; 006D # 3.1 MATHEMATICAL
FRAKTUR SMALL M
+1D52B ; mapped ; 006E # 3.1 MATHEMATICAL
FRAKTUR SMALL N
+1D52C ; mapped ; 006F # 3.1 MATHEMATICAL
FRAKTUR SMALL O
+1D52D ; mapped ; 0070 # 3.1 MATHEMATICAL
FRAKTUR SMALL P
+1D52E ; mapped ; 0071 # 3.1 MATHEMATICAL
FRAKTUR SMALL Q
+1D52F ; mapped ; 0072 # 3.1 MATHEMATICAL
FRAKTUR SMALL R
+1D530 ; mapped ; 0073 # 3.1 MATHEMATICAL
FRAKTUR SMALL S
+1D531 ; mapped ; 0074 # 3.1 MATHEMATICAL
FRAKTUR SMALL T
+1D532 ; mapped ; 0075 # 3.1 MATHEMATICAL
FRAKTUR SMALL U
+1D533 ; mapped ; 0076 # 3.1 MATHEMATICAL
FRAKTUR SMALL V
+1D534 ; mapped ; 0077 # 3.1 MATHEMATICAL
FRAKTUR SMALL W
+1D535 ; mapped ; 0078 # 3.1 MATHEMATICAL
FRAKTUR SMALL X
+1D536 ; mapped ; 0079 # 3.1 MATHEMATICAL
FRAKTUR SMALL Y
+1D537 ; mapped ; 007A # 3.1 MATHEMATICAL
FRAKTUR SMALL Z
+1D538 ; mapped ; 0061 # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL A
+1D539 ; mapped ; 0062 # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL B
+1D53A ; disallowed # NA <reserved-1D53A>
+1D53B ; mapped ; 0064 # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL D
+1D53C ; mapped ; 0065 # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL E
+1D53D ; mapped ; 0066 # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL F
+1D53E ; mapped ; 0067 # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL G
+1D53F ; disallowed # NA <reserved-1D53F>
+1D540 ; mapped ; 0069 # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL I
+1D541 ; mapped ; 006A # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL J
+1D542 ; mapped ; 006B # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL K
+1D543 ; mapped ; 006C # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL L
+1D544 ; mapped ; 006D # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL M
+1D545 ; disallowed # NA <reserved-1D545>
+1D546 ; mapped ; 006F # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL O
+1D547..1D549 ; disallowed # NA
<reserved-1D547>..<reserved-1D549>
+1D54A ; mapped ; 0073 # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL S
+1D54B ; mapped ; 0074 # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL T
+1D54C ; mapped ; 0075 # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL U
+1D54D ; mapped ; 0076 # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL V
+1D54E ; mapped ; 0077 # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL W
+1D54F ; mapped ; 0078 # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL X
+1D550 ; mapped ; 0079 # 3.1 MATHEMATICAL
DOUBLE-STRUCK CAPITAL Y
+1D551 ; disallowed # NA <reserved-1D551>
+1D552 ; mapped ; 0061 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL A
+1D553 ; mapped ; 0062 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL B
+1D554 ; mapped ; 0063 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL C
+1D555 ; mapped ; 0064 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL D
+1D556 ; mapped ; 0065 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL E
+1D557 ; mapped ; 0066 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL F
+1D558 ; mapped ; 0067 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL G
+1D559 ; mapped ; 0068 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL H
+1D55A ; mapped ; 0069 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL I
+1D55B ; mapped ; 006A # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL J
+1D55C ; mapped ; 006B # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL K
+1D55D ; mapped ; 006C # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL L
+1D55E ; mapped ; 006D # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL M
+1D55F ; mapped ; 006E # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL N
+1D560 ; mapped ; 006F # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL O
+1D561 ; mapped ; 0070 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL P
+1D562 ; mapped ; 0071 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL Q
+1D563 ; mapped ; 0072 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL R
+1D564 ; mapped ; 0073 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL S
+1D565 ; mapped ; 0074 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL T
+1D566 ; mapped ; 0075 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL U
+1D567 ; mapped ; 0076 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL V
+1D568 ; mapped ; 0077 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL W
+1D569 ; mapped ; 0078 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL X
+1D56A ; mapped ; 0079 # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL Y
+1D56B ; mapped ; 007A # 3.1 MATHEMATICAL
DOUBLE-STRUCK SMALL Z
+1D56C ; mapped ; 0061 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL A
+1D56D ; mapped ; 0062 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL B
+1D56E ; mapped ; 0063 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL C
+1D56F ; mapped ; 0064 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL D
+1D570 ; mapped ; 0065 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL E
+1D571 ; mapped ; 0066 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL F
+1D572 ; mapped ; 0067 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL G
+1D573 ; mapped ; 0068 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL H
+1D574 ; mapped ; 0069 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL I
+1D575 ; mapped ; 006A # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL J
+1D576 ; mapped ; 006B # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL K
+1D577 ; mapped ; 006C # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL L
+1D578 ; mapped ; 006D # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL M
+1D579 ; mapped ; 006E # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL N
+1D57A ; mapped ; 006F # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL O
+1D57B ; mapped ; 0070 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL P
+1D57C ; mapped ; 0071 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL Q
+1D57D ; mapped ; 0072 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL R
+1D57E ; mapped ; 0073 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL S
+1D57F ; mapped ; 0074 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL T
+1D580 ; mapped ; 0075 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL U
+1D581 ; mapped ; 0076 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL V
+1D582 ; mapped ; 0077 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL W
+1D583 ; mapped ; 0078 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL X
+1D584 ; mapped ; 0079 # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL Y
+1D585 ; mapped ; 007A # 3.1 MATHEMATICAL
BOLD FRAKTUR CAPITAL Z
+1D586 ; mapped ; 0061 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL A
+1D587 ; mapped ; 0062 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL B
+1D588 ; mapped ; 0063 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL C
+1D589 ; mapped ; 0064 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL D
+1D58A ; mapped ; 0065 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL E
+1D58B ; mapped ; 0066 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL F
+1D58C ; mapped ; 0067 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL G
+1D58D ; mapped ; 0068 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL H
+1D58E ; mapped ; 0069 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL I
+1D58F ; mapped ; 006A # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL J
+1D590 ; mapped ; 006B # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL K
+1D591 ; mapped ; 006C # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL L
+1D592 ; mapped ; 006D # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL M
+1D593 ; mapped ; 006E # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL N
+1D594 ; mapped ; 006F # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL O
+1D595 ; mapped ; 0070 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL P
+1D596 ; mapped ; 0071 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL Q
+1D597 ; mapped ; 0072 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL R
+1D598 ; mapped ; 0073 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL S
+1D599 ; mapped ; 0074 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL T
+1D59A ; mapped ; 0075 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL U
+1D59B ; mapped ; 0076 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL V
+1D59C ; mapped ; 0077 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL W
+1D59D ; mapped ; 0078 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL X
+1D59E ; mapped ; 0079 # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL Y
+1D59F ; mapped ; 007A # 3.1 MATHEMATICAL
BOLD FRAKTUR SMALL Z
+1D5A0 ; mapped ; 0061 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL A
+1D5A1 ; mapped ; 0062 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL B
+1D5A2 ; mapped ; 0063 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL C
+1D5A3 ; mapped ; 0064 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL D
+1D5A4 ; mapped ; 0065 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL E
+1D5A5 ; mapped ; 0066 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL F
+1D5A6 ; mapped ; 0067 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL G
+1D5A7 ; mapped ; 0068 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL H
+1D5A8 ; mapped ; 0069 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL I
+1D5A9 ; mapped ; 006A # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL J
+1D5AA ; mapped ; 006B # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL K
+1D5AB ; mapped ; 006C # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL L
+1D5AC ; mapped ; 006D # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL M
+1D5AD ; mapped ; 006E # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL N
+1D5AE ; mapped ; 006F # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL O
+1D5AF ; mapped ; 0070 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL P
+1D5B0 ; mapped ; 0071 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL Q
+1D5B1 ; mapped ; 0072 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL R
+1D5B2 ; mapped ; 0073 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL S
+1D5B3 ; mapped ; 0074 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL T
+1D5B4 ; mapped ; 0075 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL U
+1D5B5 ; mapped ; 0076 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL V
+1D5B6 ; mapped ; 0077 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL W
+1D5B7 ; mapped ; 0078 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL X
+1D5B8 ; mapped ; 0079 # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL Y
+1D5B9 ; mapped ; 007A # 3.1 MATHEMATICAL
SANS-SERIF CAPITAL Z
+1D5BA ; mapped ; 0061 # 3.1 MATHEMATICAL
SANS-SERIF SMALL A
+1D5BB ; mapped ; 0062 # 3.1 MATHEMATICAL
SANS-SERIF SMALL B
+1D5BC ; mapped ; 0063 # 3.1 MATHEMATICAL
SANS-SERIF SMALL C
+1D5BD ; mapped ; 0064 # 3.1 MATHEMATICAL
SANS-SERIF SMALL D
+1D5BE ; mapped ; 0065 # 3.1 MATHEMATICAL
SANS-SERIF SMALL E
+1D5BF ; mapped ; 0066 # 3.1 MATHEMATICAL
SANS-SERIF SMALL F
+1D5C0 ; mapped ; 0067 # 3.1 MATHEMATICAL
SANS-SERIF SMALL G
+1D5C1 ; mapped ; 0068 # 3.1 MATHEMATICAL
SANS-SERIF SMALL H
+1D5C2 ; mapped ; 0069 # 3.1 MATHEMATICAL
SANS-SERIF SMALL I
+1D5C3 ; mapped ; 006A # 3.1 MATHEMATICAL
SANS-SERIF SMALL J
+1D5C4 ; mapped ; 006B # 3.1 MATHEMATICAL
SANS-SERIF SMALL K
+1D5C5 ; mapped ; 006C # 3.1 MATHEMATICAL
SANS-SERIF SMALL L
+1D5C6 ; mapped ; 006D # 3.1 MATHEMATICAL
SANS-SERIF SMALL M
+1D5C7 ; mapped ; 006E # 3.1 MATHEMATICAL
SANS-SERIF SMALL N
+1D5C8 ; mapped ; 006F # 3.1 MATHEMATICAL
SANS-SERIF SMALL O
+1D5C9 ; mapped ; 0070 # 3.1 MATHEMATICAL
SANS-SERIF SMALL P
+1D5CA ; mapped ; 0071 # 3.1 MATHEMATICAL
SANS-SERIF SMALL Q
+1D5CB ; mapped ; 0072 # 3.1 MATHEMATICAL
SANS-SERIF SMALL R
+1D5CC ; mapped ; 0073 # 3.1 MATHEMATICAL
SANS-SERIF SMALL S
+1D5CD ; mapped ; 0074 # 3.1 MATHEMATICAL
SANS-SERIF SMALL T
+1D5CE ; mapped ; 0075 # 3.1 MATHEMATICAL
SANS-SERIF SMALL U
+1D5CF ; mapped ; 0076 # 3.1 MATHEMATICAL
SANS-SERIF SMALL V
+1D5D0 ; mapped ; 0077 # 3.1 MATHEMATICAL
SANS-SERIF SMALL W
+1D5D1 ; mapped ; 0078 # 3.1 MATHEMATICAL
SANS-SERIF SMALL X
+1D5D2 ; mapped ; 0079 # 3.1 MATHEMATICAL
SANS-SERIF SMALL Y
+1D5D3 ; mapped ; 007A # 3.1 MATHEMATICAL
SANS-SERIF SMALL Z
+1D5D4 ; mapped ; 0061 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL A
+1D5D5 ; mapped ; 0062 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL B
+1D5D6 ; mapped ; 0063 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL C
+1D5D7 ; mapped ; 0064 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL D
+1D5D8 ; mapped ; 0065 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL E
+1D5D9 ; mapped ; 0066 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL F
+1D5DA ; mapped ; 0067 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL G
+1D5DB ; mapped ; 0068 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL H
+1D5DC ; mapped ; 0069 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL I
+1D5DD ; mapped ; 006A # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL J
+1D5DE ; mapped ; 006B # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL K
+1D5DF ; mapped ; 006C # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL L
+1D5E0 ; mapped ; 006D # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL M
+1D5E1 ; mapped ; 006E # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL N
+1D5E2 ; mapped ; 006F # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL O
+1D5E3 ; mapped ; 0070 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL P
+1D5E4 ; mapped ; 0071 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL Q
+1D5E5 ; mapped ; 0072 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL R
+1D5E6 ; mapped ; 0073 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL S
+1D5E7 ; mapped ; 0074 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL T
+1D5E8 ; mapped ; 0075 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL U
+1D5E9 ; mapped ; 0076 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL V
+1D5EA ; mapped ; 0077 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL W
+1D5EB ; mapped ; 0078 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL X
+1D5EC ; mapped ; 0079 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL Y
+1D5ED ; mapped ; 007A # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL Z
+1D5EE ; mapped ; 0061 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL A
+1D5EF ; mapped ; 0062 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL B
+1D5F0 ; mapped ; 0063 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL C
+1D5F1 ; mapped ; 0064 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL D
+1D5F2 ; mapped ; 0065 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL E
+1D5F3 ; mapped ; 0066 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL F
+1D5F4 ; mapped ; 0067 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL G
+1D5F5 ; mapped ; 0068 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL H
+1D5F6 ; mapped ; 0069 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL I
+1D5F7 ; mapped ; 006A # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL J
+1D5F8 ; mapped ; 006B # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL K
+1D5F9 ; mapped ; 006C # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL L
+1D5FA ; mapped ; 006D # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL M
+1D5FB ; mapped ; 006E # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL N
+1D5FC ; mapped ; 006F # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL O
+1D5FD ; mapped ; 0070 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL P
+1D5FE ; mapped ; 0071 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL Q
+1D5FF ; mapped ; 0072 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL R
+1D600 ; mapped ; 0073 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL S
+1D601 ; mapped ; 0074 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL T
+1D602 ; mapped ; 0075 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL U
+1D603 ; mapped ; 0076 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL V
+1D604 ; mapped ; 0077 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL W
+1D605 ; mapped ; 0078 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL X
+1D606 ; mapped ; 0079 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL Y
+1D607 ; mapped ; 007A # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL Z
+1D608 ; mapped ; 0061 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL A
+1D609 ; mapped ; 0062 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL B
+1D60A ; mapped ; 0063 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL C
+1D60B ; mapped ; 0064 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL D
+1D60C ; mapped ; 0065 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL E
+1D60D ; mapped ; 0066 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL F
+1D60E ; mapped ; 0067 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL G
+1D60F ; mapped ; 0068 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL H
+1D610 ; mapped ; 0069 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL I
+1D611 ; mapped ; 006A # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL J
+1D612 ; mapped ; 006B # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL K
+1D613 ; mapped ; 006C # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL L
+1D614 ; mapped ; 006D # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL M
+1D615 ; mapped ; 006E # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL N
+1D616 ; mapped ; 006F # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL O
+1D617 ; mapped ; 0070 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL P
+1D618 ; mapped ; 0071 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL Q
+1D619 ; mapped ; 0072 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL R
+1D61A ; mapped ; 0073 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL S
+1D61B ; mapped ; 0074 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL T
+1D61C ; mapped ; 0075 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL U
+1D61D ; mapped ; 0076 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL V
+1D61E ; mapped ; 0077 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL W
+1D61F ; mapped ; 0078 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL X
+1D620 ; mapped ; 0079 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL Y
+1D621 ; mapped ; 007A # 3.1 MATHEMATICAL
SANS-SERIF ITALIC CAPITAL Z
+1D622 ; mapped ; 0061 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL A
+1D623 ; mapped ; 0062 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL B
+1D624 ; mapped ; 0063 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL C
+1D625 ; mapped ; 0064 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL D
+1D626 ; mapped ; 0065 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL E
+1D627 ; mapped ; 0066 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL F
+1D628 ; mapped ; 0067 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL G
+1D629 ; mapped ; 0068 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL H
+1D62A ; mapped ; 0069 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL I
+1D62B ; mapped ; 006A # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL J
+1D62C ; mapped ; 006B # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL K
+1D62D ; mapped ; 006C # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL L
+1D62E ; mapped ; 006D # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL M
+1D62F ; mapped ; 006E # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL N
+1D630 ; mapped ; 006F # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL O
+1D631 ; mapped ; 0070 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL P
+1D632 ; mapped ; 0071 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL Q
+1D633 ; mapped ; 0072 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL R
+1D634 ; mapped ; 0073 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL S
+1D635 ; mapped ; 0074 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL T
+1D636 ; mapped ; 0075 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL U
+1D637 ; mapped ; 0076 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL V
+1D638 ; mapped ; 0077 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL W
+1D639 ; mapped ; 0078 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL X
+1D63A ; mapped ; 0079 # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL Y
+1D63B ; mapped ; 007A # 3.1 MATHEMATICAL
SANS-SERIF ITALIC SMALL Z
+1D63C ; mapped ; 0061 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL A
+1D63D ; mapped ; 0062 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL B
+1D63E ; mapped ; 0063 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL C
+1D63F ; mapped ; 0064 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL D
+1D640 ; mapped ; 0065 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL E
+1D641 ; mapped ; 0066 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL F
+1D642 ; mapped ; 0067 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL G
+1D643 ; mapped ; 0068 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL H
+1D644 ; mapped ; 0069 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL I
+1D645 ; mapped ; 006A # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL J
+1D646 ; mapped ; 006B # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL K
+1D647 ; mapped ; 006C # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL L
+1D648 ; mapped ; 006D # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL M
+1D649 ; mapped ; 006E # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL N
+1D64A ; mapped ; 006F # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL O
+1D64B ; mapped ; 0070 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL P
+1D64C ; mapped ; 0071 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL Q
+1D64D ; mapped ; 0072 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL R
+1D64E ; mapped ; 0073 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL S
+1D64F ; mapped ; 0074 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL T
+1D650 ; mapped ; 0075 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL U
+1D651 ; mapped ; 0076 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL V
+1D652 ; mapped ; 0077 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL W
+1D653 ; mapped ; 0078 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL X
+1D654 ; mapped ; 0079 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL Y
+1D655 ; mapped ; 007A # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL Z
+1D656 ; mapped ; 0061 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL A
+1D657 ; mapped ; 0062 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL B
+1D658 ; mapped ; 0063 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL C
+1D659 ; mapped ; 0064 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL D
+1D65A ; mapped ; 0065 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL E
+1D65B ; mapped ; 0066 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL F
+1D65C ; mapped ; 0067 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL G
+1D65D ; mapped ; 0068 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL H
+1D65E ; mapped ; 0069 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL I
+1D65F ; mapped ; 006A # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL J
+1D660 ; mapped ; 006B # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL K
+1D661 ; mapped ; 006C # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL L
+1D662 ; mapped ; 006D # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL M
+1D663 ; mapped ; 006E # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL N
+1D664 ; mapped ; 006F # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL O
+1D665 ; mapped ; 0070 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL P
+1D666 ; mapped ; 0071 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL Q
+1D667 ; mapped ; 0072 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL R
+1D668 ; mapped ; 0073 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL S
+1D669 ; mapped ; 0074 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL T
+1D66A ; mapped ; 0075 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL U
+1D66B ; mapped ; 0076 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL V
+1D66C ; mapped ; 0077 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL W
+1D66D ; mapped ; 0078 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL X
+1D66E ; mapped ; 0079 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL Y
+1D66F ; mapped ; 007A # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL Z
+1D670 ; mapped ; 0061 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL A
+1D671 ; mapped ; 0062 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL B
+1D672 ; mapped ; 0063 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL C
+1D673 ; mapped ; 0064 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL D
+1D674 ; mapped ; 0065 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL E
+1D675 ; mapped ; 0066 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL F
+1D676 ; mapped ; 0067 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL G
+1D677 ; mapped ; 0068 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL H
+1D678 ; mapped ; 0069 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL I
+1D679 ; mapped ; 006A # 3.1 MATHEMATICAL
MONOSPACE CAPITAL J
+1D67A ; mapped ; 006B # 3.1 MATHEMATICAL
MONOSPACE CAPITAL K
+1D67B ; mapped ; 006C # 3.1 MATHEMATICAL
MONOSPACE CAPITAL L
+1D67C ; mapped ; 006D # 3.1 MATHEMATICAL
MONOSPACE CAPITAL M
+1D67D ; mapped ; 006E # 3.1 MATHEMATICAL
MONOSPACE CAPITAL N
+1D67E ; mapped ; 006F # 3.1 MATHEMATICAL
MONOSPACE CAPITAL O
+1D67F ; mapped ; 0070 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL P
+1D680 ; mapped ; 0071 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL Q
+1D681 ; mapped ; 0072 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL R
+1D682 ; mapped ; 0073 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL S
+1D683 ; mapped ; 0074 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL T
+1D684 ; mapped ; 0075 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL U
+1D685 ; mapped ; 0076 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL V
+1D686 ; mapped ; 0077 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL W
+1D687 ; mapped ; 0078 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL X
+1D688 ; mapped ; 0079 # 3.1 MATHEMATICAL
MONOSPACE CAPITAL Y
+1D689 ; mapped ; 007A # 3.1 MATHEMATICAL
MONOSPACE CAPITAL Z
+1D68A ; mapped ; 0061 # 3.1 MATHEMATICAL
MONOSPACE SMALL A
+1D68B ; mapped ; 0062 # 3.1 MATHEMATICAL
MONOSPACE SMALL B
+1D68C ; mapped ; 0063 # 3.1 MATHEMATICAL
MONOSPACE SMALL C
+1D68D ; mapped ; 0064 # 3.1 MATHEMATICAL
MONOSPACE SMALL D
+1D68E ; mapped ; 0065 # 3.1 MATHEMATICAL
MONOSPACE SMALL E
+1D68F ; mapped ; 0066 # 3.1 MATHEMATICAL
MONOSPACE SMALL F
+1D690 ; mapped ; 0067 # 3.1 MATHEMATICAL
MONOSPACE SMALL G
+1D691 ; mapped ; 0068 # 3.1 MATHEMATICAL
MONOSPACE SMALL H
+1D692 ; mapped ; 0069 # 3.1 MATHEMATICAL
MONOSPACE SMALL I
+1D693 ; mapped ; 006A # 3.1 MATHEMATICAL
MONOSPACE SMALL J
+1D694 ; mapped ; 006B # 3.1 MATHEMATICAL
MONOSPACE SMALL K
+1D695 ; mapped ; 006C # 3.1 MATHEMATICAL
MONOSPACE SMALL L
+1D696 ; mapped ; 006D # 3.1 MATHEMATICAL
MONOSPACE SMALL M
+1D697 ; mapped ; 006E # 3.1 MATHEMATICAL
MONOSPACE SMALL N
+1D698 ; mapped ; 006F # 3.1 MATHEMATICAL
MONOSPACE SMALL O
+1D699 ; mapped ; 0070 # 3.1 MATHEMATICAL
MONOSPACE SMALL P
+1D69A ; mapped ; 0071 # 3.1 MATHEMATICAL
MONOSPACE SMALL Q
+1D69B ; mapped ; 0072 # 3.1 MATHEMATICAL
MONOSPACE SMALL R
+1D69C ; mapped ; 0073 # 3.1 MATHEMATICAL
MONOSPACE SMALL S
+1D69D ; mapped ; 0074 # 3.1 MATHEMATICAL
MONOSPACE SMALL T
+1D69E ; mapped ; 0075 # 3.1 MATHEMATICAL
MONOSPACE SMALL U
+1D69F ; mapped ; 0076 # 3.1 MATHEMATICAL
MONOSPACE SMALL V
+1D6A0 ; mapped ; 0077 # 3.1 MATHEMATICAL
MONOSPACE SMALL W
+1D6A1 ; mapped ; 0078 # 3.1 MATHEMATICAL
MONOSPACE SMALL X
+1D6A2 ; mapped ; 0079 # 3.1 MATHEMATICAL
MONOSPACE SMALL Y
+1D6A3 ; mapped ; 007A # 3.1 MATHEMATICAL
MONOSPACE SMALL Z
+1D6A4 ; mapped ; 0131 # 4.1 MATHEMATICAL
ITALIC SMALL DOTLESS I
+1D6A5 ; mapped ; 0237 # 4.1 MATHEMATICAL
ITALIC SMALL DOTLESS J
+1D6A6..1D6A7 ; disallowed # NA
<reserved-1D6A6>..<reserved-1D6A7>
+1D6A8 ; mapped ; 03B1 # 3.1 MATHEMATICAL
BOLD CAPITAL ALPHA
+1D6A9 ; mapped ; 03B2 # 3.1 MATHEMATICAL
BOLD CAPITAL BETA
+1D6AA ; mapped ; 03B3 # 3.1 MATHEMATICAL
BOLD CAPITAL GAMMA
+1D6AB ; mapped ; 03B4 # 3.1 MATHEMATICAL
BOLD CAPITAL DELTA
+1D6AC ; mapped ; 03B5 # 3.1 MATHEMATICAL
BOLD CAPITAL EPSILON
+1D6AD ; mapped ; 03B6 # 3.1 MATHEMATICAL
BOLD CAPITAL ZETA
+1D6AE ; mapped ; 03B7 # 3.1 MATHEMATICAL
BOLD CAPITAL ETA
+1D6AF ; mapped ; 03B8 # 3.1 MATHEMATICAL
BOLD CAPITAL THETA
+1D6B0 ; mapped ; 03B9 # 3.1 MATHEMATICAL
BOLD CAPITAL IOTA
+1D6B1 ; mapped ; 03BA # 3.1 MATHEMATICAL
BOLD CAPITAL KAPPA
+1D6B2 ; mapped ; 03BB # 3.1 MATHEMATICAL
BOLD CAPITAL LAMDA
+1D6B3 ; mapped ; 03BC # 3.1 MATHEMATICAL
BOLD CAPITAL MU
+1D6B4 ; mapped ; 03BD # 3.1 MATHEMATICAL
BOLD CAPITAL NU
+1D6B5 ; mapped ; 03BE # 3.1 MATHEMATICAL
BOLD CAPITAL XI
+1D6B6 ; mapped ; 03BF # 3.1 MATHEMATICAL
BOLD CAPITAL OMICRON
+1D6B7 ; mapped ; 03C0 # 3.1 MATHEMATICAL
BOLD CAPITAL PI
+1D6B8 ; mapped ; 03C1 # 3.1 MATHEMATICAL
BOLD CAPITAL RHO
+1D6B9 ; mapped ; 03B8 # 3.1 MATHEMATICAL
BOLD CAPITAL THETA SYMBOL
+1D6BA ; mapped ; 03C3 # 3.1 MATHEMATICAL
BOLD CAPITAL SIGMA
+1D6BB ; mapped ; 03C4 # 3.1 MATHEMATICAL
BOLD CAPITAL TAU
+1D6BC ; mapped ; 03C5 # 3.1 MATHEMATICAL
BOLD CAPITAL UPSILON
+1D6BD ; mapped ; 03C6 # 3.1 MATHEMATICAL
BOLD CAPITAL PHI
+1D6BE ; mapped ; 03C7 # 3.1 MATHEMATICAL
BOLD CAPITAL CHI
+1D6BF ; mapped ; 03C8 # 3.1 MATHEMATICAL
BOLD CAPITAL PSI
+1D6C0 ; mapped ; 03C9 # 3.1 MATHEMATICAL
BOLD CAPITAL OMEGA
+1D6C1 ; mapped ; 2207 # 3.1 MATHEMATICAL
BOLD NABLA
+1D6C2 ; mapped ; 03B1 # 3.1 MATHEMATICAL
BOLD SMALL ALPHA
+1D6C3 ; mapped ; 03B2 # 3.1 MATHEMATICAL
BOLD SMALL BETA
+1D6C4 ; mapped ; 03B3 # 3.1 MATHEMATICAL
BOLD SMALL GAMMA
+1D6C5 ; mapped ; 03B4 # 3.1 MATHEMATICAL
BOLD SMALL DELTA
+1D6C6 ; mapped ; 03B5 # 3.1 MATHEMATICAL
BOLD SMALL EPSILON
+1D6C7 ; mapped ; 03B6 # 3.1 MATHEMATICAL
BOLD SMALL ZETA
+1D6C8 ; mapped ; 03B7 # 3.1 MATHEMATICAL
BOLD SMALL ETA
+1D6C9 ; mapped ; 03B8 # 3.1 MATHEMATICAL
BOLD SMALL THETA
+1D6CA ; mapped ; 03B9 # 3.1 MATHEMATICAL
BOLD SMALL IOTA
+1D6CB ; mapped ; 03BA # 3.1 MATHEMATICAL
BOLD SMALL KAPPA
+1D6CC ; mapped ; 03BB # 3.1 MATHEMATICAL
BOLD SMALL LAMDA
+1D6CD ; mapped ; 03BC # 3.1 MATHEMATICAL
BOLD SMALL MU
+1D6CE ; mapped ; 03BD # 3.1 MATHEMATICAL
BOLD SMALL NU
+1D6CF ; mapped ; 03BE # 3.1 MATHEMATICAL
BOLD SMALL XI
+1D6D0 ; mapped ; 03BF # 3.1 MATHEMATICAL
BOLD SMALL OMICRON
+1D6D1 ; mapped ; 03C0 # 3.1 MATHEMATICAL
BOLD SMALL PI
+1D6D2 ; mapped ; 03C1 # 3.1 MATHEMATICAL
BOLD SMALL RHO
+1D6D3..1D6D4 ; mapped ; 03C3 # 3.1 MATHEMATICAL
BOLD SMALL FINAL SIGMA..MATHEMATICAL BOLD SMALL SIGMA
+1D6D5 ; mapped ; 03C4 # 3.1 MATHEMATICAL
BOLD SMALL TAU
+1D6D6 ; mapped ; 03C5 # 3.1 MATHEMATICAL
BOLD SMALL UPSILON
+1D6D7 ; mapped ; 03C6 # 3.1 MATHEMATICAL
BOLD SMALL PHI
+1D6D8 ; mapped ; 03C7 # 3.1 MATHEMATICAL
BOLD SMALL CHI
+1D6D9 ; mapped ; 03C8 # 3.1 MATHEMATICAL
BOLD SMALL PSI
+1D6DA ; mapped ; 03C9 # 3.1 MATHEMATICAL
BOLD SMALL OMEGA
+1D6DB ; mapped ; 2202 # 3.1 MATHEMATICAL
BOLD PARTIAL DIFFERENTIAL
+1D6DC ; mapped ; 03B5 # 3.1 MATHEMATICAL
BOLD EPSILON SYMBOL
+1D6DD ; mapped ; 03B8 # 3.1 MATHEMATICAL
BOLD THETA SYMBOL
+1D6DE ; mapped ; 03BA # 3.1 MATHEMATICAL
BOLD KAPPA SYMBOL
+1D6DF ; mapped ; 03C6 # 3.1 MATHEMATICAL
BOLD PHI SYMBOL
+1D6E0 ; mapped ; 03C1 # 3.1 MATHEMATICAL
BOLD RHO SYMBOL
+1D6E1 ; mapped ; 03C0 # 3.1 MATHEMATICAL
BOLD PI SYMBOL
+1D6E2 ; mapped ; 03B1 # 3.1 MATHEMATICAL
ITALIC CAPITAL ALPHA
+1D6E3 ; mapped ; 03B2 # 3.1 MATHEMATICAL
ITALIC CAPITAL BETA
+1D6E4 ; mapped ; 03B3 # 3.1 MATHEMATICAL
ITALIC CAPITAL GAMMA
+1D6E5 ; mapped ; 03B4 # 3.1 MATHEMATICAL
ITALIC CAPITAL DELTA
+1D6E6 ; mapped ; 03B5 # 3.1 MATHEMATICAL
ITALIC CAPITAL EPSILON
+1D6E7 ; mapped ; 03B6 # 3.1 MATHEMATICAL
ITALIC CAPITAL ZETA
+1D6E8 ; mapped ; 03B7 # 3.1 MATHEMATICAL
ITALIC CAPITAL ETA
+1D6E9 ; mapped ; 03B8 # 3.1 MATHEMATICAL
ITALIC CAPITAL THETA
+1D6EA ; mapped ; 03B9 # 3.1 MATHEMATICAL
ITALIC CAPITAL IOTA
+1D6EB ; mapped ; 03BA # 3.1 MATHEMATICAL
ITALIC CAPITAL KAPPA
+1D6EC ; mapped ; 03BB # 3.1 MATHEMATICAL
ITALIC CAPITAL LAMDA
+1D6ED ; mapped ; 03BC # 3.1 MATHEMATICAL
ITALIC CAPITAL MU
+1D6EE ; mapped ; 03BD # 3.1 MATHEMATICAL
ITALIC CAPITAL NU
+1D6EF ; mapped ; 03BE # 3.1 MATHEMATICAL
ITALIC CAPITAL XI
+1D6F0 ; mapped ; 03BF # 3.1 MATHEMATICAL
ITALIC CAPITAL OMICRON
+1D6F1 ; mapped ; 03C0 # 3.1 MATHEMATICAL
ITALIC CAPITAL PI
+1D6F2 ; mapped ; 03C1 # 3.1 MATHEMATICAL
ITALIC CAPITAL RHO
+1D6F3 ; mapped ; 03B8 # 3.1 MATHEMATICAL
ITALIC CAPITAL THETA SYMBOL
+1D6F4 ; mapped ; 03C3 # 3.1 MATHEMATICAL
ITALIC CAPITAL SIGMA
+1D6F5 ; mapped ; 03C4 # 3.1 MATHEMATICAL
ITALIC CAPITAL TAU
+1D6F6 ; mapped ; 03C5 # 3.1 MATHEMATICAL
ITALIC CAPITAL UPSILON
+1D6F7 ; mapped ; 03C6 # 3.1 MATHEMATICAL
ITALIC CAPITAL PHI
+1D6F8 ; mapped ; 03C7 # 3.1 MATHEMATICAL
ITALIC CAPITAL CHI
+1D6F9 ; mapped ; 03C8 # 3.1 MATHEMATICAL
ITALIC CAPITAL PSI
+1D6FA ; mapped ; 03C9 # 3.1 MATHEMATICAL
ITALIC CAPITAL OMEGA
+1D6FB ; mapped ; 2207 # 3.1 MATHEMATICAL
ITALIC NABLA
+1D6FC ; mapped ; 03B1 # 3.1 MATHEMATICAL
ITALIC SMALL ALPHA
+1D6FD ; mapped ; 03B2 # 3.1 MATHEMATICAL
ITALIC SMALL BETA
+1D6FE ; mapped ; 03B3 # 3.1 MATHEMATICAL
ITALIC SMALL GAMMA
+1D6FF ; mapped ; 03B4 # 3.1 MATHEMATICAL
ITALIC SMALL DELTA
+1D700 ; mapped ; 03B5 # 3.1 MATHEMATICAL
ITALIC SMALL EPSILON
+1D701 ; mapped ; 03B6 # 3.1 MATHEMATICAL
ITALIC SMALL ZETA
+1D702 ; mapped ; 03B7 # 3.1 MATHEMATICAL
ITALIC SMALL ETA
+1D703 ; mapped ; 03B8 # 3.1 MATHEMATICAL
ITALIC SMALL THETA
+1D704 ; mapped ; 03B9 # 3.1 MATHEMATICAL
ITALIC SMALL IOTA
+1D705 ; mapped ; 03BA # 3.1 MATHEMATICAL
ITALIC SMALL KAPPA
+1D706 ; mapped ; 03BB # 3.1 MATHEMATICAL
ITALIC SMALL LAMDA
+1D707 ; mapped ; 03BC # 3.1 MATHEMATICAL
ITALIC SMALL MU
+1D708 ; mapped ; 03BD # 3.1 MATHEMATICAL
ITALIC SMALL NU
+1D709 ; mapped ; 03BE # 3.1 MATHEMATICAL
ITALIC SMALL XI
+1D70A ; mapped ; 03BF # 3.1 MATHEMATICAL
ITALIC SMALL OMICRON
+1D70B ; mapped ; 03C0 # 3.1 MATHEMATICAL
ITALIC SMALL PI
+1D70C ; mapped ; 03C1 # 3.1 MATHEMATICAL
ITALIC SMALL RHO
+1D70D..1D70E ; mapped ; 03C3 # 3.1 MATHEMATICAL
ITALIC SMALL FINAL SIGMA..MATHEMATICAL ITALIC SMALL SIGMA
+1D70F ; mapped ; 03C4 # 3.1 MATHEMATICAL
ITALIC SMALL TAU
+1D710 ; mapped ; 03C5 # 3.1 MATHEMATICAL
ITALIC SMALL UPSILON
+1D711 ; mapped ; 03C6 # 3.1 MATHEMATICAL
ITALIC SMALL PHI
+1D712 ; mapped ; 03C7 # 3.1 MATHEMATICAL
ITALIC SMALL CHI
+1D713 ; mapped ; 03C8 # 3.1 MATHEMATICAL
ITALIC SMALL PSI
+1D714 ; mapped ; 03C9 # 3.1 MATHEMATICAL
ITALIC SMALL OMEGA
+1D715 ; mapped ; 2202 # 3.1 MATHEMATICAL
ITALIC PARTIAL DIFFERENTIAL
+1D716 ; mapped ; 03B5 # 3.1 MATHEMATICAL
ITALIC EPSILON SYMBOL
+1D717 ; mapped ; 03B8 # 3.1 MATHEMATICAL
ITALIC THETA SYMBOL
+1D718 ; mapped ; 03BA # 3.1 MATHEMATICAL
ITALIC KAPPA SYMBOL
+1D719 ; mapped ; 03C6 # 3.1 MATHEMATICAL
ITALIC PHI SYMBOL
+1D71A ; mapped ; 03C1 # 3.1 MATHEMATICAL
ITALIC RHO SYMBOL
+1D71B ; mapped ; 03C0 # 3.1 MATHEMATICAL
ITALIC PI SYMBOL
+1D71C ; mapped ; 03B1 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL ALPHA
+1D71D ; mapped ; 03B2 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL BETA
+1D71E ; mapped ; 03B3 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL GAMMA
+1D71F ; mapped ; 03B4 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL DELTA
+1D720 ; mapped ; 03B5 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL EPSILON
+1D721 ; mapped ; 03B6 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL ZETA
+1D722 ; mapped ; 03B7 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL ETA
+1D723 ; mapped ; 03B8 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL THETA
+1D724 ; mapped ; 03B9 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL IOTA
+1D725 ; mapped ; 03BA # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL KAPPA
+1D726 ; mapped ; 03BB # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL LAMDA
+1D727 ; mapped ; 03BC # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL MU
+1D728 ; mapped ; 03BD # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL NU
+1D729 ; mapped ; 03BE # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL XI
+1D72A ; mapped ; 03BF # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL OMICRON
+1D72B ; mapped ; 03C0 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL PI
+1D72C ; mapped ; 03C1 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL RHO
+1D72D ; mapped ; 03B8 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL THETA SYMBOL
+1D72E ; mapped ; 03C3 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL SIGMA
+1D72F ; mapped ; 03C4 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL TAU
+1D730 ; mapped ; 03C5 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL UPSILON
+1D731 ; mapped ; 03C6 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL PHI
+1D732 ; mapped ; 03C7 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL CHI
+1D733 ; mapped ; 03C8 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL PSI
+1D734 ; mapped ; 03C9 # 3.1 MATHEMATICAL
BOLD ITALIC CAPITAL OMEGA
+1D735 ; mapped ; 2207 # 3.1 MATHEMATICAL
BOLD ITALIC NABLA
+1D736 ; mapped ; 03B1 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL ALPHA
+1D737 ; mapped ; 03B2 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL BETA
+1D738 ; mapped ; 03B3 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL GAMMA
+1D739 ; mapped ; 03B4 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL DELTA
+1D73A ; mapped ; 03B5 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL EPSILON
+1D73B ; mapped ; 03B6 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL ZETA
+1D73C ; mapped ; 03B7 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL ETA
+1D73D ; mapped ; 03B8 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL THETA
+1D73E ; mapped ; 03B9 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL IOTA
+1D73F ; mapped ; 03BA # 3.1 MATHEMATICAL
BOLD ITALIC SMALL KAPPA
+1D740 ; mapped ; 03BB # 3.1 MATHEMATICAL
BOLD ITALIC SMALL LAMDA
+1D741 ; mapped ; 03BC # 3.1 MATHEMATICAL
BOLD ITALIC SMALL MU
+1D742 ; mapped ; 03BD # 3.1 MATHEMATICAL
BOLD ITALIC SMALL NU
+1D743 ; mapped ; 03BE # 3.1 MATHEMATICAL
BOLD ITALIC SMALL XI
+1D744 ; mapped ; 03BF # 3.1 MATHEMATICAL
BOLD ITALIC SMALL OMICRON
+1D745 ; mapped ; 03C0 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL PI
+1D746 ; mapped ; 03C1 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL RHO
+1D747..1D748 ; mapped ; 03C3 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL FINAL SIGMA..MATHEMATICAL BOLD ITALIC SMALL SIGMA
+1D749 ; mapped ; 03C4 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL TAU
+1D74A ; mapped ; 03C5 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL UPSILON
+1D74B ; mapped ; 03C6 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL PHI
+1D74C ; mapped ; 03C7 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL CHI
+1D74D ; mapped ; 03C8 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL PSI
+1D74E ; mapped ; 03C9 # 3.1 MATHEMATICAL
BOLD ITALIC SMALL OMEGA
+1D74F ; mapped ; 2202 # 3.1 MATHEMATICAL
BOLD ITALIC PARTIAL DIFFERENTIAL
+1D750 ; mapped ; 03B5 # 3.1 MATHEMATICAL
BOLD ITALIC EPSILON SYMBOL
+1D751 ; mapped ; 03B8 # 3.1 MATHEMATICAL
BOLD ITALIC THETA SYMBOL
+1D752 ; mapped ; 03BA # 3.1 MATHEMATICAL
BOLD ITALIC KAPPA SYMBOL
+1D753 ; mapped ; 03C6 # 3.1 MATHEMATICAL
BOLD ITALIC PHI SYMBOL
+1D754 ; mapped ; 03C1 # 3.1 MATHEMATICAL
BOLD ITALIC RHO SYMBOL
+1D755 ; mapped ; 03C0 # 3.1 MATHEMATICAL
BOLD ITALIC PI SYMBOL
+1D756 ; mapped ; 03B1 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL ALPHA
+1D757 ; mapped ; 03B2 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL BETA
+1D758 ; mapped ; 03B3 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL GAMMA
+1D759 ; mapped ; 03B4 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL DELTA
+1D75A ; mapped ; 03B5 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL EPSILON
+1D75B ; mapped ; 03B6 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL ZETA
+1D75C ; mapped ; 03B7 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL ETA
+1D75D ; mapped ; 03B8 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL THETA
+1D75E ; mapped ; 03B9 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL IOTA
+1D75F ; mapped ; 03BA # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL KAPPA
+1D760 ; mapped ; 03BB # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL LAMDA
+1D761 ; mapped ; 03BC # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL MU
+1D762 ; mapped ; 03BD # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL NU
+1D763 ; mapped ; 03BE # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL XI
+1D764 ; mapped ; 03BF # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL OMICRON
+1D765 ; mapped ; 03C0 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL PI
+1D766 ; mapped ; 03C1 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL RHO
+1D767 ; mapped ; 03B8 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL THETA SYMBOL
+1D768 ; mapped ; 03C3 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL SIGMA
+1D769 ; mapped ; 03C4 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL TAU
+1D76A ; mapped ; 03C5 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL UPSILON
+1D76B ; mapped ; 03C6 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL PHI
+1D76C ; mapped ; 03C7 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL CHI
+1D76D ; mapped ; 03C8 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL PSI
+1D76E ; mapped ; 03C9 # 3.1 MATHEMATICAL
SANS-SERIF BOLD CAPITAL OMEGA
+1D76F ; mapped ; 2207 # 3.1 MATHEMATICAL
SANS-SERIF BOLD NABLA
+1D770 ; mapped ; 03B1 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL ALPHA
+1D771 ; mapped ; 03B2 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL BETA
+1D772 ; mapped ; 03B3 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL GAMMA
+1D773 ; mapped ; 03B4 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL DELTA
+1D774 ; mapped ; 03B5 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL EPSILON
+1D775 ; mapped ; 03B6 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL ZETA
+1D776 ; mapped ; 03B7 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL ETA
+1D777 ; mapped ; 03B8 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL THETA
+1D778 ; mapped ; 03B9 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL IOTA
+1D779 ; mapped ; 03BA # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL KAPPA
+1D77A ; mapped ; 03BB # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL LAMDA
+1D77B ; mapped ; 03BC # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL MU
+1D77C ; mapped ; 03BD # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL NU
+1D77D ; mapped ; 03BE # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL XI
+1D77E ; mapped ; 03BF # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL OMICRON
+1D77F ; mapped ; 03C0 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL PI
+1D780 ; mapped ; 03C1 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL RHO
+1D781..1D782 ; mapped ; 03C3 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL FINAL SIGMA..MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA
+1D783 ; mapped ; 03C4 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL TAU
+1D784 ; mapped ; 03C5 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL UPSILON
+1D785 ; mapped ; 03C6 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL PHI
+1D786 ; mapped ; 03C7 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL CHI
+1D787 ; mapped ; 03C8 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL PSI
+1D788 ; mapped ; 03C9 # 3.1 MATHEMATICAL
SANS-SERIF BOLD SMALL OMEGA
+1D789 ; mapped ; 2202 # 3.1 MATHEMATICAL
SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+1D78A ; mapped ; 03B5 # 3.1 MATHEMATICAL
SANS-SERIF BOLD EPSILON SYMBOL
+1D78B ; mapped ; 03B8 # 3.1 MATHEMATICAL
SANS-SERIF BOLD THETA SYMBOL
+1D78C ; mapped ; 03BA # 3.1 MATHEMATICAL
SANS-SERIF BOLD KAPPA SYMBOL
+1D78D ; mapped ; 03C6 # 3.1 MATHEMATICAL
SANS-SERIF BOLD PHI SYMBOL
+1D78E ; mapped ; 03C1 # 3.1 MATHEMATICAL
SANS-SERIF BOLD RHO SYMBOL
+1D78F ; mapped ; 03C0 # 3.1 MATHEMATICAL
SANS-SERIF BOLD PI SYMBOL
+1D790 ; mapped ; 03B1 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL ALPHA
+1D791 ; mapped ; 03B2 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL BETA
+1D792 ; mapped ; 03B3 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL GAMMA
+1D793 ; mapped ; 03B4 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL DELTA
+1D794 ; mapped ; 03B5 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL EPSILON
+1D795 ; mapped ; 03B6 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL ZETA
+1D796 ; mapped ; 03B7 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL ETA
+1D797 ; mapped ; 03B8 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL THETA
+1D798 ; mapped ; 03B9 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL IOTA
+1D799 ; mapped ; 03BA # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL KAPPA
+1D79A ; mapped ; 03BB # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL LAMDA
+1D79B ; mapped ; 03BC # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL MU
+1D79C ; mapped ; 03BD # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL NU
+1D79D ; mapped ; 03BE # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL XI
+1D79E ; mapped ; 03BF # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL OMICRON
+1D79F ; mapped ; 03C0 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL PI
+1D7A0 ; mapped ; 03C1 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL RHO
+1D7A1 ; mapped ; 03B8 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL
+1D7A2 ; mapped ; 03C3 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL SIGMA
+1D7A3 ; mapped ; 03C4 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL TAU
+1D7A4 ; mapped ; 03C5 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL UPSILON
+1D7A5 ; mapped ; 03C6 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL PHI
+1D7A6 ; mapped ; 03C7 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL CHI
+1D7A7 ; mapped ; 03C8 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL PSI
+1D7A8 ; mapped ; 03C9 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1D7A9 ; mapped ; 2207 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC NABLA
+1D7AA ; mapped ; 03B1 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL ALPHA
+1D7AB ; mapped ; 03B2 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL BETA
+1D7AC ; mapped ; 03B3 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL GAMMA
+1D7AD ; mapped ; 03B4 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL DELTA
+1D7AE ; mapped ; 03B5 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL EPSILON
+1D7AF ; mapped ; 03B6 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL ZETA
+1D7B0 ; mapped ; 03B7 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL ETA
+1D7B1 ; mapped ; 03B8 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL THETA
+1D7B2 ; mapped ; 03B9 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL IOTA
+1D7B3 ; mapped ; 03BA # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL KAPPA
+1D7B4 ; mapped ; 03BB # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL LAMDA
+1D7B5 ; mapped ; 03BC # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL MU
+1D7B6 ; mapped ; 03BD # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL NU
+1D7B7 ; mapped ; 03BE # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL XI
+1D7B8 ; mapped ; 03BF # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL OMICRON
+1D7B9 ; mapped ; 03C0 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL PI
+1D7BA ; mapped ; 03C1 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL RHO
+1D7BB..1D7BC ; mapped ; 03C3 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA..MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL SIGMA
+1D7BD ; mapped ; 03C4 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL TAU
+1D7BE ; mapped ; 03C5 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL UPSILON
+1D7BF ; mapped ; 03C6 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL PHI
+1D7C0 ; mapped ; 03C7 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL CHI
+1D7C1 ; mapped ; 03C8 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL PSI
+1D7C2 ; mapped ; 03C9 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC SMALL OMEGA
+1D7C3 ; mapped ; 2202 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+1D7C4 ; mapped ; 03B5 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC EPSILON SYMBOL
+1D7C5 ; mapped ; 03B8 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC THETA SYMBOL
+1D7C6 ; mapped ; 03BA # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC KAPPA SYMBOL
+1D7C7 ; mapped ; 03C6 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC PHI SYMBOL
+1D7C8 ; mapped ; 03C1 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC RHO SYMBOL
+1D7C9 ; mapped ; 03C0 # 3.1 MATHEMATICAL
SANS-SERIF BOLD ITALIC PI SYMBOL
+1D7CA..1D7CB ; mapped ; 03DD # 5.0 MATHEMATICAL
BOLD CAPITAL DIGAMMA..MATHEMATICAL BOLD SMALL DIGAMMA
+1D7CC..1D7CD ; disallowed # NA
<reserved-1D7CC>..<reserved-1D7CD>
+1D7CE ; mapped ; 0030 # 3.1 MATHEMATICAL
BOLD DIGIT ZERO
+1D7CF ; mapped ; 0031 # 3.1 MATHEMATICAL
BOLD DIGIT ONE
+1D7D0 ; mapped ; 0032 # 3.1 MATHEMATICAL
BOLD DIGIT TWO
+1D7D1 ; mapped ; 0033 # 3.1 MATHEMATICAL
BOLD DIGIT THREE
+1D7D2 ; mapped ; 0034 # 3.1 MATHEMATICAL
BOLD DIGIT FOUR
+1D7D3 ; mapped ; 0035 # 3.1 MATHEMATICAL
BOLD DIGIT FIVE
+1D7D4 ; mapped ; 0036 # 3.1 MATHEMATICAL
BOLD DIGIT SIX
+1D7D5 ; mapped ; 0037 # 3.1 MATHEMATICAL
BOLD DIGIT SEVEN
+1D7D6 ; mapped ; 0038 # 3.1 MATHEMATICAL
BOLD DIGIT EIGHT
+1D7D7 ; mapped ; 0039 # 3.1 MATHEMATICAL
BOLD DIGIT NINE
+1D7D8 ; mapped ; 0030 # 3.1 MATHEMATICAL
DOUBLE-STRUCK DIGIT ZERO
+1D7D9 ; mapped ; 0031 # 3.1 MATHEMATICAL
DOUBLE-STRUCK DIGIT ONE
+1D7DA ; mapped ; 0032 # 3.1 MATHEMATICAL
DOUBLE-STRUCK DIGIT TWO
+1D7DB ; mapped ; 0033 # 3.1 MATHEMATICAL
DOUBLE-STRUCK DIGIT THREE
+1D7DC ; mapped ; 0034 # 3.1 MATHEMATICAL
DOUBLE-STRUCK DIGIT FOUR
+1D7DD ; mapped ; 0035 # 3.1 MATHEMATICAL
DOUBLE-STRUCK DIGIT FIVE
+1D7DE ; mapped ; 0036 # 3.1 MATHEMATICAL
DOUBLE-STRUCK DIGIT SIX
+1D7DF ; mapped ; 0037 # 3.1 MATHEMATICAL
DOUBLE-STRUCK DIGIT SEVEN
+1D7E0 ; mapped ; 0038 # 3.1 MATHEMATICAL
DOUBLE-STRUCK DIGIT EIGHT
+1D7E1 ; mapped ; 0039 # 3.1 MATHEMATICAL
DOUBLE-STRUCK DIGIT NINE
+1D7E2 ; mapped ; 0030 # 3.1 MATHEMATICAL
SANS-SERIF DIGIT ZERO
+1D7E3 ; mapped ; 0031 # 3.1 MATHEMATICAL
SANS-SERIF DIGIT ONE
+1D7E4 ; mapped ; 0032 # 3.1 MATHEMATICAL
SANS-SERIF DIGIT TWO
+1D7E5 ; mapped ; 0033 # 3.1 MATHEMATICAL
SANS-SERIF DIGIT THREE
+1D7E6 ; mapped ; 0034 # 3.1 MATHEMATICAL
SANS-SERIF DIGIT FOUR
+1D7E7 ; mapped ; 0035 # 3.1 MATHEMATICAL
SANS-SERIF DIGIT FIVE
+1D7E8 ; mapped ; 0036 # 3.1 MATHEMATICAL
SANS-SERIF DIGIT SIX
+1D7E9 ; mapped ; 0037 # 3.1 MATHEMATICAL
SANS-SERIF DIGIT SEVEN
+1D7EA ; mapped ; 0038 # 3.1 MATHEMATICAL
SANS-SERIF DIGIT EIGHT
+1D7EB ; mapped ; 0039 # 3.1 MATHEMATICAL
SANS-SERIF DIGIT NINE
+1D7EC ; mapped ; 0030 # 3.1 MATHEMATICAL
SANS-SERIF BOLD DIGIT ZERO
+1D7ED ; mapped ; 0031 # 3.1 MATHEMATICAL
SANS-SERIF BOLD DIGIT ONE
+1D7EE ; mapped ; 0032 # 3.1 MATHEMATICAL
SANS-SERIF BOLD DIGIT TWO
+1D7EF ; mapped ; 0033 # 3.1 MATHEMATICAL
SANS-SERIF BOLD DIGIT THREE
+1D7F0 ; mapped ; 0034 # 3.1 MATHEMATICAL
SANS-SERIF BOLD DIGIT FOUR
+1D7F1 ; mapped ; 0035 # 3.1 MATHEMATICAL
SANS-SERIF BOLD DIGIT FIVE
+1D7F2 ; mapped ; 0036 # 3.1 MATHEMATICAL
SANS-SERIF BOLD DIGIT SIX
+1D7F3 ; mapped ; 0037 # 3.1 MATHEMATICAL
SANS-SERIF BOLD DIGIT SEVEN
+1D7F4 ; mapped ; 0038 # 3.1 MATHEMATICAL
SANS-SERIF BOLD DIGIT EIGHT
+1D7F5 ; mapped ; 0039 # 3.1 MATHEMATICAL
SANS-SERIF BOLD DIGIT NINE
+1D7F6 ; mapped ; 0030 # 3.1 MATHEMATICAL
MONOSPACE DIGIT ZERO
+1D7F7 ; mapped ; 0031 # 3.1 MATHEMATICAL
MONOSPACE DIGIT ONE
+1D7F8 ; mapped ; 0032 # 3.1 MATHEMATICAL
MONOSPACE DIGIT TWO
+1D7F9 ; mapped ; 0033 # 3.1 MATHEMATICAL
MONOSPACE DIGIT THREE
+1D7FA ; mapped ; 0034 # 3.1 MATHEMATICAL
MONOSPACE DIGIT FOUR
+1D7FB ; mapped ; 0035 # 3.1 MATHEMATICAL
MONOSPACE DIGIT FIVE
+1D7FC ; mapped ; 0036 # 3.1 MATHEMATICAL
MONOSPACE DIGIT SIX
+1D7FD ; mapped ; 0037 # 3.1 MATHEMATICAL
MONOSPACE DIGIT SEVEN
+1D7FE ; mapped ; 0038 # 3.1 MATHEMATICAL
MONOSPACE DIGIT EIGHT
+1D7FF ; mapped ; 0039 # 3.1 MATHEMATICAL
MONOSPACE DIGIT NINE
+1D800..1D9FF ; valid ; ; NV8 # 8.0 SIGNWRITING
HAND-FIST INDEX..SIGNWRITING HEAD
+1DA00..1DA36 ; valid # 8.0 SIGNWRITING HEAD
RIM..SIGNWRITING AIR SUCKING IN
+1DA37..1DA3A ; valid ; ; NV8 # 8.0 SIGNWRITING AIR
BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE
+1DA3B..1DA6C ; valid # 8.0 SIGNWRITING
MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
+1DA6D..1DA74 ; valid ; ; NV8 # 8.0 SIGNWRITING
SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING
+1DA75 ; valid # 8.0 SIGNWRITING
UPPER BODY TILTING FROM HIP JOINTS
+1DA76..1DA83 ; valid ; ; NV8 # 8.0 SIGNWRITING LIMB
COMBINATION..SIGNWRITING LOCATION DEPTH
+1DA84 ; valid # 8.0 SIGNWRITING
LOCATION HEAD NECK
+1DA85..1DA8B ; valid ; ; NV8 # 8.0 SIGNWRITING
LOCATION TORSO..SIGNWRITING PARENTHESIS
+1DA8C..1DA9A ; disallowed # NA
<reserved-1DA8C>..<reserved-1DA9A>
+1DA9B..1DA9F ; valid # 8.0 SIGNWRITING FILL
MODIFIER-2..SIGNWRITING FILL MODIFIER-6
+1DAA0 ; disallowed # NA <reserved-1DAA0>
+1DAA1..1DAAF ; valid # 8.0 SIGNWRITING
ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
+1DAB0..1DEFF ; disallowed # NA
<reserved-1DAB0>..<reserved-1DEFF>
+1DF00..1DF1E ; valid # 14.0 LATIN SMALL
LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER S WITH CURL
+1DF1F..1DFFF ; disallowed # NA
<reserved-1DF1F>..<reserved-1DFFF>
+1E000..1E006 ; valid # 9.0 COMBINING
GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
+1E007 ; disallowed # NA <reserved-1E007>
+1E008..1E018 ; valid # 9.0 COMBINING
GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
+1E019..1E01A ; disallowed # NA
<reserved-1E019>..<reserved-1E01A>
+1E01B..1E021 ; valid # 9.0 COMBINING
GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
+1E022 ; disallowed # NA <reserved-1E022>
+1E023..1E024 ; valid # 9.0 COMBINING
GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
+1E025 ; disallowed # NA <reserved-1E025>
+1E026..1E02A ; valid # 9.0 COMBINING
GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E02B..1E0FF ; disallowed # NA
<reserved-1E02B>..<reserved-1E0FF>
+1E100..1E12C ; valid # 12.0 NYIAKENG PUACHUE
HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
+1E12D..1E12F ; disallowed # NA
<reserved-1E12D>..<reserved-1E12F>
+1E130..1E13D ; valid # 12.0 NYIAKENG PUACHUE
HMONG TONE-B..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+1E13E..1E13F ; disallowed # NA
<reserved-1E13E>..<reserved-1E13F>
+1E140..1E149 ; valid # 12.0 NYIAKENG PUACHUE
HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
+1E14A..1E14D ; disallowed # NA
<reserved-1E14A>..<reserved-1E14D>
+1E14E ; valid # 12.0 NYIAKENG PUACHUE
HMONG LOGOGRAM NYAJ
+1E14F ; valid ; ; NV8 # 12.0 NYIAKENG PUACHUE
HMONG CIRCLED CA
+1E150..1E28F ; disallowed # NA
<reserved-1E150>..<reserved-1E28F>
+1E290..1E2AE ; valid # 14.0 TOTO LETTER
PA..TOTO SIGN RISING TONE
+1E2AF..1E2BF ; disallowed # NA
<reserved-1E2AF>..<reserved-1E2BF>
+1E2C0..1E2F9 ; valid # 12.0 WANCHO LETTER
AA..WANCHO DIGIT NINE
+1E2FA..1E2FE ; disallowed # NA
<reserved-1E2FA>..<reserved-1E2FE>
+1E2FF ; valid ; ; NV8 # 12.0 WANCHO NGUN SIGN
+1E300..1E7DF ; disallowed # NA
<reserved-1E300>..<reserved-1E7DF>
+1E7E0..1E7E6 ; valid # 14.0 ETHIOPIC
SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
+1E7E7 ; disallowed # NA <reserved-1E7E7>
+1E7E8..1E7EB ; valid # 14.0 ETHIOPIC
SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
+1E7EC ; disallowed # NA <reserved-1E7EC>
+1E7ED..1E7EE ; valid # 14.0 ETHIOPIC
SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
+1E7EF ; disallowed # NA <reserved-1E7EF>
+1E7F0..1E7FE ; valid # 14.0 ETHIOPIC
SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE
+1E7FF ; disallowed # NA <reserved-1E7FF>
+1E800..1E8C4 ; valid # 7.0 MENDE KIKAKUI
SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C5..1E8C6 ; disallowed # NA
<reserved-1E8C5>..<reserved-1E8C6>
+1E8C7..1E8CF ; valid ; ; NV8 # 7.0 MENDE KIKAKUI
DIGIT ONE..MENDE KIKAKUI DIGIT NINE
+1E8D0..1E8D6 ; valid # 7.0 MENDE KIKAKUI
COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+1E8D7..1E8FF ; disallowed # NA
<reserved-1E8D7>..<reserved-1E8FF>
+1E900 ; mapped ; 1E922 # 9.0 ADLAM CAPITAL
LETTER ALIF
+1E901 ; mapped ; 1E923 # 9.0 ADLAM CAPITAL
LETTER DAALI
+1E902 ; mapped ; 1E924 # 9.0 ADLAM CAPITAL
LETTER LAAM
+1E903 ; mapped ; 1E925 # 9.0 ADLAM CAPITAL
LETTER MIIM
+1E904 ; mapped ; 1E926 # 9.0 ADLAM CAPITAL
LETTER BA
+1E905 ; mapped ; 1E927 # 9.0 ADLAM CAPITAL
LETTER SINNYIIYHE
+1E906 ; mapped ; 1E928 # 9.0 ADLAM CAPITAL
LETTER PE
+1E907 ; mapped ; 1E929 # 9.0 ADLAM CAPITAL
LETTER BHE
+1E908 ; mapped ; 1E92A # 9.0 ADLAM CAPITAL
LETTER RA
+1E909 ; mapped ; 1E92B # 9.0 ADLAM CAPITAL
LETTER E
+1E90A ; mapped ; 1E92C # 9.0 ADLAM CAPITAL
LETTER FA
+1E90B ; mapped ; 1E92D # 9.0 ADLAM CAPITAL
LETTER I
+1E90C ; mapped ; 1E92E # 9.0 ADLAM CAPITAL
LETTER O
+1E90D ; mapped ; 1E92F # 9.0 ADLAM CAPITAL
LETTER DHA
+1E90E ; mapped ; 1E930 # 9.0 ADLAM CAPITAL
LETTER YHE
+1E90F ; mapped ; 1E931 # 9.0 ADLAM CAPITAL
LETTER WAW
+1E910 ; mapped ; 1E932 # 9.0 ADLAM CAPITAL
LETTER NUN
+1E911 ; mapped ; 1E933 # 9.0 ADLAM CAPITAL
LETTER KAF
+1E912 ; mapped ; 1E934 # 9.0 ADLAM CAPITAL
LETTER YA
+1E913 ; mapped ; 1E935 # 9.0 ADLAM CAPITAL
LETTER U
+1E914 ; mapped ; 1E936 # 9.0 ADLAM CAPITAL
LETTER JIIM
+1E915 ; mapped ; 1E937 # 9.0 ADLAM CAPITAL
LETTER CHI
+1E916 ; mapped ; 1E938 # 9.0 ADLAM CAPITAL
LETTER HA
+1E917 ; mapped ; 1E939 # 9.0 ADLAM CAPITAL
LETTER QAAF
+1E918 ; mapped ; 1E93A # 9.0 ADLAM CAPITAL
LETTER GA
+1E919 ; mapped ; 1E93B # 9.0 ADLAM CAPITAL
LETTER NYA
+1E91A ; mapped ; 1E93C # 9.0 ADLAM CAPITAL
LETTER TU
+1E91B ; mapped ; 1E93D # 9.0 ADLAM CAPITAL
LETTER NHA
+1E91C ; mapped ; 1E93E # 9.0 ADLAM CAPITAL
LETTER VA
+1E91D ; mapped ; 1E93F # 9.0 ADLAM CAPITAL
LETTER KHA
+1E91E ; mapped ; 1E940 # 9.0 ADLAM CAPITAL
LETTER GBE
+1E91F ; mapped ; 1E941 # 9.0 ADLAM CAPITAL
LETTER ZAL
+1E920 ; mapped ; 1E942 # 9.0 ADLAM CAPITAL
LETTER KPO
+1E921 ; mapped ; 1E943 # 9.0 ADLAM CAPITAL
LETTER SHA
+1E922..1E94A ; valid # 9.0 ADLAM SMALL
LETTER ALIF..ADLAM NUKTA
+1E94B ; valid # 12.0 ADLAM
NASALIZATION MARK
+1E94C..1E94F ; disallowed # NA
<reserved-1E94C>..<reserved-1E94F>
+1E950..1E959 ; valid # 9.0 ADLAM DIGIT
ZERO..ADLAM DIGIT NINE
+1E95A..1E95D ; disallowed # NA
<reserved-1E95A>..<reserved-1E95D>
+1E95E..1E95F ; valid ; ; NV8 # 9.0 ADLAM INITIAL
EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
+1E960..1EC70 ; disallowed # NA
<reserved-1E960>..<reserved-1EC70>
+1EC71..1ECB4 ; valid ; ; NV8 # 11.0 INDIC SIYAQ
NUMBER ONE..INDIC SIYAQ ALTERNATE LAKH MARK
+1ECB5..1ED00 ; disallowed # NA
<reserved-1ECB5>..<reserved-1ED00>
+1ED01..1ED3D ; valid ; ; NV8 # 12.0 OTTOMAN SIYAQ
NUMBER ONE..OTTOMAN SIYAQ FRACTION ONE SIXTH
+1ED3E..1EDFF ; disallowed # NA
<reserved-1ED3E>..<reserved-1EDFF>
+1EE00 ; mapped ; 0627 # 6.1 ARABIC
MATHEMATICAL ALEF
+1EE01 ; mapped ; 0628 # 6.1 ARABIC
MATHEMATICAL BEH
+1EE02 ; mapped ; 062C # 6.1 ARABIC
MATHEMATICAL JEEM
+1EE03 ; mapped ; 062F # 6.1 ARABIC
MATHEMATICAL DAL
+1EE04 ; disallowed # NA <reserved-1EE04>
+1EE05 ; mapped ; 0648 # 6.1 ARABIC
MATHEMATICAL WAW
+1EE06 ; mapped ; 0632 # 6.1 ARABIC
MATHEMATICAL ZAIN
+1EE07 ; mapped ; 062D # 6.1 ARABIC
MATHEMATICAL HAH
+1EE08 ; mapped ; 0637 # 6.1 ARABIC
MATHEMATICAL TAH
+1EE09 ; mapped ; 064A # 6.1 ARABIC
MATHEMATICAL YEH
+1EE0A ; mapped ; 0643 # 6.1 ARABIC
MATHEMATICAL KAF
+1EE0B ; mapped ; 0644 # 6.1 ARABIC
MATHEMATICAL LAM
+1EE0C ; mapped ; 0645 # 6.1 ARABIC
MATHEMATICAL MEEM
+1EE0D ; mapped ; 0646 # 6.1 ARABIC
MATHEMATICAL NOON
+1EE0E ; mapped ; 0633 # 6.1 ARABIC
MATHEMATICAL SEEN
+1EE0F ; mapped ; 0639 # 6.1 ARABIC
MATHEMATICAL AIN
+1EE10 ; mapped ; 0641 # 6.1 ARABIC
MATHEMATICAL FEH
+1EE11 ; mapped ; 0635 # 6.1 ARABIC
MATHEMATICAL SAD
+1EE12 ; mapped ; 0642 # 6.1 ARABIC
MATHEMATICAL QAF
+1EE13 ; mapped ; 0631 # 6.1 ARABIC
MATHEMATICAL REH
+1EE14 ; mapped ; 0634 # 6.1 ARABIC
MATHEMATICAL SHEEN
+1EE15 ; mapped ; 062A # 6.1 ARABIC
MATHEMATICAL TEH
+1EE16 ; mapped ; 062B # 6.1 ARABIC
MATHEMATICAL THEH
+1EE17 ; mapped ; 062E # 6.1 ARABIC
MATHEMATICAL KHAH
+1EE18 ; mapped ; 0630 # 6.1 ARABIC
MATHEMATICAL THAL
+1EE19 ; mapped ; 0636 # 6.1 ARABIC
MATHEMATICAL DAD
+1EE1A ; mapped ; 0638 # 6.1 ARABIC
MATHEMATICAL ZAH
+1EE1B ; mapped ; 063A # 6.1 ARABIC
MATHEMATICAL GHAIN
+1EE1C ; mapped ; 066E # 6.1 ARABIC
MATHEMATICAL DOTLESS BEH
+1EE1D ; mapped ; 06BA # 6.1 ARABIC
MATHEMATICAL DOTLESS NOON
+1EE1E ; mapped ; 06A1 # 6.1 ARABIC
MATHEMATICAL DOTLESS FEH
+1EE1F ; mapped ; 066F # 6.1 ARABIC
MATHEMATICAL DOTLESS QAF
+1EE20 ; disallowed # NA <reserved-1EE20>
+1EE21 ; mapped ; 0628 # 6.1 ARABIC
MATHEMATICAL INITIAL BEH
+1EE22 ; mapped ; 062C # 6.1 ARABIC
MATHEMATICAL INITIAL JEEM
+1EE23 ; disallowed # NA <reserved-1EE23>
+1EE24 ; mapped ; 0647 # 6.1 ARABIC
MATHEMATICAL INITIAL HEH
+1EE25..1EE26 ; disallowed # NA
<reserved-1EE25>..<reserved-1EE26>
+1EE27 ; mapped ; 062D # 6.1 ARABIC
MATHEMATICAL INITIAL HAH
+1EE28 ; disallowed # NA <reserved-1EE28>
+1EE29 ; mapped ; 064A # 6.1 ARABIC
MATHEMATICAL INITIAL YEH
+1EE2A ; mapped ; 0643 # 6.1 ARABIC
MATHEMATICAL INITIAL KAF
+1EE2B ; mapped ; 0644 # 6.1 ARABIC
MATHEMATICAL INITIAL LAM
+1EE2C ; mapped ; 0645 # 6.1 ARABIC
MATHEMATICAL INITIAL MEEM
+1EE2D ; mapped ; 0646 # 6.1 ARABIC
MATHEMATICAL INITIAL NOON
+1EE2E ; mapped ; 0633 # 6.1 ARABIC
MATHEMATICAL INITIAL SEEN
+1EE2F ; mapped ; 0639 # 6.1 ARABIC
MATHEMATICAL INITIAL AIN
+1EE30 ; mapped ; 0641 # 6.1 ARABIC
MATHEMATICAL INITIAL FEH
+1EE31 ; mapped ; 0635 # 6.1 ARABIC
MATHEMATICAL INITIAL SAD
+1EE32 ; mapped ; 0642 # 6.1 ARABIC
MATHEMATICAL INITIAL QAF
+1EE33 ; disallowed # NA <reserved-1EE33>
+1EE34 ; mapped ; 0634 # 6.1 ARABIC
MATHEMATICAL INITIAL SHEEN
+1EE35 ; mapped ; 062A # 6.1 ARABIC
MATHEMATICAL INITIAL TEH
+1EE36 ; mapped ; 062B # 6.1 ARABIC
MATHEMATICAL INITIAL THEH
+1EE37 ; mapped ; 062E # 6.1 ARABIC
MATHEMATICAL INITIAL KHAH
+1EE38 ; disallowed # NA <reserved-1EE38>
+1EE39 ; mapped ; 0636 # 6.1 ARABIC
MATHEMATICAL INITIAL DAD
+1EE3A ; disallowed # NA <reserved-1EE3A>
+1EE3B ; mapped ; 063A # 6.1 ARABIC
MATHEMATICAL INITIAL GHAIN
+1EE3C..1EE41 ; disallowed # NA
<reserved-1EE3C>..<reserved-1EE41>
+1EE42 ; mapped ; 062C # 6.1 ARABIC
MATHEMATICAL TAILED JEEM
+1EE43..1EE46 ; disallowed # NA
<reserved-1EE43>..<reserved-1EE46>
+1EE47 ; mapped ; 062D # 6.1 ARABIC
MATHEMATICAL TAILED HAH
+1EE48 ; disallowed # NA <reserved-1EE48>
+1EE49 ; mapped ; 064A # 6.1 ARABIC
MATHEMATICAL TAILED YEH
+1EE4A ; disallowed # NA <reserved-1EE4A>
+1EE4B ; mapped ; 0644 # 6.1 ARABIC
MATHEMATICAL TAILED LAM
+1EE4C ; disallowed # NA <reserved-1EE4C>
+1EE4D ; mapped ; 0646 # 6.1 ARABIC
MATHEMATICAL TAILED NOON
+1EE4E ; mapped ; 0633 # 6.1 ARABIC
MATHEMATICAL TAILED SEEN
+1EE4F ; mapped ; 0639 # 6.1 ARABIC
MATHEMATICAL TAILED AIN
+1EE50 ; disallowed # NA <reserved-1EE50>
+1EE51 ; mapped ; 0635 # 6.1 ARABIC
MATHEMATICAL TAILED SAD
+1EE52 ; mapped ; 0642 # 6.1 ARABIC
MATHEMATICAL TAILED QAF
+1EE53 ; disallowed # NA <reserved-1EE53>
+1EE54 ; mapped ; 0634 # 6.1 ARABIC
MATHEMATICAL TAILED SHEEN
+1EE55..1EE56 ; disallowed # NA
<reserved-1EE55>..<reserved-1EE56>
+1EE57 ; mapped ; 062E # 6.1 ARABIC
MATHEMATICAL TAILED KHAH
+1EE58 ; disallowed # NA <reserved-1EE58>
+1EE59 ; mapped ; 0636 # 6.1 ARABIC
MATHEMATICAL TAILED DAD
+1EE5A ; disallowed # NA <reserved-1EE5A>
+1EE5B ; mapped ; 063A # 6.1 ARABIC
MATHEMATICAL TAILED GHAIN
+1EE5C ; disallowed # NA <reserved-1EE5C>
+1EE5D ; mapped ; 06BA # 6.1 ARABIC
MATHEMATICAL TAILED DOTLESS NOON
+1EE5E ; disallowed # NA <reserved-1EE5E>
+1EE5F ; mapped ; 066F # 6.1 ARABIC
MATHEMATICAL TAILED DOTLESS QAF
+1EE60 ; disallowed # NA <reserved-1EE60>
+1EE61 ; mapped ; 0628 # 6.1 ARABIC
MATHEMATICAL STRETCHED BEH
+1EE62 ; mapped ; 062C # 6.1 ARABIC
MATHEMATICAL STRETCHED JEEM
+1EE63 ; disallowed # NA <reserved-1EE63>
+1EE64 ; mapped ; 0647 # 6.1 ARABIC
MATHEMATICAL STRETCHED HEH
+1EE65..1EE66 ; disallowed # NA
<reserved-1EE65>..<reserved-1EE66>
+1EE67 ; mapped ; 062D # 6.1 ARABIC
MATHEMATICAL STRETCHED HAH
+1EE68 ; mapped ; 0637 # 6.1 ARABIC
MATHEMATICAL STRETCHED TAH
+1EE69 ; mapped ; 064A # 6.1 ARABIC
MATHEMATICAL STRETCHED YEH
+1EE6A ; mapped ; 0643 # 6.1 ARABIC
MATHEMATICAL STRETCHED KAF
+1EE6B ; disallowed # NA <reserved-1EE6B>
+1EE6C ; mapped ; 0645 # 6.1 ARABIC
MATHEMATICAL STRETCHED MEEM
+1EE6D ; mapped ; 0646 # 6.1 ARABIC
MATHEMATICAL STRETCHED NOON
+1EE6E ; mapped ; 0633 # 6.1 ARABIC
MATHEMATICAL STRETCHED SEEN
+1EE6F ; mapped ; 0639 # 6.1 ARABIC
MATHEMATICAL STRETCHED AIN
+1EE70 ; mapped ; 0641 # 6.1 ARABIC
MATHEMATICAL STRETCHED FEH
+1EE71 ; mapped ; 0635 # 6.1 ARABIC
MATHEMATICAL STRETCHED SAD
+1EE72 ; mapped ; 0642 # 6.1 ARABIC
MATHEMATICAL STRETCHED QAF
+1EE73 ; disallowed # NA <reserved-1EE73>
+1EE74 ; mapped ; 0634 # 6.1 ARABIC
MATHEMATICAL STRETCHED SHEEN
+1EE75 ; mapped ; 062A # 6.1 ARABIC
MATHEMATICAL STRETCHED TEH
+1EE76 ; mapped ; 062B # 6.1 ARABIC
MATHEMATICAL STRETCHED THEH
+1EE77 ; mapped ; 062E # 6.1 ARABIC
MATHEMATICAL STRETCHED KHAH
+1EE78 ; disallowed # NA <reserved-1EE78>
+1EE79 ; mapped ; 0636 # 6.1 ARABIC
MATHEMATICAL STRETCHED DAD
+1EE7A ; mapped ; 0638 # 6.1 ARABIC
MATHEMATICAL STRETCHED ZAH
+1EE7B ; mapped ; 063A # 6.1 ARABIC
MATHEMATICAL STRETCHED GHAIN
+1EE7C ; mapped ; 066E # 6.1 ARABIC
MATHEMATICAL STRETCHED DOTLESS BEH
+1EE7D ; disallowed # NA <reserved-1EE7D>
+1EE7E ; mapped ; 06A1 # 6.1 ARABIC
MATHEMATICAL STRETCHED DOTLESS FEH
+1EE7F ; disallowed # NA <reserved-1EE7F>
+1EE80 ; mapped ; 0627 # 6.1 ARABIC
MATHEMATICAL LOOPED ALEF
+1EE81 ; mapped ; 0628 # 6.1 ARABIC
MATHEMATICAL LOOPED BEH
+1EE82 ; mapped ; 062C # 6.1 ARABIC
MATHEMATICAL LOOPED JEEM
+1EE83 ; mapped ; 062F # 6.1 ARABIC
MATHEMATICAL LOOPED DAL
+1EE84 ; mapped ; 0647 # 6.1 ARABIC
MATHEMATICAL LOOPED HEH
+1EE85 ; mapped ; 0648 # 6.1 ARABIC
MATHEMATICAL LOOPED WAW
+1EE86 ; mapped ; 0632 # 6.1 ARABIC
MATHEMATICAL LOOPED ZAIN
+1EE87 ; mapped ; 062D # 6.1 ARABIC
MATHEMATICAL LOOPED HAH
+1EE88 ; mapped ; 0637 # 6.1 ARABIC
MATHEMATICAL LOOPED TAH
+1EE89 ; mapped ; 064A # 6.1 ARABIC
MATHEMATICAL LOOPED YEH
+1EE8A ; disallowed # NA <reserved-1EE8A>
+1EE8B ; mapped ; 0644 # 6.1 ARABIC
MATHEMATICAL LOOPED LAM
+1EE8C ; mapped ; 0645 # 6.1 ARABIC
MATHEMATICAL LOOPED MEEM
+1EE8D ; mapped ; 0646 # 6.1 ARABIC
MATHEMATICAL LOOPED NOON
+1EE8E ; mapped ; 0633 # 6.1 ARABIC
MATHEMATICAL LOOPED SEEN
+1EE8F ; mapped ; 0639 # 6.1 ARABIC
MATHEMATICAL LOOPED AIN
+1EE90 ; mapped ; 0641 # 6.1 ARABIC
MATHEMATICAL LOOPED FEH
+1EE91 ; mapped ; 0635 # 6.1 ARABIC
MATHEMATICAL LOOPED SAD
+1EE92 ; mapped ; 0642 # 6.1 ARABIC
MATHEMATICAL LOOPED QAF
+1EE93 ; mapped ; 0631 # 6.1 ARABIC
MATHEMATICAL LOOPED REH
+1EE94 ; mapped ; 0634 # 6.1 ARABIC
MATHEMATICAL LOOPED SHEEN
+1EE95 ; mapped ; 062A # 6.1 ARABIC
MATHEMATICAL LOOPED TEH
+1EE96 ; mapped ; 062B # 6.1 ARABIC
MATHEMATICAL LOOPED THEH
+1EE97 ; mapped ; 062E # 6.1 ARABIC
MATHEMATICAL LOOPED KHAH
+1EE98 ; mapped ; 0630 # 6.1 ARABIC
MATHEMATICAL LOOPED THAL
+1EE99 ; mapped ; 0636 # 6.1 ARABIC
MATHEMATICAL LOOPED DAD
+1EE9A ; mapped ; 0638 # 6.1 ARABIC
MATHEMATICAL LOOPED ZAH
+1EE9B ; mapped ; 063A # 6.1 ARABIC
MATHEMATICAL LOOPED GHAIN
+1EE9C..1EEA0 ; disallowed # NA
<reserved-1EE9C>..<reserved-1EEA0>
+1EEA1 ; mapped ; 0628 # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK BEH
+1EEA2 ; mapped ; 062C # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK JEEM
+1EEA3 ; mapped ; 062F # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK DAL
+1EEA4 ; disallowed # NA <reserved-1EEA4>
+1EEA5 ; mapped ; 0648 # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK WAW
+1EEA6 ; mapped ; 0632 # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK ZAIN
+1EEA7 ; mapped ; 062D # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK HAH
+1EEA8 ; mapped ; 0637 # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK TAH
+1EEA9 ; mapped ; 064A # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK YEH
+1EEAA ; disallowed # NA <reserved-1EEAA>
+1EEAB ; mapped ; 0644 # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK LAM
+1EEAC ; mapped ; 0645 # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK MEEM
+1EEAD ; mapped ; 0646 # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK NOON
+1EEAE ; mapped ; 0633 # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK SEEN
+1EEAF ; mapped ; 0639 # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK AIN
+1EEB0 ; mapped ; 0641 # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK FEH
+1EEB1 ; mapped ; 0635 # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK SAD
+1EEB2 ; mapped ; 0642 # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK QAF
+1EEB3 ; mapped ; 0631 # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK REH
+1EEB4 ; mapped ; 0634 # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK SHEEN
+1EEB5 ; mapped ; 062A # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK TEH
+1EEB6 ; mapped ; 062B # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK THEH
+1EEB7 ; mapped ; 062E # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK KHAH
+1EEB8 ; mapped ; 0630 # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK THAL
+1EEB9 ; mapped ; 0636 # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK DAD
+1EEBA ; mapped ; 0638 # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK ZAH
+1EEBB ; mapped ; 063A # 6.1 ARABIC
MATHEMATICAL DOUBLE-STRUCK GHAIN
+1EEBC..1EEEF ; disallowed # NA
<reserved-1EEBC>..<reserved-1EEEF>
+1EEF0..1EEF1 ; valid ; ; NV8 # 6.1 ARABIC
MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR
HAH WITH DAL
+1EEF2..1EFFF ; disallowed # NA
<reserved-1EEF2>..<reserved-1EFFF>
+1F000..1F02B ; valid ; ; NV8 # 5.1 MAHJONG TILE
EAST WIND..MAHJONG TILE BACK
+1F02C..1F02F ; disallowed # NA
<reserved-1F02C>..<reserved-1F02F>
+1F030..1F093 ; valid ; ; NV8 # 5.1 DOMINO TILE
HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
+1F094..1F09F ; disallowed # NA
<reserved-1F094>..<reserved-1F09F>
+1F0A0..1F0AE ; valid ; ; NV8 # 6.0 PLAYING CARD
BACK..PLAYING CARD KING OF SPADES
+1F0AF..1F0B0 ; disallowed # NA
<reserved-1F0AF>..<reserved-1F0B0>
+1F0B1..1F0BE ; valid ; ; NV8 # 6.0 PLAYING CARD ACE
OF HEARTS..PLAYING CARD KING OF HEARTS
+1F0BF ; valid ; ; NV8 # 7.0 PLAYING CARD RED
JOKER
+1F0C0 ; disallowed # NA <reserved-1F0C0>
+1F0C1..1F0CF ; valid ; ; NV8 # 6.0 PLAYING CARD ACE
OF DIAMONDS..PLAYING CARD BLACK JOKER
+1F0D0 ; disallowed # NA <reserved-1F0D0>
+1F0D1..1F0DF ; valid ; ; NV8 # 6.0 PLAYING CARD ACE
OF CLUBS..PLAYING CARD WHITE JOKER
+1F0E0..1F0F5 ; valid ; ; NV8 # 7.0 PLAYING CARD
FOOL..PLAYING CARD TRUMP-21
+1F0F6..1F0FF ; disallowed # NA
<reserved-1F0F6>..<reserved-1F0FF>
+1F100 ; disallowed # 5.2 DIGIT ZERO FULL
STOP
+1F101 ; disallowed_STD3_mapped ; 0030 002C # 5.2 DIGIT ZERO COMMA
+1F102 ; disallowed_STD3_mapped ; 0031 002C # 5.2 DIGIT ONE COMMA
+1F103 ; disallowed_STD3_mapped ; 0032 002C # 5.2 DIGIT TWO COMMA
+1F104 ; disallowed_STD3_mapped ; 0033 002C # 5.2 DIGIT THREE COMMA
+1F105 ; disallowed_STD3_mapped ; 0034 002C # 5.2 DIGIT FOUR COMMA
+1F106 ; disallowed_STD3_mapped ; 0035 002C # 5.2 DIGIT FIVE COMMA
+1F107 ; disallowed_STD3_mapped ; 0036 002C # 5.2 DIGIT SIX COMMA
+1F108 ; disallowed_STD3_mapped ; 0037 002C # 5.2 DIGIT SEVEN COMMA
+1F109 ; disallowed_STD3_mapped ; 0038 002C # 5.2 DIGIT EIGHT COMMA
+1F10A ; disallowed_STD3_mapped ; 0039 002C # 5.2 DIGIT NINE COMMA
+1F10B..1F10C ; valid ; ; NV8 # 7.0 DINGBAT CIRCLED
SANS-SERIF DIGIT ZERO..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
+1F10D..1F10F ; valid ; ; NV8 # 13.0 CIRCLED ZERO
WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH
+1F110 ; disallowed_STD3_mapped ; 0028 0061 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER A
+1F111 ; disallowed_STD3_mapped ; 0028 0062 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER B
+1F112 ; disallowed_STD3_mapped ; 0028 0063 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER C
+1F113 ; disallowed_STD3_mapped ; 0028 0064 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER D
+1F114 ; disallowed_STD3_mapped ; 0028 0065 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER E
+1F115 ; disallowed_STD3_mapped ; 0028 0066 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER F
+1F116 ; disallowed_STD3_mapped ; 0028 0067 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER G
+1F117 ; disallowed_STD3_mapped ; 0028 0068 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER H
+1F118 ; disallowed_STD3_mapped ; 0028 0069 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER I
+1F119 ; disallowed_STD3_mapped ; 0028 006A 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER J
+1F11A ; disallowed_STD3_mapped ; 0028 006B 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER K
+1F11B ; disallowed_STD3_mapped ; 0028 006C 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER L
+1F11C ; disallowed_STD3_mapped ; 0028 006D 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER M
+1F11D ; disallowed_STD3_mapped ; 0028 006E 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER N
+1F11E ; disallowed_STD3_mapped ; 0028 006F 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER O
+1F11F ; disallowed_STD3_mapped ; 0028 0070 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER P
+1F120 ; disallowed_STD3_mapped ; 0028 0071 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER Q
+1F121 ; disallowed_STD3_mapped ; 0028 0072 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER R
+1F122 ; disallowed_STD3_mapped ; 0028 0073 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER S
+1F123 ; disallowed_STD3_mapped ; 0028 0074 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER T
+1F124 ; disallowed_STD3_mapped ; 0028 0075 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER U
+1F125 ; disallowed_STD3_mapped ; 0028 0076 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER V
+1F126 ; disallowed_STD3_mapped ; 0028 0077 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER W
+1F127 ; disallowed_STD3_mapped ; 0028 0078 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER X
+1F128 ; disallowed_STD3_mapped ; 0028 0079 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER Y
+1F129 ; disallowed_STD3_mapped ; 0028 007A 0029 #5.2 PARENTHESIZED
LATIN CAPITAL LETTER Z
+1F12A ; mapped ; 3014 0073 3015 #5.2 TORTOISE SHELL
BRACKETED LATIN CAPITAL LETTER S
+1F12B ; mapped ; 0063 # 5.2 CIRCLED ITALIC
LATIN CAPITAL LETTER C
+1F12C ; mapped ; 0072 # 5.2 CIRCLED ITALIC
LATIN CAPITAL LETTER R
+1F12D ; mapped ; 0063 0064 # 5.2 CIRCLED CD
+1F12E ; mapped ; 0077 007A # 5.2 CIRCLED WZ
+1F12F ; valid ; ; NV8 # 11.0 COPYLEFT SYMBOL
+1F130 ; mapped ; 0061 # 6.0 SQUARED LATIN
CAPITAL LETTER A
+1F131 ; mapped ; 0062 # 5.2 SQUARED LATIN
CAPITAL LETTER B
+1F132 ; mapped ; 0063 # 6.0 SQUARED LATIN
CAPITAL LETTER C
+1F133 ; mapped ; 0064 # 6.0 SQUARED LATIN
CAPITAL LETTER D
+1F134 ; mapped ; 0065 # 6.0 SQUARED LATIN
CAPITAL LETTER E
+1F135 ; mapped ; 0066 # 6.0 SQUARED LATIN
CAPITAL LETTER F
+1F136 ; mapped ; 0067 # 6.0 SQUARED LATIN
CAPITAL LETTER G
+1F137 ; mapped ; 0068 # 6.0 SQUARED LATIN
CAPITAL LETTER H
+1F138 ; mapped ; 0069 # 6.0 SQUARED LATIN
CAPITAL LETTER I
+1F139 ; mapped ; 006A # 6.0 SQUARED LATIN
CAPITAL LETTER J
+1F13A ; mapped ; 006B # 6.0 SQUARED LATIN
CAPITAL LETTER K
+1F13B ; mapped ; 006C # 6.0 SQUARED LATIN
CAPITAL LETTER L
+1F13C ; mapped ; 006D # 6.0 SQUARED LATIN
CAPITAL LETTER M
+1F13D ; mapped ; 006E # 5.2 SQUARED LATIN
CAPITAL LETTER N
+1F13E ; mapped ; 006F # 6.0 SQUARED LATIN
CAPITAL LETTER O
+1F13F ; mapped ; 0070 # 5.2 SQUARED LATIN
CAPITAL LETTER P
+1F140 ; mapped ; 0071 # 6.0 SQUARED LATIN
CAPITAL LETTER Q
+1F141 ; mapped ; 0072 # 6.0 SQUARED LATIN
CAPITAL LETTER R
+1F142 ; mapped ; 0073 # 5.2 SQUARED LATIN
CAPITAL LETTER S
+1F143 ; mapped ; 0074 # 6.0 SQUARED LATIN
CAPITAL LETTER T
+1F144 ; mapped ; 0075 # 6.0 SQUARED LATIN
CAPITAL LETTER U
+1F145 ; mapped ; 0076 # 6.0 SQUARED LATIN
CAPITAL LETTER V
+1F146 ; mapped ; 0077 # 5.2 SQUARED LATIN
CAPITAL LETTER W
+1F147 ; mapped ; 0078 # 6.0 SQUARED LATIN
CAPITAL LETTER X
+1F148 ; mapped ; 0079 # 6.0 SQUARED LATIN
CAPITAL LETTER Y
+1F149 ; mapped ; 007A # 6.0 SQUARED LATIN
CAPITAL LETTER Z
+1F14A ; mapped ; 0068 0076 # 5.2 SQUARED HV
+1F14B ; mapped ; 006D 0076 # 5.2 SQUARED MV
+1F14C ; mapped ; 0073 0064 # 5.2 SQUARED SD
+1F14D ; mapped ; 0073 0073 # 5.2 SQUARED SS
+1F14E ; mapped ; 0070 0070 0076 #5.2 SQUARED PPV
+1F14F ; mapped ; 0077 0063 # 6.0 SQUARED WC
+1F150..1F156 ; valid ; ; NV8 # 6.0 NEGATIVE CIRCLED
LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER G
+1F157 ; valid ; ; NV8 # 5.2 NEGATIVE CIRCLED
LATIN CAPITAL LETTER H
+1F158..1F15E ; valid ; ; NV8 # 6.0 NEGATIVE CIRCLED
LATIN CAPITAL LETTER I..NEGATIVE CIRCLED LATIN CAPITAL LETTER O
+1F15F ; valid ; ; NV8 # 5.2 NEGATIVE CIRCLED
LATIN CAPITAL LETTER P
+1F160..1F169 ; valid ; ; NV8 # 6.0 NEGATIVE CIRCLED
LATIN CAPITAL LETTER Q..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F16A ; mapped ; 006D 0063 # 6.1 RAISED MC SIGN
+1F16B ; mapped ; 006D 0064 # 6.1 RAISED MD SIGN
+1F16C ; mapped ; 006D 0072 # 12.0 RAISED MR SIGN
+1F16D..1F16F ; valid ; ; NV8 # 13.0 CIRCLED
CC..CIRCLED HUMAN FIGURE
+1F170..1F178 ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED
LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER I
+1F179 ; valid ; ; NV8 # 5.2 NEGATIVE SQUARED
LATIN CAPITAL LETTER J
+1F17A ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED
LATIN CAPITAL LETTER K
+1F17B..1F17C ; valid ; ; NV8 # 5.2 NEGATIVE SQUARED
LATIN CAPITAL LETTER L..NEGATIVE SQUARED LATIN CAPITAL LETTER M
+1F17D..1F17E ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED
LATIN CAPITAL LETTER N..NEGATIVE SQUARED LATIN CAPITAL LETTER O
+1F17F ; valid ; ; NV8 # 5.2 NEGATIVE SQUARED
LATIN CAPITAL LETTER P
+1F180..1F189 ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED
LATIN CAPITAL LETTER Q..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
+1F18A..1F18D ; valid ; ; NV8 # 5.2 CROSSED NEGATIVE
SQUARED LATIN CAPITAL LETTER P..NEGATIVE SQUARED SA
+1F18E..1F18F ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED
AB..NEGATIVE SQUARED WC
+1F190 ; mapped ; 0064 006A # 5.2 SQUARE DJ
+1F191..1F19A ; valid ; ; NV8 # 6.0 SQUARED
CL..SQUARED VS
+1F19B..1F1AC ; valid ; ; NV8 # 9.0 SQUARED THREE
D..SQUARED VOD
+1F1AD ; valid ; ; NV8 # 13.0 MASK WORK SYMBOL
+1F1AE..1F1E5 ; disallowed # NA
<reserved-1F1AE>..<reserved-1F1E5>
+1F1E6..1F1FF ; valid ; ; NV8 # 6.0 REGIONAL
INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
+1F200 ; mapped ; 307B 304B # 5.2 SQUARE HIRAGANA
HOKA
+1F201 ; mapped ; 30B3 30B3 # 6.0 SQUARED KATAKANA
KOKO
+1F202 ; mapped ; 30B5 # 6.0 SQUARED KATAKANA
SA
+1F203..1F20F ; disallowed # NA
<reserved-1F203>..<reserved-1F20F>
+1F210 ; mapped ; 624B # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-624B
+1F211 ; mapped ; 5B57 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-5B57
+1F212 ; mapped ; 53CC # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-53CC
+1F213 ; mapped ; 30C7 # 5.2 SQUARED KATAKANA
DE
+1F214 ; mapped ; 4E8C # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-4E8C
+1F215 ; mapped ; 591A # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-591A
+1F216 ; mapped ; 89E3 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-89E3
+1F217 ; mapped ; 5929 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-5929
+1F218 ; mapped ; 4EA4 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-4EA4
+1F219 ; mapped ; 6620 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-6620
+1F21A ; mapped ; 7121 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-7121
+1F21B ; mapped ; 6599 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-6599
+1F21C ; mapped ; 524D # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-524D
+1F21D ; mapped ; 5F8C # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-5F8C
+1F21E ; mapped ; 518D # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-518D
+1F21F ; mapped ; 65B0 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-65B0
+1F220 ; mapped ; 521D # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-521D
+1F221 ; mapped ; 7D42 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-7D42
+1F222 ; mapped ; 751F # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-751F
+1F223 ; mapped ; 8CA9 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-8CA9
+1F224 ; mapped ; 58F0 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-58F0
+1F225 ; mapped ; 5439 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-5439
+1F226 ; mapped ; 6F14 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-6F14
+1F227 ; mapped ; 6295 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-6295
+1F228 ; mapped ; 6355 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-6355
+1F229 ; mapped ; 4E00 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-4E00
+1F22A ; mapped ; 4E09 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-4E09
+1F22B ; mapped ; 904A # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-904A
+1F22C ; mapped ; 5DE6 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-5DE6
+1F22D ; mapped ; 4E2D # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-4E2D
+1F22E ; mapped ; 53F3 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-53F3
+1F22F ; mapped ; 6307 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-6307
+1F230 ; mapped ; 8D70 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-8D70
+1F231 ; mapped ; 6253 # 5.2 SQUARED CJK
UNIFIED IDEOGRAPH-6253
+1F232 ; mapped ; 7981 # 6.0 SQUARED CJK
UNIFIED IDEOGRAPH-7981
+1F233 ; mapped ; 7A7A # 6.0 SQUARED CJK
UNIFIED IDEOGRAPH-7A7A
+1F234 ; mapped ; 5408 # 6.0 SQUARED CJK
UNIFIED IDEOGRAPH-5408
+1F235 ; mapped ; 6E80 # 6.0 SQUARED CJK
UNIFIED IDEOGRAPH-6E80
+1F236 ; mapped ; 6709 # 6.0 SQUARED CJK
UNIFIED IDEOGRAPH-6709
+1F237 ; mapped ; 6708 # 6.0 SQUARED CJK
UNIFIED IDEOGRAPH-6708
+1F238 ; mapped ; 7533 # 6.0 SQUARED CJK
UNIFIED IDEOGRAPH-7533
+1F239 ; mapped ; 5272 # 6.0 SQUARED CJK
UNIFIED IDEOGRAPH-5272
+1F23A ; mapped ; 55B6 # 6.0 SQUARED CJK
UNIFIED IDEOGRAPH-55B6
+1F23B ; mapped ; 914D # 9.0 SQUARED CJK
UNIFIED IDEOGRAPH-914D
+1F23C..1F23F ; disallowed # NA
<reserved-1F23C>..<reserved-1F23F>
+1F240 ; mapped ; 3014 672C 3015 #5.2 TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-672C
+1F241 ; mapped ; 3014 4E09 3015 #5.2 TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-4E09
+1F242 ; mapped ; 3014 4E8C 3015 #5.2 TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
+1F243 ; mapped ; 3014 5B89 3015 #5.2 TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-5B89
+1F244 ; mapped ; 3014 70B9 3015 #5.2 TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-70B9
+1F245 ; mapped ; 3014 6253 3015 #5.2 TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-6253
+1F246 ; mapped ; 3014 76D7 3015 #5.2 TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-76D7
+1F247 ; mapped ; 3014 52DD 3015 #5.2 TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-52DD
+1F248 ; mapped ; 3014 6557 3015 #5.2 TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F249..1F24F ; disallowed # NA
<reserved-1F249>..<reserved-1F24F>
+1F250 ; mapped ; 5F97 # 6.0 CIRCLED
IDEOGRAPH ADVANTAGE
+1F251 ; mapped ; 53EF # 6.0 CIRCLED
IDEOGRAPH ACCEPT
+1F252..1F25F ; disallowed # NA
<reserved-1F252>..<reserved-1F25F>
+1F260..1F265 ; valid ; ; NV8 # 10.0 ROUNDED SYMBOL
FOR FU..ROUNDED SYMBOL FOR CAI
+1F266..1F2FF ; disallowed # NA
<reserved-1F266>..<reserved-1F2FF>
+1F300..1F320 ; valid ; ; NV8 # 6.0
CYCLONE..SHOOTING STAR
+1F321..1F32C ; valid ; ; NV8 # 7.0
THERMOMETER..WIND BLOWING FACE
+1F32D..1F32F ; valid ; ; NV8 # 8.0 HOT DOG..BURRITO
+1F330..1F335 ; valid ; ; NV8 # 6.0 CHESTNUT..CACTUS
+1F336 ; valid ; ; NV8 # 7.0 HOT PEPPER
+1F337..1F37C ; valid ; ; NV8 # 6.0 TULIP..BABY
BOTTLE
+1F37D ; valid ; ; NV8 # 7.0 FORK AND KNIFE
WITH PLATE
+1F37E..1F37F ; valid ; ; NV8 # 8.0 BOTTLE WITH
POPPING CORK..POPCORN
+1F380..1F393 ; valid ; ; NV8 # 6.0
RIBBON..GRADUATION CAP
+1F394..1F39F ; valid ; ; NV8 # 7.0 HEART WITH TIP
ON THE LEFT..ADMISSION TICKETS
+1F3A0..1F3C4 ; valid ; ; NV8 # 6.0 CAROUSEL
HORSE..SURFER
+1F3C5 ; valid ; ; NV8 # 7.0 SPORTS MEDAL
+1F3C6..1F3CA ; valid ; ; NV8 # 6.0 TROPHY..SWIMMER
+1F3CB..1F3CE ; valid ; ; NV8 # 7.0 WEIGHT
LIFTER..RACING CAR
+1F3CF..1F3D3 ; valid ; ; NV8 # 8.0 CRICKET BAT AND
BALL..TABLE TENNIS PADDLE AND BALL
+1F3D4..1F3DF ; valid ; ; NV8 # 7.0 SNOW CAPPED
MOUNTAIN..STADIUM
+1F3E0..1F3F0 ; valid ; ; NV8 # 6.0 HOUSE
BUILDING..EUROPEAN CASTLE
+1F3F1..1F3F7 ; valid ; ; NV8 # 7.0 WHITE
PENNANT..LABEL
+1F3F8..1F3FF ; valid ; ; NV8 # 8.0 BADMINTON
RACQUET AND SHUTTLECOCK..EMOJI MODIFIER FITZPATRICK TYPE-6
+1F400..1F43E ; valid ; ; NV8 # 6.0 RAT..PAW PRINTS
+1F43F ; valid ; ; NV8 # 7.0 CHIPMUNK
+1F440 ; valid ; ; NV8 # 6.0 EYES
+1F441 ; valid ; ; NV8 # 7.0 EYE
+1F442..1F4F7 ; valid ; ; NV8 # 6.0 EAR..CAMERA
+1F4F8 ; valid ; ; NV8 # 7.0 CAMERA WITH FLASH
+1F4F9..1F4FC ; valid ; ; NV8 # 6.0 VIDEO
CAMERA..VIDEOCASSETTE
+1F4FD..1F4FE ; valid ; ; NV8 # 7.0 FILM
PROJECTOR..PORTABLE STEREO
+1F4FF ; valid ; ; NV8 # 8.0 PRAYER BEADS
+1F500..1F53D ; valid ; ; NV8 # 6.0 TWISTED
RIGHTWARDS ARROWS..DOWN-POINTING SMALL RED TRIANGLE
+1F53E..1F53F ; valid ; ; NV8 # 7.0 LOWER RIGHT
SHADOWED WHITE CIRCLE..UPPER RIGHT SHADOWED WHITE CIRCLE
+1F540..1F543 ; valid ; ; NV8 # 6.1 CIRCLED CROSS
POMMEE..NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
+1F544..1F54A ; valid ; ; NV8 # 7.0 NOTCHED RIGHT
SEMICIRCLE WITH THREE DOTS..DOVE OF PEACE
+1F54B..1F54F ; valid ; ; NV8 # 8.0 KAABA..BOWL OF
HYGIEIA
+1F550..1F567 ; valid ; ; NV8 # 6.0 CLOCK FACE ONE
OCLOCK..CLOCK FACE TWELVE-THIRTY
+1F568..1F579 ; valid ; ; NV8 # 7.0 RIGHT
SPEAKER..JOYSTICK
+1F57A ; valid ; ; NV8 # 9.0 MAN DANCING
+1F57B..1F5A3 ; valid ; ; NV8 # 7.0 LEFT HAND
TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX
+1F5A4 ; valid ; ; NV8 # 9.0 BLACK HEART
+1F5A5..1F5FA ; valid ; ; NV8 # 7.0 DESKTOP
COMPUTER..WORLD MAP
+1F5FB..1F5FF ; valid ; ; NV8 # 6.0 MOUNT FUJI..MOYAI
+1F600 ; valid ; ; NV8 # 6.1 GRINNING FACE
+1F601..1F610 ; valid ; ; NV8 # 6.0 GRINNING FACE
WITH SMILING EYES..NEUTRAL FACE
+1F611 ; valid ; ; NV8 # 6.1 EXPRESSIONLESS
FACE
+1F612..1F614 ; valid ; ; NV8 # 6.0 UNAMUSED
FACE..PENSIVE FACE
+1F615 ; valid ; ; NV8 # 6.1 CONFUSED FACE
+1F616 ; valid ; ; NV8 # 6.0 CONFOUNDED FACE
+1F617 ; valid ; ; NV8 # 6.1 KISSING FACE
+1F618 ; valid ; ; NV8 # 6.0 FACE THROWING A
KISS
+1F619 ; valid ; ; NV8 # 6.1 KISSING FACE
WITH SMILING EYES
+1F61A ; valid ; ; NV8 # 6.0 KISSING FACE
WITH CLOSED EYES
+1F61B ; valid ; ; NV8 # 6.1 FACE WITH
STUCK-OUT TONGUE
+1F61C..1F61E ; valid ; ; NV8 # 6.0 FACE WITH
STUCK-OUT TONGUE AND WINKING EYE..DISAPPOINTED FACE
+1F61F ; valid ; ; NV8 # 6.1 WORRIED FACE
+1F620..1F625 ; valid ; ; NV8 # 6.0 ANGRY
FACE..DISAPPOINTED BUT RELIEVED FACE
+1F626..1F627 ; valid ; ; NV8 # 6.1 FROWNING FACE
WITH OPEN MOUTH..ANGUISHED FACE
+1F628..1F62B ; valid ; ; NV8 # 6.0 FEARFUL
FACE..TIRED FACE
+1F62C ; valid ; ; NV8 # 6.1 GRIMACING FACE
+1F62D ; valid ; ; NV8 # 6.0 LOUDLY CRYING
FACE
+1F62E..1F62F ; valid ; ; NV8 # 6.1 FACE WITH OPEN
MOUTH..HUSHED FACE
+1F630..1F633 ; valid ; ; NV8 # 6.0 FACE WITH OPEN
MOUTH AND COLD SWEAT..FLUSHED FACE
+1F634 ; valid ; ; NV8 # 6.1 SLEEPING FACE
+1F635..1F640 ; valid ; ; NV8 # 6.0 DIZZY
FACE..WEARY CAT FACE
+1F641..1F642 ; valid ; ; NV8 # 7.0 SLIGHTLY
FROWNING FACE..SLIGHTLY SMILING FACE
+1F643..1F644 ; valid ; ; NV8 # 8.0 UPSIDE-DOWN
FACE..FACE WITH ROLLING EYES
+1F645..1F64F ; valid ; ; NV8 # 6.0 FACE WITH NO
GOOD GESTURE..PERSON WITH FOLDED HANDS
+1F650..1F67F ; valid ; ; NV8 # 7.0 NORTH WEST
POINTING LEAF..REVERSE CHECKER BOARD
+1F680..1F6C5 ; valid ; ; NV8 # 6.0 ROCKET..LEFT
LUGGAGE
+1F6C6..1F6CF ; valid ; ; NV8 # 7.0 TRIANGLE WITH
ROUNDED CORNERS..BED
+1F6D0 ; valid ; ; NV8 # 8.0 PLACE OF WORSHIP
+1F6D1..1F6D2 ; valid ; ; NV8 # 9.0 OCTAGONAL
SIGN..SHOPPING TROLLEY
+1F6D3..1F6D4 ; valid ; ; NV8 # 10.0 STUPA..PAGODA
+1F6D5 ; valid ; ; NV8 # 12.0 HINDU TEMPLE
+1F6D6..1F6D7 ; valid ; ; NV8 # 13.0 HUT..ELEVATOR
+1F6D8..1F6DC ; disallowed # NA
<reserved-1F6D8>..<reserved-1F6DC>
+1F6DD..1F6DF ; valid ; ; NV8 # 14.0 PLAYGROUND
SLIDE..RING BUOY
+1F6E0..1F6EC ; valid ; ; NV8 # 7.0 HAMMER AND
WRENCH..AIRPLANE ARRIVING
+1F6ED..1F6EF ; disallowed # NA
<reserved-1F6ED>..<reserved-1F6EF>
+1F6F0..1F6F3 ; valid ; ; NV8 # 7.0
SATELLITE..PASSENGER SHIP
+1F6F4..1F6F6 ; valid ; ; NV8 # 9.0 SCOOTER..CANOE
+1F6F7..1F6F8 ; valid ; ; NV8 # 10.0 SLED..FLYING
SAUCER
+1F6F9 ; valid ; ; NV8 # 11.0 SKATEBOARD
+1F6FA ; valid ; ; NV8 # 12.0 AUTO RICKSHAW
+1F6FB..1F6FC ; valid ; ; NV8 # 13.0 PICKUP
TRUCK..ROLLER SKATE
+1F6FD..1F6FF ; disallowed # NA
<reserved-1F6FD>..<reserved-1F6FF>
+1F700..1F773 ; valid ; ; NV8 # 6.0 ALCHEMICAL
SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F774..1F77F ; disallowed # NA
<reserved-1F774>..<reserved-1F77F>
+1F780..1F7D4 ; valid ; ; NV8 # 7.0 BLACK
LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
+1F7D5..1F7D8 ; valid ; ; NV8 # 11.0 CIRCLED
TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F7D9..1F7DF ; disallowed # NA
<reserved-1F7D9>..<reserved-1F7DF>
+1F7E0..1F7EB ; valid ; ; NV8 # 12.0 LARGE ORANGE
CIRCLE..LARGE BROWN SQUARE
+1F7EC..1F7EF ; disallowed # NA
<reserved-1F7EC>..<reserved-1F7EF>
+1F7F0 ; valid ; ; NV8 # 14.0 HEAVY EQUALS SIGN
+1F7F1..1F7FF ; disallowed # NA
<reserved-1F7F1>..<reserved-1F7FF>
+1F800..1F80B ; valid ; ; NV8 # 7.0 LEFTWARDS ARROW
WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F80C..1F80F ; disallowed # NA
<reserved-1F80C>..<reserved-1F80F>
+1F810..1F847 ; valid ; ; NV8 # 7.0 LEFTWARDS ARROW
WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F848..1F84F ; disallowed # NA
<reserved-1F848>..<reserved-1F84F>
+1F850..1F859 ; valid ; ; NV8 # 7.0 LEFTWARDS
SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F85A..1F85F ; disallowed # NA
<reserved-1F85A>..<reserved-1F85F>
+1F860..1F887 ; valid ; ; NV8 # 7.0 WIDE-HEADED
LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F888..1F88F ; disallowed # NA
<reserved-1F888>..<reserved-1F88F>
+1F890..1F8AD ; valid ; ; NV8 # 7.0 LEFTWARDS
TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
+1F8AE..1F8AF ; disallowed # NA
<reserved-1F8AE>..<reserved-1F8AF>
+1F8B0..1F8B1 ; valid ; ; NV8 # 13.0 ARROW POINTING
UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
+1F8B2..1F8FF ; disallowed # NA
<reserved-1F8B2>..<reserved-1F8FF>
+1F900..1F90B ; valid ; ; NV8 # 10.0 CIRCLED CROSS
FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT
+1F90C ; valid ; ; NV8 # 13.0 PINCHED FINGERS
+1F90D..1F90F ; valid ; ; NV8 # 12.0 WHITE
HEART..PINCHING HAND
+1F910..1F918 ; valid ; ; NV8 # 8.0 ZIPPER-MOUTH
FACE..SIGN OF THE HORNS
+1F919..1F91E ; valid ; ; NV8 # 9.0 CALL ME
HAND..HAND WITH INDEX AND MIDDLE FINGERS CROSSED
+1F91F ; valid ; ; NV8 # 10.0 I LOVE YOU HAND
SIGN
+1F920..1F927 ; valid ; ; NV8 # 9.0 FACE WITH COWBOY
HAT..SNEEZING FACE
+1F928..1F92F ; valid ; ; NV8 # 10.0 FACE WITH ONE
EYEBROW RAISED..SHOCKED FACE WITH EXPLODING HEAD
+1F930 ; valid ; ; NV8 # 9.0 PREGNANT WOMAN
+1F931..1F932 ; valid ; ; NV8 # 10.0
BREAST-FEEDING..PALMS UP TOGETHER
+1F933..1F93E ; valid ; ; NV8 # 9.0 SELFIE..HANDBALL
+1F93F ; valid ; ; NV8 # 12.0 DIVING MASK
+1F940..1F94B ; valid ; ; NV8 # 9.0 WILTED
FLOWER..MARTIAL ARTS UNIFORM
+1F94C ; valid ; ; NV8 # 10.0 CURLING STONE
+1F94D..1F94F ; valid ; ; NV8 # 11.0 LACROSSE STICK
AND BALL..FLYING DISC
+1F950..1F95E ; valid ; ; NV8 # 9.0
CROISSANT..PANCAKES
+1F95F..1F96B ; valid ; ; NV8 # 10.0 DUMPLING..CANNED
FOOD
+1F96C..1F970 ; valid ; ; NV8 # 11.0 LEAFY
GREEN..SMILING FACE WITH SMILING EYES AND THREE HEARTS
+1F971 ; valid ; ; NV8 # 12.0 YAWNING FACE
+1F972 ; valid ; ; NV8 # 13.0 SMILING FACE
WITH TEAR
+1F973..1F976 ; valid ; ; NV8 # 11.0 FACE WITH PARTY
HORN AND PARTY HAT..FREEZING FACE
+1F977..1F978 ; valid ; ; NV8 # 13.0 NINJA..DISGUISED
FACE
+1F979 ; valid ; ; NV8 # 14.0 FACE HOLDING
BACK TEARS
+1F97A ; valid ; ; NV8 # 11.0 FACE WITH
PLEADING EYES
+1F97B ; valid ; ; NV8 # 12.0 SARI
+1F97C..1F97F ; valid ; ; NV8 # 11.0 LAB COAT..FLAT
SHOE
+1F980..1F984 ; valid ; ; NV8 # 8.0 CRAB..UNICORN
FACE
+1F985..1F991 ; valid ; ; NV8 # 9.0 EAGLE..SQUID
+1F992..1F997 ; valid ; ; NV8 # 10.0 GIRAFFE
FACE..CRICKET
+1F998..1F9A2 ; valid ; ; NV8 # 11.0 KANGAROO..SWAN
+1F9A3..1F9A4 ; valid ; ; NV8 # 13.0 MAMMOTH..DODO
+1F9A5..1F9AA ; valid ; ; NV8 # 12.0 SLOTH..OYSTER
+1F9AB..1F9AD ; valid ; ; NV8 # 13.0 BEAVER..SEAL
+1F9AE..1F9AF ; valid ; ; NV8 # 12.0 GUIDE
DOG..PROBING CANE
+1F9B0..1F9B9 ; valid ; ; NV8 # 11.0 EMOJI COMPONENT
RED HAIR..SUPERVILLAIN
+1F9BA..1F9BF ; valid ; ; NV8 # 12.0 SAFETY
VEST..MECHANICAL LEG
+1F9C0 ; valid ; ; NV8 # 8.0 CHEESE WEDGE
+1F9C1..1F9C2 ; valid ; ; NV8 # 11.0 CUPCAKE..SALT
SHAKER
+1F9C3..1F9CA ; valid ; ; NV8 # 12.0 BEVERAGE
BOX..ICE CUBE
+1F9CB ; valid ; ; NV8 # 13.0 BUBBLE TEA
+1F9CC ; valid ; ; NV8 # 14.0 TROLL
+1F9CD..1F9CF ; valid ; ; NV8 # 12.0 STANDING
PERSON..DEAF PERSON
+1F9D0..1F9E6 ; valid ; ; NV8 # 10.0 FACE WITH
MONOCLE..SOCKS
+1F9E7..1F9FF ; valid ; ; NV8 # 11.0 RED GIFT
ENVELOPE..NAZAR AMULET
+1FA00..1FA53 ; valid ; ; NV8 # 12.0 NEUTRAL CHESS
KING..BLACK CHESS KNIGHT-BISHOP
+1FA54..1FA5F ; disallowed # NA
<reserved-1FA54>..<reserved-1FA5F>
+1FA60..1FA6D ; valid ; ; NV8 # 11.0 XIANGQI RED
GENERAL..XIANGQI BLACK SOLDIER
+1FA6E..1FA6F ; disallowed # NA
<reserved-1FA6E>..<reserved-1FA6F>
+1FA70..1FA73 ; valid ; ; NV8 # 12.0 BALLET
SHOES..SHORTS
+1FA74 ; valid ; ; NV8 # 13.0 THONG SANDAL
+1FA75..1FA77 ; disallowed # NA
<reserved-1FA75>..<reserved-1FA77>
+1FA78..1FA7A ; valid ; ; NV8 # 12.0 DROP OF
BLOOD..STETHOSCOPE
+1FA7B..1FA7C ; valid ; ; NV8 # 14.0 X-RAY..CRUTCH
+1FA7D..1FA7F ; disallowed # NA
<reserved-1FA7D>..<reserved-1FA7F>
+1FA80..1FA82 ; valid ; ; NV8 # 12.0 YO-YO..PARACHUTE
+1FA83..1FA86 ; valid ; ; NV8 # 13.0
BOOMERANG..NESTING DOLLS
+1FA87..1FA8F ; disallowed # NA
<reserved-1FA87>..<reserved-1FA8F>
+1FA90..1FA95 ; valid ; ; NV8 # 12.0 RINGED
PLANET..BANJO
+1FA96..1FAA8 ; valid ; ; NV8 # 13.0 MILITARY
HELMET..ROCK
+1FAA9..1FAAC ; valid ; ; NV8 # 14.0 MIRROR
BALL..HAMSA
+1FAAD..1FAAF ; disallowed # NA
<reserved-1FAAD>..<reserved-1FAAF>
+1FAB0..1FAB6 ; valid ; ; NV8 # 13.0 FLY..FEATHER
+1FAB7..1FABA ; valid ; ; NV8 # 14.0 LOTUS..NEST WITH
EGGS
+1FABB..1FABF ; disallowed # NA
<reserved-1FABB>..<reserved-1FABF>
+1FAC0..1FAC2 ; valid ; ; NV8 # 13.0 ANATOMICAL
HEART..PEOPLE HUGGING
+1FAC3..1FAC5 ; valid ; ; NV8 # 14.0 PREGNANT
MAN..PERSON WITH CROWN
+1FAC6..1FACF ; disallowed # NA
<reserved-1FAC6>..<reserved-1FACF>
+1FAD0..1FAD6 ; valid ; ; NV8 # 13.0
BLUEBERRIES..TEAPOT
+1FAD7..1FAD9 ; valid ; ; NV8 # 14.0 POURING
LIQUID..JAR
+1FADA..1FADF ; disallowed # NA
<reserved-1FADA>..<reserved-1FADF>
+1FAE0..1FAE7 ; valid ; ; NV8 # 14.0 MELTING
FACE..BUBBLES
+1FAE8..1FAEF ; disallowed # NA
<reserved-1FAE8>..<reserved-1FAEF>
+1FAF0..1FAF6 ; valid ; ; NV8 # 14.0 HAND WITH INDEX
FINGER AND THUMB CROSSED..HEART HANDS
+1FAF7..1FAFF ; disallowed # NA
<reserved-1FAF7>..<reserved-1FAFF>
+1FB00..1FB92 ; valid ; ; NV8 # 13.0 BLOCK
SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
+1FB93 ; disallowed # NA <reserved-1FB93>
+1FB94..1FBCA ; valid ; ; NV8 # 13.0 LEFT HALF
INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
+1FBCB..1FBEF ; disallowed # NA
<reserved-1FBCB>..<reserved-1FBEF>
+1FBF0 ; mapped ; 0030 # 13.0 SEGMENTED DIGIT
ZERO
+1FBF1 ; mapped ; 0031 # 13.0 SEGMENTED DIGIT
ONE
+1FBF2 ; mapped ; 0032 # 13.0 SEGMENTED DIGIT
TWO
+1FBF3 ; mapped ; 0033 # 13.0 SEGMENTED DIGIT
THREE
+1FBF4 ; mapped ; 0034 # 13.0 SEGMENTED DIGIT
FOUR
+1FBF5 ; mapped ; 0035 # 13.0 SEGMENTED DIGIT
FIVE
+1FBF6 ; mapped ; 0036 # 13.0 SEGMENTED DIGIT
SIX
+1FBF7 ; mapped ; 0037 # 13.0 SEGMENTED DIGIT
SEVEN
+1FBF8 ; mapped ; 0038 # 13.0 SEGMENTED DIGIT
EIGHT
+1FBF9 ; mapped ; 0039 # 13.0 SEGMENTED DIGIT
NINE
+1FBFA..1FFFD ; disallowed # NA
<reserved-1FBFA>..<reserved-1FFFD>
+1FFFE..1FFFF ; disallowed # 2.0
<noncharacter-1FFFE>..<noncharacter-1FFFF>
+20000..2A6D6 ; valid # 3.1 CJK UNIFIED
IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
+2A6D7..2A6DD ; valid # 13.0 CJK UNIFIED
IDEOGRAPH-2A6D7..CJK UNIFIED IDEOGRAPH-2A6DD
+2A6DE..2A6DF ; valid # 14.0 CJK UNIFIED
IDEOGRAPH-2A6DE..CJK UNIFIED IDEOGRAPH-2A6DF
+2A6E0..2A6FF ; disallowed # NA
<reserved-2A6E0>..<reserved-2A6FF>
+2A700..2B734 ; valid # 5.2 CJK UNIFIED
IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
+2B735..2B738 ; valid # 14.0 CJK UNIFIED
IDEOGRAPH-2B735..CJK UNIFIED IDEOGRAPH-2B738
+2B739..2B73F ; disallowed # NA
<reserved-2B739>..<reserved-2B73F>
+2B740..2B81D ; valid # 6.0 CJK UNIFIED
IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
+2B81E..2B81F ; disallowed # NA
<reserved-2B81E>..<reserved-2B81F>
+2B820..2CEA1 ; valid # 8.0 CJK UNIFIED
IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
+2CEA2..2CEAF ; disallowed # NA
<reserved-2CEA2>..<reserved-2CEAF>
+2CEB0..2EBE0 ; valid # 10.0 CJK UNIFIED
IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
+2EBE1..2F7FF ; disallowed # NA
<reserved-2EBE1>..<reserved-2F7FF>
+2F800 ; mapped ; 4E3D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F800
+2F801 ; mapped ; 4E38 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F801
+2F802 ; mapped ; 4E41 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F802
+2F803 ; mapped ; 20122 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F803
+2F804 ; mapped ; 4F60 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F804
+2F805 ; mapped ; 4FAE # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F805
+2F806 ; mapped ; 4FBB # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F806
+2F807 ; mapped ; 5002 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F807
+2F808 ; mapped ; 507A # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F808
+2F809 ; mapped ; 5099 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F809
+2F80A ; mapped ; 50E7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F80A
+2F80B ; mapped ; 50CF # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F80B
+2F80C ; mapped ; 349E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F80C
+2F80D ; mapped ; 2063A # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F80D
+2F80E ; mapped ; 514D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F80E
+2F80F ; mapped ; 5154 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F80F
+2F810 ; mapped ; 5164 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F810
+2F811 ; mapped ; 5177 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F811
+2F812 ; mapped ; 2051C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F812
+2F813 ; mapped ; 34B9 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F813
+2F814 ; mapped ; 5167 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F814
+2F815 ; mapped ; 518D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F815
+2F816 ; mapped ; 2054B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F816
+2F817 ; mapped ; 5197 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F817
+2F818 ; mapped ; 51A4 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F818
+2F819 ; mapped ; 4ECC # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F819
+2F81A ; mapped ; 51AC # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F81A
+2F81B ; mapped ; 51B5 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F81B
+2F81C ; mapped ; 291DF # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F81C
+2F81D ; mapped ; 51F5 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F81D
+2F81E ; mapped ; 5203 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F81E
+2F81F ; mapped ; 34DF # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F81F
+2F820 ; mapped ; 523B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F820
+2F821 ; mapped ; 5246 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F821
+2F822 ; mapped ; 5272 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F822
+2F823 ; mapped ; 5277 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F823
+2F824 ; mapped ; 3515 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F824
+2F825 ; mapped ; 52C7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F825
+2F826 ; mapped ; 52C9 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F826
+2F827 ; mapped ; 52E4 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F827
+2F828 ; mapped ; 52FA # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F828
+2F829 ; mapped ; 5305 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F829
+2F82A ; mapped ; 5306 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F82A
+2F82B ; mapped ; 5317 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F82B
+2F82C ; mapped ; 5349 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F82C
+2F82D ; mapped ; 5351 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F82D
+2F82E ; mapped ; 535A # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F82E
+2F82F ; mapped ; 5373 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F82F
+2F830 ; mapped ; 537D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F830
+2F831..2F833 ; mapped ; 537F # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F831..CJK COMPATIBILITY IDEOGRAPH-2F833
+2F834 ; mapped ; 20A2C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F834
+2F835 ; mapped ; 7070 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F835
+2F836 ; mapped ; 53CA # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F836
+2F837 ; mapped ; 53DF # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F837
+2F838 ; mapped ; 20B63 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F838
+2F839 ; mapped ; 53EB # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F839
+2F83A ; mapped ; 53F1 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F83A
+2F83B ; mapped ; 5406 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F83B
+2F83C ; mapped ; 549E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F83C
+2F83D ; mapped ; 5438 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F83D
+2F83E ; mapped ; 5448 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F83E
+2F83F ; mapped ; 5468 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F83F
+2F840 ; mapped ; 54A2 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F840
+2F841 ; mapped ; 54F6 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F841
+2F842 ; mapped ; 5510 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F842
+2F843 ; mapped ; 5553 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F843
+2F844 ; mapped ; 5563 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F844
+2F845..2F846 ; mapped ; 5584 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F845..CJK COMPATIBILITY IDEOGRAPH-2F846
+2F847 ; mapped ; 5599 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F847
+2F848 ; mapped ; 55AB # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F848
+2F849 ; mapped ; 55B3 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F849
+2F84A ; mapped ; 55C2 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F84A
+2F84B ; mapped ; 5716 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F84B
+2F84C ; mapped ; 5606 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F84C
+2F84D ; mapped ; 5717 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F84D
+2F84E ; mapped ; 5651 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F84E
+2F84F ; mapped ; 5674 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F84F
+2F850 ; mapped ; 5207 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F850
+2F851 ; mapped ; 58EE # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F851
+2F852 ; mapped ; 57CE # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F852
+2F853 ; mapped ; 57F4 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F853
+2F854 ; mapped ; 580D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F854
+2F855 ; mapped ; 578B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F855
+2F856 ; mapped ; 5832 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F856
+2F857 ; mapped ; 5831 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F857
+2F858 ; mapped ; 58AC # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F858
+2F859 ; mapped ; 214E4 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F859
+2F85A ; mapped ; 58F2 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F85A
+2F85B ; mapped ; 58F7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F85B
+2F85C ; mapped ; 5906 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F85C
+2F85D ; mapped ; 591A # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F85D
+2F85E ; mapped ; 5922 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F85E
+2F85F ; mapped ; 5962 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F85F
+2F860 ; mapped ; 216A8 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F860
+2F861 ; mapped ; 216EA # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F861
+2F862 ; mapped ; 59EC # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F862
+2F863 ; mapped ; 5A1B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F863
+2F864 ; mapped ; 5A27 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F864
+2F865 ; mapped ; 59D8 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F865
+2F866 ; mapped ; 5A66 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F866
+2F867 ; mapped ; 36EE # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F867
+2F868 ; disallowed # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F868
+2F869 ; mapped ; 5B08 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F869
+2F86A..2F86B ; mapped ; 5B3E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F86A..CJK COMPATIBILITY IDEOGRAPH-2F86B
+2F86C ; mapped ; 219C8 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F86C
+2F86D ; mapped ; 5BC3 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F86D
+2F86E ; mapped ; 5BD8 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F86E
+2F86F ; mapped ; 5BE7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F86F
+2F870 ; mapped ; 5BF3 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F870
+2F871 ; mapped ; 21B18 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F871
+2F872 ; mapped ; 5BFF # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F872
+2F873 ; mapped ; 5C06 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F873
+2F874 ; disallowed # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F874
+2F875 ; mapped ; 5C22 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F875
+2F876 ; mapped ; 3781 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F876
+2F877 ; mapped ; 5C60 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F877
+2F878 ; mapped ; 5C6E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F878
+2F879 ; mapped ; 5CC0 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F879
+2F87A ; mapped ; 5C8D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F87A
+2F87B ; mapped ; 21DE4 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F87B
+2F87C ; mapped ; 5D43 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F87C
+2F87D ; mapped ; 21DE6 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F87D
+2F87E ; mapped ; 5D6E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F87E
+2F87F ; mapped ; 5D6B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F87F
+2F880 ; mapped ; 5D7C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F880
+2F881 ; mapped ; 5DE1 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F881
+2F882 ; mapped ; 5DE2 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F882
+2F883 ; mapped ; 382F # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F883
+2F884 ; mapped ; 5DFD # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F884
+2F885 ; mapped ; 5E28 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F885
+2F886 ; mapped ; 5E3D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F886
+2F887 ; mapped ; 5E69 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F887
+2F888 ; mapped ; 3862 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F888
+2F889 ; mapped ; 22183 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F889
+2F88A ; mapped ; 387C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F88A
+2F88B ; mapped ; 5EB0 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F88B
+2F88C ; mapped ; 5EB3 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F88C
+2F88D ; mapped ; 5EB6 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F88D
+2F88E ; mapped ; 5ECA # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F88E
+2F88F ; mapped ; 2A392 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F88F
+2F890 ; mapped ; 5EFE # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F890
+2F891..2F892 ; mapped ; 22331 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F891..CJK COMPATIBILITY IDEOGRAPH-2F892
+2F893 ; mapped ; 8201 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F893
+2F894..2F895 ; mapped ; 5F22 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F894..CJK COMPATIBILITY IDEOGRAPH-2F895
+2F896 ; mapped ; 38C7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F896
+2F897 ; mapped ; 232B8 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F897
+2F898 ; mapped ; 261DA # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F898
+2F899 ; mapped ; 5F62 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F899
+2F89A ; mapped ; 5F6B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F89A
+2F89B ; mapped ; 38E3 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F89B
+2F89C ; mapped ; 5F9A # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F89C
+2F89D ; mapped ; 5FCD # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F89D
+2F89E ; mapped ; 5FD7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F89E
+2F89F ; mapped ; 5FF9 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F89F
+2F8A0 ; mapped ; 6081 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8A0
+2F8A1 ; mapped ; 393A # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8A1
+2F8A2 ; mapped ; 391C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8A2
+2F8A3 ; mapped ; 6094 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8A3
+2F8A4 ; mapped ; 226D4 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8A4
+2F8A5 ; mapped ; 60C7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8A5
+2F8A6 ; mapped ; 6148 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8A6
+2F8A7 ; mapped ; 614C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8A7
+2F8A8 ; mapped ; 614E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8A8
+2F8A9 ; mapped ; 614C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8A9
+2F8AA ; mapped ; 617A # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8AA
+2F8AB ; mapped ; 618E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8AB
+2F8AC ; mapped ; 61B2 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8AC
+2F8AD ; mapped ; 61A4 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8AD
+2F8AE ; mapped ; 61AF # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8AE
+2F8AF ; mapped ; 61DE # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8AF
+2F8B0 ; mapped ; 61F2 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8B0
+2F8B1 ; mapped ; 61F6 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8B1
+2F8B2 ; mapped ; 6210 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8B2
+2F8B3 ; mapped ; 621B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8B3
+2F8B4 ; mapped ; 625D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8B4
+2F8B5 ; mapped ; 62B1 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8B5
+2F8B6 ; mapped ; 62D4 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8B6
+2F8B7 ; mapped ; 6350 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8B7
+2F8B8 ; mapped ; 22B0C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8B8
+2F8B9 ; mapped ; 633D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8B9
+2F8BA ; mapped ; 62FC # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8BA
+2F8BB ; mapped ; 6368 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8BB
+2F8BC ; mapped ; 6383 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8BC
+2F8BD ; mapped ; 63E4 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8BD
+2F8BE ; mapped ; 22BF1 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8BE
+2F8BF ; mapped ; 6422 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8BF
+2F8C0 ; mapped ; 63C5 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8C0
+2F8C1 ; mapped ; 63A9 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8C1
+2F8C2 ; mapped ; 3A2E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8C2
+2F8C3 ; mapped ; 6469 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8C3
+2F8C4 ; mapped ; 647E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8C4
+2F8C5 ; mapped ; 649D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8C5
+2F8C6 ; mapped ; 6477 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8C6
+2F8C7 ; mapped ; 3A6C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8C7
+2F8C8 ; mapped ; 654F # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8C8
+2F8C9 ; mapped ; 656C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8C9
+2F8CA ; mapped ; 2300A # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8CA
+2F8CB ; mapped ; 65E3 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8CB
+2F8CC ; mapped ; 66F8 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8CC
+2F8CD ; mapped ; 6649 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8CD
+2F8CE ; mapped ; 3B19 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8CE
+2F8CF ; mapped ; 6691 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8CF
+2F8D0 ; mapped ; 3B08 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8D0
+2F8D1 ; mapped ; 3AE4 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8D1
+2F8D2 ; mapped ; 5192 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8D2
+2F8D3 ; mapped ; 5195 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8D3
+2F8D4 ; mapped ; 6700 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8D4
+2F8D5 ; mapped ; 669C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8D5
+2F8D6 ; mapped ; 80AD # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8D6
+2F8D7 ; mapped ; 43D9 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8D7
+2F8D8 ; mapped ; 6717 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8D8
+2F8D9 ; mapped ; 671B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8D9
+2F8DA ; mapped ; 6721 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8DA
+2F8DB ; mapped ; 675E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8DB
+2F8DC ; mapped ; 6753 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8DC
+2F8DD ; mapped ; 233C3 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8DD
+2F8DE ; mapped ; 3B49 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8DE
+2F8DF ; mapped ; 67FA # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8DF
+2F8E0 ; mapped ; 6785 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8E0
+2F8E1 ; mapped ; 6852 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8E1
+2F8E2 ; mapped ; 6885 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8E2
+2F8E3 ; mapped ; 2346D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8E3
+2F8E4 ; mapped ; 688E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8E4
+2F8E5 ; mapped ; 681F # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8E5
+2F8E6 ; mapped ; 6914 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8E6
+2F8E7 ; mapped ; 3B9D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8E7
+2F8E8 ; mapped ; 6942 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8E8
+2F8E9 ; mapped ; 69A3 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8E9
+2F8EA ; mapped ; 69EA # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8EA
+2F8EB ; mapped ; 6AA8 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8EB
+2F8EC ; mapped ; 236A3 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8EC
+2F8ED ; mapped ; 6ADB # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8ED
+2F8EE ; mapped ; 3C18 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8EE
+2F8EF ; mapped ; 6B21 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8EF
+2F8F0 ; mapped ; 238A7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8F0
+2F8F1 ; mapped ; 6B54 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8F1
+2F8F2 ; mapped ; 3C4E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8F2
+2F8F3 ; mapped ; 6B72 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8F3
+2F8F4 ; mapped ; 6B9F # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8F4
+2F8F5 ; mapped ; 6BBA # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8F5
+2F8F6 ; mapped ; 6BBB # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8F6
+2F8F7 ; mapped ; 23A8D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8F7
+2F8F8 ; mapped ; 21D0B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8F8
+2F8F9 ; mapped ; 23AFA # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8F9
+2F8FA ; mapped ; 6C4E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8FA
+2F8FB ; mapped ; 23CBC # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8FB
+2F8FC ; mapped ; 6CBF # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8FC
+2F8FD ; mapped ; 6CCD # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8FD
+2F8FE ; mapped ; 6C67 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8FE
+2F8FF ; mapped ; 6D16 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F8FF
+2F900 ; mapped ; 6D3E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F900
+2F901 ; mapped ; 6D77 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F901
+2F902 ; mapped ; 6D41 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F902
+2F903 ; mapped ; 6D69 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F903
+2F904 ; mapped ; 6D78 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F904
+2F905 ; mapped ; 6D85 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F905
+2F906 ; mapped ; 23D1E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F906
+2F907 ; mapped ; 6D34 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F907
+2F908 ; mapped ; 6E2F # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F908
+2F909 ; mapped ; 6E6E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F909
+2F90A ; mapped ; 3D33 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F90A
+2F90B ; mapped ; 6ECB # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F90B
+2F90C ; mapped ; 6EC7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F90C
+2F90D ; mapped ; 23ED1 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F90D
+2F90E ; mapped ; 6DF9 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F90E
+2F90F ; mapped ; 6F6E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F90F
+2F910 ; mapped ; 23F5E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F910
+2F911 ; mapped ; 23F8E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F911
+2F912 ; mapped ; 6FC6 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F912
+2F913 ; mapped ; 7039 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F913
+2F914 ; mapped ; 701E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F914
+2F915 ; mapped ; 701B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F915
+2F916 ; mapped ; 3D96 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F916
+2F917 ; mapped ; 704A # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F917
+2F918 ; mapped ; 707D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F918
+2F919 ; mapped ; 7077 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F919
+2F91A ; mapped ; 70AD # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F91A
+2F91B ; mapped ; 20525 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F91B
+2F91C ; mapped ; 7145 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F91C
+2F91D ; mapped ; 24263 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F91D
+2F91E ; mapped ; 719C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F91E
+2F91F ; disallowed # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F91F
+2F920 ; mapped ; 7228 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F920
+2F921 ; mapped ; 7235 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F921
+2F922 ; mapped ; 7250 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F922
+2F923 ; mapped ; 24608 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F923
+2F924 ; mapped ; 7280 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F924
+2F925 ; mapped ; 7295 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F925
+2F926 ; mapped ; 24735 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F926
+2F927 ; mapped ; 24814 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F927
+2F928 ; mapped ; 737A # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F928
+2F929 ; mapped ; 738B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F929
+2F92A ; mapped ; 3EAC # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F92A
+2F92B ; mapped ; 73A5 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F92B
+2F92C..2F92D ; mapped ; 3EB8 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F92C..CJK COMPATIBILITY IDEOGRAPH-2F92D
+2F92E ; mapped ; 7447 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F92E
+2F92F ; mapped ; 745C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F92F
+2F930 ; mapped ; 7471 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F930
+2F931 ; mapped ; 7485 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F931
+2F932 ; mapped ; 74CA # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F932
+2F933 ; mapped ; 3F1B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F933
+2F934 ; mapped ; 7524 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F934
+2F935 ; mapped ; 24C36 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F935
+2F936 ; mapped ; 753E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F936
+2F937 ; mapped ; 24C92 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F937
+2F938 ; mapped ; 7570 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F938
+2F939 ; mapped ; 2219F # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F939
+2F93A ; mapped ; 7610 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F93A
+2F93B ; mapped ; 24FA1 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F93B
+2F93C ; mapped ; 24FB8 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F93C
+2F93D ; mapped ; 25044 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F93D
+2F93E ; mapped ; 3FFC # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F93E
+2F93F ; mapped ; 4008 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F93F
+2F940 ; mapped ; 76F4 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F940
+2F941 ; mapped ; 250F3 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F941
+2F942 ; mapped ; 250F2 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F942
+2F943 ; mapped ; 25119 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F943
+2F944 ; mapped ; 25133 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F944
+2F945 ; mapped ; 771E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F945
+2F946..2F947 ; mapped ; 771F # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F946..CJK COMPATIBILITY IDEOGRAPH-2F947
+2F948 ; mapped ; 774A # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F948
+2F949 ; mapped ; 4039 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F949
+2F94A ; mapped ; 778B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F94A
+2F94B ; mapped ; 4046 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F94B
+2F94C ; mapped ; 4096 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F94C
+2F94D ; mapped ; 2541D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F94D
+2F94E ; mapped ; 784E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F94E
+2F94F ; mapped ; 788C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F94F
+2F950 ; mapped ; 78CC # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F950
+2F951 ; mapped ; 40E3 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F951
+2F952 ; mapped ; 25626 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F952
+2F953 ; mapped ; 7956 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F953
+2F954 ; mapped ; 2569A # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F954
+2F955 ; mapped ; 256C5 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F955
+2F956 ; mapped ; 798F # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F956
+2F957 ; mapped ; 79EB # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F957
+2F958 ; mapped ; 412F # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F958
+2F959 ; mapped ; 7A40 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F959
+2F95A ; mapped ; 7A4A # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F95A
+2F95B ; mapped ; 7A4F # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F95B
+2F95C ; mapped ; 2597C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F95C
+2F95D..2F95E ; mapped ; 25AA7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F95D..CJK COMPATIBILITY IDEOGRAPH-2F95E
+2F95F ; disallowed # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F95F
+2F960 ; mapped ; 4202 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F960
+2F961 ; mapped ; 25BAB # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F961
+2F962 ; mapped ; 7BC6 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F962
+2F963 ; mapped ; 7BC9 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F963
+2F964 ; mapped ; 4227 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F964
+2F965 ; mapped ; 25C80 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F965
+2F966 ; mapped ; 7CD2 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F966
+2F967 ; mapped ; 42A0 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F967
+2F968 ; mapped ; 7CE8 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F968
+2F969 ; mapped ; 7CE3 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F969
+2F96A ; mapped ; 7D00 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F96A
+2F96B ; mapped ; 25F86 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F96B
+2F96C ; mapped ; 7D63 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F96C
+2F96D ; mapped ; 4301 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F96D
+2F96E ; mapped ; 7DC7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F96E
+2F96F ; mapped ; 7E02 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F96F
+2F970 ; mapped ; 7E45 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F970
+2F971 ; mapped ; 4334 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F971
+2F972 ; mapped ; 26228 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F972
+2F973 ; mapped ; 26247 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F973
+2F974 ; mapped ; 4359 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F974
+2F975 ; mapped ; 262D9 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F975
+2F976 ; mapped ; 7F7A # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F976
+2F977 ; mapped ; 2633E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F977
+2F978 ; mapped ; 7F95 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F978
+2F979 ; mapped ; 7FFA # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F979
+2F97A ; mapped ; 8005 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F97A
+2F97B ; mapped ; 264DA # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F97B
+2F97C ; mapped ; 26523 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F97C
+2F97D ; mapped ; 8060 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F97D
+2F97E ; mapped ; 265A8 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F97E
+2F97F ; mapped ; 8070 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F97F
+2F980 ; mapped ; 2335F # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F980
+2F981 ; mapped ; 43D5 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F981
+2F982 ; mapped ; 80B2 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F982
+2F983 ; mapped ; 8103 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F983
+2F984 ; mapped ; 440B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F984
+2F985 ; mapped ; 813E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F985
+2F986 ; mapped ; 5AB5 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F986
+2F987 ; mapped ; 267A7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F987
+2F988 ; mapped ; 267B5 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F988
+2F989 ; mapped ; 23393 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F989
+2F98A ; mapped ; 2339C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F98A
+2F98B ; mapped ; 8201 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F98B
+2F98C ; mapped ; 8204 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F98C
+2F98D ; mapped ; 8F9E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F98D
+2F98E ; mapped ; 446B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F98E
+2F98F ; mapped ; 8291 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F98F
+2F990 ; mapped ; 828B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F990
+2F991 ; mapped ; 829D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F991
+2F992 ; mapped ; 52B3 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F992
+2F993 ; mapped ; 82B1 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F993
+2F994 ; mapped ; 82B3 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F994
+2F995 ; mapped ; 82BD # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F995
+2F996 ; mapped ; 82E6 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F996
+2F997 ; mapped ; 26B3C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F997
+2F998 ; mapped ; 82E5 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F998
+2F999 ; mapped ; 831D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F999
+2F99A ; mapped ; 8363 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F99A
+2F99B ; mapped ; 83AD # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F99B
+2F99C ; mapped ; 8323 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F99C
+2F99D ; mapped ; 83BD # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F99D
+2F99E ; mapped ; 83E7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F99E
+2F99F ; mapped ; 8457 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F99F
+2F9A0 ; mapped ; 8353 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9A0
+2F9A1 ; mapped ; 83CA # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9A1
+2F9A2 ; mapped ; 83CC # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9A2
+2F9A3 ; mapped ; 83DC # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9A3
+2F9A4 ; mapped ; 26C36 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9A4
+2F9A5 ; mapped ; 26D6B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9A5
+2F9A6 ; mapped ; 26CD5 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9A6
+2F9A7 ; mapped ; 452B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9A7
+2F9A8 ; mapped ; 84F1 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9A8
+2F9A9 ; mapped ; 84F3 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9A9
+2F9AA ; mapped ; 8516 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9AA
+2F9AB ; mapped ; 273CA # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9AB
+2F9AC ; mapped ; 8564 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9AC
+2F9AD ; mapped ; 26F2C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9AD
+2F9AE ; mapped ; 455D # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9AE
+2F9AF ; mapped ; 4561 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9AF
+2F9B0 ; mapped ; 26FB1 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9B0
+2F9B1 ; mapped ; 270D2 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9B1
+2F9B2 ; mapped ; 456B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9B2
+2F9B3 ; mapped ; 8650 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9B3
+2F9B4 ; mapped ; 865C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9B4
+2F9B5 ; mapped ; 8667 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9B5
+2F9B6 ; mapped ; 8669 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9B6
+2F9B7 ; mapped ; 86A9 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9B7
+2F9B8 ; mapped ; 8688 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9B8
+2F9B9 ; mapped ; 870E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9B9
+2F9BA ; mapped ; 86E2 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9BA
+2F9BB ; mapped ; 8779 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9BB
+2F9BC ; mapped ; 8728 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9BC
+2F9BD ; mapped ; 876B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9BD
+2F9BE ; mapped ; 8786 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9BE
+2F9BF ; disallowed # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9BF
+2F9C0 ; mapped ; 87E1 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9C0
+2F9C1 ; mapped ; 8801 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9C1
+2F9C2 ; mapped ; 45F9 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9C2
+2F9C3 ; mapped ; 8860 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9C3
+2F9C4 ; mapped ; 8863 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9C4
+2F9C5 ; mapped ; 27667 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9C5
+2F9C6 ; mapped ; 88D7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9C6
+2F9C7 ; mapped ; 88DE # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9C7
+2F9C8 ; mapped ; 4635 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9C8
+2F9C9 ; mapped ; 88FA # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9C9
+2F9CA ; mapped ; 34BB # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9CA
+2F9CB ; mapped ; 278AE # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9CB
+2F9CC ; mapped ; 27966 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9CC
+2F9CD ; mapped ; 46BE # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9CD
+2F9CE ; mapped ; 46C7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9CE
+2F9CF ; mapped ; 8AA0 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9CF
+2F9D0 ; mapped ; 8AED # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9D0
+2F9D1 ; mapped ; 8B8A # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9D1
+2F9D2 ; mapped ; 8C55 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9D2
+2F9D3 ; mapped ; 27CA8 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9D3
+2F9D4 ; mapped ; 8CAB # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9D4
+2F9D5 ; mapped ; 8CC1 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9D5
+2F9D6 ; mapped ; 8D1B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9D6
+2F9D7 ; mapped ; 8D77 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9D7
+2F9D8 ; mapped ; 27F2F # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9D8
+2F9D9 ; mapped ; 20804 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9D9
+2F9DA ; mapped ; 8DCB # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9DA
+2F9DB ; mapped ; 8DBC # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9DB
+2F9DC ; mapped ; 8DF0 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9DC
+2F9DD ; mapped ; 208DE # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9DD
+2F9DE ; mapped ; 8ED4 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9DE
+2F9DF ; mapped ; 8F38 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9DF
+2F9E0 ; mapped ; 285D2 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9E0
+2F9E1 ; mapped ; 285ED # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9E1
+2F9E2 ; mapped ; 9094 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9E2
+2F9E3 ; mapped ; 90F1 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9E3
+2F9E4 ; mapped ; 9111 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9E4
+2F9E5 ; mapped ; 2872E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9E5
+2F9E6 ; mapped ; 911B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9E6
+2F9E7 ; mapped ; 9238 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9E7
+2F9E8 ; mapped ; 92D7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9E8
+2F9E9 ; mapped ; 92D8 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9E9
+2F9EA ; mapped ; 927C # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9EA
+2F9EB ; mapped ; 93F9 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9EB
+2F9EC ; mapped ; 9415 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9EC
+2F9ED ; mapped ; 28BFA # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9ED
+2F9EE ; mapped ; 958B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9EE
+2F9EF ; mapped ; 4995 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9EF
+2F9F0 ; mapped ; 95B7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9F0
+2F9F1 ; mapped ; 28D77 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9F1
+2F9F2 ; mapped ; 49E6 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9F2
+2F9F3 ; mapped ; 96C3 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9F3
+2F9F4 ; mapped ; 5DB2 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9F4
+2F9F5 ; mapped ; 9723 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9F5
+2F9F6 ; mapped ; 29145 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9F6
+2F9F7 ; mapped ; 2921A # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9F7
+2F9F8 ; mapped ; 4A6E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9F8
+2F9F9 ; mapped ; 4A76 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9F9
+2F9FA ; mapped ; 97E0 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9FA
+2F9FB ; mapped ; 2940A # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9FB
+2F9FC ; mapped ; 4AB2 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9FC
+2F9FD ; mapped ; 29496 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9FD
+2F9FE..2F9FF ; mapped ; 980B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2F9FE..CJK COMPATIBILITY IDEOGRAPH-2F9FF
+2FA00 ; mapped ; 9829 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA00
+2FA01 ; mapped ; 295B6 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA01
+2FA02 ; mapped ; 98E2 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA02
+2FA03 ; mapped ; 4B33 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA03
+2FA04 ; mapped ; 9929 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA04
+2FA05 ; mapped ; 99A7 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA05
+2FA06 ; mapped ; 99C2 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA06
+2FA07 ; mapped ; 99FE # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA07
+2FA08 ; mapped ; 4BCE # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA08
+2FA09 ; mapped ; 29B30 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA09
+2FA0A ; mapped ; 9B12 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA0A
+2FA0B ; mapped ; 9C40 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA0B
+2FA0C ; mapped ; 9CFD # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA0C
+2FA0D ; mapped ; 4CCE # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA0D
+2FA0E ; mapped ; 4CED # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA0E
+2FA0F ; mapped ; 9D67 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA0F
+2FA10 ; mapped ; 2A0CE # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA10
+2FA11 ; mapped ; 4CF8 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA11
+2FA12 ; mapped ; 2A105 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA12
+2FA13 ; mapped ; 2A20E # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA13
+2FA14 ; mapped ; 2A291 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA14
+2FA15 ; mapped ; 9EBB # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA15
+2FA16 ; mapped ; 4D56 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA16
+2FA17 ; mapped ; 9EF9 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA17
+2FA18 ; mapped ; 9EFE # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA18
+2FA19 ; mapped ; 9F05 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA19
+2FA1A ; mapped ; 9F0F # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA1A
+2FA1B ; mapped ; 9F16 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA1B
+2FA1C ; mapped ; 9F3B # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA1C
+2FA1D ; mapped ; 2A600 # 3.1 CJK
COMPATIBILITY IDEOGRAPH-2FA1D
+2FA1E..2FFFD ; disallowed # NA
<reserved-2FA1E>..<reserved-2FFFD>
+2FFFE..2FFFF ; disallowed # 2.0
<noncharacter-2FFFE>..<noncharacter-2FFFF>
+30000..3134A ; valid # 13.0 CJK UNIFIED
IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+3134B..3FFFD ; disallowed # NA
<reserved-3134B>..<reserved-3FFFD>
+3FFFE..3FFFF ; disallowed # 2.0
<noncharacter-3FFFE>..<noncharacter-3FFFF>
+40000..4FFFD ; disallowed # NA
<reserved-40000>..<reserved-4FFFD>
+4FFFE..4FFFF ; disallowed # 2.0
<noncharacter-4FFFE>..<noncharacter-4FFFF>
+50000..5FFFD ; disallowed # NA
<reserved-50000>..<reserved-5FFFD>
+5FFFE..5FFFF ; disallowed # 2.0
<noncharacter-5FFFE>..<noncharacter-5FFFF>
+60000..6FFFD ; disallowed # NA
<reserved-60000>..<reserved-6FFFD>
+6FFFE..6FFFF ; disallowed # 2.0
<noncharacter-6FFFE>..<noncharacter-6FFFF>
+70000..7FFFD ; disallowed # NA
<reserved-70000>..<reserved-7FFFD>
+7FFFE..7FFFF ; disallowed # 2.0
<noncharacter-7FFFE>..<noncharacter-7FFFF>
+80000..8FFFD ; disallowed # NA
<reserved-80000>..<reserved-8FFFD>
+8FFFE..8FFFF ; disallowed # 2.0
<noncharacter-8FFFE>..<noncharacter-8FFFF>
+90000..9FFFD ; disallowed # NA
<reserved-90000>..<reserved-9FFFD>
+9FFFE..9FFFF ; disallowed # 2.0
<noncharacter-9FFFE>..<noncharacter-9FFFF>
+A0000..AFFFD ; disallowed # NA
<reserved-A0000>..<reserved-AFFFD>
+AFFFE..AFFFF ; disallowed # 2.0
<noncharacter-AFFFE>..<noncharacter-AFFFF>
+B0000..BFFFD ; disallowed # NA
<reserved-B0000>..<reserved-BFFFD>
+BFFFE..BFFFF ; disallowed # 2.0
<noncharacter-BFFFE>..<noncharacter-BFFFF>
+C0000..CFFFD ; disallowed # NA
<reserved-C0000>..<reserved-CFFFD>
+CFFFE..CFFFF ; disallowed # 2.0
<noncharacter-CFFFE>..<noncharacter-CFFFF>
+D0000..DFFFD ; disallowed # NA
<reserved-D0000>..<reserved-DFFFD>
+DFFFE..DFFFF ; disallowed # 2.0
<noncharacter-DFFFE>..<noncharacter-DFFFF>
+E0000 ; disallowed # NA <reserved-E0000>
+E0001 ; disallowed # 3.1 LANGUAGE TAG
+E0002..E001F ; disallowed # NA
<reserved-E0002>..<reserved-E001F>
+E0020..E007F ; disallowed # 3.1 TAG
SPACE..CANCEL TAG
+E0080..E00FF ; disallowed # NA
<reserved-E0080>..<reserved-E00FF>
+E0100..E01EF ; ignored # 4.0 VARIATION
SELECTOR-17..VARIATION SELECTOR-256
+E01F0..EFFFD ; disallowed # NA
<reserved-E01F0>..<reserved-EFFFD>
+EFFFE..EFFFF ; disallowed # 2.0
<noncharacter-EFFFE>..<noncharacter-EFFFF>
+F0000..FFFFD ; disallowed # 2.0
<private-use-F0000>..<private-use-FFFFD>
+FFFFE..FFFFF ; disallowed # 2.0
<noncharacter-FFFFE>..<noncharacter-FFFFF>
+100000..10FFFD; disallowed # 2.0
<private-use-100000>..<private-use-10FFFD>
+10FFFE..10FFFF; disallowed # 2.0
<noncharacter-10FFFE>..<noncharacter-10FFFF>
+
+# Total code points: 1114112
diff --git a/admin/unidata/Makefile.in b/admin/unidata/Makefile.in
index 45bba85213..4b3e72f013 100644
--- a/admin/unidata/Makefile.in
+++ b/admin/unidata/Makefile.in
@@ -29,6 +29,9 @@ srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = @top_builddir@
+# Prevent any settings in the user environment causing problems.
+unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH
+
EMACS = ${top_builddir}/src/emacs
unidir = ${top_srcdir}/lisp/international
emacs = "${EMACS}" -batch --no-site-file --no-site-lisp
@@ -41,7 +44,9 @@ unifiles = $(addprefix ${unidir}/,$(sort $(shell sed -n 's/^[
\t][ \t]*${lparen}
.PHONY: all
all: ${top_srcdir}/src/macuvs.h ${unifiles} ${unidir}/charscript.el \
- ${unidir}/charprop.el ${unidir}/emoji-zwj.el ${unidir}/emoji-labels.el
+ ${unidir}/charprop.el ${unidir}/emoji-zwj.el ${unidir}/emoji-labels.el \
+ ${unidir}/uni-scripts.el ${unidir}/uni-confusable.el \
+ ${unidir}/idna-mapping.el
## Specify .elc as an order-only prereq so as to not needlessly rebuild
## target just because the .elc is missing.
@@ -79,6 +84,23 @@ ${unidir}/emoji-labels.el:
${unidir}/../international/emoji.el \
${srcdir}/emoji-test.txt
$(AM_V_GEN)${emacs} -l emoji.el -f emoji--generate-file $@
+${unidir}/uni-scripts.el: ${srcdir}/unidata-gen.el \
+ ${srcdir}/Scripts.txt \
+ ${srcdir}/ScriptExtensions.txt \
+ ${srcdir}/PropertyValueAliases.txt
+ $(AM_V_GEN)${emacs} -L ${srcdir} \
+ -l unidata-gen.el -f unidata-gen-scripts $@
+
+${unidir}/uni-confusable.el: ${srcdir}/unidata-gen.el \
+ ${srcdir}/confusables.txt
+ $(AM_V_GEN)${emacs} -L ${srcdir} \
+ -l unidata-gen.el -f unidata-gen-confusable $@
+
+${unidir}/idna-mapping.el: ${srcdir}/unidata-gen.el \
+ ${srcdir}/IdnaMappingTable.txt
+ $(AM_V_GEN)${emacs} -L ${srcdir} \
+ -l unidata-gen.el -f unidata-gen-idna-mapping $@
+
.PHONY: charscript.el
charscript.el: ${unidir}/charscript.el
diff --git a/admin/unidata/PropertyValueAliases.txt
b/admin/unidata/PropertyValueAliases.txt
new file mode 100644
index 0000000000..bdc13857dc
--- /dev/null
+++ b/admin/unidata/PropertyValueAliases.txt
@@ -0,0 +1,1615 @@
+# PropertyValueAliases-14.0.0.txt
+# Date: 2021-05-10, 21:08:53 GMT
+# © 2021 Unicode®, Inc.
+# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in
the U.S. and other countries.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+#
+# Unicode Character Database
+# For documentation, see http://www.unicode.org/reports/tr44/
+#
+# This file contains aliases for property values used in the UCD.
+# These names can be used for XML formats of UCD data, for regular-expression
+# property tests, and other programmatic textual descriptions of Unicode data.
+#
+# The names may be translated in appropriate environments, and additional
+# aliases may be useful.
+#
+# FORMAT
+#
+# Each line describes a property value name.
+# This consists of three or more fields, separated by semicolons.
+#
+# First Field: The first field describes the property for which that
+# property value name is used.
+#
+# Second Field: The second field is the short name for the property value.
+# It is typically an abbreviation, but in a number of cases it is simply
+# a duplicate of the "long name" in the third field.
+#
+# Third Field: The third field is the long name for the property value,
+# typically the formal name used in documentation about the property value.
+#
+# In the case of Canonical_Combining_Class (ccc), there are 4 fields:
+# The second field is numeric, the third is the short name, and the fourth is
the long name.
+#
+# The above are the preferred aliases. Other aliases may be listed in
additional fields.
+#
+# Loose matching should be applied to all property names and property values,
with
+# the exception of String Property values. With loose matching of property
names and
+# values, the case distinctions, whitespace, hyphens, and '_' are ignored.
+# For Numeric Property values, numeric equivalence is applied: thus "01.00"
+# is equivalent to "1".
+#
+# NOTE: Property value names are NOT unique across properties. For example:
+#
+# AL means Arabic Letter for the Bidi_Class property, and
+# AL means Above_Left for the Canonical_Combining_Class property, and
+# AL means Alphabetic for the Line_Break property.
+#
+# In addition, some property names may be the same as some property value
names.
+# For example:
+#
+# sc means the Script property, and
+# Sc means the General_Category property value Currency_Symbol (Sc)
+#
+# The combination of property value and property name is, however, unique.
+#
+# For more information, see UAX #44, Unicode Character Database, and
+# UTS #18, Unicode Regular Expressions.
+# ================================================
+
+
+# ASCII_Hex_Digit (AHex)
+
+AHex; N ; No ; F
; False
+AHex; Y ; Yes ; T
; True
+
+# Age (age)
+
+age; 1.1 ; V1_1
+age; 2.0 ; V2_0
+age; 2.1 ; V2_1
+age; 3.0 ; V3_0
+age; 3.1 ; V3_1
+age; 3.2 ; V3_2
+age; 4.0 ; V4_0
+age; 4.1 ; V4_1
+age; 5.0 ; V5_0
+age; 5.1 ; V5_1
+age; 5.2 ; V5_2
+age; 6.0 ; V6_0
+age; 6.1 ; V6_1
+age; 6.2 ; V6_2
+age; 6.3 ; V6_3
+age; 7.0 ; V7_0
+age; 8.0 ; V8_0
+age; 9.0 ; V9_0
+age; 10.0 ; V10_0
+age; 11.0 ; V11_0
+age; 12.0 ; V12_0
+age; 12.1 ; V12_1
+age; 13.0 ; V13_0
+age; 14.0 ; V14_0
+age; NA ; Unassigned
+
+# Alphabetic (Alpha)
+
+Alpha; N ; No ; F
; False
+Alpha; Y ; Yes ; T
; True
+
+# Bidi_Class (bc)
+
+bc ; AL ; Arabic_Letter
+bc ; AN ; Arabic_Number
+bc ; B ; Paragraph_Separator
+bc ; BN ; Boundary_Neutral
+bc ; CS ; Common_Separator
+bc ; EN ; European_Number
+bc ; ES ; European_Separator
+bc ; ET ; European_Terminator
+bc ; FSI ; First_Strong_Isolate
+bc ; L ; Left_To_Right
+bc ; LRE ; Left_To_Right_Embedding
+bc ; LRI ; Left_To_Right_Isolate
+bc ; LRO ; Left_To_Right_Override
+bc ; NSM ; Nonspacing_Mark
+bc ; ON ; Other_Neutral
+bc ; PDF ; Pop_Directional_Format
+bc ; PDI ; Pop_Directional_Isolate
+bc ; R ; Right_To_Left
+bc ; RLE ; Right_To_Left_Embedding
+bc ; RLI ; Right_To_Left_Isolate
+bc ; RLO ; Right_To_Left_Override
+bc ; S ; Segment_Separator
+bc ; WS ; White_Space
+
+# Bidi_Control (Bidi_C)
+
+Bidi_C; N ; No ; F
; False
+Bidi_C; Y ; Yes ; T
; True
+
+# Bidi_Mirrored (Bidi_M)
+
+Bidi_M; N ; No ; F
; False
+Bidi_M; Y ; Yes ; T
; True
+
+# Bidi_Mirroring_Glyph (bmg)
+
+# @missing: 0000..10FFFF; Bidi_Mirroring_Glyph; <none>
+
+# Bidi_Paired_Bracket (bpb)
+
+# @missing: 0000..10FFFF; Bidi_Paired_Bracket; <none>
+
+# Bidi_Paired_Bracket_Type (bpt)
+
+bpt; c ; Close
+bpt; n ; None
+bpt; o ; Open
+# @missing: 0000..10FFFF; Bidi_Paired_Bracket_Type; n
+
+# Block (blk)
+
+blk; Adlam ; Adlam
+blk; Aegean_Numbers ; Aegean_Numbers
+blk; Ahom ; Ahom
+blk; Alchemical ; Alchemical_Symbols
+blk; Alphabetic_PF ; Alphabetic_Presentation_Forms
+blk; Anatolian_Hieroglyphs ; Anatolian_Hieroglyphs
+blk; Ancient_Greek_Music ; Ancient_Greek_Musical_Notation
+blk; Ancient_Greek_Numbers ; Ancient_Greek_Numbers
+blk; Ancient_Symbols ; Ancient_Symbols
+blk; Arabic ; Arabic
+blk; Arabic_Ext_A ; Arabic_Extended_A
+blk; Arabic_Ext_B ; Arabic_Extended_B
+blk; Arabic_Math ; Arabic_Mathematical_Alphabetic_Symbols
+blk; Arabic_PF_A ; Arabic_Presentation_Forms_A ;
Arabic_Presentation_Forms-A
+blk; Arabic_PF_B ; Arabic_Presentation_Forms_B
+blk; Arabic_Sup ; Arabic_Supplement
+blk; Armenian ; Armenian
+blk; Arrows ; Arrows
+blk; ASCII ; Basic_Latin
+blk; Avestan ; Avestan
+blk; Balinese ; Balinese
+blk; Bamum ; Bamum
+blk; Bamum_Sup ; Bamum_Supplement
+blk; Bassa_Vah ; Bassa_Vah
+blk; Batak ; Batak
+blk; Bengali ; Bengali
+blk; Bhaiksuki ; Bhaiksuki
+blk; Block_Elements ; Block_Elements
+blk; Bopomofo ; Bopomofo
+blk; Bopomofo_Ext ; Bopomofo_Extended
+blk; Box_Drawing ; Box_Drawing
+blk; Brahmi ; Brahmi
+blk; Braille ; Braille_Patterns
+blk; Buginese ; Buginese
+blk; Buhid ; Buhid
+blk; Byzantine_Music ; Byzantine_Musical_Symbols
+blk; Carian ; Carian
+blk; Caucasian_Albanian ; Caucasian_Albanian
+blk; Chakma ; Chakma
+blk; Cham ; Cham
+blk; Cherokee ; Cherokee
+blk; Cherokee_Sup ; Cherokee_Supplement
+blk; Chess_Symbols ; Chess_Symbols
+blk; Chorasmian ; Chorasmian
+blk; CJK ; CJK_Unified_Ideographs
+blk; CJK_Compat ; CJK_Compatibility
+blk; CJK_Compat_Forms ; CJK_Compatibility_Forms
+blk; CJK_Compat_Ideographs ; CJK_Compatibility_Ideographs
+blk; CJK_Compat_Ideographs_Sup ; CJK_Compatibility_Ideographs_Supplement
+blk; CJK_Ext_A ; CJK_Unified_Ideographs_Extension_A
+blk; CJK_Ext_B ; CJK_Unified_Ideographs_Extension_B
+blk; CJK_Ext_C ; CJK_Unified_Ideographs_Extension_C
+blk; CJK_Ext_D ; CJK_Unified_Ideographs_Extension_D
+blk; CJK_Ext_E ; CJK_Unified_Ideographs_Extension_E
+blk; CJK_Ext_F ; CJK_Unified_Ideographs_Extension_F
+blk; CJK_Ext_G ; CJK_Unified_Ideographs_Extension_G
+blk; CJK_Radicals_Sup ; CJK_Radicals_Supplement
+blk; CJK_Strokes ; CJK_Strokes
+blk; CJK_Symbols ; CJK_Symbols_And_Punctuation
+blk; Compat_Jamo ; Hangul_Compatibility_Jamo
+blk; Control_Pictures ; Control_Pictures
+blk; Coptic ; Coptic
+blk; Coptic_Epact_Numbers ; Coptic_Epact_Numbers
+blk; Counting_Rod ; Counting_Rod_Numerals
+blk; Cuneiform ; Cuneiform
+blk; Cuneiform_Numbers ; Cuneiform_Numbers_And_Punctuation
+blk; Currency_Symbols ; Currency_Symbols
+blk; Cypriot_Syllabary ; Cypriot_Syllabary
+blk; Cypro_Minoan ; Cypro_Minoan
+blk; Cyrillic ; Cyrillic
+blk; Cyrillic_Ext_A ; Cyrillic_Extended_A
+blk; Cyrillic_Ext_B ; Cyrillic_Extended_B
+blk; Cyrillic_Ext_C ; Cyrillic_Extended_C
+blk; Cyrillic_Sup ; Cyrillic_Supplement ;
Cyrillic_Supplementary
+blk; Deseret ; Deseret
+blk; Devanagari ; Devanagari
+blk; Devanagari_Ext ; Devanagari_Extended
+blk; Diacriticals ; Combining_Diacritical_Marks
+blk; Diacriticals_Ext ; Combining_Diacritical_Marks_Extended
+blk; Diacriticals_For_Symbols ;
Combining_Diacritical_Marks_For_Symbols; Combining_Marks_For_Symbols
+blk; Diacriticals_Sup ; Combining_Diacritical_Marks_Supplement
+blk; Dingbats ; Dingbats
+blk; Dives_Akuru ; Dives_Akuru
+blk; Dogra ; Dogra
+blk; Domino ; Domino_Tiles
+blk; Duployan ; Duployan
+blk; Early_Dynastic_Cuneiform ; Early_Dynastic_Cuneiform
+blk; Egyptian_Hieroglyph_Format_Controls; Egyptian_Hieroglyph_Format_Controls
+blk; Egyptian_Hieroglyphs ; Egyptian_Hieroglyphs
+blk; Elbasan ; Elbasan
+blk; Elymaic ; Elymaic
+blk; Emoticons ; Emoticons
+blk; Enclosed_Alphanum ; Enclosed_Alphanumerics
+blk; Enclosed_Alphanum_Sup ; Enclosed_Alphanumeric_Supplement
+blk; Enclosed_CJK ; Enclosed_CJK_Letters_And_Months
+blk; Enclosed_Ideographic_Sup ; Enclosed_Ideographic_Supplement
+blk; Ethiopic ; Ethiopic
+blk; Ethiopic_Ext ; Ethiopic_Extended
+blk; Ethiopic_Ext_A ; Ethiopic_Extended_A
+blk; Ethiopic_Ext_B ; Ethiopic_Extended_B
+blk; Ethiopic_Sup ; Ethiopic_Supplement
+blk; Geometric_Shapes ; Geometric_Shapes
+blk; Geometric_Shapes_Ext ; Geometric_Shapes_Extended
+blk; Georgian ; Georgian
+blk; Georgian_Ext ; Georgian_Extended
+blk; Georgian_Sup ; Georgian_Supplement
+blk; Glagolitic ; Glagolitic
+blk; Glagolitic_Sup ; Glagolitic_Supplement
+blk; Gothic ; Gothic
+blk; Grantha ; Grantha
+blk; Greek ; Greek_And_Coptic
+blk; Greek_Ext ; Greek_Extended
+blk; Gujarati ; Gujarati
+blk; Gunjala_Gondi ; Gunjala_Gondi
+blk; Gurmukhi ; Gurmukhi
+blk; Half_And_Full_Forms ; Halfwidth_And_Fullwidth_Forms
+blk; Half_Marks ; Combining_Half_Marks
+blk; Hangul ; Hangul_Syllables
+blk; Hanifi_Rohingya ; Hanifi_Rohingya
+blk; Hanunoo ; Hanunoo
+blk; Hatran ; Hatran
+blk; Hebrew ; Hebrew
+blk; High_PU_Surrogates ; High_Private_Use_Surrogates
+blk; High_Surrogates ; High_Surrogates
+blk; Hiragana ; Hiragana
+blk; IDC ; Ideographic_Description_Characters
+blk; Ideographic_Symbols ; Ideographic_Symbols_And_Punctuation
+blk; Imperial_Aramaic ; Imperial_Aramaic
+blk; Indic_Number_Forms ; Common_Indic_Number_Forms
+blk; Indic_Siyaq_Numbers ; Indic_Siyaq_Numbers
+blk; Inscriptional_Pahlavi ; Inscriptional_Pahlavi
+blk; Inscriptional_Parthian ; Inscriptional_Parthian
+blk; IPA_Ext ; IPA_Extensions
+blk; Jamo ; Hangul_Jamo
+blk; Jamo_Ext_A ; Hangul_Jamo_Extended_A
+blk; Jamo_Ext_B ; Hangul_Jamo_Extended_B
+blk; Javanese ; Javanese
+blk; Kaithi ; Kaithi
+blk; Kana_Ext_A ; Kana_Extended_A
+blk; Kana_Ext_B ; Kana_Extended_B
+blk; Kana_Sup ; Kana_Supplement
+blk; Kanbun ; Kanbun
+blk; Kangxi ; Kangxi_Radicals
+blk; Kannada ; Kannada
+blk; Katakana ; Katakana
+blk; Katakana_Ext ; Katakana_Phonetic_Extensions
+blk; Kayah_Li ; Kayah_Li
+blk; Kharoshthi ; Kharoshthi
+blk; Khitan_Small_Script ; Khitan_Small_Script
+blk; Khmer ; Khmer
+blk; Khmer_Symbols ; Khmer_Symbols
+blk; Khojki ; Khojki
+blk; Khudawadi ; Khudawadi
+blk; Lao ; Lao
+blk; Latin_1_Sup ; Latin_1_Supplement ;
Latin_1
+blk; Latin_Ext_A ; Latin_Extended_A
+blk; Latin_Ext_Additional ; Latin_Extended_Additional
+blk; Latin_Ext_B ; Latin_Extended_B
+blk; Latin_Ext_C ; Latin_Extended_C
+blk; Latin_Ext_D ; Latin_Extended_D
+blk; Latin_Ext_E ; Latin_Extended_E
+blk; Latin_Ext_F ; Latin_Extended_F
+blk; Latin_Ext_G ; Latin_Extended_G
+blk; Lepcha ; Lepcha
+blk; Letterlike_Symbols ; Letterlike_Symbols
+blk; Limbu ; Limbu
+blk; Linear_A ; Linear_A
+blk; Linear_B_Ideograms ; Linear_B_Ideograms
+blk; Linear_B_Syllabary ; Linear_B_Syllabary
+blk; Lisu ; Lisu
+blk; Lisu_Sup ; Lisu_Supplement
+blk; Low_Surrogates ; Low_Surrogates
+blk; Lycian ; Lycian
+blk; Lydian ; Lydian
+blk; Mahajani ; Mahajani
+blk; Mahjong ; Mahjong_Tiles
+blk; Makasar ; Makasar
+blk; Malayalam ; Malayalam
+blk; Mandaic ; Mandaic
+blk; Manichaean ; Manichaean
+blk; Marchen ; Marchen
+blk; Masaram_Gondi ; Masaram_Gondi
+blk; Math_Alphanum ; Mathematical_Alphanumeric_Symbols
+blk; Math_Operators ; Mathematical_Operators
+blk; Mayan_Numerals ; Mayan_Numerals
+blk; Medefaidrin ; Medefaidrin
+blk; Meetei_Mayek ; Meetei_Mayek
+blk; Meetei_Mayek_Ext ; Meetei_Mayek_Extensions
+blk; Mende_Kikakui ; Mende_Kikakui
+blk; Meroitic_Cursive ; Meroitic_Cursive
+blk; Meroitic_Hieroglyphs ; Meroitic_Hieroglyphs
+blk; Miao ; Miao
+blk; Misc_Arrows ; Miscellaneous_Symbols_And_Arrows
+blk; Misc_Math_Symbols_A ; Miscellaneous_Mathematical_Symbols_A
+blk; Misc_Math_Symbols_B ; Miscellaneous_Mathematical_Symbols_B
+blk; Misc_Pictographs ; Miscellaneous_Symbols_And_Pictographs
+blk; Misc_Symbols ; Miscellaneous_Symbols
+blk; Misc_Technical ; Miscellaneous_Technical
+blk; Modi ; Modi
+blk; Modifier_Letters ; Spacing_Modifier_Letters
+blk; Modifier_Tone_Letters ; Modifier_Tone_Letters
+blk; Mongolian ; Mongolian
+blk; Mongolian_Sup ; Mongolian_Supplement
+blk; Mro ; Mro
+blk; Multani ; Multani
+blk; Music ; Musical_Symbols
+blk; Myanmar ; Myanmar
+blk; Myanmar_Ext_A ; Myanmar_Extended_A
+blk; Myanmar_Ext_B ; Myanmar_Extended_B
+blk; Nabataean ; Nabataean
+blk; Nandinagari ; Nandinagari
+blk; NB ; No_Block
+blk; New_Tai_Lue ; New_Tai_Lue
+blk; Newa ; Newa
+blk; NKo ; NKo
+blk; Number_Forms ; Number_Forms
+blk; Nushu ; Nushu
+blk; Nyiakeng_Puachue_Hmong ; Nyiakeng_Puachue_Hmong
+blk; OCR ; Optical_Character_Recognition
+blk; Ogham ; Ogham
+blk; Ol_Chiki ; Ol_Chiki
+blk; Old_Hungarian ; Old_Hungarian
+blk; Old_Italic ; Old_Italic
+blk; Old_North_Arabian ; Old_North_Arabian
+blk; Old_Permic ; Old_Permic
+blk; Old_Persian ; Old_Persian
+blk; Old_Sogdian ; Old_Sogdian
+blk; Old_South_Arabian ; Old_South_Arabian
+blk; Old_Turkic ; Old_Turkic
+blk; Old_Uyghur ; Old_Uyghur
+blk; Oriya ; Oriya
+blk; Ornamental_Dingbats ; Ornamental_Dingbats
+blk; Osage ; Osage
+blk; Osmanya ; Osmanya
+blk; Ottoman_Siyaq_Numbers ; Ottoman_Siyaq_Numbers
+blk; Pahawh_Hmong ; Pahawh_Hmong
+blk; Palmyrene ; Palmyrene
+blk; Pau_Cin_Hau ; Pau_Cin_Hau
+blk; Phags_Pa ; Phags_Pa
+blk; Phaistos ; Phaistos_Disc
+blk; Phoenician ; Phoenician
+blk; Phonetic_Ext ; Phonetic_Extensions
+blk; Phonetic_Ext_Sup ; Phonetic_Extensions_Supplement
+blk; Playing_Cards ; Playing_Cards
+blk; Psalter_Pahlavi ; Psalter_Pahlavi
+blk; PUA ; Private_Use_Area ;
Private_Use
+blk; Punctuation ; General_Punctuation
+blk; Rejang ; Rejang
+blk; Rumi ; Rumi_Numeral_Symbols
+blk; Runic ; Runic
+blk; Samaritan ; Samaritan
+blk; Saurashtra ; Saurashtra
+blk; Sharada ; Sharada
+blk; Shavian ; Shavian
+blk; Shorthand_Format_Controls ; Shorthand_Format_Controls
+blk; Siddham ; Siddham
+blk; Sinhala ; Sinhala
+blk; Sinhala_Archaic_Numbers ; Sinhala_Archaic_Numbers
+blk; Small_Forms ; Small_Form_Variants
+blk; Small_Kana_Ext ; Small_Kana_Extension
+blk; Sogdian ; Sogdian
+blk; Sora_Sompeng ; Sora_Sompeng
+blk; Soyombo ; Soyombo
+blk; Specials ; Specials
+blk; Sundanese ; Sundanese
+blk; Sundanese_Sup ; Sundanese_Supplement
+blk; Sup_Arrows_A ; Supplemental_Arrows_A
+blk; Sup_Arrows_B ; Supplemental_Arrows_B
+blk; Sup_Arrows_C ; Supplemental_Arrows_C
+blk; Sup_Math_Operators ; Supplemental_Mathematical_Operators
+blk; Sup_PUA_A ; Supplementary_Private_Use_Area_A
+blk; Sup_PUA_B ; Supplementary_Private_Use_Area_B
+blk; Sup_Punctuation ; Supplemental_Punctuation
+blk; Sup_Symbols_And_Pictographs ; Supplemental_Symbols_And_Pictographs
+blk; Super_And_Sub ; Superscripts_And_Subscripts
+blk; Sutton_SignWriting ; Sutton_SignWriting
+blk; Syloti_Nagri ; Syloti_Nagri
+blk; Symbols_And_Pictographs_Ext_A ; Symbols_And_Pictographs_Extended_A
+blk; Symbols_For_Legacy_Computing ; Symbols_For_Legacy_Computing
+blk; Syriac ; Syriac
+blk; Syriac_Sup ; Syriac_Supplement
+blk; Tagalog ; Tagalog
+blk; Tagbanwa ; Tagbanwa
+blk; Tags ; Tags
+blk; Tai_Le ; Tai_Le
+blk; Tai_Tham ; Tai_Tham
+blk; Tai_Viet ; Tai_Viet
+blk; Tai_Xuan_Jing ; Tai_Xuan_Jing_Symbols
+blk; Takri ; Takri
+blk; Tamil ; Tamil
+blk; Tamil_Sup ; Tamil_Supplement
+blk; Tangsa ; Tangsa
+blk; Tangut ; Tangut
+blk; Tangut_Components ; Tangut_Components
+blk; Tangut_Sup ; Tangut_Supplement
+blk; Telugu ; Telugu
+blk; Thaana ; Thaana
+blk; Thai ; Thai
+blk; Tibetan ; Tibetan
+blk; Tifinagh ; Tifinagh
+blk; Tirhuta ; Tirhuta
+blk; Toto ; Toto
+blk; Transport_And_Map ; Transport_And_Map_Symbols
+blk; UCAS ; Unified_Canadian_Aboriginal_Syllabics;
Canadian_Syllabics
+blk; UCAS_Ext ;
Unified_Canadian_Aboriginal_Syllabics_Extended
+blk; UCAS_Ext_A ;
Unified_Canadian_Aboriginal_Syllabics_Extended_A
+blk; Ugaritic ; Ugaritic
+blk; Vai ; Vai
+blk; Vedic_Ext ; Vedic_Extensions
+blk; Vertical_Forms ; Vertical_Forms
+blk; Vithkuqi ; Vithkuqi
+blk; VS ; Variation_Selectors
+blk; VS_Sup ; Variation_Selectors_Supplement
+blk; Wancho ; Wancho
+blk; Warang_Citi ; Warang_Citi
+blk; Yezidi ; Yezidi
+blk; Yi_Radicals ; Yi_Radicals
+blk; Yi_Syllables ; Yi_Syllables
+blk; Yijing ; Yijing_Hexagram_Symbols
+blk; Zanabazar_Square ; Zanabazar_Square
+blk; Znamenny_Music ; Znamenny_Musical_Notation
+
+# Canonical_Combining_Class (ccc)
+
+ccc; 0; NR ; Not_Reordered
+ccc; 1; OV ; Overlay
+ccc; 6; HANR ; Han_Reading
+ccc; 7; NK ; Nukta
+ccc; 8; KV ; Kana_Voicing
+ccc; 9; VR ; Virama
+ccc; 10; CCC10 ; CCC10
+ccc; 11; CCC11 ; CCC11
+ccc; 12; CCC12 ; CCC12
+ccc; 13; CCC13 ; CCC13
+ccc; 14; CCC14 ; CCC14
+ccc; 15; CCC15 ; CCC15
+ccc; 16; CCC16 ; CCC16
+ccc; 17; CCC17 ; CCC17
+ccc; 18; CCC18 ; CCC18
+ccc; 19; CCC19 ; CCC19
+ccc; 20; CCC20 ; CCC20
+ccc; 21; CCC21 ; CCC21
+ccc; 22; CCC22 ; CCC22
+ccc; 23; CCC23 ; CCC23
+ccc; 24; CCC24 ; CCC24
+ccc; 25; CCC25 ; CCC25
+ccc; 26; CCC26 ; CCC26
+ccc; 27; CCC27 ; CCC27
+ccc; 28; CCC28 ; CCC28
+ccc; 29; CCC29 ; CCC29
+ccc; 30; CCC30 ; CCC30
+ccc; 31; CCC31 ; CCC31
+ccc; 32; CCC32 ; CCC32
+ccc; 33; CCC33 ; CCC33
+ccc; 34; CCC34 ; CCC34
+ccc; 35; CCC35 ; CCC35
+ccc; 36; CCC36 ; CCC36
+ccc; 84; CCC84 ; CCC84
+ccc; 91; CCC91 ; CCC91
+ccc; 103; CCC103 ; CCC103
+ccc; 107; CCC107 ; CCC107
+ccc; 118; CCC118 ; CCC118
+ccc; 122; CCC122 ; CCC122
+ccc; 129; CCC129 ; CCC129
+ccc; 130; CCC130 ; CCC130
+ccc; 132; CCC132 ; CCC132
+ccc; 133; CCC133 ; CCC133 # RESERVED
+ccc; 200; ATBL ; Attached_Below_Left
+ccc; 202; ATB ; Attached_Below
+ccc; 214; ATA ; Attached_Above
+ccc; 216; ATAR ; Attached_Above_Right
+ccc; 218; BL ; Below_Left
+ccc; 220; B ; Below
+ccc; 222; BR ; Below_Right
+ccc; 224; L ; Left
+ccc; 226; R ; Right
+ccc; 228; AL ; Above_Left
+ccc; 230; A ; Above
+ccc; 232; AR ; Above_Right
+ccc; 233; DB ; Double_Below
+ccc; 234; DA ; Double_Above
+ccc; 240; IS ; Iota_Subscript
+
+# Case_Folding (cf)
+
+# @missing: 0000..10FFFF; Case_Folding; <code point>
+
+# Case_Ignorable (CI)
+
+CI ; N ; No ; F
; False
+CI ; Y ; Yes ; T
; True
+
+# Cased (Cased)
+
+Cased; N ; No ; F
; False
+Cased; Y ; Yes ; T
; True
+
+# Changes_When_Casefolded (CWCF)
+
+CWCF; N ; No ; F
; False
+CWCF; Y ; Yes ; T
; True
+
+# Changes_When_Casemapped (CWCM)
+
+CWCM; N ; No ; F
; False
+CWCM; Y ; Yes ; T
; True
+
+# Changes_When_Lowercased (CWL)
+
+CWL; N ; No ; F
; False
+CWL; Y ; Yes ; T
; True
+
+# Changes_When_NFKC_Casefolded (CWKCF)
+
+CWKCF; N ; No ; F
; False
+CWKCF; Y ; Yes ; T
; True
+
+# Changes_When_Titlecased (CWT)
+
+CWT; N ; No ; F
; False
+CWT; Y ; Yes ; T
; True
+
+# Changes_When_Uppercased (CWU)
+
+CWU; N ; No ; F
; False
+CWU; Y ; Yes ; T
; True
+
+# Composition_Exclusion (CE)
+
+CE ; N ; No ; F
; False
+CE ; Y ; Yes ; T
; True
+
+# Dash (Dash)
+
+Dash; N ; No ; F
; False
+Dash; Y ; Yes ; T
; True
+
+# Decomposition_Mapping (dm)
+
+# @missing: 0000..10FFFF; Decomposition_Mapping; <code point>
+
+# Decomposition_Type (dt)
+
+dt ; Can ; Canonical ; can
+dt ; Com ; Compat ; com
+dt ; Enc ; Circle ; enc
+dt ; Fin ; Final ; fin
+dt ; Font ; Font ; font
+dt ; Fra ; Fraction ; fra
+dt ; Init ; Initial ; init
+dt ; Iso ; Isolated ; iso
+dt ; Med ; Medial ; med
+dt ; Nar ; Narrow ; nar
+dt ; Nb ; Nobreak ; nb
+dt ; None ; None ; none
+dt ; Sml ; Small ; sml
+dt ; Sqr ; Square ; sqr
+dt ; Sub ; Sub ; sub
+dt ; Sup ; Super ; sup
+dt ; Vert ; Vertical ; vert
+dt ; Wide ; Wide ; wide
+
+# Default_Ignorable_Code_Point (DI)
+
+DI ; N ; No ; F
; False
+DI ; Y ; Yes ; T
; True
+
+# Deprecated (Dep)
+
+Dep; N ; No ; F
; False
+Dep; Y ; Yes ; T
; True
+
+# Diacritic (Dia)
+
+Dia; N ; No ; F
; False
+Dia; Y ; Yes ; T
; True
+
+# East_Asian_Width (ea)
+
+ea ; A ; Ambiguous
+ea ; F ; Fullwidth
+ea ; H ; Halfwidth
+ea ; N ; Neutral
+ea ; Na ; Narrow
+ea ; W ; Wide
+
+# Emoji (Emoji)
+
+Emoji; N ; No ; F
; False
+Emoji; Y ; Yes ; T
; True
+
+# Emoji_Component (EComp)
+
+EComp; N ; No ; F
; False
+EComp; Y ; Yes ; T
; True
+
+# Emoji_Modifier (EMod)
+
+EMod; N ; No ; F
; False
+EMod; Y ; Yes ; T
; True
+
+# Emoji_Modifier_Base (EBase)
+
+EBase; N ; No ; F
; False
+EBase; Y ; Yes ; T
; True
+
+# Emoji_Presentation (EPres)
+
+EPres; N ; No ; F
; False
+EPres; Y ; Yes ; T
; True
+
+# Equivalent_Unified_Ideograph (EqUIdeo)
+
+# @missing: 0000..10FFFF; Equivalent_Unified_Ideograph; <none>
+
+# Expands_On_NFC (XO_NFC)
+
+XO_NFC; N ; No ; F
; False
+XO_NFC; Y ; Yes ; T
; True
+
+# Expands_On_NFD (XO_NFD)
+
+XO_NFD; N ; No ; F
; False
+XO_NFD; Y ; Yes ; T
; True
+
+# Expands_On_NFKC (XO_NFKC)
+
+XO_NFKC; N ; No ; F
; False
+XO_NFKC; Y ; Yes ; T
; True
+
+# Expands_On_NFKD (XO_NFKD)
+
+XO_NFKD; N ; No ; F
; False
+XO_NFKD; Y ; Yes ; T
; True
+
+# Extended_Pictographic (ExtPict)
+
+ExtPict; N ; No ; F
; False
+ExtPict; Y ; Yes ; T
; True
+
+# Extender (Ext)
+
+Ext; N ; No ; F
; False
+Ext; Y ; Yes ; T
; True
+
+# FC_NFKC_Closure (FC_NFKC)
+
+# @missing: 0000..10FFFF; FC_NFKC_Closure; <code point>
+
+# Full_Composition_Exclusion (Comp_Ex)
+
+Comp_Ex; N ; No ; F
; False
+Comp_Ex; Y ; Yes ; T
; True
+
+# General_Category (gc)
+
+gc ; C ; Other # Cc
| Cf | Cn | Co | Cs
+gc ; Cc ; Control ;
cntrl
+gc ; Cf ; Format
+gc ; Cn ; Unassigned
+gc ; Co ; Private_Use
+gc ; Cs ; Surrogate
+gc ; L ; Letter # Ll
| Lm | Lo | Lt | Lu
+gc ; LC ; Cased_Letter # Ll
| Lt | Lu
+gc ; Ll ; Lowercase_Letter
+gc ; Lm ; Modifier_Letter
+gc ; Lo ; Other_Letter
+gc ; Lt ; Titlecase_Letter
+gc ; Lu ; Uppercase_Letter
+gc ; M ; Mark ;
Combining_Mark # Mc | Me | Mn
+gc ; Mc ; Spacing_Mark
+gc ; Me ; Enclosing_Mark
+gc ; Mn ; Nonspacing_Mark
+gc ; N ; Number # Nd
| Nl | No
+gc ; Nd ; Decimal_Number ;
digit
+gc ; Nl ; Letter_Number
+gc ; No ; Other_Number
+gc ; P ; Punctuation ;
punct # Pc | Pd | Pe | Pf | Pi | Po | Ps
+gc ; Pc ; Connector_Punctuation
+gc ; Pd ; Dash_Punctuation
+gc ; Pe ; Close_Punctuation
+gc ; Pf ; Final_Punctuation
+gc ; Pi ; Initial_Punctuation
+gc ; Po ; Other_Punctuation
+gc ; Ps ; Open_Punctuation
+gc ; S ; Symbol # Sc
| Sk | Sm | So
+gc ; Sc ; Currency_Symbol
+gc ; Sk ; Modifier_Symbol
+gc ; Sm ; Math_Symbol
+gc ; So ; Other_Symbol
+gc ; Z ; Separator # Zl
| Zp | Zs
+gc ; Zl ; Line_Separator
+gc ; Zp ; Paragraph_Separator
+gc ; Zs ; Space_Separator
+# @missing: 0000..10FFFF; General_Category; Unassigned
+
+# Grapheme_Base (Gr_Base)
+
+Gr_Base; N ; No ; F
; False
+Gr_Base; Y ; Yes ; T
; True
+
+# Grapheme_Cluster_Break (GCB)
+
+GCB; CN ; Control
+GCB; CR ; CR
+GCB; EB ; E_Base
+GCB; EBG ; E_Base_GAZ
+GCB; EM ; E_Modifier
+GCB; EX ; Extend
+GCB; GAZ ; Glue_After_Zwj
+GCB; L ; L
+GCB; LF ; LF
+GCB; LV ; LV
+GCB; LVT ; LVT
+GCB; PP ; Prepend
+GCB; RI ; Regional_Indicator
+GCB; SM ; SpacingMark
+GCB; T ; T
+GCB; V ; V
+GCB; XX ; Other
+GCB; ZWJ ; ZWJ
+
+# Grapheme_Extend (Gr_Ext)
+
+Gr_Ext; N ; No ; F
; False
+Gr_Ext; Y ; Yes ; T
; True
+
+# Grapheme_Link (Gr_Link)
+
+Gr_Link; N ; No ; F
; False
+Gr_Link; Y ; Yes ; T
; True
+
+# Hangul_Syllable_Type (hst)
+
+hst; L ; Leading_Jamo
+hst; LV ; LV_Syllable
+hst; LVT ; LVT_Syllable
+hst; NA ; Not_Applicable
+hst; T ; Trailing_Jamo
+hst; V ; Vowel_Jamo
+
+# Hex_Digit (Hex)
+
+Hex; N ; No ; F
; False
+Hex; Y ; Yes ; T
; True
+
+# Hyphen (Hyphen)
+
+Hyphen; N ; No ; F
; False
+Hyphen; Y ; Yes ; T
; True
+
+# IDS_Binary_Operator (IDSB)
+
+IDSB; N ; No ; F
; False
+IDSB; Y ; Yes ; T
; True
+
+# IDS_Trinary_Operator (IDST)
+
+IDST; N ; No ; F
; False
+IDST; Y ; Yes ; T
; True
+
+# ID_Continue (IDC)
+
+IDC; N ; No ; F
; False
+IDC; Y ; Yes ; T
; True
+
+# ID_Start (IDS)
+
+IDS; N ; No ; F
; False
+IDS; Y ; Yes ; T
; True
+
+# ISO_Comment (isc)
+
+# @missing: 0000..10FFFF; ISO_Comment; <none>
+
+# Ideographic (Ideo)
+
+Ideo; N ; No ; F
; False
+Ideo; Y ; Yes ; T
; True
+
+# Indic_Positional_Category (InPC)
+
+InPC; Bottom ; Bottom
+InPC; Bottom_And_Left ; Bottom_And_Left
+InPC; Bottom_And_Right ; Bottom_And_Right
+InPC; Left ; Left
+InPC; Left_And_Right ; Left_And_Right
+InPC; NA ; NA
+InPC; Overstruck ; Overstruck
+InPC; Right ; Right
+InPC; Top ; Top
+InPC; Top_And_Bottom ; Top_And_Bottom
+InPC; Top_And_Bottom_And_Left ; Top_And_Bottom_And_Left
+InPC; Top_And_Bottom_And_Right ; Top_And_Bottom_And_Right
+InPC; Top_And_Left ; Top_And_Left
+InPC; Top_And_Left_And_Right ; Top_And_Left_And_Right
+InPC; Top_And_Right ; Top_And_Right
+InPC; Visual_Order_Left ; Visual_Order_Left
+
+# Indic_Syllabic_Category (InSC)
+
+InSC; Avagraha ; Avagraha
+InSC; Bindu ; Bindu
+InSC; Brahmi_Joining_Number ; Brahmi_Joining_Number
+InSC; Cantillation_Mark ; Cantillation_Mark
+InSC; Consonant ; Consonant
+InSC; Consonant_Dead ; Consonant_Dead
+InSC; Consonant_Final ; Consonant_Final
+InSC; Consonant_Head_Letter ; Consonant_Head_Letter
+InSC; Consonant_Initial_Postfixed ; Consonant_Initial_Postfixed
+InSC; Consonant_Killer ; Consonant_Killer
+InSC; Consonant_Medial ; Consonant_Medial
+InSC; Consonant_Placeholder ; Consonant_Placeholder
+InSC; Consonant_Preceding_Repha ; Consonant_Preceding_Repha
+InSC; Consonant_Prefixed ; Consonant_Prefixed
+InSC; Consonant_Subjoined ; Consonant_Subjoined
+InSC; Consonant_Succeeding_Repha ; Consonant_Succeeding_Repha
+InSC; Consonant_With_Stacker ; Consonant_With_Stacker
+InSC; Gemination_Mark ; Gemination_Mark
+InSC; Invisible_Stacker ; Invisible_Stacker
+InSC; Joiner ; Joiner
+InSC; Modifying_Letter ; Modifying_Letter
+InSC; Non_Joiner ; Non_Joiner
+InSC; Nukta ; Nukta
+InSC; Number ; Number
+InSC; Number_Joiner ; Number_Joiner
+InSC; Other ; Other
+InSC; Pure_Killer ; Pure_Killer
+InSC; Register_Shifter ; Register_Shifter
+InSC; Syllable_Modifier ; Syllable_Modifier
+InSC; Tone_Letter ; Tone_Letter
+InSC; Tone_Mark ; Tone_Mark
+InSC; Virama ; Virama
+InSC; Visarga ; Visarga
+InSC; Vowel ; Vowel
+InSC; Vowel_Dependent ; Vowel_Dependent
+InSC; Vowel_Independent ; Vowel_Independent
+
+# Jamo_Short_Name (JSN)
+
+JSN; A ; A
+JSN; AE ; AE
+JSN; B ; B
+JSN; BB ; BB
+JSN; BS ; BS
+JSN; C ; C
+JSN; D ; D
+JSN; DD ; DD
+JSN; E ; E
+JSN; EO ; EO
+JSN; EU ; EU
+JSN; G ; G
+JSN; GG ; GG
+JSN; GS ; GS
+JSN; H ; H
+JSN; I ; I
+JSN; J ; J
+JSN; JJ ; JJ
+JSN; K ; K
+JSN; L ; L
+JSN; LB ; LB
+JSN; LG ; LG
+JSN; LH ; LH
+JSN; LM ; LM
+JSN; LP ; LP
+JSN; LS ; LS
+JSN; LT ; LT
+JSN; M ; M
+JSN; N ; N
+JSN; NG ; NG
+JSN; NH ; NH
+JSN; NJ ; NJ
+JSN; O ; O
+JSN; OE ; OE
+JSN; P ; P
+JSN; R ; R
+JSN; S ; S
+JSN; SS ; SS
+JSN; T ; T
+JSN; U ; U
+JSN; WA ; WA
+JSN; WAE ; WAE
+JSN; WE ; WE
+JSN; WEO ; WEO
+JSN; WI ; WI
+JSN; YA ; YA
+JSN; YAE ; YAE
+JSN; YE ; YE
+JSN; YEO ; YEO
+JSN; YI ; YI
+JSN; YO ; YO
+JSN; YU ; YU
+# @missing: 0000..10FFFF; Jamo_Short_Name; <none>
+
+# Join_Control (Join_C)
+
+Join_C; N ; No ; F
; False
+Join_C; Y ; Yes ; T
; True
+
+# Joining_Group (jg)
+
+jg ; African_Feh ; African_Feh
+jg ; African_Noon ; African_Noon
+jg ; African_Qaf ; African_Qaf
+jg ; Ain ; Ain
+jg ; Alaph ; Alaph
+jg ; Alef ; Alef
+jg ; Beh ; Beh
+jg ; Beth ; Beth
+jg ; Burushaski_Yeh_Barree ; Burushaski_Yeh_Barree
+jg ; Dal ; Dal
+jg ; Dalath_Rish ; Dalath_Rish
+jg ; E ; E
+jg ; Farsi_Yeh ; Farsi_Yeh
+jg ; Fe ; Fe
+jg ; Feh ; Feh
+jg ; Final_Semkath ; Final_Semkath
+jg ; Gaf ; Gaf
+jg ; Gamal ; Gamal
+jg ; Hah ; Hah
+jg ; Hanifi_Rohingya_Kinna_Ya ; Hanifi_Rohingya_Kinna_Ya
+jg ; Hanifi_Rohingya_Pa ; Hanifi_Rohingya_Pa
+jg ; He ; He
+jg ; Heh ; Heh
+jg ; Heh_Goal ; Heh_Goal
+jg ; Heth ; Heth
+jg ; Kaf ; Kaf
+jg ; Kaph ; Kaph
+jg ; Khaph ; Khaph
+jg ; Knotted_Heh ; Knotted_Heh
+jg ; Lam ; Lam
+jg ; Lamadh ; Lamadh
+jg ; Malayalam_Bha ; Malayalam_Bha
+jg ; Malayalam_Ja ; Malayalam_Ja
+jg ; Malayalam_Lla ; Malayalam_Lla
+jg ; Malayalam_Llla ; Malayalam_Llla
+jg ; Malayalam_Nga ; Malayalam_Nga
+jg ; Malayalam_Nna ; Malayalam_Nna
+jg ; Malayalam_Nnna ; Malayalam_Nnna
+jg ; Malayalam_Nya ; Malayalam_Nya
+jg ; Malayalam_Ra ; Malayalam_Ra
+jg ; Malayalam_Ssa ; Malayalam_Ssa
+jg ; Malayalam_Tta ; Malayalam_Tta
+jg ; Manichaean_Aleph ; Manichaean_Aleph
+jg ; Manichaean_Ayin ; Manichaean_Ayin
+jg ; Manichaean_Beth ; Manichaean_Beth
+jg ; Manichaean_Daleth ; Manichaean_Daleth
+jg ; Manichaean_Dhamedh ; Manichaean_Dhamedh
+jg ; Manichaean_Five ; Manichaean_Five
+jg ; Manichaean_Gimel ; Manichaean_Gimel
+jg ; Manichaean_Heth ; Manichaean_Heth
+jg ; Manichaean_Hundred ; Manichaean_Hundred
+jg ; Manichaean_Kaph ; Manichaean_Kaph
+jg ; Manichaean_Lamedh ; Manichaean_Lamedh
+jg ; Manichaean_Mem ; Manichaean_Mem
+jg ; Manichaean_Nun ; Manichaean_Nun
+jg ; Manichaean_One ; Manichaean_One
+jg ; Manichaean_Pe ; Manichaean_Pe
+jg ; Manichaean_Qoph ; Manichaean_Qoph
+jg ; Manichaean_Resh ; Manichaean_Resh
+jg ; Manichaean_Sadhe ; Manichaean_Sadhe
+jg ; Manichaean_Samekh ; Manichaean_Samekh
+jg ; Manichaean_Taw ; Manichaean_Taw
+jg ; Manichaean_Ten ; Manichaean_Ten
+jg ; Manichaean_Teth ; Manichaean_Teth
+jg ; Manichaean_Thamedh ; Manichaean_Thamedh
+jg ; Manichaean_Twenty ; Manichaean_Twenty
+jg ; Manichaean_Waw ; Manichaean_Waw
+jg ; Manichaean_Yodh ; Manichaean_Yodh
+jg ; Manichaean_Zayin ; Manichaean_Zayin
+jg ; Meem ; Meem
+jg ; Mim ; Mim
+jg ; No_Joining_Group ; No_Joining_Group
+jg ; Noon ; Noon
+jg ; Nun ; Nun
+jg ; Nya ; Nya
+jg ; Pe ; Pe
+jg ; Qaf ; Qaf
+jg ; Qaph ; Qaph
+jg ; Reh ; Reh
+jg ; Reversed_Pe ; Reversed_Pe
+jg ; Rohingya_Yeh ; Rohingya_Yeh
+jg ; Sad ; Sad
+jg ; Sadhe ; Sadhe
+jg ; Seen ; Seen
+jg ; Semkath ; Semkath
+jg ; Shin ; Shin
+jg ; Straight_Waw ; Straight_Waw
+jg ; Swash_Kaf ; Swash_Kaf
+jg ; Syriac_Waw ; Syriac_Waw
+jg ; Tah ; Tah
+jg ; Taw ; Taw
+jg ; Teh_Marbuta ; Teh_Marbuta
+jg ; Teh_Marbuta_Goal ; Hamza_On_Heh_Goal
+jg ; Teth ; Teth
+jg ; Thin_Yeh ; Thin_Yeh
+jg ; Vertical_Tail ; Vertical_Tail
+jg ; Waw ; Waw
+jg ; Yeh ; Yeh
+jg ; Yeh_Barree ; Yeh_Barree
+jg ; Yeh_With_Tail ; Yeh_With_Tail
+jg ; Yudh ; Yudh
+jg ; Yudh_He ; Yudh_He
+jg ; Zain ; Zain
+jg ; Zhain ; Zhain
+
+# Joining_Type (jt)
+
+jt ; C ; Join_Causing
+jt ; D ; Dual_Joining
+jt ; L ; Left_Joining
+jt ; R ; Right_Joining
+jt ; T ; Transparent
+jt ; U ; Non_Joining
+
+# Line_Break (lb)
+
+lb ; AI ; Ambiguous
+lb ; AL ; Alphabetic
+lb ; B2 ; Break_Both
+lb ; BA ; Break_After
+lb ; BB ; Break_Before
+lb ; BK ; Mandatory_Break
+lb ; CB ; Contingent_Break
+lb ; CJ ; Conditional_Japanese_Starter
+lb ; CL ; Close_Punctuation
+lb ; CM ; Combining_Mark
+lb ; CP ; Close_Parenthesis
+lb ; CR ; Carriage_Return
+lb ; EB ; E_Base
+lb ; EM ; E_Modifier
+lb ; EX ; Exclamation
+lb ; GL ; Glue
+lb ; H2 ; H2
+lb ; H3 ; H3
+lb ; HL ; Hebrew_Letter
+lb ; HY ; Hyphen
+lb ; ID ; Ideographic
+lb ; IN ; Inseparable ;
Inseperable
+lb ; IS ; Infix_Numeric
+lb ; JL ; JL
+lb ; JT ; JT
+lb ; JV ; JV
+lb ; LF ; Line_Feed
+lb ; NL ; Next_Line
+lb ; NS ; Nonstarter
+lb ; NU ; Numeric
+lb ; OP ; Open_Punctuation
+lb ; PO ; Postfix_Numeric
+lb ; PR ; Prefix_Numeric
+lb ; QU ; Quotation
+lb ; RI ; Regional_Indicator
+lb ; SA ; Complex_Context
+lb ; SG ; Surrogate
+lb ; SP ; Space
+lb ; SY ; Break_Symbols
+lb ; WJ ; Word_Joiner
+lb ; XX ; Unknown
+lb ; ZW ; ZWSpace
+lb ; ZWJ ; ZWJ
+
+# Logical_Order_Exception (LOE)
+
+LOE; N ; No ; F
; False
+LOE; Y ; Yes ; T
; True
+
+# Lowercase (Lower)
+
+Lower; N ; No ; F
; False
+Lower; Y ; Yes ; T
; True
+
+# Lowercase_Mapping (lc)
+
+# @missing: 0000..10FFFF; Lowercase_Mapping; <code point>
+
+# Math (Math)
+
+Math; N ; No ; F
; False
+Math; Y ; Yes ; T
; True
+
+# NFC_Quick_Check (NFC_QC)
+
+NFC_QC; M ; Maybe
+NFC_QC; N ; No
+NFC_QC; Y ; Yes
+
+# NFD_Quick_Check (NFD_QC)
+
+NFD_QC; N ; No
+NFD_QC; Y ; Yes
+
+# NFKC_Casefold (NFKC_CF)
+
+# @missing: 0000..10FFFF; NFKC_Casefold; <code point>
+
+# NFKC_Quick_Check (NFKC_QC)
+
+NFKC_QC; M ; Maybe
+NFKC_QC; N ; No
+NFKC_QC; Y ; Yes
+
+# NFKD_Quick_Check (NFKD_QC)
+
+NFKD_QC; N ; No
+NFKD_QC; Y ; Yes
+
+# Name (na)
+
+# @missing: 0000..10FFFF; Name; <none>
+
+# Name_Alias (Name_Alias)
+
+# @missing: 0000..10FFFF; Name_Alias; <none>
+
+# Noncharacter_Code_Point (NChar)
+
+NChar; N ; No ; F
; False
+NChar; Y ; Yes ; T
; True
+
+# Numeric_Type (nt)
+
+nt ; De ; Decimal
+nt ; Di ; Digit
+nt ; None ; None
+nt ; Nu ; Numeric
+
+# Numeric_Value (nv)
+
+# @missing: 0000..10FFFF; Numeric_Value; NaN
+
+# Other_Alphabetic (OAlpha)
+
+OAlpha; N ; No ; F
; False
+OAlpha; Y ; Yes ; T
; True
+
+# Other_Default_Ignorable_Code_Point (ODI)
+
+ODI; N ; No ; F
; False
+ODI; Y ; Yes ; T
; True
+
+# Other_Grapheme_Extend (OGr_Ext)
+
+OGr_Ext; N ; No ; F
; False
+OGr_Ext; Y ; Yes ; T
; True
+
+# Other_ID_Continue (OIDC)
+
+OIDC; N ; No ; F
; False
+OIDC; Y ; Yes ; T
; True
+
+# Other_ID_Start (OIDS)
+
+OIDS; N ; No ; F
; False
+OIDS; Y ; Yes ; T
; True
+
+# Other_Lowercase (OLower)
+
+OLower; N ; No ; F
; False
+OLower; Y ; Yes ; T
; True
+
+# Other_Math (OMath)
+
+OMath; N ; No ; F
; False
+OMath; Y ; Yes ; T
; True
+
+# Other_Uppercase (OUpper)
+
+OUpper; N ; No ; F
; False
+OUpper; Y ; Yes ; T
; True
+
+# Pattern_Syntax (Pat_Syn)
+
+Pat_Syn; N ; No ; F
; False
+Pat_Syn; Y ; Yes ; T
; True
+
+# Pattern_White_Space (Pat_WS)
+
+Pat_WS; N ; No ; F
; False
+Pat_WS; Y ; Yes ; T
; True
+
+# Prepended_Concatenation_Mark (PCM)
+
+PCM; N ; No ; F
; False
+PCM; Y ; Yes ; T
; True
+
+# Quotation_Mark (QMark)
+
+QMark; N ; No ; F
; False
+QMark; Y ; Yes ; T
; True
+
+# Radical (Radical)
+
+Radical; N ; No ; F
; False
+Radical; Y ; Yes ; T
; True
+
+# Regional_Indicator (RI)
+
+RI ; N ; No ; F
; False
+RI ; Y ; Yes ; T
; True
+
+# Script (sc)
+
+sc ; Adlm ; Adlam
+sc ; Aghb ; Caucasian_Albanian
+sc ; Ahom ; Ahom
+sc ; Arab ; Arabic
+sc ; Armi ; Imperial_Aramaic
+sc ; Armn ; Armenian
+sc ; Avst ; Avestan
+sc ; Bali ; Balinese
+sc ; Bamu ; Bamum
+sc ; Bass ; Bassa_Vah
+sc ; Batk ; Batak
+sc ; Beng ; Bengali
+sc ; Bhks ; Bhaiksuki
+sc ; Bopo ; Bopomofo
+sc ; Brah ; Brahmi
+sc ; Brai ; Braille
+sc ; Bugi ; Buginese
+sc ; Buhd ; Buhid
+sc ; Cakm ; Chakma
+sc ; Cans ; Canadian_Aboriginal
+sc ; Cari ; Carian
+sc ; Cham ; Cham
+sc ; Cher ; Cherokee
+sc ; Chrs ; Chorasmian
+sc ; Copt ; Coptic ; Qaac
+sc ; Cpmn ; Cypro_Minoan
+sc ; Cprt ; Cypriot
+sc ; Cyrl ; Cyrillic
+sc ; Deva ; Devanagari
+sc ; Diak ; Dives_Akuru
+sc ; Dogr ; Dogra
+sc ; Dsrt ; Deseret
+sc ; Dupl ; Duployan
+sc ; Egyp ; Egyptian_Hieroglyphs
+sc ; Elba ; Elbasan
+sc ; Elym ; Elymaic
+sc ; Ethi ; Ethiopic
+sc ; Geor ; Georgian
+sc ; Glag ; Glagolitic
+sc ; Gong ; Gunjala_Gondi
+sc ; Gonm ; Masaram_Gondi
+sc ; Goth ; Gothic
+sc ; Gran ; Grantha
+sc ; Grek ; Greek
+sc ; Gujr ; Gujarati
+sc ; Guru ; Gurmukhi
+sc ; Hang ; Hangul
+sc ; Hani ; Han
+sc ; Hano ; Hanunoo
+sc ; Hatr ; Hatran
+sc ; Hebr ; Hebrew
+sc ; Hira ; Hiragana
+sc ; Hluw ; Anatolian_Hieroglyphs
+sc ; Hmng ; Pahawh_Hmong
+sc ; Hmnp ; Nyiakeng_Puachue_Hmong
+sc ; Hrkt ; Katakana_Or_Hiragana
+sc ; Hung ; Old_Hungarian
+sc ; Ital ; Old_Italic
+sc ; Java ; Javanese
+sc ; Kali ; Kayah_Li
+sc ; Kana ; Katakana
+sc ; Khar ; Kharoshthi
+sc ; Khmr ; Khmer
+sc ; Khoj ; Khojki
+sc ; Kits ; Khitan_Small_Script
+sc ; Knda ; Kannada
+sc ; Kthi ; Kaithi
+sc ; Lana ; Tai_Tham
+sc ; Laoo ; Lao
+sc ; Latn ; Latin
+sc ; Lepc ; Lepcha
+sc ; Limb ; Limbu
+sc ; Lina ; Linear_A
+sc ; Linb ; Linear_B
+sc ; Lisu ; Lisu
+sc ; Lyci ; Lycian
+sc ; Lydi ; Lydian
+sc ; Mahj ; Mahajani
+sc ; Maka ; Makasar
+sc ; Mand ; Mandaic
+sc ; Mani ; Manichaean
+sc ; Marc ; Marchen
+sc ; Medf ; Medefaidrin
+sc ; Mend ; Mende_Kikakui
+sc ; Merc ; Meroitic_Cursive
+sc ; Mero ; Meroitic_Hieroglyphs
+sc ; Mlym ; Malayalam
+sc ; Modi ; Modi
+sc ; Mong ; Mongolian
+sc ; Mroo ; Mro
+sc ; Mtei ; Meetei_Mayek
+sc ; Mult ; Multani
+sc ; Mymr ; Myanmar
+sc ; Nand ; Nandinagari
+sc ; Narb ; Old_North_Arabian
+sc ; Nbat ; Nabataean
+sc ; Newa ; Newa
+sc ; Nkoo ; Nko
+sc ; Nshu ; Nushu
+sc ; Ogam ; Ogham
+sc ; Olck ; Ol_Chiki
+sc ; Orkh ; Old_Turkic
+sc ; Orya ; Oriya
+sc ; Osge ; Osage
+sc ; Osma ; Osmanya
+sc ; Ougr ; Old_Uyghur
+sc ; Palm ; Palmyrene
+sc ; Pauc ; Pau_Cin_Hau
+sc ; Perm ; Old_Permic
+sc ; Phag ; Phags_Pa
+sc ; Phli ; Inscriptional_Pahlavi
+sc ; Phlp ; Psalter_Pahlavi
+sc ; Phnx ; Phoenician
+sc ; Plrd ; Miao
+sc ; Prti ; Inscriptional_Parthian
+sc ; Rjng ; Rejang
+sc ; Rohg ; Hanifi_Rohingya
+sc ; Runr ; Runic
+sc ; Samr ; Samaritan
+sc ; Sarb ; Old_South_Arabian
+sc ; Saur ; Saurashtra
+sc ; Sgnw ; SignWriting
+sc ; Shaw ; Shavian
+sc ; Shrd ; Sharada
+sc ; Sidd ; Siddham
+sc ; Sind ; Khudawadi
+sc ; Sinh ; Sinhala
+sc ; Sogd ; Sogdian
+sc ; Sogo ; Old_Sogdian
+sc ; Sora ; Sora_Sompeng
+sc ; Soyo ; Soyombo
+sc ; Sund ; Sundanese
+sc ; Sylo ; Syloti_Nagri
+sc ; Syrc ; Syriac
+sc ; Tagb ; Tagbanwa
+sc ; Takr ; Takri
+sc ; Tale ; Tai_Le
+sc ; Talu ; New_Tai_Lue
+sc ; Taml ; Tamil
+sc ; Tang ; Tangut
+sc ; Tavt ; Tai_Viet
+sc ; Telu ; Telugu
+sc ; Tfng ; Tifinagh
+sc ; Tglg ; Tagalog
+sc ; Thaa ; Thaana
+sc ; Thai ; Thai
+sc ; Tibt ; Tibetan
+sc ; Tirh ; Tirhuta
+sc ; Tnsa ; Tangsa
+sc ; Toto ; Toto
+sc ; Ugar ; Ugaritic
+sc ; Vaii ; Vai
+sc ; Vith ; Vithkuqi
+sc ; Wara ; Warang_Citi
+sc ; Wcho ; Wancho
+sc ; Xpeo ; Old_Persian
+sc ; Xsux ; Cuneiform
+sc ; Yezi ; Yezidi
+sc ; Yiii ; Yi
+sc ; Zanb ; Zanabazar_Square
+sc ; Zinh ; Inherited ; Qaai
+sc ; Zyyy ; Common
+sc ; Zzzz ; Unknown
+
+# Script_Extensions (scx)
+
+# @missing: 0000..10FFFF; Script_Extensions; <script>
+
+# Sentence_Break (SB)
+
+SB ; AT ; ATerm
+SB ; CL ; Close
+SB ; CR ; CR
+SB ; EX ; Extend
+SB ; FO ; Format
+SB ; LE ; OLetter
+SB ; LF ; LF
+SB ; LO ; Lower
+SB ; NU ; Numeric
+SB ; SC ; SContinue
+SB ; SE ; Sep
+SB ; SP ; Sp
+SB ; ST ; STerm
+SB ; UP ; Upper
+SB ; XX ; Other
+
+# Sentence_Terminal (STerm)
+
+STerm; N ; No ; F
; False
+STerm; Y ; Yes ; T
; True
+
+# Simple_Case_Folding (scf)
+
+# @missing: 0000..10FFFF; Simple_Case_Folding; <code point>
+
+# Simple_Lowercase_Mapping (slc)
+
+# @missing: 0000..10FFFF; Simple_Lowercase_Mapping; <code point>
+
+# Simple_Titlecase_Mapping (stc)
+
+# @missing: 0000..10FFFF; Simple_Titlecase_Mapping; <code point>
+
+# Simple_Uppercase_Mapping (suc)
+
+# @missing: 0000..10FFFF; Simple_Uppercase_Mapping; <code point>
+
+# Soft_Dotted (SD)
+
+SD ; N ; No ; F
; False
+SD ; Y ; Yes ; T
; True
+
+# Terminal_Punctuation (Term)
+
+Term; N ; No ; F
; False
+Term; Y ; Yes ; T
; True
+
+# Titlecase_Mapping (tc)
+
+# @missing: 0000..10FFFF; Titlecase_Mapping; <code point>
+
+# Unicode_1_Name (na1)
+
+# @missing: 0000..10FFFF; Unicode_1_Name; <none>
+
+# Unified_Ideograph (UIdeo)
+
+UIdeo; N ; No ; F
; False
+UIdeo; Y ; Yes ; T
; True
+
+# Uppercase (Upper)
+
+Upper; N ; No ; F
; False
+Upper; Y ; Yes ; T
; True
+
+# Uppercase_Mapping (uc)
+
+# @missing: 0000..10FFFF; Uppercase_Mapping; <code point>
+
+# Variation_Selector (VS)
+
+VS ; N ; No ; F
; False
+VS ; Y ; Yes ; T
; True
+
+# Vertical_Orientation (vo)
+
+vo ; R ; Rotated
+vo ; Tr ; Transformed_Rotated
+vo ; Tu ; Transformed_Upright
+vo ; U ; Upright
+
+# White_Space (WSpace)
+
+WSpace; N ; No ; F
; False
+WSpace; Y ; Yes ; T
; True
+
+# Word_Break (WB)
+
+WB ; CR ; CR
+WB ; DQ ; Double_Quote
+WB ; EB ; E_Base
+WB ; EBG ; E_Base_GAZ
+WB ; EM ; E_Modifier
+WB ; EX ; ExtendNumLet
+WB ; Extend ; Extend
+WB ; FO ; Format
+WB ; GAZ ; Glue_After_Zwj
+WB ; HL ; Hebrew_Letter
+WB ; KA ; Katakana
+WB ; LE ; ALetter
+WB ; LF ; LF
+WB ; MB ; MidNumLet
+WB ; ML ; MidLetter
+WB ; MN ; MidNum
+WB ; NL ; Newline
+WB ; NU ; Numeric
+WB ; RI ; Regional_Indicator
+WB ; SQ ; Single_Quote
+WB ; WSegSpace ; WSegSpace
+WB ; XX ; Other
+WB ; ZWJ ; ZWJ
+
+# XID_Continue (XIDC)
+
+XIDC; N ; No ; F
; False
+XIDC; Y ; Yes ; T
; True
+
+# XID_Start (XIDS)
+
+XIDS; N ; No ; F
; False
+XIDS; Y ; Yes ; T
; True
+
+# cjkAccountingNumeric (cjkAccountingNumeric)
+
+# @missing: 0000..10FFFF; cjkAccountingNumeric; NaN
+
+# cjkCompatibilityVariant (cjkCompatibilityVariant)
+
+# @missing: 0000..10FFFF; cjkCompatibilityVariant; <code point>
+
+# cjkIICore (cjkIICore)
+
+# @missing: 0000..10FFFF; cjkIICore; <none>
+
+# cjkIRG_GSource (cjkIRG_GSource)
+
+# @missing: 0000..10FFFF; cjkIRG_GSource; <none>
+
+# cjkIRG_HSource (cjkIRG_HSource)
+
+# @missing: 0000..10FFFF; cjkIRG_HSource; <none>
+
+# cjkIRG_JSource (cjkIRG_JSource)
+
+# @missing: 0000..10FFFF; cjkIRG_JSource; <none>
+
+# cjkIRG_KPSource (cjkIRG_KPSource)
+
+# @missing: 0000..10FFFF; cjkIRG_KPSource; <none>
+
+# cjkIRG_KSource (cjkIRG_KSource)
+
+# @missing: 0000..10FFFF; cjkIRG_KSource; <none>
+
+# cjkIRG_MSource (cjkIRG_MSource)
+
+# @missing: 0000..10FFFF; cjkIRG_MSource; <none>
+
+# cjkIRG_SSource (cjkIRG_SSource)
+
+# @missing: 0000..10FFFF; cjkIRG_SSource; <none>
+
+# cjkIRG_TSource (cjkIRG_TSource)
+
+# @missing: 0000..10FFFF; cjkIRG_TSource; <none>
+
+# cjkIRG_UKSource (cjkIRG_UKSource)
+
+# @missing: 0000..10FFFF; cjkIRG_UKSource; <none>
+
+# cjkIRG_USource (cjkIRG_USource)
+
+# @missing: 0000..10FFFF; cjkIRG_USource; <none>
+
+# cjkIRG_VSource (cjkIRG_VSource)
+
+# @missing: 0000..10FFFF; cjkIRG_VSource; <none>
+
+# cjkOtherNumeric (cjkOtherNumeric)
+
+# @missing: 0000..10FFFF; cjkOtherNumeric; NaN
+
+# cjkPrimaryNumeric (cjkPrimaryNumeric)
+
+# @missing: 0000..10FFFF; cjkPrimaryNumeric; NaN
+
+# cjkRSUnicode (cjkRSUnicode)
+
+# @missing: 0000..10FFFF; cjkRSUnicode; <none>
+
+# EOF
diff --git a/admin/unidata/README b/admin/unidata/README
index 4b8444b0fe..2da01402b7 100644
--- a/admin/unidata/README
+++ b/admin/unidata/README
@@ -48,3 +48,19 @@ https://www.unicode.org/Public/emoji/14.0/emoji-sequences.txt
emoji-test.txt
https://unicode.org/Public/emoji/14.0/emoji-test.txt
2021-10-28
+
+ScriptExtensions.txt
+https://www.unicode.org/Public/UCD/latest/ucd/ScriptExtensions.txt
+2022-01-17
+
+Scripts.txt
+https://www.unicode.org/Public/UCD/latest/ucd/Scripts.txt
+2022-01-17
+
+PropertyValueAliases.txt
+https://www.unicode.org/Public/UCD/latest/ucd/PropertyValueAliases.txt
+2022-01-17
+
+IdnaMappingTable.txt
+https://www.unicode.org/Public/idna/latest/IdnaMappingTable.txt
+2022-01-18
diff --git a/admin/unidata/ScriptExtensions.txt
b/admin/unidata/ScriptExtensions.txt
new file mode 100644
index 0000000000..3f5cd1c0db
--- /dev/null
+++ b/admin/unidata/ScriptExtensions.txt
@@ -0,0 +1,628 @@
+# ScriptExtensions-14.0.0.txt
+# Date: 2021-06-04, 02:19:38 GMT
+# © 2021 Unicode®, Inc.
+# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in
the U.S. and other countries.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+#
+# Unicode Character Database
+# For documentation, see http://www.unicode.org/reports/tr44/
+#
+# The Script_Extensions property indicates which characters are commonly used
+# with more than one script, but with a limited number of scripts.
+# For each code point, there is one or more property values. Each such value
is a Script property value.
+# For more information, see:
+# UAX #24, Unicode Script Property: https://www.unicode.org/reports/tr24/
+# Especially the sections:
+# https://www.unicode.org/reports/tr24/#Assignment_Script_Values
+# https://www.unicode.org/reports/tr24/#Assignment_ScriptX_Values
+#
+# Each Script_Extensions value in this file consists of a set
+# of one or more abbreviated Script property values. The ordering of the
+# values in that set is not material, but for stability in presentation
+# it is given here as alphabetical.
+#
+# The Script_Extensions values are presented in sorted order in the file.
+# They are sorted first by the number of Script property values in their sets,
+# and then alphabetically by first differing Script property value.
+#
+# Following each distinct Script_Extensions value is the list of code
+# points associated with that value, listed in code point order.
+#
+# All code points not explicitly listed for Script_Extensions
+# have as their value the corresponding Script property value
+#
+# @missing: 0000..10FFFF; <script>
+
+# ================================================
+
+# Property: Script_Extensions
+
+# ================================================
+
+# Script_Extensions=Beng
+
+1CF7 ; Beng # Mc VEDIC SIGN ATIKRAMA
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Deva
+
+1CD1 ; Deva # Mn VEDIC TONE SHARA
+1CD4 ; Deva # Mn VEDIC SIGN YAJURVEDIC MIDLINE SVARITA
+1CDB ; Deva # Mn VEDIC TONE TRIPLE SVARITA
+1CDE..1CDF ; Deva # Mn [2] VEDIC TONE TWO DOTS BELOW..VEDIC TONE THREE
DOTS BELOW
+1CE2..1CE8 ; Deva # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA
ANUDATTA WITH TAIL
+1CEB..1CEC ; Deva # Lo [2] VEDIC SIGN ANUSVARA VAMAGOMUKHA..VEDIC SIGN
ANUSVARA VAMAGOMUKHA WITH TAIL
+1CEE..1CF1 ; Deva # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN
ANUSVARA UBHAYATO MUKHA
+
+# Total code points: 18
+
+# ================================================
+
+# Script_Extensions=Dupl
+
+1BCA0..1BCA3 ; Dupl # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND
FORMAT UP STEP
+
+# Total code points: 4
+
+# ================================================
+
+# Script_Extensions=Grek
+
+0342 ; Grek # Mn COMBINING GREEK PERISPOMENI
+0345 ; Grek # Mn COMBINING GREEK YPOGEGRAMMENI
+1DC0..1DC1 ; Grek # Mn [2] COMBINING DOTTED GRAVE ACCENT..COMBINING
DOTTED ACUTE ACCENT
+
+# Total code points: 4
+
+# ================================================
+
+# Script_Extensions=Hani
+
+3006 ; Hani # Lo IDEOGRAPHIC CLOSING MARK
+303E..303F ; Hani # So [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC
HALF FILL SPACE
+3190..3191 ; Hani # So [2] IDEOGRAPHIC ANNOTATION LINKING
MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
+3192..3195 ; Hani # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC
ANNOTATION FOUR MARK
+3196..319F ; Hani # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC
ANNOTATION MAN MARK
+31C0..31E3 ; Hani # So [36] CJK STROKE T..CJK STROKE Q
+3220..3229 ; Hani # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED
IDEOGRAPH TEN
+322A..3247 ; Hani # So [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED
IDEOGRAPH KOTO
+3280..3289 ; Hani # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
+328A..32B0 ; Hani # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
+32C0..32CB ; Hani # So [12] IDEOGRAPHIC TELEGRAPH SYMBOL FOR
JANUARY..IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
+32FF ; Hani # So SQUARE ERA NAME REIWA
+3358..3370 ; Hani # So [25] IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR
ZERO..IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
+337B..337F ; Hani # So [5] SQUARE ERA NAME HEISEI..SQUARE CORPORATION
+33E0..33FE ; Hani # So [31] IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY
ONE..IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
+1D360..1D371 ; Hani # No [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS
DIGIT NINE
+1F250..1F251 ; Hani # So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH
ACCEPT
+
+# Total code points: 238
+
+# ================================================
+
+# Script_Extensions=Latn
+
+0363..036F ; Latn # Mn [13] COMBINING LATIN SMALL LETTER A..COMBINING
LATIN SMALL LETTER X
+
+# Total code points: 13
+
+# ================================================
+
+# Script_Extensions=Nand
+
+1CFA ; Nand # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Syrc
+
+1DFA ; Syrc # Mn COMBINING DOT BELOW LEFT
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Arab Copt
+
+102E0 ; Arab Copt # Mn COPTIC EPACT THOUSANDS MARK
+102E1..102FB ; Arab Copt # No [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT
NUMBER NINE HUNDRED
+
+# Total code points: 28
+
+# ================================================
+
+# Script_Extensions=Arab Rohg
+
+06D4 ; Arab Rohg # Po ARABIC FULL STOP
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Arab Nkoo
+
+FD3E ; Arab Nkoo # Pe ORNATE LEFT PARENTHESIS
+FD3F ; Arab Nkoo # Ps ORNATE RIGHT PARENTHESIS
+
+# Total code points: 2
+
+# ================================================
+
+# Script_Extensions=Arab Syrc
+
+064B..0655 ; Arab Syrc # Mn [11] ARABIC FATHATAN..ARABIC HAMZA BELOW
+0670 ; Arab Syrc # Mn ARABIC LETTER SUPERSCRIPT ALEF
+
+# Total code points: 12
+
+# ================================================
+
+# Script_Extensions=Arab Thaa
+
+FDF2 ; Arab Thaa # Lo ARABIC LIGATURE ALLAH ISOLATED FORM
+FDFD ; Arab Thaa # So ARABIC LIGATURE BISMILLAH AR-RAHMAN
AR-RAHEEM
+
+# Total code points: 2
+
+# ================================================
+
+# Script_Extensions=Beng Deva
+
+1CD5..1CD6 ; Beng Deva # Mn [2] VEDIC TONE YAJURVEDIC AGGRAVATED
INDEPENDENT SVARITA..VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA
+1CD8 ; Beng Deva # Mn VEDIC TONE CANDRA BELOW
+1CE1 ; Beng Deva # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT
SVARITA
+1CEA ; Beng Deva # Lo VEDIC SIGN ANUSVARA BAHIRGOMUKHA
+1CED ; Beng Deva # Mn VEDIC SIGN TIRYAK
+1CF5..1CF6 ; Beng Deva # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN
UPADHMANIYA
+A8F1 ; Beng Deva # Mn COMBINING DEVANAGARI SIGN AVAGRAHA
+
+# Total code points: 9
+
+# ================================================
+
+# Script_Extensions=Bopo Hani
+
+302A..302D ; Bopo Hani # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC
ENTERING TONE MARK
+
+# Total code points: 4
+
+# ================================================
+
+# Script_Extensions=Bugi Java
+
+A9CF ; Bugi Java # Lm JAVANESE PANGRANGKEP
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Cprt Linb
+
+10102 ; Cprt Linb # Po AEGEAN CHECK MARK
+10137..1013F ; Cprt Linb # So [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE
THIRD SUBUNIT
+
+# Total code points: 10
+
+# ================================================
+
+# Script_Extensions=Cyrl Glag
+
+0484 ; Cyrl Glag # Mn COMBINING CYRILLIC PALATALIZATION
+0487 ; Cyrl Glag # Mn COMBINING CYRILLIC POKRYTIE
+2E43 ; Cyrl Glag # Po DASH WITH LEFT UPTURN
+A66F ; Cyrl Glag # Mn COMBINING CYRILLIC VZMET
+
+# Total code points: 4
+
+# ================================================
+
+# Script_Extensions=Cyrl Latn
+
+0485..0486 ; Cyrl Latn # Mn [2] COMBINING CYRILLIC DASIA
PNEUMATA..COMBINING CYRILLIC PSILI PNEUMATA
+
+# Total code points: 2
+
+# ================================================
+
+# Script_Extensions=Cyrl Perm
+
+0483 ; Cyrl Perm # Mn COMBINING CYRILLIC TITLO
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Cyrl Syrc
+
+1DF8 ; Cyrl Syrc # Mn COMBINING DOT ABOVE LEFT
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Deva Gran
+
+1CD3 ; Deva Gran # Po VEDIC SIGN NIHSHVASA
+1CF3 ; Deva Gran # Lo VEDIC SIGN ROTATED ARDHAVISARGA
+1CF8..1CF9 ; Deva Gran # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE
RING ABOVE
+
+# Total code points: 4
+
+# ================================================
+
+# Script_Extensions=Deva Nand
+
+1CE9 ; Deva Nand # Lo VEDIC SIGN ANUSVARA ANTARGOMUKHA
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Deva Shrd
+
+1CD7 ; Deva Shrd # Mn VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT
SVARITA
+1CD9 ; Deva Shrd # Mn VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT
SVARITA SCHROEDER
+1CDC..1CDD ; Deva Shrd # Mn [2] VEDIC TONE KATHAKA ANUDATTA..VEDIC TONE
DOT BELOW
+1CE0 ; Deva Shrd # Mn VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT
SVARITA
+
+# Total code points: 5
+
+# ================================================
+
+# Script_Extensions=Deva Taml
+
+A8F3 ; Deva Taml # Lo DEVANAGARI SIGN CANDRABINDU VIRAMA
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Geor Latn
+
+10FB ; Geor Latn # Po GEORGIAN PARAGRAPH SEPARATOR
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Gran Taml
+
+0BE6..0BEF ; Gran Taml # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
+0BF0..0BF2 ; Gran Taml # No [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE
THOUSAND
+0BF3 ; Gran Taml # So TAMIL DAY SIGN
+11301 ; Gran Taml # Mn GRANTHA SIGN CANDRABINDU
+11303 ; Gran Taml # Mc GRANTHA SIGN VISARGA
+1133B..1133C ; Gran Taml # Mn [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
+11FD0..11FD1 ; Gran Taml # No [2] TAMIL FRACTION ONE QUARTER..TAMIL
FRACTION ONE HALF-1
+11FD3 ; Gran Taml # No TAMIL FRACTION THREE QUARTERS
+
+# Total code points: 21
+
+# ================================================
+
+# Script_Extensions=Gujr Khoj
+
+0AE6..0AEF ; Gujr Khoj # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+
+# Total code points: 10
+
+# ================================================
+
+# Script_Extensions=Guru Mult
+
+0A66..0A6F ; Guru Mult # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
+
+# Total code points: 10
+
+# ================================================
+
+# Script_Extensions=Hani Latn
+
+A700..A707 ; Hani Latn # Sk [8] MODIFIER LETTER CHINESE TONE YIN
PING..MODIFIER LETTER CHINESE TONE YANG RU
+
+# Total code points: 8
+
+# ================================================
+
+# Script_Extensions=Hira Kana
+
+3031..3035 ; Hira Kana # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA
REPEAT MARK LOWER HALF
+3099..309A ; Hira Kana # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND
MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309B..309C ; Hira Kana # Sk [2] KATAKANA-HIRAGANA VOICED SOUND
MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+30A0 ; Hira Kana # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN
+30FC ; Hira Kana # Lm KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF70 ; Hira Kana # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED
SOUND MARK
+FF9E..FF9F ; Hira Kana # Lm [2] HALFWIDTH KATAKANA VOICED SOUND
MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+
+# Total code points: 14
+
+# ================================================
+
+# Script_Extensions=Knda Nand
+
+0CE6..0CEF ; Knda Nand # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
+
+# Total code points: 10
+
+# ================================================
+
+# Script_Extensions=Latn Mong
+
+202F ; Latn Mong # Zs NARROW NO-BREAK SPACE
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Mani Ougr
+
+10AF2 ; Mani Ougr # Po MANICHAEAN PUNCTUATION DOUBLE DOT WITHIN
DOT
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Mong Phag
+
+1802..1803 ; Mong Phag # Po [2] MONGOLIAN COMMA..MONGOLIAN FULL STOP
+1805 ; Mong Phag # Po MONGOLIAN FOUR DOTS
+
+# Total code points: 3
+
+# ================================================
+
+# Script_Extensions=Arab Syrc Thaa
+
+061C ; Arab Syrc Thaa # Cf ARABIC LETTER MARK
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Arab Thaa Yezi
+
+0660..0669 ; Arab Thaa Yezi # Nd [10] ARABIC-INDIC DIGIT
ZERO..ARABIC-INDIC DIGIT NINE
+
+# Total code points: 10
+
+# ================================================
+
+# Script_Extensions=Beng Cakm Sylo
+
+09E6..09EF ; Beng Cakm Sylo # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT
NINE
+
+# Total code points: 10
+
+# ================================================
+
+# Script_Extensions=Cakm Mymr Tale
+
+1040..1049 ; Cakm Mymr Tale # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT
NINE
+
+# Total code points: 10
+
+# ================================================
+
+# Script_Extensions=Cpmn Cprt Linb
+
+10100..10101 ; Cpmn Cprt Linb # Po [2] AEGEAN WORD SEPARATOR LINE..AEGEAN
WORD SEPARATOR DOT
+
+# Total code points: 2
+
+# ================================================
+
+# Script_Extensions=Cprt Lina Linb
+
+10107..10133 ; Cprt Lina Linb # No [45] AEGEAN NUMBER ONE..AEGEAN NUMBER
NINETY THOUSAND
+
+# Total code points: 45
+
+# ================================================
+
+# Script_Extensions=Deva Gran Knda
+
+1CF4 ; Deva Gran Knda # Mn VEDIC TONE CANDRA ABOVE
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Deva Gran Latn
+
+20F0 ; Deva Gran Latn # Mn COMBINING ASTERISK ABOVE
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Hani Hira Kana
+
+303C ; Hani Hira Kana # Lo MASU MARK
+303D ; Hani Hira Kana # Po PART ALTERNATION MARK
+
+# Total code points: 2
+
+# ================================================
+
+# Script_Extensions=Kali Latn Mymr
+
+A92E ; Kali Latn Mymr # Po KAYAH LI SIGN CWI
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Beng Deva Gran Knda
+
+1CD0 ; Beng Deva Gran Knda # Mn VEDIC TONE KARSHANA
+1CD2 ; Beng Deva Gran Knda # Mn VEDIC TONE PRENKHA
+
+# Total code points: 2
+
+# ================================================
+
+# Script_Extensions=Buhd Hano Tagb Tglg
+
+1735..1736 ; Buhd Hano Tagb Tglg # Po [2] PHILIPPINE SINGLE
PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
+
+# Total code points: 2
+
+# ================================================
+
+# Script_Extensions=Deva Dogr Kthi Mahj
+
+0966..096F ; Deva Dogr Kthi Mahj # Nd [10] DEVANAGARI DIGIT
ZERO..DEVANAGARI DIGIT NINE
+
+# Total code points: 10
+
+# ================================================
+
+# Script_Extensions=Bopo Hang Hani Hira Kana
+
+3003 ; Bopo Hang Hani Hira Kana # Po DITTO MARK
+3013 ; Bopo Hang Hani Hira Kana # So GETA MARK
+301C ; Bopo Hang Hani Hira Kana # Pd WAVE DASH
+301D ; Bopo Hang Hani Hira Kana # Ps REVERSED DOUBLE PRIME
QUOTATION MARK
+301E..301F ; Bopo Hang Hani Hira Kana # Pe [2] DOUBLE PRIME QUOTATION
MARK..LOW DOUBLE PRIME QUOTATION MARK
+3030 ; Bopo Hang Hani Hira Kana # Pd WAVY DASH
+3037 ; Bopo Hang Hani Hira Kana # So IDEOGRAPHIC TELEGRAPH LINE
FEED SEPARATOR SYMBOL
+FE45..FE46 ; Bopo Hang Hani Hira Kana # Po [2] SESAME DOT..WHITE SESAME
DOT
+
+# Total code points: 10
+
+# ================================================
+
+# Script_Extensions=Arab Nkoo Rohg Syrc Thaa Yezi
+
+060C ; Arab Nkoo Rohg Syrc Thaa Yezi # Po ARABIC COMMA
+061B ; Arab Nkoo Rohg Syrc Thaa Yezi # Po ARABIC SEMICOLON
+
+# Total code points: 2
+
+# ================================================
+
+# Script_Extensions=Bopo Hang Hani Hira Kana Yiii
+
+3001..3002 ; Bopo Hang Hani Hira Kana Yiii # Po [2] IDEOGRAPHIC
COMMA..IDEOGRAPHIC FULL STOP
+3008 ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT ANGLE BRACKET
+3009 ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT ANGLE BRACKET
+300A ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT DOUBLE ANGLE
BRACKET
+300B ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT DOUBLE ANGLE
BRACKET
+300C ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT CORNER BRACKET
+300D ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT CORNER BRACKET
+300E ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT WHITE CORNER
BRACKET
+300F ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT WHITE CORNER
BRACKET
+3010 ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT BLACK LENTICULAR
BRACKET
+3011 ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT BLACK
LENTICULAR BRACKET
+3014 ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT TORTOISE SHELL
BRACKET
+3015 ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT TORTOISE SHELL
BRACKET
+3016 ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT WHITE LENTICULAR
BRACKET
+3017 ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT WHITE
LENTICULAR BRACKET
+3018 ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT WHITE TORTOISE
SHELL BRACKET
+3019 ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT WHITE TORTOISE
SHELL BRACKET
+301A ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT WHITE SQUARE
BRACKET
+301B ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT WHITE SQUARE
BRACKET
+30FB ; Bopo Hang Hani Hira Kana Yiii # Po KATAKANA MIDDLE DOT
+FF61 ; Bopo Hang Hani Hira Kana Yiii # Po HALFWIDTH IDEOGRAPHIC
FULL STOP
+FF62 ; Bopo Hang Hani Hira Kana Yiii # Ps HALFWIDTH LEFT CORNER
BRACKET
+FF63 ; Bopo Hang Hani Hira Kana Yiii # Pe HALFWIDTH RIGHT
CORNER BRACKET
+FF64..FF65 ; Bopo Hang Hani Hira Kana Yiii # Po [2] HALFWIDTH IDEOGRAPHIC
COMMA..HALFWIDTH KATAKANA MIDDLE DOT
+
+# Total code points: 26
+
+# ================================================
+
+# Script_Extensions=Deva Knda Mlym Orya Taml Telu
+
+1CDA ; Deva Knda Mlym Orya Taml Telu # Mn VEDIC TONE DOUBLE
SVARITA
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Adlm Arab Nkoo Rohg Syrc Thaa Yezi
+
+061F ; Adlm Arab Nkoo Rohg Syrc Thaa Yezi # Po ARABIC QUESTION
MARK
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Beng Deva Gran Knda Nand Orya Telu Tirh
+
+1CF2 ; Beng Deva Gran Knda Nand Orya Telu Tirh # Lo VEDIC SIGN
ARDHAVISARGA
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Adlm Arab Mand Mani Ougr Phlp Rohg Sogd Syrc
+
+0640 ; Adlm Arab Mand Mani Ougr Phlp Rohg Sogd Syrc # Lm ARABIC
TATWEEL
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh
+
+A836..A837 ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh # So
[2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
+A838 ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh # Sc
NORTH INDIC RUPEE MARK
+A839 ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh # So
NORTH INDIC QUANTITY MARK
+
+# Total code points: 4
+
+# ================================================
+
+# Script_Extensions=Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Taml Telu Tirh
+
+0952 ; Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Taml Telu Tirh #
Mn DEVANAGARI STRESS SIGN ANUDATTA
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Shrd Taml
Telu Tirh
+
+0951 ; Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Shrd Taml Telu
Tirh # Mn DEVANAGARI STRESS SIGN UDATTA
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Modi Nand Sind
Takr Tirh
+
+A833..A835 ; Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Modi Nand Sind Takr
Tirh # No [3] NORTH INDIC FRACTION ONE SIXTEENTH..NORTH INDIC FRACTION THREE
SIXTEENTHS
+
+# Total code points: 3
+
+# ================================================
+
+# Script_Extensions=Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Mlym Modi Nand
Sind Takr Tirh
+
+A830..A832 ; Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Mlym Modi Nand Sind
Takr Tirh # No [3] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION
THREE QUARTERS
+
+# Total code points: 3
+
+# ================================================
+
+# Script_Extensions=Beng Deva Dogr Gong Gonm Gran Gujr Guru Knda Mahj Mlym
Nand Orya Sind Sinh Sylo Takr Taml Telu Tirh
+
+0964 ; Beng Deva Dogr Gong Gonm Gran Gujr Guru Knda Mahj Mlym Nand
Orya Sind Sinh Sylo Takr Taml Telu Tirh # Po DEVANAGARI DANDA
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Beng Deva Dogr Gong Gonm Gran Gujr Guru Knda Limb Mahj
Mlym Nand Orya Sind Sinh Sylo Takr Taml Telu Tirh
+
+0965 ; Beng Deva Dogr Gong Gonm Gran Gujr Guru Knda Limb Mahj Mlym
Nand Orya Sind Sinh Sylo Takr Taml Telu Tirh # Po DEVANAGARI DOUBLE DANDA
+
+# Total code points: 1
+
+# EOF
diff --git a/admin/unidata/Scripts.txt b/admin/unidata/Scripts.txt
new file mode 100644
index 0000000000..a138373011
--- /dev/null
+++ b/admin/unidata/Scripts.txt
@@ -0,0 +1,2991 @@
+# Scripts-14.0.0.txt
+# Date: 2021-07-10, 00:35:31 GMT
+# © 2021 Unicode®, Inc.
+# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in
the U.S. and other countries.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+#
+# Unicode Character Database
+# For documentation, see http://www.unicode.org/reports/tr44/
+# For more information, see:
+# UAX #24, Unicode Script Property: https://www.unicode.org/reports/tr24/
+# Especially the sections:
+# https://www.unicode.org/reports/tr24/#Assignment_Script_Values
+# https://www.unicode.org/reports/tr24/#Assignment_ScriptX_Values
+#
+
+# ================================================
+
+# Property: Script
+
+# All code points not explicitly listed for Script
+# have the value Unknown (Zzzz).
+
+# @missing: 0000..10FFFF; Unknown
+
+# ================================================
+
+0000..001F ; Common # Cc [32] <control-0000>..<control-001F>
+0020 ; Common # Zs SPACE
+0021..0023 ; Common # Po [3] EXCLAMATION MARK..NUMBER SIGN
+0024 ; Common # Sc DOLLAR SIGN
+0025..0027 ; Common # Po [3] PERCENT SIGN..APOSTROPHE
+0028 ; Common # Ps LEFT PARENTHESIS
+0029 ; Common # Pe RIGHT PARENTHESIS
+002A ; Common # Po ASTERISK
+002B ; Common # Sm PLUS SIGN
+002C ; Common # Po COMMA
+002D ; Common # Pd HYPHEN-MINUS
+002E..002F ; Common # Po [2] FULL STOP..SOLIDUS
+0030..0039 ; Common # Nd [10] DIGIT ZERO..DIGIT NINE
+003A..003B ; Common # Po [2] COLON..SEMICOLON
+003C..003E ; Common # Sm [3] LESS-THAN SIGN..GREATER-THAN SIGN
+003F..0040 ; Common # Po [2] QUESTION MARK..COMMERCIAL AT
+005B ; Common # Ps LEFT SQUARE BRACKET
+005C ; Common # Po REVERSE SOLIDUS
+005D ; Common # Pe RIGHT SQUARE BRACKET
+005E ; Common # Sk CIRCUMFLEX ACCENT
+005F ; Common # Pc LOW LINE
+0060 ; Common # Sk GRAVE ACCENT
+007B ; Common # Ps LEFT CURLY BRACKET
+007C ; Common # Sm VERTICAL LINE
+007D ; Common # Pe RIGHT CURLY BRACKET
+007E ; Common # Sm TILDE
+007F..009F ; Common # Cc [33] <control-007F>..<control-009F>
+00A0 ; Common # Zs NO-BREAK SPACE
+00A1 ; Common # Po INVERTED EXCLAMATION MARK
+00A2..00A5 ; Common # Sc [4] CENT SIGN..YEN SIGN
+00A6 ; Common # So BROKEN BAR
+00A7 ; Common # Po SECTION SIGN
+00A8 ; Common # Sk DIAERESIS
+00A9 ; Common # So COPYRIGHT SIGN
+00AB ; Common # Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+00AC ; Common # Sm NOT SIGN
+00AD ; Common # Cf SOFT HYPHEN
+00AE ; Common # So REGISTERED SIGN
+00AF ; Common # Sk MACRON
+00B0 ; Common # So DEGREE SIGN
+00B1 ; Common # Sm PLUS-MINUS SIGN
+00B2..00B3 ; Common # No [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
+00B4 ; Common # Sk ACUTE ACCENT
+00B5 ; Common # L& MICRO SIGN
+00B6..00B7 ; Common # Po [2] PILCROW SIGN..MIDDLE DOT
+00B8 ; Common # Sk CEDILLA
+00B9 ; Common # No SUPERSCRIPT ONE
+00BB ; Common # Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+00BC..00BE ; Common # No [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION
THREE QUARTERS
+00BF ; Common # Po INVERTED QUESTION MARK
+00D7 ; Common # Sm MULTIPLICATION SIGN
+00F7 ; Common # Sm DIVISION SIGN
+02B9..02C1 ; Common # Lm [9] MODIFIER LETTER PRIME..MODIFIER LETTER
REVERSED GLOTTAL STOP
+02C2..02C5 ; Common # Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER
LETTER DOWN ARROWHEAD
+02C6..02D1 ; Common # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER
LETTER HALF TRIANGULAR COLON
+02D2..02DF ; Common # Sk [14] MODIFIER LETTER CENTRED RIGHT HALF
RING..MODIFIER LETTER CROSS ACCENT
+02E5..02E9 ; Common # Sk [5] MODIFIER LETTER EXTRA-HIGH TONE
BAR..MODIFIER LETTER EXTRA-LOW TONE BAR
+02EC ; Common # Lm MODIFIER LETTER VOICING
+02ED ; Common # Sk MODIFIER LETTER UNASPIRATED
+02EE ; Common # Lm MODIFIER LETTER DOUBLE APOSTROPHE
+02EF..02FF ; Common # Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER
LETTER LOW LEFT ARROW
+0374 ; Common # Lm GREEK NUMERAL SIGN
+037E ; Common # Po GREEK QUESTION MARK
+0385 ; Common # Sk GREEK DIALYTIKA TONOS
+0387 ; Common # Po GREEK ANO TELEIA
+0605 ; Common # Cf ARABIC NUMBER MARK ABOVE
+060C ; Common # Po ARABIC COMMA
+061B ; Common # Po ARABIC SEMICOLON
+061F ; Common # Po ARABIC QUESTION MARK
+0640 ; Common # Lm ARABIC TATWEEL
+06DD ; Common # Cf ARABIC END OF AYAH
+08E2 ; Common # Cf ARABIC DISPUTED END OF AYAH
+0964..0965 ; Common # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
+0E3F ; Common # Sc THAI CURRENCY SYMBOL BAHT
+0FD5..0FD8 ; Common # So [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI
SIGN WITH DOTS
+10FB ; Common # Po GEORGIAN PARAGRAPH SEPARATOR
+16EB..16ED ; Common # Po [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS
PUNCTUATION
+1735..1736 ; Common # Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE
DOUBLE PUNCTUATION
+1802..1803 ; Common # Po [2] MONGOLIAN COMMA..MONGOLIAN FULL STOP
+1805 ; Common # Po MONGOLIAN FOUR DOTS
+1CD3 ; Common # Po VEDIC SIGN NIHSHVASA
+1CE1 ; Common # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
+1CE9..1CEC ; Common # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN
ANUSVARA VAMAGOMUKHA WITH TAIL
+1CEE..1CF3 ; Common # Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC
SIGN ROTATED ARDHAVISARGA
+1CF5..1CF6 ; Common # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN
UPADHMANIYA
+1CF7 ; Common # Mc VEDIC SIGN ATIKRAMA
+1CFA ; Common # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
+2000..200A ; Common # Zs [11] EN QUAD..HAIR SPACE
+200B ; Common # Cf ZERO WIDTH SPACE
+200E..200F ; Common # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
+2010..2015 ; Common # Pd [6] HYPHEN..HORIZONTAL BAR
+2016..2017 ; Common # Po [2] DOUBLE VERTICAL LINE..DOUBLE LOW LINE
+2018 ; Common # Pi LEFT SINGLE QUOTATION MARK
+2019 ; Common # Pf RIGHT SINGLE QUOTATION MARK
+201A ; Common # Ps SINGLE LOW-9 QUOTATION MARK
+201B..201C ; Common # Pi [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT
DOUBLE QUOTATION MARK
+201D ; Common # Pf RIGHT DOUBLE QUOTATION MARK
+201E ; Common # Ps DOUBLE LOW-9 QUOTATION MARK
+201F ; Common # Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+2020..2027 ; Common # Po [8] DAGGER..HYPHENATION POINT
+2028 ; Common # Zl LINE SEPARATOR
+2029 ; Common # Zp PARAGRAPH SEPARATOR
+202A..202E ; Common # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT
OVERRIDE
+202F ; Common # Zs NARROW NO-BREAK SPACE
+2030..2038 ; Common # Po [9] PER MILLE SIGN..CARET
+2039 ; Common # Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+203A ; Common # Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+203B..203E ; Common # Po [4] REFERENCE MARK..OVERLINE
+203F..2040 ; Common # Pc [2] UNDERTIE..CHARACTER TIE
+2041..2043 ; Common # Po [3] CARET INSERTION POINT..HYPHEN BULLET
+2044 ; Common # Sm FRACTION SLASH
+2045 ; Common # Ps LEFT SQUARE BRACKET WITH QUILL
+2046 ; Common # Pe RIGHT SQUARE BRACKET WITH QUILL
+2047..2051 ; Common # Po [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED
VERTICALLY
+2052 ; Common # Sm COMMERCIAL MINUS SIGN
+2053 ; Common # Po SWUNG DASH
+2054 ; Common # Pc INVERTED UNDERTIE
+2055..205E ; Common # Po [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS
+205F ; Common # Zs MEDIUM MATHEMATICAL SPACE
+2060..2064 ; Common # Cf [5] WORD JOINER..INVISIBLE PLUS
+2066..206F ; Common # Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
+2070 ; Common # No SUPERSCRIPT ZERO
+2074..2079 ; Common # No [6] SUPERSCRIPT FOUR..SUPERSCRIPT NINE
+207A..207C ; Common # Sm [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS
SIGN
+207D ; Common # Ps SUPERSCRIPT LEFT PARENTHESIS
+207E ; Common # Pe SUPERSCRIPT RIGHT PARENTHESIS
+2080..2089 ; Common # No [10] SUBSCRIPT ZERO..SUBSCRIPT NINE
+208A..208C ; Common # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
+208D ; Common # Ps SUBSCRIPT LEFT PARENTHESIS
+208E ; Common # Pe SUBSCRIPT RIGHT PARENTHESIS
+20A0..20C0 ; Common # Sc [33] EURO-CURRENCY SIGN..SOM SIGN
+2100..2101 ; Common # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
+2102 ; Common # L& DOUBLE-STRUCK CAPITAL C
+2103..2106 ; Common # So [4] DEGREE CELSIUS..CADA UNA
+2107 ; Common # L& EULER CONSTANT
+2108..2109 ; Common # So [2] SCRUPLE..DEGREE FAHRENHEIT
+210A..2113 ; Common # L& [10] SCRIPT SMALL G..SCRIPT SMALL L
+2114 ; Common # So L B BAR SYMBOL
+2115 ; Common # L& DOUBLE-STRUCK CAPITAL N
+2116..2117 ; Common # So [2] NUMERO SIGN..SOUND RECORDING COPYRIGHT
+2118 ; Common # Sm SCRIPT CAPITAL P
+2119..211D ; Common # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK
CAPITAL R
+211E..2123 ; Common # So [6] PRESCRIPTION TAKE..VERSICLE
+2124 ; Common # L& DOUBLE-STRUCK CAPITAL Z
+2125 ; Common # So OUNCE SIGN
+2127 ; Common # So INVERTED OHM SIGN
+2128 ; Common # L& BLACK-LETTER CAPITAL Z
+2129 ; Common # So TURNED GREEK SMALL LETTER IOTA
+212C..212D ; Common # L& [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C
+212E ; Common # So ESTIMATED SYMBOL
+212F..2131 ; Common # L& [3] SCRIPT SMALL E..SCRIPT CAPITAL F
+2133..2134 ; Common # L& [2] SCRIPT CAPITAL M..SCRIPT SMALL O
+2135..2138 ; Common # Lo [4] ALEF SYMBOL..DALET SYMBOL
+2139 ; Common # L& INFORMATION SOURCE
+213A..213B ; Common # So [2] ROTATED CAPITAL Q..FACSIMILE SIGN
+213C..213F ; Common # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK
CAPITAL PI
+2140..2144 ; Common # Sm [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED
SANS-SERIF CAPITAL Y
+2145..2149 ; Common # L& [5] DOUBLE-STRUCK ITALIC CAPITAL
D..DOUBLE-STRUCK ITALIC SMALL J
+214A ; Common # So PROPERTY LINE
+214B ; Common # Sm TURNED AMPERSAND
+214C..214D ; Common # So [2] PER SIGN..AKTIESELSKAB
+214F ; Common # So SYMBOL FOR SAMARITAN SOURCE
+2150..215F ; Common # No [16] VULGAR FRACTION ONE SEVENTH..FRACTION
NUMERATOR ONE
+2189 ; Common # No VULGAR FRACTION ZERO THIRDS
+218A..218B ; Common # So [2] TURNED DIGIT TWO..TURNED DIGIT THREE
+2190..2194 ; Common # Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
+2195..2199 ; Common # So [5] UP DOWN ARROW..SOUTH WEST ARROW
+219A..219B ; Common # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS
ARROW WITH STROKE
+219C..219F ; Common # So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED
ARROW
+21A0 ; Common # Sm RIGHTWARDS TWO HEADED ARROW
+21A1..21A2 ; Common # So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW
WITH TAIL
+21A3 ; Common # Sm RIGHTWARDS ARROW WITH TAIL
+21A4..21A5 ; Common # So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM
BAR
+21A6 ; Common # Sm RIGHTWARDS ARROW FROM BAR
+21A7..21AD ; Common # So [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE
ARROW
+21AE ; Common # Sm LEFT RIGHT ARROW WITH STROKE
+21AF..21CD ; Common # So [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE
ARROW WITH STROKE
+21CE..21CF ; Common # Sm [2] LEFT RIGHT DOUBLE ARROW WITH
STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
+21D0..21D1 ; Common # So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW
+21D2 ; Common # Sm RIGHTWARDS DOUBLE ARROW
+21D3 ; Common # So DOWNWARDS DOUBLE ARROW
+21D4 ; Common # Sm LEFT RIGHT DOUBLE ARROW
+21D5..21F3 ; Common # So [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW
+21F4..22FF ; Common # Sm [268] RIGHT ARROW WITH SMALL CIRCLE..Z NOTATION
BAG MEMBERSHIP
+2300..2307 ; Common # So [8] DIAMETER SIGN..WAVY LINE
+2308 ; Common # Ps LEFT CEILING
+2309 ; Common # Pe RIGHT CEILING
+230A ; Common # Ps LEFT FLOOR
+230B ; Common # Pe RIGHT FLOOR
+230C..231F ; Common # So [20] BOTTOM RIGHT CROP..BOTTOM RIGHT CORNER
+2320..2321 ; Common # Sm [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL
+2322..2328 ; Common # So [7] FROWN..KEYBOARD
+2329 ; Common # Ps LEFT-POINTING ANGLE BRACKET
+232A ; Common # Pe RIGHT-POINTING ANGLE BRACKET
+232B..237B ; Common # So [81] ERASE TO THE LEFT..NOT CHECK MARK
+237C ; Common # Sm RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
+237D..239A ; Common # So [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
+239B..23B3 ; Common # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
+23B4..23DB ; Common # So [40] TOP SQUARE BRACKET..FUSE
+23DC..23E1 ; Common # Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL
BRACKET
+23E2..2426 ; Common # So [69] WHITE TRAPEZIUM..SYMBOL FOR SUBSTITUTE FORM
TWO
+2440..244A ; Common # So [11] OCR HOOK..OCR DOUBLE BACKSLASH
+2460..249B ; Common # No [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
+249C..24E9 ; Common # So [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED
LATIN SMALL LETTER Z
+24EA..24FF ; Common # No [22] CIRCLED DIGIT ZERO..NEGATIVE CIRCLED DIGIT
ZERO
+2500..25B6 ; Common # So [183] BOX DRAWINGS LIGHT HORIZONTAL..BLACK
RIGHT-POINTING TRIANGLE
+25B7 ; Common # Sm WHITE RIGHT-POINTING TRIANGLE
+25B8..25C0 ; Common # So [9] BLACK RIGHT-POINTING SMALL TRIANGLE..BLACK
LEFT-POINTING TRIANGLE
+25C1 ; Common # Sm WHITE LEFT-POINTING TRIANGLE
+25C2..25F7 ; Common # So [54] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE
CIRCLE WITH UPPER RIGHT QUADRANT
+25F8..25FF ; Common # Sm [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
+2600..266E ; Common # So [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN
+266F ; Common # Sm MUSIC SHARP SIGN
+2670..2767 ; Common # So [248] WEST SYRIAC CROSS..ROTATED FLORAL HEART
BULLET
+2768 ; Common # Ps MEDIUM LEFT PARENTHESIS ORNAMENT
+2769 ; Common # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT
+276A ; Common # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
+276B ; Common # Pe MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
+276C ; Common # Ps MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
+276D ; Common # Pe MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
+276E ; Common # Ps HEAVY LEFT-POINTING ANGLE QUOTATION MARK
ORNAMENT
+276F ; Common # Pe HEAVY RIGHT-POINTING ANGLE QUOTATION MARK
ORNAMENT
+2770 ; Common # Ps HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
+2771 ; Common # Pe HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
+2772 ; Common # Ps LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
+2773 ; Common # Pe LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
+2774 ; Common # Ps MEDIUM LEFT CURLY BRACKET ORNAMENT
+2775 ; Common # Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT
+2776..2793 ; Common # No [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT
NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+2794..27BF ; Common # So [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE
CURLY LOOP
+27C0..27C4 ; Common # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
+27C5 ; Common # Ps LEFT S-SHAPED BAG DELIMITER
+27C6 ; Common # Pe RIGHT S-SHAPED BAG DELIMITER
+27C7..27E5 ; Common # Sm [31] OR WITH DOT INSIDE..WHITE SQUARE WITH
RIGHTWARDS TICK
+27E6 ; Common # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET
+27E7 ; Common # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+27E8 ; Common # Ps MATHEMATICAL LEFT ANGLE BRACKET
+27E9 ; Common # Pe MATHEMATICAL RIGHT ANGLE BRACKET
+27EA ; Common # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+27EB ; Common # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+27EC ; Common # Ps MATHEMATICAL LEFT WHITE TORTOISE SHELL
BRACKET
+27ED ; Common # Pe MATHEMATICAL RIGHT WHITE TORTOISE SHELL
BRACKET
+27EE ; Common # Ps MATHEMATICAL LEFT FLATTENED PARENTHESIS
+27EF ; Common # Pe MATHEMATICAL RIGHT FLATTENED PARENTHESIS
+27F0..27FF ; Common # Sm [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS
SQUIGGLE ARROW
+2900..2982 ; Common # Sm [131] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL
STROKE..Z NOTATION TYPE COLON
+2983 ; Common # Ps LEFT WHITE CURLY BRACKET
+2984 ; Common # Pe RIGHT WHITE CURLY BRACKET
+2985 ; Common # Ps LEFT WHITE PARENTHESIS
+2986 ; Common # Pe RIGHT WHITE PARENTHESIS
+2987 ; Common # Ps Z NOTATION LEFT IMAGE BRACKET
+2988 ; Common # Pe Z NOTATION RIGHT IMAGE BRACKET
+2989 ; Common # Ps Z NOTATION LEFT BINDING BRACKET
+298A ; Common # Pe Z NOTATION RIGHT BINDING BRACKET
+298B ; Common # Ps LEFT SQUARE BRACKET WITH UNDERBAR
+298C ; Common # Pe RIGHT SQUARE BRACKET WITH UNDERBAR
+298D ; Common # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
+298E ; Common # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM
CORNER
+298F ; Common # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM
CORNER
+2990 ; Common # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
+2991 ; Common # Ps LEFT ANGLE BRACKET WITH DOT
+2992 ; Common # Pe RIGHT ANGLE BRACKET WITH DOT
+2993 ; Common # Ps LEFT ARC LESS-THAN BRACKET
+2994 ; Common # Pe RIGHT ARC GREATER-THAN BRACKET
+2995 ; Common # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET
+2996 ; Common # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET
+2997 ; Common # Ps LEFT BLACK TORTOISE SHELL BRACKET
+2998 ; Common # Pe RIGHT BLACK TORTOISE SHELL BRACKET
+2999..29D7 ; Common # Sm [63] DOTTED FENCE..BLACK HOURGLASS
+29D8 ; Common # Ps LEFT WIGGLY FENCE
+29D9 ; Common # Pe RIGHT WIGGLY FENCE
+29DA ; Common # Ps LEFT DOUBLE WIGGLY FENCE
+29DB ; Common # Pe RIGHT DOUBLE WIGGLY FENCE
+29DC..29FB ; Common # Sm [32] INCOMPLETE INFINITY..TRIPLE PLUS
+29FC ; Common # Ps LEFT-POINTING CURVED ANGLE BRACKET
+29FD ; Common # Pe RIGHT-POINTING CURVED ANGLE BRACKET
+29FE..2AFF ; Common # Sm [258] TINY..N-ARY WHITE VERTICAL BAR
+2B00..2B2F ; Common # So [48] NORTH EAST WHITE ARROW..WHITE VERTICAL
ELLIPSE
+2B30..2B44 ; Common # Sm [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS
ARROW THROUGH SUPERSET
+2B45..2B46 ; Common # So [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS
QUADRUPLE ARROW
+2B47..2B4C ; Common # Sm [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS
ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+2B4D..2B73 ; Common # So [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG
ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76..2B95 ; Common # So [32] NORTH WEST TRIANGLE-HEADED ARROW TO
BAR..RIGHTWARDS BLACK ARROW
+2B97..2BFF ; Common # So [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER
PAUSE SYMBOL
+2E00..2E01 ; Common # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE
DOTTED SUBSTITUTION MARKER
+2E02 ; Common # Pi LEFT SUBSTITUTION BRACKET
+2E03 ; Common # Pf RIGHT SUBSTITUTION BRACKET
+2E04 ; Common # Pi LEFT DOTTED SUBSTITUTION BRACKET
+2E05 ; Common # Pf RIGHT DOTTED SUBSTITUTION BRACKET
+2E06..2E08 ; Common # Po [3] RAISED INTERPOLATION MARKER..DOTTED
TRANSPOSITION MARKER
+2E09 ; Common # Pi LEFT TRANSPOSITION BRACKET
+2E0A ; Common # Pf RIGHT TRANSPOSITION BRACKET
+2E0B ; Common # Po RAISED SQUARE
+2E0C ; Common # Pi LEFT RAISED OMISSION BRACKET
+2E0D ; Common # Pf RIGHT RAISED OMISSION BRACKET
+2E0E..2E16 ; Common # Po [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING
ANGLE
+2E17 ; Common # Pd DOUBLE OBLIQUE HYPHEN
+2E18..2E19 ; Common # Po [2] INVERTED INTERROBANG..PALM BRANCH
+2E1A ; Common # Pd HYPHEN WITH DIAERESIS
+2E1B ; Common # Po TILDE WITH RING ABOVE
+2E1C ; Common # Pi LEFT LOW PARAPHRASE BRACKET
+2E1D ; Common # Pf RIGHT LOW PARAPHRASE BRACKET
+2E1E..2E1F ; Common # Po [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW
+2E20 ; Common # Pi LEFT VERTICAL BAR WITH QUILL
+2E21 ; Common # Pf RIGHT VERTICAL BAR WITH QUILL
+2E22 ; Common # Ps TOP LEFT HALF BRACKET
+2E23 ; Common # Pe TOP RIGHT HALF BRACKET
+2E24 ; Common # Ps BOTTOM LEFT HALF BRACKET
+2E25 ; Common # Pe BOTTOM RIGHT HALF BRACKET
+2E26 ; Common # Ps LEFT SIDEWAYS U BRACKET
+2E27 ; Common # Pe RIGHT SIDEWAYS U BRACKET
+2E28 ; Common # Ps LEFT DOUBLE PARENTHESIS
+2E29 ; Common # Pe RIGHT DOUBLE PARENTHESIS
+2E2A..2E2E ; Common # Po [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED
QUESTION MARK
+2E2F ; Common # Lm VERTICAL TILDE
+2E30..2E39 ; Common # Po [10] RING POINT..TOP HALF SECTION SIGN
+2E3A..2E3B ; Common # Pd [2] TWO-EM DASH..THREE-EM DASH
+2E3C..2E3F ; Common # Po [4] STENOGRAPHIC FULL STOP..CAPITULUM
+2E40 ; Common # Pd DOUBLE HYPHEN
+2E41 ; Common # Po REVERSED COMMA
+2E42 ; Common # Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK
+2E43..2E4F ; Common # Po [13] DASH WITH LEFT UPTURN..CORNISH VERSE DIVIDER
+2E50..2E51 ; Common # So [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY
WITH LEFT CROSSBAR
+2E52..2E54 ; Common # Po [3] TIRONIAN SIGN CAPITAL ET..MEDIEVAL QUESTION
MARK
+2E55 ; Common # Ps LEFT SQUARE BRACKET WITH STROKE
+2E56 ; Common # Pe RIGHT SQUARE BRACKET WITH STROKE
+2E57 ; Common # Ps LEFT SQUARE BRACKET WITH DOUBLE STROKE
+2E58 ; Common # Pe RIGHT SQUARE BRACKET WITH DOUBLE STROKE
+2E59 ; Common # Ps TOP HALF LEFT PARENTHESIS
+2E5A ; Common # Pe TOP HALF RIGHT PARENTHESIS
+2E5B ; Common # Ps BOTTOM HALF LEFT PARENTHESIS
+2E5C ; Common # Pe BOTTOM HALF RIGHT PARENTHESIS
+2E5D ; Common # Pd OBLIQUE HYPHEN
+2FF0..2FFB ; Common # So [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO
RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+3000 ; Common # Zs IDEOGRAPHIC SPACE
+3001..3003 ; Common # Po [3] IDEOGRAPHIC COMMA..DITTO MARK
+3004 ; Common # So JAPANESE INDUSTRIAL STANDARD SYMBOL
+3006 ; Common # Lo IDEOGRAPHIC CLOSING MARK
+3008 ; Common # Ps LEFT ANGLE BRACKET
+3009 ; Common # Pe RIGHT ANGLE BRACKET
+300A ; Common # Ps LEFT DOUBLE ANGLE BRACKET
+300B ; Common # Pe RIGHT DOUBLE ANGLE BRACKET
+300C ; Common # Ps LEFT CORNER BRACKET
+300D ; Common # Pe RIGHT CORNER BRACKET
+300E ; Common # Ps LEFT WHITE CORNER BRACKET
+300F ; Common # Pe RIGHT WHITE CORNER BRACKET
+3010 ; Common # Ps LEFT BLACK LENTICULAR BRACKET
+3011 ; Common # Pe RIGHT BLACK LENTICULAR BRACKET
+3012..3013 ; Common # So [2] POSTAL MARK..GETA MARK
+3014 ; Common # Ps LEFT TORTOISE SHELL BRACKET
+3015 ; Common # Pe RIGHT TORTOISE SHELL BRACKET
+3016 ; Common # Ps LEFT WHITE LENTICULAR BRACKET
+3017 ; Common # Pe RIGHT WHITE LENTICULAR BRACKET
+3018 ; Common # Ps LEFT WHITE TORTOISE SHELL BRACKET
+3019 ; Common # Pe RIGHT WHITE TORTOISE SHELL BRACKET
+301A ; Common # Ps LEFT WHITE SQUARE BRACKET
+301B ; Common # Pe RIGHT WHITE SQUARE BRACKET
+301C ; Common # Pd WAVE DASH
+301D ; Common # Ps REVERSED DOUBLE PRIME QUOTATION MARK
+301E..301F ; Common # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE
PRIME QUOTATION MARK
+3020 ; Common # So POSTAL MARK FACE
+3030 ; Common # Pd WAVY DASH
+3031..3035 ; Common # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA
REPEAT MARK LOWER HALF
+3036..3037 ; Common # So [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH
LINE FEED SEPARATOR SYMBOL
+303C ; Common # Lo MASU MARK
+303D ; Common # Po PART ALTERNATION MARK
+303E..303F ; Common # So [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC
HALF FILL SPACE
+309B..309C ; Common # Sk [2] KATAKANA-HIRAGANA VOICED SOUND
MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+30A0 ; Common # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN
+30FB ; Common # Po KATAKANA MIDDLE DOT
+30FC ; Common # Lm KATAKANA-HIRAGANA PROLONGED SOUND MARK
+3190..3191 ; Common # So [2] IDEOGRAPHIC ANNOTATION LINKING
MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
+3192..3195 ; Common # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC
ANNOTATION FOUR MARK
+3196..319F ; Common # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC
ANNOTATION MAN MARK
+31C0..31E3 ; Common # So [36] CJK STROKE T..CJK STROKE Q
+3220..3229 ; Common # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED
IDEOGRAPH TEN
+322A..3247 ; Common # So [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED
IDEOGRAPH KOTO
+3248..324F ; Common # No [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED
NUMBER EIGHTY ON BLACK SQUARE
+3250 ; Common # So PARTNERSHIP SIGN
+3251..325F ; Common # No [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER
THIRTY FIVE
+327F ; Common # So KOREAN STANDARD SYMBOL
+3280..3289 ; Common # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
+328A..32B0 ; Common # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH
NIGHT
+32B1..32BF ; Common # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER
FIFTY
+32C0..32CF ; Common # So [16] IDEOGRAPHIC TELEGRAPH SYMBOL FOR
JANUARY..LIMITED LIABILITY SIGN
+32FF ; Common # So SQUARE ERA NAME REIWA
+3358..33FF ; Common # So [168] IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR
ZERO..SQUARE GAL
+4DC0..4DFF ; Common # So [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM
FOR BEFORE COMPLETION
+A700..A716 ; Common # Sk [23] MODIFIER LETTER CHINESE TONE YIN
PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+A717..A71F ; Common # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER
LETTER LOW INVERTED EXCLAMATION MARK
+A720..A721 ; Common # Sk [2] MODIFIER LETTER STRESS AND HIGH
TONE..MODIFIER LETTER STRESS AND LOW TONE
+A788 ; Common # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A789..A78A ; Common # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT
EQUALS SIGN
+A830..A835 ; Common # No [6] NORTH INDIC FRACTION ONE QUARTER..NORTH
INDIC FRACTION THREE SIXTEENTHS
+A836..A837 ; Common # So [2] NORTH INDIC QUARTER MARK..NORTH INDIC
PLACEHOLDER MARK
+A838 ; Common # Sc NORTH INDIC RUPEE MARK
+A839 ; Common # So NORTH INDIC QUANTITY MARK
+A92E ; Common # Po KAYAH LI SIGN CWI
+A9CF ; Common # Lm JAVANESE PANGRANGKEP
+AB5B ; Common # Sk MODIFIER BREVE WITH INVERTED BREVE
+AB6A..AB6B ; Common # Sk [2] MODIFIER LETTER LEFT TACK..MODIFIER LETTER
RIGHT TACK
+FD3E ; Common # Pe ORNATE LEFT PARENTHESIS
+FD3F ; Common # Ps ORNATE RIGHT PARENTHESIS
+FE10..FE16 ; Common # Po [7] PRESENTATION FORM FOR VERTICAL
COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
+FE17 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE
LENTICULAR BRACKET
+FE18 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE
LENTICULAR BRAKCET
+FE19 ; Common # Po PRESENTATION FORM FOR VERTICAL HORIZONTAL
ELLIPSIS
+FE30 ; Common # Po PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE31..FE32 ; Common # Pd [2] PRESENTATION FORM FOR VERTICAL EM
DASH..PRESENTATION FORM FOR VERTICAL EN DASH
+FE33..FE34 ; Common # Pc [2] PRESENTATION FORM FOR VERTICAL LOW
LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE35 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT
PARENTHESIS
+FE36 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT
PARENTHESIS
+FE37 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT CURLY
BRACKET
+FE38 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT CURLY
BRACKET
+FE39 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT TORTOISE
SHELL BRACKET
+FE3A ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT
TORTOISE SHELL BRACKET
+FE3B ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT BLACK
LENTICULAR BRACKET
+FE3C ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT BLACK
LENTICULAR BRACKET
+FE3D ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT DOUBLE
ANGLE BRACKET
+FE3E ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE
ANGLE BRACKET
+FE3F ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT ANGLE
BRACKET
+FE40 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT ANGLE
BRACKET
+FE41 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER
BRACKET
+FE42 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER
BRACKET
+FE43 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE
CORNER BRACKET
+FE44 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE
CORNER BRACKET
+FE45..FE46 ; Common # Po [2] SESAME DOT..WHITE SESAME DOT
+FE47 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT SQUARE
BRACKET
+FE48 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT SQUARE
BRACKET
+FE49..FE4C ; Common # Po [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
+FE4D..FE4F ; Common # Pc [3] DASHED LOW LINE..WAVY LOW LINE
+FE50..FE52 ; Common # Po [3] SMALL COMMA..SMALL FULL STOP
+FE54..FE57 ; Common # Po [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
+FE58 ; Common # Pd SMALL EM DASH
+FE59 ; Common # Ps SMALL LEFT PARENTHESIS
+FE5A ; Common # Pe SMALL RIGHT PARENTHESIS
+FE5B ; Common # Ps SMALL LEFT CURLY BRACKET
+FE5C ; Common # Pe SMALL RIGHT CURLY BRACKET
+FE5D ; Common # Ps SMALL LEFT TORTOISE SHELL BRACKET
+FE5E ; Common # Pe SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F..FE61 ; Common # Po [3] SMALL NUMBER SIGN..SMALL ASTERISK
+FE62 ; Common # Sm SMALL PLUS SIGN
+FE63 ; Common # Pd SMALL HYPHEN-MINUS
+FE64..FE66 ; Common # Sm [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
+FE68 ; Common # Po SMALL REVERSE SOLIDUS
+FE69 ; Common # Sc SMALL DOLLAR SIGN
+FE6A..FE6B ; Common # Po [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT
+FEFF ; Common # Cf ZERO WIDTH NO-BREAK SPACE
+FF01..FF03 ; Common # Po [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER
SIGN
+FF04 ; Common # Sc FULLWIDTH DOLLAR SIGN
+FF05..FF07 ; Common # Po [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE
+FF08 ; Common # Ps FULLWIDTH LEFT PARENTHESIS
+FF09 ; Common # Pe FULLWIDTH RIGHT PARENTHESIS
+FF0A ; Common # Po FULLWIDTH ASTERISK
+FF0B ; Common # Sm FULLWIDTH PLUS SIGN
+FF0C ; Common # Po FULLWIDTH COMMA
+FF0D ; Common # Pd FULLWIDTH HYPHEN-MINUS
+FF0E..FF0F ; Common # Po [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS
+FF10..FF19 ; Common # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
+FF1A..FF1B ; Common # Po [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
+FF1C..FF1E ; Common # Sm [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH
GREATER-THAN SIGN
+FF1F..FF20 ; Common # Po [2] FULLWIDTH QUESTION MARK..FULLWIDTH
COMMERCIAL AT
+FF3B ; Common # Ps FULLWIDTH LEFT SQUARE BRACKET
+FF3C ; Common # Po FULLWIDTH REVERSE SOLIDUS
+FF3D ; Common # Pe FULLWIDTH RIGHT SQUARE BRACKET
+FF3E ; Common # Sk FULLWIDTH CIRCUMFLEX ACCENT
+FF3F ; Common # Pc FULLWIDTH LOW LINE
+FF40 ; Common # Sk FULLWIDTH GRAVE ACCENT
+FF5B ; Common # Ps FULLWIDTH LEFT CURLY BRACKET
+FF5C ; Common # Sm FULLWIDTH VERTICAL LINE
+FF5D ; Common # Pe FULLWIDTH RIGHT CURLY BRACKET
+FF5E ; Common # Sm FULLWIDTH TILDE
+FF5F ; Common # Ps FULLWIDTH LEFT WHITE PARENTHESIS
+FF60 ; Common # Pe FULLWIDTH RIGHT WHITE PARENTHESIS
+FF61 ; Common # Po HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62 ; Common # Ps HALFWIDTH LEFT CORNER BRACKET
+FF63 ; Common # Pe HALFWIDTH RIGHT CORNER BRACKET
+FF64..FF65 ; Common # Po [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH
KATAKANA MIDDLE DOT
+FF70 ; Common # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND
MARK
+FF9E..FF9F ; Common # Lm [2] HALFWIDTH KATAKANA VOICED SOUND
MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+FFE0..FFE1 ; Common # Sc [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN
+FFE2 ; Common # Sm FULLWIDTH NOT SIGN
+FFE3 ; Common # Sk FULLWIDTH MACRON
+FFE4 ; Common # So FULLWIDTH BROKEN BAR
+FFE5..FFE6 ; Common # Sc [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
+FFE8 ; Common # So HALFWIDTH FORMS LIGHT VERTICAL
+FFE9..FFEC ; Common # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH
DOWNWARDS ARROW
+FFED..FFEE ; Common # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE
CIRCLE
+FFF9..FFFB ; Common # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR
ANNOTATION TERMINATOR
+FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT
CHARACTER
+10100..10102 ; Common # Po [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
+10107..10133 ; Common # No [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY
THOUSAND
+10137..1013F ; Common # So [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE
THIRD SUBUNIT
+10190..1019C ; Common # So [13] ROMAN SEXTANS SIGN..ASCIA SYMBOL
+101D0..101FC ; Common # So [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC
SIGN WAVY BAND
+102E1..102FB ; Common # No [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER
NINE HUNDRED
+1BCA0..1BCA3 ; Common # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND
FORMAT UP STEP
+1CF50..1CFC3 ; Common # So [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK
+1D000..1D0F5 ; Common # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE
MUSICAL SYMBOL GORGON NEO KATO
+1D100..1D126 ; Common # So [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL
SYMBOL DRUM CLEF-2
+1D129..1D164 ; Common # So [60] MUSICAL SYMBOL MULTIPLE MEASURE
REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D165..1D166 ; Common # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL
SYMBOL COMBINING SPRECHGESANG STEM
+1D16A..1D16C ; Common # So [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL
SYMBOL FINGERED TREMOLO-3
+1D16D..1D172 ; Common # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION
DOT..MUSICAL SYMBOL COMBINING FLAG-5
+1D173..1D17A ; Common # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL
END PHRASE
+1D183..1D184 ; Common # So [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL
ARPEGGIATO DOWN
+1D18C..1D1A9 ; Common # So [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL
DEGREE SLASH
+1D1AE..1D1EA ; Common # So [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL
KORON
+1D2E0..1D2F3 ; Common # No [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
+1D300..1D356 ; Common # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
+1D360..1D378 ; Common # No [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
+1D400..1D454 ; Common # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL
ITALIC SMALL G
+1D456..1D49C ; Common # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL
SCRIPT CAPITAL A
+1D49E..1D49F ; Common # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL
SCRIPT CAPITAL D
+1D4A2 ; Common # L& MATHEMATICAL SCRIPT CAPITAL G
+1D4A5..1D4A6 ; Common # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL
SCRIPT CAPITAL K
+1D4A9..1D4AC ; Common # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL
SCRIPT CAPITAL Q
+1D4AE..1D4B9 ; Common # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL
SCRIPT SMALL D
+1D4BB ; Common # L& MATHEMATICAL SCRIPT SMALL F
+1D4BD..1D4C3 ; Common # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL
SCRIPT SMALL N
+1D4C5..1D505 ; Common # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL
FRAKTUR CAPITAL B
+1D507..1D50A ; Common # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL
FRAKTUR CAPITAL G
+1D50D..1D514 ; Common # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL
FRAKTUR CAPITAL Q
+1D516..1D51C ; Common # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL
FRAKTUR CAPITAL Y
+1D51E..1D539 ; Common # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL
DOUBLE-STRUCK CAPITAL B
+1D53B..1D53E ; Common # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL
D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D540..1D544 ; Common # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL
I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D546 ; Common # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D54A..1D550 ; Common # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL
S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D552..1D6A5 ; Common # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL
A..MATHEMATICAL ITALIC SMALL DOTLESS J
+1D6A8..1D6C0 ; Common # L& [25] MATHEMATICAL BOLD CAPITAL
ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
+1D6C1 ; Common # Sm MATHEMATICAL BOLD NABLA
+1D6C2..1D6DA ; Common # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL
BOLD SMALL OMEGA
+1D6DB ; Common # Sm MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+1D6DC..1D6FA ; Common # L& [31] MATHEMATICAL BOLD EPSILON
SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
+1D6FB ; Common # Sm MATHEMATICAL ITALIC NABLA
+1D6FC..1D714 ; Common # L& [25] MATHEMATICAL ITALIC SMALL
ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
+1D715 ; Common # Sm MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+1D716..1D734 ; Common # L& [31] MATHEMATICAL ITALIC EPSILON
SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D735 ; Common # Sm MATHEMATICAL BOLD ITALIC NABLA
+1D736..1D74E ; Common # L& [25] MATHEMATICAL BOLD ITALIC SMALL
ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
+1D74F ; Common # Sm MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+1D750..1D76E ; Common # L& [31] MATHEMATICAL BOLD ITALIC EPSILON
SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D76F ; Common # Sm MATHEMATICAL SANS-SERIF BOLD NABLA
+1D770..1D788 ; Common # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL
ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+1D789 ; Common # Sm MATHEMATICAL SANS-SERIF BOLD PARTIAL
DIFFERENTIAL
+1D78A..1D7A8 ; Common # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON
SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1D7A9 ; Common # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+1D7AA..1D7C2 ; Common # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL
ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+1D7C3 ; Common # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL
DIFFERENTIAL
+1D7C4..1D7CB ; Common # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON
SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1D7CE..1D7FF ; Common # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL
MONOSPACE DIGIT NINE
+1EC71..1ECAB ; Common # No [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER
PREFIXED NINE
+1ECAC ; Common # So INDIC SIYAQ PLACEHOLDER
+1ECAD..1ECAF ; Common # No [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC
SIYAQ FRACTION THREE QUARTERS
+1ECB0 ; Common # Sc INDIC SIYAQ RUPEE MARK
+1ECB1..1ECB4 ; Common # No [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC
SIYAQ ALTERNATE LAKH MARK
+1ED01..1ED2D ; Common # No [45] OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ
NUMBER NINETY THOUSAND
+1ED2E ; Common # So OTTOMAN SIYAQ MARRATAN
+1ED2F..1ED3D ; Common # No [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN
SIYAQ FRACTION ONE SIXTH
+1F000..1F02B ; Common # So [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
+1F030..1F093 ; Common # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE
VERTICAL-06-06
+1F0A0..1F0AE ; Common # So [15] PLAYING CARD BACK..PLAYING CARD KING OF
SPADES
+1F0B1..1F0BF ; Common # So [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED
JOKER
+1F0C1..1F0CF ; Common # So [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD
BLACK JOKER
+1F0D1..1F0F5 ; Common # So [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD
TRUMP-21
+1F100..1F10C ; Common # No [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE
CIRCLED SANS-SERIF DIGIT ZERO
+1F10D..1F1AD ; Common # So [161] CIRCLED ZERO WITH SLASH..MASK WORK SYMBOL
+1F1E6..1F1FF ; Common # So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL
INDICATOR SYMBOL LETTER Z
+1F201..1F202 ; Common # So [2] SQUARED KATAKANA KOKO..SQUARED KATAKANA SA
+1F210..1F23B ; Common # So [44] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED
CJK UNIFIED IDEOGRAPH-914D
+1F240..1F248 ; Common # So [9] TORTOISE SHELL BRACKETED CJK UNIFIED
IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F250..1F251 ; Common # So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED
IDEOGRAPH ACCEPT
+1F260..1F265 ; Common # So [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI
+1F300..1F3FA ; Common # So [251] CYCLONE..AMPHORA
+1F3FB..1F3FF ; Common # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI
MODIFIER FITZPATRICK TYPE-6
+1F400..1F6D7 ; Common # So [728] RAT..ELEVATOR
+1F6DD..1F6EC ; Common # So [16] PLAYGROUND SLIDE..AIRPLANE ARRIVING
+1F6F0..1F6FC ; Common # So [13] SATELLITE..ROLLER SKATE
+1F700..1F773 ; Common # So [116] ALCHEMICAL SYMBOL FOR
QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F780..1F7D8 ; Common # So [89] BLACK LEFT-POINTING ISOSCELES RIGHT
TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F7E0..1F7EB ; Common # So [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
+1F7F0 ; Common # So HEAVY EQUALS SIGN
+1F800..1F80B ; Common # So [12] LEFTWARDS ARROW WITH SMALL TRIANGLE
ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810..1F847 ; Common # So [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL
ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F850..1F859 ; Common # So [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN
SANS-SERIF ARROW
+1F860..1F887 ; Common # So [40] WIDE-HEADED LEFTWARDS LIGHT BARB
ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890..1F8AD ; Common # So [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW
SHAFT WIDTH TWO THIRDS
+1F8B0..1F8B1 ; Common # So [2] ARROW POINTING UPWARDS THEN NORTH
WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
+1F900..1FA53 ; Common # So [340] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK
CHESS KNIGHT-BISHOP
+1FA60..1FA6D ; Common # So [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
+1FA70..1FA74 ; Common # So [5] BALLET SHOES..THONG SANDAL
+1FA78..1FA7C ; Common # So [5] DROP OF BLOOD..CRUTCH
+1FA80..1FA86 ; Common # So [7] YO-YO..NESTING DOLLS
+1FA90..1FAAC ; Common # So [29] RINGED PLANET..HAMSA
+1FAB0..1FABA ; Common # So [11] FLY..NEST WITH EGGS
+1FAC0..1FAC5 ; Common # So [6] ANATOMICAL HEART..PERSON WITH CROWN
+1FAD0..1FAD9 ; Common # So [10] BLUEBERRIES..JAR
+1FAE0..1FAE7 ; Common # So [8] MELTING FACE..BUBBLES
+1FAF0..1FAF6 ; Common # So [7] HAND WITH INDEX FINGER AND THUMB
CROSSED..HEART HANDS
+1FB00..1FB92 ; Common # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM
SHADE AND LOWER HALF BLOCK
+1FB94..1FBCA ; Common # So [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT
HALF BLOCK..WHITE UP-POINTING CHEVRON
+1FBF0..1FBF9 ; Common # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
+E0001 ; Common # Cf LANGUAGE TAG
+E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG
+
+# Total code points: 8252
+
+# ================================================
+
+0041..005A ; Latin # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
+0061..007A ; Latin # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
+00AA ; Latin # Lo FEMININE ORDINAL INDICATOR
+00BA ; Latin # Lo MASCULINE ORDINAL INDICATOR
+00C0..00D6 ; Latin # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN
CAPITAL LETTER O WITH DIAERESIS
+00D8..00F6 ; Latin # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN
SMALL LETTER O WITH DIAERESIS
+00F8..01BA ; Latin # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL
LETTER EZH WITH TAIL
+01BB ; Latin # Lo LATIN LETTER TWO WITH STROKE
+01BC..01BF ; Latin # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER
WYNN
+01C0..01C3 ; Latin # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER
RETROFLEX CLICK
+01C4..0293 ; Latin # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN
SMALL LETTER EZH WITH CURL
+0294 ; Latin # Lo LATIN LETTER GLOTTAL STOP
+0295..02AF ; Latin # L& [27] LATIN LETTER PHARYNGEAL VOICED
FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+02B0..02B8 ; Latin # Lm [9] MODIFIER LETTER SMALL H..MODIFIER LETTER
SMALL Y
+02E0..02E4 ; Latin # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER
SMALL REVERSED GLOTTAL STOP
+1D00..1D25 ; Latin # L& [38] LATIN LETTER SMALL CAPITAL A..LATIN LETTER AIN
+1D2C..1D5C ; Latin # Lm [49] MODIFIER LETTER CAPITAL A..MODIFIER LETTER
SMALL AIN
+1D62..1D65 ; Latin # Lm [4] LATIN SUBSCRIPT SMALL LETTER I..LATIN
SUBSCRIPT SMALL LETTER V
+1D6B..1D77 ; Latin # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER
TURNED G
+1D79..1D9A ; Latin # L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL
LETTER EZH WITH RETROFLEX HOOK
+1D9B..1DBE ; Latin # Lm [36] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER
LETTER SMALL EZH
+1E00..1EFF ; Latin # L& [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN
SMALL LETTER Y WITH LOOP
+2071 ; Latin # Lm SUPERSCRIPT LATIN SMALL LETTER I
+207F ; Latin # Lm SUPERSCRIPT LATIN SMALL LETTER N
+2090..209C ; Latin # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN
SUBSCRIPT SMALL LETTER T
+212A..212B ; Latin # L& [2] KELVIN SIGN..ANGSTROM SIGN
+2132 ; Latin # L& TURNED CAPITAL F
+214E ; Latin # L& TURNED SMALL F
+2160..2182 ; Latin # Nl [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND
+2183..2184 ; Latin # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN
SMALL LETTER REVERSED C
+2185..2188 ; Latin # Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL
ONE HUNDRED THOUSAND
+2C60..2C7B ; Latin # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN
LETTER SMALL CAPITAL TURNED E
+2C7C..2C7D ; Latin # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER
LETTER CAPITAL V
+2C7E..2C7F ; Latin # L& [2] LATIN CAPITAL LETTER S WITH SWASH TAIL..LATIN
CAPITAL LETTER Z WITH SWASH TAIL
+A722..A76F ; Latin # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL
ALEF..LATIN SMALL LETTER CON
+A770 ; Latin # Lm MODIFIER LETTER US
+A771..A787 ; Latin # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER
INSULAR T
+A78B..A78E ; Latin # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL
LETTER L WITH RETROFLEX HOOK AND BELT
+A78F ; Latin # Lo LATIN LETTER SINOLOGICAL DOT
+A790..A7CA ; Latin # L& [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN
SMALL LETTER S WITH SHORT STROKE OVERLAY
+A7D0..A7D1 ; Latin # L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN
SMALL LETTER CLOSED INSULAR G
+A7D3 ; Latin # L& LATIN SMALL LETTER DOUBLE THORN
+A7D5..A7D9 ; Latin # L& [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL
LETTER SIGMOID S
+A7F2..A7F4 ; Latin # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER
CAPITAL Q
+A7F5..A7F6 ; Latin # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN
SMALL LETTER REVERSED HALF H
+A7F7 ; Latin # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
+A7F8..A7F9 ; Latin # Lm [2] MODIFIER LETTER CAPITAL H WITH
STROKE..MODIFIER LETTER SMALL LIGATURE OE
+A7FA ; Latin # L& LATIN LETTER SMALL CAPITAL TURNED M
+A7FB..A7FF ; Latin # Lo [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN
EPIGRAPHIC LETTER ARCHAIC M
+AB30..AB5A ; Latin # L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL
LETTER Y WITH SHORT RIGHT LEG
+AB5C..AB5F ; Latin # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER
SMALL U WITH LEFT HOOK
+AB60..AB64 ; Latin # L& [5] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL
LETTER INVERTED ALPHA
+AB66..AB68 ; Latin # L& [3] LATIN SMALL LETTER DZ DIGRAPH WITH RETROFLEX
HOOK..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE
+AB69 ; Latin # Lm MODIFIER LETTER SMALL TURNED W
+FB00..FB06 ; Latin # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE
ST
+FF21..FF3A ; Latin # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH
LATIN CAPITAL LETTER Z
+FF41..FF5A ; Latin # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH
LATIN SMALL LETTER Z
+10780..10785 ; Latin # Lm [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER
LETTER SMALL B WITH HOOK
+10787..107B0 ; Latin # Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER
LETTER SMALL V WITH RIGHT HOOK
+107B2..107BA ; Latin # Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER
LETTER SMALL S WITH CURL
+1DF00..1DF09 ; Latin # L& [10] LATIN SMALL LETTER FENG DIGRAPH WITH
TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
+1DF0A ; Latin # Lo LATIN LETTER RETROFLEX CLICK WITH RETROFLEX
HOOK
+1DF0B..1DF1E ; Latin # L& [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN
SMALL LETTER S WITH CURL
+
+# Total code points: 1475
+
+# ================================================
+
+0370..0373 ; Greek # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER
ARCHAIC SAMPI
+0375 ; Greek # Sk GREEK LOWER NUMERAL SIGN
+0376..0377 ; Greek # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN
DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
+037A ; Greek # Lm GREEK YPOGEGRAMMENI
+037B..037D ; Greek # L& [3] GREEK SMALL REVERSED LUNATE SIGMA
SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037F ; Greek # L& GREEK CAPITAL LETTER YOT
+0384 ; Greek # Sk GREEK TONOS
+0386 ; Greek # L& GREEK CAPITAL LETTER ALPHA WITH TONOS
+0388..038A ; Greek # L& [3] GREEK CAPITAL LETTER EPSILON WITH
TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
+038C ; Greek # L& GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E..03A1 ; Greek # L& [20] GREEK CAPITAL LETTER UPSILON WITH
TONOS..GREEK CAPITAL LETTER RHO
+03A3..03E1 ; Greek # L& [63] GREEK CAPITAL LETTER SIGMA..GREEK SMALL
LETTER SAMPI
+03F0..03F5 ; Greek # L& [6] GREEK KAPPA SYMBOL..GREEK LUNATE EPSILON
SYMBOL
+03F6 ; Greek # Sm GREEK REVERSED LUNATE EPSILON SYMBOL
+03F7..03FF ; Greek # L& [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL
REVERSED DOTTED LUNATE SIGMA SYMBOL
+1D26..1D2A ; Greek # L& [5] GREEK LETTER SMALL CAPITAL GAMMA..GREEK
LETTER SMALL CAPITAL PSI
+1D5D..1D61 ; Greek # Lm [5] MODIFIER LETTER SMALL BETA..MODIFIER LETTER
SMALL CHI
+1D66..1D6A ; Greek # Lm [5] GREEK SUBSCRIPT SMALL LETTER BETA..GREEK
SUBSCRIPT SMALL LETTER CHI
+1DBF ; Greek # Lm MODIFIER LETTER SMALL THETA
+1F00..1F15 ; Greek # L& [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK
SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F18..1F1D ; Greek # L& [6] GREEK CAPITAL LETTER EPSILON WITH
PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F20..1F45 ; Greek # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK
SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F48..1F4D ; Greek # L& [6] GREEK CAPITAL LETTER OMICRON WITH
PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F50..1F57 ; Greek # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK
SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F59 ; Greek # L& GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B ; Greek # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND
VARIA
+1F5D ; Greek # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND
OXIA
+1F5F..1F7D ; Greek # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND
PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
+1F80..1FB4 ; Greek # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND
YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6..1FBC ; Greek # L& [7] GREEK SMALL LETTER ALPHA WITH
PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBD ; Greek # Sk GREEK KORONIS
+1FBE ; Greek # L& GREEK PROSGEGRAMMENI
+1FBF..1FC1 ; Greek # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
+1FC2..1FC4 ; Greek # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND
YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6..1FCC ; Greek # L& [7] GREEK SMALL LETTER ETA WITH
PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD..1FCF ; Greek # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND
PERISPOMENI
+1FD0..1FD3 ; Greek # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK
SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6..1FDB ; Greek # L& [6] GREEK SMALL LETTER IOTA WITH
PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD..1FDF ; Greek # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND
PERISPOMENI
+1FE0..1FEC ; Greek # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK
CAPITAL LETTER RHO WITH DASIA
+1FED..1FEF ; Greek # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
+1FF2..1FF4 ; Greek # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND
YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6..1FFC ; Greek # L& [7] GREEK SMALL LETTER OMEGA WITH
PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD..1FFE ; Greek # Sk [2] GREEK OXIA..GREEK DASIA
+2126 ; Greek # L& OHM SIGN
+AB65 ; Greek # L& GREEK LETTER SMALL CAPITAL OMEGA
+10140..10174 ; Greek # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK
ACROPHONIC STRATIAN FIFTY MNAS
+10175..10178 ; Greek # No [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
+10179..10189 ; Greek # So [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
+1018A..1018B ; Greek # No [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
+1018C..1018E ; Greek # So [3] GREEK SINUSOID SIGN..NOMISMA SIGN
+101A0 ; Greek # So GREEK SYMBOL TAU RHO
+1D200..1D241 ; Greek # So [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK
INSTRUMENTAL NOTATION SYMBOL-54
+1D242..1D244 ; Greek # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING
GREEK MUSICAL PENTASEME
+1D245 ; Greek # So GREEK MUSICAL LEIMMA
+
+# Total code points: 518
+
+# ================================================
+
+0400..0481 ; Cyrillic # L& [130] CYRILLIC CAPITAL LETTER IE WITH
GRAVE..CYRILLIC SMALL LETTER KOPPA
+0482 ; Cyrillic # So CYRILLIC THOUSANDS SIGN
+0483..0484 ; Cyrillic # Mn [2] COMBINING CYRILLIC TITLO..COMBINING
CYRILLIC PALATALIZATION
+0487 ; Cyrillic # Mn COMBINING CYRILLIC POKRYTIE
+0488..0489 ; Cyrillic # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS
SIGN..COMBINING CYRILLIC MILLIONS SIGN
+048A..052F ; Cyrillic # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH
TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
+1C80..1C88 ; Cyrillic # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC
SMALL LETTER UNBLENDED UK
+1D2B ; Cyrillic # L& CYRILLIC LETTER SMALL CAPITAL EL
+1D78 ; Cyrillic # Lm MODIFIER LETTER CYRILLIC EN
+2DE0..2DFF ; Cyrillic # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING
CYRILLIC LETTER IOTIFIED BIG YUS
+A640..A66D ; Cyrillic # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC
SMALL LETTER DOUBLE MONOCULAR O
+A66E ; Cyrillic # Lo CYRILLIC LETTER MULTIOCULAR O
+A66F ; Cyrillic # Mn COMBINING CYRILLIC VZMET
+A670..A672 ; Cyrillic # Me [3] COMBINING CYRILLIC TEN MILLIONS
SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
+A673 ; Cyrillic # Po SLAVONIC ASTERISK
+A674..A67D ; Cyrillic # Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN
IE..COMBINING CYRILLIC PAYEROK
+A67E ; Cyrillic # Po CYRILLIC KAVYKA
+A67F ; Cyrillic # Lm CYRILLIC PAYEROK
+A680..A69B ; Cyrillic # L& [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC
SMALL LETTER CROSSED O
+A69C..A69D ; Cyrillic # Lm [2] MODIFIER LETTER CYRILLIC HARD
SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
+A69E..A69F ; Cyrillic # Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING
CYRILLIC LETTER IOTIFIED E
+FE2E..FE2F ; Cyrillic # Mn [2] COMBINING CYRILLIC TITLO LEFT
HALF..COMBINING CYRILLIC TITLO RIGHT HALF
+
+# Total code points: 443
+
+# ================================================
+
+0531..0556 ; Armenian # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN
CAPITAL LETTER FEH
+0559 ; Armenian # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING
+055A..055F ; Armenian # Po [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION
MARK
+0560..0588 ; Armenian # L& [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN
SMALL LETTER YI WITH STROKE
+0589 ; Armenian # Po ARMENIAN FULL STOP
+058A ; Armenian # Pd ARMENIAN HYPHEN
+058D..058E ; Armenian # So [2] RIGHT-FACING ARMENIAN ETERNITY
SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
+058F ; Armenian # Sc ARMENIAN DRAM SIGN
+FB13..FB17 ; Armenian # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN
SMALL LIGATURE MEN XEH
+
+# Total code points: 96
+
+# ================================================
+
+0591..05BD ; Hebrew # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
+05BE ; Hebrew # Pd HEBREW PUNCTUATION MAQAF
+05BF ; Hebrew # Mn HEBREW POINT RAFE
+05C0 ; Hebrew # Po HEBREW PUNCTUATION PASEQ
+05C1..05C2 ; Hebrew # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+05C3 ; Hebrew # Po HEBREW PUNCTUATION SOF PASUQ
+05C4..05C5 ; Hebrew # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
+05C6 ; Hebrew # Po HEBREW PUNCTUATION NUN HAFUKHA
+05C7 ; Hebrew # Mn HEBREW POINT QAMATS QATAN
+05D0..05EA ; Hebrew # Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
+05EF..05F2 ; Hebrew # Lo [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH
DOUBLE YOD
+05F3..05F4 ; Hebrew # Po [2] HEBREW PUNCTUATION GERESH..HEBREW
PUNCTUATION GERSHAYIM
+FB1D ; Hebrew # Lo HEBREW LETTER YOD WITH HIRIQ
+FB1E ; Hebrew # Mn HEBREW POINT JUDEO-SPANISH VARIKA
+FB1F..FB28 ; Hebrew # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD
PATAH..HEBREW LETTER WIDE TAV
+FB29 ; Hebrew # Sm HEBREW LETTER ALTERNATIVE PLUS SIGN
+FB2A..FB36 ; Hebrew # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW
LETTER ZAYIN WITH DAGESH
+FB38..FB3C ; Hebrew # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER
LAMED WITH DAGESH
+FB3E ; Hebrew # Lo HEBREW LETTER MEM WITH DAGESH
+FB40..FB41 ; Hebrew # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER
SAMEKH WITH DAGESH
+FB43..FB44 ; Hebrew # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW
LETTER PE WITH DAGESH
+FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
LIGATURE ALEF LAMED
+
+# Total code points: 134
+
+# ================================================
+
+0600..0604 ; Arabic # Cf [5] ARABIC NUMBER SIGN..ARABIC SIGN SAMVAT
+0606..0608 ; Arabic # Sm [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
+0609..060A ; Arabic # Po [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC
PER TEN THOUSAND SIGN
+060B ; Arabic # Sc AFGHANI SIGN
+060D ; Arabic # Po ARABIC DATE SEPARATOR
+060E..060F ; Arabic # So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
+0610..061A ; Arabic # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE
WASSALLAM..ARABIC SMALL KASRA
+061C ; Arabic # Cf ARABIC LETTER MARK
+061D..061E ; Arabic # Po [2] ARABIC END OF TEXT MARK..ARABIC TRIPLE DOT
PUNCTUATION MARK
+0620..063F ; Arabic # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER
FARSI YEH WITH THREE DOTS ABOVE
+0641..064A ; Arabic # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH
+0656..065F ; Arabic # Mn [10] ARABIC SUBSCRIPT ALEF..ARABIC WAVY HAMZA
BELOW
+0660..0669 ; Arabic # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT
NINE
+066A..066D ; Arabic # Po [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
+066E..066F ; Arabic # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER
DOTLESS QAF
+0671..06D3 ; Arabic # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH
BARREE WITH HAMZA ABOVE
+06D4 ; Arabic # Po ARABIC FULL STOP
+06D5 ; Arabic # Lo ARABIC LETTER AE
+06D6..06DC ; Arabic # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH
ALEF MAKSURA..ARABIC SMALL HIGH SEEN
+06DE ; Arabic # So ARABIC START OF RUB EL HIZB
+06DF..06E4 ; Arabic # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL
HIGH MADDA
+06E5..06E6 ; Arabic # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH
+06E7..06E8 ; Arabic # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
+06E9 ; Arabic # So ARABIC PLACE OF SAJDAH
+06EA..06ED ; Arabic # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL
LOW MEEM
+06EE..06EF ; Arabic # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC
LETTER REH WITH INVERTED V
+06F0..06F9 ; Arabic # Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED
ARABIC-INDIC DIGIT NINE
+06FA..06FC ; Arabic # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC
LETTER GHAIN WITH DOT BELOW
+06FD..06FE ; Arabic # So [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN
SINDHI POSTPOSITION MEN
+06FF ; Arabic # Lo ARABIC LETTER HEH WITH INVERTED V
+0750..077F ; Arabic # Lo [48] ARABIC LETTER BEH WITH THREE DOTS
HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
+0870..0887 ; Arabic # Lo [24] ARABIC LETTER ALEF WITH ATTACHED
FATHA..ARABIC BASELINE ROUND DOT
+0888 ; Arabic # Sk ARABIC RAISED ROUND DOT
+0889..088E ; Arabic # Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL
V..ARABIC VERTICAL TAIL
+0890..0891 ; Arabic # Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK
ABOVE
+0898..089F ; Arabic # Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF
MADDA OVER MADDA
+08A0..08C8 ; Arabic # Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC
LETTER GRAF
+08C9 ; Arabic # Lm ARABIC SMALL FARSI YEH
+08CA..08E1 ; Arabic # Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL
HIGH SIGN SAFHA
+08E3..08FF ; Arabic # Mn [29] ARABIC TURNED DAMMA BELOW..ARABIC MARK
SIDEWAYS NOON GHUNNA
+FB50..FBB1 ; Arabic # Lo [98] ARABIC LETTER ALEF WASLA ISOLATED
FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBB2..FBC2 ; Arabic # Sk [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA
ABOVE
+FBD3..FD3D ; Arabic # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC
LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD40..FD4F ; Arabic # So [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC
LIGATURE RAHIMAHUM ALLAAH
+FD50..FD8F ; Arabic # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM
INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92..FDC7 ; Arabic # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH
INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDCF ; Arabic # So ARABIC LIGATURE SALAAMUHU ALAYNAA
+FDF0..FDFB ; Arabic # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP
SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
+FDFC ; Arabic # Sc RIAL SIGN
+FDFD..FDFF ; Arabic # So [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN
AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL
+FE70..FE74 ; Arabic # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC
KASRATAN ISOLATED FORM
+FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE
LAM WITH ALEF FINAL FORM
+10E60..10E7E ; Arabic # No [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
+1EE00..1EE03 ; Arabic # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC
MATHEMATICAL DAL
+1EE05..1EE1F ; Arabic # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL
DOTLESS QAF
+1EE21..1EE22 ; Arabic # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC
MATHEMATICAL INITIAL JEEM
+1EE24 ; Arabic # Lo ARABIC MATHEMATICAL INITIAL HEH
+1EE27 ; Arabic # Lo ARABIC MATHEMATICAL INITIAL HAH
+1EE29..1EE32 ; Arabic # Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC
MATHEMATICAL INITIAL QAF
+1EE34..1EE37 ; Arabic # Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC
MATHEMATICAL INITIAL KHAH
+1EE39 ; Arabic # Lo ARABIC MATHEMATICAL INITIAL DAD
+1EE3B ; Arabic # Lo ARABIC MATHEMATICAL INITIAL GHAIN
+1EE42 ; Arabic # Lo ARABIC MATHEMATICAL TAILED JEEM
+1EE47 ; Arabic # Lo ARABIC MATHEMATICAL TAILED HAH
+1EE49 ; Arabic # Lo ARABIC MATHEMATICAL TAILED YEH
+1EE4B ; Arabic # Lo ARABIC MATHEMATICAL TAILED LAM
+1EE4D..1EE4F ; Arabic # Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC
MATHEMATICAL TAILED AIN
+1EE51..1EE52 ; Arabic # Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC
MATHEMATICAL TAILED QAF
+1EE54 ; Arabic # Lo ARABIC MATHEMATICAL TAILED SHEEN
+1EE57 ; Arabic # Lo ARABIC MATHEMATICAL TAILED KHAH
+1EE59 ; Arabic # Lo ARABIC MATHEMATICAL TAILED DAD
+1EE5B ; Arabic # Lo ARABIC MATHEMATICAL TAILED GHAIN
+1EE5D ; Arabic # Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON
+1EE5F ; Arabic # Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF
+1EE61..1EE62 ; Arabic # Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC
MATHEMATICAL STRETCHED JEEM
+1EE64 ; Arabic # Lo ARABIC MATHEMATICAL STRETCHED HEH
+1EE67..1EE6A ; Arabic # Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC
MATHEMATICAL STRETCHED KAF
+1EE6C..1EE72 ; Arabic # Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC
MATHEMATICAL STRETCHED QAF
+1EE74..1EE77 ; Arabic # Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC
MATHEMATICAL STRETCHED KHAH
+1EE79..1EE7C ; Arabic # Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC
MATHEMATICAL STRETCHED DOTLESS BEH
+1EE7E ; Arabic # Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+1EE80..1EE89 ; Arabic # Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC
MATHEMATICAL LOOPED YEH
+1EE8B..1EE9B ; Arabic # Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC
MATHEMATICAL LOOPED GHAIN
+1EEA1..1EEA3 ; Arabic # Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK
BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+1EEA5..1EEA9 ; Arabic # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK
WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+1EEAB..1EEBB ; Arabic # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK
LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+1EEF0..1EEF1 ; Arabic # Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH
WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
+
+# Total code points: 1365
+
+# ================================================
+
+0700..070D ; Syriac # Po [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN
ASTERISCUS
+070F ; Syriac # Cf SYRIAC ABBREVIATION MARK
+0710 ; Syriac # Lo SYRIAC LETTER ALAPH
+0711 ; Syriac # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
+0712..072F ; Syriac # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN
DHALATH
+0730..074A ; Syriac # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
+074D..074F ; Syriac # Lo [3] SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER
SOGDIAN FE
+0860..086A ; Syriac # Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER
MALAYALAM SSA
+
+# Total code points: 88
+
+# ================================================
+
+0780..07A5 ; Thaana # Lo [38] THAANA LETTER HAA..THAANA LETTER WAAVU
+07A6..07B0 ; Thaana # Mn [11] THAANA ABAFILI..THAANA SUKUN
+07B1 ; Thaana # Lo THAANA LETTER NAA
+
+# Total code points: 50
+
+# ================================================
+
+0900..0902 ; Devanagari # Mn [3] DEVANAGARI SIGN INVERTED
CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+0903 ; Devanagari # Mc DEVANAGARI SIGN VISARGA
+0904..0939 ; Devanagari # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI
LETTER HA
+093A ; Devanagari # Mn DEVANAGARI VOWEL SIGN OE
+093B ; Devanagari # Mc DEVANAGARI VOWEL SIGN OOE
+093C ; Devanagari # Mn DEVANAGARI SIGN NUKTA
+093D ; Devanagari # Lo DEVANAGARI SIGN AVAGRAHA
+093E..0940 ; Devanagari # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI
VOWEL SIGN II
+0941..0948 ; Devanagari # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI
VOWEL SIGN AI
+0949..094C ; Devanagari # Mc [4] DEVANAGARI VOWEL SIGN CANDRA
O..DEVANAGARI VOWEL SIGN AU
+094D ; Devanagari # Mn DEVANAGARI SIGN VIRAMA
+094E..094F ; Devanagari # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA
E..DEVANAGARI VOWEL SIGN AW
+0950 ; Devanagari # Lo DEVANAGARI OM
+0955..0957 ; Devanagari # Mn [3] DEVANAGARI VOWEL SIGN CANDRA LONG
E..DEVANAGARI VOWEL SIGN UUE
+0958..0961 ; Devanagari # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER
VOCALIC LL
+0962..0963 ; Devanagari # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC
L..DEVANAGARI VOWEL SIGN VOCALIC LL
+0966..096F ; Devanagari # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT
NINE
+0970 ; Devanagari # Po DEVANAGARI ABBREVIATION SIGN
+0971 ; Devanagari # Lm DEVANAGARI SIGN HIGH SPACING DOT
+0972..097F ; Devanagari # Lo [14] DEVANAGARI LETTER CANDRA A..DEVANAGARI
LETTER BBA
+A8E0..A8F1 ; Devanagari # Mn [18] COMBINING DEVANAGARI DIGIT
ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
+A8F2..A8F7 ; Devanagari # Lo [6] DEVANAGARI SIGN SPACING
CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
+A8F8..A8FA ; Devanagari # Po [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI
CARET
+A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
+A8FC ; Devanagari # Po DEVANAGARI SIGN SIDDHAM
+A8FD..A8FE ; Devanagari # Lo [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY
+A8FF ; Devanagari # Mn DEVANAGARI VOWEL SIGN AY
+
+# Total code points: 154
+
+# ================================================
+
+0980 ; Bengali # Lo BENGALI ANJI
+0981 ; Bengali # Mn BENGALI SIGN CANDRABINDU
+0982..0983 ; Bengali # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
+0985..098C ; Bengali # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
+098F..0990 ; Bengali # Lo [2] BENGALI LETTER E..BENGALI LETTER AI
+0993..09A8 ; Bengali # Lo [22] BENGALI LETTER O..BENGALI LETTER NA
+09AA..09B0 ; Bengali # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA
+09B2 ; Bengali # Lo BENGALI LETTER LA
+09B6..09B9 ; Bengali # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA
+09BC ; Bengali # Mn BENGALI SIGN NUKTA
+09BD ; Bengali # Lo BENGALI SIGN AVAGRAHA
+09BE..09C0 ; Bengali # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
+09C1..09C4 ; Bengali # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN
VOCALIC RR
+09C7..09C8 ; Bengali # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
+09CB..09CC ; Bengali # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+09CD ; Bengali # Mn BENGALI SIGN VIRAMA
+09CE ; Bengali # Lo BENGALI LETTER KHANDA TA
+09D7 ; Bengali # Mc BENGALI AU LENGTH MARK
+09DC..09DD ; Bengali # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF..09E1 ; Bengali # Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC
LL
+09E2..09E3 ; Bengali # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL
SIGN VOCALIC LL
+09E6..09EF ; Bengali # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
+09F0..09F1 ; Bengali # Lo [2] BENGALI LETTER RA WITH MIDDLE
DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
+09F2..09F3 ; Bengali # Sc [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN
+09F4..09F9 ; Bengali # No [6] BENGALI CURRENCY NUMERATOR ONE..BENGALI
CURRENCY DENOMINATOR SIXTEEN
+09FA ; Bengali # So BENGALI ISSHAR
+09FB ; Bengali # Sc BENGALI GANDA MARK
+09FC ; Bengali # Lo BENGALI LETTER VEDIC ANUSVARA
+09FD ; Bengali # Po BENGALI ABBREVIATION SIGN
+09FE ; Bengali # Mn BENGALI SANDHI MARK
+
+# Total code points: 96
+
+# ================================================
+
+0A01..0A02 ; Gurmukhi # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN
BINDI
+0A03 ; Gurmukhi # Mc GURMUKHI SIGN VISARGA
+0A05..0A0A ; Gurmukhi # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
+0A0F..0A10 ; Gurmukhi # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
+0A13..0A28 ; Gurmukhi # Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
+0A2A..0A30 ; Gurmukhi # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
+0A32..0A33 ; Gurmukhi # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
+0A35..0A36 ; Gurmukhi # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
+0A38..0A39 ; Gurmukhi # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
+0A3C ; Gurmukhi # Mn GURMUKHI SIGN NUKTA
+0A3E..0A40 ; Gurmukhi # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL
SIGN II
+0A41..0A42 ; Gurmukhi # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN
UU
+0A47..0A48 ; Gurmukhi # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL
SIGN AI
+0A4B..0A4D ; Gurmukhi # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN
VIRAMA
+0A51 ; Gurmukhi # Mn GURMUKHI SIGN UDAAT
+0A59..0A5C ; Gurmukhi # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
+0A5E ; Gurmukhi # Lo GURMUKHI LETTER FA
+0A66..0A6F ; Gurmukhi # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
+0A70..0A71 ; Gurmukhi # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
+0A72..0A74 ; Gurmukhi # Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR
+0A75 ; Gurmukhi # Mn GURMUKHI SIGN YAKASH
+0A76 ; Gurmukhi # Po GURMUKHI ABBREVIATION SIGN
+
+# Total code points: 80
+
+# ================================================
+
+0A81..0A82 ; Gujarati # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN
ANUSVARA
+0A83 ; Gujarati # Mc GUJARATI SIGN VISARGA
+0A85..0A8D ; Gujarati # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
+0A8F..0A91 ; Gujarati # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
+0A93..0AA8 ; Gujarati # Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA
+0AAA..0AB0 ; Gujarati # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA
+0AB2..0AB3 ; Gujarati # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
+0AB5..0AB9 ; Gujarati # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA
+0ABC ; Gujarati # Mn GUJARATI SIGN NUKTA
+0ABD ; Gujarati # Lo GUJARATI SIGN AVAGRAHA
+0ABE..0AC0 ; Gujarati # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL
SIGN II
+0AC1..0AC5 ; Gujarati # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN
CANDRA E
+0AC7..0AC8 ; Gujarati # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN
AI
+0AC9 ; Gujarati # Mc GUJARATI VOWEL SIGN CANDRA O
+0ACB..0ACC ; Gujarati # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN
AU
+0ACD ; Gujarati # Mn GUJARATI SIGN VIRAMA
+0AD0 ; Gujarati # Lo GUJARATI OM
+0AE0..0AE1 ; Gujarati # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI
LETTER VOCALIC LL
+0AE2..0AE3 ; Gujarati # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI
VOWEL SIGN VOCALIC LL
+0AE6..0AEF ; Gujarati # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+0AF0 ; Gujarati # Po GUJARATI ABBREVIATION SIGN
+0AF1 ; Gujarati # Sc GUJARATI RUPEE SIGN
+0AF9 ; Gujarati # Lo GUJARATI LETTER ZHA
+0AFA..0AFF ; Gujarati # Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN
TWO-CIRCLE NUKTA ABOVE
+
+# Total code points: 91
+
+# ================================================
+
+0B01 ; Oriya # Mn ORIYA SIGN CANDRABINDU
+0B02..0B03 ; Oriya # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
+0B05..0B0C ; Oriya # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
+0B0F..0B10 ; Oriya # Lo [2] ORIYA LETTER E..ORIYA LETTER AI
+0B13..0B28 ; Oriya # Lo [22] ORIYA LETTER O..ORIYA LETTER NA
+0B2A..0B30 ; Oriya # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA
+0B32..0B33 ; Oriya # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA
+0B35..0B39 ; Oriya # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA
+0B3C ; Oriya # Mn ORIYA SIGN NUKTA
+0B3D ; Oriya # Lo ORIYA SIGN AVAGRAHA
+0B3E ; Oriya # Mc ORIYA VOWEL SIGN AA
+0B3F ; Oriya # Mn ORIYA VOWEL SIGN I
+0B40 ; Oriya # Mc ORIYA VOWEL SIGN II
+0B41..0B44 ; Oriya # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC
RR
+0B47..0B48 ; Oriya # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
+0B4B..0B4C ; Oriya # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+0B4D ; Oriya # Mn ORIYA SIGN VIRAMA
+0B55..0B56 ; Oriya # Mn [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK
+0B57 ; Oriya # Mc ORIYA AU LENGTH MARK
+0B5C..0B5D ; Oriya # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0B5F..0B61 ; Oriya # Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
+0B62..0B63 ; Oriya # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN
VOCALIC LL
+0B66..0B6F ; Oriya # Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
+0B70 ; Oriya # So ORIYA ISSHAR
+0B71 ; Oriya # Lo ORIYA LETTER WA
+0B72..0B77 ; Oriya # No [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION
THREE SIXTEENTHS
+
+# Total code points: 91
+
+# ================================================
+
+0B82 ; Tamil # Mn TAMIL SIGN ANUSVARA
+0B83 ; Tamil # Lo TAMIL SIGN VISARGA
+0B85..0B8A ; Tamil # Lo [6] TAMIL LETTER A..TAMIL LETTER UU
+0B8E..0B90 ; Tamil # Lo [3] TAMIL LETTER E..TAMIL LETTER AI
+0B92..0B95 ; Tamil # Lo [4] TAMIL LETTER O..TAMIL LETTER KA
+0B99..0B9A ; Tamil # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA
+0B9C ; Tamil # Lo TAMIL LETTER JA
+0B9E..0B9F ; Tamil # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA
+0BA3..0BA4 ; Tamil # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA
+0BA8..0BAA ; Tamil # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA
+0BAE..0BB9 ; Tamil # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA
+0BBE..0BBF ; Tamil # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
+0BC0 ; Tamil # Mn TAMIL VOWEL SIGN II
+0BC1..0BC2 ; Tamil # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
+0BC6..0BC8 ; Tamil # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
+0BCA..0BCC ; Tamil # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+0BCD ; Tamil # Mn TAMIL SIGN VIRAMA
+0BD0 ; Tamil # Lo TAMIL OM
+0BD7 ; Tamil # Mc TAMIL AU LENGTH MARK
+0BE6..0BEF ; Tamil # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
+0BF0..0BF2 ; Tamil # No [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
+0BF3..0BF8 ; Tamil # So [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
+0BF9 ; Tamil # Sc TAMIL RUPEE SIGN
+0BFA ; Tamil # So TAMIL NUMBER SIGN
+11FC0..11FD4 ; Tamil # No [21] TAMIL FRACTION ONE
THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
+11FD5..11FDC ; Tamil # So [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
+11FDD..11FE0 ; Tamil # Sc [4] TAMIL SIGN KAACU..TAMIL SIGN VARAAKAN
+11FE1..11FF1 ; Tamil # So [17] TAMIL SIGN PAARAM..TAMIL SIGN VAKAIYARAA
+11FFF ; Tamil # Po TAMIL PUNCTUATION END OF TEXT
+
+# Total code points: 123
+
+# ================================================
+
+0C00 ; Telugu # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
+0C01..0C03 ; Telugu # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+0C04 ; Telugu # Mn TELUGU SIGN COMBINING ANUSVARA ABOVE
+0C05..0C0C ; Telugu # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
+0C0E..0C10 ; Telugu # Lo [3] TELUGU LETTER E..TELUGU LETTER AI
+0C12..0C28 ; Telugu # Lo [23] TELUGU LETTER O..TELUGU LETTER NA
+0C2A..0C39 ; Telugu # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA
+0C3C ; Telugu # Mn TELUGU SIGN NUKTA
+0C3D ; Telugu # Lo TELUGU SIGN AVAGRAHA
+0C3E..0C40 ; Telugu # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
+0C41..0C44 ; Telugu # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN
VOCALIC RR
+0C46..0C48 ; Telugu # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+0C4A..0C4D ; Telugu # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
+0C55..0C56 ; Telugu # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+0C58..0C5A ; Telugu # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
+0C5D ; Telugu # Lo TELUGU LETTER NAKAARA POLLU
+0C60..0C61 ; Telugu # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER
VOCALIC LL
+0C62..0C63 ; Telugu # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL
SIGN VOCALIC LL
+0C66..0C6F ; Telugu # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0C77 ; Telugu # Po TELUGU SIGN SIDDHAM
+0C78..0C7E ; Telugu # No [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF
FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
+0C7F ; Telugu # So TELUGU SIGN TUUMU
+
+# Total code points: 100
+
+# ================================================
+
+0C80 ; Kannada # Lo KANNADA SIGN SPACING CANDRABINDU
+0C81 ; Kannada # Mn KANNADA SIGN CANDRABINDU
+0C82..0C83 ; Kannada # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
+0C84 ; Kannada # Po KANNADA SIGN SIDDHAM
+0C85..0C8C ; Kannada # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
+0C8E..0C90 ; Kannada # Lo [3] KANNADA LETTER E..KANNADA LETTER AI
+0C92..0CA8 ; Kannada # Lo [23] KANNADA LETTER O..KANNADA LETTER NA
+0CAA..0CB3 ; Kannada # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA
+0CB5..0CB9 ; Kannada # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA
+0CBC ; Kannada # Mn KANNADA SIGN NUKTA
+0CBD ; Kannada # Lo KANNADA SIGN AVAGRAHA
+0CBE ; Kannada # Mc KANNADA VOWEL SIGN AA
+0CBF ; Kannada # Mn KANNADA VOWEL SIGN I
+0CC0..0CC4 ; Kannada # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN
VOCALIC RR
+0CC6 ; Kannada # Mn KANNADA VOWEL SIGN E
+0CC7..0CC8 ; Kannada # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+0CCA..0CCB ; Kannada # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0CCC..0CCD ; Kannada # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
+0CD5..0CD6 ; Kannada # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0CDD..0CDE ; Kannada # Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA
LETTER FA
+0CE0..0CE1 ; Kannada # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER
VOCALIC LL
+0CE2..0CE3 ; Kannada # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL
SIGN VOCALIC LL
+0CE6..0CEF ; Kannada # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
+0CF1..0CF2 ; Kannada # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN
UPADHMANIYA
+
+# Total code points: 90
+
+# ================================================
+
+0D00..0D01 ; Malayalam # Mn [2] MALAYALAM SIGN COMBINING ANUSVARA
ABOVE..MALAYALAM SIGN CANDRABINDU
+0D02..0D03 ; Malayalam # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN
VISARGA
+0D04..0D0C ; Malayalam # Lo [9] MALAYALAM LETTER VEDIC
ANUSVARA..MALAYALAM LETTER VOCALIC L
+0D0E..0D10 ; Malayalam # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
+0D12..0D3A ; Malayalam # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA
+0D3B..0D3C ; Malayalam # Mn [2] MALAYALAM SIGN VERTICAL BAR
VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
+0D3D ; Malayalam # Lo MALAYALAM SIGN AVAGRAHA
+0D3E..0D40 ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL
SIGN II
+0D41..0D44 ; Malayalam # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL
SIGN VOCALIC RR
+0D46..0D48 ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL
SIGN AI
+0D4A..0D4C ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL
SIGN AU
+0D4D ; Malayalam # Mn MALAYALAM SIGN VIRAMA
+0D4E ; Malayalam # Lo MALAYALAM LETTER DOT REPH
+0D4F ; Malayalam # So MALAYALAM SIGN PARA
+0D54..0D56 ; Malayalam # Lo [3] MALAYALAM LETTER CHILLU M..MALAYALAM
LETTER CHILLU LLL
+0D57 ; Malayalam # Mc MALAYALAM AU LENGTH MARK
+0D58..0D5E ; Malayalam # No [7] MALAYALAM FRACTION ONE
ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH
+0D5F..0D61 ; Malayalam # Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM
LETTER VOCALIC LL
+0D62..0D63 ; Malayalam # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM
VOWEL SIGN VOCALIC LL
+0D66..0D6F ; Malayalam # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0D70..0D78 ; Malayalam # No [9] MALAYALAM NUMBER TEN..MALAYALAM FRACTION
THREE SIXTEENTHS
+0D79 ; Malayalam # So MALAYALAM DATE MARK
+0D7A..0D7F ; Malayalam # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM
LETTER CHILLU K
+
+# Total code points: 118
+
+# ================================================
+
+0D81 ; Sinhala # Mn SINHALA SIGN CANDRABINDU
+0D82..0D83 ; Sinhala # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN
VISARGAYA
+0D85..0D96 ; Sinhala # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER
AUYANNA
+0D9A..0DB1 ; Sinhala # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA
LETTER DANTAJA NAYANNA
+0DB3..0DBB ; Sinhala # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA
LETTER RAYANNA
+0DBD ; Sinhala # Lo SINHALA LETTER DANTAJA LAYANNA
+0DC0..0DC6 ; Sinhala # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER
FAYANNA
+0DCA ; Sinhala # Mn SINHALA SIGN AL-LAKUNA
+0DCF..0DD1 ; Sinhala # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA
VOWEL SIGN DIGA AEDA-PILLA
+0DD2..0DD4 ; Sinhala # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA
VOWEL SIGN KETTI PAA-PILLA
+0DD6 ; Sinhala # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DD8..0DDF ; Sinhala # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA
VOWEL SIGN GAYANUKITTA
+0DE6..0DEF ; Sinhala # Nd [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT
NINE
+0DF2..0DF3 ; Sinhala # Mc [2] SINHALA VOWEL SIGN DIGA
GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0DF4 ; Sinhala # Po SINHALA PUNCTUATION KUNDDALIYA
+111E1..111F4 ; Sinhala # No [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC
NUMBER ONE THOUSAND
+
+# Total code points: 111
+
+# ================================================
+
+0E01..0E30 ; Thai # Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
+0E31 ; Thai # Mn THAI CHARACTER MAI HAN-AKAT
+0E32..0E33 ; Thai # Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM
+0E34..0E3A ; Thai # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
+0E40..0E45 ; Thai # Lo [6] THAI CHARACTER SARA E..THAI CHARACTER
LAKKHANGYAO
+0E46 ; Thai # Lm THAI CHARACTER MAIYAMOK
+0E47..0E4E ; Thai # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER
YAMAKKAN
+0E4F ; Thai # Po THAI CHARACTER FONGMAN
+0E50..0E59 ; Thai # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE
+0E5A..0E5B ; Thai # Po [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER
KHOMUT
+
+# Total code points: 86
+
+# ================================================
+
+0E81..0E82 ; Lao # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG
+0E84 ; Lao # Lo LAO LETTER KHO TAM
+0E86..0E8A ; Lao # Lo [5] LAO LETTER PALI GHA..LAO LETTER SO TAM
+0E8C..0EA3 ; Lao # Lo [24] LAO LETTER PALI JHA..LAO LETTER LO LING
+0EA5 ; Lao # Lo LAO LETTER LO LOOT
+0EA7..0EB0 ; Lao # Lo [10] LAO LETTER WO..LAO VOWEL SIGN A
+0EB1 ; Lao # Mn LAO VOWEL SIGN MAI KAN
+0EB2..0EB3 ; Lao # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
+0EB4..0EBC ; Lao # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
+0EBD ; Lao # Lo LAO SEMIVOWEL SIGN NYO
+0EC0..0EC4 ; Lao # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
+0EC6 ; Lao # Lm LAO KO LA
+0EC8..0ECD ; Lao # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
+0ED0..0ED9 ; Lao # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE
+0EDC..0EDF ; Lao # Lo [4] LAO HO NO..LAO LETTER KHMU NYO
+
+# Total code points: 82
+
+# ================================================
+
+0F00 ; Tibetan # Lo TIBETAN SYLLABLE OM
+0F01..0F03 ; Tibetan # So [3] TIBETAN MARK GTER YIG MGO TRUNCATED
A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
+0F04..0F12 ; Tibetan # Po [15] TIBETAN MARK INITIAL YIG MGO MDUN
MA..TIBETAN MARK RGYA GRAM SHAD
+0F13 ; Tibetan # So TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
+0F14 ; Tibetan # Po TIBETAN MARK GTER TSHEG
+0F15..0F17 ; Tibetan # So [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN
ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F18..0F19 ; Tibetan # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD
PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F1A..0F1F ; Tibetan # So [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN
RDEL DKAR RDEL NAG
+0F20..0F29 ; Tibetan # Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
+0F2A..0F33 ; Tibetan # No [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF
ZERO
+0F34 ; Tibetan # So TIBETAN MARK BSDUS RTAGS
+0F35 ; Tibetan # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
+0F36 ; Tibetan # So TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F37 ; Tibetan # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F38 ; Tibetan # So TIBETAN MARK CHE MGO
+0F39 ; Tibetan # Mn TIBETAN MARK TSA -PHRU
+0F3A ; Tibetan # Ps TIBETAN MARK GUG RTAGS GYON
+0F3B ; Tibetan # Pe TIBETAN MARK GUG RTAGS GYAS
+0F3C ; Tibetan # Ps TIBETAN MARK ANG KHANG GYON
+0F3D ; Tibetan # Pe TIBETAN MARK ANG KHANG GYAS
+0F3E..0F3F ; Tibetan # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR
TSHES
+0F40..0F47 ; Tibetan # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA
+0F49..0F6C ; Tibetan # Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
+0F71..0F7E ; Tibetan # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU
NGA RO
+0F7F ; Tibetan # Mc TIBETAN SIGN RNAM BCAD
+0F80..0F84 ; Tibetan # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK
HALANTA
+0F85 ; Tibetan # Po TIBETAN MARK PALUTA
+0F86..0F87 ; Tibetan # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG
RTAGS
+0F88..0F8C ; Tibetan # Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN
INVERTED MCHU CAN
+0F8D..0F97 ; Tibetan # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN
SUBJOINED LETTER JA
+0F99..0FBC ; Tibetan # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN
SUBJOINED LETTER FIXED-FORM RA
+0FBE..0FC5 ; Tibetan # So [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
+0FC6 ; Tibetan # Mn TIBETAN SYMBOL PADMA GDAN
+0FC7..0FCC ; Tibetan # So [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN
SYMBOL NOR BU BZHI -KHYIL
+0FCE..0FCF ; Tibetan # So [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN
SIGN RDEL NAG GSUM
+0FD0..0FD4 ; Tibetan # Po [5] TIBETAN MARK BSKA- SHOG GI MGO
RGYAN..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
+0FD9..0FDA ; Tibetan # Po [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN
MARK TRAILING MCHAN RTAGS
+
+# Total code points: 207
+
+# ================================================
+
+1000..102A ; Myanmar # Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU
+102B..102C ; Myanmar # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL
SIGN AA
+102D..1030 ; Myanmar # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
+1031 ; Myanmar # Mc MYANMAR VOWEL SIGN E
+1032..1037 ; Myanmar # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT
BELOW
+1038 ; Myanmar # Mc MYANMAR SIGN VISARGA
+1039..103A ; Myanmar # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+103B..103C ; Myanmar # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR
CONSONANT SIGN MEDIAL RA
+103D..103E ; Myanmar # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR
CONSONANT SIGN MEDIAL HA
+103F ; Myanmar # Lo MYANMAR LETTER GREAT SA
+1040..1049 ; Myanmar # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
+104A..104F ; Myanmar # Po [6] MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL
GENITIVE
+1050..1055 ; Myanmar # Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC
LL
+1056..1057 ; Myanmar # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL
SIGN VOCALIC RR
+1058..1059 ; Myanmar # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL
SIGN VOCALIC LL
+105A..105D ; Myanmar # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON
BBE
+105E..1060 ; Myanmar # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL
NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
+1061 ; Myanmar # Lo MYANMAR LETTER SGAW KAREN SHA
+1062..1064 ; Myanmar # Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR
TONE MARK SGAW KAREN KE PHO
+1065..1066 ; Myanmar # Lo [2] MYANMAR LETTER WESTERN PWO KAREN
THA..MYANMAR LETTER WESTERN PWO KAREN PWA
+1067..106D ; Myanmar # Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN
EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
+106E..1070 ; Myanmar # Lo [3] MYANMAR LETTER EASTERN PWO KAREN
NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
+1071..1074 ; Myanmar # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR
VOWEL SIGN KAYAH EE
+1075..1081 ; Myanmar # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN
HA
+1082 ; Myanmar # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+1083..1084 ; Myanmar # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL
SIGN SHAN E
+1085..1086 ; Myanmar # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR
VOWEL SIGN SHAN FINAL Y
+1087..108C ; Myanmar # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN
COUNCIL TONE-3
+108D ; Myanmar # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+108E ; Myanmar # Lo MYANMAR LETTER RUMAI PALAUNG FA
+108F ; Myanmar # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5
+1090..1099 ; Myanmar # Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT
NINE
+109A..109C ; Myanmar # Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL
SIGN AITON A
+109D ; Myanmar # Mn MYANMAR VOWEL SIGN AITON AI
+109E..109F ; Myanmar # So [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL
SHAN EXCLAMATION
+A9E0..A9E4 ; Myanmar # Lo [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER
SHAN BHA
+A9E5 ; Myanmar # Mn MYANMAR SIGN SHAN SAW
+A9E6 ; Myanmar # Lm MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF ; Myanmar # Lo [9] MYANMAR LETTER TAI LAING NYA..MYANMAR
LETTER TAI LAING NNA
+A9F0..A9F9 ; Myanmar # Nd [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI
LAING DIGIT NINE
+A9FA..A9FE ; Myanmar # Lo [5] MYANMAR LETTER TAI LAING LLA..MYANMAR
LETTER TAI LAING BHA
+AA60..AA6F ; Myanmar # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER
KHAMTI FA
+AA70 ; Myanmar # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
+AA71..AA76 ; Myanmar # Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM
KHAMTI HM
+AA77..AA79 ; Myanmar # So [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR
SYMBOL AITON TWO
+AA7A ; Myanmar # Lo MYANMAR LETTER AITON RA
+AA7B ; Myanmar # Mc MYANMAR SIGN PAO KAREN TONE
+AA7C ; Myanmar # Mn MYANMAR SIGN TAI LAING TONE-2
+AA7D ; Myanmar # Mc MYANMAR SIGN TAI LAING TONE-5
+AA7E..AA7F ; Myanmar # Lo [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR
LETTER SHWE PALAUNG SHA
+
+# Total code points: 223
+
+# ================================================
+
+10A0..10C5 ; Georgian # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN
CAPITAL LETTER HOE
+10C7 ; Georgian # L& GEORGIAN CAPITAL LETTER YN
+10CD ; Georgian # L& GEORGIAN CAPITAL LETTER AEN
+10D0..10FA ; Georgian # L& [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
+10FC ; Georgian # Lm MODIFIER LETTER GEORGIAN NAR
+10FD..10FF ; Georgian # L& [3] GEORGIAN LETTER AEN..GEORGIAN LETTER
LABIAL SIGN
+1C90..1CBA ; Georgian # L& [43] GEORGIAN MTAVRULI CAPITAL LETTER
AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
+1CBD..1CBF ; Georgian # L& [3] GEORGIAN MTAVRULI CAPITAL LETTER
AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
+2D00..2D25 ; Georgian # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL
LETTER HOE
+2D27 ; Georgian # L& GEORGIAN SMALL LETTER YN
+2D2D ; Georgian # L& GEORGIAN SMALL LETTER AEN
+
+# Total code points: 173
+
+# ================================================
+
+1100..11FF ; Hangul # Lo [256] HANGUL CHOSEONG KIYEOK..HANGUL JONGSEONG
SSANGNIEUN
+302E..302F ; Hangul # Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE
DOT TONE MARK
+3131..318E ; Hangul # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
+3200..321E ; Hangul # So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED
KOREAN CHARACTER O HU
+3260..327E ; Hangul # So [31] CIRCLED HANGUL KIYEOK..CIRCLED HANGUL IEUNG U
+A960..A97C ; Hangul # Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL
CHOSEONG SSANGYEORINHIEUH
+AC00..D7A3 ; Hangul # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
+D7B0..D7C6 ; Hangul # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG
ARAEA-E
+D7CB..D7FB ; Hangul # Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL
JONGSEONG PHIEUPH-THIEUTH
+FFA0..FFBE ; Hangul # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL
LETTER HIEUH
+FFC2..FFC7 ; Hangul # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL
LETTER E
+FFCA..FFCF ; Hangul # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH
HANGUL LETTER OE
+FFD2..FFD7 ; Hangul # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL
LETTER YU
+FFDA..FFDC ; Hangul # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
LETTER I
+
+# Total code points: 11739
+
+# ================================================
+
+1200..1248 ; Ethiopic # Lo [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA
+124A..124D ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE
QWE
+1250..1256 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE
QHO
+1258 ; Ethiopic # Lo ETHIOPIC SYLLABLE QHWA
+125A..125D ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE
QHWE
+1260..1288 ; Ethiopic # Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
+128A..128D ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE
XWE
+1290..12B0 ; Ethiopic # Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
+12B2..12B5 ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE
KWE
+12B8..12BE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE
KXO
+12C0 ; Ethiopic # Lo ETHIOPIC SYLLABLE KXWA
+12C2..12C5 ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE
KXWE
+12C8..12D6 ; Ethiopic # Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE
PHARYNGEAL O
+12D8..1310 ; Ethiopic # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
+1312..1315 ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE
GWE
+1318..135A ; Ethiopic # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE
FYA
+135D..135F ; Ethiopic # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL
LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
+1360..1368 ; Ethiopic # Po [9] ETHIOPIC SECTION MARK..ETHIOPIC PARAGRAPH
SEPARATOR
+1369..137C ; Ethiopic # No [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN
THOUSAND
+1380..138F ; Ethiopic # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC
SYLLABLE PWE
+1390..1399 ; Ethiopic # So [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL
MARK KURT
+2D80..2D96 ; Ethiopic # Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE
GGWE
+2DA0..2DA6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE
SSO
+2DA8..2DAE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE
CCO
+2DB0..2DB6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE
ZZO
+2DB8..2DBE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE
CCHO
+2DC0..2DC6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE
QYO
+2DC8..2DCE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE
KYO
+2DD0..2DD6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE
XYO
+2DD8..2DDE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE
GYO
+AB01..AB06 ; Ethiopic # Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE
TTHO
+AB09..AB0E ; Ethiopic # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE
DDHO
+AB11..AB16 ; Ethiopic # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE
DZO
+AB20..AB26 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE
CCHHO
+AB28..AB2E ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE
BBO
+1E7E0..1E7E6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE
HHYO
+1E7E8..1E7EB ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC
SYLLABLE HHWE
+1E7ED..1E7EE ; Ethiopic # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC
SYLLABLE GURAGE MWEE
+1E7F0..1E7FE ; Ethiopic # Lo [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC
SYLLABLE GURAGE PWEE
+
+# Total code points: 523
+
+# ================================================
+
+13A0..13F5 ; Cherokee # L& [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
+13F8..13FD ; Cherokee # L& [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL
LETTER MV
+AB70..ABBF ; Cherokee # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL
LETTER YA
+
+# Total code points: 172
+
+# ================================================
+
+1400 ; Canadian_Aboriginal # Pd CANADIAN SYLLABICS HYPHEN
+1401..166C ; Canadian_Aboriginal # Lo [620] CANADIAN SYLLABICS E..CANADIAN
SYLLABICS CARRIER TTSA
+166D ; Canadian_Aboriginal # So CANADIAN SYLLABICS CHI SIGN
+166E ; Canadian_Aboriginal # Po CANADIAN SYLLABICS FULL STOP
+166F..167F ; Canadian_Aboriginal # Lo [17] CANADIAN SYLLABICS
QAI..CANADIAN SYLLABICS BLACKFOOT W
+18B0..18F5 ; Canadian_Aboriginal # Lo [70] CANADIAN SYLLABICS OY..CANADIAN
SYLLABICS CARRIER DENTAL S
+11AB0..11ABF ; Canadian_Aboriginal # Lo [16] CANADIAN SYLLABICS NATTILIK
HI..CANADIAN SYLLABICS SPA
+
+# Total code points: 726
+
+# ================================================
+
+1680 ; Ogham # Zs OGHAM SPACE MARK
+1681..169A ; Ogham # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
+169B ; Ogham # Ps OGHAM FEATHER MARK
+169C ; Ogham # Pe OGHAM REVERSED FEATHER MARK
+
+# Total code points: 29
+
+# ================================================
+
+16A0..16EA ; Runic # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
+16EE..16F0 ; Runic # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8 ; Runic # Lo [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET
AESC
+
+# Total code points: 86
+
+# ================================================
+
+1780..17B3 ; Khmer # Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
+17B4..17B5 ; Khmer # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT
AA
+17B6 ; Khmer # Mc KHMER VOWEL SIGN AA
+17B7..17BD ; Khmer # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
+17BE..17C5 ; Khmer # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
+17C6 ; Khmer # Mn KHMER SIGN NIKAHIT
+17C7..17C8 ; Khmer # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
+17C9..17D3 ; Khmer # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
+17D4..17D6 ; Khmer # Po [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
+17D7 ; Khmer # Lm KHMER SIGN LEK TOO
+17D8..17DA ; Khmer # Po [3] KHMER SIGN BEYYAL..KHMER SIGN KOOMUUT
+17DB ; Khmer # Sc KHMER CURRENCY SYMBOL RIEL
+17DC ; Khmer # Lo KHMER SIGN AVAKRAHASANYA
+17DD ; Khmer # Mn KHMER SIGN ATTHACAN
+17E0..17E9 ; Khmer # Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
+17F0..17F9 ; Khmer # No [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK
ATTAK PRAM-BUON
+19E0..19FF ; Khmer # So [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL
DAP-PRAM ROC
+
+# Total code points: 146
+
+# ================================================
+
+1800..1801 ; Mongolian # Po [2] MONGOLIAN BIRGA..MONGOLIAN ELLIPSIS
+1804 ; Mongolian # Po MONGOLIAN COLON
+1806 ; Mongolian # Pd MONGOLIAN TODO SOFT HYPHEN
+1807..180A ; Mongolian # Po [4] MONGOLIAN SIBE SYLLABLE BOUNDARY
MARKER..MONGOLIAN NIRUGU
+180B..180D ; Mongolian # Mn [3] MONGOLIAN FREE VARIATION SELECTOR
ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+180E ; Mongolian # Cf MONGOLIAN VOWEL SEPARATOR
+180F ; Mongolian # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR
+1810..1819 ; Mongolian # Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
+1820..1842 ; Mongolian # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
+1843 ; Mongolian # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN
+1844..1878 ; Mongolian # Lo [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER
CHA WITH TWO DOTS
+1880..1884 ; Mongolian # Lo [5] MONGOLIAN LETTER ALI GALI ANUSVARA
ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
+1885..1886 ; Mongolian # Mn [2] MONGOLIAN LETTER ALI GALI
BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
+1887..18A8 ; Mongolian # Lo [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN
LETTER MANCHU ALI GALI BHA
+18A9 ; Mongolian # Mn MONGOLIAN LETTER ALI GALI DAGALGA
+18AA ; Mongolian # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA
+11660..1166C ; Mongolian # Po [13] MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN
TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT
+
+# Total code points: 168
+
+# ================================================
+
+3041..3096 ; Hiragana # Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER
SMALL KE
+309D..309E ; Hiragana # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED
ITERATION MARK
+309F ; Hiragana # Lo HIRAGANA DIGRAPH YORI
+1B001..1B11F ; Hiragana # Lo [287] HIRAGANA LETTER ARCHAIC YE..HIRAGANA
LETTER ARCHAIC WU
+1B150..1B152 ; Hiragana # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER
SMALL WO
+1F200 ; Hiragana # So SQUARE HIRAGANA HOKA
+
+# Total code points: 380
+
+# ================================================
+
+30A1..30FA ; Katakana # Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO
+30FD..30FE ; Katakana # Lm [2] KATAKANA ITERATION MARK..KATAKANA VOICED
ITERATION MARK
+30FF ; Katakana # Lo KATAKANA DIGRAPH KOTO
+31F0..31FF ; Katakana # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER
SMALL RO
+32D0..32FE ; Katakana # So [47] CIRCLED KATAKANA A..CIRCLED KATAKANA WO
+3300..3357 ; Katakana # So [88] SQUARE APAATO..SQUARE WATTO
+FF66..FF6F ; Katakana # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH
KATAKANA LETTER SMALL TU
+FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH
KATAKANA LETTER N
+1AFF0..1AFF3 ; Katakana # Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA
LETTER MINNAN TONE-5
+1AFF5..1AFFB ; Katakana # Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA
LETTER MINNAN NASALIZED TONE-5
+1AFFD..1AFFE ; Katakana # Lm [2] KATAKANA LETTER MINNAN NASALIZED
TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
+1B000 ; Katakana # Lo KATAKANA LETTER ARCHAIC E
+1B120..1B122 ; Katakana # Lo [3] KATAKANA LETTER ARCHAIC YI..KATAKANA
LETTER ARCHAIC WU
+1B164..1B167 ; Katakana # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER
SMALL N
+
+# Total code points: 320
+
+# ================================================
+
+02EA..02EB ; Bopomofo # Sk [2] MODIFIER LETTER YIN DEPARTING TONE
MARK..MODIFIER LETTER YANG DEPARTING TONE MARK
+3105..312F ; Bopomofo # Lo [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN
+31A0..31BF ; Bopomofo # Lo [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH
+
+# Total code points: 77
+
+# ================================================
+
+2E80..2E99 ; Han # So [26] CJK RADICAL REPEAT..CJK RADICAL RAP
+2E9B..2EF3 ; Han # So [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED
TURTLE
+2F00..2FD5 ; Han # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
+3005 ; Han # Lm IDEOGRAPHIC ITERATION MARK
+3007 ; Han # Nl IDEOGRAPHIC NUMBER ZERO
+3021..3029 ; Han # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
+3038..303A ; Han # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
+303B ; Han # Lm VERTICAL IDEOGRAPHIC ITERATION MARK
+3400..4DBF ; Han # Lo [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED
IDEOGRAPH-4DBF
+4E00..9FFF ; Han # Lo [20992] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED
IDEOGRAPH-9FFF
+F900..FA6D ; Han # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK
COMPATIBILITY IDEOGRAPH-FA6D
+FA70..FAD9 ; Han # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK
COMPATIBILITY IDEOGRAPH-FAD9
+16FE2 ; Han # Po OLD CHINESE HOOK MARK
+16FE3 ; Han # Lm OLD CHINESE ITERATION MARK
+16FF0..16FF1 ; Han # Mc [2] VIETNAMESE ALTERNATE READING MARK
CA..VIETNAMESE ALTERNATE READING MARK NHAY
+20000..2A6DF ; Han # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED
IDEOGRAPH-2A6DF
+2A700..2B738 ; Han # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED
IDEOGRAPH-2B738
+2B740..2B81D ; Han # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED
IDEOGRAPH-2B81D
+2B820..2CEA1 ; Han # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED
IDEOGRAPH-2CEA1
+2CEB0..2EBE0 ; Han # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED
IDEOGRAPH-2EBE0
+2F800..2FA1D ; Han # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK
COMPATIBILITY IDEOGRAPH-2FA1D
+30000..3134A ; Han # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED
IDEOGRAPH-3134A
+
+# Total code points: 94215
+
+# ================================================
+
+A000..A014 ; Yi # Lo [21] YI SYLLABLE IT..YI SYLLABLE E
+A015 ; Yi # Lm YI SYLLABLE WU
+A016..A48C ; Yi # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
+A490..A4C6 ; Yi # So [55] YI RADICAL QOT..YI RADICAL KE
+
+# Total code points: 1220
+
+# ================================================
+
+10300..1031F ; Old_Italic # Lo [32] OLD ITALIC LETTER A..OLD ITALIC LETTER
ESS
+10320..10323 ; Old_Italic # No [4] OLD ITALIC NUMERAL ONE..OLD ITALIC
NUMERAL FIFTY
+1032D..1032F ; Old_Italic # Lo [3] OLD ITALIC LETTER YE..OLD ITALIC LETTER
SOUTHERN TSE
+
+# Total code points: 39
+
+# ================================================
+
+10330..10340 ; Gothic # Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
+10341 ; Gothic # Nl GOTHIC LETTER NINETY
+10342..10349 ; Gothic # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
+1034A ; Gothic # Nl GOTHIC LETTER NINE HUNDRED
+
+# Total code points: 27
+
+# ================================================
+
+10400..1044F ; Deseret # L& [80] DESERET CAPITAL LETTER LONG I..DESERET
SMALL LETTER EW
+
+# Total code points: 80
+
+# ================================================
+
+0300..036F ; Inherited # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN
SMALL LETTER X
+0485..0486 ; Inherited # Mn [2] COMBINING CYRILLIC DASIA
PNEUMATA..COMBINING CYRILLIC PSILI PNEUMATA
+064B..0655 ; Inherited # Mn [11] ARABIC FATHATAN..ARABIC HAMZA BELOW
+0670 ; Inherited # Mn ARABIC LETTER SUPERSCRIPT ALEF
+0951..0954 ; Inherited # Mn [4] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI
ACUTE ACCENT
+1AB0..1ABD ; Inherited # Mn [14] COMBINING DOUBLED CIRCUMFLEX
ACCENT..COMBINING PARENTHESES BELOW
+1ABE ; Inherited # Me COMBINING PARENTHESES OVERLAY
+1ABF..1ACE ; Inherited # Mn [16] COMBINING LATIN SMALL LETTER W
BELOW..COMBINING LATIN SMALL LETTER INSULAR T
+1CD0..1CD2 ; Inherited # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
+1CD4..1CE0 ; Inherited # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE
SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
+1CE2..1CE8 ; Inherited # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN
VISARGA ANUDATTA WITH TAIL
+1CED ; Inherited # Mn VEDIC SIGN TIRYAK
+1CF4 ; Inherited # Mn VEDIC TONE CANDRA ABOVE
+1CF8..1CF9 ; Inherited # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE
RING ABOVE
+1DC0..1DFF ; Inherited # Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING
RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+200C..200D ; Inherited # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
+20D0..20DC ; Inherited # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING
FOUR DOTS ABOVE
+20DD..20E0 ; Inherited # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING
ENCLOSING CIRCLE BACKSLASH
+20E1 ; Inherited # Mn COMBINING LEFT RIGHT ARROW ABOVE
+20E2..20E4 ; Inherited # Me [3] COMBINING ENCLOSING SCREEN..COMBINING
ENCLOSING UPWARD POINTING TRIANGLE
+20E5..20F0 ; Inherited # Mn [12] COMBINING REVERSE SOLIDUS
OVERLAY..COMBINING ASTERISK ABOVE
+302A..302D ; Inherited # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC
ENTERING TONE MARK
+3099..309A ; Inherited # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND
MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+FE00..FE0F ; Inherited # Mn [16] VARIATION SELECTOR-1..VARIATION
SELECTOR-16
+FE20..FE2D ; Inherited # Mn [14] COMBINING LIGATURE LEFT HALF..COMBINING
CONJOINING MACRON BELOW
+101FD ; Inherited # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE
STROKE
+102E0 ; Inherited # Mn COPTIC EPACT THOUSANDS MARK
+1133B ; Inherited # Mn COMBINING BINDU BELOW
+1CF00..1CF2D ; Inherited # Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S
KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
+1CF30..1CF46 ; Inherited # Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK
MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
+1D167..1D169 ; Inherited # Mn [3] MUSICAL SYMBOL COMBINING
TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
+1D17B..1D182 ; Inherited # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL
SYMBOL COMBINING LOURE
+1D185..1D18B ; Inherited # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL
SYMBOL COMBINING TRIPLE TONGUE
+1D1AA..1D1AD ; Inherited # Mn [4] MUSICAL SYMBOL COMBINING DOWN
BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION
SELECTOR-256
+
+# Total code points: 657
+
+# ================================================
+
+1700..1711 ; Tagalog # Lo [18] TAGALOG LETTER A..TAGALOG LETTER HA
+1712..1714 ; Tagalog # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+1715 ; Tagalog # Mc TAGALOG SIGN PAMUDPOD
+171F ; Tagalog # Lo TAGALOG LETTER ARCHAIC RA
+
+# Total code points: 23
+
+# ================================================
+
+1720..1731 ; Hanunoo # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA
+1732..1733 ; Hanunoo # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
+1734 ; Hanunoo # Mc HANUNOO SIGN PAMUDPOD
+
+# Total code points: 21
+
+# ================================================
+
+1740..1751 ; Buhid # Lo [18] BUHID LETTER A..BUHID LETTER HA
+1752..1753 ; Buhid # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
+
+# Total code points: 20
+
+# ================================================
+
+1760..176C ; Tagbanwa # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
+176E..1770 ; Tagbanwa # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
+1772..1773 ; Tagbanwa # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN
U
+
+# Total code points: 18
+
+# ================================================
+
+1900..191E ; Limbu # Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
+1920..1922 ; Limbu # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
+1923..1926 ; Limbu # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
+1927..1928 ; Limbu # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
+1929..192B ; Limbu # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED
LETTER WA
+1930..1931 ; Limbu # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
+1932 ; Limbu # Mn LIMBU SMALL LETTER ANUSVARA
+1933..1938 ; Limbu # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
+1939..193B ; Limbu # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
+1940 ; Limbu # So LIMBU SIGN LOO
+1944..1945 ; Limbu # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
+1946..194F ; Limbu # Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
+
+# Total code points: 68
+
+# ================================================
+
+1950..196D ; Tai_Le # Lo [30] TAI LE LETTER KA..TAI LE LETTER AI
+1970..1974 ; Tai_Le # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
+
+# Total code points: 35
+
+# ================================================
+
+10000..1000B ; Linear_B # Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B
SYLLABLE B046 JE
+1000D..10026 ; Linear_B # Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B
SYLLABLE B032 QO
+10028..1003A ; Linear_B # Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B
SYLLABLE B042 WO
+1003C..1003D ; Linear_B # Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B
SYLLABLE B074 ZE
+1003F..1004D ; Linear_B # Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B
SYLLABLE B091 TWO
+10050..1005D ; Linear_B # Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
+10080..100FA ; Linear_B # Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B
IDEOGRAM VESSEL B305
+
+# Total code points: 211
+
+# ================================================
+
+10380..1039D ; Ugaritic # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
+1039F ; Ugaritic # Po UGARITIC WORD DIVIDER
+
+# Total code points: 31
+
+# ================================================
+
+10450..1047F ; Shavian # Lo [48] SHAVIAN LETTER PEEP..SHAVIAN LETTER YEW
+
+# Total code points: 48
+
+# ================================================
+
+10480..1049D ; Osmanya # Lo [30] OSMANYA LETTER ALEF..OSMANYA LETTER OO
+104A0..104A9 ; Osmanya # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+
+# Total code points: 40
+
+# ================================================
+
+10800..10805 ; Cypriot # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
+10808 ; Cypriot # Lo CYPRIOT SYLLABLE JO
+1080A..10835 ; Cypriot # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
+10837..10838 ; Cypriot # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
+1083C ; Cypriot # Lo CYPRIOT SYLLABLE ZA
+1083F ; Cypriot # Lo CYPRIOT SYLLABLE ZO
+
+# Total code points: 55
+
+# ================================================
+
+2800..28FF ; Braille # So [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN
DOTS-12345678
+
+# Total code points: 256
+
+# ================================================
+
+1A00..1A16 ; Buginese # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA
+1A17..1A18 ; Buginese # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN
U
+1A19..1A1A ; Buginese # Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN
O
+1A1B ; Buginese # Mn BUGINESE VOWEL SIGN AE
+1A1E..1A1F ; Buginese # Po [2] BUGINESE PALLAWA..BUGINESE END OF SECTION
+
+# Total code points: 30
+
+# ================================================
+
+03E2..03EF ; Coptic # L& [14] COPTIC CAPITAL LETTER SHEI..COPTIC SMALL
LETTER DEI
+2C80..2CE4 ; Coptic # L& [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI
+2CE5..2CEA ; Coptic # So [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
+2CEB..2CEE ; Coptic # L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC
SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
+2CEF..2CF1 ; Coptic # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING
SPIRITUS LENIS
+2CF2..2CF3 ; Coptic # L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC
SMALL LETTER BOHAIRIC KHEI
+2CF9..2CFC ; Coptic # Po [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD
NUBIAN VERSE DIVIDER
+2CFD ; Coptic # No COPTIC FRACTION ONE HALF
+2CFE..2CFF ; Coptic # Po [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL
DIVIDER
+
+# Total code points: 137
+
+# ================================================
+
+1980..19AB ; New_Tai_Lue # Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE
LETTER LOW SUA
+19B0..19C9 ; New_Tai_Lue # Lo [26] NEW TAI LUE VOWEL SIGN VOWEL
SHORTENER..NEW TAI LUE TONE MARK-2
+19D0..19D9 ; New_Tai_Lue # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE
DIGIT NINE
+19DA ; New_Tai_Lue # No NEW TAI LUE THAM DIGIT ONE
+19DE..19DF ; New_Tai_Lue # So [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN
LAEV
+
+# Total code points: 83
+
+# ================================================
+
+2C00..2C5F ; Glagolitic # L& [96] GLAGOLITIC CAPITAL LETTER
AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI
+1E000..1E006 ; Glagolitic # Mn [7] COMBINING GLAGOLITIC LETTER
AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
+1E008..1E018 ; Glagolitic # Mn [17] COMBINING GLAGOLITIC LETTER
ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
+1E01B..1E021 ; Glagolitic # Mn [7] COMBINING GLAGOLITIC LETTER
SHTA..COMBINING GLAGOLITIC LETTER YATI
+1E023..1E024 ; Glagolitic # Mn [2] COMBINING GLAGOLITIC LETTER
YU..COMBINING GLAGOLITIC LETTER SMALL YUS
+1E026..1E02A ; Glagolitic # Mn [5] COMBINING GLAGOLITIC LETTER
YO..COMBINING GLAGOLITIC LETTER FITA
+
+# Total code points: 134
+
+# ================================================
+
+2D30..2D67 ; Tifinagh # Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO
+2D6F ; Tifinagh # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+2D70 ; Tifinagh # Po TIFINAGH SEPARATOR MARK
+2D7F ; Tifinagh # Mn TIFINAGH CONSONANT JOINER
+
+# Total code points: 59
+
+# ================================================
+
+A800..A801 ; Syloti_Nagri # Lo [2] SYLOTI NAGRI LETTER A..SYLOTI NAGRI
LETTER I
+A802 ; Syloti_Nagri # Mn SYLOTI NAGRI SIGN DVISVARA
+A803..A805 ; Syloti_Nagri # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI
LETTER O
+A806 ; Syloti_Nagri # Mn SYLOTI NAGRI SIGN HASANTA
+A807..A80A ; Syloti_Nagri # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI
LETTER GHO
+A80B ; Syloti_Nagri # Mn SYLOTI NAGRI SIGN ANUSVARA
+A80C..A822 ; Syloti_Nagri # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI
LETTER HO
+A823..A824 ; Syloti_Nagri # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI
NAGRI VOWEL SIGN I
+A825..A826 ; Syloti_Nagri # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI
NAGRI VOWEL SIGN E
+A827 ; Syloti_Nagri # Mc SYLOTI NAGRI VOWEL SIGN OO
+A828..A82B ; Syloti_Nagri # So [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI
NAGRI POETRY MARK-4
+A82C ; Syloti_Nagri # Mn SYLOTI NAGRI SIGN ALTERNATE HASANTA
+
+# Total code points: 45
+
+# ================================================
+
+103A0..103C3 ; Old_Persian # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
+103C8..103CF ; Old_Persian # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD
PERSIAN SIGN BUUMISH
+103D0 ; Old_Persian # Po OLD PERSIAN WORD DIVIDER
+103D1..103D5 ; Old_Persian # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN
NUMBER HUNDRED
+
+# Total code points: 50
+
+# ================================================
+
+10A00 ; Kharoshthi # Lo KHAROSHTHI LETTER A
+10A01..10A03 ; Kharoshthi # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI
VOWEL SIGN VOCALIC R
+10A05..10A06 ; Kharoshthi # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI
VOWEL SIGN O
+10A0C..10A0F ; Kharoshthi # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI
SIGN VISARGA
+10A10..10A13 ; Kharoshthi # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER
GHA
+10A15..10A17 ; Kharoshthi # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER
JA
+10A19..10A35 ; Kharoshthi # Lo [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER
VHA
+10A38..10A3A ; Kharoshthi # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI
SIGN DOT BELOW
+10A3F ; Kharoshthi # Mn KHAROSHTHI VIRAMA
+10A40..10A48 ; Kharoshthi # No [9] KHAROSHTHI DIGIT ONE..KHAROSHTHI
FRACTION ONE HALF
+10A50..10A58 ; Kharoshthi # Po [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI
PUNCTUATION LINES
+
+# Total code points: 68
+
+# ================================================
+
+1B00..1B03 ; Balinese # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN
SURANG
+1B04 ; Balinese # Mc BALINESE SIGN BISAH
+1B05..1B33 ; Balinese # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA
+1B34 ; Balinese # Mn BALINESE SIGN REREKAN
+1B35 ; Balinese # Mc BALINESE VOWEL SIGN TEDUNG
+1B36..1B3A ; Balinese # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL
SIGN RA REPA
+1B3B ; Balinese # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3C ; Balinese # Mn BALINESE VOWEL SIGN LA LENGA
+1B3D..1B41 ; Balinese # Mc [5] BALINESE VOWEL SIGN LA LENGA
TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B42 ; Balinese # Mn BALINESE VOWEL SIGN PEPET
+1B43..1B44 ; Balinese # Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE
ADEG ADEG
+1B45..1B4C ; Balinese # Lo [8] BALINESE LETTER KAF SASAK..BALINESE LETTER
ARCHAIC JNYA
+1B50..1B59 ; Balinese # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
+1B5A..1B60 ; Balinese # Po [7] BALINESE PANTI..BALINESE PAMENENG
+1B61..1B6A ; Balinese # So [10] BALINESE MUSICAL SYMBOL DONG..BALINESE
MUSICAL SYMBOL DANG GEDE
+1B6B..1B73 ; Balinese # Mn [9] BALINESE MUSICAL SYMBOL COMBINING
TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+1B74..1B7C ; Balinese # So [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN
DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+1B7D..1B7E ; Balinese # Po [2] BALINESE PANTI LANTANG..BALINESE PAMADA
LANTANG
+
+# Total code points: 124
+
+# ================================================
+
+12000..12399 ; Cuneiform # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
+12400..1246E ; Cuneiform # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM
NUMERIC SIGN NINE U VARIANT FORM
+12470..12474 ; Cuneiform # Po [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN
WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
+12480..12543 ; Cuneiform # Lo [196] CUNEIFORM SIGN AB TIMES NUN
TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
+
+# Total code points: 1234
+
+# ================================================
+
+10900..10915 ; Phoenician # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER
TAU
+10916..1091B ; Phoenician # No [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER
THREE
+1091F ; Phoenician # Po PHOENICIAN WORD SEPARATOR
+
+# Total code points: 29
+
+# ================================================
+
+A840..A873 ; Phags_Pa # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER
CANDRABINDU
+A874..A877 ; Phags_Pa # Po [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK
DOUBLE SHAD
+
+# Total code points: 56
+
+# ================================================
+
+07C0..07C9 ; Nko # Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE
+07CA..07EA ; Nko # Lo [33] NKO LETTER A..NKO LETTER JONA RA
+07EB..07F3 ; Nko # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING
DOUBLE DOT ABOVE
+07F4..07F5 ; Nko # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE
APOSTROPHE
+07F6 ; Nko # So NKO SYMBOL OO DENNEN
+07F7..07F9 ; Nko # Po [3] NKO SYMBOL GBAKURUNEN..NKO EXCLAMATION MARK
+07FA ; Nko # Lm NKO LAJANYALAN
+07FD ; Nko # Mn NKO DANTAYALAN
+07FE..07FF ; Nko # Sc [2] NKO DOROME SIGN..NKO TAMAN SIGN
+
+# Total code points: 62
+
+# ================================================
+
+1B80..1B81 ; Sundanese # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN
PANGLAYAR
+1B82 ; Sundanese # Mc SUNDANESE SIGN PANGWISAD
+1B83..1BA0 ; Sundanese # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
+1BA1 ; Sundanese # Mc SUNDANESE CONSONANT SIGN PAMINGKAL
+1BA2..1BA5 ; Sundanese # Mn [4] SUNDANESE CONSONANT SIGN
PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
+1BA6..1BA7 ; Sundanese # Mc [2] SUNDANESE VOWEL SIGN
PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
+1BA8..1BA9 ; Sundanese # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE
VOWEL SIGN PANEULEUNG
+1BAA ; Sundanese # Mc SUNDANESE SIGN PAMAAEH
+1BAB..1BAD ; Sundanese # Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE
CONSONANT SIGN PASANGAN WA
+1BAE..1BAF ; Sundanese # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
+1BB0..1BB9 ; Sundanese # Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
+1BBA..1BBF ; Sundanese # Lo [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER
FINAL M
+1CC0..1CC7 ; Sundanese # Po [8] SUNDANESE PUNCTUATION BINDU
SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
+
+# Total code points: 72
+
+# ================================================
+
+1C00..1C23 ; Lepcha # Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A
+1C24..1C2B ; Lepcha # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL
SIGN UU
+1C2C..1C33 ; Lepcha # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
+1C34..1C35 ; Lepcha # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA
CONSONANT SIGN KANG
+1C36..1C37 ; Lepcha # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
+1C3B..1C3F ; Lepcha # Po [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA
PUNCTUATION TSHOOK
+1C40..1C49 ; Lepcha # Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
+1C4D..1C4F ; Lepcha # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
+
+# Total code points: 74
+
+# ================================================
+
+1C50..1C59 ; Ol_Chiki # Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
+1C5A..1C77 ; Ol_Chiki # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
+1C78..1C7D ; Ol_Chiki # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
+1C7E..1C7F ; Ol_Chiki # Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI
PUNCTUATION DOUBLE MUCAAD
+
+# Total code points: 48
+
+# ================================================
+
+A500..A60B ; Vai # Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG
+A60C ; Vai # Lm VAI SYLLABLE LENGTHENER
+A60D..A60F ; Vai # Po [3] VAI COMMA..VAI QUESTION MARK
+A610..A61F ; Vai # Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG
+A620..A629 ; Vai # Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE
+A62A..A62B ; Vai # Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
+
+# Total code points: 300
+
+# ================================================
+
+A880..A881 ; Saurashtra # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA
SIGN VISARGA
+A882..A8B3 ; Saurashtra # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER
LLA
+A8B4..A8C3 ; Saurashtra # Mc [16] SAURASHTRA CONSONANT SIGN
HAARU..SAURASHTRA VOWEL SIGN AU
+A8C4..A8C5 ; Saurashtra # Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN
CANDRABINDU
+A8CE..A8CF ; Saurashtra # Po [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
+A8D0..A8D9 ; Saurashtra # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT
NINE
+
+# Total code points: 82
+
+# ================================================
+
+A900..A909 ; Kayah_Li # Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
+A90A..A925 ; Kayah_Li # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
+A926..A92D ; Kayah_Li # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA
PLOPHU
+A92F ; Kayah_Li # Po KAYAH LI SIGN SHYA
+
+# Total code points: 47
+
+# ================================================
+
+A930..A946 ; Rejang # Lo [23] REJANG LETTER KA..REJANG LETTER A
+A947..A951 ; Rejang # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
+A952..A953 ; Rejang # Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
+A95F ; Rejang # Po REJANG SECTION MARK
+
+# Total code points: 37
+
+# ================================================
+
+10280..1029C ; Lycian # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X
+
+# Total code points: 29
+
+# ================================================
+
+102A0..102D0 ; Carian # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3
+
+# Total code points: 49
+
+# ================================================
+
+10920..10939 ; Lydian # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C
+1093F ; Lydian # Po LYDIAN TRIANGULAR MARK
+
+# Total code points: 27
+
+# ================================================
+
+AA00..AA28 ; Cham # Lo [41] CHAM LETTER A..CHAM LETTER HA
+AA29..AA2E ; Cham # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
+AA2F..AA30 ; Cham # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
+AA31..AA32 ; Cham # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
+AA33..AA34 ; Cham # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
+AA35..AA36 ; Cham # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
+AA40..AA42 ; Cham # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
+AA43 ; Cham # Mn CHAM CONSONANT SIGN FINAL NG
+AA44..AA4B ; Cham # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
+AA4C ; Cham # Mn CHAM CONSONANT SIGN FINAL M
+AA4D ; Cham # Mc CHAM CONSONANT SIGN FINAL H
+AA50..AA59 ; Cham # Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
+AA5C..AA5F ; Cham # Po [4] CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION
TRIPLE DANDA
+
+# Total code points: 83
+
+# ================================================
+
+1A20..1A54 ; Tai_Tham # Lo [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER
GREAT SA
+1A55 ; Tai_Tham # Mc TAI THAM CONSONANT SIGN MEDIAL RA
+1A56 ; Tai_Tham # Mn TAI THAM CONSONANT SIGN MEDIAL LA
+1A57 ; Tai_Tham # Mc TAI THAM CONSONANT SIGN LA TANG LAI
+1A58..1A5E ; Tai_Tham # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM
CONSONANT SIGN SA
+1A60 ; Tai_Tham # Mn TAI THAM SIGN SAKOT
+1A61 ; Tai_Tham # Mc TAI THAM VOWEL SIGN A
+1A62 ; Tai_Tham # Mn TAI THAM VOWEL SIGN MAI SAT
+1A63..1A64 ; Tai_Tham # Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL
SIGN TALL AA
+1A65..1A6C ; Tai_Tham # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN
OA BELOW
+1A6D..1A72 ; Tai_Tham # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL
SIGN THAM AI
+1A73..1A7C ; Tai_Tham # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM
SIGN KHUEN-LUE KARAN
+1A7F ; Tai_Tham # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1A80..1A89 ; Tai_Tham # Nd [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA
DIGIT NINE
+1A90..1A99 ; Tai_Tham # Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM
DIGIT NINE
+1AA0..1AA6 ; Tai_Tham # Po [7] TAI THAM SIGN WIANG..TAI THAM SIGN
REVERSED ROTATED RANA
+1AA7 ; Tai_Tham # Lm TAI THAM SIGN MAI YAMOK
+1AA8..1AAD ; Tai_Tham # Po [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
+
+# Total code points: 127
+
+# ================================================
+
+AA80..AAAF ; Tai_Viet # Lo [48] TAI VIET LETTER LOW KO..TAI VIET LETTER
HIGH O
+AAB0 ; Tai_Viet # Mn TAI VIET MAI KANG
+AAB1 ; Tai_Viet # Lo TAI VIET VOWEL AA
+AAB2..AAB4 ; Tai_Viet # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
+AAB5..AAB6 ; Tai_Viet # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O
+AAB7..AAB8 ; Tai_Viet # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
+AAB9..AABD ; Tai_Viet # Lo [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
+AABE..AABF ; Tai_Viet # Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
+AAC0 ; Tai_Viet # Lo TAI VIET TONE MAI NUENG
+AAC1 ; Tai_Viet # Mn TAI VIET TONE MAI THO
+AAC2 ; Tai_Viet # Lo TAI VIET TONE MAI SONG
+AADB..AADC ; Tai_Viet # Lo [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG
+AADD ; Tai_Viet # Lm TAI VIET SYMBOL SAM
+AADE..AADF ; Tai_Viet # Po [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL
KOI KOI
+
+# Total code points: 72
+
+# ================================================
+
+10B00..10B35 ; Avestan # Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE
+10B39..10B3F ; Avestan # Po [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING
OVER TWO RINGS PUNCTUATION
+
+# Total code points: 61
+
+# ================================================
+
+13000..1342E ; Egyptian_Hieroglyphs # Lo [1071] EGYPTIAN HIEROGLYPH
A001..EGYPTIAN HIEROGLYPH AA032
+13430..13438 ; Egyptian_Hieroglyphs # Cf [9] EGYPTIAN HIEROGLYPH VERTICAL
JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+
+# Total code points: 1080
+
+# ================================================
+
+0800..0815 ; Samaritan # Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER
TAAF
+0816..0819 ; Samaritan # Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
+081A ; Samaritan # Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT
+081B..0823 ; Samaritan # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN
VOWEL SIGN A
+0824 ; Samaritan # Lm SAMARITAN MODIFIER LETTER SHORT A
+0825..0827 ; Samaritan # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN
VOWEL SIGN U
+0828 ; Samaritan # Lm SAMARITAN MODIFIER LETTER I
+0829..082D ; Samaritan # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN
MARK NEQUDAA
+0830..083E ; Samaritan # Po [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN
PUNCTUATION ANNAAU
+
+# Total code points: 61
+
+# ================================================
+
+A4D0..A4F7 ; Lisu # Lo [40] LISU LETTER BA..LISU LETTER OE
+A4F8..A4FD ; Lisu # Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA
JEU
+A4FE..A4FF ; Lisu # Po [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL
STOP
+11FB0 ; Lisu # Lo LISU LETTER YHA
+
+# Total code points: 49
+
+# ================================================
+
+A6A0..A6E5 ; Bamum # Lo [70] BAMUM LETTER A..BAMUM LETTER KI
+A6E6..A6EF ; Bamum # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
+A6F0..A6F1 ; Bamum # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING
MARK TUKWENTIS
+A6F2..A6F7 ; Bamum # Po [6] BAMUM NJAEMLI..BAMUM QUESTION MARK
+16800..16A38 ; Bamum # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER
PHASE-F VUEQ
+
+# Total code points: 657
+
+# ================================================
+
+A980..A982 ; Javanese # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN
LAYAR
+A983 ; Javanese # Mc JAVANESE SIGN WIGNYAN
+A984..A9B2 ; Javanese # Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA
+A9B3 ; Javanese # Mn JAVANESE SIGN CECAK TELU
+A9B4..A9B5 ; Javanese # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL
SIGN TOLONG
+A9B6..A9B9 ; Javanese # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL
SIGN SUKU MENDUT
+A9BA..A9BB ; Javanese # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL
SIGN DIRGA MURE
+A9BC..A9BD ; Javanese # Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE
CONSONANT SIGN KERET
+A9BE..A9C0 ; Javanese # Mc [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE
PANGKON
+A9C1..A9CD ; Javanese # Po [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED
PADA PISELEH
+A9D0..A9D9 ; Javanese # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+A9DE..A9DF ; Javanese # Po [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA
ISEN-ISEN
+
+# Total code points: 90
+
+# ================================================
+
+AAE0..AAEA ; Meetei_Mayek # Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK
LETTER SSA
+AAEB ; Meetei_Mayek # Mc MEETEI MAYEK VOWEL SIGN II
+AAEC..AAED ; Meetei_Mayek # Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI
MAYEK VOWEL SIGN AAI
+AAEE..AAEF ; Meetei_Mayek # Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI
MAYEK VOWEL SIGN AAU
+AAF0..AAF1 ; Meetei_Mayek # Po [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK
AHANG KHUDAM
+AAF2 ; Meetei_Mayek # Lo MEETEI MAYEK ANJI
+AAF3..AAF4 ; Meetei_Mayek # Lm [2] MEETEI MAYEK SYLLABLE REPETITION
MARK..MEETEI MAYEK WORD REPETITION MARK
+AAF5 ; Meetei_Mayek # Mc MEETEI MAYEK VOWEL SIGN VISARGA
+AAF6 ; Meetei_Mayek # Mn MEETEI MAYEK VIRAMA
+ABC0..ABE2 ; Meetei_Mayek # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK
LETTER I LONSUM
+ABE3..ABE4 ; Meetei_Mayek # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI
MAYEK VOWEL SIGN INAP
+ABE5 ; Meetei_Mayek # Mn MEETEI MAYEK VOWEL SIGN ANAP
+ABE6..ABE7 ; Meetei_Mayek # Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI
MAYEK VOWEL SIGN SOUNAP
+ABE8 ; Meetei_Mayek # Mn MEETEI MAYEK VOWEL SIGN UNAP
+ABE9..ABEA ; Meetei_Mayek # Mc [2] MEETEI MAYEK VOWEL SIGN
CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
+ABEB ; Meetei_Mayek # Po MEETEI MAYEK CHEIKHEI
+ABEC ; Meetei_Mayek # Mc MEETEI MAYEK LUM IYEK
+ABED ; Meetei_Mayek # Mn MEETEI MAYEK APUN IYEK
+ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK
DIGIT NINE
+
+# Total code points: 79
+
+# ================================================
+
+10840..10855 ; Imperial_Aramaic # Lo [22] IMPERIAL ARAMAIC LETTER
ALEPH..IMPERIAL ARAMAIC LETTER TAW
+10857 ; Imperial_Aramaic # Po IMPERIAL ARAMAIC SECTION SIGN
+10858..1085F ; Imperial_Aramaic # No [8] IMPERIAL ARAMAIC NUMBER
ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+
+# Total code points: 31
+
+# ================================================
+
+10A60..10A7C ; Old_South_Arabian # Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD
SOUTH ARABIAN LETTER THETH
+10A7D..10A7E ; Old_South_Arabian # No [2] OLD SOUTH ARABIAN NUMBER ONE..OLD
SOUTH ARABIAN NUMBER FIFTY
+10A7F ; Old_South_Arabian # Po OLD SOUTH ARABIAN NUMERIC
INDICATOR
+
+# Total code points: 32
+
+# ================================================
+
+10B40..10B55 ; Inscriptional_Parthian # Lo [22] INSCRIPTIONAL PARTHIAN
LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
+10B58..10B5F ; Inscriptional_Parthian # No [8] INSCRIPTIONAL PARTHIAN
NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
+
+# Total code points: 30
+
+# ================================================
+
+10B60..10B72 ; Inscriptional_Pahlavi # Lo [19] INSCRIPTIONAL PAHLAVI LETTER
ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B78..10B7F ; Inscriptional_Pahlavi # No [8] INSCRIPTIONAL PAHLAVI NUMBER
ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+
+# Total code points: 27
+
+# ================================================
+
+10C00..10C48 ; Old_Turkic # Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC
LETTER ORKHON BASH
+
+# Total code points: 73
+
+# ================================================
+
+11080..11081 ; Kaithi # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+11082 ; Kaithi # Mc KAITHI SIGN VISARGA
+11083..110AF ; Kaithi # Lo [45] KAITHI LETTER A..KAITHI LETTER HA
+110B0..110B2 ; Kaithi # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
+110B3..110B6 ; Kaithi # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
+110B7..110B8 ; Kaithi # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
+110B9..110BA ; Kaithi # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
+110BB..110BC ; Kaithi # Po [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION
SIGN
+110BD ; Kaithi # Cf KAITHI NUMBER SIGN
+110BE..110C1 ; Kaithi # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
+110C2 ; Kaithi # Mn KAITHI VOWEL SIGN VOCALIC R
+110CD ; Kaithi # Cf KAITHI NUMBER SIGN ABOVE
+
+# Total code points: 68
+
+# ================================================
+
+1BC0..1BE5 ; Batak # Lo [38] BATAK LETTER A..BATAK LETTER U
+1BE6 ; Batak # Mn BATAK SIGN TOMPI
+1BE7 ; Batak # Mc BATAK VOWEL SIGN E
+1BE8..1BE9 ; Batak # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
+1BEA..1BEC ; Batak # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
+1BED ; Batak # Mn BATAK VOWEL SIGN KARO O
+1BEE ; Batak # Mc BATAK VOWEL SIGN U
+1BEF..1BF1 ; Batak # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK
CONSONANT SIGN H
+1BF2..1BF3 ; Batak # Mc [2] BATAK PANGOLAT..BATAK PANONGONAN
+1BFC..1BFF ; Batak # Po [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL
BINDU PANGOLAT
+
+# Total code points: 56
+
+# ================================================
+
+11000 ; Brahmi # Mc BRAHMI SIGN CANDRABINDU
+11001 ; Brahmi # Mn BRAHMI SIGN ANUSVARA
+11002 ; Brahmi # Mc BRAHMI SIGN VISARGA
+11003..11037 ; Brahmi # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD
TAMIL NNNA
+11038..11046 ; Brahmi # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
+11047..1104D ; Brahmi # Po [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
+11052..11065 ; Brahmi # No [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
+11066..1106F ; Brahmi # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
+11070 ; Brahmi # Mn BRAHMI SIGN OLD TAMIL VIRAMA
+11071..11072 ; Brahmi # Lo [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI
LETTER OLD TAMIL SHORT O
+11073..11074 ; Brahmi # Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI
VOWEL SIGN OLD TAMIL SHORT O
+11075 ; Brahmi # Lo BRAHMI LETTER OLD TAMIL LLA
+1107F ; Brahmi # Mn BRAHMI NUMBER JOINER
+
+# Total code points: 115
+
+# ================================================
+
+0840..0858 ; Mandaic # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
+0859..085B ; Mandaic # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC
GEMINATION MARK
+085E ; Mandaic # Po MANDAIC PUNCTUATION
+
+# Total code points: 29
+
+# ================================================
+
+11100..11102 ; Chakma # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
+11103..11126 ; Chakma # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+11127..1112B ; Chakma # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
+1112C ; Chakma # Mc CHAKMA VOWEL SIGN E
+1112D..11134 ; Chakma # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11136..1113F ; Chakma # Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
+11140..11143 ; Chakma # Po [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
+11144 ; Chakma # Lo CHAKMA LETTER LHAA
+11145..11146 ; Chakma # Mc [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI
+11147 ; Chakma # Lo CHAKMA LETTER VAA
+
+# Total code points: 71
+
+# ================================================
+
+109A0..109B7 ; Meroitic_Cursive # Lo [24] MEROITIC CURSIVE LETTER
A..MEROITIC CURSIVE LETTER DA
+109BC..109BD ; Meroitic_Cursive # No [2] MEROITIC CURSIVE FRACTION ELEVEN
TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF
+109BE..109BF ; Meroitic_Cursive # Lo [2] MEROITIC CURSIVE LOGOGRAM
RMT..MEROITIC CURSIVE LOGOGRAM IMN
+109C0..109CF ; Meroitic_Cursive # No [16] MEROITIC CURSIVE NUMBER
ONE..MEROITIC CURSIVE NUMBER SEVENTY
+109D2..109FF ; Meroitic_Cursive # No [46] MEROITIC CURSIVE NUMBER ONE
HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS
+
+# Total code points: 90
+
+# ================================================
+
+10980..1099F ; Meroitic_Hieroglyphs # Lo [32] MEROITIC HIEROGLYPHIC LETTER
A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
+
+# Total code points: 32
+
+# ================================================
+
+16F00..16F4A ; Miao # Lo [75] MIAO LETTER PA..MIAO LETTER RTE
+16F4F ; Miao # Mn MIAO SIGN CONSONANT MODIFIER BAR
+16F50 ; Miao # Lo MIAO LETTER NASALIZATION
+16F51..16F87 ; Miao # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
+16F8F..16F92 ; Miao # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
+16F93..16F9F ; Miao # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
+
+# Total code points: 149
+
+# ================================================
+
+11180..11181 ; Sharada # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN
ANUSVARA
+11182 ; Sharada # Mc SHARADA SIGN VISARGA
+11183..111B2 ; Sharada # Lo [48] SHARADA LETTER A..SHARADA LETTER HA
+111B3..111B5 ; Sharada # Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
+111B6..111BE ; Sharada # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+111BF..111C0 ; Sharada # Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+111C1..111C4 ; Sharada # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+111C5..111C8 ; Sharada # Po [4] SHARADA DANDA..SHARADA SEPARATOR
+111C9..111CC ; Sharada # Mn [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT
VOWEL MARK
+111CD ; Sharada # Po SHARADA SUTRA MARK
+111CE ; Sharada # Mc SHARADA VOWEL SIGN PRISHTHAMATRA E
+111CF ; Sharada # Mn SHARADA SIGN INVERTED CANDRABINDU
+111D0..111D9 ; Sharada # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+111DA ; Sharada # Lo SHARADA EKAM
+111DB ; Sharada # Po SHARADA SIGN SIDDHAM
+111DC ; Sharada # Lo SHARADA HEADSTROKE
+111DD..111DF ; Sharada # Po [3] SHARADA CONTINUATION SIGN..SHARADA SECTION
MARK-2
+
+# Total code points: 96
+
+# ================================================
+
+110D0..110E8 ; Sora_Sompeng # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG
LETTER MAE
+110F0..110F9 ; Sora_Sompeng # Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG
DIGIT NINE
+
+# Total code points: 35
+
+# ================================================
+
+11680..116AA ; Takri # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA
+116AB ; Takri # Mn TAKRI SIGN ANUSVARA
+116AC ; Takri # Mc TAKRI SIGN VISARGA
+116AD ; Takri # Mn TAKRI VOWEL SIGN AA
+116AE..116AF ; Takri # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
+116B0..116B5 ; Takri # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+116B6 ; Takri # Mc TAKRI SIGN VIRAMA
+116B7 ; Takri # Mn TAKRI SIGN NUKTA
+116B8 ; Takri # Lo TAKRI LETTER ARCHAIC KHA
+116B9 ; Takri # Po TAKRI ABBREVIATION SIGN
+116C0..116C9 ; Takri # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+
+# Total code points: 68
+
+# ================================================
+
+10530..10563 ; Caucasian_Albanian # Lo [52] CAUCASIAN ALBANIAN LETTER
ALT..CAUCASIAN ALBANIAN LETTER KIW
+1056F ; Caucasian_Albanian # Po CAUCASIAN ALBANIAN CITATION MARK
+
+# Total code points: 53
+
+# ================================================
+
+16AD0..16AED ; Bassa_Vah # Lo [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AF0..16AF4 ; Bassa_Vah # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH
COMBINING HIGH-LOW TONE
+16AF5 ; Bassa_Vah # Po BASSA VAH FULL STOP
+
+# Total code points: 36
+
+# ================================================
+
+1BC00..1BC6A ; Duployan # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC
M
+1BC70..1BC7C ; Duployan # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL
SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88 ; Duployan # Lo [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX
HIGH VERTICAL
+1BC90..1BC99 ; Duployan # Lo [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX
LOW ARROW
+1BC9C ; Duployan # So DUPLOYAN SIGN O WITH CROSS
+1BC9D..1BC9E ; Duployan # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN
DOUBLE MARK
+1BC9F ; Duployan # Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+
+# Total code points: 143
+
+# ================================================
+
+10500..10527 ; Elbasan # Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+
+# Total code points: 40
+
+# ================================================
+
+11300..11301 ; Grantha # Mn [2] GRANTHA SIGN COMBINING ANUSVARA
ABOVE..GRANTHA SIGN CANDRABINDU
+11302..11303 ; Grantha # Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+11305..1130C ; Grantha # Lo [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310 ; Grantha # Lo [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328 ; Grantha # Lo [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330 ; Grantha # Lo [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333 ; Grantha # Lo [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339 ; Grantha # Lo [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133C ; Grantha # Mn GRANTHA SIGN NUKTA
+1133D ; Grantha # Lo GRANTHA SIGN AVAGRAHA
+1133E..1133F ; Grantha # Mc [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340 ; Grantha # Mn GRANTHA VOWEL SIGN II
+11341..11344 ; Grantha # Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN
VOCALIC RR
+11347..11348 ; Grantha # Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D ; Grantha # Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11350 ; Grantha # Lo GRANTHA OM
+11357 ; Grantha # Mc GRANTHA AU LENGTH MARK
+1135D..11361 ; Grantha # Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC
LL
+11362..11363 ; Grantha # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL
SIGN VOCALIC LL
+11366..1136C ; Grantha # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING
GRANTHA DIGIT SIX
+11370..11374 ; Grantha # Mn [5] COMBINING GRANTHA LETTER A..COMBINING
GRANTHA LETTER PA
+
+# Total code points: 85
+
+# ================================================
+
+16B00..16B2F ; Pahawh_Hmong # Lo [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG
CONSONANT CAU
+16B30..16B36 ; Pahawh_Hmong # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH
HMONG MARK CIM TAUM
+16B37..16B3B ; Pahawh_Hmong # Po [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH
HMONG SIGN VOS FEEM
+16B3C..16B3F ; Pahawh_Hmong # So [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH
HMONG SIGN XYEEM FAIB
+16B40..16B43 ; Pahawh_Hmong # Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH
HMONG SIGN IB YAM
+16B44 ; Pahawh_Hmong # Po PAHAWH HMONG SIGN XAUS
+16B45 ; Pahawh_Hmong # So PAHAWH HMONG SIGN CIM TSOV ROG
+16B50..16B59 ; Pahawh_Hmong # Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG
DIGIT NINE
+16B5B..16B61 ; Pahawh_Hmong # No [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG
NUMBER TRILLIONS
+16B63..16B77 ; Pahawh_Hmong # Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH
HMONG SIGN CIM NRES TOS
+16B7D..16B8F ; Pahawh_Hmong # Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH
HMONG CLAN SIGN VWJ
+
+# Total code points: 127
+
+# ================================================
+
+11200..11211 ; Khojki # Lo [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B ; Khojki # Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1122C..1122E ; Khojki # Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231 ; Khojki # Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233 ; Khojki # Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234 ; Khojki # Mn KHOJKI SIGN ANUSVARA
+11235 ; Khojki # Mc KHOJKI SIGN VIRAMA
+11236..11237 ; Khojki # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+11238..1123D ; Khojki # Po [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
+1123E ; Khojki # Mn KHOJKI SIGN SUKUN
+
+# Total code points: 62
+
+# ================================================
+
+10600..10736 ; Linear_A # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755 ; Linear_A # Lo [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767 ; Linear_A # Lo [8] LINEAR A SIGN A800..LINEAR A SIGN A807
+
+# Total code points: 341
+
+# ================================================
+
+11150..11172 ; Mahajani # Lo [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11173 ; Mahajani # Mn MAHAJANI SIGN NUKTA
+11174..11175 ; Mahajani # Po [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI
SECTION MARK
+11176 ; Mahajani # Lo MAHAJANI LIGATURE SHRI
+
+# Total code points: 39
+
+# ================================================
+
+10AC0..10AC7 ; Manichaean # Lo [8] MANICHAEAN LETTER ALEPH..MANICHAEAN
LETTER WAW
+10AC8 ; Manichaean # So MANICHAEAN SIGN UD
+10AC9..10AE4 ; Manichaean # Lo [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN
LETTER TAW
+10AE5..10AE6 ; Manichaean # Mn [2] MANICHAEAN ABBREVIATION MARK
ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
+10AEB..10AEF ; Manichaean # No [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER
ONE HUNDRED
+10AF0..10AF6 ; Manichaean # Po [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN
PUNCTUATION LINE FILLER
+
+# Total code points: 51
+
+# ================================================
+
+1E800..1E8C4 ; Mende_Kikakui # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE
KIKAKUI SYLLABLE M060 NYON
+1E8C7..1E8CF ; Mende_Kikakui # No [9] MENDE KIKAKUI DIGIT ONE..MENDE
KIKAKUI DIGIT NINE
+1E8D0..1E8D6 ; Mende_Kikakui # Mn [7] MENDE KIKAKUI COMBINING NUMBER
TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+
+# Total code points: 213
+
+# ================================================
+
+11600..1162F ; Modi # Lo [48] MODI LETTER A..MODI LETTER LLA
+11630..11632 ; Modi # Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A ; Modi # Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C ; Modi # Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D ; Modi # Mn MODI SIGN ANUSVARA
+1163E ; Modi # Mc MODI SIGN VISARGA
+1163F..11640 ; Modi # Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
+11641..11643 ; Modi # Po [3] MODI DANDA..MODI ABBREVIATION SIGN
+11644 ; Modi # Lo MODI SIGN HUVA
+11650..11659 ; Modi # Nd [10] MODI DIGIT ZERO..MODI DIGIT NINE
+
+# Total code points: 79
+
+# ================================================
+
+16A40..16A5E ; Mro # Lo [31] MRO LETTER TA..MRO LETTER TEK
+16A60..16A69 ; Mro # Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16A6E..16A6F ; Mro # Po [2] MRO DANDA..MRO DOUBLE DANDA
+
+# Total code points: 43
+
+# ================================================
+
+10A80..10A9C ; Old_North_Arabian # Lo [29] OLD NORTH ARABIAN LETTER HEH..OLD
NORTH ARABIAN LETTER ZAH
+10A9D..10A9F ; Old_North_Arabian # No [3] OLD NORTH ARABIAN NUMBER ONE..OLD
NORTH ARABIAN NUMBER TWENTY
+
+# Total code points: 32
+
+# ================================================
+
+10880..1089E ; Nabataean # Lo [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN
LETTER TAW
+108A7..108AF ; Nabataean # No [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER
ONE HUNDRED
+
+# Total code points: 40
+
+# ================================================
+
+10860..10876 ; Palmyrene # Lo [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER
TAW
+10877..10878 ; Palmyrene # So [2] PALMYRENE LEFT-POINTING
FLEURON..PALMYRENE RIGHT-POINTING FLEURON
+10879..1087F ; Palmyrene # No [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER
TWENTY
+
+# Total code points: 32
+
+# ================================================
+
+11AC0..11AF8 ; Pau_Cin_Hau # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU
GLOTTAL STOP FINAL
+
+# Total code points: 57
+
+# ================================================
+
+10350..10375 ; Old_Permic # Lo [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER
IA
+10376..1037A ; Old_Permic # Mn [5] COMBINING OLD PERMIC LETTER
AN..COMBINING OLD PERMIC LETTER SII
+
+# Total code points: 43
+
+# ================================================
+
+10B80..10B91 ; Psalter_Pahlavi # Lo [18] PSALTER PAHLAVI LETTER
ALEPH..PSALTER PAHLAVI LETTER TAW
+10B99..10B9C ; Psalter_Pahlavi # Po [4] PSALTER PAHLAVI SECTION
MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10BA9..10BAF ; Psalter_Pahlavi # No [7] PSALTER PAHLAVI NUMBER ONE..PSALTER
PAHLAVI NUMBER ONE HUNDRED
+
+# Total code points: 29
+
+# ================================================
+
+11580..115AE ; Siddham # Lo [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+115AF..115B1 ; Siddham # Mc [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5 ; Siddham # Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN
VOCALIC RR
+115B8..115BB ; Siddham # Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD ; Siddham # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN
ANUSVARA
+115BE ; Siddham # Mc SIDDHAM SIGN VISARGA
+115BF..115C0 ; Siddham # Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+115C1..115D7 ; Siddham # Po [23] SIDDHAM SIGN SIDDHAM..SIDDHAM SECTION MARK
WITH CIRCLES AND FOUR ENCLOSURES
+115D8..115DB ; Siddham # Lo [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE
I..SIDDHAM LETTER ALTERNATE U
+115DC..115DD ; Siddham # Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM
VOWEL SIGN ALTERNATE UU
+
+# Total code points: 92
+
+# ================================================
+
+112B0..112DE ; Khudawadi # Lo [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+112DF ; Khudawadi # Mn KHUDAWADI SIGN ANUSVARA
+112E0..112E2 ; Khudawadi # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL
SIGN II
+112E3..112EA ; Khudawadi # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN
VIRAMA
+112F0..112F9 ; Khudawadi # Nd [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+
+# Total code points: 69
+
+# ================================================
+
+11480..114AF ; Tirhuta # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114B0..114B2 ; Tirhuta # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8 ; Tirhuta # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN
VOCALIC LL
+114B9 ; Tirhuta # Mc TIRHUTA VOWEL SIGN E
+114BA ; Tirhuta # Mn TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE ; Tirhuta # Mc [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0 ; Tirhuta # Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN
ANUSVARA
+114C1 ; Tirhuta # Mc TIRHUTA SIGN VISARGA
+114C2..114C3 ; Tirhuta # Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+114C4..114C5 ; Tirhuta # Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C6 ; Tirhuta # Po TIRHUTA ABBREVIATION SIGN
+114C7 ; Tirhuta # Lo TIRHUTA OM
+114D0..114D9 ; Tirhuta # Nd [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+
+# Total code points: 82
+
+# ================================================
+
+118A0..118DF ; Warang_Citi # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG
CITI SMALL LETTER VIYO
+118E0..118E9 ; Warang_Citi # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI
DIGIT NINE
+118EA..118F2 ; Warang_Citi # No [9] WARANG CITI NUMBER TEN..WARANG CITI
NUMBER NINETY
+118FF ; Warang_Citi # Lo WARANG CITI OM
+
+# Total code points: 84
+
+# ================================================
+
+11700..1171A ; Ahom # Lo [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
+1171D..1171F ; Ahom # Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT
SIGN MEDIAL LIGATING RA
+11720..11721 ; Ahom # Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
+11722..11725 ; Ahom # Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
+11726 ; Ahom # Mc AHOM VOWEL SIGN E
+11727..1172B ; Ahom # Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
+11730..11739 ; Ahom # Nd [10] AHOM DIGIT ZERO..AHOM DIGIT NINE
+1173A..1173B ; Ahom # No [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY
+1173C..1173E ; Ahom # Po [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI
+1173F ; Ahom # So AHOM SYMBOL VI
+11740..11746 ; Ahom # Lo [7] AHOM LETTER CA..AHOM LETTER LLA
+
+# Total code points: 65
+
+# ================================================
+
+14400..14646 ; Anatolian_Hieroglyphs # Lo [583] ANATOLIAN HIEROGLYPH
A001..ANATOLIAN HIEROGLYPH A530
+
+# Total code points: 583
+
+# ================================================
+
+108E0..108F2 ; Hatran # Lo [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH
+108F4..108F5 ; Hatran # Lo [2] HATRAN LETTER SHIN..HATRAN LETTER TAW
+108FB..108FF ; Hatran # No [5] HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED
+
+# Total code points: 26
+
+# ================================================
+
+11280..11286 ; Multani # Lo [7] MULTANI LETTER A..MULTANI LETTER GA
+11288 ; Multani # Lo MULTANI LETTER GHA
+1128A..1128D ; Multani # Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA
+1128F..1129D ; Multani # Lo [15] MULTANI LETTER NYA..MULTANI LETTER BA
+1129F..112A8 ; Multani # Lo [10] MULTANI LETTER BHA..MULTANI LETTER RHA
+112A9 ; Multani # Po MULTANI SECTION MARK
+
+# Total code points: 38
+
+# ================================================
+
+10C80..10CB2 ; Old_Hungarian # L& [51] OLD HUNGARIAN CAPITAL LETTER A..OLD
HUNGARIAN CAPITAL LETTER US
+10CC0..10CF2 ; Old_Hungarian # L& [51] OLD HUNGARIAN SMALL LETTER A..OLD
HUNGARIAN SMALL LETTER US
+10CFA..10CFF ; Old_Hungarian # No [6] OLD HUNGARIAN NUMBER ONE..OLD
HUNGARIAN NUMBER ONE THOUSAND
+
+# Total code points: 108
+
+# ================================================
+
+1D800..1D9FF ; SignWriting # So [512] SIGNWRITING HAND-FIST
INDEX..SIGNWRITING HEAD
+1DA00..1DA36 ; SignWriting # Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR
SUCKING IN
+1DA37..1DA3A ; SignWriting # So [4] SIGNWRITING AIR BLOW SMALL
ROTATIONS..SIGNWRITING BREATH EXHALE
+1DA3B..1DA6C ; SignWriting # Mn [50] SIGNWRITING MOUTH CLOSED
NEUTRAL..SIGNWRITING EXCITEMENT
+1DA6D..1DA74 ; SignWriting # So [8] SIGNWRITING SHOULDER HIP
SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING
+1DA75 ; SignWriting # Mn SIGNWRITING UPPER BODY TILTING FROM HIP
JOINTS
+1DA76..1DA83 ; SignWriting # So [14] SIGNWRITING LIMB
COMBINATION..SIGNWRITING LOCATION DEPTH
+1DA84 ; SignWriting # Mn SIGNWRITING LOCATION HEAD NECK
+1DA85..1DA86 ; SignWriting # So [2] SIGNWRITING LOCATION TORSO..SIGNWRITING
LOCATION LIMBS DIGITS
+1DA87..1DA8B ; SignWriting # Po [5] SIGNWRITING COMMA..SIGNWRITING
PARENTHESIS
+1DA9B..1DA9F ; SignWriting # Mn [5] SIGNWRITING FILL
MODIFIER-2..SIGNWRITING FILL MODIFIER-6
+1DAA1..1DAAF ; SignWriting # Mn [15] SIGNWRITING ROTATION
MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
+
+# Total code points: 672
+
+# ================================================
+
+1E900..1E943 ; Adlam # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER
SHA
+1E944..1E94A ; Adlam # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
+1E94B ; Adlam # Lm ADLAM NASALIZATION MARK
+1E950..1E959 ; Adlam # Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
+1E95E..1E95F ; Adlam # Po [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL
QUESTION MARK
+
+# Total code points: 88
+
+# ================================================
+
+11C00..11C08 ; Bhaiksuki # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER
VOCALIC L
+11C0A..11C2E ; Bhaiksuki # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
+11C2F ; Bhaiksuki # Mc BHAIKSUKI VOWEL SIGN AA
+11C30..11C36 ; Bhaiksuki # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL
SIGN VOCALIC L
+11C38..11C3D ; Bhaiksuki # Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN
ANUSVARA
+11C3E ; Bhaiksuki # Mc BHAIKSUKI SIGN VISARGA
+11C3F ; Bhaiksuki # Mn BHAIKSUKI SIGN VIRAMA
+11C40 ; Bhaiksuki # Lo BHAIKSUKI SIGN AVAGRAHA
+11C41..11C45 ; Bhaiksuki # Po [5] BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2
+11C50..11C59 ; Bhaiksuki # Nd [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
+11C5A..11C6C ; Bhaiksuki # No [19] BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS
UNIT MARK
+
+# Total code points: 97
+
+# ================================================
+
+11C70..11C71 ; Marchen # Po [2] MARCHEN HEAD MARK..MARCHEN MARK SHAD
+11C72..11C8F ; Marchen # Lo [30] MARCHEN LETTER KA..MARCHEN LETTER A
+11C92..11CA7 ; Marchen # Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN
SUBJOINED LETTER ZA
+11CA9 ; Marchen # Mc MARCHEN SUBJOINED LETTER YA
+11CAA..11CB0 ; Marchen # Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL
SIGN AA
+11CB1 ; Marchen # Mc MARCHEN VOWEL SIGN I
+11CB2..11CB3 ; Marchen # Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
+11CB4 ; Marchen # Mc MARCHEN VOWEL SIGN O
+11CB5..11CB6 ; Marchen # Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN
CANDRABINDU
+
+# Total code points: 68
+
+# ================================================
+
+11400..11434 ; Newa # Lo [53] NEWA LETTER A..NEWA LETTER HA
+11435..11437 ; Newa # Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
+11438..1143F ; Newa # Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
+11440..11441 ; Newa # Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
+11442..11444 ; Newa # Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
+11445 ; Newa # Mc NEWA SIGN VISARGA
+11446 ; Newa # Mn NEWA SIGN NUKTA
+11447..1144A ; Newa # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
+1144B..1144F ; Newa # Po [5] NEWA DANDA..NEWA ABBREVIATION SIGN
+11450..11459 ; Newa # Nd [10] NEWA DIGIT ZERO..NEWA DIGIT NINE
+1145A..1145B ; Newa # Po [2] NEWA DOUBLE COMMA..NEWA PLACEHOLDER MARK
+1145D ; Newa # Po NEWA INSERTION SIGN
+1145E ; Newa # Mn NEWA SANDHI MARK
+1145F..11461 ; Newa # Lo [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN
UPADHMANIYA
+
+# Total code points: 97
+
+# ================================================
+
+104B0..104D3 ; Osage # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER
ZHA
+104D8..104FB ; Osage # L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA
+
+# Total code points: 72
+
+# ================================================
+
+16FE0 ; Tangut # Lm TANGUT ITERATION MARK
+17000..187F7 ; Tangut # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT
IDEOGRAPH-187F7
+18800..18AFF ; Tangut # Lo [768] TANGUT COMPONENT-001..TANGUT COMPONENT-768
+18D00..18D08 ; Tangut # Lo [9] TANGUT IDEOGRAPH-18D00..TANGUT
IDEOGRAPH-18D08
+
+# Total code points: 6914
+
+# ================================================
+
+11D00..11D06 ; Masaram_Gondi # Lo [7] MASARAM GONDI LETTER A..MASARAM GONDI
LETTER E
+11D08..11D09 ; Masaram_Gondi # Lo [2] MASARAM GONDI LETTER AI..MASARAM
GONDI LETTER O
+11D0B..11D30 ; Masaram_Gondi # Lo [38] MASARAM GONDI LETTER AU..MASARAM
GONDI LETTER TRA
+11D31..11D36 ; Masaram_Gondi # Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM
GONDI VOWEL SIGN VOCALIC R
+11D3A ; Masaram_Gondi # Mn MASARAM GONDI VOWEL SIGN E
+11D3C..11D3D ; Masaram_Gondi # Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM
GONDI VOWEL SIGN O
+11D3F..11D45 ; Masaram_Gondi # Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM
GONDI VIRAMA
+11D46 ; Masaram_Gondi # Lo MASARAM GONDI REPHA
+11D47 ; Masaram_Gondi # Mn MASARAM GONDI RA-KARA
+11D50..11D59 ; Masaram_Gondi # Nd [10] MASARAM GONDI DIGIT ZERO..MASARAM
GONDI DIGIT NINE
+
+# Total code points: 75
+
+# ================================================
+
+16FE1 ; Nushu # Lm NUSHU ITERATION MARK
+1B170..1B2FB ; Nushu # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
+
+# Total code points: 397
+
+# ================================================
+
+11A50 ; Soyombo # Lo SOYOMBO LETTER A
+11A51..11A56 ; Soyombo # Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
+11A57..11A58 ; Soyombo # Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
+11A59..11A5B ; Soyombo # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL
LENGTH MARK
+11A5C..11A89 ; Soyombo # Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL
LETTER SA
+11A8A..11A96 ; Soyombo # Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO
SIGN ANUSVARA
+11A97 ; Soyombo # Mc SOYOMBO SIGN VISARGA
+11A98..11A99 ; Soyombo # Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
+11A9A..11A9C ; Soyombo # Po [3] SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD
+11A9D ; Soyombo # Lo SOYOMBO MARK PLUTA
+11A9E..11AA2 ; Soyombo # Po [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND
TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
+
+# Total code points: 83
+
+# ================================================
+
+11A00 ; Zanabazar_Square # Lo ZANABAZAR SQUARE LETTER A
+11A01..11A0A ; Zanabazar_Square # Mn [10] ZANABAZAR SQUARE VOWEL SIGN
I..ZANABAZAR SQUARE VOWEL LENGTH MARK
+11A0B..11A32 ; Zanabazar_Square # Lo [40] ZANABAZAR SQUARE LETTER
KA..ZANABAZAR SQUARE LETTER KSSA
+11A33..11A38 ; Zanabazar_Square # Mn [6] ZANABAZAR SQUARE FINAL CONSONANT
MARK..ZANABAZAR SQUARE SIGN ANUSVARA
+11A39 ; Zanabazar_Square # Mc ZANABAZAR SQUARE SIGN VISARGA
+11A3A ; Zanabazar_Square # Lo ZANABAZAR SQUARE CLUSTER-INITIAL
LETTER RA
+11A3B..11A3E ; Zanabazar_Square # Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL
LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
+11A3F..11A46 ; Zanabazar_Square # Po [8] ZANABAZAR SQUARE INITIAL HEAD
MARK..ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK
+11A47 ; Zanabazar_Square # Mn ZANABAZAR SQUARE SUBJOINER
+
+# Total code points: 72
+
+# ================================================
+
+11800..1182B ; Dogra # Lo [44] DOGRA LETTER A..DOGRA LETTER RRA
+1182C..1182E ; Dogra # Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
+1182F..11837 ; Dogra # Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
+11838 ; Dogra # Mc DOGRA SIGN VISARGA
+11839..1183A ; Dogra # Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
+1183B ; Dogra # Po DOGRA ABBREVIATION SIGN
+
+# Total code points: 60
+
+# ================================================
+
+11D60..11D65 ; Gunjala_Gondi # Lo [6] GUNJALA GONDI LETTER A..GUNJALA GONDI
LETTER UU
+11D67..11D68 ; Gunjala_Gondi # Lo [2] GUNJALA GONDI LETTER EE..GUNJALA
GONDI LETTER AI
+11D6A..11D89 ; Gunjala_Gondi # Lo [32] GUNJALA GONDI LETTER OO..GUNJALA
GONDI LETTER SA
+11D8A..11D8E ; Gunjala_Gondi # Mc [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA
GONDI VOWEL SIGN UU
+11D90..11D91 ; Gunjala_Gondi # Mn [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA
GONDI VOWEL SIGN AI
+11D93..11D94 ; Gunjala_Gondi # Mc [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA
GONDI VOWEL SIGN AU
+11D95 ; Gunjala_Gondi # Mn GUNJALA GONDI SIGN ANUSVARA
+11D96 ; Gunjala_Gondi # Mc GUNJALA GONDI SIGN VISARGA
+11D97 ; Gunjala_Gondi # Mn GUNJALA GONDI VIRAMA
+11D98 ; Gunjala_Gondi # Lo GUNJALA GONDI OM
+11DA0..11DA9 ; Gunjala_Gondi # Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA
GONDI DIGIT NINE
+
+# Total code points: 63
+
+# ================================================
+
+11EE0..11EF2 ; Makasar # Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA
+11EF3..11EF4 ; Makasar # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
+11EF5..11EF6 ; Makasar # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11EF7..11EF8 ; Makasar # Po [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+
+# Total code points: 25
+
+# ================================================
+
+16E40..16E7F ; Medefaidrin # L& [64] MEDEFAIDRIN CAPITAL LETTER
M..MEDEFAIDRIN SMALL LETTER Y
+16E80..16E96 ; Medefaidrin # No [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN
DIGIT THREE ALTERNATE FORM
+16E97..16E9A ; Medefaidrin # Po [4] MEDEFAIDRIN COMMA..MEDEFAIDRIN
EXCLAMATION OH
+
+# Total code points: 91
+
+# ================================================
+
+10D00..10D23 ; Hanifi_Rohingya # Lo [36] HANIFI ROHINGYA LETTER A..HANIFI
ROHINGYA MARK NA KHONNA
+10D24..10D27 ; Hanifi_Rohingya # Mn [4] HANIFI ROHINGYA SIGN
HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+10D30..10D39 ; Hanifi_Rohingya # Nd [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI
ROHINGYA DIGIT NINE
+
+# Total code points: 50
+
+# ================================================
+
+10F30..10F45 ; Sogdian # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT
SHIN
+10F46..10F50 ; Sogdian # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN
COMBINING STROKE BELOW
+10F51..10F54 ; Sogdian # No [4] SOGDIAN NUMBER ONE..SOGDIAN NUMBER ONE
HUNDRED
+10F55..10F59 ; Sogdian # Po [5] SOGDIAN PUNCTUATION TWO VERTICAL
BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
+
+# Total code points: 42
+
+# ================================================
+
+10F00..10F1C ; Old_Sogdian # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN
LETTER FINAL TAW WITH VERTICAL TAIL
+10F1D..10F26 ; Old_Sogdian # No [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN
FRACTION ONE HALF
+10F27 ; Old_Sogdian # Lo OLD SOGDIAN LIGATURE AYIN-DALETH
+
+# Total code points: 40
+
+# ================================================
+
+10FE0..10FF6 ; Elymaic # Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE
ZAYIN-YODH
+
+# Total code points: 23
+
+# ================================================
+
+119A0..119A7 ; Nandinagari # Lo [8] NANDINAGARI LETTER A..NANDINAGARI
LETTER VOCALIC RR
+119AA..119D0 ; Nandinagari # Lo [39] NANDINAGARI LETTER E..NANDINAGARI
LETTER RRA
+119D1..119D3 ; Nandinagari # Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI
VOWEL SIGN II
+119D4..119D7 ; Nandinagari # Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI
VOWEL SIGN VOCALIC RR
+119DA..119DB ; Nandinagari # Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI
VOWEL SIGN AI
+119DC..119DF ; Nandinagari # Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI
SIGN VISARGA
+119E0 ; Nandinagari # Mn NANDINAGARI SIGN VIRAMA
+119E1 ; Nandinagari # Lo NANDINAGARI SIGN AVAGRAHA
+119E2 ; Nandinagari # Po NANDINAGARI SIGN SIDDHAM
+119E3 ; Nandinagari # Lo NANDINAGARI HEADSTROKE
+119E4 ; Nandinagari # Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
+
+# Total code points: 65
+
+# ================================================
+
+1E100..1E12C ; Nyiakeng_Puachue_Hmong # Lo [45] NYIAKENG PUACHUE HMONG
LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
+1E130..1E136 ; Nyiakeng_Puachue_Hmong # Mn [7] NYIAKENG PUACHUE HMONG
TONE-B..NYIAKENG PUACHUE HMONG TONE-D
+1E137..1E13D ; Nyiakeng_Puachue_Hmong # Lm [7] NYIAKENG PUACHUE HMONG SIGN
FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+1E140..1E149 ; Nyiakeng_Puachue_Hmong # Nd [10] NYIAKENG PUACHUE HMONG DIGIT
ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
+1E14E ; Nyiakeng_Puachue_Hmong # Lo NYIAKENG PUACHUE HMONG
LOGOGRAM NYAJ
+1E14F ; Nyiakeng_Puachue_Hmong # So NYIAKENG PUACHUE HMONG
CIRCLED CA
+
+# Total code points: 71
+
+# ================================================
+
+1E2C0..1E2EB ; Wancho # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E2EC..1E2EF ; Wancho # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E2F0..1E2F9 ; Wancho # Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+1E2FF ; Wancho # Sc WANCHO NGUN SIGN
+
+# Total code points: 59
+
+# ================================================
+
+10FB0..10FC4 ; Chorasmian # Lo [21] CHORASMIAN LETTER ALEPH..CHORASMIAN
LETTER TAW
+10FC5..10FCB ; Chorasmian # No [7] CHORASMIAN NUMBER ONE..CHORASMIAN NUMBER
ONE HUNDRED
+
+# Total code points: 28
+
+# ================================================
+
+11900..11906 ; Dives_Akuru # Lo [7] DIVES AKURU LETTER A..DIVES AKURU
LETTER E
+11909 ; Dives_Akuru # Lo DIVES AKURU LETTER O
+1190C..11913 ; Dives_Akuru # Lo [8] DIVES AKURU LETTER KA..DIVES AKURU
LETTER JA
+11915..11916 ; Dives_Akuru # Lo [2] DIVES AKURU LETTER NYA..DIVES AKURU
LETTER TTA
+11918..1192F ; Dives_Akuru # Lo [24] DIVES AKURU LETTER DDA..DIVES AKURU
LETTER ZA
+11930..11935 ; Dives_Akuru # Mc [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU
VOWEL SIGN E
+11937..11938 ; Dives_Akuru # Mc [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU
VOWEL SIGN O
+1193B..1193C ; Dives_Akuru # Mn [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU
SIGN CANDRABINDU
+1193D ; Dives_Akuru # Mc DIVES AKURU SIGN HALANTA
+1193E ; Dives_Akuru # Mn DIVES AKURU VIRAMA
+1193F ; Dives_Akuru # Lo DIVES AKURU PREFIXED NASAL SIGN
+11940 ; Dives_Akuru # Mc DIVES AKURU MEDIAL YA
+11941 ; Dives_Akuru # Lo DIVES AKURU INITIAL RA
+11942 ; Dives_Akuru # Mc DIVES AKURU MEDIAL RA
+11943 ; Dives_Akuru # Mn DIVES AKURU SIGN NUKTA
+11944..11946 ; Dives_Akuru # Po [3] DIVES AKURU DOUBLE DANDA..DIVES AKURU
END OF TEXT MARK
+11950..11959 ; Dives_Akuru # Nd [10] DIVES AKURU DIGIT ZERO..DIVES AKURU
DIGIT NINE
+
+# Total code points: 72
+
+# ================================================
+
+16FE4 ; Khitan_Small_Script # Mn KHITAN SMALL SCRIPT FILLER
+18B00..18CD5 ; Khitan_Small_Script # Lo [470] KHITAN SMALL SCRIPT
CHARACTER-18B00..KHITAN SMALL SCRIPT CHARACTER-18CD5
+
+# Total code points: 471
+
+# ================================================
+
+10E80..10EA9 ; Yezidi # Lo [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
+10EAB..10EAC ; Yezidi # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI
COMBINING MADDA MARK
+10EAD ; Yezidi # Pd YEZIDI HYPHENATION MARK
+10EB0..10EB1 ; Yezidi # Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI
LETTER YOT WITH CIRCUMFLEX ABOVE
+
+# Total code points: 47
+
+# ================================================
+
+12F90..12FF0 ; Cypro_Minoan # Lo [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN
SIGN CM114
+12FF1..12FF2 ; Cypro_Minoan # Po [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN
SIGN CM302
+
+# Total code points: 99
+
+# ================================================
+
+10F70..10F81 ; Old_Uyghur # Lo [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR
LETTER LESH
+10F82..10F85 ; Old_Uyghur # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD
UYGHUR COMBINING TWO DOTS BELOW
+10F86..10F89 ; Old_Uyghur # Po [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR
PUNCTUATION FOUR DOTS
+
+# Total code points: 26
+
+# ================================================
+
+16A70..16ABE ; Tangsa # Lo [79] TANGSA LETTER OZ..TANGSA LETTER ZA
+16AC0..16AC9 ; Tangsa # Nd [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
+
+# Total code points: 89
+
+# ================================================
+
+1E290..1E2AD ; Toto # Lo [30] TOTO LETTER PA..TOTO LETTER A
+1E2AE ; Toto # Mn TOTO SIGN RISING TONE
+
+# Total code points: 31
+
+# ================================================
+
+10570..1057A ; Vithkuqi # L& [11] VITHKUQI CAPITAL LETTER A..VITHKUQI
CAPITAL LETTER GA
+1057C..1058A ; Vithkuqi # L& [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI
CAPITAL LETTER RE
+1058C..10592 ; Vithkuqi # L& [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI
CAPITAL LETTER XE
+10594..10595 ; Vithkuqi # L& [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI
CAPITAL LETTER ZE
+10597..105A1 ; Vithkuqi # L& [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL
LETTER GA
+105A3..105B1 ; Vithkuqi # L& [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL
LETTER RE
+105B3..105B9 ; Vithkuqi # L& [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL
LETTER XE
+105BB..105BC ; Vithkuqi # L& [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL
LETTER ZE
+
+# Total code points: 70
+
+# EOF
diff --git a/admin/unidata/blocks.awk b/admin/unidata/blocks.awk
index 48d8c873c7..5f392b5ad3 100755
--- a/admin/unidata/blocks.awk
+++ b/admin/unidata/blocks.awk
@@ -98,7 +98,7 @@ function name2alias(name , w, w2) {
else if (name ~ /arabic/) return "arabic"
else if (name ~ /^greek/) return "greek"
else if (name ~ /^coptic/) return "coptic"
- else if (name ~ /cuneiform number/) return
"cuneiform-numbers-and-punctuation"
+ else if (name ~ /cuneiform number/) return "cuneiform"
else if (name ~ /cuneiform/) return "cuneiform"
else if (name ~ /mathematical alphanumeric symbol/) return "mathematical"
else if (name ~
/punctuation|mathematical|arrows|currency|superscript|small form
variants|geometric|dingbats|enclosed|alchemical|pictograph|emoticon|transport/)
return "symbol"
@@ -113,9 +113,11 @@ function name2alias(name , w, w2) {
else if (name ~/^(specials|tags)$/) return 0
else if (name ~ /linear b/) return "linear-b"
else if (name ~ /aramaic/) return "aramaic"
- else if (name ~ /rumi num/) return "rumi-number"
+ else if (name ~ /rumi num/) return "arabic"
else if (name ~ /duployan|shorthand/) return "duployan-shorthand"
else if (name ~ /sutton signwriting/) return "sutton-sign-writing"
+ else if (name ~ /sinhala archaic number/) return "sinhala"
+ else if (name ~ /tangut components/) return "tangut"
sub(/^small /, "", name)
sub(/ (extended|extensions*|supplement).*/, "", name)
diff --git a/admin/unidata/confusables.txt b/admin/unidata/confusables.txt
new file mode 100644
index 0000000000..c75f78ec3e
--- /dev/null
+++ b/admin/unidata/confusables.txt
@@ -0,0 +1,9637 @@
+# confusables.txt
+# Date: 2021-05-29, 22:09:29 GMT
+# © 2021 Unicode®, Inc.
+# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in
the U.S. and other countries.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+#
+# Unicode Security Mechanisms for UTS #39
+# Version: 14.0.0
+#
+# For documentation and usage, see http://www.unicode.org/reports/tr39
+#
+05AD ; 0596 ; MA # ( ֭ → ֖ ) HEBREW ACCENT DEHI → HEBREW ACCENT TIPEHA
#
+
+05AE ; 0598 ; MA # ( ֮ → ֘ ) HEBREW ACCENT ZINOR → HEBREW ACCENT ZARQA
#
+
+05A8 ; 0599 ; MA # ( ֨ → ֙ ) HEBREW ACCENT QADMA → HEBREW ACCENT PASHTA
#
+
+05A4 ; 059A ; MA # ( ֤ → ֚ ) HEBREW ACCENT MAHAPAKH → HEBREW ACCENT
YETIV #
+
+1AB4 ; 06DB ; MA # ( ᪴ → ۛ ) COMBINING TRIPLE DOT → ARABIC SMALL HIGH
THREE DOTS #
+20DB ; 06DB ; MA # ( ⃛ → ۛ ) COMBINING THREE DOTS ABOVE → ARABIC SMALL
HIGH THREE DOTS # →᪴→
+
+0619 ; 0313 ; MA # ( ؙ → ̓ ) ARABIC SMALL DAMMA → COMBINING COMMA ABOVE
# →ُ→
+08F3 ; 0313 ; MA # ( ࣳ → ̓ ) ARABIC SMALL HIGH WAW → COMBINING COMMA
ABOVE # →ُ→
+0343 ; 0313 ; MA # ( ̓ → ̓ ) COMBINING GREEK KORONIS → COMBINING COMMA
ABOVE #
+0315 ; 0313 ; MA # ( ̕ → ̓ ) COMBINING COMMA ABOVE RIGHT → COMBINING
COMMA ABOVE #
+064F ; 0313 ; MA # ( ُ → ̓ ) ARABIC DAMMA → COMBINING COMMA ABOVE
#
+
+065D ; 0314 ; MA # ( ٝ → ̔ ) ARABIC REVERSED DAMMA → COMBINING REVERSED
COMMA ABOVE #
+
+059C ; 0301 ; MA # ( ֜ → ́ ) HEBREW ACCENT GERESH → COMBINING ACUTE
ACCENT #
+059D ; 0301 ; MA # ( ֝ → ́ ) HEBREW ACCENT GERESH MUQDAM → COMBINING
ACUTE ACCENT # →֜→
+0618 ; 0301 ; MA # ( ؘ → ́ ) ARABIC SMALL FATHA → COMBINING ACUTE ACCENT
# →َ→
+0747 ; 0301 ; MA # ( ݇ → ́ ) SYRIAC OBLIQUE LINE ABOVE → COMBINING ACUTE
ACCENT #
+0341 ; 0301 ; MA # ( ́ → ́ ) COMBINING ACUTE TONE MARK → COMBINING ACUTE
ACCENT #
+0954 ; 0301 ; MA # ( ॔ → ́ ) DEVANAGARI ACUTE ACCENT → COMBINING ACUTE
ACCENT #
+064E ; 0301 ; MA # ( َ → ́ ) ARABIC FATHA → COMBINING ACUTE ACCENT
#
+
+0340 ; 0300 ; MA # ( ̀ → ̀ ) COMBINING GRAVE TONE MARK → COMBINING GRAVE
ACCENT #
+0953 ; 0300 ; MA # ( ॓ → ̀ ) DEVANAGARI GRAVE ACCENT → COMBINING GRAVE
ACCENT #
+
+030C ; 0306 ; MA # ( ̌ → ̆ ) COMBINING CARON → COMBINING BREVE #
+A67C ; 0306 ; MA # ( ꙼ → ̆ ) COMBINING CYRILLIC KAVYKA → COMBINING BREVE
#
+0658 ; 0306 ; MA # ( ٘ → ̆ ) ARABIC MARK NOON GHUNNA → COMBINING BREVE
#
+065A ; 0306 ; MA # ( ٚ → ̆ ) ARABIC VOWEL SIGN SMALL V ABOVE → COMBINING
BREVE # →̌→
+036E ; 0306 ; MA # ( ͮ → ̆ ) COMBINING LATIN SMALL LETTER V → COMBINING
BREVE # →̌→
+
+06E8 ; 0306 0307 ; MA # ( ۨ → ̆̇ ) ARABIC SMALL HIGH NOON → COMBINING
BREVE, COMBINING DOT ABOVE # →̐→
+0310 ; 0306 0307 ; MA # ( ̐ → ̆̇ ) COMBINING CANDRABINDU → COMBINING
BREVE, COMBINING DOT ABOVE #
+0901 ; 0306 0307 ; MA # ( ँ → ̆̇ ) DEVANAGARI SIGN CANDRABINDU →
COMBINING BREVE, COMBINING DOT ABOVE # →̐→
+0981 ; 0306 0307 ; MA # ( ঁ → ̆̇ ) BENGALI SIGN CANDRABINDU →
COMBINING BREVE, COMBINING DOT ABOVE # →̐→
+0A81 ; 0306 0307 ; MA # ( ઁ → ̆̇ ) GUJARATI SIGN CANDRABINDU →
COMBINING BREVE, COMBINING DOT ABOVE # →̐→
+0B01 ; 0306 0307 ; MA # ( ଁ → ̆̇ ) ORIYA SIGN CANDRABINDU → COMBINING
BREVE, COMBINING DOT ABOVE # →̐→
+0C00 ; 0306 0307 ; MA # ( ఀ → ̆̇ ) TELUGU SIGN COMBINING CANDRABINDU
ABOVE → COMBINING BREVE, COMBINING DOT ABOVE # →ँ→→̐→
+0C81 ; 0306 0307 ; MA # ( ಁ → ̆̇ ) KANNADA SIGN CANDRABINDU →
COMBINING BREVE, COMBINING DOT ABOVE # →ँ→→̐→
+0D01 ; 0306 0307 ; MA # ( ഁ → ̆̇ ) MALAYALAM SIGN CANDRABINDU →
COMBINING BREVE, COMBINING DOT ABOVE # →ँ→→̐→
+114BF ; 0306 0307 ; MA # ( 𑒿 → ̆̇ ) TIRHUTA SIGN CANDRABINDU →
COMBINING BREVE, COMBINING DOT ABOVE # →ঁ→→̐→
+
+1CD0 ; 0302 ; MA # ( ᳐ → ̂ ) VEDIC TONE KARSHANA → COMBINING CIRCUMFLEX
ACCENT #
+0311 ; 0302 ; MA # ( ̑ → ̂ ) COMBINING INVERTED BREVE → COMBINING
CIRCUMFLEX ACCENT #
+065B ; 0302 ; MA # ( ٛ → ̂ ) ARABIC VOWEL SIGN INVERTED SMALL V ABOVE →
COMBINING CIRCUMFLEX ACCENT #
+07EE ; 0302 ; MA # ( ߮ → ̂ ) NKO COMBINING LONG DESCENDING TONE →
COMBINING CIRCUMFLEX ACCENT #
+A6F0 ; 0302 ; MA # ( ꛰ → ̂ ) BAMUM COMBINING MARK KOQNDON → COMBINING
CIRCUMFLEX ACCENT #
+
+05AF ; 030A ; MA # ( ֯ → ̊ ) HEBREW MARK MASORA CIRCLE → COMBINING RING
ABOVE #
+06DF ; 030A ; MA # ( ۟ → ̊ ) ARABIC SMALL HIGH ROUNDED ZERO → COMBINING
RING ABOVE # →ْ→
+17D3 ; 030A ; MA # ( ៓ → ̊ ) KHMER SIGN BATHAMASAT → COMBINING RING
ABOVE #
+309A ; 030A ; MA # ( ゚ → ̊ ) COMBINING KATAKANA-HIRAGANA SEMI-VOICED
SOUND MARK → COMBINING RING ABOVE #
+0652 ; 030A ; MA # ( ْ → ̊ ) ARABIC SUKUN → COMBINING RING ABOVE #
+0B82 ; 030A ; MA # ( ஂ → ̊ ) TAMIL SIGN ANUSVARA → COMBINING RING ABOVE
#
+1036 ; 030A ; MA # ( ံ → ̊ ) MYANMAR SIGN ANUSVARA → COMBINING RING
ABOVE #
+17C6 ; 030A ; MA # ( ំ → ̊ ) KHMER SIGN NIKAHIT → COMBINING RING ABOVE
#
+11300 ; 030A ; MA # ( 𑌀 → ̊ ) GRANTHA SIGN COMBINING ANUSVARA
ABOVE → COMBINING RING ABOVE # →ஂ→
+0E4D ; 030A ; MA # ( ํ → ̊ ) THAI CHARACTER NIKHAHIT → COMBINING RING
ABOVE #
+0ECD ; 030A ; MA # ( ໍ → ̊ ) LAO NIGGAHITA → COMBINING RING ABOVE
#
+0366 ; 030A ; MA # ( ͦ → ̊ ) COMBINING LATIN SMALL LETTER O → COMBINING
RING ABOVE #
+2DEA ; 030A ; MA # ( ⷪ → ̊ ) COMBINING CYRILLIC LETTER O → COMBINING
RING ABOVE # →ͦ→
+
+08EB ; 0308 ; MA # ( ࣫ → ̈ ) ARABIC TONE TWO DOTS ABOVE → COMBINING
DIAERESIS #
+07F3 ; 0308 ; MA # ( ߳ → ̈ ) NKO COMBINING DOUBLE DOT ABOVE → COMBINING
DIAERESIS #
+
+064B ; 030B ; MA # ( ً → ̋ ) ARABIC FATHATAN → COMBINING DOUBLE ACUTE
ACCENT #
+08F0 ; 030B ; MA # ( ࣰ → ̋ ) ARABIC OPEN FATHATAN → COMBINING DOUBLE
ACUTE ACCENT # →ً→
+
+0342 ; 0303 ; MA # ( ͂ → ̃ ) COMBINING GREEK PERISPOMENI → COMBINING
TILDE #
+0653 ; 0303 ; MA # ( ٓ → ̃ ) ARABIC MADDAH ABOVE → COMBINING TILDE
#
+
+05C4 ; 0307 ; MA # ( ׄ → ̇ ) HEBREW MARK UPPER DOT → COMBINING DOT ABOVE
#
+06EC ; 0307 ; MA # ( ۬ → ̇ ) ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE
→ COMBINING DOT ABOVE #
+0740 ; 0307 ; MA # ( ݀ → ̇ ) SYRIAC FEMININE DOT → COMBINING DOT ABOVE
# →݁→
+08EA ; 0307 ; MA # ( ࣪ → ̇ ) ARABIC TONE ONE DOT ABOVE → COMBINING DOT
ABOVE #
+0741 ; 0307 ; MA # ( ݁ → ̇ ) SYRIAC QUSHSHAYA → COMBINING DOT ABOVE
#
+0358 ; 0307 ; MA # ( ͘ → ̇ ) COMBINING DOT ABOVE RIGHT → COMBINING DOT
ABOVE #
+05B9 ; 0307 ; MA # ( ֹ → ̇ ) HEBREW POINT HOLAM → COMBINING DOT ABOVE
#
+05BA ; 0307 ; MA # ( ֺ → ̇ ) HEBREW POINT HOLAM HASER FOR VAV →
COMBINING DOT ABOVE # →ׁ→
+05C2 ; 0307 ; MA # ( ׂ → ̇ ) HEBREW POINT SIN DOT → COMBINING DOT ABOVE
#
+05C1 ; 0307 ; MA # ( ׁ → ̇ ) HEBREW POINT SHIN DOT → COMBINING DOT ABOVE
#
+07ED ; 0307 ; MA # ( ߭ → ̇ ) NKO COMBINING SHORT RISING TONE → COMBINING
DOT ABOVE #
+0902 ; 0307 ; MA # ( ं → ̇ ) DEVANAGARI SIGN ANUSVARA → COMBINING DOT
ABOVE #
+0A02 ; 0307 ; MA # ( ਂ → ̇ ) GURMUKHI SIGN BINDI → COMBINING DOT ABOVE
#
+0A82 ; 0307 ; MA # ( ં → ̇ ) GUJARATI SIGN ANUSVARA → COMBINING DOT
ABOVE #
+0BCD ; 0307 ; MA # ( ் → ̇ ) TAMIL SIGN VIRAMA → COMBINING DOT ABOVE
#
+
+0337 ; 0338 ; MA # ( ̷ → ̸ ) COMBINING SHORT SOLIDUS OVERLAY → COMBINING
LONG SOLIDUS OVERLAY #
+
+1AB7 ; 0328 ; MA # ( ᪷ → ̨ ) COMBINING OPEN MARK BELOW → COMBINING
OGONEK #
+0322 ; 0328 ; MA # ( ̢ → ̨ ) COMBINING RETROFLEX HOOK BELOW → COMBINING
OGONEK #
+0345 ; 0328 ; MA # ( ͅ → ̨ ) COMBINING GREEK YPOGEGRAMMENI → COMBINING
OGONEK #
+
+1CD2 ; 0304 ; MA # ( ᳒ → ̄ ) VEDIC TONE PRENKHA → COMBINING MACRON
#
+0305 ; 0304 ; MA # ( ̅ → ̄ ) COMBINING OVERLINE → COMBINING MACRON
#
+0659 ; 0304 ; MA # ( ٙ → ̄ ) ARABIC ZWARAKAY → COMBINING MACRON #
+07EB ; 0304 ; MA # ( ߫ → ̄ ) NKO COMBINING SHORT HIGH TONE → COMBINING
MACRON #
+A6F1 ; 0304 ; MA # ( ꛱ → ̄ ) BAMUM COMBINING MARK TUKWENTIS → COMBINING
MACRON #
+
+1CDA ; 030E ; MA # ( ᳚ → ̎ ) VEDIC TONE DOUBLE SVARITA → COMBINING
DOUBLE VERTICAL LINE ABOVE #
+
+0657 ; 0312 ; MA # ( ٗ → ̒ ) ARABIC INVERTED DAMMA → COMBINING TURNED
COMMA ABOVE #
+
+0357 ; 0350 ; MA # ( ͗ → ͐ ) COMBINING RIGHT HALF RING ABOVE → COMBINING
RIGHT ARROWHEAD ABOVE # →ࣿ→→ࣸ→
+08FF ; 0350 ; MA # ( ࣿ → ͐ ) ARABIC MARK SIDEWAYS NOON GHUNNA →
COMBINING RIGHT ARROWHEAD ABOVE # →ࣸ→
+08F8 ; 0350 ; MA # ( ࣸ → ͐ ) ARABIC RIGHT ARROWHEAD ABOVE → COMBINING
RIGHT ARROWHEAD ABOVE #
+
+0900 ; 0352 ; MA # ( ऀ → ͒ ) DEVANAGARI SIGN INVERTED CANDRABINDU →
COMBINING FERMATA #
+
+1CED ; 0316 ; MA # ( ᳭ → ̖ ) VEDIC SIGN TIRYAK → COMBINING GRAVE ACCENT
BELOW #
+
+1CDC ; 0329 ; MA # ( ᳜ → ̩ ) VEDIC TONE KATHAKA ANUDATTA → COMBINING
VERTICAL LINE BELOW #
+0656 ; 0329 ; MA # ( ٖ → ̩ ) ARABIC SUBSCRIPT ALEF → COMBINING VERTICAL
LINE BELOW #
+
+1CD5 ; 032B ; MA # ( ᳕ → ̫ ) VEDIC TONE YAJURVEDIC AGGRAVATED
INDEPENDENT SVARITA → COMBINING INVERTED DOUBLE ARCH BELOW #
+
+0347 ; 0333 ; MA # ( ͇ → ̳ ) COMBINING EQUALS SIGN BELOW → COMBINING
DOUBLE LOW LINE #
+
+08F9 ; 0354 ; MA # ( ࣹ → ͔ ) ARABIC LEFT ARROWHEAD BELOW → COMBINING
LEFT ARROWHEAD BELOW #
+
+08FA ; 0355 ; MA # ( ࣺ → ͕ ) ARABIC RIGHT ARROWHEAD BELOW → COMBINING
RIGHT ARROWHEAD BELOW #
+
+309B ; FF9E ; MA #* ( ゛ → ゙ ) KATAKANA-HIRAGANA VOICED SOUND MARK →
HALFWIDTH KATAKANA VOICED SOUND MARK #
+
+309C ; FF9F ; MA #* ( ゜ → ゚ ) KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK →
HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK #
+
+0336 ; 0335 ; MA # ( ̶ → ̵ ) COMBINING LONG STROKE OVERLAY → COMBINING
SHORT STROKE OVERLAY #
+
+302C ; 0309 ; MA # ( 〬 → ̉ ) IDEOGRAPHIC DEPARTING TONE MARK → COMBINING
HOOK ABOVE #
+
+05C5 ; 0323 ; MA # ( ׅ → ̣ ) HEBREW MARK LOWER DOT → COMBINING DOT BELOW
#
+08ED ; 0323 ; MA # ( ࣭ → ̣ ) ARABIC TONE ONE DOT BELOW → COMBINING DOT
BELOW #
+1CDD ; 0323 ; MA # ( ᳝ → ̣ ) VEDIC TONE DOT BELOW → COMBINING DOT BELOW
#
+05B4 ; 0323 ; MA # ( ִ → ̣ ) HEBREW POINT HIRIQ → COMBINING DOT BELOW
#
+065C ; 0323 ; MA # ( ٜ → ̣ ) ARABIC VOWEL SIGN DOT BELOW → COMBINING DOT
BELOW #
+093C ; 0323 ; MA # ( ़ → ̣ ) DEVANAGARI SIGN NUKTA → COMBINING DOT BELOW
#
+09BC ; 0323 ; MA # ( ় → ̣ ) BENGALI SIGN NUKTA → COMBINING DOT BELOW
#
+0A3C ; 0323 ; MA # ( ਼ → ̣ ) GURMUKHI SIGN NUKTA → COMBINING DOT BELOW
#
+0ABC ; 0323 ; MA # ( ઼ → ̣ ) GUJARATI SIGN NUKTA → COMBINING DOT BELOW
#
+0B3C ; 0323 ; MA # ( ଼ → ̣ ) ORIYA SIGN NUKTA → COMBINING DOT BELOW
#
+111CA ; 0323 ; MA # ( 𑇊 → ̣ ) SHARADA SIGN NUKTA → COMBINING DOT
BELOW # →़→
+114C3 ; 0323 ; MA # ( 𑓃 → ̣ ) TIRHUTA SIGN NUKTA → COMBINING DOT
BELOW # →়→
+10A3A ; 0323 ; MA # ( 𐨺 → ̣ ) KHAROSHTHI SIGN DOT BELOW →
COMBINING DOT BELOW #
+
+08EE ; 0324 ; MA # ( ࣮ → ̤ ) ARABIC TONE TWO DOTS BELOW → COMBINING
DIAERESIS BELOW #
+1CDE ; 0324 ; MA # ( ᳞ → ̤ ) VEDIC TONE TWO DOTS BELOW → COMBINING
DIAERESIS BELOW #
+
+0F37 ; 0325 ; MA # ( ༷ → ̥ ) TIBETAN MARK NGAS BZUNG SGOR RTAGS →
COMBINING RING BELOW #
+302D ; 0325 ; MA # ( 〭 → ̥ ) IDEOGRAPHIC ENTERING TONE MARK → COMBINING
RING BELOW #
+
+0327 ; 0326 ; MA # ( ̧ → ̦ ) COMBINING CEDILLA → COMBINING COMMA BELOW
# →̡→
+0321 ; 0326 ; MA # ( ̡ → ̦ ) COMBINING PALATALIZED HOOK BELOW →
COMBINING COMMA BELOW #
+0339 ; 0326 ; MA # ( ̹ → ̦ ) COMBINING RIGHT HALF RING BELOW → COMBINING
COMMA BELOW # →̧→→̡→
+
+1CD9 ; 032D ; MA # ( ᳙ → ̭ ) VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT
SVARITA SCHROEDER → COMBINING CIRCUMFLEX ACCENT BELOW #
+
+1CD8 ; 032E ; MA # ( ᳘ → ̮ ) VEDIC TONE CANDRA BELOW → COMBINING BREVE
BELOW #
+
+0952 ; 0331 ; MA # ( ॒ → ̱ ) DEVANAGARI STRESS SIGN ANUDATTA → COMBINING
MACRON BELOW #
+0320 ; 0331 ; MA # ( ̠ → ̱ ) COMBINING MINUS SIGN BELOW → COMBINING
MACRON BELOW #
+
+08F1 ; 064C ; MA # ( ࣱ → ٌ ) ARABIC OPEN DAMMATAN → ARABIC DAMMATAN
#
+08E8 ; 064C ; MA # ( ࣨ → ٌ ) ARABIC CURLY DAMMATAN → ARABIC DAMMATAN
#
+08E5 ; 064C ; MA # ( ࣥ → ٌ ) ARABIC CURLY DAMMA → ARABIC DAMMATAN
#
+
+FC5E ; FE72 0651 ; MA #* ( ﱞ → ﹲّ ) ARABIC LIGATURE SHADDA WITH
DAMMATAN ISOLATED FORM → ARABIC DAMMATAN ISOLATED FORM, ARABIC SHADDA #
+
+08F2 ; 064D ; MA # ( ࣲ → ٍ ) ARABIC OPEN KASRATAN → ARABIC KASRATAN
#
+
+FC5F ; FE74 0651 ; MA #* ( ﱟ → ﹴّ ) ARABIC LIGATURE SHADDA WITH
KASRATAN ISOLATED FORM → ARABIC KASRATAN ISOLATED FORM, ARABIC SHADDA #
+
+FCF2 ; FE77 0651 ; MA # ( ﳲ → ﹷّ ) ARABIC LIGATURE SHADDA WITH
FATHA MEDIAL FORM → ARABIC FATHA MEDIAL FORM, ARABIC SHADDA #
+
+FC60 ; FE76 0651 ; MA #* ( ﱠ → ﹶّ ) ARABIC LIGATURE SHADDA WITH
FATHA ISOLATED FORM → ARABIC FATHA ISOLATED FORM, ARABIC SHADDA #
+
+FCF3 ; FE79 0651 ; MA # ( ﳳ → ﹹّ ) ARABIC LIGATURE SHADDA WITH
DAMMA MEDIAL FORM → ARABIC DAMMA MEDIAL FORM, ARABIC SHADDA #
+
+FC61 ; FE78 0651 ; MA #* ( ﱡ → ﹸّ ) ARABIC LIGATURE SHADDA WITH
DAMMA ISOLATED FORM → ARABIC DAMMA ISOLATED FORM, ARABIC SHADDA #
+
+061A ; 0650 ; MA # ( ؚ → ِ ) ARABIC SMALL KASRA → ARABIC KASRA #
+0317 ; 0650 ; MA # ( ̗ → ِ ) COMBINING ACUTE ACCENT BELOW → ARABIC KASRA
#
+
+FCF4 ; FE7B 0651 ; MA # ( ﳴ → ﹻّ ) ARABIC LIGATURE SHADDA WITH
KASRA MEDIAL FORM → ARABIC KASRA MEDIAL FORM, ARABIC SHADDA #
+
+FC62 ; FE7A 0651 ; MA #* ( ﱢ → ﹺّ ) ARABIC LIGATURE SHADDA WITH
KASRA ISOLATED FORM → ARABIC KASRA ISOLATED FORM, ARABIC SHADDA #
+
+FC63 ; FE7C 0670 ; MA #* ( ﱣ → ﹼٰ ) ARABIC LIGATURE SHADDA WITH
SUPERSCRIPT ALEF ISOLATED FORM → ARABIC SHADDA ISOLATED FORM, ARABIC LETTER
SUPERSCRIPT ALEF #
+
+065F ; 0655 ; MA # ( ٟ → ٕ ) ARABIC WAVY HAMZA BELOW → ARABIC HAMZA
BELOW #
+
+030D ; 0670 ; MA # ( ̍ → ٰ ) COMBINING VERTICAL LINE ABOVE → ARABIC
LETTER SUPERSCRIPT ALEF #
+
+0742 ; 073C ; MA # ( ݂ → ܼ ) SYRIAC RUKKAKHA → SYRIAC HBASA-ESASA DOTTED
#
+
+0A03 ; 0983 ; MA # ( ਃ → ঃ ) GURMUKHI SIGN VISARGA → BENGALI SIGN
VISARGA #
+0C03 ; 0983 ; MA # ( ః → ঃ ) TELUGU SIGN VISARGA → BENGALI SIGN VISARGA
# →ਃ→
+0C83 ; 0983 ; MA # ( ಃ → ঃ ) KANNADA SIGN VISARGA → BENGALI SIGN VISARGA
# →ః→→ਃ→
+0D03 ; 0983 ; MA # ( ഃ → ঃ ) MALAYALAM SIGN VISARGA → BENGALI SIGN
VISARGA # →ಃ→→ః→→ਃ→
+0D83 ; 0983 ; MA # ( ඃ → ঃ ) SINHALA SIGN VISARGAYA → BENGALI SIGN
VISARGA # →ഃ→→ಃ→→ః→→ਃ→
+1038 ; 0983 ; MA # ( း → ঃ ) MYANMAR SIGN VISARGA → BENGALI SIGN VISARGA
# →ඃ→→ഃ→→ಃ→→ః→→ਃ→
+114C1 ; 0983 ; MA # ( 𑓁 → ঃ ) TIRHUTA SIGN VISARGA → BENGALI SIGN
VISARGA #
+
+17CB ; 0E48 ; MA # ( ់ → ่ ) KHMER SIGN BANTOC → THAI CHARACTER MAI EK
#
+0EC8 ; 0E48 ; MA # ( ່ → ่ ) LAO TONE MAI EK → THAI CHARACTER MAI EK
#
+
+0EC9 ; 0E49 ; MA # ( ້ → ้ ) LAO TONE MAI THO → THAI CHARACTER MAI THO
#
+
+0ECA ; 0E4A ; MA # ( ໊ → ๊ ) LAO TONE MAI TI → THAI CHARACTER MAI TRI
#
+
+0ECB ; 0E4B ; MA # ( ໋ → ๋ ) LAO TONE MAI CATAWA → THAI CHARACTER MAI
CHATTAWA #
+
+A66F ; 20E9 ; MA # ( ꙯ → ⃩ ) COMBINING CYRILLIC VZMET → COMBINING WIDE
BRIDGE ABOVE #
+
+2028 ; 0020 ; MA #* ( → ) LINE SEPARATOR → SPACE #
+2029 ; 0020 ; MA #* ( → ) PARAGRAPH SEPARATOR → SPACE #
+1680 ; 0020 ; MA #* ( → ) OGHAM SPACE MARK → SPACE #
+2000 ; 0020 ; MA #* ( → ) EN QUAD → SPACE #
+2001 ; 0020 ; MA #* ( → ) EM QUAD → SPACE #
+2002 ; 0020 ; MA #* ( → ) EN SPACE → SPACE #
+2003 ; 0020 ; MA #* ( → ) EM SPACE → SPACE #
+2004 ; 0020 ; MA #* ( → ) THREE-PER-EM SPACE → SPACE #
+2005 ; 0020 ; MA #* ( → ) FOUR-PER-EM SPACE → SPACE #
+2006 ; 0020 ; MA #* ( → ) SIX-PER-EM SPACE → SPACE #
+2008 ; 0020 ; MA #* ( → ) PUNCTUATION SPACE → SPACE #
+2009 ; 0020 ; MA #* ( → ) THIN SPACE → SPACE #
+200A ; 0020 ; MA #* ( → ) HAIR SPACE → SPACE #
+205F ; 0020 ; MA #* ( → ) MEDIUM MATHEMATICAL SPACE → SPACE #
+00A0 ; 0020 ; MA #* ( → ) NO-BREAK SPACE → SPACE #
+2007 ; 0020 ; MA #* ( → ) FIGURE SPACE → SPACE #
+202F ; 0020 ; MA #* ( → ) NARROW NO-BREAK SPACE → SPACE #
+
+07FA ; 005F ; MA # ( ߺ → _ ) NKO LAJANYALAN → LOW LINE #
+FE4D ; 005F ; MA # ( ﹍ → _ ) DASHED LOW LINE → LOW LINE #
+FE4E ; 005F ; MA # ( ﹎ → _ ) CENTRELINE LOW LINE → LOW LINE #
+FE4F ; 005F ; MA # ( ﹏ → _ ) WAVY LOW LINE → LOW LINE #
+
+2010 ; 002D ; MA #* ( ‐ → - ) HYPHEN → HYPHEN-MINUS #
+2011 ; 002D ; MA #* ( ‑ → - ) NON-BREAKING HYPHEN → HYPHEN-MINUS #
+2012 ; 002D ; MA #* ( ‒ → - ) FIGURE DASH → HYPHEN-MINUS #
+2013 ; 002D ; MA #* ( – → - ) EN DASH → HYPHEN-MINUS #
+FE58 ; 002D ; MA #* ( ﹘ → - ) SMALL EM DASH → HYPHEN-MINUS #
+06D4 ; 002D ; MA #* ( ۔ → - ) ARABIC FULL STOP → HYPHEN-MINUS # →‐→
+2043 ; 002D ; MA #* ( ⁃ → - ) HYPHEN BULLET → HYPHEN-MINUS # →‐→
+02D7 ; 002D ; MA #* ( ˗ → - ) MODIFIER LETTER MINUS SIGN → HYPHEN-MINUS
#
+2212 ; 002D ; MA #* ( − → - ) MINUS SIGN → HYPHEN-MINUS #
+2796 ; 002D ; MA #* ( ➖ → - ) HEAVY MINUS SIGN → HYPHEN-MINUS # →−→
+2CBA ; 002D ; MA # ( Ⲻ → - ) COPTIC CAPITAL LETTER DIALECT-P NI →
HYPHEN-MINUS # →‒→
+
+2A29 ; 002D 0313 ; MA #* ( ⨩ → -̓ ) MINUS SIGN WITH COMMA ABOVE →
HYPHEN-MINUS, COMBINING COMMA ABOVE # →−̓→
+
+2E1A ; 002D 0308 ; MA #* ( ⸚ → -̈ ) HYPHEN WITH DIAERESIS →
HYPHEN-MINUS, COMBINING DIAERESIS #
+
+FB29 ; 002D 0307 ; MA #* ( ﬩ → -̇ ) HEBREW LETTER ALTERNATIVE PLUS
SIGN → HYPHEN-MINUS, COMBINING DOT ABOVE # →∸→→−̇→
+2238 ; 002D 0307 ; MA #* ( ∸ → -̇ ) DOT MINUS → HYPHEN-MINUS,
COMBINING DOT ABOVE # →−̇→
+
+2A2A ; 002D 0323 ; MA #* ( ⨪ → -̣ ) MINUS SIGN WITH DOT BELOW →
HYPHEN-MINUS, COMBINING DOT BELOW # →−̣→
+
+A4FE ; 002D 002E ; MA #* ( ꓾ → -. ) LISU PUNCTUATION COMMA →
HYPHEN-MINUS, FULL STOP #
+
+FF5E ; 301C ; MA #* ( ~ → 〜 ) FULLWIDTH TILDE → WAVE DASH #
+
+060D ; 002C ; MA #* ( ؍ → , ) ARABIC DATE SEPARATOR → COMMA # →٫→
+066B ; 002C ; MA #* ( ٫ → , ) ARABIC DECIMAL SEPARATOR → COMMA #
+201A ; 002C ; MA #* ( ‚ → , ) SINGLE LOW-9 QUOTATION MARK → COMMA
#
+00B8 ; 002C ; MA #* ( ¸ → , ) CEDILLA → COMMA #
+A4F9 ; 002C ; MA # ( ꓹ → , ) LISU LETTER TONE NA PO → COMMA #
+
+2E32 ; 060C ; MA #* ( ⸲ → ، ) TURNED COMMA → ARABIC COMMA #
+066C ; 060C ; MA #* ( ٬ → ، ) ARABIC THOUSANDS SEPARATOR → ARABIC
COMMA #
+
+037E ; 003B ; MA #* ( ; → ; ) GREEK QUESTION MARK → SEMICOLON #
+
+2E35 ; 061B ; MA #* ( ⸵ → ؛ ) TURNED SEMICOLON → ARABIC SEMICOLON
#
+
+0903 ; 003A ; MA # ( ः → : ) DEVANAGARI SIGN VISARGA → COLON #
+0A83 ; 003A ; MA # ( ઃ → : ) GUJARATI SIGN VISARGA → COLON #
+FF1A ; 003A ; MA #* ( : → : ) FULLWIDTH COLON → COLON # →︰→
+0589 ; 003A ; MA #* ( ։ → : ) ARMENIAN FULL STOP → COLON #
+0703 ; 003A ; MA #* ( ܃ → : ) SYRIAC SUPRALINEAR COLON → COLON #
+0704 ; 003A ; MA #* ( ܄ → : ) SYRIAC SUBLINEAR COLON → COLON #
+16EC ; 003A ; MA #* ( ᛬ → : ) RUNIC MULTIPLE PUNCTUATION → COLON #
+FE30 ; 003A ; MA #* ( ︰ → : ) PRESENTATION FORM FOR VERTICAL TWO DOT
LEADER → COLON #
+1803 ; 003A ; MA #* ( ᠃ → : ) MONGOLIAN FULL STOP → COLON #
+1809 ; 003A ; MA #* ( ᠉ → : ) MONGOLIAN MANCHU FULL STOP → COLON #
+205A ; 003A ; MA #* ( ⁚ → : ) TWO DOT PUNCTUATION → COLON #
+05C3 ; 003A ; MA #* ( ׃ → : ) HEBREW PUNCTUATION SOF PASUQ → COLON
#
+02F8 ; 003A ; MA #* ( ˸ → : ) MODIFIER LETTER RAISED COLON → COLON
#
+A789 ; 003A ; MA #* ( ꞉ → : ) MODIFIER LETTER COLON → COLON #
+2236 ; 003A ; MA #* ( ∶ → : ) RATIO → COLON #
+02D0 ; 003A ; MA # ( ː → : ) MODIFIER LETTER TRIANGULAR COLON → COLON
#
+A4FD ; 003A ; MA # ( ꓽ → : ) LISU LETTER TONE MYA JEU → COLON #
+
+2A74 ; 003A 003A 003D ; MA #* ( ⩴ → ::= ) DOUBLE COLON EQUAL →
COLON, COLON, EQUALS SIGN #
+
+29F4 ; 003A 2192 ; MA #* ( ⧴ → :→ ) RULE-DELAYED → COLON, RIGHTWARDS
ARROW #
+
+FF01 ; 0021 ; MA #* ( ! → ! ) FULLWIDTH EXCLAMATION MARK → EXCLAMATION
MARK # →ǃ→
+01C3 ; 0021 ; MA # ( ǃ → ! ) LATIN LETTER RETROFLEX CLICK → EXCLAMATION
MARK #
+2D51 ; 0021 ; MA # ( ⵑ → ! ) TIFINAGH LETTER TUAREG YANG → EXCLAMATION
MARK #
+
+203C ; 0021 0021 ; MA #* ( ‼ → !! ) DOUBLE EXCLAMATION MARK →
EXCLAMATION MARK, EXCLAMATION MARK #
+
+2049 ; 0021 003F ; MA #* ( ⁉ → !? ) EXCLAMATION QUESTION MARK →
EXCLAMATION MARK, QUESTION MARK #
+
+0294 ; 003F ; MA # ( ʔ → ? ) LATIN LETTER GLOTTAL STOP → QUESTION MARK
#
+0241 ; 003F ; MA # ( Ɂ → ? ) LATIN CAPITAL LETTER GLOTTAL STOP →
QUESTION MARK # →ʔ→
+097D ; 003F ; MA # ( ॽ → ? ) DEVANAGARI LETTER GLOTTAL STOP → QUESTION
MARK #
+13AE ; 003F ; MA # ( Ꭾ → ? ) CHEROKEE LETTER HE → QUESTION MARK # →Ɂ→→ʔ→
+A6EB ; 003F ; MA # ( ꛫ → ? ) BAMUM LETTER NTUU → QUESTION MARK # →ʔ→
+
+2048 ; 003F 0021 ; MA #* ( ⁈ → ?! ) QUESTION EXCLAMATION MARK →
QUESTION MARK, EXCLAMATION MARK #
+
+2047 ; 003F 003F ; MA #* ( ⁇ → ?? ) DOUBLE QUESTION MARK → QUESTION
MARK, QUESTION MARK #
+
+2E2E ; 061F ; MA #* ( ⸮ → ؟ ) REVERSED QUESTION MARK → ARABIC QUESTION
MARK #
+
+1D16D ; 002E ; MA # ( 𝅭 → . ) MUSICAL SYMBOL COMBINING
AUGMENTATION DOT → FULL STOP #
+2024 ; 002E ; MA #* ( ․ → . ) ONE DOT LEADER → FULL STOP #
+0701 ; 002E ; MA #* ( ܁ → . ) SYRIAC SUPRALINEAR FULL STOP → FULL STOP
#
+0702 ; 002E ; MA #* ( ܂ → . ) SYRIAC SUBLINEAR FULL STOP → FULL STOP
#
+A60E ; 002E ; MA #* ( ꘎ → . ) VAI FULL STOP → FULL STOP #
+10A50 ; 002E ; MA #* ( 𐩐 → . ) KHAROSHTHI PUNCTUATION DOT →
FULL STOP #
+0660 ; 002E ; MA # ( ٠ → . ) ARABIC-INDIC DIGIT ZERO → FULL STOP
#
+06F0 ; 002E ; MA # ( ۰ → . ) EXTENDED ARABIC-INDIC DIGIT ZERO → FULL
STOP # →٠→
+A4F8 ; 002E ; MA # ( ꓸ → . ) LISU LETTER TONE MYA TI → FULL STOP #
+
+A4FB ; 002E 002C ; MA # ( ꓻ → ., ) LISU LETTER TONE MYA BO → FULL
STOP, COMMA #
+
+2025 ; 002E 002E ; MA #* ( ‥ → .. ) TWO DOT LEADER → FULL STOP, FULL
STOP #
+A4FA ; 002E 002E ; MA # ( ꓺ → .. ) LISU LETTER TONE MYA CYA → FULL
STOP, FULL STOP #
+
+2026 ; 002E 002E 002E ; MA #* ( … → ... ) HORIZONTAL ELLIPSIS →
FULL STOP, FULL STOP, FULL STOP #
+
+A6F4 ; A6F3 A6F3 ; MA #* ( ꛴ → ꛳꛳ ) BAMUM COLON → BAMUM FULL STOP,
BAMUM FULL STOP #
+
+30FB ; 00B7 ; MA #* ( ・ → · ) KATAKANA MIDDLE DOT → MIDDLE DOT # →•→
+FF65 ; 00B7 ; MA #* ( ・ → · ) HALFWIDTH KATAKANA MIDDLE DOT → MIDDLE DOT
# →•→
+16EB ; 00B7 ; MA #* ( ᛫ → · ) RUNIC SINGLE PUNCTUATION → MIDDLE DOT
#
+0387 ; 00B7 ; MA # ( · → · ) GREEK ANO TELEIA → MIDDLE DOT #
+2E31 ; 00B7 ; MA #* ( ⸱ → · ) WORD SEPARATOR MIDDLE DOT → MIDDLE DOT
#
+10101 ; 00B7 ; MA #* ( 𐄁 → · ) AEGEAN WORD SEPARATOR DOT → MIDDLE
DOT #
+2022 ; 00B7 ; MA #* ( • → · ) BULLET → MIDDLE DOT #
+2027 ; 00B7 ; MA #* ( ‧ → · ) HYPHENATION POINT → MIDDLE DOT #
+2219 ; 00B7 ; MA #* ( ∙ → · ) BULLET OPERATOR → MIDDLE DOT #
+22C5 ; 00B7 ; MA #* ( ⋅ → · ) DOT OPERATOR → MIDDLE DOT #
+A78F ; 00B7 ; MA # ( ꞏ → · ) LATIN LETTER SINOLOGICAL DOT → MIDDLE DOT
#
+1427 ; 00B7 ; MA # ( ᐧ → · ) CANADIAN SYLLABICS FINAL MIDDLE DOT →
MIDDLE DOT #
+
+22EF ; 00B7 00B7 00B7 ; MA #* ( ⋯ → ··· ) MIDLINE HORIZONTAL
ELLIPSIS → MIDDLE DOT, MIDDLE DOT, MIDDLE DOT #
+2D48 ; 00B7 00B7 00B7 ; MA # ( ⵈ → ··· ) TIFINAGH LETTER TUAREG
YAQ → MIDDLE DOT, MIDDLE DOT, MIDDLE DOT # →⋯→
+
+1444 ; 00B7 003C ; MA # ( ᑄ → ·< ) CANADIAN SYLLABICS PWA → MIDDLE
DOT, LESS-THAN SIGN # →ᐧᐸ→
+
+22D7 ; 00B7 003E ; MA #* ( ⋗ → ·> ) GREATER-THAN WITH DOT → MIDDLE
DOT, GREATER-THAN SIGN # →ᑀ→→ᐧᐳ→
+1437 ; 00B7 003E ; MA # ( ᐷ → ·> ) CANADIAN SYLLABICS CARRIER HI →
MIDDLE DOT, GREATER-THAN SIGN # →ᑀ→→ᐧᐳ→
+1440 ; 00B7 003E ; MA # ( ᑀ → ·> ) CANADIAN SYLLABICS PWO → MIDDLE
DOT, GREATER-THAN SIGN # →ᐧᐳ→
+
+152F ; 00B7 0034 ; MA # ( ᔯ → ·4 ) CANADIAN SYLLABICS YWE → MIDDLE
DOT, DIGIT FOUR # →ᐧ4→
+
+147E ; 00B7 0062 ; MA # ( ᑾ → ·b ) CANADIAN SYLLABICS KWA → MIDDLE
DOT, LATIN SMALL LETTER B # →ᐧᑲ→
+
+1480 ; 00B7 0062 0307 ; MA # ( ᒀ → ·ḃ ) CANADIAN SYLLABICS KWAA →
MIDDLE DOT, LATIN SMALL LETTER B, COMBINING DOT ABOVE # →ᐧᑳ→
+
+147A ; 00B7 0064 ; MA # ( ᑺ → ·d ) CANADIAN SYLLABICS KWO → MIDDLE
DOT, LATIN SMALL LETTER D # →ᐧᑯ→
+
+1498 ; 00B7 004A ; MA # ( ᒘ → ·J ) CANADIAN SYLLABICS CWO → MIDDLE
DOT, LATIN CAPITAL LETTER J # →ᐧᒍ→
+
+14B6 ; 00B7 004C ; MA # ( ᒶ → ·L ) CANADIAN SYLLABICS MWA → MIDDLE
DOT, LATIN CAPITAL LETTER L # →ᐧL→
+
+1476 ; 00B7 0050 ; MA # ( ᑶ → ·P ) CANADIAN SYLLABICS KWI → MIDDLE
DOT, LATIN CAPITAL LETTER P # →ᐧᑭ→
+
+1457 ; 00B7 0055 ; MA # ( ᑗ → ·U ) CANADIAN SYLLABICS TWE → MIDDLE
DOT, LATIN CAPITAL LETTER U # →ᐧᑌ→→·ᑌ→
+
+143A ; 00B7 0056 ; MA # ( ᐺ → ·V ) CANADIAN SYLLABICS PWE → MIDDLE
DOT, LATIN CAPITAL LETTER V # →ᐧᐯ→
+
+143C ; 00B7 0245 ; MA # ( ᐼ → ·Ʌ ) CANADIAN SYLLABICS PWI → MIDDLE
DOT, LATIN CAPITAL LETTER TURNED V # →ᐧᐱ→→·ᐱ→
+
+14AE ; 00B7 0393 ; MA # ( ᒮ → ·Γ ) CANADIAN SYLLABICS MWI → MIDDLE
DOT, GREEK CAPITAL LETTER GAMMA # →ᐧᒥ→→·ᒥ→
+
+140E ; 00B7 0394 ; MA # ( ᐎ → ·Δ ) CANADIAN SYLLABICS WI → MIDDLE
DOT, GREEK CAPITAL LETTER DELTA # →ᐧᐃ→
+
+1459 ; 00B7 0548 ; MA # ( ᑙ → ·Ո ) CANADIAN SYLLABICS TWI → MIDDLE
DOT, ARMENIAN CAPITAL LETTER VO # →ᐧᑎ→→·ᑎ→
+
+140C ; 00B7 1401 ; MA # ( ᐌ → ·ᐁ ) CANADIAN SYLLABICS WE → MIDDLE
DOT, CANADIAN SYLLABICS E # →ᐧᐁ→
+
+1410 ; 00B7 1404 ; MA # ( ᐐ → ·ᐄ ) CANADIAN SYLLABICS WII → MIDDLE
DOT, CANADIAN SYLLABICS II # →ᐧᐄ→
+
+1412 ; 00B7 1405 ; MA # ( ᐒ → ·ᐅ ) CANADIAN SYLLABICS WO → MIDDLE
DOT, CANADIAN SYLLABICS O # →ᐧᐅ→
+
+1414 ; 00B7 1406 ; MA # ( ᐔ → ·ᐆ ) CANADIAN SYLLABICS WOO → MIDDLE
DOT, CANADIAN SYLLABICS OO # →ᐧᐆ→
+
+1417 ; 00B7 140A ; MA # ( ᐗ → ·ᐊ ) CANADIAN SYLLABICS WA → MIDDLE
DOT, CANADIAN SYLLABICS A # →ᐧᐊ→
+
+1419 ; 00B7 140B ; MA # ( ᐙ → ·ᐋ ) CANADIAN SYLLABICS WAA → MIDDLE
DOT, CANADIAN SYLLABICS AA # →ᐧᐋ→
+
+143E ; 00B7 1432 ; MA # ( ᐾ → ·ᐲ ) CANADIAN SYLLABICS PWII → MIDDLE
DOT, CANADIAN SYLLABICS PII # →ᐧᐲ→
+
+1442 ; 00B7 1434 ; MA # ( ᑂ → ·ᐴ ) CANADIAN SYLLABICS PWOO → MIDDLE
DOT, CANADIAN SYLLABICS POO # →ᐧᐴ→
+
+1446 ; 00B7 1439 ; MA # ( ᑆ → ·ᐹ ) CANADIAN SYLLABICS PWAA → MIDDLE
DOT, CANADIAN SYLLABICS PAA # →ᐧᐹ→
+
+145B ; 00B7 144F ; MA # ( ᑛ → ·ᑏ ) CANADIAN SYLLABICS TWII → MIDDLE
DOT, CANADIAN SYLLABICS TII # →ᐧᑏ→
+
+1454 ; 00B7 1450 ; MA # ( ᑔ → ·ᑐ ) CANADIAN SYLLABICS CARRIER DI →
MIDDLE DOT, CANADIAN SYLLABICS TO # →ᑝ→→ᐧᑐ→
+145D ; 00B7 1450 ; MA # ( ᑝ → ·ᑐ ) CANADIAN SYLLABICS TWO → MIDDLE
DOT, CANADIAN SYLLABICS TO # →ᐧᑐ→
+
+145F ; 00B7 1451 ; MA # ( ᑟ → ·ᑑ ) CANADIAN SYLLABICS TWOO → MIDDLE
DOT, CANADIAN SYLLABICS TOO # →ᐧᑑ→
+
+1461 ; 00B7 1455 ; MA # ( ᑡ → ·ᑕ ) CANADIAN SYLLABICS TWA → MIDDLE
DOT, CANADIAN SYLLABICS TA # →ᐧᑕ→
+
+1463 ; 00B7 1456 ; MA # ( ᑣ → ·ᑖ ) CANADIAN SYLLABICS TWAA → MIDDLE
DOT, CANADIAN SYLLABICS TAA # →ᐧᑖ→
+
+1474 ; 00B7 146B ; MA # ( ᑴ → ·ᑫ ) CANADIAN SYLLABICS KWE → MIDDLE
DOT, CANADIAN SYLLABICS KE # →ᐧᑫ→
+
+1478 ; 00B7 146E ; MA # ( ᑸ → ·ᑮ ) CANADIAN SYLLABICS KWII → MIDDLE
DOT, CANADIAN SYLLABICS KII # →ᐧᑮ→
+
+147C ; 00B7 1470 ; MA # ( ᑼ → ·ᑰ ) CANADIAN SYLLABICS KWOO → MIDDLE
DOT, CANADIAN SYLLABICS KOO # →ᐧᑰ→
+
+1492 ; 00B7 1489 ; MA # ( ᒒ → ·ᒉ ) CANADIAN SYLLABICS CWE → MIDDLE
DOT, CANADIAN SYLLABICS CE # →ᐧᒉ→
+
+1494 ; 00B7 148B ; MA # ( ᒔ → ·ᒋ ) CANADIAN SYLLABICS CWI → MIDDLE
DOT, CANADIAN SYLLABICS CI # →ᐧᒋ→
+
+1496 ; 00B7 148C ; MA # ( ᒖ → ·ᒌ ) CANADIAN SYLLABICS CWII → MIDDLE
DOT, CANADIAN SYLLABICS CII # →ᐧᒌ→
+
+149A ; 00B7 148E ; MA # ( ᒚ → ·ᒎ ) CANADIAN SYLLABICS CWOO → MIDDLE
DOT, CANADIAN SYLLABICS COO # →ᐧᒎ→
+
+149C ; 00B7 1490 ; MA # ( ᒜ → ·ᒐ ) CANADIAN SYLLABICS CWA → MIDDLE
DOT, CANADIAN SYLLABICS CA # →ᐧᒐ→
+
+149E ; 00B7 1491 ; MA # ( ᒞ → ·ᒑ ) CANADIAN SYLLABICS CWAA → MIDDLE
DOT, CANADIAN SYLLABICS CAA # →ᐧᒑ→
+
+14AC ; 00B7 14A3 ; MA # ( ᒬ → ·ᒣ ) CANADIAN SYLLABICS MWE → MIDDLE
DOT, CANADIAN SYLLABICS ME # →ᐧᒣ→
+
+14B0 ; 00B7 14A6 ; MA # ( ᒰ → ·ᒦ ) CANADIAN SYLLABICS MWII → MIDDLE
DOT, CANADIAN SYLLABICS MII # →ᐧᒦ→
+
+14B2 ; 00B7 14A7 ; MA # ( ᒲ → ·ᒧ ) CANADIAN SYLLABICS MWO → MIDDLE
DOT, CANADIAN SYLLABICS MO # →ᐧᒧ→
+
+14B4 ; 00B7 14A8 ; MA # ( ᒴ → ·ᒨ ) CANADIAN SYLLABICS MWOO → MIDDLE
DOT, CANADIAN SYLLABICS MOO # →ᐧᒨ→
+
+14B8 ; 00B7 14AB ; MA # ( ᒸ → ·ᒫ ) CANADIAN SYLLABICS MWAA → MIDDLE
DOT, CANADIAN SYLLABICS MAA # →ᐧᒫ→
+
+14C9 ; 00B7 14C0 ; MA # ( ᓉ → ·ᓀ ) CANADIAN SYLLABICS NWE → MIDDLE
DOT, CANADIAN SYLLABICS NE # →ᐧᓀ→
+
+18C6 ; 00B7 14C2 ; MA # ( ᣆ → ·ᓂ ) CANADIAN SYLLABICS NWI → MIDDLE
DOT, CANADIAN SYLLABICS NI # →ᐧᓂ→
+
+18C8 ; 00B7 14C3 ; MA # ( ᣈ → ·ᓃ ) CANADIAN SYLLABICS NWII → MIDDLE
DOT, CANADIAN SYLLABICS NII # →ᐧᓃ→
+
+18CA ; 00B7 14C4 ; MA # ( ᣊ → ·ᓄ ) CANADIAN SYLLABICS NWO → MIDDLE
DOT, CANADIAN SYLLABICS NO # →ᐧᓄ→
+
+18CC ; 00B7 14C5 ; MA # ( ᣌ → ·ᓅ ) CANADIAN SYLLABICS NWOO → MIDDLE
DOT, CANADIAN SYLLABICS NOO # →ᐧᓅ→
+
+14CB ; 00B7 14C7 ; MA # ( ᓋ → ·ᓇ ) CANADIAN SYLLABICS NWA → MIDDLE
DOT, CANADIAN SYLLABICS NA # →ᐧᓇ→
+
+14CD ; 00B7 14C8 ; MA # ( ᓍ → ·ᓈ ) CANADIAN SYLLABICS NWAA → MIDDLE
DOT, CANADIAN SYLLABICS NAA # →ᐧᓈ→
+
+14DC ; 00B7 14D3 ; MA # ( ᓜ → ·ᓓ ) CANADIAN SYLLABICS LWE → MIDDLE
DOT, CANADIAN SYLLABICS LE # →ᐧᓓ→
+
+14DE ; 00B7 14D5 ; MA # ( ᓞ → ·ᓕ ) CANADIAN SYLLABICS LWI → MIDDLE
DOT, CANADIAN SYLLABICS LI # →ᐧᓕ→
+
+14E0 ; 00B7 14D6 ; MA # ( ᓠ → ·ᓖ ) CANADIAN SYLLABICS LWII → MIDDLE
DOT, CANADIAN SYLLABICS LII # →ᐧᓖ→
+
+14E2 ; 00B7 14D7 ; MA # ( ᓢ → ·ᓗ ) CANADIAN SYLLABICS LWO → MIDDLE
DOT, CANADIAN SYLLABICS LO # →ᐧᓗ→
+
+14E4 ; 00B7 14D8 ; MA # ( ᓤ → ·ᓘ ) CANADIAN SYLLABICS LWOO → MIDDLE
DOT, CANADIAN SYLLABICS LOO # →ᐧᓘ→
+
+14E6 ; 00B7 14DA ; MA # ( ᓦ → ·ᓚ ) CANADIAN SYLLABICS LWA → MIDDLE
DOT, CANADIAN SYLLABICS LA # →ᐧᓚ→
+
+14E8 ; 00B7 14DB ; MA # ( ᓨ → ·ᓛ ) CANADIAN SYLLABICS LWAA → MIDDLE
DOT, CANADIAN SYLLABICS LAA # →ᐧᓛ→
+
+14F6 ; 00B7 14ED ; MA # ( ᓶ → ·ᓭ ) CANADIAN SYLLABICS SWE → MIDDLE
DOT, CANADIAN SYLLABICS SE # →ᐧᓭ→
+
+14F8 ; 00B7 14EF ; MA # ( ᓸ → ·ᓯ ) CANADIAN SYLLABICS SWI → MIDDLE
DOT, CANADIAN SYLLABICS SI # →ᐧᓯ→
+
+14FA ; 00B7 14F0 ; MA # ( ᓺ → ·ᓰ ) CANADIAN SYLLABICS SWII → MIDDLE
DOT, CANADIAN SYLLABICS SII # →ᐧᓰ→
+
+14FC ; 00B7 14F1 ; MA # ( ᓼ → ·ᓱ ) CANADIAN SYLLABICS SWO → MIDDLE
DOT, CANADIAN SYLLABICS SO # →ᐧᓱ→
+
+14FE ; 00B7 14F2 ; MA # ( ᓾ → ·ᓲ ) CANADIAN SYLLABICS SWOO → MIDDLE
DOT, CANADIAN SYLLABICS SOO # →ᐧᓲ→
+
+1500 ; 00B7 14F4 ; MA # ( ᔀ → ·ᓴ ) CANADIAN SYLLABICS SWA → MIDDLE
DOT, CANADIAN SYLLABICS SA # →ᐧᓴ→
+
+1502 ; 00B7 14F5 ; MA # ( ᔂ → ·ᓵ ) CANADIAN SYLLABICS SWAA → MIDDLE
DOT, CANADIAN SYLLABICS SAA # →ᐧᓵ→
+
+1517 ; 00B7 1510 ; MA # ( ᔗ → ·ᔐ ) CANADIAN SYLLABICS SHWE → MIDDLE
DOT, CANADIAN SYLLABICS SHE # →ᐧᔐ→
+
+1519 ; 00B7 1511 ; MA # ( ᔙ → ·ᔑ ) CANADIAN SYLLABICS SHWI → MIDDLE
DOT, CANADIAN SYLLABICS SHI # →ᐧᔑ→
+
+151B ; 00B7 1512 ; MA # ( ᔛ → ·ᔒ ) CANADIAN SYLLABICS SHWII → MIDDLE
DOT, CANADIAN SYLLABICS SHII # →ᐧᔒ→
+
+151D ; 00B7 1513 ; MA # ( ᔝ → ·ᔓ ) CANADIAN SYLLABICS SHWO → MIDDLE
DOT, CANADIAN SYLLABICS SHO # →ᐧᔓ→
+
+151F ; 00B7 1514 ; MA # ( ᔟ → ·ᔔ ) CANADIAN SYLLABICS SHWOO → MIDDLE
DOT, CANADIAN SYLLABICS SHOO # →ᐧᔔ→
+
+1521 ; 00B7 1515 ; MA # ( ᔡ → ·ᔕ ) CANADIAN SYLLABICS SHWA → MIDDLE
DOT, CANADIAN SYLLABICS SHA # →ᐧᔕ→
+
+1523 ; 00B7 1516 ; MA # ( ᔣ → ·ᔖ ) CANADIAN SYLLABICS SHWAA → MIDDLE
DOT, CANADIAN SYLLABICS SHAA # →ᐧᔖ→
+
+1531 ; 00B7 1528 ; MA # ( ᔱ → ·ᔨ ) CANADIAN SYLLABICS YWI → MIDDLE
DOT, CANADIAN SYLLABICS YI # →ᐧᔨ→
+
+1533 ; 00B7 1529 ; MA # ( ᔳ → ·ᔩ ) CANADIAN SYLLABICS YWII → MIDDLE
DOT, CANADIAN SYLLABICS YII # →ᐧᔩ→
+
+1535 ; 00B7 152A ; MA # ( ᔵ → ·ᔪ ) CANADIAN SYLLABICS YWO → MIDDLE
DOT, CANADIAN SYLLABICS YO # →ᐧᔪ→
+
+1537 ; 00B7 152B ; MA # ( ᔷ → ·ᔫ ) CANADIAN SYLLABICS YWOO → MIDDLE
DOT, CANADIAN SYLLABICS YOO # →ᐧᔫ→
+
+1539 ; 00B7 152D ; MA # ( ᔹ → ·ᔭ ) CANADIAN SYLLABICS YWA → MIDDLE
DOT, CANADIAN SYLLABICS YA # →ᐧᔭ→
+
+153B ; 00B7 152E ; MA # ( ᔻ → ·ᔮ ) CANADIAN SYLLABICS YWAA → MIDDLE
DOT, CANADIAN SYLLABICS YAA # →ᐧᔮ→
+
+18CE ; 00B7 1543 ; MA # ( ᣎ → ·ᕃ ) CANADIAN SYLLABICS RWEE → MIDDLE
DOT, CANADIAN SYLLABICS R-CREE RE # →ᐧᕃ→
+
+18CF ; 00B7 1546 ; MA # ( ᣏ → ·ᕆ ) CANADIAN SYLLABICS RWI → MIDDLE
DOT, CANADIAN SYLLABICS RI # →ᐧᕆ→
+
+18D0 ; 00B7 1547 ; MA # ( ᣐ → ·ᕇ ) CANADIAN SYLLABICS RWII → MIDDLE
DOT, CANADIAN SYLLABICS RII # →ᐧᕇ→
+
+18D1 ; 00B7 1548 ; MA # ( ᣑ → ·ᕈ ) CANADIAN SYLLABICS RWO → MIDDLE
DOT, CANADIAN SYLLABICS RO # →ᐧᕈ→
+
+18D2 ; 00B7 1549 ; MA # ( ᣒ → ·ᕉ ) CANADIAN SYLLABICS RWOO → MIDDLE
DOT, CANADIAN SYLLABICS ROO # →ᐧᕉ→
+
+18D3 ; 00B7 154B ; MA # ( ᣓ → ·ᕋ ) CANADIAN SYLLABICS RWA → MIDDLE
DOT, CANADIAN SYLLABICS RA # →ᐧᕋ→
+
+154E ; 00B7 154C ; MA # ( ᕎ → ·ᕌ ) CANADIAN SYLLABICS RWAA → MIDDLE
DOT, CANADIAN SYLLABICS RAA # →ᐧᕌ→
+
+155B ; 00B7 155A ; MA # ( ᕛ → ·ᕚ ) CANADIAN SYLLABICS FWAA → MIDDLE
DOT, CANADIAN SYLLABICS FAA # →ᐧᕚ→
+
+1568 ; 00B7 1567 ; MA # ( ᕨ → ·ᕧ ) CANADIAN SYLLABICS THWAA → MIDDLE
DOT, CANADIAN SYLLABICS THAA # →ᐧᕧ→
+
+18B3 ; 00B7 18B1 ; MA # ( ᢳ → ·ᢱ ) CANADIAN SYLLABICS WAY → MIDDLE
DOT, CANADIAN SYLLABICS AY # →ᐧᢱ→
+
+18B6 ; 00B7 18B4 ; MA # ( ᢶ → ·ᢴ ) CANADIAN SYLLABICS PWOY → MIDDLE
DOT, CANADIAN SYLLABICS POY # →ᐧᢴ→
+
+18B9 ; 00B7 18B8 ; MA # ( ᢹ → ·ᢸ ) CANADIAN SYLLABICS KWAY → MIDDLE
DOT, CANADIAN SYLLABICS KAY # →ᐧᢸ→
+
+18C2 ; 00B7 18C0 ; MA # ( ᣂ → ·ᣀ ) CANADIAN SYLLABICS SHWOY → MIDDLE
DOT, CANADIAN SYLLABICS SHOY # →ᐧᣀ→
+
+A830 ; 0964 ; MA #* ( ꠰ → । ) NORTH INDIC FRACTION ONE QUARTER →
DEVANAGARI DANDA #
+
+0965 ; 0964 0964 ; MA #* ( ॥ → ।। ) DEVANAGARI DOUBLE DANDA →
DEVANAGARI DANDA, DEVANAGARI DANDA #
+
+1C3C ; 1C3B 1C3B ; MA #* ( ᰼ → ᰻᰻ ) LEPCHA PUNCTUATION NYET THYOOM
TA-ROL → LEPCHA PUNCTUATION TA-ROL, LEPCHA PUNCTUATION TA-ROL #
+
+104B ; 104A 104A ; MA #* ( ။ → ၊၊ ) MYANMAR SIGN SECTION → MYANMAR
SIGN LITTLE SECTION, MYANMAR SIGN LITTLE SECTION #
+
+1AA9 ; 1AA8 1AA8 ; MA #* ( ᪩ → ᪨᪨ ) TAI THAM SIGN KAANKUU → TAI THAM
SIGN KAAN, TAI THAM SIGN KAAN #
+
+1AAB ; 1AAA 1AA8 ; MA #* ( ᪫ → ᪪᪨ ) TAI THAM SIGN SATKAANKUU → TAI
THAM SIGN SATKAAN, TAI THAM SIGN KAAN #
+
+1B5F ; 1B5E 1B5E ; MA #* ( ᭟ → ᭞᭞ ) BALINESE CARIK PAREREN → BALINESE
CARIK SIKI, BALINESE CARIK SIKI #
+
+10A57 ; 10A56 10A56 ; MA #* ( 𐩗 → 𐩖𐩖 ) KHAROSHTHI
PUNCTUATION DOUBLE DANDA → KHAROSHTHI PUNCTUATION DANDA, KHAROSHTHI PUNCTUATION
DANDA #
+
+1144C ; 1144B 1144B ; MA #* ( 𑑌 → 𑑋𑑋 ) NEWA DOUBLE DANDA → NEWA
DANDA, NEWA DANDA #
+
+11642 ; 11641 11641 ; MA #* ( 𑙂 → 𑙁𑙁 ) MODI DOUBLE DANDA → MODI
DANDA, MODI DANDA #
+
+11C42 ; 11C41 11C41 ; MA #* ( 𑱂 → 𑱁𑱁 ) BHAIKSUKI DOUBLE DANDA →
BHAIKSUKI DANDA, BHAIKSUKI DANDA #
+
+1C7F ; 1C7E 1C7E ; MA #* ( ᱿ → ᱾᱾ ) OL CHIKI PUNCTUATION DOUBLE
MUCAAD → OL CHIKI PUNCTUATION MUCAAD, OL CHIKI PUNCTUATION MUCAAD #
+
+055D ; 0027 ; MA #* ( ՝ → ' ) ARMENIAN COMMA → APOSTROPHE #
→ˋ→→`→→‘→
+FF07 ; 0027 ; MA #* ( ' → ' ) FULLWIDTH APOSTROPHE → APOSTROPHE # →’→
+2018 ; 0027 ; MA #* ( ‘ → ' ) LEFT SINGLE QUOTATION MARK → APOSTROPHE
#
+2019 ; 0027 ; MA #* ( ’ → ' ) RIGHT SINGLE QUOTATION MARK → APOSTROPHE
#
+201B ; 0027 ; MA #* ( ‛ → ' ) SINGLE HIGH-REVERSED-9 QUOTATION MARK →
APOSTROPHE # →′→
+2032 ; 0027 ; MA #* ( ′ → ' ) PRIME → APOSTROPHE #
+2035 ; 0027 ; MA #* ( ‵ → ' ) REVERSED PRIME → APOSTROPHE # →ʽ→→‘→
+055A ; 0027 ; MA #* ( ՚ → ' ) ARMENIAN APOSTROPHE → APOSTROPHE # →’→
+05F3 ; 0027 ; MA #* ( ׳ → ' ) HEBREW PUNCTUATION GERESH → APOSTROPHE
#
+0060 ; 0027 ; MA #* ( ` → ' ) GRAVE ACCENT → APOSTROPHE # →ˋ→→`→→‘→
+1FEF ; 0027 ; MA #* ( ` → ' ) GREEK VARIA → APOSTROPHE # →ˋ→→`→→‘→
+FF40 ; 0027 ; MA #* ( ` → ' ) FULLWIDTH GRAVE ACCENT → APOSTROPHE
# →‘→
+00B4 ; 0027 ; MA #* ( ´ → ' ) ACUTE ACCENT → APOSTROPHE # →΄→→ʹ→
+0384 ; 0027 ; MA #* ( ΄ → ' ) GREEK TONOS → APOSTROPHE # →ʹ→
+1FFD ; 0027 ; MA #* ( ´ → ' ) GREEK OXIA → APOSTROPHE # →´→→΄→→ʹ→
+1FBD ; 0027 ; MA #* ( ᾽ → ' ) GREEK KORONIS → APOSTROPHE # →’→
+1FBF ; 0027 ; MA #* ( ᾿ → ' ) GREEK PSILI → APOSTROPHE # →’→
+1FFE ; 0027 ; MA #* ( ῾ → ' ) GREEK DASIA → APOSTROPHE # →‛→→′→
+02B9 ; 0027 ; MA # ( ʹ → ' ) MODIFIER LETTER PRIME → APOSTROPHE #
+0374 ; 0027 ; MA # ( ʹ → ' ) GREEK NUMERAL SIGN → APOSTROPHE # →′→
+02C8 ; 0027 ; MA # ( ˈ → ' ) MODIFIER LETTER VERTICAL LINE → APOSTROPHE
#
+02CA ; 0027 ; MA # ( ˊ → ' ) MODIFIER LETTER ACUTE ACCENT → APOSTROPHE
# →ʹ→→′→
+02CB ; 0027 ; MA # ( ˋ → ' ) MODIFIER LETTER GRAVE ACCENT → APOSTROPHE
# →`→→‘→
+02F4 ; 0027 ; MA #* ( ˴ → ' ) MODIFIER LETTER MIDDLE GRAVE ACCENT →
APOSTROPHE # →ˋ→→`→→‘→
+02BB ; 0027 ; MA # ( ʻ → ' ) MODIFIER LETTER TURNED COMMA → APOSTROPHE
# →‘→
+02BD ; 0027 ; MA # ( ʽ → ' ) MODIFIER LETTER REVERSED COMMA → APOSTROPHE
# →‘→
+02BC ; 0027 ; MA # ( ʼ → ' ) MODIFIER LETTER APOSTROPHE → APOSTROPHE
# →′→
+02BE ; 0027 ; MA # ( ʾ → ' ) MODIFIER LETTER RIGHT HALF RING →
APOSTROPHE # →ʼ→→′→
+A78C ; 0027 ; MA # ( ꞌ → ' ) LATIN SMALL LETTER SALTILLO → APOSTROPHE
#
+05D9 ; 0027 ; MA # ( י → ' ) HEBREW LETTER YOD → APOSTROPHE #
+07F4 ; 0027 ; MA # ( ߴ → ' ) NKO HIGH TONE APOSTROPHE → APOSTROPHE
# →’→
+07F5 ; 0027 ; MA # ( ߵ → ' ) NKO LOW TONE APOSTROPHE → APOSTROPHE
# →‘→
+144A ; 0027 ; MA # ( ᑊ → ' ) CANADIAN SYLLABICS WEST-CREE P → APOSTROPHE
# →ˈ→
+16CC ; 0027 ; MA # ( ᛌ → ' ) RUNIC LETTER SHORT-TWIG-SOL S → APOSTROPHE
#
+16F51 ; 0027 ; MA # ( 𖽑 → ' ) MIAO SIGN ASPIRATION → APOSTROPHE
# →ʼ→→′→
+16F52 ; 0027 ; MA # ( 𖽒 → ' ) MIAO SIGN REFORMED VOICING →
APOSTROPHE # →ʻ→→‘→
+
+1CD3 ; 0027 0027 ; MA #* ( ᳓ → '' ) VEDIC SIGN NIHSHVASA →
APOSTROPHE, APOSTROPHE # →″→→"→
+0022 ; 0027 0027 ; MA #* ( " → '' ) QUOTATION MARK → APOSTROPHE,
APOSTROPHE #
+FF02 ; 0027 0027 ; MA #* ( " → '' ) FULLWIDTH QUOTATION MARK →
APOSTROPHE, APOSTROPHE # →”→→"→
+201C ; 0027 0027 ; MA #* ( “ → '' ) LEFT DOUBLE QUOTATION MARK →
APOSTROPHE, APOSTROPHE # →"→
+201D ; 0027 0027 ; MA #* ( ” → '' ) RIGHT DOUBLE QUOTATION MARK →
APOSTROPHE, APOSTROPHE # →"→
+201F ; 0027 0027 ; MA #* ( ‟ → '' ) DOUBLE HIGH-REVERSED-9 QUOTATION
MARK → APOSTROPHE, APOSTROPHE # →“→→"→
+2033 ; 0027 0027 ; MA #* ( ″ → '' ) DOUBLE PRIME → APOSTROPHE,
APOSTROPHE # →"→
+2036 ; 0027 0027 ; MA #* ( ‶ → '' ) REVERSED DOUBLE PRIME →
APOSTROPHE, APOSTROPHE # →‵‵→
+3003 ; 0027 0027 ; MA #* ( 〃 → '' ) DITTO MARK → APOSTROPHE,
APOSTROPHE # →″→→"→
+05F4 ; 0027 0027 ; MA #* ( ״ → '' ) HEBREW PUNCTUATION GERSHAYIM →
APOSTROPHE, APOSTROPHE # →"→
+02DD ; 0027 0027 ; MA #* ( ˝ → '' ) DOUBLE ACUTE ACCENT → APOSTROPHE,
APOSTROPHE # →"→
+02BA ; 0027 0027 ; MA # ( ʺ → '' ) MODIFIER LETTER DOUBLE PRIME →
APOSTROPHE, APOSTROPHE # →"→
+02F6 ; 0027 0027 ; MA #* ( ˶ → '' ) MODIFIER LETTER MIDDLE DOUBLE
ACUTE ACCENT → APOSTROPHE, APOSTROPHE # →˝→→"→
+02EE ; 0027 0027 ; MA # ( ˮ → '' ) MODIFIER LETTER DOUBLE APOSTROPHE
→ APOSTROPHE, APOSTROPHE # →″→→"→
+05F2 ; 0027 0027 ; MA # ( ײ → '' ) HEBREW LIGATURE YIDDISH DOUBLE
YOD → APOSTROPHE, APOSTROPHE # →יי→
+
+2034 ; 0027 0027 0027 ; MA #* ( ‴ → ''' ) TRIPLE PRIME →
APOSTROPHE, APOSTROPHE, APOSTROPHE # →′′′→
+2037 ; 0027 0027 0027 ; MA #* ( ‷ → ''' ) REVERSED TRIPLE PRIME →
APOSTROPHE, APOSTROPHE, APOSTROPHE # →‵‵‵→
+
+2057 ; 0027 0027 0027 0027 ; MA #* ( ⁗ → '''' ) QUADRUPLE PRIME →
APOSTROPHE, APOSTROPHE, APOSTROPHE, APOSTROPHE # →′′′′→
+
+0181 ; 0027 0042 ; MA # ( Ɓ → 'B ) LATIN CAPITAL LETTER B WITH HOOK →
APOSTROPHE, LATIN CAPITAL LETTER B # →ʽB→
+
+018A ; 0027 0044 ; MA # ( Ɗ → 'D ) LATIN CAPITAL LETTER D WITH HOOK →
APOSTROPHE, LATIN CAPITAL LETTER D # →ʽD→
+
+0149 ; 0027 006E ; MA # ( ʼn → 'n ) LATIN SMALL LETTER N PRECEDED BY
APOSTROPHE → APOSTROPHE, LATIN SMALL LETTER N # →ʼn→
+
+01A4 ; 0027 0050 ; MA # ( Ƥ → 'P ) LATIN CAPITAL LETTER P WITH HOOK →
APOSTROPHE, LATIN CAPITAL LETTER P # →ʽP→
+
+01AC ; 0027 0054 ; MA # ( Ƭ → 'T ) LATIN CAPITAL LETTER T WITH HOOK →
APOSTROPHE, LATIN CAPITAL LETTER T # →ʽT→
+
+01B3 ; 0027 0059 ; MA # ( Ƴ → 'Y ) LATIN CAPITAL LETTER Y WITH HOOK →
APOSTROPHE, LATIN CAPITAL LETTER Y # →ʽY→
+
+FF3B ; 0028 ; MA #* ( [ → ( ) FULLWIDTH LEFT SQUARE BRACKET → LEFT
PARENTHESIS # →〔→
+2768 ; 0028 ; MA #* ( ❨ → ( ) MEDIUM LEFT PARENTHESIS ORNAMENT → LEFT
PARENTHESIS #
+2772 ; 0028 ; MA #* ( ❲ → ( ) LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
→ LEFT PARENTHESIS # →〔→
+3014 ; 0028 ; MA #* ( 〔 → ( ) LEFT TORTOISE SHELL BRACKET → LEFT
PARENTHESIS #
+FD3E ; 0028 ; MA #* ( ﴾ → ( ) ORNATE LEFT PARENTHESIS → LEFT PARENTHESIS
#
+
+2E28 ; 0028 0028 ; MA #* ( ⸨ → (( ) LEFT DOUBLE PARENTHESIS → LEFT
PARENTHESIS, LEFT PARENTHESIS #
+
+3220 ; 0028 30FC 0029 ; MA #* ( ㈠ → (ー) ) PARENTHESIZED IDEOGRAPH
ONE → LEFT PARENTHESIS, KATAKANA-HIRAGANA PROLONGED SOUND MARK, RIGHT
PARENTHESIS # →(一)→
+
+2475 ; 0028 0032 0029 ; MA #* ( ⑵ → (2) ) PARENTHESIZED DIGIT TWO
→ LEFT PARENTHESIS, DIGIT TWO, RIGHT PARENTHESIS #
+
+2487 ; 0028 0032 004F 0029 ; MA #* ( ⒇ → (2O) ) PARENTHESIZED NUMBER
TWENTY → LEFT PARENTHESIS, DIGIT TWO, LATIN CAPITAL LETTER O, RIGHT PARENTHESIS
# →(20)→
+
+2476 ; 0028 0033 0029 ; MA #* ( ⑶ → (3) ) PARENTHESIZED DIGIT
THREE → LEFT PARENTHESIS, DIGIT THREE, RIGHT PARENTHESIS #
+
+2477 ; 0028 0034 0029 ; MA #* ( ⑷ → (4) ) PARENTHESIZED DIGIT FOUR
→ LEFT PARENTHESIS, DIGIT FOUR, RIGHT PARENTHESIS #
+
+2478 ; 0028 0035 0029 ; MA #* ( ⑸ → (5) ) PARENTHESIZED DIGIT FIVE
→ LEFT PARENTHESIS, DIGIT FIVE, RIGHT PARENTHESIS #
+
+2479 ; 0028 0036 0029 ; MA #* ( ⑹ → (6) ) PARENTHESIZED DIGIT SIX
→ LEFT PARENTHESIS, DIGIT SIX, RIGHT PARENTHESIS #
+
+247A ; 0028 0037 0029 ; MA #* ( ⑺ → (7) ) PARENTHESIZED DIGIT
SEVEN → LEFT PARENTHESIS, DIGIT SEVEN, RIGHT PARENTHESIS #
+
+247B ; 0028 0038 0029 ; MA #* ( ⑻ → (8) ) PARENTHESIZED DIGIT
EIGHT → LEFT PARENTHESIS, DIGIT EIGHT, RIGHT PARENTHESIS #
+
+247C ; 0028 0039 0029 ; MA #* ( ⑼ → (9) ) PARENTHESIZED DIGIT NINE
→ LEFT PARENTHESIS, DIGIT NINE, RIGHT PARENTHESIS #
+
+249C ; 0028 0061 0029 ; MA #* ( ⒜ → (a) ) PARENTHESIZED LATIN
SMALL LETTER A → LEFT PARENTHESIS, LATIN SMALL LETTER A, RIGHT PARENTHESIS #
+
+1F110 ; 0028 0041 0029 ; MA #* ( 🄐 → (A) ) PARENTHESIZED
LATIN CAPITAL LETTER A → LEFT PARENTHESIS, LATIN CAPITAL LETTER A, RIGHT
PARENTHESIS #
+
+249D ; 0028 0062 0029 ; MA #* ( ⒝ → (b) ) PARENTHESIZED LATIN
SMALL LETTER B → LEFT PARENTHESIS, LATIN SMALL LETTER B, RIGHT PARENTHESIS #
+
+1F111 ; 0028 0042 0029 ; MA #* ( 🄑 → (B) ) PARENTHESIZED
LATIN CAPITAL LETTER B → LEFT PARENTHESIS, LATIN CAPITAL LETTER B, RIGHT
PARENTHESIS #
+
+249E ; 0028 0063 0029 ; MA #* ( ⒞ → (c) ) PARENTHESIZED LATIN
SMALL LETTER C → LEFT PARENTHESIS, LATIN SMALL LETTER C, RIGHT PARENTHESIS #
+
+1F112 ; 0028 0043 0029 ; MA #* ( 🄒 → (C) ) PARENTHESIZED
LATIN CAPITAL LETTER C → LEFT PARENTHESIS, LATIN CAPITAL LETTER C, RIGHT
PARENTHESIS #
+
+249F ; 0028 0064 0029 ; MA #* ( ⒟ → (d) ) PARENTHESIZED LATIN
SMALL LETTER D → LEFT PARENTHESIS, LATIN SMALL LETTER D, RIGHT PARENTHESIS #
+
+1F113 ; 0028 0044 0029 ; MA #* ( 🄓 → (D) ) PARENTHESIZED
LATIN CAPITAL LETTER D → LEFT PARENTHESIS, LATIN CAPITAL LETTER D, RIGHT
PARENTHESIS #
+
+24A0 ; 0028 0065 0029 ; MA #* ( ⒠ → (e) ) PARENTHESIZED LATIN
SMALL LETTER E → LEFT PARENTHESIS, LATIN SMALL LETTER E, RIGHT PARENTHESIS #
+
+1F114 ; 0028 0045 0029 ; MA #* ( 🄔 → (E) ) PARENTHESIZED
LATIN CAPITAL LETTER E → LEFT PARENTHESIS, LATIN CAPITAL LETTER E, RIGHT
PARENTHESIS #
+
+24A1 ; 0028 0066 0029 ; MA #* ( ⒡ → (f) ) PARENTHESIZED LATIN
SMALL LETTER F → LEFT PARENTHESIS, LATIN SMALL LETTER F, RIGHT PARENTHESIS #
+
+1F115 ; 0028 0046 0029 ; MA #* ( 🄕 → (F) ) PARENTHESIZED
LATIN CAPITAL LETTER F → LEFT PARENTHESIS, LATIN CAPITAL LETTER F, RIGHT
PARENTHESIS #
+
+24A2 ; 0028 0067 0029 ; MA #* ( ⒢ → (g) ) PARENTHESIZED LATIN
SMALL LETTER G → LEFT PARENTHESIS, LATIN SMALL LETTER G, RIGHT PARENTHESIS #
+
+1F116 ; 0028 0047 0029 ; MA #* ( 🄖 → (G) ) PARENTHESIZED
LATIN CAPITAL LETTER G → LEFT PARENTHESIS, LATIN CAPITAL LETTER G, RIGHT
PARENTHESIS #
+
+24A3 ; 0028 0068 0029 ; MA #* ( ⒣ → (h) ) PARENTHESIZED LATIN
SMALL LETTER H → LEFT PARENTHESIS, LATIN SMALL LETTER H, RIGHT PARENTHESIS #
+
+1F117 ; 0028 0048 0029 ; MA #* ( 🄗 → (H) ) PARENTHESIZED
LATIN CAPITAL LETTER H → LEFT PARENTHESIS, LATIN CAPITAL LETTER H, RIGHT
PARENTHESIS #
+
+24A4 ; 0028 0069 0029 ; MA #* ( ⒤ → (i) ) PARENTHESIZED LATIN
SMALL LETTER I → LEFT PARENTHESIS, LATIN SMALL LETTER I, RIGHT PARENTHESIS #
+
+24A5 ; 0028 006A 0029 ; MA #* ( ⒥ → (j) ) PARENTHESIZED LATIN
SMALL LETTER J → LEFT PARENTHESIS, LATIN SMALL LETTER J, RIGHT PARENTHESIS #
+
+1F119 ; 0028 004A 0029 ; MA #* ( 🄙 → (J) ) PARENTHESIZED
LATIN CAPITAL LETTER J → LEFT PARENTHESIS, LATIN CAPITAL LETTER J, RIGHT
PARENTHESIS #
+
+24A6 ; 0028 006B 0029 ; MA #* ( ⒦ → (k) ) PARENTHESIZED LATIN
SMALL LETTER K → LEFT PARENTHESIS, LATIN SMALL LETTER K, RIGHT PARENTHESIS #
+
+1F11A ; 0028 004B 0029 ; MA #* ( 🄚 → (K) ) PARENTHESIZED
LATIN CAPITAL LETTER K → LEFT PARENTHESIS, LATIN CAPITAL LETTER K, RIGHT
PARENTHESIS #
+
+2474 ; 0028 006C 0029 ; MA #* ( ⑴ → (l) ) PARENTHESIZED DIGIT ONE
→ LEFT PARENTHESIS, LATIN SMALL LETTER L, RIGHT PARENTHESIS # →(1)→
+1F118 ; 0028 006C 0029 ; MA #* ( 🄘 → (l) ) PARENTHESIZED
LATIN CAPITAL LETTER I → LEFT PARENTHESIS, LATIN SMALL LETTER L, RIGHT
PARENTHESIS # →(I)→
+24A7 ; 0028 006C 0029 ; MA #* ( ⒧ → (l) ) PARENTHESIZED LATIN
SMALL LETTER L → LEFT PARENTHESIS, LATIN SMALL LETTER L, RIGHT PARENTHESIS #
+
+1F11B ; 0028 004C 0029 ; MA #* ( 🄛 → (L) ) PARENTHESIZED
LATIN CAPITAL LETTER L → LEFT PARENTHESIS, LATIN CAPITAL LETTER L, RIGHT
PARENTHESIS #
+
+247F ; 0028 006C 0032 0029 ; MA #* ( ⑿ → (l2) ) PARENTHESIZED NUMBER
TWELVE → LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT TWO, RIGHT PARENTHESIS
# →(12)→
+
+2480 ; 0028 006C 0033 0029 ; MA #* ( ⒀ → (l3) ) PARENTHESIZED NUMBER
THIRTEEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT THREE, RIGHT
PARENTHESIS # →(13)→
+
+2481 ; 0028 006C 0034 0029 ; MA #* ( ⒁ → (l4) ) PARENTHESIZED NUMBER
FOURTEEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT FOUR, RIGHT
PARENTHESIS # →(14)→
+
+2482 ; 0028 006C 0035 0029 ; MA #* ( ⒂ → (l5) ) PARENTHESIZED NUMBER
FIFTEEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT FIVE, RIGHT PARENTHESIS
# →(15)→
+
+2483 ; 0028 006C 0036 0029 ; MA #* ( ⒃ → (l6) ) PARENTHESIZED NUMBER
SIXTEEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT SIX, RIGHT PARENTHESIS
# →(16)→
+
+2484 ; 0028 006C 0037 0029 ; MA #* ( ⒄ → (l7) ) PARENTHESIZED NUMBER
SEVENTEEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT SEVEN, RIGHT
PARENTHESIS # →(17)→
+
+2485 ; 0028 006C 0038 0029 ; MA #* ( ⒅ → (l8) ) PARENTHESIZED NUMBER
EIGHTEEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT EIGHT, RIGHT
PARENTHESIS # →(18)→
+
+2486 ; 0028 006C 0039 0029 ; MA #* ( ⒆ → (l9) ) PARENTHESIZED NUMBER
NINETEEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT NINE, RIGHT
PARENTHESIS # →(19)→
+
+247E ; 0028 006C 006C 0029 ; MA #* ( ⑾ → (ll) ) PARENTHESIZED NUMBER
ELEVEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, LATIN SMALL LETTER L, RIGHT
PARENTHESIS # →(11)→
+
+247D ; 0028 006C 004F 0029 ; MA #* ( ⑽ → (lO) ) PARENTHESIZED NUMBER
TEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, LATIN CAPITAL LETTER O, RIGHT
PARENTHESIS # →(10)→
+
+1F11C ; 0028 004D 0029 ; MA #* ( 🄜 → (M) ) PARENTHESIZED
LATIN CAPITAL LETTER M → LEFT PARENTHESIS, LATIN CAPITAL LETTER M, RIGHT
PARENTHESIS #
+
+24A9 ; 0028 006E 0029 ; MA #* ( ⒩ → (n) ) PARENTHESIZED LATIN
SMALL LETTER N → LEFT PARENTHESIS, LATIN SMALL LETTER N, RIGHT PARENTHESIS #
+
+1F11D ; 0028 004E 0029 ; MA #* ( 🄝 → (N) ) PARENTHESIZED
LATIN CAPITAL LETTER N → LEFT PARENTHESIS, LATIN CAPITAL LETTER N, RIGHT
PARENTHESIS #
+
+24AA ; 0028 006F 0029 ; MA #* ( ⒪ → (o) ) PARENTHESIZED LATIN
SMALL LETTER O → LEFT PARENTHESIS, LATIN SMALL LETTER O, RIGHT PARENTHESIS #
+
+1F11E ; 0028 004F 0029 ; MA #* ( 🄞 → (O) ) PARENTHESIZED
LATIN CAPITAL LETTER O → LEFT PARENTHESIS, LATIN CAPITAL LETTER O, RIGHT
PARENTHESIS #
+
+24AB ; 0028 0070 0029 ; MA #* ( ⒫ → (p) ) PARENTHESIZED LATIN
SMALL LETTER P → LEFT PARENTHESIS, LATIN SMALL LETTER P, RIGHT PARENTHESIS #
+
+1F11F ; 0028 0050 0029 ; MA #* ( 🄟 → (P) ) PARENTHESIZED
LATIN CAPITAL LETTER P → LEFT PARENTHESIS, LATIN CAPITAL LETTER P, RIGHT
PARENTHESIS #
+
+24AC ; 0028 0071 0029 ; MA #* ( ⒬ → (q) ) PARENTHESIZED LATIN
SMALL LETTER Q → LEFT PARENTHESIS, LATIN SMALL LETTER Q, RIGHT PARENTHESIS #
+
+1F120 ; 0028 0051 0029 ; MA #* ( 🄠 → (Q) ) PARENTHESIZED
LATIN CAPITAL LETTER Q → LEFT PARENTHESIS, LATIN CAPITAL LETTER Q, RIGHT
PARENTHESIS #
+
+24AD ; 0028 0072 0029 ; MA #* ( ⒭ → (r) ) PARENTHESIZED LATIN
SMALL LETTER R → LEFT PARENTHESIS, LATIN SMALL LETTER R, RIGHT PARENTHESIS #
+
+1F121 ; 0028 0052 0029 ; MA #* ( 🄡 → (R) ) PARENTHESIZED
LATIN CAPITAL LETTER R → LEFT PARENTHESIS, LATIN CAPITAL LETTER R, RIGHT
PARENTHESIS #
+
+24A8 ; 0028 0072 006E 0029 ; MA #* ( ⒨ → (rn) ) PARENTHESIZED LATIN
SMALL LETTER M → LEFT PARENTHESIS, LATIN SMALL LETTER R, LATIN SMALL LETTER N,
RIGHT PARENTHESIS # →(m)→
+
+24AE ; 0028 0073 0029 ; MA #* ( ⒮ → (s) ) PARENTHESIZED LATIN
SMALL LETTER S → LEFT PARENTHESIS, LATIN SMALL LETTER S, RIGHT PARENTHESIS #
+
+1F122 ; 0028 0053 0029 ; MA #* ( 🄢 → (S) ) PARENTHESIZED
LATIN CAPITAL LETTER S → LEFT PARENTHESIS, LATIN CAPITAL LETTER S, RIGHT
PARENTHESIS #
+1F12A ; 0028 0053 0029 ; MA #* ( 🄪 → (S) ) TORTOISE SHELL
BRACKETED LATIN CAPITAL LETTER S → LEFT PARENTHESIS, LATIN CAPITAL LETTER S,
RIGHT PARENTHESIS # →〔S〕→
+
+24AF ; 0028 0074 0029 ; MA #* ( ⒯ → (t) ) PARENTHESIZED LATIN
SMALL LETTER T → LEFT PARENTHESIS, LATIN SMALL LETTER T, RIGHT PARENTHESIS #
+
+1F123 ; 0028 0054 0029 ; MA #* ( 🄣 → (T) ) PARENTHESIZED
LATIN CAPITAL LETTER T → LEFT PARENTHESIS, LATIN CAPITAL LETTER T, RIGHT
PARENTHESIS #
+
+24B0 ; 0028 0075 0029 ; MA #* ( ⒰ → (u) ) PARENTHESIZED LATIN
SMALL LETTER U → LEFT PARENTHESIS, LATIN SMALL LETTER U, RIGHT PARENTHESIS #
+
+1F124 ; 0028 0055 0029 ; MA #* ( 🄤 → (U) ) PARENTHESIZED
LATIN CAPITAL LETTER U → LEFT PARENTHESIS, LATIN CAPITAL LETTER U, RIGHT
PARENTHESIS #
+
+24B1 ; 0028 0076 0029 ; MA #* ( ⒱ → (v) ) PARENTHESIZED LATIN
SMALL LETTER V → LEFT PARENTHESIS, LATIN SMALL LETTER V, RIGHT PARENTHESIS #
+
+1F125 ; 0028 0056 0029 ; MA #* ( 🄥 → (V) ) PARENTHESIZED
LATIN CAPITAL LETTER V → LEFT PARENTHESIS, LATIN CAPITAL LETTER V, RIGHT
PARENTHESIS #
+
+24B2 ; 0028 0077 0029 ; MA #* ( ⒲ → (w) ) PARENTHESIZED LATIN
SMALL LETTER W → LEFT PARENTHESIS, LATIN SMALL LETTER W, RIGHT PARENTHESIS #
+
+1F126 ; 0028 0057 0029 ; MA #* ( 🄦 → (W) ) PARENTHESIZED
LATIN CAPITAL LETTER W → LEFT PARENTHESIS, LATIN CAPITAL LETTER W, RIGHT
PARENTHESIS #
+
+24B3 ; 0028 0078 0029 ; MA #* ( ⒳ → (x) ) PARENTHESIZED LATIN
SMALL LETTER X → LEFT PARENTHESIS, LATIN SMALL LETTER X, RIGHT PARENTHESIS #
+
+1F127 ; 0028 0058 0029 ; MA #* ( 🄧 → (X) ) PARENTHESIZED
LATIN CAPITAL LETTER X → LEFT PARENTHESIS, LATIN CAPITAL LETTER X, RIGHT
PARENTHESIS #
+
+24B4 ; 0028 0079 0029 ; MA #* ( ⒴ → (y) ) PARENTHESIZED LATIN
SMALL LETTER Y → LEFT PARENTHESIS, LATIN SMALL LETTER Y, RIGHT PARENTHESIS #
+
+1F128 ; 0028 0059 0029 ; MA #* ( 🄨 → (Y) ) PARENTHESIZED
LATIN CAPITAL LETTER Y → LEFT PARENTHESIS, LATIN CAPITAL LETTER Y, RIGHT
PARENTHESIS #
+
+24B5 ; 0028 007A 0029 ; MA #* ( ⒵ → (z) ) PARENTHESIZED LATIN
SMALL LETTER Z → LEFT PARENTHESIS, LATIN SMALL LETTER Z, RIGHT PARENTHESIS #
+
+1F129 ; 0028 005A 0029 ; MA #* ( 🄩 → (Z) ) PARENTHESIZED
LATIN CAPITAL LETTER Z → LEFT PARENTHESIS, LATIN CAPITAL LETTER Z, RIGHT
PARENTHESIS #
+
+3200 ; 0028 1100 0029 ; MA #* ( ㈀ → (ᄀ) ) PARENTHESIZED HANGUL
KIYEOK → LEFT PARENTHESIS, HANGUL CHOSEONG KIYEOK, RIGHT PARENTHESIS #
+
+320E ; 0028 AC00 0029 ; MA #* ( ㈎ → (가) ) PARENTHESIZED HANGUL
KIYEOK A → LEFT PARENTHESIS, HANGUL SYLLABLE GA, RIGHT PARENTHESIS #
+
+3201 ; 0028 1102 0029 ; MA #* ( ㈁ → (ᄂ) ) PARENTHESIZED HANGUL
NIEUN → LEFT PARENTHESIS, HANGUL CHOSEONG NIEUN, RIGHT PARENTHESIS #
+
+320F ; 0028 B098 0029 ; MA #* ( ㈏ → (나) ) PARENTHESIZED HANGUL
NIEUN A → LEFT PARENTHESIS, HANGUL SYLLABLE NA, RIGHT PARENTHESIS #
+
+3202 ; 0028 1103 0029 ; MA #* ( ㈂ → (ᄃ) ) PARENTHESIZED HANGUL
TIKEUT → LEFT PARENTHESIS, HANGUL CHOSEONG TIKEUT, RIGHT PARENTHESIS #
+
+3210 ; 0028 B2E4 0029 ; MA #* ( ㈐ → (다) ) PARENTHESIZED HANGUL
TIKEUT A → LEFT PARENTHESIS, HANGUL SYLLABLE DA, RIGHT PARENTHESIS #
+
+3203 ; 0028 1105 0029 ; MA #* ( ㈃ → (ᄅ) ) PARENTHESIZED HANGUL
RIEUL → LEFT PARENTHESIS, HANGUL CHOSEONG RIEUL, RIGHT PARENTHESIS #
+
+3211 ; 0028 B77C 0029 ; MA #* ( ㈑ → (라) ) PARENTHESIZED HANGUL
RIEUL A → LEFT PARENTHESIS, HANGUL SYLLABLE RA, RIGHT PARENTHESIS #
+
+3204 ; 0028 1106 0029 ; MA #* ( ㈄ → (ᄆ) ) PARENTHESIZED HANGUL
MIEUM → LEFT PARENTHESIS, HANGUL CHOSEONG MIEUM, RIGHT PARENTHESIS #
+
+3212 ; 0028 B9C8 0029 ; MA #* ( ㈒ → (마) ) PARENTHESIZED HANGUL
MIEUM A → LEFT PARENTHESIS, HANGUL SYLLABLE MA, RIGHT PARENTHESIS #
+
+3205 ; 0028 1107 0029 ; MA #* ( ㈅ → (ᄇ) ) PARENTHESIZED HANGUL
PIEUP → LEFT PARENTHESIS, HANGUL CHOSEONG PIEUP, RIGHT PARENTHESIS #
+
+3213 ; 0028 BC14 0029 ; MA #* ( ㈓ → (바) ) PARENTHESIZED HANGUL
PIEUP A → LEFT PARENTHESIS, HANGUL SYLLABLE BA, RIGHT PARENTHESIS #
+
+3206 ; 0028 1109 0029 ; MA #* ( ㈆ → (ᄉ) ) PARENTHESIZED HANGUL
SIOS → LEFT PARENTHESIS, HANGUL CHOSEONG SIOS, RIGHT PARENTHESIS #
+
+3214 ; 0028 C0AC 0029 ; MA #* ( ㈔ → (사) ) PARENTHESIZED HANGUL
SIOS A → LEFT PARENTHESIS, HANGUL SYLLABLE SA, RIGHT PARENTHESIS #
+
+3207 ; 0028 110B 0029 ; MA #* ( ㈇ → (ᄋ) ) PARENTHESIZED HANGUL
IEUNG → LEFT PARENTHESIS, HANGUL CHOSEONG IEUNG, RIGHT PARENTHESIS #
+
+3215 ; 0028 C544 0029 ; MA #* ( ㈕ → (아) ) PARENTHESIZED HANGUL
IEUNG A → LEFT PARENTHESIS, HANGUL SYLLABLE A, RIGHT PARENTHESIS #
+
+321D ; 0028 C624 C804 0029 ; MA #* ( ㈝ → (오전) ) PARENTHESIZED KOREAN
CHARACTER OJEON → LEFT PARENTHESIS, HANGUL SYLLABLE O, HANGUL SYLLABLE JEON,
RIGHT PARENTHESIS #
+
+321E ; 0028 C624 D6C4 0029 ; MA #* ( ㈞ → (오후) ) PARENTHESIZED KOREAN
CHARACTER O HU → LEFT PARENTHESIS, HANGUL SYLLABLE O, HANGUL SYLLABLE HU, RIGHT
PARENTHESIS #
+
+3208 ; 0028 110C 0029 ; MA #* ( ㈈ → (ᄌ) ) PARENTHESIZED HANGUL
CIEUC → LEFT PARENTHESIS, HANGUL CHOSEONG CIEUC, RIGHT PARENTHESIS #
+
+3216 ; 0028 C790 0029 ; MA #* ( ㈖ → (자) ) PARENTHESIZED HANGUL
CIEUC A → LEFT PARENTHESIS, HANGUL SYLLABLE JA, RIGHT PARENTHESIS #
+
+321C ; 0028 C8FC 0029 ; MA #* ( ㈜ → (주) ) PARENTHESIZED HANGUL
CIEUC U → LEFT PARENTHESIS, HANGUL SYLLABLE JU, RIGHT PARENTHESIS #
+
+3209 ; 0028 110E 0029 ; MA #* ( ㈉ → (ᄎ) ) PARENTHESIZED HANGUL
CHIEUCH → LEFT PARENTHESIS, HANGUL CHOSEONG CHIEUCH, RIGHT PARENTHESIS #
+
+3217 ; 0028 CC28 0029 ; MA #* ( ㈗ → (차) ) PARENTHESIZED HANGUL
CHIEUCH A → LEFT PARENTHESIS, HANGUL SYLLABLE CA, RIGHT PARENTHESIS #
+
+320A ; 0028 110F 0029 ; MA #* ( ㈊ → (ᄏ) ) PARENTHESIZED HANGUL
KHIEUKH → LEFT PARENTHESIS, HANGUL CHOSEONG KHIEUKH, RIGHT PARENTHESIS #
+
+3218 ; 0028 CE74 0029 ; MA #* ( ㈘ → (카) ) PARENTHESIZED HANGUL
KHIEUKH A → LEFT PARENTHESIS, HANGUL SYLLABLE KA, RIGHT PARENTHESIS #
+
+320B ; 0028 1110 0029 ; MA #* ( ㈋ → (ᄐ) ) PARENTHESIZED HANGUL
THIEUTH → LEFT PARENTHESIS, HANGUL CHOSEONG THIEUTH, RIGHT PARENTHESIS #
+
+3219 ; 0028 D0C0 0029 ; MA #* ( ㈙ → (타) ) PARENTHESIZED HANGUL
THIEUTH A → LEFT PARENTHESIS, HANGUL SYLLABLE TA, RIGHT PARENTHESIS #
+
+320C ; 0028 1111 0029 ; MA #* ( ㈌ → (ᄑ) ) PARENTHESIZED HANGUL
PHIEUPH → LEFT PARENTHESIS, HANGUL CHOSEONG PHIEUPH, RIGHT PARENTHESIS #
+
+321A ; 0028 D30C 0029 ; MA #* ( ㈚ → (파) ) PARENTHESIZED HANGUL
PHIEUPH A → LEFT PARENTHESIS, HANGUL SYLLABLE PA, RIGHT PARENTHESIS #
+
+320D ; 0028 1112 0029 ; MA #* ( ㈍ → (ᄒ) ) PARENTHESIZED HANGUL
HIEUH → LEFT PARENTHESIS, HANGUL CHOSEONG HIEUH, RIGHT PARENTHESIS #
+
+321B ; 0028 D558 0029 ; MA #* ( ㈛ → (하) ) PARENTHESIZED HANGUL
HIEUH A → LEFT PARENTHESIS, HANGUL SYLLABLE HA, RIGHT PARENTHESIS #
+
+3226 ; 0028 4E03 0029 ; MA #* ( ㈦ → (七) ) PARENTHESIZED IDEOGRAPH
SEVEN → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E03, RIGHT PARENTHESIS #
+
+3222 ; 0028 4E09 0029 ; MA #* ( ㈢ → (三) ) PARENTHESIZED IDEOGRAPH
THREE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E09, RIGHT PARENTHESIS #
+1F241 ; 0028 4E09 0029 ; MA #* ( 🉁 → (三) ) TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-4E09 → LEFT PARENTHESIS, CJK UNIFIED
IDEOGRAPH-4E09, RIGHT PARENTHESIS # →〔三〕→
+
+3228 ; 0028 4E5D 0029 ; MA #* ( ㈨ → (九) ) PARENTHESIZED IDEOGRAPH
NINE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E5D, RIGHT PARENTHESIS #
+
+3221 ; 0028 4E8C 0029 ; MA #* ( ㈡ → (二) ) PARENTHESIZED IDEOGRAPH
TWO → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E8C, RIGHT PARENTHESIS #
+1F242 ; 0028 4E8C 0029 ; MA #* ( 🉂 → (二) ) TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-4E8C → LEFT PARENTHESIS, CJK UNIFIED
IDEOGRAPH-4E8C, RIGHT PARENTHESIS # →〔二〕→
+
+3224 ; 0028 4E94 0029 ; MA #* ( ㈤ → (五) ) PARENTHESIZED IDEOGRAPH
FIVE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E94, RIGHT PARENTHESIS #
+
+3239 ; 0028 4EE3 0029 ; MA #* ( ㈹ → (代) ) PARENTHESIZED IDEOGRAPH
REPRESENT → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4EE3, RIGHT PARENTHESIS
#
+
+323D ; 0028 4F01 0029 ; MA #* ( ㈽ → (企) ) PARENTHESIZED IDEOGRAPH
ENTERPRISE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4F01, RIGHT PARENTHESIS
#
+
+3241 ; 0028 4F11 0029 ; MA #* ( ㉁ → (休) ) PARENTHESIZED IDEOGRAPH
REST → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4F11, RIGHT PARENTHESIS #
+
+3227 ; 0028 516B 0029 ; MA #* ( ㈧ → (八) ) PARENTHESIZED IDEOGRAPH
EIGHT → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-516B, RIGHT PARENTHESIS #
+
+3225 ; 0028 516D 0029 ; MA #* ( ㈥ → (六) ) PARENTHESIZED IDEOGRAPH
SIX → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-516D, RIGHT PARENTHESIS #
+
+3238 ; 0028 52B4 0029 ; MA #* ( ㈸ → (労) ) PARENTHESIZED IDEOGRAPH
LABOR → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-52B4, RIGHT PARENTHESIS #
+
+1F247 ; 0028 52DD 0029 ; MA #* ( 🉇 → (勝) ) TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-52DD → LEFT PARENTHESIS, CJK UNIFIED
IDEOGRAPH-52DD, RIGHT PARENTHESIS # →〔勝〕→
+
+3229 ; 0028 5341 0029 ; MA #* ( ㈩ → (十) ) PARENTHESIZED IDEOGRAPH
TEN → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-5341, RIGHT PARENTHESIS #
+
+323F ; 0028 5354 0029 ; MA #* ( ㈿ → (協) ) PARENTHESIZED IDEOGRAPH
ALLIANCE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-5354, RIGHT PARENTHESIS
#
+
+3234 ; 0028 540D 0029 ; MA #* ( ㈴ → (名) ) PARENTHESIZED IDEOGRAPH
NAME → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-540D, RIGHT PARENTHESIS #
+
+323A ; 0028 547C 0029 ; MA #* ( ㈺ → (呼) ) PARENTHESIZED IDEOGRAPH
CALL → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-547C, RIGHT PARENTHESIS #
+
+3223 ; 0028 56DB 0029 ; MA #* ( ㈣ → (四) ) PARENTHESIZED IDEOGRAPH
FOUR → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-56DB, RIGHT PARENTHESIS #
+
+322F ; 0028 571F 0029 ; MA #* ( ㈯ → (土) ) PARENTHESIZED IDEOGRAPH
EARTH → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-571F, RIGHT PARENTHESIS #
+
+323B ; 0028 5B66 0029 ; MA #* ( ㈻ → (学) ) PARENTHESIZED IDEOGRAPH
STUDY → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-5B66, RIGHT PARENTHESIS #
+
+1F243 ; 0028 5B89 0029 ; MA #* ( 🉃 → (安) ) TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-5B89 → LEFT PARENTHESIS, CJK UNIFIED
IDEOGRAPH-5B89, RIGHT PARENTHESIS # →〔安〕→
+
+1F245 ; 0028 6253 0029 ; MA #* ( 🉅 → (打) ) TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-6253 → LEFT PARENTHESIS, CJK UNIFIED
IDEOGRAPH-6253, RIGHT PARENTHESIS # →〔打〕→
+
+1F248 ; 0028 6557 0029 ; MA #* ( 🉈 → (敗) ) TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-6557 → LEFT PARENTHESIS, CJK UNIFIED
IDEOGRAPH-6557, RIGHT PARENTHESIS # →〔敗〕→
+
+3230 ; 0028 65E5 0029 ; MA #* ( ㈰ → (日) ) PARENTHESIZED IDEOGRAPH
SUN → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-65E5, RIGHT PARENTHESIS #
+
+322A ; 0028 6708 0029 ; MA #* ( ㈪ → (月) ) PARENTHESIZED IDEOGRAPH
MOON → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-6708, RIGHT PARENTHESIS #
+
+3232 ; 0028 6709 0029 ; MA #* ( ㈲ → (有) ) PARENTHESIZED IDEOGRAPH
HAVE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-6709, RIGHT PARENTHESIS #
+
+322D ; 0028 6728 0029 ; MA #* ( ㈭ → (木) ) PARENTHESIZED IDEOGRAPH
WOOD → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-6728, RIGHT PARENTHESIS #
+
+1F240 ; 0028 672C 0029 ; MA #* ( 🉀 → (本) ) TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-672C → LEFT PARENTHESIS, CJK UNIFIED
IDEOGRAPH-672C, RIGHT PARENTHESIS # →〔本〕→
+
+3231 ; 0028 682A 0029 ; MA #* ( ㈱ → (株) ) PARENTHESIZED IDEOGRAPH
STOCK → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-682A, RIGHT PARENTHESIS #
+
+322C ; 0028 6C34 0029 ; MA #* ( ㈬ → (水) ) PARENTHESIZED IDEOGRAPH
WATER → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-6C34, RIGHT PARENTHESIS #
+
+322B ; 0028 706B 0029 ; MA #* ( ㈫ → (火) ) PARENTHESIZED IDEOGRAPH
FIRE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-706B, RIGHT PARENTHESIS #
+
+1F244 ; 0028 70B9 0029 ; MA #* ( 🉄 → (点) ) TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-70B9 → LEFT PARENTHESIS, CJK UNIFIED
IDEOGRAPH-70B9, RIGHT PARENTHESIS # →〔点〕→
+
+3235 ; 0028 7279 0029 ; MA #* ( ㈵ → (特) ) PARENTHESIZED IDEOGRAPH
SPECIAL → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-7279, RIGHT PARENTHESIS
#
+
+1F246 ; 0028 76D7 0029 ; MA #* ( 🉆 → (盗) ) TORTOISE SHELL
BRACKETED CJK UNIFIED IDEOGRAPH-76D7 → LEFT PARENTHESIS, CJK UNIFIED
IDEOGRAPH-76D7, RIGHT PARENTHESIS # →〔盗〕→
+
+323C ; 0028 76E3 0029 ; MA #* ( ㈼ → (監) ) PARENTHESIZED IDEOGRAPH
SUPERVISE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-76E3, RIGHT PARENTHESIS
#
+
+3233 ; 0028 793E 0029 ; MA #* ( ㈳ → (社) ) PARENTHESIZED IDEOGRAPH
SOCIETY → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-793E, RIGHT PARENTHESIS
#
+
+3237 ; 0028 795D 0029 ; MA #* ( ㈷ → (祝) ) PARENTHESIZED IDEOGRAPH
CONGRATULATION → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-795D, RIGHT
PARENTHESIS #
+
+3240 ; 0028 796D 0029 ; MA #* ( ㉀ → (祭) ) PARENTHESIZED IDEOGRAPH
FESTIVAL → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-796D, RIGHT PARENTHESIS
#
+
+3242 ; 0028 81EA 0029 ; MA #* ( ㉂ → (自) ) PARENTHESIZED IDEOGRAPH
SELF → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-81EA, RIGHT PARENTHESIS #
+
+3243 ; 0028 81F3 0029 ; MA #* ( ㉃ → (至) ) PARENTHESIZED IDEOGRAPH
REACH → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-81F3, RIGHT PARENTHESIS #
+
+3236 ; 0028 8CA1 0029 ; MA #* ( ㈶ → (財) ) PARENTHESIZED IDEOGRAPH
FINANCIAL → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-8CA1, RIGHT PARENTHESIS
#
+
+323E ; 0028 8CC7 0029 ; MA #* ( ㈾ → (資) ) PARENTHESIZED IDEOGRAPH
RESOURCE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-8CC7, RIGHT PARENTHESIS
#
+
+322E ; 0028 91D1 0029 ; MA #* ( ㈮ → (金) ) PARENTHESIZED IDEOGRAPH
METAL → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-91D1, RIGHT PARENTHESIS #
+
+FF3D ; 0029 ; MA #* ( ] → ) ) FULLWIDTH RIGHT SQUARE BRACKET → RIGHT
PARENTHESIS # →〕→
+2769 ; 0029 ; MA #* ( ❩ → ) ) MEDIUM RIGHT PARENTHESIS ORNAMENT → RIGHT
PARENTHESIS #
+2773 ; 0029 ; MA #* ( ❳ → ) ) LIGHT RIGHT TORTOISE SHELL BRACKET
ORNAMENT → RIGHT PARENTHESIS # →〕→
+3015 ; 0029 ; MA #* ( 〕 → ) ) RIGHT TORTOISE SHELL BRACKET → RIGHT
PARENTHESIS #
+FD3F ; 0029 ; MA #* ( ﴿ → ) ) ORNATE RIGHT PARENTHESIS → RIGHT
PARENTHESIS #
+
+2E29 ; 0029 0029 ; MA #* ( ⸩ → )) ) RIGHT DOUBLE PARENTHESIS → RIGHT
PARENTHESIS, RIGHT PARENTHESIS #
+
+2774 ; 007B ; MA #* ( ❴ → { ) MEDIUM LEFT CURLY BRACKET ORNAMENT → LEFT
CURLY BRACKET #
+1D114 ; 007B ; MA #* ( 𝄔 → { ) MUSICAL SYMBOL BRACE → LEFT CURLY
BRACKET #
+
+2775 ; 007D ; MA #* ( ❵ → } ) MEDIUM RIGHT CURLY BRACKET ORNAMENT →
RIGHT CURLY BRACKET #
+
+301A ; 27E6 ; MA #* ( 〚 → ⟦ ) LEFT WHITE SQUARE BRACKET → MATHEMATICAL
LEFT WHITE SQUARE BRACKET #
+
+301B ; 27E7 ; MA #* ( 〛 → ⟧ ) RIGHT WHITE SQUARE BRACKET → MATHEMATICAL
RIGHT WHITE SQUARE BRACKET #
+
+27E8 ; 276C ; MA #* ( ⟨ → ❬ ) MATHEMATICAL LEFT ANGLE BRACKET → MEDIUM
LEFT-POINTING ANGLE BRACKET ORNAMENT # →〈→
+2329 ; 276C ; MA #* ( 〈 → ❬ ) LEFT-POINTING ANGLE BRACKET → MEDIUM
LEFT-POINTING ANGLE BRACKET ORNAMENT # →〈→
+3008 ; 276C ; MA #* ( 〈 → ❬ ) LEFT ANGLE BRACKET → MEDIUM LEFT-POINTING
ANGLE BRACKET ORNAMENT #
+31DB ; 276C ; MA #* ( ㇛ → ❬ ) CJK STROKE PD → MEDIUM LEFT-POINTING ANGLE
BRACKET ORNAMENT # →⟨→→〈→
+304F ; 276C ; MA # ( く → ❬ ) HIRAGANA LETTER KU → MEDIUM LEFT-POINTING
ANGLE BRACKET ORNAMENT # →㇛→→⟨→→〈→
+21FE8 ; 276C ; MA # ( 𡿨 → ❬ ) CJK UNIFIED IDEOGRAPH-21FE8 →
MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT # →㇛→→⟨→→〈→
+
+27E9 ; 276D ; MA #* ( ⟩ → ❭ ) MATHEMATICAL RIGHT ANGLE BRACKET → MEDIUM
RIGHT-POINTING ANGLE BRACKET ORNAMENT # →〉→
+232A ; 276D ; MA #* ( 〉 → ❭ ) RIGHT-POINTING ANGLE BRACKET → MEDIUM
RIGHT-POINTING ANGLE BRACKET ORNAMENT # →〉→
+3009 ; 276D ; MA #* ( 〉 → ❭ ) RIGHT ANGLE BRACKET → MEDIUM
RIGHT-POINTING ANGLE BRACKET ORNAMENT #
+
+FF3E ; FE3F ; MA #* ( ^ → ︿ ) FULLWIDTH CIRCUMFLEX ACCENT → PRESENTATION
FORM FOR VERTICAL LEFT ANGLE BRACKET #
+
+2E3F ; 00B6 ; MA #* ( ⸿ → ¶ ) CAPITULUM → PILCROW SIGN #
+
+204E ; 002A ; MA #* ( ⁎ → * ) LOW ASTERISK → ASTERISK #
+066D ; 002A ; MA #* ( ٭ → * ) ARABIC FIVE POINTED STAR → ASTERISK
#
+2217 ; 002A ; MA #* ( ∗ → * ) ASTERISK OPERATOR → ASTERISK #
+1031F ; 002A ; MA # ( 𐌟 → * ) OLD ITALIC LETTER ESS → ASTERISK
#
+
+1735 ; 002F ; MA #* ( ᜵ → / ) PHILIPPINE SINGLE PUNCTUATION → SOLIDUS
#
+2041 ; 002F ; MA #* ( ⁁ → / ) CARET INSERTION POINT → SOLIDUS #
+2215 ; 002F ; MA #* ( ∕ → / ) DIVISION SLASH → SOLIDUS #
+2044 ; 002F ; MA #* ( ⁄ → / ) FRACTION SLASH → SOLIDUS #
+2571 ; 002F ; MA #* ( ╱ → / ) BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO
LOWER LEFT → SOLIDUS #
+27CB ; 002F ; MA #* ( ⟋ → / ) MATHEMATICAL RISING DIAGONAL → SOLIDUS
#
+29F8 ; 002F ; MA #* ( ⧸ → / ) BIG SOLIDUS → SOLIDUS #
+1D23A ; 002F ; MA #* ( 𝈺 → / ) GREEK INSTRUMENTAL NOTATION
SYMBOL-47 → SOLIDUS #
+31D3 ; 002F ; MA #* ( ㇓ → / ) CJK STROKE SP → SOLIDUS # →⼃→
+3033 ; 002F ; MA # ( 〳 → / ) VERTICAL KANA REPEAT MARK UPPER HALF →
SOLIDUS #
+2CC6 ; 002F ; MA # ( Ⳇ → / ) COPTIC CAPITAL LETTER OLD COPTIC ESH →
SOLIDUS #
+30CE ; 002F ; MA # ( ノ → / ) KATAKANA LETTER NO → SOLIDUS # →⼃→
+4E3F ; 002F ; MA # ( 丿 → / ) CJK UNIFIED IDEOGRAPH-4E3F → SOLIDUS
# →⼃→
+2F03 ; 002F ; MA #* ( ⼃ → / ) KANGXI RADICAL SLASH → SOLIDUS #
+
+29F6 ; 002F 0304 ; MA #* ( ⧶ → /̄ ) SOLIDUS WITH OVERBAR → SOLIDUS,
COMBINING MACRON #
+
+2AFD ; 002F 002F ; MA #* ( ⫽ → // ) DOUBLE SOLIDUS OPERATOR →
SOLIDUS, SOLIDUS #
+
+2AFB ; 002F 002F 002F ; MA #* ( ⫻ → /// ) TRIPLE SOLIDUS BINARY
RELATION → SOLIDUS, SOLIDUS, SOLIDUS #
+
+FF3C ; 005C ; MA #* ( \ → \ ) FULLWIDTH REVERSE SOLIDUS → REVERSE
SOLIDUS # →∖→
+FE68 ; 005C ; MA #* ( ﹨ → \ ) SMALL REVERSE SOLIDUS → REVERSE SOLIDUS
# →∖→
+2216 ; 005C ; MA #* ( ∖ → \ ) SET MINUS → REVERSE SOLIDUS #
+27CD ; 005C ; MA #* ( ⟍ → \ ) MATHEMATICAL FALLING DIAGONAL → REVERSE
SOLIDUS #
+29F5 ; 005C ; MA #* ( ⧵ → \ ) REVERSE SOLIDUS OPERATOR → REVERSE SOLIDUS
#
+29F9 ; 005C ; MA #* ( ⧹ → \ ) BIG REVERSE SOLIDUS → REVERSE SOLIDUS
#
+1D20F ; 005C ; MA #* ( 𝈏 → \ ) GREEK VOCAL NOTATION SYMBOL-16 →
REVERSE SOLIDUS #
+1D23B ; 005C ; MA #* ( 𝈻 → \ ) GREEK INSTRUMENTAL NOTATION
SYMBOL-48 → REVERSE SOLIDUS # →𝈏→
+31D4 ; 005C ; MA #* ( ㇔ → \ ) CJK STROKE D → REVERSE SOLIDUS # →⼂→
+4E36 ; 005C ; MA # ( 丶 → \ ) CJK UNIFIED IDEOGRAPH-4E36 → REVERSE
SOLIDUS # →⼂→
+2F02 ; 005C ; MA #* ( ⼂ → \ ) KANGXI RADICAL DOT → REVERSE SOLIDUS
#
+
+2CF9 ; 005C 005C ; MA #* ( ⳹ → \\ ) COPTIC OLD NUBIAN FULL STOP →
REVERSE SOLIDUS, REVERSE SOLIDUS #
+244A ; 005C 005C ; MA #* ( ⑊ → \\ ) OCR DOUBLE BACKSLASH → REVERSE
SOLIDUS, REVERSE SOLIDUS #
+
+27C8 ; 005C 1455 ; MA #* ( ⟈ → \ᑕ ) REVERSE SOLIDUS PRECEDING SUBSET
→ REVERSE SOLIDUS, CANADIAN SYLLABICS TA # →\⊂→
+
+A778 ; 0026 ; MA # ( ꝸ → & ) LATIN SMALL LETTER UM → AMPERSAND #
+
+0AF0 ; 0970 ; MA #* ( ૰ → ॰ ) GUJARATI ABBREVIATION SIGN → DEVANAGARI
ABBREVIATION SIGN #
+110BB ; 0970 ; MA #* ( 𑂻 → ॰ ) KAITHI ABBREVIATION SIGN →
DEVANAGARI ABBREVIATION SIGN #
+111C7 ; 0970 ; MA #* ( 𑇇 → ॰ ) SHARADA ABBREVIATION SIGN →
DEVANAGARI ABBREVIATION SIGN #
+26AC ; 0970 ; MA #* ( ⚬ → ॰ ) MEDIUM SMALL WHITE CIRCLE → DEVANAGARI
ABBREVIATION SIGN #
+
+111DB ; A8FC ; MA #* ( 𑇛 → ꣼ ) SHARADA SIGN SIDDHAM → DEVANAGARI
SIGN SIDDHAM #
+
+17D9 ; 0E4F ; MA #* ( ៙ → ๏ ) KHMER SIGN PHNAEK MUAN → THAI CHARACTER
FONGMAN #
+
+17D5 ; 0E5A ; MA #* ( ៕ → ๚ ) KHMER SIGN BARIYOOSAN → THAI CHARACTER
ANGKHANKHU #
+
+17DA ; 0E5B ; MA #* ( ៚ → ๛ ) KHMER SIGN KOOMUUT → THAI CHARACTER KHOMUT
#
+
+0F0C ; 0F0B ; MA #* ( ༌ → ་ ) TIBETAN MARK DELIMITER TSHEG BSTAR →
TIBETAN MARK INTERSYLLABIC TSHEG #
+
+0F0E ; 0F0D 0F0D ; MA #* ( ༎ → །། ) TIBETAN MARK NYIS SHAD → TIBETAN
MARK SHAD, TIBETAN MARK SHAD #
+
+02C4 ; 005E ; MA #* ( ˄ → ^ ) MODIFIER LETTER UP ARROWHEAD → CIRCUMFLEX
ACCENT #
+02C6 ; 005E ; MA # ( ˆ → ^ ) MODIFIER LETTER CIRCUMFLEX ACCENT →
CIRCUMFLEX ACCENT #
+
+A67E ; 02C7 ; MA #* ( ꙾ → ˇ ) CYRILLIC KAVYKA → CARON # →˘→
+02D8 ; 02C7 ; MA #* ( ˘ → ˇ ) BREVE → CARON #
+
+203E ; 02C9 ; MA #* ( ‾ → ˉ ) OVERLINE → MODIFIER LETTER MACRON #
+FE49 ; 02C9 ; MA #* ( ﹉ → ˉ ) DASHED OVERLINE → MODIFIER LETTER MACRON
# →‾→
+FE4A ; 02C9 ; MA #* ( ﹊ → ˉ ) CENTRELINE OVERLINE → MODIFIER LETTER
MACRON # →‾→
+FE4B ; 02C9 ; MA #* ( ﹋ → ˉ ) WAVY OVERLINE → MODIFIER LETTER MACRON
# →‾→
+FE4C ; 02C9 ; MA #* ( ﹌ → ˉ ) DOUBLE WAVY OVERLINE → MODIFIER LETTER
MACRON # →‾→
+00AF ; 02C9 ; MA #* ( ¯ → ˉ ) MACRON → MODIFIER LETTER MACRON #
+FFE3 ; 02C9 ; MA #* (  ̄ → ˉ ) FULLWIDTH MACRON → MODIFIER LETTER MACRON
# →‾→
+2594 ; 02C9 ; MA #* ( ▔ → ˉ ) UPPER ONE EIGHTH BLOCK → MODIFIER LETTER
MACRON # →¯→
+
+044A ; 02C9 0062 ; MA # ( ъ → ˉb ) CYRILLIC SMALL LETTER HARD SIGN →
MODIFIER LETTER MACRON, LATIN SMALL LETTER B # →¯b→
+
+A651 ; 02C9 0062 0069 ; MA # ( ꙑ → ˉbi ) CYRILLIC SMALL LETTER
YERU WITH BACK YER → MODIFIER LETTER MACRON, LATIN SMALL LETTER B, LATIN SMALL
LETTER I # →ъı→
+
+0375 ; 02CF ; MA #* ( ͵ → ˏ ) GREEK LOWER NUMERAL SIGN → MODIFIER LETTER
LOW ACUTE ACCENT #
+
+02FB ; 02EA ; MA #* ( ˻ → ˪ ) MODIFIER LETTER BEGIN LOW TONE → MODIFIER
LETTER YIN DEPARTING TONE MARK #
+A716 ; 02EA ; MA #* ( ꜖ → ˪ ) MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE
BAR → MODIFIER LETTER YIN DEPARTING TONE MARK #
+
+A714 ; 02EB ; MA #* ( ꜔ → ˫ ) MODIFIER LETTER MID LEFT-STEM TONE BAR →
MODIFIER LETTER YANG DEPARTING TONE MARK #
+
+3002 ; 02F3 ; MA #* ( 。 → ˳ ) IDEOGRAPHIC FULL STOP → MODIFIER LETTER
LOW RING #
+
+2E30 ; 00B0 ; MA #* ( ⸰ → ° ) RING POINT → DEGREE SIGN # →∘→
+02DA ; 00B0 ; MA #* ( ˚ → ° ) RING ABOVE → DEGREE SIGN #
+2218 ; 00B0 ; MA #* ( ∘ → ° ) RING OPERATOR → DEGREE SIGN #
+25CB ; 00B0 ; MA #* ( ○ → ° ) WHITE CIRCLE → DEGREE SIGN # →◦→→∘→
+25E6 ; 00B0 ; MA #* ( ◦ → ° ) WHITE BULLET → DEGREE SIGN # →∘→
+
+235C ; 00B0 0332 ; MA #* ( ⍜ → °̲ ) APL FUNCTIONAL SYMBOL CIRCLE
UNDERBAR → DEGREE SIGN, COMBINING LOW LINE # →○̲→→∘̲→
+
+2364 ; 00B0 0308 ; MA #* ( ⍤ → °̈ ) APL FUNCTIONAL SYMBOL JOT
DIAERESIS → DEGREE SIGN, COMBINING DIAERESIS # →◦̈→→∘̈→
+
+2103 ; 00B0 0043 ; MA #* ( ℃ → °C ) DEGREE CELSIUS → DEGREE SIGN,
LATIN CAPITAL LETTER C #
+
+2109 ; 00B0 0046 ; MA #* ( ℉ → °F ) DEGREE FAHRENHEIT → DEGREE SIGN,
LATIN CAPITAL LETTER F #
+
+0BF5 ; 0BF3 ; MA #* ( ௵ → ௳ ) TAMIL YEAR SIGN → TAMIL DAY SIGN #
+
+0F1B ; 0F1A 0F1A ; MA #* ( ༛ → ༚༚ ) TIBETAN SIGN RDEL DKAR GNYIS →
TIBETAN SIGN RDEL DKAR GCIG, TIBETAN SIGN RDEL DKAR GCIG #
+
+0F1F ; 0F1A 0F1D ; MA #* ( ༟ → ༚༝ ) TIBETAN SIGN RDEL DKAR RDEL NAG →
TIBETAN SIGN RDEL DKAR GCIG, TIBETAN SIGN RDEL NAG GCIG #
+
+0FCE ; 0F1D 0F1A ; MA #* ( ࿎ → ༝༚ ) TIBETAN SIGN RDEL NAG RDEL DKAR →
TIBETAN SIGN RDEL NAG GCIG, TIBETAN SIGN RDEL DKAR GCIG #
+
+0F1E ; 0F1D 0F1D ; MA #* ( ༞ → ༝༝ ) TIBETAN SIGN RDEL NAG GNYIS →
TIBETAN SIGN RDEL NAG GCIG, TIBETAN SIGN RDEL NAG GCIG #
+
+24B8 ; 00A9 ; MA #* ( Ⓒ → © ) CIRCLED LATIN CAPITAL LETTER C → COPYRIGHT
SIGN #
+
+24C7 ; 00AE ; MA #* ( Ⓡ → ® ) CIRCLED LATIN CAPITAL LETTER R →
REGISTERED SIGN #
+
+24C5 ; 2117 ; MA #* ( Ⓟ → ℗ ) CIRCLED LATIN CAPITAL LETTER P → SOUND
RECORDING COPYRIGHT #
+
+1D21B ; 2144 ; MA #* ( 𝈛 → ⅄ ) GREEK VOCAL NOTATION SYMBOL-53 →
TURNED SANS-SERIF CAPITAL Y #
+
+2BEC ; 219E ; MA #* ( ⯬ → ↞ ) LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE
ARROWHEADS → LEFTWARDS TWO HEADED ARROW #
+
+2BED ; 219F ; MA #* ( ⯭ → ↟ ) UPWARDS TWO-HEADED ARROW WITH TRIANGLE
ARROWHEADS → UPWARDS TWO HEADED ARROW #
+
+2BEE ; 21A0 ; MA #* ( ⯮ → ↠ ) RIGHTWARDS TWO-HEADED ARROW WITH TRIANGLE
ARROWHEADS → RIGHTWARDS TWO HEADED ARROW #
+
+2BEF ; 21A1 ; MA #* ( ⯯ → ↡ ) DOWNWARDS TWO-HEADED ARROW WITH TRIANGLE
ARROWHEADS → DOWNWARDS TWO HEADED ARROW #
+
+21B5 ; 21B2 ; MA #* ( ↵ → ↲ ) DOWNWARDS ARROW WITH CORNER LEFTWARDS →
DOWNWARDS ARROW WITH TIP LEFTWARDS #
+
+2965 ; 21C3 21C2 ; MA #* ( ⥥ → ⇃⇂ ) DOWNWARDS HARPOON WITH BARB LEFT
BESIDE DOWNWARDS HARPOON WITH BARB RIGHT → DOWNWARDS HARPOON WITH BARB
LEFTWARDS, DOWNWARDS HARPOON WITH BARB RIGHTWARDS #
+
+296F ; 21C3 16DA ; MA #* ( ⥯ → ⇃ᛚ ) DOWNWARDS HARPOON WITH BARB LEFT
BESIDE UPWARDS HARPOON WITH BARB RIGHT → DOWNWARDS HARPOON WITH BARB LEFTWARDS,
RUNIC LETTER LAUKAZ LAGU LOGR L # →⇃↾→
+
+1D6DB ; 2202 ; MA #* ( 𝛛 → ∂ ) MATHEMATICAL BOLD PARTIAL
DIFFERENTIAL → PARTIAL DIFFERENTIAL #
+1D715 ; 2202 ; MA #* ( 𝜕 → ∂ ) MATHEMATICAL ITALIC PARTIAL
DIFFERENTIAL → PARTIAL DIFFERENTIAL #
+1D74F ; 2202 ; MA #* ( 𝝏 → ∂ ) MATHEMATICAL BOLD ITALIC PARTIAL
DIFFERENTIAL → PARTIAL DIFFERENTIAL #
+1D789 ; 2202 ; MA #* ( 𝞉 → ∂ ) MATHEMATICAL SANS-SERIF BOLD
PARTIAL DIFFERENTIAL → PARTIAL DIFFERENTIAL #
+1D7C3 ; 2202 ; MA #* ( 𝟃 → ∂ ) MATHEMATICAL SANS-SERIF BOLD
ITALIC PARTIAL DIFFERENTIAL → PARTIAL DIFFERENTIAL #
+1E8CC ; 2202 ; MA #* ( 𞣌 → ∂ ) MENDE KIKAKUI DIGIT SIX →
PARTIAL DIFFERENTIAL #
+
+1E8CD ; 2202 0335 ; MA #* ( 𞣍 → ∂̵ ) MENDE KIKAKUI DIGIT
SEVEN → PARTIAL DIFFERENTIAL, COMBINING SHORT STROKE OVERLAY # →ð→
+00F0 ; 2202 0335 ; MA # ( ð → ∂̵ ) LATIN SMALL LETTER ETH → PARTIAL
DIFFERENTIAL, COMBINING SHORT STROKE OVERLAY #
+
+2300 ; 2205 ; MA #* ( ⌀ → ∅ ) DIAMETER SIGN → EMPTY SET #
+
+1D6C1 ; 2207 ; MA #* ( 𝛁 → ∇ ) MATHEMATICAL BOLD NABLA → NABLA
#
+1D6FB ; 2207 ; MA #* ( 𝛻 → ∇ ) MATHEMATICAL ITALIC NABLA → NABLA
#
+1D735 ; 2207 ; MA #* ( 𝜵 → ∇ ) MATHEMATICAL BOLD ITALIC NABLA →
NABLA #
+1D76F ; 2207 ; MA #* ( 𝝯 → ∇ ) MATHEMATICAL SANS-SERIF BOLD NABLA
→ NABLA #
+1D7A9 ; 2207 ; MA #* ( 𝞩 → ∇ ) MATHEMATICAL SANS-SERIF BOLD
ITALIC NABLA → NABLA #
+118A8 ; 2207 ; MA # ( 𑢨 → ∇ ) WARANG CITI CAPITAL LETTER E →
NABLA #
+
+2362 ; 2207 0308 ; MA #* ( ⍢ → ∇̈ ) APL FUNCTIONAL SYMBOL DEL
DIAERESIS → NABLA, COMBINING DIAERESIS #
+
+236B ; 2207 0334 ; MA #* ( ⍫ → ∇̴ ) APL FUNCTIONAL SYMBOL DEL TILDE →
NABLA, COMBINING TILDE OVERLAY #
+
+2588 ; 220E ; MA #* ( █ → ∎ ) FULL BLOCK → END OF PROOF # →■→
+25A0 ; 220E ; MA #* ( ■ → ∎ ) BLACK SQUARE → END OF PROOF #
+
+2A3F ; 2210 ; MA #* ( ⨿ → ∐ ) AMALGAMATION OR COPRODUCT → N-ARY
COPRODUCT #
+
+16ED ; 002B ; MA #* ( ᛭ → + ) RUNIC CROSS PUNCTUATION → PLUS SIGN
#
+2795 ; 002B ; MA #* ( ➕ → + ) HEAVY PLUS SIGN → PLUS SIGN #
+1029B ; 002B ; MA # ( 𐊛 → + ) LYCIAN LETTER H → PLUS SIGN #
+
+2A23 ; 002B 0302 ; MA #* ( ⨣ → +̂ ) PLUS SIGN WITH CIRCUMFLEX ACCENT
ABOVE → PLUS SIGN, COMBINING CIRCUMFLEX ACCENT #
+
+2A22 ; 002B 030A ; MA #* ( ⨢ → +̊ ) PLUS SIGN WITH SMALL CIRCLE ABOVE
→ PLUS SIGN, COMBINING RING ABOVE #
+
+2A24 ; 002B 0303 ; MA #* ( ⨤ → +̃ ) PLUS SIGN WITH TILDE ABOVE → PLUS
SIGN, COMBINING TILDE #
+
+2214 ; 002B 0307 ; MA #* ( ∔ → +̇ ) DOT PLUS → PLUS SIGN, COMBINING
DOT ABOVE #
+
+2A25 ; 002B 0323 ; MA #* ( ⨥ → +̣ ) PLUS SIGN WITH DOT BELOW → PLUS
SIGN, COMBINING DOT BELOW #
+
+2A26 ; 002B 0330 ; MA #* ( ⨦ → +̰ ) PLUS SIGN WITH TILDE BELOW → PLUS
SIGN, COMBINING TILDE BELOW #
+
+2A27 ; 002B 2082 ; MA #* ( ⨧ → +₂ ) PLUS SIGN WITH SUBSCRIPT TWO →
PLUS SIGN, SUBSCRIPT TWO #
+
+2797 ; 00F7 ; MA #* ( ➗ → ÷ ) HEAVY DIVISION SIGN → DIVISION SIGN
#
+
+2039 ; 003C ; MA #* ( ‹ → < ) SINGLE LEFT-POINTING ANGLE QUOTATION MARK
→ LESS-THAN SIGN #
+276E ; 003C ; MA #* ( ❮ → < ) HEAVY LEFT-POINTING ANGLE QUOTATION MARK
ORNAMENT → LESS-THAN SIGN # →‹→
+02C2 ; 003C ; MA #* ( ˂ → < ) MODIFIER LETTER LEFT ARROWHEAD → LESS-THAN
SIGN #
+1D236 ; 003C ; MA #* ( 𝈶 → < ) GREEK INSTRUMENTAL NOTATION
SYMBOL-40 → LESS-THAN SIGN #
+1438 ; 003C ; MA # ( ᐸ → < ) CANADIAN SYLLABICS PA → LESS-THAN SIGN
#
+16B2 ; 003C ; MA # ( ᚲ → < ) RUNIC LETTER KAUNA → LESS-THAN SIGN #
+
+22D6 ; 003C 00B7 ; MA #* ( ⋖ → <· ) LESS-THAN WITH DOT → LESS-THAN
SIGN, MIDDLE DOT # →ᑅ→→ᐸᐧ→
+2CB4 ; 003C 00B7 ; MA # ( Ⲵ → <· ) COPTIC CAPITAL LETTER OLD COPTIC
AIN → LESS-THAN SIGN, MIDDLE DOT # →ᑅ→→ᐸᐧ→
+1445 ; 003C 00B7 ; MA # ( ᑅ → <· ) CANADIAN SYLLABICS WEST-CREE PWA →
LESS-THAN SIGN, MIDDLE DOT # →ᐸᐧ→
+
+226A ; 003C 003C ; MA #* ( ≪ → << ) MUCH LESS-THAN → LESS-THAN SIGN,
LESS-THAN SIGN #
+
+22D8 ; 003C 003C 003C ; MA #* ( ⋘ → <<< ) VERY MUCH LESS-THAN →
LESS-THAN SIGN, LESS-THAN SIGN, LESS-THAN SIGN #
+
+1400 ; 003D ; MA #* ( ᐀ → = ) CANADIAN SYLLABICS HYPHEN → EQUALS SIGN
#
+2E40 ; 003D ; MA #* ( ⹀ → = ) DOUBLE HYPHEN → EQUALS SIGN #
+30A0 ; 003D ; MA #* ( ゠ → = ) KATAKANA-HIRAGANA DOUBLE HYPHEN → EQUALS
SIGN #
+A4FF ; 003D ; MA #* ( ꓿ → = ) LISU PUNCTUATION FULL STOP → EQUALS SIGN
#
+
+225A ; 003D 0306 ; MA #* ( ≚ → =̆ ) EQUIANGULAR TO → EQUALS SIGN,
COMBINING BREVE # →=̌→
+
+2259 ; 003D 0302 ; MA #* ( ≙ → =̂ ) ESTIMATES → EQUALS SIGN,
COMBINING CIRCUMFLEX ACCENT #
+
+2257 ; 003D 030A ; MA #* ( ≗ → =̊ ) RING EQUAL TO → EQUALS SIGN,
COMBINING RING ABOVE #
+
+2250 ; 003D 0307 ; MA #* ( ≐ → =̇ ) APPROACHES THE LIMIT → EQUALS
SIGN, COMBINING DOT ABOVE #
+
+2251 ; 003D 0307 0323 ; MA #* ( ≑ → =̣̇ ) GEOMETRICALLY EQUAL TO →
EQUALS SIGN, COMBINING DOT ABOVE, COMBINING DOT BELOW # →≐̣→
+
+2A6E ; 003D 20F0 ; MA #* ( ⩮ → =⃰ ) EQUALS WITH ASTERISK → EQUALS
SIGN, COMBINING ASTERISK ABOVE #
+
+2A75 ; 003D 003D ; MA #* ( ⩵ → == ) TWO CONSECUTIVE EQUALS SIGNS →
EQUALS SIGN, EQUALS SIGN #
+
+2A76 ; 003D 003D 003D ; MA #* ( ⩶ → === ) THREE CONSECUTIVE EQUALS
SIGNS → EQUALS SIGN, EQUALS SIGN, EQUALS SIGN #
+
+225E ; 003D 036B ; MA #* ( ≞ → =ͫ ) MEASURED BY → EQUALS SIGN,
COMBINING LATIN SMALL LETTER M #
+
+203A ; 003E ; MA #* ( › → > ) SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
→ GREATER-THAN SIGN #
+276F ; 003E ; MA #* ( ❯ → > ) HEAVY RIGHT-POINTING ANGLE QUOTATION MARK
ORNAMENT → GREATER-THAN SIGN # →›→
+02C3 ; 003E ; MA #* ( ˃ → > ) MODIFIER LETTER RIGHT ARROWHEAD →
GREATER-THAN SIGN #
+1D237 ; 003E ; MA #* ( 𝈷 → > ) GREEK INSTRUMENTAL NOTATION
SYMBOL-42 → GREATER-THAN SIGN #
+1433 ; 003E ; MA # ( ᐳ → > ) CANADIAN SYLLABICS PO → GREATER-THAN SIGN
#
+16F3F ; 003E ; MA # ( 𖼿 → > ) MIAO LETTER ARCHAIC ZZA →
GREATER-THAN SIGN #
+
+1441 ; 003E 00B7 ; MA # ( ᑁ → >· ) CANADIAN SYLLABICS WEST-CREE PWO →
GREATER-THAN SIGN, MIDDLE DOT # →ᐳᐧ→
+
+2AA5 ; 003E 003C ; MA #* ( ⪥ → >< ) GREATER-THAN BESIDE LESS-THAN →
GREATER-THAN SIGN, LESS-THAN SIGN #
+
+226B ; 003E 003E ; MA #* ( ≫ → >> ) MUCH GREATER-THAN → GREATER-THAN
SIGN, GREATER-THAN SIGN #
+2A20 ; 003E 003E ; MA #* ( ⨠ → >> ) Z NOTATION SCHEMA PIPING →
GREATER-THAN SIGN, GREATER-THAN SIGN # →≫→
+
+22D9 ; 003E 003E 003E ; MA #* ( ⋙ → >>> ) VERY MUCH GREATER-THAN →
GREATER-THAN SIGN, GREATER-THAN SIGN, GREATER-THAN SIGN #
+
+2053 ; 007E ; MA #* ( ⁓ → ~ ) SWUNG DASH → TILDE #
+02DC ; 007E ; MA #* ( ˜ → ~ ) SMALL TILDE → TILDE #
+1FC0 ; 007E ; MA #* ( ῀ → ~ ) GREEK PERISPOMENI → TILDE # →˜→
+223C ; 007E ; MA #* ( ∼ → ~ ) TILDE OPERATOR → TILDE #
+
+2368 ; 007E 0308 ; MA #* ( ⍨ → ~̈ ) APL FUNCTIONAL SYMBOL TILDE
DIAERESIS → TILDE, COMBINING DIAERESIS #
+
+2E1E ; 007E 0307 ; MA #* ( ⸞ → ~̇ ) TILDE WITH DOT ABOVE → TILDE,
COMBINING DOT ABOVE # →⩪→→∼̇→→⁓̇→
+2A6A ; 007E 0307 ; MA #* ( ⩪ → ~̇ ) TILDE OPERATOR WITH DOT ABOVE →
TILDE, COMBINING DOT ABOVE # →∼̇→→⁓̇→
+
+2E1F ; 007E 0323 ; MA #* ( ⸟ → ~̣ ) TILDE WITH DOT BELOW → TILDE,
COMBINING DOT BELOW #
+
+1E8C8 ; 2220 ; MA #* ( 𞣈 → ∠ ) MENDE KIKAKUI DIGIT TWO → ANGLE
#
+
+22C0 ; 2227 ; MA #* ( ⋀ → ∧ ) N-ARY LOGICAL AND → LOGICAL AND #
+
+222F ; 222E 222E ; MA #* ( ∯ → ∮∮ ) SURFACE INTEGRAL → CONTOUR
INTEGRAL, CONTOUR INTEGRAL #
+
+2230 ; 222E 222E 222E ; MA #* ( ∰ → ∮∮∮ ) VOLUME INTEGRAL →
CONTOUR INTEGRAL, CONTOUR INTEGRAL, CONTOUR INTEGRAL #
+
+2E2B ; 2234 ; MA #* ( ⸫ → ∴ ) ONE DOT OVER TWO DOTS PUNCTUATION →
THEREFORE #
+
+2E2A ; 2235 ; MA #* ( ⸪ → ∵ ) TWO DOTS OVER ONE DOT PUNCTUATION →
BECAUSE #
+
+2E2C ; 2237 ; MA #* ( ⸬ → ∷ ) SQUARED FOUR DOT PUNCTUATION → PROPORTION
#
+
+111DE ; 2248 ; MA #* ( 𑇞 → ≈ ) SHARADA SECTION MARK-1 → ALMOST
EQUAL TO #
+
+264E ; 224F ; MA #* ( ♎ → ≏ ) LIBRA → DIFFERENCE BETWEEN #
+1F75E ; 224F ; MA #* ( 🝞 → ≏ ) ALCHEMICAL SYMBOL FOR SUBLIMATION
→ DIFFERENCE BETWEEN # →♎→
+
+2263 ; 2261 ; MA #* ( ≣ → ≡ ) STRICTLY EQUIVALENT TO → IDENTICAL TO
#
+
+2A03 ; 228D ; MA #* ( ⨃ → ⊍ ) N-ARY UNION OPERATOR WITH DOT → MULTISET
MULTIPLICATION #
+
+2A04 ; 228E ; MA #* ( ⨄ → ⊎ ) N-ARY UNION OPERATOR WITH PLUS → MULTISET
UNION #
+
+1D238 ; 228F ; MA #* ( 𝈸 → ⊏ ) GREEK INSTRUMENTAL NOTATION
SYMBOL-43 → SQUARE IMAGE OF #
+
+1D239 ; 2290 ; MA #* ( 𝈹 → ⊐ ) GREEK INSTRUMENTAL NOTATION
SYMBOL-45 → SQUARE ORIGINAL OF #
+
+2A05 ; 2293 ; MA #* ( ⨅ → ⊓ ) N-ARY SQUARE INTERSECTION OPERATOR →
SQUARE CAP #
+
+2A06 ; 2294 ; MA #* ( ⨆ → ⊔ ) N-ARY SQUARE UNION OPERATOR → SQUARE CUP
#
+
+2A02 ; 2297 ; MA #* ( ⨂ → ⊗ ) N-ARY CIRCLED TIMES OPERATOR → CIRCLED
TIMES #
+
+235F ; 229B ; MA #* ( ⍟ → ⊛ ) APL FUNCTIONAL SYMBOL CIRCLE STAR →
CIRCLED ASTERISK OPERATOR #
+
+1F771 ; 22A0 ; MA #* ( 🝱 → ⊠ ) ALCHEMICAL SYMBOL FOR MONTH →
SQUARED TIMES #
+
+1F755 ; 22A1 ; MA #* ( 🝕 → ⊡ ) ALCHEMICAL SYMBOL FOR URINE →
SQUARED DOT OPERATOR #
+
+25C1 ; 22B2 ; MA #* ( ◁ → ⊲ ) WHITE LEFT-POINTING TRIANGLE → NORMAL
SUBGROUP OF #
+
+25B7 ; 22B3 ; MA #* ( ▷ → ⊳ ) WHITE RIGHT-POINTING TRIANGLE → CONTAINS
AS NORMAL SUBGROUP #
+
+2363 ; 22C6 0308 ; MA #* ( ⍣ → ⋆̈ ) APL FUNCTIONAL SYMBOL STAR
DIAERESIS → STAR OPERATOR, COMBINING DIAERESIS #
+
+FE34 ; 2307 ; MA # ( ︴ → ⌇ ) PRESENTATION FORM FOR VERTICAL WAVY LOW
LINE → WAVY LINE #
+
+25E0 ; 2312 ; MA #* ( ◠ → ⌒ ) UPPER HALF CIRCLE → ARC #
+
+2A3D ; 2319 ; MA #* ( ⨽ → ⌙ ) RIGHTHAND INTERIOR PRODUCT → TURNED NOT
SIGN #
+
+2325 ; 2324 ; MA #* ( ⌥ → ⌤ ) OPTION KEY → UP ARROWHEAD BETWEEN TWO
HORIZONTAL BARS #
+
+29C7 ; 233B ; MA #* ( ⧇ → ⌻ ) SQUARED SMALL CIRCLE → APL FUNCTIONAL
SYMBOL QUAD JOT #
+
+25CE ; 233E ; MA #* ( ◎ → ⌾ ) BULLSEYE → APL FUNCTIONAL SYMBOL CIRCLE
JOT # →⦾→
+29BE ; 233E ; MA #* ( ⦾ → ⌾ ) CIRCLED WHITE BULLET → APL FUNCTIONAL
SYMBOL CIRCLE JOT #
+
+29C5 ; 2342 ; MA #* ( ⧅ → ⍂ ) SQUARED FALLING DIAGONAL SLASH → APL
FUNCTIONAL SYMBOL QUAD BACKSLASH #
+
+29B0 ; 2349 ; MA #* ( ⦰ → ⍉ ) REVERSED EMPTY SET → APL FUNCTIONAL SYMBOL
CIRCLE BACKSLASH #
+
+23C3 ; 234B ; MA #* ( ⏃ → ⍋ ) DENTISTRY SYMBOL LIGHT VERTICAL WITH
TRIANGLE → APL FUNCTIONAL SYMBOL DELTA STILE #
+
+23C2 ; 234E ; MA #* ( ⏂ → ⍎ ) DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL
WITH CIRCLE → APL FUNCTIONAL SYMBOL DOWN TACK JOT #
+
+23C1 ; 2355 ; MA #* ( ⏁ → ⍕ ) DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL
WITH CIRCLE → APL FUNCTIONAL SYMBOL UP TACK JOT #
+
+23C6 ; 236D ; MA #* ( ⏆ → ⍭ ) DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE →
APL FUNCTIONAL SYMBOL STILE TILDE #
+
+2638 ; 2388 ; MA #* ( ☸ → ⎈ ) WHEEL OF DHARMA → HELM SYMBOL #
+
+FE35 ; 23DC ; MA #* ( ︵ → ⏜ ) PRESENTATION FORM FOR VERTICAL LEFT
PARENTHESIS → TOP PARENTHESIS #
+
+FE36 ; 23DD ; MA #* ( ︶ → ⏝ ) PRESENTATION FORM FOR VERTICAL RIGHT
PARENTHESIS → BOTTOM PARENTHESIS #
+
+FE37 ; 23DE ; MA #* ( ︷ → ⏞ ) PRESENTATION FORM FOR VERTICAL LEFT CURLY
BRACKET → TOP CURLY BRACKET #
+
+FE38 ; 23DF ; MA #* ( ︸ → ⏟ ) PRESENTATION FORM FOR VERTICAL RIGHT CURLY
BRACKET → BOTTOM CURLY BRACKET #
+
+FE39 ; 23E0 ; MA #* ( ︹ → ⏠ ) PRESENTATION FORM FOR VERTICAL LEFT
TORTOISE SHELL BRACKET → TOP TORTOISE SHELL BRACKET #
+
+FE3A ; 23E1 ; MA #* ( ︺ → ⏡ ) PRESENTATION FORM FOR VERTICAL RIGHT
TORTOISE SHELL BRACKET → BOTTOM TORTOISE SHELL BRACKET #
+
+25B1 ; 23E5 ; MA #* ( ▱ → ⏥ ) WHITE PARALLELOGRAM → FLATNESS #
+
+23FC ; 23FB ; MA #* ( ⏼ → ⏻ ) POWER ON-OFF SYMBOL → POWER SYMBOL #
+
+FE31 ; 2502 ; MA #* ( ︱ → │ ) PRESENTATION FORM FOR VERTICAL EM DASH →
BOX DRAWINGS LIGHT VERTICAL # →|→
+FF5C ; 2502 ; MA #* ( | → │ ) FULLWIDTH VERTICAL LINE → BOX DRAWINGS
LIGHT VERTICAL #
+2503 ; 2502 ; MA #* ( ┃ → │ ) BOX DRAWINGS HEAVY VERTICAL → BOX DRAWINGS
LIGHT VERTICAL #
+
+250F ; 250C ; MA #* ( ┏ → ┌ ) BOX DRAWINGS HEAVY DOWN AND RIGHT → BOX
DRAWINGS LIGHT DOWN AND RIGHT #
+
+2523 ; 251C ; MA #* ( ┣ → ├ ) BOX DRAWINGS HEAVY VERTICAL AND RIGHT →
BOX DRAWINGS LIGHT VERTICAL AND RIGHT #
+
+2590 ; 258C ; MA #* ( ▐ → ▌ ) RIGHT HALF BLOCK → LEFT HALF BLOCK #
+
+2597 ; 2596 ; MA #* ( ▗ → ▖ ) QUADRANT LOWER RIGHT → QUADRANT LOWER LEFT
#
+
+259D ; 2598 ; MA #* ( ▝ → ▘ ) QUADRANT UPPER RIGHT → QUADRANT UPPER LEFT
#
+
+2610 ; 25A1 ; MA #* ( ☐ → □ ) BALLOT BOX → WHITE SQUARE #
+
+FFED ; 25AA ; MA #* ( ■ → ▪ ) HALFWIDTH BLACK SQUARE → BLACK SMALL
SQUARE #
+
+25B8 ; 25B6 ; MA #* ( ▸ → ▶ ) BLACK RIGHT-POINTING SMALL TRIANGLE →
BLACK RIGHT-POINTING TRIANGLE # →►→
+25BA ; 25B6 ; MA #* ( ► → ▶ ) BLACK RIGHT-POINTING POINTER → BLACK
RIGHT-POINTING TRIANGLE #
+
+2CE9 ; 2627 ; MA #* ( ⳩ → ☧ ) COPTIC SYMBOL KHI RO → CHI RHO #
+
+1F70A ; 2629 ; MA #* ( 🜊 → ☩ ) ALCHEMICAL SYMBOL FOR VINEGAR →
CROSS OF JERUSALEM #
+
+1F312 ; 263D ; MA #* ( 🌒 → ☽ ) WAXING CRESCENT MOON SYMBOL →
FIRST QUARTER MOON #
+1F319 ; 263D ; MA #* ( 🌙 → ☽ ) CRESCENT MOON → FIRST QUARTER MOON
#
+
+23FE ; 263E ; MA #* ( ⏾ → ☾ ) POWER SLEEP SYMBOL → LAST QUARTER MOON
#
+1F318 ; 263E ; MA #* ( 🌘 → ☾ ) WANING CRESCENT MOON SYMBOL → LAST
QUARTER MOON #
+
+29D9 ; 299A ; MA #* ( ⧙ → ⦚ ) RIGHT WIGGLY FENCE → VERTICAL ZIGZAG LINE
#
+
+1F73A ; 29DF ; MA #* ( 🜺 → ⧟ ) ALCHEMICAL SYMBOL FOR ARSENIC →
DOUBLE-ENDED MULTIMAP #
+
+2A3E ; 2A1F ; MA #* ( ⨾ → ⨟ ) Z NOTATION RELATIONAL COMPOSITION → Z
NOTATION SCHEMA COMPOSITION #
+
+101A0 ; 2CE8 ; MA #* ( 𐆠 → ⳨ ) GREEK SYMBOL TAU RHO → COPTIC
SYMBOL TAU RO #
+
+2669 ; 1D158 1D165 ; MA #* ( ♩ → 𝅘𝅥 ) QUARTER NOTE → MUSICAL SYMBOL
NOTEHEAD BLACK, MUSICAL SYMBOL COMBINING STEM #
+
+266A ; 1D158 1D165 1D16E ; MA #* ( ♪ → 𝅘𝅥𝅮 ) EIGHTH NOTE → MUSICAL
SYMBOL NOTEHEAD BLACK, MUSICAL SYMBOL COMBINING STEM, MUSICAL SYMBOL COMBINING
FLAG-1 #
+
+24EA ; 1F10D ; MA #* ( ⓪ → 🄍 ) CIRCLED DIGIT ZERO → CIRCLED ZERO WITH
SLASH #
+
+21BA ; 1F10E ; MA #* ( ↺ → 🄎 ) ANTICLOCKWISE OPEN CIRCLE ARROW → CIRCLED
ANTICLOCKWISE ARROW #
+
+02D9 ; 0971 ; MA #* ( ˙ → ॱ ) DOT ABOVE → DEVANAGARI SIGN HIGH SPACING
DOT #
+0D4E ; 0971 ; MA # ( ൎ → ॱ ) MALAYALAM LETTER DOT REPH → DEVANAGARI SIGN
HIGH SPACING DOT # →˙→
+
+FF0D ; 30FC ; MA #* ( - → ー ) FULLWIDTH HYPHEN-MINUS → KATAKANA-HIRAGANA
PROLONGED SOUND MARK #
+2014 ; 30FC ; MA #* ( — → ー ) EM DASH → KATAKANA-HIRAGANA PROLONGED
SOUND MARK # →一→
+2015 ; 30FC ; MA #* ( ― → ー ) HORIZONTAL BAR → KATAKANA-HIRAGANA
PROLONGED SOUND MARK # →—→→一→
+2500 ; 30FC ; MA #* ( ─ → ー ) BOX DRAWINGS LIGHT HORIZONTAL →
KATAKANA-HIRAGANA PROLONGED SOUND MARK # →━→→—→→一→
+2501 ; 30FC ; MA #* ( ━ → ー ) BOX DRAWINGS HEAVY HORIZONTAL →
KATAKANA-HIRAGANA PROLONGED SOUND MARK # →—→→一→
+31D0 ; 30FC ; MA #* ( ㇐ → ー ) CJK STROKE H → KATAKANA-HIRAGANA PROLONGED
SOUND MARK # →一→
+A7F7 ; 30FC ; MA # ( ꟷ → ー ) LATIN EPIGRAPHIC LETTER SIDEWAYS I →
KATAKANA-HIRAGANA PROLONGED SOUND MARK # →—→→一→
+1173 ; 30FC ; MA # ( ᅳ → ー ) HANGUL JUNGSEONG EU → KATAKANA-HIRAGANA
PROLONGED SOUND MARK # →ㅡ→→—→→一→
+3161 ; 30FC ; MA # ( ㅡ → ー ) HANGUL LETTER EU → KATAKANA-HIRAGANA
PROLONGED SOUND MARK # →—→→一→
+4E00 ; 30FC ; MA # ( 一 → ー ) CJK UNIFIED IDEOGRAPH-4E00 →
KATAKANA-HIRAGANA PROLONGED SOUND MARK #
+2F00 ; 30FC ; MA #* ( ⼀ → ー ) KANGXI RADICAL ONE → KATAKANA-HIRAGANA
PROLONGED SOUND MARK # →一→
+
+1196 ; 30FC 30FC ; MA # ( ᆖ → ーー ) HANGUL JUNGSEONG EU-EU →
KATAKANA-HIRAGANA PROLONGED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK
# →ᅳᅳ→
+
+D7B9 ; 30FC 1161 ; MA # ( ힹ → ーᅡ ) HANGUL JUNGSEONG EU-A →
KATAKANA-HIRAGANA PROLONGED SOUND MARK, HANGUL JUNGSEONG A # →ᅳᅡ→
+
+D7BA ; 30FC 1165 ; MA # ( ힺ → ーᅥ ) HANGUL JUNGSEONG EU-EO →
KATAKANA-HIRAGANA PROLONGED SOUND MARK, HANGUL JUNGSEONG EO # →ᅳᅥ→
+
+D7BB ; 30FC 1165 4E28 ; MA # ( ힻ → ーᅥ丨 ) HANGUL JUNGSEONG EU-E →
KATAKANA-HIRAGANA PROLONGED SOUND MARK, HANGUL JUNGSEONG EO, CJK UNIFIED
IDEOGRAPH-4E28 # →ᅳᅥᅵ→
+
+D7BC ; 30FC 1169 ; MA # ( ힼ → ーᅩ ) HANGUL JUNGSEONG EU-O →
KATAKANA-HIRAGANA PROLONGED SOUND MARK, HANGUL JUNGSEONG O # →ᅳᅩ→
+
+1195 ; 30FC 116E ; MA # ( ᆕ → ーᅮ ) HANGUL JUNGSEONG EU-U →
KATAKANA-HIRAGANA PROLONGED SOUND MARK, HANGUL JUNGSEONG U # →ᅳᅮ→
+
+1174 ; 30FC 4E28 ; MA # ( ᅴ → ー丨 ) HANGUL JUNGSEONG YI →
KATAKANA-HIRAGANA PROLONGED SOUND MARK, CJK UNIFIED IDEOGRAPH-4E28 # →ᅳᅵ→
+3162 ; 30FC 4E28 ; MA # ( ㅢ → ー丨 ) HANGUL LETTER YI →
KATAKANA-HIRAGANA PROLONGED SOUND MARK, CJK UNIFIED IDEOGRAPH-4E28 #
→ᅴ→→ᅳᅵ→
+
+1197 ; 30FC 4E28 116E ; MA # ( ᆗ → ー丨ᅮ ) HANGUL JUNGSEONG YI-U →
KATAKANA-HIRAGANA PROLONGED SOUND MARK, CJK UNIFIED IDEOGRAPH-4E28, HANGUL
JUNGSEONG U # →ᅳᅵᅮ→
+
+1F10F ; 0024 20E0 ; MA #* ( 🄏 → $⃠ ) CIRCLED DOLLAR SIGN WITH
OVERLAID BACKSLASH → DOLLAR SIGN, COMBINING ENCLOSING CIRCLE BACKSLASH #
+
+20A4 ; 00A3 ; MA #* ( ₤ → £ ) LIRA SIGN → POUND SIGN #
+
+3012 ; 20B8 ; MA #* ( 〒 → ₸ ) POSTAL MARK → TENGE SIGN #
+3036 ; 20B8 ; MA #* ( 〶 → ₸ ) CIRCLED POSTAL MARK → TENGE SIGN # →〒→
+
+1B5C ; 1B50 ; MA #* ( ᭜ → ᭐ ) BALINESE WINDU → BALINESE DIGIT ZERO
#
+
+A9C6 ; A9D0 ; MA #* ( ꧆ → ꧐ ) JAVANESE PADA WINDU → JAVANESE DIGIT ZERO
#
+
+114D1 ; 09E7 ; MA # ( 𑓑 → ১ ) TIRHUTA DIGIT ONE → BENGALI DIGIT
ONE #
+
+0CE7 ; 0C67 ; MA # ( ೧ → ౧ ) KANNADA DIGIT ONE → TELUGU DIGIT ONE
#
+
+1065 ; 1041 ; MA # ( ၥ → ၁ ) MYANMAR LETTER WESTERN PWO KAREN THA →
MYANMAR DIGIT ONE #
+
+2460 ; 2780 ; MA #* ( ① → ➀ ) CIRCLED DIGIT ONE → DINGBAT CIRCLED
SANS-SERIF DIGIT ONE #
+
+2469 ; 2789 ; MA #* ( ⑩ → ➉ ) CIRCLED NUMBER TEN → DINGBAT CIRCLED
SANS-SERIF NUMBER TEN #
+
+23E8 ; 2081 2080 ; MA #* ( ⏨ → ₁₀ ) DECIMAL EXPONENT SYMBOL →
SUBSCRIPT ONE, SUBSCRIPT ZERO #
+
+1D7D0 ; 0032 ; MA # ( 𝟐 → 2 ) MATHEMATICAL BOLD DIGIT TWO → DIGIT
TWO #
+1D7DA ; 0032 ; MA # ( 𝟚 → 2 ) MATHEMATICAL DOUBLE-STRUCK DIGIT
TWO → DIGIT TWO #
+1D7E4 ; 0032 ; MA # ( 𝟤 → 2 ) MATHEMATICAL SANS-SERIF DIGIT TWO →
DIGIT TWO #
+1D7EE ; 0032 ; MA # ( 𝟮 → 2 ) MATHEMATICAL SANS-SERIF BOLD DIGIT
TWO → DIGIT TWO #
+1D7F8 ; 0032 ; MA # ( 𝟸 → 2 ) MATHEMATICAL MONOSPACE DIGIT TWO →
DIGIT TWO #
+1FBF2 ; 0032 ; MA # ( 🯲 → 2 ) SEGMENTED DIGIT TWO → DIGIT TWO
#
+A75A ; 0032 ; MA # ( Ꝛ → 2 ) LATIN CAPITAL LETTER R ROTUNDA → DIGIT TWO
#
+01A7 ; 0032 ; MA # ( Ƨ → 2 ) LATIN CAPITAL LETTER TONE TWO → DIGIT TWO
#
+03E8 ; 0032 ; MA # ( Ϩ → 2 ) COPTIC CAPITAL LETTER HORI → DIGIT TWO
# →Ƨ→
+A644 ; 0032 ; MA # ( Ꙅ → 2 ) CYRILLIC CAPITAL LETTER REVERSED DZE →
DIGIT TWO # →Ƨ→
+14BF ; 0032 ; MA # ( ᒿ → 2 ) CANADIAN SYLLABICS SAYISI M → DIGIT TWO
#
+A6EF ; 0032 ; MA # ( ꛯ → 2 ) BAMUM LETTER KOGHOM → DIGIT TWO # →Ƨ→
+
+A9CF ; 0662 ; MA # ( ꧏ → ٢ ) JAVANESE PANGRANGKEP → ARABIC-INDIC DIGIT
TWO #
+06F2 ; 0662 ; MA # ( ۲ → ٢ ) EXTENDED ARABIC-INDIC DIGIT TWO →
ARABIC-INDIC DIGIT TWO #
+
+0AE8 ; 0968 ; MA # ( ૨ → २ ) GUJARATI DIGIT TWO → DEVANAGARI DIGIT TWO
#
+
+114D2 ; 09E8 ; MA # ( 𑓒 → ২ ) TIRHUTA DIGIT TWO → BENGALI DIGIT
TWO #
+
+0CE8 ; 0C68 ; MA # ( ೨ → ౨ ) KANNADA DIGIT TWO → TELUGU DIGIT TWO
#
+
+2461 ; 2781 ; MA #* ( ② → ➁ ) CIRCLED DIGIT TWO → DINGBAT CIRCLED
SANS-SERIF DIGIT TWO #
+
+01BB ; 0032 0335 ; MA # ( ƻ → 2̵ ) LATIN LETTER TWO WITH STROKE →
DIGIT TWO, COMBINING SHORT STROKE OVERLAY #
+
+1F103 ; 0032 002C ; MA #* ( 🄃 → 2, ) DIGIT TWO COMMA → DIGIT
TWO, COMMA #
+
+2489 ; 0032 002E ; MA #* ( ⒉ → 2. ) DIGIT TWO FULL STOP → DIGIT TWO,
FULL STOP #
+
+33F5 ; 0032 0032 65E5 ; MA #* ( ㏵ → 22日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY TWENTY-TWO → DIGIT TWO, DIGIT TWO, CJK UNIFIED IDEOGRAPH-65E5
#
+
+336E ; 0032 0032 70B9 ; MA #* ( ㍮ → 22点 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR HOUR TWENTY-TWO → DIGIT TWO, DIGIT TWO, CJK UNIFIED IDEOGRAPH-70B9
#
+
+33F6 ; 0032 0033 65E5 ; MA #* ( ㏶ → 23日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY TWENTY-THREE → DIGIT TWO, DIGIT THREE, CJK UNIFIED
IDEOGRAPH-65E5 #
+
+336F ; 0032 0033 70B9 ; MA #* ( ㍯ → 23点 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR HOUR TWENTY-THREE → DIGIT TWO, DIGIT THREE, CJK UNIFIED
IDEOGRAPH-70B9 #
+
+33F7 ; 0032 0034 65E5 ; MA #* ( ㏷ → 24日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY TWENTY-FOUR → DIGIT TWO, DIGIT FOUR, CJK UNIFIED IDEOGRAPH-65E5
#
+
+3370 ; 0032 0034 70B9 ; MA #* ( ㍰ → 24点 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR HOUR TWENTY-FOUR → DIGIT TWO, DIGIT FOUR, CJK UNIFIED IDEOGRAPH-70B9
#
+
+33F8 ; 0032 0035 65E5 ; MA #* ( ㏸ → 25日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY TWENTY-FIVE → DIGIT TWO, DIGIT FIVE, CJK UNIFIED IDEOGRAPH-65E5
#
+
+33F9 ; 0032 0036 65E5 ; MA #* ( ㏹ → 26日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY TWENTY-SIX → DIGIT TWO, DIGIT SIX, CJK UNIFIED IDEOGRAPH-65E5
#
+
+33FA ; 0032 0037 65E5 ; MA #* ( ㏺ → 27日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY TWENTY-SEVEN → DIGIT TWO, DIGIT SEVEN, CJK UNIFIED
IDEOGRAPH-65E5 #
+
+33FB ; 0032 0038 65E5 ; MA #* ( ㏻ → 28日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY TWENTY-EIGHT → DIGIT TWO, DIGIT EIGHT, CJK UNIFIED
IDEOGRAPH-65E5 #
+
+33FC ; 0032 0039 65E5 ; MA #* ( ㏼ → 29日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY TWENTY-NINE → DIGIT TWO, DIGIT NINE, CJK UNIFIED IDEOGRAPH-65E5
#
+
+33F4 ; 0032 006C 65E5 ; MA #* ( ㏴ → 2l日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY TWENTY-ONE → DIGIT TWO, LATIN SMALL LETTER L, CJK UNIFIED
IDEOGRAPH-65E5 # →21日→
+
+336D ; 0032 006C 70B9 ; MA #* ( ㍭ → 2l点 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR HOUR TWENTY-ONE → DIGIT TWO, LATIN SMALL LETTER L, CJK UNIFIED
IDEOGRAPH-70B9 # →21点→
+
+249B ; 0032 004F 002E ; MA #* ( ⒛ → 2O. ) NUMBER TWENTY FULL STOP
→ DIGIT TWO, LATIN CAPITAL LETTER O, FULL STOP # →20.→
+
+33F3 ; 0032 004F 65E5 ; MA #* ( ㏳ → 2O日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY TWENTY → DIGIT TWO, LATIN CAPITAL LETTER O, CJK UNIFIED
IDEOGRAPH-65E5 # →20日→
+
+336C ; 0032 004F 70B9 ; MA #* ( ㍬ → 2O点 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR HOUR TWENTY → DIGIT TWO, LATIN CAPITAL LETTER O, CJK UNIFIED
IDEOGRAPH-70B9 # →20点→
+
+0DE9 ; 0DE8 0DCF ; MA # ( ෩ → ෨ා ) SINHALA LITH DIGIT THREE → SINHALA
LITH DIGIT TWO, SINHALA VOWEL SIGN AELA-PILLA #
+
+0DEF ; 0DE8 0DD3 ; MA # ( ෯ → ෨ී ) SINHALA LITH DIGIT NINE → SINHALA
LITH DIGIT TWO, SINHALA VOWEL SIGN DIGA IS-PILLA #
+
+33E1 ; 0032 65E5 ; MA #* ( ㏡ → 2日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
DAY TWO → DIGIT TWO, CJK UNIFIED IDEOGRAPH-65E5 #
+
+32C1 ; 0032 6708 ; MA #* ( ㋁ → 2月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
FEBRUARY → DIGIT TWO, CJK UNIFIED IDEOGRAPH-6708 #
+
+335A ; 0032 70B9 ; MA #* ( ㍚ → 2点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
HOUR TWO → DIGIT TWO, CJK UNIFIED IDEOGRAPH-70B9 #
+
+1D206 ; 0033 ; MA #* ( 𝈆 → 3 ) GREEK VOCAL NOTATION SYMBOL-7 →
DIGIT THREE #
+1D7D1 ; 0033 ; MA # ( 𝟑 → 3 ) MATHEMATICAL BOLD DIGIT THREE →
DIGIT THREE #
+1D7DB ; 0033 ; MA # ( 𝟛 → 3 ) MATHEMATICAL DOUBLE-STRUCK DIGIT
THREE → DIGIT THREE #
+1D7E5 ; 0033 ; MA # ( 𝟥 → 3 ) MATHEMATICAL SANS-SERIF DIGIT THREE
→ DIGIT THREE #
+1D7EF ; 0033 ; MA # ( 𝟯 → 3 ) MATHEMATICAL SANS-SERIF BOLD DIGIT
THREE → DIGIT THREE #
+1D7F9 ; 0033 ; MA # ( 𝟹 → 3 ) MATHEMATICAL MONOSPACE DIGIT THREE
→ DIGIT THREE #
+1FBF3 ; 0033 ; MA # ( 🯳 → 3 ) SEGMENTED DIGIT THREE → DIGIT THREE
#
+A7AB ; 0033 ; MA # ( Ɜ → 3 ) LATIN CAPITAL LETTER REVERSED OPEN E →
DIGIT THREE #
+021C ; 0033 ; MA # ( Ȝ → 3 ) LATIN CAPITAL LETTER YOGH → DIGIT THREE
# →Ʒ→
+01B7 ; 0033 ; MA # ( Ʒ → 3 ) LATIN CAPITAL LETTER EZH → DIGIT THREE
#
+A76A ; 0033 ; MA # ( Ꝫ → 3 ) LATIN CAPITAL LETTER ET → DIGIT THREE
#
+2CCC ; 0033 ; MA # ( Ⳍ → 3 ) COPTIC CAPITAL LETTER OLD COPTIC HORI →
DIGIT THREE # →Ȝ→→Ʒ→
+0417 ; 0033 ; MA # ( З → 3 ) CYRILLIC CAPITAL LETTER ZE → DIGIT THREE
#
+04E0 ; 0033 ; MA # ( Ӡ → 3 ) CYRILLIC CAPITAL LETTER ABKHASIAN DZE →
DIGIT THREE # →Ʒ→
+16F3B ; 0033 ; MA # ( 𖼻 → 3 ) MIAO LETTER ZA → DIGIT THREE
# →Ʒ→
+118CA ; 0033 ; MA # ( 𑣊 → 3 ) WARANG CITI SMALL LETTER ANG →
DIGIT THREE #
+
+06F3 ; 0663 ; MA # ( ۳ → ٣ ) EXTENDED ARABIC-INDIC DIGIT THREE →
ARABIC-INDIC DIGIT THREE #
+1E8C9 ; 0663 ; MA #* ( 𞣉 → ٣ ) MENDE KIKAKUI DIGIT THREE →
ARABIC-INDIC DIGIT THREE #
+
+0AE9 ; 0969 ; MA # ( ૩ → ३ ) GUJARATI DIGIT THREE → DEVANAGARI DIGIT
THREE #
+
+2462 ; 2782 ; MA #* ( ③ → ➂ ) CIRCLED DIGIT THREE → DINGBAT CIRCLED
SANS-SERIF DIGIT THREE #
+
+0498 ; 0033 0326 ; MA # ( Ҙ → 3̦ ) CYRILLIC CAPITAL LETTER ZE WITH
DESCENDER → DIGIT THREE, COMBINING COMMA BELOW # →З̧→
+
+1F104 ; 0033 002C ; MA #* ( 🄄 → 3, ) DIGIT THREE COMMA → DIGIT
THREE, COMMA #
+
+248A ; 0033 002E ; MA #* ( ⒊ → 3. ) DIGIT THREE FULL STOP → DIGIT
THREE, FULL STOP #
+
+33FE ; 0033 006C 65E5 ; MA #* ( ㏾ → 3l日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY THIRTY-ONE → DIGIT THREE, LATIN SMALL LETTER L, CJK UNIFIED
IDEOGRAPH-65E5 # →31日→
+
+33FD ; 0033 004F 65E5 ; MA #* ( ㏽ → 3O日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY THIRTY → DIGIT THREE, LATIN CAPITAL LETTER O, CJK UNIFIED
IDEOGRAPH-65E5 # →30日→
+
+33E2 ; 0033 65E5 ; MA #* ( ㏢ → 3日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
DAY THREE → DIGIT THREE, CJK UNIFIED IDEOGRAPH-65E5 #
+
+32C2 ; 0033 6708 ; MA #* ( ㋂ → 3月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
MARCH → DIGIT THREE, CJK UNIFIED IDEOGRAPH-6708 #
+
+335B ; 0033 70B9 ; MA #* ( ㍛ → 3点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
HOUR THREE → DIGIT THREE, CJK UNIFIED IDEOGRAPH-70B9 #
+
+1D7D2 ; 0034 ; MA # ( 𝟒 → 4 ) MATHEMATICAL BOLD DIGIT FOUR →
DIGIT FOUR #
+1D7DC ; 0034 ; MA # ( 𝟜 → 4 ) MATHEMATICAL DOUBLE-STRUCK DIGIT
FOUR → DIGIT FOUR #
+1D7E6 ; 0034 ; MA # ( 𝟦 → 4 ) MATHEMATICAL SANS-SERIF DIGIT FOUR
→ DIGIT FOUR #
+1D7F0 ; 0034 ; MA # ( 𝟰 → 4 ) MATHEMATICAL SANS-SERIF BOLD DIGIT
FOUR → DIGIT FOUR #
+1D7FA ; 0034 ; MA # ( 𝟺 → 4 ) MATHEMATICAL MONOSPACE DIGIT FOUR →
DIGIT FOUR #
+1FBF4 ; 0034 ; MA # ( 🯴 → 4 ) SEGMENTED DIGIT FOUR → DIGIT FOUR
#
+13CE ; 0034 ; MA # ( Ꮞ → 4 ) CHEROKEE LETTER SE → DIGIT FOUR #
+118AF ; 0034 ; MA # ( 𑢯 → 4 ) WARANG CITI CAPITAL LETTER UC →
DIGIT FOUR #
+
+06F4 ; 0664 ; MA # ( ۴ → ٤ ) EXTENDED ARABIC-INDIC DIGIT FOUR →
ARABIC-INDIC DIGIT FOUR #
+
+0AEA ; 096A ; MA # ( ૪ → ४ ) GUJARATI DIGIT FOUR → DEVANAGARI DIGIT FOUR
#
+
+2463 ; 2783 ; MA #* ( ④ → ➃ ) CIRCLED DIGIT FOUR → DINGBAT CIRCLED
SANS-SERIF DIGIT FOUR #
+
+1F105 ; 0034 002C ; MA #* ( 🄅 → 4, ) DIGIT FOUR COMMA → DIGIT
FOUR, COMMA #
+
+248B ; 0034 002E ; MA #* ( ⒋ → 4. ) DIGIT FOUR FULL STOP → DIGIT
FOUR, FULL STOP #
+
+1530 ; 0034 00B7 ; MA # ( ᔰ → 4· ) CANADIAN SYLLABICS WEST-CREE YWE →
DIGIT FOUR, MIDDLE DOT # →4ᐧ→
+
+33E3 ; 0034 65E5 ; MA #* ( ㏣ → 4日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
DAY FOUR → DIGIT FOUR, CJK UNIFIED IDEOGRAPH-65E5 #
+
+32C3 ; 0034 6708 ; MA #* ( ㋃ → 4月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
APRIL → DIGIT FOUR, CJK UNIFIED IDEOGRAPH-6708 #
+
+335C ; 0034 70B9 ; MA #* ( ㍜ → 4点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
HOUR FOUR → DIGIT FOUR, CJK UNIFIED IDEOGRAPH-70B9 #
+
+1D7D3 ; 0035 ; MA # ( 𝟓 → 5 ) MATHEMATICAL BOLD DIGIT FIVE →
DIGIT FIVE #
+1D7DD ; 0035 ; MA # ( 𝟝 → 5 ) MATHEMATICAL DOUBLE-STRUCK DIGIT
FIVE → DIGIT FIVE #
+1D7E7 ; 0035 ; MA # ( 𝟧 → 5 ) MATHEMATICAL SANS-SERIF DIGIT FIVE
→ DIGIT FIVE #
+1D7F1 ; 0035 ; MA # ( 𝟱 → 5 ) MATHEMATICAL SANS-SERIF BOLD DIGIT
FIVE → DIGIT FIVE #
+1D7FB ; 0035 ; MA # ( 𝟻 → 5 ) MATHEMATICAL MONOSPACE DIGIT FIVE →
DIGIT FIVE #
+1FBF5 ; 0035 ; MA # ( 🯵 → 5 ) SEGMENTED DIGIT FIVE → DIGIT FIVE
#
+01BC ; 0035 ; MA # ( Ƽ → 5 ) LATIN CAPITAL LETTER TONE FIVE → DIGIT FIVE
#
+118BB ; 0035 ; MA # ( 𑢻 → 5 ) WARANG CITI CAPITAL LETTER HORR →
DIGIT FIVE #
+
+2464 ; 2784 ; MA #* ( ⑤ → ➄ ) CIRCLED DIGIT FIVE → DINGBAT CIRCLED
SANS-SERIF DIGIT FIVE #
+
+1F106 ; 0035 002C ; MA #* ( 🄆 → 5, ) DIGIT FIVE COMMA → DIGIT
FIVE, COMMA #
+
+248C ; 0035 002E ; MA #* ( ⒌ → 5. ) DIGIT FIVE FULL STOP → DIGIT
FIVE, FULL STOP #
+
+33E4 ; 0035 65E5 ; MA #* ( ㏤ → 5日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
DAY FIVE → DIGIT FIVE, CJK UNIFIED IDEOGRAPH-65E5 #
+
+32C4 ; 0035 6708 ; MA #* ( ㋄ → 5月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
MAY → DIGIT FIVE, CJK UNIFIED IDEOGRAPH-6708 #
+
+335D ; 0035 70B9 ; MA #* ( ㍝ → 5点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
HOUR FIVE → DIGIT FIVE, CJK UNIFIED IDEOGRAPH-70B9 #
+
+1D7D4 ; 0036 ; MA # ( 𝟔 → 6 ) MATHEMATICAL BOLD DIGIT SIX → DIGIT
SIX #
+1D7DE ; 0036 ; MA # ( 𝟞 → 6 ) MATHEMATICAL DOUBLE-STRUCK DIGIT
SIX → DIGIT SIX #
+1D7E8 ; 0036 ; MA # ( 𝟨 → 6 ) MATHEMATICAL SANS-SERIF DIGIT SIX →
DIGIT SIX #
+1D7F2 ; 0036 ; MA # ( 𝟲 → 6 ) MATHEMATICAL SANS-SERIF BOLD DIGIT
SIX → DIGIT SIX #
+1D7FC ; 0036 ; MA # ( 𝟼 → 6 ) MATHEMATICAL MONOSPACE DIGIT SIX →
DIGIT SIX #
+1FBF6 ; 0036 ; MA # ( 🯶 → 6 ) SEGMENTED DIGIT SIX → DIGIT SIX
#
+2CD2 ; 0036 ; MA # ( Ⳓ → 6 ) COPTIC CAPITAL LETTER OLD COPTIC HEI →
DIGIT SIX #
+0431 ; 0036 ; MA # ( б → 6 ) CYRILLIC SMALL LETTER BE → DIGIT SIX
#
+13EE ; 0036 ; MA # ( Ꮾ → 6 ) CHEROKEE LETTER WV → DIGIT SIX #
+118D5 ; 0036 ; MA # ( 𑣕 → 6 ) WARANG CITI SMALL LETTER AT → DIGIT
SIX #
+
+06F6 ; 0666 ; MA # ( ۶ → ٦ ) EXTENDED ARABIC-INDIC DIGIT SIX →
ARABIC-INDIC DIGIT SIX #
+
+114D6 ; 09EC ; MA # ( 𑓖 → ৬ ) TIRHUTA DIGIT SIX → BENGALI DIGIT
SIX #
+
+2465 ; 2785 ; MA #* ( ⑥ → ➅ ) CIRCLED DIGIT SIX → DINGBAT CIRCLED
SANS-SERIF DIGIT SIX #
+
+1F107 ; 0036 002C ; MA #* ( 🄇 → 6, ) DIGIT SIX COMMA → DIGIT
SIX, COMMA #
+
+248D ; 0036 002E ; MA #* ( ⒍ → 6. ) DIGIT SIX FULL STOP → DIGIT SIX,
FULL STOP #
+
+33E5 ; 0036 65E5 ; MA #* ( ㏥ → 6日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
DAY SIX → DIGIT SIX, CJK UNIFIED IDEOGRAPH-65E5 #
+
+32C5 ; 0036 6708 ; MA #* ( ㋅ → 6月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
JUNE → DIGIT SIX, CJK UNIFIED IDEOGRAPH-6708 #
+
+335E ; 0036 70B9 ; MA #* ( ㍞ → 6点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
HOUR SIX → DIGIT SIX, CJK UNIFIED IDEOGRAPH-70B9 #
+
+1D212 ; 0037 ; MA #* ( 𝈒 → 7 ) GREEK VOCAL NOTATION SYMBOL-19 →
DIGIT SEVEN #
+1D7D5 ; 0037 ; MA # ( 𝟕 → 7 ) MATHEMATICAL BOLD DIGIT SEVEN →
DIGIT SEVEN #
+1D7DF ; 0037 ; MA # ( 𝟟 → 7 ) MATHEMATICAL DOUBLE-STRUCK DIGIT
SEVEN → DIGIT SEVEN #
+1D7E9 ; 0037 ; MA # ( 𝟩 → 7 ) MATHEMATICAL SANS-SERIF DIGIT SEVEN
→ DIGIT SEVEN #
+1D7F3 ; 0037 ; MA # ( 𝟳 → 7 ) MATHEMATICAL SANS-SERIF BOLD DIGIT
SEVEN → DIGIT SEVEN #
+1D7FD ; 0037 ; MA # ( 𝟽 → 7 ) MATHEMATICAL MONOSPACE DIGIT SEVEN
→ DIGIT SEVEN #
+1FBF7 ; 0037 ; MA # ( 🯷 → 7 ) SEGMENTED DIGIT SEVEN → DIGIT SEVEN
#
+104D2 ; 0037 ; MA # ( 𐓒 → 7 ) OSAGE CAPITAL LETTER ZA → DIGIT
SEVEN #
+118C6 ; 0037 ; MA # ( 𑣆 → 7 ) WARANG CITI SMALL LETTER II → DIGIT
SEVEN #
+
+2466 ; 2786 ; MA #* ( ⑦ → ➆ ) CIRCLED DIGIT SEVEN → DINGBAT CIRCLED
SANS-SERIF DIGIT SEVEN #
+
+1F108 ; 0037 002C ; MA #* ( 🄈 → 7, ) DIGIT SEVEN COMMA → DIGIT
SEVEN, COMMA #
+
+248E ; 0037 002E ; MA #* ( ⒎ → 7. ) DIGIT SEVEN FULL STOP → DIGIT
SEVEN, FULL STOP #
+
+33E6 ; 0037 65E5 ; MA #* ( ㏦ → 7日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
DAY SEVEN → DIGIT SEVEN, CJK UNIFIED IDEOGRAPH-65E5 #
+
+32C6 ; 0037 6708 ; MA #* ( ㋆ → 7月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
JULY → DIGIT SEVEN, CJK UNIFIED IDEOGRAPH-6708 #
+
+335F ; 0037 70B9 ; MA #* ( ㍟ → 7点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
HOUR SEVEN → DIGIT SEVEN, CJK UNIFIED IDEOGRAPH-70B9 #
+
+0B03 ; 0038 ; MA # ( ଃ → 8 ) ORIYA SIGN VISARGA → DIGIT EIGHT #
+09EA ; 0038 ; MA # ( ৪ → 8 ) BENGALI DIGIT FOUR → DIGIT EIGHT #
+0A6A ; 0038 ; MA # ( ੪ → 8 ) GURMUKHI DIGIT FOUR → DIGIT EIGHT #
+1E8CB ; 0038 ; MA #* ( 𞣋 → 8 ) MENDE KIKAKUI DIGIT FIVE → DIGIT
EIGHT #
+1D7D6 ; 0038 ; MA # ( 𝟖 → 8 ) MATHEMATICAL BOLD DIGIT EIGHT →
DIGIT EIGHT #
+1D7E0 ; 0038 ; MA # ( 𝟠 → 8 ) MATHEMATICAL DOUBLE-STRUCK DIGIT
EIGHT → DIGIT EIGHT #
+1D7EA ; 0038 ; MA # ( 𝟪 → 8 ) MATHEMATICAL SANS-SERIF DIGIT EIGHT
→ DIGIT EIGHT #
+1D7F4 ; 0038 ; MA # ( 𝟴 → 8 ) MATHEMATICAL SANS-SERIF BOLD DIGIT
EIGHT → DIGIT EIGHT #
+1D7FE ; 0038 ; MA # ( 𝟾 → 8 ) MATHEMATICAL MONOSPACE DIGIT EIGHT
→ DIGIT EIGHT #
+1FBF8 ; 0038 ; MA # ( 🯸 → 8 ) SEGMENTED DIGIT EIGHT → DIGIT EIGHT
#
+0223 ; 0038 ; MA # ( ȣ → 8 ) LATIN SMALL LETTER OU → DIGIT EIGHT #
+0222 ; 0038 ; MA # ( Ȣ → 8 ) LATIN CAPITAL LETTER OU → DIGIT EIGHT
#
+1031A ; 0038 ; MA # ( 𐌚 → 8 ) OLD ITALIC LETTER EF → DIGIT EIGHT
#
+
+0AEE ; 096E ; MA # ( ૮ → ८ ) GUJARATI DIGIT EIGHT → DEVANAGARI DIGIT
EIGHT #
+
+2467 ; 2787 ; MA #* ( ⑧ → ➇ ) CIRCLED DIGIT EIGHT → DINGBAT CIRCLED
SANS-SERIF DIGIT EIGHT #
+
+1F109 ; 0038 002C ; MA #* ( 🄉 → 8, ) DIGIT EIGHT COMMA → DIGIT
EIGHT, COMMA #
+
+248F ; 0038 002E ; MA #* ( ⒏ → 8. ) DIGIT EIGHT FULL STOP → DIGIT
EIGHT, FULL STOP #
+
+33E7 ; 0038 65E5 ; MA #* ( ㏧ → 8日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
DAY EIGHT → DIGIT EIGHT, CJK UNIFIED IDEOGRAPH-65E5 #
+
+32C7 ; 0038 6708 ; MA #* ( ㋇ → 8月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
AUGUST → DIGIT EIGHT, CJK UNIFIED IDEOGRAPH-6708 #
+
+3360 ; 0038 70B9 ; MA #* ( ㍠ → 8点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
HOUR EIGHT → DIGIT EIGHT, CJK UNIFIED IDEOGRAPH-70B9 #
+
+0A67 ; 0039 ; MA # ( ੧ → 9 ) GURMUKHI DIGIT ONE → DIGIT NINE #
+0B68 ; 0039 ; MA # ( ୨ → 9 ) ORIYA DIGIT TWO → DIGIT NINE #
+09ED ; 0039 ; MA # ( ৭ → 9 ) BENGALI DIGIT SEVEN → DIGIT NINE #
+0D6D ; 0039 ; MA # ( ൭ → 9 ) MALAYALAM DIGIT SEVEN → DIGIT NINE #
+1D7D7 ; 0039 ; MA # ( 𝟗 → 9 ) MATHEMATICAL BOLD DIGIT NINE →
DIGIT NINE #
+1D7E1 ; 0039 ; MA # ( 𝟡 → 9 ) MATHEMATICAL DOUBLE-STRUCK DIGIT
NINE → DIGIT NINE #
+1D7EB ; 0039 ; MA # ( 𝟫 → 9 ) MATHEMATICAL SANS-SERIF DIGIT NINE
→ DIGIT NINE #
+1D7F5 ; 0039 ; MA # ( 𝟵 → 9 ) MATHEMATICAL SANS-SERIF BOLD DIGIT
NINE → DIGIT NINE #
+1D7FF ; 0039 ; MA # ( 𝟿 → 9 ) MATHEMATICAL MONOSPACE DIGIT NINE →
DIGIT NINE #
+1FBF9 ; 0039 ; MA # ( 🯹 → 9 ) SEGMENTED DIGIT NINE → DIGIT NINE
#
+A76E ; 0039 ; MA # ( Ꝯ → 9 ) LATIN CAPITAL LETTER CON → DIGIT NINE
#
+2CCA ; 0039 ; MA # ( Ⳋ → 9 ) COPTIC CAPITAL LETTER DIALECT-P HORI →
DIGIT NINE #
+118CC ; 0039 ; MA # ( 𑣌 → 9 ) WARANG CITI SMALL LETTER KO → DIGIT
NINE #
+118AC ; 0039 ; MA # ( 𑢬 → 9 ) WARANG CITI CAPITAL LETTER KO →
DIGIT NINE #
+118D6 ; 0039 ; MA # ( 𑣖 → 9 ) WARANG CITI SMALL LETTER AM → DIGIT
NINE #
+
+0967 ; 0669 ; MA # ( १ → ٩ ) DEVANAGARI DIGIT ONE → ARABIC-INDIC DIGIT
NINE #
+118E4 ; 0669 ; MA # ( 𑣤 → ٩ ) WARANG CITI DIGIT FOUR →
ARABIC-INDIC DIGIT NINE #
+06F9 ; 0669 ; MA # ( ۹ → ٩ ) EXTENDED ARABIC-INDIC DIGIT NINE →
ARABIC-INDIC DIGIT NINE #
+
+0CEF ; 0C6F ; MA # ( ೯ → ౯ ) KANNADA DIGIT NINE → TELUGU DIGIT NINE
#
+
+2468 ; 2788 ; MA #* ( ⑨ → ➈ ) CIRCLED DIGIT NINE → DINGBAT CIRCLED
SANS-SERIF DIGIT NINE #
+
+1F10A ; 0039 002C ; MA #* ( 🄊 → 9, ) DIGIT NINE COMMA → DIGIT
NINE, COMMA #
+
+2490 ; 0039 002E ; MA #* ( ⒐ → 9. ) DIGIT NINE FULL STOP → DIGIT
NINE, FULL STOP #
+
+33E8 ; 0039 65E5 ; MA #* ( ㏨ → 9日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
DAY NINE → DIGIT NINE, CJK UNIFIED IDEOGRAPH-65E5 #
+
+32C8 ; 0039 6708 ; MA #* ( ㋈ → 9月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
SEPTEMBER → DIGIT NINE, CJK UNIFIED IDEOGRAPH-6708 #
+
+3361 ; 0039 70B9 ; MA #* ( ㍡ → 9点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
HOUR NINE → DIGIT NINE, CJK UNIFIED IDEOGRAPH-70B9 #
+
+237A ; 0061 ; MA #* ( ⍺ → a ) APL FUNCTIONAL SYMBOL ALPHA → LATIN SMALL
LETTER A # →α→
+FF41 ; 0061 ; MA # ( a → a ) FULLWIDTH LATIN SMALL LETTER A → LATIN
SMALL LETTER A # →а→
+1D41A ; 0061 ; MA # ( 𝐚 → a ) MATHEMATICAL BOLD SMALL A → LATIN
SMALL LETTER A #
+1D44E ; 0061 ; MA # ( 𝑎 → a ) MATHEMATICAL ITALIC SMALL A → LATIN
SMALL LETTER A #
+1D482 ; 0061 ; MA # ( 𝒂 → a ) MATHEMATICAL BOLD ITALIC SMALL A →
LATIN SMALL LETTER A #
+1D4B6 ; 0061 ; MA # ( 𝒶 → a ) MATHEMATICAL SCRIPT SMALL A → LATIN
SMALL LETTER A #
+1D4EA ; 0061 ; MA # ( 𝓪 → a ) MATHEMATICAL BOLD SCRIPT SMALL A →
LATIN SMALL LETTER A #
+1D51E ; 0061 ; MA # ( 𝔞 → a ) MATHEMATICAL FRAKTUR SMALL A →
LATIN SMALL LETTER A #
+1D552 ; 0061 ; MA # ( 𝕒 → a ) MATHEMATICAL DOUBLE-STRUCK SMALL A
→ LATIN SMALL LETTER A #
+1D586 ; 0061 ; MA # ( 𝖆 → a ) MATHEMATICAL BOLD FRAKTUR SMALL A →
LATIN SMALL LETTER A #
+1D5BA ; 0061 ; MA # ( 𝖺 → a ) MATHEMATICAL SANS-SERIF SMALL A →
LATIN SMALL LETTER A #
+1D5EE ; 0061 ; MA # ( 𝗮 → a ) MATHEMATICAL SANS-SERIF BOLD SMALL
A → LATIN SMALL LETTER A #
+1D622 ; 0061 ; MA # ( 𝘢 → a ) MATHEMATICAL SANS-SERIF ITALIC
SMALL A → LATIN SMALL LETTER A #
+1D656 ; 0061 ; MA # ( 𝙖 → a ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL A → LATIN SMALL LETTER A #
+1D68A ; 0061 ; MA # ( 𝚊 → a ) MATHEMATICAL MONOSPACE SMALL A →
LATIN SMALL LETTER A #
+0251 ; 0061 ; MA # ( ɑ → a ) LATIN SMALL LETTER ALPHA → LATIN SMALL
LETTER A #
+03B1 ; 0061 ; MA # ( α → a ) GREEK SMALL LETTER ALPHA → LATIN SMALL
LETTER A #
+1D6C2 ; 0061 ; MA # ( 𝛂 → a ) MATHEMATICAL BOLD SMALL ALPHA →
LATIN SMALL LETTER A # →α→
+1D6FC ; 0061 ; MA # ( 𝛼 → a ) MATHEMATICAL ITALIC SMALL ALPHA →
LATIN SMALL LETTER A # →α→
+1D736 ; 0061 ; MA # ( 𝜶 → a ) MATHEMATICAL BOLD ITALIC SMALL
ALPHA → LATIN SMALL LETTER A # →α→
+1D770 ; 0061 ; MA # ( 𝝰 → a ) MATHEMATICAL SANS-SERIF BOLD SMALL
ALPHA → LATIN SMALL LETTER A # →α→
+1D7AA ; 0061 ; MA # ( 𝞪 → a ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL ALPHA → LATIN SMALL LETTER A # →α→
+0430 ; 0061 ; MA # ( а → a ) CYRILLIC SMALL LETTER A → LATIN SMALL
LETTER A #
+
+2DF6 ; 0363 ; MA # ( ⷶ → ͣ ) COMBINING CYRILLIC LETTER A → COMBINING
LATIN SMALL LETTER A #
+
+FF21 ; 0041 ; MA # ( A → A ) FULLWIDTH LATIN CAPITAL LETTER A → LATIN
CAPITAL LETTER A # →А→
+1D400 ; 0041 ; MA # ( 𝐀 → A ) MATHEMATICAL BOLD CAPITAL A → LATIN
CAPITAL LETTER A #
+1D434 ; 0041 ; MA # ( 𝐴 → A ) MATHEMATICAL ITALIC CAPITAL A →
LATIN CAPITAL LETTER A #
+1D468 ; 0041 ; MA # ( 𝑨 → A ) MATHEMATICAL BOLD ITALIC CAPITAL A
→ LATIN CAPITAL LETTER A #
+1D49C ; 0041 ; MA # ( 𝒜 → A ) MATHEMATICAL SCRIPT CAPITAL A →
LATIN CAPITAL LETTER A #
+1D4D0 ; 0041 ; MA # ( 𝓐 → A ) MATHEMATICAL BOLD SCRIPT CAPITAL A
→ LATIN CAPITAL LETTER A #
+1D504 ; 0041 ; MA # ( 𝔄 → A ) MATHEMATICAL FRAKTUR CAPITAL A →
LATIN CAPITAL LETTER A #
+1D538 ; 0041 ; MA # ( 𝔸 → A ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
A → LATIN CAPITAL LETTER A #
+1D56C ; 0041 ; MA # ( 𝕬 → A ) MATHEMATICAL BOLD FRAKTUR CAPITAL A
→ LATIN CAPITAL LETTER A #
+1D5A0 ; 0041 ; MA # ( 𝖠 → A ) MATHEMATICAL SANS-SERIF CAPITAL A →
LATIN CAPITAL LETTER A #
+1D5D4 ; 0041 ; MA # ( 𝗔 → A ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL A → LATIN CAPITAL LETTER A #
+1D608 ; 0041 ; MA # ( 𝘈 → A ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL A → LATIN CAPITAL LETTER A #
+1D63C ; 0041 ; MA # ( 𝘼 → A ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL A → LATIN CAPITAL LETTER A #
+1D670 ; 0041 ; MA # ( 𝙰 → A ) MATHEMATICAL MONOSPACE CAPITAL A →
LATIN CAPITAL LETTER A #
+0391 ; 0041 ; MA # ( Α → A ) GREEK CAPITAL LETTER ALPHA → LATIN CAPITAL
LETTER A #
+1D6A8 ; 0041 ; MA # ( 𝚨 → A ) MATHEMATICAL BOLD CAPITAL ALPHA →
LATIN CAPITAL LETTER A # →𝐀→
+1D6E2 ; 0041 ; MA # ( 𝛢 → A ) MATHEMATICAL ITALIC CAPITAL ALPHA →
LATIN CAPITAL LETTER A # →Α→
+1D71C ; 0041 ; MA # ( 𝜜 → A ) MATHEMATICAL BOLD ITALIC CAPITAL
ALPHA → LATIN CAPITAL LETTER A # →Α→
+1D756 ; 0041 ; MA # ( 𝝖 → A ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL ALPHA → LATIN CAPITAL LETTER A # →Α→
+1D790 ; 0041 ; MA # ( 𝞐 → A ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL ALPHA → LATIN CAPITAL LETTER A # →Α→
+0410 ; 0041 ; MA # ( А → A ) CYRILLIC CAPITAL LETTER A → LATIN CAPITAL
LETTER A #
+13AA ; 0041 ; MA # ( Ꭺ → A ) CHEROKEE LETTER GO → LATIN CAPITAL LETTER A
#
+15C5 ; 0041 ; MA # ( ᗅ → A ) CANADIAN SYLLABICS CARRIER GHO → LATIN
CAPITAL LETTER A #
+A4EE ; 0041 ; MA # ( ꓮ → A ) LISU LETTER A → LATIN CAPITAL LETTER A
#
+16F40 ; 0041 ; MA # ( 𖽀 → A ) MIAO LETTER ZZYA → LATIN CAPITAL
LETTER A #
+102A0 ; 0041 ; MA # ( 𐊠 → A ) CARIAN LETTER A → LATIN CAPITAL
LETTER A #
+
+2376 ; 0061 0332 ; MA #* ( ⍶ → a̲ ) APL FUNCTIONAL SYMBOL ALPHA
UNDERBAR → LATIN SMALL LETTER A, COMBINING LOW LINE # →α̲→→ɑ̲→
+
+01CE ; 0103 ; MA # ( ǎ → ă ) LATIN SMALL LETTER A WITH CARON → LATIN
SMALL LETTER A WITH BREVE #
+
+01CD ; 0102 ; MA # ( Ǎ → Ă ) LATIN CAPITAL LETTER A WITH CARON → LATIN
CAPITAL LETTER A WITH BREVE #
+
+0227 ; 00E5 ; MA # ( ȧ → å ) LATIN SMALL LETTER A WITH DOT ABOVE → LATIN
SMALL LETTER A WITH RING ABOVE #
+
+0226 ; 00C5 ; MA # ( Ȧ → Å ) LATIN CAPITAL LETTER A WITH DOT ABOVE →
LATIN CAPITAL LETTER A WITH RING ABOVE #
+
+1E9A ; 1EA3 ; MA # ( ẚ → ả ) LATIN SMALL LETTER A WITH RIGHT HALF RING →
LATIN SMALL LETTER A WITH HOOK ABOVE #
+
+2100 ; 0061 002F 0063 ; MA #* ( ℀ → a/c ) ACCOUNT OF → LATIN SMALL
LETTER A, SOLIDUS, LATIN SMALL LETTER C #
+
+2101 ; 0061 002F 0073 ; MA #* ( ℁ → a/s ) ADDRESSED TO THE SUBJECT
→ LATIN SMALL LETTER A, SOLIDUS, LATIN SMALL LETTER S #
+
+A733 ; 0061 0061 ; MA # ( ꜳ → aa ) LATIN SMALL LETTER AA → LATIN
SMALL LETTER A, LATIN SMALL LETTER A #
+
+A732 ; 0041 0041 ; MA # ( Ꜳ → AA ) LATIN CAPITAL LETTER AA → LATIN
CAPITAL LETTER A, LATIN CAPITAL LETTER A #
+
+00E6 ; 0061 0065 ; MA # ( æ → ae ) LATIN SMALL LETTER AE → LATIN
SMALL LETTER A, LATIN SMALL LETTER E #
+04D5 ; 0061 0065 ; MA # ( ӕ → ae ) CYRILLIC SMALL LIGATURE A IE →
LATIN SMALL LETTER A, LATIN SMALL LETTER E # →ае→
+
+00C6 ; 0041 0045 ; MA # ( Æ → AE ) LATIN CAPITAL LETTER AE → LATIN
CAPITAL LETTER A, LATIN CAPITAL LETTER E #
+04D4 ; 0041 0045 ; MA # ( Ӕ → AE ) CYRILLIC CAPITAL LIGATURE A IE →
LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER E # →Æ→
+
+A735 ; 0061 006F ; MA # ( ꜵ → ao ) LATIN SMALL LETTER AO → LATIN
SMALL LETTER A, LATIN SMALL LETTER O #
+
+A734 ; 0041 004F ; MA # ( Ꜵ → AO ) LATIN CAPITAL LETTER AO → LATIN
CAPITAL LETTER A, LATIN CAPITAL LETTER O #
+
+1F707 ; 0041 0052 ; MA #* ( 🜇 → AR ) ALCHEMICAL SYMBOL FOR
AQUA REGIA-2 → LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER R #
+
+A737 ; 0061 0075 ; MA # ( ꜷ → au ) LATIN SMALL LETTER AU → LATIN
SMALL LETTER A, LATIN SMALL LETTER U #
+
+A736 ; 0041 0055 ; MA # ( Ꜷ → AU ) LATIN CAPITAL LETTER AU → LATIN
CAPITAL LETTER A, LATIN CAPITAL LETTER U #
+
+A739 ; 0061 0076 ; MA # ( ꜹ → av ) LATIN SMALL LETTER AV → LATIN
SMALL LETTER A, LATIN SMALL LETTER V #
+A73B ; 0061 0076 ; MA # ( ꜻ → av ) LATIN SMALL LETTER AV WITH
HORIZONTAL BAR → LATIN SMALL LETTER A, LATIN SMALL LETTER V #
+
+A738 ; 0041 0056 ; MA # ( Ꜹ → AV ) LATIN CAPITAL LETTER AV → LATIN
CAPITAL LETTER A, LATIN CAPITAL LETTER V #
+A73A ; 0041 0056 ; MA # ( Ꜻ → AV ) LATIN CAPITAL LETTER AV WITH
HORIZONTAL BAR → LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER V #
+
+A73D ; 0061 0079 ; MA # ( ꜽ → ay ) LATIN SMALL LETTER AY → LATIN
SMALL LETTER A, LATIN SMALL LETTER Y #
+
+A73C ; 0041 0059 ; MA # ( Ꜽ → AY ) LATIN CAPITAL LETTER AY → LATIN
CAPITAL LETTER A, LATIN CAPITAL LETTER Y #
+
+AB7A ; 1D00 ; MA # ( ꭺ → ᴀ ) CHEROKEE SMALL LETTER GO → LATIN LETTER
SMALL CAPITAL A #
+
+2200 ; 2C6F ; MA #* ( ∀ → Ɐ ) FOR ALL → LATIN CAPITAL LETTER TURNED A
#
+1D217 ; 2C6F ; MA #* ( 𝈗 → Ɐ ) GREEK VOCAL NOTATION SYMBOL-24 →
LATIN CAPITAL LETTER TURNED A #
+15C4 ; 2C6F ; MA # ( ᗄ → Ɐ ) CANADIAN SYLLABICS CARRIER GHU → LATIN
CAPITAL LETTER TURNED A # →∀→
+A4EF ; 2C6F ; MA # ( ꓯ → Ɐ ) LISU LETTER AE → LATIN CAPITAL LETTER
TURNED A #
+
+1041F ; 2C70 ; MA # ( 𐐟 → Ɒ ) DESERET CAPITAL LETTER ESH → LATIN
CAPITAL LETTER TURNED ALPHA #
+
+1D41B ; 0062 ; MA # ( 𝐛 → b ) MATHEMATICAL BOLD SMALL B → LATIN
SMALL LETTER B #
+1D44F ; 0062 ; MA # ( 𝑏 → b ) MATHEMATICAL ITALIC SMALL B → LATIN
SMALL LETTER B #
+1D483 ; 0062 ; MA # ( 𝒃 → b ) MATHEMATICAL BOLD ITALIC SMALL B →
LATIN SMALL LETTER B #
+1D4B7 ; 0062 ; MA # ( 𝒷 → b ) MATHEMATICAL SCRIPT SMALL B → LATIN
SMALL LETTER B #
+1D4EB ; 0062 ; MA # ( 𝓫 → b ) MATHEMATICAL BOLD SCRIPT SMALL B →
LATIN SMALL LETTER B #
+1D51F ; 0062 ; MA # ( 𝔟 → b ) MATHEMATICAL FRAKTUR SMALL B →
LATIN SMALL LETTER B #
+1D553 ; 0062 ; MA # ( 𝕓 → b ) MATHEMATICAL DOUBLE-STRUCK SMALL B
→ LATIN SMALL LETTER B #
+1D587 ; 0062 ; MA # ( 𝖇 → b ) MATHEMATICAL BOLD FRAKTUR SMALL B →
LATIN SMALL LETTER B #
+1D5BB ; 0062 ; MA # ( 𝖻 → b ) MATHEMATICAL SANS-SERIF SMALL B →
LATIN SMALL LETTER B #
+1D5EF ; 0062 ; MA # ( 𝗯 → b ) MATHEMATICAL SANS-SERIF BOLD SMALL
B → LATIN SMALL LETTER B #
+1D623 ; 0062 ; MA # ( 𝘣 → b ) MATHEMATICAL SANS-SERIF ITALIC
SMALL B → LATIN SMALL LETTER B #
+1D657 ; 0062 ; MA # ( 𝙗 → b ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL B → LATIN SMALL LETTER B #
+1D68B ; 0062 ; MA # ( 𝚋 → b ) MATHEMATICAL MONOSPACE SMALL B →
LATIN SMALL LETTER B #
+0184 ; 0062 ; MA # ( Ƅ → b ) LATIN CAPITAL LETTER TONE SIX → LATIN SMALL
LETTER B #
+042C ; 0062 ; MA # ( Ь → b ) CYRILLIC CAPITAL LETTER SOFT SIGN → LATIN
SMALL LETTER B # →Ƅ→
+13CF ; 0062 ; MA # ( Ꮟ → b ) CHEROKEE LETTER SI → LATIN SMALL LETTER B
#
+1472 ; 0062 ; MA # ( ᑲ → b ) CANADIAN SYLLABICS KA → LATIN SMALL LETTER
B #
+15AF ; 0062 ; MA # ( ᖯ → b ) CANADIAN SYLLABICS AIVILIK B → LATIN SMALL
LETTER B #
+
+FF22 ; 0042 ; MA # ( B → B ) FULLWIDTH LATIN CAPITAL LETTER B → LATIN
CAPITAL LETTER B # →Β→
+212C ; 0042 ; MA # ( ℬ → B ) SCRIPT CAPITAL B → LATIN CAPITAL LETTER B
#
+1D401 ; 0042 ; MA # ( 𝐁 → B ) MATHEMATICAL BOLD CAPITAL B → LATIN
CAPITAL LETTER B #
+1D435 ; 0042 ; MA # ( 𝐵 → B ) MATHEMATICAL ITALIC CAPITAL B →
LATIN CAPITAL LETTER B #
+1D469 ; 0042 ; MA # ( 𝑩 → B ) MATHEMATICAL BOLD ITALIC CAPITAL B
→ LATIN CAPITAL LETTER B #
+1D4D1 ; 0042 ; MA # ( 𝓑 → B ) MATHEMATICAL BOLD SCRIPT CAPITAL B
→ LATIN CAPITAL LETTER B #
+1D505 ; 0042 ; MA # ( 𝔅 → B ) MATHEMATICAL FRAKTUR CAPITAL B →
LATIN CAPITAL LETTER B #
+1D539 ; 0042 ; MA # ( 𝔹 → B ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
B → LATIN CAPITAL LETTER B #
+1D56D ; 0042 ; MA # ( 𝕭 → B ) MATHEMATICAL BOLD FRAKTUR CAPITAL B
→ LATIN CAPITAL LETTER B #
+1D5A1 ; 0042 ; MA # ( 𝖡 → B ) MATHEMATICAL SANS-SERIF CAPITAL B →
LATIN CAPITAL LETTER B #
+1D5D5 ; 0042 ; MA # ( 𝗕 → B ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL B → LATIN CAPITAL LETTER B #
+1D609 ; 0042 ; MA # ( 𝘉 → B ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL B → LATIN CAPITAL LETTER B #
+1D63D ; 0042 ; MA # ( 𝘽 → B ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL B → LATIN CAPITAL LETTER B #
+1D671 ; 0042 ; MA # ( 𝙱 → B ) MATHEMATICAL MONOSPACE CAPITAL B →
LATIN CAPITAL LETTER B #
+A7B4 ; 0042 ; MA # ( Ꞵ → B ) LATIN CAPITAL LETTER BETA → LATIN CAPITAL
LETTER B #
+0392 ; 0042 ; MA # ( Β → B ) GREEK CAPITAL LETTER BETA → LATIN CAPITAL
LETTER B #
+1D6A9 ; 0042 ; MA # ( 𝚩 → B ) MATHEMATICAL BOLD CAPITAL BETA →
LATIN CAPITAL LETTER B # →Β→
+1D6E3 ; 0042 ; MA # ( 𝛣 → B ) MATHEMATICAL ITALIC CAPITAL BETA →
LATIN CAPITAL LETTER B # →Β→
+1D71D ; 0042 ; MA # ( 𝜝 → B ) MATHEMATICAL BOLD ITALIC CAPITAL
BETA → LATIN CAPITAL LETTER B # →Β→
+1D757 ; 0042 ; MA # ( 𝝗 → B ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL BETA → LATIN CAPITAL LETTER B # →Β→
+1D791 ; 0042 ; MA # ( 𝞑 → B ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL BETA → LATIN CAPITAL LETTER B # →Β→
+0412 ; 0042 ; MA # ( В → B ) CYRILLIC CAPITAL LETTER VE → LATIN CAPITAL
LETTER B #
+13F4 ; 0042 ; MA # ( Ᏼ → B ) CHEROKEE LETTER YV → LATIN CAPITAL LETTER B
#
+15F7 ; 0042 ; MA # ( ᗷ → B ) CANADIAN SYLLABICS CARRIER KHE → LATIN
CAPITAL LETTER B #
+A4D0 ; 0042 ; MA # ( ꓐ → B ) LISU LETTER BA → LATIN CAPITAL LETTER B
#
+10282 ; 0042 ; MA # ( 𐊂 → B ) LYCIAN LETTER B → LATIN CAPITAL
LETTER B #
+102A1 ; 0042 ; MA # ( 𐊡 → B ) CARIAN LETTER P2 → LATIN CAPITAL
LETTER B #
+10301 ; 0042 ; MA # ( 𐌁 → B ) OLD ITALIC LETTER BE → LATIN
CAPITAL LETTER B #
+
+0253 ; 0062 0314 ; MA # ( ɓ → b̔ ) LATIN SMALL LETTER B WITH HOOK →
LATIN SMALL LETTER B, COMBINING REVERSED COMMA ABOVE #
+
+1473 ; 0062 0307 ; MA # ( ᑳ → ḃ ) CANADIAN SYLLABICS KAA → LATIN
SMALL LETTER B, COMBINING DOT ABOVE #
+
+0183 ; 0062 0304 ; MA # ( ƃ → b̄ ) LATIN SMALL LETTER B WITH TOPBAR →
LATIN SMALL LETTER B, COMBINING MACRON #
+0182 ; 0062 0304 ; MA # ( Ƃ → b̄ ) LATIN CAPITAL LETTER B WITH TOPBAR
→ LATIN SMALL LETTER B, COMBINING MACRON #
+0411 ; 0062 0304 ; MA # ( Б → b̄ ) CYRILLIC CAPITAL LETTER BE → LATIN
SMALL LETTER B, COMBINING MACRON # →Ƃ→
+
+0180 ; 0062 0335 ; MA # ( ƀ → b̵ ) LATIN SMALL LETTER B WITH STROKE →
LATIN SMALL LETTER B, COMBINING SHORT STROKE OVERLAY #
+048D ; 0062 0335 ; MA # ( ҍ → b̵ ) CYRILLIC SMALL LETTER SEMISOFT
SIGN → LATIN SMALL LETTER B, COMBINING SHORT STROKE OVERLAY # →ѣ→→Ь̵→
+048C ; 0062 0335 ; MA # ( Ҍ → b̵ ) CYRILLIC CAPITAL LETTER SEMISOFT
SIGN → LATIN SMALL LETTER B, COMBINING SHORT STROKE OVERLAY # →Ѣ→→Ь̵→
+0463 ; 0062 0335 ; MA # ( ѣ → b̵ ) CYRILLIC SMALL LETTER YAT → LATIN
SMALL LETTER B, COMBINING SHORT STROKE OVERLAY # →Ь̵→
+0462 ; 0062 0335 ; MA # ( Ѣ → b̵ ) CYRILLIC CAPITAL LETTER YAT →
LATIN SMALL LETTER B, COMBINING SHORT STROKE OVERLAY # →Ь̵→
+
+147F ; 0062 00B7 ; MA # ( ᑿ → b· ) CANADIAN SYLLABICS WEST-CREE KWA →
LATIN SMALL LETTER B, MIDDLE DOT # →ᑲᐧ→
+
+1481 ; 0062 0307 00B7 ; MA # ( ᒁ → ḃ· ) CANADIAN SYLLABICS
WEST-CREE KWAA → LATIN SMALL LETTER B, COMBINING DOT ABOVE, MIDDLE DOT # →ᑳᐧ→
+
+1488 ; 0062 0027 ; MA # ( ᒈ → b' ) CANADIAN SYLLABICS SOUTH-SLAVEY
KAH → LATIN SMALL LETTER B, APOSTROPHE # →ᑲᑊ→
+
+042B ; 0062 006C ; MA # ( Ы → bl ) CYRILLIC CAPITAL LETTER YERU →
LATIN SMALL LETTER B, LATIN SMALL LETTER L # →ЬІ→→Ь1→
+
+0432 ; 0299 ; MA # ( в → ʙ ) CYRILLIC SMALL LETTER VE → LATIN LETTER
SMALL CAPITAL B #
+13FC ; 0299 ; MA # ( ᏼ → ʙ ) CHEROKEE SMALL LETTER YV → LATIN LETTER
SMALL CAPITAL B #
+
+FF43 ; 0063 ; MA # ( c → c ) FULLWIDTH LATIN SMALL LETTER C → LATIN
SMALL LETTER C # →с→
+217D ; 0063 ; MA # ( ⅽ → c ) SMALL ROMAN NUMERAL ONE HUNDRED → LATIN
SMALL LETTER C #
+1D41C ; 0063 ; MA # ( 𝐜 → c ) MATHEMATICAL BOLD SMALL C → LATIN
SMALL LETTER C #
+1D450 ; 0063 ; MA # ( 𝑐 → c ) MATHEMATICAL ITALIC SMALL C → LATIN
SMALL LETTER C #
+1D484 ; 0063 ; MA # ( 𝒄 → c ) MATHEMATICAL BOLD ITALIC SMALL C →
LATIN SMALL LETTER C #
+1D4B8 ; 0063 ; MA # ( 𝒸 → c ) MATHEMATICAL SCRIPT SMALL C → LATIN
SMALL LETTER C #
+1D4EC ; 0063 ; MA # ( 𝓬 → c ) MATHEMATICAL BOLD SCRIPT SMALL C →
LATIN SMALL LETTER C #
+1D520 ; 0063 ; MA # ( 𝔠 → c ) MATHEMATICAL FRAKTUR SMALL C →
LATIN SMALL LETTER C #
+1D554 ; 0063 ; MA # ( 𝕔 → c ) MATHEMATICAL DOUBLE-STRUCK SMALL C
→ LATIN SMALL LETTER C #
+1D588 ; 0063 ; MA # ( 𝖈 → c ) MATHEMATICAL BOLD FRAKTUR SMALL C →
LATIN SMALL LETTER C #
+1D5BC ; 0063 ; MA # ( 𝖼 → c ) MATHEMATICAL SANS-SERIF SMALL C →
LATIN SMALL LETTER C #
+1D5F0 ; 0063 ; MA # ( 𝗰 → c ) MATHEMATICAL SANS-SERIF BOLD SMALL
C → LATIN SMALL LETTER C #
+1D624 ; 0063 ; MA # ( 𝘤 → c ) MATHEMATICAL SANS-SERIF ITALIC
SMALL C → LATIN SMALL LETTER C #
+1D658 ; 0063 ; MA # ( 𝙘 → c ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL C → LATIN SMALL LETTER C #
+1D68C ; 0063 ; MA # ( 𝚌 → c ) MATHEMATICAL MONOSPACE SMALL C →
LATIN SMALL LETTER C #
+1D04 ; 0063 ; MA # ( ᴄ → c ) LATIN LETTER SMALL CAPITAL C → LATIN SMALL
LETTER C #
+03F2 ; 0063 ; MA # ( ϲ → c ) GREEK LUNATE SIGMA SYMBOL → LATIN SMALL
LETTER C #
+2CA5 ; 0063 ; MA # ( ⲥ → c ) COPTIC SMALL LETTER SIMA → LATIN SMALL
LETTER C # →ϲ→
+0441 ; 0063 ; MA # ( с → c ) CYRILLIC SMALL LETTER ES → LATIN SMALL
LETTER C #
+ABAF ; 0063 ; MA # ( ꮯ → c ) CHEROKEE SMALL LETTER TLI → LATIN SMALL
LETTER C # →ᴄ→
+1043D ; 0063 ; MA # ( 𐐽 → c ) DESERET SMALL LETTER CHEE → LATIN
SMALL LETTER C #
+
+2DED ; 0368 ; MA # ( ⷭ → ͨ ) COMBINING CYRILLIC LETTER ES → COMBINING
LATIN SMALL LETTER C #
+
+1F74C ; 0043 ; MA #* ( 🝌 → C ) ALCHEMICAL SYMBOL FOR CALX → LATIN
CAPITAL LETTER C #
+118F2 ; 0043 ; MA #* ( 𑣲 → C ) WARANG CITI NUMBER NINETY → LATIN
CAPITAL LETTER C #
+118E9 ; 0043 ; MA # ( 𑣩 → C ) WARANG CITI DIGIT NINE → LATIN
CAPITAL LETTER C #
+FF23 ; 0043 ; MA # ( C → C ) FULLWIDTH LATIN CAPITAL LETTER C → LATIN
CAPITAL LETTER C # →С→
+216D ; 0043 ; MA # ( Ⅽ → C ) ROMAN NUMERAL ONE HUNDRED → LATIN CAPITAL
LETTER C #
+2102 ; 0043 ; MA # ( ℂ → C ) DOUBLE-STRUCK CAPITAL C → LATIN CAPITAL
LETTER C #
+212D ; 0043 ; MA # ( ℭ → C ) BLACK-LETTER CAPITAL C → LATIN CAPITAL
LETTER C #
+1D402 ; 0043 ; MA # ( 𝐂 → C ) MATHEMATICAL BOLD CAPITAL C → LATIN
CAPITAL LETTER C #
+1D436 ; 0043 ; MA # ( 𝐶 → C ) MATHEMATICAL ITALIC CAPITAL C →
LATIN CAPITAL LETTER C #
+1D46A ; 0043 ; MA # ( 𝑪 → C ) MATHEMATICAL BOLD ITALIC CAPITAL C
→ LATIN CAPITAL LETTER C #
+1D49E ; 0043 ; MA # ( 𝒞 → C ) MATHEMATICAL SCRIPT CAPITAL C →
LATIN CAPITAL LETTER C #
+1D4D2 ; 0043 ; MA # ( 𝓒 → C ) MATHEMATICAL BOLD SCRIPT CAPITAL C
→ LATIN CAPITAL LETTER C #
+1D56E ; 0043 ; MA # ( 𝕮 → C ) MATHEMATICAL BOLD FRAKTUR CAPITAL C
→ LATIN CAPITAL LETTER C #
+1D5A2 ; 0043 ; MA # ( 𝖢 → C ) MATHEMATICAL SANS-SERIF CAPITAL C →
LATIN CAPITAL LETTER C #
+1D5D6 ; 0043 ; MA # ( 𝗖 → C ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL C → LATIN CAPITAL LETTER C #
+1D60A ; 0043 ; MA # ( 𝘊 → C ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL C → LATIN CAPITAL LETTER C #
+1D63E ; 0043 ; MA # ( 𝘾 → C ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL C → LATIN CAPITAL LETTER C #
+1D672 ; 0043 ; MA # ( 𝙲 → C ) MATHEMATICAL MONOSPACE CAPITAL C →
LATIN CAPITAL LETTER C #
+03F9 ; 0043 ; MA # ( Ϲ → C ) GREEK CAPITAL LUNATE SIGMA SYMBOL → LATIN
CAPITAL LETTER C #
+2CA4 ; 0043 ; MA # ( Ⲥ → C ) COPTIC CAPITAL LETTER SIMA → LATIN CAPITAL
LETTER C # →Ϲ→
+0421 ; 0043 ; MA # ( С → C ) CYRILLIC CAPITAL LETTER ES → LATIN CAPITAL
LETTER C #
+13DF ; 0043 ; MA # ( Ꮯ → C ) CHEROKEE LETTER TLI → LATIN CAPITAL LETTER
C #
+A4DA ; 0043 ; MA # ( ꓚ → C ) LISU LETTER CA → LATIN CAPITAL LETTER C
#
+102A2 ; 0043 ; MA # ( 𐊢 → C ) CARIAN LETTER D → LATIN CAPITAL
LETTER C #
+10302 ; 0043 ; MA # ( 𐌂 → C ) OLD ITALIC LETTER KE → LATIN
CAPITAL LETTER C #
+10415 ; 0043 ; MA # ( 𐐕 → C ) DESERET CAPITAL LETTER CHEE → LATIN
CAPITAL LETTER C #
+1051C ; 0043 ; MA # ( 𐔜 → C ) ELBASAN LETTER SHE → LATIN CAPITAL
LETTER C #
+
+00A2 ; 0063 0338 ; MA #* ( ¢ → c̸ ) CENT SIGN → LATIN SMALL LETTER C,
COMBINING LONG SOLIDUS OVERLAY #
+023C ; 0063 0338 ; MA # ( ȼ → c̸ ) LATIN SMALL LETTER C WITH STROKE →
LATIN SMALL LETTER C, COMBINING LONG SOLIDUS OVERLAY # →¢→
+
+20A1 ; 0043 20EB ; MA #* ( ₡ → C⃫ ) COLON SIGN → LATIN CAPITAL LETTER
C, COMBINING LONG DOUBLE SOLIDUS OVERLAY #
+
+1F16E ; 0043 20E0 ; MA #* ( 🅮 → C⃠ ) CIRCLED C WITH OVERLAID
BACKSLASH → LATIN CAPITAL LETTER C, COMBINING ENCLOSING CIRCLE BACKSLASH #
+
+00E7 ; 0063 0326 ; MA # ( ç → c̦ ) LATIN SMALL LETTER C WITH CEDILLA
→ LATIN SMALL LETTER C, COMBINING COMMA BELOW # →ҫ→→с̡→
+04AB ; 0063 0326 ; MA # ( ҫ → c̦ ) CYRILLIC SMALL LETTER ES WITH
DESCENDER → LATIN SMALL LETTER C, COMBINING COMMA BELOW # →с̡→
+
+00C7 ; 0043 0326 ; MA # ( Ç → C̦ ) LATIN CAPITAL LETTER C WITH
CEDILLA → LATIN CAPITAL LETTER C, COMBINING COMMA BELOW # →Ҫ→→С̡→
+04AA ; 0043 0326 ; MA # ( Ҫ → C̦ ) CYRILLIC CAPITAL LETTER ES WITH
DESCENDER → LATIN CAPITAL LETTER C, COMBINING COMMA BELOW # →С̡→
+
+0187 ; 0043 0027 ; MA # ( Ƈ → C' ) LATIN CAPITAL LETTER C WITH HOOK →
LATIN CAPITAL LETTER C, APOSTROPHE # →Cʽ→
+
+2105 ; 0063 002F 006F ; MA #* ( ℅ → c/o ) CARE OF → LATIN SMALL
LETTER C, SOLIDUS, LATIN SMALL LETTER O #
+
+2106 ; 0063 002F 0075 ; MA #* ( ℆ → c/u ) CADA UNA → LATIN SMALL
LETTER C, SOLIDUS, LATIN SMALL LETTER U #
+
+1F16D ; 33C4 0009 20DD ; MA #* ( 🅭 → ) CIRCLED CC → SQUARE
CC, <CHARACTER TABULATION>, COMBINING ENCLOSING CIRCLE #
+
+22F4 ; A793 ; MA #* ( ⋴ → ꞓ ) SMALL ELEMENT OF WITH VERTICAL BAR AT END
OF HORIZONTAL STROKE → LATIN SMALL LETTER C WITH BAR # →ɛ→→є→
+025B ; A793 ; MA # ( ɛ → ꞓ ) LATIN SMALL LETTER OPEN E → LATIN SMALL
LETTER C WITH BAR # →є→
+03B5 ; A793 ; MA # ( ε → ꞓ ) GREEK SMALL LETTER EPSILON → LATIN SMALL
LETTER C WITH BAR # →є→
+03F5 ; A793 ; MA # ( ϵ → ꞓ ) GREEK LUNATE EPSILON SYMBOL → LATIN SMALL
LETTER C WITH BAR # →ε→→є→
+1D6C6 ; A793 ; MA # ( 𝛆 → ꞓ ) MATHEMATICAL BOLD SMALL EPSILON →
LATIN SMALL LETTER C WITH BAR # →ε→→є→
+1D6DC ; A793 ; MA # ( 𝛜 → ꞓ ) MATHEMATICAL BOLD EPSILON SYMBOL →
LATIN SMALL LETTER C WITH BAR # →ε→→є→
+1D700 ; A793 ; MA # ( 𝜀 → ꞓ ) MATHEMATICAL ITALIC SMALL EPSILON →
LATIN SMALL LETTER C WITH BAR # →ε→→є→
+1D716 ; A793 ; MA # ( 𝜖 → ꞓ ) MATHEMATICAL ITALIC EPSILON SYMBOL
→ LATIN SMALL LETTER C WITH BAR # →ε→→є→
+1D73A ; A793 ; MA # ( 𝜺 → ꞓ ) MATHEMATICAL BOLD ITALIC SMALL
EPSILON → LATIN SMALL LETTER C WITH BAR # →ε→→є→
+1D750 ; A793 ; MA # ( 𝝐 → ꞓ ) MATHEMATICAL BOLD ITALIC EPSILON
SYMBOL → LATIN SMALL LETTER C WITH BAR # →ε→→є→
+1D774 ; A793 ; MA # ( 𝝴 → ꞓ ) MATHEMATICAL SANS-SERIF BOLD SMALL
EPSILON → LATIN SMALL LETTER C WITH BAR # →ε→→є→
+1D78A ; A793 ; MA # ( 𝞊 → ꞓ ) MATHEMATICAL SANS-SERIF BOLD
EPSILON SYMBOL → LATIN SMALL LETTER C WITH BAR # →ε→→є→
+1D7AE ; A793 ; MA # ( 𝞮 → ꞓ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL EPSILON → LATIN SMALL LETTER C WITH BAR # →ε→→є→
+1D7C4 ; A793 ; MA # ( 𝟄 → ꞓ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
EPSILON SYMBOL → LATIN SMALL LETTER C WITH BAR # →ε→→є→
+2C89 ; A793 ; MA # ( ⲉ → ꞓ ) COPTIC SMALL LETTER EIE → LATIN SMALL
LETTER C WITH BAR # →є→
+0454 ; A793 ; MA # ( є → ꞓ ) CYRILLIC SMALL LETTER UKRAINIAN IE → LATIN
SMALL LETTER C WITH BAR #
+0511 ; A793 ; MA # ( ԑ → ꞓ ) CYRILLIC SMALL LETTER REVERSED ZE → LATIN
SMALL LETTER C WITH BAR # →ε→→є→
+AB9B ; A793 ; MA # ( ꮛ → ꞓ ) CHEROKEE SMALL LETTER QUV → LATIN SMALL
LETTER C WITH BAR # →ɛ→→є→
+118CE ; A793 ; MA # ( 𑣎 → ꞓ ) WARANG CITI SMALL LETTER YUJ →
LATIN SMALL LETTER C WITH BAR # →ε→→є→
+10429 ; A793 ; MA # ( 𐐩 → ꞓ ) DESERET SMALL LETTER LONG E → LATIN
SMALL LETTER C WITH BAR # →ɛ→→є→
+
+20AC ; A792 ; MA #* ( € → Ꞓ ) EURO SIGN → LATIN CAPITAL LETTER C WITH
BAR # →Є→
+2C88 ; A792 ; MA # ( Ⲉ → Ꞓ ) COPTIC CAPITAL LETTER EIE → LATIN CAPITAL
LETTER C WITH BAR # →Є→
+0404 ; A792 ; MA # ( Є → Ꞓ ) CYRILLIC CAPITAL LETTER UKRAINIAN IE →
LATIN CAPITAL LETTER C WITH BAR #
+
+2377 ; A793 0332 ; MA #* ( ⍷ → ꞓ̲ ) APL FUNCTIONAL SYMBOL EPSILON
UNDERBAR → LATIN SMALL LETTER C WITH BAR, COMBINING LOW LINE # →ε̲→
+
+037D ; A73F ; MA # ( ͽ → ꜿ ) GREEK SMALL REVERSED DOTTED LUNATE SIGMA
SYMBOL → LATIN SMALL LETTER REVERSED C WITH DOT #
+
+03FF ; A73E ; MA # ( Ͽ → Ꜿ ) GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA
SYMBOL → LATIN CAPITAL LETTER REVERSED C WITH DOT #
+
+217E ; 0064 ; MA # ( ⅾ → d ) SMALL ROMAN NUMERAL FIVE HUNDRED → LATIN
SMALL LETTER D #
+2146 ; 0064 ; MA # ( ⅆ → d ) DOUBLE-STRUCK ITALIC SMALL D → LATIN SMALL
LETTER D #
+1D41D ; 0064 ; MA # ( 𝐝 → d ) MATHEMATICAL BOLD SMALL D → LATIN
SMALL LETTER D #
+1D451 ; 0064 ; MA # ( 𝑑 → d ) MATHEMATICAL ITALIC SMALL D → LATIN
SMALL LETTER D #
+1D485 ; 0064 ; MA # ( 𝒅 → d ) MATHEMATICAL BOLD ITALIC SMALL D →
LATIN SMALL LETTER D #
+1D4B9 ; 0064 ; MA # ( 𝒹 → d ) MATHEMATICAL SCRIPT SMALL D → LATIN
SMALL LETTER D #
+1D4ED ; 0064 ; MA # ( 𝓭 → d ) MATHEMATICAL BOLD SCRIPT SMALL D →
LATIN SMALL LETTER D #
+1D521 ; 0064 ; MA # ( 𝔡 → d ) MATHEMATICAL FRAKTUR SMALL D →
LATIN SMALL LETTER D #
+1D555 ; 0064 ; MA # ( 𝕕 → d ) MATHEMATICAL DOUBLE-STRUCK SMALL D
→ LATIN SMALL LETTER D #
+1D589 ; 0064 ; MA # ( 𝖉 → d ) MATHEMATICAL BOLD FRAKTUR SMALL D →
LATIN SMALL LETTER D #
+1D5BD ; 0064 ; MA # ( 𝖽 → d ) MATHEMATICAL SANS-SERIF SMALL D →
LATIN SMALL LETTER D #
+1D5F1 ; 0064 ; MA # ( 𝗱 → d ) MATHEMATICAL SANS-SERIF BOLD SMALL
D → LATIN SMALL LETTER D #
+1D625 ; 0064 ; MA # ( 𝘥 → d ) MATHEMATICAL SANS-SERIF ITALIC
SMALL D → LATIN SMALL LETTER D #
+1D659 ; 0064 ; MA # ( 𝙙 → d ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL D → LATIN SMALL LETTER D #
+1D68D ; 0064 ; MA # ( 𝚍 → d ) MATHEMATICAL MONOSPACE SMALL D →
LATIN SMALL LETTER D #
+0501 ; 0064 ; MA # ( ԁ → d ) CYRILLIC SMALL LETTER KOMI DE → LATIN SMALL
LETTER D #
+13E7 ; 0064 ; MA # ( Ꮷ → d ) CHEROKEE LETTER TSU → LATIN SMALL LETTER D
#
+146F ; 0064 ; MA # ( ᑯ → d ) CANADIAN SYLLABICS KO → LATIN SMALL LETTER
D #
+A4D2 ; 0064 ; MA # ( ꓒ → d ) LISU LETTER PHA → LATIN SMALL LETTER D
#
+
+216E ; 0044 ; MA # ( Ⅾ → D ) ROMAN NUMERAL FIVE HUNDRED → LATIN CAPITAL
LETTER D #
+2145 ; 0044 ; MA # ( ⅅ → D ) DOUBLE-STRUCK ITALIC CAPITAL D → LATIN
CAPITAL LETTER D #
+1D403 ; 0044 ; MA # ( 𝐃 → D ) MATHEMATICAL BOLD CAPITAL D → LATIN
CAPITAL LETTER D #
+1D437 ; 0044 ; MA # ( 𝐷 → D ) MATHEMATICAL ITALIC CAPITAL D →
LATIN CAPITAL LETTER D #
+1D46B ; 0044 ; MA # ( 𝑫 → D ) MATHEMATICAL BOLD ITALIC CAPITAL D
→ LATIN CAPITAL LETTER D #
+1D49F ; 0044 ; MA # ( 𝒟 → D ) MATHEMATICAL SCRIPT CAPITAL D →
LATIN CAPITAL LETTER D #
+1D4D3 ; 0044 ; MA # ( 𝓓 → D ) MATHEMATICAL BOLD SCRIPT CAPITAL D
→ LATIN CAPITAL LETTER D #
+1D507 ; 0044 ; MA # ( 𝔇 → D ) MATHEMATICAL FRAKTUR CAPITAL D →
LATIN CAPITAL LETTER D #
+1D53B ; 0044 ; MA # ( 𝔻 → D ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
D → LATIN CAPITAL LETTER D #
+1D56F ; 0044 ; MA # ( 𝕯 → D ) MATHEMATICAL BOLD FRAKTUR CAPITAL D
→ LATIN CAPITAL LETTER D #
+1D5A3 ; 0044 ; MA # ( 𝖣 → D ) MATHEMATICAL SANS-SERIF CAPITAL D →
LATIN CAPITAL LETTER D #
+1D5D7 ; 0044 ; MA # ( 𝗗 → D ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL D → LATIN CAPITAL LETTER D #
+1D60B ; 0044 ; MA # ( 𝘋 → D ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL D → LATIN CAPITAL LETTER D #
+1D63F ; 0044 ; MA # ( 𝘿 → D ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL D → LATIN CAPITAL LETTER D #
+1D673 ; 0044 ; MA # ( 𝙳 → D ) MATHEMATICAL MONOSPACE CAPITAL D →
LATIN CAPITAL LETTER D #
+13A0 ; 0044 ; MA # ( Ꭰ → D ) CHEROKEE LETTER A → LATIN CAPITAL LETTER D
#
+15DE ; 0044 ; MA # ( ᗞ → D ) CANADIAN SYLLABICS CARRIER THE → LATIN
CAPITAL LETTER D #
+15EA ; 0044 ; MA # ( ᗪ → D ) CANADIAN SYLLABICS CARRIER PE → LATIN
CAPITAL LETTER D # →ᗞ→
+A4D3 ; 0044 ; MA # ( ꓓ → D ) LISU LETTER DA → LATIN CAPITAL LETTER D
#
+
+0257 ; 0064 0314 ; MA # ( ɗ → d̔ ) LATIN SMALL LETTER D WITH HOOK →
LATIN SMALL LETTER D, COMBINING REVERSED COMMA ABOVE #
+
+0256 ; 0064 0328 ; MA # ( ɖ → d̨ ) LATIN SMALL LETTER D WITH TAIL →
LATIN SMALL LETTER D, COMBINING OGONEK # →d̢→
+
+018C ; 0064 0304 ; MA # ( ƌ → d̄ ) LATIN SMALL LETTER D WITH TOPBAR →
LATIN SMALL LETTER D, COMBINING MACRON #
+
+0111 ; 0064 0335 ; MA # ( đ → d̵ ) LATIN SMALL LETTER D WITH STROKE →
LATIN SMALL LETTER D, COMBINING SHORT STROKE OVERLAY #
+
+0110 ; 0044 0335 ; MA # ( Đ → D̵ ) LATIN CAPITAL LETTER D WITH STROKE
→ LATIN CAPITAL LETTER D, COMBINING SHORT STROKE OVERLAY #
+00D0 ; 0044 0335 ; MA # ( Ð → D̵ ) LATIN CAPITAL LETTER ETH → LATIN
CAPITAL LETTER D, COMBINING SHORT STROKE OVERLAY # →Đ→
+0189 ; 0044 0335 ; MA # ( Ɖ → D̵ ) LATIN CAPITAL LETTER AFRICAN D →
LATIN CAPITAL LETTER D, COMBINING SHORT STROKE OVERLAY # →Đ→
+
+20AB ; 0064 0335 0331 ; MA #* ( ₫ → ḏ̵ ) DONG SIGN → LATIN SMALL
LETTER D, COMBINING SHORT STROKE OVERLAY, COMBINING MACRON BELOW # →đ̱→
+
+A77A ; A779 ; MA # ( ꝺ → Ꝺ ) LATIN SMALL LETTER INSULAR D → LATIN
CAPITAL LETTER INSULAR D #
+
+147B ; 0064 00B7 ; MA # ( ᑻ → d· ) CANADIAN SYLLABICS WEST-CREE KWO →
LATIN SMALL LETTER D, MIDDLE DOT # →ᑯᐧ→
+
+1487 ; 0064 0027 ; MA # ( ᒇ → d' ) CANADIAN SYLLABICS SOUTH-SLAVEY
KOH → LATIN SMALL LETTER D, APOSTROPHE # →ᑯᑊ→
+
+02A4 ; 0064 021D ; MA # ( ʤ → dȝ ) LATIN SMALL LETTER DEZH DIGRAPH →
LATIN SMALL LETTER D, LATIN SMALL LETTER YOGH # →dʒ→
+
+01F3 ; 0064 007A ; MA # ( dz → dz ) LATIN SMALL LETTER DZ → LATIN
SMALL LETTER D, LATIN SMALL LETTER Z #
+02A3 ; 0064 007A ; MA # ( ʣ → dz ) LATIN SMALL LETTER DZ DIGRAPH →
LATIN SMALL LETTER D, LATIN SMALL LETTER Z #
+
+01F2 ; 0044 007A ; MA # ( Dz → Dz ) LATIN CAPITAL LETTER D WITH SMALL
LETTER Z → LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z #
+
+01F1 ; 0044 005A ; MA # ( DZ → DZ ) LATIN CAPITAL LETTER DZ → LATIN
CAPITAL LETTER D, LATIN CAPITAL LETTER Z #
+
+01C6 ; 0064 017E ; MA # ( dž → dž ) LATIN SMALL LETTER DZ WITH CARON →
LATIN SMALL LETTER D, LATIN SMALL LETTER Z WITH CARON #
+
+01C5 ; 0044 017E ; MA # ( Dž → Dž ) LATIN CAPITAL LETTER D WITH SMALL
LETTER Z WITH CARON → LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z WITH CARON
#
+
+01C4 ; 0044 017D ; MA # ( DŽ → DŽ ) LATIN CAPITAL LETTER DZ WITH CARON
→ LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z WITH CARON #
+
+02A5 ; 0064 0291 ; MA # ( ʥ → dʑ ) LATIN SMALL LETTER DZ DIGRAPH WITH
CURL → LATIN SMALL LETTER D, LATIN SMALL LETTER Z WITH CURL #
+
+AB70 ; 1D05 ; MA # ( ꭰ → ᴅ ) CHEROKEE SMALL LETTER A → LATIN LETTER
SMALL CAPITAL D #
+
+2E39 ; 1E9F ; MA #* ( ⸹ → ẟ ) TOP HALF SECTION SIGN → LATIN SMALL LETTER
DELTA # →δ→
+03B4 ; 1E9F ; MA # ( δ → ẟ ) GREEK SMALL LETTER DELTA → LATIN SMALL
LETTER DELTA #
+1D6C5 ; 1E9F ; MA # ( 𝛅 → ẟ ) MATHEMATICAL BOLD SMALL DELTA →
LATIN SMALL LETTER DELTA # →δ→
+1D6FF ; 1E9F ; MA # ( 𝛿 → ẟ ) MATHEMATICAL ITALIC SMALL DELTA →
LATIN SMALL LETTER DELTA # →δ→
+1D739 ; 1E9F ; MA # ( 𝜹 → ẟ ) MATHEMATICAL BOLD ITALIC SMALL
DELTA → LATIN SMALL LETTER DELTA # →δ→
+1D773 ; 1E9F ; MA # ( 𝝳 → ẟ ) MATHEMATICAL SANS-SERIF BOLD SMALL
DELTA → LATIN SMALL LETTER DELTA # →δ→
+1D7AD ; 1E9F ; MA # ( 𝞭 → ẟ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL DELTA → LATIN SMALL LETTER DELTA # →δ→
+056E ; 1E9F ; MA # ( ծ → ẟ ) ARMENIAN SMALL LETTER CA → LATIN SMALL
LETTER DELTA # →δ→
+1577 ; 1E9F ; MA # ( ᕷ → ẟ ) CANADIAN SYLLABICS NUNAVIK HO → LATIN SMALL
LETTER DELTA # →δ→
+
+212E ; 0065 ; MA # ( ℮ → e ) ESTIMATED SYMBOL → LATIN SMALL LETTER E
#
+FF45 ; 0065 ; MA # ( e → e ) FULLWIDTH LATIN SMALL LETTER E → LATIN
SMALL LETTER E # →е→
+212F ; 0065 ; MA # ( ℯ → e ) SCRIPT SMALL E → LATIN SMALL LETTER E
#
+2147 ; 0065 ; MA # ( ⅇ → e ) DOUBLE-STRUCK ITALIC SMALL E → LATIN SMALL
LETTER E #
+1D41E ; 0065 ; MA # ( 𝐞 → e ) MATHEMATICAL BOLD SMALL E → LATIN
SMALL LETTER E #
+1D452 ; 0065 ; MA # ( 𝑒 → e ) MATHEMATICAL ITALIC SMALL E → LATIN
SMALL LETTER E #
+1D486 ; 0065 ; MA # ( 𝒆 → e ) MATHEMATICAL BOLD ITALIC SMALL E →
LATIN SMALL LETTER E #
+1D4EE ; 0065 ; MA # ( 𝓮 → e ) MATHEMATICAL BOLD SCRIPT SMALL E →
LATIN SMALL LETTER E #
+1D522 ; 0065 ; MA # ( 𝔢 → e ) MATHEMATICAL FRAKTUR SMALL E →
LATIN SMALL LETTER E #
+1D556 ; 0065 ; MA # ( 𝕖 → e ) MATHEMATICAL DOUBLE-STRUCK SMALL E
→ LATIN SMALL LETTER E #
+1D58A ; 0065 ; MA # ( 𝖊 → e ) MATHEMATICAL BOLD FRAKTUR SMALL E →
LATIN SMALL LETTER E #
+1D5BE ; 0065 ; MA # ( 𝖾 → e ) MATHEMATICAL SANS-SERIF SMALL E →
LATIN SMALL LETTER E #
+1D5F2 ; 0065 ; MA # ( 𝗲 → e ) MATHEMATICAL SANS-SERIF BOLD SMALL
E → LATIN SMALL LETTER E #
+1D626 ; 0065 ; MA # ( 𝘦 → e ) MATHEMATICAL SANS-SERIF ITALIC
SMALL E → LATIN SMALL LETTER E #
+1D65A ; 0065 ; MA # ( 𝙚 → e ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL E → LATIN SMALL LETTER E #
+1D68E ; 0065 ; MA # ( 𝚎 → e ) MATHEMATICAL MONOSPACE SMALL E →
LATIN SMALL LETTER E #
+AB32 ; 0065 ; MA # ( ꬲ → e ) LATIN SMALL LETTER BLACKLETTER E → LATIN
SMALL LETTER E #
+0435 ; 0065 ; MA # ( е → e ) CYRILLIC SMALL LETTER IE → LATIN SMALL
LETTER E #
+04BD ; 0065 ; MA # ( ҽ → e ) CYRILLIC SMALL LETTER ABKHASIAN CHE → LATIN
SMALL LETTER E #
+
+2DF7 ; 0364 ; MA # ( ⷷ → ͤ ) COMBINING CYRILLIC LETTER IE → COMBINING
LATIN SMALL LETTER E #
+
+22FF ; 0045 ; MA #* ( ⋿ → E ) Z NOTATION BAG MEMBERSHIP → LATIN CAPITAL
LETTER E #
+FF25 ; 0045 ; MA # ( E → E ) FULLWIDTH LATIN CAPITAL LETTER E → LATIN
CAPITAL LETTER E # →Ε→
+2130 ; 0045 ; MA # ( ℰ → E ) SCRIPT CAPITAL E → LATIN CAPITAL LETTER E
#
+1D404 ; 0045 ; MA # ( 𝐄 → E ) MATHEMATICAL BOLD CAPITAL E → LATIN
CAPITAL LETTER E #
+1D438 ; 0045 ; MA # ( 𝐸 → E ) MATHEMATICAL ITALIC CAPITAL E →
LATIN CAPITAL LETTER E #
+1D46C ; 0045 ; MA # ( 𝑬 → E ) MATHEMATICAL BOLD ITALIC CAPITAL E
→ LATIN CAPITAL LETTER E #
+1D4D4 ; 0045 ; MA # ( 𝓔 → E ) MATHEMATICAL BOLD SCRIPT CAPITAL E
→ LATIN CAPITAL LETTER E #
+1D508 ; 0045 ; MA # ( 𝔈 → E ) MATHEMATICAL FRAKTUR CAPITAL E →
LATIN CAPITAL LETTER E #
+1D53C ; 0045 ; MA # ( 𝔼 → E ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
E → LATIN CAPITAL LETTER E #
+1D570 ; 0045 ; MA # ( 𝕰 → E ) MATHEMATICAL BOLD FRAKTUR CAPITAL E
→ LATIN CAPITAL LETTER E #
+1D5A4 ; 0045 ; MA # ( 𝖤 → E ) MATHEMATICAL SANS-SERIF CAPITAL E →
LATIN CAPITAL LETTER E #
+1D5D8 ; 0045 ; MA # ( 𝗘 → E ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL E → LATIN CAPITAL LETTER E #
+1D60C ; 0045 ; MA # ( 𝘌 → E ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL E → LATIN CAPITAL LETTER E #
+1D640 ; 0045 ; MA # ( 𝙀 → E ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL E → LATIN CAPITAL LETTER E #
+1D674 ; 0045 ; MA # ( 𝙴 → E ) MATHEMATICAL MONOSPACE CAPITAL E →
LATIN CAPITAL LETTER E #
+0395 ; 0045 ; MA # ( Ε → E ) GREEK CAPITAL LETTER EPSILON → LATIN
CAPITAL LETTER E #
+1D6AC ; 0045 ; MA # ( 𝚬 → E ) MATHEMATICAL BOLD CAPITAL EPSILON →
LATIN CAPITAL LETTER E # →𝐄→
+1D6E6 ; 0045 ; MA # ( 𝛦 → E ) MATHEMATICAL ITALIC CAPITAL EPSILON
→ LATIN CAPITAL LETTER E # →Ε→
+1D720 ; 0045 ; MA # ( 𝜠 → E ) MATHEMATICAL BOLD ITALIC CAPITAL
EPSILON → LATIN CAPITAL LETTER E # →Ε→
+1D75A ; 0045 ; MA # ( 𝝚 → E ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL EPSILON → LATIN CAPITAL LETTER E # →Ε→
+1D794 ; 0045 ; MA # ( 𝞔 → E ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL EPSILON → LATIN CAPITAL LETTER E # →Ε→
+0415 ; 0045 ; MA # ( Е → E ) CYRILLIC CAPITAL LETTER IE → LATIN CAPITAL
LETTER E #
+2D39 ; 0045 ; MA # ( ⴹ → E ) TIFINAGH LETTER YADD → LATIN CAPITAL LETTER
E #
+13AC ; 0045 ; MA # ( Ꭼ → E ) CHEROKEE LETTER GV → LATIN CAPITAL LETTER E
#
+A4F0 ; 0045 ; MA # ( ꓰ → E ) LISU LETTER E → LATIN CAPITAL LETTER E
#
+118A6 ; 0045 ; MA # ( 𑢦 → E ) WARANG CITI CAPITAL LETTER II →
LATIN CAPITAL LETTER E #
+118AE ; 0045 ; MA # ( 𑢮 → E ) WARANG CITI CAPITAL LETTER YUJ →
LATIN CAPITAL LETTER E #
+10286 ; 0045 ; MA # ( 𐊆 → E ) LYCIAN LETTER I → LATIN CAPITAL
LETTER E #
+
+011B ; 0115 ; MA # ( ě → ĕ ) LATIN SMALL LETTER E WITH CARON → LATIN
SMALL LETTER E WITH BREVE #
+
+011A ; 0114 ; MA # ( Ě → Ĕ ) LATIN CAPITAL LETTER E WITH CARON → LATIN
CAPITAL LETTER E WITH BREVE #
+
+0247 ; 0065 0338 ; MA # ( ɇ → e̸ ) LATIN SMALL LETTER E WITH STROKE →
LATIN SMALL LETTER E, COMBINING LONG SOLIDUS OVERLAY # →e̷→
+
+0246 ; 0045 0338 ; MA # ( Ɇ → E̸ ) LATIN CAPITAL LETTER E WITH STROKE
→ LATIN CAPITAL LETTER E, COMBINING LONG SOLIDUS OVERLAY #
+
+04BF ; 0065 0328 ; MA # ( ҿ → ę ) CYRILLIC SMALL LETTER ABKHASIAN
CHE WITH DESCENDER → LATIN SMALL LETTER E, COMBINING OGONEK # →ҽ̢→
+
+AB7C ; 1D07 ; MA # ( ꭼ → ᴇ ) CHEROKEE SMALL LETTER GV → LATIN LETTER
SMALL CAPITAL E #
+
+0259 ; 01DD ; MA # ( ə → ǝ ) LATIN SMALL LETTER SCHWA → LATIN SMALL
LETTER TURNED E #
+04D9 ; 01DD ; MA # ( ә → ǝ ) CYRILLIC SMALL LETTER SCHWA → LATIN SMALL
LETTER TURNED E #
+
+2203 ; 018E ; MA #* ( ∃ → Ǝ ) THERE EXISTS → LATIN CAPITAL LETTER
REVERSED E #
+2D3A ; 018E ; MA # ( ⴺ → Ǝ ) TIFINAGH LETTER YADDH → LATIN CAPITAL
LETTER REVERSED E #
+A4F1 ; 018E ; MA # ( ꓱ → Ǝ ) LISU LETTER EU → LATIN CAPITAL LETTER
REVERSED E #
+
+025A ; 01DD 02DE ; MA # ( ɚ → ǝ˞ ) LATIN SMALL LETTER SCHWA WITH HOOK
→ LATIN SMALL LETTER TURNED E, MODIFIER LETTER RHOTIC HOOK # →ə˞→
+
+1D14 ; 01DD 006F ; MA # ( ᴔ → ǝo ) LATIN SMALL LETTER TURNED OE →
LATIN SMALL LETTER TURNED E, LATIN SMALL LETTER O # →əo→
+
+AB41 ; 01DD 006F 0338 ; MA # ( ꭁ → ǝo̸ ) LATIN SMALL LETTER TURNED
OE WITH STROKE → LATIN SMALL LETTER TURNED E, LATIN SMALL LETTER O, COMBINING
LONG SOLIDUS OVERLAY # →ǝø→
+
+AB42 ; 01DD 006F 0335 ; MA # ( ꭂ → ǝo̵ ) LATIN SMALL LETTER TURNED
OE WITH HORIZONTAL STROKE → LATIN SMALL LETTER TURNED E, LATIN SMALL LETTER O,
COMBINING SHORT STROKE OVERLAY # →ǝɵ→
+
+04D8 ; 018F ; MA # ( Ә → Ə ) CYRILLIC CAPITAL LETTER SCHWA → LATIN
CAPITAL LETTER SCHWA #
+
+1D221 ; 0190 ; MA #* ( 𝈡 → Ɛ ) GREEK INSTRUMENTAL NOTATION
SYMBOL-7 → LATIN CAPITAL LETTER OPEN E #
+2107 ; 0190 ; MA # ( ℇ → Ɛ ) EULER CONSTANT → LATIN CAPITAL LETTER OPEN
E #
+0510 ; 0190 ; MA # ( Ԑ → Ɛ ) CYRILLIC CAPITAL LETTER REVERSED ZE → LATIN
CAPITAL LETTER OPEN E #
+13CB ; 0190 ; MA # ( Ꮛ → Ɛ ) CHEROKEE LETTER QUV → LATIN CAPITAL LETTER
OPEN E #
+16F2D ; 0190 ; MA # ( 𖼭 → Ɛ ) MIAO LETTER NYHA → LATIN CAPITAL
LETTER OPEN E #
+10401 ; 0190 ; MA # ( 𐐁 → Ɛ ) DESERET CAPITAL LETTER LONG E →
LATIN CAPITAL LETTER OPEN E #
+
+1D9F ; 1D4B ; MA # ( ᶟ → ᵋ ) MODIFIER LETTER SMALL REVERSED OPEN E →
MODIFIER LETTER SMALL OPEN E #
+
+1D08 ; 025C ; MA # ( ᴈ → ɜ ) LATIN SMALL LETTER TURNED OPEN E → LATIN
SMALL LETTER REVERSED OPEN E #
+0437 ; 025C ; MA # ( з → ɜ ) CYRILLIC SMALL LETTER ZE → LATIN SMALL
LETTER REVERSED OPEN E #
+
+0499 ; 025C 0326 ; MA # ( ҙ → ɜ̦ ) CYRILLIC SMALL LETTER ZE WITH
DESCENDER → LATIN SMALL LETTER REVERSED OPEN E, COMBINING COMMA BELOW #
→з̡→
+
+10442 ; 025E ; MA # ( 𐑂 → ɞ ) DESERET SMALL LETTER VEE → LATIN
SMALL LETTER CLOSED REVERSED OPEN E #
+
+A79D ; 029A ; MA # ( ꞝ → ʚ ) LATIN SMALL LETTER VOLAPUK OE → LATIN SMALL
LETTER CLOSED OPEN E #
+1042A ; 029A ; MA # ( 𐐪 → ʚ ) DESERET SMALL LETTER LONG A → LATIN
SMALL LETTER CLOSED OPEN E #
+
+1D41F ; 0066 ; MA # ( 𝐟 → f ) MATHEMATICAL BOLD SMALL F → LATIN
SMALL LETTER F #
+1D453 ; 0066 ; MA # ( 𝑓 → f ) MATHEMATICAL ITALIC SMALL F → LATIN
SMALL LETTER F #
+1D487 ; 0066 ; MA # ( 𝒇 → f ) MATHEMATICAL BOLD ITALIC SMALL F →
LATIN SMALL LETTER F #
+1D4BB ; 0066 ; MA # ( 𝒻 → f ) MATHEMATICAL SCRIPT SMALL F → LATIN
SMALL LETTER F #
+1D4EF ; 0066 ; MA # ( 𝓯 → f ) MATHEMATICAL BOLD SCRIPT SMALL F →
LATIN SMALL LETTER F #
+1D523 ; 0066 ; MA # ( 𝔣 → f ) MATHEMATICAL FRAKTUR SMALL F →
LATIN SMALL LETTER F #
+1D557 ; 0066 ; MA # ( 𝕗 → f ) MATHEMATICAL DOUBLE-STRUCK SMALL F
→ LATIN SMALL LETTER F #
+1D58B ; 0066 ; MA # ( 𝖋 → f ) MATHEMATICAL BOLD FRAKTUR SMALL F →
LATIN SMALL LETTER F #
+1D5BF ; 0066 ; MA # ( 𝖿 → f ) MATHEMATICAL SANS-SERIF SMALL F →
LATIN SMALL LETTER F #
+1D5F3 ; 0066 ; MA # ( 𝗳 → f ) MATHEMATICAL SANS-SERIF BOLD SMALL
F → LATIN SMALL LETTER F #
+1D627 ; 0066 ; MA # ( 𝘧 → f ) MATHEMATICAL SANS-SERIF ITALIC
SMALL F → LATIN SMALL LETTER F #
+1D65B ; 0066 ; MA # ( 𝙛 → f ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL F → LATIN SMALL LETTER F #
+1D68F ; 0066 ; MA # ( 𝚏 → f ) MATHEMATICAL MONOSPACE SMALL F →
LATIN SMALL LETTER F #
+AB35 ; 0066 ; MA # ( ꬵ → f ) LATIN SMALL LETTER LENIS F → LATIN SMALL
LETTER F #
+A799 ; 0066 ; MA # ( ꞙ → f ) LATIN SMALL LETTER F WITH STROKE → LATIN
SMALL LETTER F #
+017F ; 0066 ; MA # ( ſ → f ) LATIN SMALL LETTER LONG S → LATIN SMALL
LETTER F #
+1E9D ; 0066 ; MA # ( ẝ → f ) LATIN SMALL LETTER LONG S WITH HIGH STROKE
→ LATIN SMALL LETTER F #
+0584 ; 0066 ; MA # ( ք → f ) ARMENIAN SMALL LETTER KEH → LATIN SMALL
LETTER F #
+
+1D213 ; 0046 ; MA #* ( 𝈓 → F ) GREEK VOCAL NOTATION SYMBOL-20 →
LATIN CAPITAL LETTER F # →Ϝ→
+2131 ; 0046 ; MA # ( ℱ → F ) SCRIPT CAPITAL F → LATIN CAPITAL LETTER F
#
+1D405 ; 0046 ; MA # ( 𝐅 → F ) MATHEMATICAL BOLD CAPITAL F → LATIN
CAPITAL LETTER F #
+1D439 ; 0046 ; MA # ( 𝐹 → F ) MATHEMATICAL ITALIC CAPITAL F →
LATIN CAPITAL LETTER F #
+1D46D ; 0046 ; MA # ( 𝑭 → F ) MATHEMATICAL BOLD ITALIC CAPITAL F
→ LATIN CAPITAL LETTER F #
+1D4D5 ; 0046 ; MA # ( 𝓕 → F ) MATHEMATICAL BOLD SCRIPT CAPITAL F
→ LATIN CAPITAL LETTER F #
+1D509 ; 0046 ; MA # ( 𝔉 → F ) MATHEMATICAL FRAKTUR CAPITAL F →
LATIN CAPITAL LETTER F #
+1D53D ; 0046 ; MA # ( 𝔽 → F ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
F → LATIN CAPITAL LETTER F #
+1D571 ; 0046 ; MA # ( 𝕱 → F ) MATHEMATICAL BOLD FRAKTUR CAPITAL F
→ LATIN CAPITAL LETTER F #
+1D5A5 ; 0046 ; MA # ( 𝖥 → F ) MATHEMATICAL SANS-SERIF CAPITAL F →
LATIN CAPITAL LETTER F #
+1D5D9 ; 0046 ; MA # ( 𝗙 → F ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL F → LATIN CAPITAL LETTER F #
+1D60D ; 0046 ; MA # ( 𝘍 → F ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL F → LATIN CAPITAL LETTER F #
+1D641 ; 0046 ; MA # ( 𝙁 → F ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL F → LATIN CAPITAL LETTER F #
+1D675 ; 0046 ; MA # ( 𝙵 → F ) MATHEMATICAL MONOSPACE CAPITAL F →
LATIN CAPITAL LETTER F #
+A798 ; 0046 ; MA # ( Ꞙ → F ) LATIN CAPITAL LETTER F WITH STROKE → LATIN
CAPITAL LETTER F #
+03DC ; 0046 ; MA # ( Ϝ → F ) GREEK LETTER DIGAMMA → LATIN CAPITAL LETTER
F #
+1D7CA ; 0046 ; MA # ( 𝟊 → F ) MATHEMATICAL BOLD CAPITAL DIGAMMA →
LATIN CAPITAL LETTER F # →Ϝ→
+15B4 ; 0046 ; MA # ( ᖴ → F ) CANADIAN SYLLABICS BLACKFOOT WE → LATIN
CAPITAL LETTER F #
+A4DD ; 0046 ; MA # ( ꓝ → F ) LISU LETTER TSA → LATIN CAPITAL LETTER F
#
+118C2 ; 0046 ; MA # ( 𑣂 → F ) WARANG CITI SMALL LETTER WI → LATIN
CAPITAL LETTER F #
+118A2 ; 0046 ; MA # ( 𑢢 → F ) WARANG CITI CAPITAL LETTER WI →
LATIN CAPITAL LETTER F #
+10287 ; 0046 ; MA # ( 𐊇 → F ) LYCIAN LETTER W → LATIN CAPITAL
LETTER F #
+102A5 ; 0046 ; MA # ( 𐊥 → F ) CARIAN LETTER R → LATIN CAPITAL
LETTER F #
+10525 ; 0046 ; MA # ( 𐔥 → F ) ELBASAN LETTER GHE → LATIN CAPITAL
LETTER F #
+
+0192 ; 0066 0326 ; MA # ( ƒ → f̦ ) LATIN SMALL LETTER F WITH HOOK →
LATIN SMALL LETTER F, COMBINING COMMA BELOW # →f̡→
+
+0191 ; 0046 0326 ; MA # ( Ƒ → F̦ ) LATIN CAPITAL LETTER F WITH HOOK →
LATIN CAPITAL LETTER F, COMBINING COMMA BELOW # →F̡→
+
+1D6E ; 0066 0334 ; MA # ( ᵮ → f̴ ) LATIN SMALL LETTER F WITH MIDDLE
TILDE → LATIN SMALL LETTER F, COMBINING TILDE OVERLAY #
+
+213B ; 0046 0041 0058 ; MA #* ( ℻ → FAX ) FACSIMILE SIGN → LATIN
CAPITAL LETTER F, LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER X #
+
+FB00 ; 0066 0066 ; MA # ( ff → ff ) LATIN SMALL LIGATURE FF → LATIN
SMALL LETTER F, LATIN SMALL LETTER F #
+
+FB03 ; 0066 0066 0069 ; MA # ( ffi → ffi ) LATIN SMALL LIGATURE FFI
→ LATIN SMALL LETTER F, LATIN SMALL LETTER F, LATIN SMALL LETTER I #
+
+FB04 ; 0066 0066 006C ; MA # ( ffl → ffl ) LATIN SMALL LIGATURE FFL
→ LATIN SMALL LETTER F, LATIN SMALL LETTER F, LATIN SMALL LETTER L #
+
+FB01 ; 0066 0069 ; MA # ( fi → fi ) LATIN SMALL LIGATURE FI → LATIN
SMALL LETTER F, LATIN SMALL LETTER I #
+
+FB02 ; 0066 006C ; MA # ( fl → fl ) LATIN SMALL LIGATURE FL → LATIN
SMALL LETTER F, LATIN SMALL LETTER L #
+
+02A9 ; 0066 014B ; MA # ( ʩ → fŋ ) LATIN SMALL LETTER FENG DIGRAPH →
LATIN SMALL LETTER F, LATIN SMALL LETTER ENG #
+
+15B5 ; 2132 ; MA # ( ᖵ → Ⅎ ) CANADIAN SYLLABICS BLACKFOOT WI → TURNED
CAPITAL F #
+A4DE ; 2132 ; MA # ( ꓞ → Ⅎ ) LISU LETTER TSHA → TURNED CAPITAL F #
+
+1D230 ; A7FB ; MA #* ( 𝈰 → ꟻ ) GREEK INSTRUMENTAL NOTATION
SYMBOL-30 → LATIN EPIGRAPHIC LETTER REVERSED F #
+15B7 ; A7FB ; MA # ( ᖷ → ꟻ ) CANADIAN SYLLABICS BLACKFOOT WA → LATIN
EPIGRAPHIC LETTER REVERSED F #
+
+FF47 ; 0067 ; MA # ( g → g ) FULLWIDTH LATIN SMALL LETTER G → LATIN
SMALL LETTER G # →ɡ→
+210A ; 0067 ; MA # ( ℊ → g ) SCRIPT SMALL G → LATIN SMALL LETTER G
#
+1D420 ; 0067 ; MA # ( 𝐠 → g ) MATHEMATICAL BOLD SMALL G → LATIN
SMALL LETTER G #
+1D454 ; 0067 ; MA # ( 𝑔 → g ) MATHEMATICAL ITALIC SMALL G → LATIN
SMALL LETTER G #
+1D488 ; 0067 ; MA # ( 𝒈 → g ) MATHEMATICAL BOLD ITALIC SMALL G →
LATIN SMALL LETTER G #
+1D4F0 ; 0067 ; MA # ( 𝓰 → g ) MATHEMATICAL BOLD SCRIPT SMALL G →
LATIN SMALL LETTER G #
+1D524 ; 0067 ; MA # ( 𝔤 → g ) MATHEMATICAL FRAKTUR SMALL G →
LATIN SMALL LETTER G #
+1D558 ; 0067 ; MA # ( 𝕘 → g ) MATHEMATICAL DOUBLE-STRUCK SMALL G
→ LATIN SMALL LETTER G #
+1D58C ; 0067 ; MA # ( 𝖌 → g ) MATHEMATICAL BOLD FRAKTUR SMALL G →
LATIN SMALL LETTER G #
+1D5C0 ; 0067 ; MA # ( 𝗀 → g ) MATHEMATICAL SANS-SERIF SMALL G →
LATIN SMALL LETTER G #
+1D5F4 ; 0067 ; MA # ( 𝗴 → g ) MATHEMATICAL SANS-SERIF BOLD SMALL
G → LATIN SMALL LETTER G #
+1D628 ; 0067 ; MA # ( 𝘨 → g ) MATHEMATICAL SANS-SERIF ITALIC
SMALL G → LATIN SMALL LETTER G #
+1D65C ; 0067 ; MA # ( 𝙜 → g ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL G → LATIN SMALL LETTER G #
+1D690 ; 0067 ; MA # ( 𝚐 → g ) MATHEMATICAL MONOSPACE SMALL G →
LATIN SMALL LETTER G #
+0261 ; 0067 ; MA # ( ɡ → g ) LATIN SMALL LETTER SCRIPT G → LATIN SMALL
LETTER G #
+1D83 ; 0067 ; MA # ( ᶃ → g ) LATIN SMALL LETTER G WITH PALATAL HOOK →
LATIN SMALL LETTER G #
+018D ; 0067 ; MA # ( ƍ → g ) LATIN SMALL LETTER TURNED DELTA → LATIN
SMALL LETTER G #
+0581 ; 0067 ; MA # ( ց → g ) ARMENIAN SMALL LETTER CO → LATIN SMALL
LETTER G #
+
+1D406 ; 0047 ; MA # ( 𝐆 → G ) MATHEMATICAL BOLD CAPITAL G → LATIN
CAPITAL LETTER G #
+1D43A ; 0047 ; MA # ( 𝐺 → G ) MATHEMATICAL ITALIC CAPITAL G →
LATIN CAPITAL LETTER G #
+1D46E ; 0047 ; MA # ( 𝑮 → G ) MATHEMATICAL BOLD ITALIC CAPITAL G
→ LATIN CAPITAL LETTER G #
+1D4A2 ; 0047 ; MA # ( 𝒢 → G ) MATHEMATICAL SCRIPT CAPITAL G →
LATIN CAPITAL LETTER G #
+1D4D6 ; 0047 ; MA # ( 𝓖 → G ) MATHEMATICAL BOLD SCRIPT CAPITAL G
→ LATIN CAPITAL LETTER G #
+1D50A ; 0047 ; MA # ( 𝔊 → G ) MATHEMATICAL FRAKTUR CAPITAL G →
LATIN CAPITAL LETTER G #
+1D53E ; 0047 ; MA # ( 𝔾 → G ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
G → LATIN CAPITAL LETTER G #
+1D572 ; 0047 ; MA # ( 𝕲 → G ) MATHEMATICAL BOLD FRAKTUR CAPITAL G
→ LATIN CAPITAL LETTER G #
+1D5A6 ; 0047 ; MA # ( 𝖦 → G ) MATHEMATICAL SANS-SERIF CAPITAL G →
LATIN CAPITAL LETTER G #
+1D5DA ; 0047 ; MA # ( 𝗚 → G ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL G → LATIN CAPITAL LETTER G #
+1D60E ; 0047 ; MA # ( 𝘎 → G ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL G → LATIN CAPITAL LETTER G #
+1D642 ; 0047 ; MA # ( 𝙂 → G ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL G → LATIN CAPITAL LETTER G #
+1D676 ; 0047 ; MA # ( 𝙶 → G ) MATHEMATICAL MONOSPACE CAPITAL G →
LATIN CAPITAL LETTER G #
+050C ; 0047 ; MA # ( Ԍ → G ) CYRILLIC CAPITAL LETTER KOMI SJE → LATIN
CAPITAL LETTER G #
+13C0 ; 0047 ; MA # ( Ꮐ → G ) CHEROKEE LETTER NAH → LATIN CAPITAL LETTER
G #
+13F3 ; 0047 ; MA # ( Ᏻ → G ) CHEROKEE LETTER YU → LATIN CAPITAL LETTER G
#
+A4D6 ; 0047 ; MA # ( ꓖ → G ) LISU LETTER GA → LATIN CAPITAL LETTER G
#
+
+1DA2 ; 1D4D ; MA # ( ᶢ → ᵍ ) MODIFIER LETTER SMALL SCRIPT G → MODIFIER
LETTER SMALL G #
+
+0260 ; 0067 0314 ; MA # ( ɠ → g̔ ) LATIN SMALL LETTER G WITH HOOK →
LATIN SMALL LETTER G, COMBINING REVERSED COMMA ABOVE #
+
+01E7 ; 011F ; MA # ( ǧ → ğ ) LATIN SMALL LETTER G WITH CARON → LATIN
SMALL LETTER G WITH BREVE #
+
+01E6 ; 011E ; MA # ( Ǧ → Ğ ) LATIN CAPITAL LETTER G WITH CARON → LATIN
CAPITAL LETTER G WITH BREVE #
+
+01F5 ; 0123 ; MA # ( ǵ → ģ ) LATIN SMALL LETTER G WITH ACUTE → LATIN
SMALL LETTER G WITH CEDILLA #
+
+01E5 ; 0067 0335 ; MA # ( ǥ → g̵ ) LATIN SMALL LETTER G WITH STROKE →
LATIN SMALL LETTER G, COMBINING SHORT STROKE OVERLAY #
+
+01E4 ; 0047 0335 ; MA # ( Ǥ → G̵ ) LATIN CAPITAL LETTER G WITH STROKE
→ LATIN CAPITAL LETTER G, COMBINING SHORT STROKE OVERLAY #
+
+0193 ; 0047 0027 ; MA # ( Ɠ → G' ) LATIN CAPITAL LETTER G WITH HOOK →
LATIN CAPITAL LETTER G, APOSTROPHE # →Gʽ→
+
+050D ; 0262 ; MA # ( ԍ → ɢ ) CYRILLIC SMALL LETTER KOMI SJE → LATIN
LETTER SMALL CAPITAL G #
+AB90 ; 0262 ; MA # ( ꮐ → ɢ ) CHEROKEE SMALL LETTER NAH → LATIN LETTER
SMALL CAPITAL G #
+13FB ; 0262 ; MA # ( ᏻ → ɢ ) CHEROKEE SMALL LETTER YU → LATIN LETTER
SMALL CAPITAL G #
+
+FF48 ; 0068 ; MA # ( h → h ) FULLWIDTH LATIN SMALL LETTER H → LATIN
SMALL LETTER H # →һ→
+210E ; 0068 ; MA # ( ℎ → h ) PLANCK CONSTANT → LATIN SMALL LETTER H
#
+1D421 ; 0068 ; MA # ( 𝐡 → h ) MATHEMATICAL BOLD SMALL H → LATIN
SMALL LETTER H #
+1D489 ; 0068 ; MA # ( 𝒉 → h ) MATHEMATICAL BOLD ITALIC SMALL H →
LATIN SMALL LETTER H #
+1D4BD ; 0068 ; MA # ( 𝒽 → h ) MATHEMATICAL SCRIPT SMALL H → LATIN
SMALL LETTER H #
+1D4F1 ; 0068 ; MA # ( 𝓱 → h ) MATHEMATICAL BOLD SCRIPT SMALL H →
LATIN SMALL LETTER H #
+1D525 ; 0068 ; MA # ( 𝔥 → h ) MATHEMATICAL FRAKTUR SMALL H →
LATIN SMALL LETTER H #
+1D559 ; 0068 ; MA # ( 𝕙 → h ) MATHEMATICAL DOUBLE-STRUCK SMALL H
→ LATIN SMALL LETTER H #
+1D58D ; 0068 ; MA # ( 𝖍 → h ) MATHEMATICAL BOLD FRAKTUR SMALL H →
LATIN SMALL LETTER H #
+1D5C1 ; 0068 ; MA # ( 𝗁 → h ) MATHEMATICAL SANS-SERIF SMALL H →
LATIN SMALL LETTER H #
+1D5F5 ; 0068 ; MA # ( 𝗵 → h ) MATHEMATICAL SANS-SERIF BOLD SMALL
H → LATIN SMALL LETTER H #
+1D629 ; 0068 ; MA # ( 𝘩 → h ) MATHEMATICAL SANS-SERIF ITALIC
SMALL H → LATIN SMALL LETTER H #
+1D65D ; 0068 ; MA # ( 𝙝 → h ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL H → LATIN SMALL LETTER H #
+1D691 ; 0068 ; MA # ( 𝚑 → h ) MATHEMATICAL MONOSPACE SMALL H →
LATIN SMALL LETTER H #
+04BB ; 0068 ; MA # ( һ → h ) CYRILLIC SMALL LETTER SHHA → LATIN SMALL
LETTER H #
+0570 ; 0068 ; MA # ( հ → h ) ARMENIAN SMALL LETTER HO → LATIN SMALL
LETTER H #
+13C2 ; 0068 ; MA # ( Ꮒ → h ) CHEROKEE LETTER NI → LATIN SMALL LETTER H
#
+
+FF28 ; 0048 ; MA # ( H → H ) FULLWIDTH LATIN CAPITAL LETTER H → LATIN
CAPITAL LETTER H # →Η→
+210B ; 0048 ; MA # ( ℋ → H ) SCRIPT CAPITAL H → LATIN CAPITAL LETTER H
#
+210C ; 0048 ; MA # ( ℌ → H ) BLACK-LETTER CAPITAL H → LATIN CAPITAL
LETTER H #
+210D ; 0048 ; MA # ( ℍ → H ) DOUBLE-STRUCK CAPITAL H → LATIN CAPITAL
LETTER H #
+1D407 ; 0048 ; MA # ( 𝐇 → H ) MATHEMATICAL BOLD CAPITAL H → LATIN
CAPITAL LETTER H #
+1D43B ; 0048 ; MA # ( 𝐻 → H ) MATHEMATICAL ITALIC CAPITAL H →
LATIN CAPITAL LETTER H #
+1D46F ; 0048 ; MA # ( 𝑯 → H ) MATHEMATICAL BOLD ITALIC CAPITAL H
→ LATIN CAPITAL LETTER H #
+1D4D7 ; 0048 ; MA # ( 𝓗 → H ) MATHEMATICAL BOLD SCRIPT CAPITAL H
→ LATIN CAPITAL LETTER H #
+1D573 ; 0048 ; MA # ( 𝕳 → H ) MATHEMATICAL BOLD FRAKTUR CAPITAL H
→ LATIN CAPITAL LETTER H #
+1D5A7 ; 0048 ; MA # ( 𝖧 → H ) MATHEMATICAL SANS-SERIF CAPITAL H →
LATIN CAPITAL LETTER H #
+1D5DB ; 0048 ; MA # ( 𝗛 → H ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL H → LATIN CAPITAL LETTER H #
+1D60F ; 0048 ; MA # ( 𝘏 → H ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL H → LATIN CAPITAL LETTER H #
+1D643 ; 0048 ; MA # ( 𝙃 → H ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL H → LATIN CAPITAL LETTER H #
+1D677 ; 0048 ; MA # ( 𝙷 → H ) MATHEMATICAL MONOSPACE CAPITAL H →
LATIN CAPITAL LETTER H #
+0397 ; 0048 ; MA # ( Η → H ) GREEK CAPITAL LETTER ETA → LATIN CAPITAL
LETTER H #
+1D6AE ; 0048 ; MA # ( 𝚮 → H ) MATHEMATICAL BOLD CAPITAL ETA →
LATIN CAPITAL LETTER H # →Η→
+1D6E8 ; 0048 ; MA # ( 𝛨 → H ) MATHEMATICAL ITALIC CAPITAL ETA →
LATIN CAPITAL LETTER H # →Η→
+1D722 ; 0048 ; MA # ( 𝜢 → H ) MATHEMATICAL BOLD ITALIC CAPITAL
ETA → LATIN CAPITAL LETTER H # →𝑯→
+1D75C ; 0048 ; MA # ( 𝝜 → H ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL ETA → LATIN CAPITAL LETTER H # →Η→
+1D796 ; 0048 ; MA # ( 𝞖 → H ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL ETA → LATIN CAPITAL LETTER H # →Η→
+2C8E ; 0048 ; MA # ( Ⲏ → H ) COPTIC CAPITAL LETTER HATE → LATIN CAPITAL
LETTER H # →Η→
+041D ; 0048 ; MA # ( Н → H ) CYRILLIC CAPITAL LETTER EN → LATIN CAPITAL
LETTER H #
+13BB ; 0048 ; MA # ( Ꮋ → H ) CHEROKEE LETTER MI → LATIN CAPITAL LETTER H
#
+157C ; 0048 ; MA # ( ᕼ → H ) CANADIAN SYLLABICS NUNAVUT H → LATIN
CAPITAL LETTER H #
+A4E7 ; 0048 ; MA # ( ꓧ → H ) LISU LETTER XA → LATIN CAPITAL LETTER H
#
+102CF ; 0048 ; MA # ( 𐋏 → H ) CARIAN LETTER E2 → LATIN CAPITAL
LETTER H #
+
+1D78 ; 1D34 ; MA # ( ᵸ → ᴴ ) MODIFIER LETTER CYRILLIC EN → MODIFIER
LETTER CAPITAL H #
+
+0266 ; 0068 0314 ; MA # ( ɦ → h̔ ) LATIN SMALL LETTER H WITH HOOK →
LATIN SMALL LETTER H, COMBINING REVERSED COMMA ABOVE #
+A695 ; 0068 0314 ; MA # ( ꚕ → h̔ ) CYRILLIC SMALL LETTER HWE → LATIN
SMALL LETTER H, COMBINING REVERSED COMMA ABOVE # →ɦ→
+13F2 ; 0068 0314 ; MA # ( Ᏺ → h̔ ) CHEROKEE LETTER YO → LATIN SMALL
LETTER H, COMBINING REVERSED COMMA ABOVE #
+
+2C67 ; 0048 0329 ; MA # ( Ⱨ → H̩ ) LATIN CAPITAL LETTER H WITH
DESCENDER → LATIN CAPITAL LETTER H, COMBINING VERTICAL LINE BELOW # →Ң→→Н̩→
+04A2 ; 0048 0329 ; MA # ( Ң → H̩ ) CYRILLIC CAPITAL LETTER EN WITH
DESCENDER → LATIN CAPITAL LETTER H, COMBINING VERTICAL LINE BELOW # →Н̩→
+
+0127 ; 0068 0335 ; MA # ( ħ → h̵ ) LATIN SMALL LETTER H WITH STROKE →
LATIN SMALL LETTER H, COMBINING SHORT STROKE OVERLAY #
+210F ; 0068 0335 ; MA # ( ℏ → h̵ ) PLANCK CONSTANT OVER TWO PI →
LATIN SMALL LETTER H, COMBINING SHORT STROKE OVERLAY # →ħ→
+045B ; 0068 0335 ; MA # ( ћ → h̵ ) CYRILLIC SMALL LETTER TSHE → LATIN
SMALL LETTER H, COMBINING SHORT STROKE OVERLAY # →ħ→
+
+0126 ; 0048 0335 ; MA # ( Ħ → H̵ ) LATIN CAPITAL LETTER H WITH STROKE
→ LATIN CAPITAL LETTER H, COMBINING SHORT STROKE OVERLAY #
+
+04C9 ; 0048 0326 ; MA # ( Ӊ → H̦ ) CYRILLIC CAPITAL LETTER EN WITH
TAIL → LATIN CAPITAL LETTER H, COMBINING COMMA BELOW # →Н̡→
+04C7 ; 0048 0326 ; MA # ( Ӈ → H̦ ) CYRILLIC CAPITAL LETTER EN WITH
HOOK → LATIN CAPITAL LETTER H, COMBINING COMMA BELOW # →Н̡→
+
+043D ; 029C ; MA # ( н → ʜ ) CYRILLIC SMALL LETTER EN → LATIN LETTER
SMALL CAPITAL H #
+AB8B ; 029C ; MA # ( ꮋ → ʜ ) CHEROKEE SMALL LETTER MI → LATIN LETTER
SMALL CAPITAL H #
+
+04A3 ; 029C 0329 ; MA # ( ң → ʜ̩ ) CYRILLIC SMALL LETTER EN WITH
DESCENDER → LATIN LETTER SMALL CAPITAL H, COMBINING VERTICAL LINE BELOW #
→н̩→
+
+04CA ; 029C 0326 ; MA # ( ӊ → ʜ̦ ) CYRILLIC SMALL LETTER EN WITH TAIL
→ LATIN LETTER SMALL CAPITAL H, COMBINING COMMA BELOW # →н̡→
+04C8 ; 029C 0326 ; MA # ( ӈ → ʜ̦ ) CYRILLIC SMALL LETTER EN WITH HOOK
→ LATIN LETTER SMALL CAPITAL H, COMBINING COMMA BELOW # →н̡→
+
+050A ; 01F6 ; MA # ( Ԋ → Ƕ ) CYRILLIC CAPITAL LETTER KOMI NJE → LATIN
CAPITAL LETTER HWAIR #
+
+AB80 ; 2C76 ; MA # ( ꮀ → ⱶ ) CHEROKEE SMALL LETTER HO → LATIN SMALL
LETTER HALF H #
+
+0370 ; 2C75 ; MA # ( Ͱ → Ⱶ ) GREEK CAPITAL LETTER HETA → LATIN CAPITAL
LETTER HALF H # →Ꮀ→
+13A8 ; 2C75 ; MA # ( Ꭸ → Ⱶ ) CHEROKEE LETTER GE → LATIN CAPITAL LETTER
HALF H # →Ͱ→→Ꮀ→
+13B0 ; 2C75 ; MA # ( Ꮀ → Ⱶ ) CHEROKEE LETTER HO → LATIN CAPITAL LETTER
HALF H #
+A6B1 ; 2C75 ; MA # ( ꚱ → Ⱶ ) BAMUM LETTER NDAA → LATIN CAPITAL LETTER
HALF H # →Ͱ→→Ꮀ→
+
+A795 ; A727 ; MA # ( ꞕ → ꜧ ) LATIN SMALL LETTER H WITH PALATAL HOOK →
LATIN SMALL LETTER HENG #
+
+02DB ; 0069 ; MA #* ( ˛ → i ) OGONEK → LATIN SMALL LETTER I #
→ͺ→→ι→→ι→
+2373 ; 0069 ; MA #* ( ⍳ → i ) APL FUNCTIONAL SYMBOL IOTA → LATIN SMALL
LETTER I # →ι→
+FF49 ; 0069 ; MA # ( i → i ) FULLWIDTH LATIN SMALL LETTER I → LATIN
SMALL LETTER I # →і→
+2170 ; 0069 ; MA # ( ⅰ → i ) SMALL ROMAN NUMERAL ONE → LATIN SMALL
LETTER I #
+2139 ; 0069 ; MA # ( ℹ → i ) INFORMATION SOURCE → LATIN SMALL LETTER I
#
+2148 ; 0069 ; MA # ( ⅈ → i ) DOUBLE-STRUCK ITALIC SMALL I → LATIN SMALL
LETTER I #
+1D422 ; 0069 ; MA # ( 𝐢 → i ) MATHEMATICAL BOLD SMALL I → LATIN
SMALL LETTER I #
+1D456 ; 0069 ; MA # ( 𝑖 → i ) MATHEMATICAL ITALIC SMALL I → LATIN
SMALL LETTER I #
+1D48A ; 0069 ; MA # ( 𝒊 → i ) MATHEMATICAL BOLD ITALIC SMALL I →
LATIN SMALL LETTER I #
+1D4BE ; 0069 ; MA # ( 𝒾 → i ) MATHEMATICAL SCRIPT SMALL I → LATIN
SMALL LETTER I #
+1D4F2 ; 0069 ; MA # ( 𝓲 → i ) MATHEMATICAL BOLD SCRIPT SMALL I →
LATIN SMALL LETTER I #
+1D526 ; 0069 ; MA # ( 𝔦 → i ) MATHEMATICAL FRAKTUR SMALL I →
LATIN SMALL LETTER I #
+1D55A ; 0069 ; MA # ( 𝕚 → i ) MATHEMATICAL DOUBLE-STRUCK SMALL I
→ LATIN SMALL LETTER I #
+1D58E ; 0069 ; MA # ( 𝖎 → i ) MATHEMATICAL BOLD FRAKTUR SMALL I →
LATIN SMALL LETTER I #
+1D5C2 ; 0069 ; MA # ( 𝗂 → i ) MATHEMATICAL SANS-SERIF SMALL I →
LATIN SMALL LETTER I #
+1D5F6 ; 0069 ; MA # ( 𝗶 → i ) MATHEMATICAL SANS-SERIF BOLD SMALL
I → LATIN SMALL LETTER I #
+1D62A ; 0069 ; MA # ( 𝘪 → i ) MATHEMATICAL SANS-SERIF ITALIC
SMALL I → LATIN SMALL LETTER I #
+1D65E ; 0069 ; MA # ( 𝙞 → i ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL I → LATIN SMALL LETTER I #
+1D692 ; 0069 ; MA # ( 𝚒 → i ) MATHEMATICAL MONOSPACE SMALL I →
LATIN SMALL LETTER I #
+0131 ; 0069 ; MA # ( ı → i ) LATIN SMALL LETTER DOTLESS I → LATIN SMALL
LETTER I #
+1D6A4 ; 0069 ; MA # ( 𝚤 → i ) MATHEMATICAL ITALIC SMALL DOTLESS I
→ LATIN SMALL LETTER I # →ı→
+026A ; 0069 ; MA # ( ɪ → i ) LATIN LETTER SMALL CAPITAL I → LATIN SMALL
LETTER I # →ı→
+0269 ; 0069 ; MA # ( ɩ → i ) LATIN SMALL LETTER IOTA → LATIN SMALL
LETTER I #
+03B9 ; 0069 ; MA # ( ι → i ) GREEK SMALL LETTER IOTA → LATIN SMALL
LETTER I #
+1FBE ; 0069 ; MA # ( ι → i ) GREEK PROSGEGRAMMENI → LATIN SMALL LETTER I
# →ι→
+037A ; 0069 ; MA #* ( ͺ → i ) GREEK YPOGEGRAMMENI → LATIN SMALL LETTER I
# →ι→→ι→
+1D6CA ; 0069 ; MA # ( 𝛊 → i ) MATHEMATICAL BOLD SMALL IOTA →
LATIN SMALL LETTER I # →ι→
+1D704 ; 0069 ; MA # ( 𝜄 → i ) MATHEMATICAL ITALIC SMALL IOTA →
LATIN SMALL LETTER I # →ι→
+1D73E ; 0069 ; MA # ( 𝜾 → i ) MATHEMATICAL BOLD ITALIC SMALL IOTA
→ LATIN SMALL LETTER I # →ι→
+1D778 ; 0069 ; MA # ( 𝝸 → i ) MATHEMATICAL SANS-SERIF BOLD SMALL
IOTA → LATIN SMALL LETTER I # →ι→
+1D7B2 ; 0069 ; MA # ( 𝞲 → i ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL IOTA → LATIN SMALL LETTER I # →ι→
+0456 ; 0069 ; MA # ( і → i ) CYRILLIC SMALL LETTER
BYELORUSSIAN-UKRAINIAN I → LATIN SMALL LETTER I #
+A647 ; 0069 ; MA # ( ꙇ → i ) CYRILLIC SMALL LETTER IOTA → LATIN SMALL
LETTER I # →ι→
+04CF ; 0069 ; MA # ( ӏ → i ) CYRILLIC SMALL LETTER PALOCHKA → LATIN
SMALL LETTER I # →ı→
+AB75 ; 0069 ; MA # ( ꭵ → i ) CHEROKEE SMALL LETTER V → LATIN SMALL
LETTER I #
+13A5 ; 0069 ; MA # ( Ꭵ → i ) CHEROKEE LETTER V → LATIN SMALL LETTER I
#
+118C3 ; 0069 ; MA # ( 𑣃 → i ) WARANG CITI SMALL LETTER YU → LATIN
SMALL LETTER I # →ι→
+
+24DB ; 24BE ; MA #* ( ⓛ → Ⓘ ) CIRCLED LATIN SMALL LETTER L → CIRCLED
LATIN CAPITAL LETTER I #
+
+2378 ; 0069 0332 ; MA #* ( ⍸ → i̲ ) APL FUNCTIONAL SYMBOL IOTA
UNDERBAR → LATIN SMALL LETTER I, COMBINING LOW LINE # →ι̲→
+
+01D0 ; 012D ; MA # ( ǐ → ĭ ) LATIN SMALL LETTER I WITH CARON → LATIN
SMALL LETTER I WITH BREVE #
+
+01CF ; 012C ; MA # ( Ǐ → Ĭ ) LATIN CAPITAL LETTER I WITH CARON → LATIN
CAPITAL LETTER I WITH BREVE #
+
+0268 ; 0069 0335 ; MA # ( ɨ → i̵ ) LATIN SMALL LETTER I WITH STROKE →
LATIN SMALL LETTER I, COMBINING SHORT STROKE OVERLAY #
+1D7B ; 0069 0335 ; MA # ( ᵻ → i̵ ) LATIN SMALL CAPITAL LETTER I WITH
STROKE → LATIN SMALL LETTER I, COMBINING SHORT STROKE OVERLAY # →ɪ̵→
+1D7C ; 0069 0335 ; MA # ( ᵼ → i̵ ) LATIN SMALL LETTER IOTA WITH
STROKE → LATIN SMALL LETTER I, COMBINING SHORT STROKE OVERLAY # →ɩ̵→
+
+2171 ; 0069 0069 ; MA # ( ⅱ → ii ) SMALL ROMAN NUMERAL TWO → LATIN
SMALL LETTER I, LATIN SMALL LETTER I #
+
+2172 ; 0069 0069 0069 ; MA # ( ⅲ → iii ) SMALL ROMAN NUMERAL THREE
→ LATIN SMALL LETTER I, LATIN SMALL LETTER I, LATIN SMALL LETTER I #
+
+0133 ; 0069 006A ; MA # ( ij → ij ) LATIN SMALL LIGATURE IJ → LATIN
SMALL LETTER I, LATIN SMALL LETTER J #
+
+2173 ; 0069 0076 ; MA # ( ⅳ → iv ) SMALL ROMAN NUMERAL FOUR → LATIN
SMALL LETTER I, LATIN SMALL LETTER V #
+
+2178 ; 0069 0078 ; MA # ( ⅸ → ix ) SMALL ROMAN NUMERAL NINE → LATIN
SMALL LETTER I, LATIN SMALL LETTER X #
+
+FF4A ; 006A ; MA # ( j → j ) FULLWIDTH LATIN SMALL LETTER J → LATIN
SMALL LETTER J # →ϳ→
+2149 ; 006A ; MA # ( ⅉ → j ) DOUBLE-STRUCK ITALIC SMALL J → LATIN SMALL
LETTER J #
+1D423 ; 006A ; MA # ( 𝐣 → j ) MATHEMATICAL BOLD SMALL J → LATIN
SMALL LETTER J #
+1D457 ; 006A ; MA # ( 𝑗 → j ) MATHEMATICAL ITALIC SMALL J → LATIN
SMALL LETTER J #
+1D48B ; 006A ; MA # ( 𝒋 → j ) MATHEMATICAL BOLD ITALIC SMALL J →
LATIN SMALL LETTER J #
+1D4BF ; 006A ; MA # ( 𝒿 → j ) MATHEMATICAL SCRIPT SMALL J → LATIN
SMALL LETTER J #
+1D4F3 ; 006A ; MA # ( 𝓳 → j ) MATHEMATICAL BOLD SCRIPT SMALL J →
LATIN SMALL LETTER J #
+1D527 ; 006A ; MA # ( 𝔧 → j ) MATHEMATICAL FRAKTUR SMALL J →
LATIN SMALL LETTER J #
+1D55B ; 006A ; MA # ( 𝕛 → j ) MATHEMATICAL DOUBLE-STRUCK SMALL J
→ LATIN SMALL LETTER J #
+1D58F ; 006A ; MA # ( 𝖏 → j ) MATHEMATICAL BOLD FRAKTUR SMALL J →
LATIN SMALL LETTER J #
+1D5C3 ; 006A ; MA # ( 𝗃 → j ) MATHEMATICAL SANS-SERIF SMALL J →
LATIN SMALL LETTER J #
+1D5F7 ; 006A ; MA # ( 𝗷 → j ) MATHEMATICAL SANS-SERIF BOLD SMALL
J → LATIN SMALL LETTER J #
+1D62B ; 006A ; MA # ( 𝘫 → j ) MATHEMATICAL SANS-SERIF ITALIC
SMALL J → LATIN SMALL LETTER J #
+1D65F ; 006A ; MA # ( 𝙟 → j ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL J → LATIN SMALL LETTER J #
+1D693 ; 006A ; MA # ( 𝚓 → j ) MATHEMATICAL MONOSPACE SMALL J →
LATIN SMALL LETTER J #
+03F3 ; 006A ; MA # ( ϳ → j ) GREEK LETTER YOT → LATIN SMALL LETTER J
#
+0458 ; 006A ; MA # ( ј → j ) CYRILLIC SMALL LETTER JE → LATIN SMALL
LETTER J #
+
+FF2A ; 004A ; MA # ( J → J ) FULLWIDTH LATIN CAPITAL LETTER J → LATIN
CAPITAL LETTER J # →Ј→
+1D409 ; 004A ; MA # ( 𝐉 → J ) MATHEMATICAL BOLD CAPITAL J → LATIN
CAPITAL LETTER J #
+1D43D ; 004A ; MA # ( 𝐽 → J ) MATHEMATICAL ITALIC CAPITAL J →
LATIN CAPITAL LETTER J #
+1D471 ; 004A ; MA # ( 𝑱 → J ) MATHEMATICAL BOLD ITALIC CAPITAL J
→ LATIN CAPITAL LETTER J #
+1D4A5 ; 004A ; MA # ( 𝒥 → J ) MATHEMATICAL SCRIPT CAPITAL J →
LATIN CAPITAL LETTER J #
+1D4D9 ; 004A ; MA # ( 𝓙 → J ) MATHEMATICAL BOLD SCRIPT CAPITAL J
→ LATIN CAPITAL LETTER J #
+1D50D ; 004A ; MA # ( 𝔍 → J ) MATHEMATICAL FRAKTUR CAPITAL J →
LATIN CAPITAL LETTER J #
+1D541 ; 004A ; MA # ( 𝕁 → J ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
J → LATIN CAPITAL LETTER J #
+1D575 ; 004A ; MA # ( 𝕵 → J ) MATHEMATICAL BOLD FRAKTUR CAPITAL J
→ LATIN CAPITAL LETTER J #
+1D5A9 ; 004A ; MA # ( 𝖩 → J ) MATHEMATICAL SANS-SERIF CAPITAL J →
LATIN CAPITAL LETTER J #
+1D5DD ; 004A ; MA # ( 𝗝 → J ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL J → LATIN CAPITAL LETTER J #
+1D611 ; 004A ; MA # ( 𝘑 → J ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL J → LATIN CAPITAL LETTER J #
+1D645 ; 004A ; MA # ( 𝙅 → J ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL J → LATIN CAPITAL LETTER J #
+1D679 ; 004A ; MA # ( 𝙹 → J ) MATHEMATICAL MONOSPACE CAPITAL J →
LATIN CAPITAL LETTER J #
+A7B2 ; 004A ; MA # ( Ʝ → J ) LATIN CAPITAL LETTER J WITH CROSSED-TAIL →
LATIN CAPITAL LETTER J #
+037F ; 004A ; MA # ( Ϳ → J ) GREEK CAPITAL LETTER YOT → LATIN CAPITAL
LETTER J #
+0408 ; 004A ; MA # ( Ј → J ) CYRILLIC CAPITAL LETTER JE → LATIN CAPITAL
LETTER J #
+13AB ; 004A ; MA # ( Ꭻ → J ) CHEROKEE LETTER GU → LATIN CAPITAL LETTER J
#
+148D ; 004A ; MA # ( ᒍ → J ) CANADIAN SYLLABICS CO → LATIN CAPITAL
LETTER J #
+A4D9 ; 004A ; MA # ( ꓙ → J ) LISU LETTER JA → LATIN CAPITAL LETTER J
#
+
+0249 ; 006A 0335 ; MA # ( ɉ → j̵ ) LATIN SMALL LETTER J WITH STROKE →
LATIN SMALL LETTER J, COMBINING SHORT STROKE OVERLAY #
+
+0248 ; 004A 0335 ; MA # ( Ɉ → J̵ ) LATIN CAPITAL LETTER J WITH STROKE
→ LATIN CAPITAL LETTER J, COMBINING SHORT STROKE OVERLAY #
+
+1499 ; 004A 00B7 ; MA # ( ᒙ → J· ) CANADIAN SYLLABICS WEST-CREE CWO →
LATIN CAPITAL LETTER J, MIDDLE DOT # →ᒍᐧ→
+
+1D6A5 ; 0237 ; MA # ( 𝚥 → ȷ ) MATHEMATICAL ITALIC SMALL DOTLESS J
→ LATIN SMALL LETTER DOTLESS J #
+0575 ; 0237 ; MA # ( յ → ȷ ) ARMENIAN SMALL LETTER YI → LATIN SMALL
LETTER DOTLESS J #
+
+AB7B ; 1D0A ; MA # ( ꭻ → ᴊ ) CHEROKEE SMALL LETTER GU → LATIN LETTER
SMALL CAPITAL J #
+
+1D424 ; 006B ; MA # ( 𝐤 → k ) MATHEMATICAL BOLD SMALL K → LATIN
SMALL LETTER K #
+1D458 ; 006B ; MA # ( 𝑘 → k ) MATHEMATICAL ITALIC SMALL K → LATIN
SMALL LETTER K #
+1D48C ; 006B ; MA # ( 𝒌 → k ) MATHEMATICAL BOLD ITALIC SMALL K →
LATIN SMALL LETTER K #
+1D4C0 ; 006B ; MA # ( 𝓀 → k ) MATHEMATICAL SCRIPT SMALL K → LATIN
SMALL LETTER K #
+1D4F4 ; 006B ; MA # ( 𝓴 → k ) MATHEMATICAL BOLD SCRIPT SMALL K →
LATIN SMALL LETTER K #
+1D528 ; 006B ; MA # ( 𝔨 → k ) MATHEMATICAL FRAKTUR SMALL K →
LATIN SMALL LETTER K #
+1D55C ; 006B ; MA # ( 𝕜 → k ) MATHEMATICAL DOUBLE-STRUCK SMALL K
→ LATIN SMALL LETTER K #
+1D590 ; 006B ; MA # ( 𝖐 → k ) MATHEMATICAL BOLD FRAKTUR SMALL K →
LATIN SMALL LETTER K #
+1D5C4 ; 006B ; MA # ( 𝗄 → k ) MATHEMATICAL SANS-SERIF SMALL K →
LATIN SMALL LETTER K #
+1D5F8 ; 006B ; MA # ( 𝗸 → k ) MATHEMATICAL SANS-SERIF BOLD SMALL
K → LATIN SMALL LETTER K #
+1D62C ; 006B ; MA # ( 𝘬 → k ) MATHEMATICAL SANS-SERIF ITALIC
SMALL K → LATIN SMALL LETTER K #
+1D660 ; 006B ; MA # ( 𝙠 → k ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL K → LATIN SMALL LETTER K #
+1D694 ; 006B ; MA # ( 𝚔 → k ) MATHEMATICAL MONOSPACE SMALL K →
LATIN SMALL LETTER K #
+
+212A ; 004B ; MA # ( K → K ) KELVIN SIGN → LATIN CAPITAL LETTER K
#
+FF2B ; 004B ; MA # ( K → K ) FULLWIDTH LATIN CAPITAL LETTER K → LATIN
CAPITAL LETTER K # →Κ→
+1D40A ; 004B ; MA # ( 𝐊 → K ) MATHEMATICAL BOLD CAPITAL K → LATIN
CAPITAL LETTER K #
+1D43E ; 004B ; MA # ( 𝐾 → K ) MATHEMATICAL ITALIC CAPITAL K →
LATIN CAPITAL LETTER K #
+1D472 ; 004B ; MA # ( 𝑲 → K ) MATHEMATICAL BOLD ITALIC CAPITAL K
→ LATIN CAPITAL LETTER K #
+1D4A6 ; 004B ; MA # ( 𝒦 → K ) MATHEMATICAL SCRIPT CAPITAL K →
LATIN CAPITAL LETTER K #
+1D4DA ; 004B ; MA # ( 𝓚 → K ) MATHEMATICAL BOLD SCRIPT CAPITAL K
→ LATIN CAPITAL LETTER K #
+1D50E ; 004B ; MA # ( 𝔎 → K ) MATHEMATICAL FRAKTUR CAPITAL K →
LATIN CAPITAL LETTER K #
+1D542 ; 004B ; MA # ( 𝕂 → K ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
K → LATIN CAPITAL LETTER K #
+1D576 ; 004B ; MA # ( 𝕶 → K ) MATHEMATICAL BOLD FRAKTUR CAPITAL K
→ LATIN CAPITAL LETTER K #
+1D5AA ; 004B ; MA # ( 𝖪 → K ) MATHEMATICAL SANS-SERIF CAPITAL K →
LATIN CAPITAL LETTER K #
+1D5DE ; 004B ; MA # ( 𝗞 → K ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL K → LATIN CAPITAL LETTER K #
+1D612 ; 004B ; MA # ( 𝘒 → K ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL K → LATIN CAPITAL LETTER K #
+1D646 ; 004B ; MA # ( 𝙆 → K ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL K → LATIN CAPITAL LETTER K #
+1D67A ; 004B ; MA # ( 𝙺 → K ) MATHEMATICAL MONOSPACE CAPITAL K →
LATIN CAPITAL LETTER K #
+039A ; 004B ; MA # ( Κ → K ) GREEK CAPITAL LETTER KAPPA → LATIN CAPITAL
LETTER K #
+1D6B1 ; 004B ; MA # ( 𝚱 → K ) MATHEMATICAL BOLD CAPITAL KAPPA →
LATIN CAPITAL LETTER K # →Κ→
+1D6EB ; 004B ; MA # ( 𝛫 → K ) MATHEMATICAL ITALIC CAPITAL KAPPA →
LATIN CAPITAL LETTER K # →𝐾→
+1D725 ; 004B ; MA # ( 𝜥 → K ) MATHEMATICAL BOLD ITALIC CAPITAL
KAPPA → LATIN CAPITAL LETTER K # →𝑲→
+1D75F ; 004B ; MA # ( 𝝟 → K ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL KAPPA → LATIN CAPITAL LETTER K # →Κ→
+1D799 ; 004B ; MA # ( 𝞙 → K ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL KAPPA → LATIN CAPITAL LETTER K # →Κ→
+2C94 ; 004B ; MA # ( Ⲕ → K ) COPTIC CAPITAL LETTER KAPA → LATIN CAPITAL
LETTER K # →Κ→
+041A ; 004B ; MA # ( К → K ) CYRILLIC CAPITAL LETTER KA → LATIN CAPITAL
LETTER K #
+13E6 ; 004B ; MA # ( Ꮶ → K ) CHEROKEE LETTER TSO → LATIN CAPITAL LETTER
K #
+16D5 ; 004B ; MA # ( ᛕ → K ) RUNIC LETTER OPEN-P → LATIN CAPITAL LETTER
K #
+A4D7 ; 004B ; MA # ( ꓗ → K ) LISU LETTER KA → LATIN CAPITAL LETTER K
#
+10518 ; 004B ; MA # ( 𐔘 → K ) ELBASAN LETTER QE → LATIN CAPITAL
LETTER K #
+
+0199 ; 006B 0314 ; MA # ( ƙ → k̔ ) LATIN SMALL LETTER K WITH HOOK →
LATIN SMALL LETTER K, COMBINING REVERSED COMMA ABOVE #
+
+2C69 ; 004B 0329 ; MA # ( Ⱪ → K̩ ) LATIN CAPITAL LETTER K WITH
DESCENDER → LATIN CAPITAL LETTER K, COMBINING VERTICAL LINE BELOW # →Қ→→К̩→
+049A ; 004B 0329 ; MA # ( Қ → K̩ ) CYRILLIC CAPITAL LETTER KA WITH
DESCENDER → LATIN CAPITAL LETTER K, COMBINING VERTICAL LINE BELOW # →К̩→
+
+20AD ; 004B 0335 ; MA #* ( ₭ → K̵ ) KIP SIGN → LATIN CAPITAL LETTER
K, COMBINING SHORT STROKE OVERLAY # →K̶→
+A740 ; 004B 0335 ; MA # ( Ꝁ → K̵ ) LATIN CAPITAL LETTER K WITH STROKE
→ LATIN CAPITAL LETTER K, COMBINING SHORT STROKE OVERLAY # →Ҟ→→К̵→
+049E ; 004B 0335 ; MA # ( Ҟ → K̵ ) CYRILLIC CAPITAL LETTER KA WITH
STROKE → LATIN CAPITAL LETTER K, COMBINING SHORT STROKE OVERLAY # →К̵→
+
+0198 ; 004B 0027 ; MA # ( Ƙ → K' ) LATIN CAPITAL LETTER K WITH HOOK →
LATIN CAPITAL LETTER K, APOSTROPHE # →Kʽ→
+
+05C0 ; 006C ; MA #* ( ׀ → l ) HEBREW PUNCTUATION PASEQ → LATIN SMALL
LETTER L # →|→
+007C ; 006C ; MA #* ( | → l ) VERTICAL LINE → LATIN SMALL LETTER L
#
+2223 ; 006C ; MA #* ( ∣ → l ) DIVIDES → LATIN SMALL LETTER L # →ǀ→
+23FD ; 006C ; MA #* ( ⏽ → l ) POWER ON SYMBOL → LATIN SMALL LETTER L
# →I→
+FFE8 ; 006C ; MA #* ( │ → l ) HALFWIDTH FORMS LIGHT VERTICAL → LATIN
SMALL LETTER L # →|→
+0031 ; 006C ; MA # ( 1 → l ) DIGIT ONE → LATIN SMALL LETTER L #
+0661 ; 006C ; MA # ( ١ → l ) ARABIC-INDIC DIGIT ONE → LATIN SMALL
LETTER L # →1→
+06F1 ; 006C ; MA # ( ۱ → l ) EXTENDED ARABIC-INDIC DIGIT ONE → LATIN
SMALL LETTER L # →1→
+10320 ; 006C ; MA #* ( 𐌠 → l ) OLD ITALIC NUMERAL ONE → LATIN
SMALL LETTER L # →𐌉→→I→
+1E8C7 ; 006C ; MA #* ( 𞣇 → l ) MENDE KIKAKUI DIGIT ONE → LATIN
SMALL LETTER L #
+1D7CF ; 006C ; MA # ( 𝟏 → l ) MATHEMATICAL BOLD DIGIT ONE → LATIN
SMALL LETTER L # →1→
+1D7D9 ; 006C ; MA # ( 𝟙 → l ) MATHEMATICAL DOUBLE-STRUCK DIGIT
ONE → LATIN SMALL LETTER L # →1→
+1D7E3 ; 006C ; MA # ( 𝟣 → l ) MATHEMATICAL SANS-SERIF DIGIT ONE →
LATIN SMALL LETTER L # →1→
+1D7ED ; 006C ; MA # ( 𝟭 → l ) MATHEMATICAL SANS-SERIF BOLD DIGIT
ONE → LATIN SMALL LETTER L # →1→
+1D7F7 ; 006C ; MA # ( 𝟷 → l ) MATHEMATICAL MONOSPACE DIGIT ONE →
LATIN SMALL LETTER L # →1→
+1FBF1 ; 006C ; MA # ( 🯱 → l ) SEGMENTED DIGIT ONE → LATIN SMALL
LETTER L # →1→
+0049 ; 006C ; MA # ( I → l ) LATIN CAPITAL LETTER I → LATIN SMALL LETTER
L #
+FF29 ; 006C ; MA # ( I → l ) FULLWIDTH LATIN CAPITAL LETTER I → LATIN
SMALL LETTER L # →Ӏ→
+2160 ; 006C ; MA # ( Ⅰ → l ) ROMAN NUMERAL ONE → LATIN SMALL LETTER L
# →Ӏ→
+2110 ; 006C ; MA # ( ℐ → l ) SCRIPT CAPITAL I → LATIN SMALL LETTER L
# →I→
+2111 ; 006C ; MA # ( ℑ → l ) BLACK-LETTER CAPITAL I → LATIN SMALL LETTER
L # →I→
+1D408 ; 006C ; MA # ( 𝐈 → l ) MATHEMATICAL BOLD CAPITAL I → LATIN
SMALL LETTER L # →I→
+1D43C ; 006C ; MA # ( 𝐼 → l ) MATHEMATICAL ITALIC CAPITAL I →
LATIN SMALL LETTER L # →I→
+1D470 ; 006C ; MA # ( 𝑰 → l ) MATHEMATICAL BOLD ITALIC CAPITAL I
→ LATIN SMALL LETTER L # →I→
+1D4D8 ; 006C ; MA # ( 𝓘 → l ) MATHEMATICAL BOLD SCRIPT CAPITAL I
→ LATIN SMALL LETTER L # →I→
+1D540 ; 006C ; MA # ( 𝕀 → l ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
I → LATIN SMALL LETTER L # →I→
+1D574 ; 006C ; MA # ( 𝕴 → l ) MATHEMATICAL BOLD FRAKTUR CAPITAL I
→ LATIN SMALL LETTER L # →I→
+1D5A8 ; 006C ; MA # ( 𝖨 → l ) MATHEMATICAL SANS-SERIF CAPITAL I →
LATIN SMALL LETTER L # →I→
+1D5DC ; 006C ; MA # ( 𝗜 → l ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL I → LATIN SMALL LETTER L # →I→
+1D610 ; 006C ; MA # ( 𝘐 → l ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL I → LATIN SMALL LETTER L # →I→
+1D644 ; 006C ; MA # ( 𝙄 → l ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL I → LATIN SMALL LETTER L # →I→
+1D678 ; 006C ; MA # ( 𝙸 → l ) MATHEMATICAL MONOSPACE CAPITAL I →
LATIN SMALL LETTER L # →I→
+0196 ; 006C ; MA # ( Ɩ → l ) LATIN CAPITAL LETTER IOTA → LATIN SMALL
LETTER L #
+FF4C ; 006C ; MA # ( l → l ) FULLWIDTH LATIN SMALL LETTER L → LATIN
SMALL LETTER L # →Ⅰ→→Ӏ→
+217C ; 006C ; MA # ( ⅼ → l ) SMALL ROMAN NUMERAL FIFTY → LATIN SMALL
LETTER L #
+2113 ; 006C ; MA # ( ℓ → l ) SCRIPT SMALL L → LATIN SMALL LETTER L
#
+1D425 ; 006C ; MA # ( 𝐥 → l ) MATHEMATICAL BOLD SMALL L → LATIN
SMALL LETTER L #
+1D459 ; 006C ; MA # ( 𝑙 → l ) MATHEMATICAL ITALIC SMALL L → LATIN
SMALL LETTER L #
+1D48D ; 006C ; MA # ( 𝒍 → l ) MATHEMATICAL BOLD ITALIC SMALL L →
LATIN SMALL LETTER L #
+1D4C1 ; 006C ; MA # ( 𝓁 → l ) MATHEMATICAL SCRIPT SMALL L → LATIN
SMALL LETTER L #
+1D4F5 ; 006C ; MA # ( 𝓵 → l ) MATHEMATICAL BOLD SCRIPT SMALL L →
LATIN SMALL LETTER L #
+1D529 ; 006C ; MA # ( 𝔩 → l ) MATHEMATICAL FRAKTUR SMALL L →
LATIN SMALL LETTER L #
+1D55D ; 006C ; MA # ( 𝕝 → l ) MATHEMATICAL DOUBLE-STRUCK SMALL L
→ LATIN SMALL LETTER L #
+1D591 ; 006C ; MA # ( 𝖑 → l ) MATHEMATICAL BOLD FRAKTUR SMALL L →
LATIN SMALL LETTER L #
+1D5C5 ; 006C ; MA # ( 𝗅 → l ) MATHEMATICAL SANS-SERIF SMALL L →
LATIN SMALL LETTER L #
+1D5F9 ; 006C ; MA # ( 𝗹 → l ) MATHEMATICAL SANS-SERIF BOLD SMALL
L → LATIN SMALL LETTER L #
+1D62D ; 006C ; MA # ( 𝘭 → l ) MATHEMATICAL SANS-SERIF ITALIC
SMALL L → LATIN SMALL LETTER L #
+1D661 ; 006C ; MA # ( 𝙡 → l ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL L → LATIN SMALL LETTER L #
+1D695 ; 006C ; MA # ( 𝚕 → l ) MATHEMATICAL MONOSPACE SMALL L →
LATIN SMALL LETTER L #
+01C0 ; 006C ; MA # ( ǀ → l ) LATIN LETTER DENTAL CLICK → LATIN SMALL
LETTER L #
+0399 ; 006C ; MA # ( Ι → l ) GREEK CAPITAL LETTER IOTA → LATIN SMALL
LETTER L #
+1D6B0 ; 006C ; MA # ( 𝚰 → l ) MATHEMATICAL BOLD CAPITAL IOTA →
LATIN SMALL LETTER L # →Ι→
+1D6EA ; 006C ; MA # ( 𝛪 → l ) MATHEMATICAL ITALIC CAPITAL IOTA →
LATIN SMALL LETTER L # →Ι→
+1D724 ; 006C ; MA # ( 𝜤 → l ) MATHEMATICAL BOLD ITALIC CAPITAL
IOTA → LATIN SMALL LETTER L # →Ι→
+1D75E ; 006C ; MA # ( 𝝞 → l ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL IOTA → LATIN SMALL LETTER L # →Ι→
+1D798 ; 006C ; MA # ( 𝞘 → l ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL IOTA → LATIN SMALL LETTER L # →Ι→
+2C92 ; 006C ; MA # ( Ⲓ → l ) COPTIC CAPITAL LETTER IAUDA → LATIN SMALL
LETTER L # →Ӏ→
+0406 ; 006C ; MA # ( І → l ) CYRILLIC CAPITAL LETTER
BYELORUSSIAN-UKRAINIAN I → LATIN SMALL LETTER L #
+04C0 ; 006C ; MA # ( Ӏ → l ) CYRILLIC LETTER PALOCHKA → LATIN SMALL
LETTER L #
+05D5 ; 006C ; MA # ( ו → l ) HEBREW LETTER VAV → LATIN SMALL LETTER L
#
+05DF ; 006C ; MA # ( ן → l ) HEBREW LETTER FINAL NUN → LATIN SMALL
LETTER L #
+0627 ; 006C ; MA # ( ا → l ) ARABIC LETTER ALEF → LATIN SMALL LETTER L
# →1→
+1EE00 ; 006C ; MA # ( 𞸀 → l ) ARABIC MATHEMATICAL ALEF → LATIN
SMALL LETTER L # →ا→→1→
+1EE80 ; 006C ; MA # ( 𞺀 → l ) ARABIC MATHEMATICAL LOOPED ALEF →
LATIN SMALL LETTER L # →ا→→1→
+FE8E ; 006C ; MA # ( ﺎ → l ) ARABIC LETTER ALEF FINAL FORM → LATIN
SMALL LETTER L # →ا→→1→
+FE8D ; 006C ; MA # ( ﺍ → l ) ARABIC LETTER ALEF ISOLATED FORM → LATIN
SMALL LETTER L # →ا→→1→
+07CA ; 006C ; MA # ( ߊ → l ) NKO LETTER A → LATIN SMALL LETTER L
# →∣→→ǀ→
+2D4F ; 006C ; MA # ( ⵏ → l ) TIFINAGH LETTER YAN → LATIN SMALL LETTER L
# →Ӏ→
+16C1 ; 006C ; MA # ( ᛁ → l ) RUNIC LETTER ISAZ IS ISS I → LATIN SMALL
LETTER L # →I→
+A4F2 ; 006C ; MA # ( ꓲ → l ) LISU LETTER I → LATIN SMALL LETTER L
# →I→
+16F28 ; 006C ; MA # ( 𖼨 → l ) MIAO LETTER GHA → LATIN SMALL
LETTER L # →I→
+1028A ; 006C ; MA # ( 𐊊 → l ) LYCIAN LETTER J → LATIN SMALL
LETTER L # →I→
+10309 ; 006C ; MA # ( 𐌉 → l ) OLD ITALIC LETTER I → LATIN SMALL
LETTER L # →I→
+
+1D22A ; 004C ; MA #* ( 𝈪 → L ) GREEK INSTRUMENTAL NOTATION
SYMBOL-23 → LATIN CAPITAL LETTER L #
+216C ; 004C ; MA # ( Ⅼ → L ) ROMAN NUMERAL FIFTY → LATIN CAPITAL LETTER
L #
+2112 ; 004C ; MA # ( ℒ → L ) SCRIPT CAPITAL L → LATIN CAPITAL LETTER L
#
+1D40B ; 004C ; MA # ( 𝐋 → L ) MATHEMATICAL BOLD CAPITAL L → LATIN
CAPITAL LETTER L #
+1D43F ; 004C ; MA # ( 𝐿 → L ) MATHEMATICAL ITALIC CAPITAL L →
LATIN CAPITAL LETTER L #
+1D473 ; 004C ; MA # ( 𝑳 → L ) MATHEMATICAL BOLD ITALIC CAPITAL L
→ LATIN CAPITAL LETTER L #
+1D4DB ; 004C ; MA # ( 𝓛 → L ) MATHEMATICAL BOLD SCRIPT CAPITAL L
→ LATIN CAPITAL LETTER L #
+1D50F ; 004C ; MA # ( 𝔏 → L ) MATHEMATICAL FRAKTUR CAPITAL L →
LATIN CAPITAL LETTER L #
+1D543 ; 004C ; MA # ( 𝕃 → L ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
L → LATIN CAPITAL LETTER L #
+1D577 ; 004C ; MA # ( 𝕷 → L ) MATHEMATICAL BOLD FRAKTUR CAPITAL L
→ LATIN CAPITAL LETTER L #
+1D5AB ; 004C ; MA # ( 𝖫 → L ) MATHEMATICAL SANS-SERIF CAPITAL L →
LATIN CAPITAL LETTER L #
+1D5DF ; 004C ; MA # ( 𝗟 → L ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL L → LATIN CAPITAL LETTER L #
+1D613 ; 004C ; MA # ( 𝘓 → L ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL L → LATIN CAPITAL LETTER L #
+1D647 ; 004C ; MA # ( 𝙇 → L ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL L → LATIN CAPITAL LETTER L #
+1D67B ; 004C ; MA # ( 𝙻 → L ) MATHEMATICAL MONOSPACE CAPITAL L →
LATIN CAPITAL LETTER L #
+2CD0 ; 004C ; MA # ( Ⳑ → L ) COPTIC CAPITAL LETTER L-SHAPED HA → LATIN
CAPITAL LETTER L #
+13DE ; 004C ; MA # ( Ꮮ → L ) CHEROKEE LETTER TLE → LATIN CAPITAL LETTER
L #
+14AA ; 004C ; MA # ( ᒪ → L ) CANADIAN SYLLABICS MA → LATIN CAPITAL
LETTER L #
+A4E1 ; 004C ; MA # ( ꓡ → L ) LISU LETTER LA → LATIN CAPITAL LETTER L
#
+16F16 ; 004C ; MA # ( 𖼖 → L ) MIAO LETTER LA → LATIN CAPITAL
LETTER L #
+118A3 ; 004C ; MA # ( 𑢣 → L ) WARANG CITI CAPITAL LETTER YU →
LATIN CAPITAL LETTER L #
+118B2 ; 004C ; MA # ( 𑢲 → L ) WARANG CITI CAPITAL LETTER TTE →
LATIN CAPITAL LETTER L #
+1041B ; 004C ; MA # ( 𐐛 → L ) DESERET CAPITAL LETTER ETH → LATIN
CAPITAL LETTER L #
+10526 ; 004C ; MA # ( 𐔦 → L ) ELBASAN LETTER GHAMMA → LATIN
CAPITAL LETTER L #
+
+FD3C ; 006C 030B ; MA # ( ﴼ → l̋ ) ARABIC LIGATURE ALEF WITH
FATHATAN FINAL FORM → LATIN SMALL LETTER L, COMBINING DOUBLE ACUTE ACCENT
# →اً→
+FD3D ; 006C 030B ; MA # ( ﴽ → l̋ ) ARABIC LIGATURE ALEF WITH
FATHATAN ISOLATED FORM → LATIN SMALL LETTER L, COMBINING DOUBLE ACUTE ACCENT
# →اً→
+
+0142 ; 006C 0338 ; MA # ( ł → l̸ ) LATIN SMALL LETTER L WITH STROKE →
LATIN SMALL LETTER L, COMBINING LONG SOLIDUS OVERLAY # →l̷→
+
+0141 ; 004C 0338 ; MA # ( Ł → L̸ ) LATIN CAPITAL LETTER L WITH STROKE
→ LATIN CAPITAL LETTER L, COMBINING LONG SOLIDUS OVERLAY # →L̷→
+
+026D ; 006C 0328 ; MA # ( ɭ → l̨ ) LATIN SMALL LETTER L WITH
RETROFLEX HOOK → LATIN SMALL LETTER L, COMBINING OGONEK # →l̢→
+
+0197 ; 006C 0335 ; MA # ( Ɨ → l̵ ) LATIN CAPITAL LETTER I WITH STROKE
→ LATIN SMALL LETTER L, COMBINING SHORT STROKE OVERLAY # →ƚ→
+019A ; 006C 0335 ; MA # ( ƚ → l̵ ) LATIN SMALL LETTER L WITH BAR →
LATIN SMALL LETTER L, COMBINING SHORT STROKE OVERLAY #
+
+026B ; 006C 0334 ; MA # ( ɫ → l̴ ) LATIN SMALL LETTER L WITH MIDDLE
TILDE → LATIN SMALL LETTER L, COMBINING TILDE OVERLAY #
+
+0625 ; 006C 0655 ; MA # ( إ → lٕ ) ARABIC LETTER ALEF WITH HAMZA
BELOW → LATIN SMALL LETTER L, ARABIC HAMZA BELOW # →ٳ→→اٟ→
+FE88 ; 006C 0655 ; MA # ( ﺈ → lٕ ) ARABIC LETTER ALEF WITH HAMZA
BELOW FINAL FORM → LATIN SMALL LETTER L, ARABIC HAMZA BELOW #
→إ→→ٳ→→اٟ→
+FE87 ; 006C 0655 ; MA # ( ﺇ → lٕ ) ARABIC LETTER ALEF WITH HAMZA
BELOW ISOLATED FORM → LATIN SMALL LETTER L, ARABIC HAMZA BELOW #
→إ→→ٳ→→اٟ→
+0673 ; 006C 0655 ; MA # ( ٳ → lٕ ) ARABIC LETTER ALEF WITH WAVY
HAMZA BELOW → LATIN SMALL LETTER L, ARABIC HAMZA BELOW # →اٟ→
+
+0140 ; 006C 00B7 ; MA # ( ŀ → l· ) LATIN SMALL LETTER L WITH MIDDLE
DOT → LATIN SMALL LETTER L, MIDDLE DOT #
+013F ; 006C 00B7 ; MA # ( Ŀ → l· ) LATIN CAPITAL LETTER L WITH MIDDLE
DOT → LATIN SMALL LETTER L, MIDDLE DOT # →L·→→ᒪ·→→ᒪᐧ→→ᒷ→→1ᐧ→
+14B7 ; 006C 00B7 ; MA # ( ᒷ → l· ) CANADIAN SYLLABICS WEST-CREE MWA →
LATIN SMALL LETTER L, MIDDLE DOT # →1ᐧ→
+
+1F102 ; 006C 002C ; MA #* ( 🄂 → l, ) DIGIT ONE COMMA → LATIN
SMALL LETTER L, COMMA # →1,→
+
+2488 ; 006C 002E ; MA #* ( ⒈ → l. ) DIGIT ONE FULL STOP → LATIN SMALL
LETTER L, FULL STOP # →1.→
+
+05F1 ; 006C 0027 ; MA # ( ױ → l' ) HEBREW LIGATURE YIDDISH VAV YOD
→ LATIN SMALL LETTER L, APOSTROPHE # →וי→
+
+2493 ; 006C 0032 002E ; MA #* ( ⒓ → l2. ) NUMBER TWELVE FULL STOP
→ LATIN SMALL LETTER L, DIGIT TWO, FULL STOP # →12.→
+
+33EB ; 006C 0032 65E5 ; MA #* ( ㏫ → l2日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY TWELVE → LATIN SMALL LETTER L, DIGIT TWO, CJK UNIFIED
IDEOGRAPH-65E5 # →12日→
+
+32CB ; 006C 0032 6708 ; MA #* ( ㋋ → l2月 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DECEMBER → LATIN SMALL LETTER L, DIGIT TWO, CJK UNIFIED
IDEOGRAPH-6708 # →12月→
+
+3364 ; 006C 0032 70B9 ; MA #* ( ㍤ → l2点 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR HOUR TWELVE → LATIN SMALL LETTER L, DIGIT TWO, CJK UNIFIED
IDEOGRAPH-70B9 # →12点→
+
+2494 ; 006C 0033 002E ; MA #* ( ⒔ → l3. ) NUMBER THIRTEEN FULL
STOP → LATIN SMALL LETTER L, DIGIT THREE, FULL STOP # →13.→
+
+33EC ; 006C 0033 65E5 ; MA #* ( ㏬ → l3日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY THIRTEEN → LATIN SMALL LETTER L, DIGIT THREE, CJK UNIFIED
IDEOGRAPH-65E5 # →13日→
+
+3365 ; 006C 0033 70B9 ; MA #* ( ㍥ → l3点 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR HOUR THIRTEEN → LATIN SMALL LETTER L, DIGIT THREE, CJK UNIFIED
IDEOGRAPH-70B9 # →13点→
+
+2495 ; 006C 0034 002E ; MA #* ( ⒕ → l4. ) NUMBER FOURTEEN FULL
STOP → LATIN SMALL LETTER L, DIGIT FOUR, FULL STOP # →14.→
+
+33ED ; 006C 0034 65E5 ; MA #* ( ㏭ → l4日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY FOURTEEN → LATIN SMALL LETTER L, DIGIT FOUR, CJK UNIFIED
IDEOGRAPH-65E5 # →14日→
+
+3366 ; 006C 0034 70B9 ; MA #* ( ㍦ → l4点 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR HOUR FOURTEEN → LATIN SMALL LETTER L, DIGIT FOUR, CJK UNIFIED
IDEOGRAPH-70B9 # →14点→
+
+2496 ; 006C 0035 002E ; MA #* ( ⒖ → l5. ) NUMBER FIFTEEN FULL STOP
→ LATIN SMALL LETTER L, DIGIT FIVE, FULL STOP # →15.→
+
+33EE ; 006C 0035 65E5 ; MA #* ( ㏮ → l5日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY FIFTEEN → LATIN SMALL LETTER L, DIGIT FIVE, CJK UNIFIED
IDEOGRAPH-65E5 # →15日→
+
+3367 ; 006C 0035 70B9 ; MA #* ( ㍧ → l5点 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR HOUR FIFTEEN → LATIN SMALL LETTER L, DIGIT FIVE, CJK UNIFIED
IDEOGRAPH-70B9 # →15点→
+
+2497 ; 006C 0036 002E ; MA #* ( ⒗ → l6. ) NUMBER SIXTEEN FULL STOP
→ LATIN SMALL LETTER L, DIGIT SIX, FULL STOP # →16.→
+
+33EF ; 006C 0036 65E5 ; MA #* ( ㏯ → l6日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY SIXTEEN → LATIN SMALL LETTER L, DIGIT SIX, CJK UNIFIED
IDEOGRAPH-65E5 # →16日→
+
+3368 ; 006C 0036 70B9 ; MA #* ( ㍨ → l6点 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR HOUR SIXTEEN → LATIN SMALL LETTER L, DIGIT SIX, CJK UNIFIED
IDEOGRAPH-70B9 # →16点→
+
+2498 ; 006C 0037 002E ; MA #* ( ⒘ → l7. ) NUMBER SEVENTEEN FULL
STOP → LATIN SMALL LETTER L, DIGIT SEVEN, FULL STOP # →17.→
+
+33F0 ; 006C 0037 65E5 ; MA #* ( ㏰ → l7日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY SEVENTEEN → LATIN SMALL LETTER L, DIGIT SEVEN, CJK UNIFIED
IDEOGRAPH-65E5 # →17日→
+
+3369 ; 006C 0037 70B9 ; MA #* ( ㍩ → l7点 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR HOUR SEVENTEEN → LATIN SMALL LETTER L, DIGIT SEVEN, CJK UNIFIED
IDEOGRAPH-70B9 # →17点→
+
+2499 ; 006C 0038 002E ; MA #* ( ⒙ → l8. ) NUMBER EIGHTEEN FULL
STOP → LATIN SMALL LETTER L, DIGIT EIGHT, FULL STOP # →18.→
+
+33F1 ; 006C 0038 65E5 ; MA #* ( ㏱ → l8日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY EIGHTEEN → LATIN SMALL LETTER L, DIGIT EIGHT, CJK UNIFIED
IDEOGRAPH-65E5 # →18日→
+
+336A ; 006C 0038 70B9 ; MA #* ( ㍪ → l8点 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR HOUR EIGHTEEN → LATIN SMALL LETTER L, DIGIT EIGHT, CJK UNIFIED
IDEOGRAPH-70B9 # →18点→
+
+249A ; 006C 0039 002E ; MA #* ( ⒚ → l9. ) NUMBER NINETEEN FULL
STOP → LATIN SMALL LETTER L, DIGIT NINE, FULL STOP # →19.→
+
+33F2 ; 006C 0039 65E5 ; MA #* ( ㏲ → l9日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY NINETEEN → LATIN SMALL LETTER L, DIGIT NINE, CJK UNIFIED
IDEOGRAPH-65E5 # →19日→
+
+336B ; 006C 0039 70B9 ; MA #* ( ㍫ → l9点 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR HOUR NINETEEN → LATIN SMALL LETTER L, DIGIT NINE, CJK UNIFIED
IDEOGRAPH-70B9 # →19点→
+
+01C9 ; 006C 006A ; MA # ( lj → lj ) LATIN SMALL LETTER LJ → LATIN
SMALL LETTER L, LATIN SMALL LETTER J #
+
+0132 ; 006C 004A ; MA # ( IJ → lJ ) LATIN CAPITAL LIGATURE IJ → LATIN
SMALL LETTER L, LATIN CAPITAL LETTER J # →IJ→
+
+01C8 ; 004C 006A ; MA # ( Lj → Lj ) LATIN CAPITAL LETTER L WITH SMALL
LETTER J → LATIN CAPITAL LETTER L, LATIN SMALL LETTER J #
+
+01C7 ; 004C 004A ; MA # ( LJ → LJ ) LATIN CAPITAL LETTER LJ → LATIN
CAPITAL LETTER L, LATIN CAPITAL LETTER J #
+
+2016 ; 006C 006C ; MA #* ( ‖ → ll ) DOUBLE VERTICAL LINE → LATIN
SMALL LETTER L, LATIN SMALL LETTER L # →∥→→||→
+2225 ; 006C 006C ; MA #* ( ∥ → ll ) PARALLEL TO → LATIN SMALL LETTER
L, LATIN SMALL LETTER L # →||→
+2161 ; 006C 006C ; MA # ( Ⅱ → ll ) ROMAN NUMERAL TWO → LATIN SMALL
LETTER L, LATIN SMALL LETTER L # →II→
+01C1 ; 006C 006C ; MA # ( ǁ → ll ) LATIN LETTER LATERAL CLICK → LATIN
SMALL LETTER L, LATIN SMALL LETTER L # →‖→→∥→→||→
+05F0 ; 006C 006C ; MA # ( װ → ll ) HEBREW LIGATURE YIDDISH DOUBLE
VAV → LATIN SMALL LETTER L, LATIN SMALL LETTER L # →וו→
+
+10199 ; 006C 0335 006C 0335 ; MA #* ( 𐆙 → l̵l̵ ) ROMAN DUPONDIUS
SIGN → LATIN SMALL LETTER L, COMBINING SHORT STROKE OVERLAY, LATIN SMALL LETTER
L, COMBINING SHORT STROKE OVERLAY # →I̶I̶→
+
+2492 ; 006C 006C 002E ; MA #* ( ⒒ → ll. ) NUMBER ELEVEN FULL STOP
→ LATIN SMALL LETTER L, LATIN SMALL LETTER L, FULL STOP # →11.→
+
+2162 ; 006C 006C 006C ; MA # ( Ⅲ → lll ) ROMAN NUMERAL THREE →
LATIN SMALL LETTER L, LATIN SMALL LETTER L, LATIN SMALL LETTER L # →III→
+
+10198 ; 006C 0335 006C 0335 0053 0335 ; MA #* ( 𐆘 → l̵l̵S̵ ) ROMAN
SESTERTIUS SIGN → LATIN SMALL LETTER L, COMBINING SHORT STROKE OVERLAY, LATIN
SMALL LETTER L, COMBINING SHORT STROKE OVERLAY, LATIN CAPITAL LETTER S,
COMBINING SHORT STROKE OVERLAY # →I̶I̶S̶→
+
+33EA ; 006C 006C 65E5 ; MA #* ( ㏪ → ll日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY ELEVEN → LATIN SMALL LETTER L, LATIN SMALL LETTER L, CJK UNIFIED
IDEOGRAPH-65E5 # →11日→
+
+32CA ; 006C 006C 6708 ; MA #* ( ㋊ → ll月 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR NOVEMBER → LATIN SMALL LETTER L, LATIN SMALL LETTER L, CJK UNIFIED
IDEOGRAPH-6708 # →11月→
+
+3363 ; 006C 006C 70B9 ; MA #* ( ㍣ → ll点 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR HOUR ELEVEN → LATIN SMALL LETTER L, LATIN SMALL LETTER L, CJK
UNIFIED IDEOGRAPH-70B9 # →11点→
+
+042E ; 006C 004F ; MA # ( Ю → lO ) CYRILLIC CAPITAL LETTER YU → LATIN
SMALL LETTER L, LATIN CAPITAL LETTER O # →IO→
+
+2491 ; 006C 004F 002E ; MA #* ( ⒑ → lO. ) NUMBER TEN FULL STOP →
LATIN SMALL LETTER L, LATIN CAPITAL LETTER O, FULL STOP # →10.→
+
+33E9 ; 006C 004F 65E5 ; MA #* ( ㏩ → lO日 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR DAY TEN → LATIN SMALL LETTER L, LATIN CAPITAL LETTER O, CJK UNIFIED
IDEOGRAPH-65E5 # →10日→
+
+32C9 ; 006C 004F 6708 ; MA #* ( ㋉ → lO月 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR OCTOBER → LATIN SMALL LETTER L, LATIN CAPITAL LETTER O, CJK UNIFIED
IDEOGRAPH-6708 # →10月→
+
+3362 ; 006C 004F 70B9 ; MA #* ( ㍢ → lO点 ) IDEOGRAPHIC TELEGRAPH
SYMBOL FOR HOUR TEN → LATIN SMALL LETTER L, LATIN CAPITAL LETTER O, CJK UNIFIED
IDEOGRAPH-70B9 # →10点→
+
+02AA ; 006C 0073 ; MA # ( ʪ → ls ) LATIN SMALL LETTER LS DIGRAPH →
LATIN SMALL LETTER L, LATIN SMALL LETTER S #
+
+20B6 ; 006C 0074 ; MA #* ( ₶ → lt ) LIVRE TOURNOIS SIGN → LATIN SMALL
LETTER L, LATIN SMALL LETTER T #
+
+2163 ; 006C 0056 ; MA # ( Ⅳ → lV ) ROMAN NUMERAL FOUR → LATIN SMALL
LETTER L, LATIN CAPITAL LETTER V # →IV→
+
+2168 ; 006C 0058 ; MA # ( Ⅸ → lX ) ROMAN NUMERAL NINE → LATIN SMALL
LETTER L, LATIN CAPITAL LETTER X # →IX→
+
+026E ; 006C 021D ; MA # ( ɮ → lȝ ) LATIN SMALL LETTER LEZH → LATIN
SMALL LETTER L, LATIN SMALL LETTER YOGH # →lʒ→
+
+02AB ; 006C 007A ; MA # ( ʫ → lz ) LATIN SMALL LETTER LZ DIGRAPH →
LATIN SMALL LETTER L, LATIN SMALL LETTER Z #
+
+0623 ; 006C 0674 ; MA # ( أ → lٴ ) ARABIC LETTER ALEF WITH HAMZA
ABOVE → LATIN SMALL LETTER L, ARABIC LETTER HIGH HAMZA # →ٵ→→اٴ→
+FE84 ; 006C 0674 ; MA # ( ﺄ → lٴ ) ARABIC LETTER ALEF WITH HAMZA
ABOVE FINAL FORM → LATIN SMALL LETTER L, ARABIC LETTER HIGH HAMZA #
→أ→→ٵ→→اٴ→
+FE83 ; 006C 0674 ; MA # ( ﺃ → lٴ ) ARABIC LETTER ALEF WITH HAMZA
ABOVE ISOLATED FORM → LATIN SMALL LETTER L, ARABIC LETTER HIGH HAMZA #
→ٵ→→اٴ→
+0672 ; 006C 0674 ; MA # ( ٲ → lٴ ) ARABIC LETTER ALEF WITH WAVY
HAMZA ABOVE → LATIN SMALL LETTER L, ARABIC LETTER HIGH HAMZA #
→أ→→ٵ→→اٴ→
+0675 ; 006C 0674 ; MA # ( ٵ → lٴ ) ARABIC LETTER HIGH HAMZA ALEF
→ LATIN SMALL LETTER L, ARABIC LETTER HIGH HAMZA # →اٴ→
+
+FDF3 ; 006C 0643 0628 0631 ; MA # ( ﷳ → lكبر ) ARABIC LIGATURE
AKBAR ISOLATED FORM → LATIN SMALL LETTER L, ARABIC LETTER KAF, ARABIC LETTER
BEH, ARABIC LETTER REH # →اكبر→
+
+FDF2 ; 006C 0644 0644 0651 0670 006F ; MA # ( ﷲ → lللّٰo ) ARABIC
LIGATURE ALLAH ISOLATED FORM → LATIN SMALL LETTER L, ARABIC LETTER LAM, ARABIC
LETTER LAM, ARABIC SHADDA, ARABIC LETTER SUPERSCRIPT ALEF, LATIN SMALL LETTER O
# →اللّٰه→
+
+33E0 ; 006C 65E5 ; MA #* ( ㏠ → l日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
DAY ONE → LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-65E5 # →1日→
+
+32C0 ; 006C 6708 ; MA #* ( ㋀ → l月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
JANUARY → LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-6708 # →1月→
+
+3359 ; 006C 70B9 ; MA #* ( ㍙ → l点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
HOUR ONE → LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-70B9 # →1点→
+
+2CD1 ; 029F ; MA # ( ⳑ → ʟ ) COPTIC SMALL LETTER L-SHAPED HA → LATIN
LETTER SMALL CAPITAL L #
+ABAE ; 029F ; MA # ( ꮮ → ʟ ) CHEROKEE SMALL LETTER TLE → LATIN LETTER
SMALL CAPITAL L #
+10443 ; 029F ; MA # ( 𐑃 → ʟ ) DESERET SMALL LETTER ETH → LATIN
LETTER SMALL CAPITAL L #
+
+FF2D ; 004D ; MA # ( M → M ) FULLWIDTH LATIN CAPITAL LETTER M → LATIN
CAPITAL LETTER M # →Μ→
+216F ; 004D ; MA # ( Ⅿ → M ) ROMAN NUMERAL ONE THOUSAND → LATIN CAPITAL
LETTER M #
+2133 ; 004D ; MA # ( ℳ → M ) SCRIPT CAPITAL M → LATIN CAPITAL LETTER M
#
+1D40C ; 004D ; MA # ( 𝐌 → M ) MATHEMATICAL BOLD CAPITAL M → LATIN
CAPITAL LETTER M #
+1D440 ; 004D ; MA # ( 𝑀 → M ) MATHEMATICAL ITALIC CAPITAL M →
LATIN CAPITAL LETTER M #
+1D474 ; 004D ; MA # ( 𝑴 → M ) MATHEMATICAL BOLD ITALIC CAPITAL M
→ LATIN CAPITAL LETTER M #
+1D4DC ; 004D ; MA # ( 𝓜 → M ) MATHEMATICAL BOLD SCRIPT CAPITAL M
→ LATIN CAPITAL LETTER M #
+1D510 ; 004D ; MA # ( 𝔐 → M ) MATHEMATICAL FRAKTUR CAPITAL M →
LATIN CAPITAL LETTER M #
+1D544 ; 004D ; MA # ( 𝕄 → M ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
M → LATIN CAPITAL LETTER M #
+1D578 ; 004D ; MA # ( 𝕸 → M ) MATHEMATICAL BOLD FRAKTUR CAPITAL M
→ LATIN CAPITAL LETTER M #
+1D5AC ; 004D ; MA # ( 𝖬 → M ) MATHEMATICAL SANS-SERIF CAPITAL M →
LATIN CAPITAL LETTER M #
+1D5E0 ; 004D ; MA # ( 𝗠 → M ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL M → LATIN CAPITAL LETTER M #
+1D614 ; 004D ; MA # ( 𝘔 → M ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL M → LATIN CAPITAL LETTER M #
+1D648 ; 004D ; MA # ( 𝙈 → M ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL M → LATIN CAPITAL LETTER M #
+1D67C ; 004D ; MA # ( 𝙼 → M ) MATHEMATICAL MONOSPACE CAPITAL M →
LATIN CAPITAL LETTER M #
+039C ; 004D ; MA # ( Μ → M ) GREEK CAPITAL LETTER MU → LATIN CAPITAL
LETTER M #
+1D6B3 ; 004D ; MA # ( 𝚳 → M ) MATHEMATICAL BOLD CAPITAL MU →
LATIN CAPITAL LETTER M # →𝐌→
+1D6ED ; 004D ; MA # ( 𝛭 → M ) MATHEMATICAL ITALIC CAPITAL MU →
LATIN CAPITAL LETTER M # →𝑀→
+1D727 ; 004D ; MA # ( 𝜧 → M ) MATHEMATICAL BOLD ITALIC CAPITAL MU
→ LATIN CAPITAL LETTER M # →𝑴→
+1D761 ; 004D ; MA # ( 𝝡 → M ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL MU → LATIN CAPITAL LETTER M # →Μ→
+1D79B ; 004D ; MA # ( 𝞛 → M ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL MU → LATIN CAPITAL LETTER M # →Μ→
+03FA ; 004D ; MA # ( Ϻ → M ) GREEK CAPITAL LETTER SAN → LATIN CAPITAL
LETTER M #
+2C98 ; 004D ; MA # ( Ⲙ → M ) COPTIC CAPITAL LETTER MI → LATIN CAPITAL
LETTER M #
+041C ; 004D ; MA # ( М → M ) CYRILLIC CAPITAL LETTER EM → LATIN CAPITAL
LETTER M #
+13B7 ; 004D ; MA # ( Ꮇ → M ) CHEROKEE LETTER LU → LATIN CAPITAL LETTER M
#
+15F0 ; 004D ; MA # ( ᗰ → M ) CANADIAN SYLLABICS CARRIER GO → LATIN
CAPITAL LETTER M #
+16D6 ; 004D ; MA # ( ᛖ → M ) RUNIC LETTER EHWAZ EH E → LATIN CAPITAL
LETTER M #
+A4DF ; 004D ; MA # ( ꓟ → M ) LISU LETTER MA → LATIN CAPITAL LETTER M
#
+102B0 ; 004D ; MA # ( 𐊰 → M ) CARIAN LETTER S → LATIN CAPITAL
LETTER M #
+10311 ; 004D ; MA # ( 𐌑 → M ) OLD ITALIC LETTER SHE → LATIN
CAPITAL LETTER M #
+
+04CD ; 004D 0326 ; MA # ( Ӎ → M̦ ) CYRILLIC CAPITAL LETTER EM WITH
TAIL → LATIN CAPITAL LETTER M, COMBINING COMMA BELOW # →М̡→
+
+1F76B ; 004D 0042 ; MA #* ( 🝫 → MB ) ALCHEMICAL SYMBOL FOR
BATH OF MARY → LATIN CAPITAL LETTER M, LATIN CAPITAL LETTER B #
+
+2DE8 ; 1DDF ; MA # ( ⷨ → ᷟ ) COMBINING CYRILLIC LETTER EM → COMBINING
LATIN LETTER SMALL CAPITAL M #
+
+1D427 ; 006E ; MA # ( 𝐧 → n ) MATHEMATICAL BOLD SMALL N → LATIN
SMALL LETTER N #
+1D45B ; 006E ; MA # ( 𝑛 → n ) MATHEMATICAL ITALIC SMALL N → LATIN
SMALL LETTER N #
+1D48F ; 006E ; MA # ( 𝒏 → n ) MATHEMATICAL BOLD ITALIC SMALL N →
LATIN SMALL LETTER N #
+1D4C3 ; 006E ; MA # ( 𝓃 → n ) MATHEMATICAL SCRIPT SMALL N → LATIN
SMALL LETTER N #
+1D4F7 ; 006E ; MA # ( 𝓷 → n ) MATHEMATICAL BOLD SCRIPT SMALL N →
LATIN SMALL LETTER N #
+1D52B ; 006E ; MA # ( 𝔫 → n ) MATHEMATICAL FRAKTUR SMALL N →
LATIN SMALL LETTER N #
+1D55F ; 006E ; MA # ( 𝕟 → n ) MATHEMATICAL DOUBLE-STRUCK SMALL N
→ LATIN SMALL LETTER N #
+1D593 ; 006E ; MA # ( 𝖓 → n ) MATHEMATICAL BOLD FRAKTUR SMALL N →
LATIN SMALL LETTER N #
+1D5C7 ; 006E ; MA # ( 𝗇 → n ) MATHEMATICAL SANS-SERIF SMALL N →
LATIN SMALL LETTER N #
+1D5FB ; 006E ; MA # ( 𝗻 → n ) MATHEMATICAL SANS-SERIF BOLD SMALL
N → LATIN SMALL LETTER N #
+1D62F ; 006E ; MA # ( 𝘯 → n ) MATHEMATICAL SANS-SERIF ITALIC
SMALL N → LATIN SMALL LETTER N #
+1D663 ; 006E ; MA # ( 𝙣 → n ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL N → LATIN SMALL LETTER N #
+1D697 ; 006E ; MA # ( 𝚗 → n ) MATHEMATICAL MONOSPACE SMALL N →
LATIN SMALL LETTER N #
+0578 ; 006E ; MA # ( ո → n ) ARMENIAN SMALL LETTER VO → LATIN SMALL
LETTER N #
+057C ; 006E ; MA # ( ռ → n ) ARMENIAN SMALL LETTER RA → LATIN SMALL
LETTER N #
+
+FF2E ; 004E ; MA # ( N → N ) FULLWIDTH LATIN CAPITAL LETTER N → LATIN
CAPITAL LETTER N # →Ν→
+2115 ; 004E ; MA # ( ℕ → N ) DOUBLE-STRUCK CAPITAL N → LATIN CAPITAL
LETTER N #
+1D40D ; 004E ; MA # ( 𝐍 → N ) MATHEMATICAL BOLD CAPITAL N → LATIN
CAPITAL LETTER N #
+1D441 ; 004E ; MA # ( 𝑁 → N ) MATHEMATICAL ITALIC CAPITAL N →
LATIN CAPITAL LETTER N #
+1D475 ; 004E ; MA # ( 𝑵 → N ) MATHEMATICAL BOLD ITALIC CAPITAL N
→ LATIN CAPITAL LETTER N #
+1D4A9 ; 004E ; MA # ( 𝒩 → N ) MATHEMATICAL SCRIPT CAPITAL N →
LATIN CAPITAL LETTER N #
+1D4DD ; 004E ; MA # ( 𝓝 → N ) MATHEMATICAL BOLD SCRIPT CAPITAL N
→ LATIN CAPITAL LETTER N #
+1D511 ; 004E ; MA # ( 𝔑 → N ) MATHEMATICAL FRAKTUR CAPITAL N →
LATIN CAPITAL LETTER N #
+1D579 ; 004E ; MA # ( 𝕹 → N ) MATHEMATICAL BOLD FRAKTUR CAPITAL N
→ LATIN CAPITAL LETTER N #
+1D5AD ; 004E ; MA # ( 𝖭 → N ) MATHEMATICAL SANS-SERIF CAPITAL N →
LATIN CAPITAL LETTER N #
+1D5E1 ; 004E ; MA # ( 𝗡 → N ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL N → LATIN CAPITAL LETTER N #
+1D615 ; 004E ; MA # ( 𝘕 → N ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL N → LATIN CAPITAL LETTER N #
+1D649 ; 004E ; MA # ( 𝙉 → N ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL N → LATIN CAPITAL LETTER N #
+1D67D ; 004E ; MA # ( 𝙽 → N ) MATHEMATICAL MONOSPACE CAPITAL N →
LATIN CAPITAL LETTER N #
+039D ; 004E ; MA # ( Ν → N ) GREEK CAPITAL LETTER NU → LATIN CAPITAL
LETTER N #
+1D6B4 ; 004E ; MA # ( 𝚴 → N ) MATHEMATICAL BOLD CAPITAL NU →
LATIN CAPITAL LETTER N # →𝐍→
+1D6EE ; 004E ; MA # ( 𝛮 → N ) MATHEMATICAL ITALIC CAPITAL NU →
LATIN CAPITAL LETTER N # →𝑁→
+1D728 ; 004E ; MA # ( 𝜨 → N ) MATHEMATICAL BOLD ITALIC CAPITAL NU
→ LATIN CAPITAL LETTER N # →𝑵→
+1D762 ; 004E ; MA # ( 𝝢 → N ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL NU → LATIN CAPITAL LETTER N # →Ν→
+1D79C ; 004E ; MA # ( 𝞜 → N ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL NU → LATIN CAPITAL LETTER N # →Ν→
+2C9A ; 004E ; MA # ( Ⲛ → N ) COPTIC CAPITAL LETTER NI → LATIN CAPITAL
LETTER N #
+A4E0 ; 004E ; MA # ( ꓠ → N ) LISU LETTER NA → LATIN CAPITAL LETTER N
#
+10513 ; 004E ; MA # ( 𐔓 → N ) ELBASAN LETTER NE → LATIN CAPITAL
LETTER N #
+
+1018E ; 004E 030A ; MA #* ( 𐆎 → N̊ ) NOMISMA SIGN → LATIN
CAPITAL LETTER N, COMBINING RING ABOVE # →Νͦ→
+
+0273 ; 006E 0328 ; MA # ( ɳ → n̨ ) LATIN SMALL LETTER N WITH
RETROFLEX HOOK → LATIN SMALL LETTER N, COMBINING OGONEK # →n̢→
+
+019E ; 006E 0329 ; MA # ( ƞ → n̩ ) LATIN SMALL LETTER N WITH LONG
RIGHT LEG → LATIN SMALL LETTER N, COMBINING VERTICAL LINE BELOW #
+03B7 ; 006E 0329 ; MA # ( η → n̩ ) GREEK SMALL LETTER ETA → LATIN
SMALL LETTER N, COMBINING VERTICAL LINE BELOW # →ƞ→
+1D6C8 ; 006E 0329 ; MA # ( 𝛈 → n̩ ) MATHEMATICAL BOLD SMALL
ETA → LATIN SMALL LETTER N, COMBINING VERTICAL LINE BELOW # →η→→ƞ→
+1D702 ; 006E 0329 ; MA # ( 𝜂 → n̩ ) MATHEMATICAL ITALIC SMALL
ETA → LATIN SMALL LETTER N, COMBINING VERTICAL LINE BELOW # →η→→ƞ→
+1D73C ; 006E 0329 ; MA # ( 𝜼 → n̩ ) MATHEMATICAL BOLD ITALIC
SMALL ETA → LATIN SMALL LETTER N, COMBINING VERTICAL LINE BELOW # →η→→ƞ→
+1D776 ; 006E 0329 ; MA # ( 𝝶 → n̩ ) MATHEMATICAL SANS-SERIF
BOLD SMALL ETA → LATIN SMALL LETTER N, COMBINING VERTICAL LINE BELOW #
→η→→ƞ→
+1D7B0 ; 006E 0329 ; MA # ( 𝞰 → n̩ ) MATHEMATICAL SANS-SERIF
BOLD ITALIC SMALL ETA → LATIN SMALL LETTER N, COMBINING VERTICAL LINE BELOW
# →η→→ƞ→
+
+019D ; 004E 0326 ; MA # ( Ɲ → N̦ ) LATIN CAPITAL LETTER N WITH LEFT
HOOK → LATIN CAPITAL LETTER N, COMBINING COMMA BELOW # →N̡→
+
+1D70 ; 006E 0334 ; MA # ( ᵰ → n̴ ) LATIN SMALL LETTER N WITH MIDDLE
TILDE → LATIN SMALL LETTER N, COMBINING TILDE OVERLAY #
+
+01CC ; 006E 006A ; MA # ( nj → nj ) LATIN SMALL LETTER NJ → LATIN
SMALL LETTER N, LATIN SMALL LETTER J #
+
+01CB ; 004E 006A ; MA # ( Nj → Nj ) LATIN CAPITAL LETTER N WITH SMALL
LETTER J → LATIN CAPITAL LETTER N, LATIN SMALL LETTER J #
+
+01CA ; 004E 004A ; MA # ( NJ → NJ ) LATIN CAPITAL LETTER NJ → LATIN
CAPITAL LETTER N, LATIN CAPITAL LETTER J #
+
+2116 ; 004E 006F ; MA #* ( № → No ) NUMERO SIGN → LATIN CAPITAL
LETTER N, LATIN SMALL LETTER O #
+
+0377 ; 1D0E ; MA # ( ͷ → ᴎ ) GREEK SMALL LETTER PAMPHYLIAN DIGAMMA →
LATIN LETTER SMALL CAPITAL REVERSED N # →и→
+0438 ; 1D0E ; MA # ( и → ᴎ ) CYRILLIC SMALL LETTER I → LATIN LETTER
SMALL CAPITAL REVERSED N #
+1044D ; 1D0E ; MA # ( 𐑍 → ᴎ ) DESERET SMALL LETTER ENG → LATIN
LETTER SMALL CAPITAL REVERSED N # →и→
+
+0146 ; 0272 ; MA # ( ņ → ɲ ) LATIN SMALL LETTER N WITH CEDILLA → LATIN
SMALL LETTER N WITH LEFT HOOK #
+
+0C02 ; 006F ; MA # ( ం → o ) TELUGU SIGN ANUSVARA → LATIN SMALL LETTER O
#
+0C82 ; 006F ; MA # ( ಂ → o ) KANNADA SIGN ANUSVARA → LATIN SMALL LETTER
O #
+0D02 ; 006F ; MA # ( ം → o ) MALAYALAM SIGN ANUSVARA → LATIN SMALL
LETTER O #
+0D82 ; 006F ; MA # ( ං → o ) SINHALA SIGN ANUSVARAYA → LATIN SMALL
LETTER O #
+0966 ; 006F ; MA # ( ० → o ) DEVANAGARI DIGIT ZERO → LATIN SMALL LETTER
O #
+0A66 ; 006F ; MA # ( ੦ → o ) GURMUKHI DIGIT ZERO → LATIN SMALL LETTER O
#
+0AE6 ; 006F ; MA # ( ૦ → o ) GUJARATI DIGIT ZERO → LATIN SMALL LETTER O
#
+0BE6 ; 006F ; MA # ( ௦ → o ) TAMIL DIGIT ZERO → LATIN SMALL LETTER O
#
+0C66 ; 006F ; MA # ( ౦ → o ) TELUGU DIGIT ZERO → LATIN SMALL LETTER O
#
+0CE6 ; 006F ; MA # ( ೦ → o ) KANNADA DIGIT ZERO → LATIN SMALL LETTER O
# →౦→
+0D66 ; 006F ; MA # ( ൦ → o ) MALAYALAM DIGIT ZERO → LATIN SMALL LETTER O
#
+0E50 ; 006F ; MA # ( ๐ → o ) THAI DIGIT ZERO → LATIN SMALL LETTER O
#
+0ED0 ; 006F ; MA # ( ໐ → o ) LAO DIGIT ZERO → LATIN SMALL LETTER O
#
+1040 ; 006F ; MA # ( ၀ → o ) MYANMAR DIGIT ZERO → LATIN SMALL LETTER O
#
+0665 ; 006F ; MA # ( ٥ → o ) ARABIC-INDIC DIGIT FIVE → LATIN SMALL
LETTER O #
+06F5 ; 006F ; MA # ( ۵ → o ) EXTENDED ARABIC-INDIC DIGIT FIVE → LATIN
SMALL LETTER O # →٥→
+FF4F ; 006F ; MA # ( o → o ) FULLWIDTH LATIN SMALL LETTER O → LATIN
SMALL LETTER O # →о→
+2134 ; 006F ; MA # ( ℴ → o ) SCRIPT SMALL O → LATIN SMALL LETTER O
#
+1D428 ; 006F ; MA # ( 𝐨 → o ) MATHEMATICAL BOLD SMALL O → LATIN
SMALL LETTER O #
+1D45C ; 006F ; MA # ( 𝑜 → o ) MATHEMATICAL ITALIC SMALL O → LATIN
SMALL LETTER O #
+1D490 ; 006F ; MA # ( 𝒐 → o ) MATHEMATICAL BOLD ITALIC SMALL O →
LATIN SMALL LETTER O #
+1D4F8 ; 006F ; MA # ( 𝓸 → o ) MATHEMATICAL BOLD SCRIPT SMALL O →
LATIN SMALL LETTER O #
+1D52C ; 006F ; MA # ( 𝔬 → o ) MATHEMATICAL FRAKTUR SMALL O →
LATIN SMALL LETTER O #
+1D560 ; 006F ; MA # ( 𝕠 → o ) MATHEMATICAL DOUBLE-STRUCK SMALL O
→ LATIN SMALL LETTER O #
+1D594 ; 006F ; MA # ( 𝖔 → o ) MATHEMATICAL BOLD FRAKTUR SMALL O →
LATIN SMALL LETTER O #
+1D5C8 ; 006F ; MA # ( 𝗈 → o ) MATHEMATICAL SANS-SERIF SMALL O →
LATIN SMALL LETTER O #
+1D5FC ; 006F ; MA # ( 𝗼 → o ) MATHEMATICAL SANS-SERIF BOLD SMALL
O → LATIN SMALL LETTER O #
+1D630 ; 006F ; MA # ( 𝘰 → o ) MATHEMATICAL SANS-SERIF ITALIC
SMALL O → LATIN SMALL LETTER O #
+1D664 ; 006F ; MA # ( 𝙤 → o ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL O → LATIN SMALL LETTER O #
+1D698 ; 006F ; MA # ( 𝚘 → o ) MATHEMATICAL MONOSPACE SMALL O →
LATIN SMALL LETTER O #
+1D0F ; 006F ; MA # ( ᴏ → o ) LATIN LETTER SMALL CAPITAL O → LATIN SMALL
LETTER O #
+1D11 ; 006F ; MA # ( ᴑ → o ) LATIN SMALL LETTER SIDEWAYS O → LATIN SMALL
LETTER O #
+AB3D ; 006F ; MA # ( ꬽ → o ) LATIN SMALL LETTER BLACKLETTER O → LATIN
SMALL LETTER O #
+03BF ; 006F ; MA # ( ο → o ) GREEK SMALL LETTER OMICRON → LATIN SMALL
LETTER O #
+1D6D0 ; 006F ; MA # ( 𝛐 → o ) MATHEMATICAL BOLD SMALL OMICRON →
LATIN SMALL LETTER O # →𝐨→
+1D70A ; 006F ; MA # ( 𝜊 → o ) MATHEMATICAL ITALIC SMALL OMICRON →
LATIN SMALL LETTER O # →𝑜→
+1D744 ; 006F ; MA # ( 𝝄 → o ) MATHEMATICAL BOLD ITALIC SMALL
OMICRON → LATIN SMALL LETTER O # →𝒐→
+1D77E ; 006F ; MA # ( 𝝾 → o ) MATHEMATICAL SANS-SERIF BOLD SMALL
OMICRON → LATIN SMALL LETTER O # →ο→
+1D7B8 ; 006F ; MA # ( 𝞸 → o ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL OMICRON → LATIN SMALL LETTER O # →ο→
+03C3 ; 006F ; MA # ( σ → o ) GREEK SMALL LETTER SIGMA → LATIN SMALL
LETTER O #
+1D6D4 ; 006F ; MA # ( 𝛔 → o ) MATHEMATICAL BOLD SMALL SIGMA →
LATIN SMALL LETTER O # →σ→
+1D70E ; 006F ; MA # ( 𝜎 → o ) MATHEMATICAL ITALIC SMALL SIGMA →
LATIN SMALL LETTER O # →σ→
+1D748 ; 006F ; MA # ( 𝝈 → o ) MATHEMATICAL BOLD ITALIC SMALL
SIGMA → LATIN SMALL LETTER O # →σ→
+1D782 ; 006F ; MA # ( 𝞂 → o ) MATHEMATICAL SANS-SERIF BOLD SMALL
SIGMA → LATIN SMALL LETTER O # →σ→
+1D7BC ; 006F ; MA # ( 𝞼 → o ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL SIGMA → LATIN SMALL LETTER O # →σ→
+2C9F ; 006F ; MA # ( ⲟ → o ) COPTIC SMALL LETTER O → LATIN SMALL LETTER
O #
+043E ; 006F ; MA # ( о → o ) CYRILLIC SMALL LETTER O → LATIN SMALL
LETTER O #
+10FF ; 006F ; MA # ( ჿ → o ) GEORGIAN LETTER LABIAL SIGN → LATIN SMALL
LETTER O #
+0585 ; 006F ; MA # ( օ → o ) ARMENIAN SMALL LETTER OH → LATIN SMALL
LETTER O #
+05E1 ; 006F ; MA # ( ס → o ) HEBREW LETTER SAMEKH → LATIN SMALL LETTER
O #
+0647 ; 006F ; MA # ( ه → o ) ARABIC LETTER HEH → LATIN SMALL LETTER O
#
+1EE24 ; 006F ; MA # ( 𞸤 → o ) ARABIC MATHEMATICAL INITIAL HEH →
LATIN SMALL LETTER O # →ه→
+1EE64 ; 006F ; MA # ( 𞹤 → o ) ARABIC MATHEMATICAL STRETCHED HEH
→ LATIN SMALL LETTER O # →ه→
+1EE84 ; 006F ; MA # ( 𞺄 → o ) ARABIC MATHEMATICAL LOOPED HEH →
LATIN SMALL LETTER O # →ه→
+FEEB ; 006F ; MA # ( ﻫ → o ) ARABIC LETTER HEH INITIAL FORM → LATIN
SMALL LETTER O # →ه→
+FEEC ; 006F ; MA # ( ﻬ → o ) ARABIC LETTER HEH MEDIAL FORM → LATIN
SMALL LETTER O # →ه→
+FEEA ; 006F ; MA # ( ﻪ → o ) ARABIC LETTER HEH FINAL FORM → LATIN
SMALL LETTER O # →ه→
+FEE9 ; 006F ; MA # ( ﻩ → o ) ARABIC LETTER HEH ISOLATED FORM → LATIN
SMALL LETTER O # →ه→
+06BE ; 006F ; MA # ( ھ → o ) ARABIC LETTER HEH DOACHASHMEE → LATIN
SMALL LETTER O # →ه→
+FBAC ; 006F ; MA # ( ﮬ → o ) ARABIC LETTER HEH DOACHASHMEE INITIAL
FORM → LATIN SMALL LETTER O # →ﻫ→→ه→
+FBAD ; 006F ; MA # ( ﮭ → o ) ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
→ LATIN SMALL LETTER O # →ﻬ→→ه→
+FBAB ; 006F ; MA # ( ﮫ → o ) ARABIC LETTER HEH DOACHASHMEE FINAL FORM
→ LATIN SMALL LETTER O # →ﻪ→→ه→
+FBAA ; 006F ; MA # ( ﮪ → o ) ARABIC LETTER HEH DOACHASHMEE ISOLATED
FORM → LATIN SMALL LETTER O # →ه→
+06C1 ; 006F ; MA # ( ہ → o ) ARABIC LETTER HEH GOAL → LATIN SMALL
LETTER O # →ه→
+FBA8 ; 006F ; MA # ( ﮨ → o ) ARABIC LETTER HEH GOAL INITIAL FORM →
LATIN SMALL LETTER O # →ہ→→ه→
+FBA9 ; 006F ; MA # ( ﮩ → o ) ARABIC LETTER HEH GOAL MEDIAL FORM →
LATIN SMALL LETTER O # →ہ→→ه→
+FBA7 ; 006F ; MA # ( ﮧ → o ) ARABIC LETTER HEH GOAL FINAL FORM → LATIN
SMALL LETTER O # →ہ→→ه→
+FBA6 ; 006F ; MA # ( ﮦ → o ) ARABIC LETTER HEH GOAL ISOLATED FORM →
LATIN SMALL LETTER O # →ه→
+06D5 ; 006F ; MA # ( ە → o ) ARABIC LETTER AE → LATIN SMALL LETTER O
# →ه→
+0D20 ; 006F ; MA # ( ഠ → o ) MALAYALAM LETTER TTHA → LATIN SMALL LETTER
O #
+101D ; 006F ; MA # ( ဝ → o ) MYANMAR LETTER WA → LATIN SMALL LETTER O
#
+104EA ; 006F ; MA # ( 𐓪 → o ) OSAGE SMALL LETTER O → LATIN SMALL
LETTER O #
+118C8 ; 006F ; MA # ( 𑣈 → o ) WARANG CITI SMALL LETTER E → LATIN
SMALL LETTER O #
+118D7 ; 006F ; MA # ( 𑣗 → o ) WARANG CITI SMALL LETTER BU → LATIN
SMALL LETTER O #
+1042C ; 006F ; MA # ( 𐐬 → o ) DESERET SMALL LETTER LONG O → LATIN
SMALL LETTER O #
+
+0030 ; 004F ; MA # ( 0 → O ) DIGIT ZERO → LATIN CAPITAL LETTER O #
+07C0 ; 004F ; MA # ( ߀ → O ) NKO DIGIT ZERO → LATIN CAPITAL LETTER O
# →0→
+09E6 ; 004F ; MA # ( ০ → O ) BENGALI DIGIT ZERO → LATIN CAPITAL LETTER O
# →0→
+0B66 ; 004F ; MA # ( ୦ → O ) ORIYA DIGIT ZERO → LATIN CAPITAL LETTER O
# →0→
+3007 ; 004F ; MA # ( 〇 → O ) IDEOGRAPHIC NUMBER ZERO → LATIN CAPITAL
LETTER O #
+114D0 ; 004F ; MA # ( 𑓐 → O ) TIRHUTA DIGIT ZERO → LATIN CAPITAL
LETTER O # →০→→0→
+118E0 ; 004F ; MA # ( 𑣠 → O ) WARANG CITI DIGIT ZERO → LATIN
CAPITAL LETTER O # →0→
+1D7CE ; 004F ; MA # ( 𝟎 → O ) MATHEMATICAL BOLD DIGIT ZERO →
LATIN CAPITAL LETTER O # →0→
+1D7D8 ; 004F ; MA # ( 𝟘 → O ) MATHEMATICAL DOUBLE-STRUCK DIGIT
ZERO → LATIN CAPITAL LETTER O # →0→
+1D7E2 ; 004F ; MA # ( 𝟢 → O ) MATHEMATICAL SANS-SERIF DIGIT ZERO
→ LATIN CAPITAL LETTER O # →0→
+1D7EC ; 004F ; MA # ( 𝟬 → O ) MATHEMATICAL SANS-SERIF BOLD DIGIT
ZERO → LATIN CAPITAL LETTER O # →0→
+1D7F6 ; 004F ; MA # ( 𝟶 → O ) MATHEMATICAL MONOSPACE DIGIT ZERO →
LATIN CAPITAL LETTER O # →0→
+1FBF0 ; 004F ; MA # ( 🯰 → O ) SEGMENTED DIGIT ZERO → LATIN
CAPITAL LETTER O # →0→
+FF2F ; 004F ; MA # ( O → O ) FULLWIDTH LATIN CAPITAL LETTER O → LATIN
CAPITAL LETTER O # →О→
+1D40E ; 004F ; MA # ( 𝐎 → O ) MATHEMATICAL BOLD CAPITAL O → LATIN
CAPITAL LETTER O #
+1D442 ; 004F ; MA # ( 𝑂 → O ) MATHEMATICAL ITALIC CAPITAL O →
LATIN CAPITAL LETTER O #
+1D476 ; 004F ; MA # ( 𝑶 → O ) MATHEMATICAL BOLD ITALIC CAPITAL O
→ LATIN CAPITAL LETTER O #
+1D4AA ; 004F ; MA # ( 𝒪 → O ) MATHEMATICAL SCRIPT CAPITAL O →
LATIN CAPITAL LETTER O #
+1D4DE ; 004F ; MA # ( 𝓞 → O ) MATHEMATICAL BOLD SCRIPT CAPITAL O
→ LATIN CAPITAL LETTER O #
+1D512 ; 004F ; MA # ( 𝔒 → O ) MATHEMATICAL FRAKTUR CAPITAL O →
LATIN CAPITAL LETTER O #
+1D546 ; 004F ; MA # ( 𝕆 → O ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
O → LATIN CAPITAL LETTER O #
+1D57A ; 004F ; MA # ( 𝕺 → O ) MATHEMATICAL BOLD FRAKTUR CAPITAL O
→ LATIN CAPITAL LETTER O #
+1D5AE ; 004F ; MA # ( 𝖮 → O ) MATHEMATICAL SANS-SERIF CAPITAL O →
LATIN CAPITAL LETTER O #
+1D5E2 ; 004F ; MA # ( 𝗢 → O ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL O → LATIN CAPITAL LETTER O #
+1D616 ; 004F ; MA # ( 𝘖 → O ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL O → LATIN CAPITAL LETTER O #
+1D64A ; 004F ; MA # ( 𝙊 → O ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL O → LATIN CAPITAL LETTER O #
+1D67E ; 004F ; MA # ( 𝙾 → O ) MATHEMATICAL MONOSPACE CAPITAL O →
LATIN CAPITAL LETTER O #
+039F ; 004F ; MA # ( Ο → O ) GREEK CAPITAL LETTER OMICRON → LATIN
CAPITAL LETTER O #
+1D6B6 ; 004F ; MA # ( 𝚶 → O ) MATHEMATICAL BOLD CAPITAL OMICRON →
LATIN CAPITAL LETTER O # →𝐎→
+1D6F0 ; 004F ; MA # ( 𝛰 → O ) MATHEMATICAL ITALIC CAPITAL OMICRON
→ LATIN CAPITAL LETTER O # →𝑂→
+1D72A ; 004F ; MA # ( 𝜪 → O ) MATHEMATICAL BOLD ITALIC CAPITAL
OMICRON → LATIN CAPITAL LETTER O # →𝑶→
+1D764 ; 004F ; MA # ( 𝝤 → O ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL OMICRON → LATIN CAPITAL LETTER O # →Ο→
+1D79E ; 004F ; MA # ( 𝞞 → O ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL OMICRON → LATIN CAPITAL LETTER O # →Ο→
+2C9E ; 004F ; MA # ( Ⲟ → O ) COPTIC CAPITAL LETTER O → LATIN CAPITAL
LETTER O #
+041E ; 004F ; MA # ( О → O ) CYRILLIC CAPITAL LETTER O → LATIN CAPITAL
LETTER O #
+0555 ; 004F ; MA # ( Օ → O ) ARMENIAN CAPITAL LETTER OH → LATIN CAPITAL
LETTER O #
+2D54 ; 004F ; MA # ( ⵔ → O ) TIFINAGH LETTER YAR → LATIN CAPITAL LETTER
O #
+12D0 ; 004F ; MA # ( ዐ → O ) ETHIOPIC SYLLABLE PHARYNGEAL A → LATIN
CAPITAL LETTER O # →Օ→
+0B20 ; 004F ; MA # ( ଠ → O ) ORIYA LETTER TTHA → LATIN CAPITAL LETTER O
# →୦→→0→
+104C2 ; 004F ; MA # ( 𐓂 → O ) OSAGE CAPITAL LETTER O → LATIN
CAPITAL LETTER O #
+A4F3 ; 004F ; MA # ( ꓳ → O ) LISU LETTER O → LATIN CAPITAL LETTER O
#
+118B5 ; 004F ; MA # ( 𑢵 → O ) WARANG CITI CAPITAL LETTER AT →
LATIN CAPITAL LETTER O #
+10292 ; 004F ; MA # ( 𐊒 → O ) LYCIAN LETTER U → LATIN CAPITAL
LETTER O #
+102AB ; 004F ; MA # ( 𐊫 → O ) CARIAN LETTER O → LATIN CAPITAL
LETTER O #
+10404 ; 004F ; MA # ( 𐐄 → O ) DESERET CAPITAL LETTER LONG O →
LATIN CAPITAL LETTER O #
+10516 ; 004F ; MA # ( 𐔖 → O ) ELBASAN LETTER O → LATIN CAPITAL
LETTER O #
+
+2070 ; 00BA ; MA #* ( ⁰ → º ) SUPERSCRIPT ZERO → MASCULINE ORDINAL
INDICATOR #
+1D52 ; 00BA ; MA # ( ᵒ → º ) MODIFIER LETTER SMALL O → MASCULINE ORDINAL
INDICATOR # →⁰→
+
+01D2 ; 014F ; MA # ( ǒ → ŏ ) LATIN SMALL LETTER O WITH CARON → LATIN
SMALL LETTER O WITH BREVE #
+
+01D1 ; 014E ; MA # ( Ǒ → Ŏ ) LATIN CAPITAL LETTER O WITH CARON → LATIN
CAPITAL LETTER O WITH BREVE #
+
+06FF ; 006F 0302 ; MA # ( ۿ → ô ) ARABIC LETTER HEH WITH INVERTED
V → LATIN SMALL LETTER O, COMBINING CIRCUMFLEX ACCENT # →ھٛ→
+
+0150 ; 00D6 ; MA # ( Ő → Ö ) LATIN CAPITAL LETTER O WITH DOUBLE ACUTE →
LATIN CAPITAL LETTER O WITH DIAERESIS #
+
+00F8 ; 006F 0338 ; MA # ( ø → o̸ ) LATIN SMALL LETTER O WITH STROKE →
LATIN SMALL LETTER O, COMBINING LONG SOLIDUS OVERLAY # →o̷→
+AB3E ; 006F 0338 ; MA # ( ꬾ → o̸ ) LATIN SMALL LETTER BLACKLETTER O
WITH STROKE → LATIN SMALL LETTER O, COMBINING LONG SOLIDUS OVERLAY #
→ø→→o̷→
+
+00D8 ; 004F 0338 ; MA # ( Ø → O̸ ) LATIN CAPITAL LETTER O WITH STROKE
→ LATIN CAPITAL LETTER O, COMBINING LONG SOLIDUS OVERLAY #
+2D41 ; 004F 0338 ; MA # ( ⵁ → O̸ ) TIFINAGH LETTER BERBER ACADEMY YAH
→ LATIN CAPITAL LETTER O, COMBINING LONG SOLIDUS OVERLAY # →Ø→
+
+01FE ; 004F 0338 0301 ; MA # ( Ǿ → Ó̸ ) LATIN CAPITAL LETTER O
WITH STROKE AND ACUTE → LATIN CAPITAL LETTER O, COMBINING LONG SOLIDUS OVERLAY,
COMBINING ACUTE ACCENT #
+
+0275 ; 006F 0335 ; MA # ( ɵ → o̵ ) LATIN SMALL LETTER BARRED O →
LATIN SMALL LETTER O, COMBINING SHORT STROKE OVERLAY #
+A74B ; 006F 0335 ; MA # ( ꝋ → o̵ ) LATIN SMALL LETTER O WITH LONG
STROKE OVERLAY → LATIN SMALL LETTER O, COMBINING SHORT STROKE OVERLAY #
→o̶→
+04E9 ; 006F 0335 ; MA # ( ө → o̵ ) CYRILLIC SMALL LETTER BARRED O →
LATIN SMALL LETTER O, COMBINING SHORT STROKE OVERLAY # →ѳ→
+0473 ; 006F 0335 ; MA # ( ѳ → o̵ ) CYRILLIC SMALL LETTER FITA → LATIN
SMALL LETTER O, COMBINING SHORT STROKE OVERLAY #
+AB8E ; 006F 0335 ; MA # ( ꮎ → o̵ ) CHEROKEE SMALL LETTER NA → LATIN
SMALL LETTER O, COMBINING SHORT STROKE OVERLAY # →ɵ→
+ABBB ; 006F 0335 ; MA # ( ꮻ → o̵ ) CHEROKEE SMALL LETTER WI → LATIN
SMALL LETTER O, COMBINING SHORT STROKE OVERLAY # →ѳ→
+
+2296 ; 004F 0335 ; MA #* ( ⊖ → O̵ ) CIRCLED MINUS → LATIN CAPITAL
LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→
+229D ; 004F 0335 ; MA #* ( ⊝ → O̵ ) CIRCLED DASH → LATIN CAPITAL
LETTER O, COMBINING SHORT STROKE OVERLAY # →⊖→→θ→→Ꮎ→
+236C ; 004F 0335 ; MA #* ( ⍬ → O̵ ) APL FUNCTIONAL SYMBOL ZILDE →
LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→
+1D21A ; 004F 0335 ; MA #* ( 𝈚 → O̵ ) GREEK VOCAL NOTATION
SYMBOL-52 → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Ꝋ→→O̶→
+1F714 ; 004F 0335 ; MA #* ( 🜔 → O̵ ) ALCHEMICAL SYMBOL FOR
SALT → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Ɵ→→O̶→
+019F ; 004F 0335 ; MA # ( Ɵ → O̵ ) LATIN CAPITAL LETTER O WITH MIDDLE
TILDE → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →O̶→
+A74A ; 004F 0335 ; MA # ( Ꝋ → O̵ ) LATIN CAPITAL LETTER O WITH LONG
STROKE OVERLAY → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →O̶→
+03B8 ; 004F 0335 ; MA # ( θ → O̵ ) GREEK SMALL LETTER THETA → LATIN
CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Ꮎ→
+03D1 ; 004F 0335 ; MA # ( ϑ → O̵ ) GREEK THETA SYMBOL → LATIN CAPITAL
LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→
+1D6C9 ; 004F 0335 ; MA # ( 𝛉 → O̵ ) MATHEMATICAL BOLD SMALL
THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→
+1D6DD ; 004F 0335 ; MA # ( 𝛝 → O̵ ) MATHEMATICAL BOLD THETA
SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→
+1D703 ; 004F 0335 ; MA # ( 𝜃 → O̵ ) MATHEMATICAL ITALIC SMALL
THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→
+1D717 ; 004F 0335 ; MA # ( 𝜗 → O̵ ) MATHEMATICAL ITALIC THETA
SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→
+1D73D ; 004F 0335 ; MA # ( 𝜽 → O̵ ) MATHEMATICAL BOLD ITALIC
SMALL THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY #
→θ→→Ꮎ→
+1D751 ; 004F 0335 ; MA # ( 𝝑 → O̵ ) MATHEMATICAL BOLD ITALIC
THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY #
→θ→→Ꮎ→
+1D777 ; 004F 0335 ; MA # ( 𝝷 → O̵ ) MATHEMATICAL SANS-SERIF
BOLD SMALL THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY #
→θ→→Ꮎ→
+1D78B ; 004F 0335 ; MA # ( 𝞋 → O̵ ) MATHEMATICAL SANS-SERIF
BOLD THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY #
→θ→→Ꮎ→
+1D7B1 ; 004F 0335 ; MA # ( 𝞱 → O̵ ) MATHEMATICAL SANS-SERIF
BOLD ITALIC SMALL THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE
OVERLAY # →θ→→Ꮎ→
+1D7C5 ; 004F 0335 ; MA # ( 𝟅 → O̵ ) MATHEMATICAL SANS-SERIF
BOLD ITALIC THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE
OVERLAY # →θ→→Ꮎ→
+0398 ; 004F 0335 ; MA # ( Θ → O̵ ) GREEK CAPITAL LETTER THETA → LATIN
CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Ꮎ→
+03F4 ; 004F 0335 ; MA # ( ϴ → O̵ ) GREEK CAPITAL THETA SYMBOL → LATIN
CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Ѳ→→О̵→
+1D6AF ; 004F 0335 ; MA # ( 𝚯 → O̵ ) MATHEMATICAL BOLD CAPITAL
THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Θ→→Ꮎ→
+1D6B9 ; 004F 0335 ; MA # ( 𝚹 → O̵ ) MATHEMATICAL BOLD CAPITAL
THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY #
→Θ→→Ꮎ→
+1D6E9 ; 004F 0335 ; MA # ( 𝛩 → O̵ ) MATHEMATICAL ITALIC
CAPITAL THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Θ→→Ꮎ→
+1D6F3 ; 004F 0335 ; MA # ( 𝛳 → O̵ ) MATHEMATICAL ITALIC
CAPITAL THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY
# →Θ→→Ꮎ→
+1D723 ; 004F 0335 ; MA # ( 𝜣 → O̵ ) MATHEMATICAL BOLD ITALIC
CAPITAL THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY #
→Θ→→Ꮎ→
+1D72D ; 004F 0335 ; MA # ( 𝜭 → O̵ ) MATHEMATICAL BOLD ITALIC
CAPITAL THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY
# →Θ→→Ꮎ→
+1D75D ; 004F 0335 ; MA # ( 𝝝 → O̵ ) MATHEMATICAL SANS-SERIF
BOLD CAPITAL THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY
# →Θ→→Ꮎ→
+1D767 ; 004F 0335 ; MA # ( 𝝧 → O̵ ) MATHEMATICAL SANS-SERIF
BOLD CAPITAL THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE
OVERLAY # →Θ→→Ꮎ→
+1D797 ; 004F 0335 ; MA # ( 𝞗 → O̵ ) MATHEMATICAL SANS-SERIF
BOLD ITALIC CAPITAL THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE
OVERLAY # →Θ→→Ꮎ→
+1D7A1 ; 004F 0335 ; MA # ( 𝞡 → O̵ ) MATHEMATICAL SANS-SERIF
BOLD ITALIC CAPITAL THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT
STROKE OVERLAY # →Θ→→Ꮎ→
+04E8 ; 004F 0335 ; MA # ( Ө → O̵ ) CYRILLIC CAPITAL LETTER BARRED O →
LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Ѳ→→О̵→
+0472 ; 004F 0335 ; MA # ( Ѳ → O̵ ) CYRILLIC CAPITAL LETTER FITA →
LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →О̵→
+2D31 ; 004F 0335 ; MA # ( ⴱ → O̵ ) TIFINAGH LETTER YAB → LATIN
CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Ɵ→→O̶→
+13BE ; 004F 0335 ; MA # ( Ꮎ → O̵ ) CHEROKEE LETTER NA → LATIN CAPITAL
LETTER O, COMBINING SHORT STROKE OVERLAY #
+13EB ; 004F 0335 ; MA # ( Ꮻ → O̵ ) CHEROKEE LETTER WI → LATIN CAPITAL
LETTER O, COMBINING SHORT STROKE OVERLAY # →Ѳ→→О̵→
+
+AB74 ; 006F 031B ; MA # ( ꭴ → ơ ) CHEROKEE SMALL LETTER U → LATIN
SMALL LETTER O, COMBINING HORN #
+
+FCD9 ; 006F 0670 ; MA # ( ﳙ → oٰ ) ARABIC LIGATURE HEH WITH
SUPERSCRIPT ALEF INITIAL FORM → LATIN SMALL LETTER O, ARABIC LETTER SUPERSCRIPT
ALEF # →هٰ→
+
+1F101 ; 004F 002C ; MA #* ( 🄁 → O, ) DIGIT ZERO COMMA → LATIN
CAPITAL LETTER O, COMMA # →0,→
+
+1F100 ; 004F 002E ; MA #* ( 🄀 → O. ) DIGIT ZERO FULL STOP →
LATIN CAPITAL LETTER O, FULL STOP # →0.→
+
+01A1 ; 006F 0027 ; MA # ( ơ → o' ) LATIN SMALL LETTER O WITH HORN →
LATIN SMALL LETTER O, APOSTROPHE # →oʼ→
+
+01A0 ; 004F 0027 ; MA # ( Ơ → O' ) LATIN CAPITAL LETTER O WITH HORN →
LATIN CAPITAL LETTER O, APOSTROPHE # →Oʼ→
+13A4 ; 004F 0027 ; MA # ( Ꭴ → O' ) CHEROKEE LETTER U → LATIN CAPITAL
LETTER O, APOSTROPHE # →Ơ→→Oʼ→
+
+0025 ; 00BA 002F 2080 ; MA #* ( % → º/₀ ) PERCENT SIGN → MASCULINE
ORDINAL INDICATOR, SOLIDUS, SUBSCRIPT ZERO # →⁰/₀→
+066A ; 00BA 002F 2080 ; MA #* ( ٪ → º/₀ ) ARABIC PERCENT SIGN →
MASCULINE ORDINAL INDICATOR, SOLIDUS, SUBSCRIPT ZERO # →%→→⁰/₀→
+2052 ; 00BA 002F 2080 ; MA #* ( ⁒ → º/₀ ) COMMERCIAL MINUS SIGN →
MASCULINE ORDINAL INDICATOR, SOLIDUS, SUBSCRIPT ZERO # →%→→⁰/₀→
+
+2030 ; 00BA 002F 2080 2080 ; MA #* ( ‰ → º/₀₀ ) PER MILLE SIGN →
MASCULINE ORDINAL INDICATOR, SOLIDUS, SUBSCRIPT ZERO, SUBSCRIPT ZERO # →⁰/₀₀→
+0609 ; 00BA 002F 2080 2080 ; MA #* ( ؉ → º/₀₀ ) ARABIC-INDIC PER MILLE
SIGN → MASCULINE ORDINAL INDICATOR, SOLIDUS, SUBSCRIPT ZERO, SUBSCRIPT ZERO
# →‰→→⁰/₀₀→
+
+2031 ; 00BA 002F 2080 2080 2080 ; MA #* ( ‱ → º/₀₀₀ ) PER TEN
THOUSAND SIGN → MASCULINE ORDINAL INDICATOR, SOLIDUS, SUBSCRIPT ZERO, SUBSCRIPT
ZERO, SUBSCRIPT ZERO # →⁰/₀₀₀→
+060A ; 00BA 002F 2080 2080 2080 ; MA #* ( ؊ → º/₀₀₀ ) ARABIC-INDIC
PER TEN THOUSAND SIGN → MASCULINE ORDINAL INDICATOR, SOLIDUS, SUBSCRIPT ZERO,
SUBSCRIPT ZERO, SUBSCRIPT ZERO # →‱→→⁰/₀₀₀→
+
+0153 ; 006F 0065 ; MA # ( œ → oe ) LATIN SMALL LIGATURE OE → LATIN
SMALL LETTER O, LATIN SMALL LETTER E #
+
+0152 ; 004F 0045 ; MA # ( Œ → OE ) LATIN CAPITAL LIGATURE OE → LATIN
CAPITAL LETTER O, LATIN CAPITAL LETTER E #
+
+0276 ; 006F 1D07 ; MA # ( ɶ → oᴇ ) LATIN LETTER SMALL CAPITAL OE →
LATIN SMALL LETTER O, LATIN LETTER SMALL CAPITAL E #
+
+221E ; 006F 006F ; MA #* ( ∞ → oo ) INFINITY → LATIN SMALL LETTER O,
LATIN SMALL LETTER O # →ꝏ→
+A74F ; 006F 006F ; MA # ( ꝏ → oo ) LATIN SMALL LETTER OO → LATIN
SMALL LETTER O, LATIN SMALL LETTER O #
+A699 ; 006F 006F ; MA # ( ꚙ → oo ) CYRILLIC SMALL LETTER DOUBLE O →
LATIN SMALL LETTER O, LATIN SMALL LETTER O #
+
+A74E ; 004F 004F ; MA # ( Ꝏ → OO ) LATIN CAPITAL LETTER OO → LATIN
CAPITAL LETTER O, LATIN CAPITAL LETTER O #
+A698 ; 004F 004F ; MA # ( Ꚙ → OO ) CYRILLIC CAPITAL LETTER DOUBLE O →
LATIN CAPITAL LETTER O, LATIN CAPITAL LETTER O #
+
+FCD7 ; 006F 062C ; MA # ( ﳗ → oج ) ARABIC LIGATURE HEH WITH JEEM
INITIAL FORM → LATIN SMALL LETTER O, ARABIC LETTER JEEM # →هج→
+FC51 ; 006F 062C ; MA # ( ﱑ → oج ) ARABIC LIGATURE HEH WITH JEEM
ISOLATED FORM → LATIN SMALL LETTER O, ARABIC LETTER JEEM # →هج→
+
+FCD8 ; 006F 0645 ; MA # ( ﳘ → oم ) ARABIC LIGATURE HEH WITH MEEM
INITIAL FORM → LATIN SMALL LETTER O, ARABIC LETTER MEEM # →هم→
+FC52 ; 006F 0645 ; MA # ( ﱒ → oم ) ARABIC LIGATURE HEH WITH MEEM
ISOLATED FORM → LATIN SMALL LETTER O, ARABIC LETTER MEEM # →هم→
+
+FD93 ; 006F 0645 062C ; MA # ( ﶓ → oمج ) ARABIC LIGATURE HEH
WITH MEEM WITH JEEM INITIAL FORM → LATIN SMALL LETTER O, ARABIC LETTER MEEM,
ARABIC LETTER JEEM # →همج→
+
+FD94 ; 006F 0645 0645 ; MA # ( ﶔ → oمم ) ARABIC LIGATURE HEH
WITH MEEM WITH MEEM INITIAL FORM → LATIN SMALL LETTER O, ARABIC LETTER MEEM,
ARABIC LETTER MEEM # →همم→
+
+FC53 ; 006F 0649 ; MA # ( ﱓ → oى ) ARABIC LIGATURE HEH WITH ALEF
MAKSURA ISOLATED FORM → LATIN SMALL LETTER O, ARABIC LETTER ALEF MAKSURA #
→هى→
+FC54 ; 006F 0649 ; MA # ( ﱔ → oى ) ARABIC LIGATURE HEH WITH YEH
ISOLATED FORM → LATIN SMALL LETTER O, ARABIC LETTER ALEF MAKSURA # →هي→
+
+0D5F ; 006F 0D30 006F ; MA # ( ൟ → oരo ) MALAYALAM LETTER ARCHAIC
II → LATIN SMALL LETTER O, MALAYALAM LETTER RA, LATIN SMALL LETTER O # →ംരം→
+
+1010 ; 006F 102C ; MA # ( တ → oာ ) MYANMAR LETTER TA → LATIN SMALL
LETTER O, MYANMAR VOWEL SIGN AA # →ဝာ→
+
+3358 ; 004F 70B9 ; MA #* ( ㍘ → O点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR
HOUR ZERO → LATIN CAPITAL LETTER O, CJK UNIFIED IDEOGRAPH-70B9 # →0点→
+
+2184 ; 0254 ; MA # ( ↄ → ɔ ) LATIN SMALL LETTER REVERSED C → LATIN SMALL
LETTER OPEN O #
+1D10 ; 0254 ; MA # ( ᴐ → ɔ ) LATIN LETTER SMALL CAPITAL OPEN O → LATIN
SMALL LETTER OPEN O #
+037B ; 0254 ; MA # ( ͻ → ɔ ) GREEK SMALL REVERSED LUNATE SIGMA SYMBOL →
LATIN SMALL LETTER OPEN O #
+1044B ; 0254 ; MA # ( 𐑋 → ɔ ) DESERET SMALL LETTER EM → LATIN
SMALL LETTER OPEN O #
+
+2183 ; 0186 ; MA # ( Ↄ → Ɔ ) ROMAN NUMERAL REVERSED ONE HUNDRED → LATIN
CAPITAL LETTER OPEN O #
+03FD ; 0186 ; MA # ( Ͻ → Ɔ ) GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
→ LATIN CAPITAL LETTER OPEN O #
+A4DB ; 0186 ; MA # ( ꓛ → Ɔ ) LISU LETTER CHA → LATIN CAPITAL LETTER OPEN
O #
+10423 ; 0186 ; MA # ( 𐐣 → Ɔ ) DESERET CAPITAL LETTER EM → LATIN
CAPITAL LETTER OPEN O #
+
+AB3F ; 0254 0338 ; MA # ( ꬿ → ɔ̸ ) LATIN SMALL LETTER OPEN O WITH
STROKE → LATIN SMALL LETTER OPEN O, COMBINING LONG SOLIDUS OVERLAY #
+
+AB62 ; 0254 0065 ; MA # ( ꭢ → ɔe ) LATIN SMALL LETTER OPEN OE → LATIN
SMALL LETTER OPEN O, LATIN SMALL LETTER E #
+
+1043F ; 0277 ; MA # ( 𐐿 → ɷ ) DESERET SMALL LETTER KAY → LATIN
SMALL LETTER CLOSED OMEGA #
+
+2374 ; 0070 ; MA #* ( ⍴ → p ) APL FUNCTIONAL SYMBOL RHO → LATIN SMALL
LETTER P # →ρ→
+FF50 ; 0070 ; MA # ( p → p ) FULLWIDTH LATIN SMALL LETTER P → LATIN
SMALL LETTER P # →р→
+1D429 ; 0070 ; MA # ( 𝐩 → p ) MATHEMATICAL BOLD SMALL P → LATIN
SMALL LETTER P #
+1D45D ; 0070 ; MA # ( 𝑝 → p ) MATHEMATICAL ITALIC SMALL P → LATIN
SMALL LETTER P #
+1D491 ; 0070 ; MA # ( 𝒑 → p ) MATHEMATICAL BOLD ITALIC SMALL P →
LATIN SMALL LETTER P #
+1D4C5 ; 0070 ; MA # ( 𝓅 → p ) MATHEMATICAL SCRIPT SMALL P → LATIN
SMALL LETTER P #
+1D4F9 ; 0070 ; MA # ( 𝓹 → p ) MATHEMATICAL BOLD SCRIPT SMALL P →
LATIN SMALL LETTER P #
+1D52D ; 0070 ; MA # ( 𝔭 → p ) MATHEMATICAL FRAKTUR SMALL P →
LATIN SMALL LETTER P #
+1D561 ; 0070 ; MA # ( 𝕡 → p ) MATHEMATICAL DOUBLE-STRUCK SMALL P
→ LATIN SMALL LETTER P #
+1D595 ; 0070 ; MA # ( 𝖕 → p ) MATHEMATICAL BOLD FRAKTUR SMALL P →
LATIN SMALL LETTER P #
+1D5C9 ; 0070 ; MA # ( 𝗉 → p ) MATHEMATICAL SANS-SERIF SMALL P →
LATIN SMALL LETTER P #
+1D5FD ; 0070 ; MA # ( 𝗽 → p ) MATHEMATICAL SANS-SERIF BOLD SMALL
P → LATIN SMALL LETTER P #
+1D631 ; 0070 ; MA # ( 𝘱 → p ) MATHEMATICAL SANS-SERIF ITALIC
SMALL P → LATIN SMALL LETTER P #
+1D665 ; 0070 ; MA # ( 𝙥 → p ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL P → LATIN SMALL LETTER P #
+1D699 ; 0070 ; MA # ( 𝚙 → p ) MATHEMATICAL MONOSPACE SMALL P →
LATIN SMALL LETTER P #
+03C1 ; 0070 ; MA # ( ρ → p ) GREEK SMALL LETTER RHO → LATIN SMALL LETTER
P #
+03F1 ; 0070 ; MA # ( ϱ → p ) GREEK RHO SYMBOL → LATIN SMALL LETTER P
# →ρ→
+1D6D2 ; 0070 ; MA # ( 𝛒 → p ) MATHEMATICAL BOLD SMALL RHO → LATIN
SMALL LETTER P # →ρ→
+1D6E0 ; 0070 ; MA # ( 𝛠 → p ) MATHEMATICAL BOLD RHO SYMBOL →
LATIN SMALL LETTER P # →ρ→
+1D70C ; 0070 ; MA # ( 𝜌 → p ) MATHEMATICAL ITALIC SMALL RHO →
LATIN SMALL LETTER P # →ρ→
+1D71A ; 0070 ; MA # ( 𝜚 → p ) MATHEMATICAL ITALIC RHO SYMBOL →
LATIN SMALL LETTER P # →ρ→
+1D746 ; 0070 ; MA # ( 𝝆 → p ) MATHEMATICAL BOLD ITALIC SMALL RHO
→ LATIN SMALL LETTER P # →ρ→
+1D754 ; 0070 ; MA # ( 𝝔 → p ) MATHEMATICAL BOLD ITALIC RHO SYMBOL
→ LATIN SMALL LETTER P # →ρ→
+1D780 ; 0070 ; MA # ( 𝞀 → p ) MATHEMATICAL SANS-SERIF BOLD SMALL
RHO → LATIN SMALL LETTER P # →ρ→
+1D78E ; 0070 ; MA # ( 𝞎 → p ) MATHEMATICAL SANS-SERIF BOLD RHO
SYMBOL → LATIN SMALL LETTER P # →ρ→
+1D7BA ; 0070 ; MA # ( 𝞺 → p ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL RHO → LATIN SMALL LETTER P # →ρ→
+1D7C8 ; 0070 ; MA # ( 𝟈 → p ) MATHEMATICAL SANS-SERIF BOLD ITALIC
RHO SYMBOL → LATIN SMALL LETTER P # →ρ→
+2CA3 ; 0070 ; MA # ( ⲣ → p ) COPTIC SMALL LETTER RO → LATIN SMALL LETTER
P # →ρ→
+0440 ; 0070 ; MA # ( р → p ) CYRILLIC SMALL LETTER ER → LATIN SMALL
LETTER P #
+
+FF30 ; 0050 ; MA # ( P → P ) FULLWIDTH LATIN CAPITAL LETTER P → LATIN
CAPITAL LETTER P # →Р→
+2119 ; 0050 ; MA # ( ℙ → P ) DOUBLE-STRUCK CAPITAL P → LATIN CAPITAL
LETTER P #
+1D40F ; 0050 ; MA # ( 𝐏 → P ) MATHEMATICAL BOLD CAPITAL P → LATIN
CAPITAL LETTER P #
+1D443 ; 0050 ; MA # ( 𝑃 → P ) MATHEMATICAL ITALIC CAPITAL P →
LATIN CAPITAL LETTER P #
+1D477 ; 0050 ; MA # ( 𝑷 → P ) MATHEMATICAL BOLD ITALIC CAPITAL P
→ LATIN CAPITAL LETTER P #
+1D4AB ; 0050 ; MA # ( 𝒫 → P ) MATHEMATICAL SCRIPT CAPITAL P →
LATIN CAPITAL LETTER P #
+1D4DF ; 0050 ; MA # ( 𝓟 → P ) MATHEMATICAL BOLD SCRIPT CAPITAL P
→ LATIN CAPITAL LETTER P #
+1D513 ; 0050 ; MA # ( 𝔓 → P ) MATHEMATICAL FRAKTUR CAPITAL P →
LATIN CAPITAL LETTER P #
+1D57B ; 0050 ; MA # ( 𝕻 → P ) MATHEMATICAL BOLD FRAKTUR CAPITAL P
→ LATIN CAPITAL LETTER P #
+1D5AF ; 0050 ; MA # ( 𝖯 → P ) MATHEMATICAL SANS-SERIF CAPITAL P →
LATIN CAPITAL LETTER P #
+1D5E3 ; 0050 ; MA # ( 𝗣 → P ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL P → LATIN CAPITAL LETTER P #
+1D617 ; 0050 ; MA # ( 𝘗 → P ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL P → LATIN CAPITAL LETTER P #
+1D64B ; 0050 ; MA # ( 𝙋 → P ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL P → LATIN CAPITAL LETTER P #
+1D67F ; 0050 ; MA # ( 𝙿 → P ) MATHEMATICAL MONOSPACE CAPITAL P →
LATIN CAPITAL LETTER P #
+03A1 ; 0050 ; MA # ( Ρ → P ) GREEK CAPITAL LETTER RHO → LATIN CAPITAL
LETTER P #
+1D6B8 ; 0050 ; MA # ( 𝚸 → P ) MATHEMATICAL BOLD CAPITAL RHO →
LATIN CAPITAL LETTER P # →𝐏→
+1D6F2 ; 0050 ; MA # ( 𝛲 → P ) MATHEMATICAL ITALIC CAPITAL RHO →
LATIN CAPITAL LETTER P # →Ρ→
+1D72C ; 0050 ; MA # ( 𝜬 → P ) MATHEMATICAL BOLD ITALIC CAPITAL
RHO → LATIN CAPITAL LETTER P # →Ρ→
+1D766 ; 0050 ; MA # ( 𝝦 → P ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL RHO → LATIN CAPITAL LETTER P # →Ρ→
+1D7A0 ; 0050 ; MA # ( 𝞠 → P ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL RHO → LATIN CAPITAL LETTER P # →Ρ→
+2CA2 ; 0050 ; MA # ( Ⲣ → P ) COPTIC CAPITAL LETTER RO → LATIN CAPITAL
LETTER P #
+0420 ; 0050 ; MA # ( Р → P ) CYRILLIC CAPITAL LETTER ER → LATIN CAPITAL
LETTER P #
+13E2 ; 0050 ; MA # ( Ꮲ → P ) CHEROKEE LETTER TLV → LATIN CAPITAL LETTER
P #
+146D ; 0050 ; MA # ( ᑭ → P ) CANADIAN SYLLABICS KI → LATIN CAPITAL
LETTER P #
+A4D1 ; 0050 ; MA # ( ꓑ → P ) LISU LETTER PA → LATIN CAPITAL LETTER P
#
+10295 ; 0050 ; MA # ( 𐊕 → P ) LYCIAN LETTER R → LATIN CAPITAL
LETTER P #
+
+01A5 ; 0070 0314 ; MA # ( ƥ → p̔ ) LATIN SMALL LETTER P WITH HOOK →
LATIN SMALL LETTER P, COMBINING REVERSED COMMA ABOVE #
+
+1D7D ; 0070 0335 ; MA # ( ᵽ → p̵ ) LATIN SMALL LETTER P WITH STROKE →
LATIN SMALL LETTER P, COMBINING SHORT STROKE OVERLAY #
+
+1477 ; 0070 00B7 ; MA # ( ᑷ → p· ) CANADIAN SYLLABICS WEST-CREE KWI →
LATIN SMALL LETTER P, MIDDLE DOT # →pᐧ→
+
+1486 ; 0050 0027 ; MA # ( ᒆ → P' ) CANADIAN SYLLABICS SOUTH-SLAVEY
KIH → LATIN CAPITAL LETTER P, APOSTROPHE # →ᑭᑊ→
+
+1D29 ; 1D18 ; MA # ( ᴩ → ᴘ ) GREEK LETTER SMALL CAPITAL RHO → LATIN
LETTER SMALL CAPITAL P #
+ABB2 ; 1D18 ; MA # ( ꮲ → ᴘ ) CHEROKEE SMALL LETTER TLV → LATIN LETTER
SMALL CAPITAL P #
+
+03C6 ; 0278 ; MA # ( φ → ɸ ) GREEK SMALL LETTER PHI → LATIN SMALL LETTER
PHI #
+03D5 ; 0278 ; MA # ( ϕ → ɸ ) GREEK PHI SYMBOL → LATIN SMALL LETTER PHI
#
+1D6D7 ; 0278 ; MA # ( 𝛗 → ɸ ) MATHEMATICAL BOLD SMALL PHI → LATIN
SMALL LETTER PHI # →φ→
+1D6DF ; 0278 ; MA # ( 𝛟 → ɸ ) MATHEMATICAL BOLD PHI SYMBOL →
LATIN SMALL LETTER PHI # →φ→
+1D711 ; 0278 ; MA # ( 𝜑 → ɸ ) MATHEMATICAL ITALIC SMALL PHI →
LATIN SMALL LETTER PHI # →φ→
+1D719 ; 0278 ; MA # ( 𝜙 → ɸ ) MATHEMATICAL ITALIC PHI SYMBOL →
LATIN SMALL LETTER PHI # →φ→
+1D74B ; 0278 ; MA # ( 𝝋 → ɸ ) MATHEMATICAL BOLD ITALIC SMALL PHI
→ LATIN SMALL LETTER PHI # →φ→
+1D753 ; 0278 ; MA # ( 𝝓 → ɸ ) MATHEMATICAL BOLD ITALIC PHI SYMBOL
→ LATIN SMALL LETTER PHI # →φ→
+1D785 ; 0278 ; MA # ( 𝞅 → ɸ ) MATHEMATICAL SANS-SERIF BOLD SMALL
PHI → LATIN SMALL LETTER PHI # →φ→
+1D78D ; 0278 ; MA # ( 𝞍 → ɸ ) MATHEMATICAL SANS-SERIF BOLD PHI
SYMBOL → LATIN SMALL LETTER PHI # →φ→
+1D7BF ; 0278 ; MA # ( 𝞿 → ɸ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL PHI → LATIN SMALL LETTER PHI # →φ→
+1D7C7 ; 0278 ; MA # ( 𝟇 → ɸ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
PHI SYMBOL → LATIN SMALL LETTER PHI # →φ→
+2CAB ; 0278 ; MA # ( ⲫ → ɸ ) COPTIC SMALL LETTER FI → LATIN SMALL LETTER
PHI # →ϕ→
+0444 ; 0278 ; MA # ( ф → ɸ ) CYRILLIC SMALL LETTER EF → LATIN SMALL
LETTER PHI #
+
+1D42A ; 0071 ; MA # ( 𝐪 → q ) MATHEMATICAL BOLD SMALL Q → LATIN
SMALL LETTER Q #
+1D45E ; 0071 ; MA # ( 𝑞 → q ) MATHEMATICAL ITALIC SMALL Q → LATIN
SMALL LETTER Q #
+1D492 ; 0071 ; MA # ( 𝒒 → q ) MATHEMATICAL BOLD ITALIC SMALL Q →
LATIN SMALL LETTER Q #
+1D4C6 ; 0071 ; MA # ( 𝓆 → q ) MATHEMATICAL SCRIPT SMALL Q → LATIN
SMALL LETTER Q #
+1D4FA ; 0071 ; MA # ( 𝓺 → q ) MATHEMATICAL BOLD SCRIPT SMALL Q →
LATIN SMALL LETTER Q #
+1D52E ; 0071 ; MA # ( 𝔮 → q ) MATHEMATICAL FRAKTUR SMALL Q →
LATIN SMALL LETTER Q #
+1D562 ; 0071 ; MA # ( 𝕢 → q ) MATHEMATICAL DOUBLE-STRUCK SMALL Q
→ LATIN SMALL LETTER Q #
+1D596 ; 0071 ; MA # ( 𝖖 → q ) MATHEMATICAL BOLD FRAKTUR SMALL Q →
LATIN SMALL LETTER Q #
+1D5CA ; 0071 ; MA # ( 𝗊 → q ) MATHEMATICAL SANS-SERIF SMALL Q →
LATIN SMALL LETTER Q #
+1D5FE ; 0071 ; MA # ( 𝗾 → q ) MATHEMATICAL SANS-SERIF BOLD SMALL
Q → LATIN SMALL LETTER Q #
+1D632 ; 0071 ; MA # ( 𝘲 → q ) MATHEMATICAL SANS-SERIF ITALIC
SMALL Q → LATIN SMALL LETTER Q #
+1D666 ; 0071 ; MA # ( 𝙦 → q ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL Q → LATIN SMALL LETTER Q #
+1D69A ; 0071 ; MA # ( 𝚚 → q ) MATHEMATICAL MONOSPACE SMALL Q →
LATIN SMALL LETTER Q #
+051B ; 0071 ; MA # ( ԛ → q ) CYRILLIC SMALL LETTER QA → LATIN SMALL
LETTER Q #
+0563 ; 0071 ; MA # ( գ → q ) ARMENIAN SMALL LETTER GIM → LATIN SMALL
LETTER Q #
+0566 ; 0071 ; MA # ( զ → q ) ARMENIAN SMALL LETTER ZA → LATIN SMALL
LETTER Q #
+
+211A ; 0051 ; MA # ( ℚ → Q ) DOUBLE-STRUCK CAPITAL Q → LATIN CAPITAL
LETTER Q #
+1D410 ; 0051 ; MA # ( 𝐐 → Q ) MATHEMATICAL BOLD CAPITAL Q → LATIN
CAPITAL LETTER Q #
+1D444 ; 0051 ; MA # ( 𝑄 → Q ) MATHEMATICAL ITALIC CAPITAL Q →
LATIN CAPITAL LETTER Q #
+1D478 ; 0051 ; MA # ( 𝑸 → Q ) MATHEMATICAL BOLD ITALIC CAPITAL Q
→ LATIN CAPITAL LETTER Q #
+1D4AC ; 0051 ; MA # ( 𝒬 → Q ) MATHEMATICAL SCRIPT CAPITAL Q →
LATIN CAPITAL LETTER Q #
+1D4E0 ; 0051 ; MA # ( 𝓠 → Q ) MATHEMATICAL BOLD SCRIPT CAPITAL Q
→ LATIN CAPITAL LETTER Q #
+1D514 ; 0051 ; MA # ( 𝔔 → Q ) MATHEMATICAL FRAKTUR CAPITAL Q →
LATIN CAPITAL LETTER Q #
+1D57C ; 0051 ; MA # ( 𝕼 → Q ) MATHEMATICAL BOLD FRAKTUR CAPITAL Q
→ LATIN CAPITAL LETTER Q #
+1D5B0 ; 0051 ; MA # ( 𝖰 → Q ) MATHEMATICAL SANS-SERIF CAPITAL Q →
LATIN CAPITAL LETTER Q #
+1D5E4 ; 0051 ; MA # ( 𝗤 → Q ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL Q → LATIN CAPITAL LETTER Q #
+1D618 ; 0051 ; MA # ( 𝘘 → Q ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL Q → LATIN CAPITAL LETTER Q #
+1D64C ; 0051 ; MA # ( 𝙌 → Q ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL Q → LATIN CAPITAL LETTER Q #
+1D680 ; 0051 ; MA # ( 𝚀 → Q ) MATHEMATICAL MONOSPACE CAPITAL Q →
LATIN CAPITAL LETTER Q #
+2D55 ; 0051 ; MA # ( ⵕ → Q ) TIFINAGH LETTER YARR → LATIN CAPITAL LETTER
Q #
+
+02A0 ; 0071 0314 ; MA # ( ʠ → q̔ ) LATIN SMALL LETTER Q WITH HOOK →
LATIN SMALL LETTER Q, COMBINING REVERSED COMMA ABOVE #
+
+1F700 ; 0051 0045 ; MA #* ( 🜀 → QE ) ALCHEMICAL SYMBOL FOR
QUINTESSENCE → LATIN CAPITAL LETTER Q, LATIN CAPITAL LETTER E #
+
+1D90 ; 024B ; MA # ( ᶐ → ɋ ) LATIN SMALL LETTER ALPHA WITH RETROFLEX
HOOK → LATIN SMALL LETTER Q WITH HOOK TAIL #
+
+1D0B ; 0138 ; MA # ( ᴋ → ĸ ) LATIN LETTER SMALL CAPITAL K → LATIN SMALL
LETTER KRA #
+03BA ; 0138 ; MA # ( κ → ĸ ) GREEK SMALL LETTER KAPPA → LATIN SMALL
LETTER KRA #
+03F0 ; 0138 ; MA # ( ϰ → ĸ ) GREEK KAPPA SYMBOL → LATIN SMALL LETTER KRA
# →κ→
+1D6CB ; 0138 ; MA # ( 𝛋 → ĸ ) MATHEMATICAL BOLD SMALL KAPPA →
LATIN SMALL LETTER KRA # →κ→
+1D6DE ; 0138 ; MA # ( 𝛞 → ĸ ) MATHEMATICAL BOLD KAPPA SYMBOL →
LATIN SMALL LETTER KRA # →κ→
+1D705 ; 0138 ; MA # ( 𝜅 → ĸ ) MATHEMATICAL ITALIC SMALL KAPPA →
LATIN SMALL LETTER KRA # →κ→
+1D718 ; 0138 ; MA # ( 𝜘 → ĸ ) MATHEMATICAL ITALIC KAPPA SYMBOL →
LATIN SMALL LETTER KRA # →κ→
+1D73F ; 0138 ; MA # ( 𝜿 → ĸ ) MATHEMATICAL BOLD ITALIC SMALL
KAPPA → LATIN SMALL LETTER KRA # →κ→
+1D752 ; 0138 ; MA # ( 𝝒 → ĸ ) MATHEMATICAL BOLD ITALIC KAPPA
SYMBOL → LATIN SMALL LETTER KRA # →κ→
+1D779 ; 0138 ; MA # ( 𝝹 → ĸ ) MATHEMATICAL SANS-SERIF BOLD SMALL
KAPPA → LATIN SMALL LETTER KRA # →κ→
+1D78C ; 0138 ; MA # ( 𝞌 → ĸ ) MATHEMATICAL SANS-SERIF BOLD KAPPA
SYMBOL → LATIN SMALL LETTER KRA # →κ→
+1D7B3 ; 0138 ; MA # ( 𝞳 → ĸ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL KAPPA → LATIN SMALL LETTER KRA # →κ→
+1D7C6 ; 0138 ; MA # ( 𝟆 → ĸ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
KAPPA SYMBOL → LATIN SMALL LETTER KRA # →κ→
+2C95 ; 0138 ; MA # ( ⲕ → ĸ ) COPTIC SMALL LETTER KAPA → LATIN SMALL
LETTER KRA # →κ→
+043A ; 0138 ; MA # ( к → ĸ ) CYRILLIC SMALL LETTER KA → LATIN SMALL
LETTER KRA #
+ABB6 ; 0138 ; MA # ( ꮶ → ĸ ) CHEROKEE SMALL LETTER TSO → LATIN SMALL
LETTER KRA # →ᴋ→
+
+049B ; 0138 0329 ; MA # ( қ → ĸ̩ ) CYRILLIC SMALL LETTER KA WITH
DESCENDER → LATIN SMALL LETTER KRA, COMBINING VERTICAL LINE BELOW # →к̩→
+
+049F ; 0138 0335 ; MA # ( ҟ → ĸ̵ ) CYRILLIC SMALL LETTER KA WITH
STROKE → LATIN SMALL LETTER KRA, COMBINING SHORT STROKE OVERLAY # →к̵→
+
+1D42B ; 0072 ; MA # ( 𝐫 → r ) MATHEMATICAL BOLD SMALL R → LATIN
SMALL LETTER R #
+1D45F ; 0072 ; MA # ( 𝑟 → r ) MATHEMATICAL ITALIC SMALL R → LATIN
SMALL LETTER R #
+1D493 ; 0072 ; MA # ( 𝒓 → r ) MATHEMATICAL BOLD ITALIC SMALL R →
LATIN SMALL LETTER R #
+1D4C7 ; 0072 ; MA # ( 𝓇 → r ) MATHEMATICAL SCRIPT SMALL R → LATIN
SMALL LETTER R #
+1D4FB ; 0072 ; MA # ( 𝓻 → r ) MATHEMATICAL BOLD SCRIPT SMALL R →
LATIN SMALL LETTER R #
+1D52F ; 0072 ; MA # ( 𝔯 → r ) MATHEMATICAL FRAKTUR SMALL R →
LATIN SMALL LETTER R #
+1D563 ; 0072 ; MA # ( 𝕣 → r ) MATHEMATICAL DOUBLE-STRUCK SMALL R
→ LATIN SMALL LETTER R #
+1D597 ; 0072 ; MA # ( 𝖗 → r ) MATHEMATICAL BOLD FRAKTUR SMALL R →
LATIN SMALL LETTER R #
+1D5CB ; 0072 ; MA # ( 𝗋 → r ) MATHEMATICAL SANS-SERIF SMALL R →
LATIN SMALL LETTER R #
+1D5FF ; 0072 ; MA # ( 𝗿 → r ) MATHEMATICAL SANS-SERIF BOLD SMALL
R → LATIN SMALL LETTER R #
+1D633 ; 0072 ; MA # ( 𝘳 → r ) MATHEMATICAL SANS-SERIF ITALIC
SMALL R → LATIN SMALL LETTER R #
+1D667 ; 0072 ; MA # ( 𝙧 → r ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL R → LATIN SMALL LETTER R #
+1D69B ; 0072 ; MA # ( 𝚛 → r ) MATHEMATICAL MONOSPACE SMALL R →
LATIN SMALL LETTER R #
+AB47 ; 0072 ; MA # ( ꭇ → r ) LATIN SMALL LETTER R WITHOUT HANDLE → LATIN
SMALL LETTER R #
+AB48 ; 0072 ; MA # ( ꭈ → r ) LATIN SMALL LETTER DOUBLE R → LATIN SMALL
LETTER R #
+1D26 ; 0072 ; MA # ( ᴦ → r ) GREEK LETTER SMALL CAPITAL GAMMA → LATIN
SMALL LETTER R # →г→
+2C85 ; 0072 ; MA # ( ⲅ → r ) COPTIC SMALL LETTER GAMMA → LATIN SMALL
LETTER R # →г→
+0433 ; 0072 ; MA # ( г → r ) CYRILLIC SMALL LETTER GHE → LATIN SMALL
LETTER R #
+AB81 ; 0072 ; MA # ( ꮁ → r ) CHEROKEE SMALL LETTER HU → LATIN SMALL
LETTER R # →ᴦ→→г→
+
+1D216 ; 0052 ; MA #* ( 𝈖 → R ) GREEK VOCAL NOTATION SYMBOL-23 →
LATIN CAPITAL LETTER R #
+211B ; 0052 ; MA # ( ℛ → R ) SCRIPT CAPITAL R → LATIN CAPITAL LETTER R
#
+211C ; 0052 ; MA # ( ℜ → R ) BLACK-LETTER CAPITAL R → LATIN CAPITAL
LETTER R #
+211D ; 0052 ; MA # ( ℝ → R ) DOUBLE-STRUCK CAPITAL R → LATIN CAPITAL
LETTER R #
+1D411 ; 0052 ; MA # ( 𝐑 → R ) MATHEMATICAL BOLD CAPITAL R → LATIN
CAPITAL LETTER R #
+1D445 ; 0052 ; MA # ( 𝑅 → R ) MATHEMATICAL ITALIC CAPITAL R →
LATIN CAPITAL LETTER R #
+1D479 ; 0052 ; MA # ( 𝑹 → R ) MATHEMATICAL BOLD ITALIC CAPITAL R
→ LATIN CAPITAL LETTER R #
+1D4E1 ; 0052 ; MA # ( 𝓡 → R ) MATHEMATICAL BOLD SCRIPT CAPITAL R
→ LATIN CAPITAL LETTER R #
+1D57D ; 0052 ; MA # ( 𝕽 → R ) MATHEMATICAL BOLD FRAKTUR CAPITAL R
→ LATIN CAPITAL LETTER R #
+1D5B1 ; 0052 ; MA # ( 𝖱 → R ) MATHEMATICAL SANS-SERIF CAPITAL R →
LATIN CAPITAL LETTER R #
+1D5E5 ; 0052 ; MA # ( 𝗥 → R ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL R → LATIN CAPITAL LETTER R #
+1D619 ; 0052 ; MA # ( 𝘙 → R ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL R → LATIN CAPITAL LETTER R #
+1D64D ; 0052 ; MA # ( 𝙍 → R ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL R → LATIN CAPITAL LETTER R #
+1D681 ; 0052 ; MA # ( 𝚁 → R ) MATHEMATICAL MONOSPACE CAPITAL R →
LATIN CAPITAL LETTER R #
+01A6 ; 0052 ; MA # ( Ʀ → R ) LATIN LETTER YR → LATIN CAPITAL LETTER R
#
+13A1 ; 0052 ; MA # ( Ꭱ → R ) CHEROKEE LETTER E → LATIN CAPITAL LETTER R
#
+13D2 ; 0052 ; MA # ( Ꮢ → R ) CHEROKEE LETTER SV → LATIN CAPITAL LETTER R
#
+104B4 ; 0052 ; MA # ( 𐒴 → R ) OSAGE CAPITAL LETTER BRA → LATIN
CAPITAL LETTER R # →Ʀ→
+1587 ; 0052 ; MA # ( ᖇ → R ) CANADIAN SYLLABICS TLHI → LATIN CAPITAL
LETTER R #
+A4E3 ; 0052 ; MA # ( ꓣ → R ) LISU LETTER ZHA → LATIN CAPITAL LETTER R
#
+16F35 ; 0052 ; MA # ( 𖼵 → R ) MIAO LETTER ZHA → LATIN CAPITAL
LETTER R #
+
+027D ; 0072 0328 ; MA # ( ɽ → r̨ ) LATIN SMALL LETTER R WITH TAIL →
LATIN SMALL LETTER R, COMBINING OGONEK #
+
+027C ; 0072 0329 ; MA # ( ɼ → r̩ ) LATIN SMALL LETTER R WITH LONG LEG
→ LATIN SMALL LETTER R, COMBINING VERTICAL LINE BELOW #
+
+024D ; 0072 0335 ; MA # ( ɍ → r̵ ) LATIN SMALL LETTER R WITH STROKE →
LATIN SMALL LETTER R, COMBINING SHORT STROKE OVERLAY #
+0493 ; 0072 0335 ; MA # ( ғ → r̵ ) CYRILLIC SMALL LETTER GHE WITH
STROKE → LATIN SMALL LETTER R, COMBINING SHORT STROKE OVERLAY # →г̵→
+
+1D72 ; 0072 0334 ; MA # ( ᵲ → r̴ ) LATIN SMALL LETTER R WITH MIDDLE
TILDE → LATIN SMALL LETTER R, COMBINING TILDE OVERLAY #
+
+0491 ; 0072 0027 ; MA # ( ґ → r' ) CYRILLIC SMALL LETTER GHE WITH
UPTURN → LATIN SMALL LETTER R, APOSTROPHE # →гˈ→
+
+118E3 ; 0072 006E ; MA # ( 𑣣 → rn ) WARANG CITI DIGIT THREE →
LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→
+006D ; 0072 006E ; MA # ( m → rn ) LATIN SMALL LETTER M → LATIN SMALL
LETTER R, LATIN SMALL LETTER N #
+217F ; 0072 006E ; MA # ( ⅿ → rn ) SMALL ROMAN NUMERAL ONE THOUSAND →
LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→
+1D426 ; 0072 006E ; MA # ( 𝐦 → rn ) MATHEMATICAL BOLD SMALL M
→ LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→
+1D45A ; 0072 006E ; MA # ( 𝑚 → rn ) MATHEMATICAL ITALIC SMALL
M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→
+1D48E ; 0072 006E ; MA # ( 𝒎 → rn ) MATHEMATICAL BOLD ITALIC
SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→
+1D4C2 ; 0072 006E ; MA # ( 𝓂 → rn ) MATHEMATICAL SCRIPT SMALL
M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→
+1D4F6 ; 0072 006E ; MA # ( 𝓶 → rn ) MATHEMATICAL BOLD SCRIPT
SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→
+1D52A ; 0072 006E ; MA # ( 𝔪 → rn ) MATHEMATICAL FRAKTUR SMALL
M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→
+1D55E ; 0072 006E ; MA # ( 𝕞 → rn ) MATHEMATICAL DOUBLE-STRUCK
SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→
+1D592 ; 0072 006E ; MA # ( 𝖒 → rn ) MATHEMATICAL BOLD FRAKTUR
SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→
+1D5C6 ; 0072 006E ; MA # ( 𝗆 → rn ) MATHEMATICAL SANS-SERIF
SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→
+1D5FA ; 0072 006E ; MA # ( 𝗺 → rn ) MATHEMATICAL SANS-SERIF
BOLD SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→
+1D62E ; 0072 006E ; MA # ( 𝘮 → rn ) MATHEMATICAL SANS-SERIF
ITALIC SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→
+1D662 ; 0072 006E ; MA # ( 𝙢 → rn ) MATHEMATICAL SANS-SERIF
BOLD ITALIC SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→
+1D696 ; 0072 006E ; MA # ( 𝚖 → rn ) MATHEMATICAL MONOSPACE
SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→
+11700 ; 0072 006E ; MA # ( 𑜀 → rn ) AHOM LETTER KA → LATIN
SMALL LETTER R, LATIN SMALL LETTER N # →m→
+
+20A5 ; 0072 006E 0338 ; MA #* ( ₥ → rn̸ ) MILL SIGN → LATIN SMALL
LETTER R, LATIN SMALL LETTER N, COMBINING LONG SOLIDUS OVERLAY # →m̷→
+
+0271 ; 0072 006E 0326 ; MA # ( ɱ → rn̦ ) LATIN SMALL LETTER M WITH
HOOK → LATIN SMALL LETTER R, LATIN SMALL LETTER N, COMBINING COMMA BELOW
# →m̡→
+
+1D6F ; 0072 006E 0334 ; MA # ( ᵯ → rn̴ ) LATIN SMALL LETTER M WITH
MIDDLE TILDE → LATIN SMALL LETTER R, LATIN SMALL LETTER N, COMBINING TILDE
OVERLAY # →m̴→
+
+20A8 ; 0052 0073 ; MA #* ( ₨ → Rs ) RUPEE SIGN → LATIN CAPITAL LETTER
R, LATIN SMALL LETTER S #
+
+AB71 ; 0280 ; MA # ( ꭱ → ʀ ) CHEROKEE SMALL LETTER E → LATIN LETTER
SMALL CAPITAL R #
+ABA2 ; 0280 ; MA # ( ꮢ → ʀ ) CHEROKEE SMALL LETTER SV → LATIN LETTER
SMALL CAPITAL R #
+
+044F ; 1D19 ; MA # ( я → ᴙ ) CYRILLIC SMALL LETTER YA → LATIN LETTER
SMALL CAPITAL REVERSED R #
+
+1D73 ; 027E 0334 ; MA # ( ᵳ → ɾ̴ ) LATIN SMALL LETTER R WITH FISHHOOK
AND MIDDLE TILDE → LATIN SMALL LETTER R WITH FISHHOOK, COMBINING TILDE OVERLAY
#
+
+2129 ; 027F ; MA #* ( ℩ → ɿ ) TURNED GREEK SMALL LETTER IOTA → LATIN
SMALL LETTER REVERSED R WITH FISHHOOK #
+
+FF53 ; 0073 ; MA # ( s → s ) FULLWIDTH LATIN SMALL LETTER S → LATIN
SMALL LETTER S # →ѕ→
+1D42C ; 0073 ; MA # ( 𝐬 → s ) MATHEMATICAL BOLD SMALL S → LATIN
SMALL LETTER S #
+1D460 ; 0073 ; MA # ( 𝑠 → s ) MATHEMATICAL ITALIC SMALL S → LATIN
SMALL LETTER S #
+1D494 ; 0073 ; MA # ( 𝒔 → s ) MATHEMATICAL BOLD ITALIC SMALL S →
LATIN SMALL LETTER S #
+1D4C8 ; 0073 ; MA # ( 𝓈 → s ) MATHEMATICAL SCRIPT SMALL S → LATIN
SMALL LETTER S #
+1D4FC ; 0073 ; MA # ( 𝓼 → s ) MATHEMATICAL BOLD SCRIPT SMALL S →
LATIN SMALL LETTER S #
+1D530 ; 0073 ; MA # ( 𝔰 → s ) MATHEMATICAL FRAKTUR SMALL S →
LATIN SMALL LETTER S #
+1D564 ; 0073 ; MA # ( 𝕤 → s ) MATHEMATICAL DOUBLE-STRUCK SMALL S
→ LATIN SMALL LETTER S #
+1D598 ; 0073 ; MA # ( 𝖘 → s ) MATHEMATICAL BOLD FRAKTUR SMALL S →
LATIN SMALL LETTER S #
+1D5CC ; 0073 ; MA # ( 𝗌 → s ) MATHEMATICAL SANS-SERIF SMALL S →
LATIN SMALL LETTER S #
+1D600 ; 0073 ; MA # ( 𝘀 → s ) MATHEMATICAL SANS-SERIF BOLD SMALL
S → LATIN SMALL LETTER S #
+1D634 ; 0073 ; MA # ( 𝘴 → s ) MATHEMATICAL SANS-SERIF ITALIC
SMALL S → LATIN SMALL LETTER S #
+1D668 ; 0073 ; MA # ( 𝙨 → s ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL S → LATIN SMALL LETTER S #
+1D69C ; 0073 ; MA # ( 𝚜 → s ) MATHEMATICAL MONOSPACE SMALL S →
LATIN SMALL LETTER S #
+A731 ; 0073 ; MA # ( ꜱ → s ) LATIN LETTER SMALL CAPITAL S → LATIN SMALL
LETTER S #
+01BD ; 0073 ; MA # ( ƽ → s ) LATIN SMALL LETTER TONE FIVE → LATIN SMALL
LETTER S #
+0455 ; 0073 ; MA # ( ѕ → s ) CYRILLIC SMALL LETTER DZE → LATIN SMALL
LETTER S #
+ABAA ; 0073 ; MA # ( ꮪ → s ) CHEROKEE SMALL LETTER DU → LATIN SMALL
LETTER S # →ꜱ→
+118C1 ; 0073 ; MA # ( 𑣁 → s ) WARANG CITI SMALL LETTER A → LATIN
SMALL LETTER S #
+10448 ; 0073 ; MA # ( 𐑈 → s ) DESERET SMALL LETTER ZHEE → LATIN
SMALL LETTER S #
+
+FF33 ; 0053 ; MA # ( S → S ) FULLWIDTH LATIN CAPITAL LETTER S → LATIN
CAPITAL LETTER S # →Ѕ→
+1D412 ; 0053 ; MA # ( 𝐒 → S ) MATHEMATICAL BOLD CAPITAL S → LATIN
CAPITAL LETTER S #
+1D446 ; 0053 ; MA # ( 𝑆 → S ) MATHEMATICAL ITALIC CAPITAL S →
LATIN CAPITAL LETTER S #
+1D47A ; 0053 ; MA # ( 𝑺 → S ) MATHEMATICAL BOLD ITALIC CAPITAL S
→ LATIN CAPITAL LETTER S #
+1D4AE ; 0053 ; MA # ( 𝒮 → S ) MATHEMATICAL SCRIPT CAPITAL S →
LATIN CAPITAL LETTER S #
+1D4E2 ; 0053 ; MA # ( 𝓢 → S ) MATHEMATICAL BOLD SCRIPT CAPITAL S
→ LATIN CAPITAL LETTER S #
+1D516 ; 0053 ; MA # ( 𝔖 → S ) MATHEMATICAL FRAKTUR CAPITAL S →
LATIN CAPITAL LETTER S #
+1D54A ; 0053 ; MA # ( 𝕊 → S ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
S → LATIN CAPITAL LETTER S #
+1D57E ; 0053 ; MA # ( 𝕾 → S ) MATHEMATICAL BOLD FRAKTUR CAPITAL S
→ LATIN CAPITAL LETTER S #
+1D5B2 ; 0053 ; MA # ( 𝖲 → S ) MATHEMATICAL SANS-SERIF CAPITAL S →
LATIN CAPITAL LETTER S #
+1D5E6 ; 0053 ; MA # ( 𝗦 → S ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL S → LATIN CAPITAL LETTER S #
+1D61A ; 0053 ; MA # ( 𝘚 → S ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL S → LATIN CAPITAL LETTER S #
+1D64E ; 0053 ; MA # ( 𝙎 → S ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL S → LATIN CAPITAL LETTER S #
+1D682 ; 0053 ; MA # ( 𝚂 → S ) MATHEMATICAL MONOSPACE CAPITAL S →
LATIN CAPITAL LETTER S #
+0405 ; 0053 ; MA # ( Ѕ → S ) CYRILLIC CAPITAL LETTER DZE → LATIN CAPITAL
LETTER S #
+054F ; 0053 ; MA # ( Տ → S ) ARMENIAN CAPITAL LETTER TIWN → LATIN
CAPITAL LETTER S #
+13D5 ; 0053 ; MA # ( Ꮥ → S ) CHEROKEE LETTER DE → LATIN CAPITAL LETTER S
#
+13DA ; 0053 ; MA # ( Ꮪ → S ) CHEROKEE LETTER DU → LATIN CAPITAL LETTER S
#
+A4E2 ; 0053 ; MA # ( ꓢ → S ) LISU LETTER SA → LATIN CAPITAL LETTER S
#
+16F3A ; 0053 ; MA # ( 𖼺 → S ) MIAO LETTER SA → LATIN CAPITAL
LETTER S #
+10296 ; 0053 ; MA # ( 𐊖 → S ) LYCIAN LETTER S → LATIN CAPITAL
LETTER S #
+10420 ; 0053 ; MA # ( 𐐠 → S ) DESERET CAPITAL LETTER ZHEE → LATIN
CAPITAL LETTER S #
+
+0282 ; 0073 0328 ; MA # ( ʂ → s̨ ) LATIN SMALL LETTER S WITH HOOK →
LATIN SMALL LETTER S, COMBINING OGONEK #
+
+1D74 ; 0073 0334 ; MA # ( ᵴ → s̴ ) LATIN SMALL LETTER S WITH MIDDLE
TILDE → LATIN SMALL LETTER S, COMBINING TILDE OVERLAY #
+
+A7B5 ; 00DF ; MA # ( ꞵ → ß ) LATIN SMALL LETTER BETA → LATIN SMALL
LETTER SHARP S # →β→
+03B2 ; 00DF ; MA # ( β → ß ) GREEK SMALL LETTER BETA → LATIN SMALL
LETTER SHARP S #
+03D0 ; 00DF ; MA # ( ϐ → ß ) GREEK BETA SYMBOL → LATIN SMALL LETTER
SHARP S # →β→
+1D6C3 ; 00DF ; MA # ( 𝛃 → ß ) MATHEMATICAL BOLD SMALL BETA →
LATIN SMALL LETTER SHARP S # →β→
+1D6FD ; 00DF ; MA # ( 𝛽 → ß ) MATHEMATICAL ITALIC SMALL BETA →
LATIN SMALL LETTER SHARP S # →β→
+1D737 ; 00DF ; MA # ( 𝜷 → ß ) MATHEMATICAL BOLD ITALIC SMALL BETA
→ LATIN SMALL LETTER SHARP S # →β→
+1D771 ; 00DF ; MA # ( 𝝱 → ß ) MATHEMATICAL SANS-SERIF BOLD SMALL
BETA → LATIN SMALL LETTER SHARP S # →β→
+1D7AB ; 00DF ; MA # ( 𝞫 → ß ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL BETA → LATIN SMALL LETTER SHARP S # →β→
+13F0 ; 00DF ; MA # ( Ᏸ → ß ) CHEROKEE LETTER YE → LATIN SMALL LETTER
SHARP S # →β→
+
+1F75C ; 0073 0073 0073 ; MA #* ( 🝜 → sss ) ALCHEMICAL
SYMBOL FOR STRATUM SUPER STRATUM → LATIN SMALL LETTER S, LATIN SMALL LETTER S,
LATIN SMALL LETTER S #
+
+FB06 ; 0073 0074 ; MA # ( st → st ) LATIN SMALL LIGATURE ST → LATIN
SMALL LETTER S, LATIN SMALL LETTER T #
+
+222B ; 0283 ; MA #* ( ∫ → ʃ ) INTEGRAL → LATIN SMALL LETTER ESH #
+AB4D ; 0283 ; MA # ( ꭍ → ʃ ) LATIN SMALL LETTER BASELINE ESH → LATIN
SMALL LETTER ESH #
+
+2211 ; 01A9 ; MA #* ( ∑ → Ʃ ) N-ARY SUMMATION → LATIN CAPITAL LETTER ESH
#
+2140 ; 01A9 ; MA #* ( ⅀ → Ʃ ) DOUBLE-STRUCK N-ARY SUMMATION → LATIN
CAPITAL LETTER ESH # →∑→
+03A3 ; 01A9 ; MA # ( Σ → Ʃ ) GREEK CAPITAL LETTER SIGMA → LATIN CAPITAL
LETTER ESH #
+1D6BA ; 01A9 ; MA # ( 𝚺 → Ʃ ) MATHEMATICAL BOLD CAPITAL SIGMA →
LATIN CAPITAL LETTER ESH # →Σ→
+1D6F4 ; 01A9 ; MA # ( 𝛴 → Ʃ ) MATHEMATICAL ITALIC CAPITAL SIGMA →
LATIN CAPITAL LETTER ESH # →Σ→
+1D72E ; 01A9 ; MA # ( 𝜮 → Ʃ ) MATHEMATICAL BOLD ITALIC CAPITAL
SIGMA → LATIN CAPITAL LETTER ESH # →Σ→
+1D768 ; 01A9 ; MA # ( 𝝨 → Ʃ ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL SIGMA → LATIN CAPITAL LETTER ESH # →Σ→
+1D7A2 ; 01A9 ; MA # ( 𝞢 → Ʃ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL SIGMA → LATIN CAPITAL LETTER ESH # →Σ→
+2D49 ; 01A9 ; MA # ( ⵉ → Ʃ ) TIFINAGH LETTER YI → LATIN CAPITAL LETTER
ESH #
+
+222C ; 0283 0283 ; MA #* ( ∬ → ʃʃ ) DOUBLE INTEGRAL → LATIN SMALL
LETTER ESH, LATIN SMALL LETTER ESH # →∫∫→
+
+222D ; 0283 0283 0283 ; MA #* ( ∭ → ʃʃʃ ) TRIPLE INTEGRAL → LATIN
SMALL LETTER ESH, LATIN SMALL LETTER ESH, LATIN SMALL LETTER ESH # →∫∫∫→
+
+2A0C ; 0283 0283 0283 0283 ; MA #* ( ⨌ → ʃʃʃʃ ) QUADRUPLE INTEGRAL
OPERATOR → LATIN SMALL LETTER ESH, LATIN SMALL LETTER ESH, LATIN SMALL LETTER
ESH, LATIN SMALL LETTER ESH # →∫∫∫∫→
+
+1D42D ; 0074 ; MA # ( 𝐭 → t ) MATHEMATICAL BOLD SMALL T → LATIN
SMALL LETTER T #
+1D461 ; 0074 ; MA # ( 𝑡 → t ) MATHEMATICAL ITALIC SMALL T → LATIN
SMALL LETTER T #
+1D495 ; 0074 ; MA # ( 𝒕 → t ) MATHEMATICAL BOLD ITALIC SMALL T →
LATIN SMALL LETTER T #
+1D4C9 ; 0074 ; MA # ( 𝓉 → t ) MATHEMATICAL SCRIPT SMALL T → LATIN
SMALL LETTER T #
+1D4FD ; 0074 ; MA # ( 𝓽 → t ) MATHEMATICAL BOLD SCRIPT SMALL T →
LATIN SMALL LETTER T #
+1D531 ; 0074 ; MA # ( 𝔱 → t ) MATHEMATICAL FRAKTUR SMALL T →
LATIN SMALL LETTER T #
+1D565 ; 0074 ; MA # ( 𝕥 → t ) MATHEMATICAL DOUBLE-STRUCK SMALL T
→ LATIN SMALL LETTER T #
+1D599 ; 0074 ; MA # ( 𝖙 → t ) MATHEMATICAL BOLD FRAKTUR SMALL T →
LATIN SMALL LETTER T #
+1D5CD ; 0074 ; MA # ( 𝗍 → t ) MATHEMATICAL SANS-SERIF SMALL T →
LATIN SMALL LETTER T #
+1D601 ; 0074 ; MA # ( 𝘁 → t ) MATHEMATICAL SANS-SERIF BOLD SMALL
T → LATIN SMALL LETTER T #
+1D635 ; 0074 ; MA # ( 𝘵 → t ) MATHEMATICAL SANS-SERIF ITALIC
SMALL T → LATIN SMALL LETTER T #
+1D669 ; 0074 ; MA # ( 𝙩 → t ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL T → LATIN SMALL LETTER T #
+1D69D ; 0074 ; MA # ( 𝚝 → t ) MATHEMATICAL MONOSPACE SMALL T →
LATIN SMALL LETTER T #
+
+22A4 ; 0054 ; MA #* ( ⊤ → T ) DOWN TACK → LATIN CAPITAL LETTER T #
+27D9 ; 0054 ; MA #* ( ⟙ → T ) LARGE DOWN TACK → LATIN CAPITAL LETTER T
#
+1F768 ; 0054 ; MA #* ( 🝨 → T ) ALCHEMICAL SYMBOL FOR CRUCIBLE-4 →
LATIN CAPITAL LETTER T #
+FF34 ; 0054 ; MA # ( T → T ) FULLWIDTH LATIN CAPITAL LETTER T → LATIN
CAPITAL LETTER T # →Т→
+1D413 ; 0054 ; MA # ( 𝐓 → T ) MATHEMATICAL BOLD CAPITAL T → LATIN
CAPITAL LETTER T #
+1D447 ; 0054 ; MA # ( 𝑇 → T ) MATHEMATICAL ITALIC CAPITAL T →
LATIN CAPITAL LETTER T #
+1D47B ; 0054 ; MA # ( 𝑻 → T ) MATHEMATICAL BOLD ITALIC CAPITAL T
→ LATIN CAPITAL LETTER T #
+1D4AF ; 0054 ; MA # ( 𝒯 → T ) MATHEMATICAL SCRIPT CAPITAL T →
LATIN CAPITAL LETTER T #
+1D4E3 ; 0054 ; MA # ( 𝓣 → T ) MATHEMATICAL BOLD SCRIPT CAPITAL T
→ LATIN CAPITAL LETTER T #
+1D517 ; 0054 ; MA # ( 𝔗 → T ) MATHEMATICAL FRAKTUR CAPITAL T →
LATIN CAPITAL LETTER T #
+1D54B ; 0054 ; MA # ( 𝕋 → T ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
T → LATIN CAPITAL LETTER T #
+1D57F ; 0054 ; MA # ( 𝕿 → T ) MATHEMATICAL BOLD FRAKTUR CAPITAL T
→ LATIN CAPITAL LETTER T #
+1D5B3 ; 0054 ; MA # ( 𝖳 → T ) MATHEMATICAL SANS-SERIF CAPITAL T →
LATIN CAPITAL LETTER T #
+1D5E7 ; 0054 ; MA # ( 𝗧 → T ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL T → LATIN CAPITAL LETTER T #
+1D61B ; 0054 ; MA # ( 𝘛 → T ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL T → LATIN CAPITAL LETTER T #
+1D64F ; 0054 ; MA # ( 𝙏 → T ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL T → LATIN CAPITAL LETTER T #
+1D683 ; 0054 ; MA # ( 𝚃 → T ) MATHEMATICAL MONOSPACE CAPITAL T →
LATIN CAPITAL LETTER T #
+03A4 ; 0054 ; MA # ( Τ → T ) GREEK CAPITAL LETTER TAU → LATIN CAPITAL
LETTER T #
+1D6BB ; 0054 ; MA # ( 𝚻 → T ) MATHEMATICAL BOLD CAPITAL TAU →
LATIN CAPITAL LETTER T # →Τ→
+1D6F5 ; 0054 ; MA # ( 𝛵 → T ) MATHEMATICAL ITALIC CAPITAL TAU →
LATIN CAPITAL LETTER T # →Τ→
+1D72F ; 0054 ; MA # ( 𝜯 → T ) MATHEMATICAL BOLD ITALIC CAPITAL
TAU → LATIN CAPITAL LETTER T # →Τ→
+1D769 ; 0054 ; MA # ( 𝝩 → T ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL TAU → LATIN CAPITAL LETTER T # →Τ→
+1D7A3 ; 0054 ; MA # ( 𝞣 → T ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL TAU → LATIN CAPITAL LETTER T # →Τ→
+2CA6 ; 0054 ; MA # ( Ⲧ → T ) COPTIC CAPITAL LETTER TAU → LATIN CAPITAL
LETTER T #
+0422 ; 0054 ; MA # ( Т → T ) CYRILLIC CAPITAL LETTER TE → LATIN CAPITAL
LETTER T #
+13A2 ; 0054 ; MA # ( Ꭲ → T ) CHEROKEE LETTER I → LATIN CAPITAL LETTER T
#
+A4D4 ; 0054 ; MA # ( ꓔ → T ) LISU LETTER TA → LATIN CAPITAL LETTER T
#
+16F0A ; 0054 ; MA # ( 𖼊 → T ) MIAO LETTER TA → LATIN CAPITAL
LETTER T #
+118BC ; 0054 ; MA # ( 𑢼 → T ) WARANG CITI CAPITAL LETTER HAR →
LATIN CAPITAL LETTER T #
+10297 ; 0054 ; MA # ( 𐊗 → T ) LYCIAN LETTER T → LATIN CAPITAL
LETTER T #
+102B1 ; 0054 ; MA # ( 𐊱 → T ) CARIAN LETTER C-18 → LATIN CAPITAL
LETTER T #
+10315 ; 0054 ; MA # ( 𐌕 → T ) OLD ITALIC LETTER TE → LATIN
CAPITAL LETTER T #
+
+01AD ; 0074 0314 ; MA # ( ƭ → t̔ ) LATIN SMALL LETTER T WITH HOOK →
LATIN SMALL LETTER T, COMBINING REVERSED COMMA ABOVE #
+
+2361 ; 0054 0308 ; MA #* ( ⍡ → T̈ ) APL FUNCTIONAL SYMBOL UP TACK
DIAERESIS → LATIN CAPITAL LETTER T, COMBINING DIAERESIS # →⊤̈→
+
+023E ; 0054 0338 ; MA # ( Ⱦ → T̸ ) LATIN CAPITAL LETTER T WITH
DIAGONAL STROKE → LATIN CAPITAL LETTER T, COMBINING LONG SOLIDUS OVERLAY #
+
+021A ; 0162 ; MA # ( Ț → Ţ ) LATIN CAPITAL LETTER T WITH COMMA BELOW →
LATIN CAPITAL LETTER T WITH CEDILLA #
+
+01AE ; 0054 0328 ; MA # ( Ʈ → T̨ ) LATIN CAPITAL LETTER T WITH
RETROFLEX HOOK → LATIN CAPITAL LETTER T, COMBINING OGONEK #
+
+04AC ; 0054 0329 ; MA # ( Ҭ → T̩ ) CYRILLIC CAPITAL LETTER TE WITH
DESCENDER → LATIN CAPITAL LETTER T, COMBINING VERTICAL LINE BELOW # →Т̩→
+
+20AE ; 0054 20EB ; MA #* ( ₮ → T⃫ ) TUGRIK SIGN → LATIN CAPITAL
LETTER T, COMBINING LONG DOUBLE SOLIDUS OVERLAY # →Т⃫→
+
+0167 ; 0074 0335 ; MA # ( ŧ → t̵ ) LATIN SMALL LETTER T WITH STROKE →
LATIN SMALL LETTER T, COMBINING SHORT STROKE OVERLAY #
+
+0166 ; 0054 0335 ; MA # ( Ŧ → T̵ ) LATIN CAPITAL LETTER T WITH STROKE
→ LATIN CAPITAL LETTER T, COMBINING SHORT STROKE OVERLAY #
+
+1D75 ; 0074 0334 ; MA # ( ᵵ → t̴ ) LATIN SMALL LETTER T WITH MIDDLE
TILDE → LATIN SMALL LETTER T, COMBINING TILDE OVERLAY #
+
+10A0 ; A786 ; MA # ( Ⴀ → Ꞇ ) GEORGIAN CAPITAL LETTER AN → LATIN CAPITAL
LETTER INSULAR T #
+
+A728 ; 0054 0033 ; MA # ( Ꜩ → T3 ) LATIN CAPITAL LETTER TZ → LATIN
CAPITAL LETTER T, DIGIT THREE # →TƷ→
+
+02A8 ; 0074 0255 ; MA # ( ʨ → tɕ ) LATIN SMALL LETTER TC DIGRAPH WITH
CURL → LATIN SMALL LETTER T, LATIN SMALL LETTER C WITH CURL #
+
+2121 ; 0054 0045 004C ; MA #* ( ℡ → TEL ) TELEPHONE SIGN → LATIN
CAPITAL LETTER T, LATIN CAPITAL LETTER E, LATIN CAPITAL LETTER L #
+
+A777 ; 0074 0066 ; MA # ( ꝷ → tf ) LATIN SMALL LETTER TUM → LATIN
SMALL LETTER T, LATIN SMALL LETTER F #
+
+02A6 ; 0074 0073 ; MA # ( ʦ → ts ) LATIN SMALL LETTER TS DIGRAPH →
LATIN SMALL LETTER T, LATIN SMALL LETTER S #
+
+02A7 ; 0074 0283 ; MA # ( ʧ → tʃ ) LATIN SMALL LETTER TESH DIGRAPH →
LATIN SMALL LETTER T, LATIN SMALL LETTER ESH #
+
+A729 ; 0074 021D ; MA # ( ꜩ → tȝ ) LATIN SMALL LETTER TZ → LATIN
SMALL LETTER T, LATIN SMALL LETTER YOGH #
+
+03C4 ; 1D1B ; MA # ( τ → ᴛ ) GREEK SMALL LETTER TAU → LATIN LETTER SMALL
CAPITAL T #
+1D6D5 ; 1D1B ; MA # ( 𝛕 → ᴛ ) MATHEMATICAL BOLD SMALL TAU → LATIN
LETTER SMALL CAPITAL T #
+1D70F ; 1D1B ; MA # ( 𝜏 → ᴛ ) MATHEMATICAL ITALIC SMALL TAU →
LATIN LETTER SMALL CAPITAL T #
+1D749 ; 1D1B ; MA # ( 𝝉 → ᴛ ) MATHEMATICAL BOLD ITALIC SMALL TAU
→ LATIN LETTER SMALL CAPITAL T #
+1D783 ; 1D1B ; MA # ( 𝞃 → ᴛ ) MATHEMATICAL SANS-SERIF BOLD SMALL
TAU → LATIN LETTER SMALL CAPITAL T #
+1D7BD ; 1D1B ; MA # ( 𝞽 → ᴛ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL TAU → LATIN LETTER SMALL CAPITAL T #
+0442 ; 1D1B ; MA # ( т → ᴛ ) CYRILLIC SMALL LETTER TE → LATIN LETTER
SMALL CAPITAL T #
+AB72 ; 1D1B ; MA # ( ꭲ → ᴛ ) CHEROKEE SMALL LETTER I → LATIN LETTER
SMALL CAPITAL T #
+
+04AD ; 1D1B 0329 ; MA # ( ҭ → ᴛ̩ ) CYRILLIC SMALL LETTER TE WITH
DESCENDER → LATIN LETTER SMALL CAPITAL T, COMBINING VERTICAL LINE BELOW #
→т̩→
+
+0163 ; 01AB ; MA # ( ţ → ƫ ) LATIN SMALL LETTER T WITH CEDILLA → LATIN
SMALL LETTER T WITH PALATAL HOOK #
+021B ; 01AB ; MA # ( ț → ƫ ) LATIN SMALL LETTER T WITH COMMA BELOW →
LATIN SMALL LETTER T WITH PALATAL HOOK # →ţ→
+13BF ; 01AB ; MA # ( Ꮏ → ƫ ) CHEROKEE LETTER HNA → LATIN SMALL LETTER T
WITH PALATAL HOOK #
+
+1D42E ; 0075 ; MA # ( 𝐮 → u ) MATHEMATICAL BOLD SMALL U → LATIN
SMALL LETTER U #
+1D462 ; 0075 ; MA # ( 𝑢 → u ) MATHEMATICAL ITALIC SMALL U → LATIN
SMALL LETTER U #
+1D496 ; 0075 ; MA # ( 𝒖 → u ) MATHEMATICAL BOLD ITALIC SMALL U →
LATIN SMALL LETTER U #
+1D4CA ; 0075 ; MA # ( 𝓊 → u ) MATHEMATICAL SCRIPT SMALL U → LATIN
SMALL LETTER U #
+1D4FE ; 0075 ; MA # ( 𝓾 → u ) MATHEMATICAL BOLD SCRIPT SMALL U →
LATIN SMALL LETTER U #
+1D532 ; 0075 ; MA # ( 𝔲 → u ) MATHEMATICAL FRAKTUR SMALL U →
LATIN SMALL LETTER U #
+1D566 ; 0075 ; MA # ( 𝕦 → u ) MATHEMATICAL DOUBLE-STRUCK SMALL U
→ LATIN SMALL LETTER U #
+1D59A ; 0075 ; MA # ( 𝖚 → u ) MATHEMATICAL BOLD FRAKTUR SMALL U →
LATIN SMALL LETTER U #
+1D5CE ; 0075 ; MA # ( 𝗎 → u ) MATHEMATICAL SANS-SERIF SMALL U →
LATIN SMALL LETTER U #
+1D602 ; 0075 ; MA # ( 𝘂 → u ) MATHEMATICAL SANS-SERIF BOLD SMALL
U → LATIN SMALL LETTER U #
+1D636 ; 0075 ; MA # ( 𝘶 → u ) MATHEMATICAL SANS-SERIF ITALIC
SMALL U → LATIN SMALL LETTER U #
+1D66A ; 0075 ; MA # ( 𝙪 → u ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL U → LATIN SMALL LETTER U #
+1D69E ; 0075 ; MA # ( 𝚞 → u ) MATHEMATICAL MONOSPACE SMALL U →
LATIN SMALL LETTER U #
+A79F ; 0075 ; MA # ( ꞟ → u ) LATIN SMALL LETTER VOLAPUK UE → LATIN SMALL
LETTER U #
+1D1C ; 0075 ; MA # ( ᴜ → u ) LATIN LETTER SMALL CAPITAL U → LATIN SMALL
LETTER U #
+AB4E ; 0075 ; MA # ( ꭎ → u ) LATIN SMALL LETTER U WITH SHORT RIGHT LEG →
LATIN SMALL LETTER U #
+AB52 ; 0075 ; MA # ( ꭒ → u ) LATIN SMALL LETTER U WITH LEFT HOOK → LATIN
SMALL LETTER U #
+028B ; 0075 ; MA # ( ʋ → u ) LATIN SMALL LETTER V WITH HOOK → LATIN
SMALL LETTER U #
+03C5 ; 0075 ; MA # ( υ → u ) GREEK SMALL LETTER UPSILON → LATIN SMALL
LETTER U # →ʋ→
+1D6D6 ; 0075 ; MA # ( 𝛖 → u ) MATHEMATICAL BOLD SMALL UPSILON →
LATIN SMALL LETTER U # →υ→→ʋ→
+1D710 ; 0075 ; MA # ( 𝜐 → u ) MATHEMATICAL ITALIC SMALL UPSILON →
LATIN SMALL LETTER U # →υ→→ʋ→
+1D74A ; 0075 ; MA # ( 𝝊 → u ) MATHEMATICAL BOLD ITALIC SMALL
UPSILON → LATIN SMALL LETTER U # →υ→→ʋ→
+1D784 ; 0075 ; MA # ( 𝞄 → u ) MATHEMATICAL SANS-SERIF BOLD SMALL
UPSILON → LATIN SMALL LETTER U # →υ→→ʋ→
+1D7BE ; 0075 ; MA # ( 𝞾 → u ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL UPSILON → LATIN SMALL LETTER U # →υ→→ʋ→
+057D ; 0075 ; MA # ( ս → u ) ARMENIAN SMALL LETTER SEH → LATIN SMALL
LETTER U #
+104F6 ; 0075 ; MA # ( 𐓶 → u ) OSAGE SMALL LETTER U → LATIN SMALL
LETTER U # →ᴜ→
+118D8 ; 0075 ; MA # ( 𑣘 → u ) WARANG CITI SMALL LETTER PU → LATIN
SMALL LETTER U # →υ→→ʋ→
+
+222A ; 0055 ; MA #* ( ∪ → U ) UNION → LATIN CAPITAL LETTER U # →ᑌ→
+22C3 ; 0055 ; MA #* ( ⋃ → U ) N-ARY UNION → LATIN CAPITAL LETTER U
# →∪→→ᑌ→
+1D414 ; 0055 ; MA # ( 𝐔 → U ) MATHEMATICAL BOLD CAPITAL U → LATIN
CAPITAL LETTER U #
+1D448 ; 0055 ; MA # ( 𝑈 → U ) MATHEMATICAL ITALIC CAPITAL U →
LATIN CAPITAL LETTER U #
+1D47C ; 0055 ; MA # ( 𝑼 → U ) MATHEMATICAL BOLD ITALIC CAPITAL U
→ LATIN CAPITAL LETTER U #
+1D4B0 ; 0055 ; MA # ( 𝒰 → U ) MATHEMATICAL SCRIPT CAPITAL U →
LATIN CAPITAL LETTER U #
+1D4E4 ; 0055 ; MA # ( 𝓤 → U ) MATHEMATICAL BOLD SCRIPT CAPITAL U
→ LATIN CAPITAL LETTER U #
+1D518 ; 0055 ; MA # ( 𝔘 → U ) MATHEMATICAL FRAKTUR CAPITAL U →
LATIN CAPITAL LETTER U #
+1D54C ; 0055 ; MA # ( 𝕌 → U ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
U → LATIN CAPITAL LETTER U #
+1D580 ; 0055 ; MA # ( 𝖀 → U ) MATHEMATICAL BOLD FRAKTUR CAPITAL U
→ LATIN CAPITAL LETTER U #
+1D5B4 ; 0055 ; MA # ( 𝖴 → U ) MATHEMATICAL SANS-SERIF CAPITAL U →
LATIN CAPITAL LETTER U #
+1D5E8 ; 0055 ; MA # ( 𝗨 → U ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL U → LATIN CAPITAL LETTER U #
+1D61C ; 0055 ; MA # ( 𝘜 → U ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL U → LATIN CAPITAL LETTER U #
+1D650 ; 0055 ; MA # ( 𝙐 → U ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL U → LATIN CAPITAL LETTER U #
+1D684 ; 0055 ; MA # ( 𝚄 → U ) MATHEMATICAL MONOSPACE CAPITAL U →
LATIN CAPITAL LETTER U #
+054D ; 0055 ; MA # ( Ս → U ) ARMENIAN CAPITAL LETTER SEH → LATIN CAPITAL
LETTER U #
+1200 ; 0055 ; MA # ( ሀ → U ) ETHIOPIC SYLLABLE HA → LATIN CAPITAL LETTER
U # →Ս→
+104CE ; 0055 ; MA # ( 𐓎 → U ) OSAGE CAPITAL LETTER U → LATIN
CAPITAL LETTER U #
+144C ; 0055 ; MA # ( ᑌ → U ) CANADIAN SYLLABICS TE → LATIN CAPITAL
LETTER U #
+A4F4 ; 0055 ; MA # ( ꓴ → U ) LISU LETTER U → LATIN CAPITAL LETTER U
#
+16F42 ; 0055 ; MA # ( 𖽂 → U ) MIAO LETTER WA → LATIN CAPITAL
LETTER U #
+118B8 ; 0055 ; MA # ( 𑢸 → U ) WARANG CITI CAPITAL LETTER PU →
LATIN CAPITAL LETTER U #
+
+01D4 ; 016D ; MA # ( ǔ → ŭ ) LATIN SMALL LETTER U WITH CARON → LATIN
SMALL LETTER U WITH BREVE #
+
+01D3 ; 016C ; MA # ( Ǔ → Ŭ ) LATIN CAPITAL LETTER U WITH CARON → LATIN
CAPITAL LETTER U WITH BREVE #
+
+1D7E ; 0075 0335 ; MA # ( ᵾ → u̵ ) LATIN SMALL CAPITAL LETTER U WITH
STROKE → LATIN SMALL LETTER U, COMBINING SHORT STROKE OVERLAY # →ᴜ̵→
+AB9C ; 0075 0335 ; MA # ( ꮜ → u̵ ) CHEROKEE SMALL LETTER SA → LATIN
SMALL LETTER U, COMBINING SHORT STROKE OVERLAY # →ᴜ̵→
+
+0244 ; 0055 0335 ; MA # ( Ʉ → U̵ ) LATIN CAPITAL LETTER U BAR → LATIN
CAPITAL LETTER U, COMBINING SHORT STROKE OVERLAY # →U̶→
+13CC ; 0055 0335 ; MA # ( Ꮜ → U̵ ) CHEROKEE LETTER SA → LATIN CAPITAL
LETTER U, COMBINING SHORT STROKE OVERLAY # →Ʉ→→U̶→
+
+1458 ; 0055 00B7 ; MA # ( ᑘ → U· ) CANADIAN SYLLABICS WEST-CREE TWE →
LATIN CAPITAL LETTER U, MIDDLE DOT # →ᑌᐧ→→ᑌ·→
+
+1467 ; 0055 0027 ; MA # ( ᑧ → U' ) CANADIAN SYLLABICS TTE → LATIN
CAPITAL LETTER U, APOSTROPHE # →ᑌᑊ→→ᑌ'→
+
+1D6B ; 0075 0065 ; MA # ( ᵫ → ue ) LATIN SMALL LETTER UE → LATIN
SMALL LETTER U, LATIN SMALL LETTER E #
+
+AB63 ; 0075 006F ; MA # ( ꭣ → uo ) LATIN SMALL LETTER UO → LATIN
SMALL LETTER U, LATIN SMALL LETTER O #
+
+1E43 ; AB51 ; MA # ( ṃ → ꭑ ) LATIN SMALL LETTER M WITH DOT BELOW → LATIN
SMALL LETTER TURNED UI #
+
+057A ; 0270 ; MA # ( պ → ɰ ) ARMENIAN SMALL LETTER PEH → LATIN SMALL
LETTER TURNED M WITH LONG LEG #
+1223 ; 0270 ; MA # ( ሣ → ɰ ) ETHIOPIC SYLLABLE SZAA → LATIN SMALL LETTER
TURNED M WITH LONG LEG # →պ→
+
+2127 ; 01B1 ; MA #* ( ℧ → Ʊ ) INVERTED OHM SIGN → LATIN CAPITAL LETTER
UPSILON #
+162E ; 01B1 ; MA # ( ᘮ → Ʊ ) CANADIAN SYLLABICS CARRIER LHU → LATIN
CAPITAL LETTER UPSILON # →℧→
+1634 ; 01B1 ; MA # ( ᘴ → Ʊ ) CANADIAN SYLLABICS CARRIER TLHU → LATIN
CAPITAL LETTER UPSILON # →ᘮ→→℧→
+
+1D7F ; 028A 0335 ; MA # ( ᵿ → ʊ̵ ) LATIN SMALL LETTER UPSILON WITH
STROKE → LATIN SMALL LETTER UPSILON, COMBINING SHORT STROKE OVERLAY #
+
+2228 ; 0076 ; MA #* ( ∨ → v ) LOGICAL OR → LATIN SMALL LETTER V #
+22C1 ; 0076 ; MA #* ( ⋁ → v ) N-ARY LOGICAL OR → LATIN SMALL LETTER V
# →∨→
+FF56 ; 0076 ; MA # ( v → v ) FULLWIDTH LATIN SMALL LETTER V → LATIN
SMALL LETTER V # →ν→
+2174 ; 0076 ; MA # ( ⅴ → v ) SMALL ROMAN NUMERAL FIVE → LATIN SMALL
LETTER V #
+1D42F ; 0076 ; MA # ( 𝐯 → v ) MATHEMATICAL BOLD SMALL V → LATIN
SMALL LETTER V #
+1D463 ; 0076 ; MA # ( 𝑣 → v ) MATHEMATICAL ITALIC SMALL V → LATIN
SMALL LETTER V #
+1D497 ; 0076 ; MA # ( 𝒗 → v ) MATHEMATICAL BOLD ITALIC SMALL V →
LATIN SMALL LETTER V #
+1D4CB ; 0076 ; MA # ( 𝓋 → v ) MATHEMATICAL SCRIPT SMALL V → LATIN
SMALL LETTER V #
+1D4FF ; 0076 ; MA # ( 𝓿 → v ) MATHEMATICAL BOLD SCRIPT SMALL V →
LATIN SMALL LETTER V #
+1D533 ; 0076 ; MA # ( 𝔳 → v ) MATHEMATICAL FRAKTUR SMALL V →
LATIN SMALL LETTER V #
+1D567 ; 0076 ; MA # ( 𝕧 → v ) MATHEMATICAL DOUBLE-STRUCK SMALL V
→ LATIN SMALL LETTER V #
+1D59B ; 0076 ; MA # ( 𝖛 → v ) MATHEMATICAL BOLD FRAKTUR SMALL V →
LATIN SMALL LETTER V #
+1D5CF ; 0076 ; MA # ( 𝗏 → v ) MATHEMATICAL SANS-SERIF SMALL V →
LATIN SMALL LETTER V #
+1D603 ; 0076 ; MA # ( 𝘃 → v ) MATHEMATICAL SANS-SERIF BOLD SMALL
V → LATIN SMALL LETTER V #
+1D637 ; 0076 ; MA # ( 𝘷 → v ) MATHEMATICAL SANS-SERIF ITALIC
SMALL V → LATIN SMALL LETTER V #
+1D66B ; 0076 ; MA # ( 𝙫 → v ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL V → LATIN SMALL LETTER V #
+1D69F ; 0076 ; MA # ( 𝚟 → v ) MATHEMATICAL MONOSPACE SMALL V →
LATIN SMALL LETTER V #
+1D20 ; 0076 ; MA # ( ᴠ → v ) LATIN LETTER SMALL CAPITAL V → LATIN SMALL
LETTER V #
+03BD ; 0076 ; MA # ( ν → v ) GREEK SMALL LETTER NU → LATIN SMALL LETTER
V #
+1D6CE ; 0076 ; MA # ( 𝛎 → v ) MATHEMATICAL BOLD SMALL NU → LATIN
SMALL LETTER V # →ν→
+1D708 ; 0076 ; MA # ( 𝜈 → v ) MATHEMATICAL ITALIC SMALL NU →
LATIN SMALL LETTER V # →ν→
+1D742 ; 0076 ; MA # ( 𝝂 → v ) MATHEMATICAL BOLD ITALIC SMALL NU →
LATIN SMALL LETTER V # →ν→
+1D77C ; 0076 ; MA # ( 𝝼 → v ) MATHEMATICAL SANS-SERIF BOLD SMALL
NU → LATIN SMALL LETTER V # →ν→
+1D7B6 ; 0076 ; MA # ( 𝞶 → v ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL NU → LATIN SMALL LETTER V # →ν→
+0475 ; 0076 ; MA # ( ѵ → v ) CYRILLIC SMALL LETTER IZHITSA → LATIN SMALL
LETTER V #
+05D8 ; 0076 ; MA # ( ט → v ) HEBREW LETTER TET → LATIN SMALL LETTER V
#
+11706 ; 0076 ; MA # ( 𑜆 → v ) AHOM LETTER PA → LATIN SMALL LETTER
V #
+ABA9 ; 0076 ; MA # ( ꮩ → v ) CHEROKEE SMALL LETTER DO → LATIN SMALL
LETTER V # →ᴠ→
+118C0 ; 0076 ; MA # ( 𑣀 → v ) WARANG CITI SMALL LETTER NGAA →
LATIN SMALL LETTER V #
+
+1D20D ; 0056 ; MA #* ( 𝈍 → V ) GREEK VOCAL NOTATION SYMBOL-14 →
LATIN CAPITAL LETTER V #
+0667 ; 0056 ; MA # ( ٧ → V ) ARABIC-INDIC DIGIT SEVEN → LATIN CAPITAL
LETTER V #
+06F7 ; 0056 ; MA # ( ۷ → V ) EXTENDED ARABIC-INDIC DIGIT SEVEN → LATIN
CAPITAL LETTER V # →٧→
+2164 ; 0056 ; MA # ( Ⅴ → V ) ROMAN NUMERAL FIVE → LATIN CAPITAL LETTER V
#
+1D415 ; 0056 ; MA # ( 𝐕 → V ) MATHEMATICAL BOLD CAPITAL V → LATIN
CAPITAL LETTER V #
+1D449 ; 0056 ; MA # ( 𝑉 → V ) MATHEMATICAL ITALIC CAPITAL V →
LATIN CAPITAL LETTER V #
+1D47D ; 0056 ; MA # ( 𝑽 → V ) MATHEMATICAL BOLD ITALIC CAPITAL V
→ LATIN CAPITAL LETTER V #
+1D4B1 ; 0056 ; MA # ( 𝒱 → V ) MATHEMATICAL SCRIPT CAPITAL V →
LATIN CAPITAL LETTER V #
+1D4E5 ; 0056 ; MA # ( 𝓥 → V ) MATHEMATICAL BOLD SCRIPT CAPITAL V
→ LATIN CAPITAL LETTER V #
+1D519 ; 0056 ; MA # ( 𝔙 → V ) MATHEMATICAL FRAKTUR CAPITAL V →
LATIN CAPITAL LETTER V #
+1D54D ; 0056 ; MA # ( 𝕍 → V ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
V → LATIN CAPITAL LETTER V #
+1D581 ; 0056 ; MA # ( 𝖁 → V ) MATHEMATICAL BOLD FRAKTUR CAPITAL V
→ LATIN CAPITAL LETTER V #
+1D5B5 ; 0056 ; MA # ( 𝖵 → V ) MATHEMATICAL SANS-SERIF CAPITAL V →
LATIN CAPITAL LETTER V #
+1D5E9 ; 0056 ; MA # ( 𝗩 → V ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL V → LATIN CAPITAL LETTER V #
+1D61D ; 0056 ; MA # ( 𝘝 → V ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL V → LATIN CAPITAL LETTER V #
+1D651 ; 0056 ; MA # ( 𝙑 → V ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL V → LATIN CAPITAL LETTER V #
+1D685 ; 0056 ; MA # ( 𝚅 → V ) MATHEMATICAL MONOSPACE CAPITAL V →
LATIN CAPITAL LETTER V #
+0474 ; 0056 ; MA # ( Ѵ → V ) CYRILLIC CAPITAL LETTER IZHITSA → LATIN
CAPITAL LETTER V #
+2D38 ; 0056 ; MA # ( ⴸ → V ) TIFINAGH LETTER YADH → LATIN CAPITAL LETTER
V #
+13D9 ; 0056 ; MA # ( Ꮩ → V ) CHEROKEE LETTER DO → LATIN CAPITAL LETTER V
#
+142F ; 0056 ; MA # ( ᐯ → V ) CANADIAN SYLLABICS PE → LATIN CAPITAL
LETTER V #
+A6DF ; 0056 ; MA # ( ꛟ → V ) BAMUM LETTER KO → LATIN CAPITAL LETTER V
#
+A4E6 ; 0056 ; MA # ( ꓦ → V ) LISU LETTER HA → LATIN CAPITAL LETTER V
#
+16F08 ; 0056 ; MA # ( 𖼈 → V ) MIAO LETTER VA → LATIN CAPITAL
LETTER V #
+118A0 ; 0056 ; MA # ( 𑢠 → V ) WARANG CITI CAPITAL LETTER NGAA →
LATIN CAPITAL LETTER V #
+1051D ; 0056 ; MA # ( 𐔝 → V ) ELBASAN LETTER TE → LATIN CAPITAL
LETTER V #
+
+10197 ; 0056 0335 ; MA #* ( 𐆗 → V̵ ) ROMAN QUINARIUS SIGN →
LATIN CAPITAL LETTER V, COMBINING SHORT STROKE OVERLAY # →V̶→
+
+143B ; 0056 00B7 ; MA # ( ᐻ → V· ) CANADIAN SYLLABICS WEST-CREE PWE →
LATIN CAPITAL LETTER V, MIDDLE DOT # →ᐯᐧ→
+
+1F76C ; 0056 0042 ; MA #* ( 🝬 → VB ) ALCHEMICAL SYMBOL FOR
BATH OF VAPOURS → LATIN CAPITAL LETTER V, LATIN CAPITAL LETTER B #
+
+2175 ; 0076 0069 ; MA # ( ⅵ → vi ) SMALL ROMAN NUMERAL SIX → LATIN
SMALL LETTER V, LATIN SMALL LETTER I #
+
+2176 ; 0076 0069 0069 ; MA # ( ⅶ → vii ) SMALL ROMAN NUMERAL SEVEN
→ LATIN SMALL LETTER V, LATIN SMALL LETTER I, LATIN SMALL LETTER I #
+
+2177 ; 0076 0069 0069 0069 ; MA # ( ⅷ → viii ) SMALL ROMAN NUMERAL
EIGHT → LATIN SMALL LETTER V, LATIN SMALL LETTER I, LATIN SMALL LETTER I, LATIN
SMALL LETTER I #
+
+2165 ; 0056 006C ; MA # ( Ⅵ → Vl ) ROMAN NUMERAL SIX → LATIN CAPITAL
LETTER V, LATIN SMALL LETTER L # →VI→
+
+2166 ; 0056 006C 006C ; MA # ( Ⅶ → Vll ) ROMAN NUMERAL SEVEN →
LATIN CAPITAL LETTER V, LATIN SMALL LETTER L, LATIN SMALL LETTER L # →VII→
+
+2167 ; 0056 006C 006C 006C ; MA # ( Ⅷ → Vlll ) ROMAN NUMERAL EIGHT →
LATIN CAPITAL LETTER V, LATIN SMALL LETTER L, LATIN SMALL LETTER L, LATIN SMALL
LETTER L # →VIII→
+
+1F708 ; 0056 1DE4 ; MA #* ( 🜈 → Vᷤ ) ALCHEMICAL SYMBOL FOR
AQUA VITAE → LATIN CAPITAL LETTER V, COMBINING LATIN SMALL LETTER S #
+
+1D27 ; 028C ; MA # ( ᴧ → ʌ ) GREEK LETTER SMALL CAPITAL LAMDA → LATIN
SMALL LETTER TURNED V #
+104D8 ; 028C ; MA # ( 𐓘 → ʌ ) OSAGE SMALL LETTER A → LATIN SMALL
LETTER TURNED V #
+
+0668 ; 0245 ; MA # ( ٨ → Ʌ ) ARABIC-INDIC DIGIT EIGHT → LATIN CAPITAL
LETTER TURNED V # →Λ→
+06F8 ; 0245 ; MA # ( ۸ → Ʌ ) EXTENDED ARABIC-INDIC DIGIT EIGHT → LATIN
CAPITAL LETTER TURNED V # →٨→→Λ→
+039B ; 0245 ; MA # ( Λ → Ʌ ) GREEK CAPITAL LETTER LAMDA → LATIN CAPITAL
LETTER TURNED V #
+1D6B2 ; 0245 ; MA # ( 𝚲 → Ʌ ) MATHEMATICAL BOLD CAPITAL LAMDA →
LATIN CAPITAL LETTER TURNED V # →Λ→
+1D6EC ; 0245 ; MA # ( 𝛬 → Ʌ ) MATHEMATICAL ITALIC CAPITAL LAMDA →
LATIN CAPITAL LETTER TURNED V # →Λ→
+1D726 ; 0245 ; MA # ( 𝜦 → Ʌ ) MATHEMATICAL BOLD ITALIC CAPITAL
LAMDA → LATIN CAPITAL LETTER TURNED V # →Λ→
+1D760 ; 0245 ; MA # ( 𝝠 → Ʌ ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL LAMDA → LATIN CAPITAL LETTER TURNED V # →Λ→
+1D79A ; 0245 ; MA # ( 𝞚 → Ʌ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL LAMDA → LATIN CAPITAL LETTER TURNED V # →Λ→
+041B ; 0245 ; MA # ( Л → Ʌ ) CYRILLIC CAPITAL LETTER EL → LATIN CAPITAL
LETTER TURNED V # →Λ→
+2D37 ; 0245 ; MA # ( ⴷ → Ʌ ) TIFINAGH LETTER YAD → LATIN CAPITAL LETTER
TURNED V #
+104B0 ; 0245 ; MA # ( 𐒰 → Ʌ ) OSAGE CAPITAL LETTER A → LATIN
CAPITAL LETTER TURNED V #
+1431 ; 0245 ; MA # ( ᐱ → Ʌ ) CANADIAN SYLLABICS PI → LATIN CAPITAL
LETTER TURNED V #
+A6CE ; 0245 ; MA # ( ꛎ → Ʌ ) BAMUM LETTER MI → LATIN CAPITAL LETTER
TURNED V # →Λ→
+A4E5 ; 0245 ; MA # ( ꓥ → Ʌ ) LISU LETTER NGA → LATIN CAPITAL LETTER
TURNED V #
+16F3D ; 0245 ; MA # ( 𖼽 → Ʌ ) MIAO LETTER ZZA → LATIN CAPITAL
LETTER TURNED V #
+1028D ; 0245 ; MA # ( 𐊍 → Ʌ ) LYCIAN LETTER L → LATIN CAPITAL
LETTER TURNED V # →Λ→
+
+04C5 ; 0245 0326 ; MA # ( Ӆ → Ʌ̦ ) CYRILLIC CAPITAL LETTER EL WITH
TAIL → LATIN CAPITAL LETTER TURNED V, COMBINING COMMA BELOW # →Л̡→
+
+143D ; 0245 00B7 ; MA # ( ᐽ → Ʌ· ) CANADIAN SYLLABICS WEST-CREE PWI →
LATIN CAPITAL LETTER TURNED V, MIDDLE DOT # →ᐱᐧ→→ᐱ·→
+
+026F ; 0077 ; MA # ( ɯ → w ) LATIN SMALL LETTER TURNED M → LATIN SMALL
LETTER W #
+1D430 ; 0077 ; MA # ( 𝐰 → w ) MATHEMATICAL BOLD SMALL W → LATIN
SMALL LETTER W #
+1D464 ; 0077 ; MA # ( 𝑤 → w ) MATHEMATICAL ITALIC SMALL W → LATIN
SMALL LETTER W #
+1D498 ; 0077 ; MA # ( 𝒘 → w ) MATHEMATICAL BOLD ITALIC SMALL W →
LATIN SMALL LETTER W #
+1D4CC ; 0077 ; MA # ( 𝓌 → w ) MATHEMATICAL SCRIPT SMALL W → LATIN
SMALL LETTER W #
+1D500 ; 0077 ; MA # ( 𝔀 → w ) MATHEMATICAL BOLD SCRIPT SMALL W →
LATIN SMALL LETTER W #
+1D534 ; 0077 ; MA # ( 𝔴 → w ) MATHEMATICAL FRAKTUR SMALL W →
LATIN SMALL LETTER W #
+1D568 ; 0077 ; MA # ( 𝕨 → w ) MATHEMATICAL DOUBLE-STRUCK SMALL W
→ LATIN SMALL LETTER W #
+1D59C ; 0077 ; MA # ( 𝖜 → w ) MATHEMATICAL BOLD FRAKTUR SMALL W →
LATIN SMALL LETTER W #
+1D5D0 ; 0077 ; MA # ( 𝗐 → w ) MATHEMATICAL SANS-SERIF SMALL W →
LATIN SMALL LETTER W #
+1D604 ; 0077 ; MA # ( 𝘄 → w ) MATHEMATICAL SANS-SERIF BOLD SMALL
W → LATIN SMALL LETTER W #
+1D638 ; 0077 ; MA # ( 𝘸 → w ) MATHEMATICAL SANS-SERIF ITALIC
SMALL W → LATIN SMALL LETTER W #
+1D66C ; 0077 ; MA # ( 𝙬 → w ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL W → LATIN SMALL LETTER W #
+1D6A0 ; 0077 ; MA # ( 𝚠 → w ) MATHEMATICAL MONOSPACE SMALL W →
LATIN SMALL LETTER W #
+1D21 ; 0077 ; MA # ( ᴡ → w ) LATIN LETTER SMALL CAPITAL W → LATIN SMALL
LETTER W #
+0461 ; 0077 ; MA # ( ѡ → w ) CYRILLIC SMALL LETTER OMEGA → LATIN SMALL
LETTER W #
+051D ; 0077 ; MA # ( ԝ → w ) CYRILLIC SMALL LETTER WE → LATIN SMALL
LETTER W #
+0561 ; 0077 ; MA # ( ա → w ) ARMENIAN SMALL LETTER AYB → LATIN SMALL
LETTER W # →ɯ→
+1170A ; 0077 ; MA # ( 𑜊 → w ) AHOM LETTER JA → LATIN SMALL LETTER
W #
+1170E ; 0077 ; MA # ( 𑜎 → w ) AHOM LETTER LA → LATIN SMALL LETTER
W #
+1170F ; 0077 ; MA # ( 𑜏 → w ) AHOM LETTER SA → LATIN SMALL LETTER
W #
+AB83 ; 0077 ; MA # ( ꮃ → w ) CHEROKEE SMALL LETTER LA → LATIN SMALL
LETTER W # →ᴡ→
+
+118EF ; 0057 ; MA #* ( 𑣯 → W ) WARANG CITI NUMBER SIXTY → LATIN
CAPITAL LETTER W #
+118E6 ; 0057 ; MA # ( 𑣦 → W ) WARANG CITI DIGIT SIX → LATIN
CAPITAL LETTER W #
+1D416 ; 0057 ; MA # ( 𝐖 → W ) MATHEMATICAL BOLD CAPITAL W → LATIN
CAPITAL LETTER W #
+1D44A ; 0057 ; MA # ( 𝑊 → W ) MATHEMATICAL ITALIC CAPITAL W →
LATIN CAPITAL LETTER W #
+1D47E ; 0057 ; MA # ( 𝑾 → W ) MATHEMATICAL BOLD ITALIC CAPITAL W
→ LATIN CAPITAL LETTER W #
+1D4B2 ; 0057 ; MA # ( 𝒲 → W ) MATHEMATICAL SCRIPT CAPITAL W →
LATIN CAPITAL LETTER W #
+1D4E6 ; 0057 ; MA # ( 𝓦 → W ) MATHEMATICAL BOLD SCRIPT CAPITAL W
→ LATIN CAPITAL LETTER W #
+1D51A ; 0057 ; MA # ( 𝔚 → W ) MATHEMATICAL FRAKTUR CAPITAL W →
LATIN CAPITAL LETTER W #
+1D54E ; 0057 ; MA # ( 𝕎 → W ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
W → LATIN CAPITAL LETTER W #
+1D582 ; 0057 ; MA # ( 𝖂 → W ) MATHEMATICAL BOLD FRAKTUR CAPITAL W
→ LATIN CAPITAL LETTER W #
+1D5B6 ; 0057 ; MA # ( 𝖶 → W ) MATHEMATICAL SANS-SERIF CAPITAL W →
LATIN CAPITAL LETTER W #
+1D5EA ; 0057 ; MA # ( 𝗪 → W ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL W → LATIN CAPITAL LETTER W #
+1D61E ; 0057 ; MA # ( 𝘞 → W ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL W → LATIN CAPITAL LETTER W #
+1D652 ; 0057 ; MA # ( 𝙒 → W ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL W → LATIN CAPITAL LETTER W #
+1D686 ; 0057 ; MA # ( 𝚆 → W ) MATHEMATICAL MONOSPACE CAPITAL W →
LATIN CAPITAL LETTER W #
+051C ; 0057 ; MA # ( Ԝ → W ) CYRILLIC CAPITAL LETTER WE → LATIN CAPITAL
LETTER W #
+13B3 ; 0057 ; MA # ( Ꮃ → W ) CHEROKEE LETTER LA → LATIN CAPITAL LETTER W
#
+13D4 ; 0057 ; MA # ( Ꮤ → W ) CHEROKEE LETTER TA → LATIN CAPITAL LETTER W
#
+A4EA ; 0057 ; MA # ( ꓪ → W ) LISU LETTER WA → LATIN CAPITAL LETTER W
#
+
+047D ; 0077 0486 0487 ; MA # ( ѽ → w҆҇ ) CYRILLIC SMALL LETTER
OMEGA WITH TITLO → LATIN SMALL LETTER W, COMBINING CYRILLIC PSILI PNEUMATA,
COMBINING CYRILLIC POKRYTIE # →ѡ҆҇→
+
+114C5 ; 0077 0307 ; MA # ( 𑓅 → ẇ ) TIRHUTA GVANG → LATIN
SMALL LETTER W, COMBINING DOT ABOVE #
+
+20A9 ; 0057 0335 ; MA #* ( ₩ → W̵ ) WON SIGN → LATIN CAPITAL LETTER
W, COMBINING SHORT STROKE OVERLAY #
+
+A761 ; 0077 0326 ; MA # ( ꝡ → w̦ ) LATIN SMALL LETTER VY → LATIN
SMALL LETTER W, COMBINING COMMA BELOW # →w̡→
+
+1D0D ; 028D ; MA # ( ᴍ → ʍ ) LATIN LETTER SMALL CAPITAL M → LATIN SMALL
LETTER TURNED W # →м→
+043C ; 028D ; MA # ( м → ʍ ) CYRILLIC SMALL LETTER EM → LATIN SMALL
LETTER TURNED W #
+AB87 ; 028D ; MA # ( ꮇ → ʍ ) CHEROKEE SMALL LETTER LU → LATIN SMALL
LETTER TURNED W # →ᴍ→→м→
+
+04CE ; 028D 0326 ; MA # ( ӎ → ʍ̦ ) CYRILLIC SMALL LETTER EM WITH TAIL
→ LATIN SMALL LETTER TURNED W, COMBINING COMMA BELOW # →м̡→
+
+166E ; 0078 ; MA #* ( ᙮ → x ) CANADIAN SYLLABICS FULL STOP → LATIN SMALL
LETTER X #
+00D7 ; 0078 ; MA #* ( × → x ) MULTIPLICATION SIGN → LATIN SMALL LETTER X
#
+292B ; 0078 ; MA #* ( ⤫ → x ) RISING DIAGONAL CROSSING FALLING DIAGONAL
→ LATIN SMALL LETTER X #
+292C ; 0078 ; MA #* ( ⤬ → x ) FALLING DIAGONAL CROSSING RISING DIAGONAL
→ LATIN SMALL LETTER X #
+2A2F ; 0078 ; MA #* ( ⨯ → x ) VECTOR OR CROSS PRODUCT → LATIN SMALL
LETTER X # →×→
+FF58 ; 0078 ; MA # ( x → x ) FULLWIDTH LATIN SMALL LETTER X → LATIN
SMALL LETTER X # →х→
+2179 ; 0078 ; MA # ( ⅹ → x ) SMALL ROMAN NUMERAL TEN → LATIN SMALL
LETTER X #
+1D431 ; 0078 ; MA # ( 𝐱 → x ) MATHEMATICAL BOLD SMALL X → LATIN
SMALL LETTER X #
+1D465 ; 0078 ; MA # ( 𝑥 → x ) MATHEMATICAL ITALIC SMALL X → LATIN
SMALL LETTER X #
+1D499 ; 0078 ; MA # ( 𝒙 → x ) MATHEMATICAL BOLD ITALIC SMALL X →
LATIN SMALL LETTER X #
+1D4CD ; 0078 ; MA # ( 𝓍 → x ) MATHEMATICAL SCRIPT SMALL X → LATIN
SMALL LETTER X #
+1D501 ; 0078 ; MA # ( 𝔁 → x ) MATHEMATICAL BOLD SCRIPT SMALL X →
LATIN SMALL LETTER X #
+1D535 ; 0078 ; MA # ( 𝔵 → x ) MATHEMATICAL FRAKTUR SMALL X →
LATIN SMALL LETTER X #
+1D569 ; 0078 ; MA # ( 𝕩 → x ) MATHEMATICAL DOUBLE-STRUCK SMALL X
→ LATIN SMALL LETTER X #
+1D59D ; 0078 ; MA # ( 𝖝 → x ) MATHEMATICAL BOLD FRAKTUR SMALL X →
LATIN SMALL LETTER X #
+1D5D1 ; 0078 ; MA # ( 𝗑 → x ) MATHEMATICAL SANS-SERIF SMALL X →
LATIN SMALL LETTER X #
+1D605 ; 0078 ; MA # ( 𝘅 → x ) MATHEMATICAL SANS-SERIF BOLD SMALL
X → LATIN SMALL LETTER X #
+1D639 ; 0078 ; MA # ( 𝘹 → x ) MATHEMATICAL SANS-SERIF ITALIC
SMALL X → LATIN SMALL LETTER X #
+1D66D ; 0078 ; MA # ( 𝙭 → x ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL X → LATIN SMALL LETTER X #
+1D6A1 ; 0078 ; MA # ( 𝚡 → x ) MATHEMATICAL MONOSPACE SMALL X →
LATIN SMALL LETTER X #
+0445 ; 0078 ; MA # ( х → x ) CYRILLIC SMALL LETTER HA → LATIN SMALL
LETTER X #
+1541 ; 0078 ; MA # ( ᕁ → x ) CANADIAN SYLLABICS SAYISI YI → LATIN SMALL
LETTER X # →᙮→
+157D ; 0078 ; MA # ( ᕽ → x ) CANADIAN SYLLABICS HK → LATIN SMALL LETTER
X # →ᕁ→→᙮→
+
+2DEF ; 036F ; MA # ( ⷯ → ͯ ) COMBINING CYRILLIC LETTER HA → COMBINING
LATIN SMALL LETTER X #
+
+166D ; 0058 ; MA #* ( ᙭ → X ) CANADIAN SYLLABICS CHI SIGN → LATIN
CAPITAL LETTER X #
+2573 ; 0058 ; MA #* ( ╳ → X ) BOX DRAWINGS LIGHT DIAGONAL CROSS → LATIN
CAPITAL LETTER X #
+10322 ; 0058 ; MA #* ( 𐌢 → X ) OLD ITALIC NUMERAL TEN → LATIN
CAPITAL LETTER X # →𐌗→
+118EC ; 0058 ; MA #* ( 𑣬 → X ) WARANG CITI NUMBER THIRTY → LATIN
CAPITAL LETTER X #
+FF38 ; 0058 ; MA # ( X → X ) FULLWIDTH LATIN CAPITAL LETTER X → LATIN
CAPITAL LETTER X # →Х→
+2169 ; 0058 ; MA # ( Ⅹ → X ) ROMAN NUMERAL TEN → LATIN CAPITAL LETTER X
#
+1D417 ; 0058 ; MA # ( 𝐗 → X ) MATHEMATICAL BOLD CAPITAL X → LATIN
CAPITAL LETTER X #
+1D44B ; 0058 ; MA # ( 𝑋 → X ) MATHEMATICAL ITALIC CAPITAL X →
LATIN CAPITAL LETTER X #
+1D47F ; 0058 ; MA # ( 𝑿 → X ) MATHEMATICAL BOLD ITALIC CAPITAL X
→ LATIN CAPITAL LETTER X #
+1D4B3 ; 0058 ; MA # ( 𝒳 → X ) MATHEMATICAL SCRIPT CAPITAL X →
LATIN CAPITAL LETTER X #
+1D4E7 ; 0058 ; MA # ( 𝓧 → X ) MATHEMATICAL BOLD SCRIPT CAPITAL X
→ LATIN CAPITAL LETTER X #
+1D51B ; 0058 ; MA # ( 𝔛 → X ) MATHEMATICAL FRAKTUR CAPITAL X →
LATIN CAPITAL LETTER X #
+1D54F ; 0058 ; MA # ( 𝕏 → X ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
X → LATIN CAPITAL LETTER X #
+1D583 ; 0058 ; MA # ( 𝖃 → X ) MATHEMATICAL BOLD FRAKTUR CAPITAL X
→ LATIN CAPITAL LETTER X #
+1D5B7 ; 0058 ; MA # ( 𝖷 → X ) MATHEMATICAL SANS-SERIF CAPITAL X →
LATIN CAPITAL LETTER X #
+1D5EB ; 0058 ; MA # ( 𝗫 → X ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL X → LATIN CAPITAL LETTER X #
+1D61F ; 0058 ; MA # ( 𝘟 → X ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL X → LATIN CAPITAL LETTER X #
+1D653 ; 0058 ; MA # ( 𝙓 → X ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL X → LATIN CAPITAL LETTER X #
+1D687 ; 0058 ; MA # ( 𝚇 → X ) MATHEMATICAL MONOSPACE CAPITAL X →
LATIN CAPITAL LETTER X #
+A7B3 ; 0058 ; MA # ( Ꭓ → X ) LATIN CAPITAL LETTER CHI → LATIN CAPITAL
LETTER X #
+03A7 ; 0058 ; MA # ( Χ → X ) GREEK CAPITAL LETTER CHI → LATIN CAPITAL
LETTER X #
+1D6BE ; 0058 ; MA # ( 𝚾 → X ) MATHEMATICAL BOLD CAPITAL CHI →
LATIN CAPITAL LETTER X # →Χ→
+1D6F8 ; 0058 ; MA # ( 𝛸 → X ) MATHEMATICAL ITALIC CAPITAL CHI →
LATIN CAPITAL LETTER X # →Χ→
+1D732 ; 0058 ; MA # ( 𝜲 → X ) MATHEMATICAL BOLD ITALIC CAPITAL
CHI → LATIN CAPITAL LETTER X # →𝑿→
+1D76C ; 0058 ; MA # ( 𝝬 → X ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL CHI → LATIN CAPITAL LETTER X # →Χ→
+1D7A6 ; 0058 ; MA # ( 𝞦 → X ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL CHI → LATIN CAPITAL LETTER X # →Χ→
+2CAC ; 0058 ; MA # ( Ⲭ → X ) COPTIC CAPITAL LETTER KHI → LATIN CAPITAL
LETTER X # →Х→
+0425 ; 0058 ; MA # ( Х → X ) CYRILLIC CAPITAL LETTER HA → LATIN CAPITAL
LETTER X #
+2D5D ; 0058 ; MA # ( ⵝ → X ) TIFINAGH LETTER YATH → LATIN CAPITAL LETTER
X #
+16B7 ; 0058 ; MA # ( ᚷ → X ) RUNIC LETTER GEBO GYFU G → LATIN CAPITAL
LETTER X #
+A4EB ; 0058 ; MA # ( ꓫ → X ) LISU LETTER SHA → LATIN CAPITAL LETTER X
#
+10290 ; 0058 ; MA # ( 𐊐 → X ) LYCIAN LETTER MM → LATIN CAPITAL
LETTER X #
+102B4 ; 0058 ; MA # ( 𐊴 → X ) CARIAN LETTER X → LATIN CAPITAL
LETTER X #
+10317 ; 0058 ; MA # ( 𐌗 → X ) OLD ITALIC LETTER EKS → LATIN
CAPITAL LETTER X #
+10527 ; 0058 ; MA # ( 𐔧 → X ) ELBASAN LETTER KHE → LATIN CAPITAL
LETTER X #
+
+2A30 ; 0078 0307 ; MA #* ( ⨰ → ẋ ) MULTIPLICATION SIGN WITH DOT
ABOVE → LATIN SMALL LETTER X, COMBINING DOT ABOVE # →×̇→
+
+04B2 ; 0058 0329 ; MA # ( Ҳ → X̩ ) CYRILLIC CAPITAL LETTER HA WITH
DESCENDER → LATIN CAPITAL LETTER X, COMBINING VERTICAL LINE BELOW # →Х̩→
+
+10196 ; 0058 0335 ; MA #* ( 𐆖 → X̵ ) ROMAN DENARIUS SIGN →
LATIN CAPITAL LETTER X, COMBINING SHORT STROKE OVERLAY # →X̶→
+
+217A ; 0078 0069 ; MA # ( ⅺ → xi ) SMALL ROMAN NUMERAL ELEVEN → LATIN
SMALL LETTER X, LATIN SMALL LETTER I #
+
+217B ; 0078 0069 0069 ; MA # ( ⅻ → xii ) SMALL ROMAN NUMERAL
TWELVE → LATIN SMALL LETTER X, LATIN SMALL LETTER I, LATIN SMALL LETTER I #
+
+216A ; 0058 006C ; MA # ( Ⅺ → Xl ) ROMAN NUMERAL ELEVEN → LATIN
CAPITAL LETTER X, LATIN SMALL LETTER L # →XI→
+
+216B ; 0058 006C 006C ; MA # ( Ⅻ → Xll ) ROMAN NUMERAL TWELVE →
LATIN CAPITAL LETTER X, LATIN SMALL LETTER L, LATIN SMALL LETTER L # →XII→
+
+0263 ; 0079 ; MA # ( ɣ → y ) LATIN SMALL LETTER GAMMA → LATIN SMALL
LETTER Y # →γ→
+1D8C ; 0079 ; MA # ( ᶌ → y ) LATIN SMALL LETTER V WITH PALATAL HOOK →
LATIN SMALL LETTER Y #
+FF59 ; 0079 ; MA # ( y → y ) FULLWIDTH LATIN SMALL LETTER Y → LATIN
SMALL LETTER Y # →у→
+1D432 ; 0079 ; MA # ( 𝐲 → y ) MATHEMATICAL BOLD SMALL Y → LATIN
SMALL LETTER Y #
+1D466 ; 0079 ; MA # ( 𝑦 → y ) MATHEMATICAL ITALIC SMALL Y → LATIN
SMALL LETTER Y #
+1D49A ; 0079 ; MA # ( 𝒚 → y ) MATHEMATICAL BOLD ITALIC SMALL Y →
LATIN SMALL LETTER Y #
+1D4CE ; 0079 ; MA # ( 𝓎 → y ) MATHEMATICAL SCRIPT SMALL Y → LATIN
SMALL LETTER Y #
+1D502 ; 0079 ; MA # ( 𝔂 → y ) MATHEMATICAL BOLD SCRIPT SMALL Y →
LATIN SMALL LETTER Y #
+1D536 ; 0079 ; MA # ( 𝔶 → y ) MATHEMATICAL FRAKTUR SMALL Y →
LATIN SMALL LETTER Y #
+1D56A ; 0079 ; MA # ( 𝕪 → y ) MATHEMATICAL DOUBLE-STRUCK SMALL Y
→ LATIN SMALL LETTER Y #
+1D59E ; 0079 ; MA # ( 𝖞 → y ) MATHEMATICAL BOLD FRAKTUR SMALL Y →
LATIN SMALL LETTER Y #
+1D5D2 ; 0079 ; MA # ( 𝗒 → y ) MATHEMATICAL SANS-SERIF SMALL Y →
LATIN SMALL LETTER Y #
+1D606 ; 0079 ; MA # ( 𝘆 → y ) MATHEMATICAL SANS-SERIF BOLD SMALL
Y → LATIN SMALL LETTER Y #
+1D63A ; 0079 ; MA # ( 𝘺 → y ) MATHEMATICAL SANS-SERIF ITALIC
SMALL Y → LATIN SMALL LETTER Y #
+1D66E ; 0079 ; MA # ( 𝙮 → y ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL Y → LATIN SMALL LETTER Y #
+1D6A2 ; 0079 ; MA # ( 𝚢 → y ) MATHEMATICAL MONOSPACE SMALL Y →
LATIN SMALL LETTER Y #
+028F ; 0079 ; MA # ( ʏ → y ) LATIN LETTER SMALL CAPITAL Y → LATIN SMALL
LETTER Y # →ү→→γ→
+1EFF ; 0079 ; MA # ( ỿ → y ) LATIN SMALL LETTER Y WITH LOOP → LATIN
SMALL LETTER Y #
+AB5A ; 0079 ; MA # ( ꭚ → y ) LATIN SMALL LETTER Y WITH SHORT RIGHT LEG →
LATIN SMALL LETTER Y #
+03B3 ; 0079 ; MA # ( γ → y ) GREEK SMALL LETTER GAMMA → LATIN SMALL
LETTER Y #
+213D ; 0079 ; MA # ( ℽ → y ) DOUBLE-STRUCK SMALL GAMMA → LATIN SMALL
LETTER Y # →γ→
+1D6C4 ; 0079 ; MA # ( 𝛄 → y ) MATHEMATICAL BOLD SMALL GAMMA →
LATIN SMALL LETTER Y # →γ→
+1D6FE ; 0079 ; MA # ( 𝛾 → y ) MATHEMATICAL ITALIC SMALL GAMMA →
LATIN SMALL LETTER Y # →γ→
+1D738 ; 0079 ; MA # ( 𝜸 → y ) MATHEMATICAL BOLD ITALIC SMALL
GAMMA → LATIN SMALL LETTER Y # →γ→
+1D772 ; 0079 ; MA # ( 𝝲 → y ) MATHEMATICAL SANS-SERIF BOLD SMALL
GAMMA → LATIN SMALL LETTER Y # →γ→
+1D7AC ; 0079 ; MA # ( 𝞬 → y ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL GAMMA → LATIN SMALL LETTER Y # →γ→
+0443 ; 0079 ; MA # ( у → y ) CYRILLIC SMALL LETTER U → LATIN SMALL
LETTER Y #
+04AF ; 0079 ; MA # ( ү → y ) CYRILLIC SMALL LETTER STRAIGHT U → LATIN
SMALL LETTER Y # →γ→
+10E7 ; 0079 ; MA # ( ყ → y ) GEORGIAN LETTER QAR → LATIN SMALL LETTER Y
#
+118DC ; 0079 ; MA # ( 𑣜 → y ) WARANG CITI SMALL LETTER HAR →
LATIN SMALL LETTER Y # →ɣ→→γ→
+
+FF39 ; 0059 ; MA # ( Y → Y ) FULLWIDTH LATIN CAPITAL LETTER Y → LATIN
CAPITAL LETTER Y # →Υ→
+1D418 ; 0059 ; MA # ( 𝐘 → Y ) MATHEMATICAL BOLD CAPITAL Y → LATIN
CAPITAL LETTER Y #
+1D44C ; 0059 ; MA # ( 𝑌 → Y ) MATHEMATICAL ITALIC CAPITAL Y →
LATIN CAPITAL LETTER Y #
+1D480 ; 0059 ; MA # ( 𝒀 → Y ) MATHEMATICAL BOLD ITALIC CAPITAL Y
→ LATIN CAPITAL LETTER Y #
+1D4B4 ; 0059 ; MA # ( 𝒴 → Y ) MATHEMATICAL SCRIPT CAPITAL Y →
LATIN CAPITAL LETTER Y #
+1D4E8 ; 0059 ; MA # ( 𝓨 → Y ) MATHEMATICAL BOLD SCRIPT CAPITAL Y
→ LATIN CAPITAL LETTER Y #
+1D51C ; 0059 ; MA # ( 𝔜 → Y ) MATHEMATICAL FRAKTUR CAPITAL Y →
LATIN CAPITAL LETTER Y #
+1D550 ; 0059 ; MA # ( 𝕐 → Y ) MATHEMATICAL DOUBLE-STRUCK CAPITAL
Y → LATIN CAPITAL LETTER Y #
+1D584 ; 0059 ; MA # ( 𝖄 → Y ) MATHEMATICAL BOLD FRAKTUR CAPITAL Y
→ LATIN CAPITAL LETTER Y #
+1D5B8 ; 0059 ; MA # ( 𝖸 → Y ) MATHEMATICAL SANS-SERIF CAPITAL Y →
LATIN CAPITAL LETTER Y #
+1D5EC ; 0059 ; MA # ( 𝗬 → Y ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL Y → LATIN CAPITAL LETTER Y #
+1D620 ; 0059 ; MA # ( 𝘠 → Y ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL Y → LATIN CAPITAL LETTER Y #
+1D654 ; 0059 ; MA # ( 𝙔 → Y ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL Y → LATIN CAPITAL LETTER Y #
+1D688 ; 0059 ; MA # ( 𝚈 → Y ) MATHEMATICAL MONOSPACE CAPITAL Y →
LATIN CAPITAL LETTER Y #
+03A5 ; 0059 ; MA # ( Υ → Y ) GREEK CAPITAL LETTER UPSILON → LATIN
CAPITAL LETTER Y #
+03D2 ; 0059 ; MA # ( ϒ → Y ) GREEK UPSILON WITH HOOK SYMBOL → LATIN
CAPITAL LETTER Y #
+1D6BC ; 0059 ; MA # ( 𝚼 → Y ) MATHEMATICAL BOLD CAPITAL UPSILON →
LATIN CAPITAL LETTER Y # →Υ→
+1D6F6 ; 0059 ; MA # ( 𝛶 → Y ) MATHEMATICAL ITALIC CAPITAL UPSILON
→ LATIN CAPITAL LETTER Y # →Υ→
+1D730 ; 0059 ; MA # ( 𝜰 → Y ) MATHEMATICAL BOLD ITALIC CAPITAL
UPSILON → LATIN CAPITAL LETTER Y # →Υ→
+1D76A ; 0059 ; MA # ( 𝝪 → Y ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL UPSILON → LATIN CAPITAL LETTER Y # →Υ→
+1D7A4 ; 0059 ; MA # ( 𝞤 → Y ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL UPSILON → LATIN CAPITAL LETTER Y # →Υ→
+2CA8 ; 0059 ; MA # ( Ⲩ → Y ) COPTIC CAPITAL LETTER UA → LATIN CAPITAL
LETTER Y #
+0423 ; 0059 ; MA # ( У → Y ) CYRILLIC CAPITAL LETTER U → LATIN CAPITAL
LETTER Y #
+04AE ; 0059 ; MA # ( Ү → Y ) CYRILLIC CAPITAL LETTER STRAIGHT U → LATIN
CAPITAL LETTER Y #
+13A9 ; 0059 ; MA # ( Ꭹ → Y ) CHEROKEE LETTER GI → LATIN CAPITAL LETTER Y
#
+13BD ; 0059 ; MA # ( Ꮍ → Y ) CHEROKEE LETTER MU → LATIN CAPITAL LETTER Y
# →Ꭹ→
+A4EC ; 0059 ; MA # ( ꓬ → Y ) LISU LETTER YA → LATIN CAPITAL LETTER Y
#
+16F43 ; 0059 ; MA # ( 𖽃 → Y ) MIAO LETTER AH → LATIN CAPITAL
LETTER Y #
+118A4 ; 0059 ; MA # ( 𑢤 → Y ) WARANG CITI CAPITAL LETTER YA →
LATIN CAPITAL LETTER Y #
+102B2 ; 0059 ; MA # ( 𐊲 → Y ) CARIAN LETTER U → LATIN CAPITAL
LETTER Y #
+
+01B4 ; 0079 0314 ; MA # ( ƴ → y̔ ) LATIN SMALL LETTER Y WITH HOOK →
LATIN SMALL LETTER Y, COMBINING REVERSED COMMA ABOVE #
+
+024F ; 0079 0335 ; MA # ( ɏ → y̵ ) LATIN SMALL LETTER Y WITH STROKE →
LATIN SMALL LETTER Y, COMBINING SHORT STROKE OVERLAY #
+04B1 ; 0079 0335 ; MA # ( ұ → y̵ ) CYRILLIC SMALL LETTER STRAIGHT U
WITH STROKE → LATIN SMALL LETTER Y, COMBINING SHORT STROKE OVERLAY # →ү̵→
+
+00A5 ; 0059 0335 ; MA #* ( ¥ → Y̵ ) YEN SIGN → LATIN CAPITAL LETTER
Y, COMBINING SHORT STROKE OVERLAY #
+024E ; 0059 0335 ; MA # ( Ɏ → Y̵ ) LATIN CAPITAL LETTER Y WITH STROKE
→ LATIN CAPITAL LETTER Y, COMBINING SHORT STROKE OVERLAY #
+04B0 ; 0059 0335 ; MA # ( Ұ → Y̵ ) CYRILLIC CAPITAL LETTER STRAIGHT U
WITH STROKE → LATIN CAPITAL LETTER Y, COMBINING SHORT STROKE OVERLAY # →Ү̵→
+
+0292 ; 021D ; MA # ( ʒ → ȝ ) LATIN SMALL LETTER EZH → LATIN SMALL LETTER
YOGH #
+A76B ; 021D ; MA # ( ꝫ → ȝ ) LATIN SMALL LETTER ET → LATIN SMALL LETTER
YOGH #
+2CCD ; 021D ; MA # ( ⳍ → ȝ ) COPTIC SMALL LETTER OLD COPTIC HORI → LATIN
SMALL LETTER YOGH #
+04E1 ; 021D ; MA # ( ӡ → ȝ ) CYRILLIC SMALL LETTER ABKHASIAN DZE → LATIN
SMALL LETTER YOGH # →ʒ→
+10F3 ; 021D ; MA # ( ჳ → ȝ ) GEORGIAN LETTER WE → LATIN SMALL LETTER
YOGH # →ʒ→
+
+1D433 ; 007A ; MA # ( 𝐳 → z ) MATHEMATICAL BOLD SMALL Z → LATIN
SMALL LETTER Z #
+1D467 ; 007A ; MA # ( 𝑧 → z ) MATHEMATICAL ITALIC SMALL Z → LATIN
SMALL LETTER Z #
+1D49B ; 007A ; MA # ( 𝒛 → z ) MATHEMATICAL BOLD ITALIC SMALL Z →
LATIN SMALL LETTER Z #
+1D4CF ; 007A ; MA # ( 𝓏 → z ) MATHEMATICAL SCRIPT SMALL Z → LATIN
SMALL LETTER Z #
+1D503 ; 007A ; MA # ( 𝔃 → z ) MATHEMATICAL BOLD SCRIPT SMALL Z →
LATIN SMALL LETTER Z #
+1D537 ; 007A ; MA # ( 𝔷 → z ) MATHEMATICAL FRAKTUR SMALL Z →
LATIN SMALL LETTER Z #
+1D56B ; 007A ; MA # ( 𝕫 → z ) MATHEMATICAL DOUBLE-STRUCK SMALL Z
→ LATIN SMALL LETTER Z #
+1D59F ; 007A ; MA # ( 𝖟 → z ) MATHEMATICAL BOLD FRAKTUR SMALL Z →
LATIN SMALL LETTER Z #
+1D5D3 ; 007A ; MA # ( 𝗓 → z ) MATHEMATICAL SANS-SERIF SMALL Z →
LATIN SMALL LETTER Z #
+1D607 ; 007A ; MA # ( 𝘇 → z ) MATHEMATICAL SANS-SERIF BOLD SMALL
Z → LATIN SMALL LETTER Z #
+1D63B ; 007A ; MA # ( 𝘻 → z ) MATHEMATICAL SANS-SERIF ITALIC
SMALL Z → LATIN SMALL LETTER Z #
+1D66F ; 007A ; MA # ( 𝙯 → z ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL Z → LATIN SMALL LETTER Z #
+1D6A3 ; 007A ; MA # ( 𝚣 → z ) MATHEMATICAL MONOSPACE SMALL Z →
LATIN SMALL LETTER Z #
+1D22 ; 007A ; MA # ( ᴢ → z ) LATIN LETTER SMALL CAPITAL Z → LATIN SMALL
LETTER Z #
+AB93 ; 007A ; MA # ( ꮓ → z ) CHEROKEE SMALL LETTER NO → LATIN SMALL
LETTER Z # →ᴢ→
+118C4 ; 007A ; MA # ( 𑣄 → z ) WARANG CITI SMALL LETTER YA → LATIN
SMALL LETTER Z #
+
+102F5 ; 005A ; MA #* ( 𐋵 → Z ) COPTIC EPACT NUMBER THREE HUNDRED
→ LATIN CAPITAL LETTER Z #
+118E5 ; 005A ; MA # ( 𑣥 → Z ) WARANG CITI DIGIT FIVE → LATIN
CAPITAL LETTER Z #
+FF3A ; 005A ; MA # ( Z → Z ) FULLWIDTH LATIN CAPITAL LETTER Z → LATIN
CAPITAL LETTER Z # →Ζ→
+2124 ; 005A ; MA # ( ℤ → Z ) DOUBLE-STRUCK CAPITAL Z → LATIN CAPITAL
LETTER Z #
+2128 ; 005A ; MA # ( ℨ → Z ) BLACK-LETTER CAPITAL Z → LATIN CAPITAL
LETTER Z #
+1D419 ; 005A ; MA # ( 𝐙 → Z ) MATHEMATICAL BOLD CAPITAL Z → LATIN
CAPITAL LETTER Z #
+1D44D ; 005A ; MA # ( 𝑍 → Z ) MATHEMATICAL ITALIC CAPITAL Z →
LATIN CAPITAL LETTER Z #
+1D481 ; 005A ; MA # ( 𝒁 → Z ) MATHEMATICAL BOLD ITALIC CAPITAL Z
→ LATIN CAPITAL LETTER Z #
+1D4B5 ; 005A ; MA # ( 𝒵 → Z ) MATHEMATICAL SCRIPT CAPITAL Z →
LATIN CAPITAL LETTER Z #
+1D4E9 ; 005A ; MA # ( 𝓩 → Z ) MATHEMATICAL BOLD SCRIPT CAPITAL Z
→ LATIN CAPITAL LETTER Z #
+1D585 ; 005A ; MA # ( 𝖅 → Z ) MATHEMATICAL BOLD FRAKTUR CAPITAL Z
→ LATIN CAPITAL LETTER Z #
+1D5B9 ; 005A ; MA # ( 𝖹 → Z ) MATHEMATICAL SANS-SERIF CAPITAL Z →
LATIN CAPITAL LETTER Z #
+1D5ED ; 005A ; MA # ( 𝗭 → Z ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL Z → LATIN CAPITAL LETTER Z #
+1D621 ; 005A ; MA # ( 𝘡 → Z ) MATHEMATICAL SANS-SERIF ITALIC
CAPITAL Z → LATIN CAPITAL LETTER Z #
+1D655 ; 005A ; MA # ( 𝙕 → Z ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL Z → LATIN CAPITAL LETTER Z #
+1D689 ; 005A ; MA # ( 𝚉 → Z ) MATHEMATICAL MONOSPACE CAPITAL Z →
LATIN CAPITAL LETTER Z #
+0396 ; 005A ; MA # ( Ζ → Z ) GREEK CAPITAL LETTER ZETA → LATIN CAPITAL
LETTER Z #
+1D6AD ; 005A ; MA # ( 𝚭 → Z ) MATHEMATICAL BOLD CAPITAL ZETA →
LATIN CAPITAL LETTER Z # →Ζ→
+1D6E7 ; 005A ; MA # ( 𝛧 → Z ) MATHEMATICAL ITALIC CAPITAL ZETA →
LATIN CAPITAL LETTER Z # →𝑍→
+1D721 ; 005A ; MA # ( 𝜡 → Z ) MATHEMATICAL BOLD ITALIC CAPITAL
ZETA → LATIN CAPITAL LETTER Z # →Ζ→
+1D75B ; 005A ; MA # ( 𝝛 → Z ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL ZETA → LATIN CAPITAL LETTER Z # →Ζ→
+1D795 ; 005A ; MA # ( 𝞕 → Z ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL ZETA → LATIN CAPITAL LETTER Z # →Ζ→
+13C3 ; 005A ; MA # ( Ꮓ → Z ) CHEROKEE LETTER NO → LATIN CAPITAL LETTER Z
#
+A4DC ; 005A ; MA # ( ꓜ → Z ) LISU LETTER DZA → LATIN CAPITAL LETTER Z
#
+118A9 ; 005A ; MA # ( 𑢩 → Z ) WARANG CITI CAPITAL LETTER O →
LATIN CAPITAL LETTER Z #
+
+0290 ; 007A 0328 ; MA # ( ʐ → z̨ ) LATIN SMALL LETTER Z WITH
RETROFLEX HOOK → LATIN SMALL LETTER Z, COMBINING OGONEK # →z̢→
+
+01B6 ; 007A 0335 ; MA # ( ƶ → z̵ ) LATIN SMALL LETTER Z WITH STROKE →
LATIN SMALL LETTER Z, COMBINING SHORT STROKE OVERLAY #
+
+01B5 ; 005A 0335 ; MA # ( Ƶ → Z̵ ) LATIN CAPITAL LETTER Z WITH STROKE
→ LATIN CAPITAL LETTER Z, COMBINING SHORT STROKE OVERLAY #
+
+0225 ; 007A 0326 ; MA # ( ȥ → z̦ ) LATIN SMALL LETTER Z WITH HOOK →
LATIN SMALL LETTER Z, COMBINING COMMA BELOW # →z̡→
+
+0224 ; 005A 0326 ; MA # ( Ȥ → Z̦ ) LATIN CAPITAL LETTER Z WITH HOOK →
LATIN CAPITAL LETTER Z, COMBINING COMMA BELOW # →Z̧→
+
+1D76 ; 007A 0334 ; MA # ( ᵶ → z̴ ) LATIN SMALL LETTER Z WITH MIDDLE
TILDE → LATIN SMALL LETTER Z, COMBINING TILDE OVERLAY #
+
+01BF ; 00FE ; MA # ( ƿ → þ ) LATIN LETTER WYNN → LATIN SMALL LETTER
THORN #
+03F8 ; 00FE ; MA # ( ϸ → þ ) GREEK SMALL LETTER SHO → LATIN SMALL LETTER
THORN #
+
+03F7 ; 00DE ; MA # ( Ϸ → Þ ) GREEK CAPITAL LETTER SHO → LATIN CAPITAL
LETTER THORN #
+104C4 ; 00DE ; MA # ( 𐓄 → Þ ) OSAGE CAPITAL LETTER PA → LATIN
CAPITAL LETTER THORN #
+
+2079 ; A770 ; MA #* ( ⁹ → ꝰ ) SUPERSCRIPT NINE → MODIFIER LETTER US
#
+
+1D24 ; 01A8 ; MA # ( ᴤ → ƨ ) LATIN LETTER VOICED LARYNGEAL SPIRANT →
LATIN SMALL LETTER TONE TWO #
+03E9 ; 01A8 ; MA # ( ϩ → ƨ ) COPTIC SMALL LETTER HORI → LATIN SMALL
LETTER TONE TWO #
+A645 ; 01A8 ; MA # ( ꙅ → ƨ ) CYRILLIC SMALL LETTER REVERSED DZE → LATIN
SMALL LETTER TONE TWO #
+
+044C ; 0185 ; MA # ( ь → ƅ ) CYRILLIC SMALL LETTER SOFT SIGN → LATIN
SMALL LETTER TONE SIX #
+AB9F ; 0185 ; MA # ( ꮟ → ƅ ) CHEROKEE SMALL LETTER SI → LATIN SMALL
LETTER TONE SIX # →ь→
+
+044B ; 0185 0069 ; MA # ( ы → ƅi ) CYRILLIC SMALL LETTER YERU → LATIN
SMALL LETTER TONE SIX, LATIN SMALL LETTER I # →ьı→
+
+AB7E ; 0242 ; MA # ( ꭾ → ɂ ) CHEROKEE SMALL LETTER HE → LATIN SMALL
LETTER GLOTTAL STOP #
+
+02E4 ; 02C1 ; MA # ( ˤ → ˁ ) MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
→ MODIFIER LETTER REVERSED GLOTTAL STOP #
+
+A6CD ; 02A1 ; MA # ( ꛍ → ʡ ) BAMUM LETTER LU → LATIN LETTER GLOTTAL STOP
WITH STROKE #
+
+2299 ; 0298 ; MA #* ( ⊙ → ʘ ) CIRCLED DOT OPERATOR → LATIN LETTER
BILABIAL CLICK #
+2609 ; 0298 ; MA #* ( ☉ → ʘ ) SUN → LATIN LETTER BILABIAL CLICK # →⊙→
+2A00 ; 0298 ; MA #* ( ⨀ → ʘ ) N-ARY CIRCLED DOT OPERATOR → LATIN LETTER
BILABIAL CLICK # →⊙→
+A668 ; 0298 ; MA # ( Ꙩ → ʘ ) CYRILLIC CAPITAL LETTER MONOCULAR O → LATIN
LETTER BILABIAL CLICK #
+2D59 ; 0298 ; MA # ( ⵙ → ʘ ) TIFINAGH LETTER YAS → LATIN LETTER BILABIAL
CLICK # →⊙→
+104C3 ; 0298 ; MA # ( 𐓃 → ʘ ) OSAGE CAPITAL LETTER OIN → LATIN
LETTER BILABIAL CLICK # →Ꙩ→
+
+213E ; 0393 ; MA # ( ℾ → Γ ) DOUBLE-STRUCK CAPITAL GAMMA → GREEK CAPITAL
LETTER GAMMA #
+1D6AA ; 0393 ; MA # ( 𝚪 → Γ ) MATHEMATICAL BOLD CAPITAL GAMMA →
GREEK CAPITAL LETTER GAMMA #
+1D6E4 ; 0393 ; MA # ( 𝛤 → Γ ) MATHEMATICAL ITALIC CAPITAL GAMMA →
GREEK CAPITAL LETTER GAMMA #
+1D71E ; 0393 ; MA # ( 𝜞 → Γ ) MATHEMATICAL BOLD ITALIC CAPITAL
GAMMA → GREEK CAPITAL LETTER GAMMA #
+1D758 ; 0393 ; MA # ( 𝝘 → Γ ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL GAMMA → GREEK CAPITAL LETTER GAMMA #
+1D792 ; 0393 ; MA # ( 𝞒 → Γ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL GAMMA → GREEK CAPITAL LETTER GAMMA #
+2C84 ; 0393 ; MA # ( Ⲅ → Γ ) COPTIC CAPITAL LETTER GAMMA → GREEK CAPITAL
LETTER GAMMA #
+0413 ; 0393 ; MA # ( Г → Γ ) CYRILLIC CAPITAL LETTER GHE → GREEK CAPITAL
LETTER GAMMA #
+13B1 ; 0393 ; MA # ( Ꮁ → Γ ) CHEROKEE LETTER HU → GREEK CAPITAL LETTER
GAMMA #
+14A5 ; 0393 ; MA # ( ᒥ → Γ ) CANADIAN SYLLABICS MI → GREEK CAPITAL
LETTER GAMMA #
+16F07 ; 0393 ; MA # ( 𖼇 → Γ ) MIAO LETTER FA → GREEK CAPITAL
LETTER GAMMA #
+
+0492 ; 0393 0335 ; MA # ( Ғ → Γ̵ ) CYRILLIC CAPITAL LETTER GHE WITH
STROKE → GREEK CAPITAL LETTER GAMMA, COMBINING SHORT STROKE OVERLAY # →Г̵→
+
+14AF ; 0393 00B7 ; MA # ( ᒯ → Γ· ) CANADIAN SYLLABICS WEST-CREE MWI →
GREEK CAPITAL LETTER GAMMA, MIDDLE DOT # →ᒥᐧ→→ᒥ·→
+
+0490 ; 0393 0027 ; MA # ( Ґ → Γ' ) CYRILLIC CAPITAL LETTER GHE WITH
UPTURN → GREEK CAPITAL LETTER GAMMA, APOSTROPHE # →Гˈ→
+
+2206 ; 0394 ; MA #* ( ∆ → Δ ) INCREMENT → GREEK CAPITAL LETTER DELTA
#
+25B3 ; 0394 ; MA #* ( △ → Δ ) WHITE UP-POINTING TRIANGLE → GREEK CAPITAL
LETTER DELTA #
+1F702 ; 0394 ; MA #* ( 🜂 → Δ ) ALCHEMICAL SYMBOL FOR FIRE → GREEK
CAPITAL LETTER DELTA # →△→
+1D6AB ; 0394 ; MA # ( 𝚫 → Δ ) MATHEMATICAL BOLD CAPITAL DELTA →
GREEK CAPITAL LETTER DELTA #
+1D6E5 ; 0394 ; MA # ( 𝛥 → Δ ) MATHEMATICAL ITALIC CAPITAL DELTA →
GREEK CAPITAL LETTER DELTA #
+1D71F ; 0394 ; MA # ( 𝜟 → Δ ) MATHEMATICAL BOLD ITALIC CAPITAL
DELTA → GREEK CAPITAL LETTER DELTA #
+1D759 ; 0394 ; MA # ( 𝝙 → Δ ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL DELTA → GREEK CAPITAL LETTER DELTA #
+1D793 ; 0394 ; MA # ( 𝞓 → Δ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL DELTA → GREEK CAPITAL LETTER DELTA #
+2C86 ; 0394 ; MA # ( Ⲇ → Δ ) COPTIC CAPITAL LETTER DALDA → GREEK CAPITAL
LETTER DELTA #
+2D60 ; 0394 ; MA # ( ⵠ → Δ ) TIFINAGH LETTER YAV → GREEK CAPITAL LETTER
DELTA #
+1403 ; 0394 ; MA # ( ᐃ → Δ ) CANADIAN SYLLABICS I → GREEK CAPITAL LETTER
DELTA #
+16F1A ; 0394 ; MA # ( 𖼚 → Δ ) MIAO LETTER TLHA → GREEK CAPITAL
LETTER DELTA #
+10285 ; 0394 ; MA # ( 𐊅 → Δ ) LYCIAN LETTER D → GREEK CAPITAL
LETTER DELTA #
+102A3 ; 0394 ; MA # ( 𐊣 → Δ ) CARIAN LETTER L → GREEK CAPITAL
LETTER DELTA #
+
+2359 ; 0394 0332 ; MA #* ( ⍙ → Δ̲ ) APL FUNCTIONAL SYMBOL DELTA
UNDERBAR → GREEK CAPITAL LETTER DELTA, COMBINING LOW LINE #
+
+140F ; 0394 00B7 ; MA # ( ᐏ → Δ· ) CANADIAN SYLLABICS WEST-CREE WI →
GREEK CAPITAL LETTER DELTA, MIDDLE DOT # →ᐃᐧ→
+
+142C ; 0394 1420 ; MA # ( ᐬ → Δᐠ ) CANADIAN SYLLABICS IN → GREEK
CAPITAL LETTER DELTA, CANADIAN SYLLABICS FINAL GRAVE # →ᐃᐠ→
+
+1D7CB ; 03DD ; MA # ( 𝟋 → ϝ ) MATHEMATICAL BOLD SMALL DIGAMMA →
GREEK SMALL LETTER DIGAMMA #
+
+1D6C7 ; 03B6 ; MA # ( 𝛇 → ζ ) MATHEMATICAL BOLD SMALL ZETA →
GREEK SMALL LETTER ZETA #
+1D701 ; 03B6 ; MA # ( 𝜁 → ζ ) MATHEMATICAL ITALIC SMALL ZETA →
GREEK SMALL LETTER ZETA #
+1D73B ; 03B6 ; MA # ( 𝜻 → ζ ) MATHEMATICAL BOLD ITALIC SMALL ZETA
→ GREEK SMALL LETTER ZETA #
+1D775 ; 03B6 ; MA # ( 𝝵 → ζ ) MATHEMATICAL SANS-SERIF BOLD SMALL
ZETA → GREEK SMALL LETTER ZETA #
+1D7AF ; 03B6 ; MA # ( 𝞯 → ζ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL ZETA → GREEK SMALL LETTER ZETA #
+
+2CE4 ; 03D7 ; MA # ( ⳤ → ϗ ) COPTIC SYMBOL KAI → GREEK KAI SYMBOL
#
+
+1D6CC ; 03BB ; MA # ( 𝛌 → λ ) MATHEMATICAL BOLD SMALL LAMDA →
GREEK SMALL LETTER LAMDA #
+1D706 ; 03BB ; MA # ( 𝜆 → λ ) MATHEMATICAL ITALIC SMALL LAMDA →
GREEK SMALL LETTER LAMDA #
+1D740 ; 03BB ; MA # ( 𝝀 → λ ) MATHEMATICAL BOLD ITALIC SMALL
LAMDA → GREEK SMALL LETTER LAMDA #
+1D77A ; 03BB ; MA # ( 𝝺 → λ ) MATHEMATICAL SANS-SERIF BOLD SMALL
LAMDA → GREEK SMALL LETTER LAMDA #
+1D7B4 ; 03BB ; MA # ( 𝞴 → λ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL LAMDA → GREEK SMALL LETTER LAMDA #
+2C96 ; 03BB ; MA # ( Ⲗ → λ ) COPTIC CAPITAL LETTER LAULA → GREEK SMALL
LETTER LAMDA #
+104DB ; 03BB ; MA # ( 𐓛 → λ ) OSAGE SMALL LETTER AH → GREEK SMALL
LETTER LAMDA #
+
+00B5 ; 03BC ; MA # ( µ → μ ) MICRO SIGN → GREEK SMALL LETTER MU #
+1D6CD ; 03BC ; MA # ( 𝛍 → μ ) MATHEMATICAL BOLD SMALL MU → GREEK
SMALL LETTER MU #
+1D707 ; 03BC ; MA # ( 𝜇 → μ ) MATHEMATICAL ITALIC SMALL MU →
GREEK SMALL LETTER MU #
+1D741 ; 03BC ; MA # ( 𝝁 → μ ) MATHEMATICAL BOLD ITALIC SMALL MU →
GREEK SMALL LETTER MU #
+1D77B ; 03BC ; MA # ( 𝝻 → μ ) MATHEMATICAL SANS-SERIF BOLD SMALL
MU → GREEK SMALL LETTER MU #
+1D7B5 ; 03BC ; MA # ( 𝞵 → μ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL MU → GREEK SMALL LETTER MU #
+
+1D6CF ; 03BE ; MA # ( 𝛏 → ξ ) MATHEMATICAL BOLD SMALL XI → GREEK
SMALL LETTER XI #
+1D709 ; 03BE ; MA # ( 𝜉 → ξ ) MATHEMATICAL ITALIC SMALL XI →
GREEK SMALL LETTER XI #
+1D743 ; 03BE ; MA # ( 𝝃 → ξ ) MATHEMATICAL BOLD ITALIC SMALL XI →
GREEK SMALL LETTER XI #
+1D77D ; 03BE ; MA # ( 𝝽 → ξ ) MATHEMATICAL SANS-SERIF BOLD SMALL
XI → GREEK SMALL LETTER XI #
+1D7B7 ; 03BE ; MA # ( 𝞷 → ξ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL XI → GREEK SMALL LETTER XI #
+
+1D6B5 ; 039E ; MA # ( 𝚵 → Ξ ) MATHEMATICAL BOLD CAPITAL XI →
GREEK CAPITAL LETTER XI #
+1D6EF ; 039E ; MA # ( 𝛯 → Ξ ) MATHEMATICAL ITALIC CAPITAL XI →
GREEK CAPITAL LETTER XI #
+1D729 ; 039E ; MA # ( 𝜩 → Ξ ) MATHEMATICAL BOLD ITALIC CAPITAL XI
→ GREEK CAPITAL LETTER XI #
+1D763 ; 039E ; MA # ( 𝝣 → Ξ ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL XI → GREEK CAPITAL LETTER XI #
+1D79D ; 039E ; MA # ( 𝞝 → Ξ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL XI → GREEK CAPITAL LETTER XI #
+
+03D6 ; 03C0 ; MA # ( ϖ → π ) GREEK PI SYMBOL → GREEK SMALL LETTER PI
#
+213C ; 03C0 ; MA # ( ℼ → π ) DOUBLE-STRUCK SMALL PI → GREEK SMALL LETTER
PI #
+1D6D1 ; 03C0 ; MA # ( 𝛑 → π ) MATHEMATICAL BOLD SMALL PI → GREEK
SMALL LETTER PI #
+1D6E1 ; 03C0 ; MA # ( 𝛡 → π ) MATHEMATICAL BOLD PI SYMBOL → GREEK
SMALL LETTER PI #
+1D70B ; 03C0 ; MA # ( 𝜋 → π ) MATHEMATICAL ITALIC SMALL PI →
GREEK SMALL LETTER PI #
+1D71B ; 03C0 ; MA # ( 𝜛 → π ) MATHEMATICAL ITALIC PI SYMBOL →
GREEK SMALL LETTER PI #
+1D745 ; 03C0 ; MA # ( 𝝅 → π ) MATHEMATICAL BOLD ITALIC SMALL PI →
GREEK SMALL LETTER PI #
+1D755 ; 03C0 ; MA # ( 𝝕 → π ) MATHEMATICAL BOLD ITALIC PI SYMBOL
→ GREEK SMALL LETTER PI #
+1D77F ; 03C0 ; MA # ( 𝝿 → π ) MATHEMATICAL SANS-SERIF BOLD SMALL
PI → GREEK SMALL LETTER PI #
+1D78F ; 03C0 ; MA # ( 𝞏 → π ) MATHEMATICAL SANS-SERIF BOLD PI
SYMBOL → GREEK SMALL LETTER PI #
+1D7B9 ; 03C0 ; MA # ( 𝞹 → π ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL PI → GREEK SMALL LETTER PI #
+1D7C9 ; 03C0 ; MA # ( 𝟉 → π ) MATHEMATICAL SANS-SERIF BOLD ITALIC
PI SYMBOL → GREEK SMALL LETTER PI #
+1D28 ; 03C0 ; MA # ( ᴨ → π ) GREEK LETTER SMALL CAPITAL PI → GREEK SMALL
LETTER PI # →п→
+043F ; 03C0 ; MA # ( п → π ) CYRILLIC SMALL LETTER PE → GREEK SMALL
LETTER PI #
+
+220F ; 03A0 ; MA #* ( ∏ → Π ) N-ARY PRODUCT → GREEK CAPITAL LETTER PI
#
+213F ; 03A0 ; MA # ( ℿ → Π ) DOUBLE-STRUCK CAPITAL PI → GREEK CAPITAL
LETTER PI #
+1D6B7 ; 03A0 ; MA # ( 𝚷 → Π ) MATHEMATICAL BOLD CAPITAL PI →
GREEK CAPITAL LETTER PI #
+1D6F1 ; 03A0 ; MA # ( 𝛱 → Π ) MATHEMATICAL ITALIC CAPITAL PI →
GREEK CAPITAL LETTER PI #
+1D72B ; 03A0 ; MA # ( 𝜫 → Π ) MATHEMATICAL BOLD ITALIC CAPITAL PI
→ GREEK CAPITAL LETTER PI #
+1D765 ; 03A0 ; MA # ( 𝝥 → Π ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL PI → GREEK CAPITAL LETTER PI #
+1D79F ; 03A0 ; MA # ( 𝞟 → Π ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL PI → GREEK CAPITAL LETTER PI #
+2CA0 ; 03A0 ; MA # ( Ⲡ → Π ) COPTIC CAPITAL LETTER PI → GREEK CAPITAL
LETTER PI #
+041F ; 03A0 ; MA # ( П → Π ) CYRILLIC CAPITAL LETTER PE → GREEK CAPITAL
LETTER PI #
+A6DB ; 03A0 ; MA # ( ꛛ → Π ) BAMUM LETTER NA → GREEK CAPITAL LETTER PI
#
+
+102AD ; 03D8 ; MA # ( 𐊭 → Ϙ ) CARIAN LETTER T → GREEK LETTER
ARCHAIC KOPPA #
+10312 ; 03D8 ; MA # ( 𐌒 → Ϙ ) OLD ITALIC LETTER KU → GREEK LETTER
ARCHAIC KOPPA #
+
+03DB ; 03C2 ; MA # ( ϛ → ς ) GREEK SMALL LETTER STIGMA → GREEK SMALL
LETTER FINAL SIGMA #
+1D6D3 ; 03C2 ; MA # ( 𝛓 → ς ) MATHEMATICAL BOLD SMALL FINAL SIGMA
→ GREEK SMALL LETTER FINAL SIGMA #
+1D70D ; 03C2 ; MA # ( 𝜍 → ς ) MATHEMATICAL ITALIC SMALL FINAL
SIGMA → GREEK SMALL LETTER FINAL SIGMA #
+1D747 ; 03C2 ; MA # ( 𝝇 → ς ) MATHEMATICAL BOLD ITALIC SMALL
FINAL SIGMA → GREEK SMALL LETTER FINAL SIGMA #
+1D781 ; 03C2 ; MA # ( 𝞁 → ς ) MATHEMATICAL SANS-SERIF BOLD SMALL
FINAL SIGMA → GREEK SMALL LETTER FINAL SIGMA #
+1D7BB ; 03C2 ; MA # ( 𝞻 → ς ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL FINAL SIGMA → GREEK SMALL LETTER FINAL SIGMA #
+
+1D6BD ; 03A6 ; MA # ( 𝚽 → Φ ) MATHEMATICAL BOLD CAPITAL PHI →
GREEK CAPITAL LETTER PHI #
+1D6F7 ; 03A6 ; MA # ( 𝛷 → Φ ) MATHEMATICAL ITALIC CAPITAL PHI →
GREEK CAPITAL LETTER PHI #
+1D731 ; 03A6 ; MA # ( 𝜱 → Φ ) MATHEMATICAL BOLD ITALIC CAPITAL
PHI → GREEK CAPITAL LETTER PHI #
+1D76B ; 03A6 ; MA # ( 𝝫 → Φ ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL PHI → GREEK CAPITAL LETTER PHI #
+1D7A5 ; 03A6 ; MA # ( 𝞥 → Φ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL PHI → GREEK CAPITAL LETTER PHI #
+2CAA ; 03A6 ; MA # ( Ⲫ → Φ ) COPTIC CAPITAL LETTER FI → GREEK CAPITAL
LETTER PHI #
+0424 ; 03A6 ; MA # ( Ф → Φ ) CYRILLIC CAPITAL LETTER EF → GREEK CAPITAL
LETTER PHI #
+0553 ; 03A6 ; MA # ( Փ → Φ ) ARMENIAN CAPITAL LETTER PIWR → GREEK
CAPITAL LETTER PHI #
+1240 ; 03A6 ; MA # ( ቀ → Φ ) ETHIOPIC SYLLABLE QA → GREEK CAPITAL LETTER
PHI # →Փ→
+16F0 ; 03A6 ; MA # ( ᛰ → Φ ) RUNIC BELGTHOR SYMBOL → GREEK CAPITAL
LETTER PHI #
+102B3 ; 03A6 ; MA # ( 𐊳 → Φ ) CARIAN LETTER NN → GREEK CAPITAL
LETTER PHI #
+
+AB53 ; 03C7 ; MA # ( ꭓ → χ ) LATIN SMALL LETTER CHI → GREEK SMALL LETTER
CHI #
+AB55 ; 03C7 ; MA # ( ꭕ → χ ) LATIN SMALL LETTER CHI WITH LOW LEFT SERIF
→ GREEK SMALL LETTER CHI #
+1D6D8 ; 03C7 ; MA # ( 𝛘 → χ ) MATHEMATICAL BOLD SMALL CHI → GREEK
SMALL LETTER CHI #
+1D712 ; 03C7 ; MA # ( 𝜒 → χ ) MATHEMATICAL ITALIC SMALL CHI →
GREEK SMALL LETTER CHI #
+1D74C ; 03C7 ; MA # ( 𝝌 → χ ) MATHEMATICAL BOLD ITALIC SMALL CHI
→ GREEK SMALL LETTER CHI #
+1D786 ; 03C7 ; MA # ( 𝞆 → χ ) MATHEMATICAL SANS-SERIF BOLD SMALL
CHI → GREEK SMALL LETTER CHI #
+1D7C0 ; 03C7 ; MA # ( 𝟀 → χ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL CHI → GREEK SMALL LETTER CHI #
+2CAD ; 03C7 ; MA # ( ⲭ → χ ) COPTIC SMALL LETTER KHI → GREEK SMALL
LETTER CHI #
+
+1D6D9 ; 03C8 ; MA # ( 𝛙 → ψ ) MATHEMATICAL BOLD SMALL PSI → GREEK
SMALL LETTER PSI #
+1D713 ; 03C8 ; MA # ( 𝜓 → ψ ) MATHEMATICAL ITALIC SMALL PSI →
GREEK SMALL LETTER PSI #
+1D74D ; 03C8 ; MA # ( 𝝍 → ψ ) MATHEMATICAL BOLD ITALIC SMALL PSI
→ GREEK SMALL LETTER PSI #
+1D787 ; 03C8 ; MA # ( 𝞇 → ψ ) MATHEMATICAL SANS-SERIF BOLD SMALL
PSI → GREEK SMALL LETTER PSI #
+1D7C1 ; 03C8 ; MA # ( 𝟁 → ψ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL PSI → GREEK SMALL LETTER PSI #
+0471 ; 03C8 ; MA # ( ѱ → ψ ) CYRILLIC SMALL LETTER PSI → GREEK SMALL
LETTER PSI #
+104F9 ; 03C8 ; MA # ( 𐓹 → ψ ) OSAGE SMALL LETTER GHA → GREEK
SMALL LETTER PSI #
+
+1D6BF ; 03A8 ; MA # ( 𝚿 → Ψ ) MATHEMATICAL BOLD CAPITAL PSI →
GREEK CAPITAL LETTER PSI #
+1D6F9 ; 03A8 ; MA # ( 𝛹 → Ψ ) MATHEMATICAL ITALIC CAPITAL PSI →
GREEK CAPITAL LETTER PSI #
+1D733 ; 03A8 ; MA # ( 𝜳 → Ψ ) MATHEMATICAL BOLD ITALIC CAPITAL
PSI → GREEK CAPITAL LETTER PSI #
+1D76D ; 03A8 ; MA # ( 𝝭 → Ψ ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL PSI → GREEK CAPITAL LETTER PSI #
+1D7A7 ; 03A8 ; MA # ( 𝞧 → Ψ ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL PSI → GREEK CAPITAL LETTER PSI #
+2CAE ; 03A8 ; MA # ( Ⲯ → Ψ ) COPTIC CAPITAL LETTER PSI → GREEK CAPITAL
LETTER PSI #
+0470 ; 03A8 ; MA # ( Ѱ → Ψ ) CYRILLIC CAPITAL LETTER PSI → GREEK CAPITAL
LETTER PSI #
+104D1 ; 03A8 ; MA # ( 𐓑 → Ψ ) OSAGE CAPITAL LETTER GHA → GREEK
CAPITAL LETTER PSI #
+16D8 ; 03A8 ; MA # ( ᛘ → Ψ ) RUNIC LETTER LONG-BRANCH-MADR M → GREEK
CAPITAL LETTER PSI #
+102B5 ; 03A8 ; MA # ( 𐊵 → Ψ ) CARIAN LETTER N → GREEK CAPITAL
LETTER PSI #
+
+2375 ; 03C9 ; MA #* ( ⍵ → ω ) APL FUNCTIONAL SYMBOL OMEGA → GREEK SMALL
LETTER OMEGA #
+A7B7 ; 03C9 ; MA # ( ꞷ → ω ) LATIN SMALL LETTER OMEGA → GREEK SMALL
LETTER OMEGA #
+1D6DA ; 03C9 ; MA # ( 𝛚 → ω ) MATHEMATICAL BOLD SMALL OMEGA →
GREEK SMALL LETTER OMEGA #
+1D714 ; 03C9 ; MA # ( 𝜔 → ω ) MATHEMATICAL ITALIC SMALL OMEGA →
GREEK SMALL LETTER OMEGA #
+1D74E ; 03C9 ; MA # ( 𝝎 → ω ) MATHEMATICAL BOLD ITALIC SMALL
OMEGA → GREEK SMALL LETTER OMEGA #
+1D788 ; 03C9 ; MA # ( 𝞈 → ω ) MATHEMATICAL SANS-SERIF BOLD SMALL
OMEGA → GREEK SMALL LETTER OMEGA #
+1D7C2 ; 03C9 ; MA # ( 𝟂 → ω ) MATHEMATICAL SANS-SERIF BOLD ITALIC
SMALL OMEGA → GREEK SMALL LETTER OMEGA #
+2CB1 ; 03C9 ; MA # ( ⲱ → ω ) COPTIC SMALL LETTER OOU → GREEK SMALL
LETTER OMEGA #
+A64D ; 03C9 ; MA # ( ꙍ → ω ) CYRILLIC SMALL LETTER BROAD OMEGA → GREEK
SMALL LETTER OMEGA # →ꞷ→
+
+2126 ; 03A9 ; MA # ( Ω → Ω ) OHM SIGN → GREEK CAPITAL LETTER OMEGA
#
+1D6C0 ; 03A9 ; MA # ( 𝛀 → Ω ) MATHEMATICAL BOLD CAPITAL OMEGA →
GREEK CAPITAL LETTER OMEGA #
+1D6FA ; 03A9 ; MA # ( 𝛺 → Ω ) MATHEMATICAL ITALIC CAPITAL OMEGA →
GREEK CAPITAL LETTER OMEGA #
+1D734 ; 03A9 ; MA # ( 𝜴 → Ω ) MATHEMATICAL BOLD ITALIC CAPITAL
OMEGA → GREEK CAPITAL LETTER OMEGA #
+1D76E ; 03A9 ; MA # ( 𝝮 → Ω ) MATHEMATICAL SANS-SERIF BOLD
CAPITAL OMEGA → GREEK CAPITAL LETTER OMEGA #
+1D7A8 ; 03A9 ; MA # ( 𝞨 → Ω ) MATHEMATICAL SANS-SERIF BOLD ITALIC
CAPITAL OMEGA → GREEK CAPITAL LETTER OMEGA #
+162F ; 03A9 ; MA # ( ᘯ → Ω ) CANADIAN SYLLABICS CARRIER LHO → GREEK
CAPITAL LETTER OMEGA #
+1635 ; 03A9 ; MA # ( ᘵ → Ω ) CANADIAN SYLLABICS CARRIER TLHO → GREEK
CAPITAL LETTER OMEGA # →ᘯ→
+102B6 ; 03A9 ; MA # ( 𐊶 → Ω ) CARIAN LETTER TT2 → GREEK CAPITAL
LETTER OMEGA #
+
+2379 ; 03C9 0332 ; MA #* ( ⍹ → ω̲ ) APL FUNCTIONAL SYMBOL OMEGA
UNDERBAR → GREEK SMALL LETTER OMEGA, COMBINING LOW LINE #
+
+1F7D ; 1FF4 ; MA # ( ώ → ῴ ) GREEK SMALL LETTER OMEGA WITH OXIA → GREEK
SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI #
+
+2630 ; 2CB6 ; MA #* ( ☰ → Ⲷ ) TRIGRAM FOR HEAVEN → COPTIC CAPITAL LETTER
CRYPTOGRAMMIC EIE #
+
+2CDC ; 03EC ; MA # ( Ⳝ → Ϭ ) COPTIC CAPITAL LETTER OLD NUBIAN SHIMA →
COPTIC CAPITAL LETTER SHIMA #
+
+0497 ; 0436 0329 ; MA # ( җ → ж̩ ) CYRILLIC SMALL LETTER ZHE WITH
DESCENDER → CYRILLIC SMALL LETTER ZHE, COMBINING VERTICAL LINE BELOW #
+
+0496 ; 0416 0329 ; MA # ( Җ → Ж̩ ) CYRILLIC CAPITAL LETTER ZHE WITH
DESCENDER → CYRILLIC CAPITAL LETTER ZHE, COMBINING VERTICAL LINE BELOW #
+
+1D20B ; 0418 ; MA #* ( 𝈋 → И ) GREEK VOCAL NOTATION SYMBOL-12 →
CYRILLIC CAPITAL LETTER I # →Ͷ→
+0376 ; 0418 ; MA # ( Ͷ → И ) GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA →
CYRILLIC CAPITAL LETTER I #
+A6A1 ; 0418 ; MA # ( ꚡ → И ) BAMUM LETTER KA → CYRILLIC CAPITAL LETTER I
# →Ͷ→
+10425 ; 0418 ; MA # ( 𐐥 → И ) DESERET CAPITAL LETTER ENG →
CYRILLIC CAPITAL LETTER I #
+
+0419 ; 040D ; MA # ( Й → Ѝ ) CYRILLIC CAPITAL LETTER SHORT I → CYRILLIC
CAPITAL LETTER I WITH GRAVE #
+
+048A ; 040D 0326 ; MA # ( Ҋ → Ѝ̦ ) CYRILLIC CAPITAL LETTER SHORT I
WITH TAIL → CYRILLIC CAPITAL LETTER I WITH GRAVE, COMBINING COMMA BELOW #
→Й̡→
+
+045D ; 0439 ; MA # ( ѝ → й ) CYRILLIC SMALL LETTER I WITH GRAVE →
CYRILLIC SMALL LETTER SHORT I #
+
+048B ; 0439 0326 ; MA # ( ҋ → й̦ ) CYRILLIC SMALL LETTER SHORT I WITH
TAIL → CYRILLIC SMALL LETTER SHORT I, COMBINING COMMA BELOW # →й̡→
+
+104BC ; 04C3 ; MA # ( 𐒼 → Ӄ ) OSAGE CAPITAL LETTER KA → CYRILLIC
CAPITAL LETTER KA WITH HOOK #
+
+1D2B ; 043B ; MA # ( ᴫ → л ) CYRILLIC LETTER SMALL CAPITAL EL → CYRILLIC
SMALL LETTER EL #
+
+04C6 ; 043B 0326 ; MA # ( ӆ → л̦ ) CYRILLIC SMALL LETTER EL WITH TAIL
→ CYRILLIC SMALL LETTER EL, COMBINING COMMA BELOW # →л̡→
+
+AB60 ; 0459 ; MA # ( ꭠ → љ ) LATIN SMALL LETTER SAKHA YAT → CYRILLIC
SMALL LETTER LJE #
+
+104EB ; A669 ; MA # ( 𐓫 → ꙩ ) OSAGE SMALL LETTER OIN → CYRILLIC
SMALL LETTER MONOCULAR O #
+
+1DEE ; 2DEC ; MA # ( ᷮ → ⷬ ) COMBINING LATIN SMALL LETTER P → COMBINING
CYRILLIC LETTER ER #
+
+104CD ; 040B ; MA # ( 𐓍 → Ћ ) OSAGE CAPITAL LETTER DHA → CYRILLIC
CAPITAL LETTER TSHE #
+
+1D202 ; 04FE ; MA #* ( 𝈂 → Ӿ ) GREEK VOCAL NOTATION SYMBOL-3 →
CYRILLIC CAPITAL LETTER HA WITH STROKE #
+
+1D222 ; 0460 ; MA #* ( 𝈢 → Ѡ ) GREEK INSTRUMENTAL NOTATION
SYMBOL-8 → CYRILLIC CAPITAL LETTER OMEGA #
+13C7 ; 0460 ; MA # ( Ꮗ → Ѡ ) CHEROKEE LETTER QUE → CYRILLIC CAPITAL
LETTER OMEGA #
+15EF ; 0460 ; MA # ( ᗯ → Ѡ ) CANADIAN SYLLABICS CARRIER GU → CYRILLIC
CAPITAL LETTER OMEGA #
+
+047C ; 0460 0486 0487 ; MA # ( Ѽ → Ѡ҆҇ ) CYRILLIC CAPITAL LETTER
OMEGA WITH TITLO → CYRILLIC CAPITAL LETTER OMEGA, COMBINING CYRILLIC PSILI
PNEUMATA, COMBINING CYRILLIC POKRYTIE #
+
+18ED ; 0460 00B7 ; MA # ( ᣭ → Ѡ· ) CANADIAN SYLLABICS CARRIER GWU →
CYRILLIC CAPITAL LETTER OMEGA, MIDDLE DOT # →ᗯᐧ→
+
+A7B6 ; A64C ; MA # ( Ꞷ → Ꙍ ) LATIN CAPITAL LETTER OMEGA → CYRILLIC
CAPITAL LETTER BROAD OMEGA #
+
+04CC ; 04B7 ; MA # ( ӌ → ҷ ) CYRILLIC SMALL LETTER KHAKASSIAN CHE →
CYRILLIC SMALL LETTER CHE WITH DESCENDER #
+
+04CB ; 04B6 ; MA # ( Ӌ → Ҷ ) CYRILLIC CAPITAL LETTER KHAKASSIAN CHE →
CYRILLIC CAPITAL LETTER CHE WITH DESCENDER #
+
+04BE ; 04BC 0328 ; MA # ( Ҿ → Ҽ̨ ) CYRILLIC CAPITAL LETTER ABKHASIAN
CHE WITH DESCENDER → CYRILLIC CAPITAL LETTER ABKHASIAN CHE, COMBINING OGONEK
#
+
+2CBD ; 0448 ; MA # ( ⲽ → ш ) COPTIC SMALL LETTER CRYPTOGRAMMIC NI →
CYRILLIC SMALL LETTER SHA #
+
+2CBC ; 0428 ; MA # ( Ⲽ → Ш ) COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI →
CYRILLIC CAPITAL LETTER SHA #
+
+A650 ; 042A 006C ; MA # ( Ꙑ → Ъl ) CYRILLIC CAPITAL LETTER YERU WITH
BACK YER → CYRILLIC CAPITAL LETTER HARD SIGN, LATIN SMALL LETTER L # →ЪІ→
+
+2108 ; 042D ; MA #* ( ℈ → Э ) SCRUPLE → CYRILLIC CAPITAL LETTER E
#
+
+1F701 ; A658 ; MA #* ( 🜁 → Ꙙ ) ALCHEMICAL SYMBOL FOR AIR →
CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS #
+16F1C ; A658 ; MA # ( 𖼜 → Ꙙ ) MIAO LETTER TLHYA → CYRILLIC
CAPITAL LETTER CLOSED LITTLE YUS #
+
+A992 ; 2C3F ; MA # ( ꦒ → ⰿ ) JAVANESE LETTER GA → GLAGOLITIC SMALL
LETTER MYSLITE #
+
+0587 ; 0565 0582 ; MA # ( և → եւ ) ARMENIAN SMALL LIGATURE ECH YIWN →
ARMENIAN SMALL LETTER ECH, ARMENIAN SMALL LETTER YIWN #
+
+1294 ; 0571 ; MA # ( ኔ → ձ ) ETHIOPIC SYLLABLE NEE → ARMENIAN SMALL
LETTER JA #
+
+FB14 ; 0574 0565 ; MA # ( ﬔ → մե ) ARMENIAN SMALL LIGATURE MEN ECH →
ARMENIAN SMALL LETTER MEN, ARMENIAN SMALL LETTER ECH #
+
+FB15 ; 0574 056B ; MA # ( ﬕ → մի ) ARMENIAN SMALL LIGATURE MEN INI →
ARMENIAN SMALL LETTER MEN, ARMENIAN SMALL LETTER INI #
+
+FB17 ; 0574 056D ; MA # ( ﬗ → մխ ) ARMENIAN SMALL LIGATURE MEN XEH →
ARMENIAN SMALL LETTER MEN, ARMENIAN SMALL LETTER XEH #
+
+FB13 ; 0574 0576 ; MA # ( ﬓ → մն ) ARMENIAN SMALL LIGATURE MEN NOW →
ARMENIAN SMALL LETTER MEN, ARMENIAN SMALL LETTER NOW #
+
+2229 ; 0548 ; MA #* ( ∩ → Ո ) INTERSECTION → ARMENIAN CAPITAL LETTER VO
# →ᑎ→
+22C2 ; 0548 ; MA #* ( ⋂ → Ո ) N-ARY INTERSECTION → ARMENIAN CAPITAL
LETTER VO # →∩→→ᑎ→
+1D245 ; 0548 ; MA #* ( 𝉅 → Ո ) GREEK MUSICAL LEIMMA → ARMENIAN
CAPITAL LETTER VO # →∩→→ᑎ→
+1260 ; 0548 ; MA # ( በ → Ո ) ETHIOPIC SYLLABLE BA → ARMENIAN CAPITAL
LETTER VO #
+144E ; 0548 ; MA # ( ᑎ → Ո ) CANADIAN SYLLABICS TI → ARMENIAN CAPITAL
LETTER VO #
+A4F5 ; 0548 ; MA # ( ꓵ → Ո ) LISU LETTER UE → ARMENIAN CAPITAL LETTER VO
# →∩→→ᑎ→
+
+145A ; 0548 00B7 ; MA # ( ᑚ → Ո· ) CANADIAN SYLLABICS WEST-CREE TWI →
ARMENIAN CAPITAL LETTER VO, MIDDLE DOT # →ᑎᐧ→→ᑎ·→
+
+1468 ; 0548 0027 ; MA # ( ᑨ → Ո' ) CANADIAN SYLLABICS TTI → ARMENIAN
CAPITAL LETTER VO, APOSTROPHE # →ᑎᑊ→→ᑎ'→
+
+FB16 ; 057E 0576 ; MA # ( ﬖ → վն ) ARMENIAN SMALL LIGATURE VEW NOW →
ARMENIAN SMALL LETTER VEW, ARMENIAN SMALL LETTER NOW #
+
+20BD ; 0554 ; MA #* ( ₽ → Ք ) RUBLE SIGN → ARMENIAN CAPITAL LETTER KEH
#
+
+02D3 ; 0559 ; MA #* ( ˓ → ՙ ) MODIFIER LETTER CENTRED LEFT HALF RING →
ARMENIAN MODIFIER LETTER LEFT HALF RING #
+02BF ; 0559 ; MA # ( ʿ → ՙ ) MODIFIER LETTER LEFT HALF RING → ARMENIAN
MODIFIER LETTER LEFT HALF RING #
+
+2135 ; 05D0 ; MA # ( ℵ → א ) ALEF SYMBOL → HEBREW LETTER ALEF #
+FB21 ; 05D0 ; MA # ( ﬡ → א ) HEBREW LETTER WIDE ALEF → HEBREW LETTER
ALEF #
+
+FB2F ; FB2E ; MA # ( אָ → אַ ) HEBREW LETTER ALEF WITH QAMATS → HEBREW
LETTER ALEF WITH PATAH #
+FB30 ; FB2E ; MA # ( אּ → אַ ) HEBREW LETTER ALEF WITH MAPIQ → HEBREW
LETTER ALEF WITH PATAH #
+
+FB4F ; 05D0 05DC ; MA # ( ﭏ → אל ) HEBREW LIGATURE ALEF LAMED →
HEBREW LETTER ALEF, HEBREW LETTER LAMED #
+
+2136 ; 05D1 ; MA # ( ℶ → ב ) BET SYMBOL → HEBREW LETTER BET #
+
+2137 ; 05D2 ; MA # ( ℷ → ג ) GIMEL SYMBOL → HEBREW LETTER GIMEL
#
+
+2138 ; 05D3 ; MA # ( ℸ → ד ) DALET SYMBOL → HEBREW LETTER DALET
#
+FB22 ; 05D3 ; MA # ( ﬢ → ד ) HEBREW LETTER WIDE DALET → HEBREW
LETTER DALET #
+
+FB23 ; 05D4 ; MA # ( ﬣ → ה ) HEBREW LETTER WIDE HE → HEBREW LETTER
HE #
+
+FB39 ; FB1D ; MA # ( יּ → יִ ) HEBREW LETTER YOD WITH DAGESH → HEBREW
LETTER YOD WITH HIRIQ #
+
+FB24 ; 05DB ; MA # ( ﬤ → כ ) HEBREW LETTER WIDE KAF → HEBREW LETTER
KAF #
+
+FB25 ; 05DC ; MA # ( ﬥ → ל ) HEBREW LETTER WIDE LAMED → HEBREW
LETTER LAMED #
+
+FB26 ; 05DD ; MA # ( ﬦ → ם ) HEBREW LETTER WIDE FINAL MEM → HEBREW
LETTER FINAL MEM #
+
+FB20 ; 05E2 ; MA # ( ﬠ → ע ) HEBREW LETTER ALTERNATIVE AYIN → HEBREW
LETTER AYIN #
+
+FB27 ; 05E8 ; MA # ( ﬧ → ר ) HEBREW LETTER WIDE RESH → HEBREW LETTER
RESH #
+
+FB2B ; FB2A ; MA # ( שׂ → שׁ ) HEBREW LETTER SHIN WITH SIN DOT →
HEBREW LETTER SHIN WITH SHIN DOT #
+FB49 ; FB2A ; MA # ( שּ → שׁ ) HEBREW LETTER SHIN WITH DAGESH → HEBREW
LETTER SHIN WITH SHIN DOT #
+
+FB2D ; FB2C ; MA # ( שּׂ → שּׁ ) HEBREW LETTER SHIN WITH DAGESH AND SIN
DOT → HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT #
+
+FB28 ; 05EA ; MA # ( ﬨ → ת ) HEBREW LETTER WIDE TAV → HEBREW LETTER
TAV #
+
+FE80 ; 0621 ; MA # ( ﺀ → ء ) ARABIC LETTER HAMZA ISOLATED FORM →
ARABIC LETTER HAMZA #
+
+06FD ; 0621 0348 ; MA #* ( ۽ → ء͈ ) ARABIC SIGN SINDHI AMPERSAND
→ ARABIC LETTER HAMZA, COMBINING DOUBLE VERTICAL LINE BELOW #
+
+FE82 ; 0622 ; MA # ( ﺂ → آ ) ARABIC LETTER ALEF WITH MADDA ABOVE
FINAL FORM → ARABIC LETTER ALEF WITH MADDA ABOVE #
+FE81 ; 0622 ; MA # ( ﺁ → آ ) ARABIC LETTER ALEF WITH MADDA ABOVE
ISOLATED FORM → ARABIC LETTER ALEF WITH MADDA ABOVE #
+
+FB51 ; 0671 ; MA # ( ﭑ → ٱ ) ARABIC LETTER ALEF WASLA FINAL FORM →
ARABIC LETTER ALEF WASLA #
+FB50 ; 0671 ; MA # ( ﭐ → ٱ ) ARABIC LETTER ALEF WASLA ISOLATED FORM
→ ARABIC LETTER ALEF WASLA #
+
+1EE01 ; 0628 ; MA # ( 𞸁 → ب ) ARABIC MATHEMATICAL BEH →
ARABIC LETTER BEH #
+1EE21 ; 0628 ; MA # ( 𞸡 → ب ) ARABIC MATHEMATICAL INITIAL BEH
→ ARABIC LETTER BEH #
+1EE61 ; 0628 ; MA # ( 𞹡 → ب ) ARABIC MATHEMATICAL STRETCHED
BEH → ARABIC LETTER BEH #
+1EE81 ; 0628 ; MA # ( 𞺁 → ب ) ARABIC MATHEMATICAL LOOPED BEH
→ ARABIC LETTER BEH #
+1EEA1 ; 0628 ; MA # ( 𞺡 → ب ) ARABIC MATHEMATICAL
DOUBLE-STRUCK BEH → ARABIC LETTER BEH #
+FE91 ; 0628 ; MA # ( ﺑ → ب ) ARABIC LETTER BEH INITIAL FORM → ARABIC
LETTER BEH #
+FE92 ; 0628 ; MA # ( ﺒ → ب ) ARABIC LETTER BEH MEDIAL FORM → ARABIC
LETTER BEH #
+FE90 ; 0628 ; MA # ( ﺐ → ب ) ARABIC LETTER BEH FINAL FORM → ARABIC
LETTER BEH #
+FE8F ; 0628 ; MA # ( ﺏ → ب ) ARABIC LETTER BEH ISOLATED FORM →
ARABIC LETTER BEH #
+
+0751 ; 0628 06DB ; MA # ( ݑ → بۛ ) ARABIC LETTER BEH WITH DOT
BELOW AND THREE DOTS ABOVE → ARABIC LETTER BEH, ARABIC SMALL HIGH THREE DOTS
#
+
+08B6 ; 0628 06E2 ; MA # ( ࢶ → بۢ ) ARABIC LETTER BEH WITH SMALL
MEEM ABOVE → ARABIC LETTER BEH, ARABIC SMALL HIGH MEEM ISOLATED FORM #
+
+08A1 ; 0628 0654 ; MA # ( ࢡ → بٔ ) ARABIC LETTER BEH WITH HAMZA
ABOVE → ARABIC LETTER BEH, ARABIC HAMZA ABOVE #
+
+FCA0 ; 0628 006F ; MA # ( ﲠ → بo ) ARABIC LIGATURE BEH WITH HEH
INITIAL FORM → ARABIC LETTER BEH, LATIN SMALL LETTER O # →به→
+FCE2 ; 0628 006F ; MA # ( ﳢ → بo ) ARABIC LIGATURE BEH WITH HEH
MEDIAL FORM → ARABIC LETTER BEH, LATIN SMALL LETTER O # →به→
+
+FC9C ; 0628 062C ; MA # ( ﲜ → بج ) ARABIC LIGATURE BEH WITH JEEM
INITIAL FORM → ARABIC LETTER BEH, ARABIC LETTER JEEM #
+FC05 ; 0628 062C ; MA # ( ﰅ → بج ) ARABIC LIGATURE BEH WITH JEEM
ISOLATED FORM → ARABIC LETTER BEH, ARABIC LETTER JEEM #
+
+FC9D ; 0628 062D ; MA # ( ﲝ → بح ) ARABIC LIGATURE BEH WITH HAH
INITIAL FORM → ARABIC LETTER BEH, ARABIC LETTER HAH #
+FC06 ; 0628 062D ; MA # ( ﰆ → بح ) ARABIC LIGATURE BEH WITH HAH
ISOLATED FORM → ARABIC LETTER BEH, ARABIC LETTER HAH #
+
+FDC2 ; 0628 062D 0649 ; MA # ( ﷂ → بحى ) ARABIC LIGATURE BEH
WITH HAH WITH YEH FINAL FORM → ARABIC LETTER BEH, ARABIC LETTER HAH, ARABIC
LETTER ALEF MAKSURA # →بحي→
+
+FC9E ; 0628 062E ; MA # ( ﲞ → بخ ) ARABIC LIGATURE BEH WITH KHAH
INITIAL FORM → ARABIC LETTER BEH, ARABIC LETTER KHAH #
+FC07 ; 0628 062E ; MA # ( ﰇ → بخ ) ARABIC LIGATURE BEH WITH KHAH
ISOLATED FORM → ARABIC LETTER BEH, ARABIC LETTER KHAH #
+FCD2 ; 0628 062E ; MA # ( ﳒ → بخ ) ARABIC LIGATURE NOON WITH JEEM
INITIAL FORM → ARABIC LETTER BEH, ARABIC LETTER KHAH # →ﲞ→
+FC4B ; 0628 062E ; MA # ( ﱋ → بخ ) ARABIC LIGATURE NOON WITH JEEM
ISOLATED FORM → ARABIC LETTER BEH, ARABIC LETTER KHAH # →نج→→ﳒ→→ﲞ→
+
+FD9E ; 0628 062E 0649 ; MA # ( ﶞ → بخى ) ARABIC LIGATURE BEH
WITH KHAH WITH YEH FINAL FORM → ARABIC LETTER BEH, ARABIC LETTER KHAH, ARABIC
LETTER ALEF MAKSURA # →بخي→
+
+FC6A ; 0628 0631 ; MA # ( ﱪ → بر ) ARABIC LIGATURE BEH WITH REH
FINAL FORM → ARABIC LETTER BEH, ARABIC LETTER REH #
+
+FC6B ; 0628 0632 ; MA # ( ﱫ → بز ) ARABIC LIGATURE BEH WITH ZAIN
FINAL FORM → ARABIC LETTER BEH, ARABIC LETTER ZAIN #
+
+FC9F ; 0628 0645 ; MA # ( ﲟ → بم ) ARABIC LIGATURE BEH WITH MEEM
INITIAL FORM → ARABIC LETTER BEH, ARABIC LETTER MEEM #
+FCE1 ; 0628 0645 ; MA # ( ﳡ → بم ) ARABIC LIGATURE BEH WITH MEEM
MEDIAL FORM → ARABIC LETTER BEH, ARABIC LETTER MEEM #
+FC6C ; 0628 0645 ; MA # ( ﱬ → بم ) ARABIC LIGATURE BEH WITH MEEM
FINAL FORM → ARABIC LETTER BEH, ARABIC LETTER MEEM #
+FC08 ; 0628 0645 ; MA # ( ﰈ → بم ) ARABIC LIGATURE BEH WITH MEEM
ISOLATED FORM → ARABIC LETTER BEH, ARABIC LETTER MEEM #
+
+FC6D ; 0628 0646 ; MA # ( ﱭ → بن ) ARABIC LIGATURE BEH WITH NOON
FINAL FORM → ARABIC LETTER BEH, ARABIC LETTER NOON #
+
+FC6E ; 0628 0649 ; MA # ( ﱮ → بى ) ARABIC LIGATURE BEH WITH ALEF
MAKSURA FINAL FORM → ARABIC LETTER BEH, ARABIC LETTER ALEF MAKSURA #
+FC09 ; 0628 0649 ; MA # ( ﰉ → بى ) ARABIC LIGATURE BEH WITH ALEF
MAKSURA ISOLATED FORM → ARABIC LETTER BEH, ARABIC LETTER ALEF MAKSURA #
+FC6F ; 0628 0649 ; MA # ( ﱯ → بى ) ARABIC LIGATURE BEH WITH YEH
FINAL FORM → ARABIC LETTER BEH, ARABIC LETTER ALEF MAKSURA # →بي→
+FC0A ; 0628 0649 ; MA # ( ﰊ → بى ) ARABIC LIGATURE BEH WITH YEH
ISOLATED FORM → ARABIC LETTER BEH, ARABIC LETTER ALEF MAKSURA # →بي→
+
+FB54 ; 067B ; MA # ( ﭔ → ٻ ) ARABIC LETTER BEEH INITIAL FORM →
ARABIC LETTER BEEH #
+FB55 ; 067B ; MA # ( ﭕ → ٻ ) ARABIC LETTER BEEH MEDIAL FORM → ARABIC
LETTER BEEH #
+FB53 ; 067B ; MA # ( ﭓ → ٻ ) ARABIC LETTER BEEH FINAL FORM → ARABIC
LETTER BEEH #
+FB52 ; 067B ; MA # ( ﭒ → ٻ ) ARABIC LETTER BEEH ISOLATED FORM →
ARABIC LETTER BEEH #
+06D0 ; 067B ; MA # ( ې → ٻ ) ARABIC LETTER E → ARABIC LETTER BEEH
#
+FBE6 ; 067B ; MA # ( ﯦ → ٻ ) ARABIC LETTER E INITIAL FORM → ARABIC
LETTER BEEH # →ې→
+FBE7 ; 067B ; MA # ( ﯧ → ٻ ) ARABIC LETTER E MEDIAL FORM → ARABIC
LETTER BEEH # →ې→
+FBE5 ; 067B ; MA # ( ﯥ → ٻ ) ARABIC LETTER E FINAL FORM → ARABIC
LETTER BEEH # →ې→
+FBE4 ; 067B ; MA # ( ﯤ → ٻ ) ARABIC LETTER E ISOLATED FORM → ARABIC
LETTER BEEH # →ې→
+
+FB5C ; 0680 ; MA # ( ﭜ → ڀ ) ARABIC LETTER BEHEH INITIAL FORM →
ARABIC LETTER BEHEH #
+FB5D ; 0680 ; MA # ( ﭝ → ڀ ) ARABIC LETTER BEHEH MEDIAL FORM →
ARABIC LETTER BEHEH #
+FB5B ; 0680 ; MA # ( ﭛ → ڀ ) ARABIC LETTER BEHEH FINAL FORM → ARABIC
LETTER BEHEH #
+FB5A ; 0680 ; MA # ( ﭚ → ڀ ) ARABIC LETTER BEHEH ISOLATED FORM →
ARABIC LETTER BEHEH #
+
+08A9 ; 0754 ; MA # ( ࢩ → ݔ ) ARABIC LETTER YEH WITH TWO DOTS BELOW
AND DOT ABOVE → ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE #
+0767 ; 0754 ; MA # ( ݧ → ݔ ) ARABIC LETTER NOON WITH TWO DOTS BELOW
→ ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE #
+
+2365 ; 0629 ; MA #* ( ⍥ → ة ) APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS →
ARABIC LETTER TEH MARBUTA # →ö→
+00F6 ; 0629 ; MA # ( ö → ة ) LATIN SMALL LETTER O WITH DIAERESIS →
ARABIC LETTER TEH MARBUTA #
+FE94 ; 0629 ; MA # ( ﺔ → ة ) ARABIC LETTER TEH MARBUTA FINAL FORM →
ARABIC LETTER TEH MARBUTA #
+FE93 ; 0629 ; MA # ( ﺓ → ة ) ARABIC LETTER TEH MARBUTA ISOLATED FORM
→ ARABIC LETTER TEH MARBUTA #
+06C3 ; 0629 ; MA # ( ۃ → ة ) ARABIC LETTER TEH MARBUTA GOAL → ARABIC
LETTER TEH MARBUTA #
+
+1EE15 ; 062A ; MA # ( 𞸕 → ت ) ARABIC MATHEMATICAL TEH →
ARABIC LETTER TEH #
+1EE35 ; 062A ; MA # ( 𞸵 → ت ) ARABIC MATHEMATICAL INITIAL TEH
→ ARABIC LETTER TEH #
+1EE75 ; 062A ; MA # ( 𞹵 → ت ) ARABIC MATHEMATICAL STRETCHED
TEH → ARABIC LETTER TEH #
+1EE95 ; 062A ; MA # ( 𞺕 → ت ) ARABIC MATHEMATICAL LOOPED TEH
→ ARABIC LETTER TEH #
+1EEB5 ; 062A ; MA # ( 𞺵 → ت ) ARABIC MATHEMATICAL
DOUBLE-STRUCK TEH → ARABIC LETTER TEH #
+FE97 ; 062A ; MA # ( ﺗ → ت ) ARABIC LETTER TEH INITIAL FORM → ARABIC
LETTER TEH #
+FE98 ; 062A ; MA # ( ﺘ → ت ) ARABIC LETTER TEH MEDIAL FORM → ARABIC
LETTER TEH #
+FE96 ; 062A ; MA # ( ﺖ → ت ) ARABIC LETTER TEH FINAL FORM → ARABIC
LETTER TEH #
+FE95 ; 062A ; MA # ( ﺕ → ت ) ARABIC LETTER TEH ISOLATED FORM →
ARABIC LETTER TEH #
+
+FCA5 ; 062A 006F ; MA # ( ﲥ → تo ) ARABIC LIGATURE TEH WITH HEH
INITIAL FORM → ARABIC LETTER TEH, LATIN SMALL LETTER O # →ته→
+FCE4 ; 062A 006F ; MA # ( ﳤ → تo ) ARABIC LIGATURE TEH WITH HEH
MEDIAL FORM → ARABIC LETTER TEH, LATIN SMALL LETTER O # →ته→
+
+FCA1 ; 062A 062C ; MA # ( ﲡ → تج ) ARABIC LIGATURE TEH WITH JEEM
INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER JEEM #
+FC0B ; 062A 062C ; MA # ( ﰋ → تج ) ARABIC LIGATURE TEH WITH JEEM
ISOLATED FORM → ARABIC LETTER TEH, ARABIC LETTER JEEM #
+
+FD50 ; 062A 062C 0645 ; MA # ( ﵐ → تجم ) ARABIC LIGATURE TEH
WITH JEEM WITH MEEM INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER JEEM,
ARABIC LETTER MEEM #
+
+FDA0 ; 062A 062C 0649 ; MA # ( ﶠ → تجى ) ARABIC LIGATURE TEH
WITH JEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER JEEM,
ARABIC LETTER ALEF MAKSURA #
+FD9F ; 062A 062C 0649 ; MA # ( ﶟ → تجى ) ARABIC LIGATURE TEH
WITH JEEM WITH YEH FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER JEEM, ARABIC
LETTER ALEF MAKSURA # →تجي→
+
+FCA2 ; 062A 062D ; MA # ( ﲢ → تح ) ARABIC LIGATURE TEH WITH HAH
INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER HAH #
+FC0C ; 062A 062D ; MA # ( ﰌ → تح ) ARABIC LIGATURE TEH WITH HAH
ISOLATED FORM → ARABIC LETTER TEH, ARABIC LETTER HAH #
+
+FD52 ; 062A 062D 062C ; MA # ( ﵒ → تحج ) ARABIC LIGATURE TEH
WITH HAH WITH JEEM INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER HAH, ARABIC
LETTER JEEM #
+FD51 ; 062A 062D 062C ; MA # ( ﵑ → تحج ) ARABIC LIGATURE TEH
WITH HAH WITH JEEM FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER HAH, ARABIC
LETTER JEEM #
+
+FD53 ; 062A 062D 0645 ; MA # ( ﵓ → تحم ) ARABIC LIGATURE TEH
WITH HAH WITH MEEM INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER HAH, ARABIC
LETTER MEEM #
+
+FCA3 ; 062A 062E ; MA # ( ﲣ → تخ ) ARABIC LIGATURE TEH WITH KHAH
INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER KHAH #
+FC0D ; 062A 062E ; MA # ( ﰍ → تخ ) ARABIC LIGATURE TEH WITH KHAH
ISOLATED FORM → ARABIC LETTER TEH, ARABIC LETTER KHAH #
+
+FD54 ; 062A 062E 0645 ; MA # ( ﵔ → تخم ) ARABIC LIGATURE TEH
WITH KHAH WITH MEEM INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER KHAH,
ARABIC LETTER MEEM #
+
+FDA2 ; 062A 062E 0649 ; MA # ( ﶢ → تخى ) ARABIC LIGATURE TEH
WITH KHAH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER KHAH,
ARABIC LETTER ALEF MAKSURA #
+FDA1 ; 062A 062E 0649 ; MA # ( ﶡ → تخى ) ARABIC LIGATURE TEH
WITH KHAH WITH YEH FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER KHAH, ARABIC
LETTER ALEF MAKSURA # →تخي→
+
+FC70 ; 062A 0631 ; MA # ( ﱰ → تر ) ARABIC LIGATURE TEH WITH REH
FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER REH #
+
+FC71 ; 062A 0632 ; MA # ( ﱱ → تز ) ARABIC LIGATURE TEH WITH ZAIN
FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER ZAIN #
+
+FCA4 ; 062A 0645 ; MA # ( ﲤ → تم ) ARABIC LIGATURE TEH WITH MEEM
INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM #
+FCE3 ; 062A 0645 ; MA # ( ﳣ → تم ) ARABIC LIGATURE TEH WITH MEEM
MEDIAL FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM #
+FC72 ; 062A 0645 ; MA # ( ﱲ → تم ) ARABIC LIGATURE TEH WITH MEEM
FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM #
+FC0E ; 062A 0645 ; MA # ( ﰎ → تم ) ARABIC LIGATURE TEH WITH MEEM
ISOLATED FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM #
+
+FD55 ; 062A 0645 062C ; MA # ( ﵕ → تمج ) ARABIC LIGATURE TEH
WITH MEEM WITH JEEM INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM,
ARABIC LETTER JEEM #
+
+FD56 ; 062A 0645 062D ; MA # ( ﵖ → تمح ) ARABIC LIGATURE TEH
WITH MEEM WITH HAH INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM, ARABIC
LETTER HAH #
+
+FD57 ; 062A 0645 062E ; MA # ( ﵗ → تمخ ) ARABIC LIGATURE TEH
WITH MEEM WITH KHAH INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM,
ARABIC LETTER KHAH #
+
+FDA4 ; 062A 0645 0649 ; MA # ( ﶤ → تمى ) ARABIC LIGATURE TEH
WITH MEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM,
ARABIC LETTER ALEF MAKSURA #
+FDA3 ; 062A 0645 0649 ; MA # ( ﶣ → تمى ) ARABIC LIGATURE TEH
WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM, ARABIC
LETTER ALEF MAKSURA # →تمي→
+
+FC73 ; 062A 0646 ; MA # ( ﱳ → تن ) ARABIC LIGATURE TEH WITH NOON
FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER NOON #
+
+FC74 ; 062A 0649 ; MA # ( ﱴ → تى ) ARABIC LIGATURE TEH WITH ALEF
MAKSURA FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER ALEF MAKSURA #
+FC0F ; 062A 0649 ; MA # ( ﰏ → تى ) ARABIC LIGATURE TEH WITH ALEF
MAKSURA ISOLATED FORM → ARABIC LETTER TEH, ARABIC LETTER ALEF MAKSURA #
+FC75 ; 062A 0649 ; MA # ( ﱵ → تى ) ARABIC LIGATURE TEH WITH YEH
FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER ALEF MAKSURA # →تي→
+FC10 ; 062A 0649 ; MA # ( ﰐ → تى ) ARABIC LIGATURE TEH WITH YEH
ISOLATED FORM → ARABIC LETTER TEH, ARABIC LETTER ALEF MAKSURA # →تي→
+
+FB60 ; 067A ; MA # ( ﭠ → ٺ ) ARABIC LETTER TTEHEH INITIAL FORM →
ARABIC LETTER TTEHEH #
+FB61 ; 067A ; MA # ( ﭡ → ٺ ) ARABIC LETTER TTEHEH MEDIAL FORM →
ARABIC LETTER TTEHEH #
+FB5F ; 067A ; MA # ( ﭟ → ٺ ) ARABIC LETTER TTEHEH FINAL FORM →
ARABIC LETTER TTEHEH #
+FB5E ; 067A ; MA # ( ﭞ → ٺ ) ARABIC LETTER TTEHEH ISOLATED FORM →
ARABIC LETTER TTEHEH #
+
+FB64 ; 067F ; MA # ( ﭤ → ٿ ) ARABIC LETTER TEHEH INITIAL FORM →
ARABIC LETTER TEHEH #
+FB65 ; 067F ; MA # ( ﭥ → ٿ ) ARABIC LETTER TEHEH MEDIAL FORM →
ARABIC LETTER TEHEH #
+FB63 ; 067F ; MA # ( ﭣ → ٿ ) ARABIC LETTER TEHEH FINAL FORM → ARABIC
LETTER TEHEH #
+FB62 ; 067F ; MA # ( ﭢ → ٿ ) ARABIC LETTER TEHEH ISOLATED FORM →
ARABIC LETTER TEHEH #
+
+1EE02 ; 062C ; MA # ( 𞸂 → ج ) ARABIC MATHEMATICAL JEEM →
ARABIC LETTER JEEM #
+1EE22 ; 062C ; MA # ( 𞸢 → ج ) ARABIC MATHEMATICAL INITIAL
JEEM → ARABIC LETTER JEEM #
+1EE42 ; 062C ; MA # ( 𞹂 → ج ) ARABIC MATHEMATICAL TAILED JEEM
→ ARABIC LETTER JEEM #
+1EE62 ; 062C ; MA # ( 𞹢 → ج ) ARABIC MATHEMATICAL STRETCHED
JEEM → ARABIC LETTER JEEM #
+1EE82 ; 062C ; MA # ( 𞺂 → ج ) ARABIC MATHEMATICAL LOOPED JEEM
→ ARABIC LETTER JEEM #
+1EEA2 ; 062C ; MA # ( 𞺢 → ج ) ARABIC MATHEMATICAL
DOUBLE-STRUCK JEEM → ARABIC LETTER JEEM #
+FE9F ; 062C ; MA # ( ﺟ → ج ) ARABIC LETTER JEEM INITIAL FORM →
ARABIC LETTER JEEM #
+FEA0 ; 062C ; MA # ( ﺠ → ج ) ARABIC LETTER JEEM MEDIAL FORM → ARABIC
LETTER JEEM #
+FE9E ; 062C ; MA # ( ﺞ → ج ) ARABIC LETTER JEEM FINAL FORM → ARABIC
LETTER JEEM #
+FE9D ; 062C ; MA # ( ﺝ → ج ) ARABIC LETTER JEEM ISOLATED FORM →
ARABIC LETTER JEEM #
+
+FCA7 ; 062C 062D ; MA # ( ﲧ → جح ) ARABIC LIGATURE JEEM WITH HAH
INITIAL FORM → ARABIC LETTER JEEM, ARABIC LETTER HAH #
+FC15 ; 062C 062D ; MA # ( ﰕ → جح ) ARABIC LIGATURE JEEM WITH HAH
ISOLATED FORM → ARABIC LETTER JEEM, ARABIC LETTER HAH #
+
+FDA6 ; 062C 062D 0649 ; MA # ( ﶦ → جحى ) ARABIC LIGATURE JEEM
WITH HAH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER JEEM, ARABIC LETTER HAH,
ARABIC LETTER ALEF MAKSURA #
+FDBE ; 062C 062D 0649 ; MA # ( ﶾ → جحى ) ARABIC LIGATURE JEEM
WITH HAH WITH YEH FINAL FORM → ARABIC LETTER JEEM, ARABIC LETTER HAH, ARABIC
LETTER ALEF MAKSURA # →جحي→
+
+FDFB ; 062C 0644 0020 062C 0644 006C 0644 006F ; MA #* ( ﷻ → جل
جلlلo ) ARABIC LIGATURE JALLAJALALOUHOU → ARABIC LETTER JEEM, ARABIC LETTER
LAM, SPACE, ARABIC LETTER JEEM, ARABIC LETTER LAM, LATIN SMALL LETTER L, ARABIC
LETTER LAM, LATIN SMALL LETTER O # →جل جلاله→
+
+FCA8 ; 062C 0645 ; MA # ( ﲨ → جم ) ARABIC LIGATURE JEEM WITH MEEM
INITIAL FORM → ARABIC LETTER JEEM, ARABIC LETTER MEEM #
+FC16 ; 062C 0645 ; MA # ( ﰖ → جم ) ARABIC LIGATURE JEEM WITH MEEM
ISOLATED FORM → ARABIC LETTER JEEM, ARABIC LETTER MEEM #
+
+FD59 ; 062C 0645 062D ; MA # ( ﵙ → جمح ) ARABIC LIGATURE JEEM
WITH MEEM WITH HAH INITIAL FORM → ARABIC LETTER JEEM, ARABIC LETTER MEEM,
ARABIC LETTER HAH #
+FD58 ; 062C 0645 062D ; MA # ( ﵘ → جمح ) ARABIC LIGATURE JEEM
WITH MEEM WITH HAH FINAL FORM → ARABIC LETTER JEEM, ARABIC LETTER MEEM, ARABIC
LETTER HAH #
+
+FDA7 ; 062C 0645 0649 ; MA # ( ﶧ → جمى ) ARABIC LIGATURE JEEM
WITH MEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER JEEM, ARABIC LETTER
MEEM, ARABIC LETTER ALEF MAKSURA #
+FDA5 ; 062C 0645 0649 ; MA # ( ﶥ → جمى ) ARABIC LIGATURE JEEM
WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER JEEM, ARABIC LETTER MEEM, ARABIC
LETTER ALEF MAKSURA # →جمي→
+
+FD1D ; 062C 0649 ; MA # ( ﴝ → جى ) ARABIC LIGATURE JEEM WITH ALEF
MAKSURA FINAL FORM → ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA #
+FD01 ; 062C 0649 ; MA # ( ﴁ → جى ) ARABIC LIGATURE JEEM WITH ALEF
MAKSURA ISOLATED FORM → ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA #
+FD1E ; 062C 0649 ; MA # ( ﴞ → جى ) ARABIC LIGATURE JEEM WITH YEH
FINAL FORM → ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA # →جي→
+FD02 ; 062C 0649 ; MA # ( ﴂ → جى ) ARABIC LIGATURE JEEM WITH YEH
ISOLATED FORM → ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA # →جي→
+
+FB78 ; 0683 ; MA # ( ﭸ → ڃ ) ARABIC LETTER NYEH INITIAL FORM →
ARABIC LETTER NYEH #
+FB79 ; 0683 ; MA # ( ﭹ → ڃ ) ARABIC LETTER NYEH MEDIAL FORM → ARABIC
LETTER NYEH #
+FB77 ; 0683 ; MA # ( ﭷ → ڃ ) ARABIC LETTER NYEH FINAL FORM → ARABIC
LETTER NYEH #
+FB76 ; 0683 ; MA # ( ﭶ → ڃ ) ARABIC LETTER NYEH ISOLATED FORM →
ARABIC LETTER NYEH #
+
+FB74 ; 0684 ; MA # ( ﭴ → ڄ ) ARABIC LETTER DYEH INITIAL FORM →
ARABIC LETTER DYEH #
+FB75 ; 0684 ; MA # ( ﭵ → ڄ ) ARABIC LETTER DYEH MEDIAL FORM → ARABIC
LETTER DYEH #
+FB73 ; 0684 ; MA # ( ﭳ → ڄ ) ARABIC LETTER DYEH FINAL FORM → ARABIC
LETTER DYEH #
+FB72 ; 0684 ; MA # ( ﭲ → ڄ ) ARABIC LETTER DYEH ISOLATED FORM →
ARABIC LETTER DYEH #
+
+FB7C ; 0686 ; MA # ( ﭼ → چ ) ARABIC LETTER TCHEH INITIAL FORM →
ARABIC LETTER TCHEH #
+FB7D ; 0686 ; MA # ( ﭽ → چ ) ARABIC LETTER TCHEH MEDIAL FORM →
ARABIC LETTER TCHEH #
+FB7B ; 0686 ; MA # ( ﭻ → چ ) ARABIC LETTER TCHEH FINAL FORM → ARABIC
LETTER TCHEH #
+FB7A ; 0686 ; MA # ( ﭺ → چ ) ARABIC LETTER TCHEH ISOLATED FORM →
ARABIC LETTER TCHEH #
+
+FB80 ; 0687 ; MA # ( ﮀ → ڇ ) ARABIC LETTER TCHEHEH INITIAL FORM →
ARABIC LETTER TCHEHEH #
+FB81 ; 0687 ; MA # ( ﮁ → ڇ ) ARABIC LETTER TCHEHEH MEDIAL FORM →
ARABIC LETTER TCHEHEH #
+FB7F ; 0687 ; MA # ( ﭿ → ڇ ) ARABIC LETTER TCHEHEH FINAL FORM →
ARABIC LETTER TCHEHEH #
+FB7E ; 0687 ; MA # ( ﭾ → ڇ ) ARABIC LETTER TCHEHEH ISOLATED FORM →
ARABIC LETTER TCHEHEH #
+
+1EE07 ; 062D ; MA # ( 𞸇 → ح ) ARABIC MATHEMATICAL HAH →
ARABIC LETTER HAH #
+1EE27 ; 062D ; MA # ( 𞸧 → ح ) ARABIC MATHEMATICAL INITIAL HAH
→ ARABIC LETTER HAH #
+1EE47 ; 062D ; MA # ( 𞹇 → ح ) ARABIC MATHEMATICAL TAILED HAH
→ ARABIC LETTER HAH #
+1EE67 ; 062D ; MA # ( 𞹧 → ح ) ARABIC MATHEMATICAL STRETCHED
HAH → ARABIC LETTER HAH #
+1EE87 ; 062D ; MA # ( 𞺇 → ح ) ARABIC MATHEMATICAL LOOPED HAH
→ ARABIC LETTER HAH #
+1EEA7 ; 062D ; MA # ( 𞺧 → ح ) ARABIC MATHEMATICAL
DOUBLE-STRUCK HAH → ARABIC LETTER HAH #
+FEA3 ; 062D ; MA # ( ﺣ → ح ) ARABIC LETTER HAH INITIAL FORM → ARABIC
LETTER HAH #
+FEA4 ; 062D ; MA # ( ﺤ → ح ) ARABIC LETTER HAH MEDIAL FORM → ARABIC
LETTER HAH #
+FEA2 ; 062D ; MA # ( ﺢ → ح ) ARABIC LETTER HAH FINAL FORM → ARABIC
LETTER HAH #
+FEA1 ; 062D ; MA # ( ﺡ → ح ) ARABIC LETTER HAH ISOLATED FORM →
ARABIC LETTER HAH #
+
+0685 ; 062D 06DB ; MA # ( څ → حۛ ) ARABIC LETTER HAH WITH THREE
DOTS ABOVE → ARABIC LETTER HAH, ARABIC SMALL HIGH THREE DOTS #
+
+0681 ; 062D 0654 ; MA # ( ځ → حٔ ) ARABIC LETTER HAH WITH HAMZA
ABOVE → ARABIC LETTER HAH, ARABIC HAMZA ABOVE #
+0772 ; 062D 0654 ; MA # ( ݲ → حٔ ) ARABIC LETTER HAH WITH SMALL
ARABIC LETTER TAH ABOVE → ARABIC LETTER HAH, ARABIC HAMZA ABOVE #
+
+FCA9 ; 062D 062C ; MA # ( ﲩ → حج ) ARABIC LIGATURE HAH WITH JEEM
INITIAL FORM → ARABIC LETTER HAH, ARABIC LETTER JEEM #
+FC17 ; 062D 062C ; MA # ( ﰗ → حج ) ARABIC LIGATURE HAH WITH JEEM
ISOLATED FORM → ARABIC LETTER HAH, ARABIC LETTER JEEM #
+
+FDBF ; 062D 062C 0649 ; MA # ( ﶿ → حجى ) ARABIC LIGATURE HAH
WITH JEEM WITH YEH FINAL FORM → ARABIC LETTER HAH, ARABIC LETTER JEEM, ARABIC
LETTER ALEF MAKSURA # →حجي→
+
+FCAA ; 062D 0645 ; MA # ( ﲪ → حم ) ARABIC LIGATURE HAH WITH MEEM
INITIAL FORM → ARABIC LETTER HAH, ARABIC LETTER MEEM #
+FC18 ; 062D 0645 ; MA # ( ﰘ → حم ) ARABIC LIGATURE HAH WITH MEEM
ISOLATED FORM → ARABIC LETTER HAH, ARABIC LETTER MEEM #
+
+FD5B ; 062D 0645 0649 ; MA # ( ﵛ → حمى ) ARABIC LIGATURE HAH
WITH MEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER HAH, ARABIC LETTER MEEM,
ARABIC LETTER ALEF MAKSURA #
+FD5A ; 062D 0645 0649 ; MA # ( ﵚ → حمى ) ARABIC LIGATURE HAH
WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER HAH, ARABIC LETTER MEEM, ARABIC
LETTER ALEF MAKSURA # →حمي→
+
+FD1B ; 062D 0649 ; MA # ( ﴛ → حى ) ARABIC LIGATURE HAH WITH ALEF
MAKSURA FINAL FORM → ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA #
+FCFF ; 062D 0649 ; MA # ( ﳿ → حى ) ARABIC LIGATURE HAH WITH ALEF
MAKSURA ISOLATED FORM → ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA #
+FD1C ; 062D 0649 ; MA # ( ﴜ → حى ) ARABIC LIGATURE HAH WITH YEH
FINAL FORM → ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # →حي→
+FD00 ; 062D 0649 ; MA # ( ﴀ → حى ) ARABIC LIGATURE HAH WITH YEH
ISOLATED FORM → ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # →حي→
+
+1EE17 ; 062E ; MA # ( 𞸗 → خ ) ARABIC MATHEMATICAL KHAH →
ARABIC LETTER KHAH #
+1EE37 ; 062E ; MA # ( 𞸷 → خ ) ARABIC MATHEMATICAL INITIAL
KHAH → ARABIC LETTER KHAH #
+1EE57 ; 062E ; MA # ( 𞹗 → خ ) ARABIC MATHEMATICAL TAILED KHAH
→ ARABIC LETTER KHAH #
+1EE77 ; 062E ; MA # ( 𞹷 → خ ) ARABIC MATHEMATICAL STRETCHED
KHAH → ARABIC LETTER KHAH #
+1EE97 ; 062E ; MA # ( 𞺗 → خ ) ARABIC MATHEMATICAL LOOPED KHAH
→ ARABIC LETTER KHAH #
+1EEB7 ; 062E ; MA # ( 𞺷 → خ ) ARABIC MATHEMATICAL
DOUBLE-STRUCK KHAH → ARABIC LETTER KHAH #
+FEA7 ; 062E ; MA # ( ﺧ → خ ) ARABIC LETTER KHAH INITIAL FORM →
ARABIC LETTER KHAH #
+FEA8 ; 062E ; MA # ( ﺨ → خ ) ARABIC LETTER KHAH MEDIAL FORM → ARABIC
LETTER KHAH #
+FEA6 ; 062E ; MA # ( ﺦ → خ ) ARABIC LETTER KHAH FINAL FORM → ARABIC
LETTER KHAH #
+FEA5 ; 062E ; MA # ( ﺥ → خ ) ARABIC LETTER KHAH ISOLATED FORM →
ARABIC LETTER KHAH #
+
+FCAB ; 062E 062C ; MA # ( ﲫ → خج ) ARABIC LIGATURE KHAH WITH JEEM
INITIAL FORM → ARABIC LETTER KHAH, ARABIC LETTER JEEM #
+FC19 ; 062E 062C ; MA # ( ﰙ → خج ) ARABIC LIGATURE KHAH WITH JEEM
ISOLATED FORM → ARABIC LETTER KHAH, ARABIC LETTER JEEM #
+
+FC1A ; 062E 062D ; MA # ( ﰚ → خح ) ARABIC LIGATURE KHAH WITH HAH
ISOLATED FORM → ARABIC LETTER KHAH, ARABIC LETTER HAH #
+
+FCAC ; 062E 0645 ; MA # ( ﲬ → خم ) ARABIC LIGATURE KHAH WITH MEEM
INITIAL FORM → ARABIC LETTER KHAH, ARABIC LETTER MEEM #
+FC1B ; 062E 0645 ; MA # ( ﰛ → خم ) ARABIC LIGATURE KHAH WITH MEEM
ISOLATED FORM → ARABIC LETTER KHAH, ARABIC LETTER MEEM #
+
+FD1F ; 062E 0649 ; MA # ( ﴟ → خى ) ARABIC LIGATURE KHAH WITH ALEF
MAKSURA FINAL FORM → ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA #
+FD03 ; 062E 0649 ; MA # ( ﴃ → خى ) ARABIC LIGATURE KHAH WITH ALEF
MAKSURA ISOLATED FORM → ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA #
+FD20 ; 062E 0649 ; MA # ( ﴠ → خى ) ARABIC LIGATURE KHAH WITH YEH
FINAL FORM → ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA # →خي→
+FD04 ; 062E 0649 ; MA # ( ﴄ → خى ) ARABIC LIGATURE KHAH WITH YEH
ISOLATED FORM → ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA # →خي→
+
+102E1 ; 062F ; MA #* ( 𐋡 → د ) COPTIC EPACT DIGIT ONE → ARABIC
LETTER DAL #
+1EE03 ; 062F ; MA # ( 𞸃 → د ) ARABIC MATHEMATICAL DAL →
ARABIC LETTER DAL #
+1EE83 ; 062F ; MA # ( 𞺃 → د ) ARABIC MATHEMATICAL LOOPED DAL
→ ARABIC LETTER DAL #
+1EEA3 ; 062F ; MA # ( 𞺣 → د ) ARABIC MATHEMATICAL
DOUBLE-STRUCK DAL → ARABIC LETTER DAL #
+FEAA ; 062F ; MA # ( ﺪ → د ) ARABIC LETTER DAL FINAL FORM → ARABIC
LETTER DAL #
+FEA9 ; 062F ; MA # ( ﺩ → د ) ARABIC LETTER DAL ISOLATED FORM →
ARABIC LETTER DAL #
+
+0688 ; 062F 0615 ; MA # ( ڈ → دؕ ) ARABIC LETTER DDAL → ARABIC
LETTER DAL, ARABIC SMALL HIGH TAH #
+FB89 ; 062F 0615 ; MA # ( ﮉ → دؕ ) ARABIC LETTER DDAL FINAL FORM
→ ARABIC LETTER DAL, ARABIC SMALL HIGH TAH # →ڈ→
+FB88 ; 062F 0615 ; MA # ( ﮈ → دؕ ) ARABIC LETTER DDAL ISOLATED
FORM → ARABIC LETTER DAL, ARABIC SMALL HIGH TAH # →ڈ→
+
+068E ; 062F 06DB ; MA # ( ڎ → دۛ ) ARABIC LETTER DUL → ARABIC
LETTER DAL, ARABIC SMALL HIGH THREE DOTS #
+FB87 ; 062F 06DB ; MA # ( ﮇ → دۛ ) ARABIC LETTER DUL FINAL FORM →
ARABIC LETTER DAL, ARABIC SMALL HIGH THREE DOTS # →ڎ→
+FB86 ; 062F 06DB ; MA # ( ﮆ → دۛ ) ARABIC LETTER DUL ISOLATED
FORM → ARABIC LETTER DAL, ARABIC SMALL HIGH THREE DOTS # →ڎ→
+
+06EE ; 062F 0302 ; MA # ( ۮ → د̂ ) ARABIC LETTER DAL WITH
INVERTED V → ARABIC LETTER DAL, COMBINING CIRCUMFLEX ACCENT # →دٛ→
+
+08AE ; 062F 0324 0323 ; MA # ( ࢮ → د̤̣ ) ARABIC LETTER DAL
WITH THREE DOTS BELOW → ARABIC LETTER DAL, COMBINING DIAERESIS BELOW, COMBINING
DOT BELOW # →د࣮࣭→
+
+1EE18 ; 0630 ; MA # ( 𞸘 → ذ ) ARABIC MATHEMATICAL THAL →
ARABIC LETTER THAL #
+1EE98 ; 0630 ; MA # ( 𞺘 → ذ ) ARABIC MATHEMATICAL LOOPED THAL
→ ARABIC LETTER THAL #
+1EEB8 ; 0630 ; MA # ( 𞺸 → ذ ) ARABIC MATHEMATICAL
DOUBLE-STRUCK THAL → ARABIC LETTER THAL #
+FEAC ; 0630 ; MA # ( ﺬ → ذ ) ARABIC LETTER THAL FINAL FORM → ARABIC
LETTER THAL #
+FEAB ; 0630 ; MA # ( ﺫ → ذ ) ARABIC LETTER THAL ISOLATED FORM →
ARABIC LETTER THAL #
+
+FC5B ; 0630 0670 ; MA # ( ﱛ → ذٰ ) ARABIC LIGATURE THAL WITH
SUPERSCRIPT ALEF ISOLATED FORM → ARABIC LETTER THAL, ARABIC LETTER SUPERSCRIPT
ALEF #
+
+068B ; 068A 0615 ; MA # ( ڋ → ڊؕ ) ARABIC LETTER DAL WITH DOT
BELOW AND SMALL TAH → ARABIC LETTER DAL WITH DOT BELOW, ARABIC SMALL HIGH TAH
#
+
+FB85 ; 068C ; MA # ( ﮅ → ڌ ) ARABIC LETTER DAHAL FINAL FORM → ARABIC
LETTER DAHAL #
+FB84 ; 068C ; MA # ( ﮄ → ڌ ) ARABIC LETTER DAHAL ISOLATED FORM →
ARABIC LETTER DAHAL #
+
+FB83 ; 068D ; MA # ( ﮃ → ڍ ) ARABIC LETTER DDAHAL FINAL FORM →
ARABIC LETTER DDAHAL #
+FB82 ; 068D ; MA # ( ﮂ → ڍ ) ARABIC LETTER DDAHAL ISOLATED FORM →
ARABIC LETTER DDAHAL #
+
+1EE13 ; 0631 ; MA # ( 𞸓 → ر ) ARABIC MATHEMATICAL REH →
ARABIC LETTER REH #
+1EE93 ; 0631 ; MA # ( 𞺓 → ر ) ARABIC MATHEMATICAL LOOPED REH
→ ARABIC LETTER REH #
+1EEB3 ; 0631 ; MA # ( 𞺳 → ر ) ARABIC MATHEMATICAL
DOUBLE-STRUCK REH → ARABIC LETTER REH #
+FEAE ; 0631 ; MA # ( ﺮ → ر ) ARABIC LETTER REH FINAL FORM → ARABIC
LETTER REH #
+FEAD ; 0631 ; MA # ( ﺭ → ر ) ARABIC LETTER REH ISOLATED FORM →
ARABIC LETTER REH #
+
+0691 ; 0631 0615 ; MA # ( ڑ → رؕ ) ARABIC LETTER RREH → ARABIC
LETTER REH, ARABIC SMALL HIGH TAH #
+FB8D ; 0631 0615 ; MA # ( ﮍ → رؕ ) ARABIC LETTER RREH FINAL FORM
→ ARABIC LETTER REH, ARABIC SMALL HIGH TAH # →ڑ→
+FB8C ; 0631 0615 ; MA # ( ﮌ → رؕ ) ARABIC LETTER RREH ISOLATED
FORM → ARABIC LETTER REH, ARABIC SMALL HIGH TAH # →ڑ→
+
+0698 ; 0631 06DB ; MA # ( ژ → رۛ ) ARABIC LETTER JEH → ARABIC
LETTER REH, ARABIC SMALL HIGH THREE DOTS #
+FB8B ; 0631 06DB ; MA # ( ﮋ → رۛ ) ARABIC LETTER JEH FINAL FORM →
ARABIC LETTER REH, ARABIC SMALL HIGH THREE DOTS # →ژ→
+FB8A ; 0631 06DB ; MA # ( ﮊ → رۛ ) ARABIC LETTER JEH ISOLATED
FORM → ARABIC LETTER REH, ARABIC SMALL HIGH THREE DOTS # →ژ→
+
+0692 ; 0631 0306 ; MA # ( ڒ → ر̆ ) ARABIC LETTER REH WITH SMALL V
→ ARABIC LETTER REH, COMBINING BREVE # →رٚ→
+
+08B9 ; 0631 0306 0307 ; MA # ( ࢹ → ر̆̇ ) ARABIC LETTER REH
WITH SMALL NOON ABOVE → ARABIC LETTER REH, COMBINING BREVE, COMBINING DOT ABOVE
# →رۨ→
+
+06EF ; 0631 0302 ; MA # ( ۯ → ر̂ ) ARABIC LETTER REH WITH
INVERTED V → ARABIC LETTER REH, COMBINING CIRCUMFLEX ACCENT # →رٛ→
+
+076C ; 0631 0654 ; MA # ( ݬ → رٔ ) ARABIC LETTER REH WITH HAMZA
ABOVE → ARABIC LETTER REH, ARABIC HAMZA ABOVE #
+
+FC5C ; 0631 0670 ; MA # ( ﱜ → رٰ ) ARABIC LIGATURE REH WITH
SUPERSCRIPT ALEF ISOLATED FORM → ARABIC LETTER REH, ARABIC LETTER SUPERSCRIPT
ALEF #
+
+FDF6 ; 0631 0633 0648 0644 ; MA # ( ﷶ → رسول ) ARABIC LIGATURE
RASOUL ISOLATED FORM → ARABIC LETTER REH, ARABIC LETTER SEEN, ARABIC LETTER
WAW, ARABIC LETTER LAM #
+
+FDFC ; 0631 0649 006C 0644 ; MA #* ( ﷼ → رىlل ) RIAL SIGN → ARABIC
LETTER REH, ARABIC LETTER ALEF MAKSURA, LATIN SMALL LETTER L, ARABIC LETTER LAM
# →ریال→
+
+1EE06 ; 0632 ; MA # ( 𞸆 → ز ) ARABIC MATHEMATICAL ZAIN →
ARABIC LETTER ZAIN #
+1EE86 ; 0632 ; MA # ( 𞺆 → ز ) ARABIC MATHEMATICAL LOOPED ZAIN
→ ARABIC LETTER ZAIN #
+1EEA6 ; 0632 ; MA # ( 𞺦 → ز ) ARABIC MATHEMATICAL
DOUBLE-STRUCK ZAIN → ARABIC LETTER ZAIN #
+FEB0 ; 0632 ; MA # ( ﺰ → ز ) ARABIC LETTER ZAIN FINAL FORM → ARABIC
LETTER ZAIN #
+FEAF ; 0632 ; MA # ( ﺯ → ز ) ARABIC LETTER ZAIN ISOLATED FORM →
ARABIC LETTER ZAIN #
+
+08B2 ; 0632 0302 ; MA # ( ࢲ → ز̂ ) ARABIC LETTER ZAIN WITH
INVERTED V ABOVE → ARABIC LETTER ZAIN, COMBINING CIRCUMFLEX ACCENT # →زٛ→
+
+0771 ; 0697 0615 ; MA # ( ݱ → ڗؕ ) ARABIC LETTER REH WITH SMALL
ARABIC LETTER TAH AND TWO DOTS → ARABIC LETTER REH WITH TWO DOTS ABOVE, ARABIC
SMALL HIGH TAH #
+
+1EE0E ; 0633 ; MA # ( 𞸎 → س ) ARABIC MATHEMATICAL SEEN →
ARABIC LETTER SEEN #
+1EE2E ; 0633 ; MA # ( 𞸮 → س ) ARABIC MATHEMATICAL INITIAL
SEEN → ARABIC LETTER SEEN #
+1EE4E ; 0633 ; MA # ( 𞹎 → س ) ARABIC MATHEMATICAL TAILED SEEN
→ ARABIC LETTER SEEN #
+1EE6E ; 0633 ; MA # ( 𞹮 → س ) ARABIC MATHEMATICAL STRETCHED
SEEN → ARABIC LETTER SEEN #
+1EE8E ; 0633 ; MA # ( 𞺎 → س ) ARABIC MATHEMATICAL LOOPED SEEN
→ ARABIC LETTER SEEN #
+1EEAE ; 0633 ; MA # ( 𞺮 → س ) ARABIC MATHEMATICAL
DOUBLE-STRUCK SEEN → ARABIC LETTER SEEN #
+FEB3 ; 0633 ; MA # ( ﺳ → س ) ARABIC LETTER SEEN INITIAL FORM →
ARABIC LETTER SEEN #
+FEB4 ; 0633 ; MA # ( ﺴ → س ) ARABIC LETTER SEEN MEDIAL FORM → ARABIC
LETTER SEEN #
+FEB2 ; 0633 ; MA # ( ﺲ → س ) ARABIC LETTER SEEN FINAL FORM → ARABIC
LETTER SEEN #
+FEB1 ; 0633 ; MA # ( ﺱ → س ) ARABIC LETTER SEEN ISOLATED FORM →
ARABIC LETTER SEEN #
+
+0634 ; 0633 06DB ; MA # ( ش → سۛ ) ARABIC LETTER SHEEN → ARABIC
LETTER SEEN, ARABIC SMALL HIGH THREE DOTS #
+1EE14 ; 0633 06DB ; MA # ( 𞸔 → سۛ ) ARABIC MATHEMATICAL
SHEEN → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →ش→
+1EE34 ; 0633 06DB ; MA # ( 𞸴 → سۛ ) ARABIC MATHEMATICAL
INITIAL SHEEN → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →ش→
+1EE54 ; 0633 06DB ; MA # ( 𞹔 → سۛ ) ARABIC MATHEMATICAL
TAILED SHEEN → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →ش→
+1EE74 ; 0633 06DB ; MA # ( 𞹴 → سۛ ) ARABIC MATHEMATICAL
STRETCHED SHEEN → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →ش→
+1EE94 ; 0633 06DB ; MA # ( 𞺔 → سۛ ) ARABIC MATHEMATICAL
LOOPED SHEEN → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →ش→
+1EEB4 ; 0633 06DB ; MA # ( 𞺴 → سۛ ) ARABIC MATHEMATICAL
DOUBLE-STRUCK SHEEN → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS #
→ش→
+FEB7 ; 0633 06DB ; MA # ( ﺷ → سۛ ) ARABIC LETTER SHEEN INITIAL
FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →ش→
+FEB8 ; 0633 06DB ; MA # ( ﺸ → سۛ ) ARABIC LETTER SHEEN MEDIAL
FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →ش→
+FEB6 ; 0633 06DB ; MA # ( ﺶ → سۛ ) ARABIC LETTER SHEEN FINAL FORM
→ ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →ش→
+FEB5 ; 0633 06DB ; MA # ( ﺵ → سۛ ) ARABIC LETTER SHEEN ISOLATED
FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →ش→
+
+077E ; 0633 0302 ; MA # ( ݾ → س̂ ) ARABIC LETTER SEEN WITH
INVERTED V → ARABIC LETTER SEEN, COMBINING CIRCUMFLEX ACCENT # →سٛ→
+
+FD31 ; 0633 006F ; MA # ( ﴱ → سo ) ARABIC LIGATURE SEEN WITH HEH
INITIAL FORM → ARABIC LETTER SEEN, LATIN SMALL LETTER O # →سه→
+FCE8 ; 0633 006F ; MA # ( ﳨ → سo ) ARABIC LIGATURE SEEN WITH HEH
MEDIAL FORM → ARABIC LETTER SEEN, LATIN SMALL LETTER O # →سه→
+
+FD32 ; 0633 06DB 006F ; MA # ( ﴲ → سۛo ) ARABIC LIGATURE SHEEN
WITH HEH INITIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, LATIN
SMALL LETTER O # →شه→
+FCEA ; 0633 06DB 006F ; MA # ( ﳪ → سۛo ) ARABIC LIGATURE SHEEN
WITH HEH MEDIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, LATIN
SMALL LETTER O # →شه→
+
+FCAD ; 0633 062C ; MA # ( ﲭ → سج ) ARABIC LIGATURE SEEN WITH JEEM
INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER JEEM #
+FD34 ; 0633 062C ; MA # ( ﴴ → سج ) ARABIC LIGATURE SEEN WITH JEEM
MEDIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER JEEM #
+FC1C ; 0633 062C ; MA # ( ﰜ → سج ) ARABIC LIGATURE SEEN WITH JEEM
ISOLATED FORM → ARABIC LETTER SEEN, ARABIC LETTER JEEM #
+
+FD2D ; 0633 06DB 062C ; MA # ( ﴭ → سۛج ) ARABIC LIGATURE SHEEN
WITH JEEM INITIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS,
ARABIC LETTER JEEM # →شج→
+FD37 ; 0633 06DB 062C ; MA # ( ﴷ → سۛج ) ARABIC LIGATURE SHEEN
WITH JEEM MEDIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS,
ARABIC LETTER JEEM # →شج→
+FD25 ; 0633 06DB 062C ; MA # ( ﴥ → سۛج ) ARABIC LIGATURE SHEEN
WITH JEEM FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC
LETTER JEEM # →شج→
+FD09 ; 0633 06DB 062C ; MA # ( ﴉ → سۛج ) ARABIC LIGATURE SHEEN
WITH JEEM ISOLATED FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS,
ARABIC LETTER JEEM # →شج→
+
+FD5D ; 0633 062C 062D ; MA # ( ﵝ → سجح ) ARABIC LIGATURE SEEN
WITH JEEM WITH HAH INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER JEEM,
ARABIC LETTER HAH #
+
+FD5E ; 0633 062C 0649 ; MA # ( ﵞ → سجى ) ARABIC LIGATURE SEEN
WITH JEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER SEEN, ARABIC LETTER
JEEM, ARABIC LETTER ALEF MAKSURA #
+
+FD69 ; 0633 06DB 062C 0649 ; MA # ( ﵩ → سۛجى ) ARABIC LIGATURE
SHEEN WITH JEEM WITH YEH FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH
THREE DOTS, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA # →شجي→
+
+FCAE ; 0633 062D ; MA # ( ﲮ → سح ) ARABIC LIGATURE SEEN WITH HAH
INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER HAH #
+FD35 ; 0633 062D ; MA # ( ﴵ → سح ) ARABIC LIGATURE SEEN WITH HAH
MEDIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER HAH #
+FC1D ; 0633 062D ; MA # ( ﰝ → سح ) ARABIC LIGATURE SEEN WITH HAH
ISOLATED FORM → ARABIC LETTER SEEN, ARABIC LETTER HAH #
+
+FD2E ; 0633 06DB 062D ; MA # ( ﴮ → سۛح ) ARABIC LIGATURE SHEEN
WITH HAH INITIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS,
ARABIC LETTER HAH # →شح→
+FD38 ; 0633 06DB 062D ; MA # ( ﴸ → سۛح ) ARABIC LIGATURE SHEEN
WITH HAH MEDIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC
LETTER HAH # →شح→
+FD26 ; 0633 06DB 062D ; MA # ( ﴦ → سۛح ) ARABIC LIGATURE SHEEN
WITH HAH FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC
LETTER HAH # →شح→
+FD0A ; 0633 06DB 062D ; MA # ( ﴊ → سۛح ) ARABIC LIGATURE SHEEN
WITH HAH ISOLATED FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS,
ARABIC LETTER HAH # →شح→
+
+FD5C ; 0633 062D 062C ; MA # ( ﵜ → سحج ) ARABIC LIGATURE SEEN
WITH HAH WITH JEEM INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER HAH, ARABIC
LETTER JEEM #
+
+FD68 ; 0633 06DB 062D 0645 ; MA # ( ﵨ → سۛحم ) ARABIC LIGATURE
SHEEN WITH HAH WITH MEEM INITIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH
THREE DOTS, ARABIC LETTER HAH, ARABIC LETTER MEEM # →شحم→
+FD67 ; 0633 06DB 062D 0645 ; MA # ( ﵧ → سۛحم ) ARABIC LIGATURE
SHEEN WITH HAH WITH MEEM FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH
THREE DOTS, ARABIC LETTER HAH, ARABIC LETTER MEEM # →شحم→
+
+FDAA ; 0633 06DB 062D 0649 ; MA # ( ﶪ → سۛحى ) ARABIC LIGATURE
SHEEN WITH HAH WITH YEH FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH
THREE DOTS, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # →شحي→
+
+FCAF ; 0633 062E ; MA # ( ﲯ → سخ ) ARABIC LIGATURE SEEN WITH KHAH
INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER KHAH #
+FD36 ; 0633 062E ; MA # ( ﴶ → سخ ) ARABIC LIGATURE SEEN WITH KHAH
MEDIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER KHAH #
+FC1E ; 0633 062E ; MA # ( ﰞ → سخ ) ARABIC LIGATURE SEEN WITH KHAH
ISOLATED FORM → ARABIC LETTER SEEN, ARABIC LETTER KHAH #
+
+FD2F ; 0633 06DB 062E ; MA # ( ﴯ → سۛخ ) ARABIC LIGATURE SHEEN
WITH KHAH INITIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS,
ARABIC LETTER KHAH # →شخ→
+FD39 ; 0633 06DB 062E ; MA # ( ﴹ → سۛخ ) ARABIC LIGATURE SHEEN
WITH KHAH MEDIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS,
ARABIC LETTER KHAH # →شخ→
+FD27 ; 0633 06DB 062E ; MA # ( ﴧ → سۛخ ) ARABIC LIGATURE SHEEN
WITH KHAH FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC
LETTER KHAH # →شخ→
+FD0B ; 0633 06DB 062E ; MA # ( ﴋ → سۛخ ) ARABIC LIGATURE SHEEN
WITH KHAH ISOLATED FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS,
ARABIC LETTER KHAH # →شخ→
+
+FDA8 ; 0633 062E 0649 ; MA # ( ﶨ → سخى ) ARABIC LIGATURE SEEN
WITH KHAH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER SEEN, ARABIC LETTER
KHAH, ARABIC LETTER ALEF MAKSURA #
+FDC6 ; 0633 062E 0649 ; MA # ( ﷆ → سخى ) ARABIC LIGATURE SEEN
WITH KHAH WITH YEH FINAL FORM → ARABIC LETTER SEEN, ARABIC LETTER KHAH, ARABIC
LETTER ALEF MAKSURA # →سخي→
+
+FD2A ; 0633 0631 ; MA # ( ﴪ → سر ) ARABIC LIGATURE SEEN WITH REH
FINAL FORM → ARABIC LETTER SEEN, ARABIC LETTER REH #
+FD0E ; 0633 0631 ; MA # ( ﴎ → سر ) ARABIC LIGATURE SEEN WITH REH
ISOLATED FORM → ARABIC LETTER SEEN, ARABIC LETTER REH #
+
+FD29 ; 0633 06DB 0631 ; MA # ( ﴩ → سۛر ) ARABIC LIGATURE SHEEN
WITH REH FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC
LETTER REH # →شر→
+FD0D ; 0633 06DB 0631 ; MA # ( ﴍ → سۛر ) ARABIC LIGATURE SHEEN
WITH REH ISOLATED FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS,
ARABIC LETTER REH # →شر→
+
+FCB0 ; 0633 0645 ; MA # ( ﲰ → سم ) ARABIC LIGATURE SEEN WITH MEEM
INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER MEEM #
+FCE7 ; 0633 0645 ; MA # ( ﳧ → سم ) ARABIC LIGATURE SEEN WITH MEEM
MEDIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER MEEM #
+FC1F ; 0633 0645 ; MA # ( ﰟ → سم ) ARABIC LIGATURE SEEN WITH MEEM
ISOLATED FORM → ARABIC LETTER SEEN, ARABIC LETTER MEEM #
+
+FD30 ; 0633 06DB 0645 ; MA # ( ﴰ → سۛم ) ARABIC LIGATURE SHEEN
WITH MEEM INITIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS,
ARABIC LETTER MEEM # →شم→
+FCE9 ; 0633 06DB 0645 ; MA # ( ﳩ → سۛم ) ARABIC LIGATURE SHEEN
WITH MEEM MEDIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS,
ARABIC LETTER MEEM # →شم→
+FD28 ; 0633 06DB 0645 ; MA # ( ﴨ → سۛم ) ARABIC LIGATURE SHEEN
WITH MEEM FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC
LETTER MEEM # →شم→
+FD0C ; 0633 06DB 0645 ; MA # ( ﴌ → سۛم ) ARABIC LIGATURE SHEEN
WITH MEEM ISOLATED FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS,
ARABIC LETTER MEEM # →شم→
+
+FD61 ; 0633 0645 062C ; MA # ( ﵡ → سمج ) ARABIC LIGATURE SEEN
WITH MEEM WITH JEEM INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER MEEM,
ARABIC LETTER JEEM #
+
+FD60 ; 0633 0645 062D ; MA # ( ﵠ → سمح ) ARABIC LIGATURE SEEN
WITH MEEM WITH HAH INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER MEEM,
ARABIC LETTER HAH #
+FD5F ; 0633 0645 062D ; MA # ( ﵟ → سمح ) ARABIC LIGATURE SEEN
WITH MEEM WITH HAH FINAL FORM → ARABIC LETTER SEEN, ARABIC LETTER MEEM, ARABIC
LETTER HAH #
+
+FD6B ; 0633 06DB 0645 062E ; MA # ( ﵫ → سۛمخ ) ARABIC LIGATURE
SHEEN WITH MEEM WITH KHAH INITIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH
THREE DOTS, ARABIC LETTER MEEM, ARABIC LETTER KHAH # →شمخ→
+FD6A ; 0633 06DB 0645 062E ; MA # ( ﵪ → سۛمخ ) ARABIC LIGATURE
SHEEN WITH MEEM WITH KHAH FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH
THREE DOTS, ARABIC LETTER MEEM, ARABIC LETTER KHAH # →شمخ→
+
+FD63 ; 0633 0645 0645 ; MA # ( ﵣ → سمم ) ARABIC LIGATURE SEEN
WITH MEEM WITH MEEM INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER MEEM,
ARABIC LETTER MEEM #
+FD62 ; 0633 0645 0645 ; MA # ( ﵢ → سمم ) ARABIC LIGATURE SEEN
WITH MEEM WITH MEEM FINAL FORM → ARABIC LETTER SEEN, ARABIC LETTER MEEM, ARABIC
LETTER MEEM #
+
+FD6D ; 0633 06DB 0645 0645 ; MA # ( ﵭ → سۛمم ) ARABIC LIGATURE
SHEEN WITH MEEM WITH MEEM INITIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH
THREE DOTS, ARABIC LETTER MEEM, ARABIC LETTER MEEM # →شمم→
+FD6C ; 0633 06DB 0645 0645 ; MA # ( ﵬ → سۛمم ) ARABIC LIGATURE
SHEEN WITH MEEM WITH MEEM FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH
THREE DOTS, ARABIC LETTER MEEM, ARABIC LETTER MEEM # →شمم→
+
+FD17 ; 0633 0649 ; MA # ( ﴗ → سى ) ARABIC LIGATURE SEEN WITH ALEF
MAKSURA FINAL FORM → ARABIC LETTER SEEN, ARABIC LETTER ALEF MAKSURA #
+FCFB ; 0633 0649 ; MA # ( ﳻ → سى ) ARABIC LIGATURE SEEN WITH ALEF
MAKSURA ISOLATED FORM → ARABIC LETTER SEEN, ARABIC LETTER ALEF MAKSURA #
+FD18 ; 0633 0649 ; MA # ( ﴘ → سى ) ARABIC LIGATURE SEEN WITH YEH
FINAL FORM → ARABIC LETTER SEEN, ARABIC LETTER ALEF MAKSURA # →سي→
+FCFC ; 0633 0649 ; MA # ( ﳼ → سى ) ARABIC LIGATURE SEEN WITH YEH
ISOLATED FORM → ARABIC LETTER SEEN, ARABIC LETTER ALEF MAKSURA # →سي→
+
+FD19 ; 0633 06DB 0649 ; MA # ( ﴙ → سۛى ) ARABIC LIGATURE SHEEN
WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE
DOTS, ARABIC LETTER ALEF MAKSURA # →شى→
+FCFD ; 0633 06DB 0649 ; MA # ( ﳽ → سۛى ) ARABIC LIGATURE SHEEN
WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE
DOTS, ARABIC LETTER ALEF MAKSURA # →شى→
+FD1A ; 0633 06DB 0649 ; MA # ( ﴚ → سۛى ) ARABIC LIGATURE SHEEN
WITH YEH FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC
LETTER ALEF MAKSURA # →شي→
+FCFE ; 0633 06DB 0649 ; MA # ( ﳾ → سۛى ) ARABIC LIGATURE SHEEN
WITH YEH ISOLATED FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS,
ARABIC LETTER ALEF MAKSURA # →شي→
+
+102F2 ; 0635 ; MA #* ( 𐋲 → ص ) COPTIC EPACT NUMBER NINETY →
ARABIC LETTER SAD #
+1EE11 ; 0635 ; MA # ( 𞸑 → ص ) ARABIC MATHEMATICAL SAD →
ARABIC LETTER SAD #
+1EE31 ; 0635 ; MA # ( 𞸱 → ص ) ARABIC MATHEMATICAL INITIAL SAD
→ ARABIC LETTER SAD #
+1EE51 ; 0635 ; MA # ( 𞹑 → ص ) ARABIC MATHEMATICAL TAILED SAD
→ ARABIC LETTER SAD #
+1EE71 ; 0635 ; MA # ( 𞹱 → ص ) ARABIC MATHEMATICAL STRETCHED
SAD → ARABIC LETTER SAD #
+1EE91 ; 0635 ; MA # ( 𞺑 → ص ) ARABIC MATHEMATICAL LOOPED SAD
→ ARABIC LETTER SAD #
+1EEB1 ; 0635 ; MA # ( 𞺱 → ص ) ARABIC MATHEMATICAL
DOUBLE-STRUCK SAD → ARABIC LETTER SAD #
+FEBB ; 0635 ; MA # ( ﺻ → ص ) ARABIC LETTER SAD INITIAL FORM → ARABIC
LETTER SAD #
+FEBC ; 0635 ; MA # ( ﺼ → ص ) ARABIC LETTER SAD MEDIAL FORM → ARABIC
LETTER SAD #
+FEBA ; 0635 ; MA # ( ﺺ → ص ) ARABIC LETTER SAD FINAL FORM → ARABIC
LETTER SAD #
+FEB9 ; 0635 ; MA # ( ﺹ → ص ) ARABIC LETTER SAD ISOLATED FORM →
ARABIC LETTER SAD #
+
+069E ; 0635 06DB ; MA # ( ڞ → صۛ ) ARABIC LETTER SAD WITH THREE
DOTS ABOVE → ARABIC LETTER SAD, ARABIC SMALL HIGH THREE DOTS #
+
+08AF ; 0635 0324 0323 ; MA # ( ࢯ → ص̤̣ ) ARABIC LETTER SAD
WITH THREE DOTS BELOW → ARABIC LETTER SAD, COMBINING DIAERESIS BELOW, COMBINING
DOT BELOW # →ص࣮࣭→
+
+FCB1 ; 0635 062D ; MA # ( ﲱ → صح ) ARABIC LIGATURE SAD WITH HAH
INITIAL FORM → ARABIC LETTER SAD, ARABIC LETTER HAH #
+FC20 ; 0635 062D ; MA # ( ﰠ → صح ) ARABIC LIGATURE SAD WITH HAH
ISOLATED FORM → ARABIC LETTER SAD, ARABIC LETTER HAH #
+
+FD65 ; 0635 062D 062D ; MA # ( ﵥ → صحح ) ARABIC LIGATURE SAD
WITH HAH WITH HAH INITIAL FORM → ARABIC LETTER SAD, ARABIC LETTER HAH, ARABIC
LETTER HAH #
+FD64 ; 0635 062D 062D ; MA # ( ﵤ → صحح ) ARABIC LIGATURE SAD
WITH HAH WITH HAH FINAL FORM → ARABIC LETTER SAD, ARABIC LETTER HAH, ARABIC
LETTER HAH #
+
+FDA9 ; 0635 062D 0649 ; MA # ( ﶩ → صحى ) ARABIC LIGATURE SAD
WITH HAH WITH YEH FINAL FORM → ARABIC LETTER SAD, ARABIC LETTER HAH, ARABIC
LETTER ALEF MAKSURA # →صحي→
+
+FCB2 ; 0635 062E ; MA # ( ﲲ → صخ ) ARABIC LIGATURE SAD WITH KHAH
INITIAL FORM → ARABIC LETTER SAD, ARABIC LETTER KHAH #
+
+FD2B ; 0635 0631 ; MA # ( ﴫ → صر ) ARABIC LIGATURE SAD WITH REH
FINAL FORM → ARABIC LETTER SAD, ARABIC LETTER REH #
+FD0F ; 0635 0631 ; MA # ( ﴏ → صر ) ARABIC LIGATURE SAD WITH REH
ISOLATED FORM → ARABIC LETTER SAD, ARABIC LETTER REH #
+
+FDF5 ; 0635 0644 0639 0645 ; MA # ( ﷵ → صلعم ) ARABIC LIGATURE
SALAM ISOLATED FORM → ARABIC LETTER SAD, ARABIC LETTER LAM, ARABIC LETTER AIN,
ARABIC LETTER MEEM #
+
+FDF9 ; 0635 0644 0649 ; MA # ( ﷹ → صلى ) ARABIC LIGATURE SALLA
ISOLATED FORM → ARABIC LETTER SAD, ARABIC LETTER LAM, ARABIC LETTER ALEF
MAKSURA #
+FDF0 ; 0635 0644 0649 ; MA # ( ﷰ → صلى ) ARABIC LIGATURE SALLA
USED AS KORANIC STOP SIGN ISOLATED FORM → ARABIC LETTER SAD, ARABIC LETTER LAM,
ARABIC LETTER ALEF MAKSURA # →صلے→
+
+FDFA ; 0635 0644 0649 0020 006C 0644 0644 006F 0020 0639 0644 0649 006F 0020
0648 0633 0644 0645 ; MA #* ( ﷺ → صلى lللo علىo وسلم ) ARABIC
LIGATURE SALLALLAHOU ALAYHE WASALLAM → ARABIC LETTER SAD, ARABIC LETTER LAM,
ARABIC LETTER ALEF MAKSURA, SPACE, LATIN SMALL LETTER L, ARABIC LETTER LAM,
ARABIC LETTER LAM, LATIN SMALL LETTER O, SPACE, ARABIC LETTER AIN, ARABIC
LETTER LAM, ARABIC LETTER ALEF MAKSURA, LATIN SMALL LETTER O, SPACE, ARABIC
LETTER WAW, ARABIC LETTER SEEN, ARABIC LETTER [...]
+
+FCB3 ; 0635 0645 ; MA # ( ﲳ → صم ) ARABIC LIGATURE SAD WITH MEEM
INITIAL FORM → ARABIC LETTER SAD, ARABIC LETTER MEEM #
+FC21 ; 0635 0645 ; MA # ( ﰡ → صم ) ARABIC LIGATURE SAD WITH MEEM
ISOLATED FORM → ARABIC LETTER SAD, ARABIC LETTER MEEM #
+
+FDC5 ; 0635 0645 0645 ; MA # ( ﷅ → صمم ) ARABIC LIGATURE SAD
WITH MEEM WITH MEEM INITIAL FORM → ARABIC LETTER SAD, ARABIC LETTER MEEM,
ARABIC LETTER MEEM #
+FD66 ; 0635 0645 0645 ; MA # ( ﵦ → صمم ) ARABIC LIGATURE SAD
WITH MEEM WITH MEEM FINAL FORM → ARABIC LETTER SAD, ARABIC LETTER MEEM, ARABIC
LETTER MEEM #
+
+FD21 ; 0635 0649 ; MA # ( ﴡ → صى ) ARABIC LIGATURE SAD WITH ALEF
MAKSURA FINAL FORM → ARABIC LETTER SAD, ARABIC LETTER ALEF MAKSURA #
+FD05 ; 0635 0649 ; MA # ( ﴅ → صى ) ARABIC LIGATURE SAD WITH ALEF
MAKSURA ISOLATED FORM → ARABIC LETTER SAD, ARABIC LETTER ALEF MAKSURA #
+FD22 ; 0635 0649 ; MA # ( ﴢ → صى ) ARABIC LIGATURE SAD WITH YEH
FINAL FORM → ARABIC LETTER SAD, ARABIC LETTER ALEF MAKSURA # →صي→
+FD06 ; 0635 0649 ; MA # ( ﴆ → صى ) ARABIC LIGATURE SAD WITH YEH
ISOLATED FORM → ARABIC LETTER SAD, ARABIC LETTER ALEF MAKSURA # →صي→
+
+1EE19 ; 0636 ; MA # ( 𞸙 → ض ) ARABIC MATHEMATICAL DAD →
ARABIC LETTER DAD #
+1EE39 ; 0636 ; MA # ( 𞸹 → ض ) ARABIC MATHEMATICAL INITIAL DAD
→ ARABIC LETTER DAD #
+1EE59 ; 0636 ; MA # ( 𞹙 → ض ) ARABIC MATHEMATICAL TAILED DAD
→ ARABIC LETTER DAD #
+1EE79 ; 0636 ; MA # ( 𞹹 → ض ) ARABIC MATHEMATICAL STRETCHED
DAD → ARABIC LETTER DAD #
+1EE99 ; 0636 ; MA # ( 𞺙 → ض ) ARABIC MATHEMATICAL LOOPED DAD
→ ARABIC LETTER DAD #
+1EEB9 ; 0636 ; MA # ( 𞺹 → ض ) ARABIC MATHEMATICAL
DOUBLE-STRUCK DAD → ARABIC LETTER DAD #
+FEBF ; 0636 ; MA # ( ﺿ → ض ) ARABIC LETTER DAD INITIAL FORM → ARABIC
LETTER DAD #
+FEC0 ; 0636 ; MA # ( ﻀ → ض ) ARABIC LETTER DAD MEDIAL FORM → ARABIC
LETTER DAD #
+FEBE ; 0636 ; MA # ( ﺾ → ض ) ARABIC LETTER DAD FINAL FORM → ARABIC
LETTER DAD #
+FEBD ; 0636 ; MA # ( ﺽ → ض ) ARABIC LETTER DAD ISOLATED FORM →
ARABIC LETTER DAD #
+
+FCB4 ; 0636 062C ; MA # ( ﲴ → ضج ) ARABIC LIGATURE DAD WITH JEEM
INITIAL FORM → ARABIC LETTER DAD, ARABIC LETTER JEEM #
+FC22 ; 0636 062C ; MA # ( ﰢ → ضج ) ARABIC LIGATURE DAD WITH JEEM
ISOLATED FORM → ARABIC LETTER DAD, ARABIC LETTER JEEM #
+
+FCB5 ; 0636 062D ; MA # ( ﲵ → ضح ) ARABIC LIGATURE DAD WITH HAH
INITIAL FORM → ARABIC LETTER DAD, ARABIC LETTER HAH #
+FC23 ; 0636 062D ; MA # ( ﰣ → ضح ) ARABIC LIGATURE DAD WITH HAH
ISOLATED FORM → ARABIC LETTER DAD, ARABIC LETTER HAH #
+
+FD6E ; 0636 062D 0649 ; MA # ( ﵮ → ضحى ) ARABIC LIGATURE DAD
WITH HAH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER DAD, ARABIC LETTER HAH,
ARABIC LETTER ALEF MAKSURA #
+FDAB ; 0636 062D 0649 ; MA # ( ﶫ → ضحى ) ARABIC LIGATURE DAD
WITH HAH WITH YEH FINAL FORM → ARABIC LETTER DAD, ARABIC LETTER HAH, ARABIC
LETTER ALEF MAKSURA # →ضحي→
+
+FCB6 ; 0636 062E ; MA # ( ﲶ → ضخ ) ARABIC LIGATURE DAD WITH KHAH
INITIAL FORM → ARABIC LETTER DAD, ARABIC LETTER KHAH #
+FC24 ; 0636 062E ; MA # ( ﰤ → ضخ ) ARABIC LIGATURE DAD WITH KHAH
ISOLATED FORM → ARABIC LETTER DAD, ARABIC LETTER KHAH #
+
+FD70 ; 0636 062E 0645 ; MA # ( ﵰ → ضخم ) ARABIC LIGATURE DAD
WITH KHAH WITH MEEM INITIAL FORM → ARABIC LETTER DAD, ARABIC LETTER KHAH,
ARABIC LETTER MEEM #
+FD6F ; 0636 062E 0645 ; MA # ( ﵯ → ضخم ) ARABIC LIGATURE DAD
WITH KHAH WITH MEEM FINAL FORM → ARABIC LETTER DAD, ARABIC LETTER KHAH, ARABIC
LETTER MEEM #
+
+FD2C ; 0636 0631 ; MA # ( ﴬ → ضر ) ARABIC LIGATURE DAD WITH REH
FINAL FORM → ARABIC LETTER DAD, ARABIC LETTER REH #
+FD10 ; 0636 0631 ; MA # ( ﴐ → ضر ) ARABIC LIGATURE DAD WITH REH
ISOLATED FORM → ARABIC LETTER DAD, ARABIC LETTER REH #
+
+FCB7 ; 0636 0645 ; MA # ( ﲷ → ضم ) ARABIC LIGATURE DAD WITH MEEM
INITIAL FORM → ARABIC LETTER DAD, ARABIC LETTER MEEM #
+FC25 ; 0636 0645 ; MA # ( ﰥ → ضم ) ARABIC LIGATURE DAD WITH MEEM
ISOLATED FORM → ARABIC LETTER DAD, ARABIC LETTER MEEM #
+
+FD23 ; 0636 0649 ; MA # ( ﴣ → ضى ) ARABIC LIGATURE DAD WITH ALEF
MAKSURA FINAL FORM → ARABIC LETTER DAD, ARABIC LETTER ALEF MAKSURA #
+FD07 ; 0636 0649 ; MA # ( ﴇ → ضى ) ARABIC LIGATURE DAD WITH ALEF
MAKSURA ISOLATED FORM → ARABIC LETTER DAD, ARABIC LETTER ALEF MAKSURA #
+FD24 ; 0636 0649 ; MA # ( ﴤ → ضى ) ARABIC LIGATURE DAD WITH YEH
FINAL FORM → ARABIC LETTER DAD, ARABIC LETTER ALEF MAKSURA # →ضي→
+FD08 ; 0636 0649 ; MA # ( ﴈ → ضى ) ARABIC LIGATURE DAD WITH YEH
ISOLATED FORM → ARABIC LETTER DAD, ARABIC LETTER ALEF MAKSURA # →ضي→
+
+102E8 ; 0637 ; MA #* ( 𐋨 → ط ) COPTIC EPACT DIGIT EIGHT →
ARABIC LETTER TAH #
+1EE08 ; 0637 ; MA # ( 𞸈 → ط ) ARABIC MATHEMATICAL TAH →
ARABIC LETTER TAH #
+1EE68 ; 0637 ; MA # ( 𞹨 → ط ) ARABIC MATHEMATICAL STRETCHED
TAH → ARABIC LETTER TAH #
+1EE88 ; 0637 ; MA # ( 𞺈 → ط ) ARABIC MATHEMATICAL LOOPED TAH
→ ARABIC LETTER TAH #
+1EEA8 ; 0637 ; MA # ( 𞺨 → ط ) ARABIC MATHEMATICAL
DOUBLE-STRUCK TAH → ARABIC LETTER TAH #
+FEC3 ; 0637 ; MA # ( ﻃ → ط ) ARABIC LETTER TAH INITIAL FORM → ARABIC
LETTER TAH #
+FEC4 ; 0637 ; MA # ( ﻄ → ط ) ARABIC LETTER TAH MEDIAL FORM → ARABIC
LETTER TAH #
+FEC2 ; 0637 ; MA # ( ﻂ → ط ) ARABIC LETTER TAH FINAL FORM → ARABIC
LETTER TAH #
+FEC1 ; 0637 ; MA # ( ﻁ → ط ) ARABIC LETTER TAH ISOLATED FORM →
ARABIC LETTER TAH #
+
+069F ; 0637 06DB ; MA # ( ڟ → طۛ ) ARABIC LETTER TAH WITH THREE
DOTS ABOVE → ARABIC LETTER TAH, ARABIC SMALL HIGH THREE DOTS #
+
+FCB8 ; 0637 062D ; MA # ( ﲸ → طح ) ARABIC LIGATURE TAH WITH HAH
INITIAL FORM → ARABIC LETTER TAH, ARABIC LETTER HAH #
+FC26 ; 0637 062D ; MA # ( ﰦ → طح ) ARABIC LIGATURE TAH WITH HAH
ISOLATED FORM → ARABIC LETTER TAH, ARABIC LETTER HAH #
+
+FD33 ; 0637 0645 ; MA # ( ﴳ → طم ) ARABIC LIGATURE TAH WITH MEEM
INITIAL FORM → ARABIC LETTER TAH, ARABIC LETTER MEEM #
+FD3A ; 0637 0645 ; MA # ( ﴺ → طم ) ARABIC LIGATURE TAH WITH MEEM
MEDIAL FORM → ARABIC LETTER TAH, ARABIC LETTER MEEM #
+FC27 ; 0637 0645 ; MA # ( ﰧ → طم ) ARABIC LIGATURE TAH WITH MEEM
ISOLATED FORM → ARABIC LETTER TAH, ARABIC LETTER MEEM #
+
+FD72 ; 0637 0645 062D ; MA # ( ﵲ → طمح ) ARABIC LIGATURE TAH
WITH MEEM WITH HAH INITIAL FORM → ARABIC LETTER TAH, ARABIC LETTER MEEM, ARABIC
LETTER HAH #
+FD71 ; 0637 0645 062D ; MA # ( ﵱ → طمح ) ARABIC LIGATURE TAH
WITH MEEM WITH HAH FINAL FORM → ARABIC LETTER TAH, ARABIC LETTER MEEM, ARABIC
LETTER HAH #
+
+FD73 ; 0637 0645 0645 ; MA # ( ﵳ → طمم ) ARABIC LIGATURE TAH
WITH MEEM WITH MEEM INITIAL FORM → ARABIC LETTER TAH, ARABIC LETTER MEEM,
ARABIC LETTER MEEM #
+
+FD74 ; 0637 0645 0649 ; MA # ( ﵴ → طمى ) ARABIC LIGATURE TAH
WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER TAH, ARABIC LETTER MEEM, ARABIC
LETTER ALEF MAKSURA # →طمي→
+
+FD11 ; 0637 0649 ; MA # ( ﴑ → طى ) ARABIC LIGATURE TAH WITH ALEF
MAKSURA FINAL FORM → ARABIC LETTER TAH, ARABIC LETTER ALEF MAKSURA #
+FCF5 ; 0637 0649 ; MA # ( ﳵ → طى ) ARABIC LIGATURE TAH WITH ALEF
MAKSURA ISOLATED FORM → ARABIC LETTER TAH, ARABIC LETTER ALEF MAKSURA #
+FD12 ; 0637 0649 ; MA # ( ﴒ → طى ) ARABIC LIGATURE TAH WITH YEH
FINAL FORM → ARABIC LETTER TAH, ARABIC LETTER ALEF MAKSURA # →طي→
+FCF6 ; 0637 0649 ; MA # ( ﳶ → طى ) ARABIC LIGATURE TAH WITH YEH
ISOLATED FORM → ARABIC LETTER TAH, ARABIC LETTER ALEF MAKSURA # →طي→
+
+1EE1A ; 0638 ; MA # ( 𞸚 → ظ ) ARABIC MATHEMATICAL ZAH →
ARABIC LETTER ZAH #
+1EE7A ; 0638 ; MA # ( 𞹺 → ظ ) ARABIC MATHEMATICAL STRETCHED
ZAH → ARABIC LETTER ZAH #
+1EE9A ; 0638 ; MA # ( 𞺚 → ظ ) ARABIC MATHEMATICAL LOOPED ZAH
→ ARABIC LETTER ZAH #
+1EEBA ; 0638 ; MA # ( 𞺺 → ظ ) ARABIC MATHEMATICAL
DOUBLE-STRUCK ZAH → ARABIC LETTER ZAH #
+FEC7 ; 0638 ; MA # ( ﻇ → ظ ) ARABIC LETTER ZAH INITIAL FORM → ARABIC
LETTER ZAH #
+FEC8 ; 0638 ; MA # ( ﻈ → ظ ) ARABIC LETTER ZAH MEDIAL FORM → ARABIC
LETTER ZAH #
+FEC6 ; 0638 ; MA # ( ﻆ → ظ ) ARABIC LETTER ZAH FINAL FORM → ARABIC
LETTER ZAH #
+FEC5 ; 0638 ; MA # ( ﻅ → ظ ) ARABIC LETTER ZAH ISOLATED FORM →
ARABIC LETTER ZAH #
+
+FCB9 ; 0638 0645 ; MA # ( ﲹ → ظم ) ARABIC LIGATURE ZAH WITH MEEM
INITIAL FORM → ARABIC LETTER ZAH, ARABIC LETTER MEEM #
+FD3B ; 0638 0645 ; MA # ( ﴻ → ظم ) ARABIC LIGATURE ZAH WITH MEEM
MEDIAL FORM → ARABIC LETTER ZAH, ARABIC LETTER MEEM #
+FC28 ; 0638 0645 ; MA # ( ﰨ → ظم ) ARABIC LIGATURE ZAH WITH MEEM
ISOLATED FORM → ARABIC LETTER ZAH, ARABIC LETTER MEEM #
+
+060F ; 0639 ; MA #* ( ؏ → ع ) ARABIC SIGN MISRA → ARABIC LETTER AIN
#
+1EE0F ; 0639 ; MA # ( 𞸏 → ع ) ARABIC MATHEMATICAL AIN →
ARABIC LETTER AIN #
+1EE2F ; 0639 ; MA # ( 𞸯 → ع ) ARABIC MATHEMATICAL INITIAL AIN
→ ARABIC LETTER AIN #
+1EE4F ; 0639 ; MA # ( 𞹏 → ع ) ARABIC MATHEMATICAL TAILED AIN
→ ARABIC LETTER AIN #
+1EE6F ; 0639 ; MA # ( 𞹯 → ع ) ARABIC MATHEMATICAL STRETCHED
AIN → ARABIC LETTER AIN #
+1EE8F ; 0639 ; MA # ( 𞺏 → ع ) ARABIC MATHEMATICAL LOOPED AIN
→ ARABIC LETTER AIN #
+1EEAF ; 0639 ; MA # ( 𞺯 → ع ) ARABIC MATHEMATICAL
DOUBLE-STRUCK AIN → ARABIC LETTER AIN #
+FECB ; 0639 ; MA # ( ﻋ → ع ) ARABIC LETTER AIN INITIAL FORM → ARABIC
LETTER AIN #
+FECC ; 0639 ; MA # ( ﻌ → ع ) ARABIC LETTER AIN MEDIAL FORM → ARABIC
LETTER AIN #
+FECA ; 0639 ; MA # ( ﻊ → ع ) ARABIC LETTER AIN FINAL FORM → ARABIC
LETTER AIN #
+FEC9 ; 0639 ; MA # ( ﻉ → ع ) ARABIC LETTER AIN ISOLATED FORM →
ARABIC LETTER AIN #
+
+FCBA ; 0639 062C ; MA # ( ﲺ → عج ) ARABIC LIGATURE AIN WITH JEEM
INITIAL FORM → ARABIC LETTER AIN, ARABIC LETTER JEEM #
+FC29 ; 0639 062C ; MA # ( ﰩ → عج ) ARABIC LIGATURE AIN WITH JEEM
ISOLATED FORM → ARABIC LETTER AIN, ARABIC LETTER JEEM #
+
+FDC4 ; 0639 062C 0645 ; MA # ( ﷄ → عجم ) ARABIC LIGATURE AIN
WITH JEEM WITH MEEM INITIAL FORM → ARABIC LETTER AIN, ARABIC LETTER JEEM,
ARABIC LETTER MEEM #
+FD75 ; 0639 062C 0645 ; MA # ( ﵵ → عجم ) ARABIC LIGATURE AIN
WITH JEEM WITH MEEM FINAL FORM → ARABIC LETTER AIN, ARABIC LETTER JEEM, ARABIC
LETTER MEEM #
+
+FDF7 ; 0639 0644 0649 006F ; MA # ( ﷷ → علىo ) ARABIC LIGATURE
ALAYHE ISOLATED FORM → ARABIC LETTER AIN, ARABIC LETTER LAM, ARABIC LETTER ALEF
MAKSURA, LATIN SMALL LETTER O # →عليه→
+
+FCBB ; 0639 0645 ; MA # ( ﲻ → عم ) ARABIC LIGATURE AIN WITH MEEM
INITIAL FORM → ARABIC LETTER AIN, ARABIC LETTER MEEM #
+FC2A ; 0639 0645 ; MA # ( ﰪ → عم ) ARABIC LIGATURE AIN WITH MEEM
ISOLATED FORM → ARABIC LETTER AIN, ARABIC LETTER MEEM #
+
+FD77 ; 0639 0645 0645 ; MA # ( ﵷ → عمم ) ARABIC LIGATURE AIN
WITH MEEM WITH MEEM INITIAL FORM → ARABIC LETTER AIN, ARABIC LETTER MEEM,
ARABIC LETTER MEEM #
+FD76 ; 0639 0645 0645 ; MA # ( ﵶ → عمم ) ARABIC LIGATURE AIN
WITH MEEM WITH MEEM FINAL FORM → ARABIC LETTER AIN, ARABIC LETTER MEEM, ARABIC
LETTER MEEM #
+
+FD78 ; 0639 0645 0649 ; MA # ( ﵸ → عمى ) ARABIC LIGATURE AIN
WITH MEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER AIN, ARABIC LETTER MEEM,
ARABIC LETTER ALEF MAKSURA #
+FDB6 ; 0639 0645 0649 ; MA # ( ﶶ → عمى ) ARABIC LIGATURE AIN
WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER AIN, ARABIC LETTER MEEM, ARABIC
LETTER ALEF MAKSURA # →عمي→
+
+FD13 ; 0639 0649 ; MA # ( ﴓ → عى ) ARABIC LIGATURE AIN WITH ALEF
MAKSURA FINAL FORM → ARABIC LETTER AIN, ARABIC LETTER ALEF MAKSURA #
+FCF7 ; 0639 0649 ; MA # ( ﳷ → عى ) ARABIC LIGATURE AIN WITH ALEF
MAKSURA ISOLATED FORM → ARABIC LETTER AIN, ARABIC LETTER ALEF MAKSURA #
+FD14 ; 0639 0649 ; MA # ( ﴔ → عى ) ARABIC LIGATURE AIN WITH YEH
FINAL FORM → ARABIC LETTER AIN, ARABIC LETTER ALEF MAKSURA # →عي→
+FCF8 ; 0639 0649 ; MA # ( ﳸ → عى ) ARABIC LIGATURE AIN WITH YEH
ISOLATED FORM → ARABIC LETTER AIN, ARABIC LETTER ALEF MAKSURA # →عي→
+
+1EE1B ; 063A ; MA # ( 𞸛 → غ ) ARABIC MATHEMATICAL GHAIN →
ARABIC LETTER GHAIN #
+1EE3B ; 063A ; MA # ( 𞸻 → غ ) ARABIC MATHEMATICAL INITIAL
GHAIN → ARABIC LETTER GHAIN #
+1EE5B ; 063A ; MA # ( 𞹛 → غ ) ARABIC MATHEMATICAL TAILED
GHAIN → ARABIC LETTER GHAIN #
+1EE7B ; 063A ; MA # ( 𞹻 → غ ) ARABIC MATHEMATICAL STRETCHED
GHAIN → ARABIC LETTER GHAIN #
+1EE9B ; 063A ; MA # ( 𞺛 → غ ) ARABIC MATHEMATICAL LOOPED
GHAIN → ARABIC LETTER GHAIN #
+1EEBB ; 063A ; MA # ( 𞺻 → غ ) ARABIC MATHEMATICAL
DOUBLE-STRUCK GHAIN → ARABIC LETTER GHAIN #
+FECF ; 063A ; MA # ( ﻏ → غ ) ARABIC LETTER GHAIN INITIAL FORM →
ARABIC LETTER GHAIN #
+FED0 ; 063A ; MA # ( ﻐ → غ ) ARABIC LETTER GHAIN MEDIAL FORM →
ARABIC LETTER GHAIN #
+FECE ; 063A ; MA # ( ﻎ → غ ) ARABIC LETTER GHAIN FINAL FORM → ARABIC
LETTER GHAIN #
+FECD ; 063A ; MA # ( ﻍ → غ ) ARABIC LETTER GHAIN ISOLATED FORM →
ARABIC LETTER GHAIN #
+
+FCBC ; 063A 062C ; MA # ( ﲼ → غج ) ARABIC LIGATURE GHAIN WITH
JEEM INITIAL FORM → ARABIC LETTER GHAIN, ARABIC LETTER JEEM #
+FC2B ; 063A 062C ; MA # ( ﰫ → غج ) ARABIC LIGATURE GHAIN WITH
JEEM ISOLATED FORM → ARABIC LETTER GHAIN, ARABIC LETTER JEEM #
+
+FCBD ; 063A 0645 ; MA # ( ﲽ → غم ) ARABIC LIGATURE GHAIN WITH
MEEM INITIAL FORM → ARABIC LETTER GHAIN, ARABIC LETTER MEEM #
+FC2C ; 063A 0645 ; MA # ( ﰬ → غم ) ARABIC LIGATURE GHAIN WITH
MEEM ISOLATED FORM → ARABIC LETTER GHAIN, ARABIC LETTER MEEM #
+
+FD79 ; 063A 0645 0645 ; MA # ( ﵹ → غمم ) ARABIC LIGATURE GHAIN
WITH MEEM WITH MEEM FINAL FORM → ARABIC LETTER GHAIN, ARABIC LETTER MEEM,
ARABIC LETTER MEEM #
+
+FD7B ; 063A 0645 0649 ; MA # ( ﵻ → غمى ) ARABIC LIGATURE GHAIN
WITH MEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER GHAIN, ARABIC LETTER
MEEM, ARABIC LETTER ALEF MAKSURA #
+FD7A ; 063A 0645 0649 ; MA # ( ﵺ → غمى ) ARABIC LIGATURE GHAIN
WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER GHAIN, ARABIC LETTER MEEM, ARABIC
LETTER ALEF MAKSURA # →غمي→
+
+FD15 ; 063A 0649 ; MA # ( ﴕ → غى ) ARABIC LIGATURE GHAIN WITH
ALEF MAKSURA FINAL FORM → ARABIC LETTER GHAIN, ARABIC LETTER ALEF MAKSURA #
+FCF9 ; 063A 0649 ; MA # ( ﳹ → غى ) ARABIC LIGATURE GHAIN WITH
ALEF MAKSURA ISOLATED FORM → ARABIC LETTER GHAIN, ARABIC LETTER ALEF MAKSURA
#
+FD16 ; 063A 0649 ; MA # ( ﴖ → غى ) ARABIC LIGATURE GHAIN WITH YEH
FINAL FORM → ARABIC LETTER GHAIN, ARABIC LETTER ALEF MAKSURA # →غي→
+FCFA ; 063A 0649 ; MA # ( ﳺ → غى ) ARABIC LIGATURE GHAIN WITH YEH
ISOLATED FORM → ARABIC LETTER GHAIN, ARABIC LETTER ALEF MAKSURA # →غي→
+
+1EE10 ; 0641 ; MA # ( 𞸐 → ف ) ARABIC MATHEMATICAL FEH →
ARABIC LETTER FEH #
+1EE30 ; 0641 ; MA # ( 𞸰 → ف ) ARABIC MATHEMATICAL INITIAL FEH
→ ARABIC LETTER FEH #
+1EE70 ; 0641 ; MA # ( 𞹰 → ف ) ARABIC MATHEMATICAL STRETCHED
FEH → ARABIC LETTER FEH #
+1EE90 ; 0641 ; MA # ( 𞺐 → ف ) ARABIC MATHEMATICAL LOOPED FEH
→ ARABIC LETTER FEH #
+1EEB0 ; 0641 ; MA # ( 𞺰 → ف ) ARABIC MATHEMATICAL
DOUBLE-STRUCK FEH → ARABIC LETTER FEH #
+FED3 ; 0641 ; MA # ( ﻓ → ف ) ARABIC LETTER FEH INITIAL FORM → ARABIC
LETTER FEH #
+FED4 ; 0641 ; MA # ( ﻔ → ف ) ARABIC LETTER FEH MEDIAL FORM → ARABIC
LETTER FEH #
+FED2 ; 0641 ; MA # ( ﻒ → ف ) ARABIC LETTER FEH FINAL FORM → ARABIC
LETTER FEH #
+FED1 ; 0641 ; MA # ( ﻑ → ف ) ARABIC LETTER FEH ISOLATED FORM →
ARABIC LETTER FEH #
+06A7 ; 0641 ; MA # ( ڧ → ف ) ARABIC LETTER QAF WITH DOT ABOVE →
ARABIC LETTER FEH #
+
+FCBE ; 0641 062C ; MA # ( ﲾ → فج ) ARABIC LIGATURE FEH WITH JEEM
INITIAL FORM → ARABIC LETTER FEH, ARABIC LETTER JEEM #
+FC2D ; 0641 062C ; MA # ( ﰭ → فج ) ARABIC LIGATURE FEH WITH JEEM
ISOLATED FORM → ARABIC LETTER FEH, ARABIC LETTER JEEM #
+
+FCBF ; 0641 062D ; MA # ( ﲿ → فح ) ARABIC LIGATURE FEH WITH HAH
INITIAL FORM → ARABIC LETTER FEH, ARABIC LETTER HAH #
+FC2E ; 0641 062D ; MA # ( ﰮ → فح ) ARABIC LIGATURE FEH WITH HAH
ISOLATED FORM → ARABIC LETTER FEH, ARABIC LETTER HAH #
+
+FCC0 ; 0641 062E ; MA # ( ﳀ → فخ ) ARABIC LIGATURE FEH WITH KHAH
INITIAL FORM → ARABIC LETTER FEH, ARABIC LETTER KHAH #
+FC2F ; 0641 062E ; MA # ( ﰯ → فخ ) ARABIC LIGATURE FEH WITH KHAH
ISOLATED FORM → ARABIC LETTER FEH, ARABIC LETTER KHAH #
+
+FD7D ; 0641 062E 0645 ; MA # ( ﵽ → فخم ) ARABIC LIGATURE FEH
WITH KHAH WITH MEEM INITIAL FORM → ARABIC LETTER FEH, ARABIC LETTER KHAH,
ARABIC LETTER MEEM #
+FD7C ; 0641 062E 0645 ; MA # ( ﵼ → فخم ) ARABIC LIGATURE FEH
WITH KHAH WITH MEEM FINAL FORM → ARABIC LETTER FEH, ARABIC LETTER KHAH, ARABIC
LETTER MEEM #
+
+FCC1 ; 0641 0645 ; MA # ( ﳁ → فم ) ARABIC LIGATURE FEH WITH MEEM
INITIAL FORM → ARABIC LETTER FEH, ARABIC LETTER MEEM #
+FC30 ; 0641 0645 ; MA # ( ﰰ → فم ) ARABIC LIGATURE FEH WITH MEEM
ISOLATED FORM → ARABIC LETTER FEH, ARABIC LETTER MEEM #
+
+FDC1 ; 0641 0645 0649 ; MA # ( ﷁ → فمى ) ARABIC LIGATURE FEH
WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER FEH, ARABIC LETTER MEEM, ARABIC
LETTER ALEF MAKSURA # →فمي→
+
+FC7C ; 0641 0649 ; MA # ( ﱼ → فى ) ARABIC LIGATURE FEH WITH ALEF
MAKSURA FINAL FORM → ARABIC LETTER FEH, ARABIC LETTER ALEF MAKSURA #
+FC31 ; 0641 0649 ; MA # ( ﰱ → فى ) ARABIC LIGATURE FEH WITH ALEF
MAKSURA ISOLATED FORM → ARABIC LETTER FEH, ARABIC LETTER ALEF MAKSURA #
+FC7D ; 0641 0649 ; MA # ( ﱽ → فى ) ARABIC LIGATURE FEH WITH YEH
FINAL FORM → ARABIC LETTER FEH, ARABIC LETTER ALEF MAKSURA # →في→
+FC32 ; 0641 0649 ; MA # ( ﰲ → فى ) ARABIC LIGATURE FEH WITH YEH
ISOLATED FORM → ARABIC LETTER FEH, ARABIC LETTER ALEF MAKSURA # →في→
+
+1EE1E ; 06A1 ; MA # ( 𞸞 → ڡ ) ARABIC MATHEMATICAL DOTLESS FEH
→ ARABIC LETTER DOTLESS FEH #
+1EE7E ; 06A1 ; MA # ( 𞹾 → ڡ ) ARABIC MATHEMATICAL STRETCHED
DOTLESS FEH → ARABIC LETTER DOTLESS FEH #
+08BB ; 06A1 ; MA # ( ࢻ → ڡ ) ARABIC LETTER AFRICAN FEH → ARABIC
LETTER DOTLESS FEH #
+066F ; 06A1 ; MA # ( ٯ → ڡ ) ARABIC LETTER DOTLESS QAF → ARABIC
LETTER DOTLESS FEH #
+1EE1F ; 06A1 ; MA # ( 𞸟 → ڡ ) ARABIC MATHEMATICAL DOTLESS QAF
→ ARABIC LETTER DOTLESS FEH # →ٯ→
+1EE5F ; 06A1 ; MA # ( 𞹟 → ڡ ) ARABIC MATHEMATICAL TAILED
DOTLESS QAF → ARABIC LETTER DOTLESS FEH # →ٯ→
+08BC ; 06A1 ; MA # ( ࢼ → ڡ ) ARABIC LETTER AFRICAN QAF → ARABIC
LETTER DOTLESS FEH # →ٯ→
+
+06A4 ; 06A1 06DB ; MA # ( ڤ → ڡۛ ) ARABIC LETTER VEH → ARABIC
LETTER DOTLESS FEH, ARABIC SMALL HIGH THREE DOTS #
+FB6C ; 06A1 06DB ; MA # ( ﭬ → ڡۛ ) ARABIC LETTER VEH INITIAL FORM
→ ARABIC LETTER DOTLESS FEH, ARABIC SMALL HIGH THREE DOTS # →ڤ→
+FB6D ; 06A1 06DB ; MA # ( ﭭ → ڡۛ ) ARABIC LETTER VEH MEDIAL FORM
→ ARABIC LETTER DOTLESS FEH, ARABIC SMALL HIGH THREE DOTS # →ڤ→
+FB6B ; 06A1 06DB ; MA # ( ﭫ → ڡۛ ) ARABIC LETTER VEH FINAL FORM →
ARABIC LETTER DOTLESS FEH, ARABIC SMALL HIGH THREE DOTS # →ڤ→
+FB6A ; 06A1 06DB ; MA # ( ﭪ → ڡۛ ) ARABIC LETTER VEH ISOLATED
FORM → ARABIC LETTER DOTLESS FEH, ARABIC SMALL HIGH THREE DOTS # →ڤ→
+06A8 ; 06A1 06DB ; MA # ( ڨ → ڡۛ ) ARABIC LETTER QAF WITH THREE
DOTS ABOVE → ARABIC LETTER DOTLESS FEH, ARABIC SMALL HIGH THREE DOTS #
→ڤ→
+
+08A4 ; 06A2 06DB ; MA # ( ࢤ → ڢۛ ) ARABIC LETTER FEH WITH DOT
BELOW AND THREE DOTS ABOVE → ARABIC LETTER FEH WITH DOT MOVED BELOW, ARABIC
SMALL HIGH THREE DOTS #
+
+FB70 ; 06A6 ; MA # ( ﭰ → ڦ ) ARABIC LETTER PEHEH INITIAL FORM →
ARABIC LETTER PEHEH #
+FB71 ; 06A6 ; MA # ( ﭱ → ڦ ) ARABIC LETTER PEHEH MEDIAL FORM →
ARABIC LETTER PEHEH #
+FB6F ; 06A6 ; MA # ( ﭯ → ڦ ) ARABIC LETTER PEHEH FINAL FORM → ARABIC
LETTER PEHEH #
+FB6E ; 06A6 ; MA # ( ﭮ → ڦ ) ARABIC LETTER PEHEH ISOLATED FORM →
ARABIC LETTER PEHEH #
+
+1EE12 ; 0642 ; MA # ( 𞸒 → ق ) ARABIC MATHEMATICAL QAF →
ARABIC LETTER QAF #
+1EE32 ; 0642 ; MA # ( 𞸲 → ق ) ARABIC MATHEMATICAL INITIAL QAF
→ ARABIC LETTER QAF #
+1EE52 ; 0642 ; MA # ( 𞹒 → ق ) ARABIC MATHEMATICAL TAILED QAF
→ ARABIC LETTER QAF #
+1EE72 ; 0642 ; MA # ( 𞹲 → ق ) ARABIC MATHEMATICAL STRETCHED
QAF → ARABIC LETTER QAF #
+1EE92 ; 0642 ; MA # ( 𞺒 → ق ) ARABIC MATHEMATICAL LOOPED QAF
→ ARABIC LETTER QAF #
+1EEB2 ; 0642 ; MA # ( 𞺲 → ق ) ARABIC MATHEMATICAL
DOUBLE-STRUCK QAF → ARABIC LETTER QAF #
+FED7 ; 0642 ; MA # ( ﻗ → ق ) ARABIC LETTER QAF INITIAL FORM → ARABIC
LETTER QAF #
+FED8 ; 0642 ; MA # ( ﻘ → ق ) ARABIC LETTER QAF MEDIAL FORM → ARABIC
LETTER QAF #
+FED6 ; 0642 ; MA # ( ﻖ → ق ) ARABIC LETTER QAF FINAL FORM → ARABIC
LETTER QAF #
+FED5 ; 0642 ; MA # ( ﻕ → ق ) ARABIC LETTER QAF ISOLATED FORM →
ARABIC LETTER QAF #
+
+FCC2 ; 0642 062D ; MA # ( ﳂ → قح ) ARABIC LIGATURE QAF WITH HAH
INITIAL FORM → ARABIC LETTER QAF, ARABIC LETTER HAH #
+FC33 ; 0642 062D ; MA # ( ﰳ → قح ) ARABIC LIGATURE QAF WITH HAH
ISOLATED FORM → ARABIC LETTER QAF, ARABIC LETTER HAH #
+
+FDF1 ; 0642 0644 0649 ; MA # ( ﷱ → قلى ) ARABIC LIGATURE QALA
USED AS KORANIC STOP SIGN ISOLATED FORM → ARABIC LETTER QAF, ARABIC LETTER LAM,
ARABIC LETTER ALEF MAKSURA # →قلے→
+
+FCC3 ; 0642 0645 ; MA # ( ﳃ → قم ) ARABIC LIGATURE QAF WITH MEEM
INITIAL FORM → ARABIC LETTER QAF, ARABIC LETTER MEEM #
+FC34 ; 0642 0645 ; MA # ( ﰴ → قم ) ARABIC LIGATURE QAF WITH MEEM
ISOLATED FORM → ARABIC LETTER QAF, ARABIC LETTER MEEM #
+
+FDB4 ; 0642 0645 062D ; MA # ( ﶴ → قمح ) ARABIC LIGATURE QAF
WITH MEEM WITH HAH INITIAL FORM → ARABIC LETTER QAF, ARABIC LETTER MEEM, ARABIC
LETTER HAH #
+FD7E ; 0642 0645 062D ; MA # ( ﵾ → قمح ) ARABIC LIGATURE QAF
WITH MEEM WITH HAH FINAL FORM → ARABIC LETTER QAF, ARABIC LETTER MEEM, ARABIC
LETTER HAH #
+
+FD7F ; 0642 0645 0645 ; MA # ( ﵿ → قمم ) ARABIC LIGATURE QAF
WITH MEEM WITH MEEM FINAL FORM → ARABIC LETTER QAF, ARABIC LETTER MEEM, ARABIC
LETTER MEEM #
+
+FDB2 ; 0642 0645 0649 ; MA # ( ﶲ → قمى ) ARABIC LIGATURE QAF
WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER QAF, ARABIC LETTER MEEM, ARABIC
LETTER ALEF MAKSURA # →قمي→
+
+FC7E ; 0642 0649 ; MA # ( ﱾ → قى ) ARABIC LIGATURE QAF WITH ALEF
MAKSURA FINAL FORM → ARABIC LETTER QAF, ARABIC LETTER ALEF MAKSURA #
+FC35 ; 0642 0649 ; MA # ( ﰵ → قى ) ARABIC LIGATURE QAF WITH ALEF
MAKSURA ISOLATED FORM → ARABIC LETTER QAF, ARABIC LETTER ALEF MAKSURA #
+FC7F ; 0642 0649 ; MA # ( ﱿ → قى ) ARABIC LIGATURE QAF WITH YEH
FINAL FORM → ARABIC LETTER QAF, ARABIC LETTER ALEF MAKSURA # →قي→
+FC36 ; 0642 0649 ; MA # ( ﰶ → قى ) ARABIC LIGATURE QAF WITH YEH
ISOLATED FORM → ARABIC LETTER QAF, ARABIC LETTER ALEF MAKSURA # →قي→
+
+1EE0A ; 0643 ; MA # ( 𞸊 → ك ) ARABIC MATHEMATICAL KAF →
ARABIC LETTER KAF #
+1EE2A ; 0643 ; MA # ( 𞸪 → ك ) ARABIC MATHEMATICAL INITIAL KAF
→ ARABIC LETTER KAF #
+1EE6A ; 0643 ; MA # ( 𞹪 → ك ) ARABIC MATHEMATICAL STRETCHED
KAF → ARABIC LETTER KAF #
+FEDB ; 0643 ; MA # ( ﻛ → ك ) ARABIC LETTER KAF INITIAL FORM → ARABIC
LETTER KAF #
+FEDC ; 0643 ; MA # ( ﻜ → ك ) ARABIC LETTER KAF MEDIAL FORM → ARABIC
LETTER KAF #
+FEDA ; 0643 ; MA # ( ﻚ → ك ) ARABIC LETTER KAF FINAL FORM → ARABIC
LETTER KAF #
+FED9 ; 0643 ; MA # ( ﻙ → ك ) ARABIC LETTER KAF ISOLATED FORM →
ARABIC LETTER KAF #
+06A9 ; 0643 ; MA # ( ک → ك ) ARABIC LETTER KEHEH → ARABIC LETTER KAF
#
+FB90 ; 0643 ; MA # ( ﮐ → ك ) ARABIC LETTER KEHEH INITIAL FORM →
ARABIC LETTER KAF # →ک→
+FB91 ; 0643 ; MA # ( ﮑ → ك ) ARABIC LETTER KEHEH MEDIAL FORM →
ARABIC LETTER KAF # →ک→
+FB8F ; 0643 ; MA # ( ﮏ → ك ) ARABIC LETTER KEHEH FINAL FORM → ARABIC
LETTER KAF # →ک→
+FB8E ; 0643 ; MA # ( ﮎ → ك ) ARABIC LETTER KEHEH ISOLATED FORM →
ARABIC LETTER KAF # →ک→
+06AA ; 0643 ; MA # ( ڪ → ك ) ARABIC LETTER SWASH KAF → ARABIC LETTER
KAF #
+
+06AD ; 0643 06DB ; MA # ( ڭ → كۛ ) ARABIC LETTER NG → ARABIC
LETTER KAF, ARABIC SMALL HIGH THREE DOTS #
+FBD5 ; 0643 06DB ; MA # ( ﯕ → كۛ ) ARABIC LETTER NG INITIAL FORM
→ ARABIC LETTER KAF, ARABIC SMALL HIGH THREE DOTS # →ڭ→
+FBD6 ; 0643 06DB ; MA # ( ﯖ → كۛ ) ARABIC LETTER NG MEDIAL FORM →
ARABIC LETTER KAF, ARABIC SMALL HIGH THREE DOTS # →ڭ→
+FBD4 ; 0643 06DB ; MA # ( ﯔ → كۛ ) ARABIC LETTER NG FINAL FORM →
ARABIC LETTER KAF, ARABIC SMALL HIGH THREE DOTS # →ڭ→
+FBD3 ; 0643 06DB ; MA # ( ﯓ → كۛ ) ARABIC LETTER NG ISOLATED FORM
→ ARABIC LETTER KAF, ARABIC SMALL HIGH THREE DOTS # →ڭ→
+0763 ; 0643 06DB ; MA # ( ݣ → كۛ ) ARABIC LETTER KEHEH WITH THREE
DOTS ABOVE → ARABIC LETTER KAF, ARABIC SMALL HIGH THREE DOTS # →ڭ→
+
+FC80 ; 0643 006C ; MA # ( ﲀ → كl ) ARABIC LIGATURE KAF WITH ALEF
FINAL FORM → ARABIC LETTER KAF, LATIN SMALL LETTER L # →كا→
+FC37 ; 0643 006C ; MA # ( ﰷ → كl ) ARABIC LIGATURE KAF WITH ALEF
ISOLATED FORM → ARABIC LETTER KAF, LATIN SMALL LETTER L # →كا→
+
+FCC4 ; 0643 062C ; MA # ( ﳄ → كج ) ARABIC LIGATURE KAF WITH JEEM
INITIAL FORM → ARABIC LETTER KAF, ARABIC LETTER JEEM #
+FC38 ; 0643 062C ; MA # ( ﰸ → كج ) ARABIC LIGATURE KAF WITH JEEM
ISOLATED FORM → ARABIC LETTER KAF, ARABIC LETTER JEEM #
+
+FCC5 ; 0643 062D ; MA # ( ﳅ → كح ) ARABIC LIGATURE KAF WITH HAH
INITIAL FORM → ARABIC LETTER KAF, ARABIC LETTER HAH #
+FC39 ; 0643 062D ; MA # ( ﰹ → كح ) ARABIC LIGATURE KAF WITH HAH
ISOLATED FORM → ARABIC LETTER KAF, ARABIC LETTER HAH #
+
+FCC6 ; 0643 062E ; MA # ( ﳆ → كخ ) ARABIC LIGATURE KAF WITH KHAH
INITIAL FORM → ARABIC LETTER KAF, ARABIC LETTER KHAH #
+FC3A ; 0643 062E ; MA # ( ﰺ → كخ ) ARABIC LIGATURE KAF WITH KHAH
ISOLATED FORM → ARABIC LETTER KAF, ARABIC LETTER KHAH #
+
+FCC7 ; 0643 0644 ; MA # ( ﳇ → كل ) ARABIC LIGATURE KAF WITH LAM
INITIAL FORM → ARABIC LETTER KAF, ARABIC LETTER LAM #
+FCEB ; 0643 0644 ; MA # ( ﳫ → كل ) ARABIC LIGATURE KAF WITH LAM
MEDIAL FORM → ARABIC LETTER KAF, ARABIC LETTER LAM #
+FC81 ; 0643 0644 ; MA # ( ﲁ → كل ) ARABIC LIGATURE KAF WITH LAM
FINAL FORM → ARABIC LETTER KAF, ARABIC LETTER LAM #
+FC3B ; 0643 0644 ; MA # ( ﰻ → كل ) ARABIC LIGATURE KAF WITH LAM
ISOLATED FORM → ARABIC LETTER KAF, ARABIC LETTER LAM #
+
+FCC8 ; 0643 0645 ; MA # ( ﳈ → كم ) ARABIC LIGATURE KAF WITH MEEM
INITIAL FORM → ARABIC LETTER KAF, ARABIC LETTER MEEM #
+FCEC ; 0643 0645 ; MA # ( ﳬ → كم ) ARABIC LIGATURE KAF WITH MEEM
MEDIAL FORM → ARABIC LETTER KAF, ARABIC LETTER MEEM #
+FC82 ; 0643 0645 ; MA # ( ﲂ → كم ) ARABIC LIGATURE KAF WITH MEEM
FINAL FORM → ARABIC LETTER KAF, ARABIC LETTER MEEM #
+FC3C ; 0643 0645 ; MA # ( ﰼ → كم ) ARABIC LIGATURE KAF WITH MEEM
ISOLATED FORM → ARABIC LETTER KAF, ARABIC LETTER MEEM #
+
+FDC3 ; 0643 0645 0645 ; MA # ( ﷃ → كمم ) ARABIC LIGATURE KAF
WITH MEEM WITH MEEM INITIAL FORM → ARABIC LETTER KAF, ARABIC LETTER MEEM,
ARABIC LETTER MEEM #
+FDBB ; 0643 0645 0645 ; MA # ( ﶻ → كمم ) ARABIC LIGATURE KAF
WITH MEEM WITH MEEM FINAL FORM → ARABIC LETTER KAF, ARABIC LETTER MEEM, ARABIC
LETTER MEEM #
+
+FDB7 ; 0643 0645 0649 ; MA # ( ﶷ → كمى ) ARABIC LIGATURE KAF
WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER KAF, ARABIC LETTER MEEM, ARABIC
LETTER ALEF MAKSURA # →كمي→
+
+FC83 ; 0643 0649 ; MA # ( ﲃ → كى ) ARABIC LIGATURE KAF WITH ALEF
MAKSURA FINAL FORM → ARABIC LETTER KAF, ARABIC LETTER ALEF MAKSURA #
+FC3D ; 0643 0649 ; MA # ( ﰽ → كى ) ARABIC LIGATURE KAF WITH ALEF
MAKSURA ISOLATED FORM → ARABIC LETTER KAF, ARABIC LETTER ALEF MAKSURA #
+FC84 ; 0643 0649 ; MA # ( ﲄ → كى ) ARABIC LIGATURE KAF WITH YEH
FINAL FORM → ARABIC LETTER KAF, ARABIC LETTER ALEF MAKSURA # →كي→
+FC3E ; 0643 0649 ; MA # ( ﰾ → كى ) ARABIC LIGATURE KAF WITH YEH
ISOLATED FORM → ARABIC LETTER KAF, ARABIC LETTER ALEF MAKSURA # →كي→
+
+0762 ; 06AC ; MA # ( ݢ → ڬ ) ARABIC LETTER KEHEH WITH DOT ABOVE →
ARABIC LETTER KAF WITH DOT ABOVE #
+
+FB94 ; 06AF ; MA # ( ﮔ → گ ) ARABIC LETTER GAF INITIAL FORM → ARABIC
LETTER GAF #
+FB95 ; 06AF ; MA # ( ﮕ → گ ) ARABIC LETTER GAF MEDIAL FORM → ARABIC
LETTER GAF #
+FB93 ; 06AF ; MA # ( ﮓ → گ ) ARABIC LETTER GAF FINAL FORM → ARABIC
LETTER GAF #
+FB92 ; 06AF ; MA # ( ﮒ → گ ) ARABIC LETTER GAF ISOLATED FORM →
ARABIC LETTER GAF #
+08B0 ; 06AF ; MA # ( ࢰ → گ ) ARABIC LETTER GAF WITH INVERTED STROKE
→ ARABIC LETTER GAF #
+
+06B4 ; 06AF 06DB ; MA # ( ڴ → گۛ ) ARABIC LETTER GAF WITH THREE
DOTS ABOVE → ARABIC LETTER GAF, ARABIC SMALL HIGH THREE DOTS #
+
+FB9C ; 06B1 ; MA # ( ﮜ → ڱ ) ARABIC LETTER NGOEH INITIAL FORM →
ARABIC LETTER NGOEH #
+FB9D ; 06B1 ; MA # ( ﮝ → ڱ ) ARABIC LETTER NGOEH MEDIAL FORM →
ARABIC LETTER NGOEH #
+FB9B ; 06B1 ; MA # ( ﮛ → ڱ ) ARABIC LETTER NGOEH FINAL FORM → ARABIC
LETTER NGOEH #
+FB9A ; 06B1 ; MA # ( ﮚ → ڱ ) ARABIC LETTER NGOEH ISOLATED FORM →
ARABIC LETTER NGOEH #
+
+FB98 ; 06B3 ; MA # ( ﮘ → ڳ ) ARABIC LETTER GUEH INITIAL FORM →
ARABIC LETTER GUEH #
+FB99 ; 06B3 ; MA # ( ﮙ → ڳ ) ARABIC LETTER GUEH MEDIAL FORM → ARABIC
LETTER GUEH #
+FB97 ; 06B3 ; MA # ( ﮗ → ڳ ) ARABIC LETTER GUEH FINAL FORM → ARABIC
LETTER GUEH #
+FB96 ; 06B3 ; MA # ( ﮖ → ڳ ) ARABIC LETTER GUEH ISOLATED FORM →
ARABIC LETTER GUEH #
+
+1EE0B ; 0644 ; MA # ( 𞸋 → ل ) ARABIC MATHEMATICAL LAM →
ARABIC LETTER LAM #
+1EE2B ; 0644 ; MA # ( 𞸫 → ل ) ARABIC MATHEMATICAL INITIAL LAM
→ ARABIC LETTER LAM #
+1EE4B ; 0644 ; MA # ( 𞹋 → ل ) ARABIC MATHEMATICAL TAILED LAM
→ ARABIC LETTER LAM #
+1EE8B ; 0644 ; MA # ( 𞺋 → ل ) ARABIC MATHEMATICAL LOOPED LAM
→ ARABIC LETTER LAM #
+1EEAB ; 0644 ; MA # ( 𞺫 → ل ) ARABIC MATHEMATICAL
DOUBLE-STRUCK LAM → ARABIC LETTER LAM #
+FEDF ; 0644 ; MA # ( ﻟ → ل ) ARABIC LETTER LAM INITIAL FORM → ARABIC
LETTER LAM #
+FEE0 ; 0644 ; MA # ( ﻠ → ل ) ARABIC LETTER LAM MEDIAL FORM → ARABIC
LETTER LAM #
+FEDE ; 0644 ; MA # ( ﻞ → ل ) ARABIC LETTER LAM FINAL FORM → ARABIC
LETTER LAM #
+FEDD ; 0644 ; MA # ( ﻝ → ل ) ARABIC LETTER LAM ISOLATED FORM →
ARABIC LETTER LAM #
+
+06B7 ; 0644 06DB ; MA # ( ڷ → لۛ ) ARABIC LETTER LAM WITH THREE
DOTS ABOVE → ARABIC LETTER LAM, ARABIC SMALL HIGH THREE DOTS #
+
+06B5 ; 0644 0306 ; MA # ( ڵ → ل̆ ) ARABIC LETTER LAM WITH SMALL V
→ ARABIC LETTER LAM, COMBINING BREVE # →لٚ→
+
+FEFC ; 0644 006C ; MA # ( ﻼ → لl ) ARABIC LIGATURE LAM WITH ALEF
FINAL FORM → ARABIC LETTER LAM, LATIN SMALL LETTER L # →لا→
+FEFB ; 0644 006C ; MA # ( ﻻ → لl ) ARABIC LIGATURE LAM WITH ALEF
ISOLATED FORM → ARABIC LETTER LAM, LATIN SMALL LETTER L # →لا→
+
+FEFA ; 0644 006C 0655 ; MA # ( ﻺ → لlٕ ) ARABIC LIGATURE LAM
WITH ALEF WITH HAMZA BELOW FINAL FORM → ARABIC LETTER LAM, LATIN SMALL LETTER
L, ARABIC HAMZA BELOW # →لإ→
+FEF9 ; 0644 006C 0655 ; MA # ( ﻹ → لlٕ ) ARABIC LIGATURE LAM
WITH ALEF WITH HAMZA BELOW ISOLATED FORM → ARABIC LETTER LAM, LATIN SMALL
LETTER L, ARABIC HAMZA BELOW # →لإ→
+
+FEF8 ; 0644 006C 0674 ; MA # ( ﻸ → لlٴ ) ARABIC LIGATURE LAM
WITH ALEF WITH HAMZA ABOVE FINAL FORM → ARABIC LETTER LAM, LATIN SMALL LETTER
L, ARABIC LETTER HIGH HAMZA # →لأ→
+FEF7 ; 0644 006C 0674 ; MA # ( ﻷ → لlٴ ) ARABIC LIGATURE LAM
WITH ALEF WITH HAMZA ABOVE ISOLATED FORM → ARABIC LETTER LAM, LATIN SMALL
LETTER L, ARABIC LETTER HIGH HAMZA # →لأ→
+
+FCCD ; 0644 006F ; MA # ( ﳍ → لo ) ARABIC LIGATURE LAM WITH HEH
INITIAL FORM → ARABIC LETTER LAM, LATIN SMALL LETTER O # →له→
+
+FEF6 ; 0644 0622 ; MA # ( ﻶ → لآ ) ARABIC LIGATURE LAM WITH ALEF
WITH MADDA ABOVE FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER ALEF WITH MADDA
ABOVE #
+FEF5 ; 0644 0622 ; MA # ( ﻵ → لآ ) ARABIC LIGATURE LAM WITH ALEF
WITH MADDA ABOVE ISOLATED FORM → ARABIC LETTER LAM, ARABIC LETTER ALEF WITH
MADDA ABOVE #
+
+FCC9 ; 0644 062C ; MA # ( ﳉ → لج ) ARABIC LIGATURE LAM WITH JEEM
INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER JEEM #
+FC3F ; 0644 062C ; MA # ( ﰿ → لج ) ARABIC LIGATURE LAM WITH JEEM
ISOLATED FORM → ARABIC LETTER LAM, ARABIC LETTER JEEM #
+
+FD83 ; 0644 062C 062C ; MA # ( ﶃ → لجج ) ARABIC LIGATURE LAM
WITH JEEM WITH JEEM INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER JEEM,
ARABIC LETTER JEEM #
+FD84 ; 0644 062C 062C ; MA # ( ﶄ → لجج ) ARABIC LIGATURE LAM
WITH JEEM WITH JEEM FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER JEEM, ARABIC
LETTER JEEM #
+
+FDBA ; 0644 062C 0645 ; MA # ( ﶺ → لجم ) ARABIC LIGATURE LAM
WITH JEEM WITH MEEM INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER JEEM,
ARABIC LETTER MEEM #
+FDBC ; 0644 062C 0645 ; MA # ( ﶼ → لجم ) ARABIC LIGATURE LAM
WITH JEEM WITH MEEM FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER JEEM, ARABIC
LETTER MEEM #
+
+FDAC ; 0644 062C 0649 ; MA # ( ﶬ → لجى ) ARABIC LIGATURE LAM
WITH JEEM WITH YEH FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER JEEM, ARABIC
LETTER ALEF MAKSURA # →لجي→
+
+FCCA ; 0644 062D ; MA # ( ﳊ → لح ) ARABIC LIGATURE LAM WITH HAH
INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER HAH #
+FC40 ; 0644 062D ; MA # ( ﱀ → لح ) ARABIC LIGATURE LAM WITH HAH
ISOLATED FORM → ARABIC LETTER LAM, ARABIC LETTER HAH #
+
+FDB5 ; 0644 062D 0645 ; MA # ( ﶵ → لحم ) ARABIC LIGATURE LAM
WITH HAH WITH MEEM INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER HAH, ARABIC
LETTER MEEM #
+FD80 ; 0644 062D 0645 ; MA # ( ﶀ → لحم ) ARABIC LIGATURE LAM
WITH HAH WITH MEEM FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER HAH, ARABIC
LETTER MEEM #
+
+FD82 ; 0644 062D 0649 ; MA # ( ﶂ → لحى ) ARABIC LIGATURE LAM
WITH HAH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER HAH,
ARABIC LETTER ALEF MAKSURA #
+FD81 ; 0644 062D 0649 ; MA # ( ﶁ → لحى ) ARABIC LIGATURE LAM
WITH HAH WITH YEH FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER HAH, ARABIC
LETTER ALEF MAKSURA # →لحي→
+
+FCCB ; 0644 062E ; MA # ( ﳋ → لخ ) ARABIC LIGATURE LAM WITH KHAH
INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER KHAH #
+FC41 ; 0644 062E ; MA # ( ﱁ → لخ ) ARABIC LIGATURE LAM WITH KHAH
ISOLATED FORM → ARABIC LETTER LAM, ARABIC LETTER KHAH #
+
+FD86 ; 0644 062E 0645 ; MA # ( ﶆ → لخم ) ARABIC LIGATURE LAM
WITH KHAH WITH MEEM INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER KHAH,
ARABIC LETTER MEEM #
+FD85 ; 0644 062E 0645 ; MA # ( ﶅ → لخم ) ARABIC LIGATURE LAM
WITH KHAH WITH MEEM FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER KHAH, ARABIC
LETTER MEEM #
+
+FCCC ; 0644 0645 ; MA # ( ﳌ → لم ) ARABIC LIGATURE LAM WITH MEEM
INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER MEEM #
+FCED ; 0644 0645 ; MA # ( ﳭ → لم ) ARABIC LIGATURE LAM WITH MEEM
MEDIAL FORM → ARABIC LETTER LAM, ARABIC LETTER MEEM #
+FC85 ; 0644 0645 ; MA # ( ﲅ → لم ) ARABIC LIGATURE LAM WITH MEEM
FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER MEEM #
+FC42 ; 0644 0645 ; MA # ( ﱂ → لم ) ARABIC LIGATURE LAM WITH MEEM
ISOLATED FORM → ARABIC LETTER LAM, ARABIC LETTER MEEM #
+
+FD88 ; 0644 0645 062D ; MA # ( ﶈ → لمح ) ARABIC LIGATURE LAM
WITH MEEM WITH HAH INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER MEEM, ARABIC
LETTER HAH #
+FD87 ; 0644 0645 062D ; MA # ( ﶇ → لمح ) ARABIC LIGATURE LAM
WITH MEEM WITH HAH FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER MEEM, ARABIC
LETTER HAH #
+
+FDAD ; 0644 0645 0649 ; MA # ( ﶭ → لمى ) ARABIC LIGATURE LAM
WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER MEEM, ARABIC
LETTER ALEF MAKSURA # →لمي→
+
+FC86 ; 0644 0649 ; MA # ( ﲆ → لى ) ARABIC LIGATURE LAM WITH ALEF
MAKSURA FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA #
+FC43 ; 0644 0649 ; MA # ( ﱃ → لى ) ARABIC LIGATURE LAM WITH ALEF
MAKSURA ISOLATED FORM → ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA #
+FC87 ; 0644 0649 ; MA # ( ﲇ → لى ) ARABIC LIGATURE LAM WITH YEH
FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA # →لي→
+FC44 ; 0644 0649 ; MA # ( ﱄ → لى ) ARABIC LIGATURE LAM WITH YEH
ISOLATED FORM → ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA # →لي→
+
+1EE0C ; 0645 ; MA # ( 𞸌 → م ) ARABIC MATHEMATICAL MEEM →
ARABIC LETTER MEEM #
+1EE2C ; 0645 ; MA # ( 𞸬 → م ) ARABIC MATHEMATICAL INITIAL
MEEM → ARABIC LETTER MEEM #
+1EE6C ; 0645 ; MA # ( 𞹬 → م ) ARABIC MATHEMATICAL STRETCHED
MEEM → ARABIC LETTER MEEM #
+1EE8C ; 0645 ; MA # ( 𞺌 → م ) ARABIC MATHEMATICAL LOOPED MEEM
→ ARABIC LETTER MEEM #
+1EEAC ; 0645 ; MA # ( 𞺬 → م ) ARABIC MATHEMATICAL
DOUBLE-STRUCK MEEM → ARABIC LETTER MEEM #
+FEE3 ; 0645 ; MA # ( ﻣ → م ) ARABIC LETTER MEEM INITIAL FORM →
ARABIC LETTER MEEM #
+FEE4 ; 0645 ; MA # ( ﻤ → م ) ARABIC LETTER MEEM MEDIAL FORM → ARABIC
LETTER MEEM #
+FEE2 ; 0645 ; MA # ( ﻢ → م ) ARABIC LETTER MEEM FINAL FORM → ARABIC
LETTER MEEM #
+FEE1 ; 0645 ; MA # ( ﻡ → م ) ARABIC LETTER MEEM ISOLATED FORM →
ARABIC LETTER MEEM #
+
+08A7 ; 0645 06DB ; MA # ( ࢧ → مۛ ) ARABIC LETTER MEEM WITH THREE
DOTS ABOVE → ARABIC LETTER MEEM, ARABIC SMALL HIGH THREE DOTS #
+
+06FE ; 0645 0348 ; MA #* ( ۾ → م͈ ) ARABIC SIGN SINDHI
POSTPOSITION MEN → ARABIC LETTER MEEM, COMBINING DOUBLE VERTICAL LINE BELOW
#
+
+FC88 ; 0645 006C ; MA # ( ﲈ → مl ) ARABIC LIGATURE MEEM WITH ALEF
FINAL FORM → ARABIC LETTER MEEM, LATIN SMALL LETTER L # →ما→
+
+FCCE ; 0645 062C ; MA # ( ﳎ → مج ) ARABIC LIGATURE MEEM WITH JEEM
INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER JEEM #
+FC45 ; 0645 062C ; MA # ( ﱅ → مج ) ARABIC LIGATURE MEEM WITH JEEM
ISOLATED FORM → ARABIC LETTER MEEM, ARABIC LETTER JEEM #
+
+FD8C ; 0645 062C 062D ; MA # ( ﶌ → مجح ) ARABIC LIGATURE MEEM
WITH JEEM WITH HAH INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER JEEM,
ARABIC LETTER HAH #
+
+FD92 ; 0645 062C 062E ; MA # ( ﶒ → مجخ ) ARABIC LIGATURE MEEM
WITH JEEM WITH KHAH INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER JEEM,
ARABIC LETTER KHAH #
+
+FD8D ; 0645 062C 0645 ; MA # ( ﶍ → مجم ) ARABIC LIGATURE MEEM
WITH JEEM WITH MEEM INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER JEEM,
ARABIC LETTER MEEM #
+
+FDC0 ; 0645 062C 0649 ; MA # ( ﷀ → مجى ) ARABIC LIGATURE MEEM
WITH JEEM WITH YEH FINAL FORM → ARABIC LETTER MEEM, ARABIC LETTER JEEM, ARABIC
LETTER ALEF MAKSURA # →مجي→
+
+FCCF ; 0645 062D ; MA # ( ﳏ → مح ) ARABIC LIGATURE MEEM WITH HAH
INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER HAH #
+FC46 ; 0645 062D ; MA # ( ﱆ → مح ) ARABIC LIGATURE MEEM WITH HAH
ISOLATED FORM → ARABIC LETTER MEEM, ARABIC LETTER HAH #
+
+FD89 ; 0645 062D 062C ; MA # ( ﶉ → محج ) ARABIC LIGATURE MEEM
WITH HAH WITH JEEM INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER HAH, ARABIC
LETTER JEEM #
+
+FD8A ; 0645 062D 0645 ; MA # ( ﶊ → محم ) ARABIC LIGATURE MEEM
WITH HAH WITH MEEM INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER HAH, ARABIC
LETTER MEEM #
+
+FDF4 ; 0645 062D 0645 062F ; MA # ( ﷴ → محمد ) ARABIC LIGATURE
MOHAMMAD ISOLATED FORM → ARABIC LETTER MEEM, ARABIC LETTER HAH, ARABIC LETTER
MEEM, ARABIC LETTER DAL #
+
+FD8B ; 0645 062D 0649 ; MA # ( ﶋ → محى ) ARABIC LIGATURE MEEM
WITH HAH WITH YEH FINAL FORM → ARABIC LETTER MEEM, ARABIC LETTER HAH, ARABIC
LETTER ALEF MAKSURA # →محي→
+
+FCD0 ; 0645 062E ; MA # ( ﳐ → مخ ) ARABIC LIGATURE MEEM WITH KHAH
INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER KHAH #
+FC47 ; 0645 062E ; MA # ( ﱇ → مخ ) ARABIC LIGATURE MEEM WITH KHAH
ISOLATED FORM → ARABIC LETTER MEEM, ARABIC LETTER KHAH #
+
+FD8E ; 0645 062E 062C ; MA # ( ﶎ → مخج ) ARABIC LIGATURE MEEM
WITH KHAH WITH JEEM INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER KHAH,
ARABIC LETTER JEEM #
+
+FD8F ; 0645 062E 0645 ; MA # ( ﶏ → مخم ) ARABIC LIGATURE MEEM
WITH KHAH WITH MEEM INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER KHAH,
ARABIC LETTER MEEM #
+
+FDB9 ; 0645 062E 0649 ; MA # ( ﶹ → مخى ) ARABIC LIGATURE MEEM
WITH KHAH WITH YEH FINAL FORM → ARABIC LETTER MEEM, ARABIC LETTER KHAH, ARABIC
LETTER ALEF MAKSURA # →مخي→
+
+FCD1 ; 0645 0645 ; MA # ( ﳑ → مم ) ARABIC LIGATURE MEEM WITH MEEM
INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER MEEM #
+FC89 ; 0645 0645 ; MA # ( ﲉ → مم ) ARABIC LIGATURE MEEM WITH MEEM
FINAL FORM → ARABIC LETTER MEEM, ARABIC LETTER MEEM #
+FC48 ; 0645 0645 ; MA # ( ﱈ → مم ) ARABIC LIGATURE MEEM WITH MEEM
ISOLATED FORM → ARABIC LETTER MEEM, ARABIC LETTER MEEM #
+
+FDB1 ; 0645 0645 0649 ; MA # ( ﶱ → ممى ) ARABIC LIGATURE MEEM
WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER MEEM, ARABIC LETTER MEEM, ARABIC
LETTER ALEF MAKSURA # →ممي→
+
+FC49 ; 0645 0649 ; MA # ( ﱉ → مى ) ARABIC LIGATURE MEEM WITH ALEF
MAKSURA ISOLATED FORM → ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA #
+FC4A ; 0645 0649 ; MA # ( ﱊ → مى ) ARABIC LIGATURE MEEM WITH YEH
ISOLATED FORM → ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # →مي→
+
+1EE0D ; 0646 ; MA # ( 𞸍 → ن ) ARABIC MATHEMATICAL NOON →
ARABIC LETTER NOON #
+1EE2D ; 0646 ; MA # ( 𞸭 → ن ) ARABIC MATHEMATICAL INITIAL
NOON → ARABIC LETTER NOON #
+1EE4D ; 0646 ; MA # ( 𞹍 → ن ) ARABIC MATHEMATICAL TAILED NOON
→ ARABIC LETTER NOON #
+1EE6D ; 0646 ; MA # ( 𞹭 → ن ) ARABIC MATHEMATICAL STRETCHED
NOON → ARABIC LETTER NOON #
+1EE8D ; 0646 ; MA # ( 𞺍 → ن ) ARABIC MATHEMATICAL LOOPED NOON
→ ARABIC LETTER NOON #
+1EEAD ; 0646 ; MA # ( 𞺭 → ن ) ARABIC MATHEMATICAL
DOUBLE-STRUCK NOON → ARABIC LETTER NOON #
+FEE7 ; 0646 ; MA # ( ﻧ → ن ) ARABIC LETTER NOON INITIAL FORM →
ARABIC LETTER NOON #
+FEE8 ; 0646 ; MA # ( ﻨ → ن ) ARABIC LETTER NOON MEDIAL FORM → ARABIC
LETTER NOON #
+FEE6 ; 0646 ; MA # ( ﻦ → ن ) ARABIC LETTER NOON FINAL FORM → ARABIC
LETTER NOON #
+FEE5 ; 0646 ; MA # ( ﻥ → ن ) ARABIC LETTER NOON ISOLATED FORM →
ARABIC LETTER NOON #
+
+0768 ; 0646 0615 ; MA # ( ݨ → نؕ ) ARABIC LETTER NOON WITH SMALL
TAH → ARABIC LETTER NOON, ARABIC SMALL HIGH TAH #
+
+0769 ; 0646 0306 ; MA # ( ݩ → ن̆ ) ARABIC LETTER NOON WITH SMALL
V → ARABIC LETTER NOON, COMBINING BREVE # →نٚ→
+
+FCD6 ; 0646 006F ; MA # ( ﳖ → نo ) ARABIC LIGATURE NOON WITH HEH
INITIAL FORM → ARABIC LETTER NOON, LATIN SMALL LETTER O # →نه→
+FCEF ; 0646 006F ; MA # ( ﳯ → نo ) ARABIC LIGATURE NOON WITH HEH
MEDIAL FORM → ARABIC LETTER NOON, LATIN SMALL LETTER O # →نه→
+
+FDB8 ; 0646 062C 062D ; MA # ( ﶸ → نجح ) ARABIC LIGATURE NOON
WITH JEEM WITH HAH INITIAL FORM → ARABIC LETTER NOON, ARABIC LETTER JEEM,
ARABIC LETTER HAH #
+FDBD ; 0646 062C 062D ; MA # ( ﶽ → نجح ) ARABIC LIGATURE NOON
WITH JEEM WITH HAH FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER JEEM, ARABIC
LETTER HAH #
+
+FD98 ; 0646 062C 0645 ; MA # ( ﶘ → نجم ) ARABIC LIGATURE NOON
WITH JEEM WITH MEEM INITIAL FORM → ARABIC LETTER NOON, ARABIC LETTER JEEM,
ARABIC LETTER MEEM #
+FD97 ; 0646 062C 0645 ; MA # ( ﶗ → نجم ) ARABIC LIGATURE NOON
WITH JEEM WITH MEEM FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER JEEM, ARABIC
LETTER MEEM #
+
+FD99 ; 0646 062C 0649 ; MA # ( ﶙ → نجى ) ARABIC LIGATURE NOON
WITH JEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER
JEEM, ARABIC LETTER ALEF MAKSURA #
+FDC7 ; 0646 062C 0649 ; MA # ( ﷇ → نجى ) ARABIC LIGATURE NOON
WITH JEEM WITH YEH FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER JEEM, ARABIC
LETTER ALEF MAKSURA # →نجي→
+
+FCD3 ; 0646 062D ; MA # ( ﳓ → نح ) ARABIC LIGATURE NOON WITH HAH
INITIAL FORM → ARABIC LETTER NOON, ARABIC LETTER HAH #
+FC4C ; 0646 062D ; MA # ( ﱌ → نح ) ARABIC LIGATURE NOON WITH HAH
ISOLATED FORM → ARABIC LETTER NOON, ARABIC LETTER HAH #
+
+FD95 ; 0646 062D 0645 ; MA # ( ﶕ → نحم ) ARABIC LIGATURE NOON
WITH HAH WITH MEEM INITIAL FORM → ARABIC LETTER NOON, ARABIC LETTER HAH, ARABIC
LETTER MEEM #
+
+FD96 ; 0646 062D 0649 ; MA # ( ﶖ → نحى ) ARABIC LIGATURE NOON
WITH HAH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER HAH,
ARABIC LETTER ALEF MAKSURA #
+FDB3 ; 0646 062D 0649 ; MA # ( ﶳ → نحى ) ARABIC LIGATURE NOON
WITH HAH WITH YEH FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER HAH, ARABIC
LETTER ALEF MAKSURA # →نحي→
+
+FCD4 ; 0646 062E ; MA # ( ﳔ → نخ ) ARABIC LIGATURE NOON WITH KHAH
INITIAL FORM → ARABIC LETTER NOON, ARABIC LETTER KHAH #
+FC4D ; 0646 062E ; MA # ( ﱍ → نخ ) ARABIC LIGATURE NOON WITH KHAH
ISOLATED FORM → ARABIC LETTER NOON, ARABIC LETTER KHAH #
+
+FC8A ; 0646 0631 ; MA # ( ﲊ → نر ) ARABIC LIGATURE NOON WITH REH
FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER REH #
+
+FC8B ; 0646 0632 ; MA # ( ﲋ → نز ) ARABIC LIGATURE NOON WITH ZAIN
FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER ZAIN #
+
+FCD5 ; 0646 0645 ; MA # ( ﳕ → نم ) ARABIC LIGATURE NOON WITH MEEM
INITIAL FORM → ARABIC LETTER NOON, ARABIC LETTER MEEM #
+FCEE ; 0646 0645 ; MA # ( ﳮ → نم ) ARABIC LIGATURE NOON WITH MEEM
MEDIAL FORM → ARABIC LETTER NOON, ARABIC LETTER MEEM #
+FC8C ; 0646 0645 ; MA # ( ﲌ → نم ) ARABIC LIGATURE NOON WITH MEEM
FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER MEEM #
+FC4E ; 0646 0645 ; MA # ( ﱎ → نم ) ARABIC LIGATURE NOON WITH MEEM
ISOLATED FORM → ARABIC LETTER NOON, ARABIC LETTER MEEM #
+
+FD9B ; 0646 0645 0649 ; MA # ( ﶛ → نمى ) ARABIC LIGATURE NOON
WITH MEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER
MEEM, ARABIC LETTER ALEF MAKSURA #
+FD9A ; 0646 0645 0649 ; MA # ( ﶚ → نمى ) ARABIC LIGATURE NOON
WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER MEEM, ARABIC
LETTER ALEF MAKSURA # →نمي→
+
+FC8D ; 0646 0646 ; MA # ( ﲍ → نن ) ARABIC LIGATURE NOON WITH NOON
FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER NOON #
+
+FC8E ; 0646 0649 ; MA # ( ﲎ → نى ) ARABIC LIGATURE NOON WITH ALEF
MAKSURA FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER ALEF MAKSURA #
+FC4F ; 0646 0649 ; MA # ( ﱏ → نى ) ARABIC LIGATURE NOON WITH ALEF
MAKSURA ISOLATED FORM → ARABIC LETTER NOON, ARABIC LETTER ALEF MAKSURA #
+FC8F ; 0646 0649 ; MA # ( ﲏ → نى ) ARABIC LIGATURE NOON WITH YEH
FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER ALEF MAKSURA # →ني→
+FC50 ; 0646 0649 ; MA # ( ﱐ → نى ) ARABIC LIGATURE NOON WITH YEH
ISOLATED FORM → ARABIC LETTER NOON, ARABIC LETTER ALEF MAKSURA # →ني→
+
+06C2 ; 06C0 ; MA # ( ۂ → ۀ ) ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
→ ARABIC LETTER HEH WITH YEH ABOVE # →ﮤ→
+FBA5 ; 06C0 ; MA # ( ﮥ → ۀ ) ARABIC LETTER HEH WITH YEH ABOVE FINAL
FORM → ARABIC LETTER HEH WITH YEH ABOVE #
+FBA4 ; 06C0 ; MA # ( ﮤ → ۀ ) ARABIC LETTER HEH WITH YEH ABOVE
ISOLATED FORM → ARABIC LETTER HEH WITH YEH ABOVE #
+
+102E4 ; 0648 ; MA #* ( 𐋤 → و ) COPTIC EPACT DIGIT FOUR → ARABIC
LETTER WAW #
+1EE05 ; 0648 ; MA # ( 𞸅 → و ) ARABIC MATHEMATICAL WAW →
ARABIC LETTER WAW #
+1EE85 ; 0648 ; MA # ( 𞺅 → و ) ARABIC MATHEMATICAL LOOPED WAW
→ ARABIC LETTER WAW #
+1EEA5 ; 0648 ; MA # ( 𞺥 → و ) ARABIC MATHEMATICAL
DOUBLE-STRUCK WAW → ARABIC LETTER WAW #
+FEEE ; 0648 ; MA # ( ﻮ → و ) ARABIC LETTER WAW FINAL FORM → ARABIC
LETTER WAW #
+FEED ; 0648 ; MA # ( ﻭ → و ) ARABIC LETTER WAW ISOLATED FORM →
ARABIC LETTER WAW #
+08B1 ; 0648 ; MA # ( ࢱ → و ) ARABIC LETTER STRAIGHT WAW → ARABIC
LETTER WAW #
+
+06CB ; 0648 06DB ; MA # ( ۋ → وۛ ) ARABIC LETTER VE → ARABIC
LETTER WAW, ARABIC SMALL HIGH THREE DOTS #
+FBDF ; 0648 06DB ; MA # ( ﯟ → وۛ ) ARABIC LETTER VE FINAL FORM →
ARABIC LETTER WAW, ARABIC SMALL HIGH THREE DOTS # →ۋ→
+FBDE ; 0648 06DB ; MA # ( ﯞ → وۛ ) ARABIC LETTER VE ISOLATED FORM
→ ARABIC LETTER WAW, ARABIC SMALL HIGH THREE DOTS # →ۋ→
+
+06C7 ; 0648 0313 ; MA # ( ۇ → و̓ ) ARABIC LETTER U → ARABIC
LETTER WAW, COMBINING COMMA ABOVE # →وُ→
+FBD8 ; 0648 0313 ; MA # ( ﯘ → و̓ ) ARABIC LETTER U FINAL FORM →
ARABIC LETTER WAW, COMBINING COMMA ABOVE # →ۇ→→وُ→
+FBD7 ; 0648 0313 ; MA # ( ﯗ → و̓ ) ARABIC LETTER U ISOLATED FORM
→ ARABIC LETTER WAW, COMBINING COMMA ABOVE # →ۇ→→وُ→
+
+06C6 ; 0648 0306 ; MA # ( ۆ → و̆ ) ARABIC LETTER OE → ARABIC
LETTER WAW, COMBINING BREVE # →وٚ→
+FBDA ; 0648 0306 ; MA # ( ﯚ → و̆ ) ARABIC LETTER OE FINAL FORM →
ARABIC LETTER WAW, COMBINING BREVE # →ۆ→→وٚ→
+FBD9 ; 0648 0306 ; MA # ( ﯙ → و̆ ) ARABIC LETTER OE ISOLATED FORM
→ ARABIC LETTER WAW, COMBINING BREVE # →ۆ→→وٚ→
+
+06C9 ; 0648 0302 ; MA # ( ۉ → و̂ ) ARABIC LETTER KIRGHIZ YU →
ARABIC LETTER WAW, COMBINING CIRCUMFLEX ACCENT # →وٛ→
+FBE3 ; 0648 0302 ; MA # ( ﯣ → و̂ ) ARABIC LETTER KIRGHIZ YU FINAL
FORM → ARABIC LETTER WAW, COMBINING CIRCUMFLEX ACCENT # →ۉ→→وٛ→
+FBE2 ; 0648 0302 ; MA # ( ﯢ → و̂ ) ARABIC LETTER KIRGHIZ YU
ISOLATED FORM → ARABIC LETTER WAW, COMBINING CIRCUMFLEX ACCENT #
→ۉ→→وٛ→
+
+06C8 ; 0648 0670 ; MA # ( ۈ → وٰ ) ARABIC LETTER YU → ARABIC
LETTER WAW, ARABIC LETTER SUPERSCRIPT ALEF #
+FBDC ; 0648 0670 ; MA # ( ﯜ → وٰ ) ARABIC LETTER YU FINAL FORM →
ARABIC LETTER WAW, ARABIC LETTER SUPERSCRIPT ALEF # →ۈ→
+FBDB ; 0648 0670 ; MA # ( ﯛ → وٰ ) ARABIC LETTER YU ISOLATED FORM
→ ARABIC LETTER WAW, ARABIC LETTER SUPERSCRIPT ALEF # →ۈ→
+
+0624 ; 0648 0674 ; MA # ( ؤ → وٴ ) ARABIC LETTER WAW WITH HAMZA
ABOVE → ARABIC LETTER WAW, ARABIC LETTER HIGH HAMZA # →ٶ→
+FE86 ; 0648 0674 ; MA # ( ﺆ → وٴ ) ARABIC LETTER WAW WITH HAMZA
ABOVE FINAL FORM → ARABIC LETTER WAW, ARABIC LETTER HIGH HAMZA # →ٶ→
+FE85 ; 0648 0674 ; MA # ( ﺅ → وٴ ) ARABIC LETTER WAW WITH HAMZA
ABOVE ISOLATED FORM → ARABIC LETTER WAW, ARABIC LETTER HIGH HAMZA # →ٶ→
+0676 ; 0648 0674 ; MA # ( ٶ → وٴ ) ARABIC LETTER HIGH HAMZA WAW →
ARABIC LETTER WAW, ARABIC LETTER HIGH HAMZA #
+
+0677 ; 0648 0313 0674 ; MA # ( ٷ → و̓ٴ ) ARABIC LETTER U WITH
HAMZA ABOVE → ARABIC LETTER WAW, COMBINING COMMA ABOVE, ARABIC LETTER HIGH
HAMZA # →ۇٴ→
+FBDD ; 0648 0313 0674 ; MA # ( ﯝ → و̓ٴ ) ARABIC LETTER U WITH
HAMZA ABOVE ISOLATED FORM → ARABIC LETTER WAW, COMBINING COMMA ABOVE, ARABIC
LETTER HIGH HAMZA # →ۇٴ→
+
+FDF8 ; 0648 0633 0644 0645 ; MA # ( ﷸ → وسلم ) ARABIC LIGATURE
WASALLAM ISOLATED FORM → ARABIC LETTER WAW, ARABIC LETTER SEEN, ARABIC LETTER
LAM, ARABIC LETTER MEEM #
+
+FBE1 ; 06C5 ; MA # ( ﯡ → ۅ ) ARABIC LETTER KIRGHIZ OE FINAL FORM →
ARABIC LETTER KIRGHIZ OE #
+FBE0 ; 06C5 ; MA # ( ﯠ → ۅ ) ARABIC LETTER KIRGHIZ OE ISOLATED FORM
→ ARABIC LETTER KIRGHIZ OE #
+
+066E ; 0649 ; MA # ( ٮ → ى ) ARABIC LETTER DOTLESS BEH → ARABIC
LETTER ALEF MAKSURA #
+1EE1C ; 0649 ; MA # ( 𞸜 → ى ) ARABIC MATHEMATICAL DOTLESS BEH
→ ARABIC LETTER ALEF MAKSURA # →ٮ→
+1EE7C ; 0649 ; MA # ( 𞹼 → ى ) ARABIC MATHEMATICAL STRETCHED
DOTLESS BEH → ARABIC LETTER ALEF MAKSURA # →ٮ→
+06BA ; 0649 ; MA # ( ں → ى ) ARABIC LETTER NOON GHUNNA → ARABIC
LETTER ALEF MAKSURA #
+1EE1D ; 0649 ; MA # ( 𞸝 → ى ) ARABIC MATHEMATICAL DOTLESS
NOON → ARABIC LETTER ALEF MAKSURA # →ں→
+1EE5D ; 0649 ; MA # ( 𞹝 → ى ) ARABIC MATHEMATICAL TAILED
DOTLESS NOON → ARABIC LETTER ALEF MAKSURA # →ں→
+FB9F ; 0649 ; MA # ( ﮟ → ى ) ARABIC LETTER NOON GHUNNA FINAL FORM →
ARABIC LETTER ALEF MAKSURA # →ں→
+FB9E ; 0649 ; MA # ( ﮞ → ى ) ARABIC LETTER NOON GHUNNA ISOLATED FORM
→ ARABIC LETTER ALEF MAKSURA # →ں→
+08BD ; 0649 ; MA # ( ࢽ → ى ) ARABIC LETTER AFRICAN NOON → ARABIC
LETTER ALEF MAKSURA # →ں→
+FBE8 ; 0649 ; MA # ( ﯨ → ى ) ARABIC LETTER UIGHUR KAZAKH KIRGHIZ
ALEF MAKSURA INITIAL FORM → ARABIC LETTER ALEF MAKSURA #
+FBE9 ; 0649 ; MA # ( ﯩ → ى ) ARABIC LETTER UIGHUR KAZAKH KIRGHIZ
ALEF MAKSURA MEDIAL FORM → ARABIC LETTER ALEF MAKSURA #
+FEF0 ; 0649 ; MA # ( ﻰ → ى ) ARABIC LETTER ALEF MAKSURA FINAL FORM →
ARABIC LETTER ALEF MAKSURA #
+FEEF ; 0649 ; MA # ( ﻯ → ى ) ARABIC LETTER ALEF MAKSURA ISOLATED
FORM → ARABIC LETTER ALEF MAKSURA #
+064A ; 0649 ; MA # ( ي → ى ) ARABIC LETTER YEH → ARABIC LETTER ALEF
MAKSURA #
+1EE09 ; 0649 ; MA # ( 𞸉 → ى ) ARABIC MATHEMATICAL YEH →
ARABIC LETTER ALEF MAKSURA # →ي→
+1EE29 ; 0649 ; MA # ( 𞸩 → ى ) ARABIC MATHEMATICAL INITIAL YEH
→ ARABIC LETTER ALEF MAKSURA # →ي→
+1EE49 ; 0649 ; MA # ( 𞹉 → ى ) ARABIC MATHEMATICAL TAILED YEH
→ ARABIC LETTER ALEF MAKSURA # →ي→
+1EE69 ; 0649 ; MA # ( 𞹩 → ى ) ARABIC MATHEMATICAL STRETCHED
YEH → ARABIC LETTER ALEF MAKSURA # →ي→
+1EE89 ; 0649 ; MA # ( 𞺉 → ى ) ARABIC MATHEMATICAL LOOPED YEH
→ ARABIC LETTER ALEF MAKSURA # →ي→
+1EEA9 ; 0649 ; MA # ( 𞺩 → ى ) ARABIC MATHEMATICAL
DOUBLE-STRUCK YEH → ARABIC LETTER ALEF MAKSURA # →ي→
+FEF3 ; 0649 ; MA # ( ﻳ → ى ) ARABIC LETTER YEH INITIAL FORM → ARABIC
LETTER ALEF MAKSURA # →ي→
+FEF4 ; 0649 ; MA # ( ﻴ → ى ) ARABIC LETTER YEH MEDIAL FORM → ARABIC
LETTER ALEF MAKSURA # →ي→
+FEF2 ; 0649 ; MA # ( ﻲ → ى ) ARABIC LETTER YEH FINAL FORM → ARABIC
LETTER ALEF MAKSURA # →ي→
+FEF1 ; 0649 ; MA # ( ﻱ → ى ) ARABIC LETTER YEH ISOLATED FORM →
ARABIC LETTER ALEF MAKSURA # →ي→
+06CC ; 0649 ; MA # ( ی → ى ) ARABIC LETTER FARSI YEH → ARABIC LETTER
ALEF MAKSURA #
+FBFE ; 0649 ; MA # ( ﯾ → ى ) ARABIC LETTER FARSI YEH INITIAL FORM →
ARABIC LETTER ALEF MAKSURA # →ی→
+FBFF ; 0649 ; MA # ( ﯿ → ى ) ARABIC LETTER FARSI YEH MEDIAL FORM →
ARABIC LETTER ALEF MAKSURA # →ی→
+FBFD ; 0649 ; MA # ( ﯽ → ى ) ARABIC LETTER FARSI YEH FINAL FORM →
ARABIC LETTER ALEF MAKSURA # →ﻰ→
+FBFC ; 0649 ; MA # ( ﯼ → ى ) ARABIC LETTER FARSI YEH ISOLATED FORM →
ARABIC LETTER ALEF MAKSURA #
+06D2 ; 0649 ; MA # ( ے → ى ) ARABIC LETTER YEH BARREE → ARABIC
LETTER ALEF MAKSURA # →ي→
+FBAF ; 0649 ; MA # ( ﮯ → ى ) ARABIC LETTER YEH BARREE FINAL FORM →
ARABIC LETTER ALEF MAKSURA # →ے→→ي→
+FBAE ; 0649 ; MA # ( ﮮ → ى ) ARABIC LETTER YEH BARREE ISOLATED FORM
→ ARABIC LETTER ALEF MAKSURA # →ے→→ي→
+
+0679 ; 0649 0615 ; MA # ( ٹ → ىؕ ) ARABIC LETTER TTEH → ARABIC
LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →ٮؕ→
+FB68 ; 0649 0615 ; MA # ( ﭨ → ىؕ ) ARABIC LETTER TTEH INITIAL
FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →ٹ→→ٮؕ→
+FB69 ; 0649 0615 ; MA # ( ﭩ → ىؕ ) ARABIC LETTER TTEH MEDIAL FORM
→ ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →ٹ→→ٮؕ→
+FB67 ; 0649 0615 ; MA # ( ﭧ → ىؕ ) ARABIC LETTER TTEH FINAL FORM
→ ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →ٹ→→ٮؕ→
+FB66 ; 0649 0615 ; MA # ( ﭦ → ىؕ ) ARABIC LETTER TTEH ISOLATED
FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →ٹ→→ٮؕ→
+06BB ; 0649 0615 ; MA # ( ڻ → ىؕ ) ARABIC LETTER RNOON → ARABIC
LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →ںؕ→
+FBA2 ; 0649 0615 ; MA # ( ﮢ → ىؕ ) ARABIC LETTER RNOON INITIAL
FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →ڻ→→ںؕ→
+FBA3 ; 0649 0615 ; MA # ( ﮣ → ىؕ ) ARABIC LETTER RNOON MEDIAL
FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →ڻ→→ںؕ→
+FBA1 ; 0649 0615 ; MA # ( ﮡ → ىؕ ) ARABIC LETTER RNOON FINAL FORM
→ ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →ڻ→→ںؕ→
+FBA0 ; 0649 0615 ; MA # ( ﮠ → ىؕ ) ARABIC LETTER RNOON ISOLATED
FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →ڻ→→ںؕ→
+
+067E ; 0649 06DB ; MA # ( پ → ىۛ ) ARABIC LETTER PEH → ARABIC
LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →ڽ→→ںۛ→
+FB58 ; 0649 06DB ; MA # ( ﭘ → ىۛ ) ARABIC LETTER PEH INITIAL FORM
→ ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS #
→پ→→ڽ→→ںۛ→
+FB59 ; 0649 06DB ; MA # ( ﭙ → ىۛ ) ARABIC LETTER PEH MEDIAL FORM
→ ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS #
→پ→→ڽ→→ںۛ→
+FB57 ; 0649 06DB ; MA # ( ﭗ → ىۛ ) ARABIC LETTER PEH FINAL FORM →
ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS #
→پ→→ڽ→→ںۛ→
+FB56 ; 0649 06DB ; MA # ( ﭖ → ىۛ ) ARABIC LETTER PEH ISOLATED
FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS #
→پ→→ڽ→→ںۛ→
+062B ; 0649 06DB ; MA # ( ث → ىۛ ) ARABIC LETTER THEH → ARABIC
LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →ٮۛ→
+1EE16 ; 0649 06DB ; MA # ( 𞸖 → ىۛ ) ARABIC MATHEMATICAL
THEH → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →ث→→ٮۛ→
+1EE36 ; 0649 06DB ; MA # ( 𞸶 → ىۛ ) ARABIC MATHEMATICAL
INITIAL THEH → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS #
→ث→→ٮۛ→
+1EE76 ; 0649 06DB ; MA # ( 𞹶 → ىۛ ) ARABIC MATHEMATICAL
STRETCHED THEH → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS #
→ث→→ٮۛ→
+1EE96 ; 0649 06DB ; MA # ( 𞺖 → ىۛ ) ARABIC MATHEMATICAL
LOOPED THEH → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS #
→ث→→ٮۛ→
+1EEB6 ; 0649 06DB ; MA # ( 𞺶 → ىۛ ) ARABIC MATHEMATICAL
DOUBLE-STRUCK THEH → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS
# →ث→→ٮۛ→
+FE9B ; 0649 06DB ; MA # ( ﺛ → ىۛ ) ARABIC LETTER THEH INITIAL
FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS #
→ث→→ٮۛ→
+FE9C ; 0649 06DB ; MA # ( ﺜ → ىۛ ) ARABIC LETTER THEH MEDIAL FORM
→ ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →ث→→ٮۛ→
+FE9A ; 0649 06DB ; MA # ( ﺚ → ىۛ ) ARABIC LETTER THEH FINAL FORM
→ ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →ث→→ٮۛ→
+FE99 ; 0649 06DB ; MA # ( ﺙ → ىۛ ) ARABIC LETTER THEH ISOLATED
FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →ث→→ٮۛ→
+06BD ; 0649 06DB ; MA # ( ڽ → ىۛ ) ARABIC LETTER NOON WITH THREE
DOTS ABOVE → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS #
→ںۛ→
+06D1 ; 0649 06DB ; MA # ( ۑ → ىۛ ) ARABIC LETTER YEH WITH THREE
DOTS BELOW → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS #
→پ→→ڽ→→ںۛ→
+063F ; 0649 06DB ; MA # ( ؿ → ىۛ ) ARABIC LETTER FARSI YEH WITH
THREE DOTS ABOVE → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS
# →یۛ→
+
+08B7 ; 0649 06DB 06E2 ; MA # ( ࢷ → ىۛۢ ) ARABIC LETTER PEH
WITH SMALL MEEM ABOVE → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE
DOTS, ARABIC SMALL HIGH MEEM ISOLATED FORM # →پۢ→
+
+0756 ; 0649 0306 ; MA # ( ݖ → ى̆ ) ARABIC LETTER BEH WITH SMALL V
→ ARABIC LETTER ALEF MAKSURA, COMBINING BREVE # →ٮٚ→
+06CE ; 0649 0306 ; MA # ( ێ → ى̆ ) ARABIC LETTER YEH WITH SMALL V
→ ARABIC LETTER ALEF MAKSURA, COMBINING BREVE # →یٚ→
+
+08BA ; 0649 0306 0307 ; MA # ( ࢺ → ى̆̇ ) ARABIC LETTER YEH
WITH TWO DOTS BELOW AND SMALL NOON ABOVE → ARABIC LETTER ALEF MAKSURA,
COMBINING BREVE, COMBINING DOT ABOVE # →يۨ→
+
+063D ; 0649 0302 ; MA # ( ؽ → ى̂ ) ARABIC LETTER FARSI YEH WITH
INVERTED V → ARABIC LETTER ALEF MAKSURA, COMBINING CIRCUMFLEX ACCENT #
→یٛ→
+
+08A8 ; 0649 0654 ; MA # ( ࢨ → ىٔ ) ARABIC LETTER YEH WITH TWO
DOTS BELOW AND HAMZA ABOVE → ARABIC LETTER ALEF MAKSURA, ARABIC HAMZA ABOVE #
→ئ→
+
+FC90 ; 0649 0670 ; MA # ( ﲐ → ىٰ ) ARABIC LIGATURE ALEF MAKSURA
WITH SUPERSCRIPT ALEF FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER
SUPERSCRIPT ALEF #
+FC5D ; 0649 0670 ; MA # ( ﱝ → ىٰ ) ARABIC LIGATURE ALEF MAKSURA
WITH SUPERSCRIPT ALEF ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER
SUPERSCRIPT ALEF #
+
+FCDE ; 0649 006F ; MA # ( ﳞ → ىo ) ARABIC LIGATURE YEH WITH HEH
INITIAL FORM → ARABIC LETTER ALEF MAKSURA, LATIN SMALL LETTER O # →يه→
+FCF1 ; 0649 006F ; MA # ( ﳱ → ىo ) ARABIC LIGATURE YEH WITH HEH
MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, LATIN SMALL LETTER O # →يه→
+
+FCE6 ; 0649 06DB 006F ; MA # ( ﳦ → ىۛo ) ARABIC LIGATURE THEH
WITH HEH MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE
DOTS, LATIN SMALL LETTER O # →ثه→
+
+0626 ; 0649 0674 ; MA # ( ئ → ىٴ ) ARABIC LETTER YEH WITH HAMZA
ABOVE → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA # →ٸ→→يٴ→
+FE8B ; 0649 0674 ; MA # ( ﺋ → ىٴ ) ARABIC LETTER YEH WITH HAMZA
ABOVE INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA #
→ئ→→ٸ→→يٴ→
+FE8C ; 0649 0674 ; MA # ( ﺌ → ىٴ ) ARABIC LETTER YEH WITH HAMZA
ABOVE MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA #
→ئ→→ٸ→→يٴ→
+FE8A ; 0649 0674 ; MA # ( ﺊ → ىٴ ) ARABIC LETTER YEH WITH HAMZA
ABOVE FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA #
→ئ→→ٸ→→يٴ→
+FE89 ; 0649 0674 ; MA # ( ﺉ → ىٴ ) ARABIC LETTER YEH WITH HAMZA
ABOVE ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA
# →ٸ→→يٴ→
+0678 ; 0649 0674 ; MA # ( ٸ → ىٴ ) ARABIC LETTER HIGH HAMZA YEH →
ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA # →يٴ→
+
+FBEB ; 0649 0674 006C ; MA # ( ﯫ → ىٴl ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH ALEF FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, LATIN SMALL LETTER L # →ئا→
+FBEA ; 0649 0674 006C ; MA # ( ﯪ → ىٴl ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH ALEF ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, LATIN SMALL LETTER L # →ئا→
+
+FC9B ; 0649 0674 006F ; MA # ( ﲛ → ىٴo ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH HEH INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, LATIN SMALL LETTER O # →ئه→
+FCE0 ; 0649 0674 006F ; MA # ( ﳠ → ىٴo ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH HEH MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, LATIN SMALL LETTER O # →ئه→
+FBED ; 0649 0674 006F ; MA # ( ﯭ → ىٴo ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH AE FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER
HIGH HAMZA, LATIN SMALL LETTER O # →ئە→→ٴىo→→ئه→
+FBEC ; 0649 0674 006F ; MA # ( ﯬ → ىٴo ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH AE ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, LATIN SMALL LETTER O # →ئە→→ٴىo→→ئه→
+
+FBF8 ; 0649 0674 067B ; MA # ( ﯸ → ىٴٻ ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH E INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER BEEH # →ئې→
+FBF7 ; 0649 0674 067B ; MA # ( ﯷ → ىٴٻ ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH E FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER
HIGH HAMZA, ARABIC LETTER BEEH # →ئې→
+FBF6 ; 0649 0674 067B ; MA # ( ﯶ → ىٴٻ ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH E ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER BEEH # →ئې→
+
+FC97 ; 0649 0674 062C ; MA # ( ﲗ → ىٴج ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH JEEM INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER JEEM # →ئج→
+FC00 ; 0649 0674 062C ; MA # ( ﰀ → ىٴج ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH JEEM ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER JEEM # →ئج→
+
+FC98 ; 0649 0674 062D ; MA # ( ﲘ → ىٴح ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH HAH INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER HAH # →ئح→
+FC01 ; 0649 0674 062D ; MA # ( ﰁ → ىٴح ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH HAH ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER HAH # →ئح→
+
+FC99 ; 0649 0674 062E ; MA # ( ﲙ → ىٴخ ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH KHAH INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER KHAH # →ئخ→
+
+FC64 ; 0649 0674 0631 ; MA # ( ﱤ → ىٴر ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH REH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER REH # →ئر→
+
+FC65 ; 0649 0674 0632 ; MA # ( ﱥ → ىٴز ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH ZAIN FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER ZAIN # →ئز→
+
+FC9A ; 0649 0674 0645 ; MA # ( ﲚ → ىٴم ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH MEEM INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER MEEM # →ئم→
+FCDF ; 0649 0674 0645 ; MA # ( ﳟ → ىٴم ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH MEEM MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER MEEM # →ئم→
+FC66 ; 0649 0674 0645 ; MA # ( ﱦ → ىٴم ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH MEEM FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER MEEM # →ئم→
+FC02 ; 0649 0674 0645 ; MA # ( ﰂ → ىٴم ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH MEEM ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER MEEM # →ئم→
+
+FC67 ; 0649 0674 0646 ; MA # ( ﱧ → ىٴن ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH NOON FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER NOON # →ئن→
+
+FBEF ; 0649 0674 0648 ; MA # ( ﯯ → ىٴو ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH WAW FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER WAW # →ئو→
+FBEE ; 0649 0674 0648 ; MA # ( ﯮ → ىٴو ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH WAW ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER WAW # →ئو→
+
+FBF1 ; 0649 0674 0648 0313 ; MA # ( ﯱ → ىٴو̓ ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH U FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER
HIGH HAMZA, ARABIC LETTER WAW, COMBINING COMMA ABOVE # →ئۇ→
+FBF0 ; 0649 0674 0648 0313 ; MA # ( ﯰ → ىٴو̓ ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH U ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER WAW, COMBINING COMMA ABOVE # →ئۇ→
+
+FBF3 ; 0649 0674 0648 0306 ; MA # ( ﯳ → ىٴو̆ ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH OE FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER
HIGH HAMZA, ARABIC LETTER WAW, COMBINING BREVE # →ئۆ→
+FBF2 ; 0649 0674 0648 0306 ; MA # ( ﯲ → ىٴو̆ ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH OE ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER WAW, COMBINING BREVE # →ئۆ→
+
+FBF5 ; 0649 0674 0648 0670 ; MA # ( ﯵ → ىٴوٰ ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH YU FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER
HIGH HAMZA, ARABIC LETTER WAW, ARABIC LETTER SUPERSCRIPT ALEF # →ئۈ→
+FBF4 ; 0649 0674 0648 0670 ; MA # ( ﯴ → ىٴوٰ ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH YU ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER WAW, ARABIC LETTER SUPERSCRIPT ALEF # →ئۈ→
+
+FBFB ; 0649 0674 0649 ; MA # ( ﯻ → ىٴى ) ARABIC LIGATURE
UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM → ARABIC
LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA #
→ئى→
+FBFA ; 0649 0674 0649 ; MA # ( ﯺ → ىٴى ) ARABIC LIGATURE
UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM → ARABIC
LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA #
→ئى→
+FC68 ; 0649 0674 0649 ; MA # ( ﱨ → ىٴى ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER ALEF MAKSURA,
ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA # →ئى→
+FBF9 ; 0649 0674 0649 ; MA # ( ﯹ → ىٴى ) ARABIC LIGATURE
UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM → ARABIC
LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA
# →ئى→
+FC03 ; 0649 0674 0649 ; MA # ( ﰃ → ىٴى ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER ALEF MAKSURA,
ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA # →ئى→
+FC69 ; 0649 0674 0649 ; MA # ( ﱩ → ىٴى ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH YEH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA # →ئي→→ٴىى→→ئى→
+FC04 ; 0649 0674 0649 ; MA # ( ﰄ → ىٴى ) ARABIC LIGATURE YEH
WITH HAMZA ABOVE WITH YEH ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC
LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA # →ئي→→ٴىى→→ئى→
+
+FCDA ; 0649 062C ; MA # ( ﳚ → ىج ) ARABIC LIGATURE YEH WITH JEEM
INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER JEEM # →يج→
+FC55 ; 0649 062C ; MA # ( ﱕ → ىج ) ARABIC LIGATURE YEH WITH JEEM
ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER JEEM # →يج→
+
+FC11 ; 0649 06DB 062C ; MA # ( ﰑ → ىۛج ) ARABIC LIGATURE THEH
WITH JEEM ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE
DOTS, ARABIC LETTER JEEM # →ثج→
+
+FDAF ; 0649 062C 0649 ; MA # ( ﶯ → ىجى ) ARABIC LIGATURE YEH
WITH JEEM WITH YEH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER JEEM,
ARABIC LETTER ALEF MAKSURA # →يجي→
+
+FCDB ; 0649 062D ; MA # ( ﳛ → ىح ) ARABIC LIGATURE YEH WITH HAH
INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HAH # →يح→
+FC56 ; 0649 062D ; MA # ( ﱖ → ىح ) ARABIC LIGATURE YEH WITH HAH
ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HAH # →يح→
+
+FDAE ; 0649 062D 0649 ; MA # ( ﶮ → ىحى ) ARABIC LIGATURE YEH
WITH HAH WITH YEH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HAH,
ARABIC LETTER ALEF MAKSURA # →يحي→
+
+FCDC ; 0649 062E ; MA # ( ﳜ → ىخ ) ARABIC LIGATURE YEH WITH KHAH
INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER KHAH # →يخ→
+FC57 ; 0649 062E ; MA # ( ﱗ → ىخ ) ARABIC LIGATURE YEH WITH KHAH
ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER KHAH # →يخ→
+
+FC91 ; 0649 0631 ; MA # ( ﲑ → ىر ) ARABIC LIGATURE YEH WITH REH
FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER REH # →ير→
+
+FC76 ; 0649 06DB 0631 ; MA # ( ﱶ → ىۛر ) ARABIC LIGATURE THEH
WITH REH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS,
ARABIC LETTER REH # →ثر→
+
+FC92 ; 0649 0632 ; MA # ( ﲒ → ىز ) ARABIC LIGATURE YEH WITH ZAIN
FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER ZAIN # →يز→
+
+FC77 ; 0649 06DB 0632 ; MA # ( ﱷ → ىۛز ) ARABIC LIGATURE THEH
WITH ZAIN FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE
DOTS, ARABIC LETTER ZAIN # →ثز→
+
+FCDD ; 0649 0645 ; MA # ( ﳝ → ىم ) ARABIC LIGATURE YEH WITH MEEM
INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER MEEM # →يم→
+FCF0 ; 0649 0645 ; MA # ( ﳰ → ىم ) ARABIC LIGATURE YEH WITH MEEM
MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER MEEM # →يم→
+FC93 ; 0649 0645 ; MA # ( ﲓ → ىم ) ARABIC LIGATURE YEH WITH MEEM
FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER MEEM # →يم→
+FC58 ; 0649 0645 ; MA # ( ﱘ → ىم ) ARABIC LIGATURE YEH WITH MEEM
ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER MEEM # →يم→
+
+FCA6 ; 0649 06DB 0645 ; MA # ( ﲦ → ىۛم ) ARABIC LIGATURE THEH
WITH MEEM INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE
DOTS, ARABIC LETTER MEEM # →ثم→
+FCE5 ; 0649 06DB 0645 ; MA # ( ﳥ → ىۛم ) ARABIC LIGATURE THEH
WITH MEEM MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE
DOTS, ARABIC LETTER MEEM # →ثم→
+FC78 ; 0649 06DB 0645 ; MA # ( ﱸ → ىۛم ) ARABIC LIGATURE THEH
WITH MEEM FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE
DOTS, ARABIC LETTER MEEM # →ثم→
+FC12 ; 0649 06DB 0645 ; MA # ( ﰒ → ىۛم ) ARABIC LIGATURE THEH
WITH MEEM ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE
DOTS, ARABIC LETTER MEEM # →ثم→
+
+FD9D ; 0649 0645 0645 ; MA # ( ﶝ → ىمم ) ARABIC LIGATURE YEH
WITH MEEM WITH MEEM INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER
MEEM, ARABIC LETTER MEEM # →يمم→
+FD9C ; 0649 0645 0645 ; MA # ( ﶜ → ىمم ) ARABIC LIGATURE YEH
WITH MEEM WITH MEEM FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER
MEEM, ARABIC LETTER MEEM # →يمم→
+
+FDB0 ; 0649 0645 0649 ; MA # ( ﶰ → ىمى ) ARABIC LIGATURE YEH
WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER MEEM,
ARABIC LETTER ALEF MAKSURA # →يمي→
+
+FC94 ; 0649 0646 ; MA # ( ﲔ → ىن ) ARABIC LIGATURE YEH WITH NOON
FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER NOON # →ين→
+
+FC79 ; 0649 06DB 0646 ; MA # ( ﱹ → ىۛن ) ARABIC LIGATURE THEH
WITH NOON FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE
DOTS, ARABIC LETTER NOON # →ثن→
+
+FC95 ; 0649 0649 ; MA # ( ﲕ → ىى ) ARABIC LIGATURE YEH WITH ALEF
MAKSURA FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER ALEF MAKSURA
# →يى→
+FC59 ; 0649 0649 ; MA # ( ﱙ → ىى ) ARABIC LIGATURE YEH WITH ALEF
MAKSURA ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER ALEF MAKSURA
# →يى→
+FC96 ; 0649 0649 ; MA # ( ﲖ → ىى ) ARABIC LIGATURE YEH WITH YEH
FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER ALEF MAKSURA #
→يي→
+FC5A ; 0649 0649 ; MA # ( ﱚ → ىى ) ARABIC LIGATURE YEH WITH YEH
ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER ALEF MAKSURA #
→يي→
+
+FC7A ; 0649 06DB 0649 ; MA # ( ﱺ → ىۛى ) ARABIC LIGATURE THEH
WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH
THREE DOTS, ARABIC LETTER ALEF MAKSURA # →ثى→
+FC13 ; 0649 06DB 0649 ; MA # ( ﰓ → ىۛى ) ARABIC LIGATURE THEH
WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH
THREE DOTS, ARABIC LETTER ALEF MAKSURA # →ثى→
+FC7B ; 0649 06DB 0649 ; MA # ( ﱻ → ىۛى ) ARABIC LIGATURE THEH
WITH YEH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS,
ARABIC LETTER ALEF MAKSURA # →ثي→
+FC14 ; 0649 06DB 0649 ; MA # ( ﰔ → ىۛى ) ARABIC LIGATURE THEH
WITH YEH ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE
DOTS, ARABIC LETTER ALEF MAKSURA # →ثي→
+
+FBB1 ; 06D3 ; MA # ( ﮱ → ۓ ) ARABIC LETTER YEH BARREE WITH HAMZA
ABOVE FINAL FORM → ARABIC LETTER YEH BARREE WITH HAMZA ABOVE #
+FBB0 ; 06D3 ; MA # ( ﮰ → ۓ ) ARABIC LETTER YEH BARREE WITH HAMZA
ABOVE ISOLATED FORM → ARABIC LETTER YEH BARREE WITH HAMZA ABOVE #
+
+102B8 ; 2D40 ; MA # ( 𐊸 → ⵀ ) CARIAN LETTER SS → TIFINAGH LETTER
YAH #
+
+205E ; 2D42 ; MA #* ( ⁞ → ⵂ ) VERTICAL FOUR DOTS → TIFINAGH LETTER
TUAREG YAH #
+2E3D ; 2D42 ; MA #* ( ⸽ → ⵂ ) VERTICAL SIX DOTS → TIFINAGH LETTER TUAREG
YAH # →⁞→
+2999 ; 2D42 ; MA #* ( ⦙ → ⵂ ) DOTTED FENCE → TIFINAGH LETTER TUAREG YAH
# →⁞→
+
+FE19 ; 2D57 ; MA #* ( ︙ → ⵗ ) PRESENTATION FORM FOR VERTICAL HORIZONTAL
ELLIPSIS → TIFINAGH LETTER TUAREG YAGH # →⁝→
+205D ; 2D57 ; MA #* ( ⁝ → ⵗ ) TRICOLON → TIFINAGH LETTER TUAREG YAGH
#
+22EE ; 2D57 ; MA #* ( ⋮ → ⵗ ) VERTICAL ELLIPSIS → TIFINAGH LETTER TUAREG
YAGH # →︙→→⁝→
+
+0544 ; 1206 ; MA # ( Մ → ሆ ) ARMENIAN CAPITAL LETTER MEN → ETHIOPIC
SYLLABLE HO #
+
+054C ; 1261 ; MA # ( Ռ → ቡ ) ARMENIAN CAPITAL LETTER RA → ETHIOPIC
SYLLABLE BU #
+
+053B ; 12AE ; MA # ( Ի → ኮ ) ARMENIAN CAPITAL LETTER INI → ETHIOPIC
SYLLABLE KO #
+
+054A ; 1323 ; MA # ( Պ → ጣ ) ARMENIAN CAPITAL LETTER PEH → ETHIOPIC
SYLLABLE THAA #
+
+0906 ; 0905 093E ; MA # ( आ → अा ) DEVANAGARI LETTER AA → DEVANAGARI
LETTER A, DEVANAGARI VOWEL SIGN AA #
+
+0912 ; 0905 093E 0946 ; MA # ( ऒ → अाॆ ) DEVANAGARI LETTER SHORT O
→ DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN AA, DEVANAGARI VOWEL SIGN SHORT E
# →अॊ→→आॆ→
+
+0913 ; 0905 093E 0947 ; MA # ( ओ → अाे ) DEVANAGARI LETTER O →
DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN AA, DEVANAGARI VOWEL SIGN E #
→अो→→आे→
+
+0914 ; 0905 093E 0948 ; MA # ( औ → अाै ) DEVANAGARI LETTER AU →
DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN AA, DEVANAGARI VOWEL SIGN AI #
→अौ→→आै→
+
+0904 ; 0905 0946 ; MA # ( ऄ → अॆ ) DEVANAGARI LETTER SHORT A →
DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN SHORT E #
+
+0911 ; 0905 0949 ; MA # ( ऑ → अॉ ) DEVANAGARI LETTER CANDRA O →
DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN CANDRA O #
+
+090D ; 090F 0945 ; MA # ( ऍ → एॅ ) DEVANAGARI LETTER CANDRA E →
DEVANAGARI LETTER E, DEVANAGARI VOWEL SIGN CANDRA E #
+
+090E ; 090F 0946 ; MA # ( ऎ → एॆ ) DEVANAGARI LETTER SHORT E →
DEVANAGARI LETTER E, DEVANAGARI VOWEL SIGN SHORT E #
+
+0910 ; 090F 0947 ; MA # ( ऐ → एे ) DEVANAGARI LETTER AI → DEVANAGARI
LETTER E, DEVANAGARI VOWEL SIGN E #
+
+0908 ; 0930 094D 0907 ; MA # ( ई → र्इ ) DEVANAGARI LETTER II →
DEVANAGARI LETTER RA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER I #
+
+0ABD ; 093D ; MA # ( ઽ → ऽ ) GUJARATI SIGN AVAGRAHA → DEVANAGARI SIGN
AVAGRAHA #
+
+111DC ; A8FB ; MA # ( 𑇜 → ꣻ ) SHARADA HEADSTROKE → DEVANAGARI
HEADSTROKE #
+
+111CB ; 093A ; MA # ( 𑇋 → ऺ ) SHARADA VOWEL MODIFIER MARK →
DEVANAGARI VOWEL SIGN OE #
+
+0AC1 ; 0941 ; MA # ( ુ → ु ) GUJARATI VOWEL SIGN U → DEVANAGARI VOWEL
SIGN U #
+
+0AC2 ; 0942 ; MA # ( ૂ → ू ) GUJARATI VOWEL SIGN UU → DEVANAGARI VOWEL
SIGN UU #
+
+0A4B ; 0946 ; MA # ( ੋ → ॆ ) GURMUKHI VOWEL SIGN OO → DEVANAGARI VOWEL
SIGN SHORT E #
+
+0A4D ; 094D ; MA # ( ੍ → ् ) GURMUKHI SIGN VIRAMA → DEVANAGARI SIGN
VIRAMA #
+0ACD ; 094D ; MA # ( ્ → ् ) GUJARATI SIGN VIRAMA → DEVANAGARI SIGN
VIRAMA #
+
+0986 ; 0985 09BE ; MA # ( আ → অা ) BENGALI LETTER AA → BENGALI LETTER
A, BENGALI VOWEL SIGN AA #
+
+09E0 ; 098B 09C3 ; MA # ( ৠ → ঋৃ ) BENGALI LETTER VOCALIC RR →
BENGALI LETTER VOCALIC R, BENGALI VOWEL SIGN VOCALIC R #
+09E1 ; 098B 09C3 ; MA # ( ৡ → ঋৃ ) BENGALI LETTER VOCALIC LL →
BENGALI LETTER VOCALIC R, BENGALI VOWEL SIGN VOCALIC R # →ঌৢ→→ৠ→
+
+11492 ; 0998 ; MA # ( 𑒒 → ঘ ) TIRHUTA LETTER GHA → BENGALI LETTER
GHA #
+
+11494 ; 099A ; MA # ( 𑒔 → চ ) TIRHUTA LETTER CA → BENGALI LETTER
CA #
+
+11496 ; 099C ; MA # ( 𑒖 → জ ) TIRHUTA LETTER JA → BENGALI LETTER
JA #
+
+11498 ; 099E ; MA # ( 𑒘 → ঞ ) TIRHUTA LETTER NYA → BENGALI LETTER
NYA #
+
+11499 ; 099F ; MA # ( 𑒙 → ট ) TIRHUTA LETTER TTA → BENGALI LETTER
TTA #
+
+1149B ; 09A1 ; MA # ( 𑒛 → ড ) TIRHUTA LETTER DDA → BENGALI LETTER
DDA #
+
+114AA ; 09A3 ; MA # ( 𑒪 → ণ ) TIRHUTA LETTER LA → BENGALI LETTER
NNA #
+
+1149E ; 09A4 ; MA # ( 𑒞 → ত ) TIRHUTA LETTER TA → BENGALI LETTER
TA #
+
+1149F ; 09A5 ; MA # ( 𑒟 → থ ) TIRHUTA LETTER THA → BENGALI LETTER
THA #
+
+114A0 ; 09A6 ; MA # ( 𑒠 → দ ) TIRHUTA LETTER DA → BENGALI LETTER
DA #
+
+114A1 ; 09A7 ; MA # ( 𑒡 → ধ ) TIRHUTA LETTER DHA → BENGALI LETTER
DHA #
+
+114A2 ; 09A8 ; MA # ( 𑒢 → ন ) TIRHUTA LETTER NA → BENGALI LETTER
NA #
+
+114A3 ; 09AA ; MA # ( 𑒣 → প ) TIRHUTA LETTER PA → BENGALI LETTER
PA #
+
+114A9 ; 09AC ; MA # ( 𑒩 → ব ) TIRHUTA LETTER RA → BENGALI LETTER
BA #
+
+114A7 ; 09AE ; MA # ( 𑒧 → ম ) TIRHUTA LETTER MA → BENGALI LETTER
MA #
+
+114A8 ; 09AF ; MA # ( 𑒨 → য ) TIRHUTA LETTER YA → BENGALI LETTER
YA #
+
+114AB ; 09B0 ; MA # ( 𑒫 → র ) TIRHUTA LETTER VA → BENGALI LETTER
RA #
+
+1149D ; 09B2 ; MA # ( 𑒝 → ল ) TIRHUTA LETTER NNA → BENGALI LETTER
LA #
+
+114AD ; 09B7 ; MA # ( 𑒭 → ষ ) TIRHUTA LETTER SSA → BENGALI LETTER
SSA #
+
+114AE ; 09B8 ; MA # ( 𑒮 → স ) TIRHUTA LETTER SA → BENGALI LETTER
SA #
+
+114C4 ; 09BD ; MA # ( 𑓄 → ঽ ) TIRHUTA SIGN AVAGRAHA → BENGALI
SIGN AVAGRAHA #
+
+114B0 ; 09BE ; MA # ( 𑒰 → া ) TIRHUTA VOWEL SIGN AA → BENGALI
VOWEL SIGN AA #
+
+114B1 ; 09BF ; MA # ( 𑒱 → ি ) TIRHUTA VOWEL SIGN I → BENGALI
VOWEL SIGN I #
+
+114B9 ; 09C7 ; MA # ( 𑒹 → ে ) TIRHUTA VOWEL SIGN E → BENGALI
VOWEL SIGN E #
+
+114BC ; 09CB ; MA # ( 𑒼 → ো ) TIRHUTA VOWEL SIGN O → BENGALI
VOWEL SIGN O #
+
+114BE ; 09CC ; MA # ( 𑒾 → ৌ ) TIRHUTA VOWEL SIGN AU → BENGALI
VOWEL SIGN AU #
+
+114C2 ; 09CD ; MA # ( 𑓂 → ্ ) TIRHUTA SIGN VIRAMA → BENGALI SIGN
VIRAMA #
+
+114BD ; 09D7 ; MA # ( 𑒽 → ৗ ) TIRHUTA VOWEL SIGN SHORT O →
BENGALI AU LENGTH MARK #
+
+0A09 ; 0A73 0A41 ; MA # ( ਉ → ੳੁ ) GURMUKHI LETTER U → GURMUKHI URA,
GURMUKHI VOWEL SIGN U #
+
+0A0A ; 0A73 0A42 ; MA # ( ਊ → ੳੂ ) GURMUKHI LETTER UU → GURMUKHI URA,
GURMUKHI VOWEL SIGN UU #
+
+0A06 ; 0A05 0A3E ; MA # ( ਆ → ਅਾ ) GURMUKHI LETTER AA → GURMUKHI
LETTER A, GURMUKHI VOWEL SIGN AA #
+
+0A10 ; 0A05 0A48 ; MA # ( ਐ → ਅੈ ) GURMUKHI LETTER AI → GURMUKHI
LETTER A, GURMUKHI VOWEL SIGN AI #
+
+0A14 ; 0A05 0A4C ; MA # ( ਔ → ਅੌ ) GURMUKHI LETTER AU → GURMUKHI
LETTER A, GURMUKHI VOWEL SIGN AU #
+
+0A07 ; 0A72 0A3F ; MA # ( ਇ → ੲਿ ) GURMUKHI LETTER I → GURMUKHI IRI,
GURMUKHI VOWEL SIGN I #
+
+0A08 ; 0A72 0A40 ; MA # ( ਈ → ੲੀ ) GURMUKHI LETTER II → GURMUKHI IRI,
GURMUKHI VOWEL SIGN II #
+
+0A0F ; 0A72 0A47 ; MA # ( ਏ → ੲੇ ) GURMUKHI LETTER EE → GURMUKHI IRI,
GURMUKHI VOWEL SIGN EE #
+
+0A86 ; 0A85 0ABE ; MA # ( આ → અા ) GUJARATI LETTER AA → GUJARATI
LETTER A, GUJARATI VOWEL SIGN AA #
+
+0A91 ; 0A85 0ABE 0AC5 ; MA # ( ઑ → અાૅ ) GUJARATI VOWEL CANDRA O →
GUJARATI LETTER A, GUJARATI VOWEL SIGN AA, GUJARATI VOWEL SIGN CANDRA E #
→અૉ→→આૅ→
+
+0A93 ; 0A85 0ABE 0AC7 ; MA # ( ઓ → અાે ) GUJARATI LETTER O →
GUJARATI LETTER A, GUJARATI VOWEL SIGN AA, GUJARATI VOWEL SIGN E # →અો→→આે→
+
+0A94 ; 0A85 0ABE 0AC8 ; MA # ( ઔ → અાૈ ) GUJARATI LETTER AU →
GUJARATI LETTER A, GUJARATI VOWEL SIGN AA, GUJARATI VOWEL SIGN AI # →અૌ→→આૈ→
+
+0A8D ; 0A85 0AC5 ; MA # ( ઍ → અૅ ) GUJARATI VOWEL CANDRA E → GUJARATI
LETTER A, GUJARATI VOWEL SIGN CANDRA E #
+
+0A8F ; 0A85 0AC7 ; MA # ( એ → અે ) GUJARATI LETTER E → GUJARATI
LETTER A, GUJARATI VOWEL SIGN E #
+
+0A90 ; 0A85 0AC8 ; MA # ( ઐ → અૈ ) GUJARATI LETTER AI → GUJARATI
LETTER A, GUJARATI VOWEL SIGN AI #
+
+0B06 ; 0B05 0B3E ; MA # ( ଆ → ଅା ) ORIYA LETTER AA → ORIYA LETTER A,
ORIYA VOWEL SIGN AA #
+
+0BEE ; 0B85 ; MA # ( ௮ → அ ) TAMIL DIGIT EIGHT → TAMIL LETTER A #
+
+0BB0 ; 0B88 ; MA # ( ர → ஈ ) TAMIL LETTER RA → TAMIL LETTER II # →ா→
+0BBE ; 0B88 ; MA # ( ா → ஈ ) TAMIL VOWEL SIGN AA → TAMIL LETTER II
#
+
+0BEB ; 0B88 0BC1 ; MA # ( ௫ → ஈு ) TAMIL DIGIT FIVE → TAMIL LETTER
II, TAMIL VOWEL SIGN U # →ரு→
+
+0BE8 ; 0B89 ; MA # ( ௨ → உ ) TAMIL DIGIT TWO → TAMIL LETTER U #
+0D09 ; 0B89 ; MA # ( ഉ → உ ) MALAYALAM LETTER U → TAMIL LETTER U #
+
+0B8A ; 0B89 0BB3 ; MA # ( ஊ → உள ) TAMIL LETTER UU → TAMIL LETTER U,
TAMIL LETTER LLA #
+
+0D0A ; 0B89 0D57 ; MA # ( ഊ → உൗ ) MALAYALAM LETTER UU → TAMIL LETTER
U, MALAYALAM AU LENGTH MARK # →ഉൗ→
+
+0BED ; 0B8E ; MA # ( ௭ → எ ) TAMIL DIGIT SEVEN → TAMIL LETTER E #
+
+0BF7 ; 0B8E 0BB5 ; MA #* ( ௷ → எவ ) TAMIL CREDIT SIGN → TAMIL LETTER
E, TAMIL LETTER VA #
+
+0B9C ; 0B90 ; MA # ( ஜ → ஐ ) TAMIL LETTER JA → TAMIL LETTER AI #
+0D1C ; 0B90 ; MA # ( ജ → ஐ ) MALAYALAM LETTER JA → TAMIL LETTER AI
# →ஜ→
+
+0BE7 ; 0B95 ; MA # ( ௧ → க ) TAMIL DIGIT ONE → TAMIL LETTER KA #
+
+0BEA ; 0B9A ; MA # ( ௪ → ச ) TAMIL DIGIT FOUR → TAMIL LETTER CA #
+
+0BEC ; 0B9A 0BC1 ; MA # ( ௬ → சு ) TAMIL DIGIT SIX → TAMIL LETTER CA,
TAMIL VOWEL SIGN U #
+
+0BF2 ; 0B9A 0BC2 ; MA #* ( ௲ → சூ ) TAMIL NUMBER ONE THOUSAND → TAMIL
LETTER CA, TAMIL VOWEL SIGN UU #
+
+0D3A ; 0B9F 0BBF ; MA # ( ഺ → டி ) MALAYALAM LETTER TTTA → TAMIL
LETTER TTA, TAMIL VOWEL SIGN I #
+
+0D23 ; 0BA3 ; MA # ( ണ → ண ) MALAYALAM LETTER NNA → TAMIL LETTER NNA
#
+
+0BFA ; 0BA8 0BC0 ; MA #* ( ௺ → நீ ) TAMIL NUMBER SIGN → TAMIL LETTER
NA, TAMIL VOWEL SIGN II #
+
+0BF4 ; 0BAE 0BC0 ; MA #* ( ௴ → மீ ) TAMIL MONTH SIGN → TAMIL LETTER
MA, TAMIL VOWEL SIGN II #
+
+0BF0 ; 0BAF ; MA #* ( ௰ → ய ) TAMIL NUMBER TEN → TAMIL LETTER YA #
+
+0D34 ; 0BB4 ; MA # ( ഴ → ழ ) MALAYALAM LETTER LLLA → TAMIL LETTER LLLA
#
+
+0BD7 ; 0BB3 ; MA # ( ௗ → ள ) TAMIL AU LENGTH MARK → TAMIL LETTER LLA
#
+
+0BC8 ; 0BA9 ; MA # ( ை → ன ) TAMIL VOWEL SIGN AI → TAMIL LETTER NNNA
#
+
+0D36 ; 0BB6 ; MA # ( ശ → ஶ ) MALAYALAM LETTER SHA → TAMIL LETTER SHA
#
+
+0BF8 ; 0BB7 ; MA #* ( ௸ → ஷ ) TAMIL AS ABOVE SIGN → TAMIL LETTER SSA
#
+
+0D3F ; 0BBF ; MA # ( ി → ி ) MALAYALAM VOWEL SIGN I → TAMIL VOWEL SIGN I
#
+0D40 ; 0BBF ; MA # ( ീ → ி ) MALAYALAM VOWEL SIGN II → TAMIL VOWEL SIGN
I #
+
+0BCA ; 0BC6 0B88 ; MA # ( ொ → ெஈ ) TAMIL VOWEL SIGN O → TAMIL VOWEL
SIGN E, TAMIL LETTER II # →ெர→
+
+0BCC ; 0BC6 0BB3 ; MA # ( ௌ → ெள ) TAMIL VOWEL SIGN AU → TAMIL VOWEL
SIGN E, TAMIL LETTER LLA #
+
+0BCB ; 0BC7 0B88 ; MA # ( ோ → ேஈ ) TAMIL VOWEL SIGN OO → TAMIL VOWEL
SIGN EE, TAMIL LETTER II # →ேர→
+
+0C85 ; 0C05 ; MA # ( ಅ → అ ) KANNADA LETTER A → TELUGU LETTER A #
+
+0C86 ; 0C06 ; MA # ( ಆ → ఆ ) KANNADA LETTER AA → TELUGU LETTER AA
#
+
+0C87 ; 0C07 ; MA # ( ಇ → ఇ ) KANNADA LETTER I → TELUGU LETTER I #
+
+0C60 ; 0C0B 0C3E ; MA # ( ౠ → ఋా ) TELUGU LETTER VOCALIC RR → TELUGU
LETTER VOCALIC R, TELUGU VOWEL SIGN AA #
+
+0C61 ; 0C0C 0C3E ; MA # ( ౡ → ఌా ) TELUGU LETTER VOCALIC LL → TELUGU
LETTER VOCALIC L, TELUGU VOWEL SIGN AA #
+
+0C92 ; 0C12 ; MA # ( ಒ → ఒ ) KANNADA LETTER O → TELUGU LETTER O #
+
+0C14 ; 0C12 0C4C ; MA # ( ఔ → ఒౌ ) TELUGU LETTER AU → TELUGU LETTER
O, TELUGU VOWEL SIGN AU #
+0C94 ; 0C12 0C4C ; MA # ( ಔ → ఒౌ ) KANNADA LETTER AU → TELUGU LETTER
O, TELUGU VOWEL SIGN AU # →ఔ→
+
+0C13 ; 0C12 0C55 ; MA # ( ఓ → ఒౕ ) TELUGU LETTER OO → TELUGU LETTER
O, TELUGU LENGTH MARK #
+0C93 ; 0C12 0C55 ; MA # ( ಓ → ఒౕ ) KANNADA LETTER OO → TELUGU LETTER
O, TELUGU LENGTH MARK # →ఓ→
+
+0C9C ; 0C1C ; MA # ( ಜ → జ ) KANNADA LETTER JA → TELUGU LETTER JA
#
+
+0C9E ; 0C1E ; MA # ( ಞ → ఞ ) KANNADA LETTER NYA → TELUGU LETTER NYA
#
+
+0C22 ; 0C21 0323 ; MA # ( ఢ → డ̣ ) TELUGU LETTER DDHA → TELUGU LETTER
DDA, COMBINING DOT BELOW #
+
+0CA3 ; 0C23 ; MA # ( ಣ → ణ ) KANNADA LETTER NNA → TELUGU LETTER NNA
#
+
+0C25 ; 0C27 05BC ; MA # ( థ → ధּ ) TELUGU LETTER THA → TELUGU LETTER
DHA, HEBREW POINT DAGESH OR MAPIQ #
+
+0C2D ; 0C2C 0323 ; MA # ( భ → బ̣ ) TELUGU LETTER BHA → TELUGU LETTER
BA, COMBINING DOT BELOW #
+
+0CAF ; 0C2F ; MA # ( ಯ → య ) KANNADA LETTER YA → TELUGU LETTER YA
#
+
+0C20 ; 0C30 05BC ; MA # ( ఠ → రּ ) TELUGU LETTER TTHA → TELUGU LETTER
RA, HEBREW POINT DAGESH OR MAPIQ #
+
+0CB1 ; 0C31 ; MA # ( ಱ → ఱ ) KANNADA LETTER RRA → TELUGU LETTER RRA
#
+
+0CB2 ; 0C32 ; MA # ( ಲ → ల ) KANNADA LETTER LA → TELUGU LETTER LA
#
+
+0C37 ; 0C35 0323 ; MA # ( ష → వ̣ ) TELUGU LETTER SSA → TELUGU LETTER
VA, COMBINING DOT BELOW #
+
+0C39 ; 0C35 0C3E ; MA # ( హ → వా ) TELUGU LETTER HA → TELUGU LETTER
VA, TELUGU VOWEL SIGN AA #
+
+0C2E ; 0C35 0C41 ; MA # ( మ → వు ) TELUGU LETTER MA → TELUGU LETTER
VA, TELUGU VOWEL SIGN U #
+
+0C42 ; 0C41 0C3E ; MA # ( ూ → ుా ) TELUGU VOWEL SIGN UU → TELUGU
VOWEL SIGN U, TELUGU VOWEL SIGN AA #
+
+0C44 ; 0C43 0C3E ; MA # ( ౄ → ృా ) TELUGU VOWEL SIGN VOCALIC RR →
TELUGU VOWEL SIGN VOCALIC R, TELUGU VOWEL SIGN AA #
+
+0CE1 ; 0C8C 0CBE ; MA # ( ೡ → ಌಾ ) KANNADA LETTER VOCALIC LL →
KANNADA LETTER VOCALIC L, KANNADA VOWEL SIGN AA #
+
+0D08 ; 0D07 0D57 ; MA # ( ഈ → ഇൗ ) MALAYALAM LETTER II → MALAYALAM
LETTER I, MALAYALAM AU LENGTH MARK #
+
+0D10 ; 0D0E 0D46 ; MA # ( ഐ → എെ ) MALAYALAM LETTER AI → MALAYALAM
LETTER E, MALAYALAM VOWEL SIGN E #
+
+0D13 ; 0D12 0D3E ; MA # ( ഓ → ഒാ ) MALAYALAM LETTER OO → MALAYALAM
LETTER O, MALAYALAM VOWEL SIGN AA #
+
+0D14 ; 0D12 0D57 ; MA # ( ഔ → ഒൗ ) MALAYALAM LETTER AU → MALAYALAM
LETTER O, MALAYALAM AU LENGTH MARK #
+
+0D61 ; 0D1E ; MA # ( ൡ → ഞ ) MALAYALAM LETTER VOCALIC LL → MALAYALAM
LETTER NYA #
+
+0D6B ; 0D26 0D4D 0D30 ; MA # ( ൫ → ദ്ര ) MALAYALAM DIGIT FIVE →
MALAYALAM LETTER DA, MALAYALAM SIGN VIRAMA, MALAYALAM LETTER RA #
+
+0D79 ; 0D28 0D41 ; MA #* ( ൹ → നു ) MALAYALAM DATE MARK → MALAYALAM
LETTER NA, MALAYALAM VOWEL SIGN U #
+0D0C ; 0D28 0D41 ; MA # ( ഌ → നു ) MALAYALAM LETTER VOCALIC L →
MALAYALAM LETTER NA, MALAYALAM VOWEL SIGN U #
+0D19 ; 0D28 0D41 ; MA # ( ങ → നു ) MALAYALAM LETTER NGA → MALAYALAM
LETTER NA, MALAYALAM VOWEL SIGN U # →ഌ→
+
+0D6F ; 0D28 0D4D ; MA # ( ൯ → ന് ) MALAYALAM DIGIT NINE → MALAYALAM
LETTER NA, MALAYALAM SIGN VIRAMA #
+0D7B ; 0D28 0D4D ; MA # ( ൻ → ന് ) MALAYALAM LETTER CHILLU N →
MALAYALAM LETTER NA, MALAYALAM SIGN VIRAMA # →൯→
+
+0D6C ; 0D28 0D4D 0D28 ; MA # ( ൬ → ന്ന ) MALAYALAM DIGIT SIX →
MALAYALAM LETTER NA, MALAYALAM SIGN VIRAMA, MALAYALAM LETTER NA #
+
+0D5A ; 0D28 0D4D 0D2E ; MA #* ( ൚ → ന്മ ) MALAYALAM FRACTION THREE
EIGHTIETHS → MALAYALAM LETTER NA, MALAYALAM SIGN VIRAMA, MALAYALAM LETTER MA
#
+
+0D31 ; 0D30 ; MA # ( റ → ര ) MALAYALAM LETTER RRA → MALAYALAM LETTER RA
#
+
+0D6A ; 0D30 0D4D ; MA # ( ൪ → ര് ) MALAYALAM DIGIT FOUR → MALAYALAM
LETTER RA, MALAYALAM SIGN VIRAMA #
+0D7C ; 0D30 0D4D ; MA # ( ർ → ര് ) MALAYALAM LETTER CHILLU RR →
MALAYALAM LETTER RA, MALAYALAM SIGN VIRAMA # →൪→
+
+0D6E ; 0D35 0D4D 0D30 ; MA # ( ൮ → വ്ര ) MALAYALAM DIGIT EIGHT →
MALAYALAM LETTER VA, MALAYALAM SIGN VIRAMA, MALAYALAM LETTER RA #
+
+0D76 ; 0D39 0D4D 0D2E ; MA #* ( ൶ → ഹ്മ ) MALAYALAM FRACTION ONE
SIXTEENTH → MALAYALAM LETTER HA, MALAYALAM SIGN VIRAMA, MALAYALAM LETTER MA
#
+
+0D42 ; 0D41 ; MA # ( ൂ → ു ) MALAYALAM VOWEL SIGN UU → MALAYALAM VOWEL
SIGN U #
+0D43 ; 0D41 ; MA # ( ൃ → ു ) MALAYALAM VOWEL SIGN VOCALIC R → MALAYALAM
VOWEL SIGN U # →ൂ→
+
+0D48 ; 0D46 0D46 ; MA # ( ൈ → െെ ) MALAYALAM VOWEL SIGN AI →
MALAYALAM VOWEL SIGN E, MALAYALAM VOWEL SIGN E #
+
+0DEA ; 0DA2 ; MA # ( ෪ → ජ ) SINHALA LITH DIGIT FOUR → SINHALA LETTER
ALPAPRAANA JAYANNA #
+
+0DEB ; 0DAF ; MA # ( ෫ → ද ) SINHALA LITH DIGIT FIVE → SINHALA LETTER
ALPAPRAANA DAYANNA #
+
+11413 ; 11434 11442 11412 ; MA # ( 𑐓 → 𑐴𑑂𑐒 ) NEWA LETTER NGHA
→ NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER NGA #
+
+11419 ; 11434 11442 11418 ; MA # ( 𑐙 → 𑐴𑑂𑐘 ) NEWA LETTER NYHA
→ NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER NYA #
+
+11424 ; 11434 11442 11423 ; MA # ( 𑐤 → 𑐴𑑂𑐣 ) NEWA LETTER NHA →
NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER NA #
+
+1142A ; 11434 11442 11429 ; MA # ( 𑐪 → 𑐴𑑂𑐩 ) NEWA LETTER MHA →
NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER MA #
+
+1142D ; 11434 11442 1142C ; MA # ( 𑐭 → 𑐴𑑂𑐬 ) NEWA LETTER RHA →
NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER RA #
+
+1142F ; 11434 11442 1142E ; MA # ( 𑐯 → 𑐴𑑂𑐮 ) NEWA LETTER LHA →
NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER LA #
+
+115D8 ; 11582 ; MA # ( 𑗘 → 𑖂 ) SIDDHAM LETTER THREE-CIRCLE
ALTERNATE I → SIDDHAM LETTER I #
+115D9 ; 11582 ; MA # ( 𑗙 → 𑖂 ) SIDDHAM LETTER TWO-CIRCLE ALTERNATE
I → SIDDHAM LETTER I #
+
+115DA ; 11583 ; MA # ( 𑗚 → 𑖃 ) SIDDHAM LETTER TWO-CIRCLE ALTERNATE
II → SIDDHAM LETTER II #
+
+115DB ; 11584 ; MA # ( 𑗛 → 𑖄 ) SIDDHAM LETTER ALTERNATE U →
SIDDHAM LETTER U #
+
+115DC ; 115B2 ; MA # ( 𑗜 → 𑖲 ) SIDDHAM VOWEL SIGN ALTERNATE U →
SIDDHAM VOWEL SIGN U #
+
+115DD ; 115B3 ; MA # ( 𑗝 → 𑖳 ) SIDDHAM VOWEL SIGN ALTERNATE UU →
SIDDHAM VOWEL SIGN UU #
+
+0E03 ; 0E02 ; MA # ( ฃ → ข ) THAI CHARACTER KHO KHUAT → THAI CHARACTER
KHO KHAI #
+
+0E14 ; 0E04 ; MA # ( ด → ค ) THAI CHARACTER DO DEK → THAI CHARACTER KHO
KHWAI #
+0E15 ; 0E04 ; MA # ( ต → ค ) THAI CHARACTER TO TAO → THAI CHARACTER KHO
KHWAI # →ด→
+
+0E21 ; 0E06 ; MA # ( ม → ฆ ) THAI CHARACTER MO MA → THAI CHARACTER KHO
RAKHANG #
+
+0E88 ; 0E08 ; MA # ( ຈ → จ ) LAO LETTER CO → THAI CHARACTER CHO CHAN
#
+
+0E0B ; 0E0A ; MA # ( ซ → ช ) THAI CHARACTER SO SO → THAI CHARACTER CHO
CHANG #
+
+0E0F ; 0E0E ; MA # ( ฏ → ฎ ) THAI CHARACTER TO PATAK → THAI CHARACTER DO
CHADA #
+
+0E17 ; 0E11 ; MA # ( ท → ฑ ) THAI CHARACTER THO THAHAN → THAI CHARACTER
THO NANGMONTHO #
+
+0E9A ; 0E1A ; MA # ( ບ → บ ) LAO LETTER BO → THAI CHARACTER BO BAIMAI
#
+
+0E9B ; 0E1B ; MA # ( ປ → ป ) LAO LETTER PO → THAI CHARACTER PO PLA
#
+
+0E9D ; 0E1D ; MA # ( ຝ → ฝ ) LAO LETTER FO TAM → THAI CHARACTER FO FA
#
+
+0E9E ; 0E1E ; MA # ( ພ → พ ) LAO LETTER PHO TAM → THAI CHARACTER PHO
PHAN #
+
+0E9F ; 0E1F ; MA # ( ຟ → ฟ ) LAO LETTER FO SUNG → THAI CHARACTER FO FAN
#
+
+0E26 ; 0E20 ; MA # ( ฦ → ภ ) THAI CHARACTER LU → THAI CHARACTER PHO
SAMPHAO #
+
+0E8D ; 0E22 ; MA # ( ຍ → ย ) LAO LETTER NYO → THAI CHARACTER YO YAK
#
+
+17D4 ; 0E2F ; MA #* ( ។ → ฯ ) KHMER SIGN KHAN → THAI CHARACTER PAIYANNOI
#
+
+0E45 ; 0E32 ; MA # ( ๅ → า ) THAI CHARACTER LAKKHANGYAO → THAI CHARACTER
SARA AA #
+
+0E33 ; 030A 0E32 ; MA # ( ำ → ̊า ) THAI CHARACTER SARA AM → COMBINING
RING ABOVE, THAI CHARACTER SARA AA # →ํา→
+
+17B7 ; 0E34 ; MA # ( ិ → ิ ) KHMER VOWEL SIGN I → THAI CHARACTER SARA I
#
+
+17B8 ; 0E35 ; MA # ( ី → ี ) KHMER VOWEL SIGN II → THAI CHARACTER SARA
II #
+
+17B9 ; 0E36 ; MA # ( ឹ → ึ ) KHMER VOWEL SIGN Y → THAI CHARACTER SARA UE
#
+
+17BA ; 0E37 ; MA # ( ឺ → ื ) KHMER VOWEL SIGN YY → THAI CHARACTER SARA
UEE #
+
+0EB8 ; 0E38 ; MA # ( ຸ → ุ ) LAO VOWEL SIGN U → THAI CHARACTER SARA U
#
+
+0EB9 ; 0E39 ; MA # ( ູ → ู ) LAO VOWEL SIGN UU → THAI CHARACTER SARA UU
#
+
+0E41 ; 0E40 0E40 ; MA # ( แ → เเ ) THAI CHARACTER SARA AE → THAI
CHARACTER SARA E, THAI CHARACTER SARA E #
+
+0EDC ; 0EAB 0E99 ; MA # ( ໜ → ຫນ ) LAO HO NO → LAO LETTER HO SUNG,
LAO LETTER NO #
+
+0EDD ; 0EAB 0EA1 ; MA # ( ໝ → ຫມ ) LAO HO MO → LAO LETTER HO SUNG,
LAO LETTER MO #
+
+0EB3 ; 030A 0EB2 ; MA # ( ຳ → ̊າ ) LAO VOWEL SIGN AM → COMBINING RING
ABOVE, LAO VOWEL SIGN AA # →ໍາ→
+
+0F02 ; 0F60 0F74 0F82 0F7F ; MA #* ( ༂ → འུྂཿ ) TIBETAN MARK GTER YIG
MGO -UM RNAM BCAD MA → TIBETAN LETTER -A, TIBETAN VOWEL SIGN U, TIBETAN SIGN
NYI ZLA NAA DA, TIBETAN SIGN RNAM BCAD #
+
+0F03 ; 0F60 0F74 0F82 0F14 ; MA #* ( ༃ → འུྂ༔ ) TIBETAN MARK GTER YIG
MGO -UM GTER TSHEG MA → TIBETAN LETTER -A, TIBETAN VOWEL SIGN U, TIBETAN SIGN
NYI ZLA NAA DA, TIBETAN MARK GTER TSHEG #
+
+0F6A ; 0F62 ; MA # ( ཪ → ར ) TIBETAN LETTER FIXED-FORM RA → TIBETAN
LETTER RA #
+
+0F00 ; 0F68 0F7C 0F7E ; MA # ( ༀ → ཨོཾ ) TIBETAN SYLLABLE OM →
TIBETAN LETTER A, TIBETAN VOWEL SIGN O, TIBETAN SIGN RJES SU NGA RO #
+
+0F77 ; 0FB2 0F71 0F80 ; MA # ( ཷ → ྲཱྀ ) TIBETAN VOWEL SIGN
VOCALIC RR → TIBETAN SUBJOINED LETTER RA, TIBETAN VOWEL SIGN AA, TIBETAN VOWEL
SIGN REVERSED I #
+
+0F79 ; 0FB3 0F71 0F80 ; MA # ( ཹ → ླཱྀ ) TIBETAN VOWEL SIGN
VOCALIC LL → TIBETAN SUBJOINED LETTER LA, TIBETAN VOWEL SIGN AA, TIBETAN VOWEL
SIGN REVERSED I #
+
+11CB2 ; 11CAA ; MA # ( 𑲲 → 𑲪 ) MARCHEN VOWEL SIGN U → MARCHEN
SUBJOINED LETTER RA #
+
+1081 ; 1002 103E ; MA # ( ႁ → ဂှ ) MYANMAR LETTER SHAN HA → MYANMAR
LETTER GA, MYANMAR CONSONANT SIGN MEDIAL HA #
+
+1000 ; 1002 102C ; MA # ( က → ဂာ ) MYANMAR LETTER KA → MYANMAR LETTER
GA, MYANMAR VOWEL SIGN AA #
+
+1070 ; 1003 103E ; MA # ( ၰ → ဃှ ) MYANMAR LETTER EASTERN PWO KAREN
GHWA → MYANMAR LETTER GHA, MYANMAR CONSONANT SIGN MEDIAL HA #
+
+1066 ; 1015 103E ; MA # ( ၦ → ပှ ) MYANMAR LETTER WESTERN PWO KAREN
PWA → MYANMAR LETTER PA, MYANMAR CONSONANT SIGN MEDIAL HA #
+
+101F ; 1015 102C ; MA # ( ဟ → ပာ ) MYANMAR LETTER HA → MYANMAR LETTER
PA, MYANMAR VOWEL SIGN AA #
+
+106F ; 1015 102C 103E ; MA # ( ၯ → ပာှ ) MYANMAR LETTER EASTERN
PWO KAREN YWA → MYANMAR LETTER PA, MYANMAR VOWEL SIGN AA, MYANMAR CONSONANT
SIGN MEDIAL HA # →ဟှ→
+
+107E ; 107D 103E ; MA # ( ၾ → ၽှ ) MYANMAR LETTER SHAN FA → MYANMAR
LETTER SHAN PHA, MYANMAR CONSONANT SIGN MEDIAL HA #
+
+1029 ; 101E 103C ; MA # ( ဩ → သြ ) MYANMAR LETTER O → MYANMAR LETTER
SA, MYANMAR CONSONANT SIGN MEDIAL RA #
+
+102A ; 101E 103C 1031 102C 103A ; MA # ( ဪ → သြော် ) MYANMAR LETTER
AU → MYANMAR LETTER SA, MYANMAR CONSONANT SIGN MEDIAL RA, MYANMAR VOWEL SIGN E,
MYANMAR VOWEL SIGN AA, MYANMAR SIGN ASAT # →ဩော်→
+
+109E ; 1083 030A ; MA #* ( ႞ → ႃ̊ ) MYANMAR SYMBOL SHAN ONE → MYANMAR
VOWEL SIGN SHAN AA, COMBINING RING ABOVE # →ႃံ→
+
+17A3 ; 17A2 ; MA # ( ឣ → អ ) KHMER INDEPENDENT VOWEL QAQ → KHMER LETTER
QA #
+
+19D0 ; 199E ; MA # ( ᧐ → ᦞ ) NEW TAI LUE DIGIT ZERO → NEW TAI LUE LETTER
LOW VA #
+
+19D1 ; 19B1 ; MA # ( ᧑ → ᦱ ) NEW TAI LUE DIGIT ONE → NEW TAI LUE VOWEL
SIGN AA #
+
+1A80 ; 1A45 ; MA # ( ᪀ → ᩅ ) TAI THAM HORA DIGIT ZERO → TAI THAM LETTER
WA #
+1A90 ; 1A45 ; MA # ( ᪐ → ᩅ ) TAI THAM THAM DIGIT ZERO → TAI THAM LETTER
WA #
+
+AA53 ; AA01 ; MA # ( ꩓ → ꨁ ) CHAM DIGIT THREE → CHAM LETTER I #
+
+AA56 ; AA23 ; MA # ( ꩖ → ꨣ ) CHAM DIGIT SIX → CHAM LETTER RA #
+
+1B52 ; 1B0D ; MA # ( ᭒ → ᬍ ) BALINESE DIGIT TWO → BALINESE LETTER LA
LENGA #
+
+1B53 ; 1B11 ; MA # ( ᭓ → ᬑ ) BALINESE DIGIT THREE → BALINESE LETTER
OKARA #
+
+1B58 ; 1B28 ; MA # ( ᭘ → ᬨ ) BALINESE DIGIT EIGHT → BALINESE LETTER PA
KAPAL #
+
+A9A3 ; A99D ; MA # ( ꦣ → ꦝ ) JAVANESE LETTER DA MAHAPRANA → JAVANESE
LETTER DDA #
+
+1896 ; 185C ; MA # ( ᢖ → ᡜ ) MONGOLIAN LETTER ALI GALI ZA → MONGOLIAN
LETTER TODO DZA #
+
+1855 ; 1835 ; MA # ( ᡕ → ᠵ ) MONGOLIAN LETTER TODO YA → MONGOLIAN LETTER
JA #
+
+1FF6 ; 13EF ; MA # ( ῶ → Ꮿ ) GREEK SMALL LETTER OMEGA WITH PERISPOMENI →
CHEROKEE LETTER YA #
+
+140D ; 1401 00B7 ; MA # ( ᐍ → ᐁ· ) CANADIAN SYLLABICS WEST-CREE WE →
CANADIAN SYLLABICS E, MIDDLE DOT # →ᐁᐧ→
+
+142B ; 1401 1420 ; MA # ( ᐫ → ᐁᐠ ) CANADIAN SYLLABICS EN → CANADIAN
SYLLABICS E, CANADIAN SYLLABICS FINAL GRAVE #
+
+1411 ; 1404 00B7 ; MA # ( ᐑ → ᐄ· ) CANADIAN SYLLABICS WEST-CREE WII →
CANADIAN SYLLABICS II, MIDDLE DOT # →ᐄᐧ→
+
+1413 ; 1405 00B7 ; MA # ( ᐓ → ᐅ· ) CANADIAN SYLLABICS WEST-CREE WO →
CANADIAN SYLLABICS O, MIDDLE DOT # →ᐅᐧ→
+
+142D ; 1405 1420 ; MA # ( ᐭ → ᐅᐠ ) CANADIAN SYLLABICS ON → CANADIAN
SYLLABICS O, CANADIAN SYLLABICS FINAL GRAVE #
+
+1415 ; 1406 00B7 ; MA # ( ᐕ → ᐆ· ) CANADIAN SYLLABICS WEST-CREE WOO →
CANADIAN SYLLABICS OO, MIDDLE DOT # →ᐆᐧ→
+
+1418 ; 140A 00B7 ; MA # ( ᐘ → ᐊ· ) CANADIAN SYLLABICS WEST-CREE WA →
CANADIAN SYLLABICS A, MIDDLE DOT # →ᐊᐧ→
+
+142E ; 140A 1420 ; MA # ( ᐮ → ᐊᐠ ) CANADIAN SYLLABICS AN → CANADIAN
SYLLABICS A, CANADIAN SYLLABICS FINAL GRAVE #
+
+141A ; 140B 00B7 ; MA # ( ᐚ → ᐋ· ) CANADIAN SYLLABICS WEST-CREE WAA →
CANADIAN SYLLABICS AA, MIDDLE DOT # →ᐋᐧ→
+
+18DD ; 141E 18DF ; MA # ( ᣝ → ᐞᣟ ) CANADIAN SYLLABICS WESTERN W →
CANADIAN SYLLABICS GLOTTAL STOP, CANADIAN SYLLABICS FINAL RAISED DOT #
+
+14D1 ; 1421 ; MA # ( ᓑ → ᐡ ) CANADIAN SYLLABICS CARRIER NG → CANADIAN
SYLLABICS FINAL BOTTOM HALF RING #
+
+1540 ; 1429 ; MA # ( ᕀ → ᐩ ) CANADIAN SYLLABICS WEST-CREE Y → CANADIAN
SYLLABICS FINAL PLUS #
+
+143F ; 1432 00B7 ; MA # ( ᐿ → ᐲ· ) CANADIAN SYLLABICS WEST-CREE PWII
→ CANADIAN SYLLABICS PII, MIDDLE DOT # →ᐲᐧ→
+
+1443 ; 1434 00B7 ; MA # ( ᑃ → ᐴ· ) CANADIAN SYLLABICS WEST-CREE PWOO
→ CANADIAN SYLLABICS POO, MIDDLE DOT # →ᐴᐧ→
+
+2369 ; 1435 ; MA #* ( ⍩ → ᐵ ) APL FUNCTIONAL SYMBOL GREATER-THAN
DIAERESIS → CANADIAN SYLLABICS Y-CREE POO #
+
+1447 ; 1439 00B7 ; MA # ( ᑇ → ᐹ· ) CANADIAN SYLLABICS WEST-CREE PWAA
→ CANADIAN SYLLABICS PAA, MIDDLE DOT # →ᐹᐧ→
+
+145C ; 144F 00B7 ; MA # ( ᑜ → ᑏ· ) CANADIAN SYLLABICS WEST-CREE TWII
→ CANADIAN SYLLABICS TII, MIDDLE DOT # →ᑏᐧ→
+
+2E27 ; 1450 ; MA #* ( ⸧ → ᑐ ) RIGHT SIDEWAYS U BRACKET → CANADIAN
SYLLABICS TO # →⊃→
+2283 ; 1450 ; MA #* ( ⊃ → ᑐ ) SUPERSET OF → CANADIAN SYLLABICS TO
#
+
+145E ; 1450 00B7 ; MA # ( ᑞ → ᑐ· ) CANADIAN SYLLABICS WEST-CREE TWO →
CANADIAN SYLLABICS TO, MIDDLE DOT # →ᑐᐧ→
+
+1469 ; 1450 0027 ; MA # ( ᑩ → ᑐ' ) CANADIAN SYLLABICS TTO → CANADIAN
SYLLABICS TO, APOSTROPHE # →ᑐᑊ→
+
+27C9 ; 1450 002F ; MA #* ( ⟉ → ᑐ/ ) SUPERSET PRECEDING SOLIDUS →
CANADIAN SYLLABICS TO, SOLIDUS # →⊃/→
+
+2AD7 ; 1450 1455 ; MA #* ( ⫗ → ᑐᑕ ) SUPERSET BESIDE SUBSET → CANADIAN
SYLLABICS TO, CANADIAN SYLLABICS TA # →⊃⊂→
+
+1460 ; 1451 00B7 ; MA # ( ᑠ → ᑑ· ) CANADIAN SYLLABICS WEST-CREE TWOO
→ CANADIAN SYLLABICS TOO, MIDDLE DOT # →ᑑᐧ→
+
+2E26 ; 1455 ; MA #* ( ⸦ → ᑕ ) LEFT SIDEWAYS U BRACKET → CANADIAN
SYLLABICS TA # →⊂→
+2282 ; 1455 ; MA #* ( ⊂ → ᑕ ) SUBSET OF → CANADIAN SYLLABICS TA #
+
+1462 ; 1455 00B7 ; MA # ( ᑢ → ᑕ· ) CANADIAN SYLLABICS WEST-CREE TWA →
CANADIAN SYLLABICS TA, MIDDLE DOT # →ᑕᐧ→
+
+146A ; 1455 0027 ; MA # ( ᑪ → ᑕ' ) CANADIAN SYLLABICS TTA → CANADIAN
SYLLABICS TA, APOSTROPHE # →ᑕᑊ→
+
+1464 ; 1456 00B7 ; MA # ( ᑤ → ᑖ· ) CANADIAN SYLLABICS WEST-CREE TWAA
→ CANADIAN SYLLABICS TAA, MIDDLE DOT # →ᑖᐧ→
+
+1475 ; 146B 00B7 ; MA # ( ᑵ → ᑫ· ) CANADIAN SYLLABICS WEST-CREE KWE →
CANADIAN SYLLABICS KE, MIDDLE DOT # →ᑫᐧ→
+
+1485 ; 146B 0027 ; MA # ( ᒅ → ᑫ' ) CANADIAN SYLLABICS SOUTH-SLAVEY
KEH → CANADIAN SYLLABICS KE, APOSTROPHE # →ᑫᑊ→
+
+1479 ; 146E 00B7 ; MA # ( ᑹ → ᑮ· ) CANADIAN SYLLABICS WEST-CREE KWII
→ CANADIAN SYLLABICS KII, MIDDLE DOT # →ᑮᐧ→
+
+147D ; 1470 00B7 ; MA # ( ᑽ → ᑰ· ) CANADIAN SYLLABICS WEST-CREE KWOO
→ CANADIAN SYLLABICS KOO, MIDDLE DOT # →ᑰᐧ→
+
+1603 ; 1489 ; MA # ( ᘃ → ᒉ ) CANADIAN SYLLABICS CARRIER NO → CANADIAN
SYLLABICS CE #
+
+1493 ; 1489 00B7 ; MA # ( ᒓ → ᒉ· ) CANADIAN SYLLABICS WEST-CREE CWE →
CANADIAN SYLLABICS CE, MIDDLE DOT # →ᒉᐧ→
+
+1495 ; 148B 00B7 ; MA # ( ᒕ → ᒋ· ) CANADIAN SYLLABICS WEST-CREE CWI →
CANADIAN SYLLABICS CI, MIDDLE DOT # →ᒋᐧ→
+
+1497 ; 148C 00B7 ; MA # ( ᒗ → ᒌ· ) CANADIAN SYLLABICS WEST-CREE CWII
→ CANADIAN SYLLABICS CII, MIDDLE DOT # →ᒌᐧ→
+
+149B ; 148E 00B7 ; MA # ( ᒛ → ᒎ· ) CANADIAN SYLLABICS WEST-CREE CWOO
→ CANADIAN SYLLABICS COO, MIDDLE DOT # →ᒎᐧ→
+
+1602 ; 1490 ; MA # ( ᘂ → ᒐ ) CANADIAN SYLLABICS CARRIER NU → CANADIAN
SYLLABICS CA #
+
+149D ; 1490 00B7 ; MA # ( ᒝ → ᒐ· ) CANADIAN SYLLABICS WEST-CREE CWA →
CANADIAN SYLLABICS CA, MIDDLE DOT # →ᒐᐧ→
+
+149F ; 1491 00B7 ; MA # ( ᒟ → ᒑ· ) CANADIAN SYLLABICS WEST-CREE CWAA
→ CANADIAN SYLLABICS CAA, MIDDLE DOT # →ᒑᐧ→
+
+14AD ; 14A3 00B7 ; MA # ( ᒭ → ᒣ· ) CANADIAN SYLLABICS WEST-CREE MWE →
CANADIAN SYLLABICS ME, MIDDLE DOT # →ᒣᐧ→
+
+14B1 ; 14A6 00B7 ; MA # ( ᒱ → ᒦ· ) CANADIAN SYLLABICS WEST-CREE MWII
→ CANADIAN SYLLABICS MII, MIDDLE DOT # →ᒦᐧ→
+
+14B3 ; 14A7 00B7 ; MA # ( ᒳ → ᒧ· ) CANADIAN SYLLABICS WEST-CREE MWO →
CANADIAN SYLLABICS MO, MIDDLE DOT # →ᒧᐧ→
+
+14B5 ; 14A8 00B7 ; MA # ( ᒵ → ᒨ· ) CANADIAN SYLLABICS WEST-CREE MWOO
→ CANADIAN SYLLABICS MOO, MIDDLE DOT # →ᒨᐧ→
+
+14B9 ; 14AB 00B7 ; MA # ( ᒹ → ᒫ· ) CANADIAN SYLLABICS WEST-CREE MWAA
→ CANADIAN SYLLABICS MAA, MIDDLE DOT # →ᒫᐧ→
+
+14CA ; 14C0 00B7 ; MA # ( ᓊ → ᓀ· ) CANADIAN SYLLABICS WEST-CREE NWE →
CANADIAN SYLLABICS NE, MIDDLE DOT # →ᓀᐧ→
+
+18C7 ; 14C2 00B7 ; MA # ( ᣇ → ᓂ· ) CANADIAN SYLLABICS OJIBWAY NWI →
CANADIAN SYLLABICS NI, MIDDLE DOT # →ᓂᐧ→
+
+18C9 ; 14C3 00B7 ; MA # ( ᣉ → ᓃ· ) CANADIAN SYLLABICS OJIBWAY NWII →
CANADIAN SYLLABICS NII, MIDDLE DOT # →ᓃᐧ→
+
+18CB ; 14C4 00B7 ; MA # ( ᣋ → ᓄ· ) CANADIAN SYLLABICS OJIBWAY NWO →
CANADIAN SYLLABICS NO, MIDDLE DOT # →ᓄᐧ→
+
+18CD ; 14C5 00B7 ; MA # ( ᣍ → ᓅ· ) CANADIAN SYLLABICS OJIBWAY NWOO →
CANADIAN SYLLABICS NOO, MIDDLE DOT # →ᓅᐧ→
+
+14CC ; 14C7 00B7 ; MA # ( ᓌ → ᓇ· ) CANADIAN SYLLABICS WEST-CREE NWA →
CANADIAN SYLLABICS NA, MIDDLE DOT # →ᓇᐧ→
+
+14CE ; 14C8 00B7 ; MA # ( ᓎ → ᓈ· ) CANADIAN SYLLABICS WEST-CREE NWAA
→ CANADIAN SYLLABICS NAA, MIDDLE DOT # →ᓈᐧ→
+
+1604 ; 14D3 ; MA # ( ᘄ → ᓓ ) CANADIAN SYLLABICS CARRIER NE → CANADIAN
SYLLABICS LE #
+
+14DD ; 14D3 00B7 ; MA # ( ᓝ → ᓓ· ) CANADIAN SYLLABICS WEST-CREE LWE →
CANADIAN SYLLABICS LE, MIDDLE DOT # →ᓓᐧ→
+
+14DF ; 14D5 00B7 ; MA # ( ᓟ → ᓕ· ) CANADIAN SYLLABICS WEST-CREE LWI →
CANADIAN SYLLABICS LI, MIDDLE DOT # →ᓕᐧ→
+
+14E1 ; 14D6 00B7 ; MA # ( ᓡ → ᓖ· ) CANADIAN SYLLABICS WEST-CREE LWII
→ CANADIAN SYLLABICS LII, MIDDLE DOT # →ᓖᐧ→
+
+14E3 ; 14D7 00B7 ; MA # ( ᓣ → ᓗ· ) CANADIAN SYLLABICS WEST-CREE LWO →
CANADIAN SYLLABICS LO, MIDDLE DOT # →ᓗᐧ→
+
+14E5 ; 14D8 00B7 ; MA # ( ᓥ → ᓘ· ) CANADIAN SYLLABICS WEST-CREE LWOO
→ CANADIAN SYLLABICS LOO, MIDDLE DOT # →ᓘᐧ→
+
+1607 ; 14DA ; MA # ( ᘇ → ᓚ ) CANADIAN SYLLABICS CARRIER NA → CANADIAN
SYLLABICS LA #
+
+14E7 ; 14DA 00B7 ; MA # ( ᓧ → ᓚ· ) CANADIAN SYLLABICS WEST-CREE LWA →
CANADIAN SYLLABICS LA, MIDDLE DOT # →ᓚᐧ→
+
+14E9 ; 14DB 00B7 ; MA # ( ᓩ → ᓛ· ) CANADIAN SYLLABICS WEST-CREE LWAA
→ CANADIAN SYLLABICS LAA, MIDDLE DOT # →ᓛᐧ→
+
+14F7 ; 14ED 00B7 ; MA # ( ᓷ → ᓭ· ) CANADIAN SYLLABICS WEST-CREE SWE →
CANADIAN SYLLABICS SE, MIDDLE DOT # →ᓭᐧ→
+
+14F9 ; 14EF 00B7 ; MA # ( ᓹ → ᓯ· ) CANADIAN SYLLABICS WEST-CREE SWI →
CANADIAN SYLLABICS SI, MIDDLE DOT # →ᓯᐧ→
+
+14FB ; 14F0 00B7 ; MA # ( ᓻ → ᓰ· ) CANADIAN SYLLABICS WEST-CREE SWII
→ CANADIAN SYLLABICS SII, MIDDLE DOT # →ᓰᐧ→
+
+14FD ; 14F1 00B7 ; MA # ( ᓽ → ᓱ· ) CANADIAN SYLLABICS WEST-CREE SWO →
CANADIAN SYLLABICS SO, MIDDLE DOT # →ᓱᐧ→
+
+14FF ; 14F2 00B7 ; MA # ( ᓿ → ᓲ· ) CANADIAN SYLLABICS WEST-CREE SWOO
→ CANADIAN SYLLABICS SOO, MIDDLE DOT # →ᓲᐧ→
+
+1501 ; 14F4 00B7 ; MA # ( ᔁ → ᓴ· ) CANADIAN SYLLABICS WEST-CREE SWA →
CANADIAN SYLLABICS SA, MIDDLE DOT # →ᓴᐧ→
+
+1503 ; 14F5 00B7 ; MA # ( ᔃ → ᓵ· ) CANADIAN SYLLABICS WEST-CREE SWAA
→ CANADIAN SYLLABICS SAA, MIDDLE DOT # →ᓵᐧ→
+
+150C ; 150B 003C ; MA # ( ᔌ → ᔋ< ) CANADIAN SYLLABICS NASKAPI SPWA →
CANADIAN SYLLABICS NASKAPI S-W, LESS-THAN SIGN # →ᔋᐸ→
+
+150E ; 150B 0062 ; MA # ( ᔎ → ᔋb ) CANADIAN SYLLABICS NASKAPI SKWA →
CANADIAN SYLLABICS NASKAPI S-W, LATIN SMALL LETTER B # →ᔋᑲ→
+
+150D ; 150B 1455 ; MA # ( ᔍ → ᔋᑕ ) CANADIAN SYLLABICS NASKAPI STWA →
CANADIAN SYLLABICS NASKAPI S-W, CANADIAN SYLLABICS TA #
+
+150F ; 150B 1490 ; MA # ( ᔏ → ᔋᒐ ) CANADIAN SYLLABICS NASKAPI SCWA →
CANADIAN SYLLABICS NASKAPI S-W, CANADIAN SYLLABICS CA #
+
+1518 ; 1510 00B7 ; MA # ( ᔘ → ᔐ· ) CANADIAN SYLLABICS WEST-CREE SHWE
→ CANADIAN SYLLABICS SHE, MIDDLE DOT # →ᔐᐧ→
+
+151A ; 1511 00B7 ; MA # ( ᔚ → ᔑ· ) CANADIAN SYLLABICS WEST-CREE SHWI
→ CANADIAN SYLLABICS SHI, MIDDLE DOT # →ᔑᐧ→
+
+151C ; 1512 00B7 ; MA # ( ᔜ → ᔒ· ) CANADIAN SYLLABICS WEST-CREE SHWII
→ CANADIAN SYLLABICS SHII, MIDDLE DOT # →ᔒᐧ→
+
+151E ; 1513 00B7 ; MA # ( ᔞ → ᔓ· ) CANADIAN SYLLABICS WEST-CREE SHWO
→ CANADIAN SYLLABICS SHO, MIDDLE DOT # →ᔓᐧ→
+
+1520 ; 1514 00B7 ; MA # ( ᔠ → ᔔ· ) CANADIAN SYLLABICS WEST-CREE SHWOO
→ CANADIAN SYLLABICS SHOO, MIDDLE DOT # →ᔔᐧ→
+
+1522 ; 1515 00B7 ; MA # ( ᔢ → ᔕ· ) CANADIAN SYLLABICS WEST-CREE SHWA
→ CANADIAN SYLLABICS SHA, MIDDLE DOT # →ᔕᐧ→
+
+1524 ; 1516 00B7 ; MA # ( ᔤ → ᔖ· ) CANADIAN SYLLABICS WEST-CREE SHWAA
→ CANADIAN SYLLABICS SHAA, MIDDLE DOT # →ᔖᐧ→
+
+1532 ; 1528 00B7 ; MA # ( ᔲ → ᔨ· ) CANADIAN SYLLABICS WEST-CREE YWI →
CANADIAN SYLLABICS YI, MIDDLE DOT # →ᔨᐧ→
+
+1534 ; 1529 00B7 ; MA # ( ᔴ → ᔩ· ) CANADIAN SYLLABICS WEST-CREE YWII
→ CANADIAN SYLLABICS YII, MIDDLE DOT # →ᔩᐧ→
+
+1536 ; 152A 00B7 ; MA # ( ᔶ → ᔪ· ) CANADIAN SYLLABICS WEST-CREE YWO →
CANADIAN SYLLABICS YO, MIDDLE DOT # →ᔪᐧ→
+
+1538 ; 152B 00B7 ; MA # ( ᔸ → ᔫ· ) CANADIAN SYLLABICS WEST-CREE YWOO
→ CANADIAN SYLLABICS YOO, MIDDLE DOT # →ᔫᐧ→
+
+153A ; 152D 00B7 ; MA # ( ᔺ → ᔭ· ) CANADIAN SYLLABICS WEST-CREE YWA →
CANADIAN SYLLABICS YA, MIDDLE DOT # →ᔭᐧ→
+
+153C ; 152E 00B7 ; MA # ( ᔼ → ᔮ· ) CANADIAN SYLLABICS WEST-CREE YWAA
→ CANADIAN SYLLABICS YAA, MIDDLE DOT # →ᔮᐧ→
+
+1622 ; 1543 ; MA # ( ᘢ → ᕃ ) CANADIAN SYLLABICS CARRIER LU → CANADIAN
SYLLABICS R-CREE RE #
+
+18E0 ; 1543 00B7 ; MA # ( ᣠ → ᕃ· ) CANADIAN SYLLABICS R-CREE RWE →
CANADIAN SYLLABICS R-CREE RE, MIDDLE DOT # →ᕃᐧ→
+
+1623 ; 1546 ; MA # ( ᘣ → ᕆ ) CANADIAN SYLLABICS CARRIER LO → CANADIAN
SYLLABICS RI #
+
+1624 ; 154A ; MA # ( ᘤ → ᕊ ) CANADIAN SYLLABICS CARRIER LE → CANADIAN
SYLLABICS WEST-CREE LO #
+
+154F ; 154C 00B7 ; MA # ( ᕏ → ᕌ· ) CANADIAN SYLLABICS WEST-CREE RWAA
→ CANADIAN SYLLABICS RAA, MIDDLE DOT # →ᕌᐧ→
+
+1583 ; 1550 0062 ; MA # ( ᖃ → ᕐb ) CANADIAN SYLLABICS QA → CANADIAN
SYLLABICS R, LATIN SMALL LETTER B # →ᕐᑲ→
+
+1584 ; 1550 0062 0307 ; MA # ( ᖄ → ᕐḃ ) CANADIAN SYLLABICS QAA →
CANADIAN SYLLABICS R, LATIN SMALL LETTER B, COMBINING DOT ABOVE # →ᕐᑳ→
+
+1581 ; 1550 0064 ; MA # ( ᖁ → ᕐd ) CANADIAN SYLLABICS QO → CANADIAN
SYLLABICS R, LATIN SMALL LETTER D # →ᕐᑯ→
+
+157F ; 1550 0050 ; MA # ( ᕿ → ᕐP ) CANADIAN SYLLABICS QI → CANADIAN
SYLLABICS R, LATIN CAPITAL LETTER P # →ᕐᑭ→
+
+166F ; 1550 146B ; MA # ( ᙯ → ᕐᑫ ) CANADIAN SYLLABICS QAI → CANADIAN
SYLLABICS R, CANADIAN SYLLABICS KE #
+
+157E ; 1550 146C ; MA # ( ᕾ → ᕐᑬ ) CANADIAN SYLLABICS QAAI → CANADIAN
SYLLABICS R, CANADIAN SYLLABICS KAAI #
+
+1580 ; 1550 146E ; MA # ( ᖀ → ᕐᑮ ) CANADIAN SYLLABICS QII → CANADIAN
SYLLABICS R, CANADIAN SYLLABICS KII #
+
+1582 ; 1550 1470 ; MA # ( ᖂ → ᕐᑰ ) CANADIAN SYLLABICS QOO → CANADIAN
SYLLABICS R, CANADIAN SYLLABICS KOO #
+
+1585 ; 1550 1483 ; MA # ( ᖅ → ᕐᒃ ) CANADIAN SYLLABICS Q → CANADIAN
SYLLABICS R, CANADIAN SYLLABICS K #
+
+155C ; 155A 00B7 ; MA # ( ᕜ → ᕚ· ) CANADIAN SYLLABICS WEST-CREE FWAA
→ CANADIAN SYLLABICS FAA, MIDDLE DOT # →ᕚᐧ→
+
+18E3 ; 155E 00B7 ; MA # ( ᣣ → ᕞ· ) CANADIAN SYLLABICS THWE → CANADIAN
SYLLABICS THE, MIDDLE DOT # →ᕞᐧ→
+
+18E4 ; 1566 00B7 ; MA # ( ᣤ → ᕦ· ) CANADIAN SYLLABICS THWA → CANADIAN
SYLLABICS THA, MIDDLE DOT # →ᕦᐧ→
+
+1569 ; 1567 00B7 ; MA # ( ᕩ → ᕧ· ) CANADIAN SYLLABICS WEST-CREE THWAA
→ CANADIAN SYLLABICS THAA, MIDDLE DOT # →ᕧᐧ→
+
+18E5 ; 156B 00B7 ; MA # ( ᣥ → ᕫ· ) CANADIAN SYLLABICS TTHWE →
CANADIAN SYLLABICS TTHE, MIDDLE DOT # →ᕫᐧ→
+
+18E8 ; 1586 00B7 ; MA # ( ᣨ → ᖆ· ) CANADIAN SYLLABICS TLHWE →
CANADIAN SYLLABICS TLHE, MIDDLE DOT # →ᖆᐧ→
+
+1591 ; 1595 004A ; MA # ( ᖑ → ᖕJ ) CANADIAN SYLLABICS NGO → CANADIAN
SYLLABICS NG, LATIN CAPITAL LETTER J # →ᖕᒍ→
+
+1670 ; 1595 1489 ; MA # ( ᙰ → ᖕᒉ ) CANADIAN SYLLABICS NGAI → CANADIAN
SYLLABICS NG, CANADIAN SYLLABICS CE #
+
+158E ; 1595 148A ; MA # ( ᖎ → ᖕᒊ ) CANADIAN SYLLABICS NGAAI →
CANADIAN SYLLABICS NG, CANADIAN SYLLABICS CAAI #
+
+158F ; 1595 148B ; MA # ( ᖏ → ᖕᒋ ) CANADIAN SYLLABICS NGI → CANADIAN
SYLLABICS NG, CANADIAN SYLLABICS CI #
+
+1590 ; 1595 148C ; MA # ( ᖐ → ᖕᒌ ) CANADIAN SYLLABICS NGII → CANADIAN
SYLLABICS NG, CANADIAN SYLLABICS CII #
+
+1592 ; 1595 148E ; MA # ( ᖒ → ᖕᒎ ) CANADIAN SYLLABICS NGOO → CANADIAN
SYLLABICS NG, CANADIAN SYLLABICS COO #
+
+1593 ; 1595 1490 ; MA # ( ᖓ → ᖕᒐ ) CANADIAN SYLLABICS NGA → CANADIAN
SYLLABICS NG, CANADIAN SYLLABICS CA #
+
+1594 ; 1595 1491 ; MA # ( ᖔ → ᖕᒑ ) CANADIAN SYLLABICS NGAA → CANADIAN
SYLLABICS NG, CANADIAN SYLLABICS CAA #
+
+1673 ; 1596 004A ; MA # ( ᙳ → ᖖJ ) CANADIAN SYLLABICS NNGO → CANADIAN
SYLLABICS NNG, LATIN CAPITAL LETTER J # →ᖖᒍ→
+
+1671 ; 1596 148B ; MA # ( ᙱ → ᖖᒋ ) CANADIAN SYLLABICS NNGI → CANADIAN
SYLLABICS NNG, CANADIAN SYLLABICS CI #
+
+1672 ; 1596 148C ; MA # ( ᙲ → ᖖᒌ ) CANADIAN SYLLABICS NNGII →
CANADIAN SYLLABICS NNG, CANADIAN SYLLABICS CII #
+
+1674 ; 1596 148E ; MA # ( ᙴ → ᖖᒎ ) CANADIAN SYLLABICS NNGOO →
CANADIAN SYLLABICS NNG, CANADIAN SYLLABICS COO #
+
+1675 ; 1596 1490 ; MA # ( ᙵ → ᖖᒐ ) CANADIAN SYLLABICS NNGA → CANADIAN
SYLLABICS NNG, CANADIAN SYLLABICS CA #
+
+1676 ; 1596 1491 ; MA # ( ᙶ → ᖖᒑ ) CANADIAN SYLLABICS NNGAA →
CANADIAN SYLLABICS NNG, CANADIAN SYLLABICS CAA #
+
+18EA ; 1597 00B7 ; MA # ( ᣪ → ᖗ· ) CANADIAN SYLLABICS SAYISI SHWE →
CANADIAN SYLLABICS SAYISI SHE, MIDDLE DOT # →ᖗᐧ→
+
+1677 ; 15A7 00B7 ; MA # ( ᙷ → ᖧ· ) CANADIAN SYLLABICS WOODS-CREE
THWEE → CANADIAN SYLLABICS TH-CREE THE, MIDDLE DOT # →ᖧᐧ→
+
+1678 ; 15A8 00B7 ; MA # ( ᙸ → ᖨ· ) CANADIAN SYLLABICS WOODS-CREE THWI
→ CANADIAN SYLLABICS TH-CREE THI, MIDDLE DOT # →ᖨᐧ→
+
+1679 ; 15A9 00B7 ; MA # ( ᙹ → ᖩ· ) CANADIAN SYLLABICS WOODS-CREE
THWII → CANADIAN SYLLABICS TH-CREE THII, MIDDLE DOT # →ᖩᐧ→
+
+167A ; 15AA 00B7 ; MA # ( ᙺ → ᖪ· ) CANADIAN SYLLABICS WOODS-CREE THWO
→ CANADIAN SYLLABICS TH-CREE THO, MIDDLE DOT # →ᖪᐧ→
+
+167B ; 15AB 00B7 ; MA # ( ᙻ → ᖫ· ) CANADIAN SYLLABICS WOODS-CREE
THWOO → CANADIAN SYLLABICS TH-CREE THOO, MIDDLE DOT # →ᖫᐧ→
+
+167C ; 15AC 00B7 ; MA # ( ᙼ → ᖬ· ) CANADIAN SYLLABICS WOODS-CREE THWA
→ CANADIAN SYLLABICS TH-CREE THA, MIDDLE DOT # →ᖬᐧ→
+
+167D ; 15AD 00B7 ; MA # ( ᙽ → ᖭ· ) CANADIAN SYLLABICS WOODS-CREE
THWAA → CANADIAN SYLLABICS TH-CREE THAA, MIDDLE DOT # →ᖭᐧ→
+
+2AAB ; 15D2 ; MA #* ( ⪫ → ᗒ ) LARGER THAN → CANADIAN SYLLABICS CARRIER
WE #
+
+2AAA ; 15D5 ; MA #* ( ⪪ → ᗕ ) SMALLER THAN → CANADIAN SYLLABICS CARRIER
WA #
+
+A4F7 ; 15E1 ; MA # ( ꓷ → ᗡ ) LISU LETTER OE → CANADIAN SYLLABICS CARRIER
THA #
+
+18F0 ; 15F4 00B7 ; MA # ( ᣰ → ᗴ· ) CANADIAN SYLLABICS CARRIER GWA →
CANADIAN SYLLABICS CARRIER GA, MIDDLE DOT # →ᗴᐧ→
+
+18F2 ; 161B 00B7 ; MA # ( ᣲ → ᘛ· ) CANADIAN SYLLABICS CARRIER JWA →
CANADIAN SYLLABICS CARRIER JA, MIDDLE DOT # →ᘛᐧ→
+
+1DBB ; 1646 ; MA # ( ᶻ → ᙆ ) MODIFIER LETTER SMALL Z → CANADIAN
SYLLABICS CARRIER Z #
+
+A4ED ; 1660 ; MA # ( ꓭ → ᙠ ) LISU LETTER GHA → CANADIAN SYLLABICS
CARRIER TSA #
+
+1DBA ; 18D4 ; MA # ( ᶺ → ᣔ ) MODIFIER LETTER SMALL TURNED V → CANADIAN
SYLLABICS OJIBWAY P #
+
+1D3E ; 18D6 ; MA # ( ᴾ → ᣖ ) MODIFIER LETTER CAPITAL P → CANADIAN
SYLLABICS OJIBWAY K #
+
+18DC ; 18DF 141E ; MA # ( ᣜ → ᣟᐞ ) CANADIAN SYLLABICS EASTERN W →
CANADIAN SYLLABICS FINAL RAISED DOT, CANADIAN SYLLABICS GLOTTAL STOP #
+
+02E1 ; 18F3 ; MA # ( ˡ → ᣳ ) MODIFIER LETTER SMALL L → CANADIAN
SYLLABICS BEAVER DENE L #
+
+02B3 ; 18F4 ; MA # ( ʳ → ᣴ ) MODIFIER LETTER SMALL R → CANADIAN
SYLLABICS BEAVER DENE R #
+
+02E2 ; 18F5 ; MA # ( ˢ → ᣵ ) MODIFIER LETTER SMALL S → CANADIAN
SYLLABICS CARRIER DENTAL S #
+18DB ; 18F5 ; MA # ( ᣛ → ᣵ ) CANADIAN SYLLABICS OJIBWAY SH → CANADIAN
SYLLABICS CARRIER DENTAL S # →ˢ→
+
+A6B0 ; 16B9 ; MA # ( ꚰ → ᚹ ) BAMUM LETTER TAA → RUNIC LETTER WUNJO WYNN
W #
+
+16E1 ; 16BC ; MA # ( ᛡ → ᚼ ) RUNIC LETTER IOR → RUNIC LETTER
LONG-BRANCH-HAGALL H #
+
+237F ; 16BD ; MA #* ( ⍿ → ᚽ ) VERTICAL LINE WITH MIDDLE DOT → RUNIC
LETTER SHORT-TWIG-HAGALL H # →ᛂ→
+16C2 ; 16BD ; MA # ( ᛂ → ᚽ ) RUNIC LETTER E → RUNIC LETTER
SHORT-TWIG-HAGALL H #
+
+1D23F ; 16CB ; MA #* ( 𝈿 → ᛋ ) GREEK INSTRUMENTAL NOTATION
SYMBOL-52 → RUNIC LETTER SIGEL LONG-BRANCH-SOL S #
+
+2191 ; 16CF ; MA #* ( ↑ → ᛏ ) UPWARDS ARROW → RUNIC LETTER TIWAZ TIR TYR
T #
+
+21BF ; 16D0 ; MA #* ( ↿ → ᛐ ) UPWARDS HARPOON WITH BARB LEFTWARDS →
RUNIC LETTER SHORT-TWIG-TYR T #
+
+296E ; 16D0 21C2 ; MA #* ( ⥮ → ᛐ⇂ ) UPWARDS HARPOON WITH BARB LEFT
BESIDE DOWNWARDS HARPOON WITH BARB RIGHT → RUNIC LETTER SHORT-TWIG-TYR T,
DOWNWARDS HARPOON WITH BARB RIGHTWARDS # →↿⇂→
+
+2963 ; 16D0 16DA ; MA #* ( ⥣ → ᛐᛚ ) UPWARDS HARPOON WITH BARB LEFT
BESIDE UPWARDS HARPOON WITH BARB RIGHT → RUNIC LETTER SHORT-TWIG-TYR T, RUNIC
LETTER LAUKAZ LAGU LOGR L # →↿↾→
+
+2D63 ; 16EF ; MA # ( ⵣ → ᛯ ) TIFINAGH LETTER YAZ → RUNIC TVIMADUR SYMBOL
#
+
+21BE ; 16DA ; MA #* ( ↾ → ᛚ ) UPWARDS HARPOON WITH BARB RIGHTWARDS →
RUNIC LETTER LAUKAZ LAGU LOGR L #
+2A21 ; 16DA ; MA #* ( ⨡ → ᛚ ) Z NOTATION SCHEMA PROJECTION → RUNIC
LETTER LAUKAZ LAGU LOGR L # →↾→
+
+22C4 ; 16DC ; MA #* ( ⋄ → ᛜ ) DIAMOND OPERATOR → RUNIC LETTER INGWAZ
# →◇→
+25C7 ; 16DC ; MA #* ( ◇ → ᛜ ) WHITE DIAMOND → RUNIC LETTER INGWAZ
#
+25CA ; 16DC ; MA #* ( ◊ → ᛜ ) LOZENGE → RUNIC LETTER INGWAZ # →⋄→→◇→
+2662 ; 16DC ; MA #* ( ♢ → ᛜ ) WHITE DIAMOND SUIT → RUNIC LETTER INGWAZ
# →◊→→⋄→→◇→
+1F754 ; 16DC ; MA #* ( 🝔 → ᛜ ) ALCHEMICAL SYMBOL FOR SOAP → RUNIC
LETTER INGWAZ # →◇→
+118B7 ; 16DC ; MA # ( 𑢷 → ᛜ ) WARANG CITI CAPITAL LETTER BU →
RUNIC LETTER INGWAZ # →◇→
+10294 ; 16DC ; MA # ( 𐊔 → ᛜ ) LYCIAN LETTER KK → RUNIC LETTER
INGWAZ # →◇→
+
+235A ; 16DC 0332 ; MA #* ( ⍚ → ᛜ̲ ) APL FUNCTIONAL SYMBOL DIAMOND
UNDERBAR → RUNIC LETTER INGWAZ, COMBINING LOW LINE # →◇̲→
+
+22C8 ; 16DE ; MA #* ( ⋈ → ᛞ ) BOWTIE → RUNIC LETTER DAGAZ DAEG D #
+2A1D ; 16DE ; MA #* ( ⨝ → ᛞ ) JOIN → RUNIC LETTER DAGAZ DAEG D # →⋈→
+
+104D0 ; 16E6 ; MA # ( 𐓐 → ᛦ ) OSAGE CAPITAL LETTER KHA → RUNIC
LETTER LONG-BRANCH-YR #
+
+2195 ; 16E8 ; MA #* ( ↕ → ᛨ ) UP DOWN ARROW → RUNIC LETTER ICELANDIC-YR
#
+
+10CFC ; 10C82 ; MA #* ( 𐳼 → 𐲂 ) OLD HUNGARIAN NUMBER TEN → OLD
HUNGARIAN CAPITAL LETTER EB #
+
+10CFA ; 10CA5 ; MA #* ( 𐳺 → 𐲥 ) OLD HUNGARIAN NUMBER ONE → OLD
HUNGARIAN CAPITAL LETTER ESZ #
+
+3131 ; 1100 ; MA # ( ㄱ → ᄀ ) HANGUL LETTER KIYEOK → HANGUL CHOSEONG
KIYEOK #
+11A8 ; 1100 ; MA # ( ᆨ → ᄀ ) HANGUL JONGSEONG KIYEOK → HANGUL CHOSEONG
KIYEOK #
+
+1101 ; 1100 1100 ; MA # ( ᄁ → ᄀᄀ ) HANGUL CHOSEONG SSANGKIYEOK →
HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG KIYEOK #
+3132 ; 1100 1100 ; MA # ( ㄲ → ᄀᄀ ) HANGUL LETTER SSANGKIYEOK → HANGUL
CHOSEONG KIYEOK, HANGUL CHOSEONG KIYEOK # →ᄁ→
+11A9 ; 1100 1100 ; MA # ( ᆩ → ᄀᄀ ) HANGUL JONGSEONG SSANGKIYEOK →
HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG KIYEOK # →ᄁ→
+
+11FA ; 1100 1102 ; MA # ( ᇺ → ᄀᄂ ) HANGUL JONGSEONG KIYEOK-NIEUN →
HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG NIEUN # →ᆨᆫ→
+
+115A ; 1100 1103 ; MA # ( ᅚ → ᄀᄃ ) HANGUL CHOSEONG KIYEOK-TIKEUT →
HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG TIKEUT #
+
+11C3 ; 1100 1105 ; MA # ( ᇃ → ᄀᄅ ) HANGUL JONGSEONG KIYEOK-RIEUL →
HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG RIEUL # →ᆨᆯ→
+
+11FB ; 1100 1107 ; MA # ( ᇻ → ᄀᄇ ) HANGUL JONGSEONG KIYEOK-PIEUP →
HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG PIEUP # →ᆨᆸ→
+
+11AA ; 1100 1109 ; MA # ( ᆪ → ᄀᄉ ) HANGUL JONGSEONG KIYEOK-SIOS →
HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG SIOS # →ᆨᆺ→
+3133 ; 1100 1109 ; MA # ( ㄳ → ᄀᄉ ) HANGUL LETTER KIYEOK-SIOS → HANGUL
CHOSEONG KIYEOK, HANGUL CHOSEONG SIOS # →ᆪ→→ᆨᆺ→
+
+11C4 ; 1100 1109 1100 ; MA # ( ᇄ → ᄀᄉᄀ ) HANGUL JONGSEONG
KIYEOK-SIOS-KIYEOK → HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG SIOS, HANGUL
CHOSEONG KIYEOK # →ᆨᆺᆨ→
+
+11FC ; 1100 110E ; MA # ( ᇼ → ᄀᄎ ) HANGUL JONGSEONG KIYEOK-CHIEUCH →
HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG CHIEUCH # →ᆨᆾ→
+
+11FD ; 1100 110F ; MA # ( ᇽ → ᄀᄏ ) HANGUL JONGSEONG KIYEOK-KHIEUKH →
HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG KHIEUKH # →ᆨᆿ→
+
+11FE ; 1100 1112 ; MA # ( ᇾ → ᄀᄒ ) HANGUL JONGSEONG KIYEOK-HIEUH →
HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG HIEUH # →ᆨᇂ→
+
+3134 ; 1102 ; MA # ( ㄴ → ᄂ ) HANGUL LETTER NIEUN → HANGUL CHOSEONG NIEUN
#
+11AB ; 1102 ; MA # ( ᆫ → ᄂ ) HANGUL JONGSEONG NIEUN → HANGUL CHOSEONG
NIEUN #
+
+1113 ; 1102 1100 ; MA # ( ᄓ → ᄂᄀ ) HANGUL CHOSEONG NIEUN-KIYEOK →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG KIYEOK #
+11C5 ; 1102 1100 ; MA # ( ᇅ → ᄂᄀ ) HANGUL JONGSEONG NIEUN-KIYEOK →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG KIYEOK # →ᄓ→
+
+1114 ; 1102 1102 ; MA # ( ᄔ → ᄂᄂ ) HANGUL CHOSEONG SSANGNIEUN →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG NIEUN #
+3165 ; 1102 1102 ; MA # ( ㅥ → ᄂᄂ ) HANGUL LETTER SSANGNIEUN → HANGUL
CHOSEONG NIEUN, HANGUL CHOSEONG NIEUN # →ᄔ→
+11FF ; 1102 1102 ; MA # ( ᇿ → ᄂᄂ ) HANGUL JONGSEONG SSANGNIEUN →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG NIEUN # →ᆫᆫ→
+
+1115 ; 1102 1103 ; MA # ( ᄕ → ᄂᄃ ) HANGUL CHOSEONG NIEUN-TIKEUT →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG TIKEUT #
+3166 ; 1102 1103 ; MA # ( ㅦ → ᄂᄃ ) HANGUL LETTER NIEUN-TIKEUT →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG TIKEUT # →ᄕ→
+11C6 ; 1102 1103 ; MA # ( ᇆ → ᄂᄃ ) HANGUL JONGSEONG NIEUN-TIKEUT →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG TIKEUT # →ᄕ→
+
+D7CB ; 1102 1105 ; MA # ( ퟋ → ᄂᄅ ) HANGUL JONGSEONG NIEUN-RIEUL →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG RIEUL # →ᆫᆯ→
+
+1116 ; 1102 1107 ; MA # ( ᄖ → ᄂᄇ ) HANGUL CHOSEONG NIEUN-PIEUP →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG PIEUP #
+
+115B ; 1102 1109 ; MA # ( ᅛ → ᄂᄉ ) HANGUL CHOSEONG NIEUN-SIOS →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG SIOS #
+11C7 ; 1102 1109 ; MA # ( ᇇ → ᄂᄉ ) HANGUL JONGSEONG NIEUN-SIOS →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG SIOS # →ᆫᆺ→
+3167 ; 1102 1109 ; MA # ( ㅧ → ᄂᄉ ) HANGUL LETTER NIEUN-SIOS → HANGUL
CHOSEONG NIEUN, HANGUL CHOSEONG SIOS # →ᇇ→→ᆫᆺ→
+
+115C ; 1102 110C ; MA # ( ᅜ → ᄂᄌ ) HANGUL CHOSEONG NIEUN-CIEUC →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG CIEUC #
+11AC ; 1102 110C ; MA # ( ᆬ → ᄂᄌ ) HANGUL JONGSEONG NIEUN-CIEUC →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG CIEUC # →ᆫᆽ→
+3135 ; 1102 110C ; MA # ( ㄵ → ᄂᄌ ) HANGUL LETTER NIEUN-CIEUC → HANGUL
CHOSEONG NIEUN, HANGUL CHOSEONG CIEUC # →ᆬ→→ᆫᆽ→
+
+D7CC ; 1102 110E ; MA # ( ퟌ → ᄂᄎ ) HANGUL JONGSEONG NIEUN-CHIEUCH →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG CHIEUCH # →ᆫᆾ→
+
+11C9 ; 1102 1110 ; MA # ( ᇉ → ᄂᄐ ) HANGUL JONGSEONG NIEUN-THIEUTH →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG THIEUTH # →ᆫᇀ→
+
+115D ; 1102 1112 ; MA # ( ᅝ → ᄂᄒ ) HANGUL CHOSEONG NIEUN-HIEUH →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG HIEUH #
+11AD ; 1102 1112 ; MA # ( ᆭ → ᄂᄒ ) HANGUL JONGSEONG NIEUN-HIEUH →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG HIEUH # →ᆫᇂ→
+3136 ; 1102 1112 ; MA # ( ㄶ → ᄂᄒ ) HANGUL LETTER NIEUN-HIEUH → HANGUL
CHOSEONG NIEUN, HANGUL CHOSEONG HIEUH # →ᆭ→→ᆫᇂ→
+
+11C8 ; 1102 1140 ; MA # ( ᇈ → ᄂᅀ ) HANGUL JONGSEONG NIEUN-PANSIOS →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG PANSIOS # →ᆫᇫ→
+3168 ; 1102 1140 ; MA # ( ㅨ → ᄂᅀ ) HANGUL LETTER NIEUN-PANSIOS →
HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG PANSIOS # →ᇈ→→ᆫᇫ→
+
+3137 ; 1103 ; MA # ( ㄷ → ᄃ ) HANGUL LETTER TIKEUT → HANGUL CHOSEONG
TIKEUT #
+11AE ; 1103 ; MA # ( ᆮ → ᄃ ) HANGUL JONGSEONG TIKEUT → HANGUL CHOSEONG
TIKEUT #
+
+1117 ; 1103 1100 ; MA # ( ᄗ → ᄃᄀ ) HANGUL CHOSEONG TIKEUT-KIYEOK →
HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG KIYEOK #
+11CA ; 1103 1100 ; MA # ( ᇊ → ᄃᄀ ) HANGUL JONGSEONG TIKEUT-KIYEOK →
HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG KIYEOK # →ᄗ→
+
+1104 ; 1103 1103 ; MA # ( ᄄ → ᄃᄃ ) HANGUL CHOSEONG SSANGTIKEUT →
HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG TIKEUT #
+3138 ; 1103 1103 ; MA # ( ㄸ → ᄃᄃ ) HANGUL LETTER SSANGTIKEUT → HANGUL
CHOSEONG TIKEUT, HANGUL CHOSEONG TIKEUT # →ᄄ→
+D7CD ; 1103 1103 ; MA # ( ퟍ → ᄃᄃ ) HANGUL JONGSEONG SSANGTIKEUT →
HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG TIKEUT # →ᆮᆮ→
+
+D7CE ; 1103 1103 1107 ; MA # ( ퟎ → ᄃᄃᄇ ) HANGUL JONGSEONG
SSANGTIKEUT-PIEUP → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG TIKEUT, HANGUL
CHOSEONG PIEUP # →ᆮᆮᆸ→
+
+115E ; 1103 1105 ; MA # ( ᅞ → ᄃᄅ ) HANGUL CHOSEONG TIKEUT-RIEUL →
HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG RIEUL #
+11CB ; 1103 1105 ; MA # ( ᇋ → ᄃᄅ ) HANGUL JONGSEONG TIKEUT-RIEUL →
HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG RIEUL # →ᆮᆯ→
+
+A960 ; 1103 1106 ; MA # ( ꥠ → ᄃᄆ ) HANGUL CHOSEONG TIKEUT-MIEUM →
HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG MIEUM #
+
+A961 ; 1103 1107 ; MA # ( ꥡ → ᄃᄇ ) HANGUL CHOSEONG TIKEUT-PIEUP →
HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG PIEUP #
+D7CF ; 1103 1107 ; MA # ( ퟏ → ᄃᄇ ) HANGUL JONGSEONG TIKEUT-PIEUP →
HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG PIEUP # →ᆮᆸ→
+
+A962 ; 1103 1109 ; MA # ( ꥢ → ᄃᄉ ) HANGUL CHOSEONG TIKEUT-SIOS →
HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG SIOS #
+D7D0 ; 1103 1109 ; MA # ( ퟐ → ᄃᄉ ) HANGUL JONGSEONG TIKEUT-SIOS →
HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG SIOS # →ᆮᆺ→
+
+D7D1 ; 1103 1109 1100 ; MA # ( ퟑ → ᄃᄉᄀ ) HANGUL JONGSEONG
TIKEUT-SIOS-KIYEOK → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG SIOS, HANGUL
CHOSEONG KIYEOK # →ᆮᆺᆨ→
+
+A963 ; 1103 110C ; MA # ( ꥣ → ᄃᄌ ) HANGUL CHOSEONG TIKEUT-CIEUC →
HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG CIEUC #
+D7D2 ; 1103 110C ; MA # ( ퟒ → ᄃᄌ ) HANGUL JONGSEONG TIKEUT-CIEUC →
HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG CIEUC # →ᆮᆽ→
+
+D7D3 ; 1103 110E ; MA # ( ퟓ → ᄃᄎ ) HANGUL JONGSEONG TIKEUT-CHIEUCH →
HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG CHIEUCH # →ᆮᆾ→
+
+D7D4 ; 1103 1110 ; MA # ( ퟔ → ᄃᄐ ) HANGUL JONGSEONG TIKEUT-THIEUTH →
HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG THIEUTH # →ᆮᇀ→
+
+3139 ; 1105 ; MA # ( ㄹ → ᄅ ) HANGUL LETTER RIEUL → HANGUL CHOSEONG RIEUL
#
+11AF ; 1105 ; MA # ( ᆯ → ᄅ ) HANGUL JONGSEONG RIEUL → HANGUL CHOSEONG
RIEUL #
+
+A964 ; 1105 1100 ; MA # ( ꥤ → ᄅᄀ ) HANGUL CHOSEONG RIEUL-KIYEOK →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK #
+11B0 ; 1105 1100 ; MA # ( ᆰ → ᄅᄀ ) HANGUL JONGSEONG RIEUL-KIYEOK →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK # →ᆯᆨ→
+313A ; 1105 1100 ; MA # ( ㄺ → ᄅᄀ ) HANGUL LETTER RIEUL-KIYEOK →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK # →ᆰ→→ᆯᆨ→
+
+A965 ; 1105 1100 1100 ; MA # ( ꥥ → ᄅᄀᄀ ) HANGUL CHOSEONG
RIEUL-SSANGKIYEOK → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK, HANGUL
CHOSEONG KIYEOK #
+D7D5 ; 1105 1100 1100 ; MA # ( ퟕ → ᄅᄀᄀ ) HANGUL JONGSEONG
RIEUL-SSANGKIYEOK → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK, HANGUL
CHOSEONG KIYEOK # →ᆯᆨᆨ→
+
+11CC ; 1105 1100 1109 ; MA # ( ᇌ → ᄅᄀᄉ ) HANGUL JONGSEONG
RIEUL-KIYEOK-SIOS → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK, HANGUL
CHOSEONG SIOS # →ᆯᆨᆺ→
+3169 ; 1105 1100 1109 ; MA # ( ㅩ → ᄅᄀᄉ ) HANGUL LETTER
RIEUL-KIYEOK-SIOS → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK, HANGUL
CHOSEONG SIOS # →ᇌ→→ᆯᆨᆺ→
+
+D7D6 ; 1105 1100 1112 ; MA # ( ퟖ → ᄅᄀᄒ ) HANGUL JONGSEONG
RIEUL-KIYEOK-HIEUH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK, HANGUL
CHOSEONG HIEUH # →ᆯᆨᇂ→
+
+1118 ; 1105 1102 ; MA # ( ᄘ → ᄅᄂ ) HANGUL CHOSEONG RIEUL-NIEUN →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG NIEUN #
+11CD ; 1105 1102 ; MA # ( ᇍ → ᄅᄂ ) HANGUL JONGSEONG RIEUL-NIEUN →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG NIEUN # →ᄘ→
+
+A966 ; 1105 1103 ; MA # ( ꥦ → ᄅᄃ ) HANGUL CHOSEONG RIEUL-TIKEUT →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG TIKEUT #
+11CE ; 1105 1103 ; MA # ( ᇎ → ᄅᄃ ) HANGUL JONGSEONG RIEUL-TIKEUT →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG TIKEUT # →ᆯᆮ→
+316A ; 1105 1103 ; MA # ( ㅪ → ᄅᄃ ) HANGUL LETTER RIEUL-TIKEUT →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG TIKEUT # →ᇎ→→ᆯᆮ→
+
+A967 ; 1105 1103 1103 ; MA # ( ꥧ → ᄅᄃᄃ ) HANGUL CHOSEONG
RIEUL-SSANGTIKEUT → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG TIKEUT, HANGUL
CHOSEONG TIKEUT #
+
+11CF ; 1105 1103 1112 ; MA # ( ᇏ → ᄅᄃᄒ ) HANGUL JONGSEONG
RIEUL-TIKEUT-HIEUH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG TIKEUT, HANGUL
CHOSEONG HIEUH # →ᆯᆮᇂ→
+
+1119 ; 1105 1105 ; MA # ( ᄙ → ᄅᄅ ) HANGUL CHOSEONG SSANGRIEUL →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG RIEUL #
+11D0 ; 1105 1105 ; MA # ( ᇐ → ᄅᄅ ) HANGUL JONGSEONG SSANGRIEUL →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG RIEUL # →ᄙ→
+
+D7D7 ; 1105 1105 110F ; MA # ( ퟗ → ᄅᄅᄏ ) HANGUL JONGSEONG
SSANGRIEUL-KHIEUKH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG RIEUL, HANGUL
CHOSEONG KHIEUKH # →ᆯᆯᆿ→
+
+A968 ; 1105 1106 ; MA # ( ꥨ → ᄅᄆ ) HANGUL CHOSEONG RIEUL-MIEUM →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG MIEUM #
+11B1 ; 1105 1106 ; MA # ( ᆱ → ᄅᄆ ) HANGUL JONGSEONG RIEUL-MIEUM →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG MIEUM # →ᆯᆷ→
+313B ; 1105 1106 ; MA # ( ㄻ → ᄅᄆ ) HANGUL LETTER RIEUL-MIEUM → HANGUL
CHOSEONG RIEUL, HANGUL CHOSEONG MIEUM # →ᆱ→→ᆯᆷ→
+
+11D1 ; 1105 1106 1100 ; MA # ( ᇑ → ᄅᄆᄀ ) HANGUL JONGSEONG
RIEUL-MIEUM-KIYEOK → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG MIEUM, HANGUL
CHOSEONG KIYEOK # →ᆯᆷᆨ→
+
+11D2 ; 1105 1106 1109 ; MA # ( ᇒ → ᄅᄆᄉ ) HANGUL JONGSEONG
RIEUL-MIEUM-SIOS → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG MIEUM, HANGUL
CHOSEONG SIOS # →ᆯᆷᆺ→
+
+D7D8 ; 1105 1106 1112 ; MA # ( ퟘ → ᄅᄆᄒ ) HANGUL JONGSEONG
RIEUL-MIEUM-HIEUH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG MIEUM, HANGUL
CHOSEONG HIEUH # →ᆯᆷᇂ→
+
+A969 ; 1105 1107 ; MA # ( ꥩ → ᄅᄇ ) HANGUL CHOSEONG RIEUL-PIEUP →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP #
+11B2 ; 1105 1107 ; MA # ( ᆲ → ᄅᄇ ) HANGUL JONGSEONG RIEUL-PIEUP →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP # →ᆯᆸ→
+313C ; 1105 1107 ; MA # ( ㄼ → ᄅᄇ ) HANGUL LETTER RIEUL-PIEUP → HANGUL
CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP # →ᆲ→→ᆯᆸ→
+
+D7D9 ; 1105 1107 1103 ; MA # ( ퟙ → ᄅᄇᄃ ) HANGUL JONGSEONG
RIEUL-PIEUP-TIKEUT → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL
CHOSEONG TIKEUT # →ᆯᆸᆮ→
+
+A96A ; 1105 1107 1107 ; MA # ( ꥪ → ᄅᄇᄇ ) HANGUL CHOSEONG
RIEUL-SSANGPIEUP → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL
CHOSEONG PIEUP #
+
+11D3 ; 1105 1107 1109 ; MA # ( ᇓ → ᄅᄇᄉ ) HANGUL JONGSEONG
RIEUL-PIEUP-SIOS → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL
CHOSEONG SIOS # →ᆯᆸᆺ→
+316B ; 1105 1107 1109 ; MA # ( ㅫ → ᄅᄇᄉ ) HANGUL LETTER
RIEUL-PIEUP-SIOS → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL
CHOSEONG SIOS # →ᇓ→→ᆯᆸᆺ→
+
+A96B ; 1105 1107 110B ; MA # ( ꥫ → ᄅᄇᄋ ) HANGUL CHOSEONG
RIEUL-KAPYEOUNPIEUP → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL
CHOSEONG IEUNG #
+11D5 ; 1105 1107 110B ; MA # ( ᇕ → ᄅᄇᄋ ) HANGUL JONGSEONG
RIEUL-KAPYEOUNPIEUP → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL
CHOSEONG IEUNG # →ᆯᆸᆼ→
+
+D7DA ; 1105 1107 1111 ; MA # ( ퟚ → ᄅᄇᄑ ) HANGUL JONGSEONG
RIEUL-PIEUP-PHIEUPH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL
CHOSEONG PHIEUPH # →ᆯᆸᇁ→
+
+11D4 ; 1105 1107 1112 ; MA # ( ᇔ → ᄅᄇᄒ ) HANGUL JONGSEONG
RIEUL-PIEUP-HIEUH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL
CHOSEONG HIEUH # →ᆯᆸᇂ→
+
+A96C ; 1105 1109 ; MA # ( ꥬ → ᄅᄉ ) HANGUL CHOSEONG RIEUL-SIOS →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG SIOS #
+11B3 ; 1105 1109 ; MA # ( ᆳ → ᄅᄉ ) HANGUL JONGSEONG RIEUL-SIOS →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG SIOS # →ᆯᆺ→
+313D ; 1105 1109 ; MA # ( ㄽ → ᄅᄉ ) HANGUL LETTER RIEUL-SIOS → HANGUL
CHOSEONG RIEUL, HANGUL CHOSEONG SIOS # →ᆳ→→ᆯᆺ→
+
+11D6 ; 1105 1109 1109 ; MA # ( ᇖ → ᄅᄉᄉ ) HANGUL JONGSEONG
RIEUL-SSANGSIOS → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG
SIOS # →ᆯᆺᆺ→
+
+111B ; 1105 110B ; MA # ( ᄛ → ᄅᄋ ) HANGUL CHOSEONG KAPYEOUNRIEUL →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG IEUNG #
+D7DD ; 1105 110B ; MA # ( ퟝ → ᄅᄋ ) HANGUL JONGSEONG KAPYEOUNRIEUL →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG IEUNG # →ᆯᆼ→
+
+A96D ; 1105 110C ; MA # ( ꥭ → ᄅᄌ ) HANGUL CHOSEONG RIEUL-CIEUC →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG CIEUC #
+
+A96E ; 1105 110F ; MA # ( ꥮ → ᄅᄏ ) HANGUL CHOSEONG RIEUL-KHIEUKH →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KHIEUKH #
+11D8 ; 1105 110F ; MA # ( ᇘ → ᄅᄏ ) HANGUL JONGSEONG RIEUL-KHIEUKH →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KHIEUKH # →ᆯᆿ→
+
+11B4 ; 1105 1110 ; MA # ( ᆴ → ᄅᄐ ) HANGUL JONGSEONG RIEUL-THIEUTH →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG THIEUTH # →ᆯᇀ→
+313E ; 1105 1110 ; MA # ( ㄾ → ᄅᄐ ) HANGUL LETTER RIEUL-THIEUTH →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG THIEUTH # →ᆴ→→ᆯᇀ→
+
+11B5 ; 1105 1111 ; MA # ( ᆵ → ᄅᄑ ) HANGUL JONGSEONG RIEUL-PHIEUPH →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PHIEUPH # →ᆯᇁ→
+313F ; 1105 1111 ; MA # ( ㄿ → ᄅᄑ ) HANGUL LETTER RIEUL-PHIEUPH →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PHIEUPH # →ᆵ→→ᆯᇁ→
+
+111A ; 1105 1112 ; MA # ( ᄚ → ᄅᄒ ) HANGUL CHOSEONG RIEUL-HIEUH →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG HIEUH #
+3140 ; 1105 1112 ; MA # ( ㅀ → ᄅᄒ ) HANGUL LETTER RIEUL-HIEUH → HANGUL
CHOSEONG RIEUL, HANGUL CHOSEONG HIEUH # →ᄚ→
+113B ; 1105 1112 ; MA # ( ᄻ → ᄅᄒ ) HANGUL CHOSEONG SIOS-HIEUH →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG HIEUH # →ᄚ→
+11B6 ; 1105 1112 ; MA # ( ᆶ → ᄅᄒ ) HANGUL JONGSEONG RIEUL-HIEUH →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG HIEUH # →ᄚ→
+D7F2 ; 1105 1112 ; MA # ( ퟲ → ᄅᄒ ) HANGUL JONGSEONG SIOS-HIEUH →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG HIEUH # →ᆺᇂ→→ᄉᄒ→→ᄻ→→ᄚ→
+
+11D7 ; 1105 1140 ; MA # ( ᇗ → ᄅᅀ ) HANGUL JONGSEONG RIEUL-PANSIOS →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PANSIOS # →ᆯᇫ→
+316C ; 1105 1140 ; MA # ( ㅬ → ᄅᅀ ) HANGUL LETTER RIEUL-PANSIOS →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PANSIOS # →ᇗ→→ᆯᇫ→
+
+D7DB ; 1105 114C ; MA # ( ퟛ → ᄅᅌ ) HANGUL JONGSEONG RIEUL-YESIEUNG →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG YESIEUNG # →ᆯᇰ→
+
+11D9 ; 1105 1159 ; MA # ( ᇙ → ᄅᅙ ) HANGUL JONGSEONG RIEUL-YEORINHIEUH
→ HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG YEORINHIEUH # →ᆯᇹ→
+316D ; 1105 1159 ; MA # ( ㅭ → ᄅᅙ ) HANGUL LETTER RIEUL-YEORINHIEUH →
HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG YEORINHIEUH # →ᇙ→→ᆯᇹ→
+
+D7DC ; 1105 1159 1112 ; MA # ( ퟜ → ᄅᅙᄒ ) HANGUL JONGSEONG
RIEUL-YEORINHIEUH-HIEUH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG YEORINHIEUH,
HANGUL CHOSEONG HIEUH # →ᆯᇹᇂ→
+
+3141 ; 1106 ; MA # ( ㅁ → ᄆ ) HANGUL LETTER MIEUM → HANGUL CHOSEONG MIEUM
#
+11B7 ; 1106 ; MA # ( ᆷ → ᄆ ) HANGUL JONGSEONG MIEUM → HANGUL CHOSEONG
MIEUM #
+
+A96F ; 1106 1100 ; MA # ( ꥯ → ᄆᄀ ) HANGUL CHOSEONG MIEUM-KIYEOK →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG KIYEOK #
+11DA ; 1106 1100 ; MA # ( ᇚ → ᄆᄀ ) HANGUL JONGSEONG MIEUM-KIYEOK →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG KIYEOK # →ᆷᆨ→
+
+D7DE ; 1106 1102 ; MA # ( ퟞ → ᄆᄂ ) HANGUL JONGSEONG MIEUM-NIEUN →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG NIEUN # →ᆷᆫ→
+
+D7DF ; 1106 1102 1102 ; MA # ( ퟟ → ᄆᄂᄂ ) HANGUL JONGSEONG
MIEUM-SSANGNIEUN → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG NIEUN, HANGUL
CHOSEONG NIEUN # →ᆷᆫᆫ→
+
+A970 ; 1106 1103 ; MA # ( ꥰ → ᄆᄃ ) HANGUL CHOSEONG MIEUM-TIKEUT →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG TIKEUT #
+
+11DB ; 1106 1105 ; MA # ( ᇛ → ᄆᄅ ) HANGUL JONGSEONG MIEUM-RIEUL →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG RIEUL # →ᆷᆯ→
+
+D7E0 ; 1106 1106 ; MA # ( ퟠ → ᄆᄆ ) HANGUL JONGSEONG SSANGMIEUM →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG MIEUM # →ᆷᆷ→
+
+111C ; 1106 1107 ; MA # ( ᄜ → ᄆᄇ ) HANGUL CHOSEONG MIEUM-PIEUP →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG PIEUP #
+316E ; 1106 1107 ; MA # ( ㅮ → ᄆᄇ ) HANGUL LETTER MIEUM-PIEUP → HANGUL
CHOSEONG MIEUM, HANGUL CHOSEONG PIEUP # →ᄜ→
+11DC ; 1106 1107 ; MA # ( ᇜ → ᄆᄇ ) HANGUL JONGSEONG MIEUM-PIEUP →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG PIEUP # →ᄜ→
+
+D7E1 ; 1106 1107 1109 ; MA # ( ퟡ → ᄆᄇᄉ ) HANGUL JONGSEONG
MIEUM-PIEUP-SIOS → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG PIEUP, HANGUL
CHOSEONG SIOS # →ᆷᆸᆺ→
+
+A971 ; 1106 1109 ; MA # ( ꥱ → ᄆᄉ ) HANGUL CHOSEONG MIEUM-SIOS →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG SIOS #
+11DD ; 1106 1109 ; MA # ( ᇝ → ᄆᄉ ) HANGUL JONGSEONG MIEUM-SIOS →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG SIOS # →ᆷᆺ→
+316F ; 1106 1109 ; MA # ( ㅯ → ᄆᄉ ) HANGUL LETTER MIEUM-SIOS → HANGUL
CHOSEONG MIEUM, HANGUL CHOSEONG SIOS # →ᇝ→→ᆷᆺ→
+
+11DE ; 1106 1109 1109 ; MA # ( ᇞ → ᄆᄉᄉ ) HANGUL JONGSEONG
MIEUM-SSANGSIOS → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG
SIOS # →ᆷᆺᆺ→
+
+111D ; 1106 110B ; MA # ( ᄝ → ᄆᄋ ) HANGUL CHOSEONG KAPYEOUNMIEUM →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG IEUNG #
+3171 ; 1106 110B ; MA # ( ㅱ → ᄆᄋ ) HANGUL LETTER KAPYEOUNMIEUM →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG IEUNG # →ᄝ→
+11E2 ; 1106 110B ; MA # ( ᇢ → ᄆᄋ ) HANGUL JONGSEONG KAPYEOUNMIEUM →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG IEUNG # →ᄝ→
+
+D7E2 ; 1106 110C ; MA # ( ퟢ → ᄆᄌ ) HANGUL JONGSEONG MIEUM-CIEUC →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG CIEUC # →ᆷᆽ→
+
+11E0 ; 1106 110E ; MA # ( ᇠ → ᄆᄎ ) HANGUL JONGSEONG MIEUM-CHIEUCH →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG CHIEUCH # →ᆷᆾ→
+
+11E1 ; 1106 1112 ; MA # ( ᇡ → ᄆᄒ ) HANGUL JONGSEONG MIEUM-HIEUH →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG HIEUH # →ᆷᇂ→
+
+11DF ; 1106 1140 ; MA # ( ᇟ → ᄆᅀ ) HANGUL JONGSEONG MIEUM-PANSIOS →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG PANSIOS # →ᆷᇫ→
+3170 ; 1106 1140 ; MA # ( ㅰ → ᄆᅀ ) HANGUL LETTER MIEUM-PANSIOS →
HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG PANSIOS # →ᇟ→→ᆷᇫ→
+
+3142 ; 1107 ; MA # ( ㅂ → ᄇ ) HANGUL LETTER PIEUP → HANGUL CHOSEONG PIEUP
#
+11B8 ; 1107 ; MA # ( ᆸ → ᄇ ) HANGUL JONGSEONG PIEUP → HANGUL CHOSEONG
PIEUP #
+
+111E ; 1107 1100 ; MA # ( ᄞ → ᄇᄀ ) HANGUL CHOSEONG PIEUP-KIYEOK →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG KIYEOK #
+3172 ; 1107 1100 ; MA # ( ㅲ → ᄇᄀ ) HANGUL LETTER PIEUP-KIYEOK →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG KIYEOK # →ᄞ→
+
+111F ; 1107 1102 ; MA # ( ᄟ → ᄇᄂ ) HANGUL CHOSEONG PIEUP-NIEUN →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG NIEUN #
+
+1120 ; 1107 1103 ; MA # ( ᄠ → ᄇᄃ ) HANGUL CHOSEONG PIEUP-TIKEUT →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG TIKEUT #
+3173 ; 1107 1103 ; MA # ( ㅳ → ᄇᄃ ) HANGUL LETTER PIEUP-TIKEUT →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG TIKEUT # →ᄠ→
+D7E3 ; 1107 1103 ; MA # ( ퟣ → ᄇᄃ ) HANGUL JONGSEONG PIEUP-TIKEUT →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG TIKEUT # →ᆸᆮ→
+
+11E3 ; 1107 1105 ; MA # ( ᇣ → ᄇᄅ ) HANGUL JONGSEONG PIEUP-RIEUL →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG RIEUL # →ᆸᆯ→
+
+D7E4 ; 1107 1105 1111 ; MA # ( ퟤ → ᄇᄅᄑ ) HANGUL JONGSEONG
PIEUP-RIEUL-PHIEUPH → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG RIEUL, HANGUL
CHOSEONG PHIEUPH # →ᆸᆯᇁ→
+
+D7E5 ; 1107 1106 ; MA # ( ퟥ → ᄇᄆ ) HANGUL JONGSEONG PIEUP-MIEUM →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG MIEUM # →ᆸᆷ→
+
+1108 ; 1107 1107 ; MA # ( ᄈ → ᄇᄇ ) HANGUL CHOSEONG SSANGPIEUP →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PIEUP #
+3143 ; 1107 1107 ; MA # ( ㅃ → ᄇᄇ ) HANGUL LETTER SSANGPIEUP → HANGUL
CHOSEONG PIEUP, HANGUL CHOSEONG PIEUP # →ᄈ→
+D7E6 ; 1107 1107 ; MA # ( ퟦ → ᄇᄇ ) HANGUL JONGSEONG SSANGPIEUP →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PIEUP # →ᆸᆸ→
+
+112C ; 1107 1107 110B ; MA # ( ᄬ → ᄇᄇᄋ ) HANGUL CHOSEONG
KAPYEOUNSSANGPIEUP → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PIEUP, HANGUL
CHOSEONG IEUNG #
+3179 ; 1107 1107 110B ; MA # ( ㅹ → ᄇᄇᄋ ) HANGUL LETTER
KAPYEOUNSSANGPIEUP → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PIEUP, HANGUL
CHOSEONG IEUNG # →ᄬ→
+
+1121 ; 1107 1109 ; MA # ( ᄡ → ᄇᄉ ) HANGUL CHOSEONG PIEUP-SIOS →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS #
+3144 ; 1107 1109 ; MA # ( ㅄ → ᄇᄉ ) HANGUL LETTER PIEUP-SIOS → HANGUL
CHOSEONG PIEUP, HANGUL CHOSEONG SIOS # →ᄡ→
+11B9 ; 1107 1109 ; MA # ( ᆹ → ᄇᄉ ) HANGUL JONGSEONG PIEUP-SIOS →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS # →ᄡ→
+
+1122 ; 1107 1109 1100 ; MA # ( ᄢ → ᄇᄉᄀ ) HANGUL CHOSEONG
PIEUP-SIOS-KIYEOK → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL
CHOSEONG KIYEOK #
+3174 ; 1107 1109 1100 ; MA # ( ㅴ → ᄇᄉᄀ ) HANGUL LETTER
PIEUP-SIOS-KIYEOK → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL
CHOSEONG KIYEOK # →ᄢ→
+
+1123 ; 1107 1109 1103 ; MA # ( ᄣ → ᄇᄉᄃ ) HANGUL CHOSEONG
PIEUP-SIOS-TIKEUT → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL
CHOSEONG TIKEUT #
+3175 ; 1107 1109 1103 ; MA # ( ㅵ → ᄇᄉᄃ ) HANGUL LETTER
PIEUP-SIOS-TIKEUT → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL
CHOSEONG TIKEUT # →ᄣ→
+D7E7 ; 1107 1109 1103 ; MA # ( ퟧ → ᄇᄉᄃ ) HANGUL JONGSEONG
PIEUP-SIOS-TIKEUT → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL
CHOSEONG TIKEUT # →ᆸᆺᆮ→
+
+1124 ; 1107 1109 1107 ; MA # ( ᄤ → ᄇᄉᄇ ) HANGUL CHOSEONG
PIEUP-SIOS-PIEUP → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG
PIEUP #
+
+1125 ; 1107 1109 1109 ; MA # ( ᄥ → ᄇᄉᄉ ) HANGUL CHOSEONG
PIEUP-SSANGSIOS → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG
SIOS #
+
+1126 ; 1107 1109 110C ; MA # ( ᄦ → ᄇᄉᄌ ) HANGUL CHOSEONG
PIEUP-SIOS-CIEUC → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG
CIEUC #
+
+A972 ; 1107 1109 1110 ; MA # ( ꥲ → ᄇᄉᄐ ) HANGUL CHOSEONG
PIEUP-SIOS-THIEUTH → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL
CHOSEONG THIEUTH #
+
+112B ; 1107 110B ; MA # ( ᄫ → ᄇᄋ ) HANGUL CHOSEONG KAPYEOUNPIEUP →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG IEUNG #
+3178 ; 1107 110B ; MA # ( ㅸ → ᄇᄋ ) HANGUL LETTER KAPYEOUNPIEUP →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG IEUNG # →ᄫ→
+11E6 ; 1107 110B ; MA # ( ᇦ → ᄇᄋ ) HANGUL JONGSEONG KAPYEOUNPIEUP →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG IEUNG # →ᄫ→
+
+1127 ; 1107 110C ; MA # ( ᄧ → ᄇᄌ ) HANGUL CHOSEONG PIEUP-CIEUC →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG CIEUC #
+3176 ; 1107 110C ; MA # ( ㅶ → ᄇᄌ ) HANGUL LETTER PIEUP-CIEUC → HANGUL
CHOSEONG PIEUP, HANGUL CHOSEONG CIEUC # →ᄧ→
+D7E8 ; 1107 110C ; MA # ( ퟨ → ᄇᄌ ) HANGUL JONGSEONG PIEUP-CIEUC →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG CIEUC # →ᆸᆽ→
+
+1128 ; 1107 110E ; MA # ( ᄨ → ᄇᄎ ) HANGUL CHOSEONG PIEUP-CHIEUCH →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG CHIEUCH #
+D7E9 ; 1107 110E ; MA # ( ퟩ → ᄇᄎ ) HANGUL JONGSEONG PIEUP-CHIEUCH →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG CHIEUCH # →ᆸᆾ→
+
+A973 ; 1107 110F ; MA # ( ꥳ → ᄇᄏ ) HANGUL CHOSEONG PIEUP-KHIEUKH →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG KHIEUKH #
+
+1129 ; 1107 1110 ; MA # ( ᄩ → ᄇᄐ ) HANGUL CHOSEONG PIEUP-THIEUTH →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG THIEUTH #
+3177 ; 1107 1110 ; MA # ( ㅷ → ᄇᄐ ) HANGUL LETTER PIEUP-THIEUTH →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG THIEUTH # →ᄩ→
+
+112A ; 1107 1111 ; MA # ( ᄪ → ᄇᄑ ) HANGUL CHOSEONG PIEUP-PHIEUPH →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PHIEUPH #
+11E4 ; 1107 1111 ; MA # ( ᇤ → ᄇᄑ ) HANGUL JONGSEONG PIEUP-PHIEUPH →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PHIEUPH # →ᄪ→
+
+A974 ; 1107 1112 ; MA # ( ꥴ → ᄇᄒ ) HANGUL CHOSEONG PIEUP-HIEUH →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG HIEUH #
+11E5 ; 1107 1112 ; MA # ( ᇥ → ᄇᄒ ) HANGUL JONGSEONG PIEUP-HIEUH →
HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG HIEUH # →ᆸᇂ→
+
+3145 ; 1109 ; MA # ( ㅅ → ᄉ ) HANGUL LETTER SIOS → HANGUL CHOSEONG SIOS
#
+11BA ; 1109 ; MA # ( ᆺ → ᄉ ) HANGUL JONGSEONG SIOS → HANGUL CHOSEONG
SIOS #
+
+112D ; 1109 1100 ; MA # ( ᄭ → ᄉᄀ ) HANGUL CHOSEONG SIOS-KIYEOK →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KIYEOK #
+317A ; 1109 1100 ; MA # ( ㅺ → ᄉᄀ ) HANGUL LETTER SIOS-KIYEOK → HANGUL
CHOSEONG SIOS, HANGUL CHOSEONG KIYEOK # →ᄭ→
+11E7 ; 1109 1100 ; MA # ( ᇧ → ᄉᄀ ) HANGUL JONGSEONG SIOS-KIYEOK →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KIYEOK # →ᄭ→
+
+112E ; 1109 1102 ; MA # ( ᄮ → ᄉᄂ ) HANGUL CHOSEONG SIOS-NIEUN →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG NIEUN #
+317B ; 1109 1102 ; MA # ( ㅻ → ᄉᄂ ) HANGUL LETTER SIOS-NIEUN → HANGUL
CHOSEONG SIOS, HANGUL CHOSEONG NIEUN # →ᄮ→
+
+112F ; 1109 1103 ; MA # ( ᄯ → ᄉᄃ ) HANGUL CHOSEONG SIOS-TIKEUT →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG TIKEUT #
+317C ; 1109 1103 ; MA # ( ㅼ → ᄉᄃ ) HANGUL LETTER SIOS-TIKEUT → HANGUL
CHOSEONG SIOS, HANGUL CHOSEONG TIKEUT # →ᄯ→
+11E8 ; 1109 1103 ; MA # ( ᇨ → ᄉᄃ ) HANGUL JONGSEONG SIOS-TIKEUT →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG TIKEUT # →ᄯ→
+
+1130 ; 1109 1105 ; MA # ( ᄰ → ᄉᄅ ) HANGUL CHOSEONG SIOS-RIEUL →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG RIEUL #
+11E9 ; 1109 1105 ; MA # ( ᇩ → ᄉᄅ ) HANGUL JONGSEONG SIOS-RIEUL →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG RIEUL # →ᄰ→
+
+1131 ; 1109 1106 ; MA # ( ᄱ → ᄉᄆ ) HANGUL CHOSEONG SIOS-MIEUM →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG MIEUM #
+D7EA ; 1109 1106 ; MA # ( ퟪ → ᄉᄆ ) HANGUL JONGSEONG SIOS-MIEUM →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG MIEUM # →ᆺᆷ→
+
+1132 ; 1109 1107 ; MA # ( ᄲ → ᄉᄇ ) HANGUL CHOSEONG SIOS-PIEUP →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PIEUP #
+317D ; 1109 1107 ; MA # ( ㅽ → ᄉᄇ ) HANGUL LETTER SIOS-PIEUP → HANGUL
CHOSEONG SIOS, HANGUL CHOSEONG PIEUP # →ᄲ→
+11EA ; 1109 1107 ; MA # ( ᇪ → ᄉᄇ ) HANGUL JONGSEONG SIOS-PIEUP →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PIEUP # →ᄲ→
+
+1133 ; 1109 1107 1100 ; MA # ( ᄳ → ᄉᄇᄀ ) HANGUL CHOSEONG
SIOS-PIEUP-KIYEOK → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PIEUP, HANGUL
CHOSEONG KIYEOK #
+
+D7EB ; 1109 1107 110B ; MA # ( ퟫ → ᄉᄇᄋ ) HANGUL JONGSEONG
SIOS-KAPYEOUNPIEUP → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PIEUP, HANGUL
CHOSEONG IEUNG # →ᆺᆸᆼ→
+
+110A ; 1109 1109 ; MA # ( ᄊ → ᄉᄉ ) HANGUL CHOSEONG SSANGSIOS → HANGUL
CHOSEONG SIOS, HANGUL CHOSEONG SIOS #
+3146 ; 1109 1109 ; MA # ( ㅆ → ᄉᄉ ) HANGUL LETTER SSANGSIOS → HANGUL
CHOSEONG SIOS, HANGUL CHOSEONG SIOS # →ᄊ→
+11BB ; 1109 1109 ; MA # ( ᆻ → ᄉᄉ ) HANGUL JONGSEONG SSANGSIOS →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS # →ᄊ→
+
+D7EC ; 1109 1109 1100 ; MA # ( ퟬ → ᄉᄉᄀ ) HANGUL JONGSEONG
SSANGSIOS-KIYEOK → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG
KIYEOK # →ᆺᆺᆨ→
+
+D7ED ; 1109 1109 1103 ; MA # ( ퟭ → ᄉᄉᄃ ) HANGUL JONGSEONG
SSANGSIOS-TIKEUT → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG
TIKEUT # →ᆺᆺᆮ→
+
+A975 ; 1109 1109 1107 ; MA # ( ꥵ → ᄉᄉᄇ ) HANGUL CHOSEONG
SSANGSIOS-PIEUP → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG
PIEUP #
+
+1134 ; 1109 1109 1109 ; MA # ( ᄴ → ᄉᄉᄉ ) HANGUL CHOSEONG
SIOS-SSANGSIOS → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG
SIOS #
+
+1135 ; 1109 110B ; MA # ( ᄵ → ᄉᄋ ) HANGUL CHOSEONG SIOS-IEUNG →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG IEUNG #
+
+1136 ; 1109 110C ; MA # ( ᄶ → ᄉᄌ ) HANGUL CHOSEONG SIOS-CIEUC →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG CIEUC #
+317E ; 1109 110C ; MA # ( ㅾ → ᄉᄌ ) HANGUL LETTER SIOS-CIEUC → HANGUL
CHOSEONG SIOS, HANGUL CHOSEONG CIEUC # →ᄶ→
+D7EF ; 1109 110C ; MA # ( ퟯ → ᄉᄌ ) HANGUL JONGSEONG SIOS-CIEUC →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG CIEUC # →ᆺᆽ→
+
+1137 ; 1109 110E ; MA # ( ᄷ → ᄉᄎ ) HANGUL CHOSEONG SIOS-CHIEUCH →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG CHIEUCH #
+D7F0 ; 1109 110E ; MA # ( ퟰ → ᄉᄎ ) HANGUL JONGSEONG SIOS-CHIEUCH →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG CHIEUCH # →ᆺᆾ→
+
+1138 ; 1109 110F ; MA # ( ᄸ → ᄉᄏ ) HANGUL CHOSEONG SIOS-KHIEUKH →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KHIEUKH #
+
+1139 ; 1109 1110 ; MA # ( ᄹ → ᄉᄐ ) HANGUL CHOSEONG SIOS-THIEUTH →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG THIEUTH #
+D7F1 ; 1109 1110 ; MA # ( ퟱ → ᄉᄐ ) HANGUL JONGSEONG SIOS-THIEUTH →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG THIEUTH # →ᆺᇀ→
+
+113A ; 1109 1111 ; MA # ( ᄺ → ᄉᄑ ) HANGUL CHOSEONG SIOS-PHIEUPH →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PHIEUPH #
+
+D7EE ; 1109 1140 ; MA # ( ퟮ → ᄉᅀ ) HANGUL JONGSEONG SIOS-PANSIOS →
HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PANSIOS # →ᆺᇫ→
+
+3147 ; 110B ; MA # ( ㅇ → ᄋ ) HANGUL LETTER IEUNG → HANGUL CHOSEONG IEUNG
#
+11BC ; 110B ; MA # ( ᆼ → ᄋ ) HANGUL JONGSEONG IEUNG → HANGUL CHOSEONG
IEUNG #
+
+1141 ; 110B 1100 ; MA # ( ᅁ → ᄋᄀ ) HANGUL CHOSEONG IEUNG-KIYEOK →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG KIYEOK #
+11EC ; 110B 1100 ; MA # ( ᇬ → ᄋᄀ ) HANGUL JONGSEONG IEUNG-KIYEOK →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG KIYEOK # →ᅁ→
+
+11ED ; 110B 1100 1100 ; MA # ( ᇭ → ᄋᄀᄀ ) HANGUL JONGSEONG
IEUNG-SSANGKIYEOK → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG KIYEOK, HANGUL
CHOSEONG KIYEOK # →ᆼᆨᆨ→
+
+1142 ; 110B 1103 ; MA # ( ᅂ → ᄋᄃ ) HANGUL CHOSEONG IEUNG-TIKEUT →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG TIKEUT #
+
+A976 ; 110B 1105 ; MA # ( ꥶ → ᄋᄅ ) HANGUL CHOSEONG IEUNG-RIEUL →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG RIEUL #
+
+1143 ; 110B 1106 ; MA # ( ᅃ → ᄋᄆ ) HANGUL CHOSEONG IEUNG-MIEUM →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG MIEUM #
+
+1144 ; 110B 1107 ; MA # ( ᅄ → ᄋᄇ ) HANGUL CHOSEONG IEUNG-PIEUP →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG PIEUP #
+
+1145 ; 110B 1109 ; MA # ( ᅅ → ᄋᄉ ) HANGUL CHOSEONG IEUNG-SIOS →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG SIOS #
+11F1 ; 110B 1109 ; MA # ( ᇱ → ᄋᄉ ) HANGUL JONGSEONG YESIEUNG-SIOS →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG SIOS # →ᅅ→
+3182 ; 110B 1109 ; MA # ( ㆂ → ᄋᄉ ) HANGUL LETTER YESIEUNG-SIOS →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG SIOS # →ᇱ→→ᅅ→
+
+1147 ; 110B 110B ; MA # ( ᅇ → ᄋᄋ ) HANGUL CHOSEONG SSANGIEUNG →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG IEUNG #
+3180 ; 110B 110B ; MA # ( ㆀ → ᄋᄋ ) HANGUL LETTER SSANGIEUNG → HANGUL
CHOSEONG IEUNG, HANGUL CHOSEONG IEUNG # →ᅇ→
+11EE ; 110B 110B ; MA # ( ᇮ → ᄋᄋ ) HANGUL JONGSEONG SSANGIEUNG →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG IEUNG # →ᅇ→
+
+1148 ; 110B 110C ; MA # ( ᅈ → ᄋᄌ ) HANGUL CHOSEONG IEUNG-CIEUC →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG CIEUC #
+
+1149 ; 110B 110E ; MA # ( ᅉ → ᄋᄎ ) HANGUL CHOSEONG IEUNG-CHIEUCH →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG CHIEUCH #
+
+11EF ; 110B 110F ; MA # ( ᇯ → ᄋᄏ ) HANGUL JONGSEONG IEUNG-KHIEUKH →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG KHIEUKH # →ᆼᆿ→
+
+114A ; 110B 1110 ; MA # ( ᅊ → ᄋᄐ ) HANGUL CHOSEONG IEUNG-THIEUTH →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG THIEUTH #
+
+114B ; 110B 1111 ; MA # ( ᅋ → ᄋᄑ ) HANGUL CHOSEONG IEUNG-PHIEUPH →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG PHIEUPH #
+
+A977 ; 110B 1112 ; MA # ( ꥷ → ᄋᄒ ) HANGUL CHOSEONG IEUNG-HIEUH →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG HIEUH #
+
+1146 ; 110B 1140 ; MA # ( ᅆ → ᄋᅀ ) HANGUL CHOSEONG IEUNG-PANSIOS →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG PANSIOS #
+11F2 ; 110B 1140 ; MA # ( ᇲ → ᄋᅀ ) HANGUL JONGSEONG YESIEUNG-PANSIOS
→ HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG PANSIOS # →ᅆ→
+3183 ; 110B 1140 ; MA # ( ㆃ → ᄋᅀ ) HANGUL LETTER YESIEUNG-PANSIOS →
HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG PANSIOS # →ᇲ→→ᅆ→
+
+3148 ; 110C ; MA # ( ㅈ → ᄌ ) HANGUL LETTER CIEUC → HANGUL CHOSEONG CIEUC
#
+11BD ; 110C ; MA # ( ᆽ → ᄌ ) HANGUL JONGSEONG CIEUC → HANGUL CHOSEONG
CIEUC #
+
+D7F7 ; 110C 1107 ; MA # ( ퟷ → ᄌᄇ ) HANGUL JONGSEONG CIEUC-PIEUP →
HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG PIEUP # →ᆽᆸ→
+
+D7F8 ; 110C 1107 1107 ; MA # ( ퟸ → ᄌᄇᄇ ) HANGUL JONGSEONG
CIEUC-SSANGPIEUP → HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG PIEUP, HANGUL
CHOSEONG PIEUP # →ᆽᆸᆸ→
+
+114D ; 110C 110B ; MA # ( ᅍ → ᄌᄋ ) HANGUL CHOSEONG CIEUC-IEUNG →
HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG IEUNG #
+
+110D ; 110C 110C ; MA # ( ᄍ → ᄌᄌ ) HANGUL CHOSEONG SSANGCIEUC →
HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG CIEUC #
+3149 ; 110C 110C ; MA # ( ㅉ → ᄌᄌ ) HANGUL LETTER SSANGCIEUC → HANGUL
CHOSEONG CIEUC, HANGUL CHOSEONG CIEUC # →ᄍ→
+D7F9 ; 110C 110C ; MA # ( ퟹ → ᄌᄌ ) HANGUL JONGSEONG SSANGCIEUC →
HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG CIEUC # →ᆽᆽ→
+
+A978 ; 110C 110C 1112 ; MA # ( ꥸ → ᄌᄌᄒ ) HANGUL CHOSEONG
SSANGCIEUC-HIEUH → HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG CIEUC, HANGUL
CHOSEONG HIEUH #
+
+314A ; 110E ; MA # ( ㅊ → ᄎ ) HANGUL LETTER CHIEUCH → HANGUL CHOSEONG
CHIEUCH #
+11BE ; 110E ; MA # ( ᆾ → ᄎ ) HANGUL JONGSEONG CHIEUCH → HANGUL CHOSEONG
CHIEUCH #
+
+1152 ; 110E 110F ; MA # ( ᅒ → ᄎᄏ ) HANGUL CHOSEONG CHIEUCH-KHIEUKH →
HANGUL CHOSEONG CHIEUCH, HANGUL CHOSEONG KHIEUKH #
+
+1153 ; 110E 1112 ; MA # ( ᅓ → ᄎᄒ ) HANGUL CHOSEONG CHIEUCH-HIEUH →
HANGUL CHOSEONG CHIEUCH, HANGUL CHOSEONG HIEUH #
+
+314B ; 110F ; MA # ( ㅋ → ᄏ ) HANGUL LETTER KHIEUKH → HANGUL CHOSEONG
KHIEUKH #
+11BF ; 110F ; MA # ( ᆿ → ᄏ ) HANGUL JONGSEONG KHIEUKH → HANGUL CHOSEONG
KHIEUKH #
+
+314C ; 1110 ; MA # ( ㅌ → ᄐ ) HANGUL LETTER THIEUTH → HANGUL CHOSEONG
THIEUTH #
+11C0 ; 1110 ; MA # ( ᇀ → ᄐ ) HANGUL JONGSEONG THIEUTH → HANGUL CHOSEONG
THIEUTH #
+
+A979 ; 1110 1110 ; MA # ( ꥹ → ᄐᄐ ) HANGUL CHOSEONG SSANGTHIEUTH →
HANGUL CHOSEONG THIEUTH, HANGUL CHOSEONG THIEUTH #
+
+314D ; 1111 ; MA # ( ㅍ → ᄑ ) HANGUL LETTER PHIEUPH → HANGUL CHOSEONG
PHIEUPH #
+11C1 ; 1111 ; MA # ( ᇁ → ᄑ ) HANGUL JONGSEONG PHIEUPH → HANGUL CHOSEONG
PHIEUPH #
+
+1156 ; 1111 1107 ; MA # ( ᅖ → ᄑᄇ ) HANGUL CHOSEONG PHIEUPH-PIEUP →
HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG PIEUP #
+11F3 ; 1111 1107 ; MA # ( ᇳ → ᄑᄇ ) HANGUL JONGSEONG PHIEUPH-PIEUP →
HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG PIEUP # →ᅖ→
+
+D7FA ; 1111 1109 ; MA # ( ퟺ → ᄑᄉ ) HANGUL JONGSEONG PHIEUPH-SIOS →
HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG SIOS # →ᇁᆺ→
+
+1157 ; 1111 110B ; MA # ( ᅗ → ᄑᄋ ) HANGUL CHOSEONG KAPYEOUNPHIEUPH →
HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG IEUNG #
+3184 ; 1111 110B ; MA # ( ㆄ → ᄑᄋ ) HANGUL LETTER KAPYEOUNPHIEUPH →
HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG IEUNG # →ᅗ→
+11F4 ; 1111 110B ; MA # ( ᇴ → ᄑᄋ ) HANGUL JONGSEONG KAPYEOUNPHIEUPH →
HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG IEUNG # →ᅗ→
+
+D7FB ; 1111 1110 ; MA # ( ퟻ → ᄑᄐ ) HANGUL JONGSEONG PHIEUPH-THIEUTH →
HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG THIEUTH # →ᇁᇀ→
+
+A97A ; 1111 1112 ; MA # ( ꥺ → ᄑᄒ ) HANGUL CHOSEONG PHIEUPH-HIEUH →
HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG HIEUH #
+
+314E ; 1112 ; MA # ( ㅎ → ᄒ ) HANGUL LETTER HIEUH → HANGUL CHOSEONG HIEUH
#
+11C2 ; 1112 ; MA # ( ᇂ → ᄒ ) HANGUL JONGSEONG HIEUH → HANGUL CHOSEONG
HIEUH #
+
+11F5 ; 1112 1102 ; MA # ( ᇵ → ᄒᄂ ) HANGUL JONGSEONG HIEUH-NIEUN →
HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG NIEUN # →ᇂᆫ→
+
+11F6 ; 1112 1105 ; MA # ( ᇶ → ᄒᄅ ) HANGUL JONGSEONG HIEUH-RIEUL →
HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG RIEUL # →ᇂᆯ→
+
+11F7 ; 1112 1106 ; MA # ( ᇷ → ᄒᄆ ) HANGUL JONGSEONG HIEUH-MIEUM →
HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG MIEUM # →ᇂᆷ→
+
+11F8 ; 1112 1107 ; MA # ( ᇸ → ᄒᄇ ) HANGUL JONGSEONG HIEUH-PIEUP →
HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG PIEUP # →ᇂᆸ→
+
+A97B ; 1112 1109 ; MA # ( ꥻ → ᄒᄉ ) HANGUL CHOSEONG HIEUH-SIOS →
HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG SIOS #
+
+1158 ; 1112 1112 ; MA # ( ᅘ → ᄒᄒ ) HANGUL CHOSEONG SSANGHIEUH →
HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG HIEUH #
+3185 ; 1112 1112 ; MA # ( ㆅ → ᄒᄒ ) HANGUL LETTER SSANGHIEUH → HANGUL
CHOSEONG HIEUH, HANGUL CHOSEONG HIEUH # →ᅘ→
+
+113D ; 113C 113C ; MA # ( ᄽ → ᄼᄼ ) HANGUL CHOSEONG CHITUEUMSSANGSIOS
→ HANGUL CHOSEONG CHITUEUMSIOS, HANGUL CHOSEONG CHITUEUMSIOS #
+
+113F ; 113E 113E ; MA # ( ᄿ → ᄾᄾ ) HANGUL CHOSEONG
CEONGCHIEUMSSANGSIOS → HANGUL CHOSEONG CEONGCHIEUMSIOS, HANGUL CHOSEONG
CEONGCHIEUMSIOS #
+
+317F ; 1140 ; MA # ( ㅿ → ᅀ ) HANGUL LETTER PANSIOS → HANGUL CHOSEONG
PANSIOS #
+11EB ; 1140 ; MA # ( ᇫ → ᅀ ) HANGUL JONGSEONG PANSIOS → HANGUL CHOSEONG
PANSIOS #
+
+D7F3 ; 1140 1107 ; MA # ( ퟳ → ᅀᄇ ) HANGUL JONGSEONG PANSIOS-PIEUP →
HANGUL CHOSEONG PANSIOS, HANGUL CHOSEONG PIEUP # →ᇫᆸ→
+
+D7F4 ; 1140 1107 110B ; MA # ( ퟴ → ᅀᄇᄋ ) HANGUL JONGSEONG
PANSIOS-KAPYEOUNPIEUP → HANGUL CHOSEONG PANSIOS, HANGUL CHOSEONG PIEUP, HANGUL
CHOSEONG IEUNG # →ᇫᆸᆼ→
+
+3181 ; 114C ; MA # ( ㆁ → ᅌ ) HANGUL LETTER YESIEUNG → HANGUL CHOSEONG
YESIEUNG #
+11F0 ; 114C ; MA # ( ᇰ → ᅌ ) HANGUL JONGSEONG YESIEUNG → HANGUL CHOSEONG
YESIEUNG #
+
+D7F5 ; 114C 1106 ; MA # ( ퟵ → ᅌᄆ ) HANGUL JONGSEONG YESIEUNG-MIEUM →
HANGUL CHOSEONG YESIEUNG, HANGUL CHOSEONG MIEUM # →ᇰᆷ→
+
+D7F6 ; 114C 1112 ; MA # ( ퟶ → ᅌᄒ ) HANGUL JONGSEONG YESIEUNG-HIEUH →
HANGUL CHOSEONG YESIEUNG, HANGUL CHOSEONG HIEUH # →ᇰᇂ→
+
+114F ; 114E 114E ; MA # ( ᅏ → ᅎᅎ ) HANGUL CHOSEONG CHITUEUMSSANGCIEUC
→ HANGUL CHOSEONG CHITUEUMCIEUC, HANGUL CHOSEONG CHITUEUMCIEUC #
+
+1151 ; 1150 1150 ; MA # ( ᅑ → ᅐᅐ ) HANGUL CHOSEONG
CEONGCHIEUMSSANGCIEUC → HANGUL CHOSEONG CEONGCHIEUMCIEUC, HANGUL CHOSEONG
CEONGCHIEUMCIEUC #
+
+3186 ; 1159 ; MA # ( ㆆ → ᅙ ) HANGUL LETTER YEORINHIEUH → HANGUL CHOSEONG
YEORINHIEUH #
+11F9 ; 1159 ; MA # ( ᇹ → ᅙ ) HANGUL JONGSEONG YEORINHIEUH → HANGUL
CHOSEONG YEORINHIEUH #
+
+A97C ; 1159 1159 ; MA # ( ꥼ → ᅙᅙ ) HANGUL CHOSEONG SSANGYEORINHIEUH →
HANGUL CHOSEONG YEORINHIEUH, HANGUL CHOSEONG YEORINHIEUH #
+
+3164 ; 1160 ; MA # ( → ) HANGUL FILLER → HANGUL JUNGSEONG FILLER
#
+
+314F ; 1161 ; MA # ( ㅏ → ᅡ ) HANGUL LETTER A → HANGUL JUNGSEONG A
#
+
+11A3 ; 1161 30FC ; MA # ( ᆣ → ᅡー ) HANGUL JUNGSEONG A-EU → HANGUL
JUNGSEONG A, KATAKANA-HIRAGANA PROLONGED SOUND MARK # →ᅡᅳ→
+
+1176 ; 1161 1169 ; MA # ( ᅶ → ᅡᅩ ) HANGUL JUNGSEONG A-O → HANGUL
JUNGSEONG A, HANGUL JUNGSEONG O #
+
+1177 ; 1161 116E ; MA # ( ᅷ → ᅡᅮ ) HANGUL JUNGSEONG A-U → HANGUL
JUNGSEONG A, HANGUL JUNGSEONG U #
+
+1162 ; 1161 4E28 ; MA # ( ᅢ → ᅡ丨 ) HANGUL JUNGSEONG AE → HANGUL
JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 # →ᅡᅵ→
+3150 ; 1161 4E28 ; MA # ( ㅐ → ᅡ丨 ) HANGUL LETTER AE → HANGUL
JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 # →ᅢ→→ᅡᅵ→
+
+3151 ; 1163 ; MA # ( ㅑ → ᅣ ) HANGUL LETTER YA → HANGUL JUNGSEONG YA
#
+
+1178 ; 1163 1169 ; MA # ( ᅸ → ᅣᅩ ) HANGUL JUNGSEONG YA-O → HANGUL
JUNGSEONG YA, HANGUL JUNGSEONG O #
+
+1179 ; 1163 116D ; MA # ( ᅹ → ᅣᅭ ) HANGUL JUNGSEONG YA-YO → HANGUL
JUNGSEONG YA, HANGUL JUNGSEONG YO #
+
+11A4 ; 1163 116E ; MA # ( ᆤ → ᅣᅮ ) HANGUL JUNGSEONG YA-U → HANGUL
JUNGSEONG YA, HANGUL JUNGSEONG U #
+
+1164 ; 1163 4E28 ; MA # ( ᅤ → ᅣ丨 ) HANGUL JUNGSEONG YAE → HANGUL
JUNGSEONG YA, CJK UNIFIED IDEOGRAPH-4E28 # →ᅣᅵ→
+3152 ; 1163 4E28 ; MA # ( ㅒ → ᅣ丨 ) HANGUL LETTER YAE → HANGUL
JUNGSEONG YA, CJK UNIFIED IDEOGRAPH-4E28 # →ᅤ→→ᅣᅵ→
+
+3153 ; 1165 ; MA # ( ㅓ → ᅥ ) HANGUL LETTER EO → HANGUL JUNGSEONG EO
#
+
+117C ; 1165 30FC ; MA # ( ᅼ → ᅥー ) HANGUL JUNGSEONG EO-EU → HANGUL
JUNGSEONG EO, KATAKANA-HIRAGANA PROLONGED SOUND MARK # →ᅥᅳ→
+
+117A ; 1165 1169 ; MA # ( ᅺ → ᅥᅩ ) HANGUL JUNGSEONG EO-O → HANGUL
JUNGSEONG EO, HANGUL JUNGSEONG O #
+
+117B ; 1165 116E ; MA # ( ᅻ → ᅥᅮ ) HANGUL JUNGSEONG EO-U → HANGUL
JUNGSEONG EO, HANGUL JUNGSEONG U #
+
+1166 ; 1165 4E28 ; MA # ( ᅦ → ᅥ丨 ) HANGUL JUNGSEONG E → HANGUL
JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅥᅵ→
+3154 ; 1165 4E28 ; MA # ( ㅔ → ᅥ丨 ) HANGUL LETTER E → HANGUL JUNGSEONG
EO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅦ→→ᅥᅵ→
+
+3155 ; 1167 ; MA # ( ㅕ → ᅧ ) HANGUL LETTER YEO → HANGUL JUNGSEONG YEO
#
+
+11A5 ; 1167 1163 ; MA # ( ᆥ → ᅧᅣ ) HANGUL JUNGSEONG YEO-YA → HANGUL
JUNGSEONG YEO, HANGUL JUNGSEONG YA #
+
+117D ; 1167 1169 ; MA # ( ᅽ → ᅧᅩ ) HANGUL JUNGSEONG YEO-O → HANGUL
JUNGSEONG YEO, HANGUL JUNGSEONG O #
+
+117E ; 1167 116E ; MA # ( ᅾ → ᅧᅮ ) HANGUL JUNGSEONG YEO-U → HANGUL
JUNGSEONG YEO, HANGUL JUNGSEONG U #
+
+1168 ; 1167 4E28 ; MA # ( ᅨ → ᅧ丨 ) HANGUL JUNGSEONG YE → HANGUL
JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅧᅵ→
+3156 ; 1167 4E28 ; MA # ( ㅖ → ᅧ丨 ) HANGUL LETTER YE → HANGUL
JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅨ→→ᅧᅵ→
+
+3157 ; 1169 ; MA # ( ㅗ → ᅩ ) HANGUL LETTER O → HANGUL JUNGSEONG O
#
+
+116A ; 1169 1161 ; MA # ( ᅪ → ᅩᅡ ) HANGUL JUNGSEONG WA → HANGUL
JUNGSEONG O, HANGUL JUNGSEONG A #
+3158 ; 1169 1161 ; MA # ( ㅘ → ᅩᅡ ) HANGUL LETTER WA → HANGUL
JUNGSEONG O, HANGUL JUNGSEONG A # →ᅪ→
+
+116B ; 1169 1161 4E28 ; MA # ( ᅫ → ᅩᅡ丨 ) HANGUL JUNGSEONG WAE →
HANGUL JUNGSEONG O, HANGUL JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 # →ᅩᅡᅵ→
+3159 ; 1169 1161 4E28 ; MA # ( ㅙ → ᅩᅡ丨 ) HANGUL LETTER WAE →
HANGUL JUNGSEONG O, HANGUL JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 # →ᅫ→→ᅩᅡᅵ→
+
+11A6 ; 1169 1163 ; MA # ( ᆦ → ᅩᅣ ) HANGUL JUNGSEONG O-YA → HANGUL
JUNGSEONG O, HANGUL JUNGSEONG YA #
+
+11A7 ; 1169 1163 4E28 ; MA # ( ᆧ → ᅩᅣ丨 ) HANGUL JUNGSEONG O-YAE →
HANGUL JUNGSEONG O, HANGUL JUNGSEONG YA, CJK UNIFIED IDEOGRAPH-4E28 # →ᅩᅣᅵ→
+
+117F ; 1169 1165 ; MA # ( ᅿ → ᅩᅥ ) HANGUL JUNGSEONG O-EO → HANGUL
JUNGSEONG O, HANGUL JUNGSEONG EO #
+
+1180 ; 1169 1165 4E28 ; MA # ( ᆀ → ᅩᅥ丨 ) HANGUL JUNGSEONG O-E →
HANGUL JUNGSEONG O, HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 #
→ᅩᅥᅵ→
+
+D7B0 ; 1169 1167 ; MA # ( ힰ → ᅩᅧ ) HANGUL JUNGSEONG O-YEO → HANGUL
JUNGSEONG O, HANGUL JUNGSEONG YEO #
+
+1181 ; 1169 1167 4E28 ; MA # ( ᆁ → ᅩᅧ丨 ) HANGUL JUNGSEONG O-YE →
HANGUL JUNGSEONG O, HANGUL JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 #
→ᅩᅧᅵ→
+
+1182 ; 1169 1169 ; MA # ( ᆂ → ᅩᅩ ) HANGUL JUNGSEONG O-O → HANGUL
JUNGSEONG O, HANGUL JUNGSEONG O #
+
+D7B1 ; 1169 1169 4E28 ; MA # ( ힱ → ᅩᅩ丨 ) HANGUL JUNGSEONG O-O-I →
HANGUL JUNGSEONG O, HANGUL JUNGSEONG O, CJK UNIFIED IDEOGRAPH-4E28 # →ᅩᅩᅵ→
+
+1183 ; 1169 116E ; MA # ( ᆃ → ᅩᅮ ) HANGUL JUNGSEONG O-U → HANGUL
JUNGSEONG O, HANGUL JUNGSEONG U #
+
+116C ; 1169 4E28 ; MA # ( ᅬ → ᅩ丨 ) HANGUL JUNGSEONG OE → HANGUL
JUNGSEONG O, CJK UNIFIED IDEOGRAPH-4E28 # →ᅩᅵ→
+315A ; 1169 4E28 ; MA # ( ㅚ → ᅩ丨 ) HANGUL LETTER OE → HANGUL
JUNGSEONG O, CJK UNIFIED IDEOGRAPH-4E28 # →ᅬ→→ᅩᅵ→
+
+315B ; 116D ; MA # ( ㅛ → ᅭ ) HANGUL LETTER YO → HANGUL JUNGSEONG YO
#
+
+D7B2 ; 116D 1161 ; MA # ( ힲ → ᅭᅡ ) HANGUL JUNGSEONG YO-A → HANGUL
JUNGSEONG YO, HANGUL JUNGSEONG A #
+
+D7B3 ; 116D 1161 4E28 ; MA # ( ힳ → ᅭᅡ丨 ) HANGUL JUNGSEONG YO-AE →
HANGUL JUNGSEONG YO, HANGUL JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 # →ᅭᅡᅵ→
+
+1184 ; 116D 1163 ; MA # ( ᆄ → ᅭᅣ ) HANGUL JUNGSEONG YO-YA → HANGUL
JUNGSEONG YO, HANGUL JUNGSEONG YA #
+3187 ; 116D 1163 ; MA # ( ㆇ → ᅭᅣ ) HANGUL LETTER YO-YA → HANGUL
JUNGSEONG YO, HANGUL JUNGSEONG YA # →ᆄ→
+1186 ; 116D 1163 ; MA # ( ᆆ → ᅭᅣ ) HANGUL JUNGSEONG YO-YEO → HANGUL
JUNGSEONG YO, HANGUL JUNGSEONG YA # →ᆄ→
+
+1185 ; 116D 1163 4E28 ; MA # ( ᆅ → ᅭᅣ丨 ) HANGUL JUNGSEONG YO-YAE →
HANGUL JUNGSEONG YO, HANGUL JUNGSEONG YA, CJK UNIFIED IDEOGRAPH-4E28 # →ᅭᅣᅵ→
+3188 ; 116D 1163 4E28 ; MA # ( ㆈ → ᅭᅣ丨 ) HANGUL LETTER YO-YAE →
HANGUL JUNGSEONG YO, HANGUL JUNGSEONG YA, CJK UNIFIED IDEOGRAPH-4E28 #
→ᆅ→→ᅭᅣᅵ→
+
+D7B4 ; 116D 1165 ; MA # ( ힴ → ᅭᅥ ) HANGUL JUNGSEONG YO-EO → HANGUL
JUNGSEONG YO, HANGUL JUNGSEONG EO #
+
+1187 ; 116D 1169 ; MA # ( ᆇ → ᅭᅩ ) HANGUL JUNGSEONG YO-O → HANGUL
JUNGSEONG YO, HANGUL JUNGSEONG O #
+
+1188 ; 116D 4E28 ; MA # ( ᆈ → ᅭ丨 ) HANGUL JUNGSEONG YO-I → HANGUL
JUNGSEONG YO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅭᅵ→
+3189 ; 116D 4E28 ; MA # ( ㆉ → ᅭ丨 ) HANGUL LETTER YO-I → HANGUL
JUNGSEONG YO, CJK UNIFIED IDEOGRAPH-4E28 # →ᆈ→→ᅭᅵ→
+
+315C ; 116E ; MA # ( ㅜ → ᅮ ) HANGUL LETTER U → HANGUL JUNGSEONG U
#
+
+1189 ; 116E 1161 ; MA # ( ᆉ → ᅮᅡ ) HANGUL JUNGSEONG U-A → HANGUL
JUNGSEONG U, HANGUL JUNGSEONG A #
+
+118A ; 116E 1161 4E28 ; MA # ( ᆊ → ᅮᅡ丨 ) HANGUL JUNGSEONG U-AE →
HANGUL JUNGSEONG U, HANGUL JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 #
→ᅮᅡᅵ→
+
+116F ; 116E 1165 ; MA # ( ᅯ → ᅮᅥ ) HANGUL JUNGSEONG WEO → HANGUL
JUNGSEONG U, HANGUL JUNGSEONG EO #
+315D ; 116E 1165 ; MA # ( ㅝ → ᅮᅥ ) HANGUL LETTER WEO → HANGUL
JUNGSEONG U, HANGUL JUNGSEONG EO # →ᅯ→
+
+118B ; 116E 1165 30FC ; MA # ( ᆋ → ᅮᅥー ) HANGUL JUNGSEONG U-EO-EU
→ HANGUL JUNGSEONG U, HANGUL JUNGSEONG EO, KATAKANA-HIRAGANA PROLONGED SOUND
MARK # →ᅮᅥᅳ→
+
+1170 ; 116E 1165 4E28 ; MA # ( ᅰ → ᅮᅥ丨 ) HANGUL JUNGSEONG WE →
HANGUL JUNGSEONG U, HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅮᅥᅵ→
+315E ; 116E 1165 4E28 ; MA # ( ㅞ → ᅮᅥ丨 ) HANGUL LETTER WE → HANGUL
JUNGSEONG U, HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅰ→→ᅮᅥᅵ→
+
+D7B5 ; 116E 1167 ; MA # ( ힵ → ᅮᅧ ) HANGUL JUNGSEONG U-YEO → HANGUL
JUNGSEONG U, HANGUL JUNGSEONG YEO #
+
+118C ; 116E 1167 4E28 ; MA # ( ᆌ → ᅮᅧ丨 ) HANGUL JUNGSEONG U-YE →
HANGUL JUNGSEONG U, HANGUL JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 #
→ᅮᅧᅵ→
+
+118D ; 116E 116E ; MA # ( ᆍ → ᅮᅮ ) HANGUL JUNGSEONG U-U → HANGUL
JUNGSEONG U, HANGUL JUNGSEONG U #
+
+1171 ; 116E 4E28 ; MA # ( ᅱ → ᅮ丨 ) HANGUL JUNGSEONG WI → HANGUL
JUNGSEONG U, CJK UNIFIED IDEOGRAPH-4E28 # →ᅮᅵ→
+315F ; 116E 4E28 ; MA # ( ㅟ → ᅮ丨 ) HANGUL LETTER WI → HANGUL
JUNGSEONG U, CJK UNIFIED IDEOGRAPH-4E28 # →ᅱ→→ᅮᅵ→
+
+D7B6 ; 116E 4E28 4E28 ; MA # ( ힶ → ᅮ丨丨 ) HANGUL JUNGSEONG U-I-I →
HANGUL JUNGSEONG U, CJK UNIFIED IDEOGRAPH-4E28, CJK UNIFIED IDEOGRAPH-4E28
# →ᅮᅵᅵ→
+
+3160 ; 1172 ; MA # ( ㅠ → ᅲ ) HANGUL LETTER YU → HANGUL JUNGSEONG YU
#
+
+118E ; 1172 1161 ; MA # ( ᆎ → ᅲᅡ ) HANGUL JUNGSEONG YU-A → HANGUL
JUNGSEONG YU, HANGUL JUNGSEONG A #
+
+D7B7 ; 1172 1161 4E28 ; MA # ( ힷ → ᅲᅡ丨 ) HANGUL JUNGSEONG YU-AE →
HANGUL JUNGSEONG YU, HANGUL JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 # →ᅲᅡᅵ→
+
+118F ; 1172 1165 ; MA # ( ᆏ → ᅲᅥ ) HANGUL JUNGSEONG YU-EO → HANGUL
JUNGSEONG YU, HANGUL JUNGSEONG EO #
+
+1190 ; 1172 1165 4E28 ; MA # ( ᆐ → ᅲᅥ丨 ) HANGUL JUNGSEONG YU-E →
HANGUL JUNGSEONG YU, HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 #
→ᅲᅥᅵ→
+
+1191 ; 1172 1167 ; MA # ( ᆑ → ᅲᅧ ) HANGUL JUNGSEONG YU-YEO → HANGUL
JUNGSEONG YU, HANGUL JUNGSEONG YEO #
+318A ; 1172 1167 ; MA # ( ㆊ → ᅲᅧ ) HANGUL LETTER YU-YEO → HANGUL
JUNGSEONG YU, HANGUL JUNGSEONG YEO # →ᆑ→
+
+1192 ; 1172 1167 4E28 ; MA # ( ᆒ → ᅲᅧ丨 ) HANGUL JUNGSEONG YU-YE →
HANGUL JUNGSEONG YU, HANGUL JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅲᅧᅵ→
+318B ; 1172 1167 4E28 ; MA # ( ㆋ → ᅲᅧ丨 ) HANGUL LETTER YU-YE →
HANGUL JUNGSEONG YU, HANGUL JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 #
→ᆒ→→ᅲᅧᅵ→
+
+D7B8 ; 1172 1169 ; MA # ( ힸ → ᅲᅩ ) HANGUL JUNGSEONG YU-O → HANGUL
JUNGSEONG YU, HANGUL JUNGSEONG O #
+
+1193 ; 1172 116E ; MA # ( ᆓ → ᅲᅮ ) HANGUL JUNGSEONG YU-U → HANGUL
JUNGSEONG YU, HANGUL JUNGSEONG U #
+
+1194 ; 1172 4E28 ; MA # ( ᆔ → ᅲ丨 ) HANGUL JUNGSEONG YU-I → HANGUL
JUNGSEONG YU, CJK UNIFIED IDEOGRAPH-4E28 # →ᅲᅵ→
+318C ; 1172 4E28 ; MA # ( ㆌ → ᅲ丨 ) HANGUL LETTER YU-I → HANGUL
JUNGSEONG YU, CJK UNIFIED IDEOGRAPH-4E28 # →ᆔ→→ᅲᅵ→
+
+318D ; 119E ; MA # ( ㆍ → ᆞ ) HANGUL LETTER ARAEA → HANGUL JUNGSEONG
ARAEA #
+
+D7C5 ; 119E 1161 ; MA # ( ퟅ → ᆞᅡ ) HANGUL JUNGSEONG ARAEA-A → HANGUL
JUNGSEONG ARAEA, HANGUL JUNGSEONG A #
+
+119F ; 119E 1165 ; MA # ( ᆟ → ᆞᅥ ) HANGUL JUNGSEONG ARAEA-EO → HANGUL
JUNGSEONG ARAEA, HANGUL JUNGSEONG EO #
+
+D7C6 ; 119E 1165 4E28 ; MA # ( ퟆ → ᆞᅥ丨 ) HANGUL JUNGSEONG ARAEA-E
→ HANGUL JUNGSEONG ARAEA, HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28
# →ᆞᅥᅵ→
+
+11A0 ; 119E 116E ; MA # ( ᆠ → ᆞᅮ ) HANGUL JUNGSEONG ARAEA-U → HANGUL
JUNGSEONG ARAEA, HANGUL JUNGSEONG U #
+
+11A2 ; 119E 119E ; MA # ( ᆢ → ᆞᆞ ) HANGUL JUNGSEONG SSANGARAEA →
HANGUL JUNGSEONG ARAEA, HANGUL JUNGSEONG ARAEA #
+
+11A1 ; 119E 4E28 ; MA # ( ᆡ → ᆞ丨 ) HANGUL JUNGSEONG ARAEA-I → HANGUL
JUNGSEONG ARAEA, CJK UNIFIED IDEOGRAPH-4E28 # →ᆞᅵ→
+318E ; 119E 4E28 ; MA # ( ㆎ → ᆞ丨 ) HANGUL LETTER ARAEAE → HANGUL
JUNGSEONG ARAEA, CJK UNIFIED IDEOGRAPH-4E28 # →ᆡ→→ᆞᅵ→
+
+30D8 ; 3078 ; MA # ( ヘ → へ ) KATAKANA LETTER HE → HIRAGANA LETTER HE
#
+
+2341 ; 303C ; MA #* ( ⍁ → 〼 ) APL FUNCTIONAL SYMBOL QUAD SLASH → MASU
MARK # →⧄→
+29C4 ; 303C ; MA #* ( ⧄ → 〼 ) SQUARED RISING DIAGONAL SLASH → MASU MARK
#
+
+A49E ; A04A ; MA #* ( ꒞ → ꁊ ) YI RADICAL PUT → YI SYLLABLE PUT #
+
+A4AC ; A050 ; MA #* ( ꒬ → ꁐ ) YI RADICAL PYT → YI SYLLABLE PYT #
+
+A49C ; A0C0 ; MA #* ( ꒜ → ꃀ ) YI RADICAL MOP → YI SYLLABLE MOP #
+
+A4A8 ; A132 ; MA #* ( ꒨ → ꄲ ) YI RADICAL TU → YI SYLLABLE TU #
+
+A4BF ; A259 ; MA #* ( ꒿ → ꉙ ) YI RADICAL HXOP → YI SYLLABLE HXOP #
+
+A4BE ; A2B1 ; MA #* ( ꒾ → ꊱ ) YI RADICAL CIP → YI SYLLABLE CIP #
+
+A494 ; A2CD ; MA #* ( ꒔ → ꋍ ) YI RADICAL CYP → YI SYLLABLE CYP #
+
+A4C0 ; A3AB ; MA #* ( ꓀ → ꎫ ) YI RADICAL SHAT → YI SYLLABLE SHAT #
+
+A4C2 ; A3B5 ; MA #* ( ꓂ → ꎵ ) YI RADICAL SHOP → YI SYLLABLE SHOP #
+
+A4BA ; A3BF ; MA #* ( ꒺ → ꎿ ) YI RADICAL SHUR → YI SYLLABLE SHUR #
+
+A4B0 ; A3C2 ; MA #* ( ꒰ → ꏂ ) YI RADICAL SHY → YI SYLLABLE SHY #
+
+A4A7 ; A458 ; MA #* ( ꒧ → ꑘ ) YI RADICAL NYOP → YI SYLLABLE NYOP #
+
+22A5 ; A4D5 ; MA #* ( ⊥ → ꓕ ) UP TACK → LISU LETTER THA #
+27C2 ; A4D5 ; MA #* ( ⟂ → ꓕ ) PERPENDICULAR → LISU LETTER THA # →⊥→
+1D21C ; A4D5 ; MA #* ( 𝈜 → ꓕ ) GREEK VOCAL NOTATION SYMBOL-54 →
LISU LETTER THA # →Ʇ→
+A7B1 ; A4D5 ; MA # ( Ʇ → ꓕ ) LATIN CAPITAL LETTER TURNED T → LISU LETTER
THA #
+
+A79E ; A4E4 ; MA # ( Ꞟ → ꓤ ) LATIN CAPITAL LETTER VOLAPUK UE → LISU
LETTER ZA #
+
+2141 ; A4E8 ; MA #* ( ⅁ → ꓨ ) TURNED SANS-SERIF CAPITAL G → LISU LETTER
HHA #
+
+2142 ; A4F6 ; MA #* ( ⅂ → ꓶ ) TURNED SANS-SERIF CAPITAL L → LISU LETTER
UH #
+1D215 ; A4F6 ; MA #* ( 𝈕 → ꓶ ) GREEK VOCAL NOTATION SYMBOL-22 →
LISU LETTER UH # →⅂→
+1D22B ; A4F6 ; MA #* ( 𝈫 → ꓶ ) GREEK INSTRUMENTAL NOTATION
SYMBOL-24 → LISU LETTER UH # →𝈕→→⅂→
+16F26 ; A4F6 ; MA # ( 𖼦 → ꓶ ) MIAO LETTER HA → LISU LETTER UH
# →⅂→
+10411 ; A4F6 ; MA # ( 𐐑 → ꓶ ) DESERET CAPITAL LETTER PEE → LISU
LETTER UH # →⅂→
+
+2143 ; 16F00 ; MA #* ( ⅃ → 𖼀 ) REVERSED SANS-SERIF CAPITAL L → MIAO
LETTER PA #
+
+11AE6 ; 11AE5 11AEF ; MA # ( 𑫦 → 𑫥𑫯 ) PAU CIN HAU RISING TONE →
PAU CIN HAU RISING TONE LONG, PAU CIN HAU MID-LEVEL TONE #
+
+11AE8 ; 11AE5 11AE5 ; MA # ( 𑫨 → 𑫥𑫥 ) PAU CIN HAU RISING TONE
LONG FINAL → PAU CIN HAU RISING TONE LONG, PAU CIN HAU RISING TONE LONG #
+
+11AE9 ; 11AE5 11AE5 11AEF ; MA # ( 𑫩 → 𑫥𑫥𑫯 ) PAU CIN HAU
RISING TONE FINAL → PAU CIN HAU RISING TONE LONG, PAU CIN HAU RISING TONE LONG,
PAU CIN HAU MID-LEVEL TONE # →𑫥𑫦→
+
+11AEA ; 11AE5 11AE5 11AF0 ; MA # ( 𑫪 → 𑫥𑫥𑫰 ) PAU CIN HAU
SANDHI GLOTTAL STOP FINAL → PAU CIN HAU RISING TONE LONG, PAU CIN HAU RISING
TONE LONG, PAU CIN HAU GLOTTAL STOP VARIANT # →𑫥𑫧→
+
+11AE7 ; 11AE5 11AF0 ; MA # ( 𑫧 → 𑫥𑫰 ) PAU CIN HAU SANDHI GLOTTAL
STOP → PAU CIN HAU RISING TONE LONG, PAU CIN HAU GLOTTAL STOP VARIANT #
+
+11AF4 ; 11AF3 11AEF ; MA # ( 𑫴 → 𑫳𑫯 ) PAU CIN HAU LOW-FALLING
TONE → PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU MID-LEVEL TONE #
+
+11AF6 ; 11AF3 11AF3 ; MA # ( 𑫶 → 𑫳𑫳 ) PAU CIN HAU LOW-FALLING
TONE LONG FINAL → PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU LOW-FALLING
TONE LONG #
+
+11AF7 ; 11AF3 11AF3 11AEF ; MA # ( 𑫷 → 𑫳𑫳𑫯 ) PAU CIN HAU
LOW-FALLING TONE FINAL → PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU
LOW-FALLING TONE LONG, PAU CIN HAU MID-LEVEL TONE # →𑫳𑫴→
+
+11AF8 ; 11AF3 11AF3 11AF0 ; MA # ( 𑫸 → 𑫳𑫳𑫰 ) PAU CIN HAU
GLOTTAL STOP FINAL → PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU LOW-FALLING
TONE LONG, PAU CIN HAU GLOTTAL STOP VARIANT # →𑫳𑫵→
+
+11AF5 ; 11AF3 11AF0 ; MA # ( 𑫵 → 𑫳𑫰 ) PAU CIN HAU GLOTTAL STOP →
PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU GLOTTAL STOP VARIANT #
+
+11AEC ; 11AEB 11AEF ; MA # ( 𑫬 → 𑫫𑫯 ) PAU CIN HAU SANDHI TONE →
PAU CIN HAU SANDHI TONE LONG, PAU CIN HAU MID-LEVEL TONE #
+
+11AED ; 11AEB 11AEB ; MA # ( 𑫭 → 𑫫𑫫 ) PAU CIN HAU SANDHI TONE
LONG FINAL → PAU CIN HAU SANDHI TONE LONG, PAU CIN HAU SANDHI TONE LONG #
+
+11AEE ; 11AEB 11AEB 11AEF ; MA # ( 𑫮 → 𑫫𑫫𑫯 ) PAU CIN HAU
SANDHI TONE FINAL → PAU CIN HAU SANDHI TONE LONG, PAU CIN HAU SANDHI TONE LONG,
PAU CIN HAU MID-LEVEL TONE # →𑫫𑫬→
+
+2295 ; 102A8 ; MA #* ( ⊕ → 𐊨 ) CIRCLED PLUS → CARIAN LETTER Q #
+2A01 ; 102A8 ; MA #* ( ⨁ → 𐊨 ) N-ARY CIRCLED PLUS OPERATOR → CARIAN
LETTER Q # →⊕→
+1F728 ; 102A8 ; MA #* ( 🜨 → 𐊨 ) ALCHEMICAL SYMBOL FOR VERDIGRIS →
CARIAN LETTER Q # →⊕→
+A69A ; 102A8 ; MA # ( Ꚛ → 𐊨 ) CYRILLIC CAPITAL LETTER CROSSED O → CARIAN
LETTER Q # →⊕→
+
+25BD ; 102BC ; MA #* ( ▽ → 𐊼 ) WHITE DOWN-POINTING TRIANGLE → CARIAN
LETTER K #
+1D214 ; 102BC ; MA #* ( 𝈔 → 𐊼 ) GREEK VOCAL NOTATION SYMBOL-21 →
CARIAN LETTER K # →▽→
+1F704 ; 102BC ; MA #* ( 🜄 → 𐊼 ) ALCHEMICAL SYMBOL FOR WATER →
CARIAN LETTER K # →▽→
+
+29D6 ; 102C0 ; MA #* ( ⧖ → 𐋀 ) WHITE HOURGLASS → CARIAN LETTER G #
+
+A79B ; 1043A ; MA # ( ꞛ → 𐐺 ) LATIN SMALL LETTER VOLAPUK AE → DESERET
SMALL LETTER BEE #
+
+A79A ; 10412 ; MA # ( Ꞛ → 𐐒 ) LATIN CAPITAL LETTER VOLAPUK AE → DESERET
CAPITAL LETTER BEE #
+
+104A0 ; 10486 ; MA # ( 𐒠 → 𐒆 ) OSMANYA DIGIT ZERO → OSMANYA LETTER
DEEL #
+
+103D1 ; 10382 ; MA # ( 𐏑 → 𐎂 ) OLD PERSIAN NUMBER ONE → UGARITIC
LETTER GAMLA #
+
+103D3 ; 10393 ; MA # ( 𐏓 → 𐎓 ) OLD PERSIAN NUMBER TEN → UGARITIC
LETTER AIN #
+
+12038 ; 1039A ; MA # ( 𒀸 → 𐎚 ) CUNEIFORM SIGN ASH → UGARITIC
LETTER TO #
+
+2625 ; 1099E ; MA #* ( ☥ → 𐦞 ) ANKH → MEROITIC HIEROGLYPHIC SYMBOL VIDJ
#
+132F9 ; 1099E ; MA # ( 𓋹 → 𐦞 ) EGYPTIAN HIEROGLYPH S034 →
MEROITIC HIEROGLYPHIC SYMBOL VIDJ # →☥→
+
+3039 ; 5344 ; MA # ( 〹 → 卄 ) HANGZHOU NUMERAL TWENTY → CJK UNIFIED
IDEOGRAPH-5344 #
+
+F967 ; 4E0D ; MA # ( 不 → 不 ) CJK COMPATIBILITY IDEOGRAPH-F967 → CJK
UNIFIED IDEOGRAPH-4E0D #
+
+2F800 ; 4E3D ; MA # ( 丽 → 丽 ) CJK COMPATIBILITY IDEOGRAPH-2F800 →
CJK UNIFIED IDEOGRAPH-4E3D #
+
+FA70 ; 4E26 ; MA # ( 並 → 並 ) CJK COMPATIBILITY IDEOGRAPH-FA70 → CJK
UNIFIED IDEOGRAPH-4E26 #
+
+239C ; 4E28 ; MA #* ( ⎜ → 丨 ) LEFT PARENTHESIS EXTENSION → CJK UNIFIED
IDEOGRAPH-4E28 # →⎥→→⎮→
+239F ; 4E28 ; MA #* ( ⎟ → 丨 ) RIGHT PARENTHESIS EXTENSION → CJK UNIFIED
IDEOGRAPH-4E28 # →⎥→→⎮→
+23A2 ; 4E28 ; MA #* ( ⎢ → 丨 ) LEFT SQUARE BRACKET EXTENSION → CJK
UNIFIED IDEOGRAPH-4E28 # →⎥→→⎮→
+23A5 ; 4E28 ; MA #* ( ⎥ → 丨 ) RIGHT SQUARE BRACKET EXTENSION → CJK
UNIFIED IDEOGRAPH-4E28 # →⎮→
+23AA ; 4E28 ; MA #* ( ⎪ → 丨 ) CURLY BRACKET EXTENSION → CJK UNIFIED
IDEOGRAPH-4E28 # →⎥→→⎮→
+23AE ; 4E28 ; MA #* ( ⎮ → 丨 ) INTEGRAL EXTENSION → CJK UNIFIED
IDEOGRAPH-4E28 #
+31D1 ; 4E28 ; MA #* ( ㇑ → 丨 ) CJK STROKE S → CJK UNIFIED IDEOGRAPH-4E28
#
+1175 ; 4E28 ; MA # ( ᅵ → 丨 ) HANGUL JUNGSEONG I → CJK UNIFIED
IDEOGRAPH-4E28 # →ㅣ→
+3163 ; 4E28 ; MA # ( ㅣ → 丨 ) HANGUL LETTER I → CJK UNIFIED
IDEOGRAPH-4E28 #
+2F01 ; 4E28 ; MA #* ( ⼁ → 丨 ) KANGXI RADICAL LINE → CJK UNIFIED
IDEOGRAPH-4E28 #
+
+119C ; 4E28 30FC ; MA # ( ᆜ → 丨ー ) HANGUL JUNGSEONG I-EU → CJK
UNIFIED IDEOGRAPH-4E28, KATAKANA-HIRAGANA PROLONGED SOUND MARK # →ᅵᅳ→
+
+1198 ; 4E28 1161 ; MA # ( ᆘ → 丨ᅡ ) HANGUL JUNGSEONG I-A → CJK UNIFIED
IDEOGRAPH-4E28, HANGUL JUNGSEONG A # →ᅵᅡ→
+
+1199 ; 4E28 1163 ; MA # ( ᆙ → 丨ᅣ ) HANGUL JUNGSEONG I-YA → CJK
UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YA # →ᅵᅣ→
+
+D7BD ; 4E28 1163 1169 ; MA # ( ힽ → 丨ᅣᅩ ) HANGUL JUNGSEONG I-YA-O →
CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YA, HANGUL JUNGSEONG O # →ᅵᅣᅩ→
+
+D7BE ; 4E28 1163 4E28 ; MA # ( ힾ → 丨ᅣ丨 ) HANGUL JUNGSEONG I-YAE →
CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YA, CJK UNIFIED IDEOGRAPH-4E28
# →ᅵᅣᅵ→
+
+D7BF ; 4E28 1167 ; MA # ( ힿ → 丨ᅧ ) HANGUL JUNGSEONG I-YEO → CJK
UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YEO # →ᅵᅧ→
+
+D7C0 ; 4E28 1167 4E28 ; MA # ( ퟀ → 丨ᅧ丨 ) HANGUL JUNGSEONG I-YE →
CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28
# →ᅵᅧᅵ→
+
+119A ; 4E28 1169 ; MA # ( ᆚ → 丨ᅩ ) HANGUL JUNGSEONG I-O → CJK UNIFIED
IDEOGRAPH-4E28, HANGUL JUNGSEONG O # →ᅵᅩ→
+
+D7C1 ; 4E28 1169 4E28 ; MA # ( ퟁ → 丨ᅩ丨 ) HANGUL JUNGSEONG I-O-I →
CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG O, CJK UNIFIED IDEOGRAPH-4E28
# →ᅵᅩᅵ→
+
+D7C2 ; 4E28 116D ; MA # ( ퟂ → 丨ᅭ ) HANGUL JUNGSEONG I-YO → CJK
UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YO # →ᅵᅭ→
+
+119B ; 4E28 116E ; MA # ( ᆛ → 丨ᅮ ) HANGUL JUNGSEONG I-U → CJK UNIFIED
IDEOGRAPH-4E28, HANGUL JUNGSEONG U # →ᅵᅮ→
+
+D7C3 ; 4E28 1172 ; MA # ( ퟃ → 丨ᅲ ) HANGUL JUNGSEONG I-YU → CJK
UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YU # →ᅵᅲ→
+
+119D ; 4E28 119E ; MA # ( ᆝ → 丨ᆞ ) HANGUL JUNGSEONG I-ARAEA → CJK
UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG ARAEA # →ᅵᆞ→
+
+D7C4 ; 4E28 4E28 ; MA # ( ퟄ → 丨丨 ) HANGUL JUNGSEONG I-I → CJK UNIFIED
IDEOGRAPH-4E28, CJK UNIFIED IDEOGRAPH-4E28 # →ᅵᅵ→
+
+F905 ; 4E32 ; MA # ( 串 → 串 ) CJK COMPATIBILITY IDEOGRAPH-F905 → CJK
UNIFIED IDEOGRAPH-4E32 #
+
+2F801 ; 4E38 ; MA # ( 丸 → 丸 ) CJK COMPATIBILITY IDEOGRAPH-2F801 →
CJK UNIFIED IDEOGRAPH-4E38 #
+
+F95E ; 4E39 ; MA # ( 丹 → 丹 ) CJK COMPATIBILITY IDEOGRAPH-F95E → CJK
UNIFIED IDEOGRAPH-4E39 #
+
+2F802 ; 4E41 ; MA # ( 乁 → 乁 ) CJK COMPATIBILITY IDEOGRAPH-2F802 →
CJK UNIFIED IDEOGRAPH-4E41 #
+
+31E0 ; 4E59 ; MA #* ( ㇠ → 乙 ) CJK STROKE HXWG → CJK UNIFIED
IDEOGRAPH-4E59 #
+2F04 ; 4E59 ; MA #* ( ⼄ → 乙 ) KANGXI RADICAL SECOND → CJK UNIFIED
IDEOGRAPH-4E59 #
+
+31DF ; 4E5A ; MA #* ( ㇟ → 乚 ) CJK STROKE SWG → CJK UNIFIED
IDEOGRAPH-4E5A #
+2E83 ; 4E5A ; MA #* ( ⺃ → 乚 ) CJK RADICAL SECOND TWO → CJK UNIFIED
IDEOGRAPH-4E5A #
+
+31D6 ; 4E5B ; MA #* ( ㇖ → 乛 ) CJK STROKE HG → CJK UNIFIED IDEOGRAPH-4E5B
#
+2E82 ; 4E5B ; MA #* ( ⺂ → 乛 ) CJK RADICAL SECOND ONE → CJK UNIFIED
IDEOGRAPH-4E5B # →㇖→
+
+2EF2 ; 4E80 ; MA #* ( ⻲ → 亀 ) CJK RADICAL J-SIMPLIFIED TURTLE → CJK
UNIFIED IDEOGRAPH-4E80 #
+
+F91B ; 4E82 ; MA # ( 亂 → 亂 ) CJK COMPATIBILITY IDEOGRAPH-F91B → CJK
UNIFIED IDEOGRAPH-4E82 #
+
+31DA ; 4E85 ; MA #* ( ㇚ → 亅 ) CJK STROKE SG → CJK UNIFIED IDEOGRAPH-4E85
#
+2F05 ; 4E85 ; MA #* ( ⼅ → 亅 ) KANGXI RADICAL HOOK → CJK UNIFIED
IDEOGRAPH-4E85 #
+
+F9BA ; 4E86 ; MA # ( 了 → 了 ) CJK COMPATIBILITY IDEOGRAPH-F9BA → CJK
UNIFIED IDEOGRAPH-4E86 #
+
+30CB ; 4E8C ; MA # ( ニ → 二 ) KATAKANA LETTER NI → CJK UNIFIED
IDEOGRAPH-4E8C #
+2F06 ; 4E8C ; MA #* ( ⼆ → 二 ) KANGXI RADICAL TWO → CJK UNIFIED
IDEOGRAPH-4E8C #
+
+2F803 ; 20122 ; MA # ( 𠄢 → 𠄢 ) CJK COMPATIBILITY IDEOGRAPH-2F803 →
CJK UNIFIED IDEOGRAPH-20122 #
+
+2F07 ; 4EA0 ; MA #* ( ⼇ → 亠 ) KANGXI RADICAL LID → CJK UNIFIED
IDEOGRAPH-4EA0 #
+
+F977 ; 4EAE ; MA # ( 亮 → 亮 ) CJK COMPATIBILITY IDEOGRAPH-F977 → CJK
UNIFIED IDEOGRAPH-4EAE #
+
+2F08 ; 4EBA ; MA #* ( ⼈ → 人 ) KANGXI RADICAL MAN → CJK UNIFIED
IDEOGRAPH-4EBA #
+
+30A4 ; 4EBB ; MA # ( イ → 亻 ) KATAKANA LETTER I → CJK UNIFIED
IDEOGRAPH-4EBB # →⺅→
+2E85 ; 4EBB ; MA #* ( ⺅ → 亻 ) CJK RADICAL PERSON → CJK UNIFIED
IDEOGRAPH-4EBB #
+
+F9FD ; 4EC0 ; MA # ( 什 → 什 ) CJK COMPATIBILITY IDEOGRAPH-F9FD → CJK
UNIFIED IDEOGRAPH-4EC0 #
+
+2F819 ; 4ECC ; MA # ( 仌 → 仌 ) CJK COMPATIBILITY IDEOGRAPH-2F819 →
CJK UNIFIED IDEOGRAPH-4ECC #
+
+F9A8 ; 4EE4 ; MA # ( 令 → 令 ) CJK COMPATIBILITY IDEOGRAPH-F9A8 → CJK
UNIFIED IDEOGRAPH-4EE4 #
+
+2F804 ; 4F60 ; MA # ( 你 → 你 ) CJK COMPATIBILITY IDEOGRAPH-2F804 →
CJK UNIFIED IDEOGRAPH-4F60 #
+
+5002 ; 4F75 ; MA # ( 倂 → 併 ) CJK UNIFIED IDEOGRAPH-5002 → CJK UNIFIED
IDEOGRAPH-4F75 #
+2F807 ; 4F75 ; MA # ( 倂 → 併 ) CJK COMPATIBILITY IDEOGRAPH-2F807 →
CJK UNIFIED IDEOGRAPH-4F75 # →倂→
+
+FA73 ; 4F80 ; MA # ( 侀 → 侀 ) CJK COMPATIBILITY IDEOGRAPH-FA73 → CJK
UNIFIED IDEOGRAPH-4F80 #
+
+F92D ; 4F86 ; MA # ( 來 → 來 ) CJK COMPATIBILITY IDEOGRAPH-F92D → CJK
UNIFIED IDEOGRAPH-4F86 #
+
+F9B5 ; 4F8B ; MA # ( 例 → 例 ) CJK COMPATIBILITY IDEOGRAPH-F9B5 → CJK
UNIFIED IDEOGRAPH-4F8B #
+
+FA30 ; 4FAE ; MA # ( 侮 → 侮 ) CJK COMPATIBILITY IDEOGRAPH-FA30 → CJK
UNIFIED IDEOGRAPH-4FAE #
+2F805 ; 4FAE ; MA # ( 侮 → 侮 ) CJK COMPATIBILITY IDEOGRAPH-2F805 →
CJK UNIFIED IDEOGRAPH-4FAE #
+
+2F806 ; 4FBB ; MA # ( 侻 → 侻 ) CJK COMPATIBILITY IDEOGRAPH-2F806 →
CJK UNIFIED IDEOGRAPH-4FBB #
+
+F965 ; 4FBF ; MA # ( 便 → 便 ) CJK COMPATIBILITY IDEOGRAPH-F965 → CJK
UNIFIED IDEOGRAPH-4FBF #
+
+503C ; 5024 ; MA # ( 值 → 値 ) CJK UNIFIED IDEOGRAPH-503C → CJK UNIFIED
IDEOGRAPH-5024 #
+
+F9D4 ; 502B ; MA # ( 倫 → 倫 ) CJK COMPATIBILITY IDEOGRAPH-F9D4 → CJK
UNIFIED IDEOGRAPH-502B #
+
+2F808 ; 507A ; MA # ( 偺 → 偺 ) CJK COMPATIBILITY IDEOGRAPH-2F808 →
CJK UNIFIED IDEOGRAPH-507A #
+
+2F809 ; 5099 ; MA # ( 備 → 備 ) CJK COMPATIBILITY IDEOGRAPH-2F809 →
CJK UNIFIED IDEOGRAPH-5099 #
+
+2F80B ; 50CF ; MA # ( 像 → 像 ) CJK COMPATIBILITY IDEOGRAPH-2F80B →
CJK UNIFIED IDEOGRAPH-50CF #
+
+F9BB ; 50DA ; MA # ( 僚 → 僚 ) CJK COMPATIBILITY IDEOGRAPH-F9BB → CJK
UNIFIED IDEOGRAPH-50DA #
+
+FA31 ; 50E7 ; MA # ( 僧 → 僧 ) CJK COMPATIBILITY IDEOGRAPH-FA31 → CJK
UNIFIED IDEOGRAPH-50E7 #
+2F80A ; 50E7 ; MA # ( 僧 → 僧 ) CJK COMPATIBILITY IDEOGRAPH-2F80A →
CJK UNIFIED IDEOGRAPH-50E7 #
+
+2F80C ; 349E ; MA # ( 㒞 → 㒞 ) CJK COMPATIBILITY IDEOGRAPH-2F80C →
CJK UNIFIED IDEOGRAPH-349E #
+
+2F09 ; 513F ; MA #* ( ⼉ → 儿 ) KANGXI RADICAL LEGS → CJK UNIFIED
IDEOGRAPH-513F #
+
+FA0C ; 5140 ; MA # ( 兀 → 兀 ) CJK COMPATIBILITY IDEOGRAPH-FA0C → CJK
UNIFIED IDEOGRAPH-5140 #
+2E8E ; 5140 ; MA #* ( ⺎ → 兀 ) CJK RADICAL LAME ONE → CJK UNIFIED
IDEOGRAPH-5140 #
+
+FA74 ; 5145 ; MA # ( 充 → 充 ) CJK COMPATIBILITY IDEOGRAPH-FA74 → CJK
UNIFIED IDEOGRAPH-5145 #
+
+FA32 ; 514D ; MA # ( 免 → 免 ) CJK COMPATIBILITY IDEOGRAPH-FA32 → CJK
UNIFIED IDEOGRAPH-514D #
+2F80E ; 514D ; MA # ( 免 → 免 ) CJK COMPATIBILITY IDEOGRAPH-2F80E →
CJK UNIFIED IDEOGRAPH-514D #
+
+2F80F ; 5154 ; MA # ( 兔 → 兔 ) CJK COMPATIBILITY IDEOGRAPH-2F80F →
CJK UNIFIED IDEOGRAPH-5154 #
+
+2F810 ; 5164 ; MA # ( 兤 → 兤 ) CJK COMPATIBILITY IDEOGRAPH-2F810 →
CJK UNIFIED IDEOGRAPH-5164 #
+
+2F0A ; 5165 ; MA #* ( ⼊ → 入 ) KANGXI RADICAL ENTER → CJK UNIFIED
IDEOGRAPH-5165 #
+
+2F814 ; 5167 ; MA # ( 內 → 內 ) CJK COMPATIBILITY IDEOGRAPH-2F814 →
CJK UNIFIED IDEOGRAPH-5167 #
+
+FA72 ; 5168 ; MA # ( 全 → 全 ) CJK COMPATIBILITY IDEOGRAPH-FA72 → CJK
UNIFIED IDEOGRAPH-5168 #
+
+F978 ; 5169 ; MA # ( 兩 → 兩 ) CJK COMPATIBILITY IDEOGRAPH-F978 → CJK
UNIFIED IDEOGRAPH-5169 #
+
+30CF ; 516B ; MA # ( ハ → 八 ) KATAKANA LETTER HA → CJK UNIFIED
IDEOGRAPH-516B #
+2F0B ; 516B ; MA #* ( ⼋ → 八 ) KANGXI RADICAL EIGHT → CJK UNIFIED
IDEOGRAPH-516B #
+
+F9D1 ; 516D ; MA # ( 六 → 六 ) CJK COMPATIBILITY IDEOGRAPH-F9D1 → CJK
UNIFIED IDEOGRAPH-516D #
+
+2F811 ; 5177 ; MA # ( 具 → 具 ) CJK COMPATIBILITY IDEOGRAPH-2F811 →
CJK UNIFIED IDEOGRAPH-5177 #
+
+2F812 ; 2051C ; MA # ( 𠔜 → 𠔜 ) CJK COMPATIBILITY IDEOGRAPH-2F812 →
CJK UNIFIED IDEOGRAPH-2051C #
+
+2F91B ; 20525 ; MA # ( 𠔥 → 𠔥 ) CJK COMPATIBILITY IDEOGRAPH-2F91B →
CJK UNIFIED IDEOGRAPH-20525 #
+
+FA75 ; 5180 ; MA # ( 冀 → 冀 ) CJK COMPATIBILITY IDEOGRAPH-FA75 → CJK
UNIFIED IDEOGRAPH-5180 #
+
+2F813 ; 34B9 ; MA # ( 㒹 → 㒹 ) CJK COMPATIBILITY IDEOGRAPH-2F813 →
CJK UNIFIED IDEOGRAPH-34B9 #
+
+2F0C ; 5182 ; MA #* ( ⼌ → 冂 ) KANGXI RADICAL DOWN BOX → CJK UNIFIED
IDEOGRAPH-5182 #
+
+2F815 ; 518D ; MA # ( 再 → 再 ) CJK COMPATIBILITY IDEOGRAPH-2F815 →
CJK UNIFIED IDEOGRAPH-518D #
+
+2F816 ; 2054B ; MA # ( 𠕋 → 𠕋 ) CJK COMPATIBILITY IDEOGRAPH-2F816 →
CJK UNIFIED IDEOGRAPH-2054B #
+
+2F8D2 ; 5192 ; MA # ( 冒 → 冒 ) CJK COMPATIBILITY IDEOGRAPH-2F8D2 →
CJK UNIFIED IDEOGRAPH-5192 #
+
+2F8D3 ; 5195 ; MA # ( 冕 → 冕 ) CJK COMPATIBILITY IDEOGRAPH-2F8D3 →
CJK UNIFIED IDEOGRAPH-5195 #
+
+2F9CA ; 34BB ; MA # ( 㒻 → 㒻 ) CJK COMPATIBILITY IDEOGRAPH-2F9CA →
CJK UNIFIED IDEOGRAPH-34BB #
+
+2F8D4 ; 6700 ; MA # ( 最 → 最 ) CJK COMPATIBILITY IDEOGRAPH-2F8D4 →
CJK UNIFIED IDEOGRAPH-6700 #
+
+2F0D ; 5196 ; MA #* ( ⼍ → 冖 ) KANGXI RADICAL COVER → CJK UNIFIED
IDEOGRAPH-5196 #
+
+2F817 ; 5197 ; MA # ( 冗 → 冗 ) CJK COMPATIBILITY IDEOGRAPH-2F817 →
CJK UNIFIED IDEOGRAPH-5197 #
+
+2F818 ; 51A4 ; MA # ( 冤 → 冤 ) CJK COMPATIBILITY IDEOGRAPH-2F818 →
CJK UNIFIED IDEOGRAPH-51A4 #
+
+2F0E ; 51AB ; MA #* ( ⼎ → 冫 ) KANGXI RADICAL ICE → CJK UNIFIED
IDEOGRAPH-51AB #
+
+2F81A ; 51AC ; MA # ( 冬 → 冬 ) CJK COMPATIBILITY IDEOGRAPH-2F81A →
CJK UNIFIED IDEOGRAPH-51AC #
+
+FA71 ; 51B5 ; MA # ( 况 → 况 ) CJK COMPATIBILITY IDEOGRAPH-FA71 → CJK
UNIFIED IDEOGRAPH-51B5 #
+2F81B ; 51B5 ; MA # ( 况 → 况 ) CJK COMPATIBILITY IDEOGRAPH-2F81B →
CJK UNIFIED IDEOGRAPH-51B5 #
+
+F92E ; 51B7 ; MA # ( 冷 → 冷 ) CJK COMPATIBILITY IDEOGRAPH-F92E → CJK
UNIFIED IDEOGRAPH-51B7 #
+
+F979 ; 51C9 ; MA # ( 凉 → 凉 ) CJK COMPATIBILITY IDEOGRAPH-F979 → CJK
UNIFIED IDEOGRAPH-51C9 #
+
+F955 ; 51CC ; MA # ( 凌 → 凌 ) CJK COMPATIBILITY IDEOGRAPH-F955 → CJK
UNIFIED IDEOGRAPH-51CC #
+
+F954 ; 51DC ; MA # ( 凜 → 凜 ) CJK COMPATIBILITY IDEOGRAPH-F954 → CJK
UNIFIED IDEOGRAPH-51DC #
+
+FA15 ; 51DE ; MA # ( 凞 → 凞 ) CJK COMPATIBILITY IDEOGRAPH-FA15 → CJK
UNIFIED IDEOGRAPH-51DE #
+
+2F0F ; 51E0 ; MA #* ( ⼏ → 几 ) KANGXI RADICAL TABLE → CJK UNIFIED
IDEOGRAPH-51E0 #
+
+2F80D ; 2063A ; MA # ( 𠘺 → 𠘺 ) CJK COMPATIBILITY IDEOGRAPH-2F80D →
CJK UNIFIED IDEOGRAPH-2063A #
+
+2F81D ; 51F5 ; MA # ( 凵 → 凵 ) CJK COMPATIBILITY IDEOGRAPH-2F81D →
CJK UNIFIED IDEOGRAPH-51F5 #
+2F10 ; 51F5 ; MA #* ( ⼐ → 凵 ) KANGXI RADICAL OPEN BOX → CJK UNIFIED
IDEOGRAPH-51F5 #
+
+2F11 ; 5200 ; MA #* ( ⼑ → 刀 ) KANGXI RADICAL KNIFE → CJK UNIFIED
IDEOGRAPH-5200 #
+
+2E89 ; 5202 ; MA #* ( ⺉ → 刂 ) CJK RADICAL KNIFE TWO → CJK UNIFIED
IDEOGRAPH-5202 #
+
+2F81E ; 5203 ; MA # ( 刃 → 刃 ) CJK COMPATIBILITY IDEOGRAPH-2F81E →
CJK UNIFIED IDEOGRAPH-5203 #
+
+FA00 ; 5207 ; MA # ( 切 → 切 ) CJK COMPATIBILITY IDEOGRAPH-FA00 → CJK
UNIFIED IDEOGRAPH-5207 #
+2F850 ; 5207 ; MA # ( 切 → 切 ) CJK COMPATIBILITY IDEOGRAPH-2F850 →
CJK UNIFIED IDEOGRAPH-5207 #
+
+F99C ; 5217 ; MA # ( 列 → 列 ) CJK COMPATIBILITY IDEOGRAPH-F99C → CJK
UNIFIED IDEOGRAPH-5217 #
+
+F9DD ; 5229 ; MA # ( 利 → 利 ) CJK COMPATIBILITY IDEOGRAPH-F9DD → CJK
UNIFIED IDEOGRAPH-5229 #
+
+2F81F ; 34DF ; MA # ( 㓟 → 㓟 ) CJK COMPATIBILITY IDEOGRAPH-2F81F →
CJK UNIFIED IDEOGRAPH-34DF #
+
+F9FF ; 523A ; MA # ( 刺 → 刺 ) CJK COMPATIBILITY IDEOGRAPH-F9FF → CJK
UNIFIED IDEOGRAPH-523A #
+
+2F820 ; 523B ; MA # ( 刻 → 刻 ) CJK COMPATIBILITY IDEOGRAPH-2F820 →
CJK UNIFIED IDEOGRAPH-523B #
+
+2F821 ; 5246 ; MA # ( 剆 → 剆 ) CJK COMPATIBILITY IDEOGRAPH-2F821 →
CJK UNIFIED IDEOGRAPH-5246 #
+
+2F822 ; 5272 ; MA # ( 割 → 割 ) CJK COMPATIBILITY IDEOGRAPH-2F822 →
CJK UNIFIED IDEOGRAPH-5272 #
+
+2F823 ; 5277 ; MA # ( 剷 → 剷 ) CJK COMPATIBILITY IDEOGRAPH-2F823 →
CJK UNIFIED IDEOGRAPH-5277 #
+
+F9C7 ; 5289 ; MA # ( 劉 → 劉 ) CJK COMPATIBILITY IDEOGRAPH-F9C7 → CJK
UNIFIED IDEOGRAPH-5289 #
+
+2F9D9 ; 20804 ; MA # ( 𠠄 → 𠠄 ) CJK COMPATIBILITY IDEOGRAPH-2F9D9 →
CJK UNIFIED IDEOGRAPH-20804 #
+
+30AB ; 529B ; MA # ( カ → 力 ) KATAKANA LETTER KA → CJK UNIFIED
IDEOGRAPH-529B # →⼒→
+F98A ; 529B ; MA # ( 力 → 力 ) CJK COMPATIBILITY IDEOGRAPH-F98A → CJK
UNIFIED IDEOGRAPH-529B #
+2F12 ; 529B ; MA #* ( ⼒ → 力 ) KANGXI RADICAL POWER → CJK UNIFIED
IDEOGRAPH-529B #
+
+F99D ; 52A3 ; MA # ( 劣 → 劣 ) CJK COMPATIBILITY IDEOGRAPH-F99D → CJK
UNIFIED IDEOGRAPH-52A3 #
+
+2F824 ; 3515 ; MA # ( 㔕 → 㔕 ) CJK COMPATIBILITY IDEOGRAPH-2F824 →
CJK UNIFIED IDEOGRAPH-3515 #
+
+2F992 ; 52B3 ; MA # ( 劳 → 劳 ) CJK COMPATIBILITY IDEOGRAPH-2F992 →
CJK UNIFIED IDEOGRAPH-52B3 #
+
+FA76 ; 52C7 ; MA # ( 勇 → 勇 ) CJK COMPATIBILITY IDEOGRAPH-FA76 → CJK
UNIFIED IDEOGRAPH-52C7 #
+2F825 ; 52C7 ; MA # ( 勇 → 勇 ) CJK COMPATIBILITY IDEOGRAPH-2F825 →
CJK UNIFIED IDEOGRAPH-52C7 #
+
+FA33 ; 52C9 ; MA # ( 勉 → 勉 ) CJK COMPATIBILITY IDEOGRAPH-FA33 → CJK
UNIFIED IDEOGRAPH-52C9 #
+2F826 ; 52C9 ; MA # ( 勉 → 勉 ) CJK COMPATIBILITY IDEOGRAPH-2F826 →
CJK UNIFIED IDEOGRAPH-52C9 #
+
+F952 ; 52D2 ; MA # ( 勒 → 勒 ) CJK COMPATIBILITY IDEOGRAPH-F952 → CJK
UNIFIED IDEOGRAPH-52D2 #
+
+F92F ; 52DE ; MA # ( 勞 → 勞 ) CJK COMPATIBILITY IDEOGRAPH-F92F → CJK
UNIFIED IDEOGRAPH-52DE #
+
+FA34 ; 52E4 ; MA # ( 勤 → 勤 ) CJK COMPATIBILITY IDEOGRAPH-FA34 → CJK
UNIFIED IDEOGRAPH-52E4 #
+2F827 ; 52E4 ; MA # ( 勤 → 勤 ) CJK COMPATIBILITY IDEOGRAPH-2F827 →
CJK UNIFIED IDEOGRAPH-52E4 #
+
+F97F ; 52F5 ; MA # ( 勵 → 勵 ) CJK COMPATIBILITY IDEOGRAPH-F97F → CJK
UNIFIED IDEOGRAPH-52F5 #
+
+2F13 ; 52F9 ; MA #* ( ⼓ → 勹 ) KANGXI RADICAL WRAP → CJK UNIFIED
IDEOGRAPH-52F9 #
+
+FA77 ; 52FA ; MA # ( 勺 → 勺 ) CJK COMPATIBILITY IDEOGRAPH-FA77 → CJK
UNIFIED IDEOGRAPH-52FA #
+2F828 ; 52FA ; MA # ( 勺 → 勺 ) CJK COMPATIBILITY IDEOGRAPH-2F828 →
CJK UNIFIED IDEOGRAPH-52FA #
+
+2F829 ; 5305 ; MA # ( 包 → 包 ) CJK COMPATIBILITY IDEOGRAPH-2F829 →
CJK UNIFIED IDEOGRAPH-5305 #
+
+2F82A ; 5306 ; MA # ( 匆 → 匆 ) CJK COMPATIBILITY IDEOGRAPH-2F82A →
CJK UNIFIED IDEOGRAPH-5306 #
+
+2F9DD ; 208DE ; MA # ( 𠣞 → 𠣞 ) CJK COMPATIBILITY IDEOGRAPH-2F9DD →
CJK UNIFIED IDEOGRAPH-208DE #
+
+2F14 ; 5315 ; MA #* ( ⼔ → 匕 ) KANGXI RADICAL SPOON → CJK UNIFIED
IDEOGRAPH-5315 #
+
+F963 ; 5317 ; MA # ( 北 → 北 ) CJK COMPATIBILITY IDEOGRAPH-F963 → CJK
UNIFIED IDEOGRAPH-5317 #
+2F82B ; 5317 ; MA # ( 北 → 北 ) CJK COMPATIBILITY IDEOGRAPH-2F82B →
CJK UNIFIED IDEOGRAPH-5317 #
+
+2F15 ; 531A ; MA #* ( ⼕ → 匚 ) KANGXI RADICAL RIGHT OPEN BOX → CJK
UNIFIED IDEOGRAPH-531A #
+
+2F16 ; 5338 ; MA #* ( ⼖ → 匸 ) KANGXI RADICAL HIDING ENCLOSURE → CJK
UNIFIED IDEOGRAPH-5338 #
+
+F9EB ; 533F ; MA # ( 匿 → 匿 ) CJK COMPATIBILITY IDEOGRAPH-F9EB → CJK
UNIFIED IDEOGRAPH-533F #
+
+2F17 ; 5341 ; MA #* ( ⼗ → 十 ) KANGXI RADICAL TEN → CJK UNIFIED
IDEOGRAPH-5341 #
+3038 ; 5341 ; MA # ( 〸 → 十 ) HANGZHOU NUMERAL TEN → CJK UNIFIED
IDEOGRAPH-5341 #
+
+303A ; 5345 ; MA # ( 〺 → 卅 ) HANGZHOU NUMERAL THIRTY → CJK UNIFIED
IDEOGRAPH-5345 #
+
+2F82C ; 5349 ; MA # ( 卉 → 卉 ) CJK COMPATIBILITY IDEOGRAPH-2F82C →
CJK UNIFIED IDEOGRAPH-5349 #
+
+0FD6 ; 534D ; MA #* ( ࿖ → 卍 ) LEFT-FACING SVASTI SIGN → CJK UNIFIED
IDEOGRAPH-534D #
+
+0FD5 ; 5350 ; MA #* ( ࿕ → 卐 ) RIGHT-FACING SVASTI SIGN → CJK UNIFIED
IDEOGRAPH-5350 #
+
+FA35 ; 5351 ; MA # ( 卑 → 卑 ) CJK COMPATIBILITY IDEOGRAPH-FA35 → CJK
UNIFIED IDEOGRAPH-5351 #
+2F82D ; 5351 ; MA # ( 卑 → 卑 ) CJK COMPATIBILITY IDEOGRAPH-2F82D →
CJK UNIFIED IDEOGRAPH-5351 #
+
+2F82E ; 535A ; MA # ( 博 → 博 ) CJK COMPATIBILITY IDEOGRAPH-2F82E →
CJK UNIFIED IDEOGRAPH-535A #
+
+30C8 ; 535C ; MA # ( ト → 卜 ) KATAKANA LETTER TO → CJK UNIFIED
IDEOGRAPH-535C # →⼘→
+2F18 ; 535C ; MA #* ( ⼘ → 卜 ) KANGXI RADICAL DIVINATION → CJK UNIFIED
IDEOGRAPH-535C #
+
+2F19 ; 5369 ; MA #* ( ⼙ → 卩 ) KANGXI RADICAL SEAL → CJK UNIFIED
IDEOGRAPH-5369 #
+
+2E8B ; 353E ; MA #* ( ⺋ → 㔾 ) CJK RADICAL SEAL → CJK UNIFIED
IDEOGRAPH-353E #
+
+2F82F ; 5373 ; MA # ( 即 → 即 ) CJK COMPATIBILITY IDEOGRAPH-2F82F →
CJK UNIFIED IDEOGRAPH-5373 #
+
+F91C ; 5375 ; MA # ( 卵 → 卵 ) CJK COMPATIBILITY IDEOGRAPH-F91C → CJK
UNIFIED IDEOGRAPH-5375 #
+
+2F830 ; 537D ; MA # ( 卽 → 卽 ) CJK COMPATIBILITY IDEOGRAPH-2F830 →
CJK UNIFIED IDEOGRAPH-537D #
+
+2F831 ; 537F ; MA # ( 卿 → 卿 ) CJK COMPATIBILITY IDEOGRAPH-2F831 →
CJK UNIFIED IDEOGRAPH-537F #
+2F832 ; 537F ; MA # ( 卿 → 卿 ) CJK COMPATIBILITY IDEOGRAPH-2F832 →
CJK UNIFIED IDEOGRAPH-537F #
+2F833 ; 537F ; MA # ( 卿 → 卿 ) CJK COMPATIBILITY IDEOGRAPH-2F833 →
CJK UNIFIED IDEOGRAPH-537F #
+
+2F1A ; 5382 ; MA #* ( ⼚ → 厂 ) KANGXI RADICAL CLIFF → CJK UNIFIED
IDEOGRAPH-5382 #
+
+2F834 ; 20A2C ; MA # ( 𠨬 → 𠨬 ) CJK COMPATIBILITY IDEOGRAPH-2F834 →
CJK UNIFIED IDEOGRAPH-20A2C #
+
+2F1B ; 53B6 ; MA #* ( ⼛ → 厶 ) KANGXI RADICAL PRIVATE → CJK UNIFIED
IDEOGRAPH-53B6 #
+
+F96B ; 53C3 ; MA # ( 參 → 參 ) CJK COMPATIBILITY IDEOGRAPH-F96B → CJK
UNIFIED IDEOGRAPH-53C3 #
+
+2F1C ; 53C8 ; MA #* ( ⼜ → 又 ) KANGXI RADICAL AGAIN → CJK UNIFIED
IDEOGRAPH-53C8 #
+
+2F836 ; 53CA ; MA # ( 及 → 及 ) CJK COMPATIBILITY IDEOGRAPH-2F836 →
CJK UNIFIED IDEOGRAPH-53CA #
+
+2F837 ; 53DF ; MA # ( 叟 → 叟 ) CJK COMPATIBILITY IDEOGRAPH-2F837 →
CJK UNIFIED IDEOGRAPH-53DF #
+
+2F838 ; 20B63 ; MA # ( 𠭣 → 𠭣 ) CJK COMPATIBILITY IDEOGRAPH-2F838 →
CJK UNIFIED IDEOGRAPH-20B63 #
+
+30ED ; 53E3 ; MA # ( ロ → 口 ) KATAKANA LETTER RO → CJK UNIFIED
IDEOGRAPH-53E3 # →⼞→→⼝→
+2F1D ; 53E3 ; MA #* ( ⼝ → 口 ) KANGXI RADICAL MOUTH → CJK UNIFIED
IDEOGRAPH-53E3 #
+56D7 ; 53E3 ; MA # ( 囗 → 口 ) CJK UNIFIED IDEOGRAPH-56D7 → CJK UNIFIED
IDEOGRAPH-53E3 # →⼞→→⼝→
+2F1E ; 53E3 ; MA #* ( ⼞ → 口 ) KANGXI RADICAL ENCLOSURE → CJK UNIFIED
IDEOGRAPH-53E3 # →⼝→
+
+F906 ; 53E5 ; MA # ( 句 → 句 ) CJK COMPATIBILITY IDEOGRAPH-F906 → CJK
UNIFIED IDEOGRAPH-53E5 #
+
+2F839 ; 53EB ; MA # ( 叫 → 叫 ) CJK COMPATIBILITY IDEOGRAPH-2F839 →
CJK UNIFIED IDEOGRAPH-53EB #
+
+2F83A ; 53F1 ; MA # ( 叱 → 叱 ) CJK COMPATIBILITY IDEOGRAPH-2F83A →
CJK UNIFIED IDEOGRAPH-53F1 #
+
+2F83B ; 5406 ; MA # ( 吆 → 吆 ) CJK COMPATIBILITY IDEOGRAPH-2F83B →
CJK UNIFIED IDEOGRAPH-5406 #
+
+F9DE ; 540F ; MA # ( 吏 → 吏 ) CJK COMPATIBILITY IDEOGRAPH-F9DE → CJK
UNIFIED IDEOGRAPH-540F #
+
+F9ED ; 541D ; MA # ( 吝 → 吝 ) CJK COMPATIBILITY IDEOGRAPH-F9ED → CJK
UNIFIED IDEOGRAPH-541D #
+
+2F83D ; 5438 ; MA # ( 吸 → 吸 ) CJK COMPATIBILITY IDEOGRAPH-2F83D →
CJK UNIFIED IDEOGRAPH-5438 #
+
+F980 ; 5442 ; MA # ( 呂 → 呂 ) CJK COMPATIBILITY IDEOGRAPH-F980 → CJK
UNIFIED IDEOGRAPH-5442 #
+
+2F83E ; 5448 ; MA # ( 呈 → 呈 ) CJK COMPATIBILITY IDEOGRAPH-2F83E →
CJK UNIFIED IDEOGRAPH-5448 #
+
+2F83F ; 5468 ; MA # ( 周 → 周 ) CJK COMPATIBILITY IDEOGRAPH-2F83F →
CJK UNIFIED IDEOGRAPH-5468 #
+
+2F83C ; 549E ; MA # ( 咞 → 咞 ) CJK COMPATIBILITY IDEOGRAPH-2F83C →
CJK UNIFIED IDEOGRAPH-549E #
+
+2F840 ; 54A2 ; MA # ( 咢 → 咢 ) CJK COMPATIBILITY IDEOGRAPH-2F840 →
CJK UNIFIED IDEOGRAPH-54A2 #
+
+F99E ; 54BD ; MA # ( 咽 → 咽 ) CJK COMPATIBILITY IDEOGRAPH-F99E → CJK
UNIFIED IDEOGRAPH-54BD #
+
+439B ; 3588 ; MA # ( 䎛 → 㖈 ) CJK UNIFIED IDEOGRAPH-439B → CJK UNIFIED
IDEOGRAPH-3588 #
+
+2F841 ; 54F6 ; MA # ( 哶 → 哶 ) CJK COMPATIBILITY IDEOGRAPH-2F841 →
CJK UNIFIED IDEOGRAPH-54F6 #
+
+2F842 ; 5510 ; MA # ( 唐 → 唐 ) CJK COMPATIBILITY IDEOGRAPH-2F842 →
CJK UNIFIED IDEOGRAPH-5510 #
+
+2F843 ; 5553 ; MA # ( 啓 → 啓 ) CJK COMPATIBILITY IDEOGRAPH-2F843 →
CJK UNIFIED IDEOGRAPH-5553 #
+555F ; 5553 ; MA # ( 啟 → 啓 ) CJK UNIFIED IDEOGRAPH-555F → CJK UNIFIED
IDEOGRAPH-5553 #
+
+FA79 ; 5555 ; MA # ( 啕 → 啕 ) CJK COMPATIBILITY IDEOGRAPH-FA79 → CJK
UNIFIED IDEOGRAPH-5555 #
+
+2F844 ; 5563 ; MA # ( 啣 → 啣 ) CJK COMPATIBILITY IDEOGRAPH-2F844 →
CJK UNIFIED IDEOGRAPH-5563 #
+
+2F845 ; 5584 ; MA # ( 善 → 善 ) CJK COMPATIBILITY IDEOGRAPH-2F845 →
CJK UNIFIED IDEOGRAPH-5584 #
+2F846 ; 5584 ; MA # ( 善 → 善 ) CJK COMPATIBILITY IDEOGRAPH-2F846 →
CJK UNIFIED IDEOGRAPH-5584 #
+
+F90B ; 5587 ; MA # ( 喇 → 喇 ) CJK COMPATIBILITY IDEOGRAPH-F90B → CJK
UNIFIED IDEOGRAPH-5587 #
+
+FA7A ; 5599 ; MA # ( 喙 → 喙 ) CJK COMPATIBILITY IDEOGRAPH-FA7A → CJK
UNIFIED IDEOGRAPH-5599 #
+2F847 ; 5599 ; MA # ( 喙 → 喙 ) CJK COMPATIBILITY IDEOGRAPH-2F847 →
CJK UNIFIED IDEOGRAPH-5599 #
+
+FA36 ; 559D ; MA # ( 喝 → 喝 ) CJK COMPATIBILITY IDEOGRAPH-FA36 → CJK
UNIFIED IDEOGRAPH-559D #
+FA78 ; 559D ; MA # ( 喝 → 喝 ) CJK COMPATIBILITY IDEOGRAPH-FA78 → CJK
UNIFIED IDEOGRAPH-559D #
+
+2F848 ; 55AB ; MA # ( 喫 → 喫 ) CJK COMPATIBILITY IDEOGRAPH-2F848 →
CJK UNIFIED IDEOGRAPH-55AB #
+
+2F849 ; 55B3 ; MA # ( 喳 → 喳 ) CJK COMPATIBILITY IDEOGRAPH-2F849 →
CJK UNIFIED IDEOGRAPH-55B3 #
+
+FA0D ; 55C0 ; MA # ( 嗀 → 嗀 ) CJK COMPATIBILITY IDEOGRAPH-FA0D → CJK
UNIFIED IDEOGRAPH-55C0 #
+
+2F84A ; 55C2 ; MA # ( 嗂 → 嗂 ) CJK COMPATIBILITY IDEOGRAPH-2F84A →
CJK UNIFIED IDEOGRAPH-55C2 #
+
+FA7B ; 55E2 ; MA # ( 嗢 → 嗢 ) CJK COMPATIBILITY IDEOGRAPH-FA7B → CJK
UNIFIED IDEOGRAPH-55E2 #
+
+FA37 ; 5606 ; MA # ( 嘆 → 嘆 ) CJK COMPATIBILITY IDEOGRAPH-FA37 → CJK
UNIFIED IDEOGRAPH-5606 #
+2F84C ; 5606 ; MA # ( 嘆 → 嘆 ) CJK COMPATIBILITY IDEOGRAPH-2F84C →
CJK UNIFIED IDEOGRAPH-5606 #
+
+2F84E ; 5651 ; MA # ( 噑 → 噑 ) CJK COMPATIBILITY IDEOGRAPH-2F84E →
CJK UNIFIED IDEOGRAPH-5651 #
+
+2F84F ; 5674 ; MA # ( 噴 → 噴 ) CJK COMPATIBILITY IDEOGRAPH-2F84F →
CJK UNIFIED IDEOGRAPH-5674 #
+
+FA38 ; 5668 ; MA # ( 器 → 器 ) CJK COMPATIBILITY IDEOGRAPH-FA38 → CJK
UNIFIED IDEOGRAPH-5668 #
+
+F9A9 ; 56F9 ; MA # ( 囹 → 囹 ) CJK COMPATIBILITY IDEOGRAPH-F9A9 → CJK
UNIFIED IDEOGRAPH-56F9 #
+
+2F84B ; 5716 ; MA # ( 圖 → 圖 ) CJK COMPATIBILITY IDEOGRAPH-2F84B →
CJK UNIFIED IDEOGRAPH-5716 #
+
+2F84D ; 5717 ; MA # ( 圗 → 圗 ) CJK COMPATIBILITY IDEOGRAPH-2F84D →
CJK UNIFIED IDEOGRAPH-5717 #
+
+2F1F ; 571F ; MA #* ( ⼟ → 土 ) KANGXI RADICAL EARTH → CJK UNIFIED
IDEOGRAPH-571F #
+58EB ; 571F ; MA # ( 士 → 土 ) CJK UNIFIED IDEOGRAPH-58EB → CJK UNIFIED
IDEOGRAPH-571F # →⼠→→⼟→
+2F20 ; 571F ; MA #* ( ⼠ → 土 ) KANGXI RADICAL SCHOLAR → CJK UNIFIED
IDEOGRAPH-571F # →⼟→
+
+2F855 ; 578B ; MA # ( 型 → 型 ) CJK COMPATIBILITY IDEOGRAPH-2F855 →
CJK UNIFIED IDEOGRAPH-578B #
+
+2F852 ; 57CE ; MA # ( 城 → 城 ) CJK COMPATIBILITY IDEOGRAPH-2F852 →
CJK UNIFIED IDEOGRAPH-57CE #
+
+39B3 ; 363D ; MA # ( 㦳 → 㘽 ) CJK UNIFIED IDEOGRAPH-39B3 → CJK UNIFIED
IDEOGRAPH-363D #
+
+2F853 ; 57F4 ; MA # ( 埴 → 埴 ) CJK COMPATIBILITY IDEOGRAPH-2F853 →
CJK UNIFIED IDEOGRAPH-57F4 #
+
+2F854 ; 580D ; MA # ( 堍 → 堍 ) CJK COMPATIBILITY IDEOGRAPH-2F854 →
CJK UNIFIED IDEOGRAPH-580D #
+
+2F857 ; 5831 ; MA # ( 報 → 報 ) CJK COMPATIBILITY IDEOGRAPH-2F857 →
CJK UNIFIED IDEOGRAPH-5831 #
+
+2F856 ; 5832 ; MA # ( 堲 → 堲 ) CJK COMPATIBILITY IDEOGRAPH-2F856 →
CJK UNIFIED IDEOGRAPH-5832 #
+
+FA39 ; 5840 ; MA # ( 塀 → 塀 ) CJK COMPATIBILITY IDEOGRAPH-FA39 → CJK
UNIFIED IDEOGRAPH-5840 #
+
+FA10 ; 585A ; MA # ( 塚 → 塚 ) CJK COMPATIBILITY IDEOGRAPH-FA10 → CJK
UNIFIED IDEOGRAPH-585A #
+FA7C ; 585A ; MA # ( 塚 → 塚 ) CJK COMPATIBILITY IDEOGRAPH-FA7C → CJK
UNIFIED IDEOGRAPH-585A #
+
+F96C ; 585E ; MA # ( 塞 → 塞 ) CJK COMPATIBILITY IDEOGRAPH-F96C → CJK
UNIFIED IDEOGRAPH-585E #
+
+586B ; 5861 ; MA # ( 填 → 塡 ) CJK UNIFIED IDEOGRAPH-586B → CJK UNIFIED
IDEOGRAPH-5861 #
+
+58FF ; 58AB ; MA # ( 壿 → 墫 ) CJK UNIFIED IDEOGRAPH-58FF → CJK UNIFIED
IDEOGRAPH-58AB #
+
+2F858 ; 58AC ; MA # ( 墬 → 墬 ) CJK COMPATIBILITY IDEOGRAPH-2F858 →
CJK UNIFIED IDEOGRAPH-58AC #
+
+FA7D ; 58B3 ; MA # ( 墳 → 墳 ) CJK COMPATIBILITY IDEOGRAPH-FA7D → CJK
UNIFIED IDEOGRAPH-58B3 #
+
+F94A ; 58D8 ; MA # ( 壘 → 壘 ) CJK COMPATIBILITY IDEOGRAPH-F94A → CJK
UNIFIED IDEOGRAPH-58D8 #
+
+F942 ; 58DF ; MA # ( 壟 → 壟 ) CJK COMPATIBILITY IDEOGRAPH-F942 → CJK
UNIFIED IDEOGRAPH-58DF #
+
+2F859 ; 214E4 ; MA # ( 𡓤 → 𡓤 ) CJK COMPATIBILITY IDEOGRAPH-2F859 →
CJK UNIFIED IDEOGRAPH-214E4 #
+
+2F851 ; 58EE ; MA # ( 壮 → 壮 ) CJK COMPATIBILITY IDEOGRAPH-2F851 →
CJK UNIFIED IDEOGRAPH-58EE #
+
+2F85A ; 58F2 ; MA # ( 売 → 売 ) CJK COMPATIBILITY IDEOGRAPH-2F85A →
CJK UNIFIED IDEOGRAPH-58F2 #
+
+2F85B ; 58F7 ; MA # ( 壷 → 壷 ) CJK COMPATIBILITY IDEOGRAPH-2F85B →
CJK UNIFIED IDEOGRAPH-58F7 #
+
+2F21 ; 5902 ; MA #* ( ⼡ → 夂 ) KANGXI RADICAL GO → CJK UNIFIED
IDEOGRAPH-5902 #
+
+2F85C ; 5906 ; MA # ( 夆 → 夆 ) CJK COMPATIBILITY IDEOGRAPH-2F85C →
CJK UNIFIED IDEOGRAPH-5906 #
+
+2F22 ; 590A ; MA #* ( ⼢ → 夊 ) KANGXI RADICAL GO SLOWLY → CJK UNIFIED
IDEOGRAPH-590A #
+
+30BF ; 5915 ; MA # ( タ → 夕 ) KATAKANA LETTER TA → CJK UNIFIED
IDEOGRAPH-5915 # →⼣→
+2F23 ; 5915 ; MA #* ( ⼣ → 夕 ) KANGXI RADICAL EVENING → CJK UNIFIED
IDEOGRAPH-5915 #
+
+2F85D ; 591A ; MA # ( 多 → 多 ) CJK COMPATIBILITY IDEOGRAPH-2F85D →
CJK UNIFIED IDEOGRAPH-591A #
+
+2F85E ; 5922 ; MA # ( 夢 → 夢 ) CJK COMPATIBILITY IDEOGRAPH-2F85E →
CJK UNIFIED IDEOGRAPH-5922 #
+
+2F24 ; 5927 ; MA #* ( ⼤ → 大 ) KANGXI RADICAL BIG → CJK UNIFIED
IDEOGRAPH-5927 #
+
+FA7E ; 5944 ; MA # ( 奄 → 奄 ) CJK COMPATIBILITY IDEOGRAPH-FA7E → CJK
UNIFIED IDEOGRAPH-5944 #
+
+F90C ; 5948 ; MA # ( 奈 → 奈 ) CJK COMPATIBILITY IDEOGRAPH-F90C → CJK
UNIFIED IDEOGRAPH-5948 #
+
+F909 ; 5951 ; MA # ( 契 → 契 ) CJK COMPATIBILITY IDEOGRAPH-F909 → CJK
UNIFIED IDEOGRAPH-5951 #
+
+FA7F ; 5954 ; MA # ( 奔 → 奔 ) CJK COMPATIBILITY IDEOGRAPH-FA7F → CJK
UNIFIED IDEOGRAPH-5954 #
+
+2F85F ; 5962 ; MA # ( 奢 → 奢 ) CJK COMPATIBILITY IDEOGRAPH-2F85F →
CJK UNIFIED IDEOGRAPH-5962 #
+
+F981 ; 5973 ; MA # ( 女 → 女 ) CJK COMPATIBILITY IDEOGRAPH-F981 → CJK
UNIFIED IDEOGRAPH-5973 #
+2F25 ; 5973 ; MA #* ( ⼥ → 女 ) KANGXI RADICAL WOMAN → CJK UNIFIED
IDEOGRAPH-5973 #
+
+2F860 ; 216A8 ; MA # ( 𡚨 → 𡚨 ) CJK COMPATIBILITY IDEOGRAPH-2F860 →
CJK UNIFIED IDEOGRAPH-216A8 #
+
+2F861 ; 216EA ; MA # ( 𡛪 → 𡛪 ) CJK COMPATIBILITY IDEOGRAPH-2F861 →
CJK UNIFIED IDEOGRAPH-216EA #
+
+2F865 ; 59D8 ; MA # ( 姘 → 姘 ) CJK COMPATIBILITY IDEOGRAPH-2F865 →
CJK UNIFIED IDEOGRAPH-59D8 #
+
+2F862 ; 59EC ; MA # ( 姬 → 姬 ) CJK COMPATIBILITY IDEOGRAPH-2F862 →
CJK UNIFIED IDEOGRAPH-59EC #
+
+2F863 ; 5A1B ; MA # ( 娛 → 娛 ) CJK COMPATIBILITY IDEOGRAPH-2F863 →
CJK UNIFIED IDEOGRAPH-5A1B #
+
+2F864 ; 5A27 ; MA # ( 娧 → 娧 ) CJK COMPATIBILITY IDEOGRAPH-2F864 →
CJK UNIFIED IDEOGRAPH-5A27 #
+
+FA80 ; 5A62 ; MA # ( 婢 → 婢 ) CJK COMPATIBILITY IDEOGRAPH-FA80 → CJK
UNIFIED IDEOGRAPH-5A62 #
+
+2F866 ; 5A66 ; MA # ( 婦 → 婦 ) CJK COMPATIBILITY IDEOGRAPH-2F866 →
CJK UNIFIED IDEOGRAPH-5A66 #
+
+5B00 ; 5AAF ; MA # ( 嬀 → 媯 ) CJK UNIFIED IDEOGRAPH-5B00 → CJK UNIFIED
IDEOGRAPH-5AAF #
+
+2F867 ; 36EE ; MA # ( 㛮 → 㛮 ) CJK COMPATIBILITY IDEOGRAPH-2F867 →
CJK UNIFIED IDEOGRAPH-36EE #
+
+2F868 ; 36FC ; MA # ( 㛼 → 㛼 ) CJK COMPATIBILITY IDEOGRAPH-2F868 →
CJK UNIFIED IDEOGRAPH-36FC #
+
+2F986 ; 5AB5 ; MA # ( 媵 → 媵 ) CJK COMPATIBILITY IDEOGRAPH-2F986 →
CJK UNIFIED IDEOGRAPH-5AB5 #
+
+2F869 ; 5B08 ; MA # ( 嬈 → 嬈 ) CJK COMPATIBILITY IDEOGRAPH-2F869 →
CJK UNIFIED IDEOGRAPH-5B08 #
+
+FA81 ; 5B28 ; MA # ( 嬨 → 嬨 ) CJK COMPATIBILITY IDEOGRAPH-FA81 → CJK
UNIFIED IDEOGRAPH-5B28 #
+
+2F86A ; 5B3E ; MA # ( 嬾 → 嬾 ) CJK COMPATIBILITY IDEOGRAPH-2F86A →
CJK UNIFIED IDEOGRAPH-5B3E #
+2F86B ; 5B3E ; MA # ( 嬾 → 嬾 ) CJK COMPATIBILITY IDEOGRAPH-2F86B →
CJK UNIFIED IDEOGRAPH-5B3E #
+
+2F26 ; 5B50 ; MA #* ( ⼦ → 子 ) KANGXI RADICAL CHILD → CJK UNIFIED
IDEOGRAPH-5B50 #
+
+2F27 ; 5B80 ; MA #* ( ⼧ → 宀 ) KANGXI RADICAL ROOF → CJK UNIFIED
IDEOGRAPH-5B80 #
+
+FA04 ; 5B85 ; MA # ( 宅 → 宅 ) CJK COMPATIBILITY IDEOGRAPH-FA04 → CJK
UNIFIED IDEOGRAPH-5B85 #
+
+2F86C ; 219C8 ; MA # ( 𡧈 → 𡧈 ) CJK COMPATIBILITY IDEOGRAPH-2F86C →
CJK UNIFIED IDEOGRAPH-219C8 #
+
+2F86D ; 5BC3 ; MA # ( 寃 → 寃 ) CJK COMPATIBILITY IDEOGRAPH-2F86D →
CJK UNIFIED IDEOGRAPH-5BC3 #
+
+2F86E ; 5BD8 ; MA # ( 寘 → 寘 ) CJK COMPATIBILITY IDEOGRAPH-2F86E →
CJK UNIFIED IDEOGRAPH-5BD8 #
+
+F95F ; 5BE7 ; MA # ( 寧 → 寧 ) CJK COMPATIBILITY IDEOGRAPH-F95F → CJK
UNIFIED IDEOGRAPH-5BE7 #
+F9AA ; 5BE7 ; MA # ( 寧 → 寧 ) CJK COMPATIBILITY IDEOGRAPH-F9AA → CJK
UNIFIED IDEOGRAPH-5BE7 #
+2F86F ; 5BE7 ; MA # ( 寧 → 寧 ) CJK COMPATIBILITY IDEOGRAPH-2F86F →
CJK UNIFIED IDEOGRAPH-5BE7 #
+
+F9BC ; 5BEE ; MA # ( 寮 → 寮 ) CJK COMPATIBILITY IDEOGRAPH-F9BC → CJK
UNIFIED IDEOGRAPH-5BEE #
+
+2F870 ; 5BF3 ; MA # ( 寳 → 寳 ) CJK COMPATIBILITY IDEOGRAPH-2F870 →
CJK UNIFIED IDEOGRAPH-5BF3 #
+
+2F871 ; 21B18 ; MA # ( 𡬘 → 𡬘 ) CJK COMPATIBILITY IDEOGRAPH-2F871 →
CJK UNIFIED IDEOGRAPH-21B18 #
+
+2F28 ; 5BF8 ; MA #* ( ⼨ → 寸 ) KANGXI RADICAL INCH → CJK UNIFIED
IDEOGRAPH-5BF8 #
+
+2F872 ; 5BFF ; MA # ( 寿 → 寿 ) CJK COMPATIBILITY IDEOGRAPH-2F872 →
CJK UNIFIED IDEOGRAPH-5BFF #
+
+2F873 ; 5C06 ; MA # ( 将 → 将 ) CJK COMPATIBILITY IDEOGRAPH-2F873 →
CJK UNIFIED IDEOGRAPH-5C06 #
+
+2F29 ; 5C0F ; MA #* ( ⼩ → 小 ) KANGXI RADICAL SMALL → CJK UNIFIED
IDEOGRAPH-5C0F #
+
+2F875 ; 5C22 ; MA # ( 尢 → 尢 ) CJK COMPATIBILITY IDEOGRAPH-2F875 →
CJK UNIFIED IDEOGRAPH-5C22 #
+2E90 ; 5C22 ; MA #* ( ⺐ → 尢 ) CJK RADICAL LAME THREE → CJK UNIFIED
IDEOGRAPH-5C22 #
+2F2A ; 5C22 ; MA #* ( ⼪ → 尢 ) KANGXI RADICAL LAME → CJK UNIFIED
IDEOGRAPH-5C22 #
+
+2E8F ; 5C23 ; MA #* ( ⺏ → 尣 ) CJK RADICAL LAME TWO → CJK UNIFIED
IDEOGRAPH-5C23 #
+
+2F876 ; 3781 ; MA # ( 㞁 → 㞁 ) CJK COMPATIBILITY IDEOGRAPH-2F876 →
CJK UNIFIED IDEOGRAPH-3781 #
+
+2F2B ; 5C38 ; MA #* ( ⼫ → 尸 ) KANGXI RADICAL CORPSE → CJK UNIFIED
IDEOGRAPH-5C38 #
+
+F9BD ; 5C3F ; MA # ( 尿 → 尿 ) CJK COMPATIBILITY IDEOGRAPH-F9BD → CJK
UNIFIED IDEOGRAPH-5C3F #
+
+2F877 ; 5C60 ; MA # ( 屠 → 屠 ) CJK COMPATIBILITY IDEOGRAPH-2F877 →
CJK UNIFIED IDEOGRAPH-5C60 #
+
+F94B ; 5C62 ; MA # ( 屢 → 屢 ) CJK COMPATIBILITY IDEOGRAPH-F94B → CJK
UNIFIED IDEOGRAPH-5C62 #
+
+FA3B ; 5C64 ; MA # ( 層 → 層 ) CJK COMPATIBILITY IDEOGRAPH-FA3B → CJK
UNIFIED IDEOGRAPH-5C64 #
+
+F9DF ; 5C65 ; MA # ( 履 → 履 ) CJK COMPATIBILITY IDEOGRAPH-F9DF → CJK
UNIFIED IDEOGRAPH-5C65 #
+
+FA3C ; 5C6E ; MA # ( 屮 → 屮 ) CJK COMPATIBILITY IDEOGRAPH-FA3C → CJK
UNIFIED IDEOGRAPH-5C6E #
+2F878 ; 5C6E ; MA # ( 屮 → 屮 ) CJK COMPATIBILITY IDEOGRAPH-2F878 →
CJK UNIFIED IDEOGRAPH-5C6E #
+2F2C ; 5C6E ; MA #* ( ⼬ → 屮 ) KANGXI RADICAL SPROUT → CJK UNIFIED
IDEOGRAPH-5C6E #
+
+2F8F8 ; 21D0B ; MA # ( 𡴋 → 𡴋 ) CJK COMPATIBILITY IDEOGRAPH-2F8F8 →
CJK UNIFIED IDEOGRAPH-21D0B #
+
+2F2D ; 5C71 ; MA #* ( ⼭ → 山 ) KANGXI RADICAL MOUNTAIN → CJK UNIFIED
IDEOGRAPH-5C71 #
+
+2F879 ; 5CC0 ; MA # ( 峀 → 峀 ) CJK COMPATIBILITY IDEOGRAPH-2F879 →
CJK UNIFIED IDEOGRAPH-5CC0 #
+
+2F87A ; 5C8D ; MA # ( 岍 → 岍 ) CJK COMPATIBILITY IDEOGRAPH-2F87A →
CJK UNIFIED IDEOGRAPH-5C8D #
+
+2F87B ; 21DE4 ; MA # ( 𡷤 → 𡷤 ) CJK COMPATIBILITY IDEOGRAPH-2F87B →
CJK UNIFIED IDEOGRAPH-21DE4 #
+
+2F87D ; 21DE6 ; MA # ( 𡷦 → 𡷦 ) CJK COMPATIBILITY IDEOGRAPH-2F87D →
CJK UNIFIED IDEOGRAPH-21DE6 #
+
+F9D5 ; 5D19 ; MA # ( 崙 → 崙 ) CJK COMPATIBILITY IDEOGRAPH-F9D5 → CJK
UNIFIED IDEOGRAPH-5D19 #
+
+2F87C ; 5D43 ; MA # ( 嵃 → 嵃 ) CJK COMPATIBILITY IDEOGRAPH-2F87C →
CJK UNIFIED IDEOGRAPH-5D43 #
+
+F921 ; 5D50 ; MA # ( 嵐 → 嵐 ) CJK COMPATIBILITY IDEOGRAPH-F921 → CJK
UNIFIED IDEOGRAPH-5D50 #
+
+2F87F ; 5D6B ; MA # ( 嵫 → 嵫 ) CJK COMPATIBILITY IDEOGRAPH-2F87F →
CJK UNIFIED IDEOGRAPH-5D6B #
+
+2F87E ; 5D6E ; MA # ( 嵮 → 嵮 ) CJK COMPATIBILITY IDEOGRAPH-2F87E →
CJK UNIFIED IDEOGRAPH-5D6E #
+
+2F880 ; 5D7C ; MA # ( 嵼 → 嵼 ) CJK COMPATIBILITY IDEOGRAPH-2F880 →
CJK UNIFIED IDEOGRAPH-5D7C #
+
+2F9F4 ; 5DB2 ; MA # ( 嶲 → 嶲 ) CJK COMPATIBILITY IDEOGRAPH-2F9F4 →
CJK UNIFIED IDEOGRAPH-5DB2 #
+
+F9AB ; 5DBA ; MA # ( 嶺 → 嶺 ) CJK COMPATIBILITY IDEOGRAPH-F9AB → CJK
UNIFIED IDEOGRAPH-5DBA #
+
+2F2E ; 5DDB ; MA #* ( ⼮ → 巛 ) KANGXI RADICAL RIVER → CJK UNIFIED
IDEOGRAPH-5DDB #
+
+2F882 ; 5DE2 ; MA # ( 巢 → 巢 ) CJK COMPATIBILITY IDEOGRAPH-2F882 →
CJK UNIFIED IDEOGRAPH-5DE2 #
+
+30A8 ; 5DE5 ; MA # ( エ → 工 ) KATAKANA LETTER E → CJK UNIFIED
IDEOGRAPH-5DE5 # →⼯→
+2F2F ; 5DE5 ; MA #* ( ⼯ → 工 ) KANGXI RADICAL WORK → CJK UNIFIED
IDEOGRAPH-5DE5 #
+
+2F30 ; 5DF1 ; MA #* ( ⼰ → 己 ) KANGXI RADICAL ONESELF → CJK UNIFIED
IDEOGRAPH-5DF1 #
+
+2E92 ; 5DF3 ; MA #* ( ⺒ → 巳 ) CJK RADICAL SNAKE → CJK UNIFIED
IDEOGRAPH-5DF3 #
+
+2F883 ; 382F ; MA # ( 㠯 → 㠯 ) CJK COMPATIBILITY IDEOGRAPH-2F883 →
CJK UNIFIED IDEOGRAPH-382F #
+
+2F884 ; 5DFD ; MA # ( 巽 → 巽 ) CJK COMPATIBILITY IDEOGRAPH-2F884 →
CJK UNIFIED IDEOGRAPH-5DFD #
+
+2F31 ; 5DFE ; MA #* ( ⼱ → 巾 ) KANGXI RADICAL TURBAN → CJK UNIFIED
IDEOGRAPH-5DFE #
+
+5E32 ; 5E21 ; MA # ( 帲 → 帡 ) CJK UNIFIED IDEOGRAPH-5E32 → CJK UNIFIED
IDEOGRAPH-5E21 #
+
+2F885 ; 5E28 ; MA # ( 帨 → 帨 ) CJK COMPATIBILITY IDEOGRAPH-2F885 →
CJK UNIFIED IDEOGRAPH-5E28 #
+
+2F886 ; 5E3D ; MA # ( 帽 → 帽 ) CJK COMPATIBILITY IDEOGRAPH-2F886 →
CJK UNIFIED IDEOGRAPH-5E3D #
+
+2F887 ; 5E69 ; MA # ( 幩 → 幩 ) CJK COMPATIBILITY IDEOGRAPH-2F887 →
CJK UNIFIED IDEOGRAPH-5E69 #
+
+2F888 ; 3862 ; MA # ( 㡢 → 㡢 ) CJK COMPATIBILITY IDEOGRAPH-2F888 →
CJK UNIFIED IDEOGRAPH-3862 #
+
+2F889 ; 22183 ; MA # ( 𢆃 → 𢆃 ) CJK COMPATIBILITY IDEOGRAPH-2F889 →
CJK UNIFIED IDEOGRAPH-22183 #
+
+2F32 ; 5E72 ; MA #* ( ⼲ → 干 ) KANGXI RADICAL DRY → CJK UNIFIED
IDEOGRAPH-5E72 #
+
+F98E ; 5E74 ; MA # ( 年 → 年 ) CJK COMPATIBILITY IDEOGRAPH-F98E → CJK
UNIFIED IDEOGRAPH-5E74 #
+
+2F939 ; 2219F ; MA # ( 𢆟 → 𢆟 ) CJK COMPATIBILITY IDEOGRAPH-2F939 →
CJK UNIFIED IDEOGRAPH-2219F #
+
+2E93 ; 5E7A ; MA #* ( ⺓ → 幺 ) CJK RADICAL THREAD → CJK UNIFIED
IDEOGRAPH-5E7A #
+2F33 ; 5E7A ; MA #* ( ⼳ → 幺 ) KANGXI RADICAL SHORT THREAD → CJK UNIFIED
IDEOGRAPH-5E7A #
+
+2F34 ; 5E7F ; MA #* ( ⼴ → 广 ) KANGXI RADICAL DOTTED CLIFF → CJK UNIFIED
IDEOGRAPH-5E7F #
+
+FA01 ; 5EA6 ; MA # ( 度 → 度 ) CJK COMPATIBILITY IDEOGRAPH-FA01 → CJK
UNIFIED IDEOGRAPH-5EA6 #
+
+2F88A ; 387C ; MA # ( 㡼 → 㡼 ) CJK COMPATIBILITY IDEOGRAPH-2F88A →
CJK UNIFIED IDEOGRAPH-387C #
+
+2F88B ; 5EB0 ; MA # ( 庰 → 庰 ) CJK COMPATIBILITY IDEOGRAPH-2F88B →
CJK UNIFIED IDEOGRAPH-5EB0 #
+
+2F88C ; 5EB3 ; MA # ( 庳 → 庳 ) CJK COMPATIBILITY IDEOGRAPH-2F88C →
CJK UNIFIED IDEOGRAPH-5EB3 #
+
+2F88D ; 5EB6 ; MA # ( 庶 → 庶 ) CJK COMPATIBILITY IDEOGRAPH-2F88D →
CJK UNIFIED IDEOGRAPH-5EB6 #
+
+F928 ; 5ECA ; MA # ( 廊 → 廊 ) CJK COMPATIBILITY IDEOGRAPH-F928 → CJK
UNIFIED IDEOGRAPH-5ECA #
+2F88E ; 5ECA ; MA # ( 廊 → 廊 ) CJK COMPATIBILITY IDEOGRAPH-2F88E →
CJK UNIFIED IDEOGRAPH-5ECA #
+
+F9A2 ; 5EC9 ; MA # ( 廉 → 廉 ) CJK COMPATIBILITY IDEOGRAPH-F9A2 → CJK
UNIFIED IDEOGRAPH-5EC9 #
+
+FA82 ; 5ED2 ; MA # ( 廒 → 廒 ) CJK COMPATIBILITY IDEOGRAPH-FA82 → CJK
UNIFIED IDEOGRAPH-5ED2 #
+
+FA0B ; 5ED3 ; MA # ( 廓 → 廓 ) CJK COMPATIBILITY IDEOGRAPH-FA0B → CJK
UNIFIED IDEOGRAPH-5ED3 #
+
+FA83 ; 5ED9 ; MA # ( 廙 → 廙 ) CJK COMPATIBILITY IDEOGRAPH-FA83 → CJK
UNIFIED IDEOGRAPH-5ED9 #
+
+F982 ; 5EEC ; MA # ( 廬 → 廬 ) CJK COMPATIBILITY IDEOGRAPH-F982 → CJK
UNIFIED IDEOGRAPH-5EEC #
+
+2F35 ; 5EF4 ; MA #* ( ⼵ → 廴 ) KANGXI RADICAL LONG STRIDE → CJK UNIFIED
IDEOGRAPH-5EF4 #
+
+2F890 ; 5EFE ; MA # ( 廾 → 廾 ) CJK COMPATIBILITY IDEOGRAPH-2F890 →
CJK UNIFIED IDEOGRAPH-5EFE #
+2F36 ; 5EFE ; MA #* ( ⼶ → 廾 ) KANGXI RADICAL TWO HANDS → CJK UNIFIED
IDEOGRAPH-5EFE #
+
+2F891 ; 22331 ; MA # ( 𢌱 → 𢌱 ) CJK COMPATIBILITY IDEOGRAPH-2F891 →
CJK UNIFIED IDEOGRAPH-22331 #
+2F892 ; 22331 ; MA # ( 𢌱 → 𢌱 ) CJK COMPATIBILITY IDEOGRAPH-2F892 →
CJK UNIFIED IDEOGRAPH-22331 #
+
+F943 ; 5F04 ; MA # ( 弄 → 弄 ) CJK COMPATIBILITY IDEOGRAPH-F943 → CJK
UNIFIED IDEOGRAPH-5F04 #
+
+2F37 ; 5F0B ; MA #* ( ⼷ → 弋 ) KANGXI RADICAL SHOOT → CJK UNIFIED
IDEOGRAPH-5F0B #
+
+2F38 ; 5F13 ; MA #* ( ⼸ → 弓 ) KANGXI RADICAL BOW → CJK UNIFIED
IDEOGRAPH-5F13 #
+
+2F894 ; 5F22 ; MA # ( 弢 → 弢 ) CJK COMPATIBILITY IDEOGRAPH-2F894 →
CJK UNIFIED IDEOGRAPH-5F22 #
+2F895 ; 5F22 ; MA # ( 弢 → 弢 ) CJK COMPATIBILITY IDEOGRAPH-2F895 →
CJK UNIFIED IDEOGRAPH-5F22 #
+
+2F39 ; 5F50 ; MA #* ( ⼹ → 彐 ) KANGXI RADICAL SNOUT → CJK UNIFIED
IDEOGRAPH-5F50 #
+
+2E94 ; 5F51 ; MA #* ( ⺔ → 彑 ) CJK RADICAL SNOUT ONE → CJK UNIFIED
IDEOGRAPH-5F51 #
+
+2F874 ; 5F53 ; MA # ( 当 → 当 ) CJK COMPATIBILITY IDEOGRAPH-2F874 →
CJK UNIFIED IDEOGRAPH-5F53 #
+
+2F896 ; 38C7 ; MA # ( 㣇 → 㣇 ) CJK COMPATIBILITY IDEOGRAPH-2F896 →
CJK UNIFIED IDEOGRAPH-38C7 #
+
+2F3A ; 5F61 ; MA #* ( ⼺ → 彡 ) KANGXI RADICAL BRISTLE → CJK UNIFIED
IDEOGRAPH-5F61 #
+
+2F899 ; 5F62 ; MA # ( 形 → 形 ) CJK COMPATIBILITY IDEOGRAPH-2F899 →
CJK UNIFIED IDEOGRAPH-5F62 #
+
+FA84 ; 5F69 ; MA # ( 彩 → 彩 ) CJK COMPATIBILITY IDEOGRAPH-FA84 → CJK
UNIFIED IDEOGRAPH-5F69 #
+
+2F89A ; 5F6B ; MA # ( 彫 → 彫 ) CJK COMPATIBILITY IDEOGRAPH-2F89A →
CJK UNIFIED IDEOGRAPH-5F6B #
+
+2F3B ; 5F73 ; MA #* ( ⼻ → 彳 ) KANGXI RADICAL STEP → CJK UNIFIED
IDEOGRAPH-5F73 #
+
+F9D8 ; 5F8B ; MA # ( 律 → 律 ) CJK COMPATIBILITY IDEOGRAPH-F9D8 → CJK
UNIFIED IDEOGRAPH-5F8B #
+
+2F89B ; 38E3 ; MA # ( 㣣 → 㣣 ) CJK COMPATIBILITY IDEOGRAPH-2F89B →
CJK UNIFIED IDEOGRAPH-38E3 #
+
+2F89C ; 5F9A ; MA # ( 徚 → 徚 ) CJK COMPATIBILITY IDEOGRAPH-2F89C →
CJK UNIFIED IDEOGRAPH-5F9A #
+
+F966 ; 5FA9 ; MA # ( 復 → 復 ) CJK COMPATIBILITY IDEOGRAPH-F966 → CJK
UNIFIED IDEOGRAPH-5FA9 #
+
+FA85 ; 5FAD ; MA # ( 徭 → 徭 ) CJK COMPATIBILITY IDEOGRAPH-FA85 → CJK
UNIFIED IDEOGRAPH-5FAD #
+
+2F3C ; 5FC3 ; MA #* ( ⼼ → 心 ) KANGXI RADICAL HEART → CJK UNIFIED
IDEOGRAPH-5FC3 #
+
+2E96 ; 5FC4 ; MA #* ( ⺖ → 忄 ) CJK RADICAL HEART ONE → CJK UNIFIED
IDEOGRAPH-5FC4 #
+
+2E97 ; 38FA ; MA #* ( ⺗ → 㣺 ) CJK RADICAL HEART TWO → CJK UNIFIED
IDEOGRAPH-38FA #
+
+2F89D ; 5FCD ; MA # ( 忍 → 忍 ) CJK COMPATIBILITY IDEOGRAPH-2F89D →
CJK UNIFIED IDEOGRAPH-5FCD #
+
+2F89E ; 5FD7 ; MA # ( 志 → 志 ) CJK COMPATIBILITY IDEOGRAPH-2F89E →
CJK UNIFIED IDEOGRAPH-5FD7 #
+
+F9A3 ; 5FF5 ; MA # ( 念 → 念 ) CJK COMPATIBILITY IDEOGRAPH-F9A3 → CJK
UNIFIED IDEOGRAPH-5FF5 #
+
+2F89F ; 5FF9 ; MA # ( 忹 → 忹 ) CJK COMPATIBILITY IDEOGRAPH-2F89F →
CJK UNIFIED IDEOGRAPH-5FF9 #
+
+F960 ; 6012 ; MA # ( 怒 → 怒 ) CJK COMPATIBILITY IDEOGRAPH-F960 → CJK
UNIFIED IDEOGRAPH-6012 #
+
+F9AC ; 601C ; MA # ( 怜 → 怜 ) CJK COMPATIBILITY IDEOGRAPH-F9AC → CJK
UNIFIED IDEOGRAPH-601C #
+
+FA6B ; 6075 ; MA # ( 恵 → 恵 ) CJK COMPATIBILITY IDEOGRAPH-FA6B → CJK
UNIFIED IDEOGRAPH-6075 #
+
+2F8A2 ; 391C ; MA # ( 㤜 → 㤜 ) CJK COMPATIBILITY IDEOGRAPH-2F8A2 →
CJK UNIFIED IDEOGRAPH-391C #
+
+2F8A1 ; 393A ; MA # ( 㤺 → 㤺 ) CJK COMPATIBILITY IDEOGRAPH-2F8A1 →
CJK UNIFIED IDEOGRAPH-393A #
+
+2F8A0 ; 6081 ; MA # ( 悁 → 悁 ) CJK COMPATIBILITY IDEOGRAPH-2F8A0 →
CJK UNIFIED IDEOGRAPH-6081 #
+
+FA3D ; 6094 ; MA # ( 悔 → 悔 ) CJK COMPATIBILITY IDEOGRAPH-FA3D → CJK
UNIFIED IDEOGRAPH-6094 #
+2F8A3 ; 6094 ; MA # ( 悔 → 悔 ) CJK COMPATIBILITY IDEOGRAPH-2F8A3 →
CJK UNIFIED IDEOGRAPH-6094 #
+
+2F8A5 ; 60C7 ; MA # ( 惇 → 惇 ) CJK COMPATIBILITY IDEOGRAPH-2F8A5 →
CJK UNIFIED IDEOGRAPH-60C7 #
+
+FA86 ; 60D8 ; MA # ( 惘 → 惘 ) CJK COMPATIBILITY IDEOGRAPH-FA86 → CJK
UNIFIED IDEOGRAPH-60D8 #
+
+F9B9 ; 60E1 ; MA # ( 惡 → 惡 ) CJK COMPATIBILITY IDEOGRAPH-F9B9 → CJK
UNIFIED IDEOGRAPH-60E1 #
+
+2F8A4 ; 226D4 ; MA # ( 𢛔 → 𢛔 ) CJK COMPATIBILITY IDEOGRAPH-2F8A4 →
CJK UNIFIED IDEOGRAPH-226D4 #
+
+FA88 ; 6108 ; MA # ( 愈 → 愈 ) CJK COMPATIBILITY IDEOGRAPH-FA88 → CJK
UNIFIED IDEOGRAPH-6108 #
+
+FA3E ; 6168 ; MA # ( 慨 → 慨 ) CJK COMPATIBILITY IDEOGRAPH-FA3E → CJK
UNIFIED IDEOGRAPH-6168 #
+
+F9D9 ; 6144 ; MA # ( 慄 → 慄 ) CJK COMPATIBILITY IDEOGRAPH-F9D9 → CJK
UNIFIED IDEOGRAPH-6144 #
+
+2F8A6 ; 6148 ; MA # ( 慈 → 慈 ) CJK COMPATIBILITY IDEOGRAPH-2F8A6 →
CJK UNIFIED IDEOGRAPH-6148 #
+
+2F8A7 ; 614C ; MA # ( 慌 → 慌 ) CJK COMPATIBILITY IDEOGRAPH-2F8A7 →
CJK UNIFIED IDEOGRAPH-614C #
+2F8A9 ; 614C ; MA # ( 慌 → 慌 ) CJK COMPATIBILITY IDEOGRAPH-2F8A9 →
CJK UNIFIED IDEOGRAPH-614C #
+
+FA87 ; 614E ; MA # ( 慎 → 慎 ) CJK COMPATIBILITY IDEOGRAPH-FA87 → CJK
UNIFIED IDEOGRAPH-614E #
+2F8A8 ; 614E ; MA # ( 慎 → 慎 ) CJK COMPATIBILITY IDEOGRAPH-2F8A8 →
CJK UNIFIED IDEOGRAPH-614E #
+
+FA8A ; 6160 ; MA # ( 慠 → 慠 ) CJK COMPATIBILITY IDEOGRAPH-FA8A → CJK
UNIFIED IDEOGRAPH-6160 #
+
+2F8AA ; 617A ; MA # ( 慺 → 慺 ) CJK COMPATIBILITY IDEOGRAPH-2F8AA →
CJK UNIFIED IDEOGRAPH-617A #
+
+FA3F ; 618E ; MA # ( 憎 → 憎 ) CJK COMPATIBILITY IDEOGRAPH-FA3F → CJK
UNIFIED IDEOGRAPH-618E #
+FA89 ; 618E ; MA # ( 憎 → 憎 ) CJK COMPATIBILITY IDEOGRAPH-FA89 → CJK
UNIFIED IDEOGRAPH-618E #
+2F8AB ; 618E ; MA # ( 憎 → 憎 ) CJK COMPATIBILITY IDEOGRAPH-2F8AB →
CJK UNIFIED IDEOGRAPH-618E #
+
+F98F ; 6190 ; MA # ( 憐 → 憐 ) CJK COMPATIBILITY IDEOGRAPH-F98F → CJK
UNIFIED IDEOGRAPH-6190 #
+
+2F8AD ; 61A4 ; MA # ( 憤 → 憤 ) CJK COMPATIBILITY IDEOGRAPH-2F8AD →
CJK UNIFIED IDEOGRAPH-61A4 #
+
+2F8AE ; 61AF ; MA # ( 憯 → 憯 ) CJK COMPATIBILITY IDEOGRAPH-2F8AE →
CJK UNIFIED IDEOGRAPH-61AF #
+
+2F8AC ; 61B2 ; MA # ( 憲 → 憲 ) CJK COMPATIBILITY IDEOGRAPH-2F8AC →
CJK UNIFIED IDEOGRAPH-61B2 #
+
+FAD0 ; 22844 ; MA # ( 𢡄 → 𢡄 ) CJK COMPATIBILITY IDEOGRAPH-FAD0 → CJK
UNIFIED IDEOGRAPH-22844 #
+
+FACF ; 2284A ; MA # ( 𢡊 → 𢡊 ) CJK COMPATIBILITY IDEOGRAPH-FACF → CJK
UNIFIED IDEOGRAPH-2284A #
+
+2F8AF ; 61DE ; MA # ( 懞 → 懞 ) CJK COMPATIBILITY IDEOGRAPH-2F8AF →
CJK UNIFIED IDEOGRAPH-61DE #
+
+FA40 ; 61F2 ; MA # ( 懲 → 懲 ) CJK COMPATIBILITY IDEOGRAPH-FA40 → CJK
UNIFIED IDEOGRAPH-61F2 #
+FA8B ; 61F2 ; MA # ( 懲 → 懲 ) CJK COMPATIBILITY IDEOGRAPH-FA8B → CJK
UNIFIED IDEOGRAPH-61F2 #
+2F8B0 ; 61F2 ; MA # ( 懲 → 懲 ) CJK COMPATIBILITY IDEOGRAPH-2F8B0 →
CJK UNIFIED IDEOGRAPH-61F2 #
+
+F90D ; 61F6 ; MA # ( 懶 → 懶 ) CJK COMPATIBILITY IDEOGRAPH-F90D → CJK
UNIFIED IDEOGRAPH-61F6 #
+2F8B1 ; 61F6 ; MA # ( 懶 → 懶 ) CJK COMPATIBILITY IDEOGRAPH-2F8B1 →
CJK UNIFIED IDEOGRAPH-61F6 #
+
+F990 ; 6200 ; MA # ( 戀 → 戀 ) CJK COMPATIBILITY IDEOGRAPH-F990 → CJK
UNIFIED IDEOGRAPH-6200 #
+
+2F3D ; 6208 ; MA #* ( ⼽ → 戈 ) KANGXI RADICAL HALBERD → CJK UNIFIED
IDEOGRAPH-6208 #
+
+2F8B2 ; 6210 ; MA # ( 成 → 成 ) CJK COMPATIBILITY IDEOGRAPH-2F8B2 →
CJK UNIFIED IDEOGRAPH-6210 #
+
+2F8B3 ; 621B ; MA # ( 戛 → 戛 ) CJK COMPATIBILITY IDEOGRAPH-2F8B3 →
CJK UNIFIED IDEOGRAPH-621B #
+
+F9D2 ; 622E ; MA # ( 戮 → 戮 ) CJK COMPATIBILITY IDEOGRAPH-F9D2 → CJK
UNIFIED IDEOGRAPH-622E #
+
+FA8C ; 6234 ; MA # ( 戴 → 戴 ) CJK COMPATIBILITY IDEOGRAPH-FA8C → CJK
UNIFIED IDEOGRAPH-6234 #
+
+2F3E ; 6236 ; MA #* ( ⼾ → 戶 ) KANGXI RADICAL DOOR → CJK UNIFIED
IDEOGRAPH-6236 #
+6238 ; 6236 ; MA # ( 戸 → 戶 ) CJK UNIFIED IDEOGRAPH-6238 → CJK UNIFIED
IDEOGRAPH-6236 # →⼾→
+
+2F3F ; 624B ; MA #* ( ⼿ → 手 ) KANGXI RADICAL HAND → CJK UNIFIED
IDEOGRAPH-624B #
+
+2E98 ; 624C ; MA #* ( ⺘ → 扌 ) CJK RADICAL HAND → CJK UNIFIED
IDEOGRAPH-624C #
+
+2F8B4 ; 625D ; MA # ( 扝 → 扝 ) CJK COMPATIBILITY IDEOGRAPH-2F8B4 →
CJK UNIFIED IDEOGRAPH-625D #
+
+2F8B5 ; 62B1 ; MA # ( 抱 → 抱 ) CJK COMPATIBILITY IDEOGRAPH-2F8B5 →
CJK UNIFIED IDEOGRAPH-62B1 #
+
+F925 ; 62C9 ; MA # ( 拉 → 拉 ) CJK COMPATIBILITY IDEOGRAPH-F925 → CJK
UNIFIED IDEOGRAPH-62C9 #
+
+F95B ; 62CF ; MA # ( 拏 → 拏 ) CJK COMPATIBILITY IDEOGRAPH-F95B → CJK
UNIFIED IDEOGRAPH-62CF #
+
+FA02 ; 62D3 ; MA # ( 拓 → 拓 ) CJK COMPATIBILITY IDEOGRAPH-FA02 → CJK
UNIFIED IDEOGRAPH-62D3 #
+
+2F8B6 ; 62D4 ; MA # ( 拔 → 拔 ) CJK COMPATIBILITY IDEOGRAPH-2F8B6 →
CJK UNIFIED IDEOGRAPH-62D4 #
+
+2F8BA ; 62FC ; MA # ( 拼 → 拼 ) CJK COMPATIBILITY IDEOGRAPH-2F8BA →
CJK UNIFIED IDEOGRAPH-62FC #
+
+F973 ; 62FE ; MA # ( 拾 → 拾 ) CJK COMPATIBILITY IDEOGRAPH-F973 → CJK
UNIFIED IDEOGRAPH-62FE #
+
+2F8B8 ; 22B0C ; MA # ( 𢬌 → 𢬌 ) CJK COMPATIBILITY IDEOGRAPH-2F8B8 →
CJK UNIFIED IDEOGRAPH-22B0C #
+
+2F8B9 ; 633D ; MA # ( 挽 → 挽 ) CJK COMPATIBILITY IDEOGRAPH-2F8B9 →
CJK UNIFIED IDEOGRAPH-633D #
+
+2F8B7 ; 6350 ; MA # ( 捐 → 捐 ) CJK COMPATIBILITY IDEOGRAPH-2F8B7 →
CJK UNIFIED IDEOGRAPH-6350 #
+
+2F8BB ; 6368 ; MA # ( 捨 → 捨 ) CJK COMPATIBILITY IDEOGRAPH-2F8BB →
CJK UNIFIED IDEOGRAPH-6368 #
+
+F9A4 ; 637B ; MA # ( 捻 → 捻 ) CJK COMPATIBILITY IDEOGRAPH-F9A4 → CJK
UNIFIED IDEOGRAPH-637B #
+
+2F8BC ; 6383 ; MA # ( 掃 → 掃 ) CJK COMPATIBILITY IDEOGRAPH-2F8BC →
CJK UNIFIED IDEOGRAPH-6383 #
+
+F975 ; 63A0 ; MA # ( 掠 → 掠 ) CJK COMPATIBILITY IDEOGRAPH-F975 → CJK
UNIFIED IDEOGRAPH-63A0 #
+
+2F8C1 ; 63A9 ; MA # ( 掩 → 掩 ) CJK COMPATIBILITY IDEOGRAPH-2F8C1 →
CJK UNIFIED IDEOGRAPH-63A9 #
+
+FA8D ; 63C4 ; MA # ( 揄 → 揄 ) CJK COMPATIBILITY IDEOGRAPH-FA8D → CJK
UNIFIED IDEOGRAPH-63C4 #
+
+2F8BD ; 63E4 ; MA # ( 揤 → 揤 ) CJK COMPATIBILITY IDEOGRAPH-2F8BD →
CJK UNIFIED IDEOGRAPH-63E4 #
+
+FA8F ; 6452 ; MA # ( 摒 → 摒 ) CJK COMPATIBILITY IDEOGRAPH-FA8F → CJK
UNIFIED IDEOGRAPH-6452 #
+
+2F8BE ; 22BF1 ; MA # ( 𢯱 → 𢯱 ) CJK COMPATIBILITY IDEOGRAPH-2F8BE →
CJK UNIFIED IDEOGRAPH-22BF1 #
+
+FA8E ; 641C ; MA # ( 搜 → 搜 ) CJK COMPATIBILITY IDEOGRAPH-FA8E → CJK
UNIFIED IDEOGRAPH-641C #
+
+2F8BF ; 6422 ; MA # ( 搢 → 搢 ) CJK COMPATIBILITY IDEOGRAPH-2F8BF →
CJK UNIFIED IDEOGRAPH-6422 #
+
+2F8C0 ; 63C5 ; MA # ( 揅 → 揅 ) CJK COMPATIBILITY IDEOGRAPH-2F8C0 →
CJK UNIFIED IDEOGRAPH-63C5 #
+
+2F8C3 ; 6469 ; MA # ( 摩 → 摩 ) CJK COMPATIBILITY IDEOGRAPH-2F8C3 →
CJK UNIFIED IDEOGRAPH-6469 #
+
+2F8C6 ; 6477 ; MA # ( 摷 → 摷 ) CJK COMPATIBILITY IDEOGRAPH-2F8C6 →
CJK UNIFIED IDEOGRAPH-6477 #
+
+2F8C4 ; 647E ; MA # ( 摾 → 摾 ) CJK COMPATIBILITY IDEOGRAPH-2F8C4 →
CJK UNIFIED IDEOGRAPH-647E #
+
+2F8C2 ; 3A2E ; MA # ( 㨮 → 㨮 ) CJK COMPATIBILITY IDEOGRAPH-2F8C2 →
CJK UNIFIED IDEOGRAPH-3A2E #
+
+6409 ; 3A41 ; MA # ( 搉 → 㩁 ) CJK UNIFIED IDEOGRAPH-6409 → CJK UNIFIED
IDEOGRAPH-3A41 #
+
+F991 ; 649A ; MA # ( 撚 → 撚 ) CJK COMPATIBILITY IDEOGRAPH-F991 → CJK
UNIFIED IDEOGRAPH-649A #
+
+2F8C5 ; 649D ; MA # ( 撝 → 撝 ) CJK COMPATIBILITY IDEOGRAPH-2F8C5 →
CJK UNIFIED IDEOGRAPH-649D #
+
+F930 ; 64C4 ; MA # ( 擄 → 擄 ) CJK COMPATIBILITY IDEOGRAPH-F930 → CJK
UNIFIED IDEOGRAPH-64C4 #
+
+2F8C7 ; 3A6C ; MA # ( 㩬 → 㩬 ) CJK COMPATIBILITY IDEOGRAPH-2F8C7 →
CJK UNIFIED IDEOGRAPH-3A6C #
+
+2F40 ; 652F ; MA #* ( ⽀ → 支 ) KANGXI RADICAL BRANCH → CJK UNIFIED
IDEOGRAPH-652F #
+
+2F41 ; 6534 ; MA #* ( ⽁ → 攴 ) KANGXI RADICAL RAP → CJK UNIFIED
IDEOGRAPH-6534 #
+
+2E99 ; 6535 ; MA #* ( ⺙ → 攵 ) CJK RADICAL RAP → CJK UNIFIED
IDEOGRAPH-6535 #
+
+FA41 ; 654F ; MA # ( 敏 → 敏 ) CJK COMPATIBILITY IDEOGRAPH-FA41 → CJK
UNIFIED IDEOGRAPH-654F #
+2F8C8 ; 654F ; MA # ( 敏 → 敏 ) CJK COMPATIBILITY IDEOGRAPH-2F8C8 →
CJK UNIFIED IDEOGRAPH-654F #
+
+FA90 ; 6556 ; MA # ( 敖 → 敖 ) CJK COMPATIBILITY IDEOGRAPH-FA90 → CJK
UNIFIED IDEOGRAPH-6556 #
+
+2F8C9 ; 656C ; MA # ( 敬 → 敬 ) CJK COMPATIBILITY IDEOGRAPH-2F8C9 →
CJK UNIFIED IDEOGRAPH-656C #
+
+F969 ; 6578 ; MA # ( 數 → 數 ) CJK COMPATIBILITY IDEOGRAPH-F969 → CJK
UNIFIED IDEOGRAPH-6578 #
+
+2F8CA ; 2300A ; MA # ( 𣀊 → 𣀊 ) CJK COMPATIBILITY IDEOGRAPH-2F8CA →
CJK UNIFIED IDEOGRAPH-2300A #
+
+2F42 ; 6587 ; MA #* ( ⽂ → 文 ) KANGXI RADICAL SCRIPT → CJK UNIFIED
IDEOGRAPH-6587 #
+
+2EEB ; 6589 ; MA #* ( ⻫ → 斉 ) CJK RADICAL J-SIMPLIFIED EVEN → CJK
UNIFIED IDEOGRAPH-6589 #
+
+2F43 ; 6597 ; MA #* ( ⽃ → 斗 ) KANGXI RADICAL DIPPER → CJK UNIFIED
IDEOGRAPH-6597 #
+
+F9BE ; 6599 ; MA # ( 料 → 料 ) CJK COMPATIBILITY IDEOGRAPH-F9BE → CJK
UNIFIED IDEOGRAPH-6599 #
+
+2F44 ; 65A4 ; MA #* ( ⽄ → 斤 ) KANGXI RADICAL AXE → CJK UNIFIED
IDEOGRAPH-65A4 #
+
+2F45 ; 65B9 ; MA #* ( ⽅ → 方 ) KANGXI RADICAL SQUARE → CJK UNIFIED
IDEOGRAPH-65B9 #
+
+F983 ; 65C5 ; MA # ( 旅 → 旅 ) CJK COMPATIBILITY IDEOGRAPH-F983 → CJK
UNIFIED IDEOGRAPH-65C5 #
+
+2F46 ; 65E0 ; MA #* ( ⽆ → 无 ) KANGXI RADICAL NOT → CJK UNIFIED
IDEOGRAPH-65E0 #
+
+2E9B ; 65E1 ; MA #* ( ⺛ → 旡 ) CJK RADICAL CHOKE → CJK UNIFIED
IDEOGRAPH-65E1 #
+
+FA42 ; 65E2 ; MA # ( 既 → 既 ) CJK COMPATIBILITY IDEOGRAPH-FA42 → CJK
UNIFIED IDEOGRAPH-65E2 #
+
+2F8CB ; 65E3 ; MA # ( 旣 → 旣 ) CJK COMPATIBILITY IDEOGRAPH-2F8CB →
CJK UNIFIED IDEOGRAPH-65E3 #
+
+2F47 ; 65E5 ; MA #* ( ⽇ → 日 ) KANGXI RADICAL SUN → CJK UNIFIED
IDEOGRAPH-65E5 #
+
+F9E0 ; 6613 ; MA # ( 易 → 易 ) CJK COMPATIBILITY IDEOGRAPH-F9E0 → CJK
UNIFIED IDEOGRAPH-6613 #
+
+66F6 ; 3ADA ; MA # ( 曶 → 㫚 ) CJK UNIFIED IDEOGRAPH-66F6 → CJK UNIFIED
IDEOGRAPH-3ADA #
+
+2F8D1 ; 3AE4 ; MA # ( 㫤 → 㫤 ) CJK COMPATIBILITY IDEOGRAPH-2F8D1 →
CJK UNIFIED IDEOGRAPH-3AE4 #
+
+2F8CD ; 6649 ; MA # ( 晉 → 晉 ) CJK COMPATIBILITY IDEOGRAPH-2F8CD →
CJK UNIFIED IDEOGRAPH-6649 #
+
+6669 ; 665A ; MA # ( 晩 → 晚 ) CJK UNIFIED IDEOGRAPH-6669 → CJK UNIFIED
IDEOGRAPH-665A #
+
+FA12 ; 6674 ; MA # ( 晴 → 晴 ) CJK COMPATIBILITY IDEOGRAPH-FA12 → CJK
UNIFIED IDEOGRAPH-6674 #
+FA91 ; 6674 ; MA # ( 晴 → 晴 ) CJK COMPATIBILITY IDEOGRAPH-FA91 → CJK
UNIFIED IDEOGRAPH-6674 #
+
+FA43 ; 6691 ; MA # ( 暑 → 暑 ) CJK COMPATIBILITY IDEOGRAPH-FA43 → CJK
UNIFIED IDEOGRAPH-6691 #
+2F8CF ; 6691 ; MA # ( 暑 → 暑 ) CJK COMPATIBILITY IDEOGRAPH-2F8CF →
CJK UNIFIED IDEOGRAPH-6691 #
+
+F9C5 ; 6688 ; MA # ( 暈 → 暈 ) CJK COMPATIBILITY IDEOGRAPH-F9C5 → CJK
UNIFIED IDEOGRAPH-6688 #
+
+2F8D0 ; 3B08 ; MA # ( 㬈 → 㬈 ) CJK COMPATIBILITY IDEOGRAPH-2F8D0 →
CJK UNIFIED IDEOGRAPH-3B08 #
+
+2F8D5 ; 669C ; MA # ( 暜 → 暜 ) CJK COMPATIBILITY IDEOGRAPH-2F8D5 →
CJK UNIFIED IDEOGRAPH-669C #
+
+FA06 ; 66B4 ; MA # ( 暴 → 暴 ) CJK COMPATIBILITY IDEOGRAPH-FA06 → CJK
UNIFIED IDEOGRAPH-66B4 #
+
+F98B ; 66C6 ; MA # ( 曆 → 曆 ) CJK COMPATIBILITY IDEOGRAPH-F98B → CJK
UNIFIED IDEOGRAPH-66C6 #
+
+2F8CE ; 3B19 ; MA # ( 㬙 → 㬙 ) CJK COMPATIBILITY IDEOGRAPH-2F8CE →
CJK UNIFIED IDEOGRAPH-3B19 #
+
+2F897 ; 232B8 ; MA # ( 𣊸 → 𣊸 ) CJK COMPATIBILITY IDEOGRAPH-2F897 →
CJK UNIFIED IDEOGRAPH-232B8 #
+
+2F48 ; 66F0 ; MA #* ( ⽈ → 曰 ) KANGXI RADICAL SAY → CJK UNIFIED
IDEOGRAPH-66F0 #
+
+F901 ; 66F4 ; MA # ( 更 → 更 ) CJK COMPATIBILITY IDEOGRAPH-F901 → CJK
UNIFIED IDEOGRAPH-66F4 #
+
+2F8CC ; 66F8 ; MA # ( 書 → 書 ) CJK COMPATIBILITY IDEOGRAPH-2F8CC →
CJK UNIFIED IDEOGRAPH-66F8 #
+
+2F49 ; 6708 ; MA #* ( ⽉ → 月 ) KANGXI RADICAL MOON → CJK UNIFIED
IDEOGRAPH-6708 #
+
+2F980 ; 2335F ; MA # ( 𣍟 → 𣍟 ) CJK COMPATIBILITY IDEOGRAPH-2F980 →
CJK UNIFIED IDEOGRAPH-2335F #
+
+80A6 ; 670C ; MA # ( 肦 → 朌 ) CJK UNIFIED IDEOGRAPH-80A6 → CJK UNIFIED
IDEOGRAPH-670C #
+
+80D0 ; 670F ; MA # ( 胐 → 朏 ) CJK UNIFIED IDEOGRAPH-80D0 → CJK UNIFIED
IDEOGRAPH-670F #
+
+80CA ; 6710 ; MA # ( 胊 → 朐 ) CJK UNIFIED IDEOGRAPH-80CA → CJK UNIFIED
IDEOGRAPH-6710 #
+
+8101 ; 6713 ; MA # ( 脁 → 朓 ) CJK UNIFIED IDEOGRAPH-8101 → CJK UNIFIED
IDEOGRAPH-6713 #
+
+80F6 ; 3B35 ; MA # ( 胶 → 㬵 ) CJK UNIFIED IDEOGRAPH-80F6 → CJK UNIFIED
IDEOGRAPH-3B35 #
+
+F929 ; 6717 ; MA # ( 朗 → 朗 ) CJK COMPATIBILITY IDEOGRAPH-F929 → CJK
UNIFIED IDEOGRAPH-6717 #
+FA92 ; 6717 ; MA # ( 朗 → 朗 ) CJK COMPATIBILITY IDEOGRAPH-FA92 → CJK
UNIFIED IDEOGRAPH-6717 #
+2F8D8 ; 6717 ; MA # ( 朗 → 朗 ) CJK COMPATIBILITY IDEOGRAPH-2F8D8 →
CJK UNIFIED IDEOGRAPH-6717 #
+
+8127 ; 6718 ; MA # ( 脧 → 朘 ) CJK UNIFIED IDEOGRAPH-8127 → CJK UNIFIED
IDEOGRAPH-6718 #
+
+FA93 ; 671B ; MA # ( 望 → 望 ) CJK COMPATIBILITY IDEOGRAPH-FA93 → CJK
UNIFIED IDEOGRAPH-671B #
+2F8D9 ; 671B ; MA # ( 望 → 望 ) CJK COMPATIBILITY IDEOGRAPH-2F8D9 →
CJK UNIFIED IDEOGRAPH-671B #
+
+5E50 ; 3B3A ; MA # ( 幐 → 㬺 ) CJK UNIFIED IDEOGRAPH-5E50 → CJK UNIFIED
IDEOGRAPH-3B3A #
+
+4420 ; 3B3B ; MA # ( 䐠 → 㬻 ) CJK UNIFIED IDEOGRAPH-4420 → CJK UNIFIED
IDEOGRAPH-3B3B #
+
+2F989 ; 23393 ; MA # ( 𣎓 → 𣎓 ) CJK COMPATIBILITY IDEOGRAPH-2F989 →
CJK UNIFIED IDEOGRAPH-23393 #
+
+81A7 ; 6723 ; MA # ( 膧 → 朣 ) CJK UNIFIED IDEOGRAPH-81A7 → CJK UNIFIED
IDEOGRAPH-6723 #
+
+2F98A ; 2339C ; MA # ( 𣎜 → 𣎜 ) CJK COMPATIBILITY IDEOGRAPH-2F98A →
CJK UNIFIED IDEOGRAPH-2339C #
+
+2F4A ; 6728 ; MA #* ( ⽊ → 木 ) KANGXI RADICAL TREE → CJK UNIFIED
IDEOGRAPH-6728 #
+
+F9E1 ; 674E ; MA # ( 李 → 李 ) CJK COMPATIBILITY IDEOGRAPH-F9E1 → CJK
UNIFIED IDEOGRAPH-674E #
+
+2F8DC ; 6753 ; MA # ( 杓 → 杓 ) CJK COMPATIBILITY IDEOGRAPH-2F8DC →
CJK UNIFIED IDEOGRAPH-6753 #
+
+FA94 ; 6756 ; MA # ( 杖 → 杖 ) CJK COMPATIBILITY IDEOGRAPH-FA94 → CJK
UNIFIED IDEOGRAPH-6756 #
+
+2F8DB ; 675E ; MA # ( 杞 → 杞 ) CJK COMPATIBILITY IDEOGRAPH-2F8DB →
CJK UNIFIED IDEOGRAPH-675E #
+
+2F8DD ; 233C3 ; MA # ( 𣏃 → 𣏃 ) CJK COMPATIBILITY IDEOGRAPH-2F8DD →
CJK UNIFIED IDEOGRAPH-233C3 #
+
+67FF ; 676E ; MA # ( 柿 → 杮 ) CJK UNIFIED IDEOGRAPH-67FF → CJK UNIFIED
IDEOGRAPH-676E #
+
+F9C8 ; 677B ; MA # ( 杻 → 杻 ) CJK COMPATIBILITY IDEOGRAPH-F9C8 → CJK
UNIFIED IDEOGRAPH-677B #
+
+2F8E0 ; 6785 ; MA # ( 枅 → 枅 ) CJK COMPATIBILITY IDEOGRAPH-2F8E0 →
CJK UNIFIED IDEOGRAPH-6785 #
+
+F9F4 ; 6797 ; MA # ( 林 → 林 ) CJK COMPATIBILITY IDEOGRAPH-F9F4 → CJK
UNIFIED IDEOGRAPH-6797 #
+
+2F8DE ; 3B49 ; MA # ( 㭉 → 㭉 ) CJK COMPATIBILITY IDEOGRAPH-2F8DE →
CJK UNIFIED IDEOGRAPH-3B49 #
+
+FAD1 ; 233D5 ; MA # ( 𣏕 → 𣏕 ) CJK COMPATIBILITY IDEOGRAPH-FAD1 → CJK
UNIFIED IDEOGRAPH-233D5 #
+
+F9C9 ; 67F3 ; MA # ( 柳 → 柳 ) CJK COMPATIBILITY IDEOGRAPH-F9C9 → CJK
UNIFIED IDEOGRAPH-67F3 #
+
+2F8DF ; 67FA ; MA # ( 柺 → 柺 ) CJK COMPATIBILITY IDEOGRAPH-2F8DF →
CJK UNIFIED IDEOGRAPH-67FA #
+
+F9DA ; 6817 ; MA # ( 栗 → 栗 ) CJK COMPATIBILITY IDEOGRAPH-F9DA → CJK
UNIFIED IDEOGRAPH-6817 #
+
+2F8E5 ; 681F ; MA # ( 栟 → 栟 ) CJK COMPATIBILITY IDEOGRAPH-2F8E5 →
CJK UNIFIED IDEOGRAPH-681F #
+
+2F8E1 ; 6852 ; MA # ( 桒 → 桒 ) CJK COMPATIBILITY IDEOGRAPH-2F8E1 →
CJK UNIFIED IDEOGRAPH-6852 #
+
+2F8E3 ; 2346D ; MA # ( 𣑭 → 𣑭 ) CJK COMPATIBILITY IDEOGRAPH-2F8E3 →
CJK UNIFIED IDEOGRAPH-2346D #
+
+F97A ; 6881 ; MA # ( 梁 → 梁 ) CJK COMPATIBILITY IDEOGRAPH-F97A → CJK
UNIFIED IDEOGRAPH-6881 #
+
+FA44 ; 6885 ; MA # ( 梅 → 梅 ) CJK COMPATIBILITY IDEOGRAPH-FA44 → CJK
UNIFIED IDEOGRAPH-6885 #
+2F8E2 ; 6885 ; MA # ( 梅 → 梅 ) CJK COMPATIBILITY IDEOGRAPH-2F8E2 →
CJK UNIFIED IDEOGRAPH-6885 #
+
+2F8E4 ; 688E ; MA # ( 梎 → 梎 ) CJK COMPATIBILITY IDEOGRAPH-2F8E4 →
CJK UNIFIED IDEOGRAPH-688E #
+
+F9E2 ; 68A8 ; MA # ( 梨 → 梨 ) CJK COMPATIBILITY IDEOGRAPH-F9E2 → CJK
UNIFIED IDEOGRAPH-68A8 #
+
+2F8E6 ; 6914 ; MA # ( 椔 → 椔 ) CJK COMPATIBILITY IDEOGRAPH-2F8E6 →
CJK UNIFIED IDEOGRAPH-6914 #
+
+2F8E8 ; 6942 ; MA # ( 楂 → 楂 ) CJK COMPATIBILITY IDEOGRAPH-2F8E8 →
CJK UNIFIED IDEOGRAPH-6942 #
+
+FAD2 ; 3B9D ; MA # ( 㮝 → 㮝 ) CJK COMPATIBILITY IDEOGRAPH-FAD2 → CJK
UNIFIED IDEOGRAPH-3B9D #
+2F8E7 ; 3B9D ; MA # ( 㮝 → 㮝 ) CJK COMPATIBILITY IDEOGRAPH-2F8E7 →
CJK UNIFIED IDEOGRAPH-3B9D #
+
+69E9 ; 3BA3 ; MA # ( 槩 → 㮣 ) CJK UNIFIED IDEOGRAPH-69E9 → CJK UNIFIED
IDEOGRAPH-3BA3 #
+
+6A27 ; 699D ; MA # ( 樧 → 榝 ) CJK UNIFIED IDEOGRAPH-6A27 → CJK UNIFIED
IDEOGRAPH-699D #
+
+2F8E9 ; 69A3 ; MA # ( 榣 → 榣 ) CJK COMPATIBILITY IDEOGRAPH-2F8E9 →
CJK UNIFIED IDEOGRAPH-69A3 #
+
+2F8EA ; 69EA ; MA # ( 槪 → 槪 ) CJK COMPATIBILITY IDEOGRAPH-2F8EA →
CJK UNIFIED IDEOGRAPH-69EA #
+
+F914 ; 6A02 ; MA # ( 樂 → 樂 ) CJK COMPATIBILITY IDEOGRAPH-F914 → CJK
UNIFIED IDEOGRAPH-6A02 #
+F95C ; 6A02 ; MA # ( 樂 → 樂 ) CJK COMPATIBILITY IDEOGRAPH-F95C → CJK
UNIFIED IDEOGRAPH-6A02 #
+F9BF ; 6A02 ; MA # ( 樂 → 樂 ) CJK COMPATIBILITY IDEOGRAPH-F9BF → CJK
UNIFIED IDEOGRAPH-6A02 #
+
+F94C ; 6A13 ; MA # ( 樓 → 樓 ) CJK COMPATIBILITY IDEOGRAPH-F94C → CJK
UNIFIED IDEOGRAPH-6A13 #
+
+2F8EC ; 236A3 ; MA # ( 𣚣 → 𣚣 ) CJK COMPATIBILITY IDEOGRAPH-2F8EC →
CJK UNIFIED IDEOGRAPH-236A3 #
+
+2F8EB ; 6AA8 ; MA # ( 檨 → 檨 ) CJK COMPATIBILITY IDEOGRAPH-2F8EB →
CJK UNIFIED IDEOGRAPH-6AA8 #
+
+F931 ; 6AD3 ; MA # ( 櫓 → 櫓 ) CJK COMPATIBILITY IDEOGRAPH-F931 → CJK
UNIFIED IDEOGRAPH-6AD3 #
+
+2F8ED ; 6ADB ; MA # ( 櫛 → 櫛 ) CJK COMPATIBILITY IDEOGRAPH-2F8ED →
CJK UNIFIED IDEOGRAPH-6ADB #
+
+F91D ; 6B04 ; MA # ( 欄 → 欄 ) CJK COMPATIBILITY IDEOGRAPH-F91D → CJK
UNIFIED IDEOGRAPH-6B04 #
+
+2F8EE ; 3C18 ; MA # ( 㰘 → 㰘 ) CJK COMPATIBILITY IDEOGRAPH-2F8EE →
CJK UNIFIED IDEOGRAPH-3C18 #
+
+2F4B ; 6B20 ; MA #* ( ⽋ → 欠 ) KANGXI RADICAL LACK → CJK UNIFIED
IDEOGRAPH-6B20 #
+
+2F8EF ; 6B21 ; MA # ( 次 → 次 ) CJK COMPATIBILITY IDEOGRAPH-2F8EF →
CJK UNIFIED IDEOGRAPH-6B21 #
+
+2F8F0 ; 238A7 ; MA # ( 𣢧 → 𣢧 ) CJK COMPATIBILITY IDEOGRAPH-2F8F0 →
CJK UNIFIED IDEOGRAPH-238A7 #
+
+2F8F1 ; 6B54 ; MA # ( 歔 → 歔 ) CJK COMPATIBILITY IDEOGRAPH-2F8F1 →
CJK UNIFIED IDEOGRAPH-6B54 #
+
+2F8F2 ; 3C4E ; MA # ( 㱎 → 㱎 ) CJK COMPATIBILITY IDEOGRAPH-2F8F2 →
CJK UNIFIED IDEOGRAPH-3C4E #
+
+2F4C ; 6B62 ; MA #* ( ⽌ → 止 ) KANGXI RADICAL STOP → CJK UNIFIED
IDEOGRAPH-6B62 #
+
+2EED ; 6B6F ; MA #* ( ⻭ → 歯 ) CJK RADICAL J-SIMPLIFIED TOOTH → CJK
UNIFIED IDEOGRAPH-6B6F #
+
+2F8F3 ; 6B72 ; MA # ( 歲 → 歲 ) CJK COMPATIBILITY IDEOGRAPH-2F8F3 →
CJK UNIFIED IDEOGRAPH-6B72 #
+
+F98C ; 6B77 ; MA # ( 歷 → 歷 ) CJK COMPATIBILITY IDEOGRAPH-F98C → CJK
UNIFIED IDEOGRAPH-6B77 #
+
+FA95 ; 6B79 ; MA # ( 歹 → 歹 ) CJK COMPATIBILITY IDEOGRAPH-FA95 → CJK
UNIFIED IDEOGRAPH-6B79 #
+2F4D ; 6B79 ; MA #* ( ⽍ → 歹 ) KANGXI RADICAL DEATH → CJK UNIFIED
IDEOGRAPH-6B79 #
+
+2E9E ; 6B7A ; MA #* ( ⺞ → 歺 ) CJK RADICAL DEATH → CJK UNIFIED
IDEOGRAPH-6B7A #
+
+2F8F4 ; 6B9F ; MA # ( 殟 → 殟 ) CJK COMPATIBILITY IDEOGRAPH-2F8F4 →
CJK UNIFIED IDEOGRAPH-6B9F #
+
+F9A5 ; 6BAE ; MA # ( 殮 → 殮 ) CJK COMPATIBILITY IDEOGRAPH-F9A5 → CJK
UNIFIED IDEOGRAPH-6BAE #
+
+2F4E ; 6BB3 ; MA #* ( ⽎ → 殳 ) KANGXI RADICAL WEAPON → CJK UNIFIED
IDEOGRAPH-6BB3 #
+
+F970 ; 6BBA ; MA # ( 殺 → 殺 ) CJK COMPATIBILITY IDEOGRAPH-F970 → CJK
UNIFIED IDEOGRAPH-6BBA #
+FA96 ; 6BBA ; MA # ( 殺 → 殺 ) CJK COMPATIBILITY IDEOGRAPH-FA96 → CJK
UNIFIED IDEOGRAPH-6BBA #
+2F8F5 ; 6BBA ; MA # ( 殺 → 殺 ) CJK COMPATIBILITY IDEOGRAPH-2F8F5 →
CJK UNIFIED IDEOGRAPH-6BBA #
+
+2F8F6 ; 6BBB ; MA # ( 殻 → 殻 ) CJK COMPATIBILITY IDEOGRAPH-2F8F6 →
CJK UNIFIED IDEOGRAPH-6BBB #
+
+2F8F7 ; 23A8D ; MA # ( 𣪍 → 𣪍 ) CJK COMPATIBILITY IDEOGRAPH-2F8F7 →
CJK UNIFIED IDEOGRAPH-23A8D #
+
+2F4F ; 6BCB ; MA #* ( ⽏ → 毋 ) KANGXI RADICAL DO NOT → CJK UNIFIED
IDEOGRAPH-6BCB #
+
+2E9F ; 6BCD ; MA #* ( ⺟ → 母 ) CJK RADICAL MOTHER → CJK UNIFIED
IDEOGRAPH-6BCD #
+
+2F8F9 ; 23AFA ; MA # ( 𣫺 → 𣫺 ) CJK COMPATIBILITY IDEOGRAPH-2F8F9 →
CJK UNIFIED IDEOGRAPH-23AFA #
+
+2F50 ; 6BD4 ; MA #* ( ⽐ → 比 ) KANGXI RADICAL COMPARE → CJK UNIFIED
IDEOGRAPH-6BD4 #
+
+2F51 ; 6BDB ; MA #* ( ⽑ → 毛 ) KANGXI RADICAL FUR → CJK UNIFIED
IDEOGRAPH-6BDB #
+
+2F52 ; 6C0F ; MA #* ( ⽒ → 氏 ) KANGXI RADICAL CLAN → CJK UNIFIED
IDEOGRAPH-6C0F #
+
+2EA0 ; 6C11 ; MA #* ( ⺠ → 民 ) CJK RADICAL CIVILIAN → CJK UNIFIED
IDEOGRAPH-6C11 #
+
+2F53 ; 6C14 ; MA #* ( ⽓ → 气 ) KANGXI RADICAL STEAM → CJK UNIFIED
IDEOGRAPH-6C14 #
+
+2F54 ; 6C34 ; MA #* ( ⽔ → 水 ) KANGXI RADICAL WATER → CJK UNIFIED
IDEOGRAPH-6C34 #
+
+2EA1 ; 6C35 ; MA #* ( ⺡ → 氵 ) CJK RADICAL WATER ONE → CJK UNIFIED
IDEOGRAPH-6C35 #
+
+2EA2 ; 6C3A ; MA #* ( ⺢ → 氺 ) CJK RADICAL WATER TWO → CJK UNIFIED
IDEOGRAPH-6C3A #
+
+2F8FA ; 6C4E ; MA # ( 汎 → 汎 ) CJK COMPATIBILITY IDEOGRAPH-2F8FA →
CJK UNIFIED IDEOGRAPH-6C4E #
+
+2F8FE ; 6C67 ; MA # ( 汧 → 汧 ) CJK COMPATIBILITY IDEOGRAPH-2F8FE →
CJK UNIFIED IDEOGRAPH-6C67 #
+
+F972 ; 6C88 ; MA # ( 沈 → 沈 ) CJK COMPATIBILITY IDEOGRAPH-F972 → CJK
UNIFIED IDEOGRAPH-6C88 #
+
+2F8FC ; 6CBF ; MA # ( 沿 → 沿 ) CJK COMPATIBILITY IDEOGRAPH-2F8FC →
CJK UNIFIED IDEOGRAPH-6CBF #
+
+F968 ; 6CCC ; MA # ( 泌 → 泌 ) CJK COMPATIBILITY IDEOGRAPH-F968 → CJK
UNIFIED IDEOGRAPH-6CCC #
+
+2F8FD ; 6CCD ; MA # ( 泍 → 泍 ) CJK COMPATIBILITY IDEOGRAPH-2F8FD →
CJK UNIFIED IDEOGRAPH-6CCD #
+
+F9E3 ; 6CE5 ; MA # ( 泥 → 泥 ) CJK COMPATIBILITY IDEOGRAPH-F9E3 → CJK
UNIFIED IDEOGRAPH-6CE5 #
+
+2F8FB ; 23CBC ; MA # ( 𣲼 → 𣲼 ) CJK COMPATIBILITY IDEOGRAPH-2F8FB →
CJK UNIFIED IDEOGRAPH-23CBC #
+
+F915 ; 6D1B ; MA # ( 洛 → 洛 ) CJK COMPATIBILITY IDEOGRAPH-F915 → CJK
UNIFIED IDEOGRAPH-6D1B #
+
+FA05 ; 6D1E ; MA # ( 洞 → 洞 ) CJK COMPATIBILITY IDEOGRAPH-FA05 → CJK
UNIFIED IDEOGRAPH-6D1E #
+
+2F907 ; 6D34 ; MA # ( 洴 → 洴 ) CJK COMPATIBILITY IDEOGRAPH-2F907 →
CJK UNIFIED IDEOGRAPH-6D34 #
+
+2F900 ; 6D3E ; MA # ( 派 → 派 ) CJK COMPATIBILITY IDEOGRAPH-2F900 →
CJK UNIFIED IDEOGRAPH-6D3E #
+
+F9CA ; 6D41 ; MA # ( 流 → 流 ) CJK COMPATIBILITY IDEOGRAPH-F9CA → CJK
UNIFIED IDEOGRAPH-6D41 #
+FA97 ; 6D41 ; MA # ( 流 → 流 ) CJK COMPATIBILITY IDEOGRAPH-FA97 → CJK
UNIFIED IDEOGRAPH-6D41 #
+2F902 ; 6D41 ; MA # ( 流 → 流 ) CJK COMPATIBILITY IDEOGRAPH-2F902 →
CJK UNIFIED IDEOGRAPH-6D41 #
+
+2F8FF ; 6D16 ; MA # ( 洖 → 洖 ) CJK COMPATIBILITY IDEOGRAPH-2F8FF →
CJK UNIFIED IDEOGRAPH-6D16 #
+
+2F903 ; 6D69 ; MA # ( 浩 → 浩 ) CJK COMPATIBILITY IDEOGRAPH-2F903 →
CJK UNIFIED IDEOGRAPH-6D69 #
+
+F92A ; 6D6A ; MA # ( 浪 → 浪 ) CJK COMPATIBILITY IDEOGRAPH-F92A → CJK
UNIFIED IDEOGRAPH-6D6A #
+
+FA45 ; 6D77 ; MA # ( 海 → 海 ) CJK COMPATIBILITY IDEOGRAPH-FA45 → CJK
UNIFIED IDEOGRAPH-6D77 #
+2F901 ; 6D77 ; MA # ( 海 → 海 ) CJK COMPATIBILITY IDEOGRAPH-2F901 →
CJK UNIFIED IDEOGRAPH-6D77 #
+
+2F904 ; 6D78 ; MA # ( 浸 → 浸 ) CJK COMPATIBILITY IDEOGRAPH-2F904 →
CJK UNIFIED IDEOGRAPH-6D78 #
+
+2F905 ; 6D85 ; MA # ( 涅 → 涅 ) CJK COMPATIBILITY IDEOGRAPH-2F905 →
CJK UNIFIED IDEOGRAPH-6D85 #
+
+2F906 ; 23D1E ; MA # ( 𣴞 → 𣴞 ) CJK COMPATIBILITY IDEOGRAPH-2F906 →
CJK UNIFIED IDEOGRAPH-23D1E #
+
+F9F5 ; 6DCB ; MA # ( 淋 → 淋 ) CJK COMPATIBILITY IDEOGRAPH-F9F5 → CJK
UNIFIED IDEOGRAPH-6DCB #
+
+F94D ; 6DDA ; MA # ( 淚 → 淚 ) CJK COMPATIBILITY IDEOGRAPH-F94D → CJK
UNIFIED IDEOGRAPH-6DDA #
+
+F9D6 ; 6DEA ; MA # ( 淪 → 淪 ) CJK COMPATIBILITY IDEOGRAPH-F9D6 → CJK
UNIFIED IDEOGRAPH-6DEA #
+
+2F90E ; 6DF9 ; MA # ( 淹 → 淹 ) CJK COMPATIBILITY IDEOGRAPH-2F90E →
CJK UNIFIED IDEOGRAPH-6DF9 #
+
+FA46 ; 6E1A ; MA # ( 渚 → 渚 ) CJK COMPATIBILITY IDEOGRAPH-FA46 → CJK
UNIFIED IDEOGRAPH-6E1A #
+
+2F908 ; 6E2F ; MA # ( 港 → 港 ) CJK COMPATIBILITY IDEOGRAPH-2F908 →
CJK UNIFIED IDEOGRAPH-6E2F #
+
+2F909 ; 6E6E ; MA # ( 湮 → 湮 ) CJK COMPATIBILITY IDEOGRAPH-2F909 →
CJK UNIFIED IDEOGRAPH-6E6E #
+
+6F59 ; 6E88 ; MA # ( 潙 → 溈 ) CJK UNIFIED IDEOGRAPH-6F59 → CJK UNIFIED
IDEOGRAPH-6E88 #
+
+FA99 ; 6ECB ; MA # ( 滋 → 滋 ) CJK COMPATIBILITY IDEOGRAPH-FA99 → CJK
UNIFIED IDEOGRAPH-6ECB #
+2F90B ; 6ECB ; MA # ( 滋 → 滋 ) CJK COMPATIBILITY IDEOGRAPH-2F90B →
CJK UNIFIED IDEOGRAPH-6ECB #
+
+F9CB ; 6E9C ; MA # ( 溜 → 溜 ) CJK COMPATIBILITY IDEOGRAPH-F9CB → CJK
UNIFIED IDEOGRAPH-6E9C #
+
+F9EC ; 6EBA ; MA # ( 溺 → 溺 ) CJK COMPATIBILITY IDEOGRAPH-F9EC → CJK
UNIFIED IDEOGRAPH-6EBA #
+
+2F90C ; 6EC7 ; MA # ( 滇 → 滇 ) CJK COMPATIBILITY IDEOGRAPH-2F90C →
CJK UNIFIED IDEOGRAPH-6EC7 #
+
+F904 ; 6ED1 ; MA # ( 滑 → 滑 ) CJK COMPATIBILITY IDEOGRAPH-F904 → CJK
UNIFIED IDEOGRAPH-6ED1 #
+
+FA98 ; 6EDB ; MA # ( 滛 → 滛 ) CJK COMPATIBILITY IDEOGRAPH-FA98 → CJK
UNIFIED IDEOGRAPH-6EDB #
+
+2F90A ; 3D33 ; MA # ( 㴳 → 㴳 ) CJK COMPATIBILITY IDEOGRAPH-2F90A →
CJK UNIFIED IDEOGRAPH-3D33 #
+
+F94E ; 6F0F ; MA # ( 漏 → 漏 ) CJK COMPATIBILITY IDEOGRAPH-F94E → CJK
UNIFIED IDEOGRAPH-6F0F #
+
+FA47 ; 6F22 ; MA # ( 漢 → 漢 ) CJK COMPATIBILITY IDEOGRAPH-FA47 → CJK
UNIFIED IDEOGRAPH-6F22 #
+FA9A ; 6F22 ; MA # ( 漢 → 漢 ) CJK COMPATIBILITY IDEOGRAPH-FA9A → CJK
UNIFIED IDEOGRAPH-6F22 #
+
+F992 ; 6F23 ; MA # ( 漣 → 漣 ) CJK COMPATIBILITY IDEOGRAPH-F992 → CJK
UNIFIED IDEOGRAPH-6F23 #
+
+2F90D ; 23ED1 ; MA # ( 𣻑 → 𣻑 ) CJK COMPATIBILITY IDEOGRAPH-2F90D →
CJK UNIFIED IDEOGRAPH-23ED1 #
+
+2F90F ; 6F6E ; MA # ( 潮 → 潮 ) CJK COMPATIBILITY IDEOGRAPH-2F90F →
CJK UNIFIED IDEOGRAPH-6F6E #
+
+2F910 ; 23F5E ; MA # ( 𣽞 → 𣽞 ) CJK COMPATIBILITY IDEOGRAPH-2F910 →
CJK UNIFIED IDEOGRAPH-23F5E #
+
+2F911 ; 23F8E ; MA # ( 𣾎 → 𣾎 ) CJK COMPATIBILITY IDEOGRAPH-2F911 →
CJK UNIFIED IDEOGRAPH-23F8E #
+
+2F912 ; 6FC6 ; MA # ( 濆 → 濆 ) CJK COMPATIBILITY IDEOGRAPH-2F912 →
CJK UNIFIED IDEOGRAPH-6FC6 #
+
+F922 ; 6FEB ; MA # ( 濫 → 濫 ) CJK COMPATIBILITY IDEOGRAPH-F922 → CJK
UNIFIED IDEOGRAPH-6FEB #
+
+F984 ; 6FFE ; MA # ( 濾 → 濾 ) CJK COMPATIBILITY IDEOGRAPH-F984 → CJK
UNIFIED IDEOGRAPH-6FFE #
+
+2F915 ; 701B ; MA # ( 瀛 → 瀛 ) CJK COMPATIBILITY IDEOGRAPH-2F915 →
CJK UNIFIED IDEOGRAPH-701B #
+
+FA9B ; 701E ; MA # ( 瀞 → 瀞 ) CJK COMPATIBILITY IDEOGRAPH-FA9B → CJK
UNIFIED IDEOGRAPH-701E #
+2F914 ; 701E ; MA # ( 瀞 → 瀞 ) CJK COMPATIBILITY IDEOGRAPH-2F914 →
CJK UNIFIED IDEOGRAPH-701E #
+
+2F913 ; 7039 ; MA # ( 瀹 → 瀹 ) CJK COMPATIBILITY IDEOGRAPH-2F913 →
CJK UNIFIED IDEOGRAPH-7039 #
+
+2F917 ; 704A ; MA # ( 灊 → 灊 ) CJK COMPATIBILITY IDEOGRAPH-2F917 →
CJK UNIFIED IDEOGRAPH-704A #
+
+2F916 ; 3D96 ; MA # ( 㶖 → 㶖 ) CJK COMPATIBILITY IDEOGRAPH-2F916 →
CJK UNIFIED IDEOGRAPH-3D96 #
+
+2F55 ; 706B ; MA #* ( ⽕ → 火 ) KANGXI RADICAL FIRE → CJK UNIFIED
IDEOGRAPH-706B #
+
+2EA3 ; 706C ; MA #* ( ⺣ → 灬 ) CJK RADICAL FIRE → CJK UNIFIED
IDEOGRAPH-706C #
+
+2F835 ; 7070 ; MA # ( 灰 → 灰 ) CJK COMPATIBILITY IDEOGRAPH-2F835 →
CJK UNIFIED IDEOGRAPH-7070 #
+
+2F919 ; 7077 ; MA # ( 灷 → 灷 ) CJK COMPATIBILITY IDEOGRAPH-2F919 →
CJK UNIFIED IDEOGRAPH-7077 #
+
+2F918 ; 707D ; MA # ( 災 → 災 ) CJK COMPATIBILITY IDEOGRAPH-2F918 →
CJK UNIFIED IDEOGRAPH-707D #
+
+F9FB ; 7099 ; MA # ( 炙 → 炙 ) CJK COMPATIBILITY IDEOGRAPH-F9FB → CJK
UNIFIED IDEOGRAPH-7099 #
+
+2F91A ; 70AD ; MA # ( 炭 → 炭 ) CJK COMPATIBILITY IDEOGRAPH-2F91A →
CJK UNIFIED IDEOGRAPH-70AD #
+
+F99F ; 70C8 ; MA # ( 烈 → 烈 ) CJK COMPATIBILITY IDEOGRAPH-F99F → CJK
UNIFIED IDEOGRAPH-70C8 #
+
+F916 ; 70D9 ; MA # ( 烙 → 烙 ) CJK COMPATIBILITY IDEOGRAPH-F916 → CJK
UNIFIED IDEOGRAPH-70D9 #
+
+FA48 ; 716E ; MA # ( 煮 → 煮 ) CJK COMPATIBILITY IDEOGRAPH-FA48 → CJK
UNIFIED IDEOGRAPH-716E #
+FA9C ; 716E ; MA # ( 煮 → 煮 ) CJK COMPATIBILITY IDEOGRAPH-FA9C → CJK
UNIFIED IDEOGRAPH-716E #
+
+2F91D ; 24263 ; MA # ( 𤉣 → 𤉣 ) CJK COMPATIBILITY IDEOGRAPH-2F91D →
CJK UNIFIED IDEOGRAPH-24263 #
+
+2F91C ; 7145 ; MA # ( 煅 → 煅 ) CJK COMPATIBILITY IDEOGRAPH-2F91C →
CJK UNIFIED IDEOGRAPH-7145 #
+
+F993 ; 7149 ; MA # ( 煉 → 煉 ) CJK COMPATIBILITY IDEOGRAPH-F993 → CJK
UNIFIED IDEOGRAPH-7149 #
+
+FA6C ; 242EE ; MA # ( 𤋮 → 𤋮 ) CJK COMPATIBILITY IDEOGRAPH-FA6C → CJK
UNIFIED IDEOGRAPH-242EE #
+
+2F91E ; 719C ; MA # ( 熜 → 熜 ) CJK COMPATIBILITY IDEOGRAPH-2F91E →
CJK UNIFIED IDEOGRAPH-719C #
+
+F9C0 ; 71CE ; MA # ( 燎 → 燎 ) CJK COMPATIBILITY IDEOGRAPH-F9C0 → CJK
UNIFIED IDEOGRAPH-71CE #
+
+F9EE ; 71D0 ; MA # ( 燐 → 燐 ) CJK COMPATIBILITY IDEOGRAPH-F9EE → CJK
UNIFIED IDEOGRAPH-71D0 #
+
+2F91F ; 243AB ; MA # ( 𤎫 → 𤎫 ) CJK COMPATIBILITY IDEOGRAPH-2F91F →
CJK UNIFIED IDEOGRAPH-243AB #
+
+F932 ; 7210 ; MA # ( 爐 → 爐 ) CJK COMPATIBILITY IDEOGRAPH-F932 → CJK
UNIFIED IDEOGRAPH-7210 #
+
+F91E ; 721B ; MA # ( 爛 → 爛 ) CJK COMPATIBILITY IDEOGRAPH-F91E → CJK
UNIFIED IDEOGRAPH-721B #
+
+2F920 ; 7228 ; MA # ( 爨 → 爨 ) CJK COMPATIBILITY IDEOGRAPH-2F920 →
CJK UNIFIED IDEOGRAPH-7228 #
+
+2F56 ; 722A ; MA #* ( ⽖ → 爪 ) KANGXI RADICAL CLAW → CJK UNIFIED
IDEOGRAPH-722A #
+
+FA49 ; 722B ; MA # ( 爫 → 爫 ) CJK COMPATIBILITY IDEOGRAPH-FA49 → CJK
UNIFIED IDEOGRAPH-722B #
+2EA4 ; 722B ; MA #* ( ⺤ → 爫 ) CJK RADICAL PAW ONE → CJK UNIFIED
IDEOGRAPH-722B #
+
+FA9E ; 7235 ; MA # ( 爵 → 爵 ) CJK COMPATIBILITY IDEOGRAPH-FA9E → CJK
UNIFIED IDEOGRAPH-7235 #
+2F921 ; 7235 ; MA # ( 爵 → 爵 ) CJK COMPATIBILITY IDEOGRAPH-2F921 →
CJK UNIFIED IDEOGRAPH-7235 #
+
+2F57 ; 7236 ; MA #* ( ⽗ → 父 ) KANGXI RADICAL FATHER → CJK UNIFIED
IDEOGRAPH-7236 #
+
+2F58 ; 723B ; MA #* ( ⽘ → 爻 ) KANGXI RADICAL DOUBLE X → CJK UNIFIED
IDEOGRAPH-723B #
+
+2EA6 ; 4E2C ; MA #* ( ⺦ → 丬 ) CJK RADICAL SIMPLIFIED HALF TREE TRUNK →
CJK UNIFIED IDEOGRAPH-4E2C #
+
+2F59 ; 723F ; MA #* ( ⽙ → 爿 ) KANGXI RADICAL HALF TREE TRUNK → CJK
UNIFIED IDEOGRAPH-723F #
+
+2F5A ; 7247 ; MA #* ( ⽚ → 片 ) KANGXI RADICAL SLICE → CJK UNIFIED
IDEOGRAPH-7247 #
+
+2F922 ; 7250 ; MA # ( 牐 → 牐 ) CJK COMPATIBILITY IDEOGRAPH-2F922 →
CJK UNIFIED IDEOGRAPH-7250 #
+
+2F5B ; 7259 ; MA #* ( ⽛ → 牙 ) KANGXI RADICAL FANG → CJK UNIFIED
IDEOGRAPH-7259 #
+
+2F923 ; 24608 ; MA # ( 𤘈 → 𤘈 ) CJK COMPATIBILITY IDEOGRAPH-2F923 →
CJK UNIFIED IDEOGRAPH-24608 #
+
+2F5C ; 725B ; MA #* ( ⽜ → 牛 ) KANGXI RADICAL COW → CJK UNIFIED
IDEOGRAPH-725B #
+
+F946 ; 7262 ; MA # ( 牢 → 牢 ) CJK COMPATIBILITY IDEOGRAPH-F946 → CJK
UNIFIED IDEOGRAPH-7262 #
+
+2F924 ; 7280 ; MA # ( 犀 → 犀 ) CJK COMPATIBILITY IDEOGRAPH-2F924 →
CJK UNIFIED IDEOGRAPH-7280 #
+
+2F925 ; 7295 ; MA # ( 犕 → 犕 ) CJK COMPATIBILITY IDEOGRAPH-2F925 →
CJK UNIFIED IDEOGRAPH-7295 #
+
+2F5D ; 72AC ; MA #* ( ⽝ → 犬 ) KANGXI RADICAL DOG → CJK UNIFIED
IDEOGRAPH-72AC #
+
+2EA8 ; 72AD ; MA #* ( ⺨ → 犭 ) CJK RADICAL DOG → CJK UNIFIED
IDEOGRAPH-72AD #
+
+FA9F ; 72AF ; MA # ( 犯 → 犯 ) CJK COMPATIBILITY IDEOGRAPH-FA9F → CJK
UNIFIED IDEOGRAPH-72AF #
+
+F9FA ; 72C0 ; MA # ( 狀 → 狀 ) CJK COMPATIBILITY IDEOGRAPH-F9FA → CJK
UNIFIED IDEOGRAPH-72C0 #
+
+2F926 ; 24735 ; MA # ( 𤜵 → 𤜵 ) CJK COMPATIBILITY IDEOGRAPH-2F926 →
CJK UNIFIED IDEOGRAPH-24735 #
+
+F92B ; 72FC ; MA # ( 狼 → 狼 ) CJK COMPATIBILITY IDEOGRAPH-F92B → CJK
UNIFIED IDEOGRAPH-72FC #
+
+FA16 ; 732A ; MA # ( 猪 → 猪 ) CJK COMPATIBILITY IDEOGRAPH-FA16 → CJK
UNIFIED IDEOGRAPH-732A #
+FAA0 ; 732A ; MA # ( 猪 → 猪 ) CJK COMPATIBILITY IDEOGRAPH-FAA0 → CJK
UNIFIED IDEOGRAPH-732A #
+
+2F927 ; 24814 ; MA # ( 𤠔 → 𤠔 ) CJK COMPATIBILITY IDEOGRAPH-2F927 →
CJK UNIFIED IDEOGRAPH-24814 #
+
+F9A7 ; 7375 ; MA # ( 獵 → 獵 ) CJK COMPATIBILITY IDEOGRAPH-F9A7 → CJK
UNIFIED IDEOGRAPH-7375 #
+
+2F928 ; 737A ; MA # ( 獺 → 獺 ) CJK COMPATIBILITY IDEOGRAPH-2F928 →
CJK UNIFIED IDEOGRAPH-737A #
+
+2F5E ; 7384 ; MA #* ( ⽞ → 玄 ) KANGXI RADICAL PROFOUND → CJK UNIFIED
IDEOGRAPH-7384 #
+
+F961 ; 7387 ; MA # ( 率 → 率 ) CJK COMPATIBILITY IDEOGRAPH-F961 → CJK
UNIFIED IDEOGRAPH-7387 #
+F9DB ; 7387 ; MA # ( 率 → 率 ) CJK COMPATIBILITY IDEOGRAPH-F9DB → CJK
UNIFIED IDEOGRAPH-7387 #
+
+2F5F ; 7389 ; MA #* ( ⽟ → 玉 ) KANGXI RADICAL JADE → CJK UNIFIED
IDEOGRAPH-7389 #
+
+2F929 ; 738B ; MA # ( 王 → 王 ) CJK COMPATIBILITY IDEOGRAPH-2F929 →
CJK UNIFIED IDEOGRAPH-738B #
+
+2F92A ; 3EAC ; MA # ( 㺬 → 㺬 ) CJK COMPATIBILITY IDEOGRAPH-2F92A →
CJK UNIFIED IDEOGRAPH-3EAC #
+
+2F92B ; 73A5 ; MA # ( 玥 → 玥 ) CJK COMPATIBILITY IDEOGRAPH-2F92B →
CJK UNIFIED IDEOGRAPH-73A5 #
+
+F9AD ; 73B2 ; MA # ( 玲 → 玲 ) CJK COMPATIBILITY IDEOGRAPH-F9AD → CJK
UNIFIED IDEOGRAPH-73B2 #
+
+2F92C ; 3EB8 ; MA # ( 㺸 → 㺸 ) CJK COMPATIBILITY IDEOGRAPH-2F92C →
CJK UNIFIED IDEOGRAPH-3EB8 #
+2F92D ; 3EB8 ; MA # ( 㺸 → 㺸 ) CJK COMPATIBILITY IDEOGRAPH-2F92D →
CJK UNIFIED IDEOGRAPH-3EB8 #
+
+F917 ; 73DE ; MA # ( 珞 → 珞 ) CJK COMPATIBILITY IDEOGRAPH-F917 → CJK
UNIFIED IDEOGRAPH-73DE #
+
+F9CC ; 7409 ; MA # ( 琉 → 琉 ) CJK COMPATIBILITY IDEOGRAPH-F9CC → CJK
UNIFIED IDEOGRAPH-7409 #
+
+F9E4 ; 7406 ; MA # ( 理 → 理 ) CJK COMPATIBILITY IDEOGRAPH-F9E4 → CJK
UNIFIED IDEOGRAPH-7406 #
+
+FA4A ; 7422 ; MA # ( 琢 → 琢 ) CJK COMPATIBILITY IDEOGRAPH-FA4A → CJK
UNIFIED IDEOGRAPH-7422 #
+
+2F92E ; 7447 ; MA # ( 瑇 → 瑇 ) CJK COMPATIBILITY IDEOGRAPH-2F92E →
CJK UNIFIED IDEOGRAPH-7447 #
+
+2F92F ; 745C ; MA # ( 瑜 → 瑜 ) CJK COMPATIBILITY IDEOGRAPH-2F92F →
CJK UNIFIED IDEOGRAPH-745C #
+
+F9AE ; 7469 ; MA # ( 瑩 → 瑩 ) CJK COMPATIBILITY IDEOGRAPH-F9AE → CJK
UNIFIED IDEOGRAPH-7469 #
+
+FAA1 ; 7471 ; MA # ( 瑱 → 瑱 ) CJK COMPATIBILITY IDEOGRAPH-FAA1 → CJK
UNIFIED IDEOGRAPH-7471 #
+2F930 ; 7471 ; MA # ( 瑱 → 瑱 ) CJK COMPATIBILITY IDEOGRAPH-2F930 →
CJK UNIFIED IDEOGRAPH-7471 #
+
+2F931 ; 7485 ; MA # ( 璅 → 璅 ) CJK COMPATIBILITY IDEOGRAPH-2F931 →
CJK UNIFIED IDEOGRAPH-7485 #
+
+F994 ; 7489 ; MA # ( 璉 → 璉 ) CJK COMPATIBILITY IDEOGRAPH-F994 → CJK
UNIFIED IDEOGRAPH-7489 #
+
+F9EF ; 7498 ; MA # ( 璘 → 璘 ) CJK COMPATIBILITY IDEOGRAPH-F9EF → CJK
UNIFIED IDEOGRAPH-7498 #
+
+2F932 ; 74CA ; MA # ( 瓊 → 瓊 ) CJK COMPATIBILITY IDEOGRAPH-2F932 →
CJK UNIFIED IDEOGRAPH-74CA #
+
+2F60 ; 74DC ; MA #* ( ⽠ → 瓜 ) KANGXI RADICAL MELON → CJK UNIFIED
IDEOGRAPH-74DC #
+
+2F61 ; 74E6 ; MA #* ( ⽡ → 瓦 ) KANGXI RADICAL TILE → CJK UNIFIED
IDEOGRAPH-74E6 #
+
+2F933 ; 3F1B ; MA # ( 㼛 → 㼛 ) CJK COMPATIBILITY IDEOGRAPH-2F933 →
CJK UNIFIED IDEOGRAPH-3F1B #
+
+FAA2 ; 7506 ; MA # ( 甆 → 甆 ) CJK COMPATIBILITY IDEOGRAPH-FAA2 → CJK
UNIFIED IDEOGRAPH-7506 #
+
+2F62 ; 7518 ; MA #* ( ⽢ → 甘 ) KANGXI RADICAL SWEET → CJK UNIFIED
IDEOGRAPH-7518 #
+
+2F63 ; 751F ; MA #* ( ⽣ → 生 ) KANGXI RADICAL LIFE → CJK UNIFIED
IDEOGRAPH-751F #
+
+2F934 ; 7524 ; MA # ( 甤 → 甤 ) CJK COMPATIBILITY IDEOGRAPH-2F934 →
CJK UNIFIED IDEOGRAPH-7524 #
+
+2F64 ; 7528 ; MA #* ( ⽤ → 用 ) KANGXI RADICAL USE → CJK UNIFIED
IDEOGRAPH-7528 #
+
+2F65 ; 7530 ; MA #* ( ⽥ → 田 ) KANGXI RADICAL FIELD → CJK UNIFIED
IDEOGRAPH-7530 #
+
+FAA3 ; 753B ; MA # ( 画 → 画 ) CJK COMPATIBILITY IDEOGRAPH-FAA3 → CJK
UNIFIED IDEOGRAPH-753B #
+
+2F936 ; 753E ; MA # ( 甾 → 甾 ) CJK COMPATIBILITY IDEOGRAPH-2F936 →
CJK UNIFIED IDEOGRAPH-753E #
+
+2F935 ; 24C36 ; MA # ( 𤰶 → 𤰶 ) CJK COMPATIBILITY IDEOGRAPH-2F935 →
CJK UNIFIED IDEOGRAPH-24C36 #
+
+F9CD ; 7559 ; MA # ( 留 → 留 ) CJK COMPATIBILITY IDEOGRAPH-F9CD → CJK
UNIFIED IDEOGRAPH-7559 #
+
+F976 ; 7565 ; MA # ( 略 → 略 ) CJK COMPATIBILITY IDEOGRAPH-F976 → CJK
UNIFIED IDEOGRAPH-7565 #
+
+F962 ; 7570 ; MA # ( 異 → 異 ) CJK COMPATIBILITY IDEOGRAPH-F962 → CJK
UNIFIED IDEOGRAPH-7570 #
+2F938 ; 7570 ; MA # ( 異 → 異 ) CJK COMPATIBILITY IDEOGRAPH-2F938 →
CJK UNIFIED IDEOGRAPH-7570 #
+
+2F937 ; 24C92 ; MA # ( 𤲒 → 𤲒 ) CJK COMPATIBILITY IDEOGRAPH-2F937 →
CJK UNIFIED IDEOGRAPH-24C92 #
+
+2F66 ; 758B ; MA #* ( ⽦ → 疋 ) KANGXI RADICAL BOLT OF CLOTH → CJK UNIFIED
IDEOGRAPH-758B #
+
+2F67 ; 7592 ; MA #* ( ⽧ → 疒 ) KANGXI RADICAL SICKNESS → CJK UNIFIED
IDEOGRAPH-7592 #
+
+F9E5 ; 75E2 ; MA # ( 痢 → 痢 ) CJK COMPATIBILITY IDEOGRAPH-F9E5 → CJK
UNIFIED IDEOGRAPH-75E2 #
+
+2F93A ; 7610 ; MA # ( 瘐 → 瘐 ) CJK COMPATIBILITY IDEOGRAPH-2F93A →
CJK UNIFIED IDEOGRAPH-7610 #
+
+FAA5 ; 761F ; MA # ( 瘟 → 瘟 ) CJK COMPATIBILITY IDEOGRAPH-FAA5 → CJK
UNIFIED IDEOGRAPH-761F #
+
+FAA4 ; 761D ; MA # ( 瘝 → 瘝 ) CJK COMPATIBILITY IDEOGRAPH-FAA4 → CJK
UNIFIED IDEOGRAPH-761D #
+
+F9C1 ; 7642 ; MA # ( 療 → 療 ) CJK COMPATIBILITY IDEOGRAPH-F9C1 → CJK
UNIFIED IDEOGRAPH-7642 #
+
+F90E ; 7669 ; MA # ( 癩 → 癩 ) CJK COMPATIBILITY IDEOGRAPH-F90E → CJK
UNIFIED IDEOGRAPH-7669 #
+
+2F68 ; 7676 ; MA #* ( ⽨ → 癶 ) KANGXI RADICAL DOTTED TENT → CJK UNIFIED
IDEOGRAPH-7676 #
+
+2F69 ; 767D ; MA #* ( ⽩ → 白 ) KANGXI RADICAL WHITE → CJK UNIFIED
IDEOGRAPH-767D #
+
+2F93B ; 24FA1 ; MA # ( 𤾡 → 𤾡 ) CJK COMPATIBILITY IDEOGRAPH-2F93B →
CJK UNIFIED IDEOGRAPH-24FA1 #
+
+2F93C ; 24FB8 ; MA # ( 𤾸 → 𤾸 ) CJK COMPATIBILITY IDEOGRAPH-2F93C →
CJK UNIFIED IDEOGRAPH-24FB8 #
+
+2F6A ; 76AE ; MA #* ( ⽪ → 皮 ) KANGXI RADICAL SKIN → CJK UNIFIED
IDEOGRAPH-76AE #
+
+2F6B ; 76BF ; MA #* ( ⽫ → 皿 ) KANGXI RADICAL DISH → CJK UNIFIED
IDEOGRAPH-76BF #
+
+2F93D ; 25044 ; MA # ( 𥁄 → 𥁄 ) CJK COMPATIBILITY IDEOGRAPH-2F93D →
CJK UNIFIED IDEOGRAPH-25044 #
+
+2F93E ; 3FFC ; MA # ( 㿼 → 㿼 ) CJK COMPATIBILITY IDEOGRAPH-2F93E →
CJK UNIFIED IDEOGRAPH-3FFC #
+
+FA17 ; 76CA ; MA # ( 益 → 益 ) CJK COMPATIBILITY IDEOGRAPH-FA17 → CJK
UNIFIED IDEOGRAPH-76CA #
+FAA6 ; 76CA ; MA # ( 益 → 益 ) CJK COMPATIBILITY IDEOGRAPH-FAA6 → CJK
UNIFIED IDEOGRAPH-76CA #
+
+FAA7 ; 76DB ; MA # ( 盛 → 盛 ) CJK COMPATIBILITY IDEOGRAPH-FAA7 → CJK
UNIFIED IDEOGRAPH-76DB #
+
+F933 ; 76E7 ; MA # ( 盧 → 盧 ) CJK COMPATIBILITY IDEOGRAPH-F933 → CJK
UNIFIED IDEOGRAPH-76E7 #
+
+2F93F ; 4008 ; MA # ( 䀈 → 䀈 ) CJK COMPATIBILITY IDEOGRAPH-2F93F →
CJK UNIFIED IDEOGRAPH-4008 #
+
+2F6C ; 76EE ; MA #* ( ⽬ → 目 ) KANGXI RADICAL EYE → CJK UNIFIED
IDEOGRAPH-76EE #
+
+FAA8 ; 76F4 ; MA # ( 直 → 直 ) CJK COMPATIBILITY IDEOGRAPH-FAA8 → CJK
UNIFIED IDEOGRAPH-76F4 #
+2F940 ; 76F4 ; MA # ( 直 → 直 ) CJK COMPATIBILITY IDEOGRAPH-2F940 →
CJK UNIFIED IDEOGRAPH-76F4 #
+
+2F942 ; 250F2 ; MA # ( 𥃲 → 𥃲 ) CJK COMPATIBILITY IDEOGRAPH-2F942 →
CJK UNIFIED IDEOGRAPH-250F2 #
+
+2F941 ; 250F3 ; MA # ( 𥃳 → 𥃳 ) CJK COMPATIBILITY IDEOGRAPH-2F941 →
CJK UNIFIED IDEOGRAPH-250F3 #
+
+F96D ; 7701 ; MA # ( 省 → 省 ) CJK COMPATIBILITY IDEOGRAPH-F96D → CJK
UNIFIED IDEOGRAPH-7701 #
+
+FAD3 ; 4018 ; MA # ( 䀘 → 䀘 ) CJK COMPATIBILITY IDEOGRAPH-FAD3 → CJK
UNIFIED IDEOGRAPH-4018 #
+
+2F943 ; 25119 ; MA # ( 𥄙 → 𥄙 ) CJK COMPATIBILITY IDEOGRAPH-2F943 →
CJK UNIFIED IDEOGRAPH-25119 #
+
+2F945 ; 771E ; MA # ( 眞 → 眞 ) CJK COMPATIBILITY IDEOGRAPH-2F945 →
CJK UNIFIED IDEOGRAPH-771E #
+
+2F946 ; 771F ; MA # ( 真 → 真 ) CJK COMPATIBILITY IDEOGRAPH-2F946 →
CJK UNIFIED IDEOGRAPH-771F #
+2F947 ; 771F ; MA # ( 真 → 真 ) CJK COMPATIBILITY IDEOGRAPH-2F947 →
CJK UNIFIED IDEOGRAPH-771F #
+
+2F944 ; 25133 ; MA # ( 𥄳 → 𥄳 ) CJK COMPATIBILITY IDEOGRAPH-2F944 →
CJK UNIFIED IDEOGRAPH-25133 #
+
+FAAA ; 7740 ; MA # ( 着 → 着 ) CJK COMPATIBILITY IDEOGRAPH-FAAA → CJK
UNIFIED IDEOGRAPH-7740 #
+
+FAA9 ; 774A ; MA # ( 睊 → 睊 ) CJK COMPATIBILITY IDEOGRAPH-FAA9 → CJK
UNIFIED IDEOGRAPH-774A #
+2F948 ; 774A ; MA # ( 睊 → 睊 ) CJK COMPATIBILITY IDEOGRAPH-2F948 →
CJK UNIFIED IDEOGRAPH-774A #
+
+9FC3 ; 4039 ; MA # ( 鿃 → 䀹 ) CJK UNIFIED IDEOGRAPH-9FC3 → CJK UNIFIED
IDEOGRAPH-4039 # →䀹→
+FAD4 ; 4039 ; MA # ( 䀹 → 䀹 ) CJK COMPATIBILITY IDEOGRAPH-FAD4 → CJK
UNIFIED IDEOGRAPH-4039 #
+2F949 ; 4039 ; MA # ( 䀹 → 䀹 ) CJK COMPATIBILITY IDEOGRAPH-2F949 →
CJK UNIFIED IDEOGRAPH-4039 #
+
+6663 ; 403F ; MA # ( 晣 → 䀿 ) CJK UNIFIED IDEOGRAPH-6663 → CJK UNIFIED
IDEOGRAPH-403F #
+
+2F94B ; 4046 ; MA # ( 䁆 → 䁆 ) CJK COMPATIBILITY IDEOGRAPH-2F94B →
CJK UNIFIED IDEOGRAPH-4046 #
+
+2F94A ; 778B ; MA # ( 瞋 → 瞋 ) CJK COMPATIBILITY IDEOGRAPH-2F94A →
CJK UNIFIED IDEOGRAPH-778B #
+
+FAD5 ; 25249 ; MA # ( 𥉉 → 𥉉 ) CJK COMPATIBILITY IDEOGRAPH-FAD5 → CJK
UNIFIED IDEOGRAPH-25249 #
+
+FA9D ; 77A7 ; MA # ( 瞧 → 瞧 ) CJK COMPATIBILITY IDEOGRAPH-FA9D → CJK
UNIFIED IDEOGRAPH-77A7 #
+
+2F6D ; 77DB ; MA #* ( ⽭ → 矛 ) KANGXI RADICAL SPEAR → CJK UNIFIED
IDEOGRAPH-77DB #
+
+2F6E ; 77E2 ; MA #* ( ⽮ → 矢 ) KANGXI RADICAL ARROW → CJK UNIFIED
IDEOGRAPH-77E2 #
+
+2F6F ; 77F3 ; MA #* ( ⽯ → 石 ) KANGXI RADICAL STONE → CJK UNIFIED
IDEOGRAPH-77F3 #
+
+2F94C ; 4096 ; MA # ( 䂖 → 䂖 ) CJK COMPATIBILITY IDEOGRAPH-2F94C →
CJK UNIFIED IDEOGRAPH-4096 #
+
+2F94D ; 2541D ; MA # ( 𥐝 → 𥐝 ) CJK COMPATIBILITY IDEOGRAPH-2F94D →
CJK UNIFIED IDEOGRAPH-2541D #
+
+784F ; 7814 ; MA # ( 硏 → 研 ) CJK UNIFIED IDEOGRAPH-784F → CJK UNIFIED
IDEOGRAPH-7814 #
+
+2F94E ; 784E ; MA # ( 硎 → 硎 ) CJK COMPATIBILITY IDEOGRAPH-2F94E →
CJK UNIFIED IDEOGRAPH-784E #
+
+F9CE ; 786B ; MA # ( 硫 → 硫 ) CJK COMPATIBILITY IDEOGRAPH-F9CE → CJK
UNIFIED IDEOGRAPH-786B #
+
+F93B ; 788C ; MA # ( 碌 → 碌 ) CJK COMPATIBILITY IDEOGRAPH-F93B → CJK
UNIFIED IDEOGRAPH-788C #
+2F94F ; 788C ; MA # ( 碌 → 碌 ) CJK COMPATIBILITY IDEOGRAPH-2F94F →
CJK UNIFIED IDEOGRAPH-788C #
+
+FA4B ; 7891 ; MA # ( 碑 → 碑 ) CJK COMPATIBILITY IDEOGRAPH-FA4B → CJK
UNIFIED IDEOGRAPH-7891 #
+
+F947 ; 78CA ; MA # ( 磊 → 磊 ) CJK COMPATIBILITY IDEOGRAPH-F947 → CJK
UNIFIED IDEOGRAPH-78CA #
+
+FAAB ; 78CC ; MA # ( 磌 → 磌 ) CJK COMPATIBILITY IDEOGRAPH-FAAB → CJK
UNIFIED IDEOGRAPH-78CC #
+2F950 ; 78CC ; MA # ( 磌 → 磌 ) CJK COMPATIBILITY IDEOGRAPH-2F950 →
CJK UNIFIED IDEOGRAPH-78CC #
+
+F964 ; 78FB ; MA # ( 磻 → 磻 ) CJK COMPATIBILITY IDEOGRAPH-F964 → CJK
UNIFIED IDEOGRAPH-78FB #
+
+2F951 ; 40E3 ; MA # ( 䃣 → 䃣 ) CJK COMPATIBILITY IDEOGRAPH-2F951 →
CJK UNIFIED IDEOGRAPH-40E3 #
+
+F985 ; 792A ; MA # ( 礪 → 礪 ) CJK COMPATIBILITY IDEOGRAPH-F985 → CJK
UNIFIED IDEOGRAPH-792A #
+
+2F70 ; 793A ; MA #* ( ⽰ → 示 ) KANGXI RADICAL SPIRIT → CJK UNIFIED
IDEOGRAPH-793A #
+
+2EAD ; 793B ; MA #* ( ⺭ → 礻 ) CJK RADICAL SPIRIT TWO → CJK UNIFIED
IDEOGRAPH-793B #
+
+FA18 ; 793C ; MA # ( 礼 → 礼 ) CJK COMPATIBILITY IDEOGRAPH-FA18 → CJK
UNIFIED IDEOGRAPH-793C #
+
+FA4C ; 793E ; MA # ( 社 → 社 ) CJK COMPATIBILITY IDEOGRAPH-FA4C → CJK
UNIFIED IDEOGRAPH-793E #
+
+FA4E ; 7948 ; MA # ( 祈 → 祈 ) CJK COMPATIBILITY IDEOGRAPH-FA4E → CJK
UNIFIED IDEOGRAPH-7948 #
+
+FA4D ; 7949 ; MA # ( 祉 → 祉 ) CJK COMPATIBILITY IDEOGRAPH-FA4D → CJK
UNIFIED IDEOGRAPH-7949 #
+
+2F952 ; 25626 ; MA # ( 𥘦 → 𥘦 ) CJK COMPATIBILITY IDEOGRAPH-2F952 →
CJK UNIFIED IDEOGRAPH-25626 #
+
+FA4F ; 7950 ; MA # ( 祐 → 祐 ) CJK COMPATIBILITY IDEOGRAPH-FA4F → CJK
UNIFIED IDEOGRAPH-7950 #
+
+FA50 ; 7956 ; MA # ( 祖 → 祖 ) CJK COMPATIBILITY IDEOGRAPH-FA50 → CJK
UNIFIED IDEOGRAPH-7956 #
+2F953 ; 7956 ; MA # ( 祖 → 祖 ) CJK COMPATIBILITY IDEOGRAPH-2F953 →
CJK UNIFIED IDEOGRAPH-7956 #
+
+FA51 ; 795D ; MA # ( 祝 → 祝 ) CJK COMPATIBILITY IDEOGRAPH-FA51 → CJK
UNIFIED IDEOGRAPH-795D #
+
+FA19 ; 795E ; MA # ( 神 → 神 ) CJK COMPATIBILITY IDEOGRAPH-FA19 → CJK
UNIFIED IDEOGRAPH-795E #
+
+FA1A ; 7965 ; MA # ( 祥 → 祥 ) CJK COMPATIBILITY IDEOGRAPH-FA1A → CJK
UNIFIED IDEOGRAPH-7965 #
+
+FA61 ; 8996 ; MA # ( 視 → 視 ) CJK COMPATIBILITY IDEOGRAPH-FA61 → CJK
UNIFIED IDEOGRAPH-8996 #
+FAB8 ; 8996 ; MA # ( 視 → 視 ) CJK COMPATIBILITY IDEOGRAPH-FAB8 → CJK
UNIFIED IDEOGRAPH-8996 #
+
+F93C ; 797F ; MA # ( 祿 → 祿 ) CJK COMPATIBILITY IDEOGRAPH-F93C → CJK
UNIFIED IDEOGRAPH-797F #
+
+2F954 ; 2569A ; MA # ( 𥚚 → 𥚚 ) CJK COMPATIBILITY IDEOGRAPH-2F954 →
CJK UNIFIED IDEOGRAPH-2569A #
+
+FA52 ; 798D ; MA # ( 禍 → 禍 ) CJK COMPATIBILITY IDEOGRAPH-FA52 → CJK
UNIFIED IDEOGRAPH-798D #
+
+FA53 ; 798E ; MA # ( 禎 → 禎 ) CJK COMPATIBILITY IDEOGRAPH-FA53 → CJK
UNIFIED IDEOGRAPH-798E #
+
+FA1B ; 798F ; MA # ( 福 → 福 ) CJK COMPATIBILITY IDEOGRAPH-FA1B → CJK
UNIFIED IDEOGRAPH-798F #
+2F956 ; 798F ; MA # ( 福 → 福 ) CJK COMPATIBILITY IDEOGRAPH-2F956 →
CJK UNIFIED IDEOGRAPH-798F #
+
+2F955 ; 256C5 ; MA # ( 𥛅 → 𥛅 ) CJK COMPATIBILITY IDEOGRAPH-2F955 →
CJK UNIFIED IDEOGRAPH-256C5 #
+
+F9B6 ; 79AE ; MA # ( 禮 → 禮 ) CJK COMPATIBILITY IDEOGRAPH-F9B6 → CJK
UNIFIED IDEOGRAPH-79AE #
+
+2F71 ; 79B8 ; MA #* ( ⽱ → 禸 ) KANGXI RADICAL TRACK → CJK UNIFIED
IDEOGRAPH-79B8 #
+
+2F72 ; 79BE ; MA #* ( ⽲ → 禾 ) KANGXI RADICAL GRAIN → CJK UNIFIED
IDEOGRAPH-79BE #
+
+F995 ; 79CA ; MA # ( 秊 → 秊 ) CJK COMPATIBILITY IDEOGRAPH-F995 → CJK
UNIFIED IDEOGRAPH-79CA #
+
+2F958 ; 412F ; MA # ( 䄯 → 䄯 ) CJK COMPATIBILITY IDEOGRAPH-2F958 →
CJK UNIFIED IDEOGRAPH-412F #
+
+2F957 ; 79EB ; MA # ( 秫 → 秫 ) CJK COMPATIBILITY IDEOGRAPH-2F957 →
CJK UNIFIED IDEOGRAPH-79EB #
+
+F956 ; 7A1C ; MA # ( 稜 → 稜 ) CJK COMPATIBILITY IDEOGRAPH-F956 → CJK
UNIFIED IDEOGRAPH-7A1C #
+
+2F95A ; 7A4A ; MA # ( 穊 → 穊 ) CJK COMPATIBILITY IDEOGRAPH-2F95A →
CJK UNIFIED IDEOGRAPH-7A4A #
+
+FA54 ; 7A40 ; MA # ( 穀 → 穀 ) CJK COMPATIBILITY IDEOGRAPH-FA54 → CJK
UNIFIED IDEOGRAPH-7A40 #
+2F959 ; 7A40 ; MA # ( 穀 → 穀 ) CJK COMPATIBILITY IDEOGRAPH-2F959 →
CJK UNIFIED IDEOGRAPH-7A40 #
+
+2F95B ; 7A4F ; MA # ( 穏 → 穏 ) CJK COMPATIBILITY IDEOGRAPH-2F95B →
CJK UNIFIED IDEOGRAPH-7A4F #
+
+2F73 ; 7A74 ; MA #* ( ⽳ → 穴 ) KANGXI RADICAL CAVE → CJK UNIFIED
IDEOGRAPH-7A74 #
+
+FA55 ; 7A81 ; MA # ( 突 → 突 ) CJK COMPATIBILITY IDEOGRAPH-FA55 → CJK
UNIFIED IDEOGRAPH-7A81 #
+
+2F95C ; 2597C ; MA # ( 𥥼 → 𥥼 ) CJK COMPATIBILITY IDEOGRAPH-2F95C →
CJK UNIFIED IDEOGRAPH-2597C #
+
+FAAC ; 7AB1 ; MA # ( 窱 → 窱 ) CJK COMPATIBILITY IDEOGRAPH-FAAC → CJK
UNIFIED IDEOGRAPH-7AB1 #
+
+F9F7 ; 7ACB ; MA # ( 立 → 立 ) CJK COMPATIBILITY IDEOGRAPH-F9F7 → CJK
UNIFIED IDEOGRAPH-7ACB #
+2F74 ; 7ACB ; MA #* ( ⽴ → 立 ) KANGXI RADICAL STAND → CJK UNIFIED
IDEOGRAPH-7ACB #
+
+2EEF ; 7ADC ; MA #* ( ⻯ → 竜 ) CJK RADICAL J-SIMPLIFIED DRAGON → CJK
UNIFIED IDEOGRAPH-7ADC #
+
+2F95D ; 25AA7 ; MA # ( 𥪧 → 𥪧 ) CJK COMPATIBILITY IDEOGRAPH-2F95D →
CJK UNIFIED IDEOGRAPH-25AA7 #
+2F95E ; 25AA7 ; MA # ( 𥪧 → 𥪧 ) CJK COMPATIBILITY IDEOGRAPH-2F95E →
CJK UNIFIED IDEOGRAPH-25AA7 #
+
+2F95F ; 7AEE ; MA # ( 竮 → 竮 ) CJK COMPATIBILITY IDEOGRAPH-2F95F →
CJK UNIFIED IDEOGRAPH-7AEE #
+
+2F75 ; 7AF9 ; MA #* ( ⽵ → 竹 ) KANGXI RADICAL BAMBOO → CJK UNIFIED
IDEOGRAPH-7AF9 #
+
+F9F8 ; 7B20 ; MA # ( 笠 → 笠 ) CJK COMPATIBILITY IDEOGRAPH-F9F8 → CJK
UNIFIED IDEOGRAPH-7B20 #
+
+FA56 ; 7BC0 ; MA # ( 節 → 節 ) CJK COMPATIBILITY IDEOGRAPH-FA56 → CJK
UNIFIED IDEOGRAPH-7BC0 #
+FAAD ; 7BC0 ; MA # ( 節 → 節 ) CJK COMPATIBILITY IDEOGRAPH-FAAD → CJK
UNIFIED IDEOGRAPH-7BC0 #
+
+2F960 ; 4202 ; MA # ( 䈂 → 䈂 ) CJK COMPATIBILITY IDEOGRAPH-2F960 →
CJK UNIFIED IDEOGRAPH-4202 #
+
+2F961 ; 25BAB ; MA # ( 𥮫 → 𥮫 ) CJK COMPATIBILITY IDEOGRAPH-2F961 →
CJK UNIFIED IDEOGRAPH-25BAB #
+
+2F962 ; 7BC6 ; MA # ( 篆 → 篆 ) CJK COMPATIBILITY IDEOGRAPH-2F962 →
CJK UNIFIED IDEOGRAPH-7BC6 #
+
+2F964 ; 4227 ; MA # ( 䈧 → 䈧 ) CJK COMPATIBILITY IDEOGRAPH-2F964 →
CJK UNIFIED IDEOGRAPH-4227 #
+
+2F963 ; 7BC9 ; MA # ( 築 → 築 ) CJK COMPATIBILITY IDEOGRAPH-2F963 →
CJK UNIFIED IDEOGRAPH-7BC9 #
+
+2F965 ; 25C80 ; MA # ( 𥲀 → 𥲀 ) CJK COMPATIBILITY IDEOGRAPH-2F965 →
CJK UNIFIED IDEOGRAPH-25C80 #
+
+FAD6 ; 25CD0 ; MA # ( 𥳐 → 𥳐 ) CJK COMPATIBILITY IDEOGRAPH-FAD6 → CJK
UNIFIED IDEOGRAPH-25CD0 #
+
+F9A6 ; 7C3E ; MA # ( 簾 → 簾 ) CJK COMPATIBILITY IDEOGRAPH-F9A6 → CJK
UNIFIED IDEOGRAPH-7C3E #
+
+F944 ; 7C60 ; MA # ( 籠 → 籠 ) CJK COMPATIBILITY IDEOGRAPH-F944 → CJK
UNIFIED IDEOGRAPH-7C60 #
+
+2F76 ; 7C73 ; MA #* ( ⽶ → 米 ) KANGXI RADICAL RICE → CJK UNIFIED
IDEOGRAPH-7C73 #
+
+FAAE ; 7C7B ; MA # ( 类 → 类 ) CJK COMPATIBILITY IDEOGRAPH-FAAE → CJK
UNIFIED IDEOGRAPH-7C7B #
+
+F9F9 ; 7C92 ; MA # ( 粒 → 粒 ) CJK COMPATIBILITY IDEOGRAPH-F9F9 → CJK
UNIFIED IDEOGRAPH-7C92 #
+
+FA1D ; 7CBE ; MA # ( 精 → 精 ) CJK COMPATIBILITY IDEOGRAPH-FA1D → CJK
UNIFIED IDEOGRAPH-7CBE #
+
+2F966 ; 7CD2 ; MA # ( 糒 → 糒 ) CJK COMPATIBILITY IDEOGRAPH-2F966 →
CJK UNIFIED IDEOGRAPH-7CD2 #
+
+FA03 ; 7CD6 ; MA # ( 糖 → 糖 ) CJK COMPATIBILITY IDEOGRAPH-FA03 → CJK
UNIFIED IDEOGRAPH-7CD6 #
+
+2F968 ; 7CE8 ; MA # ( 糨 → 糨 ) CJK COMPATIBILITY IDEOGRAPH-2F968 →
CJK UNIFIED IDEOGRAPH-7CE8 #
+
+2F967 ; 42A0 ; MA # ( 䊠 → 䊠 ) CJK COMPATIBILITY IDEOGRAPH-2F967 →
CJK UNIFIED IDEOGRAPH-42A0 #
+
+2F969 ; 7CE3 ; MA # ( 糣 → 糣 ) CJK COMPATIBILITY IDEOGRAPH-2F969 →
CJK UNIFIED IDEOGRAPH-7CE3 #
+
+F97B ; 7CE7 ; MA # ( 糧 → 糧 ) CJK COMPATIBILITY IDEOGRAPH-F97B → CJK
UNIFIED IDEOGRAPH-7CE7 #
+
+2F77 ; 7CF8 ; MA #* ( ⽷ → 糸 ) KANGXI RADICAL SILK → CJK UNIFIED
IDEOGRAPH-7CF8 #
+
+2EAF ; 7CF9 ; MA #* ( ⺯ → 糹 ) CJK RADICAL SILK → CJK UNIFIED
IDEOGRAPH-7CF9 #
+
+2F96B ; 25F86 ; MA # ( 𥾆 → 𥾆 ) CJK COMPATIBILITY IDEOGRAPH-2F96B →
CJK UNIFIED IDEOGRAPH-25F86 #
+
+2F96A ; 7D00 ; MA # ( 紀 → 紀 ) CJK COMPATIBILITY IDEOGRAPH-2F96A →
CJK UNIFIED IDEOGRAPH-7D00 #
+
+F9CF ; 7D10 ; MA # ( 紐 → 紐 ) CJK COMPATIBILITY IDEOGRAPH-F9CF → CJK
UNIFIED IDEOGRAPH-7D10 #
+
+F96A ; 7D22 ; MA # ( 索 → 索 ) CJK COMPATIBILITY IDEOGRAPH-F96A → CJK
UNIFIED IDEOGRAPH-7D22 #
+
+F94F ; 7D2F ; MA # ( 累 → 累 ) CJK COMPATIBILITY IDEOGRAPH-F94F → CJK
UNIFIED IDEOGRAPH-7D2F #
+
+7D76 ; 7D55 ; MA # ( 絶 → 絕 ) CJK UNIFIED IDEOGRAPH-7D76 → CJK UNIFIED
IDEOGRAPH-7D55 #
+
+2F96C ; 7D63 ; MA # ( 絣 → 絣 ) CJK COMPATIBILITY IDEOGRAPH-2F96C →
CJK UNIFIED IDEOGRAPH-7D63 #
+
+FAAF ; 7D5B ; MA # ( 絛 → 絛 ) CJK COMPATIBILITY IDEOGRAPH-FAAF → CJK
UNIFIED IDEOGRAPH-7D5B #
+
+F93D ; 7DA0 ; MA # ( 綠 → 綠 ) CJK COMPATIBILITY IDEOGRAPH-F93D → CJK
UNIFIED IDEOGRAPH-7DA0 #
+
+F957 ; 7DBE ; MA # ( 綾 → 綾 ) CJK COMPATIBILITY IDEOGRAPH-F957 → CJK
UNIFIED IDEOGRAPH-7DBE #
+
+2F96E ; 7DC7 ; MA # ( 緇 → 緇 ) CJK COMPATIBILITY IDEOGRAPH-2F96E →
CJK UNIFIED IDEOGRAPH-7DC7 #
+
+F996 ; 7DF4 ; MA # ( 練 → 練 ) CJK COMPATIBILITY IDEOGRAPH-F996 → CJK
UNIFIED IDEOGRAPH-7DF4 #
+FA57 ; 7DF4 ; MA # ( 練 → 練 ) CJK COMPATIBILITY IDEOGRAPH-FA57 → CJK
UNIFIED IDEOGRAPH-7DF4 #
+FAB0 ; 7DF4 ; MA # ( 練 → 練 ) CJK COMPATIBILITY IDEOGRAPH-FAB0 → CJK
UNIFIED IDEOGRAPH-7DF4 #
+
+2F96F ; 7E02 ; MA # ( 縂 → 縂 ) CJK COMPATIBILITY IDEOGRAPH-2F96F →
CJK UNIFIED IDEOGRAPH-7E02 #
+
+2F96D ; 4301 ; MA # ( 䌁 → 䌁 ) CJK COMPATIBILITY IDEOGRAPH-2F96D →
CJK UNIFIED IDEOGRAPH-4301 #
+
+FA58 ; 7E09 ; MA # ( 縉 → 縉 ) CJK COMPATIBILITY IDEOGRAPH-FA58 → CJK
UNIFIED IDEOGRAPH-7E09 #
+
+F950 ; 7E37 ; MA # ( 縷 → 縷 ) CJK COMPATIBILITY IDEOGRAPH-F950 → CJK
UNIFIED IDEOGRAPH-7E37 #
+
+FA59 ; 7E41 ; MA # ( 繁 → 繁 ) CJK COMPATIBILITY IDEOGRAPH-FA59 → CJK
UNIFIED IDEOGRAPH-7E41 #
+
+2F970 ; 7E45 ; MA # ( 繅 → 繅 ) CJK COMPATIBILITY IDEOGRAPH-2F970 →
CJK UNIFIED IDEOGRAPH-7E45 #
+
+2F898 ; 261DA ; MA # ( 𦇚 → 𦇚 ) CJK COMPATIBILITY IDEOGRAPH-2F898 →
CJK UNIFIED IDEOGRAPH-261DA #
+
+2F971 ; 4334 ; MA # ( 䌴 → 䌴 ) CJK COMPATIBILITY IDEOGRAPH-2F971 →
CJK UNIFIED IDEOGRAPH-4334 #
+
+2F78 ; 7F36 ; MA #* ( ⽸ → 缶 ) KANGXI RADICAL JAR → CJK UNIFIED
IDEOGRAPH-7F36 #
+
+2F972 ; 26228 ; MA # ( 𦈨 → 𦈨 ) CJK COMPATIBILITY IDEOGRAPH-2F972 →
CJK UNIFIED IDEOGRAPH-26228 #
+
+FAB1 ; 7F3E ; MA # ( 缾 → 缾 ) CJK COMPATIBILITY IDEOGRAPH-FAB1 → CJK
UNIFIED IDEOGRAPH-7F3E #
+
+2F973 ; 26247 ; MA # ( 𦉇 → 𦉇 ) CJK COMPATIBILITY IDEOGRAPH-2F973 →
CJK UNIFIED IDEOGRAPH-26247 #
+
+2F79 ; 7F51 ; MA #* ( ⽹ → 网 ) KANGXI RADICAL NET → CJK UNIFIED
IDEOGRAPH-7F51 #
+
+2EAB ; 7F52 ; MA #* ( ⺫ → 罒 ) CJK RADICAL EYE → CJK UNIFIED
IDEOGRAPH-7F52 #
+2EB2 ; 7F52 ; MA #* ( ⺲ → 罒 ) CJK RADICAL NET TWO → CJK UNIFIED
IDEOGRAPH-7F52 #
+
+2EB1 ; 7F53 ; MA #* ( ⺱ → 罓 ) CJK RADICAL NET ONE → CJK UNIFIED
IDEOGRAPH-7F53 #
+
+2F974 ; 4359 ; MA # ( 䍙 → 䍙 ) CJK COMPATIBILITY IDEOGRAPH-2F974 →
CJK UNIFIED IDEOGRAPH-4359 #
+
+FA5A ; 7F72 ; MA # ( 署 → 署 ) CJK COMPATIBILITY IDEOGRAPH-FA5A → CJK
UNIFIED IDEOGRAPH-7F72 #
+
+2F975 ; 262D9 ; MA # ( 𦋙 → 𦋙 ) CJK COMPATIBILITY IDEOGRAPH-2F975 →
CJK UNIFIED IDEOGRAPH-262D9 #
+
+F9E6 ; 7F79 ; MA # ( 罹 → 罹 ) CJK COMPATIBILITY IDEOGRAPH-F9E6 → CJK
UNIFIED IDEOGRAPH-7F79 #
+
+2F976 ; 7F7A ; MA # ( 罺 → 罺 ) CJK COMPATIBILITY IDEOGRAPH-2F976 →
CJK UNIFIED IDEOGRAPH-7F7A #
+
+F90F ; 7F85 ; MA # ( 羅 → 羅 ) CJK COMPATIBILITY IDEOGRAPH-F90F → CJK
UNIFIED IDEOGRAPH-7F85 #
+
+2F977 ; 2633E ; MA # ( 𦌾 → 𦌾 ) CJK COMPATIBILITY IDEOGRAPH-2F977 →
CJK UNIFIED IDEOGRAPH-2633E #
+
+2F7A ; 7F8A ; MA #* ( ⽺ → 羊 ) KANGXI RADICAL SHEEP → CJK UNIFIED
IDEOGRAPH-7F8A #
+
+2F978 ; 7F95 ; MA # ( 羕 → 羕 ) CJK COMPATIBILITY IDEOGRAPH-2F978 →
CJK UNIFIED IDEOGRAPH-7F95 #
+
+F9AF ; 7F9A ; MA # ( 羚 → 羚 ) CJK COMPATIBILITY IDEOGRAPH-F9AF → CJK
UNIFIED IDEOGRAPH-7F9A #
+
+FA1E ; 7FBD ; MA # ( 羽 → 羽 ) CJK COMPATIBILITY IDEOGRAPH-FA1E → CJK
UNIFIED IDEOGRAPH-7FBD #
+2F7B ; 7FBD ; MA #* ( ⽻ → 羽 ) KANGXI RADICAL FEATHER → CJK UNIFIED
IDEOGRAPH-7FBD #
+
+2F979 ; 7FFA ; MA # ( 翺 → 翺 ) CJK COMPATIBILITY IDEOGRAPH-2F979 →
CJK UNIFIED IDEOGRAPH-7FFA #
+
+F934 ; 8001 ; MA # ( 老 → 老 ) CJK COMPATIBILITY IDEOGRAPH-F934 → CJK
UNIFIED IDEOGRAPH-8001 #
+2F7C ; 8001 ; MA #* ( ⽼ → 老 ) KANGXI RADICAL OLD → CJK UNIFIED
IDEOGRAPH-8001 #
+
+2EB9 ; 8002 ; MA #* ( ⺹ → 耂 ) CJK RADICAL OLD → CJK UNIFIED
IDEOGRAPH-8002 #
+
+FA5B ; 8005 ; MA # ( 者 → 者 ) CJK COMPATIBILITY IDEOGRAPH-FA5B → CJK
UNIFIED IDEOGRAPH-8005 #
+FAB2 ; 8005 ; MA # ( 者 → 者 ) CJK COMPATIBILITY IDEOGRAPH-FAB2 → CJK
UNIFIED IDEOGRAPH-8005 #
+2F97A ; 8005 ; MA # ( 者 → 者 ) CJK COMPATIBILITY IDEOGRAPH-2F97A →
CJK UNIFIED IDEOGRAPH-8005 #
+
+2F7D ; 800C ; MA #* ( ⽽ → 而 ) KANGXI RADICAL AND → CJK UNIFIED
IDEOGRAPH-800C #
+
+2F97B ; 264DA ; MA # ( 𦓚 → 𦓚 ) CJK COMPATIBILITY IDEOGRAPH-2F97B →
CJK UNIFIED IDEOGRAPH-264DA #
+
+2F7E ; 8012 ; MA #* ( ⽾ → 耒 ) KANGXI RADICAL PLOW → CJK UNIFIED
IDEOGRAPH-8012 #
+
+2F97C ; 26523 ; MA # ( 𦔣 → 𦔣 ) CJK COMPATIBILITY IDEOGRAPH-2F97C →
CJK UNIFIED IDEOGRAPH-26523 #
+
+2F7F ; 8033 ; MA #* ( ⽿ → 耳 ) KANGXI RADICAL EAR → CJK UNIFIED
IDEOGRAPH-8033 #
+
+F9B0 ; 8046 ; MA # ( 聆 → 聆 ) CJK COMPATIBILITY IDEOGRAPH-F9B0 → CJK
UNIFIED IDEOGRAPH-8046 #
+
+2F97D ; 8060 ; MA # ( 聠 → 聠 ) CJK COMPATIBILITY IDEOGRAPH-2F97D →
CJK UNIFIED IDEOGRAPH-8060 #
+
+2F97E ; 265A8 ; MA # ( 𦖨 → 𦖨 ) CJK COMPATIBILITY IDEOGRAPH-2F97E →
CJK UNIFIED IDEOGRAPH-265A8 #
+
+F997 ; 806F ; MA # ( 聯 → 聯 ) CJK COMPATIBILITY IDEOGRAPH-F997 → CJK
UNIFIED IDEOGRAPH-806F #
+
+2F97F ; 8070 ; MA # ( 聰 → 聰 ) CJK COMPATIBILITY IDEOGRAPH-2F97F →
CJK UNIFIED IDEOGRAPH-8070 #
+
+F945 ; 807E ; MA # ( 聾 → 聾 ) CJK COMPATIBILITY IDEOGRAPH-F945 → CJK
UNIFIED IDEOGRAPH-807E #
+
+2F80 ; 807F ; MA #* ( ⾀ → 聿 ) KANGXI RADICAL BRUSH → CJK UNIFIED
IDEOGRAPH-807F #
+
+2EBA ; 8080 ; MA #* ( ⺺ → 肀 ) CJK RADICAL BRUSH ONE → CJK UNIFIED
IDEOGRAPH-8080 #
+
+2F81 ; 8089 ; MA #* ( ⾁ → 肉 ) KANGXI RADICAL MEAT → CJK UNIFIED
IDEOGRAPH-8089 #
+
+F953 ; 808B ; MA # ( 肋 → 肋 ) CJK COMPATIBILITY IDEOGRAPH-F953 → CJK
UNIFIED IDEOGRAPH-808B #
+
+2F8D6 ; 80AD ; MA # ( 肭 → 肭 ) CJK COMPATIBILITY IDEOGRAPH-2F8D6 →
CJK UNIFIED IDEOGRAPH-80AD #
+
+2F982 ; 80B2 ; MA # ( 育 → 育 ) CJK COMPATIBILITY IDEOGRAPH-2F982 →
CJK UNIFIED IDEOGRAPH-80B2 #
+
+2F981 ; 43D5 ; MA # ( 䏕 → 䏕 ) CJK COMPATIBILITY IDEOGRAPH-2F981 →
CJK UNIFIED IDEOGRAPH-43D5 #
+
+2F8D7 ; 43D9 ; MA # ( 䏙 → 䏙 ) CJK COMPATIBILITY IDEOGRAPH-2F8D7 →
CJK UNIFIED IDEOGRAPH-43D9 #
+
+8141 ; 80FC ; MA # ( 腁 → 胼 ) CJK UNIFIED IDEOGRAPH-8141 → CJK UNIFIED
IDEOGRAPH-80FC #
+
+2F983 ; 8103 ; MA # ( 脃 → 脃 ) CJK COMPATIBILITY IDEOGRAPH-2F983 →
CJK UNIFIED IDEOGRAPH-8103 #
+
+2F985 ; 813E ; MA # ( 脾 → 脾 ) CJK COMPATIBILITY IDEOGRAPH-2F985 →
CJK UNIFIED IDEOGRAPH-813E #
+
+2F984 ; 440B ; MA # ( 䐋 → 䐋 ) CJK COMPATIBILITY IDEOGRAPH-2F984 →
CJK UNIFIED IDEOGRAPH-440B #
+
+2F8DA ; 6721 ; MA # ( 朡 → 朡 ) CJK COMPATIBILITY IDEOGRAPH-2F8DA →
CJK UNIFIED IDEOGRAPH-6721 #
+
+2F987 ; 267A7 ; MA # ( 𦞧 → 𦞧 ) CJK COMPATIBILITY IDEOGRAPH-2F987 →
CJK UNIFIED IDEOGRAPH-267A7 #
+
+2F988 ; 267B5 ; MA # ( 𦞵 → 𦞵 ) CJK COMPATIBILITY IDEOGRAPH-2F988 →
CJK UNIFIED IDEOGRAPH-267B5 #
+
+6726 ; 4443 ; MA # ( 朦 → 䑃 ) CJK UNIFIED IDEOGRAPH-6726 → CJK UNIFIED
IDEOGRAPH-4443 #
+
+F926 ; 81D8 ; MA # ( 臘 → 臘 ) CJK COMPATIBILITY IDEOGRAPH-F926 → CJK
UNIFIED IDEOGRAPH-81D8 #
+
+2F82 ; 81E3 ; MA #* ( ⾂ → 臣 ) KANGXI RADICAL MINISTER → CJK UNIFIED
IDEOGRAPH-81E3 #
+
+F9F6 ; 81E8 ; MA # ( 臨 → 臨 ) CJK COMPATIBILITY IDEOGRAPH-F9F6 → CJK
UNIFIED IDEOGRAPH-81E8 #
+
+2F83 ; 81EA ; MA #* ( ⾃ → 自 ) KANGXI RADICAL SELF → CJK UNIFIED
IDEOGRAPH-81EA #
+
+FA5C ; 81ED ; MA # ( 臭 → 臭 ) CJK COMPATIBILITY IDEOGRAPH-FA5C → CJK
UNIFIED IDEOGRAPH-81ED #
+
+2F84 ; 81F3 ; MA #* ( ⾄ → 至 ) KANGXI RADICAL ARRIVE → CJK UNIFIED
IDEOGRAPH-81F3 #
+
+2F85 ; 81FC ; MA #* ( ⾅ → 臼 ) KANGXI RADICAL MORTAR → CJK UNIFIED
IDEOGRAPH-81FC #
+
+2F893 ; 8201 ; MA # ( 舁 → 舁 ) CJK COMPATIBILITY IDEOGRAPH-2F893 →
CJK UNIFIED IDEOGRAPH-8201 #
+2F98B ; 8201 ; MA # ( 舁 → 舁 ) CJK COMPATIBILITY IDEOGRAPH-2F98B →
CJK UNIFIED IDEOGRAPH-8201 #
+
+2F98C ; 8204 ; MA # ( 舄 → 舄 ) CJK COMPATIBILITY IDEOGRAPH-2F98C →
CJK UNIFIED IDEOGRAPH-8204 #
+
+2F86 ; 820C ; MA #* ( ⾆ → 舌 ) KANGXI RADICAL TONGUE → CJK UNIFIED
IDEOGRAPH-820C #
+
+FA6D ; 8218 ; MA # ( 舘 → 舘 ) CJK COMPATIBILITY IDEOGRAPH-FA6D → CJK
UNIFIED IDEOGRAPH-8218 #
+
+2F87 ; 821B ; MA #* ( ⾇ → 舛 ) KANGXI RADICAL OPPOSE → CJK UNIFIED
IDEOGRAPH-821B #
+
+2F88 ; 821F ; MA #* ( ⾈ → 舟 ) KANGXI RADICAL BOAT → CJK UNIFIED
IDEOGRAPH-821F #
+
+2F98E ; 446B ; MA # ( 䑫 → 䑫 ) CJK COMPATIBILITY IDEOGRAPH-2F98E →
CJK UNIFIED IDEOGRAPH-446B #
+
+2F89 ; 826E ; MA #* ( ⾉ → 艮 ) KANGXI RADICAL STOPPING → CJK UNIFIED
IDEOGRAPH-826E #
+
+F97C ; 826F ; MA # ( 良 → 良 ) CJK COMPATIBILITY IDEOGRAPH-F97C → CJK
UNIFIED IDEOGRAPH-826F #
+
+2F8A ; 8272 ; MA #* ( ⾊ → 色 ) KANGXI RADICAL COLOR → CJK UNIFIED
IDEOGRAPH-8272 #
+
+2F8B ; 8278 ; MA #* ( ⾋ → 艸 ) KANGXI RADICAL GRASS → CJK UNIFIED
IDEOGRAPH-8278 #
+
+FA5D ; 8279 ; MA # ( 艹 → 艹 ) CJK COMPATIBILITY IDEOGRAPH-FA5D → CJK
UNIFIED IDEOGRAPH-8279 #
+FA5E ; 8279 ; MA # ( 艹 → 艹 ) CJK COMPATIBILITY IDEOGRAPH-FA5E → CJK
UNIFIED IDEOGRAPH-8279 #
+2EBE ; 8279 ; MA #* ( ⺾ → 艹 ) CJK RADICAL GRASS ONE → CJK UNIFIED
IDEOGRAPH-8279 #
+2EBF ; 8279 ; MA #* ( ⺿ → 艹 ) CJK RADICAL GRASS TWO → CJK UNIFIED
IDEOGRAPH-8279 # →艹→
+2EC0 ; 8279 ; MA #* ( ⻀ → 艹 ) CJK RADICAL GRASS THREE → CJK UNIFIED
IDEOGRAPH-8279 # →艹→
+
+2F990 ; 828B ; MA # ( 芋 → 芋 ) CJK COMPATIBILITY IDEOGRAPH-2F990 →
CJK UNIFIED IDEOGRAPH-828B #
+
+2F98F ; 8291 ; MA # ( 芑 → 芑 ) CJK COMPATIBILITY IDEOGRAPH-2F98F →
CJK UNIFIED IDEOGRAPH-8291 #
+
+2F991 ; 829D ; MA # ( 芝 → 芝 ) CJK COMPATIBILITY IDEOGRAPH-2F991 →
CJK UNIFIED IDEOGRAPH-829D #
+
+2F993 ; 82B1 ; MA # ( 花 → 花 ) CJK COMPATIBILITY IDEOGRAPH-2F993 →
CJK UNIFIED IDEOGRAPH-82B1 #
+
+2F994 ; 82B3 ; MA # ( 芳 → 芳 ) CJK COMPATIBILITY IDEOGRAPH-2F994 →
CJK UNIFIED IDEOGRAPH-82B3 #
+
+2F995 ; 82BD ; MA # ( 芽 → 芽 ) CJK COMPATIBILITY IDEOGRAPH-2F995 →
CJK UNIFIED IDEOGRAPH-82BD #
+
+F974 ; 82E5 ; MA # ( 若 → 若 ) CJK COMPATIBILITY IDEOGRAPH-F974 → CJK
UNIFIED IDEOGRAPH-82E5 #
+2F998 ; 82E5 ; MA # ( 若 → 若 ) CJK COMPATIBILITY IDEOGRAPH-2F998 →
CJK UNIFIED IDEOGRAPH-82E5 #
+
+2F996 ; 82E6 ; MA # ( 苦 → 苦 ) CJK COMPATIBILITY IDEOGRAPH-2F996 →
CJK UNIFIED IDEOGRAPH-82E6 #
+
+2F997 ; 26B3C ; MA # ( 𦬼 → 𦬼 ) CJK COMPATIBILITY IDEOGRAPH-2F997 →
CJK UNIFIED IDEOGRAPH-26B3C #
+
+F9FE ; 8336 ; MA # ( 茶 → 茶 ) CJK COMPATIBILITY IDEOGRAPH-F9FE → CJK
UNIFIED IDEOGRAPH-8336 #
+
+FAB3 ; 8352 ; MA # ( 荒 → 荒 ) CJK COMPATIBILITY IDEOGRAPH-FAB3 → CJK
UNIFIED IDEOGRAPH-8352 #
+
+2F99A ; 8363 ; MA # ( 荣 → 荣 ) CJK COMPATIBILITY IDEOGRAPH-2F99A →
CJK UNIFIED IDEOGRAPH-8363 #
+
+2F999 ; 831D ; MA # ( 茝 → 茝 ) CJK COMPATIBILITY IDEOGRAPH-2F999 →
CJK UNIFIED IDEOGRAPH-831D #
+
+2F99C ; 8323 ; MA # ( 茣 → 茣 ) CJK COMPATIBILITY IDEOGRAPH-2F99C →
CJK UNIFIED IDEOGRAPH-8323 #
+
+2F99D ; 83BD ; MA # ( 莽 → 莽 ) CJK COMPATIBILITY IDEOGRAPH-2F99D →
CJK UNIFIED IDEOGRAPH-83BD #
+
+2F9A0 ; 8353 ; MA # ( 荓 → 荓 ) CJK COMPATIBILITY IDEOGRAPH-2F9A0 →
CJK UNIFIED IDEOGRAPH-8353 #
+
+F93E ; 83C9 ; MA # ( 菉 → 菉 ) CJK COMPATIBILITY IDEOGRAPH-F93E → CJK
UNIFIED IDEOGRAPH-83C9 #
+
+2F9A1 ; 83CA ; MA # ( 菊 → 菊 ) CJK COMPATIBILITY IDEOGRAPH-2F9A1 →
CJK UNIFIED IDEOGRAPH-83CA #
+
+2F9A2 ; 83CC ; MA # ( 菌 → 菌 ) CJK COMPATIBILITY IDEOGRAPH-2F9A2 →
CJK UNIFIED IDEOGRAPH-83CC #
+
+2F9A3 ; 83DC ; MA # ( 菜 → 菜 ) CJK COMPATIBILITY IDEOGRAPH-2F9A3 →
CJK UNIFIED IDEOGRAPH-83DC #
+
+2F99E ; 83E7 ; MA # ( 菧 → 菧 ) CJK COMPATIBILITY IDEOGRAPH-2F99E →
CJK UNIFIED IDEOGRAPH-83E7 #
+
+FAB4 ; 83EF ; MA # ( 華 → 華 ) CJK COMPATIBILITY IDEOGRAPH-FAB4 → CJK
UNIFIED IDEOGRAPH-83EF #
+
+F958 ; 83F1 ; MA # ( 菱 → 菱 ) CJK COMPATIBILITY IDEOGRAPH-F958 → CJK
UNIFIED IDEOGRAPH-83F1 #
+
+FA5F ; 8457 ; MA # ( 著 → 著 ) CJK COMPATIBILITY IDEOGRAPH-FA5F → CJK
UNIFIED IDEOGRAPH-8457 #
+2F99F ; 8457 ; MA # ( 著 → 著 ) CJK COMPATIBILITY IDEOGRAPH-2F99F →
CJK UNIFIED IDEOGRAPH-8457 #
+
+2F9A4 ; 26C36 ; MA # ( 𦰶 → 𦰶 ) CJK COMPATIBILITY IDEOGRAPH-2F9A4 →
CJK UNIFIED IDEOGRAPH-26C36 #
+
+2F99B ; 83AD ; MA # ( 莭 → 莭 ) CJK COMPATIBILITY IDEOGRAPH-2F99B →
CJK UNIFIED IDEOGRAPH-83AD #
+
+F918 ; 843D ; MA # ( 落 → 落 ) CJK COMPATIBILITY IDEOGRAPH-F918 → CJK
UNIFIED IDEOGRAPH-843D #
+
+F96E ; 8449 ; MA # ( 葉 → 葉 ) CJK COMPATIBILITY IDEOGRAPH-F96E → CJK
UNIFIED IDEOGRAPH-8449 #
+
+853F ; 848D ; MA # ( 蔿 → 蒍 ) CJK UNIFIED IDEOGRAPH-853F → CJK UNIFIED
IDEOGRAPH-848D #
+
+2F9A6 ; 26CD5 ; MA # ( 𦳕 → 𦳕 ) CJK COMPATIBILITY IDEOGRAPH-2F9A6 →
CJK UNIFIED IDEOGRAPH-26CD5 #
+
+2F9A5 ; 26D6B ; MA # ( 𦵫 → 𦵫 ) CJK COMPATIBILITY IDEOGRAPH-2F9A5 →
CJK UNIFIED IDEOGRAPH-26D6B #
+
+F999 ; 84EE ; MA # ( 蓮 → 蓮 ) CJK COMPATIBILITY IDEOGRAPH-F999 → CJK
UNIFIED IDEOGRAPH-84EE #
+
+2F9A8 ; 84F1 ; MA # ( 蓱 → 蓱 ) CJK COMPATIBILITY IDEOGRAPH-2F9A8 →
CJK UNIFIED IDEOGRAPH-84F1 #
+
+2F9A9 ; 84F3 ; MA # ( 蓳 → 蓳 ) CJK COMPATIBILITY IDEOGRAPH-2F9A9 →
CJK UNIFIED IDEOGRAPH-84F3 #
+
+F9C2 ; 84FC ; MA # ( 蓼 → 蓼 ) CJK COMPATIBILITY IDEOGRAPH-F9C2 → CJK
UNIFIED IDEOGRAPH-84FC #
+
+2F9AA ; 8516 ; MA # ( 蔖 → 蔖 ) CJK COMPATIBILITY IDEOGRAPH-2F9AA →
CJK UNIFIED IDEOGRAPH-8516 #
+
+2F9A7 ; 452B ; MA # ( 䔫 → 䔫 ) CJK COMPATIBILITY IDEOGRAPH-2F9A7 →
CJK UNIFIED IDEOGRAPH-452B #
+
+2F9AC ; 8564 ; MA # ( 蕤 → 蕤 ) CJK COMPATIBILITY IDEOGRAPH-2F9AC →
CJK UNIFIED IDEOGRAPH-8564 #
+
+2F9AD ; 26F2C ; MA # ( 𦼬 → 𦼬 ) CJK COMPATIBILITY IDEOGRAPH-2F9AD →
CJK UNIFIED IDEOGRAPH-26F2C #
+
+F923 ; 85CD ; MA # ( 藍 → 藍 ) CJK COMPATIBILITY IDEOGRAPH-F923 → CJK
UNIFIED IDEOGRAPH-85CD #
+
+2F9AE ; 455D ; MA # ( 䕝 → 䕝 ) CJK COMPATIBILITY IDEOGRAPH-2F9AE →
CJK UNIFIED IDEOGRAPH-455D #
+
+2F9B0 ; 26FB1 ; MA # ( 𦾱 → 𦾱 ) CJK COMPATIBILITY IDEOGRAPH-2F9B0 →
CJK UNIFIED IDEOGRAPH-26FB1 #
+
+2F9AF ; 4561 ; MA # ( 䕡 → 䕡 ) CJK COMPATIBILITY IDEOGRAPH-2F9AF →
CJK UNIFIED IDEOGRAPH-4561 #
+
+F9F0 ; 85FA ; MA # ( 藺 → 藺 ) CJK COMPATIBILITY IDEOGRAPH-F9F0 → CJK
UNIFIED IDEOGRAPH-85FA #
+
+F935 ; 8606 ; MA # ( 蘆 → 蘆 ) CJK COMPATIBILITY IDEOGRAPH-F935 → CJK
UNIFIED IDEOGRAPH-8606 #
+
+2F9B2 ; 456B ; MA # ( 䕫 → 䕫 ) CJK COMPATIBILITY IDEOGRAPH-2F9B2 →
CJK UNIFIED IDEOGRAPH-456B #
+
+FA20 ; 8612 ; MA # ( 蘒 → 蘒 ) CJK COMPATIBILITY IDEOGRAPH-FA20 → CJK
UNIFIED IDEOGRAPH-8612 #
+
+F91F ; 862D ; MA # ( 蘭 → 蘭 ) CJK COMPATIBILITY IDEOGRAPH-F91F → CJK
UNIFIED IDEOGRAPH-862D #
+
+2F9B1 ; 270D2 ; MA # ( 𧃒 → 𧃒 ) CJK COMPATIBILITY IDEOGRAPH-2F9B1 →
CJK UNIFIED IDEOGRAPH-270D2 #
+
+8641 ; 8637 ; MA # ( 虁 → 蘷 ) CJK UNIFIED IDEOGRAPH-8641 → CJK UNIFIED
IDEOGRAPH-8637 #
+
+F910 ; 863F ; MA # ( 蘿 → 蘿 ) CJK COMPATIBILITY IDEOGRAPH-F910 → CJK
UNIFIED IDEOGRAPH-863F #
+
+2F8C ; 864D ; MA #* ( ⾌ → 虍 ) KANGXI RADICAL TIGER → CJK UNIFIED
IDEOGRAPH-864D #
+
+2EC1 ; 864E ; MA #* ( ⻁ → 虎 ) CJK RADICAL TIGER → CJK UNIFIED
IDEOGRAPH-864E #
+
+2F9B3 ; 8650 ; MA # ( 虐 → 虐 ) CJK COMPATIBILITY IDEOGRAPH-2F9B3 →
CJK UNIFIED IDEOGRAPH-8650 #
+
+F936 ; 865C ; MA # ( 虜 → 虜 ) CJK COMPATIBILITY IDEOGRAPH-F936 → CJK
UNIFIED IDEOGRAPH-865C #
+2F9B4 ; 865C ; MA # ( 虜 → 虜 ) CJK COMPATIBILITY IDEOGRAPH-2F9B4 →
CJK UNIFIED IDEOGRAPH-865C #
+
+2F9B5 ; 8667 ; MA # ( 虧 → 虧 ) CJK COMPATIBILITY IDEOGRAPH-2F9B5 →
CJK UNIFIED IDEOGRAPH-8667 #
+
+2F9B6 ; 8669 ; MA # ( 虩 → 虩 ) CJK COMPATIBILITY IDEOGRAPH-2F9B6 →
CJK UNIFIED IDEOGRAPH-8669 #
+
+2F8D ; 866B ; MA #* ( ⾍ → 虫 ) KANGXI RADICAL INSECT → CJK UNIFIED
IDEOGRAPH-866B #
+
+2F9B7 ; 86A9 ; MA # ( 蚩 → 蚩 ) CJK COMPATIBILITY IDEOGRAPH-2F9B7 →
CJK UNIFIED IDEOGRAPH-86A9 #
+
+2F9B8 ; 8688 ; MA # ( 蚈 → 蚈 ) CJK COMPATIBILITY IDEOGRAPH-2F9B8 →
CJK UNIFIED IDEOGRAPH-8688 #
+
+2F9BA ; 86E2 ; MA # ( 蛢 → 蛢 ) CJK COMPATIBILITY IDEOGRAPH-2F9BA →
CJK UNIFIED IDEOGRAPH-86E2 #
+
+2F9B9 ; 870E ; MA # ( 蜎 → 蜎 ) CJK COMPATIBILITY IDEOGRAPH-2F9B9 →
CJK UNIFIED IDEOGRAPH-870E #
+
+2F9BC ; 8728 ; MA # ( 蜨 → 蜨 ) CJK COMPATIBILITY IDEOGRAPH-2F9BC →
CJK UNIFIED IDEOGRAPH-8728 #
+
+2F9BD ; 876B ; MA # ( 蝫 → 蝫 ) CJK COMPATIBILITY IDEOGRAPH-2F9BD →
CJK UNIFIED IDEOGRAPH-876B #
+
+2F9C0 ; 87E1 ; MA # ( 蟡 → 蟡 ) CJK COMPATIBILITY IDEOGRAPH-2F9C0 →
CJK UNIFIED IDEOGRAPH-87E1 #
+
+FAB5 ; 8779 ; MA # ( 蝹 → 蝹 ) CJK COMPATIBILITY IDEOGRAPH-FAB5 → CJK
UNIFIED IDEOGRAPH-8779 #
+2F9BB ; 8779 ; MA # ( 蝹 → 蝹 ) CJK COMPATIBILITY IDEOGRAPH-2F9BB →
CJK UNIFIED IDEOGRAPH-8779 #
+
+2F9BE ; 8786 ; MA # ( 螆 → 螆 ) CJK COMPATIBILITY IDEOGRAPH-2F9BE →
CJK UNIFIED IDEOGRAPH-8786 #
+
+2F9BF ; 45D7 ; MA # ( 䗗 → 䗗 ) CJK COMPATIBILITY IDEOGRAPH-2F9BF →
CJK UNIFIED IDEOGRAPH-45D7 #
+
+2F9AB ; 273CA ; MA # ( 𧏊 → 𧏊 ) CJK COMPATIBILITY IDEOGRAPH-2F9AB →
CJK UNIFIED IDEOGRAPH-273CA #
+
+F911 ; 87BA ; MA # ( 螺 → 螺 ) CJK COMPATIBILITY IDEOGRAPH-F911 → CJK
UNIFIED IDEOGRAPH-87BA #
+
+2F9C1 ; 8801 ; MA # ( 蠁 → 蠁 ) CJK COMPATIBILITY IDEOGRAPH-2F9C1 →
CJK UNIFIED IDEOGRAPH-8801 #
+
+2F9C2 ; 45F9 ; MA # ( 䗹 → 䗹 ) CJK COMPATIBILITY IDEOGRAPH-2F9C2 →
CJK UNIFIED IDEOGRAPH-45F9 #
+
+F927 ; 881F ; MA # ( 蠟 → 蠟 ) CJK COMPATIBILITY IDEOGRAPH-F927 → CJK
UNIFIED IDEOGRAPH-881F #
+
+2F8E ; 8840 ; MA #* ( ⾎ → 血 ) KANGXI RADICAL BLOOD → CJK UNIFIED
IDEOGRAPH-8840 #
+
+FA08 ; 884C ; MA # ( 行 → 行 ) CJK COMPATIBILITY IDEOGRAPH-FA08 → CJK
UNIFIED IDEOGRAPH-884C #
+2F8F ; 884C ; MA #* ( ⾏ → 行 ) KANGXI RADICAL WALK ENCLOSURE → CJK
UNIFIED IDEOGRAPH-884C #
+
+2F9C3 ; 8860 ; MA # ( 衠 → 衠 ) CJK COMPATIBILITY IDEOGRAPH-2F9C3 →
CJK UNIFIED IDEOGRAPH-8860 #
+
+2F9C4 ; 8863 ; MA # ( 衣 → 衣 ) CJK COMPATIBILITY IDEOGRAPH-2F9C4 →
CJK UNIFIED IDEOGRAPH-8863 #
+2F90 ; 8863 ; MA #* ( ⾐ → 衣 ) KANGXI RADICAL CLOTHES → CJK UNIFIED
IDEOGRAPH-8863 #
+
+2EC2 ; 8864 ; MA #* ( ⻂ → 衤 ) CJK RADICAL CLOTHES → CJK UNIFIED
IDEOGRAPH-8864 #
+
+F9A0 ; 88C2 ; MA # ( 裂 → 裂 ) CJK COMPATIBILITY IDEOGRAPH-F9A0 → CJK
UNIFIED IDEOGRAPH-88C2 #
+
+2F9C5 ; 27667 ; MA # ( 𧙧 → 𧙧 ) CJK COMPATIBILITY IDEOGRAPH-2F9C5 →
CJK UNIFIED IDEOGRAPH-27667 #
+
+F9E7 ; 88CF ; MA # ( 裏 → 裏 ) CJK COMPATIBILITY IDEOGRAPH-F9E7 → CJK
UNIFIED IDEOGRAPH-88CF #
+
+2F9C6 ; 88D7 ; MA # ( 裗 → 裗 ) CJK COMPATIBILITY IDEOGRAPH-2F9C6 →
CJK UNIFIED IDEOGRAPH-88D7 #
+
+2F9C7 ; 88DE ; MA # ( 裞 → 裞 ) CJK COMPATIBILITY IDEOGRAPH-2F9C7 →
CJK UNIFIED IDEOGRAPH-88DE #
+
+F9E8 ; 88E1 ; MA # ( 裡 → 裡 ) CJK COMPATIBILITY IDEOGRAPH-F9E8 → CJK
UNIFIED IDEOGRAPH-88E1 #
+
+F912 ; 88F8 ; MA # ( 裸 → 裸 ) CJK COMPATIBILITY IDEOGRAPH-F912 → CJK
UNIFIED IDEOGRAPH-88F8 #
+
+2F9C9 ; 88FA ; MA # ( 裺 → 裺 ) CJK COMPATIBILITY IDEOGRAPH-2F9C9 →
CJK UNIFIED IDEOGRAPH-88FA #
+
+2F9C8 ; 4635 ; MA # ( 䘵 → 䘵 ) CJK COMPATIBILITY IDEOGRAPH-2F9C8 →
CJK UNIFIED IDEOGRAPH-4635 #
+
+FA60 ; 8910 ; MA # ( 褐 → 褐 ) CJK COMPATIBILITY IDEOGRAPH-FA60 → CJK
UNIFIED IDEOGRAPH-8910 #
+
+FAB6 ; 8941 ; MA # ( 襁 → 襁 ) CJK COMPATIBILITY IDEOGRAPH-FAB6 → CJK
UNIFIED IDEOGRAPH-8941 #
+
+F924 ; 8964 ; MA # ( 襤 → 襤 ) CJK COMPATIBILITY IDEOGRAPH-F924 → CJK
UNIFIED IDEOGRAPH-8964 #
+
+2F91 ; 897E ; MA #* ( ⾑ → 襾 ) KANGXI RADICAL WEST → CJK UNIFIED
IDEOGRAPH-897E #
+
+2EC4 ; 897F ; MA #* ( ⻄ → 西 ) CJK RADICAL WEST TWO → CJK UNIFIED
IDEOGRAPH-897F #
+
+2EC3 ; 8980 ; MA #* ( ⻃ → 覀 ) CJK RADICAL WEST ONE → CJK UNIFIED
IDEOGRAPH-8980 #
+
+FAB7 ; 8986 ; MA # ( 覆 → 覆 ) CJK COMPATIBILITY IDEOGRAPH-FAB7 → CJK
UNIFIED IDEOGRAPH-8986 #
+
+FA0A ; 898B ; MA # ( 見 → 見 ) CJK COMPATIBILITY IDEOGRAPH-FA0A → CJK
UNIFIED IDEOGRAPH-898B #
+2F92 ; 898B ; MA #* ( ⾒ → 見 ) KANGXI RADICAL SEE → CJK UNIFIED
IDEOGRAPH-898B #
+
+2F9CB ; 278AE ; MA # ( 𧢮 → 𧢮 ) CJK COMPATIBILITY IDEOGRAPH-2F9CB →
CJK UNIFIED IDEOGRAPH-278AE #
+
+2EC5 ; 89C1 ; MA #* ( ⻅ → 见 ) CJK RADICAL C-SIMPLIFIED SEE → CJK UNIFIED
IDEOGRAPH-89C1 #
+
+2F93 ; 89D2 ; MA #* ( ⾓ → 角 ) KANGXI RADICAL HORN → CJK UNIFIED
IDEOGRAPH-89D2 #
+
+2F94 ; 8A00 ; MA #* ( ⾔ → 言 ) KANGXI RADICAL SPEECH → CJK UNIFIED
IDEOGRAPH-8A00 #
+
+2F9CC ; 27966 ; MA # ( 𧥦 → 𧥦 ) CJK COMPATIBILITY IDEOGRAPH-2F9CC →
CJK UNIFIED IDEOGRAPH-27966 #
+
+8A7D ; 8A2E ; MA # ( 詽 → 訮 ) CJK UNIFIED IDEOGRAPH-8A7D → CJK UNIFIED
IDEOGRAPH-8A2E #
+
+8A1E ; 46B6 ; MA # ( 訞 → 䚶 ) CJK UNIFIED IDEOGRAPH-8A1E → CJK UNIFIED
IDEOGRAPH-46B6 #
+
+2F9CD ; 46BE ; MA # ( 䚾 → 䚾 ) CJK COMPATIBILITY IDEOGRAPH-2F9CD →
CJK UNIFIED IDEOGRAPH-46BE #
+
+2F9CE ; 46C7 ; MA # ( 䛇 → 䛇 ) CJK COMPATIBILITY IDEOGRAPH-2F9CE →
CJK UNIFIED IDEOGRAPH-46C7 #
+
+2F9CF ; 8AA0 ; MA # ( 誠 → 誠 ) CJK COMPATIBILITY IDEOGRAPH-2F9CF →
CJK UNIFIED IDEOGRAPH-8AA0 #
+
+F96F ; 8AAA ; MA # ( 說 → 說 ) CJK COMPATIBILITY IDEOGRAPH-F96F → CJK
UNIFIED IDEOGRAPH-8AAA #
+F9A1 ; 8AAA ; MA # ( 說 → 說 ) CJK COMPATIBILITY IDEOGRAPH-F9A1 → CJK
UNIFIED IDEOGRAPH-8AAA #
+
+FAB9 ; 8ABF ; MA # ( 調 → 調 ) CJK COMPATIBILITY IDEOGRAPH-FAB9 → CJK
UNIFIED IDEOGRAPH-8ABF #
+
+FABB ; 8ACB ; MA # ( 請 → 請 ) CJK COMPATIBILITY IDEOGRAPH-FABB → CJK
UNIFIED IDEOGRAPH-8ACB #
+
+F97D ; 8AD2 ; MA # ( 諒 → 諒 ) CJK COMPATIBILITY IDEOGRAPH-F97D → CJK
UNIFIED IDEOGRAPH-8AD2 #
+
+F941 ; 8AD6 ; MA # ( 論 → 論 ) CJK COMPATIBILITY IDEOGRAPH-F941 → CJK
UNIFIED IDEOGRAPH-8AD6 #
+
+FABE ; 8AED ; MA # ( 諭 → 諭 ) CJK COMPATIBILITY IDEOGRAPH-FABE → CJK
UNIFIED IDEOGRAPH-8AED #
+2F9D0 ; 8AED ; MA # ( 諭 → 諭 ) CJK COMPATIBILITY IDEOGRAPH-2F9D0 →
CJK UNIFIED IDEOGRAPH-8AED #
+
+FA22 ; 8AF8 ; MA # ( 諸 → 諸 ) CJK COMPATIBILITY IDEOGRAPH-FA22 → CJK
UNIFIED IDEOGRAPH-8AF8 #
+FABA ; 8AF8 ; MA # ( 諸 → 諸 ) CJK COMPATIBILITY IDEOGRAPH-FABA → CJK
UNIFIED IDEOGRAPH-8AF8 #
+
+F95D ; 8AFE ; MA # ( 諾 → 諾 ) CJK COMPATIBILITY IDEOGRAPH-F95D → CJK
UNIFIED IDEOGRAPH-8AFE #
+FABD ; 8AFE ; MA # ( 諾 → 諾 ) CJK COMPATIBILITY IDEOGRAPH-FABD → CJK
UNIFIED IDEOGRAPH-8AFE #
+
+FA62 ; 8B01 ; MA # ( 謁 → 謁 ) CJK COMPATIBILITY IDEOGRAPH-FA62 → CJK
UNIFIED IDEOGRAPH-8B01 #
+FABC ; 8B01 ; MA # ( 謁 → 謁 ) CJK COMPATIBILITY IDEOGRAPH-FABC → CJK
UNIFIED IDEOGRAPH-8B01 #
+
+FA63 ; 8B39 ; MA # ( 謹 → 謹 ) CJK COMPATIBILITY IDEOGRAPH-FA63 → CJK
UNIFIED IDEOGRAPH-8B39 #
+FABF ; 8B39 ; MA # ( 謹 → 謹 ) CJK COMPATIBILITY IDEOGRAPH-FABF → CJK
UNIFIED IDEOGRAPH-8B39 #
+
+F9FC ; 8B58 ; MA # ( 識 → 識 ) CJK COMPATIBILITY IDEOGRAPH-F9FC → CJK
UNIFIED IDEOGRAPH-8B58 #
+
+F95A ; 8B80 ; MA # ( 讀 → 讀 ) CJK COMPATIBILITY IDEOGRAPH-F95A → CJK
UNIFIED IDEOGRAPH-8B80 #
+
+8B8F ; 8B86 ; MA # ( 讏 → 讆 ) CJK UNIFIED IDEOGRAPH-8B8F → CJK UNIFIED
IDEOGRAPH-8B86 #
+
+FAC0 ; 8B8A ; MA # ( 變 → 變 ) CJK COMPATIBILITY IDEOGRAPH-FAC0 → CJK
UNIFIED IDEOGRAPH-8B8A #
+2F9D1 ; 8B8A ; MA # ( 變 → 變 ) CJK COMPATIBILITY IDEOGRAPH-2F9D1 →
CJK UNIFIED IDEOGRAPH-8B8A #
+
+2EC8 ; 8BA0 ; MA #* ( ⻈ → 讠 ) CJK RADICAL C-SIMPLIFIED SPEECH → CJK
UNIFIED IDEOGRAPH-8BA0 #
+
+2F95 ; 8C37 ; MA #* ( ⾕ → 谷 ) KANGXI RADICAL VALLEY → CJK UNIFIED
IDEOGRAPH-8C37 #
+
+2F96 ; 8C46 ; MA #* ( ⾖ → 豆 ) KANGXI RADICAL BEAN → CJK UNIFIED
IDEOGRAPH-8C46 #
+
+F900 ; 8C48 ; MA # ( 豈 → 豈 ) CJK COMPATIBILITY IDEOGRAPH-F900 → CJK
UNIFIED IDEOGRAPH-8C48 #
+
+2F9D2 ; 8C55 ; MA # ( 豕 → 豕 ) CJK COMPATIBILITY IDEOGRAPH-2F9D2 →
CJK UNIFIED IDEOGRAPH-8C55 #
+2F97 ; 8C55 ; MA #* ( ⾗ → 豕 ) KANGXI RADICAL PIG → CJK UNIFIED
IDEOGRAPH-8C55 #
+
+8C63 ; 8C5C ; MA # ( 豣 → 豜 ) CJK UNIFIED IDEOGRAPH-8C63 → CJK UNIFIED
IDEOGRAPH-8C5C #
+
+2F98 ; 8C78 ; MA #* ( ⾘ → 豸 ) KANGXI RADICAL BADGER → CJK UNIFIED
IDEOGRAPH-8C78 #
+
+2F9D3 ; 27CA8 ; MA # ( 𧲨 → 𧲨 ) CJK COMPATIBILITY IDEOGRAPH-2F9D3 →
CJK UNIFIED IDEOGRAPH-27CA8 #
+
+2F99 ; 8C9D ; MA #* ( ⾙ → 貝 ) KANGXI RADICAL SHELL → CJK UNIFIED
IDEOGRAPH-8C9D #
+
+2F9D4 ; 8CAB ; MA # ( 貫 → 貫 ) CJK COMPATIBILITY IDEOGRAPH-2F9D4 →
CJK UNIFIED IDEOGRAPH-8CAB #
+
+2F9D5 ; 8CC1 ; MA # ( 賁 → 賁 ) CJK COMPATIBILITY IDEOGRAPH-2F9D5 →
CJK UNIFIED IDEOGRAPH-8CC1 #
+
+F948 ; 8CC2 ; MA # ( 賂 → 賂 ) CJK COMPATIBILITY IDEOGRAPH-F948 → CJK
UNIFIED IDEOGRAPH-8CC2 #
+
+F903 ; 8CC8 ; MA # ( 賈 → 賈 ) CJK COMPATIBILITY IDEOGRAPH-F903 → CJK
UNIFIED IDEOGRAPH-8CC8 #
+
+FA64 ; 8CD3 ; MA # ( 賓 → 賓 ) CJK COMPATIBILITY IDEOGRAPH-FA64 → CJK
UNIFIED IDEOGRAPH-8CD3 #
+
+FA65 ; 8D08 ; MA # ( 贈 → 贈 ) CJK COMPATIBILITY IDEOGRAPH-FA65 → CJK
UNIFIED IDEOGRAPH-8D08 #
+FAC1 ; 8D08 ; MA # ( 贈 → 贈 ) CJK COMPATIBILITY IDEOGRAPH-FAC1 → CJK
UNIFIED IDEOGRAPH-8D08 #
+
+2F9D6 ; 8D1B ; MA # ( 贛 → 贛 ) CJK COMPATIBILITY IDEOGRAPH-2F9D6 →
CJK UNIFIED IDEOGRAPH-8D1B #
+
+2EC9 ; 8D1D ; MA #* ( ⻉ → 贝 ) CJK RADICAL C-SIMPLIFIED SHELL → CJK
UNIFIED IDEOGRAPH-8D1D #
+
+2F9A ; 8D64 ; MA #* ( ⾚ → 赤 ) KANGXI RADICAL RED → CJK UNIFIED
IDEOGRAPH-8D64 #
+
+2F9B ; 8D70 ; MA #* ( ⾛ → 走 ) KANGXI RADICAL RUN → CJK UNIFIED
IDEOGRAPH-8D70 #
+
+2F9D7 ; 8D77 ; MA # ( 起 → 起 ) CJK COMPATIBILITY IDEOGRAPH-2F9D7 →
CJK UNIFIED IDEOGRAPH-8D77 #
+
+8D86 ; 8D7F ; MA # ( 趆 → 赿 ) CJK UNIFIED IDEOGRAPH-8D86 → CJK UNIFIED
IDEOGRAPH-8D7F #
+
+FAD7 ; 27ED3 ; MA # ( 𧻓 → 𧻓 ) CJK COMPATIBILITY IDEOGRAPH-FAD7 → CJK
UNIFIED IDEOGRAPH-27ED3 #
+
+2F9D8 ; 27F2F ; MA # ( 𧼯 → 𧼯 ) CJK COMPATIBILITY IDEOGRAPH-2F9D8 →
CJK UNIFIED IDEOGRAPH-27F2F #
+
+2F9C ; 8DB3 ; MA #* ( ⾜ → 足 ) KANGXI RADICAL FOOT → CJK UNIFIED
IDEOGRAPH-8DB3 #
+
+2F9DA ; 8DCB ; MA # ( 跋 → 跋 ) CJK COMPATIBILITY IDEOGRAPH-2F9DA →
CJK UNIFIED IDEOGRAPH-8DCB #
+
+2F9DB ; 8DBC ; MA # ( 趼 → 趼 ) CJK COMPATIBILITY IDEOGRAPH-2F9DB →
CJK UNIFIED IDEOGRAPH-8DBC #
+
+8DFA ; 8DE5 ; MA # ( 跺 → 跥 ) CJK UNIFIED IDEOGRAPH-8DFA → CJK UNIFIED
IDEOGRAPH-8DE5 #
+
+F937 ; 8DEF ; MA # ( 路 → 路 ) CJK COMPATIBILITY IDEOGRAPH-F937 → CJK
UNIFIED IDEOGRAPH-8DEF #
+
+2F9DC ; 8DF0 ; MA # ( 跰 → 跰 ) CJK COMPATIBILITY IDEOGRAPH-2F9DC →
CJK UNIFIED IDEOGRAPH-8DF0 #
+
+8E9B ; 8E97 ; MA # ( 躛 → 躗 ) CJK UNIFIED IDEOGRAPH-8E9B → CJK UNIFIED
IDEOGRAPH-8E97 #
+
+2F9D ; 8EAB ; MA #* ( ⾝ → 身 ) KANGXI RADICAL BODY → CJK UNIFIED
IDEOGRAPH-8EAB #
+
+F902 ; 8ECA ; MA # ( 車 → 車 ) CJK COMPATIBILITY IDEOGRAPH-F902 → CJK
UNIFIED IDEOGRAPH-8ECA #
+2F9E ; 8ECA ; MA #* ( ⾞ → 車 ) KANGXI RADICAL CART → CJK UNIFIED
IDEOGRAPH-8ECA #
+
+2F9DE ; 8ED4 ; MA # ( 軔 → 軔 ) CJK COMPATIBILITY IDEOGRAPH-2F9DE →
CJK UNIFIED IDEOGRAPH-8ED4 #
+
+8F27 ; 8EFF ; MA # ( 輧 → 軿 ) CJK UNIFIED IDEOGRAPH-8F27 → CJK UNIFIED
IDEOGRAPH-8EFF #
+
+F998 ; 8F26 ; MA # ( 輦 → 輦 ) CJK COMPATIBILITY IDEOGRAPH-F998 → CJK
UNIFIED IDEOGRAPH-8F26 #
+
+F9D7 ; 8F2A ; MA # ( 輪 → 輪 ) CJK COMPATIBILITY IDEOGRAPH-F9D7 → CJK
UNIFIED IDEOGRAPH-8F2A #
+
+FAC2 ; 8F38 ; MA # ( 輸 → 輸 ) CJK COMPATIBILITY IDEOGRAPH-FAC2 → CJK
UNIFIED IDEOGRAPH-8F38 #
+2F9DF ; 8F38 ; MA # ( 輸 → 輸 ) CJK COMPATIBILITY IDEOGRAPH-2F9DF →
CJK UNIFIED IDEOGRAPH-8F38 #
+
+FA07 ; 8F3B ; MA # ( 輻 → 輻 ) CJK COMPATIBILITY IDEOGRAPH-FA07 → CJK
UNIFIED IDEOGRAPH-8F3B #
+
+F98D ; 8F62 ; MA # ( 轢 → 轢 ) CJK COMPATIBILITY IDEOGRAPH-F98D → CJK
UNIFIED IDEOGRAPH-8F62 #
+
+2ECB ; 8F66 ; MA #* ( ⻋ → 车 ) CJK RADICAL C-SIMPLIFIED CART → CJK
UNIFIED IDEOGRAPH-8F66 #
+
+2F9F ; 8F9B ; MA #* ( ⾟ → 辛 ) KANGXI RADICAL BITTER → CJK UNIFIED
IDEOGRAPH-8F9B #
+
+2F98D ; 8F9E ; MA # ( 辞 → 辞 ) CJK COMPATIBILITY IDEOGRAPH-2F98D →
CJK UNIFIED IDEOGRAPH-8F9E #
+
+F971 ; 8FB0 ; MA # ( 辰 → 辰 ) CJK COMPATIBILITY IDEOGRAPH-F971 → CJK
UNIFIED IDEOGRAPH-8FB0 #
+2FA0 ; 8FB0 ; MA #* ( ⾠ → 辰 ) KANGXI RADICAL MORNING → CJK UNIFIED
IDEOGRAPH-8FB0 #
+
+2FA1 ; 8FB5 ; MA #* ( ⾡ → 辵 ) KANGXI RADICAL WALK → CJK UNIFIED
IDEOGRAPH-8FB5 #
+
+FA66 ; 8FB6 ; MA # ( 辶 → 辶 ) CJK COMPATIBILITY IDEOGRAPH-FA66 → CJK
UNIFIED IDEOGRAPH-8FB6 #
+2ECC ; 8FB6 ; MA #* ( ⻌ → 辶 ) CJK RADICAL SIMPLIFIED WALK → CJK UNIFIED
IDEOGRAPH-8FB6 #
+2ECD ; 8FB6 ; MA #* ( ⻍ → 辶 ) CJK RADICAL WALK ONE → CJK UNIFIED
IDEOGRAPH-8FB6 #
+
+2F881 ; 5DE1 ; MA # ( 巡 → 巡 ) CJK COMPATIBILITY IDEOGRAPH-2F881 →
CJK UNIFIED IDEOGRAPH-5DE1 #
+
+F99A ; 9023 ; MA # ( 連 → 連 ) CJK COMPATIBILITY IDEOGRAPH-F99A → CJK
UNIFIED IDEOGRAPH-9023 #
+
+FA25 ; 9038 ; MA # ( 逸 → 逸 ) CJK COMPATIBILITY IDEOGRAPH-FA25 → CJK
UNIFIED IDEOGRAPH-9038 #
+FA67 ; 9038 ; MA # ( 逸 → 逸 ) CJK COMPATIBILITY IDEOGRAPH-FA67 → CJK
UNIFIED IDEOGRAPH-9038 #
+
+FAC3 ; 9072 ; MA # ( 遲 → 遲 ) CJK COMPATIBILITY IDEOGRAPH-FAC3 → CJK
UNIFIED IDEOGRAPH-9072 #
+
+F9C3 ; 907C ; MA # ( 遼 → 遼 ) CJK COMPATIBILITY IDEOGRAPH-F9C3 → CJK
UNIFIED IDEOGRAPH-907C #
+
+2F9E0 ; 285D2 ; MA # ( 𨗒 → 𨗒 ) CJK COMPATIBILITY IDEOGRAPH-2F9E0 →
CJK UNIFIED IDEOGRAPH-285D2 #
+
+2F9E1 ; 285ED ; MA # ( 𨗭 → 𨗭 ) CJK COMPATIBILITY IDEOGRAPH-2F9E1 →
CJK UNIFIED IDEOGRAPH-285ED #
+
+F913 ; 908F ; MA # ( 邏 → 邏 ) CJK COMPATIBILITY IDEOGRAPH-F913 → CJK
UNIFIED IDEOGRAPH-908F #
+
+2FA2 ; 9091 ; MA #* ( ⾢ → 邑 ) KANGXI RADICAL CITY → CJK UNIFIED
IDEOGRAPH-9091 #
+
+2F9E2 ; 9094 ; MA # ( 邔 → 邔 ) CJK COMPATIBILITY IDEOGRAPH-2F9E2 →
CJK UNIFIED IDEOGRAPH-9094 #
+
+F92C ; 90CE ; MA # ( 郎 → 郎 ) CJK COMPATIBILITY IDEOGRAPH-F92C → CJK
UNIFIED IDEOGRAPH-90CE #
+90DE ; 90CE ; MA # ( 郞 → 郎 ) CJK UNIFIED IDEOGRAPH-90DE → CJK UNIFIED
IDEOGRAPH-90CE # →郎→
+FA2E ; 90CE ; MA # ( 郞 → 郎 ) CJK COMPATIBILITY IDEOGRAPH-FA2E → CJK
UNIFIED IDEOGRAPH-90CE # →郞→→郎→
+
+2F9E3 ; 90F1 ; MA # ( 郱 → 郱 ) CJK COMPATIBILITY IDEOGRAPH-2F9E3 →
CJK UNIFIED IDEOGRAPH-90F1 #
+
+FA26 ; 90FD ; MA # ( 都 → 都 ) CJK COMPATIBILITY IDEOGRAPH-FA26 → CJK
UNIFIED IDEOGRAPH-90FD #
+
+2F9E5 ; 2872E ; MA # ( 𨜮 → 𨜮 ) CJK COMPATIBILITY IDEOGRAPH-2F9E5 →
CJK UNIFIED IDEOGRAPH-2872E #
+
+2F9E4 ; 9111 ; MA # ( 鄑 → 鄑 ) CJK COMPATIBILITY IDEOGRAPH-2F9E4 →
CJK UNIFIED IDEOGRAPH-9111 #
+
+2F9E6 ; 911B ; MA # ( 鄛 → 鄛 ) CJK COMPATIBILITY IDEOGRAPH-2F9E6 →
CJK UNIFIED IDEOGRAPH-911B #
+
+2FA3 ; 9149 ; MA #* ( ⾣ → 酉 ) KANGXI RADICAL WINE → CJK UNIFIED
IDEOGRAPH-9149 #
+
+F919 ; 916A ; MA # ( 酪 → 酪 ) CJK COMPATIBILITY IDEOGRAPH-F919 → CJK
UNIFIED IDEOGRAPH-916A #
+
+FAC4 ; 9199 ; MA # ( 醙 → 醙 ) CJK COMPATIBILITY IDEOGRAPH-FAC4 → CJK
UNIFIED IDEOGRAPH-9199 #
+
+F9B7 ; 91B4 ; MA # ( 醴 → 醴 ) CJK COMPATIBILITY IDEOGRAPH-F9B7 → CJK
UNIFIED IDEOGRAPH-91B4 #
+
+2FA4 ; 91C6 ; MA #* ( ⾤ → 釆 ) KANGXI RADICAL DISTINGUISH → CJK UNIFIED
IDEOGRAPH-91C6 #
+
+F9E9 ; 91CC ; MA # ( 里 → 里 ) CJK COMPATIBILITY IDEOGRAPH-F9E9 → CJK
UNIFIED IDEOGRAPH-91CC #
+2FA5 ; 91CC ; MA #* ( ⾥ → 里 ) KANGXI RADICAL VILLAGE → CJK UNIFIED
IDEOGRAPH-91CC #
+
+F97E ; 91CF ; MA # ( 量 → 量 ) CJK COMPATIBILITY IDEOGRAPH-F97E → CJK
UNIFIED IDEOGRAPH-91CF #
+
+F90A ; 91D1 ; MA # ( 金 → 金 ) CJK COMPATIBILITY IDEOGRAPH-F90A → CJK
UNIFIED IDEOGRAPH-91D1 #
+2FA6 ; 91D1 ; MA #* ( ⾦ → 金 ) KANGXI RADICAL GOLD → CJK UNIFIED
IDEOGRAPH-91D1 #
+
+F9B1 ; 9234 ; MA # ( 鈴 → 鈴 ) CJK COMPATIBILITY IDEOGRAPH-F9B1 → CJK
UNIFIED IDEOGRAPH-9234 #
+
+2F9E7 ; 9238 ; MA # ( 鈸 → 鈸 ) CJK COMPATIBILITY IDEOGRAPH-2F9E7 →
CJK UNIFIED IDEOGRAPH-9238 #
+
+FAC5 ; 9276 ; MA # ( 鉶 → 鉶 ) CJK COMPATIBILITY IDEOGRAPH-FAC5 → CJK
UNIFIED IDEOGRAPH-9276 #
+
+2F9E8 ; 92D7 ; MA # ( 鋗 → 鋗 ) CJK COMPATIBILITY IDEOGRAPH-2F9E8 →
CJK UNIFIED IDEOGRAPH-92D7 #
+
+2F9E9 ; 92D8 ; MA # ( 鋘 → 鋘 ) CJK COMPATIBILITY IDEOGRAPH-2F9E9 →
CJK UNIFIED IDEOGRAPH-92D8 #
+
+2F9EA ; 927C ; MA # ( 鉼 → 鉼 ) CJK COMPATIBILITY IDEOGRAPH-2F9EA →
CJK UNIFIED IDEOGRAPH-927C #
+
+F93F ; 9304 ; MA # ( 錄 → 錄 ) CJK COMPATIBILITY IDEOGRAPH-F93F → CJK
UNIFIED IDEOGRAPH-9304 #
+
+F99B ; 934A ; MA # ( 鍊 → 鍊 ) CJK COMPATIBILITY IDEOGRAPH-F99B → CJK
UNIFIED IDEOGRAPH-934A #
+
+93AE ; 93AD ; MA # ( 鎮 → 鎭 ) CJK UNIFIED IDEOGRAPH-93AE → CJK UNIFIED
IDEOGRAPH-93AD #
+
+2F9EB ; 93F9 ; MA # ( 鏹 → 鏹 ) CJK COMPATIBILITY IDEOGRAPH-2F9EB →
CJK UNIFIED IDEOGRAPH-93F9 #
+
+2F9EC ; 9415 ; MA # ( 鐕 → 鐕 ) CJK COMPATIBILITY IDEOGRAPH-2F9EC →
CJK UNIFIED IDEOGRAPH-9415 #
+
+2F9ED ; 28BFA ; MA # ( 𨯺 → 𨯺 ) CJK COMPATIBILITY IDEOGRAPH-2F9ED →
CJK UNIFIED IDEOGRAPH-28BFA #
+
+2ED0 ; 9485 ; MA #* ( ⻐ → 钅 ) CJK RADICAL C-SIMPLIFIED GOLD → CJK
UNIFIED IDEOGRAPH-9485 #
+
+2ED1 ; 9577 ; MA #* ( ⻑ → 長 ) CJK RADICAL LONG ONE → CJK UNIFIED
IDEOGRAPH-9577 #
+2FA7 ; 9577 ; MA #* ( ⾧ → 長 ) KANGXI RADICAL LONG → CJK UNIFIED
IDEOGRAPH-9577 #
+
+2ED2 ; 9578 ; MA #* ( ⻒ → 镸 ) CJK RADICAL LONG TWO → CJK UNIFIED
IDEOGRAPH-9578 #
+
+2ED3 ; 957F ; MA #* ( ⻓ → 长 ) CJK RADICAL C-SIMPLIFIED LONG → CJK
UNIFIED IDEOGRAPH-957F #
+
+2FA8 ; 9580 ; MA #* ( ⾨ → 門 ) KANGXI RADICAL GATE → CJK UNIFIED
IDEOGRAPH-9580 #
+
+2F9EE ; 958B ; MA # ( 開 → 開 ) CJK COMPATIBILITY IDEOGRAPH-2F9EE →
CJK UNIFIED IDEOGRAPH-958B #
+
+2F9EF ; 4995 ; MA # ( 䦕 → 䦕 ) CJK COMPATIBILITY IDEOGRAPH-2F9EF →
CJK UNIFIED IDEOGRAPH-4995 #
+
+F986 ; 95AD ; MA # ( 閭 → 閭 ) CJK COMPATIBILITY IDEOGRAPH-F986 → CJK
UNIFIED IDEOGRAPH-95AD #
+
+2F9F0 ; 95B7 ; MA # ( 閷 → 閷 ) CJK COMPATIBILITY IDEOGRAPH-2F9F0 →
CJK UNIFIED IDEOGRAPH-95B7 #
+
+2F9F1 ; 28D77 ; MA # ( 𨵷 → 𨵷 ) CJK COMPATIBILITY IDEOGRAPH-2F9F1 →
CJK UNIFIED IDEOGRAPH-28D77 #
+
+2ED4 ; 95E8 ; MA #* ( ⻔ → 门 ) CJK RADICAL C-SIMPLIFIED GATE → CJK
UNIFIED IDEOGRAPH-95E8 #
+
+2FA9 ; 961C ; MA #* ( ⾩ → 阜 ) KANGXI RADICAL MOUND → CJK UNIFIED
IDEOGRAPH-961C #
+
+2ECF ; 961D ; MA #* ( ⻏ → 阝 ) CJK RADICAL CITY → CJK UNIFIED
IDEOGRAPH-961D #
+2ED6 ; 961D ; MA #* ( ⻖ → 阝 ) CJK RADICAL MOUND TWO → CJK UNIFIED
IDEOGRAPH-961D #
+
+F9C6 ; 962E ; MA # ( 阮 → 阮 ) CJK COMPATIBILITY IDEOGRAPH-F9C6 → CJK
UNIFIED IDEOGRAPH-962E #
+
+F951 ; 964B ; MA # ( 陋 → 陋 ) CJK COMPATIBILITY IDEOGRAPH-F951 → CJK
UNIFIED IDEOGRAPH-964B #
+
+FA09 ; 964D ; MA # ( 降 → 降 ) CJK COMPATIBILITY IDEOGRAPH-FA09 → CJK
UNIFIED IDEOGRAPH-964D #
+
+F959 ; 9675 ; MA # ( 陵 → 陵 ) CJK COMPATIBILITY IDEOGRAPH-F959 → CJK
UNIFIED IDEOGRAPH-9675 #
+
+F9D3 ; 9678 ; MA # ( 陸 → 陸 ) CJK COMPATIBILITY IDEOGRAPH-F9D3 → CJK
UNIFIED IDEOGRAPH-9678 #
+
+FAC6 ; 967C ; MA # ( 陼 → 陼 ) CJK COMPATIBILITY IDEOGRAPH-FAC6 → CJK
UNIFIED IDEOGRAPH-967C #
+
+F9DC ; 9686 ; MA # ( 隆 → 隆 ) CJK COMPATIBILITY IDEOGRAPH-F9DC → CJK
UNIFIED IDEOGRAPH-9686 #
+
+F9F1 ; 96A3 ; MA # ( 隣 → 隣 ) CJK COMPATIBILITY IDEOGRAPH-F9F1 → CJK
UNIFIED IDEOGRAPH-96A3 #
+
+2F9F2 ; 49E6 ; MA # ( 䧦 → 䧦 ) CJK COMPATIBILITY IDEOGRAPH-2F9F2 →
CJK UNIFIED IDEOGRAPH-49E6 #
+
+2FAA ; 96B6 ; MA #* ( ⾪ → 隶 ) KANGXI RADICAL SLAVE → CJK UNIFIED
IDEOGRAPH-96B6 #
+
+FA2F ; 96B7 ; MA # ( 隷 → 隷 ) CJK COMPATIBILITY IDEOGRAPH-FA2F → CJK
UNIFIED IDEOGRAPH-96B7 #
+96B8 ; 96B7 ; MA # ( 隸 → 隷 ) CJK UNIFIED IDEOGRAPH-96B8 → CJK UNIFIED
IDEOGRAPH-96B7 # →隸→
+F9B8 ; 96B7 ; MA # ( 隸 → 隷 ) CJK COMPATIBILITY IDEOGRAPH-F9B8 → CJK
UNIFIED IDEOGRAPH-96B7 #
+
+2FAB ; 96B9 ; MA #* ( ⾫ → 隹 ) KANGXI RADICAL SHORT TAILED BIRD → CJK
UNIFIED IDEOGRAPH-96B9 #
+
+2F9F3 ; 96C3 ; MA # ( 雃 → 雃 ) CJK COMPATIBILITY IDEOGRAPH-2F9F3 →
CJK UNIFIED IDEOGRAPH-96C3 #
+
+F9EA ; 96E2 ; MA # ( 離 → 離 ) CJK COMPATIBILITY IDEOGRAPH-F9EA → CJK
UNIFIED IDEOGRAPH-96E2 #
+
+FA68 ; 96E3 ; MA # ( 難 → 難 ) CJK COMPATIBILITY IDEOGRAPH-FA68 → CJK
UNIFIED IDEOGRAPH-96E3 #
+FAC7 ; 96E3 ; MA # ( 難 → 難 ) CJK COMPATIBILITY IDEOGRAPH-FAC7 → CJK
UNIFIED IDEOGRAPH-96E3 #
+
+2FAC ; 96E8 ; MA #* ( ⾬ → 雨 ) KANGXI RADICAL RAIN → CJK UNIFIED
IDEOGRAPH-96E8 #
+
+F9B2 ; 96F6 ; MA # ( 零 → 零 ) CJK COMPATIBILITY IDEOGRAPH-F9B2 → CJK
UNIFIED IDEOGRAPH-96F6 #
+
+F949 ; 96F7 ; MA # ( 雷 → 雷 ) CJK COMPATIBILITY IDEOGRAPH-F949 → CJK
UNIFIED IDEOGRAPH-96F7 #
+
+2F9F5 ; 9723 ; MA # ( 霣 → 霣 ) CJK COMPATIBILITY IDEOGRAPH-2F9F5 →
CJK UNIFIED IDEOGRAPH-9723 #
+
+2F9F6 ; 29145 ; MA # ( 𩅅 → 𩅅 ) CJK COMPATIBILITY IDEOGRAPH-2F9F6 →
CJK UNIFIED IDEOGRAPH-29145 #
+
+F938 ; 9732 ; MA # ( 露 → 露 ) CJK COMPATIBILITY IDEOGRAPH-F938 → CJK
UNIFIED IDEOGRAPH-9732 #
+
+F9B3 ; 9748 ; MA # ( 靈 → 靈 ) CJK COMPATIBILITY IDEOGRAPH-F9B3 → CJK
UNIFIED IDEOGRAPH-9748 #
+
+2FAD ; 9751 ; MA #* ( ⾭ → 靑 ) KANGXI RADICAL BLUE → CJK UNIFIED
IDEOGRAPH-9751 #
+
+2ED8 ; 9752 ; MA #* ( ⻘ → 青 ) CJK RADICAL BLUE → CJK UNIFIED
IDEOGRAPH-9752 #
+
+FA1C ; 9756 ; MA # ( 靖 → 靖 ) CJK COMPATIBILITY IDEOGRAPH-FA1C → CJK
UNIFIED IDEOGRAPH-9756 #
+FAC8 ; 9756 ; MA # ( 靖 → 靖 ) CJK COMPATIBILITY IDEOGRAPH-FAC8 → CJK
UNIFIED IDEOGRAPH-9756 #
+
+2F81C ; 291DF ; MA # ( 𩇟 → 𩇟 ) CJK COMPATIBILITY IDEOGRAPH-2F81C →
CJK UNIFIED IDEOGRAPH-291DF #
+
+2FAE ; 975E ; MA #* ( ⾮ → 非 ) KANGXI RADICAL WRONG → CJK UNIFIED
IDEOGRAPH-975E #
+
+2FAF ; 9762 ; MA #* ( ⾯ → 面 ) KANGXI RADICAL FACE → CJK UNIFIED
IDEOGRAPH-9762 #
+
+2F9F7 ; 2921A ; MA # ( 𩈚 → 𩈚 ) CJK COMPATIBILITY IDEOGRAPH-2F9F7 →
CJK UNIFIED IDEOGRAPH-2921A #
+
+2FB0 ; 9769 ; MA #* ( ⾰ → 革 ) KANGXI RADICAL LEATHER → CJK UNIFIED
IDEOGRAPH-9769 #
+
+2F9F8 ; 4A6E ; MA # ( 䩮 → 䩮 ) CJK COMPATIBILITY IDEOGRAPH-2F9F8 →
CJK UNIFIED IDEOGRAPH-4A6E #
+
+2F9F9 ; 4A76 ; MA # ( 䩶 → 䩶 ) CJK COMPATIBILITY IDEOGRAPH-2F9F9 →
CJK UNIFIED IDEOGRAPH-4A76 #
+
+2FB1 ; 97CB ; MA #* ( ⾱ → 韋 ) KANGXI RADICAL TANNED LEATHER → CJK
UNIFIED IDEOGRAPH-97CB #
+
+FAC9 ; 97DB ; MA # ( 韛 → 韛 ) CJK COMPATIBILITY IDEOGRAPH-FAC9 → CJK
UNIFIED IDEOGRAPH-97DB #
+
+2F9FA ; 97E0 ; MA # ( 韠 → 韠 ) CJK COMPATIBILITY IDEOGRAPH-2F9FA →
CJK UNIFIED IDEOGRAPH-97E0 #
+
+2ED9 ; 97E6 ; MA #* ( ⻙ → 韦 ) CJK RADICAL C-SIMPLIFIED TANNED LEATHER →
CJK UNIFIED IDEOGRAPH-97E6 #
+
+2FB2 ; 97ED ; MA #* ( ⾲ → 韭 ) KANGXI RADICAL LEEK → CJK UNIFIED
IDEOGRAPH-97ED #
+
+2F9FB ; 2940A ; MA # ( 𩐊 → 𩐊 ) CJK COMPATIBILITY IDEOGRAPH-2F9FB →
CJK UNIFIED IDEOGRAPH-2940A #
+
+2FB3 ; 97F3 ; MA #* ( ⾳ → 音 ) KANGXI RADICAL SOUND → CJK UNIFIED
IDEOGRAPH-97F3 #
+
+FA69 ; 97FF ; MA # ( 響 → 響 ) CJK COMPATIBILITY IDEOGRAPH-FA69 → CJK
UNIFIED IDEOGRAPH-97FF #
+FACA ; 97FF ; MA # ( 響 → 響 ) CJK COMPATIBILITY IDEOGRAPH-FACA → CJK
UNIFIED IDEOGRAPH-97FF #
+
+2FB4 ; 9801 ; MA #* ( ⾴ → 頁 ) KANGXI RADICAL LEAF → CJK UNIFIED
IDEOGRAPH-9801 #
+
+2F9FC ; 4AB2 ; MA # ( 䪲 → 䪲 ) CJK COMPATIBILITY IDEOGRAPH-2F9FC →
CJK UNIFIED IDEOGRAPH-4AB2 #
+
+FACB ; 980B ; MA # ( 頋 → 頋 ) CJK COMPATIBILITY IDEOGRAPH-FACB → CJK
UNIFIED IDEOGRAPH-980B #
+2F9FE ; 980B ; MA # ( 頋 → 頋 ) CJK COMPATIBILITY IDEOGRAPH-2F9FE →
CJK UNIFIED IDEOGRAPH-980B #
+2F9FF ; 980B ; MA # ( 頋 → 頋 ) CJK COMPATIBILITY IDEOGRAPH-2F9FF →
CJK UNIFIED IDEOGRAPH-980B #
+
+F9B4 ; 9818 ; MA # ( 領 → 領 ) CJK COMPATIBILITY IDEOGRAPH-F9B4 → CJK
UNIFIED IDEOGRAPH-9818 #
+
+2FA00 ; 9829 ; MA # ( 頩 → 頩 ) CJK COMPATIBILITY IDEOGRAPH-2FA00 →
CJK UNIFIED IDEOGRAPH-9829 #
+
+2F9FD ; 29496 ; MA # ( 𩒖 → 𩒖 ) CJK COMPATIBILITY IDEOGRAPH-2F9FD →
CJK UNIFIED IDEOGRAPH-29496 #
+
+FA6A ; 983B ; MA # ( 頻 → 頻 ) CJK COMPATIBILITY IDEOGRAPH-FA6A → CJK
UNIFIED IDEOGRAPH-983B #
+FACC ; 983B ; MA # ( 頻 → 頻 ) CJK COMPATIBILITY IDEOGRAPH-FACC → CJK
UNIFIED IDEOGRAPH-983B #
+
+F9D0 ; 985E ; MA # ( 類 → 類 ) CJK COMPATIBILITY IDEOGRAPH-F9D0 → CJK
UNIFIED IDEOGRAPH-985E #
+
+2EDA ; 9875 ; MA #* ( ⻚ → 页 ) CJK RADICAL C-SIMPLIFIED LEAF → CJK
UNIFIED IDEOGRAPH-9875 #
+
+2FB5 ; 98A8 ; MA #* ( ⾵ → 風 ) KANGXI RADICAL WIND → CJK UNIFIED
IDEOGRAPH-98A8 #
+
+2FA01 ; 295B6 ; MA # ( 𩖶 → 𩖶 ) CJK COMPATIBILITY IDEOGRAPH-2FA01 →
CJK UNIFIED IDEOGRAPH-295B6 #
+
+2EDB ; 98CE ; MA #* ( ⻛ → 风 ) CJK RADICAL C-SIMPLIFIED WIND → CJK
UNIFIED IDEOGRAPH-98CE #
+
+2FB6 ; 98DB ; MA #* ( ⾶ → 飛 ) KANGXI RADICAL FLY → CJK UNIFIED
IDEOGRAPH-98DB #
+
+2EDC ; 98DE ; MA #* ( ⻜ → 飞 ) CJK RADICAL C-SIMPLIFIED FLY → CJK UNIFIED
IDEOGRAPH-98DE #
+
+2EDD ; 98DF ; MA #* ( ⻝ → 食 ) CJK RADICAL EAT ONE → CJK UNIFIED
IDEOGRAPH-98DF #
+2FB7 ; 98DF ; MA #* ( ⾷ → 食 ) KANGXI RADICAL EAT → CJK UNIFIED
IDEOGRAPH-98DF #
+
+2EDF ; 98E0 ; MA #* ( ⻟ → 飠 ) CJK RADICAL EAT THREE → CJK UNIFIED
IDEOGRAPH-98E0 #
+
+2FA02 ; 98E2 ; MA # ( 飢 → 飢 ) CJK COMPATIBILITY IDEOGRAPH-2FA02 →
CJK UNIFIED IDEOGRAPH-98E2 #
+
+FA2A ; 98EF ; MA # ( 飯 → 飯 ) CJK COMPATIBILITY IDEOGRAPH-FA2A → CJK
UNIFIED IDEOGRAPH-98EF #
+
+FA2B ; 98FC ; MA # ( 飼 → 飼 ) CJK COMPATIBILITY IDEOGRAPH-FA2B → CJK
UNIFIED IDEOGRAPH-98FC #
+
+2FA03 ; 4B33 ; MA # ( 䬳 → 䬳 ) CJK COMPATIBILITY IDEOGRAPH-2FA03 →
CJK UNIFIED IDEOGRAPH-4B33 #
+
+FA2C ; 9928 ; MA # ( 館 → 館 ) CJK COMPATIBILITY IDEOGRAPH-FA2C → CJK
UNIFIED IDEOGRAPH-9928 #
+
+2FA04 ; 9929 ; MA # ( 餩 → 餩 ) CJK COMPATIBILITY IDEOGRAPH-2FA04 →
CJK UNIFIED IDEOGRAPH-9929 #
+
+2EE0 ; 9963 ; MA #* ( ⻠ → 饣 ) CJK RADICAL C-SIMPLIFIED EAT → CJK UNIFIED
IDEOGRAPH-9963 #
+
+2FB8 ; 9996 ; MA #* ( ⾸ → 首 ) KANGXI RADICAL HEAD → CJK UNIFIED
IDEOGRAPH-9996 #
+
+2FB9 ; 9999 ; MA #* ( ⾹ → 香 ) KANGXI RADICAL FRAGRANT → CJK UNIFIED
IDEOGRAPH-9999 #
+
+2FA05 ; 99A7 ; MA # ( 馧 → 馧 ) CJK COMPATIBILITY IDEOGRAPH-2FA05 →
CJK UNIFIED IDEOGRAPH-99A7 #
+
+2FBA ; 99AC ; MA #* ( ⾺ → 馬 ) KANGXI RADICAL HORSE → CJK UNIFIED
IDEOGRAPH-99AC #
+
+2FA06 ; 99C2 ; MA # ( 駂 → 駂 ) CJK COMPATIBILITY IDEOGRAPH-2FA06 →
CJK UNIFIED IDEOGRAPH-99C2 #
+
+F91A ; 99F1 ; MA # ( 駱 → 駱 ) CJK COMPATIBILITY IDEOGRAPH-F91A → CJK
UNIFIED IDEOGRAPH-99F1 #
+
+2FA07 ; 99FE ; MA # ( 駾 → 駾 ) CJK COMPATIBILITY IDEOGRAPH-2FA07 →
CJK UNIFIED IDEOGRAPH-99FE #
+
+F987 ; 9A6A ; MA # ( 驪 → 驪 ) CJK COMPATIBILITY IDEOGRAPH-F987 → CJK
UNIFIED IDEOGRAPH-9A6A #
+
+2EE2 ; 9A6C ; MA #* ( ⻢ → 马 ) CJK RADICAL C-SIMPLIFIED HORSE → CJK
UNIFIED IDEOGRAPH-9A6C #
+
+2FBB ; 9AA8 ; MA #* ( ⾻ → 骨 ) KANGXI RADICAL BONE → CJK UNIFIED
IDEOGRAPH-9AA8 #
+
+2FA08 ; 4BCE ; MA # ( 䯎 → 䯎 ) CJK COMPATIBILITY IDEOGRAPH-2FA08 →
CJK UNIFIED IDEOGRAPH-4BCE #
+
+2FBC ; 9AD8 ; MA #* ( ⾼ → 高 ) KANGXI RADICAL TALL → CJK UNIFIED
IDEOGRAPH-9AD8 #
+
+2FBD ; 9ADF ; MA #* ( ⾽ → 髟 ) KANGXI RADICAL HAIR → CJK UNIFIED
IDEOGRAPH-9ADF #
+
+2FA09 ; 29B30 ; MA # ( 𩬰 → 𩬰 ) CJK COMPATIBILITY IDEOGRAPH-2FA09 →
CJK UNIFIED IDEOGRAPH-29B30 #
+
+FACD ; 9B12 ; MA # ( 鬒 → 鬒 ) CJK COMPATIBILITY IDEOGRAPH-FACD → CJK
UNIFIED IDEOGRAPH-9B12 #
+2FA0A ; 9B12 ; MA # ( 鬒 → 鬒 ) CJK COMPATIBILITY IDEOGRAPH-2FA0A →
CJK UNIFIED IDEOGRAPH-9B12 #
+
+2FBE ; 9B25 ; MA #* ( ⾾ → 鬥 ) KANGXI RADICAL FIGHT → CJK UNIFIED
IDEOGRAPH-9B25 #
+
+2FBF ; 9B2F ; MA #* ( ⾿ → 鬯 ) KANGXI RADICAL SACRIFICIAL WINE → CJK
UNIFIED IDEOGRAPH-9B2F #
+
+2FC0 ; 9B32 ; MA #* ( ⿀ → 鬲 ) KANGXI RADICAL CAULDRON → CJK UNIFIED
IDEOGRAPH-9B32 #
+
+2FC1 ; 9B3C ; MA #* ( ⿁ → 鬼 ) KANGXI RADICAL GHOST → CJK UNIFIED
IDEOGRAPH-9B3C #
+2EE4 ; 9B3C ; MA #* ( ⻤ → 鬼 ) CJK RADICAL GHOST → CJK UNIFIED
IDEOGRAPH-9B3C #
+
+2FC2 ; 9B5A ; MA #* ( ⿂ → 魚 ) KANGXI RADICAL FISH → CJK UNIFIED
IDEOGRAPH-9B5A #
+
+F939 ; 9B6F ; MA # ( 魯 → 魯 ) CJK COMPATIBILITY IDEOGRAPH-F939 → CJK
UNIFIED IDEOGRAPH-9B6F #
+
+2FA0B ; 9C40 ; MA # ( 鱀 → 鱀 ) CJK COMPATIBILITY IDEOGRAPH-2FA0B →
CJK UNIFIED IDEOGRAPH-9C40 #
+
+F9F2 ; 9C57 ; MA # ( 鱗 → 鱗 ) CJK COMPATIBILITY IDEOGRAPH-F9F2 → CJK
UNIFIED IDEOGRAPH-9C57 #
+
+2EE5 ; 9C7C ; MA #* ( ⻥ → 鱼 ) CJK RADICAL C-SIMPLIFIED FISH → CJK
UNIFIED IDEOGRAPH-9C7C #
+
+2FC3 ; 9CE5 ; MA #* ( ⿃ → 鳥 ) KANGXI RADICAL BIRD → CJK UNIFIED
IDEOGRAPH-9CE5 #
+
+2FA0C ; 9CFD ; MA # ( 鳽 → 鳽 ) CJK COMPATIBILITY IDEOGRAPH-2FA0C →
CJK UNIFIED IDEOGRAPH-9CFD #
+
+2FA0D ; 4CCE ; MA # ( 䳎 → 䳎 ) CJK COMPATIBILITY IDEOGRAPH-2FA0D →
CJK UNIFIED IDEOGRAPH-4CCE #
+
+2FA0F ; 9D67 ; MA # ( 鵧 → 鵧 ) CJK COMPATIBILITY IDEOGRAPH-2FA0F →
CJK UNIFIED IDEOGRAPH-9D67 #
+
+2FA0E ; 4CED ; MA # ( 䳭 → 䳭 ) CJK COMPATIBILITY IDEOGRAPH-2FA0E →
CJK UNIFIED IDEOGRAPH-4CED #
+
+2FA10 ; 2A0CE ; MA # ( 𪃎 → 𪃎 ) CJK COMPATIBILITY IDEOGRAPH-2FA10 →
CJK UNIFIED IDEOGRAPH-2A0CE #
+
+FA2D ; 9DB4 ; MA # ( 鶴 → 鶴 ) CJK COMPATIBILITY IDEOGRAPH-FA2D → CJK
UNIFIED IDEOGRAPH-9DB4 #
+
+2FA12 ; 2A105 ; MA # ( 𪄅 → 𪄅 ) CJK COMPATIBILITY IDEOGRAPH-2FA12 →
CJK UNIFIED IDEOGRAPH-2A105 #
+
+2FA11 ; 4CF8 ; MA # ( 䳸 → 䳸 ) CJK COMPATIBILITY IDEOGRAPH-2FA11 →
CJK UNIFIED IDEOGRAPH-4CF8 #
+
+F93A ; 9DFA ; MA # ( 鷺 → 鷺 ) CJK COMPATIBILITY IDEOGRAPH-F93A → CJK
UNIFIED IDEOGRAPH-9DFA #
+
+2FA13 ; 2A20E ; MA # ( 𪈎 → 𪈎 ) CJK COMPATIBILITY IDEOGRAPH-2FA13 →
CJK UNIFIED IDEOGRAPH-2A20E #
+
+F920 ; 9E1E ; MA # ( 鸞 → 鸞 ) CJK COMPATIBILITY IDEOGRAPH-F920 → CJK
UNIFIED IDEOGRAPH-9E1E #
+
+9E43 ; 9E42 ; MA # ( 鹃 → 鹂 ) CJK UNIFIED IDEOGRAPH-9E43 → CJK UNIFIED
IDEOGRAPH-9E42 #
+
+2FC4 ; 9E75 ; MA #* ( ⿄ → 鹵 ) KANGXI RADICAL SALT → CJK UNIFIED
IDEOGRAPH-9E75 #
+
+F940 ; 9E7F ; MA # ( 鹿 → 鹿 ) CJK COMPATIBILITY IDEOGRAPH-F940 → CJK
UNIFIED IDEOGRAPH-9E7F #
+2FC5 ; 9E7F ; MA #* ( ⿅ → 鹿 ) KANGXI RADICAL DEER → CJK UNIFIED
IDEOGRAPH-9E7F #
+
+2FA14 ; 2A291 ; MA # ( 𪊑 → 𪊑 ) CJK COMPATIBILITY IDEOGRAPH-2FA14 →
CJK UNIFIED IDEOGRAPH-2A291 #
+
+F988 ; 9E97 ; MA # ( 麗 → 麗 ) CJK COMPATIBILITY IDEOGRAPH-F988 → CJK
UNIFIED IDEOGRAPH-9E97 #
+
+F9F3 ; 9E9F ; MA # ( 麟 → 麟 ) CJK COMPATIBILITY IDEOGRAPH-F9F3 → CJK
UNIFIED IDEOGRAPH-9E9F #
+
+2FC6 ; 9EA5 ; MA #* ( ⿆ → 麥 ) KANGXI RADICAL WHEAT → CJK UNIFIED
IDEOGRAPH-9EA5 #
+
+2EE8 ; 9EA6 ; MA #* ( ⻨ → 麦 ) CJK RADICAL SIMPLIFIED WHEAT → CJK UNIFIED
IDEOGRAPH-9EA6 #
+
+2FA15 ; 9EBB ; MA # ( 麻 → 麻 ) CJK COMPATIBILITY IDEOGRAPH-2FA15 →
CJK UNIFIED IDEOGRAPH-9EBB #
+2FC7 ; 9EBB ; MA #* ( ⿇ → 麻 ) KANGXI RADICAL HEMP → CJK UNIFIED
IDEOGRAPH-9EBB #
+
+2F88F ; 2A392 ; MA # ( 𪎒 → 𪎒 ) CJK COMPATIBILITY IDEOGRAPH-2F88F →
CJK UNIFIED IDEOGRAPH-2A392 #
+
+2FC8 ; 9EC3 ; MA #* ( ⿈ → 黃 ) KANGXI RADICAL YELLOW → CJK UNIFIED
IDEOGRAPH-9EC3 #
+
+2EE9 ; 9EC4 ; MA #* ( ⻩ → 黄 ) CJK RADICAL SIMPLIFIED YELLOW → CJK
UNIFIED IDEOGRAPH-9EC4 #
+
+2FC9 ; 9ECD ; MA #* ( ⿉ → 黍 ) KANGXI RADICAL MILLET → CJK UNIFIED
IDEOGRAPH-9ECD #
+
+F989 ; 9ECE ; MA # ( 黎 → 黎 ) CJK COMPATIBILITY IDEOGRAPH-F989 → CJK
UNIFIED IDEOGRAPH-9ECE #
+
+2FA16 ; 4D56 ; MA # ( 䵖 → 䵖 ) CJK COMPATIBILITY IDEOGRAPH-2FA16 →
CJK UNIFIED IDEOGRAPH-4D56 #
+
+2FCA ; 9ED1 ; MA #* ( ⿊ → 黑 ) KANGXI RADICAL BLACK → CJK UNIFIED
IDEOGRAPH-9ED1 #
+9ED2 ; 9ED1 ; MA # ( 黒 → 黑 ) CJK UNIFIED IDEOGRAPH-9ED2 → CJK UNIFIED
IDEOGRAPH-9ED1 # →⿊→
+
+FA3A ; 58A8 ; MA # ( 墨 → 墨 ) CJK COMPATIBILITY IDEOGRAPH-FA3A → CJK
UNIFIED IDEOGRAPH-58A8 #
+
+2FA17 ; 9EF9 ; MA # ( 黹 → 黹 ) CJK COMPATIBILITY IDEOGRAPH-2FA17 →
CJK UNIFIED IDEOGRAPH-9EF9 #
+2FCB ; 9EF9 ; MA #* ( ⿋ → 黹 ) KANGXI RADICAL EMBROIDERY → CJK UNIFIED
IDEOGRAPH-9EF9 #
+
+2FCC ; 9EFD ; MA #* ( ⿌ → 黽 ) KANGXI RADICAL FROG → CJK UNIFIED
IDEOGRAPH-9EFD #
+
+2FA19 ; 9F05 ; MA # ( 鼅 → 鼅 ) CJK COMPATIBILITY IDEOGRAPH-2FA19 →
CJK UNIFIED IDEOGRAPH-9F05 #
+
+2FA18 ; 9EFE ; MA # ( 黾 → 黾 ) CJK COMPATIBILITY IDEOGRAPH-2FA18 →
CJK UNIFIED IDEOGRAPH-9EFE #
+
+2FCD ; 9F0E ; MA #* ( ⿍ → 鼎 ) KANGXI RADICAL TRIPOD → CJK UNIFIED
IDEOGRAPH-9F0E #
+
+2FA1A ; 9F0F ; MA # ( 鼏 → 鼏 ) CJK COMPATIBILITY IDEOGRAPH-2FA1A →
CJK UNIFIED IDEOGRAPH-9F0F #
+
+2FCE ; 9F13 ; MA #* ( ⿎ → 鼓 ) KANGXI RADICAL DRUM → CJK UNIFIED
IDEOGRAPH-9F13 #
+
+2FA1B ; 9F16 ; MA # ( 鼖 → 鼖 ) CJK COMPATIBILITY IDEOGRAPH-2FA1B →
CJK UNIFIED IDEOGRAPH-9F16 #
+
+2FCF ; 9F20 ; MA #* ( ⿏ → 鼠 ) KANGXI RADICAL RAT → CJK UNIFIED
IDEOGRAPH-9F20 #
+
+2FA1C ; 9F3B ; MA # ( 鼻 → 鼻 ) CJK COMPATIBILITY IDEOGRAPH-2FA1C →
CJK UNIFIED IDEOGRAPH-9F3B #
+2FD0 ; 9F3B ; MA #* ( ⿐ → 鼻 ) KANGXI RADICAL NOSE → CJK UNIFIED
IDEOGRAPH-9F3B #
+
+FAD8 ; 9F43 ; MA # ( 齃 → 齃 ) CJK COMPATIBILITY IDEOGRAPH-FAD8 → CJK
UNIFIED IDEOGRAPH-9F43 #
+
+2FD1 ; 9F4A ; MA #* ( ⿑ → 齊 ) KANGXI RADICAL EVEN → CJK UNIFIED
IDEOGRAPH-9F4A #
+
+2EEC ; 9F50 ; MA #* ( ⻬ → 齐 ) CJK RADICAL C-SIMPLIFIED EVEN → CJK
UNIFIED IDEOGRAPH-9F50 #
+
+2FD2 ; 9F52 ; MA #* ( ⿒ → 齒 ) KANGXI RADICAL TOOTH → CJK UNIFIED
IDEOGRAPH-9F52 #
+
+2FA1D ; 2A600 ; MA # ( 𪘀 → 𪘀 ) CJK COMPATIBILITY IDEOGRAPH-2FA1D →
CJK UNIFIED IDEOGRAPH-2A600 #
+
+2EEE ; 9F7F ; MA #* ( ⻮ → 齿 ) CJK RADICAL C-SIMPLIFIED TOOTH → CJK
UNIFIED IDEOGRAPH-9F7F #
+
+F9C4 ; 9F8D ; MA # ( 龍 → 龍 ) CJK COMPATIBILITY IDEOGRAPH-F9C4 → CJK
UNIFIED IDEOGRAPH-9F8D #
+2FD3 ; 9F8D ; MA #* ( ⿓ → 龍 ) KANGXI RADICAL DRAGON → CJK UNIFIED
IDEOGRAPH-9F8D #
+
+FAD9 ; 9F8E ; MA # ( 龎 → 龎 ) CJK COMPATIBILITY IDEOGRAPH-FAD9 → CJK
UNIFIED IDEOGRAPH-9F8E #
+
+2EF0 ; 9F99 ; MA #* ( ⻰ → 龙 ) CJK RADICAL C-SIMPLIFIED DRAGON → CJK
UNIFIED IDEOGRAPH-9F99 #
+
+F907 ; 9F9C ; MA # ( 龜 → 龜 ) CJK COMPATIBILITY IDEOGRAPH-F907 → CJK
UNIFIED IDEOGRAPH-9F9C #
+F908 ; 9F9C ; MA # ( 龜 → 龜 ) CJK COMPATIBILITY IDEOGRAPH-F908 → CJK
UNIFIED IDEOGRAPH-9F9C #
+FACE ; 9F9C ; MA # ( 龜 → 龜 ) CJK COMPATIBILITY IDEOGRAPH-FACE → CJK
UNIFIED IDEOGRAPH-9F9C #
+2FD4 ; 9F9C ; MA #* ( ⿔ → 龜 ) KANGXI RADICAL TURTLE → CJK UNIFIED
IDEOGRAPH-9F9C #
+
+2EF3 ; 9F9F ; MA #* ( ⻳ → 龟 ) CJK RADICAL C-SIMPLIFIED TURTLE → CJK
UNIFIED IDEOGRAPH-9F9F #
+
+2FD5 ; 9FA0 ; MA #* ( ⿕ → 龠 ) KANGXI RADICAL FLUTE → CJK UNIFIED
IDEOGRAPH-9FA0 #
+
+# total: 6311
diff --git a/admin/unidata/unidata-gen.el b/admin/unidata/unidata-gen.el
index d6b5a476bb..ad72eed995 100644
--- a/admin/unidata/unidata-gen.el
+++ b/admin/unidata/unidata-gen.el
@@ -1449,20 +1449,24 @@ Property value is a symbol `o' (Open), `c' (Close), or
`n' (None)."
(format ";;; %s ends here\n" basename)))))
(or noninteractive (message "Generating %s...done" file)))
-(defun unidata-gen-charprop (&optional charprop-file)
+(defun unidata-gen-charprop (&optional charprop-file text)
(or charprop-file (setq charprop-file (pop command-line-args-left)))
(with-temp-file charprop-file
(insert ";; Automatically generated by unidata-gen.el."
" -*- lexical-binding: t -*-\n"
";; See the admin/unidata/ directory in the Emacs sources.\n")
- (dolist (elt unidata-file-alist)
- (dolist (proplist (cdr elt))
- (insert (format "(define-char-code-property '%S %S\n %S)\n"
- (unidata-prop-prop proplist) (car elt)
- (unidata-prop-docstring proplist)))))
+ (if text
+ (insert text)
+ (dolist (elt unidata-file-alist)
+ (dolist (proplist (cdr elt))
+ (insert (format "(define-char-code-property '%S %S\n %S)\n"
+ (unidata-prop-prop proplist) (car elt)
+ (unidata-prop-docstring proplist))))))
(or noninteractive (message "Writing %s..." charprop-file))
(insert "\n"
- "(provide 'charprop)\n"
+ (format "(provide '%s)\n"
+ (file-name-sans-extension
+ (file-name-nondirectory charprop-file)))
"\n"
";; Local Variables:\n"
";; coding: utf-8\n"
@@ -1473,6 +1477,171 @@ Property value is a symbol `o' (Open), `c' (Close), or
`n' (None)."
(format ";;; %s ends here\n"
(file-name-nondirectory charprop-file)))))
+(defun unidata-gen-scripts (&optional file)
+ ;; Running from Makefile.
+ (unless file
+ (setq file (pop command-line-args-left)))
+ (let ((aliases (unidata-gen--read-script-aliases))
+ (table (make-char-table nil))
+ (segmented (make-hash-table :test #'equal)))
+ ;; First parse the scripts.
+ (with-temp-buffer
+ (unidata-gen--insert-file "Scripts.txt")
+ (while (not (eobp))
+ ;; 1700..1711 ; Tagalog # Lo [18] TAGALOG LETTER A..TAGALOG
+ (when (looking-at "\\([0-9A-F]+\\)\\(?:\\.\\.\\([0-9A-F]+\\)\\)? +;
+\\([^ ]+\\) +#")
+ (let ((start (string-to-number (match-string 1) 16))
+ (end (and (match-string 2)
+ (string-to-number (match-string 2) 16)))
+ (scripts (list (intern (string-replace
+ "_" "-"
+ (downcase (match-string 3)))))))
+ (set-char-table-range
+ table (if end (cons start end) start) scripts)))
+ (forward-line 1)))
+
+ ;; Then parse the file that lists "other scripts" that characters
+ ;; may appear in, and add those.
+ (with-temp-buffer
+ (unidata-gen--insert-file "ScriptExtensions.txt")
+ (while (not (eobp))
+ ;; 102E0 ; Arab Copt # Mn COPTIC EPACT THOUSANDS MARK
+ (when (looking-at "\\([0-9A-F]+\\)\\(?:\\.\\.\\([0-9A-F]+\\)\\)? +;
+\\([^#]+\\)")
+ (let ((start (string-to-number (match-string 1) 16))
+ (end (and (match-string 2)
+ (string-to-number (match-string 2) 16)))
+ (scripts
+ (mapcar
+ (lambda (alias)
+ (intern (string-replace
+ "_" "-" (downcase
+ (gethash alias aliases)))))
+ (split-string (string-trim (match-string 3))))))
+ (dolist (script scripts)
+ (dotimes (i (- (1+ (or end start)) start))
+ (set-char-table-range
+ table (+ i start)
+ (append (elt table (+ i start)) (list script)))))))
+ (forward-line 1)))
+
+ ;; Then go through the data and collect into buckets based on
+ ;; identical script lists.
+ (map-char-table
+ (lambda (key value)
+ ;; `map-char-table' is reused, so copy it.
+ (push (if (consp key)
+ (cons (car key) (cdr key))
+ key)
+ ;; Keep the first element first, but sort the rest.
+ (gethash (cons (car value)
+ (sort (remq (car value) value) #'string<))
+ segmented)))
+ table)
+
+ ;; Then go through the data and collect into buckets based on
+ (let ((scripts nil))
+ (maphash
+ (lambda (segment chars)
+ (push (cons segment chars) scripts))
+ segmented)
+ (setq scripts (sort scripts (lambda (s1 s2)
+ (string< (caar s1) (caar s2)))))
+ (with-temp-buffer
+ (insert "(textsec--create-script-table '(\n")
+ (dolist (script scripts)
+ (insert "(" (prin1-to-string (car script)) "\n")
+ (insert " " (prin1-to-string (cdr script)))
+ (insert ")\n"))
+ (insert "))\n")
+ ;; Write the file.
+ (unidata-gen-charprop file (buffer-string))))))
+
+(defun unidata-gen--read-script-aliases ()
+ (let ((aliases (make-hash-table :test #'equal)))
+ (with-temp-buffer
+ (unidata-gen--insert-file "PropertyValueAliases.txt")
+ (unless (re-search-forward "^# Script " nil t)
+ (error "Can't find the Script section"))
+ (forward-line 2)
+ (while (looking-at "sc *;")
+ (let ((elem (split-string (buffer-substring (point)
(line-end-position))
+ ";" nil "[ \t]+")))
+ (setf (gethash (nth 1 elem) aliases)
+ (nth 2 elem)))
+ (forward-line 1))
+ aliases)))
+
+(defun unidata-gen--insert-file (name)
+ (insert-file-contents
+ (expand-file-name (concat "../admin/unidata/" name)
+ data-directory)))
+
+(defun unidata-gen-confusable (&optional file)
+ ;; Running from Makefile.
+ (unless file
+ (setq file (pop command-line-args-left)))
+ (let ((regexp
+ (concat "^\\([[:xdigit:]]+\\)"
+ "[ \t]*;[ \t]*"
+ "\\([[:space:][:xdigit:]]+\\)"
+ "[ \t]*;"))
+ (map (make-hash-table)))
+ (with-temp-buffer
+ (unidata-gen--insert-file "confusables.txt")
+ (while (re-search-forward regexp nil t)
+ (let ((from (match-string 1))
+ (to (string-trim (match-string 2))))
+ (setf (gethash (string-to-number from 16) map)
+ (apply #'string (mapcar (lambda (string)
+ (string-to-number string 16))
+ (split-string to)))))))
+ (with-temp-buffer
+ (insert "(defconst uni-confusable-table\n")
+ (let ((print-length nil))
+ (prin1 map (current-buffer)))
+ (insert ")")
+ (unidata-gen-charprop file (buffer-string)))))
+
+(defun unidata-gen-idna-mapping (&optional file)
+ ;; Running from Makefile.
+ (unless file
+ (setq file (pop command-line-args-left)))
+ (let ((map (make-char-table nil)))
+ (with-temp-buffer
+ (unidata-gen--insert-file "IdnaMappingTable.txt")
+ (while (re-search-forward
"^\\([0-9A-F]+\\)\\(?:\\.\\.\\([0-9A-F]+\\)\\)? +; +\\([^ ]+\\) +\\(?:; +\\([
0-9A-F]+\\)\\)?"
+ nil t)
+ (let ((start (match-string 1))
+ (end (match-string 2))
+ (status (match-string 3))
+ (mapped (match-string 4)))
+ ;; Make reading the file slightly faster by using `t'
+ ;; instead of `disallowed' all over the place.
+ (when (string-match-p "\\`disallowed" status)
+ (setq status "t"))
+ (unless (or (equal status "valid")
+ (equal status "deviation"))
+ (set-char-table-range
+ map
+ (if end
+ (cons (string-to-number start 16)
+ (string-to-number end 16))
+ (string-to-number start 16))
+ (cond
+ ((equal status "mapped")
+ (apply #'string
+ (mapcar (lambda (char)
+ (string-to-number char 16))
+ (split-string (string-trim mapped)))))
+ (t
+ (intern status))))))))
+ (with-temp-buffer
+ (insert "(defconst idna-mapping-table\n")
+ (let ((print-length nil))
+ (prin1 map (current-buffer)))
+ (insert ")")
+ (unidata-gen-charprop file (buffer-string)))))
+
;;; unidata-gen.el ends here
diff --git a/configure.ac b/configure.ac
index baf8c8018e..9f4d5db43f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2639,6 +2639,7 @@ fail;
AC_DEFINE(HAVE_X11R6, 1,
[Define to 1 if you have the X11R6 or newer version of Xlib.])
AC_DEFINE(HAVE_X_I18N, 1, [Define if you have usable i18n support.])
+ AC_CHECK_MEMBERS([XICCallback.callback], [], [], [#include <X11/Xlib.h>])
## inoue@ainet.or.jp says Solaris has a bug related to X11R6-style
## XIM support.
case "$opsys" in
@@ -2806,9 +2807,6 @@ if test "${opsys}" != "mingw32"; then
AC_DEFINE([GLIB_DISABLE_DEPRECATION_WARNINGS], [1],
[Define to 1 to disable Glib deprecation warnings.])
fi
- if test "$window_system" = pgtk; then
- GLIB_GSETTINGS
- fi
else
check_gtk2=yes
gtk3_pkg_errors="$GTK_PKG_ERRORS "
@@ -2913,40 +2911,6 @@ if test "${HAVE_GTK}" = "yes"; then
fi
fi
-
-dnl Enable xwidgets if GTK3 and WebKitGTK+ are available.
-dnl Enable xwidgets if macOS Cocoa and WebKit framework are available.
-HAVE_XWIDGETS=no
-XWIDGETS_OBJ=
-if test "$with_xwidgets" != "no"; then
- if test "$USE_GTK_TOOLKIT" = "GTK3" && test "$window_system" != "none"; then
- WEBKIT_REQUIRED=2.12
- WEBKIT_MODULES="webkit2gtk-4.0 >= $WEBKIT_REQUIRED"
- EMACS_CHECK_MODULES([WEBKIT], [$WEBKIT_MODULES])
- HAVE_XWIDGETS=$HAVE_WEBKIT
- XWIDGETS_OBJ="xwidget.o"
- elif test "${NS_IMPL_COCOA}" = "yes"; then
- dnl FIXME: Check framework WebKit2
- dnl WEBKIT_REQUIRED=M.m.p
- WEBKIT_LIBS="-Wl,-framework -Wl,WebKit"
- WEBKIT_CFLAGS="-I/System/Library/Frameworks/WebKit.framework/Headers"
- HAVE_WEBKIT="yes"
- HAVE_XWIDGETS=$HAVE_WEBKIT
- XWIDGETS_OBJ="xwidget.o"
- NS_OBJC_OBJ="$NS_OBJC_OBJ nsxwidget.o"
- dnl Update NS_OBJC_OBJ with added nsxwidget.o
- AC_SUBST(NS_OBJC_OBJ)
- else
- AC_MSG_ERROR([xwidgets requested, it requires GTK3 as X window toolkit or
macOS Cocoa as window system.])
- fi
-
- test $HAVE_XWIDGETS = yes ||
- AC_MSG_ERROR([xwidgets requested but WebKitGTK+ or WebKit framework not
found.])
-
- AC_DEFINE([HAVE_XWIDGETS], 1, [Define to 1 if you have xwidgets support.])
-fi
-AC_SUBST(XWIDGETS_OBJ)
-
CFLAGS=$OLD_CFLAGS
LIBS=$OLD_LIBS
@@ -3409,41 +3373,6 @@ if test "${with_xim}" != "no"; then
[Define to 1 to default runtime use of XIM to on.])
fi
-
-if test "${HAVE_XIM}" != "no"; then
- late_CFLAGS=$CFLAGS
- if test "$GCC" = yes; then
- CFLAGS="$CFLAGS --pedantic-errors"
- fi
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-#include <X11/Xlib.h>
-#include <X11/Xresource.h>]],
-[[Display *display;
-XrmDatabase db;
-char *res_name;
-char *res_class;
-XIDProc *callback;
-XPointer *client_data;
-#ifndef __GNUC__
-/* If we're not using GCC, it's probably not XFree86, and this is
- probably right, but we can't use something like --pedantic-errors. */
-extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*,
- char*, XIMProc, XPointer*);
-#endif
-(void)XRegisterIMInstantiateCallback(display, db, res_name, res_class,
callback,
- client_data);]])],
- [emacs_cv_arg6_star=yes])
- AH_TEMPLATE(XRegisterIMInstantiateCallback_arg6,
- [Define to the type of the 6th arg of XRegisterIMInstantiateCallback,
-either XPointer or XPointer*.])dnl
- if test "$emacs_cv_arg6_star" = yes; then
- AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer*])
- else
- AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer])
- fi
- CFLAGS=$late_CFLAGS
-fi
-
# Check for XRender
HAVE_XRENDER=no
if test "${HAVE_X11}" = "yes"; then
@@ -3468,6 +3397,13 @@ if test "${HAVE_X11}" = "yes"; then
CAIRO_MODULE="cairo >= $CAIRO_REQUIRED"
EMACS_CHECK_MODULES(CAIRO, $CAIRO_MODULE)
if test $HAVE_CAIRO = yes; then
+ CAIRO_XCB_MODULE="cairo-xcb >= $CAIRO_REQUIRED"
+ EMACS_CHECK_MODULES(CAIRO_XCB, $CAIRO_XCB_MODULE)
+ if test $HAVE_CAIRO_XCB = yes; then
+ CAIRO_CFLAGS="$CAIRO_CFLAGS $CAIRO_XCB_CFLAGS"
+ CAIRO_LIBS="$CAIRO_LIBS $CAIRO_XCB_LIBS"
+ AC_DEFINE(USE_CAIRO_XCB, 1, [Define to 1 if cairo XCB surfaces are
available.])
+ fi
AC_DEFINE(USE_CAIRO, 1, [Define to 1 if using cairo.])
CFLAGS="$CFLAGS $CAIRO_CFLAGS"
LIBS="$LIBS $CAIRO_LIBS"
@@ -3479,6 +3415,51 @@ if test "${HAVE_X11}" = "yes"; then
fi
fi
+dnl Enable xwidgets if GTK3 and WebKitGTK+ are available.
+dnl Enable xwidgets if macOS Cocoa and WebKit framework are available.
+HAVE_XWIDGETS=no
+XWIDGETS_OBJ=
+if test "$with_xwidgets" != "no"; then
+ if test "$USE_GTK_TOOLKIT" = "GTK3" && test "$window_system" != "none"; then
+ WEBKIT_REQUIRED=2.12
+ WEBKIT_MODULES="webkit2gtk-4.0 >= $WEBKIT_REQUIRED"
+ EMACS_CHECK_MODULES([WEBKIT], [$WEBKIT_MODULES])
+ HAVE_XWIDGETS=$HAVE_WEBKIT
+ XWIDGETS_OBJ="xwidget.o"
+ if test "$HAVE_X_WINDOWS" = "yes" && test "${with_cairo}" = "no"; then
+ CAIRO_XLIB_MODULES="cairo >= 1.8.0 cairo-xlib >= 1.8.0"
+ EMACS_CHECK_MODULES(CAIRO_XLIB, $CAIRO_XLIB_MODULES)
+ if test $HAVE_CAIRO_XLIB = "yes"; then
+ CAIRO_CFLAGS="$CAIRO_XLIB_CFLAGS"
+ CAIRO_LIBS="$CAIRO_XLIB_LIBS"
+ AC_SUBST(CAIRO_CFLAGS)
+ AC_SUBST(CAIRO_LIBS)
+ else
+ AC_MSG_ERROR([xwidgets requested, but a suitable cairo installation
wasn't found])
+ fi
+ fi
+ elif test "${NS_IMPL_COCOA}" = "yes"; then
+ dnl FIXME: Check framework WebKit2
+ dnl WEBKIT_REQUIRED=M.m.p
+ WEBKIT_LIBS="-Wl,-framework -Wl,WebKit"
+ WEBKIT_CFLAGS="-I/System/Library/Frameworks/WebKit.framework/Headers"
+ HAVE_WEBKIT="yes"
+ HAVE_XWIDGETS=$HAVE_WEBKIT
+ XWIDGETS_OBJ="xwidget.o"
+ NS_OBJC_OBJ="$NS_OBJC_OBJ nsxwidget.o"
+ dnl Update NS_OBJC_OBJ with added nsxwidget.o
+ AC_SUBST(NS_OBJC_OBJ)
+ else
+ AC_MSG_ERROR([xwidgets requested, it requires GTK3 as X window toolkit or
macOS Cocoa as window system.])
+ fi
+
+ test $HAVE_XWIDGETS = yes ||
+ AC_MSG_ERROR([xwidgets requested but WebKitGTK+ or WebKit framework not
found.])
+
+ AC_DEFINE([HAVE_XWIDGETS], 1, [Define to 1 if you have xwidgets support.])
+fi
+AC_SUBST(XWIDGETS_OBJ)
+
if test "$window_system" = "pgtk"; then
CAIRO_REQUIRED=1.12.0
CAIRO_MODULE="cairo >= $CAIRO_REQUIRED"
@@ -3750,20 +3731,24 @@ AC_SUBST(LIBOTF_LIBS)
AC_SUBST(M17N_FLT_CFLAGS)
AC_SUBST(M17N_FLT_LIBS)
+XCB_LIBS=
if test "${HAVE_X11}" = "yes"; then
AC_CHECK_HEADER(X11/Xlib-xcb.h,
AC_CHECK_LIB(xcb, xcb_translate_coordinates, HAVE_XCB=yes))
if test "${HAVE_XCB}" = "yes"; then
AC_CHECK_LIB(X11-xcb, XGetXCBConnection, HAVE_X11_XCB=yes)
if test "${HAVE_X11_XCB}" = "yes"; then
- AC_DEFINE(USE_XCB, 1,
+ AC_CHECK_LIB(xcb-util, xcb_aux_sync, HAVE_XCB_UTIL=yes)
+ if test "${HAVE_XCB_UTIL}" = "yes"; then
+ AC_DEFINE(USE_XCB, 1,
[Define to 1 if you have the XCB library and X11-XCB library for mixed
- X11/XCB programming.])
- XCB_LIBS="-lX11-xcb -lxcb"
- AC_SUBST(XCB_LIBS)
+ X11/XCB programming.])
+ XCB_LIBS="-lX11-xcb -lxcb -lxcb-util"
+ fi
fi
fi
fi
+AC_SUBST(XCB_LIBS)
### Use -lXpm if available, unless '--with-xpm=no'.
### mingw32 doesn't use -lXpm, since it loads the library dynamically.
@@ -4666,7 +4651,7 @@ AC_CHECK_HEADERS(
]])])
AC_SUBST([HAVE_SECCOMP])
-EMACS_CHECK_MODULES([LIBSECCOMP], [libseccomp >= 2.4.0])
+EMACS_CHECK_MODULES([LIBSECCOMP], [libseccomp >= 2.5.2])
AC_SUBST([HAVE_LIBSECCOMP])
AC_SUBST([LIBSECCOMP_LIBS])
AC_SUBST([LIBSECCOMP_CFLAGS])
diff --git a/doc/emacs/buffers.texi b/doc/emacs/buffers.texi
index 8a8584689f..94e9d2760e 100644
--- a/doc/emacs/buffers.texi
+++ b/doc/emacs/buffers.texi
@@ -629,7 +629,6 @@ buffer, but killing an indirect buffer has no effect on its
base buffer.
One way to use indirect buffers is to display multiple views of an
outline. @xref{Outline Views}.
-@vindex clone-indirect-buffer-hook
A quick and handy way to make an indirect buffer is with the command
@kbd{M-x clone-indirect-buffer}. It creates and selects an indirect
buffer whose base buffer is the current buffer. With a numeric
@@ -637,14 +636,19 @@ argument, it prompts for the name of the indirect buffer;
otherwise it
uses the name of the current buffer, with a @samp{<@var{n}>} suffix
added. @kbd{C-x 4 c} (@code{clone-indirect-buffer-other-window})
works like @kbd{M-x clone-indirect-buffer}, but it selects the new
-buffer in another window. These functions run the hook
-@code{clone-indirect-buffer-hook} after creating the indirect buffer.
+buffer in another window.
The more general way to make an indirect buffer is with the command
@kbd{M-x make-indirect-buffer}. It creates an indirect buffer
named @var{indirect-name} from a buffer @var{base-buffer}, prompting for
both using the minibuffer.
+@vindex clone-indirect-buffer-hook
+ The functions that create indirect buffers run the hook
+@code{clone-indirect-buffer-hook} after creating the indirect buffer.
+When this hook runs, the newly created indirect buffer is the current
+buffer.
+
@node Buffer Convenience
@section Convenience Features and Customization of Buffer Handling
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi
index 5c444fc648..de1d5e0b2c 100644
--- a/doc/emacs/cmdargs.texi
+++ b/doc/emacs/cmdargs.texi
@@ -329,6 +329,10 @@ option does this too, but other options like @samp{-q} do
not.
Do not include the @file{site-lisp} directories in @code{load-path}
(@pxref{Init File}). The @samp{-Q} option does this too.
+@item --init-directory
+@opindex --init-directory
+Specify the directory to use when looking for the Emacs init files.
+
@item --no-splash
@opindex --no-splash
@cindex splash screen
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index ce43408101..29edbe9863 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -512,6 +512,16 @@ frames by specifying @dfn{frame parameters}. @xref{Frame
Parameters}.
Delete the selected frame (@code{delete-frame}). This signals an
error if there is only one frame.
+@item C-x 5 u
+@kindex C-x 5 u
+@findex undelete-frame
+@findex undelete-frame-mode
+When @code{undelete-frame-mode} is enabled, undelete one of the 16
+most recently deleted frames. Without a prefix argument, undelete the
+most recently deleted frame. With a numerical prefix argument between
+1 and 16, where 1 is the most recently deleted frame, undelete the
+corresponding deleted frame.
+
@item C-z
@kindex C-z @r{(X windows)}
Minimize (or iconify) the selected Emacs frame
@@ -1623,13 +1633,14 @@ Parameters,,, elisp, The Emacs Lisp Reference Manual},
and also
For additional customization options for displaying tooltips, use
@kbd{M-x customize-group @key{RET} tooltip @key{RET}}.
-@vindex x-gtk-use-system-tooltips
- If Emacs is built with GTK+ support, it displays tooltips via GTK+,
-using the default appearance of GTK+ tooltips. To disable this,
-change the variable @code{x-gtk-use-system-tooltips} to @code{nil}.
-If you do this, or if Emacs is built without GTK+ support, most
-attributes of the tooltip text are specified by the @code{tooltip}
-face, and by X resources (@pxref{X Resources}).
+@vindex use-system-tooltips
+ If Emacs is built with the GTK+ toolkit or Haiku windowing support,
+it displays tooltips via the toolkit, using the default appearance of
+the toolkit's tooltips. To disable this, change the variable
+@code{use-system-tooltips} to @code{nil}. If you do this, or if Emacs
+is built without GTK+ or Haiku windowing support, most attributes of
+the tooltip text are specified by the @code{tooltip} face, and by X
+resources (@pxref{X Resources}).
@dfn{GUD tooltips} are special tooltips that show the values of
variables when debugging a program with GUD@. @xref{Debugger
diff --git a/doc/emacs/haiku.texi b/doc/emacs/haiku.texi
index 0c76990cae..ac631a39a6 100644
--- a/doc/emacs/haiku.texi
+++ b/doc/emacs/haiku.texi
@@ -85,16 +85,24 @@ instead.
@cindex tooltips (haiku)
@cindex haiku tooltips
-@vindex haiku-use-system-tooltips
On Haiku, Emacs defaults to using the system tooltip mechanism.
This usually leads to more responsive tooltips, but the tooltips will
not be able to display text properties or faces. If you need those
-features, customize the variable @code{haiku-use-system-tooltips} to
-the nil value, and Emacs will use its own implementation of tooltips.
-
- Both system tooltips and Emacs's own tooltips cannot display above
-the menu bar, so help text in the menu bar will display in the echo
-area instead.
+features, customize the variable @code{use-system-tooltips} to the
+@code{nil} value, and Emacs will use its own implementation of
+tooltips.
+
+@cindex X resources on Haiku
+ Unlike the X window system, Haiku does not have a system-wide
+resource database. Since many important options are specified via
+X resources (@pxref{X Resources}), an emulation is provided: upon
+startup, Emacs will load a file named @file{GNU Emacs} inside the user
+configuration directory (normally @file{/boot/home/config/settings}),
+which should be a flattened system message where keys and values are
+both strings, and correspond to attributes and their values
+respectively.
+
+You can create such a file with the @command{xmlbmessage} tool.
@subsection What to do when Emacs crashes
@cindex crashes, Haiku
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi
index 5a458209d2..1f743ccd88 100644
--- a/doc/emacs/help.texi
+++ b/doc/emacs/help.texi
@@ -478,6 +478,9 @@ View the source of the current help topic (if any)
(@code{help-view-source}).
@item i
Look up the current topic in the manual(s) (@code{help-goto-info}).
+@item I
+Look up the current topic in the Emacs Lisp manual
+(@code{help-goto-lispref-info}).
@item c
Customize the variable or the face (@code{help-customize}).
@end table
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index 9a23f23e0e..edcc6075f7 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -2317,10 +2317,15 @@ them.
@item M-?
Find all the references for the identifier at point.
-@item M-x xref-query-replace-in-results @key{RET} @var{regexp} @key{RET}
@var{replacement} @key{RET}
+@item M-x xref-query-replace-in-results @key{RET} @var{replacement} @key{RET}
+@itemx C-u M-x xref-query-replace-in-results @key{RET} @var{regexp} @key{RET}
@var{replacement} @key{RET}
Interactively replace @var{regexp} with @var{replacement} in the names
of all the identifiers shown in the @file{*xref*} buffer.
+@item M-x xref-find-references-and-replace @key{RET} @var{from} @key{RET}
@var{to} @key{RET}
+Interactively rename all instances of the identifier @var{from} to the
+new name @var{to}.
+
@item M-x tags-search @key{RET} @var{regexp} @key{RET}
Search for @var{regexp} through the files in the selected tags
table.
@@ -2358,13 +2363,21 @@ shown. The default value is @code{nil}, which just
shows the results
in the @file{*xref*} buffer, but doesn't select any of them.
@findex xref-query-replace-in-results
- @kbd{M-x xref-query-replace-in-results} reads a regexp to match identifier
-names and a replacement string, just like ordinary @kbd{M-x
-query-replace-regexp}. It then performs the specified replacement in
-the names of the matching identifiers in all the places in all the
-files where these identifiers are referenced. This is useful when you
+ @kbd{M-x xref-query-replace-in-results} reads a @var{replacement}
+string, just like ordinary @kbd{M-x query-replace-regexp}. It then
+renames the identifiers shown in the @file{*xref*} buffer in all the
+places in all the files where these identifiers are referenced, such
+that their new name is @var{replacement}. This is useful when you
rename your identifiers as part of refactoring. This command should
-be invoked in the @file{*xref*} buffer generated by @kbd{M-?}.
+be invoked in the @file{*xref*} buffer generated by @kbd{M-?}. With a
+prefix argument, the command also prompts for a regexp to match
+identifier names, and renames that regexp in the names of the matching
+identifiers with @var{replacement}.
+
+@findex xref-find-references-and-replace
+ @kbd{M-x xref-find-references-and-replace} works similarly to
+@code{xref-query-replace-in-results}, but is more convenient when you
+want to rename a single identifier specified by its name @var{from}.
@findex tags-search
@kbd{M-x tags-search} reads a regexp using the minibuffer, then
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index df1e5ef238..4710c05b62 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -455,20 +455,27 @@ servers the user has connected to. If this variable is
@code{t},
@cindex PostScript file
@cindex OpenDocument file
@cindex Microsoft Office file
+@cindex EPUB file
+@cindex CBZ file
+@cindex FB2 file
+@cindex XPS file
+@cindex OXPS file
@cindex DocView mode
@cindex mode, DocView
@cindex document viewer (DocView)
@findex doc-view-mode
DocView mode is a major mode for viewing DVI, PostScript (PS), PDF,
-OpenDocument, and Microsoft Office documents. It provides features
-such as slicing, zooming, and searching inside documents. It works by
-converting the document to a set of images using the @command{gs}
-(GhostScript) or @command{mudraw}/@command{pdfdraw} (MuPDF) commands
-and other external tools @footnote{For PostScript files, GhostScript
-is a hard requirement. For DVI files, @code{dvipdf} or @code{dvipdfm}
-is needed. For OpenDocument and Microsoft Office documents, the
-@code{unoconv} tool is needed.}, and displaying those images.
+OpenDocument, Microsoft Office, EPUB, CBZ, FB2, XPS and OXPS
+documents. It provides features such as slicing, zooming, and
+searching inside documents. It works by converting the document to a
+set of images using the @command{gs} (GhostScript) or
+@command{pdfdraw}/@command{mutool draw} (MuPDF) commands and other
+external tools @footnote{PostScript files require GhostScript, DVI
+files require @code{dvipdf} or @code{dvipdfm}, OpenDocument and
+Microsoft Office documents require the @code{unoconv} tool, and EPUB,
+CBZ, FB2, XPS and OXPS files require @code{mutool} to be available.},
+and displaying those images.
@findex doc-view-toggle-display
@findex doc-view-minor-mode
@@ -849,6 +856,9 @@ Restores the position of point as it was before inserting
the
shell-command output.
@end table
+In case the output buffer is not the current buffer, shell command
+output is appended at the end of this buffer.
+
@node Interactive Shell
@subsection Interactive Subshell
diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi
index 09fedb7f9f..5f30341838 100644
--- a/doc/emacs/mule.texi
+++ b/doc/emacs/mule.texi
@@ -50,13 +50,14 @@ others.
@item
You can insert non-@acronym{ASCII} characters or search for them. To do that,
-you can specify an input method (@pxref{Select Input Method}) suitable
+you can specify an Emacs input method (@pxref{Select Input Method}) suitable
for your language, or use the default input method set up when you choose
your language environment. If
your keyboard can produce non-@acronym{ASCII} characters, you can select an
appropriate keyboard coding system (@pxref{Terminal Coding}), and Emacs
-will accept those characters. Latin-1 characters can also be input by
-using the @kbd{C-x 8} prefix, see @ref{Unibyte Mode}.
+will accept those characters. On graphical displays, modern systems
+typically provide their native input methods, and Latin-1 characters
+can also be input by using the @kbd{C-x 8} prefix, see @ref{Unibyte Mode}.
With the X Window System, your locale should be set to an appropriate
value to make sure Emacs interprets keyboard input correctly; see
@@ -449,10 +450,13 @@ for that key.
@cindex input methods
An @dfn{input method} is a kind of character conversion designed
-specifically for interactive input. In Emacs, typically each language
-has its own input method; sometimes several languages that use the same
-characters can share one input method. A few languages support several
-input methods.
+specifically for interactive input. This section describes input
+methods that come with Emacs; for native input methods provided by the
+underlying OS, @pxref{Unibyte Mode}.
+
+ In Emacs, typically each language has its own input method;
+sometimes several languages that use the same characters can share one
+input method. A few languages support several input methods.
The simplest kind of input method works by mapping @acronym{ASCII} letters
into another alphabet; this allows you to use one other alphabet
@@ -1798,12 +1802,38 @@ as @code{xterm}, you can arrange for Meta to be
converted to @key{ESC}
and still be able to type 8-bit characters present directly on the
keyboard or using @key{Compose} or @key{AltGr} keys. @xref{User Input}.
+@cindex input methods, native
+@cindex XIM, X Input Methods
+@cindex GTK input methods
+Many modern systems provide @dfn{native input methods} for many
+languages whose characters don't have keyboard keys assigned to them.
+If Emacs was built with support for these native input methods, you
+can activate such an input method and type the characters they
+support. How to activate and use these input methods depends on the
+system and the input method, and will not be described here; see your
+system documentation. Here we describe some Emacs facilities to
+control the use of the native input methods.
+
+@vindex x-gtk-use-native-input
+In Emacs built with the GTK toolkit, the variable
+@code{x-gtk-use-native-input} controls whether Emacs should receive
+characters produced by GTK input methods. If the value is @code{nil},
+the default, Emacs uses the X input methods (@acronym{XIM}), otherwise
+it uses the GTK input methods. The @code{useXIM} X resource controls
+whether to use @acronym{XIM}, and @code{inputStyle} X resource
+controls the display on X of preview text generated by the native
+input methods; @pxref{Table of Resources}.
+
+On MS-Windows, Emacs supports native inputs methods provided by
+@acronym{IMM}, the Input Method Manager, but that can be turned off if
+needed; @pxref{Windows Keyboard}.
+
@cindex @code{iso-transl} library
@cindex compose character
@cindex dead character
@item
You can use the key @kbd{C-x 8} as a compose-character prefix for
-entry of non-@acronym{ASCII} Latin-1 and a few other printing
+entry of non-@acronym{ASCII} Latin-1 and other printing
characters. @kbd{C-x 8} is good for insertion (in the minibuffer as
well as other buffers), for searching, and in any other context where
a key sequence is allowed.
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index c12992c239..a57cfac8da 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -435,14 +435,6 @@ search string, similar to inserting into a buffer using
@kbd{C-q}
incremental search adds the @samp{control-S} character to the search
string.
-@item
-@findex isearch-char-by-name
-@kindex C-x 8 RET @r{(Incremental Search)}
-Type @kbd{C-x 8 @key{RET}} (@code{isearch-char-by-name}), followed by
-a Unicode name or code-point in hex. This adds the specified
-character into the search string, similar to the usual
-@code{insert-char} command (@pxref{Inserting Text}).
-
@item
@kindex C-^ @r{(Incremental Search)}
@findex isearch-toggle-input-method
@@ -471,8 +463,26 @@ transient input method (@pxref{transient input method})
with
@kbd{C-x \} (@code{isearch-transient-input-method}) to insert a single
character to the search string using an input method, and
automatically disable the input method afterwards.
+
+@item
+@findex isearch-char-by-name
+@kindex C-x 8 RET @r{(Incremental Search)}
+Type @kbd{C-x 8 @key{RET}} (@code{isearch-char-by-name}), followed by
+a Unicode name or code-point in hex. This adds the specified
+character into the search string, similar to the usual
+@code{insert-char} command (@pxref{Inserting Text}).
@end itemize
+@findex isearch-emoji-by-name
+@kindex C-x 8 e RET @r{(Incremental Search)}
+ You can also include Emoji sequences in the search string. Type
+@w{@kbd{C-x 8 e @key{RET}}} (@code{isearch-emoji-by-name}), followed
+by the Unicode name of an Emoji (for example, @kbd{smiling face} or
+@kbd{heart with arrow}). This adds the specified Emoji to the search
+string. If you don't know the name of the Emoji you want to search
+for, you can use @kbd{C-x 8 e l} (@code{emoji-list}) and @kbd{C-x 8 e
+d} (@code{emoji-describe}) (@pxref{Input Methods}).
+
@kindex M-s o @r{(Incremental Search)}
@findex isearch-occur
Typing @kbd{M-s o} in incremental search invokes
diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi
index c5b54777a8..9f152f1cc1 100644
--- a/doc/emacs/text.texi
+++ b/doc/emacs/text.texi
@@ -1702,17 +1702,17 @@ to work with them.
@table @kbd
@item C-c C-o
Insert @samp{\begin} and @samp{\end} for @LaTeX{} block and position
-point on a line between them (@code{tex-latex-block}).
+point on a line between them (@code{latex-insert-block}).
@item C-c C-e
Close the innermost @LaTeX{} block not yet closed
-(@code{tex-close-latex-block}).
+(@code{latex-close-block}).
@end table
-@findex tex-latex-block
+@findex latex-insert-block
@kindex C-c C-o @r{(@LaTeX{} mode)}
In @LaTeX{} input, @samp{\begin} and @samp{\end} tags are used to
group blocks of text. To insert a block, type @kbd{C-c C-o}
-(@code{tex-latex-block}). This prompts for a block type, and inserts
+(@code{latex-insert-block}). This prompts for a block type, and inserts
the appropriate matching @samp{\begin} and @samp{\end} tags, leaving a
blank line between the two and moving point there.
@@ -1723,11 +1723,11 @@ completion list contains the standard @LaTeX{} block
types. If you
want additional block types for completion, customize the list
variable @code{latex-block-names}.
-@findex tex-close-latex-block
+@findex latex-close-block
@kindex C-c C-e @r{(@LaTeX{} mode)}
@findex latex-electric-env-pair-mode
In @LaTeX{} input, @samp{\begin} and @samp{\end} tags must balance.
-You can use @kbd{C-c C-e} (@code{tex-close-latex-block}) to insert an
+You can use @kbd{C-c C-e} (@code{latex-close-block}) to insert an
@samp{\end} tag which matches the last unmatched @samp{\begin}. It
also indents the @samp{\end} to match the corresponding @samp{\begin},
and inserts a newline after the @samp{\end} tag if point is at the
diff --git a/doc/emacs/xresources.texi b/doc/emacs/xresources.texi
index ef3d4c768c..ccf7e35eee 100644
--- a/doc/emacs/xresources.texi
+++ b/doc/emacs/xresources.texi
@@ -332,6 +332,38 @@ Disable use of X input methods (XIM) if @samp{false} or
@samp{off}.
This is only relevant if your Emacs is built with XIM support. It
might be useful to turn off XIM on slow X client/server links.
+@item @code{inputStyle} (class @code{InputStyle})
+@cindex inputStyle (X resource)
+@cindex input method style, X
+This resource controls how preview text generated by X input methods
+is displayed. Its value can be on of the following:
+
+@table @samp
+@item callback
+Display the contents of the preview text in the current buffer.
+
+@item offthespot
+Display the preview text inside a separate area of the display
+provided by Emacs.
+
+@item overthespot
+Display the preview text inside a popup window at the location of
+point in the current window.
+
+@item none
+Let the input method decide how to display itself. This is usually
+equivalent to @samp{overthespot}, but it might work with more input
+methods.
+
+@item native
+Use the toolkit for handling input methods. This is currently
+implemented only on GTK.
+
+@item root
+Use some location on display specific to the input method for
+displaying the preview text.
+@end table
+
@item @code{verticalScrollBars} (class @code{ScrollBars})
Give frames scroll bars on the left if @samp{left}, on the right if
@samp{right}; don't have scroll bars if @samp{off} (@pxref{Scroll Bars}).
@@ -557,7 +589,7 @@ those are governed by normal X resources
(@pxref{Resources}).
The following sections describe how to customize GTK+ resources for
Emacs. For details about GTK+ resources, see the GTK+ API document at
-@uref{https://developer.gnome.org/gtk2/stable/gtk2-Resource-Files.html}.
+@uref{https://developer-old.gnome.org/gtk2/stable/gtk2-Resource-Files.html}.
In GTK+ version 3, GTK+ resources have been replaced by a completely
different system. The appearance of GTK+ widgets is now determined by
@@ -567,7 +599,7 @@ style settings (where @var{theme} is the name of the
current GTK+
theme). Therefore, the description of GTK+ resources in this section
does not apply to GTK+ 3. For details about the GTK+ 3 styling
system, see
-@uref{https://developer.gnome.org/gtk3/3.0/GtkCssProvider.html}.
+@uref{https://developer-old.gnome.org/gtk3/3.0/GtkCssProvider.html}.
@menu
* GTK Resource Basics:: Basic usage of GTK+ resources.
diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi
index 75cd35ab4a..9360e4e2fa 100644
--- a/doc/lispref/commands.texi
+++ b/doc/lispref/commands.texi
@@ -2121,6 +2121,45 @@ which @code{1.0} is the width and height of the touchpad
respectively. They are usually interpreted as being relative to the
size of the object beneath the gesture: image, window, etc.
+@cindex @code{preedit-text} event
+@item (preedit-text @var{arg})
+This event is sent when a system input method tells Emacs to display
+some text to indicate to the user what will be inserted. The contents
+of @var{arg} are dependent on the window system being used.
+
+On X, @var{arg} is a string describing some text to place behind the
+cursor. It can be @code{nil}, which means to remove any text
+previously displayed.
+
+On PGTK frames (@pxref{Frames}), @var{arg} is a list of strings with
+information about their color and underline attributes. It has the
+following form:
+
+@example
+@group
+ ((@var{string1}
+ (ul . @var{underline-color})
+ (bg . @var{background-color})
+ (fg . @var{foreground-color}))
+ (@var{string2}
+ (ul . @var{underline-color})
+ (bg . @var{background-color})
+ (fg . @var{foreground-color}))
+ @dots{}
+ )
+@end group
+@end example
+
+Color information can be omitted, leaving just the text of the
+strings. @var{underline-color} can be @code{t}, meaning underlined
+text with default underline color, or it can be a string, the name of
+the color to draw the underline.
+
+This is a special event (@pxref{Special Events}), which normally
+should not be bound by the user to any command. Emacs will typically
+display the text contained in the event in an overlay behind point
+when it is received.
+
@cindex @code{drag-n-drop} event
@item (drag-n-drop @var{position} @var{files})
This kind of event is generated when a group of files is
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 1b08eda200..3ce93200a5 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -2485,8 +2485,9 @@ GNU Emacs Manual}.
@item :width
Relative character width. This should be one of the symbols
@code{ultra-condensed}, @code{extra-condensed}, @code{condensed},
-@code{semi-condensed}, @code{normal}, @code{semi-expanded},
-@code{expanded}, @code{extra-expanded}, or @code{ultra-expanded}.
+@code{semi-condensed}, @code{normal}, @code{regular}, @code{medium},
+@code{semi-expanded}, @code{expanded}, @code{extra-expanded}, or
+@code{ultra-expanded}.
@item :height
The height of the font. In the simplest case, this is an integer in
@@ -2554,13 +2555,16 @@ Underline with the foreground color of the face.
@item @var{color}
Underline in color @var{color}, a string specifying a color.
-@item @code{(:color @var{color} :style @var{style})}
+@item @code{(:color @var{color} :style @var{style} :position @var{position})}
@var{color} is either a string, or the symbol @code{foreground-color},
meaning the foreground color of the face. Omitting the attribute
@code{:color} means to use the foreground color of the face.
@var{style} should be a symbol @code{line} or @code{wave}, meaning to
use a straight or wavy line. Omitting the attribute @code{:style}
-means to use a straight line.
+means to use a straight line. @var{position}, if non-nil, means to
+display the underline at the descent of the text, instead of at the
+baseline level. If it is a number, then it specifies the amount of
+pixels above the descent to display the underline.
@end table
@cindex overlined text
@@ -2801,7 +2805,7 @@ apply to. Here are the possible values of
@var{characteristic}:
The kind of window system the terminal uses---either @code{graphic}
(any graphics-capable display), @code{x}, @code{pc} (for the MS-DOS
console), @code{w32} (for MS Windows 9X/NT/2K/XP), @code{haiku} (for
-Haiku), @code{pgtk} (for GTK), or @code{tty} (a non-graphics-capable
+Haiku), @code{pgtk} (for pure GTK), or @code{tty} (a non-graphics-capable
display). @xref{Window Systems, window-system}.
@item class
@@ -5225,7 +5229,7 @@ is partitioned using the identity of the parameter, which
is why the
parameter is a list with one element. For instance:
@lisp
-(insert (propertize "foo" '(display (min-width (6.0)))))
+(insert (propertize "foo" 'display '(min-width (6.0))))
@end lisp
This will add padding after @samp{foo} bringing the total width up to
@@ -8385,6 +8389,8 @@ GNUstep and macOS).
Emacs is displaying the frame using MS-DOS direct screen writes.
@item haiku
Emacs is displaying the frame using the Application Kit on Haiku.
+@item pgtk
+Emacs is displaying the frame using pure GTK facilities.
@item nil
Emacs is displaying the frame on a character-based terminal.
@end table
@@ -8432,13 +8438,14 @@ displayed in the echo area.
@end defun
@cindex system tooltips
-@vindex x-gtk-use-system-tooltips
-When Emacs is built with GTK+ support, it by default displays tooltips
-using GTK+ functions, and the appearance of the tooltips is then
-controlled by GTK+ settings. GTK+ tooltips can be disabled by
-changing the value of the variable @code{x-gtk-use-system-tooltips} to
-@code{nil}. The rest of this subsection describes how to control
-non-GTK+ tooltips, which are presented by Emacs itself.
+@vindex use-system-tooltips
+When Emacs is built with the GTK+ toolkit or Haiku windowing support,
+it by default displays tooltips using toolkit functions, and the
+appearance of the tooltips is then controlled by by the toolkit's
+settings. Toolkit-provided tooltips can be disabled by changing the
+value of the variable @code{use-system-tooltips} to @code{nil}. The
+rest of this subsection describes how to control non-toolkit tooltips,
+which are presented by Emacs itself.
@cindex tooltip frames
Tooltips are displayed in special frames called tooltip frames, which
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index 3254a4dba8..426bb6d017 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -448,6 +448,9 @@ Symbols
* Creating Symbols:: How symbols are kept unique.
* Symbol Properties:: Each symbol has a property list
for recording miscellaneous information.
+* Shorthands:: Properly organize your symbol names but
+ type less of them.
+* Symbols with Position:: Symbol variants containing integer positions
Symbol Properties
@@ -1228,6 +1231,7 @@ Text
* Decompression:: Dealing with compressed data.
* Base 64:: Conversion to or from base 64 encoding.
* Checksum/Hash:: Computing cryptographic hashes.
+* Suspicious Text:: Determining whether a string is suspicious.
* GnuTLS Cryptography:: Cryptographic algorithms imported from GnuTLS.
* Database:: Interacting with an SQL database.
* Parsing HTML/XML:: Parsing HTML and XML.
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index ceaa11529f..2eeb8b7ed7 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -60,6 +60,8 @@ The frame is displayed on a GNUstep or Macintosh Cocoa
graphical
terminal.
@item pc
The frame is displayed on an MS-DOS terminal.
+@item pgtk
+The frame is displayed using pure GTK facilities.
@end table
@end defun
@@ -3152,10 +3154,8 @@ raises @var{frame} above all other child frames of its
parent.
@deffn Command lower-frame &optional frame
This function lowers frame @var{frame} (default, the selected frame)
below all other frames belonging to the same or a higher z-group as
-@var{frame}.@footnote{Lowering frames is not supported on Haiku, due
-to limitations imposed by the system.} If @var{frame} is a child
-frame (@pxref{Child Frames}), this lowers @var{frame} below all other
-child frames of its parent.
+@var{frame}. If @var{frame} is a child frame (@pxref{Child Frames}),
+this lowers @var{frame} below all other child frames of its parent.
@end deffn
@defun frame-restack frame1 frame2 &optional above
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index bb2459d4aa..d07d7b80f5 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -667,6 +667,22 @@ which file defined the function, just like @code{defun}
By contrast, in programs that manipulate function definitions for other
purposes, it is better to use @code{fset}, which does not keep such
records. @xref{Function Cells}.
+@end defun
+
+@defun function-alias-p object &optional noerror
+Checks whether @var{object} is a function alias. If it is, it returns
+a list of symbols representing the function alias chain, else
+@code{nil}. For instance, if @code{a} is an alias for @code{b}, and
+@code{b} is an alias for @code{c}:
+
+@example
+(function-alias-p 'a)
+ @result{} (b c)
+@end example
+
+If there's a loop in the definitions, an error will be signalled. If
+@var{noerror} is non-@code{nil}, the non-looping parts of the chain is
+returned instead.
@end defun
You cannot create a new primitive function with @code{defun} or
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index 5fc831536e..e2b39836e6 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -762,6 +762,9 @@ uncompression packages: an entry of the form
@code{("\\.gz\\'"
@var{function} t)} can uncompress the file and then put the uncompressed
file in the proper mode according to the name sans @samp{.gz}.
+If @code{auto-mode-alist} has more than one element whose @var{regexp}
+matches the file name, Emacs will use the first match.
+
Here is an example of how to prepend several pattern pairs to
@code{auto-mode-alist}. (You might use this sort of expression in your
init file.)
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index 3750abc4e8..9cb9bc75d0 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -363,6 +363,9 @@ Do not load the @file{site-start} library.
@itemx -Q
Equivalent to @samp{-q --no-site-file --no-splash}.
@c and --no-site-lisp, but let's not mention that here.
+
+@item --init-directory
+Specify the directory to use when finding the Emacs init files.
@end table
diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi
index a38a84e22b..d338d59a81 100644
--- a/doc/lispref/processes.texi
+++ b/doc/lispref/processes.texi
@@ -1422,11 +1422,13 @@ non-@code{nil}, you can think of this function as
typing @kbd{C-c}
on the terminal by which Emacs talks to the subprocess.
@end defun
-@defun kill-process &optional process current-group
-This function kills the process @var{process} by sending the
+@deffn Command kill-process &optional process current-group
+This command kills the process @var{process} by sending the
signal @code{SIGKILL}. This signal kills the subprocess immediately,
-and cannot be handled by the subprocess.
-@end defun
+and cannot be handled by the subprocess. Interactively, it'll prompt
+the user for a process name, defaulting to the process (if any) in the
+current buffer.
+@end deffn
@defun quit-process &optional process current-group
This function sends the signal @code{SIGQUIT} to the process
diff --git a/doc/lispref/streams.texi b/doc/lispref/streams.texi
index c6b3397ae1..8f8562cadc 100644
--- a/doc/lispref/streams.texi
+++ b/doc/lispref/streams.texi
@@ -327,6 +327,15 @@ For example:
@end example
@end defun
+@defun read-positioning-symbols &optional stream
+This function reads one textual expression from @var{stream}, like
+@code{read} does, but additionally positions the read symbols to the
+positions in @var{stream} where they occurred. Only the symbol
+@code{nil} is not positioned, this for efficiency reasons.
+@xref{Symbols with Position}. This function is used by the byte
+compiler.
+@end defun
+
@defvar standard-input
This variable holds the default input stream---the stream that
@code{read} uses when the @var{stream} argument is @code{nil}.
@@ -358,6 +367,15 @@ mode for @var{stream}. On POSIX hosts, it always returns a
non-@code{nil} value and does nothing except flushing pending output.
@end defun
+@defun readablep object
+@cindex readable syntax
+This predicate says whether @var{object} has @dfn{readable syntax},
+i.e., it can be written out and then read back by the Emacs Lisp
+reader. If it can't, this function returns @code{nil}; if it can,
+this function returns a printed representation (via @code{prin1},
+@pxref{Output Functions}) of @var{object}.
+@end defun
+
@node Output Streams
@section Output Streams
@cindex stream (for printing)
@@ -872,6 +890,32 @@ If non-@code{nil}, this variable enables detection of
circular and
shared structure in printing. @xref{Circular Objects}.
@end defvar
+@defvar print-unreadable-function
+By default, Emacs prints unreadable objects as @samp{#<...>"}. For
+instance:
+
+@example
+(prin1-to-string (make-marker))
+ @result{} "#<marker in no buffer>"
+@end example
+
+If this variable is non-@code{nil}, it should be a function that will
+be called to handle printing of these objects. The function will be
+called with two arguments: the object and the @var{noescape} flag used by
+the printing functions (@pxref{Output Functions}).
+
+The function should return either @code{nil} (print the object as
+usual), or a string (which will be printed), or any other object
+(don't print the object). For instance:
+
+@example
+(let ((print-unreadable-function
+ (lambda (object escape) "hello")))
+ (prin1-to-string (make-marker)))
+ @result{} "hello"
+@end example
+@end defvar
+
@defvar print-gensym
If non-@code{nil}, this variable enables detection of uninterned symbols
(@pxref{Creating Symbols}) in printing. When this is enabled,
diff --git a/doc/lispref/symbols.texi b/doc/lispref/symbols.texi
index a951e9be8a..9e44348b67 100644
--- a/doc/lispref/symbols.texi
+++ b/doc/lispref/symbols.texi
@@ -23,15 +23,15 @@ otherwise.
@end defun
@menu
-* Symbol Components:: Symbols have names, values, function definitions
+* Symbol Components:: Symbols have names, values, function
definitions
and property lists.
-* Definitions:: A definition says how a symbol will be used.
-* Creating Symbols:: How symbols are kept unique.
-* Symbol Properties:: Each symbol has a property list
+* Definitions:: A definition says how a symbol will be used.
+* Creating Symbols:: How symbols are kept unique.
+* Symbol Properties:: Each symbol has a property list
for recording miscellaneous information.
-* Shorthands:: Properly organize your symbol names but
+* Shorthands:: Properly organize your symbol names but
type less of them.
-
+* Symbols with Position:: Symbol variants containing integer positions
@end menu
@node Symbol Components
@@ -432,8 +432,8 @@ symbol's property list cell (@pxref{Symbol Components}), in
the form
of a property list (@pxref{Property Lists}).
@menu
-* Symbol Plists:: Accessing symbol properties.
-* Standard Properties:: Standard meanings of symbol properties.
+* Symbol Plists:: Accessing symbol properties.
+* Standard Properties:: Standard meanings of symbol properties.
@end menu
@node Symbol Plists
@@ -751,3 +751,70 @@ those names.
@item
Symbol forms whose names start with @samp{#_} are not transformed.
@end itemize
+
+@node Symbols with Position
+@section Symbols with Position
+@cindex symbol with position
+
+@cindex bare symbol
+A @dfn{symbol with position} is a symbol, the @dfn{bare symbol},
+together with an unsigned integer called the @dfn{position}. These
+objects are intended for use by the byte compiler, which records in
+them the position of each symbol occurrence and uses those positions
+in warning and error messages.
+
+The printed representation of a symbol with position uses the hash
+notation outlined in @ref{Printed Representation}. It looks like
+@samp{#<symbol foo at 12345>}. It has no read syntax. You can cause
+just the bare symbol to be printed by binding the variable
+@code{print-symbols-bare} to non-@code{nil} around the print
+operation. The byte compiler does this before writing its output to
+the compiled Lisp file.
+
+For most purposes, when the flag variable
+@code{symbols-with-pos-enabled} is non-@code{nil}, symbols with
+positions behave just as bare symbols do. For example, @samp{(eq
+#<symbol foo at 12345> foo)} has a value @code{t} when that variable
+is set (but nil when it isn't set). Most of the time in Emacs this
+variable is @code{nil}, but the byte compiler binds it to @code{t}
+when it runs.
+
+Typically, symbols with position are created by the byte compiler
+calling the reader function @code{read-positioning-symbols}
+(@pxref{Input Functions}). One can also be created with the function
+@code{position-symbol}.
+
+@defvar symbols-with-pos-enabled
+When this variable is non-@code{nil}, symbols with position behave
+like the contained bare symbol. Emacs runs a little more slowly in
+this case.
+@end defvar
+
+@defvar print-symbols-bare
+When bound to non-nil, the Lisp printer prints only the bare symbol of
+a symbol with position, ignoring the position.
+@end defvar
+
+@defun symbol-with-pos-p symbol.
+This function returns @code{t} if @var{symbol} is a symbol with
+position, @code{nil} otherwise.
+@end defun
+
+@defun bare-symbol symbol
+This function returns the bare symbol contained in @var{symbol}, or
+@var{symbol} itself if it is already a bare symbol. For any other
+type of object, it signals an error.
+@end defun
+
+@defun symbol-with-pos-pos symbol
+This function returns the position, a number, from a symbol with
+position. For any other type of object, it signals an error.
+@end defun
+
+@defun position-symbol sym pos
+Make a new symbol with position. @var{sym} is either a bare symbol or
+a symbol with position, and supplies the symbol part of the new
+object. @var{pos} is either an integer which becomes the number part
+of the new object, or a symbol with position whose position is used.
+Emacs signals an error if either argument is invalid.
+@end defun
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index b9df66dbdb..37cf376bd5 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -59,6 +59,7 @@ the character after point.
* Decompression:: Dealing with compressed data.
* Base 64:: Conversion to or from base 64 encoding.
* Checksum/Hash:: Computing cryptographic hashes.
+* Suspicious Text:: Determining whether a string is suspicious.
* GnuTLS Cryptography:: Cryptographic algorithms imported from GnuTLS.
* Database:: Interacting with an SQL database.
* Parsing HTML/XML:: Parsing HTML and XML.
@@ -4943,6 +4944,92 @@ It should be somewhat more efficient on larger buffers
than
@c according to what we find useful.
@end defun
+@node Suspicious Text
+@section Suspicious Text
+@cindex suspicious text
+@cindex insecure text
+@cindex security vulnerabilities in text
+
+ Emacs can display text from many external sources, like email and Web
+sites. Attackers may attempt to confuse the user reading this text by
+using obfuscated @acronym{URL}s or email addresses, and tricking the
+user into visiting a web page they didn't intend to visit, or sending
+an email to the wrong address.
+
+This usually involves using characters from scripts that visually look
+like @acronym{ASCII} characters (i.e., are homoglyphs), but there are
+also other techniques used, like using bidirectional overrides, or
+having an @acronym{HTML} link text that says one thing, while the
+underlying @acronym{URL} points somewhere else.
+
+@cindex suspicious text strings
+To help identify these @dfn{suspicious text strings}, Emacs provides a
+library to do a number of checks on text. (See
+@url{https://www.unicode.org/reports/tr39/, UTS #39: Unicode Security
+Mechanisms} for the rationale behind the checks that are available and
+more details about them.) Packages that present data that might be
+suspicious should use this library to flag suspicious text on display.
+
+@vindex textsec-check
+@defun textsec-suspicious-p object type
+This function is the high-level interface function that packages
+should use. It respects the @code{textsec-check} user option, which
+allows the user to disable the checks.
+
+This function checks @var{object} (whose data type depends on
+@var{type}) to see if it looks suspicious when interpreted as a thing
+of @var{type}. The available types and the corresponding @var{object}
+data types are:
+
+@table @code
+@item domain
+Check whether a domain (e.g., @samp{www.gnu.org} looks suspicious.
+@var{object} should be a string, the domain name.
+
+@item url
+Check whether an @acronym{URL} (e.g., @samp{http://gnu.org/foo/bar})
+looks suspicious. @var{object} should be a string, the @acronym{URL}
+to check.
+
+@item link
+Check whether an @acronym{HTML} link (e.g., @samp{<a
+href='http://gnu.org'>fsf.org</a>} looks suspicious. In this case,
+@var{object} should be a @code{cons} cell where the @code{car} is the
+@acronym{URL} string, and the @code{cdr} is the link text. The link
+is deemed suspicious if the link text contains a domain name, and that
+domain name points to something other than the @acronym{URL}.
+
+@item email-address
+Check whether an email address (e.g., @samp{foo@@example.org}) looks
+suspicious. @var{object} should be a string.
+
+@item local-address
+Check whether the local part of an email address (the bit before the
+@samp{@@} sign) looks suspicious. @var{object} should be a string.
+
+@item name
+Check whether a name (used in an email address header) looks
+suspicious. @var{object} should be a string.
+
+@item email-address-header
+Check whether a full RFC2822 email address header (e.g.,
+@samp{=?utf-8?Q?=C3=81?= <foo@@example.com>}) looks suspicious.
+@var{object} should be a string.
+@end table
+
+If @var{object} is suspicious, this function returns a string that
+explains why it is suspicious. If @var{object} is not suspicious, the
+function returns @code{nil}.
+@end defun
+
+@vindex textsec-suspicious@r{ (face)}
+If the text is suspicious, the application should mark the suspicious
+text with the @code{textsec-suspicious} face, and make the explanation
+returned by @code{textsec-suspicious-p} available to the user in some way
+(for example, in a tooltip). The application might also prompt the
+user for confirmation before taking any action on a suspicious string
+(like sending an email to a suspicious email address).
+
@node GnuTLS Cryptography
@section GnuTLS Cryptography
@cindex MD5 checksum
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index 56b4bc5183..bbf8988e5c 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -5281,13 +5281,6 @@ other window is selected. When it is non-@code{nil} and
the
minibuffer is selected, it takes precedence over
@code{other-window-scroll-buffer}. @xref{Definition of
minibuffer-scroll-window}.
-
-When the minibuffer is active, it is the next window if the selected
-window is the one at the bottom right corner. In this case,
-@code{scroll-other-window} attempts to scroll the minibuffer. If the
-minibuffer contains just one line, it has nowhere to scroll to, so the
-line reappears after the echo area momentarily displays the message
-@samp{End of buffer}.
@end deffn
@deffn Command scroll-other-window-down &optional count
diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in
index 6c1e9cbc91..d348dbc194 100644
--- a/doc/misc/Makefile.in
+++ b/doc/misc/Makefile.in
@@ -234,6 +234,10 @@ ${buildinfodir}/tramp.info tramp.html:
${srcdir}/trampver.texi
abs_top_builddir = @abs_top_builddir@
+
+# Prevent any settings in the user environment causing problems.
+unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH
+
EMACS = ${abs_top_builddir}/src/emacs
emacs = "${EMACS}" -batch --no-site-file --no-site-lisp --eval '(setq
load-prefer-newer t)'
diff --git a/doc/misc/auth.texi b/doc/misc/auth.texi
index b28ae247ea..c2a9aa4437 100644
--- a/doc/misc/auth.texi
+++ b/doc/misc/auth.texi
@@ -579,10 +579,7 @@ from Gnus's @code{nnimap.el}.
:create t))))
(if found
(list (plist-get found :user)
- (let ((secret (plist-get found :secret)))
- (if (functionp secret)
- (funcall secret)
- secret))
+ (auth-info-password found)
(plist-get found :save-function))
nil)))
@end example
@@ -602,7 +599,7 @@ Later, after a successful login, @code{nnimap.el} calls the
@example
(when (functionp (nth 2 credentials))
- (funcall (nth 2 credentials)))
+ (funcall (nth 2 credentials)))
@end example
This will work whether the @code{:save-function} was provided or not.
@@ -637,6 +634,16 @@ This function forgets any cached data matching @var{spec}.
It returns the number of items forgotten.
@end defun
+@defun auth-source-pick-first-password &rest spec
+This function returns the password of the first record found by
+applying @code{auth-source-search} to @var{spec}.
+@end defun
+
+@defun auth-info-password auth-info
+This function extracts the password string from the @var{auth-info}
+record.
+@end defun
+
@node GnuPG and EasyPG Assistant Configuration
@appendix GnuPG and EasyPG Assistant Configuration
diff --git a/doc/misc/ert.texi b/doc/misc/ert.texi
index 0d01efb035..91288db45a 100644
--- a/doc/misc/ert.texi
+++ b/doc/misc/ert.texi
@@ -444,8 +444,9 @@ emacs -batch -l ert -l my-tests.el \
@vindex EMACS_TEST_VERBOSE@r{, environment variable}
By default, ERT test failure summaries are quite brief in batch
mode---only the names of the failed tests are listed. If the
-@env{EMACS_TEST_VERBOSE} environment variable is set, the failure
-summaries will also include the data from the failing test.
+@env{EMACS_TEST_VERBOSE} environment variable is set and is non-empty,
+the failure summaries will also include the data from the failing
+test.
@vindex EMACS_TEST_JUNIT_REPORT@r{, environment variable}
ERT can produce JUnit test reports in batch mode. If the environment
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi
index 83d324c7e1..261e88d00c 100644
--- a/doc/misc/eshell.texi
+++ b/doc/misc/eshell.texi
@@ -407,9 +407,16 @@ Summarize disk usage for each file.
@item echo
@cmindex echo
-Echoes its input. If @code{eshell-plain-echo-behavior} is
-non-@code{nil}, @command{echo} will try to behave more like a plain
-shell's @command{echo}.
+Echoes its input. By default, this prints in a Lisp-friendly fashion
+(so that the value is useful to a Lisp command using the result of
+@command{echo} as an argument). If a single argument is passed,
+@command{echo} prints that; if multiple arguments are passed, it
+prints a list of all the arguments; otherwise, it prints the empty
+string.
+
+If @code{eshell-plain-echo-behavior} is non-@code{nil}, @command{echo}
+will try to behave more like a plain shell's @command{echo}, printing
+each argument as a string, separated by a space.
@item env
@cmindex env
@@ -694,6 +701,126 @@ Print the current user. This Eshell version of
@command{whoami}
supports Tramp.
@end table
+@subsection Defining new built-in commands
+While Eshell can run Lisp functions directly as commands, it may be
+more convenient to provide a special built-in command for
+Eshell. Built-in commands are just ordinary Lisp functions designed
+to be called from Eshell. When defining an Eshell-specific version of
+an existing function, you can give that function a name starting with
+@code{eshell/} so that Eshell knows to use it.
+
+@defmac eshell-eval-using-options name macro-args options body@dots{}
+This macro processes a list of @var{macro-args} for the command
+@var{name} using a set of command line @var{options}. If the
+arguments are parsed successfully, it will store the resulting values
+in local symbols and execute @var{body}; any remaining arguments will
+be available in the locally let-bound variable @code{args}. The
+return value is the value of the last form in @var{body}.
+
+If an unknown option was passed in @var{macro-args} and an external
+command was specified (see below), this macro will start a process for
+that command and throw the tag @code{eshell-external} with the new
+process as its value.
+
+@var{options} should be a list beginning with one or more elements of
+the following form, with each element representing a particular
+command-line switch:
+
+@example
+(@var{short} @var{long} @var{value} @var{symbol} @var{help-string})
+@end example
+
+@table @var
+@item short
+This element, if non-nil, should be a character to be used as a short
+switch, like @code{-@var{short}}. At least one of this element and
+@var{long} must be non-nil.
+
+@item long
+This element, if non-nil, should be a string to be used as a long
+switch, like @code{--@var{long}}.
+
+@item value
+This element is the value associated with the option. It can be
+either:
+
+@table @asis
+@item @code{t}
+The option needs a value to be specified after the switch.
+
+@item @code{nil}
+The option is given the value @code{t}.
+
+@item anything else
+The option is given the specified value.
+@end table
+
+@item symbol
+This element is the Lisp symbol that will be bound to @var{value}. If
+@var{symbol} is @code{nil}, specifying this switch will instead call
+@code{eshell-show-usage}, and so is appropriate for an option like
+@code{--help}.
+
+@item help-string
+This element is a documentation string for the option, which will be
+displayed when @code{eshell-show-usage} is invoked.
+@end table
+
+After the list of command-line switch elements, @var{options} can
+include additional keyword arguments to control how
+@code{eshell-eval-using-options} behaves. Some of these take
+arguments, while others don't. The recognized keywords are:
+
+@table @code
+@item :external @var{string}
+Specify @var{string} as an external command to run if there are
+unknown switches in @var{macro-args}.
+
+@item :usage @var{string}
+Set @var{string} as the initial part of the command's documentation
+string. It appears before the options are listed.
+
+@item :post-usage @var{string}
+Set @var{string} to be the (optional) trailing part of the command's
+documentation string. It appears after the list of options, but
+before the final part of the documentation about the associated
+external command, if there is one.
+
+@item :show-usage
+If present, then show the usage message if the command is called with
+no arguments.
+
+@item :preserve-args
+Normally, @code{eshell-eval-using-options} flattens the list of
+arguments in @var{macro-args} and converts each to a string. If this
+keyword is present, avoid doing that, instead preserving the original
+arguments. This is useful for commands which want to accept arbitrary
+Lisp objects.
+
+@item :parse-leading-options-only
+If present, do not parse dash or switch arguments after the first
+positional argument. Instead, treat them as positional arguments
+themselves.
+@end table
+
+For example, you could handle a subset of the options for the
+@code{ls} command like this:
+
+@example
+(eshell-eval-using-options
+ "ls" macro-args
+ '((?a nil nil show-all "show all files")
+ (?I "ignore" t ignore-pattern "ignore files matching pattern")
+ (nil "help" nil nil "show this help message")
+ :external "ls"
+ :usage "[OPTION]... [FILE]...
+ List information about FILEs (the current directory by default).")
+ ;; List the files in ARGS somehow...
+ )
+@end example
+
+@end defmac
+
@subsection Built-in variables
Eshell knows a few built-in variables:
@@ -1015,6 +1142,48 @@ the output function.
The output function is called once on each line of output until
@code{nil} is passed, indicating end of output.
+@section Running Shell Pipelines Natively
+When constructing shell pipelines that will move a lot of data, it is
+a good idea to bypass Eshell's own pipelining support and use the
+operating system shell's instead. This is especially relevant when
+executing commands on a remote machine using Eshell's Tramp
+integration: using the remote shell's pipelining avoids copying the
+data which will flow through the pipeline to local Emacs buffers and
+then right back again.
+
+Eshell recognises a special syntax to make it easier to convert
+pipelines so as to bypass Eshell's pipelining. Prefixing at least one
+@code{|}, @code{<} or @code{>} with an asterisk marks a command as
+intended for the operating system shell. To make it harder to invoke
+this functionality accidentally, it is also required that the asterisk
+be preceded by whitespace or located at the start of input. For
+example,
+
+@example
+ cat *.ogg *| my-cool-decoder >file
+@end example
+
+Executing this command will not copy all the data in the *.ogg files,
+nor the decoded data, into Emacs buffers, as would normally happen.
+
+The command is interpreted as extending up to the next @code{|}
+character which is not preceded by an unescaped asterisk following
+whitespace, or the end of the input if there is no such character.
+Thus, all @code{<} and @code{>} redirections occuring before the next
+asterisk-unprefixed @code{|} are implicitly prefixed with (whitespace
+and) asterisks. An exception is that Eshell-specific redirects right
+at the end of the command are excluded. This allows input like this:
+
+@example
+ foo *| baz >#<buffer quux>
+@end example
+
+@noindent which is equivalent to input like this:
+
+@example
+ sh -c "foo | baz" >#<buffer quux>
+@end example
+
@node Extension modules
@chapter Extension modules
Eshell provides a facility for defining extension modules so that they
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
index 14a8c4c12d..b576f383ac 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -653,8 +653,7 @@ about the server there.
(add-to-list 'gnus-secondary-select-methods
'(nnimap "Give the baby a name"
(nnimap-address "imap.yourProvider.net")
- (nnimap-port 143)
- (nnimap-list-pattern "archive.*")))
+ (nnimap-port 143)))
@end example
@noindent
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 61870311ed..306d66de64 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -12223,7 +12223,6 @@ controlling variable is a predicate list, as described
above.
@vindex gnus-treat-highlight-citation
@vindex gnus-treat-highlight-headers
@vindex gnus-treat-highlight-signature
-@vindex gnus-treat-play-sounds
@vindex gnus-treat-x-pgp-sig
@vindex gnus-treat-unfold-headers
@vindex gnus-treat-fold-headers
@@ -12359,8 +12358,6 @@ is controlled by @code{gnus-body-boundary-delimiter}.
@xref{Article Highlighting}.
-@vindex gnus-treat-play-sounds
-@item gnus-treat-play-sounds
@item gnus-treat-ansi-sequences (t)
@vindex gnus-treat-x-pgp-sig
@item gnus-treat-x-pgp-sig (head)
@@ -14841,12 +14838,17 @@ mail belongs in that group.
The last of these groups should always be a general one, and the regular
expression should @emph{always} be @samp{""} so that it matches any mails
that haven't been matched by any of the other regexps. (These rules are
-processed from the beginning of the alist toward the end. The first rule
-to make a match will ``win'', unless you have crossposting enabled. In
-that case, all matching rules will ``win''.) If no rule matched, the mail
-will end up in the @samp{bogus} group. When new groups are created by
-splitting mail, you may want to run @code{gnus-group-find-new-groups} to
-see the new groups. This also applies to the @samp{bogus} group.
+processed from the beginning of the alist toward the end.
+
+If multiple rules match (excluding the general @samp{""} group), mail
+is crossposted to all these groups. However, if
+@code{nnmail-crosspost} is set to @code{nil}, the first rule to make a
+match will ``win''.
+
+If no rule matched, the mail will end up in the @samp{bogus} group.
+When new groups are created by splitting mail, you may want to run
+@code{gnus-group-find-new-groups} to see the new groups. This also
+applies to the @samp{bogus} group.
If you like to tinker with this yourself, you can set this variable to a
function of your choice. This function will be called without any
diff --git a/doc/misc/rcirc.texi b/doc/misc/rcirc.texi
index f13ecc7d28..b18ab2a6b2 100644
--- a/doc/misc/rcirc.texi
+++ b/doc/misc/rcirc.texi
@@ -933,6 +933,11 @@ how to include the date in the time stamp:
(setq rcirc-time-format "%Y-%m-%d %H:%M ")
@end example
+@findex rcirc-when
+If you don't wish to use verbose time formatting all the time, you can
+use the @code{rcirc-when} command to display a complete timestamp for
+the message at point.
+
@node Defining a new command
@section Defining a new command
@cindex defining commands
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index 3c15955860..ea544218ec 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -133,19 +133,21 @@ Configuring @value{tramp} for use
* Multi-hops:: Connecting to a remote host using multiple
hops.
* Firewalls:: Passing firewalls.
* Customizing Methods:: Using Non-Standard Methods.
-* Customizing Completion:: Selecting config files for user/host name
completion.
+* Customizing Completion:: Selecting config files for user/host name @c
+completion.
* Password handling:: Reusing passwords for several connections.
* Connection caching:: Reusing connection related information.
* Predefined connection information::
Setting own connection related information.
-* Remote programs:: How @value{tramp} finds and uses programs on
the remote host.
+* Remote programs:: How @value{tramp} finds and uses programs @c
+on the remote host.
* Remote shell setup:: Remote shell setup hints.
+* Ssh setup:: Ssh setup hints.
* FUSE setup:: @acronym{FUSE} setup hints.
* Android shell setup:: Android shell setup hints.
* Auto-save File Lock and Backup::
Auto-save, File Lock and Backup.
* Keeping files encrypted:: Protect remote files by encryption.
-* Windows setup hints:: Issues with Cygwin ssh.
Using @value{tramp}
@@ -523,7 +525,7 @@ performed on another host, it can be comnbined with a
leading
connects first to the other host with non-administrative credentials,
and changes to administrative credentials on that host afterwards. In
a simple case, the syntax looks like
-@file{@value{prefix}ssh@value{postfixhop}user@@host|sudo@value{postfixhop}@value{postfix}/path/to/file}.
+@file{@trampfn{ssh@value{postfixhop}user@@host|sudo,,/path/to/file}}.
@xref{Ad-hoc multi-hops}.
@@ -683,19 +685,21 @@ may be used in your init file:
* Multi-hops:: Connecting to a remote host using multiple
hops.
* Firewalls:: Passing firewalls.
* Customizing Methods:: Using Non-Standard Methods.
-* Customizing Completion:: Selecting config files for user/host name
completion.
+* Customizing Completion:: Selecting config files for user/host name @c
+completion.
* Password handling:: Reusing passwords for several connections.
* Connection caching:: Reusing connection related information.
* Predefined connection information::
Setting own connection related information.
-* Remote programs:: How @value{tramp} finds and uses programs on
the remote host.
+* Remote programs:: How @value{tramp} finds and uses programs @c
+on the remote host.
* Remote shell setup:: Remote shell setup hints.
+* Ssh setup:: Ssh setup hints.
* FUSE setup:: @acronym{FUSE} setup hints.
* Android shell setup:: Android shell setup hints.
* Auto-save File Lock and Backup::
Auto-save, File Lock and Backup.
* Keeping files encrypted:: Protect remote files by encryption.
-* Windows setup hints:: Issues with Cygwin ssh.
@end menu
@@ -1234,7 +1238,8 @@ be populated in your @command{Online Accounts}
application outside Emacs.
Since Google Drive uses cryptic blob file names internally,
@value{tramp} works with the @code{display-name} of the files. This
could produce unexpected behavior in case two files in the same
-directory have the same @code{display-name}, such a situation must be avoided.
+directory have the same @code{display-name}, such a situation must be
+avoided.
@item @option{mtp}
@cindex method @option{mtp}
@@ -1448,7 +1453,7 @@ External methods might be more efficient for large files,
but most
@value{tramp} users edit small files more often than large files.
Enable compression, @code{tramp-inline-compress-start-size}, for a
-performance boost for large files.
+performance boost for large files with inline methods.
Since @command{ssh} has become the most common method of remote host
access and it has the most reasonable security protocols, use
@@ -1474,6 +1479,10 @@ For editing large files, @option{scp} is faster than
@option{ssh}.
@option{pscp} is faster than @option{plink}. But this speed
improvement is not always true.
+When copying large files between two different remote hosts via
+@option{scp}, set @code{tramp-use-scp-direct-remote-copying} to
+non-@code{nil}.
+
@node Default User
@section Selecting a default user
@@ -1689,8 +1698,8 @@ Sometimes, it is not possible to reach a remote host
directly. A
firewall might be in the way, which could be passed via a proxy
server.
-Both ssh and PuTTY support such proxy settings, using an HTTP tunnel
-via the @command{CONNECT} command (conforming to RFC 2616, 2817
+Both OpenSSH and PuTTY support such proxy settings, using an HTTP
+tunnel via the @command{CONNECT} command (conforming to RFC 2616, 2817
specifications). Proxy servers using HTTP 1.1 or later protocol
support this command.
@@ -1804,7 +1813,7 @@ hadoop server.
@cindex @option{vagrant} method
Convenience method to access vagrant boxes. It is often used in
multi-hop file names like
-@file{@value{prefix}vagrant@value{postfixhop}box|sudo@value{postfixhop}box@value{postfix}/path/to/file},
+@file{@trampfn{vagrant@value{postfixhop}box|sudo,box,/path/to/file}},
where @samp{box} is the name of the vagrant box.
@end table
@@ -2606,6 +2615,211 @@ where @samp{192.168.0.1} is the remote host IP address
@end table
+@node Ssh setup
+@section Ssh setup hints
+
+The most common @value{tramp} connection family is based on either
+@command{ssh} or @command{scp} of OpenSSH, or @command{plink} or
+@command{pscp} of PuTTY on MS Windows. In the following, some
+configuration recommendations are given.
+
+
+@subsection Detection of session hangouts
+
+@vindex ServerAliveInterval@r{, ssh option}
+@vindex ServerAliveCountMax@r{, ssh option}
+@command{ssh} sessions on the local host hang when the network is
+down. @value{tramp} cannot safely detect such hangs. OpenSSH can be
+configured to kill such hangs with the following settings in
+@file{~/.ssh/config}:
+
+@example
+@group
+Host *
+ ServerAliveInterval 5
+ ServerAliveCountMax 2
+@end group
+@end example
+
+The corresponding PuTTY configuration is in the @option{Connection}
+entry, @option{Seconds between keepalives} option. Set this to 5.
+There is no counter which could be set.
+
+
+@subsection Using ssh connection sharing
+
+@vindex ControlPath@r{, ssh option}
+@vindex ControlPersist@r{, ssh option}
+@value{tramp} uses the @option{ControlMaster=auto} OpenSSH option by
+default, if possible. However, it overwrites @option{ControlPath}
+settings when initiating @command{ssh} sessions. @value{tramp} does
+this to fend off a stall if a master session opened outside the Emacs
+session is no longer open. That is why @value{tramp} prompts for the
+password again even if there is an @command{ssh} already open.
+
+@vindex tramp-ssh-controlmaster-options
+Some OpenSSH versions support a @option{ControlPersist} option, which
+allows you to set the @option{ControlPath} provided the variable
+@code{tramp-ssh-controlmaster-options} is customized as follows:
+
+@lisp
+@group
+(customize-set-variable
+ 'tramp-ssh-controlmaster-options
+ (concat
+ "-o ControlPath=/tmp/ssh-ControlPath-%%r@@%%h:%%p "
+ "-o ControlMaster=auto -o ControlPersist=yes"))
+@end group
+@end lisp
+
+Note how @samp{%r}, @samp{%h} and @samp{%p} must be encoded as
+@samp{%%r}, @samp{%%h} and @samp{%%p}.
+
+@vindex tramp-use-ssh-controlmaster-options
+If the @file{~/.ssh/config} file is configured appropriately for the
+above behavior, then any changes to @command{ssh} can be suppressed
+with this @code{nil} setting:
+
+@lisp
+(customize-set-variable 'tramp-use-ssh-controlmaster-options nil)
+@end lisp
+
+@vindex ProxyCommand@r{, ssh option}
+@vindex ProxyJump@r{, ssh option}
+This should also be set to @code{nil} if you use the
+@option{ProxyCommand} or @option{ProxyJump} options in your
+@command{ssh} configuration.
+
+In order to use the @option{ControlMaster} option, @value{tramp} must
+check whether the @command{ssh} client supports this option. This is
+only possible on the local host, for the first hop. @value{tramp}
+does not use this option on proxy hosts, therefore.
+
+If you want to use this option also for the other hops, you must
+configure @file{~/.ssh/config} on the proxy host:
+
+@example
+@group
+Host *
+ ControlMaster auto
+ ControlPath tramp.%C
+ ControlPersist no
+@end group
+@end example
+
+Check the @samp{ssh_config(5)} man page whether these options are
+supported on your proxy host.
+
+On MS Windows, @code{tramp-use-ssh-controlmaster-options} is set to
+@code{nil} by default, because the MS Windows and MSYS2
+implementations of @command{OpenSSH} do not support this option properly.
+
+In PuTTY, you can achieve connection sharing in the @option{Connection/SSH}
+entry, enabling the @option{Share SSH connections if possible} option.
+
+
+@subsection Configure direct copying between two remote servers
+
+@vindex tramp-use-scp-direct-remote-copying
+@value{tramp} uses a temporary local copy when copying two files
+between different remote hosts via external methods. This behavior is
+due to authentication problems @value{tramp} cannot handle
+sufficiently. However, for @option{scp} connections this can be
+changed. When a file shall be copied between two different remote
+hosts @samp{source} and @samp{target}, and
+
+@itemize @minus
+@item
+Variable @code{tramp-use-scp-direct-remote-copying} is non-@code{nil},
+
+@item
+Remote host @samp{source} doesn't use the @option{RemoteCommand}
+option in @file{~/.ssh/config},
+
+@item
+Remote host @samp{target} shows the same host key when seen from the
+local host and from host @samp{source}, and
+
+@item
+@command{scp} running on host @samp{source} can authenticate to host
+@samp{target} without requiring a password,
+@end itemize
+
+@noindent
+@value{tramp} applies direct remote copying between hosts
+@samp{source} and @samp{target} like
+
+@example
+scp -p -T -R -q -r source:/path/to/file target:/path/to/another/file
+@end example
+
+This protects also your local temporary directory from overrun when
+copying large files.
+
+If these conditions do not apply, and
+@code{tramp-use-scp-direct-remote-copying} is non-@code{nil}, the
+option @samp{-3} is used instead of @samp{-R}.
+
+@c FIXME
+When @value{tramp} uses direct remote copying, password caches are not
+consulted.
+
+
+@subsection Issues with Cygwin ssh
+@cindex cygwin, issues
+
+This section is incomplete. Please share your solutions.
+
+@cindex method @option{sshx} with cygwin
+@cindex @option{sshx} method with cygwin
+
+Cygwin's @command{ssh} works only with a Cygwin version of Emacs. To
+check for compatibility: type @kbd{M-x eshell @key{RET}}, and start
+@kbd{ssh test.host @key{RET}}. Incompatibilities trigger this
+message:
+
+@example
+Pseudo-terminal will not be allocated because stdin is not a terminal.
+@end example
+
+Some older versions of Cygwin's @command{ssh} work with the
+@option{sshx} access method. Consult Cygwin's FAQ at
+@uref{https://cygwin.com/faq/} for details.
+
+@cindex cygwin and @command{fakecygpty}
+@cindex @command{fakecygpty} and cygwin
+
+On @uref{https://www.emacswiki.org/emacs/SshWithNTEmacs, the Emacs
+Wiki} it is explained how to use the helper program
+@command{fakecygpty} to fix this problem.
+
+@cindex method @option{scpx} with cygwin
+@cindex @option{scpx} method with cygwin
+
+When using the @option{scpx} access method, Emacs may call
+@command{scp} with MS Windows file naming, such as @file{c:/foo}. But
+the version of @command{scp} that is installed with Cygwin does not
+know about MS Windows file naming, which causes it to incorrectly look
+for a host named @samp{c}.
+
+A workaround: write a wrapper script for @option{scp} to convert
+Windows file names to Cygwin file names.
+
+@cindex cygwin and @command{ssh-agent}
+@cindex @env{SSH_AUTH_SOCK} and emacs on ms windows
+@vindex SSH_AUTH_SOCK@r{, environment variable}
+
+When using the @command{ssh-agent} on MS Windows for password-less
+interaction, @option{ssh} methods depend on the environment variable
+@env{SSH_AUTH_SOCK}. But this variable is not set when Emacs is
+started from a Desktop shortcut and authentication fails.
+
+One workaround is to use an MS Windows based SSH Agent, such as
+@command{Pageant}. It is part of the PuTTY Suite of tools.
+
+The fallback is to start Emacs from a shell.
+
+
@node FUSE setup
@section @acronym{FUSE} setup hints
@@ -2828,10 +3042,10 @@ Example:
The backup file name of
@file{@trampfn{su,root@@localhost,/etc/secretfile}} would be
@ifset unified
-@file{@trampfn{su,root@@localhost,~/.emacs.d/backups/!su:root@@localhost:!etc!secretfile~}}
+@file{@trampfn{su,root@@localhost,~/.emacs.d/backups/!su:root@@localhost:!etc!secretfile~}}.
@end ifset
@ifset separate
-@file{@trampfn{su,root@@localhost,~/.emacs.d/backups/![su!root@@localhost]!etc!secretfile~}}
+@file{@trampfn{su,root@@localhost,~/.emacs.d/backups/![su!root@@localhost]!etc!secretfile~}}.
@end ifset
@vindex auto-save-file-name-transforms
@@ -2857,7 +3071,7 @@ similar user option as auto-save files, called
original file.
If you change @code{lock-file-name-transforms} in order to keep file
-locks for remote files somewhere else, you will loose Emacs' feature
+locks for remote files somewhere else, you will lose Emacs's feature
to warn you, if a file is changed in parallel from different Emacs
sessions, or via different remote connections. Be careful with such
settings.
@@ -2926,7 +3140,7 @@ you, for example, mark the remote directory
@file{@trampfn{nextcloud,user@@host,/path/to/dir}} for encryption, the
configuration file is saved as
@file{tramp-%2Fnextcloud%3Auser%40host%3A%2Fpath%2Fto%2Fdir%2F.encfs6.xml}
-in @code{user-emacs-directory}. Do not loose this file and the
+in @code{user-emacs-directory}. Do not lose this file and the
corresponding password; otherwise there is no way to decrypt your
encrypted files.
@@ -2985,62 +3199,6 @@ subdirectories will remain encrypted.
@end deffn
-@node Windows setup hints
-@section Issues with Cygwin ssh
-@cindex cygwin, issues
-
-This section is incomplete. Please share your solutions.
-
-@cindex method @option{sshx} with cygwin
-@cindex @option{sshx} method with cygwin
-
-Cygwin's @command{ssh} works only with a Cygwin version of Emacs. To
-check for compatibility: type @kbd{M-x eshell @key{RET}}, and start
-@kbd{ssh test.host @key{RET}}. Incompatibilities trigger this
-message:
-
-@example
-Pseudo-terminal will not be allocated because stdin is not a terminal.
-@end example
-
-Some older versions of Cygwin's @command{ssh} work with the
-@option{sshx} access method. Consult Cygwin's FAQ at
-@uref{https://cygwin.com/faq/} for details.
-
-@cindex cygwin and @command{fakecygpty}
-@cindex @command{fakecygpty} and cygwin
-
-On @uref{https://www.emacswiki.org/emacs/SshWithNTEmacs, the Emacs
-Wiki} it is explained how to use the helper program
-@command{fakecygpty} to fix this problem.
-
-@cindex method @option{scpx} with cygwin
-@cindex @option{scpx} method with cygwin
-
-When using the @option{scpx} access method, Emacs may call
-@command{scp} with MS Windows file naming, such as @file{c:/foo}. But
-the version of @command{scp} that is installed with Cygwin does not
-know about MS Windows file naming, which causes it to incorrectly look
-for a host named @samp{c}.
-
-A workaround: write a wrapper script for @option{scp} to convert
-Windows file names to Cygwin file names.
-
-@cindex cygwin and @command{ssh-agent}
-@cindex @env{SSH_AUTH_SOCK} and emacs on ms windows
-@vindex SSH_AUTH_SOCK@r{, environment variable}
-
-When using the @command{ssh-agent} on MS Windows for password-less
-interaction, @option{ssh} methods depend on the environment variable
-@env{SSH_AUTH_SOCK}. But this variable is not set when Emacs is
-started from a Desktop shortcut and authentication fails.
-
-One workaround is to use an MS Windows based SSH Agent, such as
-Pageant. It is part of the Putty Suite of tools.
-
-The fallback is to start Emacs from a shell.
-
-
@node Usage
@chapter Using @value{tramp}
@cindex using @value{tramp}
@@ -3085,23 +3243,23 @@ is a feature of Emacs that may cause missed prompts
when using
on the remote host @var{host}, using the method @var{method}.
@table @file
-@item @value{prefix}ssh@value{postfixhop}melancholia@value{postfix}.emacs
+@item @trampfn{ssh,melancholia,.emacs}
For the file @file{.emacs} located in the home directory, on the host
@code{melancholia}, using method @code{ssh}.
-@item
@value{prefix}ssh@value{postfixhop}melancholia.danann.net@value{postfix}.emacs
+@item @trampfn{ssh,melancholia.danann.net,.emacs}
For the file @file{.emacs} specified using the fully qualified domain name of
the host.
-@item @value{prefix}ssh@value{postfixhop}melancholia@value{postfix}~/.emacs
+@item @trampfn{ssh,melancholia,~/.emacs}
For the file @file{.emacs} specified using the @file{~}, which is expanded.
-@item
@value{prefix}ssh@value{postfixhop}melancholia@value{postfix}~daniel/.emacs
+@item @trampfn{ssh,melancholia,~daniel/.emacs}
For the file @file{.emacs} located in @code{daniel}'s home directory
on the host, @code{melancholia}. The @file{~<user>} construct is
expanded to the home directory of that user on the remote host.
-@item
@value{prefix}ssh@value{postfixhop}melancholia@value{postfix}/etc/squid.conf
+@item @trampfn{ssh,melancholia,/etc/squid.conf}
For the file @file{/etc/squid.conf} on the host @code{melancholia}.
@end table
@@ -3115,12 +3273,9 @@ brackets @file{@value{ipv6prefix}} and
@file{@value{ipv6postfix}}.
@end ifset
By default, @value{tramp} will use the current local user name as the
-remote user name for log in to the remote host. Specifying a different
-name using the proper syntax will override this default behavior:
-
-@example
-@trampfn{method,user@@host,path/to/file}
-@end example
+remote user name for log in to the remote host. Specifying a
+different name using the proper syntax will override this default
+behavior: @file{@trampfn{method,user@@host,path/to/file}}.
@file{@trampfn{ssh,daniel@@melancholia,.emacs}} is for file
@file{.emacs} in @code{daniel}'s home directory on the host,
@@ -3316,8 +3471,9 @@ remote host name and file name. For example, hopping
over a single
proxy @samp{bird@@bastion} to a remote file on @samp{you@@remotehost}:
@example
-@c @kbd{C-x C-f
@trampfn{ssh@value{postfixhop}bird@@bastion|ssh,you,remotehost,/path} @key{RET}}
-@kbd{C-x C-f
@value{prefix}ssh@value{postfixhop}bird@@bastion|ssh@value{postfixhop}you@@remotehost@value{postfix}/path
@key{RET}}
+@c @kbd{C-x C-f
@trampfn{ssh@value{postfixhop}bird@@bastion|ssh,you@@remotehost,/path}
@key{RET}}
+@kbd{C-x C-f @value{prefix}ssh@value{postfixhop}bird@@bastion|@c
+ssh@value{postfixhop}you@@remotehost@value{postfix}/path @key{RET}}
@end example
Each involved method must be an inline method (@pxref{Inline methods}).
@@ -3345,12 +3501,12 @@ Ad-hoc proxies can take patterns @code{%h} or @code{%u}
like in
@code{tramp-default-proxies-alist}. The following file name expands
to user @samp{root} on host @samp{remotehost}, starting with an
@option{ssh} session on host @samp{remotehost}:
-@samp{@value{prefix}ssh@value{postfixhop}%h|su@value{postfixhop}remotehost@value{postfix}}.
+@samp{@trampfn{ssh@value{postfixhop}%h|su,remotehost,}}.
-On the other hand, if a trailing hop does not specify a host name,
-the host name of the previous hop is reused. Therefore, the following
+On the other hand, if a trailing hop does not specify a host name, the
+host name of the previous hop is reused. Therefore, the following
file name is equivalent to the previous example:
-@samp{@value{prefix}ssh@value{postfixhop}remotehost|su@value{postfixhop}@value{postfix}}.
+@samp{@trampfn{ssh@value{postfixhop}remotehost|su,,}}.
@node Remote processes
@@ -3971,7 +4127,9 @@ would trigger renaming of buffer file names on
@samp{badhost} to
@samp{goodhost}, including changing the directory name.
@lisp
-("@trampfn{ssh,.+\\\\.company\\\\.org,}" .
"@value{prefix}ssh@value{postfixhop}multi.hop|ssh@value{postfixhop}%h@value{postfix}")
+("@trampfn{ssh,.+\\\\.company\\\\.org,}" @c
+. "@value{prefix}ssh@value{postfixhop}multi.hop|@c
+ssh@value{postfixhop}%h@value{postfix}")
@end lisp
routes all connections to a host in @samp{company.org} via
@@ -4231,7 +4389,8 @@ It is even possible to access file archives in file
archives, as
(progn
(url-handler-mode 1)
(find-file
-
"https://ftp.debian.org/debian/pool/main/c/coreutils/coreutils_8.28-1_amd64.deb/control.tar.gz/control"))
+ "https://ftp.debian.org/debian/pool/main/c/coreutils/\
+coreutils_8.28-1_amd64.deb/control.tar.gz/control"))
@end group
@end lisp
@@ -4537,97 +4696,6 @@ In order to disable those optimizations, set user option
@code{tramp-local-host-regexp} to @code{nil}.
-@item
-@value{tramp} does not recognize if a @command{ssh} session hangs
-
-@vindex ServerAliveInterval@r{, ssh option}
-@command{ssh} sessions on the local host hang when the network is
-down. @value{tramp} cannot safely detect such hangs. The network
-configuration for @command{ssh} can be configured to kill such hangs
-with the following command in the @file{~/.ssh/config}:
-
-@example
-@group
-Host *
- ServerAliveInterval 5
-@end group
-@end example
-
-
-@item
-@value{tramp} does not use default @command{ssh} @option{ControlPath}
-
-@vindex ControlPath@r{, ssh option}
-@vindex ControlPersist@r{, ssh option}
-@value{tramp} overwrites @option{ControlPath} settings when initiating
-@command{ssh} sessions. @value{tramp} does this to fend off a stall
-if a master session opened outside the Emacs session is no longer
-open. That is why @value{tramp} prompts for the password again even
-if there is an @command{ssh} already open.
-
-@vindex tramp-ssh-controlmaster-options
-Some @command{ssh} versions support a @option{ControlPersist} option,
-which allows you to set the @option{ControlPath} provided the variable
-@code{tramp-ssh-controlmaster-options} is customized as follows:
-
-@lisp
-@group
-(customize-set-variable
- 'tramp-ssh-controlmaster-options
- (concat
- "-o ControlPath=/tmp/ssh-ControlPath-%%r@@%%h:%%p "
- "-o ControlMaster=auto -o ControlPersist=yes"))
-@end group
-@end lisp
-
-Note how @samp{%r}, @samp{%h} and @samp{%p} must be encoded as
-@samp{%%r}, @samp{%%h} and @samp{%%p}.
-
-@vindex tramp-use-ssh-controlmaster-options
-If the @file{~/.ssh/config} file is configured appropriately for the
-above behavior, then any changes to @command{ssh} can be suppressed
-with this @code{nil} setting:
-
-@lisp
-(customize-set-variable 'tramp-use-ssh-controlmaster-options nil)
-@end lisp
-
-@vindex ProxyCommand@r{, ssh option}
-@vindex ProxyJump@r{, ssh option}
-This should also be set to @code{nil} if you use the
-@option{ProxyCommand} or @option{ProxyJump} options in your
-@command{ssh} configuration.
-
-On MS Windows, @code{tramp-use-ssh-controlmaster-options} is set to
-@code{nil} by default, because the MS Windows and MSYS2
-implementations of @command{OpenSSH} do not support this option properly.
-
-
-@item
-On multi-hop connections, @value{tramp} does not use @command{ssh}
-@option{ControlMaster}
-
-In order to use the @option{ControlMaster} option, @value{tramp} must
-check whether the @command{ssh} client supports this option. This is
-only possible on the local host, for the first hop. @value{tramp}
-does not use this option on proxy hosts.
-
-If you want to use this option also for the other hops, you must
-configure @file{~/.ssh/config} on the proxy host:
-
-@example
-@group
-Host *
- ControlMaster auto
- ControlPath tramp.%C
- ControlPersist no
-@end group
-@end example
-
-Check the @samp{ssh_config(5)} man page whether these options are
-supported on your proxy host.
-
-
@item
Does @value{tramp} support @acronym{SSH} security keys?
@@ -5075,7 +5143,8 @@ Why saved multi-hop file names do not work in a new Emacs
session?
When saving ad-hoc multi-hop @value{tramp} file names (@pxref{Ad-hoc
multi-hops}) via bookmarks, recent files, filecache, bbdb, or another
package, use the full ad-hoc file name including all hops, like
-@file{@trampfn{ssh,bird@@bastion|ssh@value{postfixhop}news.my.domain,/opt/news/etc}}.
+@file{@trampfn{ssh,bird@@bastion|ssh@value{postfixhop}@c
+news.my.domain,/opt/news/etc}}.
Alternatively, when saving abbreviated multi-hop file names
@file{@trampfn{ssh,news@@news.my.domain,/opt/news/etc}}, the user
@@ -5384,7 +5453,7 @@ bind it to non-@code{nil} value.
Keeping a local cache of remote file attributes in sync with the
remote host is a time-consuming operation. Flushing and re-querying
these attributes can tax @value{tramp} to a grinding halt on busy
-remote servers.
+remote hosts.
To get around these types of slow-downs in @value{tramp}'s
responsiveness, set the @code{process-file-side-effects} to @code{nil}
@@ -5539,6 +5608,8 @@ function call traces are written to the buffer
@file{*trace-output*}.
@c
@c * Say something about the .login and .profile files of the remote
@c shells.
+@c
@c * Explain how tramp.el works in principle: open a shell on a remote
@c host and then send commands to it.
+@c
@c * Consistent small or capitalized words especially in menus.
diff --git a/etc/AUTHORS b/etc/AUTHORS
index 60b1ee4bd0..0029a4b97f 100644
--- a/etc/AUTHORS
+++ b/etc/AUTHORS
@@ -751,7 +751,9 @@ Caleb Deupree: changed w32-fns.el
Callum Cameron: changed term.el
Cameron Desautels: changed cus-edit.el custom.texi help.el regexp-opt.el
- ruby-mode.el
+ ruby-mode.el titdic-cnv.el
+
+Campbell Barton: changed bookmark.el
Carl D. Roth: changed gnus-nocem.el
@@ -869,6 +871,8 @@ Chris Prince: changed w32term.c
Chris Smith: wrote icon.el
and changed icon-mode.el
+Christer Enfors: changed erc.texi
+
Christian Egli: changed org-taskjuggler.el org.texi
Christian Faulhammer: changed configure configure.ac src/Makefile.in
@@ -1571,7 +1575,7 @@ and co-wrote help-tests.el
and changed xdisp.c display.texi w32.c msdos.c w32fns.c simple.el
files.el fileio.c keyboard.c emacs.c w32term.c text.texi dispnew.c
w32proc.c files.texi frames.texi configure.ac lisp.h dispextern.h
- process.c editfns.c and 1231 other files
+ process.c editfns.c and 1232 other files
Eliza Velasquez: changed server.el
@@ -2942,7 +2946,7 @@ and changed tramp-gvfs.el tramp-sh.el comint.el
em-unix.el esh-util.el
tramp-cache.el tramp.el url-handlers.el wid-edit.el
Juri Linkov: wrote compose.el files-x.el misearch.el repeat-tests.el
- replace-tests.el tab-bar.el tab-line.el
+ replace-tests.el tab-bar-tests.el tab-bar.el tab-line.el
and changed isearch.el simple.el info.el replace.el dired.el dired-aux.el
progmodes/grep.el subr.el window.el image-mode.el mouse.el diff-mode.el
files.el menu-bar.el minibuffer.el progmodes/compile.el startup.el
@@ -3005,8 +3009,8 @@ Karl Eichwalder: changed Makefile.in add-log.el
bookmark.el dired-aux.el
Karl Fogel: wrote bookmark.el mail-hist.el saveplace.el
and co-wrote pcvs.el
-and changed simple.el files.el doc-view.el image-mode.el info.el
- isearch.el vc-svn.el CONTRIBUTE INSTALL autogen.sh editfns.c
+and changed simple.el files.el CONTRIBUTE doc-view.el image-mode.el
+ info.el isearch.el vc-svn.el INSTALL autogen.sh editfns.c
internals.texi menu-bar.el simple-test.el subr.el tex-mode.el
thingatpt.el INSTALL.REPO comint.el configure configure.ac
and 21 other files
@@ -3155,9 +3159,9 @@ and changed gnus-agent.el gnus-sum.el gnus-start.el
gnus-int.el nntp.el
Kevin Layer: changed mml.el w32proc.c
-Kévin Le Gouguec: changed font-lock.el gnus-sum.el dired-aux-tests.el
- dired-aux.el electric-tests.el font-lock-tests.el gnus.el message.texi
- project.el sh-script.el shr.el
+Kévin Le Gouguec: changed font-lock.el gnus-sum.el progmodes/python.el
+ dired-aux-tests.el dired-aux.el electric-tests.el font-lock-tests.el
+ gnus.el message.texi project.el python-tests.el sh-script.el shr.el
Kevin Rodgers: changed compile.el mailabbrev.el progmodes/compile.el
dired-x.el files.el ange-ftp.el byte-opt.el desktop.el diff-mode.el
@@ -3329,7 +3333,7 @@ Lee Duhem: changed eval.c
Leigh Stoller: changed emacsclient.c server.el
-Lele Gaifax: changed progmodes/python.el TUTORIAL.it flymake.el
+Lele Gaifax: changed TUTORIAL.it progmodes/python.el flymake.el
python-tests.el flymake-proc.el flymake.texi isearch.el
Lennart Borgman: co-wrote ert-x.el
@@ -3612,9 +3616,9 @@ Martin Neitzel: changed supercite.el
Martin Pohlack: changed iimage.el pc-select.el
Martin Rudalics: changed window.el window.c windows.texi frame.c xdisp.c
- xterm.c w32fns.c frames.texi w32term.c xfns.c frame.el display.texi
+ xterm.c frames.texi w32fns.c w32term.c xfns.c frame.el display.texi
frame.h cus-start.el help.el buffer.c window.h mouse.el dispnew.c
- nsfns.m gtkutil.c and 211 other files
+ nsfns.m gtkutil.c and 212 other files
Martin Stjernholm: wrote cc-bytecomp.el
and co-wrote cc-align.el cc-cmds.el cc-compat.el cc-defs.el cc-engine.el
@@ -4270,10 +4274,11 @@ and co-wrote eudc-bob.el eudc-export.el eudc-hotlist.el
eudc-vars.el
eudc.el eudcb-bbdb.el eudcb-ldap.el eudcb-ph.el
and changed ph.el
-Óscar Fuentes: changed ido.el password-cache.el ses.el vc-hooks.el xfns.c
- CPP-DEFINES addpm.c addsection.c browse-url.el callproc.c cmdproxy.c
- configure.ac diff-mode.el emacsclient.c keyboard.c ms-w32.h preprep.c
- progmodes/grep.el vc-bzr.el vc-cvs.el vc-git.el and 9 other files
+Óscar Fuentes: changed ido.el password-cache.el progmodes/grep.el ses.el
+ vc-hooks.el xfns.c CPP-DEFINES addpm.c addsection.c browse-url.el
+ callproc.c cmdproxy.c configure.ac diff-mode.el em-cmpl.el
+ emacsclient.c keyboard.c ms-w32.h preprep.c vc-bzr.el vc-cvs.el
+ and 10 other files
Øyvind Stegard: changed gnus-msg.el
@@ -4300,9 +4305,9 @@ and changed imenu.el make-mode.el
Paul Eggert: wrote rcs2log
and co-wrote cal-dst.el
and changed lisp.h configure.ac alloc.c fileio.c process.c editfns.c
- sysdep.c xdisp.c fns.c image.c keyboard.c emacs.c data.c lread.c
+ sysdep.c xdisp.c fns.c image.c keyboard.c data.c emacs.c lread.c
xterm.c eval.c gnulib-comp.m4 callproc.c Makefile.in frame.c buffer.c
- and 1851 other files
+ and 1854 other files
Paul Fisher: changed fns.c
@@ -4503,8 +4508,8 @@ Philipp Stephani: wrote callint-tests.el checkdoc-tests.el
cl-preloaded-tests.el ediff-diff-tests.el eval-tests.el ido-tests.el
lread-tests.el mouse-tests.el startup-tests.el xt-mouse-tests.el
and changed emacs-module.c emacs-module-tests.el configure.ac json.c
- eval.c process.c json-tests.el process-tests.el internals.texi alloc.c
- emacs-module.h.in emacs.c lread.c nsterm.m lisp.h bytecomp.el pdumper.c
+ process.c eval.c json-tests.el process-tests.el internals.texi alloc.c
+ emacs-module.h.in emacs.c lread.c nsterm.m lisp.h pdumper.c bytecomp.el
callproc.c seccomp-filter.c gtkutil.c files.el and 179 other files
Phillip Lord: wrote ps-print-tests.el w32-feature.el
@@ -4559,7 +4564,9 @@ and changed xdisp.c comp.c fns.c pdumper.c alloc.c
byte-opt.el
ccl-tests.el ccl.c ccl.el cmds.c comint.el comp-test-funcs.el
comp-tests.el comp.el composite.c and 28 other files
-Po Lu: changed xdisp.c browse-url.el cc-compat.el nsfns.m nsterm.m
+Po Lu: changed xdisp.c browse-url.el callproc.c cc-compat.el config.bat
+ esh-cmd.el fileio.c langinfo.h loadup.el msdos.c msdos.h nsfns.m
+ nsterm.m process.c sed1v2.inp sed2v2.inp sed3v2.inp sedlibmk.inp
Pontus Michael: changed simple.el
@@ -4769,7 +4776,7 @@ Robert Pluim: wrote nsm-tests.el
and changed configure.ac process.c blocks.awk network-stream-tests.el
font.c processes.texi ftfont.c gtkutil.c vc-git.el process-tests.el
emoji-zwj.awk gnutls.el network-stream.el nsm.el tramp.texi mml-sec.el
- nsterm.m unicode xfns.c auth.texi composite.c and 133 other files
+ nsterm.m unicode xfns.c auth.texi composite.c and 134 other files
Robert Thorpe: changed cus-start.el indent.el rmail.texi
@@ -4969,7 +4976,7 @@ Sean O'Rourke: changed complete.el comint.el dabbrev.el
find-func.el
Sean Sieger: changed emacs-lisp-intro.texi
Sean Whitton: changed project.el bindings.el files.texi simple.el
- repeat.el
+ killing.texi rect.el repeat.el
Sebastian Freundt: changed nnmaildir.el
@@ -5162,9 +5169,8 @@ Stefan Kangas: wrote bookmark-tests.el cal-julian-tests.el
and co-wrote help-tests.el keymap-tests.el
and changed efaq.texi checkdoc.el package.el cperl-mode.el bookmark.el
help.el keymap.c subr.el simple.el erc.el ediff-util.el idlwave.el
- time.el bytecomp-tests.el comp.el speedbar.el bytecomp.el
- emacs-lisp-intro.texi flyspell.el ibuffer.el package-tests.el
- and 1337 other files
+ time.el bytecomp-tests.el comp.el speedbar.el bytecomp.el edebug.el
+ emacs-lisp-intro.texi flyspell.el ibuffer.el and 1337 other files
Stefan Merten: co-wrote rst.el
@@ -5936,7 +5942,7 @@ Yamamoto Mitsuharu: wrote uvs.el
and changed macterm.c macfns.c mac-win.el xterm.c mac.c macterm.h image.c
macmenu.c macgui.h xdisp.c ftfont.c xfns.c keyboard.c macselect.c
ftcrfont.c macfont.m configure.ac w32term.c dispextern.h
- src/Makefile.in unexmacosx.c and 108 other files
+ src/Makefile.in unexmacosx.c and 111 other files
Yan Gajdos: changed vc-git.el
@@ -6025,6 +6031,8 @@ Zhang Wei: changed chinese.el characters.el mule-cmds.el
xfns.c erc.el
Zhang Weize: wrote ob-plantuml.el
+Zhehao Lin: changed xfaces.c
+
Zhiwei Chen: changed hideif.el
Zhongwei Yao: changed tramp-adb.el
diff --git a/etc/NEWS b/etc/NEWS
index 9c892b285d..d1eaf08036 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -72,13 +72,16 @@ work on any underlying window system supported by GDK, such
as
Wayland and Broadway.
---
-** The docstrings of preloaded files are not in 'etc/DOC' any more.
-Instead, they're fetched as needed from the corresponding '.elc' file,
+** The docstrings of preloaded files are not in "etc/DOC" any more.
+Instead, they're fetched as needed from the corresponding ".elc" file,
as was already the case for all the non-preloaded files.
* Startup Changes in Emacs 29.1
++++
+** Emacs now support setting 'user-emacs-directory' via --init-directory.
+
+++
** Emacs now has a '--fingerprint' option.
This will output a string identifying the current Emacs build.
@@ -92,18 +95,30 @@ time.
* Incompatible changes in Emacs 29.1
+---
+** New user option 'term-clear-full-screen-programs'.
+By default, term will now work like most terminals when displaying
+full-screen programs: When they exit, the output is cleared, leaving
+what was displayed in the window before the programs started. Set
+this user option to nil to revert back to the old behavior.
+
---
** Support for old EIEIO functions is not autoloaded any more.
-You need an explicit (require 'eieio-compat) to use 'defmethod'
-and 'defgeneric' (which have been made obsolete in Emacs-25 with
+You need an explicit '(require 'eieio-compat)' to use 'defmethod'
+and 'defgeneric' (which have been made obsolete in Emacs 25.1 with
'cl-defmethod' and 'cl-defgeneric').
-Similarly you might need to (require 'eieio-compat) before loading
+Similarly you might need to '(require 'eieio-compat)' before loading
files that were compiled with an old EIEIO (Emacs<25).
---
** 'C-x 8 .' has been moved to 'C-x 8 . .'.
This is to open up the 'C-x 8 .' map to bind further characters there.
+---
+** 'source' and '.' in Eshell no longer accept the '--help' option.
+This is for compatibility with the shell versions of these commands,
+which don't handle options like '--help' in any special way.
+
* Changes in Emacs 29.1
@@ -144,6 +159,25 @@ buffer isn't displayed.
This controls the thickness of the external borders of the menu bars
and pop-up menus.
++++
+** New X resource: "inputStyle".
+This controls the style of the pre-edit and status areas of X input
+methods.
+
+---
+** New user option 'x-gtk-use-native-input'.
+This controls whether or not GTK input methods are used by Emacs,
+instead of XIM input methods.
+
++++
+** New user option 'use-system-tooltips'.
+This controls whether to use the toolkit tooltips, or Emacs's own
+native implementation of tooltips as small frames. This option is
+only meaningful if Emacs was built with GTK+ or Haiku support, and
+defaults to t, which makes Emacs use the toolkit tooltips. The
+existing GTK-specific option 'x-gtk-use-system-tooltips' is now an
+alias of this new option.
+
---
** New minor mode 'pixel-scroll-precision-mode'.
When enabled, and if your mouse supports it, you can scroll the
@@ -213,6 +247,8 @@ inserted.
This command will tell you the name of the Emoji at point. (This
command also works for non-Emoji characters.)
+*** New input method 'emoji'.
+
** Help
---
@@ -231,6 +267,22 @@ These will take you (respectively) to the next and
previous "page".
---
*** 'describe-char' now also outputs the name of emoji combinations.
++++
+*** New key binding in *Help* buffers: 'I'.
+This will take you to the Emacs Lisp manual entry for the item
+displayed, if any.
+
+** Outline Mode
+
+*** Support for customizing the default visibility state of headings.
+Customize the user option 'outline-default-state' to define what
+headings will be visible after Outline mode is turned on. When equal
+to a number, the user option 'outline-default-rules' determines the
+visibility of the subtree starting at the corresponding level. Values
+are provided to control showing a heading subtree depending on whether
+the heading matches a regexp, or on whether its subtree has long lines
+or is itself too long.
+
** Outline Minor Mode
+++
@@ -259,6 +311,18 @@ For example, a 'display-buffer-alist' entry of
will make the body of the chosen window 40 columns wide. For the
height use 'window-height' in combination with 'body-lines'.
+*** 'other-window-scroll-default' can define the other window to scroll.
+
+** Frames
+
++++
+*** Deleted frames can now be undeleted.
+The 16 most recently deleted frames can be undeleted with 'C-x 5 u' when
+'undelete-frame-mode' is enabled. Without a prefix argument, undelete
+the most recently deleted frame. With a numerical prefix argument
+between 1 and 16, where 1 is the most recently deleted frame, undelete
+the corresponding deleted frame.
+
** Tab Bars and Tab Lines
---
@@ -290,6 +354,11 @@ The Emacs server will be automatically stopped when
certain conditions
are met. The conditions are given by the argument, which can be
'empty', 'delete-frame' or 'kill-terminal'.
+** Rcirc
+
++++
+*** New command 'rcirc-when'.
+
* Editing Changes in Emacs 29.1
---
@@ -297,7 +366,7 @@ are met. The conditions are given by the argument, which
can be
These forms now indent like this:
(cl-flet ((bla (x)
- (* x x)))
+ (* x x)))
(bla 42))
This change also affects 'cl-macrolet', 'cl-flet*' and
@@ -360,21 +429,33 @@ received.
** Minibuffer and Completions
-*** The *Completions* buffer can now be automatically selected.
-To enable this behavior, customize the option 'completion-auto-select'
-to t. Then pressing TAB will switch to the *Completions* buffer when
-it pops up that buffer.
+*** The "*Completions*" buffer can now be automatically selected.
+To enable this behavior, customize the user option
+'completion-auto-select' to t. Then pressing 'TAB' will switch to the
+"*Completions*" buffer when it pops up that buffer.
*** New user option 'completion-wrap-movement'.
When non-nil, the commands 'next-completion' and 'previous-completion'
automatically wrap around on reaching the beginning or the end of
-the *Completions* buffer.
+the "*Completions*" buffer.
+
+*** New user option 'completions-sort'.
+This option controls the sorting of the completion candidates in
+the *Completions* buffer. Available styles are no sorting,
+alphabetical (the default), or a custom sort function.
** Isearch and Replace
+++
*** New user option 'char-fold-override' disables default character
equivalences.
++++
+*** New command 'isearch-emoji-by-name'.
+It is bound to 'C-x 8 e RET' during an incremental search. The
+command accepts the Unicode name of an Emoji (for example, "smiling
+face" or "heart with arrow"), like 'C-x 8 e e', with minibuffer
+completion, and adds the Emoji into the search string.
+
** New minor mode 'glyphless-display-mode'.
This allows an easy way to toggle seeing all glyphless characters in
the current buffer.
@@ -423,7 +504,7 @@ If non-nil, 'C-c C-a' will put attached files at the end of
the message.
---
*** Message Mode now supports image yanking.
----
++++
*** New user option 'message-server-alist'.
This controls automatic insertion of the "X-Message-SMTP-Method"
header before sending a message.
@@ -558,6 +639,12 @@ to enable the display of the buffer list.
It is bound to 'C-M-,' and jumps to the location where 'xref-go-back'
('M-,', also known as 'xref-pop-marker-stack') was invoked previously.
+*** 'xref-query-replace-in-results' does not prompt for FROM when
+called without prefix argument, to make the most common case faster:
+replacing entire matches.
+
+*** New command 'xref-find-references-and-replace' to rename one identifier.
+
** File notifications
+++
@@ -769,6 +856,12 @@ When calling 'abbreviate-file-name' on a Tramp filename,
the result
will abbreviate the user's home directory, for example by abbreviating
"/ssh:user@host:/home/user" to "/ssh:user@host:~".
++++
+*** New user option 'tramp-use-scp-direct-remote-copying'.
+When set to non-nil, Tramp does not copy files between two remote
+hosts via a local copy in its temporary directory, but let the 'scp'
+command do this job.
+
** Browse URL
---
@@ -781,6 +874,28 @@ the Netscape web browser was released in February, 2008.
This support has been obsolete since Emacs 25.1. The final version of
the Galeon web browser was released in September, 2008.
+** Ruby Mode
+
+*** New user option 'ruby-toggle-block-space-before-parameters'.
+
+** Eshell
+
++++
+*** New feature to easily bypass Eshell's own pipelining.
+Prefixing '|', '<' or '>' with an asterisk, i.e. '*|', '*<' or '*>',
+will cause the whole command to be passed to the operating system
+shell. This is particularly useful to bypass Eshell's own pipelining
+support for pipelines which will move a lot of data. See "Running
+Shell Pipelines Natively" in the Eshell manual.
+
+** Miscellaneous
+
+---
+*** New minor mode 'elide-head-mode'.
+Enabling this minor mode turns on hiding header material, like
+'elide-head' does; disabling it shows the header. The commands
+'elide-head' and 'elide-head-show' are now obsolete.
+
* New Modes and Packages in Emacs 29.1
@@ -888,9 +1003,44 @@ characters in the range U+0080..U+00FF as substitutes for
single bytes
in the range 128..255, but signal an error for all multibyte characters.
The input must be encoded text.
++++
+** The 'clone-indirect-buffer-hook' is now run by 'make-indirect-buffer'.
+It was previously only run by 'clone-indirect-buffer' and
+'clone-indirect-buffer-other-window'. Since 'make-indirect-buffer' is
+called by both of these, the hook is now run by all 3 of these
+functions.
+
* Lisp Changes in Emacs 29.1
++++
+** New function 'readablep'.
+This function says whether an object can be written out and then
+read back by the Emacs Lisp reader.
+
++++
+** New variable 'print-unreadable-function'.
+This variable allows changing how Emacs prints unreadable objects.
+
+---
+** The user option 'polling-period' now accepts floating point values.
+This means Emacs can now poll for input during Lisp execution more
+frequently than once in a second.
+
+---
+** New function 'bidi-string-strip-control-characters'.
+This utility function is meant for displaying strings when it's
+essential that there's no bidirectional context.
+
+---
+** The Gnus range functions have been moved to a new library, range.el.
+All the old names have been made obsolete.
+
++++
+** New function 'function-alias-p'.
+This predicate says whether an object is a function alias, and if it
+is, the alias chain is returned.
+
+++
** New variable 'lisp-directory' holds the directory of Emacs's own Lisp files.
@@ -921,10 +1071,36 @@ wheel on some mice, or when the user's finger moves off
the touchpad.
+++
** New event type 'pinch'.
-This event is sent when a user peforms a pinch gesture on a touchpad,
+This event is sent when a user performs a pinch gesture on a touchpad,
which is comprised of placing two fingers on the touchpad and moving
them towards or away from each other.
+** Text security and suspiciousness
+
++++
+*** New library textsec.el.
+This library contains a number of checks for whether a string is
+"suspicious". This usually means that the string contains characters
+that have glyphs that can be confused with other, more commonly used
+glyphs, or contain bidirectional (or other) formatting characters that
+may be used to confuse a user.
+
++++
+*** New user option 'textsec-check'.
+If non-nil (which is the default), Emacs packages that are vulnerable
+to attackers trying to confuse the users will use the textsec library
+to mark suspicious text. For instance shr/eww will mark suspicious
+URLs and links, Gnus will mark suspicious From addresses, and
+Message mode will query the user if the user is sending mail to a
+suspicious address. If this variable is nil, these checks aren't
+performed.
+
++++
+*** New function 'textsec-suspicious-p'.
+This is the main function Emacs applications should be using to check
+whether a string is suspicious. It heeds the 'textsec-check' user
+option.
+
** Keymaps and key definitions
+++
@@ -1030,6 +1206,10 @@ searchable data, like image data) with a 'display' text
property.
It marks the image with the 'inhibit-isearch' text property, which
inhibits 'isearch' matching the STRING parameter.
+---
+** New function 'replace-regexp-function'.
+It can be used to implement own regexp syntax for search/replace.
+
---
** New user option 'pp-use-max-width'.
If non-nil, 'pp' will attempt to limit the line length when formatting
@@ -1055,16 +1235,22 @@ This can be used to check whether a specific font has a
glyph for a
character.
+++
-** 'window-text-pixel-size' now accepts a new argument 'ignore-line-at-end'.
+** 'window-text-pixel-size' now accepts a new argument IGNORE-LINE-AT-END.
This controls whether or not the last screen line of the text being
measured will be counted for the purpose of calculating the text
dimensions.
+++
-** 'window-text-pixel-size' understands a new meaning of 'from'.
-Specifying a cons as the from argument allows to start measuring text
+** 'window-text-pixel-size' understands a new meaning of FROM.
+Specifying a cons as the FROM argument allows to start measuring text
from a specified amount of pixels above or below a position.
+---
+** 'eshell-eval-using-options' now follows POSIX/GNU argument syntax
conventions.
+Built-in commands in Eshell now accept command-line options with
+values passed as a single token, such as '-oVALUE' or
+'--option=VALUE'.
+
** XDG support
*** New function 'xdg-state-home' returns 'XDG_STATE_HOME' environment
variable.
@@ -1233,9 +1419,9 @@ cookies set by web pages on disk.
This variable is bound to t during the preparation of a "*Help*" buffer.
+++
-** Timestamps like (1 . 1000) now work without warnings being generated.
-For example, (time-add nil '(1 . 1000)) no longer warns that the
-(1 . 1000) acts like (1000 . 1000000). This warning, which was a
+** Timestamps like '(1 . 1000)' now work without warnings being generated.
+For example, '(time-add nil '(1 . 1000))' no longer warns that the
+'(1 . 1000)' acts like '(1000 . 1000000)'. This warning, which was a
temporary transition aid for Emacs 27, has served its purpose.
+++
@@ -1255,6 +1441,12 @@ This is a subcategory of 'file-error', and is signaled
when some file
operation fails because the OS doesn't allow Emacs to access a file or
a directory.
++++
+** The ':underline' face attribute now accepts a new property.
+The property ':position' now specifies the position of the underline
+when used as part of a property list specification for the
+':underline' attribute.
+
* Changes in Emacs 29.1 on Non-Free Operating Systems
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 9040c49256..2358203c3d 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -1304,6 +1304,13 @@ and then Alt-F7). A bug for it is here:
https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/231034.
Note that a permanent fix seems to be to disable "assistive technologies".
+*** Enlightenment: Frames not redrawn after switching virtual desktops
+
+With Enlightenment version 0.25, Emacs frames may no be redrawn orderly
+after switching back from another virtual desktop. Setting the variable
+'x-set-frame-visibility-more-laxly' to one of 'focus-in', 'expose' or
+'t' should fix this.
+
*** Gnome: Emacs receives input directly from the keyboard, bypassing XIM.
This seems to happen when gnome-settings-daemon version 2.12 or later
diff --git a/etc/e/eterm-color b/etc/e/eterm-color
index bf44fa0f36..fadac25ffc 100644
Binary files a/etc/e/eterm-color and b/etc/e/eterm-color differ
diff --git a/etc/e/eterm-color.ti b/etc/e/eterm-color.ti
index eeb9b0b6e6..84b27aef5d 100644
--- a/etc/e/eterm-color.ti
+++ b/etc/e/eterm-color.ti
@@ -16,6 +16,7 @@ eterm-color|Emacs term.el terminal emulator
term-protocol-version 0.96,
am,
mir,
msgr,
+ nrrmc,
xenl,
bel=^G,
blink=\E[5m,
@@ -77,8 +78,8 @@ eterm-color|Emacs term.el terminal emulator
term-protocol-version 0.96,
smso=\E[7m,
u6=\E[%i%d;%dR,
u7=\E[6n,
-# smcup=\E[?47h,
-# rmcup=\E[?47l,
+ smcup=\E[47h,
+ rmcup=\E[47l,
# rs2 may need to be added
eterm-direct|Emacs term.el with direct-color indexing term-protocol-version
0.96,
diff --git a/etc/e/eterm-direct b/etc/e/eterm-direct
index c113c37136..f4c16621eb 100644
Binary files a/etc/e/eterm-direct and b/etc/e/eterm-direct differ
diff --git a/leim/Makefile.in b/leim/Makefile.in
index a574a10845..2a477d868b 100644
--- a/leim/Makefile.in
+++ b/leim/Makefile.in
@@ -35,15 +35,14 @@ EXEEXT = @EXEEXT@
-include ${top_builddir}/src/verbose.mk
# Prevent any settings in the user environment causing problems.
-unexport EMACSDATA EMACSDOC EMACSPATH
+unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH
# Which Emacs to use to convert TIT files to Emacs Lisp files,
# and generate the file leim-list.el.
EMACS = ../src/emacs${EXEEXT}
# How to run Emacs.
-# Prevent any setting of EMACSLOADPATH in user environment causing problems.
-RUN_EMACS = EMACSLOADPATH= '$(EMACS)' -batch --no-site-file --no-site-lisp
+RUN_EMACS = '$(EMACS)' -batch --no-site-file --no-site-lisp
MKDIR_P = @MKDIR_P@
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in
index c25ba5c974..0453b93506 100644
--- a/lib-src/Makefile.in
+++ b/lib-src/Makefile.in
@@ -20,6 +20,9 @@
SHELL = @SHELL@
+# Prevent any settings in the user environment causing problems.
+unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH
+
# Following ../lisp/Makefile.in.
EMACS = ../src/emacs${EXEEXT}
EMACSOPT = -batch --no-site-file --no-site-lisp
diff --git a/lib-src/be_resources.cc b/lib-src/be_resources.cc
index d18fe30dd7..414f91a192 100644
--- a/lib-src/be_resources.cc
+++ b/lib-src/be_resources.cc
@@ -29,6 +29,9 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#include <Application.h>
#include <Catalog.h>
#include <Roster.h>
+#include <Bitmap.h>
+#include <Rect.h>
+#include <View.h>
using namespace std;
@@ -79,11 +82,25 @@ main (int argc, char **argv)
BApplication app ("application/x-vnd.GNU-emacs-resource-helper");
BFile file;
BBitmap *icon;
+ BBitmap scale32 (BRect (0, 0, 31, 31), B_RGBA32, true);
+ BBitmap scale16 (BRect (0, 0, 15, 15), B_RGBA32, true);
BAppFileInfo info;
status_t code;
struct version_info vinfo;
char *v = strdup (PACKAGE_VERSION);
+ if (scale32.InitCheck () != B_OK
+ || scale16.InitCheck () != B_OK)
+ {
+ fprintf (stderr, "Bitmap initialization ran out of memory\n");
+ return EXIT_FAILURE;
+ }
+
+ BView scale32view (scale32.Bounds (), NULL,
+ B_FOLLOW_NONE, B_WILL_DRAW);
+ BView scale16view (scale16.Bounds (), NULL,
+ B_FOLLOW_NONE, B_WILL_DRAW);
+
if (argc != 3)
{
printf ("be-resources ICON FILE: make FILE appropriate for Emacs.\n");
@@ -117,8 +134,24 @@ main (int argc, char **argv)
return EXIT_FAILURE;
}
- info.SetIcon (icon, B_MINI_ICON);
- info.SetIcon (icon, B_LARGE_ICON);
+ scale32.AddChild (&scale32view);
+ scale16.AddChild (&scale16view);
+
+ if (!scale32view.LockLooper ()
+ || !scale16view.LockLooper ())
+ {
+ fprintf (stderr, "Failed to lock bitmap looper\n");
+ return EXIT_FAILURE;
+ }
+
+ scale32view.DrawBitmapAsync (icon, scale32.Bounds ());
+ scale16view.DrawBitmapAsync (icon, scale16.Bounds ());
+
+ scale32view.Sync ();
+ scale16view.Sync ();
+
+ info.SetIcon (&scale16, B_MINI_ICON);
+ info.SetIcon (&scale32, B_LARGE_ICON);
info.SetSignature ("application/x-vnd.GNU-emacs");
v = strtok (v, ".");
@@ -140,5 +173,5 @@ main (int argc, char **argv)
info.SetVersionInfo (&vinfo, B_APP_VERSION_KIND);
- return EXIT_SUCCESS;
+ exit (EXIT_SUCCESS);
}
diff --git a/lib-src/ebrowse.c b/lib-src/ebrowse.c
index 04ae018464..ac7e790187 100644
--- a/lib-src/ebrowse.c
+++ b/lib-src/ebrowse.c
@@ -1925,7 +1925,15 @@ matching_regexp (void)
*--s = *--t;
if (*s == '"' || *s == '\\')
- *--s = '\\';
+ {
+ if (s > matching_regexp_buffer)
+ *--s = '\\';
+ else
+ {
+ s++;
+ break;
+ }
+ }
}
*(matching_regexp_end_buf - 1) = '\0';
diff --git a/lib-src/seccomp-filter.c b/lib-src/seccomp-filter.c
index 552a986239..d368cbb46c 100644
--- a/lib-src/seccomp-filter.c
+++ b/lib-src/seccomp-filter.c
@@ -228,6 +228,7 @@ main (int argc, char **argv)
capabilities, and operating on them shouldn't cause security
issues. */
RULE (SCMP_ACT_ALLOW, SCMP_SYS (read));
+ RULE (SCMP_ACT_ALLOW, SCMP_SYS (pread64));
RULE (SCMP_ACT_ALLOW, SCMP_SYS (write));
RULE (SCMP_ACT_ALLOW, SCMP_SYS (close));
RULE (SCMP_ACT_ALLOW, SCMP_SYS (lseek));
@@ -239,6 +240,7 @@ main (int argc, char **argv)
should be further restricted using mount namespaces. */
RULE (SCMP_ACT_ALLOW, SCMP_SYS (access));
RULE (SCMP_ACT_ALLOW, SCMP_SYS (faccessat));
+ RULE (SCMP_ACT_ALLOW, SCMP_SYS (faccessat2));
RULE (SCMP_ACT_ALLOW, SCMP_SYS (stat));
RULE (SCMP_ACT_ALLOW, SCMP_SYS (stat64));
RULE (SCMP_ACT_ALLOW, SCMP_SYS (lstat));
diff --git a/lisp/Makefile.in b/lisp/Makefile.in
index d29dec08a5..308407a8bf 100644
--- a/lisp/Makefile.in
+++ b/lisp/Makefile.in
@@ -77,6 +77,8 @@ AUTOGENEL = ${loaddefs} ${srcdir}/cus-load.el
${srcdir}/finder-inf.el \
# Set load-prefer-newer for the benefit of the non-bootstrappers.
BYTE_COMPILE_FLAGS = \
--eval '(setq load-prefer-newer t)' $(BYTE_COMPILE_EXTRA_FLAGS)
+# ... but we must prefer .elc files for those in the early bootstrap.
+compile-first: BYTE_COMPILE_FLAGS = $(BYTE_COMPILE_EXTRA_FLAGS)
# Files to compile before others during a bootstrap. This is done to
# speed up the bootstrap process. They're ordered by size, so we use
@@ -101,11 +103,10 @@ MAIN_FIRST = ./emacs-lisp/eieio.el
./emacs-lisp/eieio-base.el \
./cedet/semantic/db.el ./emacs-lisp/cconv.el
# Prevent any settings in the user environment causing problems.
-unexport EMACSDATA EMACSDOC EMACSPATH
+unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH
# The actual Emacs command run in the targets below.
-# Prevent any setting of EMACSLOADPATH in user environment causing problems.
-emacs = EMACSLOADPATH= '$(EMACS)' $(EMACSOPT)
+emacs = '$(EMACS)' $(EMACSOPT)
## Subdirectories, relative to builddir.
SUBDIRS = $(sort $(shell find ${srcdir} -type d -print))
@@ -304,9 +305,23 @@ endif
# An old-fashioned suffix rule, which, according to the GNU Make manual,
# cannot have prerequisites.
ifeq ($(HAVE_NATIVE_COMP),yes)
+ifeq ($(ANCIENT),yes)
+# The first compilation of compile-first, using an interpreted compiler:
+# The resulting .elc files get given a date of 1971-01-01 so that their
+# date stamp is earlier than the source files, causing these to be compiled
+# into native code at the second recursive invocation of this $(MAKE),
+# using these .elc's. This is faster than just compiling the native code
+# directly using the interpreted compile-first files. (Note: 1970-01-01
+# fails on some systems.)
+.el.elc:
+ $(AM_V_ELC)$(emacs) $(BYTE_COMPILE_FLAGS) \
+ -l comp -f batch-byte-compile $<
+ touch -t 197101010000 $@
+else
.el.elc:
$(AM_V_ELC)$(emacs) $(BYTE_COMPILE_FLAGS) \
-l comp -f batch-byte+native-compile $<
+endif
else
.el.elc:
$(AM_V_ELC)$(emacs) $(BYTE_COMPILE_FLAGS) -f batch-byte-compile $<
diff --git a/lisp/abbrev.el b/lisp/abbrev.el
index 448e184255..44328a2b28 100644
--- a/lisp/abbrev.el
+++ b/lisp/abbrev.el
@@ -67,13 +67,11 @@ be replaced by its expansion."
(define-obsolete-variable-alias 'edit-abbrevs-map
'edit-abbrevs-mode-map "24.4")
-(defvar edit-abbrevs-mode-map
- (let ((map (make-sparse-keymap)))
- (define-key map "\C-x\C-s" 'abbrev-edit-save-buffer)
- (define-key map "\C-x\C-w" 'abbrev-edit-save-to-file)
- (define-key map "\C-c\C-c" 'edit-abbrevs-redefine)
- map)
- "Keymap used in `edit-abbrevs'.")
+(defvar-keymap edit-abbrevs-mode-map
+ :doc "Keymap used in `edit-abbrevs'."
+ "C-x C-s" #'abbrev-edit-save-buffer
+ "C-x C-w" #'abbrev-edit-save-to-file
+ "C-c C-c" #'edit-abbrevs-redefine)
(defun kill-all-abbrevs ()
"Undefine all defined abbrevs."
@@ -149,12 +147,18 @@ Otherwise display all abbrevs."
Selects a buffer containing a list of abbrev definitions with
point located in the abbrev table for the current buffer, and
turns on `edit-abbrevs-mode' in that buffer.
-You can edit them and type \\<edit-abbrevs-map>\\[edit-abbrevs-redefine] to
redefine abbrevs
+
+You can edit them and type \\<edit-abbrevs-mode-map>\\[edit-abbrevs-redefine] \
+to redefine abbrevs
according to your editing.
+
The abbrevs editing buffer contains a header line for each
abbrev table, which is the abbrev table name in parentheses.
+
This is followed by one line per abbrev in that table:
-NAME USECOUNT EXPANSION HOOK
+
+ NAME USECOUNT EXPANSION HOOK
+
where NAME and EXPANSION are strings with quotes,
USECOUNT is an integer, and HOOK is any valid function
or may be omitted (it is usually omitted)."
@@ -168,7 +172,7 @@ or may be omitted (it is usually omitted)."
(defun edit-abbrevs-redefine ()
"Redefine abbrevs according to current buffer contents."
- (interactive)
+ (interactive nil edit-abbrevs-mode)
(save-restriction
(widen)
(define-abbrevs t)
@@ -269,7 +273,8 @@ have been saved."
(list (read-file-name "Save abbrevs to file: "
(file-name-directory
(expand-file-name abbrev-file-name))
- abbrev-file-name)))
+ abbrev-file-name))
+ edit-abbrevs-mode)
(edit-abbrevs-redefine)
(write-abbrev-file file t))
@@ -277,7 +282,7 @@ have been saved."
"Save all user-level abbrev definitions in current buffer.
The saved abbrevs are written to the file specified by
`abbrev-file-name'."
- (interactive)
+ (interactive nil edit-abbrevs-mode)
(abbrev-edit-save-to-file abbrev-file-name))
@@ -1188,7 +1193,8 @@ SORTFUN is passed to `sort' to change the default
ordering."
(define-derived-mode edit-abbrevs-mode fundamental-mode "Edit-Abbrevs"
"Major mode for editing the list of abbrev definitions.
This mode is for editing abbrevs in a buffer prepared by `edit-abbrevs',
-which see.")
+which see."
+ :interactive nil)
(provide 'abbrev)
diff --git a/lisp/apropos.el b/lisp/apropos.el
index 2d77d26ba6..ec10b5425c 100644
--- a/lisp/apropos.el
+++ b/lisp/apropos.el
@@ -493,7 +493,12 @@ Intended as a value for `revert-buffer-function'."
\\{apropos-mode-map}"
(make-local-variable 'apropos--current)
- (setq-local revert-buffer-function #'apropos--revert-buffer))
+ (setq-local revert-buffer-function #'apropos--revert-buffer)
+ (setq-local outline-regexp "^[^ \n]+"
+ outline-level (lambda () 1)
+ outline-minor-mode-cycle t
+ outline-minor-mode-highlight t
+ outline-minor-mode-use-buttons t))
(defvar apropos-multi-type t
"If non-nil, this apropos query concerns multiple types.
@@ -846,7 +851,7 @@ Returns list of symbols and values found."
f v p)
apropos-accumulator))))))
(let ((apropos-multi-type do-all))
- (apropos-print nil "\n----------------\n")))
+ (apropos-print nil "\n")))
;;;###autoload
(defun apropos-local-value (pattern &optional buffer)
@@ -940,13 +945,14 @@ Returns list of symbols and documentation found."
(defun apropos-value-internal (predicate symbol function)
(when (funcall predicate symbol)
- (setq symbol (prin1-to-string
- (if (memq symbol '(command-history minibuffer-history))
- ;; The value we're looking for will always be in
- ;; the first element of these two lists, so skip
- ;; that value.
- (cdr (funcall function symbol))
- (funcall function symbol))))
+ (let ((print-escape-newlines t))
+ (setq symbol (prin1-to-string
+ (if (memq symbol '(command-history minibuffer-history))
+ ;; The value we're looking for will always be in
+ ;; the first element of these two lists, so skip
+ ;; that value.
+ (cdr (funcall function symbol))
+ (funcall function symbol)))))
(when (string-match apropos-regexp symbol)
(if apropos-match-face
(put-text-property (match-beginning 0) (match-end 0)
@@ -1156,13 +1162,15 @@ as a heading."
(old-buffer (current-buffer))
(inhibit-read-only t)
(button-end 0)
+ (first t)
symbol item)
(set-buffer standard-output)
(apropos-mode)
(apropos--preamble text)
(dolist (apropos-item p)
- (when (and spacing (not (bobp)))
- (princ spacing))
+ (if (and spacing (not first))
+ (princ spacing)
+ (setq first nil))
(setq symbol (car apropos-item))
;; Insert dummy score element for backwards compatibility with 21.x
;; apropos-item format.
@@ -1276,7 +1284,9 @@ as a heading."
(cond ((equal doc "")
(setq doc "(not documented)"))
(do-keys
- (setq doc (substitute-command-keys doc))))
+ (setq doc (or (ignore-errors
+ (substitute-command-keys doc))
+ doc))))
(insert doc)
(if (equal doc "(not documented)")
(put-text-property opoint (point) 'font-lock-face 'shadow))
diff --git a/lisp/auth-source.el b/lisp/auth-source.el
index 80c220561a..8a425cf9bc 100644
--- a/lisp/auth-source.el
+++ b/lisp/auth-source.el
@@ -853,15 +853,17 @@ while \(:host t) would find all host entries."
(cl-return 'no)))
'no))))
-(defun auth-source-pick-first-password (&rest spec)
- "Pick the first secret found from applying SPEC to `auth-source-search'."
- (let* ((result (nth 0 (apply #'auth-source-search (plist-put spec :max 1))))
- (secret (plist-get result :secret)))
-
+(defun auth-info-password (auth-info)
+ "Return the :secret password from the AUTH-INFO."
+ (let ((secret (plist-get auth-info :secret)))
(if (functionp secret)
(funcall secret)
secret)))
+(defun auth-source-pick-first-password (&rest spec)
+ "Pick the first secret found by applying 'auth-source-search' to SPEC."
+ (auth-info-password (car (apply #'auth-source-search (plist-put spec :max
1)))))
+
(defun auth-source-format-prompt (prompt alist)
"Format PROMPT using %x (for any character x) specifiers in ALIST.
Remove trailing \": \"."
@@ -1800,10 +1802,9 @@ authentication tokens:
(plist-put
artificial
:save-function
- (let* ((collection collection)
- (item (plist-get artificial :label))
- (secret (plist-get artificial :secret))
- (secret (if (functionp secret) (funcall secret) secret)))
+ (let ((collection collection)
+ (item (plist-get artificial :label))
+ (secret (auth-info-password artificial)))
(lambda ()
(auth-source-secrets-saver collection item secret args)))))
@@ -2410,9 +2411,7 @@ MODE can be \"login\" or \"password\"."
:require '(:user :secret)
:create nil))))
(user (plist-get auth-info :user))
- (password (plist-get auth-info :secret)))
- (when (functionp password)
- (setq password (funcall password)))
+ (password (auth-info-password auth-info)))
(list user password auth-info)))
;;; Tiny mode for editing .netrc/.authinfo modes (that basically just
diff --git a/lisp/battery.el b/lisp/battery.el
index 45334163fa..b7b81a11a1 100644
--- a/lisp/battery.el
+++ b/lisp/battery.el
@@ -96,12 +96,14 @@ Value does not include \".\" or \"..\"."
(cond ((member battery-upower-service (dbus-list-activatable-names))
#'battery-upower)
((and (eq system-type 'gnu/linux)
+ (file-readable-p "/sys/")
(battery--find-linux-sysfs-batteries))
#'battery-linux-sysfs)
((and (eq system-type 'gnu/linux)
(file-directory-p "/proc/acpi/battery"))
#'battery-linux-proc-acpi)
((and (eq system-type 'gnu/linux)
+ (file-readable-p "/proc/")
(file-readable-p "/proc/apm"))
#'battery-linux-proc-apm)
((and (eq system-type 'berkeley-unix)
diff --git a/lisp/cedet/ede/project-am.el b/lisp/cedet/ede/project-am.el
index 2803e1c307..544e39b872 100644
--- a/lisp/cedet/ede/project-am.el
+++ b/lisp/cedet/ede/project-am.el
@@ -191,8 +191,9 @@ other meta-variable based on this name.")
"Encode one makefile.")
;;; Code:
-(cl-defmethod project-add-file ((ot project-am-target))
+(cl-defmethod project-add-file ((ot project-am-target) &optional _file)
"Add the current buffer into a project.
+_FILE is ignored.
OT is the object target. DIR is the directory to start in."
(let* ((target (if ede-object (error "Already associated w/ a target")
(let ((amf (project-am-load default-directory)))
diff --git a/lisp/cedet/semantic/db-el.el b/lisp/cedet/semantic/db-el.el
index 73ef37ea2a..02ebde4078 100644
--- a/lisp/cedet/semantic/db-el.el
+++ b/lisp/cedet/semantic/db-el.el
@@ -213,9 +213,7 @@ TOKTYPE is a hint to the type of tag desired."
(symbol-name sym)
nil ;; return type
(semantic-elisp-desymbolify arglist)
- :user-visible-flag (condition-case nil
- (interactive-form sym)
- (error nil)))))
+ :user-visible-flag (commandp sym))))
((and (eq toktype 'variable) (boundp sym))
(semantic-tag-new-variable
(symbol-name sym)
diff --git a/lisp/cedet/semantic/fw.el b/lisp/cedet/semantic/fw.el
index fd61751cb5..b7c3461a4d 100644
--- a/lisp/cedet/semantic/fw.el
+++ b/lisp/cedet/semantic/fw.el
@@ -191,12 +191,20 @@ will throw a warning when it encounters this symbol."
(not (string-match "cedet" (macroexp-file-name)))
)
(make-obsolete-overload oldfnalias newfn when)
- (byte-compile-warn
- "%s: `%s' obsoletes overload `%s'"
- (macroexp-file-name)
- newfn
- (with-suppressed-warnings ((obsolete
semantic-overload-symbol-from-function))
- (semantic-overload-symbol-from-function oldfnalias)))))
+ (if (fboundp 'byte-compile-warn-x)
+ (byte-compile-warn-x
+ newfn
+ "%s: `%s' obsoletes overload `%s'"
+ (macroexp-file-name)
+ newfn
+ (with-suppressed-warnings ((obsolete
semantic-overload-symbol-from-function))
+ (semantic-overload-symbol-from-function oldfnalias)))
+ (byte-compile-warn
+ "%s: `%s' obsoletes overload `%s'"
+ (macroexp-file-name)
+ newfn
+ (with-suppressed-warnings ((obsolete
semantic-overload-symbol-from-function))
+ (semantic-overload-symbol-from-function oldfnalias))))))
(defun semantic-varalias-obsolete (oldvaralias newvar when)
"Make OLDVARALIAS an alias for variable NEWVAR.
@@ -209,10 +217,14 @@ will throw a warning when it encounters this symbol."
(error
;; Only throw this warning when byte compiling things.
(when (macroexp-compiling-p)
- (byte-compile-warn
- "variable `%s' obsoletes, but isn't alias of `%s'"
- newvar oldvaralias)
- ))))
+ (if (fboundp 'byte-compile-warn-x)
+ (byte-compile-warn-x
+ newvar
+ "variable `%s' obsoletes, but isn't alias of `%s'"
+ newvar oldvaralias)
+ (byte-compile-warn
+ "variable `%s' obsoletes, but isn't alias of `%s'"
+ newvar oldvaralias))))))
;;; Help debugging
;;
diff --git a/lisp/cus-face.el b/lisp/cus-face.el
index fa6d940d7c..12ad3910fc 100644
--- a/lisp/cus-face.el
+++ b/lisp/cus-face.el
@@ -46,7 +46,7 @@
;;; Face attributes.
(defconst custom-face-attributes
- '((:family
+ `((:family
(string :tag "Font Family"
:help-echo "Font family or fontset alias name."))
@@ -141,28 +141,36 @@
(const :format "" :value :style)
(choice :tag "Style"
(const :tag "Line" line)
- (const :tag "Wave" wave))))
+ (const :tag "Wave" wave))
+ (const :format "" :value :position)
+ (choice :tag "Position"
+ (const :tag "At Default Position" nil)
+ (const :tag "At Bottom Of Text" t)
+ (integer :tag "Pixels Above Bottom Of Text"))))
;; filter to make value suitable for customize
- (lambda (real-value)
- (and real-value
- (let ((color
- (or (and (consp real-value) (plist-get real-value :color))
- (and (stringp real-value) real-value)
- 'foreground-color))
- (style
- (or (and (consp real-value) (plist-get real-value :style))
- 'line)))
- (list :color color :style style))))
+ ,(lambda (real-value)
+ (and real-value
+ (let ((color
+ (or (and (consp real-value) (plist-get real-value :color))
+ (and (stringp real-value) real-value)
+ 'foreground-color))
+ (style
+ (or (and (consp real-value) (plist-get real-value :style))
+ 'line))
+ (position (and (consp real-value)
+ (plist-get real-value :style))))
+ (list :color color :style style :position position))))
;; filter to make customized-value suitable for storing
- (lambda (cus-value)
- (and cus-value
- (let ((color (plist-get cus-value :color))
- (style (plist-get cus-value :style)))
- (cond ((eq style 'line)
- ;; Use simple value for default style
- (if (eq color 'foreground-color) t color))
- (t
- `(:color ,color :style ,style)))))))
+ ,(lambda (cus-value)
+ (and cus-value
+ (let ((color (plist-get cus-value :color))
+ (style (plist-get cus-value :style))
+ (position (plist-get cus-value :position)))
+ (cond ((and (eq style 'line) (not position))
+ ;; Use simple value for default style
+ (if (eq color 'foreground-color) t color))
+ (t
+ `(:color ,color :style ,style :position ,position)))))))
(:overline
(choice :tag "Overline"
@@ -198,40 +206,40 @@
(const :tag "Flat" flat-button)
(const :tag "None" nil))))
;; filter to make value suitable for customize
- (lambda (real-value)
- (and real-value
- (let ((lwidth
- (or (and (consp real-value)
- (if (listp (cdr real-value))
- (plist-get real-value :line-width)
- real-value))
- (and (integerp real-value) real-value)
- '(1 . 1)))
- (color
- (or (and (consp real-value) (plist-get real-value :color))
- (and (stringp real-value) real-value)
- nil))
- (style
- (and (consp real-value) (plist-get real-value :style))))
- (if (integerp lwidth)
- (setq lwidth (cons (abs lwidth) lwidth)))
- (list :line-width lwidth :color color :style style))))
+ ,(lambda (real-value)
+ (and real-value
+ (let ((lwidth
+ (or (and (consp real-value)
+ (if (listp (cdr real-value))
+ (plist-get real-value :line-width)
+ real-value))
+ (and (integerp real-value) real-value)
+ '(1 . 1)))
+ (color
+ (or (and (consp real-value) (plist-get real-value :color))
+ (and (stringp real-value) real-value)
+ nil))
+ (style
+ (and (consp real-value) (plist-get real-value :style))))
+ (if (integerp lwidth)
+ (setq lwidth (cons (abs lwidth) lwidth)))
+ (list :line-width lwidth :color color :style style))))
;; filter to make customized-value suitable for storing
- (lambda (cus-value)
- (and cus-value
- (let ((lwidth (plist-get cus-value :line-width))
- (color (plist-get cus-value :color))
- (style (plist-get cus-value :style)))
- (cond ((and (null color) (null style))
- lwidth)
- ((and (null lwidth) (null style))
- ;; actually can't happen, because LWIDTH is always an int
- color)
- (t
- ;; Keep as a plist, but remove null entries
- (nconc (and lwidth `(:line-width ,lwidth))
- (and color `(:color ,color))
- (and style `(:style ,style)))))))))
+ ,(lambda (cus-value)
+ (and cus-value
+ (let ((lwidth (plist-get cus-value :line-width))
+ (color (plist-get cus-value :color))
+ (style (plist-get cus-value :style)))
+ (cond ((and (null color) (null style))
+ lwidth)
+ ((and (null lwidth) (null style))
+ ;; actually can't happen, because LWIDTH is always an int
+ color)
+ (t
+ ;; Keep as a plist, but remove null entries
+ (nconc (and lwidth `(:line-width ,lwidth))
+ (and color `(:color ,color))
+ (and style `(:style ,style)))))))))
(:inverse-video
(choice :tag "Inverse-video"
@@ -268,18 +276,18 @@
:help-echo "List of faces to inherit attributes from."
(face :Tag "Face" default))
;; filter to make value suitable for customize
- (lambda (real-value)
- (cond ((or (null real-value) (eq real-value 'unspecified))
- nil)
- ((symbolp real-value)
- (list real-value))
- (t
- real-value)))
+ ,(lambda (real-value)
+ (cond ((or (null real-value) (eq real-value 'unspecified))
+ nil)
+ ((symbolp real-value)
+ (list real-value))
+ (t
+ real-value)))
;; filter to make customized-value suitable for storing
- (lambda (cus-value)
- (if (and (consp cus-value) (null (cdr cus-value)))
- (car cus-value)
- cus-value))))
+ ,(lambda (cus-value)
+ (if (and (consp cus-value) (null (cdr cus-value)))
+ (car cus-value)
+ cus-value))))
"Alist of face attributes.
@@ -321,12 +329,12 @@ If FRAME is nil, use the global defaults for FACE."
"Apply a list of face specs for user customizations.
This works by calling `custom-theme-set-faces' for the `user'
theme, a special theme referring to settings made via Customize.
-The arguments should be a list where each entry has the form:
+The arguments ARGS should be a list where each entry has the form:
(FACE SPEC [NOW [COMMENT]])
See the documentation of `custom-theme-set-faces' for details."
- (apply 'custom-theme-set-faces 'user args))
+ (apply #'custom-theme-set-faces 'user args))
(defun custom-theme-set-faces (theme &rest args)
"Apply a list of face specs associated with theme THEME.
@@ -411,7 +419,7 @@ Each of the arguments ARGS has this form:
(FACE FROM-THEME)
This means reset FACE to its value in FROM-THEME."
- (apply 'custom-theme-reset-faces 'user args))
+ (apply #'custom-theme-reset-faces 'user args))
(define-obsolete-function-alias 'custom-facep #'facep "28.1")
diff --git a/lisp/cus-start.el b/lisp/cus-start.el
index 667e36b211..afdbd82457 100644
--- a/lisp/cus-start.el
+++ b/lisp/cus-start.el
@@ -356,6 +356,7 @@ Leaving \"Default\" unchecked is equivalent with specifying
a default of
(const :tag "Iconify" t))
"26.1")
(tooltip-reuse-hidden-frame tooltip boolean "26.1")
+ (use-system-tooltips tooltip boolean "29.1")
;; fringe.c
(overflow-newline-into-fringe fringe boolean)
;; image.c
@@ -369,7 +370,7 @@ Leaving \"Default\" unchecked is equivalent with specifying
a default of
(auto-save-timeout auto-save (choice (const :tag "off" nil)
(integer :format "%v")))
(echo-keystrokes minibuffer number)
- (polling-period keyboard integer)
+ (polling-period keyboard float)
(double-click-time mouse (restricted-sexp
:match-alternatives (integerp 'nil 't)))
(double-click-fuzz mouse integer "22.1")
@@ -829,6 +830,7 @@ since it could result in memory overflow and make Emacs
crash."
(x-stretch-cursor display boolean "21.1")
(scroll-bar-adjust-thumb-portion windows boolean "24.4")
(x-scroll-event-delta-factor mouse float "29.1")
+ (x-gtk-use-native-input keyboard boolean "29.1")
;; xselect.c
(x-select-enable-clipboard-manager killing boolean "24.1")
;; xsettings.c
@@ -855,6 +857,9 @@ since it could result in memory overflow and make Emacs
crash."
(featurep 'ns))
((string-match "\\`haiku-" (symbol-name symbol))
(featurep 'haiku))
+ ((eq symbol 'x-gtk-use-native-input)
+ (and (featurep 'x)
+ (featurep 'gtk)))
((string-match "\\`x-.*gtk" (symbol-name symbol))
(featurep 'gtk))
((string-match "clipboard-manager" (symbol-name symbol))
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 3dbc037eb6..64967a8dec 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -2145,18 +2145,23 @@ Prompt user for a target directory in which to create
the new
one file is marked. The initial suggestion for target is the
Dired buffer's current directory (or, if `dired-dwim-target' is
non-nil, the current directory of a neighboring Dired window).
+
OP-SYMBOL is the symbol for the operation. Function `dired-mark-pop-up'
will determine whether pop-ups are appropriate for this OP-SYMBOL.
+
FILE-CREATOR and OPERATION as in `dired-create-files'.
+
ARG as in `dired-get-marked-files'.
+
Optional arg MARKER-CHAR as in `dired-create-files'.
+
Optional arg OP1 is an alternate form for OPERATION if there is
only one file.
+
Optional arg HOW-TO determines how to treat the target.
If HOW-TO is nil, use `file-directory-p' to determine if the
target is a directory. If so, the marked file(s) are created
- inside that directory. Otherwise, the target is a plain file;
- an error is raised unless there is exactly one marked file.
+ inside that directory.
If HOW-TO is t, target is always treated as a plain file.
Otherwise, HOW-TO should be a function of one argument, TARGET.
If its return value is nil, TARGET is regarded as a plain file.
@@ -2169,6 +2174,11 @@ Optional arg HOW-TO determines how to treat the target.
target - the name of the target itself.
The rest of elements of the list returned by HOW-TO are optional
arguments for the function that is the first element of the list.
+
+ This can be useful because by default, copying a single file
+ would replace the tar file. But this could be overridden to
+ add or replace entries in the tar file.
+
For any other return value, TARGET is treated as a directory."
(or op1 (setq op1 operation))
(let* ((fn-list (dired-get-marked-files nil arg nil nil t))
@@ -2417,7 +2427,7 @@ If FILE already exists, signal an error."
(defvar dired-copy-how-to-fn nil
"Either nil or a function used by `dired-do-copy' to determine target.
-See HOW-TO argument for `dired-do-create-files'.")
+See HOW-TO argument for `dired-do-create-files' for an explanation.")
;;;###autoload
(defun dired-do-copy (&optional arg)
diff --git a/lisp/dired.el b/lisp/dired.el
index 9813fca435..5f1bfef12c 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -2756,7 +2756,7 @@ permissions are hidden from view.
See options: `dired-hide-details-hide-symlink-targets' and
`dired-hide-details-hide-information-lines'."
:group 'dired
- (unless (derived-mode-p 'dired-mode)
+ (unless (derived-mode-p 'dired-mode 'wdired-mode)
(error "Not a Dired buffer"))
(dired-hide-details-update-invisibility-spec)
(if dired-hide-details-mode
diff --git a/lisp/doc-view.el b/lisp/doc-view.el
index 5b462b24f5..4979a2c0e2 100644
--- a/lisp/doc-view.el
+++ b/lisp/doc-view.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2007-2022 Free Software Foundation, Inc.
;;
;; Author: Tassilo Horn <tsdh@gnu.org>
-;; Keywords: files, pdf, ps, dvi
+;; Keywords: files, pdf, ps, dvi, djvu, epub, cbz, fb2, xps, openxps
;; This file is part of GNU Emacs.
@@ -25,17 +25,19 @@
;; Viewing PS/PDF/DVI files requires Ghostscript, `dvipdf' (comes with
;; Ghostscript) or `dvipdfm' (comes with teTeX or TeXLive) and
;; `pdftotext', which comes with xpdf (https://www.foolabs.com/xpdf/)
-;; or poppler (https://poppler.freedesktop.org/).
-;; Djvu documents require `ddjvu' (from DjVuLibre).
-;; ODF files require `soffice' (from LibreOffice).
+;; or poppler (https://poppler.freedesktop.org/). EPUB, CBZ, FB2, XPS
+;; and OXPS documents require `mutool' which comes with mupdf
+;; (https://mupdf.com/index.html). Djvu documents require `ddjvu'
+;; (from DjVuLibre). ODF files require `soffice' (from LibreOffice).
;;; Commentary:
;; DocView is a document viewer for Emacs. It converts a number of
-;; document formats (including PDF, PS, DVI, Djvu and ODF files) to a
-;; set of PNG files, one PNG for each page, and displays the PNG
-;; images inside an Emacs buffer. This buffer uses `doc-view-mode'
-;; which provides convenient key bindings for browsing the document.
+;; document formats (including PDF, PS, DVI, Djvu, ODF, EPUB, CBZ,
+;; FB2, XPS and OXPS files) to a set of PNG (or TIFF for djvu) files,
+;; one image for each page, and displays the images inside an Emacs
+;; buffer. This buffer uses `doc-view-mode' which provides convenient
+;; key bindings for browsing the document.
;;
;; To use it simply open a document file with
;;
@@ -147,7 +149,10 @@
;;;; Customization Options
(defgroup doc-view nil
- "In-buffer viewer for PDF, PostScript, DVI, and DJVU files."
+ "In-buffer document viewer.
+The viewer handles PDF, PostScript, DVI, DJVU, ODF, EPUB, CBZ,
+FB2, XPS and OXPS files, if the appropriate converter programs
+are available (see Info node `(emacs)Document View')"
:link '(function-link doc-view)
:version "22.2"
:group 'applications
@@ -221,6 +226,38 @@
Higher values result in larger images."
:type 'number)
+(defvar doc-view-doc-type nil
+ "The type of document in the current buffer.
+Can be `dvi', `pdf', `ps', `djvu', `odf', 'epub', `cbz', `fb2',
+`'xps' or `oxps'.")
+
+;; FIXME: The doc-view-current-* definitions below are macros because they
+;; map to accessors which we want to use via `setf' as well!
+(defmacro doc-view-current-page (&optional win)
+ `(image-mode-window-get 'page ,win))
+(defmacro doc-view-current-info () '(image-mode-window-get 'info))
+(defmacro doc-view-current-overlay () '(image-mode-window-get 'overlay))
+(defmacro doc-view-current-image () '(image-mode-window-get 'image))
+(defmacro doc-view-current-slice () '(image-mode-window-get 'slice))
+
+(defvar-local doc-view--current-cache-dir nil
+ "Only used internally.")
+
+(defun doc-view-custom-set-epub-font-size (option-name new-value)
+ (set-default option-name new-value)
+ (dolist (x (buffer-list))
+ (with-current-buffer x
+ (when (eq doc-view-doc-type 'epub)
+ (delete-directory doc-view--current-cache-dir t)
+ (doc-view-initiate-display)
+ (doc-view-goto-page (doc-view-current-page))))))
+
+(defcustom doc-view-epub-font-size nil
+ "Font size in points for EPUB layout."
+ :type '(choice (const nil) integer)
+ :set #'doc-view-custom-set-epub-font-size
+ :version "29.1")
+
(defcustom doc-view-scale-internally t
"Whether we should try to rescale images ourselves.
If nil, the document is re-rendered every time the scaling factor is modified.
@@ -256,9 +293,7 @@ If this and `doc-view-dvipdfm-program' are set,
`doc-view-dvipdf-program' will be preferred."
:type 'file)
-(define-obsolete-variable-alias 'doc-view-unoconv-program
- 'doc-view-odf->pdf-converter-program
- "24.4")
+(define-obsolete-variable-alias 'doc-view-unoconv-program
'doc-view-odf->pdf-converter-program "24.4")
(defcustom doc-view-odf->pdf-converter-program
(cond
@@ -363,9 +398,6 @@ of the page moves to the previous page."
(defvar-local doc-view--current-timer nil
"Only used internally.")
-(defvar-local doc-view--current-cache-dir nil
- "Only used internally.")
-
(defvar-local doc-view--current-search-matches nil
"Only used internally.")
@@ -380,10 +412,6 @@ files inside an archive it is a temporary copy of
the (uncompressed, extracted) file residing in
`doc-view-cache-directory'.")
-(defvar doc-view-doc-type nil
- "The type of document in the current buffer.
-Can be `dvi', `pdf', `ps', `djvu' or `odf'.")
-
(defvar doc-view-single-page-converter-function nil
"Function to call to convert a single page of the document to a bitmap file.
May operate on the source document or on some intermediate (typically PDF)
@@ -464,17 +492,17 @@ Typically \"page-%s.png\".")
;; It's normal for this operation to result in a very large undo entry.
(setq-local undo-outer-limit (* 2 (buffer-size))))
(cl-labels ((revert ()
- (let ((revert-buffer-preserve-modes t))
- (apply orig-fun args)
- ;; Update the cached version of the pdf file,
- ;; too. This is the one that's used when
- ;; rendering (bug#26996).
- (unless (equal buffer-file-name
- doc-view--buffer-file-name)
- ;; FIXME: Lars says he needed to recreate
- ;; the dir, we should figure out why.
- (doc-view-make-safe-dir doc-view-cache-directory)
- (write-region nil nil doc-view--buffer-file-name)))))
+ (let ((revert-buffer-preserve-modes t))
+ (apply orig-fun args)
+ ;; Update the cached version of the pdf file,
+ ;; too. This is the one that's used when
+ ;; rendering (bug#26996).
+ (unless (equal buffer-file-name
+ doc-view--buffer-file-name)
+ ;; FIXME: Lars says he needed to recreate
+ ;; the dir, we should figure out why.
+ (doc-view-make-safe-dir doc-view-cache-directory)
+ (write-region nil nil doc-view--buffer-file-name)))))
(if (and (eq 'pdf doc-view-doc-type)
(executable-find "pdfinfo"))
;; We don't want to revert if the PDF file is corrupted which
@@ -577,15 +605,6 @@ Typically \"page-%s.png\".")
;;;; Navigation Commands
-;; FIXME: The doc-view-current-* definitions below are macros because they
-;; map to accessors which we want to use via `setf' as well!
-(defmacro doc-view-current-page (&optional win)
- `(image-mode-window-get 'page ,win))
-(defmacro doc-view-current-info () '(image-mode-window-get 'info))
-(defmacro doc-view-current-overlay () '(image-mode-window-get 'overlay))
-(defmacro doc-view-current-image () '(image-mode-window-get 'image))
-(defmacro doc-view-current-slice () '(image-mode-window-get 'slice))
-
(defun doc-view-last-page-number ()
(length doc-view--current-files))
@@ -738,7 +757,7 @@ at the top edge of the page moves to the previous page."
(interactive)
(while (consp doc-view--current-converter-processes)
(ignore-errors ;; Some entries might not be processes, and maybe
- ;; some are dead already?
+ ; some are dead already?
(kill-process (pop doc-view--current-converter-processes))))
(when doc-view--current-timer
(cancel-timer doc-view--current-timer)
@@ -799,8 +818,8 @@ It's a subdirectory of `doc-view-cache-directory'."
;;;###autoload
(defun doc-view-mode-p (type)
"Return non-nil if document type TYPE is available for `doc-view'.
-Document types are symbols like `dvi', `ps', `pdf', or `odf' (any
-OpenDocument format)."
+Document types are symbols like `dvi', `ps', `pdf', `epub',
+`cbz', `fb2', `xps', `oxps', or`odf' (any OpenDocument format)."
(and (display-graphic-p)
(image-type-available-p 'png)
(cond
@@ -811,16 +830,22 @@ OpenDocument format)."
(and doc-view-dvipdfm-program
(executable-find doc-view-dvipdfm-program)))))
((memq type '(postscript ps eps pdf))
- (or (and doc-view-ghostscript-program
+ (or (and doc-view-ghostscript-program
(executable-find doc-view-ghostscript-program))
- (and doc-view-pdfdraw-program
- (executable-find doc-view-pdfdraw-program))))
+ ;; for pdf also check for `doc-view-pdfdraw-program'
+ (when (eq type 'pdf)
+ (and doc-view-pdfdraw-program
+ (executable-find doc-view-pdfdraw-program)))))
((eq type 'odf)
(and doc-view-odf->pdf-converter-program
(executable-find doc-view-odf->pdf-converter-program)
(doc-view-mode-p 'pdf)))
((eq type 'djvu)
(executable-find "ddjvu"))
+ ((memq type '(epub cbz fb2 xps oxps))
+ ;; first check if `doc-view-pdfdraw-program' is set to mutool
+ (and (string= doc-view-pdfdraw-program "mutool")
+ (executable-find "mutool")))
(t ;; unknown image type
nil))))
@@ -1053,7 +1078,7 @@ Should be invoked when the cached images aren't
up-to-date."
;; some file-name-handler-managed dir, for example).
(let* ((default-directory (or (unhandled-file-name-directory
default-directory)
- (expand-file-name "~/")))
+ (expand-file-name "~/")))
(proc (apply #'start-process name doc-view-conversion-buffer
program args)))
(push proc doc-view--current-converter-processes)
@@ -1139,14 +1164,17 @@ The test is performed using `doc-view-pdfdraw-program'."
(search-forward "error: cannot authenticate password" nil t)))
(defun doc-view-pdf->png-converter-mupdf (pdf png page callback)
- (let ((pdf-passwd (if (doc-view-pdf-password-protected-pdfdraw-p pdf)
- (read-passwd "Enter password for PDF file: "))))
+ (let* ((pdf-passwd (if (doc-view-pdf-password-protected-pdfdraw-p pdf)
+ (read-passwd "Enter password for PDF file: ")))
+ (options `(,(concat "-o" png)
+ ,(format "-r%d" (round doc-view-resolution))
+ ,@(if pdf-passwd `("-p" ,pdf-passwd)))))
+ (when (and (eq doc-view-doc-type 'epub) doc-view-epub-font-size)
+ (setq options (append options (list (format "-S%s"
doc-view-epub-font-size)))))
(doc-view-start-process
"pdf->png" doc-view-pdfdraw-program
`(,@(doc-view-pdfdraw-program-subcommand)
- ,(concat "-o" png)
- ,(format "-r%d" (round doc-view-resolution))
- ,@(if pdf-passwd `("-p" ,pdf-passwd))
+ ,@options
,pdf
,@(if page `(,(format "%d" page))))
callback)))
@@ -1189,7 +1217,8 @@ is named like ODF with the extension turned to pdf."
"Convert PDF-PS to PNG asynchronously."
(funcall
(pcase doc-view-doc-type
- ('pdf doc-view-pdf->png-converter-function)
+ ((or 'pdf 'odf 'epub 'cbz 'fb2 'xps 'oxps)
+ doc-view-pdf->png-converter-function)
('djvu #'doc-view-djvu->tiff-converter-ddjvu)
(_ #'doc-view-ps->png-converter-ghostscript))
pdf-ps png nil
@@ -1227,20 +1256,20 @@ Start by converting PAGES, and then the rest."
(let ((rest (cdr pages)))
(funcall doc-view-single-page-converter-function
pdf (format png (car pages)) (car pages)
- (lambda ()
- (if rest
- (doc-view-document->bitmap pdf png rest)
- ;; Yippie, the important pages are done, update the display.
- (clear-image-cache)
- ;; For the windows that have a message (like "Welcome to
- ;; DocView") display property, clearing the image cache is
- ;; not sufficient.
- (dolist (win (get-buffer-window-list (current-buffer) nil 'visible))
- (with-selected-window win
- (when (stringp (overlay-get (doc-view-current-overlay) 'display))
- (doc-view-goto-page (doc-view-current-page)))))
- ;; Convert the rest of the pages.
- (doc-view-pdf/ps->png pdf png)))))))
+ (lambda ()
+ (if rest
+ (doc-view-document->bitmap pdf png rest)
+ ;; Yippie, the important pages are done, update the display.
+ (clear-image-cache)
+ ;; For the windows that have a message (like "Welcome to
+ ;; DocView") display property, clearing the image cache is
+ ;; not sufficient.
+ (dolist (win (get-buffer-window-list (current-buffer) nil
'visible))
+ (with-selected-window win
+ (when (stringp (overlay-get (doc-view-current-overlay)
'display))
+ (doc-view-goto-page (doc-view-current-page)))))
+ ;; Convert the rest of the pages.
+ (doc-view-pdf/ps->png pdf png)))))))
(defun doc-view-pdf->txt (pdf txt callback)
"Convert PDF to TXT asynchronously and call CALLBACK when finished."
@@ -1337,7 +1366,9 @@ Those files are saved in the directory given by the
function
;; Rename to doc.pdf
(rename-file opdf pdf)
(doc-view-pdf/ps->png pdf png-file)))))
- ((or 'pdf 'djvu)
+ ;; The doc-view-mode-p check ensures that epub, cbz, fb2 and
+ ;; (o)xps are handled with mutool
+ ((or 'pdf 'djvu 'epub 'cbz 'fb2 'xps 'oxps)
(let ((pages (doc-view-active-pages)))
;; Convert doc to bitmap images starting with the active pages.
(doc-view-document->bitmap doc-view--buffer-file-name png-file
pages)))
@@ -1432,7 +1463,7 @@ dragging it to its bottom-right corner. See also
(defun doc-view-guess-paper-size (iw ih)
"Guess the paper size according to the aspect ratio."
(cl-labels ((div (x y)
- (round (/ (* 100.0 x) y))))
+ (round (/ (* 100.0 x) y))))
(let ((ar (div iw ih))
(al (mapcar (lambda (l)
(list (div (nth 1 l) (nth 2 l)) (car l)))
@@ -1869,6 +1900,8 @@ If BACKWARD is non-nil, jump to the previous match."
("dvi" dvi)
;; PDF
("pdf" pdf) ("epdf" pdf)
+ ;; EPUB
+ ("epub" epub)
;; PostScript
("ps" ps) ("eps" ps)
;; DjVu
@@ -1880,7 +1913,13 @@ If BACKWARD is non-nil, jump to the previous match."
;; Microsoft Office formats (also handled by the odf
;; conversion chain).
("doc" odf) ("docx" odf) ("xls" odf) ("xlsx" odf)
- ("ppt" odf) ("pps" odf) ("pptx" odf) ("rtf" odf))
+ ("ppt" odf) ("pps" odf) ("pptx" odf) ("rtf" odf)
+ ;; CBZ
+ ("cbz" cbz)
+ ;; FB2
+ ("fb2" fb2)
+ ;; (Open)XPS
+ ("xps" xps) ("oxps" oxps))
t))))
(content-types
(save-excursion
@@ -1889,7 +1928,13 @@ If BACKWARD is non-nil, jump to the previous match."
((looking-at "%!") '(ps))
((looking-at "%PDF") '(pdf))
((looking-at "\367\002") '(dvi))
- ((looking-at "AT&TFORM") '(djvu))))))
+ ((looking-at "AT&TFORM") '(djvu))
+ ;; The following pattern actually is for recognizing
+ ;; zip-archives, so that this same association is used for
+ ;; cbz files. This is fine, as cbz files should be handled
+ ;; like epub anyway.
+ ((looking-at "PK") '(epub))
+ ))))
(setq-local
doc-view-doc-type
(car (or (nreverse (seq-intersection name-types content-types #'eq))
diff --git a/lisp/ebuff-menu.el b/lisp/ebuff-menu.el
index 0c3d4af569..2b1fc916d9 100644
--- a/lisp/ebuff-menu.el
+++ b/lisp/ebuff-menu.el
@@ -48,6 +48,7 @@
(define-key map "\C-m" #'Electric-buffer-menu-select)
(define-key map "\C-l" #'recenter)
(define-key map "s" #'Buffer-menu-save)
+ (define-key map "S" #'tabulated-list-sort)
(define-key map "d" #'Buffer-menu-delete)
(define-key map "k" #'Buffer-menu-delete)
(define-key map "\C-d" #'Buffer-menu-delete-backwards)
diff --git a/lisp/elide-head.el b/lisp/elide-head.el
index dab51cabc4..90bf1fe35b 100644
--- a/lisp/elide-head.el
+++ b/lisp/elide-head.el
@@ -26,12 +26,12 @@
;; notices) in file headers to avoid clutter when you know what it
;; says.
;;
-;; `elide-head-headers-to-hide' controls what is elided by the command
-;; `elide-head'. A buffer-local invisible overlay manages the
-;; elision.
+;; `elide-head-headers-to-hide' controls what is elided by the minor
+;; mode `elide-head-mode'. A buffer-local invisible overlay manages
+;; the elision.
-;; You might add `elide-head' to appropriate major mode hooks or to
-;; `find-file-hook'. Please do not do this in site init files. If
+;; You might add `elide-head-mode' to appropriate major mode hooks or
+;; to `find-file-hook'. Please do not do this in site init files. If
;; you do, information may be hidden from users who don't know it
;; already.
@@ -73,13 +73,76 @@
The cars of elements of the list are searched for in order. Text is
elided with an invisible overlay from the end of the line where the
first match is found to the end of the match for the corresponding
-cdr."
+cdr.
+
+This affects `elide-head-mode'."
:type '(alist :key-type (regexp :tag "Start regexp")
:value-type (regexp :tag "End regexp"))
:version "29.1")
(defvar-local elide-head-overlay nil)
+(defun elide-head--delete-overlay ()
+ "Delete the overlay in `elide-head-overlay'."
+ (when (overlayp elide-head-overlay)
+ (delete-overlay elide-head-overlay)))
+
+(defun elide-head--hide ()
+ "Hide elided (hidden) headers."
+ (save-excursion
+ (save-restriction
+ (let ((rest elide-head-headers-to-hide)
+ beg end)
+ (widen)
+ (goto-char (point-min))
+ (while rest
+ (save-excursion
+ (when (re-search-forward (caar rest) nil t)
+ (setq beg (point))
+ (when (re-search-forward (cdar rest) nil t)
+ (setq end (point-marker)
+ rest nil))))
+ (if rest (setq rest (cdr rest))))
+ (if (not (and beg end))
+ (if (called-interactively-p 'interactive)
+ (message "No header found"))
+ (goto-char beg)
+ (end-of-line)
+ (if (overlayp elide-head-overlay)
+ (move-overlay elide-head-overlay (point-marker) end)
+ (setq elide-head-overlay (make-overlay (point-marker) end)))
+ (overlay-put elide-head-overlay 'invisible t)
+ (overlay-put elide-head-overlay 'evaporate t)
+ (overlay-put elide-head-overlay 'after-string "..."))))))
+
+(defun elide-head--show ()
+ "Show elided (hidden) headers."
+ (if (and (overlayp elide-head-overlay)
+ (overlay-buffer elide-head-overlay))
+ (elide-head--delete-overlay)
+ (if (called-interactively-p 'interactive)
+ (message "No header hidden"))))
+
+;;;###autoload
+(define-minor-mode elide-head-mode
+ "Toggle eliding (hiding) header material in the current buffer.
+
+When Elide Header mode is enabled, headers are hidden according
+to `elide-head-headers-to-hide'.
+
+This is suitable as an entry on `find-file-hook' or appropriate
+mode hooks."
+ :group 'elide-head
+ (if elide-head-mode
+ (progn
+ (elide-head--hide)
+ (add-hook 'change-major-mode-hook 'elide-head--delete-overlay nil
'local))
+ (elide-head--show)
+ (remove-hook 'change-major-mode-hook 'elide-head--delete-overlay 'local)))
+
+
+;;; Obsolete
+
;;;###autoload
(defun elide-head (&optional arg)
"Hide header material in buffer according to `elide-head-headers-to-hide'.
@@ -88,43 +151,17 @@ The header is made invisible with an overlay. With a
prefix arg, show
an elided material again.
This is suitable as an entry on `find-file-hook' or appropriate mode hooks."
+ (declare (obsolete elide-head-mode "29.1"))
(interactive "P")
(if arg
- (elide-head-show)
- (save-excursion
- (save-restriction
- (let ((rest elide-head-headers-to-hide)
- beg end)
- (widen)
- (goto-char (point-min))
- (while rest
- (save-excursion
- (when (re-search-forward (caar rest) nil t)
- (setq beg (point))
- (when (re-search-forward (cdar rest) nil t)
- (setq end (point-marker)
- rest nil))))
- (if rest (setq rest (cdr rest))))
- (if (not (and beg end))
- (if (called-interactively-p 'interactive)
- (message "No header found"))
- (goto-char beg)
- (end-of-line)
- (if (overlayp elide-head-overlay)
- (move-overlay elide-head-overlay (point-marker) end)
- (setq elide-head-overlay (make-overlay (point-marker) end)))
- (overlay-put elide-head-overlay 'invisible t)
- (overlay-put elide-head-overlay 'evaporate t)
- (overlay-put elide-head-overlay 'after-string "...")))))))
+ (elide-head-mode -1)
+ (elide-head-mode 1)))
(defun elide-head-show ()
"Show a header in the current buffer elided by \\[elide-head]."
+ (declare (obsolete elide-head-mode "29.1"))
(interactive)
- (if (and (overlayp elide-head-overlay)
- (overlay-buffer elide-head-overlay))
- (delete-overlay elide-head-overlay)
- (if (called-interactively-p 'interactive)
- (message "No header hidden"))))
+ (elide-head-mode -1))
(provide 'elide-head)
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index a51fd8ca25..d0bf342b84 100644
--- a/lisp/emacs-lisp/autoload.el
+++ b/lisp/emacs-lisp/autoload.el
@@ -340,7 +340,7 @@ put the output in."
(t
(let ((doc-string-elt (function-get (car-safe form) 'doc-string-elt))
(outbuf autoload-print-form-outbuf))
- (if (and doc-string-elt (stringp (nth doc-string-elt form)))
+ (if (and (numberp doc-string-elt) (stringp (nth doc-string-elt form)))
;; We need to hack the printing because the
;; doc-string must be printed specially for
;; make-docfile (sigh).
@@ -410,7 +410,7 @@ FILE's name."
";; version-control: never\n"
";; no-byte-compile: t\n" ;; #$ is byte-compiled into nil.
";; no-update-autoloads: t\n"
- ";; coding: utf-8\n"
+ ";; coding: utf-8-emacs-unix\n"
";; End:\n"
";;; " basename
" ends here\n")))
diff --git a/lisp/emacs-lisp/benchmark.el b/lisp/emacs-lisp/benchmark.el
index c5f621c6c8..882b1d68c4 100644
--- a/lisp/emacs-lisp/benchmark.el
+++ b/lisp/emacs-lisp/benchmark.el
@@ -121,7 +121,11 @@ result. The overhead of the `lambda's is accounted for."
(unless (or (natnump repetitions) (and repetitions (symbolp repetitions)))
(setq forms (cons repetitions forms)
repetitions 1))
- `(benchmark-call (byte-compile '(lambda () ,@forms)) ,repetitions))
+ `(benchmark-call (,(if (native-comp-available-p)
+ 'native-compile
+ 'byte-compile)
+ '(lambda () ,@forms))
+ ,repetitions))
;;;###autoload
(defun benchmark (repetitions form)
diff --git a/lisp/emacs-lisp/bindat.el b/lisp/emacs-lisp/bindat.el
index c6d64975ec..04c5b9f080 100644
--- a/lisp/emacs-lisp/bindat.el
+++ b/lisp/emacs-lisp/bindat.el
@@ -804,6 +804,7 @@ is the name of a variable that will hold the value we need
to pack.")
(if (or (eq label '_) (not (assq label labels)))
code
(macroexp-warn-and-return
+ code
(format "Duplicate label: %S" label)
code))))
(`(,_ ,val)
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index bd57e2b203..25898285fa 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -37,125 +37,11 @@
;; TO DO:
;;
-;; (apply (lambda (x &rest y) ...) 1 (foo))
-;;
-;; maintain a list of functions known not to access any global variables
-;; (actually, give them a 'dynamically-safe property) and then
-;; (let ( v1 v2 ... vM vN ) <...dynamically-safe...> ) ==>
-;; (let ( v1 v2 ... vM ) vN <...dynamically-safe...> )
-;; by recursing on this, we might be able to eliminate the entire let.
-;; However certain variables should never have their bindings optimized
-;; away, because they affect everything.
-;; (put 'debug-on-error 'binding-is-magic t)
-;; (put 'debug-on-abort 'binding-is-magic t)
-;; (put 'debug-on-next-call 'binding-is-magic t)
-;; (put 'inhibit-quit 'binding-is-magic t)
-;; (put 'quit-flag 'binding-is-magic t)
-;; (put 't 'binding-is-magic t)
-;; (put 'nil 'binding-is-magic t)
-;; possibly also
-;; (put 'gc-cons-threshold 'binding-is-magic t)
-;; (put 'track-mouse 'binding-is-magic t)
-;; others?
-;;
-;; Simple defsubsts often produce forms like
-;; (let ((v1 (f1)) (v2 (f2)) ...)
-;; (FN v1 v2 ...))
-;; It would be nice if we could optimize this to
-;; (FN (f1) (f2) ...)
-;; but we can't unless FN is dynamically-safe (it might be dynamically
-;; referring to the bindings that the lambda arglist established.)
-;; One of the uncountable lossages introduced by dynamic scope...
-;;
-;; Maybe there should be a control-structure that says "turn on
-;; fast-and-loose type-assumptive optimizations here." Then when
-;; we see a form like (car foo) we can from then on assume that
-;; the variable foo is of type cons, and optimize based on that.
-;; But, this won't win much because of (you guessed it) dynamic
-;; scope. Anything down the stack could change the value.
-;; (Another reason it doesn't work is that it is perfectly valid
-;; to call car with a null argument.) A better approach might
-;; be to allow type-specification of the form
-;; (put 'foo 'arg-types '(float (list integer) dynamic))
-;; (put 'foo 'result-type 'bool)
-;; It should be possible to have these types checked to a certain
-;; degree.
-;;
-;; collapse common subexpressions
-;;
-;; It would be nice if redundant sequences could be factored out as well,
-;; when they are known to have no side-effects:
-;; (list (+ a b c) (+ a b c)) --> a b add c add dup list-2
-;; but beware of traps like
-;; (cons (list x y) (list x y))
-;;
-;; Tail-recursion elimination is not really possible in Emacs Lisp.
-;; Tail-recursion elimination is almost always impossible when all variables
-;; have dynamic scope, but given that the "return" byteop requires the
-;; binding stack to be empty (rather than emptying it itself), there can be
-;; no truly tail-recursive Emacs Lisp functions that take any arguments or
-;; make any bindings.
-;;
-;; Here is an example of an Emacs Lisp function which could safely be
-;; byte-compiled tail-recursively:
-;;
-;; (defun tail-map (fn list)
-;; (cond (list
-;; (funcall fn (car list))
-;; (tail-map fn (cdr list)))))
-;;
-;; However, if there was even a single let-binding around the COND,
-;; it could not be byte-compiled, because there would be an "unbind"
-;; byte-op between the final "call" and "return." Adding a
-;; Bunbind_all byteop would fix this.
-;;
-;; (defun foo (x y z) ... (foo a b c))
-;; ... (const foo) (varref a) (varref b) (varref c) (call 3) END: (return)
-;; ... (varref a) (varbind x) (varref b) (varbind y) (varref c) (varbind z)
(goto 0) END: (unbind-all) (return)
-;; ... (varref a) (varset x) (varref b) (varset y) (varref c) (varset z)
(goto 0) END: (return)
-;;
-;; this also can be considered tail recursion:
-;;
-;; ... (const foo) (varref a) (call 1) (goto X) ... X: (return)
-;; could generalize this by doing the optimization
-;; (goto X) ... X: (return) --> (return)
-;;
-;; But this doesn't solve all of the problems: although by doing tail-
-;; recursion elimination in this way, the call-stack does not grow, the
-;; binding-stack would grow with each recursive step, and would eventually
-;; overflow. I don't believe there is any way around this without lexical
-;; scope.
-;;
-;; Wouldn't it be nice if Emacs Lisp had lexical scope.
-;;
-;; Idea: the form (lexical-scope) in a file means that the file may be
-;; compiled lexically. This proclamation is file-local. Then, within
-;; that file, "let" would establish lexical bindings, and "let-dynamic"
-;; would do things the old way. (Or we could use CL "declare" forms.)
-;; We'd have to notice defvars and defconsts, since those variables should
-;; always be dynamic, and attempting to do a lexical binding of them
-;; should simply do a dynamic binding instead.
-;; But! We need to know about variables that were not necessarily defvared
-;; in the file being compiled (doing a boundp check isn't good enough.)
-;; Fdefvar() would have to be modified to add something to the plist.
-;;
-;; A major disadvantage of this scheme is that the interpreter and compiler
-;; would have different semantics for files compiled with (dynamic-scope).
-;; Since this would be a file-local optimization, there would be no way to
-;; modify the interpreter to obey this (unless the loader was hacked
-;; in some grody way, but that's a really bad idea.)
-
-;; Other things to consider:
-
-;; ;; Associative math should recognize subcalls to identical function:
-;; (disassemble (lambda (x) (+ (+ (foo) 1) (+ (bar) 2))))
-;; ;; This should generate the same as (1+ x) and (1- x)
-
-;; (disassemble (lambda (x) (cons (+ x 1) (- x 1))))
;; ;; An awful lot of functions always return a non-nil value. If they're
;; ;; error free also they may act as true-constants.
-
+;;
;; (disassemble (lambda (x) (and (point) (foo))))
+
;; ;; When
;; ;; - all but one arguments to a function are constant
;; ;; - the non-constant argument is an if-expression (cond-expression?)
@@ -264,8 +150,9 @@ Earlier variables shadow later ones with the same name.")
(cdr (assq name byte-compile-function-environment)))))
(pcase fn
('nil
- (byte-compile-warn "attempt to inline `%s' before it was defined"
- name)
+ (byte-compile-warn-x name
+ "attempt to inline `%s' before it was defined"
+ name)
form)
(`(autoload . ,_)
(error "File `%s' didn't define `%s'" (nth 1 fn) name))
@@ -421,8 +308,8 @@ for speeding up processing.")
(t form)))
(`(quote . ,v)
(if (or (not v) (cdr v))
- (byte-compile-warn "malformed quote form: `%s'"
- (prin1-to-string form)))
+ (byte-compile-warn-x form "malformed quote form: `%s'"
+ form))
;; Map (quote nil) to nil to simplify optimizer logic.
;; Map quoted constants to nil if for-effect (just because).
(and (car v)
@@ -440,8 +327,9 @@ for speeding up processing.")
(cons
(byte-optimize-form (car clause) nil)
(byte-optimize-body (cdr clause) for-effect))
- (byte-compile-warn "malformed cond form: `%s'"
- (prin1-to-string clause))
+ (byte-compile-warn-x
+ clause "malformed cond form: `%s'"
+ clause)
clause))
clauses)))
(`(progn . ,exps)
@@ -517,8 +405,7 @@ for speeding up processing.")
`(while ,condition . ,body)))
(`(interactive . ,_)
- (byte-compile-warn "misplaced interactive spec: `%s'"
- (prin1-to-string form))
+ (byte-compile-warn-x form "misplaced interactive spec: `%s'" form)
nil)
(`(function . ,_)
@@ -586,7 +473,7 @@ for speeding up processing.")
(while args
(unless (and (consp args)
(symbolp (car args)) (consp (cdr args)))
- (byte-compile-warn "malformed setq form: %S" form))
+ (byte-compile-warn-x form "malformed setq form: %S" form))
(let* ((var (car args))
(expr (cadr args))
(lexvar (assq var byte-optimize--lexvars))
@@ -619,8 +506,7 @@ for speeding up processing.")
(cons fn (mapcar #'byte-optimize-form exps)))
(`(,(pred (not symbolp)) . ,_)
- (byte-compile-warn "`%s' is a malformed function"
- (prin1-to-string fn))
+ (byte-compile-warn-x fn "`%s' is a malformed function" fn)
form)
((guard (when for-effect
@@ -628,8 +514,10 @@ for speeding up processing.")
(or byte-compile-delete-errors
(eq tmp 'error-free)
(progn
- (byte-compile-warn "value returned from %s is unused"
- (prin1-to-string form))
+ (byte-compile-warn-x
+ form
+ "value returned from %s is unused"
+ form)
nil)))))
(byte-compile-log " %s called for effect; deleted" fn)
;; appending a nil here might not be necessary, but it can't hurt.
@@ -825,7 +713,8 @@ for speeding up processing.")
(if (symbolp binding)
binding
(when (or (atom binding) (cddr binding))
- (byte-compile-warn "malformed let binding: `%S'" binding))
+ (byte-compile-warn-x
+ binding "malformed let binding: `%S'" binding))
(list (car binding)
(byte-optimize-form (nth 1 binding) nil))))
(car form))
@@ -1308,7 +1197,7 @@ See Info node `(elisp) Integer Basics'."
(defun byte-optimize-while (form)
(when (< (length form) 2)
- (byte-compile-warn "too few arguments for `while'"))
+ (byte-compile-warn-x form "too few arguments for `while'"))
(if (nth 1 form)
form))
@@ -1346,9 +1235,10 @@ See Info node `(elisp) Integer Basics'."
(let ((butlast (nreverse (cdr (reverse (cdr (cdr form)))))))
(nconc (list 'funcall fn) butlast
(mapcar (lambda (x) (list 'quote x)) (nth 1 last))))
- (byte-compile-warn
+ (byte-compile-warn-x
+ last
"last arg to apply can't be a literal atom: `%s'"
- (prin1-to-string last))
+ last)
nil))
form))))
diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el
index 47f331fd9d..fedc10cea4 100644
--- a/lisp/emacs-lisp/byte-run.el
+++ b/lisp/emacs-lisp/byte-run.el
@@ -30,6 +30,83 @@
;;; Code:
+(defvar byte-run--ssp-seen nil
+ "Which conses/vectors/records have been processed in strip-symbol-positions?
+The value is a hash table, the key being the old element and the value being
+the corresponding new element of the same type.
+
+The purpose of this is to detect circular structures.")
+
+(defalias 'byte-run--circular-list-p
+ #'(lambda (l)
+ "Return non-nil when the list L is a circular list.
+Note that this algorithm doesn't check any circularity in the
+CARs of list elements."
+ (let ((hare l)
+ (tortoise l))
+ (condition-case err
+ (progn
+ (while (progn
+ (setq hare (cdr (cdr hare))
+ tortoise (cdr tortoise))
+ (not (or (eq tortoise hare)
+ (null hare)))))
+ (eq tortoise hare))
+ (wrong-type-argument nil)
+ (error (signal (car err) (cdr err)))))))
+
+(defalias 'byte-run--strip-s-p-1
+ #'(lambda (arg)
+ "Strip all positions from symbols in ARG, modifying ARG.
+Return the modified ARG."
+ (cond
+ ((symbol-with-pos-p arg)
+ (bare-symbol arg))
+
+ ((consp arg)
+ (let* ((round (byte-run--circular-list-p arg))
+ (hash (and round (gethash arg byte-run--ssp-seen))))
+ (or hash
+ (let ((a arg) new)
+ (while
+ (progn
+ (when round
+ (puthash a new byte-run--ssp-seen))
+ (setq new (byte-run--strip-s-p-1 (car a)))
+ (when (not (eq new (car a))) ; For read-only things.
+ (setcar a new))
+ (and (consp (cdr a))
+ (not
+ (setq hash
+ (and round
+ (gethash (cdr a)
byte-run--ssp-seen))))))
+ (setq a (cdr a)))
+ (setq new (byte-run--strip-s-p-1 (cdr a)))
+ (when (not (eq new (cdr a)))
+ (setcdr a (or hash new)))
+ arg))))
+
+ ((or (vectorp arg) (recordp arg))
+ (let ((hash (gethash arg byte-run--ssp-seen)))
+ (or hash
+ (let* ((len (length arg))
+ (i 0)
+ new)
+ (puthash arg arg byte-run--ssp-seen)
+ (while (< i len)
+ (setq new (byte-run--strip-s-p-1 (aref arg i)))
+ (when (not (eq new (aref arg i)))
+ (aset arg i new))
+ (setq i (1+ i)))
+ arg))))
+
+ (t arg))))
+
+(defalias 'byte-run-strip-symbol-positions
+ #'(lambda (arg)
+ (setq byte-run--ssp-seen (make-hash-table :test 'eq))
+ (byte-run--strip-s-p-1 arg)))
+
(defalias 'function-put
;; We don't want people to just use `put' because we can't conveniently
;; hook into `put' to remap old properties to new ones. But for now, there's
@@ -38,7 +115,9 @@
"Set FUNCTION's property PROP to VALUE.
The namespace for PROP is shared with symbols.
So far, FUNCTION can only be a symbol, not a lambda expression."
- (put function prop value)))
+ (put (bare-symbol function)
+ (byte-run-strip-symbol-positions prop)
+ (byte-run-strip-symbol-positions value))))
(function-put 'defmacro 'doc-string-elt 3)
(function-put 'defmacro 'lisp-indent-function 2)
@@ -254,7 +333,8 @@ The return value is undefined.
#'(lambda (x)
(let ((f (cdr (assq (car x) macro-declarations-alist))))
(if f (apply (car f) name arglist (cdr x))
- (macroexp-warn-and-return
+ (macroexp-warn-and-return
+ (car x)
(format-message
"Unknown macro property %S in %S"
(car x) name)
@@ -328,6 +408,7 @@ The return value is undefined.
nil)
(t
(macroexp-warn-and-return
+ (car x)
(format-message "Unknown defun property `%S' in %S"
(car x) name)
nil)))))
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 0f130bf626..d89403ba5d 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -468,7 +468,8 @@ Return the compile-time value of FORM."
;; 3.2.3.1, "Processing of Top Level Forms". The semantics are very
;; subtle: see test/lisp/emacs-lisp/bytecomp-tests.el for interesting
;; cases.
- (setf form (macroexp-macroexpand form byte-compile-macro-environment))
+ (let ((print-symbols-bare t)) ; Possibly redundant binding.
+ (setf form (macroexp-macroexpand form byte-compile-macro-environment)))
(if (eq (car-safe form) 'progn)
(cons 'progn
(mapcar (lambda (subform)
@@ -499,8 +500,8 @@ Return the compile-time value of FORM."
byte-compile-new-defuns))
(setf result
(byte-compile-eval
- (byte-compile-top-level
- (byte-compile-preprocess form)))))))
+ (byte-compile-top-level
+ (byte-compile-preprocess
form)))))))
(list 'quote result))))
(eval-and-compile . ,(lambda (&rest body)
(byte-compile-recurse-toplevel
@@ -509,10 +510,11 @@ Return the compile-time value of FORM."
;; Don't compile here, since we don't know
;; whether to compile as byte-compile-form
;; or byte-compile-file-form.
- (let ((expanded
- (macroexpand--all-toplevel
- form
- macroexpand-all-environment)))
+ (let* ((print-symbols-bare t) ; Possibly
redundant binding.
+ (expanded
+ (macroexpand--all-toplevel
+ form
+ macroexpand-all-environment)))
(eval expanded lexical-binding)
expanded)))))
(with-suppressed-warnings
@@ -615,8 +617,8 @@ Each element is (INDEX . VALUE)")
"Hash byte-code -> byte-to-native-lambda.")
(defvar byte-to-native-top-level-forms nil
"List of top level forms.")
-(defvar byte-to-native-output-file nil
- "Temporary file containing the byte-compilation output.")
+(defvar byte-to-native-output-buffer-file nil
+ "Pair holding byte-compilation output buffer, elc filename.")
(defvar byte-to-native-plist-environment nil
"To spill `overriding-plist-environment'.")
@@ -794,11 +796,7 @@ the unwind-action")
(byte-defop 144 0 byte-temp-output-buffer-setup-OBSOLETE)
(byte-defop 145 -1 byte-temp-output-buffer-show-OBSOLETE)
-;; these ops are new to v19
-
-;; To unbind back to the beginning of this frame.
-;; Not used yet, but will be needed for tail-recursion elimination.
-(byte-defop 146 0 byte-unbind-all)
+;; unused: 146
;; these ops are new to v19
(byte-defop 147 -2 byte-set-marker)
@@ -1147,11 +1145,6 @@ message buffer `default-directory'."
(t
(insert (format "%s\n" string)))))))
-(defvar byte-compile-read-position nil
- "Character position we began the last `read' from.")
-(defvar byte-compile-last-position nil
- "Last known character position in the input.")
-
;; copied from gnus-util.el
(defsubst byte-compile-delete-first (elt list)
(if (eq (car list) elt)
@@ -1164,43 +1157,6 @@ message buffer `default-directory'."
(setcdr list (cddr list)))
total)))
-;; The purpose of `byte-compile-set-symbol-position' is to attempt to
-;; set `byte-compile-last-position' to the "current position" in the
-;; raw source code. This is used for warning and error messages.
-;;
-;; The function should be called for most occurrences of symbols in
-;; the forms being compiled, strictly in the order they occur in the
-;; source code. It should never be called twice for any single
-;; occurrence, and should not be called for symbols generated by the
-;; byte compiler itself.
-;;
-;; The function works by scanning the elements in the alist
-;; `read-symbol-positions-list' for the next match for the symbol
-;; after the current value of `byte-compile-last-position', setting
-;; that variable to the match's character position, then deleting the
-;; matching element from the list. Thus the new value for
-;; `byte-compile-last-position' is later than the old value unless,
-;; perhaps, ALLOW-PREVIOUS is non-nil.
-;;
-;; So your're probably asking yourself: Isn't this function a gross
-;; hack? And the answer, of course, would be yes.
-(defun byte-compile-set-symbol-position (sym &optional allow-previous)
- (when byte-compile-read-position
- (let ((last byte-compile-last-position)
- entry)
- (while (progn
- (setq entry (assq sym read-symbol-positions-list))
- (when entry
- (setq byte-compile-last-position
- (+ byte-compile-read-position (cdr entry))
- read-symbol-positions-list
- (byte-compile-delete-first
- entry read-symbol-positions-list)))
- (and entry
- (or (and allow-previous
- (not (= last byte-compile-last-position)))
- (> last byte-compile-last-position))))))))
-
(defvar byte-compile-last-warned-form nil)
(defvar byte-compile-last-logged-file nil)
(defvar byte-compile-root-dir nil
@@ -1213,6 +1169,41 @@ message buffer `default-directory'."
(f2 (file-relative-name file dir)))
(if (< (length f2) (length f1)) f2 f1)))
+(defun byte-compile--first-symbol (form)
+ "Return the \"first\" symbol found in form, or 0 if there is none.
+Here, \"first\" is by a depth first search."
+ (let (sym)
+ (cond
+ ((symbolp form) form)
+ ((consp form)
+ (or (and (symbolp (setq sym (byte-compile--first-symbol (car form))))
+ sym)
+ (and (symbolp (setq sym (byte-compile--first-symbol (cdr form))))
+ sym)
+ 0))
+ ((and (vectorp form)
+ (> (length form) 0))
+ (let ((i 0)
+ (len (length form))
+ elt)
+ (catch 'sym
+ (while (< i len)
+ (when (symbolp
+ (setq elt (byte-compile--first-symbol (aref form i))))
+ (throw 'sym elt))
+ (setq i (1+ i)))
+ 0)))
+ (t 0))))
+
+(defun byte-compile--warning-source-offset ()
+ "Return a source offset from `byte-compile-form-stack'.
+Return nil if such is not found."
+ (catch 'offset
+ (dolist (form byte-compile-form-stack)
+ (let ((s (byte-compile--first-symbol form)))
+ (if (symbol-with-pos-p s)
+ (throw 'offset (symbol-with-pos-pos s)))))))
+
;; This is used as warning-prefix for the compiler.
;; It is always called with the warnings buffer current.
(defun byte-compile-warning-prefix (level entry)
@@ -1230,16 +1221,16 @@ message buffer `default-directory'."
(format "%s:" (byte-compile-abbreviate-file
load-file-name dir)))
(t "")))
+ (offset (byte-compile--warning-source-offset))
(pos (if (and byte-compile-current-file
- (integerp byte-compile-read-position))
+ (or offset (not symbols-with-pos-enabled)))
(with-current-buffer byte-compile-current-buffer
- (format "%d:%d:"
- (save-excursion
- (goto-char byte-compile-last-position)
- (1+ (count-lines (point-min) (point-at-bol))))
- (save-excursion
- (goto-char byte-compile-last-position)
- (1+ (current-column)))))
+ (let (new-l new-c)
+ (save-excursion
+ (goto-char offset)
+ (setq new-l (1+ (count-lines (point-min)
(point-at-bol)))
+ new-c (1+ (current-column)))
+ (format "%d:%d:" new-l new-c))))
""))
(form (if (eq byte-compile-current-form :end) "end of data"
(or byte-compile-current-form "toplevel form"))))
@@ -1314,20 +1305,21 @@ Called with arguments (STRING POSITION FILL LEVEL).
STRING is a
message describing the problem. POSITION is a buffer position
where the problem was detected. FILL is a prefix as in
`warning-fill-prefix'. LEVEL is the level of the
-problem (`:warning' or `:error'). POSITION, FILL and LEVEL may be
-nil.")
+problem (`:warning' or `:error'). FILL and LEVEL may be nil.")
(defun byte-compile-log-warning (string &optional fill level)
"Log a byte-compilation warning.
STRING, FILL and LEVEL are as described in
`byte-compile-log-warning-function', which see."
(funcall byte-compile-log-warning-function
- string byte-compile-last-position
+ string
+ (or (byte-compile--warning-source-offset)
+ (point))
fill
level))
-(defun byte-compile--log-warning-for-byte-compile (string &optional
- _position
+(defun byte-compile--log-warning-for-byte-compile (string _position
+ &optional
fill
level)
"Log a message STRING in `byte-compile-log-buffer'.
@@ -1348,6 +1340,14 @@ function directly; use `byte-compile-warn' or
(error "%s" format) ; byte-compile-file catches and logs it
(byte-compile-log-warning format t :warning)))
+(defun byte-compile-warn-x (arg format &rest args)
+ "Issue a byte compiler warning.
+ARG is the source element (likely a symbol with position) central to
+ the warning, intended to supply source position information.
+FORMAT and ARGS are as in `byte-compile-warn'."
+ (let ((byte-compile-form-stack (cons arg byte-compile-form-stack)))
+ (apply #'byte-compile-warn format args)))
+
(defun byte-compile-warn-obsolete (symbol)
"Warn that SYMBOL (a variable or function) is obsolete."
(when (byte-compile-warning-enabled-p 'obsolete symbol)
@@ -1357,7 +1357,7 @@ function directly; use `byte-compile-warn' or
(or funcp (get symbol 'byte-obsolete-variable))
(if funcp "function" "variable"))))
(unless (and funcp (memq symbol byte-compile-not-obsolete-funcs))
- (byte-compile-warn "%s" msg)))))
+ (byte-compile-warn-x symbol "%s" msg)))))
(defun byte-compile-report-error (error-info &optional fill)
"Report Lisp error in compilation.
@@ -1460,7 +1460,6 @@ when printing the error message."
(t (format "%d-%d" (car signature) (cdr signature)))))
(defun byte-compile-function-warn (f nargs def)
- (byte-compile-set-symbol-position f)
(when (and (get f 'byte-obsolete-info)
(byte-compile-warning-enabled-p 'obsolete f))
(byte-compile-warn-obsolete f))
@@ -1477,12 +1476,16 @@ when printing the error message."
(if cons
(or (memq nargs (cddr cons))
(push nargs (cddr cons)))
- (push (list f byte-compile-last-position nargs)
+ (push (list f
+ (if (symbol-with-pos-p f)
+ (symbol-with-pos-pos f)
+ 1) ; Should never happen.
+ nargs)
byte-compile-unresolved-functions)))))
(defun byte-compile-emit-callargs-warn (name actual-args min-args max-args)
- (byte-compile-set-symbol-position name)
- (byte-compile-warn
+ (byte-compile-warn-x
+ name
"%s called with %d argument%s, but %s %s"
name actual-args
(if (= 1 actual-args) "" "s")
@@ -1548,7 +1551,7 @@ extra args."
n)))
(nargs (- (length form) 2)))
(unless (= nargs nfields)
- (byte-compile-warn
+ (byte-compile-warn-x (car form)
"`%s' called with %d args to fill %d format field(s)" (car form)
nargs nfields)))))
@@ -1562,7 +1565,7 @@ extra args."
(when (eq (car-safe name) 'quote)
(or (not (eq (car form) 'custom-declare-variable))
(plist-get keyword-args :type)
- (byte-compile-warn
+ (byte-compile-warn-x (cadr name)
"defcustom for `%s' fails to specify type" (cadr name)))
(if (and (memq (car form) '(custom-declare-face custom-declare-variable))
byte-compile-current-group)
@@ -1571,7 +1574,7 @@ extra args."
(or (and (eq (car form) 'custom-declare-group)
(equal name ''emacs))
(plist-get keyword-args :group)
- (byte-compile-warn
+ (byte-compile-warn-x (cadr name)
"%s for `%s' fails to specify containing group"
(cdr (assq (car form)
'((custom-declare-group . defgroup)
@@ -1590,7 +1593,7 @@ extra args."
(let ((calls (assq name byte-compile-unresolved-functions))
nums sig min max)
(when (and calls macrop)
- (byte-compile-warn "macro `%s' defined too late" name))
+ (byte-compile-warn-x name "macro `%s' defined too late" name))
(setq byte-compile-unresolved-functions
(delq calls byte-compile-unresolved-functions))
(setq calls (delq t calls)) ;Ignore higher-order uses of the function.
@@ -1598,16 +1601,16 @@ extra args."
(when (and (symbolp name)
(eq (function-get name 'byte-optimizer)
'byte-compile-inline-expand))
- (byte-compile-warn "defsubst `%s' was used before it was defined"
- name))
+ (byte-compile-warn-x name "defsubst `%s' was used before it was
defined"
+ name))
(setq sig (byte-compile-arglist-signature arglist)
nums (sort (copy-sequence (cddr calls)) (function <))
min (car nums)
max (car (nreverse nums)))
(when (or (< min (car sig))
(and (cdr sig) (> max (cdr sig))))
- (byte-compile-set-symbol-position name)
- (byte-compile-warn
+ (byte-compile-warn-x
+ name
"%s being defined to take %s%s, but was previously called with %s"
name
(byte-compile-arglist-signature-string sig)
@@ -1625,8 +1628,8 @@ extra args."
(let ((sig1 (byte-compile--function-signature old))
(sig2 (byte-compile-arglist-signature arglist)))
(unless (byte-compile-arglist-signatures-congruent-p sig1 sig2)
- (byte-compile-set-symbol-position name)
- (byte-compile-warn
+ (byte-compile-warn-x
+ name
"%s %s used to take %s %s, now takes %s"
(if macrop "macro" "function")
name
@@ -1715,8 +1718,10 @@ It is too wide if it has any lines longer than the
largest of
(setq name (if name (format " `%s' " name) ""))
(when (and kind docs (stringp docs)
(byte-compile--wide-docstring-p docs col))
- (byte-compile-warn "%s%sdocstring wider than %s characters"
- kind name col))))
+ (byte-compile-warn-x
+ name
+ "%s%sdocstring wider than %s characters"
+ kind name col))))
form)
;; If we have compiled any calls to functions which are not known to be
@@ -1730,10 +1735,10 @@ It is too wide if it has any lines longer than the
largest of
(dolist (urf byte-compile-unresolved-functions)
(let ((f (car urf)))
(when (not (memq f byte-compile-new-defuns))
- (let ((byte-compile-last-position (cadr urf)))
- (byte-compile-warn
- (if (fboundp f) "the function `%s' might not be defined at
runtime." "the function `%s' is not known to be defined.")
- (car urf))))))))
+ (byte-compile-warn-x
+ f
+ (if (fboundp f) "the function `%s' might not be defined at
runtime." "the function `%s' is not known to be defined.")
+ (car urf)))))))
nil)
@@ -1789,7 +1794,8 @@ It is too wide if it has any lines longer than the
largest of
(warning-series-started
(and (markerp warning-series)
(eq (marker-buffer warning-series)
- (get-buffer byte-compile-log-buffer)))))
+ (get-buffer byte-compile-log-buffer))))
+ (byte-compile-form-stack byte-compile-form-stack))
(if (or (eq warning-series 'byte-compile-warning-series)
warning-series-started)
;; warning-series does come from compilation,
@@ -1976,6 +1982,42 @@ If compilation is needed, this functions returns the
result of
(defvar byte-compile-level 0 ; bug#13787
"Depth of a recursive byte compilation.")
+(defun byte-write-target-file (buffer target-file)
+ "Write BUFFER into TARGET-FILE."
+ (with-current-buffer buffer
+ ;; We must disable any code conversion here.
+ (let* ((coding-system-for-write 'no-conversion)
+ ;; Write to a tempfile so that if another Emacs
+ ;; process is trying to load target-file (eg in a
+ ;; parallel bootstrap), it does not risk getting a
+ ;; half-finished file. (Bug#4196)
+ (tempfile
+ (make-temp-file (when (file-writable-p target-file)
+ (expand-file-name target-file))))
+ (default-modes (default-file-modes))
+ (temp-modes (logand default-modes #o600))
+ (desired-modes (logand default-modes #o666))
+ (kill-emacs-hook
+ (cons (lambda () (ignore-errors
+ (delete-file tempfile)))
+ kill-emacs-hook)))
+ (unless (= temp-modes desired-modes)
+ (set-file-modes tempfile desired-modes 'nofollow))
+ (write-region (point-min) (point-max) tempfile nil 1)
+ ;; This has the intentional side effect that any
+ ;; hard-links to target-file continue to
+ ;; point to the old file (this makes it possible
+ ;; for installed files to share disk space with
+ ;; the build tree, without causing problems when
+ ;; emacs-lisp files in the build tree are
+ ;; recompiled). Previously this was accomplished by
+ ;; deleting target-file before writing it.
+ (if byte-native-compiling
+ ;; Defer elc final renaming.
+ (setf byte-to-native-output-buffer-file
+ (cons tempfile target-file))
+ (rename-file tempfile target-file t)))))
+
;;;###autoload
(defun byte-compile-file (filename &optional load)
"Compile a file of Lisp code named FILENAME into a file of byte code.
@@ -2107,38 +2149,11 @@ See also `emacs-lisp-byte-compile-and-load'."
;; Need to expand in case TARGET-FILE doesn't
;; include a directory (Bug#45287).
(expand-file-name target-file))))
- ;; We must disable any code conversion here.
- (let* ((coding-system-for-write 'no-conversion)
- ;; Write to a tempfile so that if another Emacs
- ;; process is trying to load target-file (eg in a
- ;; parallel bootstrap), it does not risk getting a
- ;; half-finished file. (Bug#4196)
- (tempfile
- (make-temp-file (when (file-writable-p target-file)
- (expand-file-name target-file))))
- (default-modes (default-file-modes))
- (temp-modes (logand default-modes #o600))
- (desired-modes (logand default-modes #o666))
- (kill-emacs-hook
- (cons (lambda () (ignore-errors
- (delete-file tempfile)))
- kill-emacs-hook)))
- (unless (= temp-modes desired-modes)
- (set-file-modes tempfile desired-modes 'nofollow))
- (write-region (point-min) (point-max) tempfile nil 1)
- ;; This has the intentional side effect that any
- ;; hard-links to target-file continue to
- ;; point to the old file (this makes it possible
- ;; for installed files to share disk space with
- ;; the build tree, without causing problems when
- ;; emacs-lisp files in the build tree are
- ;; recompiled). Previously this was accomplished by
- ;; deleting target-file before writing it.
- (if byte-native-compiling
- ;; Defer elc final renaming.
- (setf byte-to-native-output-file
- (cons tempfile target-file))
- (rename-file tempfile target-file t)))
+ (if byte-native-compiling
+ ;; Defer elc production.
+ (setf byte-to-native-output-buffer-file
+ (cons (current-buffer) target-file))
+ (byte-write-target-file (current-buffer) target-file))
(or noninteractive
byte-native-compiling
(message "Wrote %s" target-file)))
@@ -2159,7 +2174,8 @@ See also `emacs-lisp-byte-compile-and-load'."
"Cannot overwrite file"
"Directory not writable or nonexistent")
target-file))))))
- (kill-buffer (current-buffer)))
+ (unless byte-native-compiling
+ (kill-buffer (current-buffer))))
(if (and byte-compile-generate-call-tree
(or (eq t byte-compile-generate-call-tree)
(y-or-n-p (format "Report call tree for %s? "
@@ -2189,19 +2205,20 @@ With argument ARG, insert value in current buffer after
the form."
(save-excursion
(end-of-defun)
(beginning-of-defun)
- (let* ((byte-compile-current-file (current-buffer))
+ (let* ((print-symbols-bare t)
+ (byte-compile-current-file (current-buffer))
(byte-compile-current-buffer (current-buffer))
- (byte-compile-read-position (point))
- (byte-compile-last-position byte-compile-read-position)
+ (start-read-position (point))
(byte-compile-last-warned-form 'nothing)
(value (eval
- (let ((read-with-symbol-positions (current-buffer))
- (read-symbol-positions-list nil))
+ (let ((symbols-with-pos-enabled t))
(displaying-byte-compile-warnings
(byte-compile-sexp
- (eval-sexp-add-defvars
- (read (current-buffer))
- byte-compile-read-position))))
+ (let ((form (read-positioning-symbols
(current-buffer))))
+ (push form byte-compile-form-stack)
+ (eval-sexp-add-defvars
+ form
+ start-read-position)))))
lexical-binding)))
(cond (arg
(message "Compiling from buffer... done.")
@@ -2211,13 +2228,12 @@ With argument ARG, insert value in current buffer after
the form."
(defun byte-compile-from-buffer (inbuffer)
(let ((byte-compile-current-buffer inbuffer)
- (byte-compile-read-position nil)
- (byte-compile-last-position nil)
;; Prevent truncation of flonums and lists as we read and print them
(float-output-format nil)
(case-fold-search nil)
(print-length nil)
(print-level nil)
+ (print-symbols-bare t)
;; Prevent edebug from interfering when we compile
;; and put the output into a file.
;; (edebug-all-defs nil)
@@ -2230,12 +2246,9 @@ With argument ARG, insert value in current buffer after
the form."
(byte-compile-depth 0)
(byte-compile-maxdepth 0)
(byte-compile-output nil)
- ;; This allows us to get the positions of symbols read.
- (read-with-symbol-positions inbuffer)
- (read-symbol-positions-list nil)
;; #### This is bound in b-c-close-variables.
;; (byte-compile-warnings byte-compile-warnings)
- )
+ (symbols-with-pos-enabled t))
(byte-compile-close-variables
(with-current-buffer
(setq byte-compile--outbuffer
@@ -2281,18 +2294,17 @@ With argument ARG, insert value in current buffer after
the form."
(= (following-char) ?\;))
(forward-line 1))
(not (eobp)))
- (setq byte-compile-read-position (point)
- byte-compile-last-position byte-compile-read-position)
(let* ((lread--unescaped-character-literals nil)
- (form (read inbuffer))
+ ;; Don't bind `load-read-function' to
+ ;; `read-positioning-symbols' here. Calls to `read'
+ ;; at a lower level must not get symbols with
+ ;; position.
+ (form (read-positioning-symbols inbuffer))
(warning (byte-run--unescaped-character-literals-warning)))
- (when warning (byte-compile-warn "%s" warning))
+ (when warning (byte-compile-warn-x form "%s" warning))
(byte-compile-toplevel-file-form form)))
;; Compile pending forms at end of file.
(byte-compile-flush-pending)
- ;; Make warnings about unresolved functions
- ;; give the end of the file as their position.
- (setq byte-compile-last-position (point-max))
(byte-compile-warn-about-unresolved-functions)))
byte-compile--outbuffer)))
@@ -2350,7 +2362,8 @@ Call from the source buffer."
;; Spill output for the native compiler here
(push (make-byte-to-native-top-level :form form :lexical lexical-binding)
byte-to-native-top-level-forms))
- (let ((print-escape-newlines t)
+ (let ((print-symbols-bare t) ; Possibly redundant binding.
+ (print-escape-newlines t)
(print-length nil)
(print-level nil)
(print-quoted t)
@@ -2385,8 +2398,8 @@ list that represents a doc string reference.
;; in the input buffer (now current), not in the output buffer.
(let ((dynamic-docstrings byte-compile-dynamic-docstrings))
(with-current-buffer byte-compile--outbuffer
- (let (position)
-
+ (let (position
+ (print-symbols-bare t)) ; Possibly redundant binding.
;; Insert the doc string, and make it a comment with #@LENGTH.
(and (>= (nth 1 info) 0)
dynamic-docstrings
@@ -2496,7 +2509,8 @@ list that represents a doc string reference.
byte-compile-jump-tables nil))))
(defun byte-compile-preprocess (form &optional _for-effect)
- (setq form (macroexpand-all form byte-compile-macro-environment))
+ (let ((print-symbols-bare t)) ; Possibly redundant binding.
+ (setq form (macroexpand-all form byte-compile-macro-environment)))
;; FIXME: We should run byte-optimize-form here, but it currently does not
;; recurse through all the code, so we'd have to fix this first.
;; Maybe a good fix would be to merge byte-optimize-form into
@@ -2509,11 +2523,16 @@ list that represents a doc string reference.
;; byte-hunk-handlers cannot call this!
(defun byte-compile-toplevel-file-form (top-level-form)
- (byte-compile-recurse-toplevel
- top-level-form
- (lambda (form)
- (let ((byte-compile-current-form nil)) ; close over this for warnings.
- (byte-compile-file-form (byte-compile-preprocess form t))))))
+ ;; (let ((byte-compile-form-stack
+ ;; (cons top-level-form byte-compile-form-stack)))
+ (push top-level-form byte-compile-form-stack)
+ (prog1
+ (byte-compile-recurse-toplevel
+ top-level-form
+ (lambda (form)
+ (let ((byte-compile-current-form nil)) ; close over this for warnings.
+ (byte-compile-file-form (byte-compile-preprocess form t)))))
+ (pop byte-compile-form-stack)))
;; byte-hunk-handlers can call this.
(defun byte-compile-file-form (form)
@@ -2562,7 +2581,8 @@ list that represents a doc string reference.
(delq (assq funsym byte-compile-unresolved-functions)
byte-compile-unresolved-functions)))))
(if (stringp (nth 3 form))
- (prog1 form
+ (prog1
+ form
(byte-compile-docstring-length-warn form))
;; No doc string, so we can compile this as a normal form.
(byte-compile-keep-pending form 'byte-compile-normal-call)))
@@ -2574,7 +2594,8 @@ list that represents a doc string reference.
(when (and (symbolp sym)
(not (string-match "[-*/:$]" (symbol-name sym)))
(byte-compile-warning-enabled-p 'lexical sym))
- (byte-compile-warn "global/dynamic var `%s' lacks a prefix" sym)))
+ (byte-compile-warn-x
+ sym "global/dynamic var `%s' lacks a prefix" sym)))
(defun byte-compile--declare-var (sym)
(byte-compile--check-prefixed-var sym)
@@ -2582,7 +2603,7 @@ list that represents a doc string reference.
(setq byte-compile-lexical-variables
(delq sym byte-compile-lexical-variables))
(when (byte-compile-warning-enabled-p 'lexical sym)
- (byte-compile-warn "Variable `%S' declared after its first use" sym)))
+ (byte-compile-warn-x sym "Variable `%S' declared after its first use"
sym)))
(push sym byte-compile-bound-variables)
(push sym byte-compile--seen-defvars))
@@ -2595,10 +2616,16 @@ list that represents a doc string reference.
(eq (car form) 'defvar)) ;Just a declaration.
nil
(byte-compile-docstring-length-warn form)
+ (setq form (copy-sequence form))
(cond ((consp (nth 2 form))
- (setq form (copy-sequence form))
(setcar (cdr (cdr form))
- (byte-compile-top-level (nth 2 form) nil 'file))))
+ (byte-compile-top-level (nth 2 form) nil 'file)))
+ ((symbolp (nth 2 form))
+ (setcar (cddr form) (bare-symbol (nth 2 form))))
+ (t (setcar (cddr form) (nth 2 form))))
+ (setcar form (bare-symbol (car form)))
+ (if (symbolp (nth 1 form))
+ (setcar (cdr form) (bare-symbol (nth 1 form))))
form))
(put 'define-abbrev-table 'byte-hunk-handler
@@ -2616,7 +2643,8 @@ list that represents a doc string reference.
(`(defvaralias ,_ ',newname . ,_)
(when (memq newname byte-compile-bound-variables)
(if (byte-compile-warning-enabled-p 'suspicious)
- (byte-compile-warn
+ (byte-compile-warn-x
+ newname
"Alias for `%S' should be declared before its referent"
newname)))))
(byte-compile-docstring-length-warn form)
(byte-compile-keep-pending form))
@@ -2630,8 +2658,11 @@ list that represents a doc string reference.
(put 'require 'byte-hunk-handler 'byte-compile-file-form-require)
(defun byte-compile-file-form-require (form)
- (let ((args (mapcar 'eval (cdr form)))
- hist-new prov-cons)
+ (let* ((args (mapcar 'eval (cdr form)))
+ ;; The following is for the byte-compile-warn in
+ ;; `do-after-load-evaluation' (in subr.el).
+ (byte-compile-form-stack (cons (car args) byte-compile-form-stack))
+ hist-new prov-cons)
(apply 'require args)
;; Record the functions defined by the require in
`byte-compile-new-defuns'.
@@ -2675,7 +2706,8 @@ list that represents a doc string reference.
(put 'make-obsolete 'byte-hunk-handler 'byte-compile-file-form-make-obsolete)
(defun byte-compile-file-form-make-obsolete (form)
(prog1 (byte-compile-keep-pending form)
- (apply 'make-obsolete (mapcar 'eval (cdr form)))))
+ (apply 'make-obsolete
+ (mapcar 'eval (cdr form)))))
(defun byte-compile-file-form-defmumble (name macro arglist body rest)
"Process a `defalias' for NAME.
@@ -2690,23 +2722,23 @@ not to take responsibility for the actual compilation
of the code."
'byte-compile-macro-environment))
(this-one (assq name (symbol-value this-kind)))
(that-one (assq name (symbol-value that-kind)))
+ (bare-name (bare-symbol name))
(byte-compile-current-form name)) ; For warnings.
- (byte-compile-set-symbol-position name)
- (push name byte-compile-new-defuns)
+ (push bare-name byte-compile-new-defuns)
;; When a function or macro is defined, add it to the call tree so that
;; we can tell when functions are not used.
(if byte-compile-generate-call-tree
- (or (assq name byte-compile-call-tree)
+ (or (assq bare-name byte-compile-call-tree)
(setq byte-compile-call-tree
- (cons (list name nil nil) byte-compile-call-tree))))
+ (cons (list bare-name nil nil) byte-compile-call-tree))))
(if (byte-compile-warning-enabled-p 'redefine name)
(byte-compile-arglist-warn name arglist macro))
(if byte-compile-verbose
(message "Compiling %s... (%s)"
- (or byte-compile-current-file "") name))
+ (or byte-compile-current-file "") bare-name))
(cond ((not (or macro (listp body)))
;; We do not know positively if the definition is a macro
;; or a function, so we shouldn't emit warnings.
@@ -2715,29 +2747,34 @@ not to take responsibility for the actual compilation
of the code."
(that-one
(if (and (byte-compile-warning-enabled-p 'redefine name)
;; Don't warn when compiling the stubs in byte-run...
- (not (assq name byte-compile-initial-macro-environment)))
- (byte-compile-warn
+ (not (assq bare-name
byte-compile-initial-macro-environment)))
+ (byte-compile-warn-x
+ name
"`%s' defined multiple times, as both function and macro"
- name))
+ bare-name))
(setcdr that-one nil))
(this-one
(when (and (byte-compile-warning-enabled-p 'redefine name)
;; Hack: Don't warn when compiling the magic internal
;; byte-compiler macros in byte-run.el...
- (not (assq name byte-compile-initial-macro-environment)))
- (byte-compile-warn "%s `%s' defined multiple times in this file"
- (if macro "macro" "function")
- name)))
- ((eq (car-safe (symbol-function name))
+ (not (assq bare-name
byte-compile-initial-macro-environment)))
+ (byte-compile-warn-x
+ name
+ "%s `%s' defined multiple times in this file"
+ (if macro "macro" "function")
+ bare-name)))
+ ((eq (car-safe (symbol-function bare-name))
(if macro 'lambda 'macro))
- (when (byte-compile-warning-enabled-p 'redefine name)
- (byte-compile-warn "%s `%s' being redefined as a %s"
- (if macro "function" "macro")
- name
- (if macro "macro" "function")))
+ (when (byte-compile-warning-enabled-p 'redefine bare-name)
+ (byte-compile-warn-x
+ name
+ "%s `%s' being redefined as a %s"
+ (if macro "function" "macro")
+ bare-name
+ (if macro "macro" "function")))
;; Shadow existing definition.
(set this-kind
- (cons (cons name nil)
+ (cons (cons bare-name nil)
(symbol-value this-kind))))
)
@@ -2746,10 +2783,8 @@ not to take responsibility for the actual compilation of
the code."
(symbolp (car-safe (cdr-safe body)))
(car-safe (cdr-safe body))
(stringp (car-safe (cdr-safe (cdr-safe body)))))
- ;; FIXME: We've done that already just above, so this looks wrong!
- ;;(byte-compile-set-symbol-position name)
- (byte-compile-warn "probable `\"' without `\\' in doc string of %s"
- name))
+ (byte-compile-warn-x
+ name "probable `\"' without `\\' in doc string of %s" bare-name))
(if (not (listp body))
;; The precise definition requires evaluation to find out, so it
@@ -2757,7 +2792,7 @@ not to take responsibility for the actual compilation of
the code."
;; For a macro, that means we can't use that macro in the same file.
(progn
(unless macro
- (push (cons name (if (listp arglist) `(declared ,arglist) t))
+ (push (cons bare-name (if (listp arglist) `(declared ,arglist) t))
byte-compile-function-environment))
;; Tell the caller that we didn't compile it yet.
nil)
@@ -2767,10 +2802,10 @@ not to take responsibility for the actual compilation
of the code."
;; A definition in b-c-initial-m-e should always take precedence
;; during compilation, so don't let it be redefined. (Bug#8647)
(or (and macro
- (assq name byte-compile-initial-macro-environment))
+ (assq bare-name byte-compile-initial-macro-environment))
(setcdr this-one code))
(set this-kind
- (cons (cons name code)
+ (cons (cons bare-name code)
(symbol-value this-kind))))
(if rest
@@ -2786,18 +2821,19 @@ not to take responsibility for the actual compilation
of the code."
(if (not (stringp (documentation code t))) -1 4)))
(when byte-native-compiling
;; Spill output for the native compiler here.
- (push (if macro
- (make-byte-to-native-top-level
- :form `(defalias ',name '(macro . ,code) nil)
- :lexical lexical-binding)
- (make-byte-to-native-func-def :name name
- :byte-func code))
- byte-to-native-top-level-forms))
+ (push
+ (if macro
+ (make-byte-to-native-top-level
+ :form `(defalias ',name '(macro . ,code) nil)
+ :lexical lexical-binding)
+ (make-byte-to-native-func-def :name name
+ :byte-func code))
+ byte-to-native-top-level-forms))
;; Output the form by hand, that's much simpler than having
;; b-c-output-file-form analyze the defalias.
(byte-compile-output-docform
"\n(defalias '"
- name
+ bare-name
(if macro `(" '(macro . #[" ,index "])") `(" #[" ,index "]"))
(append code nil) ; Turn byte-code-function-p into list.
(and (atom code) byte-compile-dynamic
@@ -2880,37 +2916,38 @@ If FORM is a lambda or a macro, byte-compile it as a
function."
(macro (eq (car-safe fun) 'macro)))
(if macro
(setq fun (cdr fun)))
- (cond
- ;; Up until Emacs-24.1, byte-compile silently did nothing when asked to
- ;; compile something invalid. So let's tune down the complaint from an
- ;; error to a simple message for the known case where signaling an error
- ;; causes problems.
- ((byte-code-function-p fun)
- (message "Function %s is already compiled"
- (if (symbolp form) form "provided"))
- fun)
- (t
- (let (final-eval)
- (when (or (symbolp form) (eq (car-safe fun) 'closure))
- ;; `fun' is a function *value*, so try to recover its corresponding
- ;; source code.
- (setq lexical-binding (eq (car fun) 'closure))
- (setq fun (byte-compile--reify-function fun))
- (setq final-eval t))
- ;; Expand macros.
- (setq fun (byte-compile-preprocess fun))
- (setq fun (byte-compile-top-level fun nil 'eval))
- (if (symbolp form)
- ;; byte-compile-top-level returns an *expression* equivalent to
the
- ;; `fun' expression, so we need to evaluate it, tho normally
- ;; this is not needed because the expression is just a constant
- ;; byte-code object, which is self-evaluating.
- (setq fun (eval fun t)))
- (if final-eval
- (setq fun (eval fun t)))
- (if macro (push 'macro fun))
- (if (symbolp form) (fset form fun))
- fun)))))))
+ (prog1
+ (cond
+ ;; Up until Emacs-24.1, byte-compile silently did nothing when
asked to
+ ;; compile something invalid. So let's tune down the complaint
from an
+ ;; error to a simple message for the known case where signaling an
error
+ ;; causes problems.
+ ((byte-code-function-p fun)
+ (message "Function %s is already compiled"
+ (if (symbolp form) form "provided"))
+ fun)
+ (t
+ (let (final-eval)
+ (when (or (symbolp form) (eq (car-safe fun) 'closure))
+ ;; `fun' is a function *value*, so try to recover its
corresponding
+ ;; source code.
+ (setq lexical-binding (eq (car fun) 'closure))
+ (setq fun (byte-compile--reify-function fun))
+ (setq final-eval t))
+ ;; Expand macros.
+ (setq fun (byte-compile-preprocess fun))
+ (setq fun (byte-compile-top-level fun nil 'eval))
+ (if (symbolp form)
+ ;; byte-compile-top-level returns an *expression* equivalent
to the
+ ;; `fun' expression, so we need to evaluate it, tho normally
+ ;; this is not needed because the expression is just a
constant
+ ;; byte-code object, which is self-evaluating.
+ (setq fun (eval fun t)))
+ (if final-eval
+ (setq fun (eval fun t)))
+ (if macro (push 'macro fun))
+ (if (symbolp form) (fset form fun))
+ fun))))))))
(defun byte-compile-sexp (sexp)
"Compile and return SEXP."
@@ -2923,8 +2960,6 @@ If FORM is a lambda or a macro, byte-compile it as a
function."
(let (vars)
(while list
(let ((arg (car list)))
- (when (symbolp arg)
- (byte-compile-set-symbol-position arg))
(cond ((or (not (symbolp arg))
(macroexp--const-symbol-p arg t))
(error "Invalid lambda variable %s" arg))
@@ -2941,7 +2976,8 @@ If FORM is a lambda or a macro, byte-compile it as a
function."
((and (memq arg vars)
;; Allow repetitions for unused args.
(not (string-match "\\`_" (symbol-name arg))))
- (byte-compile-warn "repeated variable %s in lambda-list" arg))
+ (byte-compile-warn-x
+ arg "repeated variable %s in lambda-list" arg))
(t
(push arg vars))))
(setq list (cdr list)))))
@@ -2984,7 +3020,8 @@ If FORM is a lambda or a macro, byte-compile it as a
function."
(defun byte-compile--warn-lexical-dynamic (var context)
(when (byte-compile-warning-enabled-p 'lexical-dynamic var)
- (byte-compile-warn
+ (byte-compile-warn-x
+ var
"`%s' lexically bound in %s here but declared dynamic in: %s"
var context
(mapconcat #'identity
@@ -2996,16 +3033,11 @@ If FORM is a lambda or a macro, byte-compile it as a
function."
(defun byte-compile-lambda (fun &optional add-lambda reserved-csts)
"Byte-compile a lambda-expression and return a valid function.
The value is usually a compiled function but may be the original
-lambda-expression.
-When ADD-LAMBDA is non-nil, the symbol `lambda' is added as head
-of the list FUN and `byte-compile-set-symbol-position' is not called.
-Use this feature to avoid calling `byte-compile-set-symbol-position'
-for symbols generated by the byte compiler itself."
+lambda-expression."
(if add-lambda
(setq fun (cons 'lambda fun))
(unless (eq 'lambda (car-safe fun))
- (error "Not a lambda list: %S" fun))
- (byte-compile-set-symbol-position 'lambda))
+ (error "Not a lambda list: %S" fun)))
(byte-compile-docstring-length-warn fun)
(byte-compile-check-lambda-list (nth 1 fun))
(let* ((arglist (nth 1 fun))
@@ -3028,7 +3060,6 @@ for symbols generated by the byte compiler itself."
(byte-compile--warn-lexical-dynamic var 'lambda))))
;; Process the interactive spec.
(when int
- (byte-compile-set-symbol-position 'interactive)
;; Skip (interactive) if it is in front (the most usual location).
(if (eq int (car body))
(setq body (cdr body)))
@@ -3036,8 +3067,8 @@ for symbols generated by the byte compiler itself."
;; Check that the bit after the `interactive' spec is
;; just a list of symbols (i.e., modes).
(unless (seq-every-p #'symbolp (cdr (cdr int)))
- (byte-compile-warn "malformed interactive specc: %s"
- (prin1-to-string int)))
+ (byte-compile-warn-x int "malformed interactive specc: %s"
+ int))
(setq command-modes (cdr (cdr int)))
;; If the interactive spec is a call to `list', don't
;; compile it, because `call-interactively' looks at the
@@ -3049,16 +3080,16 @@ for symbols generated by the byte compiler itself."
(while (consp (cdr form))
(setq form (cdr form)))
(setq form (car form)))
- (when (or (not (eq (car-safe form) 'list))
- ;; For code using lexical-binding, form is not
- ;; valid lisp, but rather an intermediate form
- ;; which may include "calls" to
- ;; internal-make-closure (Bug#29988).
- lexical-binding)
- (setq int `(interactive ,newform)))))
+ (if (or (not (eq (car-safe form) 'list))
+ ;; For code using lexical-binding, form is not
+ ;; valid lisp, but rather an intermediate form
+ ;; which may include "calls" to
+ ;; internal-make-closure (Bug#29988).
+ lexical-binding)
+ (setq int `(interactive ,newform)))))
((cdr int) ; Invalid (interactive . something).
- (byte-compile-warn "malformed interactive spec: %s"
- (prin1-to-string int)))))
+ (byte-compile-warn-x int "malformed interactive spec: %s"
+ int))))
;; Process the body.
(let ((compiled
(byte-compile-top-level (cons 'progn body) nil 'lambda
@@ -3069,14 +3100,15 @@ for symbols generated by the byte compiler itself."
(and lexical-binding
(byte-compile-make-lambda-lexenv
arglistvars))
- reserved-csts)))
+ reserved-csts))
+ (bare-arglist arglist))
;; Build the actual byte-coded function.
(cl-assert (eq 'byte-code (car-safe compiled)))
(let ((out
(apply #'make-byte-code
(if lexical-binding
(byte-compile-make-args-desc arglist)
- arglist)
+ bare-arglist)
(append
;; byte-string, constants-vector, stack depth
(cdr compiled)
@@ -3084,7 +3116,7 @@ for symbols generated by the byte compiler itself."
(cond ((and lexical-binding arglist)
;; byte-compile-make-args-desc lost the args's
names,
;; so preserve them in the docstring.
- (list (help-add-fundoc-usage doc arglist)))
+ (list (help-add-fundoc-usage doc bare-arglist)))
((or doc int)
(list doc)))
;; optionally, the interactive spec (and the modes the
@@ -3289,7 +3321,8 @@ for symbols generated by the byte compiler itself."
(setq byte-compile-noruntime-functions
(delq fn byte-compile-noruntime-functions))
;; Delegate the rest to the normal macro definition.
- (macroexpand `(declare-function ,fn ,file ,@args)))
+ (let ((print-symbols-bare t)) ; Possibly redundant binding.
+ (macroexpand `(declare-function ,fn ,file ,@args))))
;; This is the recursive entry point for compiling each subform of an
@@ -3307,18 +3340,16 @@ for symbols generated by the byte compiler itself."
;;
(defun byte-compile-form (form &optional for-effect)
(let ((byte-compile--for-effect for-effect))
+ (push form byte-compile-form-stack)
(cond
((not (consp form))
(cond ((or (not (symbolp form)) (macroexp--const-symbol-p form))
- (when (symbolp form)
- (byte-compile-set-symbol-position form))
- (byte-compile-constant form))
+ (byte-compile-constant
+ (if (symbolp form) (bare-symbol form) form)))
((and byte-compile--for-effect byte-compile-delete-errors)
- (when (symbolp form)
- (byte-compile-set-symbol-position form))
(setq byte-compile--for-effect nil))
(t
- (byte-compile-variable-ref form))))
+ (byte-compile-variable-ref (bare-symbol form)))))
((symbolp (car form))
(let* ((fn (car form))
(handler (get fn 'byte-compile))
@@ -3341,20 +3372,20 @@ for symbols generated by the byte compiler itself."
(byte-compile-check-variable (cadr hook) nil))))
(when (and (byte-compile-warning-enabled-p 'suspicious)
(macroexp--const-symbol-p fn))
- (byte-compile-warn "`%s' called as a function" fn))
+ (byte-compile-warn-x fn "`%s' called as a function" fn))
(when (and (byte-compile-warning-enabled-p 'interactive-only fn)
interactive-only)
- (byte-compile-warn "`%s' is for interactive use only%s"
- fn
- (cond ((stringp interactive-only)
- (format "; %s"
- (substitute-command-keys
- interactive-only)))
- ((and (symbolp 'interactive-only)
- (not (eq interactive-only t)))
- (format-message "; use `%s' instead."
- interactive-only))
- (t "."))))
+ (byte-compile-warn-x fn "`%s' is for interactive use only%s"
+ fn
+ (cond ((stringp interactive-only)
+ (format "; %s"
+ (substitute-command-keys
+ interactive-only)))
+ ((and (symbolp 'interactive-only)
+ (not (eq interactive-only t)))
+ (format-message "; use `%s' instead."
+ interactive-only))
+ (t "."))))
(if (eq (car-safe (symbol-function (car form))) 'macro)
(byte-compile-report-error
(format "`%s' defined after use in %S (missing `require' of a
library file?)"
@@ -3379,7 +3410,8 @@ for symbols generated by the byte compiler itself."
(setq byte-compile--for-effect nil))
((byte-compile-normal-call form)))
(if byte-compile--for-effect
- (byte-compile-discard))))
+ (byte-compile-discard))
+ (pop byte-compile-form-stack)))
(defun byte-compile-normal-call (form)
(when (and (symbolp (car form))
@@ -3393,8 +3425,8 @@ for symbols generated by the byte compiler itself."
(byte-compile-annotate-call-tree form))
(when (and byte-compile--for-effect (eq (car form) 'mapcar)
(byte-compile-warning-enabled-p 'mapcar 'mapcar))
- (byte-compile-set-symbol-position 'mapcar)
- (byte-compile-warn
+ (byte-compile-warn-x
+ (car form)
"`mapcar' called for effect; use `mapc' or `dolist' instead"))
(byte-compile-push-constant (car form))
(mapc 'byte-compile-form (cdr form)) ; wasteful, but faster.
@@ -3525,16 +3557,16 @@ for symbols generated by the byte compiler itself."
(defun byte-compile-check-variable (var access-type)
"Do various error checks before a use of the variable VAR."
- (when (symbolp var)
- (byte-compile-set-symbol-position var))
(cond ((or (not (symbolp var)) (macroexp--const-symbol-p var))
(when (byte-compile-warning-enabled-p 'constants
(and (symbolp var) var))
- (byte-compile-warn (if (eq access-type 'let-bind)
- "attempt to let-bind %s `%s'"
- "variable reference to %s `%s'")
- (if (symbolp var) "constant" "nonvariable")
- (prin1-to-string var))))
+ (byte-compile-warn-x
+ var
+ (if (eq access-type 'let-bind)
+ "attempt to let-bind %s `%s'"
+ "variable reference to %s `%s'")
+ (if (symbolp var) "constant" "nonvariable")
+ var)))
((let ((od (get var 'byte-obsolete-variable)))
(and od
(not (memq var byte-compile-not-obsolete-vars))
@@ -3547,6 +3579,7 @@ for symbols generated by the byte compiler itself."
(byte-compile-warn-obsolete var))))
(defsubst byte-compile-dynamic-variable-op (base-op var)
+ (if (symbolp var) (setq var (bare-symbol var)))
(let ((tmp (assq var byte-compile-variables)))
(unless tmp
(setq tmp (list var))
@@ -3559,9 +3592,10 @@ for symbols generated by the byte compiler itself."
(push var byte-compile-bound-variables)
(byte-compile-dynamic-variable-op 'byte-varbind var))
-(defun byte-compile-free-vars-warn (var &optional assignment)
+(defun byte-compile-free-vars-warn (arg var &optional assignment)
"Warn if symbol VAR refers to a free variable.
VAR must not be lexically bound.
+ARG is a position argument, used by byte-compile-warn-x.
If optional argument ASSIGNMENT is non-nil, this is treated as an
assignment (i.e. `setq')."
(unless (or (not (byte-compile-warning-enabled-p 'free-vars var))
@@ -3573,9 +3607,9 @@ assignment (i.e. `setq')."
(let* ((varname (prin1-to-string var))
(desc (if assignment "assignment" "reference"))
(suggestions (help-uni-confusable-suggestions varname)))
- (byte-compile-warn "%s to free variable `%s'%s"
- desc varname
- (if suggestions (concat "\n " suggestions) "")))
+ (byte-compile-warn-x arg "%s to free variable `%s'%s"
+ desc var
+ (if suggestions (concat "\n " suggestions) "")))
(push var (if assignment
byte-compile-free-assignments
byte-compile-free-references))))
@@ -3588,7 +3622,7 @@ assignment (i.e. `setq')."
;; VAR is lexically bound
(byte-compile-stack-ref (cdr lex-binding))
;; VAR is dynamically bound
- (byte-compile-free-vars-warn var)
+ (byte-compile-free-vars-warn var var)
(byte-compile-dynamic-variable-op 'byte-varref var))))
(defun byte-compile-variable-set (var)
@@ -3599,7 +3633,7 @@ assignment (i.e. `setq')."
;; VAR is lexically bound.
(byte-compile-stack-set (cdr lex-binding))
;; VAR is dynamically bound.
- (byte-compile-free-vars-warn var t)
+ (byte-compile-free-vars-warn var var t)
(byte-compile-dynamic-variable-op 'byte-varset var))))
(defmacro byte-compile-get-constant (const)
@@ -3619,14 +3653,17 @@ assignment (i.e. `setq')."
(defun byte-compile-constant (const)
(if byte-compile--for-effect
(setq byte-compile--for-effect nil)
- (inline (byte-compile-push-constant const))))
+ (inline (byte-compile-push-constant
+ (if (symbolp const) (bare-symbol const) const)))))
;; Use this for a constant that is not the value of its containing form.
;; This ignores byte-compile--for-effect.
(defun byte-compile-push-constant (const)
(when (symbolp const)
- (byte-compile-set-symbol-position const))
- (byte-compile-out 'byte-constant (byte-compile-get-constant const)))
+ (setq const (bare-symbol const)))
+ (byte-compile-out
+ 'byte-constant
+ (byte-compile-get-constant const)))
;; Compile those primitive ordinary functions
;; which have special byte codes just for speed.
@@ -3778,10 +3815,10 @@ If it is nil, then the handler is
\"byte-compile-SYMBOL.\""
(defun byte-compile-subr-wrong-args (form n)
- (byte-compile-set-symbol-position (car form))
- (byte-compile-warn "`%s' called with %d arg%s, but requires %s"
- (car form) (length (cdr form))
- (if (= 1 (length (cdr form))) "" "s") n)
+ (byte-compile-warn-x (car form)
+ "`%s' called with %d arg%s, but requires %s"
+ (car form) (length (cdr form))
+ (if (= 1 (length (cdr form))) "" "s") n)
;; Get run-time wrong-number-of-args error.
(byte-compile-normal-call form))
@@ -4090,7 +4127,8 @@ discarding."
(if (eq 'interactive (car-safe (car body))) (setq body (cdr body)))
(if (and (consp (car body))
(not (eq 'byte-code (car (car body)))))
- (byte-compile-warn
+ (byte-compile-warn-x
+ (nth 2 form)
"A quoted lambda form is the second argument of `fset'. This is probably
not what you want, as that lambda cannot be compiled. Consider using
the syntax #'(lambda (...) ...) instead.")))))
@@ -4175,10 +4213,11 @@ discarding."
(macroexp--const-symbol-p var t))
(byte-compile-warning-enabled-p 'constants
(and (symbolp var) var))
- (byte-compile-warn
+ (byte-compile-warn-x
+ var
"variable assignment to %s `%s'"
(if (symbolp var) "constant" "nonvariable")
- (prin1-to-string var)))))
+ var))))
(byte-compile-normal-call form)))
(defun byte-compile-quote (form)
@@ -4711,7 +4750,6 @@ binding slots have been popped."
;; Even when optimization is off, /= is optimized to (not (= ...)).
(defun byte-compile-negation-optimizer (form)
;; an optimizer for forms where <form1> is less efficient than (not <form2>)
- (byte-compile-set-symbol-position (car form))
(list 'not
(cons (or (get (car form) 'byte-compile-negated-op)
(error
@@ -4761,18 +4799,17 @@ binding slots have been popped."
(cons (byte-compile-make-tag) clause))
failure-handlers))
(endtag (byte-compile-make-tag)))
- (byte-compile-set-symbol-position 'condition-case)
(unless (symbolp var)
- (byte-compile-warn
- "`%s' is not a variable-name or nil (in condition-case)" var))
+ (byte-compile-warn-x
+ var "`%s' is not a variable-name or nil (in condition-case)" var))
(dolist (clause (reverse clauses))
(let ((condition (nth 1 clause)))
(unless (consp condition) (setq condition (list condition)))
(dolist (c condition)
(unless (and c (symbolp c))
- (byte-compile-warn
- "`%S' is not a condition name (in condition-case)" c))
+ (byte-compile-warn-x
+ c "`%S' is not a condition name (in condition-case)" c))
;; In reality, the `error-conditions' property is only required
;; for the argument to `signal', not to `condition-case'.
;;(unless (consp (get c 'error-conditions))
@@ -4823,7 +4860,8 @@ binding slots have been popped."
(defun byte-compile-save-excursion (form)
(if (and (eq 'set-buffer (car-safe (car-safe (cdr form))))
(byte-compile-warning-enabled-p 'suspicious 'set-buffer))
- (byte-compile-warn
+ (byte-compile-warn-x
+ form
"Use `with-current-buffer' rather than save-excursion+set-buffer"))
(byte-compile-out 'byte-save-excursion 0)
(byte-compile-body-do-effect (cdr form))
@@ -4864,18 +4902,20 @@ binding slots have been popped."
(when (and (symbolp (nth 1 form))
(not (string-match "[-*/:$]" (symbol-name (nth 1 form))))
(byte-compile-warning-enabled-p 'lexical (nth 1 form)))
- (byte-compile-warn "global/dynamic var `%s' lacks a prefix"
- (nth 1 form)))
+ (byte-compile-warn-x
+ (nth 1 form)
+ "global/dynamic var `%s' lacks a prefix"
+ (nth 1 form)))
(byte-compile-docstring-length-warn form)
(let ((fun (nth 0 form))
(var (nth 1 form))
(value (nth 2 form))
(string (nth 3 form)))
- (byte-compile-set-symbol-position fun)
(when (or (> (length form) 4)
(and (eq fun 'defconst) (null (cddr form))))
(let ((ncall (length (cdr form))))
- (byte-compile-warn
+ (byte-compile-warn-x
+ fun
"`%s' called with %d argument%s, but %s %s"
fun ncall
(if (= 1 ncall) "" "s")
@@ -4885,8 +4925,10 @@ binding slots have been popped."
(if (eq fun 'defconst)
(push var byte-compile-const-variables))
(when (and string (not (stringp string)))
- (byte-compile-warn "third arg to `%s %s' is not a string: %s"
- fun var string))
+ (byte-compile-warn-x
+ string
+ "third arg to `%s %s' is not a string: %s"
+ fun var string))
(byte-compile-form-do-effect
(if (cddr form) ; `value' provided
;; Quote with `quote' to prevent byte-compiling the body,
@@ -4901,12 +4943,12 @@ binding slots have been popped."
`',var)))))
(defun byte-compile-autoload (form)
- (byte-compile-set-symbol-position 'autoload)
(and (macroexp-const-p (nth 1 form))
(macroexp-const-p (nth 5 form))
(memq (eval (nth 5 form)) '(t macro)) ; macro-p
(not (fboundp (eval (nth 1 form))))
- (byte-compile-warn
+ (byte-compile-warn-x
+ form
"The compiler ignores `autoload' except at top level. You should
probably put the autoload of the macro `%s' at top-level."
(eval (nth 1 form))))
@@ -4915,7 +4957,6 @@ binding slots have been popped."
;; Lambdas in valid places are handled as special cases by various code.
;; The ones that remain are errors.
(defun byte-compile-lambda-form (_form)
- (byte-compile-set-symbol-position 'lambda)
(error "`lambda' used as function name is invalid"))
;; Compile normally, but deal with warnings for the function being defined.
@@ -4995,7 +5036,8 @@ binding slots have been popped."
(defun byte-compile-make-variable-buffer-local (form)
(if (and (eq (car-safe (car-safe (cdr-safe form))) 'quote)
(byte-compile-warning-enabled-p 'make-local))
- (byte-compile-warn
+ (byte-compile-warn-x
+ form
"`make-variable-buffer-local' not called at toplevel"))
(byte-compile-normal-call form))
(put 'make-variable-buffer-local
@@ -5099,24 +5141,26 @@ OP and OPERAND are as passed to `byte-compile-out'."
;;; call tree stuff
(defun byte-compile-annotate-call-tree (form)
- (let (entry)
+ (let ((current-form (byte-run-strip-symbol-positions
+ byte-compile-current-form))
+ (bare-car-form (byte-run-strip-symbol-positions (car form)))
+ entry)
;; annotate the current call
- (if (setq entry (assq (car form) byte-compile-call-tree))
- (or (memq byte-compile-current-form (nth 1 entry)) ;callers
+ (if (setq entry (assq bare-car-form byte-compile-call-tree))
+ (or (memq current-form (nth 1 entry)) ;callers
(setcar (cdr entry)
- (cons byte-compile-current-form (nth 1 entry))))
+ (cons current-form (nth 1 entry))))
(setq byte-compile-call-tree
- (cons (list (car form) (list byte-compile-current-form) nil)
+ (cons (list bare-car-form (list current-form) nil)
byte-compile-call-tree)))
;; annotate the current function
- (if (setq entry (assq byte-compile-current-form byte-compile-call-tree))
- (or (memq (car form) (nth 2 entry)) ;called
+ (if (setq entry (assq current-form byte-compile-call-tree))
+ (or (memq bare-car-form (nth 2 entry)) ;called
(setcar (cdr (cdr entry))
- (cons (car form) (nth 2 entry))))
+ (cons bare-car-form (nth 2 entry))))
(setq byte-compile-call-tree
- (cons (list byte-compile-current-form nil (list (car form)))
- byte-compile-call-tree)))
- ))
+ (cons (list current-form nil (list bare-car-form))
+ byte-compile-call-tree)))))
;; Renamed from byte-compile-report-call-tree
;; to avoid interfering with completion of byte-compile-file.
@@ -5141,14 +5185,15 @@ invoked interactively."
(set-buffer "*Call-Tree*")
(erase-buffer)
(message "Generating call tree... (sorting on %s)"
- byte-compile-call-tree-sort)
+ (remove-pos-from-symbol byte-compile-call-tree-sort))
(insert "Call tree for "
(cond ((null byte-compile-current-file) (or filename "???"))
((stringp byte-compile-current-file)
byte-compile-current-file)
(t (buffer-name byte-compile-current-file)))
" sorted on "
- (prin1-to-string byte-compile-call-tree-sort)
+ (prin1-to-string (remove-pos-from-symbol
+ byte-compile-call-tree-sort))
":\n\n")
(if byte-compile-call-tree-sort
(setq byte-compile-call-tree
@@ -5168,7 +5213,8 @@ invoked interactively."
('name
(lambda (x y) (string< (car x) (car y))))
(_ (error "`byte-compile-call-tree-sort': `%s' - unknown
sort mode"
- byte-compile-call-tree-sort))))))
+ (remove-pos-from-symbol
+ byte-compile-call-tree-sort)))))))
(message "Generating call tree...")
(let ((rest byte-compile-call-tree)
(b (current-buffer))
@@ -5315,7 +5361,7 @@ already up-to-date."
(or (not (file-exists-p dest))
(file-newer-than-file-p source dest))))
(if (null (batch-byte-compile-file (car command-line-args-left)))
- (setq error t))))
+ (setq error t))))
(setq command-line-args-left (cdr command-line-args-left)))
(kill-emacs (if error 1 0))))
diff --git a/lisp/emacs-lisp/cconv.el b/lisp/emacs-lisp/cconv.el
index 11e1a0aa08..c0dfb71d64 100644
--- a/lisp/emacs-lisp/cconv.el
+++ b/lisp/emacs-lisp/cconv.el
@@ -263,7 +263,7 @@ Returns a form where all lambdas don't have any free
variables."
(eq ?_ (aref (symbol-name var) 0)))
(let ((suggestions (help-uni-confusable-suggestions (symbol-name var))))
(format "Unused lexical %s `%S'%s"
- varkind var
+ varkind (bare-symbol var)
(if suggestions (concat "\n " suggestions) "")))))
(define-inline cconv--var-classification (binder form)
@@ -287,7 +287,7 @@ of converted forms."
(let (and (pred stringp) msg)
(cconv--warn-unused-msg arg "argument")))
(if (assq arg env) (push `(,arg . nil) env)) ;FIXME: Is it needed?
- (push (lambda (body) (macroexp--warn-wrap msg body 'lexical))
wrappers))
+ (push (lambda (body) (macroexp--warn-wrap arg msg body 'lexical))
wrappers))
(_
(if (assq arg env) (push `(,arg . nil) env)))))
(setq funcbody (mapcar (lambda (form)
@@ -368,7 +368,8 @@ places where they originally did not directly appear."
(var (if (not (consp binder))
(prog1 binder (setq binder (list binder)))
(when (cddr binder)
- (byte-compile-warn
+ (byte-compile-warn-x
+ binder
"Malformed `%S' binding: %S"
letsym binder))
(setq value (cadr binder))
@@ -376,9 +377,9 @@ places where they originally did not directly appear."
(cond
;; Ignore bindings without a valid name.
((not (symbolp var))
- (byte-compile-warn "attempt to let-bind nonvariable `%S'" var))
+ (byte-compile-warn-x var "attempt to let-bind nonvariable `%S'"
var))
((or (booleanp var) (keywordp var))
- (byte-compile-warn "attempt to let-bind constant `%S'" var))
+ (byte-compile-warn-x var "attempt to let-bind constant `%S'" var))
(t
(let ((new-val
(pcase (cconv--var-classification binder form)
@@ -428,11 +429,14 @@ places where they originally did not directly appear."
;; Declared variable is unused.
(if (assq var new-env)
(push `(,var) new-env)) ;FIXME:Needed?
- (let ((newval
- `(ignore ,(cconv-convert value env extend)))
- (msg (cconv--warn-unused-msg var "variable")))
+ (let* ((Ignore (if (symbol-with-pos-p var)
+ (position-symbol 'ignore var)
+ 'ignore))
+ (newval `(,Ignore
+ ,(cconv-convert value env extend)))
+ (msg (cconv--warn-unused-msg var "variable")))
(if (null msg) newval
- (macroexp--warn-wrap msg newval 'lexical))))
+ (macroexp--warn-wrap var msg newval 'lexical))))
;; Normal default case.
(_
@@ -534,7 +538,7 @@ places where they originally did not directly appear."
(newprotform (cconv-convert protected-form env extend)))
`(condition-case ,var
,(if msg
- (macroexp--warn-wrap msg newprotform 'lexical)
+ (macroexp--warn-wrap var msg newprotform 'lexical)
newprotform)
,@(mapcar
(lambda (handler)
@@ -636,7 +640,8 @@ FORM is the parent form that binds this var."
;; FIXME: Convert this warning to use `macroexp--warn-wrap'
;; so as to give better position information.
(when (byte-compile-warning-enabled-p 'not-unused var)
- (byte-compile-warn "%s `%S' not left unused" varkind var)))
+ (byte-compile-warn-x
+ var "%s `%S' not left unused" varkind var)))
((and (let (or 'let* 'let) (car form))
`((,var) ;; (or `(,var nil) : Too many false positives: bug#47080
t nil ,_ ,_))
@@ -644,7 +649,7 @@ FORM is the parent form that binds this var."
;; so as to give better position information and obey
;; `byte-compile-warnings'.
(unless (not (intern-soft var))
- (byte-compile-warn "Variable `%S' left uninitialized" var))))
+ (byte-compile-warn-x var "Variable `%S' left uninitialized" var))))
(pcase vardata
(`(,binder nil ,_ ,_ nil)
(push (cons (cons binder form) :unused) cconv-var-classification))
@@ -673,7 +678,8 @@ FORM is the parent form that binds this var."
(dolist (arg args)
(cond
((byte-compile-not-lexical-var-p arg)
- (byte-compile-warn
+ (byte-compile-warn-x
+ arg
"Lexical argument shadows the dynamic variable %S"
arg))
((eq ?& (aref (symbol-name arg) 0)) nil) ;Ignore &rest, &optional, ...
@@ -756,7 +762,8 @@ This function does not return anything but instead fills the
(setq forms (cddr forms))))
(`((lambda . ,_) . ,_) ; First element is lambda expression.
- (byte-compile-warn
+ (byte-compile-warn-x
+ (nth 1 (car form))
"Use of deprecated ((lambda %s ...) ...) form" (nth 1 (car form)))
(dolist (exp `((function ,(car form)) . ,(cdr form)))
(cconv-analyze-form exp env)))
@@ -775,8 +782,8 @@ This function does not return anything but instead fills the
(`(condition-case ,var ,protected-form . ,handlers)
(cconv-analyze-form protected-form env)
(when (and var (symbolp var) (byte-compile-not-lexical-var-p var))
- (byte-compile-warn
- "Lexical variable shadows the dynamic variable %S" var))
+ (byte-compile-warn-x
+ var "Lexical variable shadows the dynamic variable %S" var))
(let* ((varstruct (list var nil nil nil nil)))
(if var (push varstruct env))
(dolist (handler handlers)
diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el
index 90c82dbdab..a0a0691442 100644
--- a/lisp/emacs-lisp/cl-generic.el
+++ b/lisp/emacs-lisp/cl-generic.el
@@ -382,7 +382,7 @@ the specializer used will be the one returned by BODY."
macroexpand-all-environment)))
(require 'cl-lib) ;Needed to expand `cl-flet' and `cl-function'.
(when (assq 'interactive body)
- (message "Interactive forms unsupported in generic functions: %S"
+ (message "Interactive forms not supported in generic functions: %S"
(assq 'interactive body)))
;; First macroexpand away the cl-function stuff (e.g. &key and
;; destructuring args, `declare' and whatnot).
@@ -498,7 +498,8 @@ The set of acceptable TYPEs (also called \"specializers\")
is defined
cl--generic-edebug-make-name nil]
lambda-doc ; documentation string
def-body))) ; part to be debugged
- (let ((qualifiers nil))
+ (let ((qualifiers nil)
+ (org-name name))
(while (cl-generic--method-qualifier-p args)
(push args qualifiers)
(setq args (pop body)))
@@ -511,6 +512,7 @@ The set of acceptable TYPEs (also called \"specializers\")
is defined
,(and (get name 'byte-obsolete-info)
(let* ((obsolete (get name 'byte-obsolete-info)))
(macroexp-warn-and-return
+ org-name
(macroexp--obsolete-warning name obsolete "generic function")
nil
(list 'obsolete name))))
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index 16cca78fdf..569854e6ec 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -2431,10 +2431,12 @@ by EXPANSION, and (setq NAME ...) will act like (setf
EXPANSION ...).
(append bindings venv))
macroexpand-all-environment))))
(if malformed-bindings
- (macroexp-warn-and-return
- (format-message "Malformed `cl-symbol-macrolet' binding(s):
%S"
- (nreverse malformed-bindings))
- expansion)
+ (let ((rev-malformed-bindings (nreverse malformed-bindings)))
+ (macroexp-warn-and-return
+ rev-malformed-bindings
+ (format-message "Malformed `cl-symbol-macrolet' binding(s):
%S"
+ rev-malformed-bindings)
+ expansion))
expansion)))
(unless advised
(advice-remove 'macroexpand #'cl--sm-macroexpand)))))
@@ -3118,6 +3120,7 @@ To see the documentation for a defined struct type, use
(when (cl-oddp (length desc))
(push
(macroexp-warn-and-return
+ (car (last desc))
(format "Missing value for option `%S' of slot `%s' in
struct %s!"
(car (last desc)) slot name)
'nil)
@@ -3127,6 +3130,7 @@ To see the documentation for a defined struct type, use
(let ((kw (car defaults)))
(push
(macroexp-warn-and-return
+ kw
(format " I'll take `%s' to be an option rather than a
default value."
kw)
'nil)
diff --git a/lisp/emacs-lisp/cl-preloaded.el b/lisp/emacs-lisp/cl-preloaded.el
index 07b0013b50..93713f506d 100644
--- a/lisp/emacs-lisp/cl-preloaded.el
+++ b/lisp/emacs-lisp/cl-preloaded.el
@@ -1,6 +1,6 @@
;;; cl-preloaded.el --- Preloaded part of the CL library -*- lexical-binding:
t; -*-
-;; Copyright (C) 2015-2021 Free Software Foundation, Inc
+;; Copyright (C) 2015-2022 Free Software Foundation, Inc
;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
;; Package: emacs
diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index cf2dbd62f1..a23169aa0f 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -1831,9 +1831,7 @@ and the annotation emission."
(byte-listp auto)
(byte-eq auto)
(byte-memq auto)
- (byte-not
- (comp-emit-set-call (comp-call 'eq (comp-slot-n (comp-sp))
- (make-comp-mvar :constant nil))))
+ (byte-not null)
(byte-car auto)
(byte-cdr auto)
(byte-cons auto)
@@ -1945,7 +1943,6 @@ and the annotation emission."
(byte-condition-case) ;; Obsolete
(byte-temp-output-buffer-setup-OBSOLETE)
(byte-temp-output-buffer-show-OBSOLETE)
- (byte-unbind-all) ;; Obsolete
(byte-set-marker auto)
(byte-match-beginning auto)
(byte-match-end auto)
@@ -3570,7 +3567,7 @@ Update all insn accordingly."
;; Symbols imported by C inlined functions. We do this here because
;; is better to add all objs to the relocation containers before we
;; compacting them.
- (mapc #'comp-add-const-to-relocs '(nil t consp listp))
+ (mapc #'comp-add-const-to-relocs '(nil t consp listp symbol-with-pos-p))
(let* ((d-default (comp-ctxt-d-default comp-ctxt))
(d-default-idx (comp-data-container-idx d-default))
@@ -4006,9 +4003,12 @@ the deferred compilation mechanism."
(signal 'native-compiler-error
(list "Not a function symbol or file" function-or-file)))
(catch 'no-native-compile
- (let* ((data function-or-file)
+ (let* ((print-symbols-bare t)
+ (max-specpdl-size (max max-specpdl-size 5000))
+ (data function-or-file)
(comp-native-compiling t)
(byte-native-qualities nil)
+ (symbols-with-pos-enabled t)
;; Have byte compiler signal an error when compilation fails.
(byte-compile-debug t)
(comp-ctxt (make-comp-ctxt :output output
@@ -4052,10 +4052,10 @@ the deferred compilation mechanism."
(signal (car err) (if (consp err-val)
(cons function-or-file err-val)
(list function-or-file err-val)))))))
- (if (stringp function-or-file)
- data
- ;; So we return the compiled function.
- (native-elisp-load data)))))
+ (if (stringp function-or-file)
+ data
+ ;; So we return the compiled function.
+ (native-elisp-load data)))))
(defun native-compile-async-skip-p (file load selector)
"Return non-nil if FILE's compilation should be skipped.
@@ -4195,9 +4195,9 @@ last directory in `native-comp-eln-load-path')."
if (or (null byte+native-compile)
(cl-notany (lambda (re) (string-match re file))
native-comp-bootstrap-deny-list))
- do (comp--native-compile file)
+ collect (comp--native-compile file)
else
- do (byte-compile-file file))))
+ collect (byte-compile-file file))))
;;;###autoload
(defun batch-byte+native-compile ()
@@ -4211,12 +4211,20 @@ variable 'NATIVE_DISABLED' is set, only byte compile."
(if (equal (getenv "NATIVE_DISABLED") "1")
(batch-byte-compile)
(cl-assert (length= command-line-args-left 1))
- (let ((byte+native-compile t)
- (byte-to-native-output-file nil))
- (batch-native-compile)
- (pcase byte-to-native-output-file
- (`(,tempfile . ,target-file)
- (rename-file tempfile target-file t))))))
+ (let* ((byte+native-compile t)
+ (byte-to-native-output-buffer-file nil)
+ (eln-file (car (batch-native-compile))))
+ (pcase byte-to-native-output-buffer-file
+ (`(,temp-buffer . ,target-file)
+ (unwind-protect
+ (progn
+ (byte-write-target-file temp-buffer target-file)
+ ;; Touch the .eln in order to have it older than the
+ ;; corresponding .elc.
+ (when (stringp eln-file)
+ (set-file-times eln-file)))
+ (kill-buffer temp-buffer))))
+ (setq command-line-args-left (cdr command-line-args-left)))))
;;;###autoload
(defun native-compile-async (files &optional recursively load selector)
diff --git a/lisp/emacs-lisp/copyright.el b/lisp/emacs-lisp/copyright.el
index 09c6ded295..e5087672ae 100644
--- a/lisp/emacs-lisp/copyright.el
+++ b/lisp/emacs-lisp/copyright.el
@@ -150,9 +150,11 @@ This function sets the match data that
`copyright-update-year' uses."
(when (copyright-re-search regexp (copyright-limit) t)
;; We may accidentally have landed in the middle of a
;; copyright line, so re-perform the search without the
- ;; search. (Otherwise we may be inserting the new year in the
+ ;; limit. (Otherwise we may be inserting the new year in the
;; middle of the list of years.)
- (goto-char (match-beginning 0))
+ (if copyright-at-end-flag
+ (goto-char (match-end 0))
+ (goto-char (match-beginning 0)))
(copyright-re-search regexp nil t)))))
(defun copyright-find-end ()
@@ -311,7 +313,7 @@ independently replaces consecutive years with a range."
(> prev-year first-year))
(goto-char range-end)
(delete-region range-start range-end)
- (insert (format "%c%d" sep prev-year))
+ (insert (format "-%d" prev-year))
(goto-char p))
(setq first-year year
range-start (point)))))
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index 2d95e91833..7bcb2f2936 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -230,6 +230,7 @@ INIT-VALUE LIGHTER KEYMAP.
(warnwrap (if (or (null body) (keywordp (car body))) #'identity
(lambda (exp)
(macroexp-warn-and-return
+ exp
"Use keywords rather than deprecated positional
arguments to `define-minor-mode'"
exp))))
keyw keymap-sym tmp)
@@ -696,8 +697,12 @@ Valid keywords and arguments are:
(defmacro easy-mmode-defmap (m bs doc &rest args)
"Define a constant M whose value is the result of `easy-mmode-define-keymap'.
The M, BS, and ARGS arguments are as per that function. DOC is
-the constant's documentation."
- (declare (indent 1))
+the constant's documentation.
+
+This macro is deprecated; use `defvar-keymap' instead."
+ ;; FIXME: Declare obsolete in favor of `defvar-keymap'. It is still
+ ;; used for `gud-menu-map' and `gud-minor-mode-map', so fix that first.
+ (declare (doc-string 3) (indent 1))
`(defconst ,m
(easy-mmode-define-keymap ,bs nil (if (boundp ',m) ,m) ,(cons 'list args))
,doc))
@@ -724,7 +729,7 @@ the constant's documentation."
(defmacro easy-mmode-defsyntax (st css doc &rest args)
"Define variable ST as a syntax-table.
CSS contains a list of syntax specifications of the form (CHAR . SYNTAX)."
- (declare (indent 1))
+ (declare (doc-string 3) (indent 1))
`(progn
(autoload 'easy-mmode-define-syntax "easy-mmode")
(defconst ,st (easy-mmode-define-syntax ,css ,(cons 'list args)) ,doc)))
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index fe97804ec4..1720393b3e 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -98,7 +98,11 @@ This applies to `eval-defun', `eval-region', `eval-buffer',
and
You can use the command `edebug-all-defs' to toggle the value of this
variable. You may wish to make it local to each buffer with
\(make-local-variable \\='edebug-all-defs) in your
-`emacs-lisp-mode-hook'."
+`emacs-lisp-mode-hook'.
+
+Note that this user option has no effect unless the edebug
+package has been loaded."
+ :require 'edebug
:type 'boolean)
;;;###autoload
diff --git a/lisp/emacs-lisp/eieio-core.el b/lisp/emacs-lisp/eieio-core.el
index 04dd750f88..6cdd3ccb6d 100644
--- a/lisp/emacs-lisp/eieio-core.el
+++ b/lisp/emacs-lisp/eieio-core.el
@@ -745,6 +745,7 @@ Argument FN is the function calling this verifier."
((and (or `',name (and name (pred keywordp)))
(guard (not (get name 'slot-name))))
(macroexp-warn-and-return
+ name
(format-message "Unknown slot `%S'" name)
exp nil 'compile-only))
(_ exp))))
@@ -783,11 +784,13 @@ Fills in CLASS's SLOT with its default value."
((and (or `',name (and name (pred keywordp)))
(guard (not (get name 'slot-name))))
(macroexp-warn-and-return
+ name
(format-message "Unknown slot `%S'" name)
exp nil 'compile-only))
((and (or `',name (and name (pred keywordp)))
(guard (not (memq name eieio--known-class-slot-names))))
(macroexp-warn-and-return
+ name
(format-message "Slot `%S' is not class-allocated" name)
exp nil 'compile-only))
(_ exp)))))
@@ -850,11 +853,13 @@ Fills in the default value in CLASS' in SLOT with VALUE."
((and (or `',name (and name (pred keywordp)))
(guard (not (get name 'slot-name))))
(macroexp-warn-and-return
+ name
(format-message "Unknown slot `%S'" name)
exp nil 'compile-only))
((and (or `',name (and name (pred keywordp)))
(guard (not (memq name eieio--known-class-slot-names))))
(macroexp-warn-and-return
+ name
(format-message "Slot `%S' is not class-allocated" name)
exp nil 'compile-only))
(_ exp)))))
diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el
index e6798f38ec..74f8463148 100644
--- a/lisp/emacs-lisp/eieio.el
+++ b/lisp/emacs-lisp/eieio.el
@@ -181,9 +181,11 @@ and reference them using the function `class-option'."
;; Is there an initarg, but allocation of class?
(when (and initarg (eq alloc :class))
- (push (format "Meaningless :initarg for class allocated slot '%S'"
- sname)
- warnings))
+ (push
+ (cons sname
+ (format "Meaningless :initarg for class allocated slot '%S'"
+ sname))
+ warnings))
(let ((init (plist-get soptions :initform)))
(unless (or (macroexp-const-p init)
@@ -194,8 +196,9 @@ and reference them using the function `class-option'."
;; heuristic says and if it disagrees with normal evaluation
;; then tweak the initform to make it fit and emit
;; a warning accordingly.
- (push (format "Ambiguous initform needs quoting: %S" init)
- warnings)))
+ (push
+ (cons init (format "Ambiguous initform needs quoting: %S" init))
+ warnings)))
;; Anyone can have an accessor function. This creates a function
;; of the specified name, and also performs a `defsetf' if applicable
@@ -242,7 +245,8 @@ This method is obsolete."
`(progn
,@(mapcar (lambda (w)
- (macroexp-warn-and-return w `(progn ',w) nil 'compile-only))
+ (macroexp-warn-and-return
+ (car w) (cdr w) `(progn ',(cdr w)) nil 'compile-only))
warnings)
;; This test must be created right away so we can have self-
;; referencing classes. ei, a class whose slot can contain only
@@ -292,6 +296,7 @@ This method is obsolete."
(if (not (stringp (car slots)))
whole
(macroexp-warn-and-return
+ (car slots)
(format "Obsolete name arg %S to constructor %S"
(car slots) (car whole))
;; Keep the name arg, for backward compatibility,
diff --git a/lisp/emacs-lisp/ert.el b/lisp/emacs-lisp/ert.el
index e31ebf5f7b..00da5c718c 100644
--- a/lisp/emacs-lisp/ert.el
+++ b/lisp/emacs-lisp/ert.el
@@ -129,7 +129,8 @@ mode.")
(body (cl-assert nil))
(most-recent-result nil)
(expected-result-type ':passed)
- (tags '()))
+ (tags '())
+ (file-name nil))
(defun ert-test-boundp (symbol)
"Return non-nil if SYMBOL names a test."
@@ -240,7 +241,8 @@ in batch mode, an error is signalled.
`(:expected-result-type ,expected-result))
,@(when tags-supplied-p
`(:tags ,tags))
- :body (lambda () ,@body)))
+ :body (lambda () ,@body)
+ :file-name ,(or (macroexp-file-name)
buffer-file-name)))
',name))))
(defvar ert--find-test-regexp
@@ -335,15 +337,20 @@ It should only be stopped when ran from inside
`ert--run-test-internal'."
(unless (eql ,value ',default-value)
(list :value ,value))
(unless (eql ,value ',default-value)
- (let ((-explainer-
- (and (symbolp ',fn-name)
- (get ',fn-name
'ert-explainer))))
- (when -explainer-
- (list :explanation
- (apply -explainer- ,args))))))
+ (when-let ((-explainer-
+ (ert--get-explainer ',fn-name)))
+ (list :explanation
+ (apply -explainer- ,args)))))
value)
,value))))))))
+(defun ert--get-explainer (fn-name)
+ (when (symbolp fn-name)
+ (cl-loop for fn in (cons fn-name (function-alias-p fn-name))
+ for explainer = (get fn 'ert-explainer)
+ when explainer
+ return explainer)))
+
(defun ert--expand-should (whole form inner-expander)
"Helper function for the `should' macro and its variants.
@@ -1365,6 +1372,22 @@ RESULT must be an `ert-test-result-with-condition'."
(defvar ert-quiet nil
"Non-nil makes ERT only print important information in batch mode.")
+(defun ert-test-location (test)
+ "Return a string description the source location of TEST."
+ (when-let ((loc
+ (ignore-errors
+ (find-function-search-for-symbol
+ (ert-test-name test) 'ert-deftest (ert-test-file-name
test)))))
+ (let* ((buffer (car loc))
+ (point (cdr loc))
+ (file (file-relative-name (buffer-file-name buffer)))
+ (line (with-current-buffer buffer
+ (line-number-at-pos point))))
+ (format "at %s:%s" file line))))
+
+(defvar ert-batch-backtrace-right-margin 70
+ "The maximum line length for printing backtraces in `ert-run-tests-batch'.")
+
;;;###autoload
(defun ert-run-tests-batch (&optional selector)
"Run the tests specified by SELECTOR, printing results to the terminal.
@@ -1418,7 +1441,8 @@ Returns the stats object."
(message "%9s %S%s"
(ert-string-for-test-result result nil)
(ert-test-name test)
- (if (getenv "EMACS_TEST_VERBOSE")
+ (if (cl-plusp
+ (length (getenv "EMACS_TEST_VERBOSE")))
(ert-reason-for-test-result result)
""))))
(message "%s" ""))
@@ -1430,7 +1454,8 @@ Returns the stats object."
(message "%9s %S%s"
(ert-string-for-test-result result nil)
(ert-test-name test)
- (if (getenv "EMACS_TEST_VERBOSE")
+ (if (cl-plusp
+ (length (getenv "EMACS_TEST_VERBOSE")))
(ert-reason-for-test-result result)
""))))
(message "%s" ""))
@@ -1490,14 +1515,17 @@ Returns the stats object."
(let* ((max (prin1-to-string (length (ert--stats-tests stats))))
(format-string (concat "%9s %"
(prin1-to-string (length max))
- "s/" max " %S (%f sec)")))
+ "s/" max " %S (%f sec)%s")))
(message format-string
(ert-string-for-test-result result
(ert-test-result-expected-p
test result))
(1+ (ert--stats-test-pos stats test))
(ert-test-name test)
- (ert-test-result-duration result))))))))
+ (ert-test-result-duration result)
+ (if (ert-test-result-expected-p test result)
+ ""
+ (concat " " (ert-test-location test))))))))))
nil))
;;;###autoload
diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el
index c4f48b8a79..6eac25c100 100644
--- a/lisp/emacs-lisp/find-func.el
+++ b/lisp/emacs-lisp/find-func.el
@@ -123,6 +123,15 @@ should insert the feature name."
:group 'xref
:version "25.1")
+(defcustom find-ert-deftest-regexp
+ "(ert-deftest +'%s"
+ "The regexp used to search for an ert-deftest definition.
+Note it must contain a `%s' at the place where `format'
+should insert the feature name."
+ :type 'regexp
+ :group 'xref
+ :version "29.1")
+
(defun find-function--defface (symbol)
(catch 'found
(while (re-search-forward (format find-face-regexp symbol) nil t)
@@ -136,7 +145,8 @@ should insert the feature name."
(defvar . find-variable-regexp)
(defface . find-function--defface)
(feature . find-feature-regexp)
- (defalias . find-alias-regexp))
+ (defalias . find-alias-regexp)
+ (ert-deftest . find-ert-deftest-regexp))
"Alist mapping definition types into regexp variables.
Each regexp variable's value should actually be a format string
to be used to substitute the desired symbol name into the regexp.
diff --git a/lisp/emacs-lisp/gv.el b/lisp/emacs-lisp/gv.el
index 1562012c07..e321072de4 100644
--- a/lisp/emacs-lisp/gv.el
+++ b/lisp/emacs-lisp/gv.el
@@ -582,7 +582,9 @@ This is like the `&' operator of the C language.
Note: this only works reliably with lexical binding mode, except for very
simple PLACEs such as (symbol-function \\='foo) which will also work in dynamic
binding mode."
- (let ((code
+ (let ((org-place place) ; It's too difficult to determine by inspection
whether
+ ; the functions modify place.
+ (code
(gv-letplace (getter setter) place
`(cons (lambda () ,getter)
(lambda (gv--val) ,(funcall setter 'gv--val))))))
@@ -594,6 +596,7 @@ binding mode."
(eq (car-safe code) 'cons))
code
(macroexp-warn-and-return
+ org-place
"Use of gv-ref probably requires lexical-binding"
code))))
diff --git a/lisp/emacs-lisp/inline.el b/lisp/emacs-lisp/inline.el
index 963e117ff3..de0112db63 100644
--- a/lisp/emacs-lisp/inline.el
+++ b/lisp/emacs-lisp/inline.el
@@ -71,7 +71,7 @@
(defmacro inline-quote (_exp)
"Similar to backquote, but quotes code and only accepts , and not ,@."
- (declare (debug backquote-form))
+ (declare (debug (backquote-form)))
(error "inline-quote can only be used within define-inline"))
(defmacro inline-const-p (_exp)
diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el
index b44917f7d5..256092599b 100644
--- a/lisp/emacs-lisp/macroexp.el
+++ b/lisp/emacs-lisp/macroexp.el
@@ -28,6 +28,17 @@
;;; Code:
+(defvar byte-compile-form-stack nil
+ "Dynamic list of successive enclosing forms.
+This is used by the warning message routines to determine a
+source code position. The most accessible element is the current
+most deeply nested form.
+
+Normally a form is manually pushed onto the list at the beginning
+of `byte-compile-form', etc., and manually popped off at its end.
+This is to preserve the data in it in the event of a
+condition-case handling a signaled error.")
+
;; Bound by the top-level `macroexpand-all', and modified to include any
;; macros defined by `defmacro'.
(defvar macroexpand-all-environment nil)
@@ -96,10 +107,11 @@ each clause."
(defun macroexp--compiler-macro (handler form)
(condition-case-unless-debug err
- (apply handler form (cdr form))
+ (let ((symbols-with-pos-enabled t))
+ (apply handler form (cdr form)))
(error
- (message "Compiler-macro error for %S: %S" (car form) err)
- form)))
+ (message "Compiler-macro error for %S: Handler: %S\n%S" (car form)
handler err)
+ form)))
(defun macroexp--funcall-if-compiled (_form)
"Pseudo function used internally by macroexp to delay warnings.
@@ -135,21 +147,23 @@ Other uses risk returning non-nil value that point to the
wrong file."
(defvar macroexp--warned (make-hash-table :test #'equal :weakness 'key))
-(defun macroexp--warn-wrap (msg form category)
+(defun macroexp--warn-wrap (arg msg form category)
(let ((when-compiled
(lambda ()
(when (if (consp category)
(apply #'byte-compile-warning-enabled-p category)
(byte-compile-warning-enabled-p category))
- (byte-compile-warn "%s" msg)))))
+ (byte-compile-warn-x arg "%s" msg)))))
`(progn
(macroexp--funcall-if-compiled ',when-compiled)
,form)))
(define-obsolete-function-alias 'macroexp--warn-and-return
#'macroexp-warn-and-return "28.1")
-(defun macroexp-warn-and-return (msg form &optional category compile-only)
+(defun macroexp-warn-and-return (arg msg form &optional category compile-only)
"Return code equivalent to FORM labeled with warning MSG.
+ARG is a symbol (or a form) giving the source code position of FORM
+for the message. It should normally be a symbol with position.
CATEGORY is the category of the warning, like the categories that
can appear in `byte-compile-warnings'.
COMPILE-ONLY non-nil means no warning should be emitted if the code
@@ -163,7 +177,7 @@ is executed without being compiled first."
;; macroexpand-all gets right back to macroexpanding `form'.
form
(puthash form form macroexp--warned)
- (macroexp--warn-wrap msg form category)))
+ (macroexp--warn-wrap arg msg form category)))
(t
(unless compile-only
(message "%sWarning: %s"
@@ -219,6 +233,7 @@ is executed without being compiled first."
(let* ((fun (car form))
(obsolete (get fun 'byte-obsolete-info)))
(macroexp-warn-and-return
+ fun
(macroexp--obsolete-warning
fun obsolete
(if (symbolp (symbol-function fun))
@@ -274,6 +289,7 @@ is executed without being compiled first."
(setq arglist (cdr arglist)))
(if values
(macroexp-warn-and-return
+ arglist
(format (if (eq values 'too-few)
"attempt to open-code `%s' with too few arguments"
"attempt to open-code `%s' with too many arguments")
@@ -303,118 +319,124 @@ Only valid during macro-expansion."
"Expand all macros in FORM.
This is an internal version of `macroexpand-all'.
Assumes the caller has bound `macroexpand-all-environment'."
- (if (eq (car-safe form) 'backquote-list*)
- ;; Special-case `backquote-list*', as it is normally a macro that
- ;; generates exceedingly deep expansions from relatively shallow input
- ;; forms. We just process it `in reverse' -- first we expand all the
- ;; arguments, _then_ we expand the top-level definition.
- (macroexpand (macroexp--all-forms form 1)
- macroexpand-all-environment)
- ;; Normal form; get its expansion, and then expand arguments.
- (setq form (macroexp-macroexpand form macroexpand-all-environment))
- ;; FIXME: It'd be nice to use `byte-optimize--pcase' here, but when
- ;; I tried it, it broke the bootstrap :-(
- (pcase form
- (`(cond . ,clauses)
- (macroexp--cons 'cond (macroexp--all-clauses clauses) form))
- (`(condition-case . ,(or `(,err ,body . ,handlers) pcase--dontcare))
- (macroexp--cons
- 'condition-case
- (macroexp--cons err
- (macroexp--cons (macroexp--expand-all body)
- (macroexp--all-clauses handlers 1)
- (cddr form))
- (cdr form))
- form))
- (`(,(or 'defvar 'defconst) ,(and name (pred symbolp)) . ,_)
- (push name macroexp--dynvars)
- (macroexp--all-forms form 2))
- (`(function ,(and f `(lambda . ,_)))
- (let ((macroexp--dynvars macroexp--dynvars))
- (macroexp--cons 'function
- (macroexp--cons (macroexp--all-forms f 2)
- nil
- (cdr form))
- form)))
- (`(,(or 'function 'quote) . ,_) form)
- (`(,(and fun (or 'let 'let*)) . ,(or `(,bindings . ,body)
- pcase--dontcare))
- (let ((macroexp--dynvars macroexp--dynvars))
- (macroexp--cons
- fun
- (macroexp--cons
- (macroexp--all-clauses bindings 1)
- (if (null body)
- (macroexp-unprogn
- (macroexp-warn-and-return
- (format "Empty %s body" fun)
- nil nil 'compile-only))
- (macroexp--all-forms body))
- (cdr form))
- form)))
- (`(,(and fun `(lambda . ,_)) . ,args)
- ;; Embedded lambda in function position.
- ;; If the byte-optimizer is loaded, try to unfold this,
- ;; i.e. rewrite it to (let (<args>) <body>). We'd do it in the
optimizer
- ;; anyway, but doing it here (i.e. earlier) can sometimes avoid the
- ;; creation of a closure, thus resulting in much better code.
- (let ((newform (macroexp--unfold-lambda form)))
- (if (eq newform form)
- ;; Unfolding failed for some reason, avoid infinite recursion.
- (macroexp--cons (macroexp--all-forms fun 2)
- (macroexp--all-forms args)
- form)
- (macroexp--expand-all newform))))
-
- (`(funcall . ,(or `(,exp . ,args) pcase--dontcare))
- (let ((eexp (macroexp--expand-all exp))
- (eargs (macroexp--all-forms args)))
- ;; Rewrite (funcall #'foo bar) to (foo bar), in case `foo'
- ;; has a compiler-macro, or to unfold it.
- (pcase eexp
- (`#',f (macroexp--expand-all `(,f . ,eargs)))
- (_ `(funcall ,eexp . ,eargs)))))
- (`(,func . ,_)
- (let ((handler (function-get func 'compiler-macro))
- (funargs (function-get func 'funarg-positions)))
- ;; Check functions quoted with ' rather than with #'
- (dolist (funarg funargs)
- (let ((arg (nth funarg form)))
- (when (and (eq 'quote (car-safe arg))
- (eq 'lambda (car-safe (cadr arg))))
- (setcar (nthcdr funarg form)
- (macroexp-warn-and-return
- (format "%S quoted with ' rather than with #'"
- (let ((f (cadr arg)))
- (if (symbolp f) f `(lambda ,(nth 1 f) ...))))
- arg)))))
- ;; Macro expand compiler macros. This cannot be delayed to
- ;; byte-optimize-form because the output of the compiler-macro can
- ;; use macros.
- (if (null handler)
- ;; No compiler macro. We just expand each argument (for
- ;; setq/setq-default this works alright because the variable names
- ;; are symbols).
- (macroexp--all-forms form 1)
- ;; If the handler is not loaded yet, try (auto)loading the
- ;; function itself, which may in turn load the handler.
- (unless (functionp handler)
- (with-demoted-errors "macroexp--expand-all: %S"
- (autoload-do-load (indirect-function func) func)))
- (let ((newform (macroexp--compiler-macro handler form)))
- (if (eq form newform)
- ;; The compiler macro did not find anything to do.
- (if (equal form (setq newform (macroexp--all-forms form 1)))
- form
- ;; Maybe after processing the args, some new opportunities
- ;; appeared, so let's try the compiler macro again.
- (setq form (macroexp--compiler-macro handler newform))
- (if (eq newform form)
- newform
- (macroexp--expand-all newform)))
- (macroexp--expand-all newform))))))
-
- (_ form))))
+ (push form byte-compile-form-stack)
+ (prog1
+ (if (eq (car-safe form) 'backquote-list*)
+ ;; Special-case `backquote-list*', as it is normally a macro that
+ ;; generates exceedingly deep expansions from relatively shallow
input
+ ;; forms. We just process it `in reverse' -- first we expand all the
+ ;; arguments, _then_ we expand the top-level definition.
+ (macroexpand (macroexp--all-forms form 1)
+ macroexpand-all-environment)
+ ;; Normal form; get its expansion, and then expand arguments.
+ (setq form (macroexp-macroexpand form macroexpand-all-environment))
+ ;; FIXME: It'd be nice to use `byte-optimize--pcase' here, but when
+ ;; I tried it, it broke the bootstrap :-(
+ (pcase form
+ (`(cond . ,clauses)
+ (macroexp--cons 'cond (macroexp--all-clauses clauses) form))
+ (`(condition-case . ,(or `(,err ,body . ,handlers) pcase--dontcare))
+ (macroexp--cons
+ 'condition-case
+ (macroexp--cons err
+ (macroexp--cons (macroexp--expand-all body)
+ (macroexp--all-clauses handlers 1)
+ (cddr form))
+ (cdr form))
+ form))
+ (`(,(or 'defvar 'defconst) ,(and name (pred symbolp)) . ,_)
+ (push name macroexp--dynvars)
+ (macroexp--all-forms form 2))
+ (`(function ,(and f `(lambda . ,_)))
+ (let ((macroexp--dynvars macroexp--dynvars))
+ (macroexp--cons 'function
+ (macroexp--cons (macroexp--all-forms f 2)
+ nil
+ (cdr form))
+ form)))
+ (`(,(or 'function 'quote) . ,_) form)
+ (`(,(and fun (or 'let 'let*)) . ,(or `(,bindings . ,body)
+ pcase--dontcare))
+ (let ((macroexp--dynvars macroexp--dynvars))
+ (macroexp--cons
+ fun
+ (macroexp--cons
+ (macroexp--all-clauses bindings 1)
+ (if (null body)
+ (macroexp-unprogn
+ (macroexp-warn-and-return
+ fun
+ (format "Empty %s body" fun)
+ nil nil 'compile-only))
+ (macroexp--all-forms body))
+ (cdr form))
+ form)))
+ (`(,(and fun `(lambda . ,_)) . ,args)
+ ;; Embedded lambda in function position.
+ ;; If the byte-optimizer is loaded, try to unfold this,
+ ;; i.e. rewrite it to (let (<args>) <body>). We'd do it in the
optimizer
+ ;; anyway, but doing it here (i.e. earlier) can sometimes avoid the
+ ;; creation of a closure, thus resulting in much better code.
+ (let ((newform (macroexp--unfold-lambda form)))
+ (if (eq newform form)
+ ;; Unfolding failed for some reason, avoid infinite recursion.
+ (macroexp--cons (macroexp--all-forms fun 2)
+ (macroexp--all-forms args)
+ form)
+ (macroexp--expand-all newform))))
+ (`(funcall ,exp . ,args)
+ (let ((eexp (macroexp--expand-all exp))
+ (eargs (macroexp--all-forms args)))
+ ;; Rewrite (funcall #'foo bar) to (foo bar), in case `foo'
+ ;; has a compiler-macro, or to unfold it.
+ (pcase eexp
+ ((and `#',f
+ (guard (not (or (special-form-p f) (macrop f))))) ;;
bug#46636
+ (macroexp--expand-all `(,f . ,eargs)))
+ (_ `(funcall ,eexp . ,eargs)))))
+ (`(funcall . ,_) form) ;bug#53227
+ (`(,func . ,_)
+ (let ((handler (function-get func 'compiler-macro))
+ (funargs (function-get func 'funarg-positions)))
+ ;; Check functions quoted with ' rather than with #'
+ (dolist (funarg funargs)
+ (let ((arg (nth funarg form)))
+ (when (and (eq 'quote (car-safe arg))
+ (eq 'lambda (car-safe (cadr arg))))
+ (setcar (nthcdr funarg form)
+ (macroexp-warn-and-return
+ (cadr arg)
+ (format "%S quoted with ' rather than with #'"
+ (let ((f (cadr arg)))
+ (if (symbolp f) f `(lambda ,(nth 1 f)
...))))
+ arg)))))
+ ;; Macro expand compiler macros. This cannot be delayed to
+ ;; byte-optimize-form because the output of the compiler-macro can
+ ;; use macros.
+ (if (null handler)
+ ;; No compiler macro. We just expand each argument (for
+ ;; setq/setq-default this works alright because the variable
names
+ ;; are symbols).
+ (macroexp--all-forms form 1)
+ ;; If the handler is not loaded yet, try (auto)loading the
+ ;; function itself, which may in turn load the handler.
+ (unless (functionp handler)
+ (with-demoted-errors "macroexp--expand-all: %S"
+ (autoload-do-load (indirect-function func) func)))
+ (let ((newform (macroexp--compiler-macro handler form)))
+ (if (eq form newform)
+ ;; The compiler macro did not find anything to do.
+ (if (equal form (setq newform (macroexp--all-forms form
1)))
+ form
+ ;; Maybe after processing the args, some new
opportunities
+ ;; appeared, so let's try the compiler macro again.
+ (setq form (macroexp--compiler-macro handler newform))
+ (if (eq newform form)
+ newform
+ (macroexp--expand-all newform)))
+ (macroexp--expand-all newform))))))
+ (_ form)))
+ (pop byte-compile-form-stack)))
;; Record which arguments expect functions, so we can warn when those
;; are accidentally quoted with ' rather than with #'
@@ -704,38 +726,40 @@ test of free variables in the following ways:
(defun internal-macroexpand-for-load (form full-p)
;; Called from the eager-macroexpansion in readevalloop.
- (cond
- ;; Don't repeat the same warning for every top-level element.
- ((eq 'skip (car macroexp--pending-eager-loads)) form)
- ;; If we detect a cycle, skip macro-expansion for now, and output a warning
- ;; with a trimmed backtrace.
- ((and load-file-name (member load-file-name macroexp--pending-eager-loads))
- (let* ((bt (delq nil
- (mapcar #'macroexp--trim-backtrace-frame
- (macroexp--backtrace))))
- (elem `(load ,(file-name-nondirectory load-file-name)))
- (tail (member elem (cdr (member elem bt)))))
- (if tail (setcdr tail (list '…)))
- (if (eq (car-safe (car bt)) 'macroexpand-all) (setq bt (cdr bt)))
- (if macroexp--debug-eager
- (debug 'eager-macroexp-cycle)
- (message "Warning: Eager macro-expansion skipped due to cycle:\n %s"
- (mapconcat #'prin1-to-string (nreverse bt) " => ")))
- (push 'skip macroexp--pending-eager-loads)
- form))
- (t
- (condition-case err
- (let ((macroexp--pending-eager-loads
- (cons load-file-name macroexp--pending-eager-loads)))
- (if full-p
- (macroexpand--all-toplevel form)
- (macroexpand form)))
- (error
- ;; Hopefully this shouldn't happen thanks to the cycle detection,
- ;; but in case it does happen, let's catch the error and give the
- ;; code a chance to macro-expand later.
- (message "Eager macro-expansion failure: %S" err)
- form)))))
+ (let ((symbols-with-pos-enabled t)
+ (print-symbols-bare t))
+ (cond
+ ;; Don't repeat the same warning for every top-level element.
+ ((eq 'skip (car macroexp--pending-eager-loads)) form)
+ ;; If we detect a cycle, skip macro-expansion for now, and output a
warning
+ ;; with a trimmed backtrace.
+ ((and load-file-name (member load-file-name
macroexp--pending-eager-loads))
+ (let* ((bt (delq nil
+ (mapcar #'macroexp--trim-backtrace-frame
+ (macroexp--backtrace))))
+ (elem `(load ,(file-name-nondirectory load-file-name)))
+ (tail (member elem (cdr (member elem bt)))))
+ (if tail (setcdr tail (list '…)))
+ (if (eq (car-safe (car bt)) 'macroexpand-all) (setq bt (cdr bt)))
+ (if macroexp--debug-eager
+ (debug 'eager-macroexp-cycle)
+ (message "Warning: Eager macro-expansion skipped due to cycle:\n %s"
+ (mapconcat #'prin1-to-string (nreverse bt) " => ")))
+ (push 'skip macroexp--pending-eager-loads)
+ form))
+ (t
+ (condition-case err
+ (let ((macroexp--pending-eager-loads
+ (cons load-file-name macroexp--pending-eager-loads)))
+ (if full-p
+ (macroexpand--all-toplevel form)
+ (macroexpand form)))
+ (error
+ ;; Hopefully this shouldn't happen thanks to the cycle detection,
+ ;; but in case it does happen, let's catch the error and give the
+ ;; code a chance to macro-expand later.
+ (message "Eager macro-expansion failure: %S" err)
+ form))))))
;; ¡¡¡ Big Ugly Hack !!!
;; src/bootstrap-emacs is mostly used to compile .el files, so it needs
diff --git a/lisp/emacs-lisp/multisession.el b/lisp/emacs-lisp/multisession.el
index e6a2424c51..d6f1ab98fa 100644
--- a/lisp/emacs-lisp/multisession.el
+++ b/lisp/emacs-lisp/multisession.el
@@ -218,10 +218,9 @@ DOC should be a doc string, and ARGS are keywords as
applicable to
(let ((print-length nil)
(print-circle t)
(print-level nil))
- (prin1-to-string value))))
- (condition-case nil
- (ignore (read-from-string pvalue))
- (error (error "Unable to store unreadable value: %s" pvalue)))
+ (readablep value))))
+ (when (and value (not pvalue))
+ (error "Unable to store unreadable value: %s" value))
(sqlite-execute
multisession--db
"insert into multisession(package, key, sequence, value) values(?, ?,
1, ?) on conflict(package, key) do update set sequence = sequence + 1, value =
?"
@@ -434,10 +433,16 @@ storage method to list."
multisession-edit-mode)
(unless id
(error "No value on the current line"))
- (let* ((object (make-multisession
- :package (car id)
- :key (cdr id)
- :storage multisession-storage))
+ (let* ((object (or
+ ;; If the multisession variable already exists, use
+ ;; it (so that we update it).
+ (and (intern-soft (cdr id))
+ (bound-and-true-p (intern (cdr id))))
+ ;; Create a new object.
+ (make-multisession
+ :package (car id)
+ :key (cdr id)
+ :storage multisession-storage)))
(value (multisession-value object)))
(setf (multisession-value object)
(car (read-from-string
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 42979d1675..aa3e48155c 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -397,7 +397,13 @@ a sane initial value."
:type '(repeat symbol))
(defcustom package-native-compile nil
- "Non-nil means to native compile packages on installation."
+ "Non-nil means to natively compile packages as part of their installation.
+This controls ahead-of-time compilation of packages when they are
+installed. If this option is nil, packages will be natively
+compiled when they are loaded for the first time.
+
+This option does not have any effect if Emacs was not built with
+native compilation support."
:type '(boolean)
:risky t
:version "28.1")
diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el
index 7a82b416e5..c3dbfe2947 100644
--- a/lisp/emacs-lisp/pcase.el
+++ b/lisp/emacs-lisp/pcase.el
@@ -433,6 +433,7 @@ how many time this CODEGEN is called."
(memq (car case) pcase--dontwarn-upats))
(setq main
(macroexp-warn-and-return
+ (car case)
(format "pcase pattern %S shadowed by previous pcase pattern"
(car case))
main))))
@@ -940,6 +941,7 @@ Otherwise, it defers to REST which is a list of branches of
the form
(let ((code (pcase--u1 matches code vars rest)))
(if (eq upat '_) code
(macroexp-warn-and-return
+ upat
"Pattern t is deprecated. Use `_' instead"
code))))
((eq upat 'pcase--dontcare) :pcase--dontcare)
diff --git a/lisp/emacs-lisp/pp.el b/lisp/emacs-lisp/pp.el
index d199716b2c..e782cdb1da 100644
--- a/lisp/emacs-lisp/pp.el
+++ b/lisp/emacs-lisp/pp.el
@@ -273,7 +273,10 @@ Use the `pp-max-width' variable to control the desired
line length."
(insert "(")
(pp--insert start (pop sexp))
(while sexp
- (pp--insert " " (pop sexp)))
+ (if (consp sexp)
+ (pp--insert " " (pop sexp))
+ (pp--insert " . " sexp)
+ (setq sexp nil)))
(insert ")")))
(defun pp--format-function (sexp)
diff --git a/lisp/gnus/gnus-range.el b/lisp/emacs-lisp/range.el
similarity index 51%
copy from lisp/gnus/gnus-range.el
copy to lisp/emacs-lisp/range.el
index da3ff47372..38c2866cd4 100644
--- a/lisp/gnus/gnus-range.el
+++ b/lisp/emacs-lisp/range.el
@@ -1,9 +1,8 @@
-;;; gnus-range.el --- range and sequence functions for Gnus -*-
lexical-binding: t; -*-
+;;; ranges.el --- range functions -*- lexical-binding: t; -*-
;; Copyright (C) 1996-2022 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
-;; Keywords: news
;; This file is part of GNU Emacs.
@@ -22,74 +21,37 @@
;;; Commentary:
-;;; Code:
+;; A "range" is a list that represents a list of integers. A range is
+;; a list containing cons cells of start/end pairs, as well as integers.
+;;
+;; ((2 . 5) 9 (11 . 13))
+;;
+;; represents the list (2 3 4 5 9 11 12 13).
-;;; List and range functions
+;;; Code:
-(defsubst gnus-range-normalize (range)
+(defun range-normalize (range)
"Normalize RANGE.
If RANGE is a single range, return (RANGE). Otherwise, return RANGE."
- (if (listp (cdr-safe range)) range (list range)))
-
-(defun gnus-last-element (list)
- "Return last element of LIST."
- (while (cdr list)
- (setq list (cdr list)))
- (car list))
-(make-obsolete 'gnus-last-element "use `car' of `last' instead." "27.1")
-
-(define-obsolete-function-alias 'gnus-copy-sequence 'copy-tree "27.1")
-
-;;; We could be using `seq-difference' here, but it's much slower
-;;; on these data sets. See bug#50877.
-(defun gnus-set-difference (list1 list2)
- "Return a list of elements of LIST1 that do not appear in LIST2."
- (let ((hash2 (make-hash-table :test 'eq))
- (result nil))
- (dolist (elt list2) (puthash elt t hash2))
- (dolist (elt list1)
- (unless (gethash elt hash2)
- (setq result (cons elt result))))
- (nreverse result)))
-
-(defun gnus-range-nconcat (&rest ranges)
- "Return a range comprising all the RANGES, which are pre-sorted.
-RANGES will be destructively altered."
- (setq ranges (delete nil ranges))
- (let* ((result (gnus-range-normalize (pop ranges)))
- (last (last result)))
- (dolist (range ranges)
- (setq range (gnus-range-normalize range))
- ;; Normalize the single-number case, so that we don't need to
- ;; special-case that so much.
- (when (numberp (car last))
- (setcar last (cons (car last) (car last))))
- (when (numberp (car range))
- (setcar range (cons (car range) (car range))))
- (if (= (1+ (cdar last)) (caar range))
- (progn
- (setcdr (car last) (cdar range))
- (setcdr last (cdr range)))
- (setcdr last range)
- ;; Denormalize back, since we couldn't join the ranges up.
- (when (= (caar range) (cdar range))
- (setcar range (caar range)))
- (when (= (caar last) (cdar last))
- (setcar last (caar last))))
- (setq last (last last)))
- (if (and (consp (car result))
- (= (length result) 1))
- (car result)
- result)))
-
-(defun gnus-range-difference (range1 range2)
+ (if (listp (cdr-safe range))
+ range
+ (list range)))
+
+(defun range-denormalize (range)
+ "If RANGE contains a single range, then return that.
+If not, return RANGE as is."
+ (if (and (consp (car range))
+ (length= range 1))
+ (car range)
+ range))
+
+(defun range-difference (range1 range2)
"Return the range of elements in RANGE1 that do not appear in RANGE2.
Both ranges must be in ascending order."
- (setq range1 (gnus-range-normalize range1))
- (setq range2 (gnus-range-normalize range2))
+ (setq range1 (range-normalize range1))
+ (setq range2 (range-normalize range2))
(let* ((new-range (cons nil (copy-sequence range1)))
- (r new-range)
- ) ;; (safe t)
+ (r new-range))
(while (cdr r)
(let* ((r1 (cadr r))
(r2 (car range2))
@@ -104,7 +66,8 @@ Both ranges must be in ascending order."
(setcdr r (cddr r)))
((and (= min1 max1)
(listp r1))
- ;; Inefficient representation: may result from overlap
condition (below)
+ ;; Inefficient representation: may result from overlap
+ ;; condition (below)
(setcar (cdr r) min1))
((not min2)
;; All done with range2
@@ -119,91 +82,13 @@ Both ranges must be in ascending order."
;; Complete overlap: range1 removed
(setcdr r (cddr r)))
(t
- (setcdr r (nconc (list (cons min1 (1- min2)) (cons (1+ max2)
max1)) (cddr r)))))))
+ (setcdr r (nconc (list (cons min1 (1- min2))
+ (cons (1+ max2) max1))
+ (cddr r)))))))
(cdr new-range)))
-
-
-;;;###autoload
-(defun gnus-sorted-difference (list1 list2)
- "Return a list of elements of LIST1 that do not appear in LIST2.
-Both lists have to be sorted over <.
-The tail of LIST1 is not copied."
- (let (out)
- (while (and list1 list2)
- (cond ((= (car list1) (car list2))
- (setq list1 (cdr list1)
- list2 (cdr list2)))
- ((< (car list1) (car list2))
- (setq out (cons (car list1) out))
- (setq list1 (cdr list1)))
- (t
- (setq list2 (cdr list2)))))
- (nconc (nreverse out) list1)))
-
-;;;###autoload
-(defun gnus-sorted-ndifference (list1 list2)
- "Return a list of elements of LIST1 that do not appear in LIST2.
-Both lists have to be sorted over <.
-LIST1 is modified."
- (let* ((top (cons nil list1))
- (prev top))
- (while (and list1 list2)
- (cond ((= (car list1) (car list2))
- (setcdr prev (cdr list1))
- (setq list1 (cdr list1)
- list2 (cdr list2)))
- ((< (car list1) (car list2))
- (setq prev list1
- list1 (cdr list1)))
- (t
- (setq list2 (cdr list2)))))
- (cdr top)))
-
-;;;###autoload
-(defun gnus-sorted-complement (list1 list2)
- "Return a list of elements that are in LIST1 or LIST2 but not both.
-Both lists have to be sorted over <."
- (let (out)
- (if (or (null list1) (null list2))
- (or list1 list2)
- (while (and list1 list2)
- (cond ((= (car list1) (car list2))
- (setq list1 (cdr list1)
- list2 (cdr list2)))
- ((< (car list1) (car list2))
- (setq out (cons (car list1) out))
- (setq list1 (cdr list1)))
- (t
- (setq out (cons (car list2) out))
- (setq list2 (cdr list2)))))
- (nconc (nreverse out) (or list1 list2)))))
-
-;;;###autoload
-(defun gnus-intersection (list1 list2)
- (declare (obsolete seq-intersection "28.1"))
- (nreverse (seq-intersection list1 list2 #'eq)))
-
-;;;###autoload
-(defun gnus-sorted-intersection (list1 list2)
- "Return intersection of LIST1 and LIST2.
-LIST1 and LIST2 have to be sorted over <."
- (let (out)
- (while (and list1 list2)
- (cond ((= (car list1) (car list2))
- (setq out (cons (car list1) out)
- list1 (cdr list1)
- list2 (cdr list2)))
- ((< (car list1) (car list2))
- (setq list1 (cdr list1)))
- (t
- (setq list2 (cdr list2)))))
- (nreverse out)))
-
-;;;###autoload
-(defun gnus-sorted-range-intersection (range1 range2)
- "Return intersection of RANGE1 and RANGE2.
-RANGE1 and RANGE2 have to be sorted over <."
+(defun range-intersection (range1 range2)
+ "Return intersection of RANGE1 and RANGE2."
(let* (out
(min1 (car range1))
(max1 (if (numberp min1)
@@ -239,120 +124,48 @@ RANGE1 and RANGE2 have to be sorted over <."
(setq min2 nil)))) ; incr range2
(unless min1
(setq min1 (car range1)
- max1 (if (numberp min1) min1 (prog1 (cdr min1) (setq min1 (car
min1))))
+ max1 (if (numberp min1) min1
+ (prog1 (cdr min1) (setq min1 (car min1))))
range1 (cdr range1)))
(unless min2
(setq min2 (car range2)
- max2 (if (numberp min2) min2 (prog1 (cdr min2) (setq min2 (car
min2))))
+ max2 (if (numberp min2) min2
+ (prog1 (cdr min2) (setq min2 (car min2))))
range2 (cdr range2))))
(cond ((cdr out)
- (nreverse out))
+ (nreverse out))
((numberp (car out))
out)
(t
(car out)))))
-;;;###autoload
-(defalias 'gnus-set-sorted-intersection 'gnus-sorted-nintersection)
-
-;;;###autoload
-(defun gnus-sorted-nintersection (list1 list2)
- "Return intersection of LIST1 and LIST2 by modifying cdr pointers of LIST1.
-LIST1 and LIST2 have to be sorted over <."
- (let* ((top (cons nil list1))
- (prev top))
- (while (and list1 list2)
- (cond ((= (car list1) (car list2))
- (setq prev list1
- list1 (cdr list1)
- list2 (cdr list2)))
- ((< (car list1) (car list2))
- (setcdr prev (cdr list1))
- (setq list1 (cdr list1)))
- (t
- (setq list2 (cdr list2)))))
- (setcdr prev nil)
- (cdr top)))
-
-;;;###autoload
-(defun gnus-sorted-union (list1 list2)
- "Return union of LIST1 and LIST2.
-LIST1 and LIST2 have to be sorted over <."
- (let (out)
- (while (and list1 list2)
- (cond ((= (car list1) (car list2))
- (setq out (cons (car list1) out)
- list1 (cdr list1)
- list2 (cdr list2)))
- ((< (car list1) (car list2))
- (setq out (cons (car list1) out)
- list1 (cdr list1)))
- (t
- (setq out (cons (car list2) out)
- list2 (cdr list2)))))
- (while list1
- (setq out (cons (car list1) out)
- list1 (cdr list1)))
- (while list2
- (setq out (cons (car list2) out)
- list2 (cdr list2)))
- (nreverse out)))
-
-;;;###autoload
-(defun gnus-sorted-nunion (list1 list2)
- "Return union of LIST1 and LIST2 by modifying cdr pointers of LIST1.
-LIST1 and LIST2 have to be sorted over <."
- (let* ((top (cons nil list1))
- (prev top))
- (while (and list1 list2)
- (cond ((= (car list1) (car list2))
- (setq prev list1
- list1 (cdr list1)
- list2 (cdr list2)))
- ((< (car list1) (car list2))
- (setq prev list1
- list1 (cdr list1)))
- (t
- (setcdr prev (list (car list2)))
- (setq prev (cdr prev)
- list2 (cdr list2))
- (setcdr prev list1))))
- (while list2
- (setcdr prev (list (car list2)))
- (setq prev (cdr prev)
- list2 (cdr list2)))
- (cdr top)))
-
-(defun gnus-compress-sequence (numbers &optional always-list)
- "Convert sorted list of numbers to a list of ranges or a single range.
-If ALWAYS-LIST is non-nil, this function will always release a list of
-ranges."
- (let* ((first (car numbers))
- (last (car numbers))
- result)
- (if (null numbers)
- nil
- (if (not (listp (cdr numbers)))
- numbers
- (while numbers
- (cond ((= last (car numbers)) nil) ;Omit duplicated number
- ((= (1+ last) (car numbers)) ;Still in sequence
- (setq last (car numbers)))
- (t ;End of one sequence
- (setq result
- (cons (if (= first last) first
- (cons first last))
- result))
- (setq first (car numbers))
- (setq last (car numbers))))
- (setq numbers (cdr numbers)))
- (if (and (not always-list) (null result))
- (if (= first last) (list first) (cons first last))
- (nreverse (cons (if (= first last) first (cons first last))
- result)))))))
-
-(defalias 'gnus-uncompress-sequence 'gnus-uncompress-range)
-(defun gnus-uncompress-range (ranges)
+(defun range-compress-list (numbers)
+ "Convert a sorted list of numbers to a range list."
+ (let ((first (car numbers))
+ (last (car numbers))
+ result)
+ (cond
+ ((null numbers)
+ nil)
+ ((not (listp (cdr numbers)))
+ numbers)
+ (t
+ (while numbers
+ (cond ((= last (car numbers)) nil) ;Omit duplicated number
+ ((= (1+ last) (car numbers)) ;Still in sequence
+ (setq last (car numbers)))
+ (t ;End of one sequence
+ (setq result
+ (cons (if (= first last) first
+ (cons first last))
+ result))
+ (setq first (car numbers))
+ (setq last (car numbers))))
+ (setq numbers (cdr numbers)))
+ (nreverse (cons (if (= first last) first (cons first last))
+ result))))))
+
+(defun range-uncompress (ranges)
"Expand a list of ranges into a list of numbers.
RANGES is either a single range on the form `(num . num)' or a list of
these ranges."
@@ -380,11 +193,11 @@ these ranges."
(setq ranges (cdr ranges)))
(nreverse result)))))
-(defun gnus-add-to-range (ranges list)
+(defun range-add-list (ranges list)
"Return a list of ranges that has all articles from both RANGES and LIST.
Note: LIST has to be sorted over `<'."
(if (not ranges)
- (gnus-compress-sequence list t)
+ (range-compress-list list)
(setq list (copy-sequence list))
(unless (listp (cdr ranges))
(setq ranges (list ranges)))
@@ -400,14 +213,14 @@ Note: LIST has to be sorted over `<'."
(setq temp list)
(setq list (cdr list))
(setcdr temp nil)
- (setq out (nconc (gnus-compress-sequence ilist t) out)))
+ (setq out (nconc (range-compress-list ilist) out)))
(setq highest (or (and (atom (car ranges)) (car ranges))
(cdar ranges)))
(while (and list (<= (car list) highest))
(setq list (cdr list)))
(setq ranges (cdr ranges)))
(when list
- (setq out (nconc (gnus-compress-sequence list t) out)))
+ (setq out (nconc (range-compress-list list) out)))
(setq out (sort out (lambda (r1 r2)
(< (or (and (atom r1) r1) (car r1))
(or (and (atom r2) r2) (car r2))))))
@@ -435,14 +248,14 @@ Note: LIST has to be sorted over `<'."
(setq ranges (cdr ranges)))
out)))
-(defun gnus-remove-from-range (range1 range2)
+(defun range-remove (range1 range2)
"Return a range that has all articles from RANGE2 removed from RANGE1.
The returned range is always a list. RANGE2 can also be a unsorted
list of articles. RANGE1 is modified by side effects, RANGE2 is not
modified."
(if (or (null range1) (null range2))
range1
- (let (out r1 r2 r1_min r1_max r2_min r2_max
+ (let (out r1 r2 r1-min r1-max r2-min r2-max
(range2 (copy-tree range2)))
(setq range1 (if (listp (cdr range1)) range1 (list range1))
range2 (sort (if (listp (cdr range2)) range2 (list range2))
@@ -451,67 +264,68 @@ modified."
(if (consp e2) (car e2) e2))))
r1 (car range1)
r2 (car range2)
- r1_min (if (consp r1) (car r1) r1)
- r1_max (if (consp r1) (cdr r1) r1)
- r2_min (if (consp r2) (car r2) r2)
- r2_max (if (consp r2) (cdr r2) r2))
+ r1-min (if (consp r1) (car r1) r1)
+ r1-max (if (consp r1) (cdr r1) r1)
+ r2-min (if (consp r2) (car r2) r2)
+ r2-max (if (consp r2) (cdr r2) r2))
(while (and range1 range2)
- (cond ((< r2_max r1_min) ; r2 < r1
+ (cond ((< r2-max r1-min) ; r2 < r1
(pop range2)
(setq r2 (car range2)
- r2_min (if (consp r2) (car r2) r2)
- r2_max (if (consp r2) (cdr r2) r2)))
- ((and (<= r2_min r1_min) (<= r1_max r2_max)) ; r2 overlap r1
+ r2-min (if (consp r2) (car r2) r2)
+ r2-max (if (consp r2) (cdr r2) r2)))
+ ((and (<= r2-min r1-min) (<= r1-max r2-max)) ; r2 overlap r1
(pop range1)
(setq r1 (car range1)
- r1_min (if (consp r1) (car r1) r1)
- r1_max (if (consp r1) (cdr r1) r1)))
- ((and (<= r2_min r1_min) (<= r2_max r1_max)) ; r2 overlap min r1
+ r1-min (if (consp r1) (car r1) r1)
+ r1-max (if (consp r1) (cdr r1) r1)))
+ ((and (<= r2-min r1-min) (<= r2-max r1-max)) ; r2 overlap min r1
(pop range2)
- (setq r1_min (1+ r2_max)
+ (setq r1-min (1+ r2-max)
r2 (car range2)
- r2_min (if (consp r2) (car r2) r2)
- r2_max (if (consp r2) (cdr r2) r2)))
- ((and (<= r1_min r2_min) (<= r2_max r1_max)) ; r2 contained in r1
- (if (eq r1_min (1- r2_min))
- (push r1_min out)
- (push (cons r1_min (1- r2_min)) out))
+ r2-min (if (consp r2) (car r2) r2)
+ r2-max (if (consp r2) (cdr r2) r2)))
+ ((and (<= r1-min r2-min) (<= r2-max r1-max)) ; r2 contained in r1
+ (if (eq r1-min (1- r2-min))
+ (push r1-min out)
+ (push (cons r1-min (1- r2-min)) out))
(pop range2)
- (if (< r2_max r1_max) ; finished with r1?
- (setq r1_min (1+ r2_max))
+ (if (< r2-max r1-max) ; finished with r1?
+ (setq r1-min (1+ r2-max))
(pop range1)
(setq r1 (car range1)
- r1_min (if (consp r1) (car r1) r1)
- r1_max (if (consp r1) (cdr r1) r1)))
+ r1-min (if (consp r1) (car r1) r1)
+ r1-max (if (consp r1) (cdr r1) r1)))
(setq r2 (car range2)
- r2_min (if (consp r2) (car r2) r2)
- r2_max (if (consp r2) (cdr r2) r2)))
- ((and (<= r2_min r1_max) (<= r1_max r2_max)) ; r2 overlap max r1
- (if (eq r1_min (1- r2_min))
- (push r1_min out)
- (push (cons r1_min (1- r2_min)) out))
+ r2-min (if (consp r2) (car r2) r2)
+ r2-max (if (consp r2) (cdr r2) r2)))
+ ((and (<= r2-min r1-max) (<= r1-max r2-max)) ; r2 overlap max r1
+ (if (eq r1-min (1- r2-min))
+ (push r1-min out)
+ (push (cons r1-min (1- r2-min)) out))
(pop range1)
(setq r1 (car range1)
- r1_min (if (consp r1) (car r1) r1)
- r1_max (if (consp r1) (cdr r1) r1)))
- ((< r1_max r2_min) ; r2 > r1
+ r1-min (if (consp r1) (car r1) r1)
+ r1-max (if (consp r1) (cdr r1) r1)))
+ ((< r1-max r2-min) ; r2 > r1
(pop range1)
- (if (eq r1_min r1_max)
- (push r1_min out)
- (push (cons r1_min r1_max) out))
+ (if (eq r1-min r1-max)
+ (push r1-min out)
+ (push (cons r1-min r1-max) out))
(setq r1 (car range1)
- r1_min (if (consp r1) (car r1) r1)
- r1_max (if (consp r1) (cdr r1) r1)))))
+ r1-min (if (consp r1) (car r1) r1)
+ r1-max (if (consp r1) (cdr r1) r1)))))
(when r1
- (if (eq r1_min r1_max)
- (push r1_min out)
- (push (cons r1_min r1_max) out))
+ (if (eq r1-min r1-max)
+ (push r1-min out)
+ (push (cons r1-min r1-max) out))
(pop range1))
(while range1
(push (pop range1) out))
(nreverse out))))
-(defun gnus-member-of-range (number ranges)
+(defun range-member-p (number ranges)
+ "Say whether NUMBER is in RANGES."
(if (not (listp (cdr ranges)))
(and (>= number (car ranges))
(<= number (cdr ranges)))
@@ -529,10 +343,10 @@ modified."
(setq ranges (cdr ranges)))
(not not-stop))))
-(defun gnus-list-range-intersection (list ranges)
+(defun range-list-intersection (list ranges)
"Return a list of numbers in LIST that are members of RANGES.
-LIST is a sorted list."
- (setq ranges (gnus-range-normalize ranges))
+oLIST is a sorted list."
+ (setq ranges (range-normalize ranges))
(let (number result)
(while (setq number (pop list))
(while (and ranges
@@ -542,18 +356,16 @@ LIST is a sorted list."
(setq ranges (cdr ranges)))
(when (and ranges
(if (numberp (car ranges))
- (= (car ranges) number)
+ (= (car ranges) number)
;; (caar ranges) <= number <= (cdar ranges)
(>= number (caar ranges))))
(push number result)))
(nreverse result)))
-(defalias 'gnus-inverse-list-range-intersection 'gnus-list-range-difference)
-
-(defun gnus-list-range-difference (list ranges)
+(defun range-list-difference (list ranges)
"Return a list of numbers in LIST that are not members of RANGES.
LIST is a sorted list."
- (setq ranges (gnus-range-normalize ranges))
+ (setq ranges (range-normalize ranges))
(let (number result)
(while (setq number (pop list))
(while (and ranges
@@ -569,7 +381,7 @@ LIST is a sorted list."
(push number result)))
(nreverse result)))
-(defun gnus-range-length (range)
+(defun range-length (range)
"Return the length RANGE would have if uncompressed."
(cond
((null range)
@@ -582,7 +394,7 @@ LIST is a sorted list."
(setq sum
(+ sum (if (consp x) (- (cdr x) (car x) -1) 1))))))))
-(defun gnus-range-add (range1 range2)
+(defun range-concat (range1 range2)
"Add RANGE2 to RANGE1 (nondestructively)."
(unless (listp (cdr range1))
(setq range1 (list range1)))
@@ -637,21 +449,9 @@ LIST is a sorted list."
(if item (push item range))
(reverse range)))
-;;;###autoload
-(defun gnus-add-to-sorted-list (list num)
- "Add NUM into sorted LIST by side effect."
- (let* ((top (cons nil list))
- (prev top))
- (while (and list (< (car list) num))
- (setq prev list
- list (cdr list)))
- (unless (eq (car list) num)
- (setcdr prev (cons num list)))
- (cdr top)))
-
-(defun gnus-range-map (func range)
+(defun range-map (func range)
"Apply FUNC to each value contained by RANGE."
- (setq range (gnus-range-normalize range))
+ (setq range (range-normalize range))
(while range
(let ((span (pop range)))
(if (numberp span)
@@ -662,6 +462,6 @@ LIST is a sorted list."
(funcall func first)
(setq first (1+ first))))))))
-(provide 'gnus-range)
+(provide 'range)
-;;; gnus-range.el ends here
+;;; range.el ends here
diff --git a/lisp/emacs-lisp/shortdoc.el b/lisp/emacs-lisp/shortdoc.el
index 870d34527b..658edd6752 100644
--- a/lisp/emacs-lisp/shortdoc.el
+++ b/lisp/emacs-lisp/shortdoc.el
@@ -1299,6 +1299,9 @@ If FUNCTION is non-nil, place point on the entry for
FUNCTION (if any)."
(text-property-search-forward 'shortdoc-function function t)
(beginning-of-line)))
+;;;###autoload
+(defalias 'shortdoc #'shortdoc-display-group)
+
(defun shortdoc--display-function (data)
(let ((function (pop data))
(start-section (point))
diff --git a/lisp/emacs-lisp/subr-x.el b/lisp/emacs-lisp/subr-x.el
index 43e0fc4c9d..1f69850958 100644
--- a/lisp/emacs-lisp/subr-x.el
+++ b/lisp/emacs-lisp/subr-x.el
@@ -511,6 +511,48 @@ this defaults to the current buffer."
(put-text-property sub-start sub-end 'display disp)))
(setq sub-start sub-end))))
+;;;###autoload
+(defun read-process-name (prompt)
+ "Query the user for a process and return the process object."
+ ;; Currently supports only the PROCESS argument.
+ ;; Must either return a list containing a process, or signal an error.
+ ;; (Returning `nil' would mean the current buffer's process.)
+ (unless (fboundp 'process-list)
+ (error "Asynchronous subprocesses are not supported on this system"))
+ ;; Local function to return cons of a complete-able name, and the
+ ;; associated process object, for use with `completing-read'.
+ (cl-flet ((procitem
+ (p) (when (process-live-p p)
+ (let ((pid (process-id p))
+ (procname (process-name p))
+ (procbuf (process-buffer p)))
+ (and (eq (process-type p) 'real)
+ (cons (if procbuf
+ (format "%s (%s) in buffer %s"
+ procname pid
+ (buffer-name procbuf))
+ (format "%s (%s)" procname pid))
+ p))))))
+ ;; Perform `completing-read' for a process.
+ (let* ((currproc (get-buffer-process (current-buffer)))
+ (proclist (or (process-list)
+ (error "No processes found")))
+ (collection (delq nil (mapcar #'procitem proclist)))
+ (selection (completing-read
+ (format-prompt prompt
+ (and currproc
+ (eq (process-type currproc) 'real)
+ (procitem currproc)))
+ collection nil :require-match nil nil
+ (car (seq-find (lambda (proc)
+ (eq currproc (cdr proc)))
+ collection))))
+ (process (and selection
+ (cdr (assoc selection collection)))))
+ (unless process
+ (error "No process selected"))
+ process)))
+
(provide 'subr-x)
;;; subr-x.el ends here
diff --git a/lisp/emacs-lisp/tabulated-list.el
b/lisp/emacs-lisp/tabulated-list.el
index 513a0c1a1f..3405192bd4 100644
--- a/lisp/emacs-lisp/tabulated-list.el
+++ b/lisp/emacs-lisp/tabulated-list.el
@@ -596,8 +596,7 @@ Return the column number after insertion."
(when not-last-col
(when (> pad-right 0) (insert (make-string pad-right ?\s)))
(insert (propertize
- ;; We need at least one space to align correctly.
- (make-string (- width (min 1 width label-width)) ?\s)
+ (make-string (- width (min width label-width)) ?\s)
'display `(space :align-to ,next-x))))
(put-text-property opoint (point) 'tabulated-list-column-name name)
next-x)))
@@ -732,6 +731,7 @@ Interactively, N is the prefix numeric argument, and
defaults to
1."
(interactive "p")
(let ((start (current-column))
+ (entry (tabulated-list-get-entry))
(nb-cols (length tabulated-list-format))
(col-nb 0)
(total-width 0)
@@ -739,14 +739,25 @@ Interactively, N is the prefix numeric argument, and
defaults to
col-width)
(while (and (not found)
(< col-nb nb-cols))
- (if (> start
- (setq total-width
- (+ total-width
- (setq col-width
- (cadr (aref tabulated-list-format
- col-nb))))))
+ (if (>= start
+ (setq total-width
+ (+ total-width
+ (max (setq col-width
+ (cadr (aref tabulated-list-format
+ col-nb)))
+ (let ((desc (aref entry col-nb)))
+ (string-width (if (stringp desc)
+ desc
+ (car desc)))))
+ (or (plist-get (nthcdr 3 (aref tabulated-list-format
+ col-nb))
+ :pad-right)
+ 1))))
(setq col-nb (1+ col-nb))
(setq found t)
+ ;; `tabulated-list-format' may be a constant (sharing list
+ ;; structures), so copy it before mutating.
+ (setq tabulated-list-format (copy-tree tabulated-list-format t))
(setf (cadr (aref tabulated-list-format col-nb))
(max 1 (+ col-width n)))
(tabulated-list-print t)
diff --git a/lisp/erc/erc-autoaway.el b/lisp/erc/erc-autoaway.el
index 979f93f693..8d970bd6b9 100644
--- a/lisp/erc/erc-autoaway.el
+++ b/lisp/erc/erc-autoaway.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2002-2004, 2006-2022 Free Software Foundation, Inc.
;; Author: Jorgen Schaefer <forcer@forcix.cx>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; URL: https://www.emacswiki.org/emacs/ErcAutoAway
;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
index d54e92011b..398fe6cc9e 100644
--- a/lisp/erc/erc-backend.el
+++ b/lisp/erc/erc-backend.el
@@ -4,7 +4,7 @@
;; Filename: erc-backend.el
;; Author: Lawrence Mitchell <wence@gmx.li>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Created: 2004-05-7
;; Keywords: comm, IRC, chat, client, internet
diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el
index 680de6d5aa..0e7d0d584f 100644
--- a/lisp/erc/erc-button.el
+++ b/lisp/erc/erc-button.el
@@ -3,7 +3,7 @@
;; Copyright (C) 1996-2004, 2006-2022 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@delysid.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm, irc, button, url, regexp
;; URL: https://www.emacswiki.org/emacs/ErcButton
diff --git a/lisp/erc/erc-capab.el b/lisp/erc/erc-capab.el
index 7b7773d5e1..8d0f40af99 100644
--- a/lisp/erc/erc-capab.el
+++ b/lisp/erc/erc-capab.el
@@ -2,9 +2,9 @@
;; Copyright (C) 2006-2022 Free Software Foundation, Inc.
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
-; This file is part of GNU Emacs.
+;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
diff --git a/lisp/erc/erc-compat.el b/lisp/erc/erc-compat.el
index 00addde275..16cfb15a5a 100644
--- a/lisp/erc/erc-compat.el
+++ b/lisp/erc/erc-compat.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2002-2003, 2005-2022 Free Software Foundation, Inc.
;; Author: Alex Schroeder <alex@gnu.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; URL: https://www.emacswiki.org/emacs/ERC
;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-dcc.el b/lisp/erc/erc-dcc.el
index 9654cab6e5..cc4143bfa2 100644
--- a/lisp/erc/erc-dcc.el
+++ b/lisp/erc/erc-dcc.el
@@ -5,7 +5,7 @@
;; Author: Ben A. Mesander <ben@gnu.ai.mit.edu>
;; Noah Friedman <friedman@prep.ai.mit.edu>
;; Per Persson <pp@sno.pp.se>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm
;; Created: 1994-01-23
diff --git a/lisp/erc/erc-desktop-notifications.el
b/lisp/erc/erc-desktop-notifications.el
index 8ece765ef0..1897f53dc1 100644
--- a/lisp/erc/erc-desktop-notifications.el
+++ b/lisp/erc/erc-desktop-notifications.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2012-2022 Free Software Foundation, Inc.
;; Author: Julien Danjou <julien@danjou.info>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm
;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-ezbounce.el b/lisp/erc/erc-ezbounce.el
index 8f46a1c8dd..958783f239 100644
--- a/lisp/erc/erc-ezbounce.el
+++ b/lisp/erc/erc-ezbounce.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2002, 2004, 2006-2022 Free Software Foundation, Inc.
;; Author: Andreas Fuchs <asf@void.at>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm
;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-fill.el b/lisp/erc/erc-fill.el
index 492830c3e1..140e7fdfc6 100644
--- a/lisp/erc/erc-fill.el
+++ b/lisp/erc/erc-fill.el
@@ -4,7 +4,7 @@
;; Author: Andreas Fuchs <asf@void.at>
;; Mario Lang <mlang@delysid.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; URL: https://www.emacswiki.org/emacs/ErcFilling
;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-goodies.el b/lisp/erc/erc-goodies.el
index 9b9f19a0db..8fef23945d 100644
--- a/lisp/erc/erc-goodies.el
+++ b/lisp/erc/erc-goodies.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2001-2022 Free Software Foundation, Inc.
;; Author: Jorgen Schaefer <forcer@forcix.cx>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Most code is taken verbatim from erc.el, see there for the original
;; authors.
diff --git a/lisp/erc/erc-ibuffer.el b/lisp/erc/erc-ibuffer.el
index f1184ff5eb..417c0b898a 100644
--- a/lisp/erc/erc-ibuffer.el
+++ b/lisp/erc/erc-ibuffer.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2002, 2004, 2006-2022 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@delysid.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm
;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-identd.el b/lisp/erc/erc-identd.el
index eab219f4c1..5c0a2c1a48 100644
--- a/lisp/erc/erc-identd.el
+++ b/lisp/erc/erc-identd.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2003, 2006-2022 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm
;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-imenu.el b/lisp/erc/erc-imenu.el
index ea4f44b91c..64a8f82b2a 100644
--- a/lisp/erc/erc-imenu.el
+++ b/lisp/erc/erc-imenu.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2001-2022 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@delysid.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm
;; URL: https://www.emacswiki.org/emacs/ErcImenu
diff --git a/lisp/erc/erc-join.el b/lisp/erc/erc-join.el
index 175e83f3c9..b9788c192b 100644
--- a/lisp/erc/erc-join.el
+++ b/lisp/erc/erc-join.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2002-2004, 2006-2022 Free Software Foundation, Inc.
;; Author: Alex Schroeder <alex@gnu.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm, irc
;; URL: https://www.emacswiki.org/emacs/ErcAutoJoin
diff --git a/lisp/erc/erc-lang.el b/lisp/erc/erc-lang.el
index 354203aa09..b65f4dbf6a 100644
--- a/lisp/erc/erc-lang.el
+++ b/lisp/erc/erc-lang.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2002, 2004, 2006-2022 Free Software Foundation, Inc.
;; Author: Alex Schroeder <alex@gnu.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Old-Version: 1.0.0
;; URL: https://www.emacswiki.org/emacs/ErcLang
;; Keywords: comm
diff --git a/lisp/erc/erc-list.el b/lisp/erc/erc-list.el
index c7cd0ceba8..5266b680c3 100644
--- a/lisp/erc/erc-list.el
+++ b/lisp/erc/erc-list.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2008-2022 Free Software Foundation, Inc.
;; Author: Tom Tromey <tromey@redhat.com>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Old-Version: 0.1
;; URL: https://www.emacswiki.org/emacs/ErcList
;; Keywords: comm
diff --git a/lisp/erc/erc-log.el b/lisp/erc/erc-log.el
index 056701d620..57093d3fc6 100644
--- a/lisp/erc/erc-log.el
+++ b/lisp/erc/erc-log.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2003-2022 Free Software Foundation, Inc.
;; Author: Lawrence Mitchell <wence@gmx.li>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; URL: https://www.emacswiki.org/emacs/ErcLogging
;; Keywords: comm, IRC, chat, client, Internet, logging
diff --git a/lisp/erc/erc-match.el b/lisp/erc/erc-match.el
index aa78590539..7c9174ff66 100644
--- a/lisp/erc/erc-match.el
+++ b/lisp/erc/erc-match.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2002-2022 Free Software Foundation, Inc.
;; Author: Andreas Fuchs <asf@void.at>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm
;; URL: https://www.emacswiki.org/emacs/ErcMatch
diff --git a/lisp/erc/erc-menu.el b/lisp/erc/erc-menu.el
index fd14d8b0ad..455a7c3cd2 100644
--- a/lisp/erc/erc-menu.el
+++ b/lisp/erc/erc-menu.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2001-2002, 2004-2022 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@delysid.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm, menu
;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-netsplit.el b/lisp/erc/erc-netsplit.el
index 30bb18344d..17ed881b12 100644
--- a/lisp/erc/erc-netsplit.el
+++ b/lisp/erc/erc-netsplit.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2002-2004, 2006-2022 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@delysid.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm
;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-networks.el b/lisp/erc/erc-networks.el
index 9377e701c3..553697ae84 100644
--- a/lisp/erc/erc-networks.el
+++ b/lisp/erc/erc-networks.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2002, 2004-2022 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@lexx.delysid.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm
;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-notify.el b/lisp/erc/erc-notify.el
index a3fe04d392..911a574b17 100644
--- a/lisp/erc/erc-notify.el
+++ b/lisp/erc/erc-notify.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2002-2004, 2006-2022 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@lexx.delysid.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; URL: https://www.emacswiki.org/emacs/ErcNotify
;; Keywords: comm
diff --git a/lisp/erc/erc-page.el b/lisp/erc/erc-page.el
index e53178ce63..087e5a67d0 100644
--- a/lisp/erc/erc-page.el
+++ b/lisp/erc/erc-page.el
@@ -2,7 +2,7 @@
;; Copyright (C) 2002, 2004, 2006-2022 Free Software Foundation, Inc.
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-pcomplete.el b/lisp/erc/erc-pcomplete.el
index 384be500ad..af8528dbc3 100644
--- a/lisp/erc/erc-pcomplete.el
+++ b/lisp/erc/erc-pcomplete.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2002-2004, 2006-2022 Free Software Foundation, Inc.
;; Author: Sacha Chua <sacha@free.net.ph>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm
;; URL: https://www.emacswiki.org/emacs/ErcCompletion
diff --git a/lisp/erc/erc-replace.el b/lisp/erc/erc-replace.el
index ec4bf3ae53..e46862d6a6 100644
--- a/lisp/erc/erc-replace.el
+++ b/lisp/erc/erc-replace.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2001-2022 Free Software Foundation, Inc.
;; Author: Andreas Fuchs <asf@void.at>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; URL: https://www.emacswiki.org/emacs/ErcReplace
;; Keywords: comm, IRC, client, Internet
diff --git a/lisp/erc/erc-ring.el b/lisp/erc/erc-ring.el
index 0f6851a98a..9dd1fab640 100644
--- a/lisp/erc/erc-ring.el
+++ b/lisp/erc/erc-ring.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2001-2004, 2006-2022 Free Software Foundation, Inc.
;; Author: Alex Schroeder <alex@gnu.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm
;; URL: https://www.emacswiki.org/emacs/ErcHistory
diff --git a/lisp/erc/erc-services.el b/lisp/erc/erc-services.el
index dcd786411f..cc5d5701e4 100644
--- a/lisp/erc/erc-services.el
+++ b/lisp/erc/erc-services.el
@@ -2,7 +2,7 @@
;; Copyright (C) 2002-2004, 2006-2022 Free Software Foundation, Inc.
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; URL: https://www.emacswiki.org/emacs/ErcNickserv
;; This file is part of GNU Emacs.
@@ -444,15 +444,12 @@ it returns nil."
(cl-second (assoc network
erc-nickserv-passwords)))))
(when erc-use-auth-source-for-nickserv-password
- (let ((secret (cl-first (auth-source-search
- :max 1 :require '(:secret)
- :host server
- ;; Ensure a string for :port
- :port (format "%s" port)
- :user nick))))
- (when secret
- (let ((passwd (plist-get secret :secret)))
- (if (functionp passwd) (funcall passwd) passwd)))))
+ (auth-source-pick-first-password
+ :require '(:secret)
+ :host server
+ ;; Ensure a string for :port
+ :port (format "%s" port)
+ :user nick))
(when erc-prompt-for-nickserv-password
(read-passwd
(format "NickServ password for %s on %s (RET to cancel): "
diff --git a/lisp/erc/erc-sound.el b/lisp/erc/erc-sound.el
index 86978f9d79..5cae64572f 100644
--- a/lisp/erc/erc-sound.el
+++ b/lisp/erc/erc-sound.el
@@ -2,7 +2,7 @@
;; Copyright (C) 2002-2003, 2006-2022 Free Software Foundation, Inc.
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; URL: https://www.emacswiki.org/emacs/ErcSound
;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-speedbar.el b/lisp/erc/erc-speedbar.el
index ead0d374b1..5b06c21612 100644
--- a/lisp/erc/erc-speedbar.el
+++ b/lisp/erc/erc-speedbar.el
@@ -4,7 +4,7 @@
;; Author: Mario Lang <mlang@delysid.org>
;; Contributor: Eric M. Ludlam <zappo@gnu.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; URL: https://www.emacswiki.org/emacs/ErcSpeedbar
;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-spelling.el b/lisp/erc/erc-spelling.el
index d9cfc9bc98..91e6777b7c 100644
--- a/lisp/erc/erc-spelling.el
+++ b/lisp/erc/erc-spelling.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2005-2022 Free Software Foundation, Inc.
;; Author: Jorgen Schaefer <forcer@forcix.cx>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm, irc
;; URL: https://www.emacswiki.org/emacs/ErcSpelling
diff --git a/lisp/erc/erc-stamp.el b/lisp/erc/erc-stamp.el
index d74a53bc71..cdab3241c1 100644
--- a/lisp/erc/erc-stamp.el
+++ b/lisp/erc/erc-stamp.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2002-2004, 2006-2022 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@delysid.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm, timestamp
;; URL: https://www.emacswiki.org/emacs/ErcStamp
diff --git a/lisp/erc/erc-status-sidebar.el b/lisp/erc/erc-status-sidebar.el
index 39430ee659..8997be00ae 100644
--- a/lisp/erc/erc-status-sidebar.el
+++ b/lisp/erc/erc-status-sidebar.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2017, 2020-2022 Free Software Foundation, Inc.
;; Author: Andrew Barbarello
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; URL: https://github.com/drewbarbs/erc-status-sidebar
;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el
index 2196c5411e..9118d7b994 100644
--- a/lisp/erc/erc-track.el
+++ b/lisp/erc/erc-track.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2002-2022 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@delysid.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm
;; URL: https://www.emacswiki.org/emacs/ErcChannelTracking
diff --git a/lisp/erc/erc-truncate.el b/lisp/erc/erc-truncate.el
index 8a8842bc48..d998718a8f 100644
--- a/lisp/erc/erc-truncate.el
+++ b/lisp/erc/erc-truncate.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2003-2004, 2006-2022 Free Software Foundation, Inc.
;; Author: Andreas Fuchs <asf@void.at>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; URL: https://www.emacswiki.org/emacs/ErcTruncation
;; Keywords: IRC, chat, client, Internet, logging
diff --git a/lisp/erc/erc-xdcc.el b/lisp/erc/erc-xdcc.el
index ee2a8c936f..ca8ff6c080 100644
--- a/lisp/erc/erc-xdcc.el
+++ b/lisp/erc/erc-xdcc.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2003-2004, 2006-2022 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@delysid.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Keywords: comm
;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index 24f4762571..9ee8d38b02 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -3,7 +3,7 @@
;; Copyright (C) 1997-2022 Free Software Foundation, Inc.
;; Author: Alexander L. Belikoff (alexander@belikoff.net)
-;; Maintainer: Amin Bandali <bandali@gnu.org>
+;; Maintainer: Amin Bandali <bandali@gnu.org>, F. Jason Park <jp@neverwas.me>
;; Contributors: Sergey Berezin (sergey.berezin@cs.cmu.edu),
;; Mario Lang (mlang@delysid.org),
;; Alex Schroeder (alex@gnu.org)
@@ -2062,19 +2062,12 @@ Returns the buffer for the given server or channel."
;; password stuff
(setq erc-session-password
(or passwd
- (let ((secret
- (plist-get
- (nth 0
- (auth-source-search :host server
- :max 1
- :user nick
- ;; secrets.el wouldn’t accept a
number
- :port (if (numberp port)
(number-to-string port) port)
- :require '(:secret)))
- :secret)))
- (if (functionp secret)
- (funcall secret)
- secret))))
+ (auth-source-pick-first-password
+ :host server
+ :user nick
+ ;; secrets.el wouldn’t accept a number
+ :port (if (numberp port) (number-to-string port) port)
+ :require '(:secret))))
;; client certificate (only useful if connecting over TLS)
(setq erc-session-client-certificate client-certificate)
;; debug output buffer
@@ -3187,16 +3180,12 @@ For a list of user commands (/join /part, ...):
(put 'erc-cmd-HELP 'process-not-needed t)
(defun erc-server-join-channel (server channel &optional secret)
- (let* ((secret (or secret
- (plist-get (nth 0 (auth-source-search
- :max 1
- :host server
- :port "irc"
- :user channel))
- :secret)))
- (password (if (functionp secret)
- (funcall secret)
- secret)))
+ (let ((password
+ (or secret
+ (auth-source-pick-first-password
+ :host server
+ :port "irc"
+ :user channel))))
(erc-log (format "cmd: JOIN: %s" channel))
(erc-server-send (concat "JOIN " channel
(if password
diff --git a/lisp/eshell/em-basic.el b/lisp/eshell/em-basic.el
index 27b343ad39..ba868cee59 100644
--- a/lisp/eshell/em-basic.el
+++ b/lisp/eshell/em-basic.el
@@ -82,7 +82,11 @@ equivalent of `echo' can always be achieved by using
`identity'."
It returns a formatted value that should be passed to `eshell-print'
or `eshell-printn' for display."
(if eshell-plain-echo-behavior
- (concat (apply 'eshell-flatten-and-stringify args) "\n")
+ (progn
+ ;; If the output does not end in a newline, do not emit one.
+ (setq eshell-ensure-newline-p nil)
+ (concat (apply #'eshell-flatten-and-stringify args)
+ (when output-newline "\n")))
(let ((value
(cond
((= (length args) 0) "")
@@ -109,18 +113,33 @@ or `eshell-printn' for display."
"Implementation of `echo'. See `eshell-plain-echo-behavior'."
(eshell-eval-using-options
"echo" args
- '((?n nil nil output-newline "terminate with a newline")
- (?h "help" nil nil "output this help screen")
+ '((?n nil (nil) output-newline
+ "do not output the trailing newline")
+ (?N nil (t) output-newline
+ "terminate with a newline")
+ (?E nil nil _disable-escapes
+ "don't interpret backslash escapes (default)")
+ (?h "help" nil nil
+ "output this help screen")
:preserve-args
- :usage "[-n] [object]")
- (eshell-echo args output-newline)))
+ :usage "[OPTION]... [OBJECT]...")
+ (if eshell-plain-echo-behavior
+ (eshell-echo args (if output-newline (car output-newline) t))
+ ;; In Emacs 28.1 and earlier, "-n" was used to add a newline to
+ ;; non-plain echo in Eshell. This caused confusion due to "-n"
+ ;; generally having the opposite meaning for echo. Retain this
+ ;; compatibility for the time being. For more info, see
+ ;; bug#27361.
+ (when (equal output-newline '(nil))
+ (display-warning
+ :warning "To terminate with a newline, you should use -N instead."))
+ (eshell-echo args output-newline))))
(defun eshell/printnl (&rest args)
- "Print out each of the arguments, separated by newlines."
+ "Print out each of the arguments as strings, separated by newlines."
(let ((elems (flatten-tree args)))
- (while elems
- (eshell-printn (eshell-echo (list (car elems))))
- (setq elems (cdr elems)))))
+ (dolist (elem elems)
+ (eshell-printn (eshell-stringify elem)))))
(defun eshell/listify (&rest args)
"Return the argument(s) as a single list."
diff --git a/lisp/eshell/em-extpipe.el b/lisp/eshell/em-extpipe.el
new file mode 100644
index 0000000000..eb5b3bfe1d
--- /dev/null
+++ b/lisp/eshell/em-extpipe.el
@@ -0,0 +1,190 @@
+;;; em-extpipe.el --- external shell pipelines -*- lexical-binding:t -*-
+
+;; Copyright (C) 2022 Free Software Foundation, Inc.
+
+;; Author: Sean Whitton <spwhitton@spwhitton.name>
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; When constructing shell pipelines that will move a lot of data, it
+;; is a good idea to bypass Eshell's own pipelining support and use
+;; the operating system shell's instead. This module tries to make
+;; that easy to do.
+
+;;; Code:
+
+(require 'cl-lib)
+(require 'esh-arg)
+(require 'esh-cmd)
+(require 'esh-io)
+(require 'esh-util)
+
+(eval-when-compile (require 'files-x))
+
+;;; Functions:
+
+(defun eshell-extpipe-initialize () ;Called from `eshell-mode' via intern-soft!
+ "Initialize external pipelines support."
+ (when (boundp 'eshell-special-chars-outside-quoting)
+ (setq-local
+ eshell-special-chars-outside-quoting
+ (append eshell-special-chars-outside-quoting (list ?\*))))
+ (add-hook 'eshell-parse-argument-hook
+ #'eshell-parse-external-pipeline -20 t)
+ (add-hook 'eshell-pre-rewrite-command-hook
+ #'eshell-rewrite-external-pipeline -20 t))
+
+(defun eshell-parse-external-pipeline ()
+ "Parse a pipeline intended for execution by the external shell.
+
+A sequence of arguments is rewritten to use the operating system
+shell when it contains `*|', `*<' or `*>', where the asterisk is
+preceded by whitespace or located at the start of input.
+
+The command extends to the next `|' character which is not
+preceded by an unescaped asterisk following whitespace, or the
+end of input, except that any Eshell-specific output redirections
+occurring at the end are excluded. Any other `<' or `>'
+appearing before the end of the command are treated as though
+preceded by (whitespace and) an asterisk.
+
+For example,
+
+ foo <bar *| baz >#<buffer quux>
+
+is equivalent to
+
+ sh -c \"foo <bar | baz\" >#<buffer quux>
+
+when `shell-file-name' is `sh' and `shell-command-switch' is
+`-c', but in
+
+ foo >#<buffer quux> *| baz
+
+and
+
+ foo *| baz >#<buffer quux> --some-argument
+
+the Eshell-specific redirect will be passed on to the operating
+system shell, probably leading to undesired results.
+
+This function must appear early in `eshell-parse-argument-hook'
+to ensure that operating system shell syntax is not interpreted
+as though it were Eshell syntax."
+ ;; Our goal is to wrap the external command to protect it from the
+ ;; other members of `eshell-parse-argument-hook'. We must avoid
+ ;; misinterpreting a quoted `*|', `*<' or `*>' as indicating an
+ ;; external pipeline, hence the structure of the loop in `findbeg1'.
+ (cl-flet
+ ((findbeg1 (pat &optional go (bound (point-max)))
+ (let* ((start (point))
+ (result
+ (catch 'found
+ (while (> bound (point))
+ (let* ((found
+ (save-excursion
+ (re-search-forward
+ "\\(?:#?'\\|\"\\|\\\\\\)" bound t)))
+ (next (or (and found (match-beginning 0))
+ bound)))
+ (if (re-search-forward pat next t)
+ (throw 'found (match-beginning 1))
+ (goto-char next)
+ (while (or (eshell-parse-lisp-argument)
+ (eshell-parse-backslash)
+ (eshell-parse-double-quote)
+ (eshell-parse-literal-quote)))
+ ;; Guard against an infinite loop if none of
+ ;; the parsers moved us forward.
+ (unless (or (> (point) next) (eobp))
+ (forward-char 1))))))))
+ (goto-char (if (and result go) (match-end 0) start))
+ result)))
+ (unless (or eshell-current-argument eshell-current-quoted)
+ (let ((beg (point)) end
+ (next-marked (findbeg1 "\\(?:\\=\\|\\s-\\)\\(\\*[|<>]\\)"))
+ (next-unmarked
+ (or (findbeg1 "\\(?:\\=\\|[^*]\\|\\S-\\*\\)\\(|\\)")
+ (point-max))))
+ (when (and next-marked (> next-unmarked next-marked)
+ (or (> next-marked (point))
+ (looking-back "\\`\\|\\s-" nil)))
+ ;; Skip to the final segment of the external pipeline.
+ (while (findbeg1 "\\(?:\\=\\|\\s-\\)\\(\\*|\\)" t))
+ ;; Find output redirections.
+ (while (findbeg1
+ "\\([0-9]?>+&?[0-9]?\\s-*\\S-\\)" t next-unmarked)
+ ;; Is the output redirection Eshell-specific? We have our
+ ;; own logic, rather than calling `eshell-parse-argument',
+ ;; to avoid specifying here all the possible cars of
+ ;; parsed special references -- `get-buffer-create' etc.
+ (forward-char -1)
+ (let ((this-end
+ (save-match-data
+ (cond ((looking-at "#<")
+ (forward-char 1)
+ (1+ (eshell-find-delimiter ?\< ?\>)))
+ ((and (looking-at "/\\S-+")
+ (assoc (match-string 0)
+ eshell-virtual-targets))
+ (match-end 0))))))
+ (cond ((and this-end end)
+ (goto-char this-end))
+ (this-end
+ (goto-char this-end)
+ (setq end (match-beginning 0)))
+ (t
+ (setq end nil)))))
+ ;; We've moved past all Eshell-specific output redirections
+ ;; we could find. If there is only whitespace left, then
+ ;; `end' is right before redirections we should exclude;
+ ;; otherwise, we must include everything.
+ (unless (and end (skip-syntax-forward "\s" next-unmarked)
+ (= next-unmarked (point)))
+ (setq end next-unmarked))
+ (let ((cmd (string-trim
+ (buffer-substring-no-properties beg end))))
+ (goto-char end)
+ ;; We must now drop the asterisks, unless quoted/escaped.
+ (with-temp-buffer
+ (insert cmd)
+ (goto-char (point-min))
+ (cl-loop
+ for next = (findbeg1 "\\(?:\\=\\|\\s-\\)\\(\\*[|<>]\\)" t)
+ while next do (forward-char -2) (delete-char 1))
+ (eshell-finish-arg
+ `(eshell-external-pipeline ,(buffer-string))))))))))
+
+(defun eshell-rewrite-external-pipeline (terms)
+ "Rewrite an external pipeline in TERMS as parsed by
+`eshell-parse-external-pipeline', which see."
+ (while terms
+ (when (and (listp (car terms))
+ (eq (caar terms) 'eshell-external-pipeline))
+ (with-connection-local-variables
+ (setcdr terms (cl-list*
+ shell-command-switch (cadar terms) (cdr terms)))
+ (setcar terms shell-file-name)))
+ (setq terms (cdr terms))))
+
+(defsubst eshell-external-pipeline (&rest _args)
+ "Stub to generate an error if a pipeline is not rewritten."
+ (error "Unhandled external pipeline in input text"))
+
+(provide 'em-extpipe)
+;;; esh-extpipe.el ends here
diff --git a/lisp/eshell/em-script.el b/lisp/eshell/em-script.el
index e8459513f3..e0bcd8b099 100644
--- a/lisp/eshell/em-script.el
+++ b/lisp/eshell/em-script.el
@@ -113,27 +113,13 @@ Comments begin with `#'."
(defun eshell/source (&rest args)
"Source a file in a subshell environment."
- (eshell-eval-using-options
- "source" args
- '((?h "help" nil nil "show this usage screen")
- :show-usage
- :usage "FILE [ARGS]
-Invoke the Eshell commands in FILE in a subshell, binding ARGS to $1,
-$2, etc.")
- (eshell-source-file (car args) (cdr args) t)))
+ (eshell-source-file (car args) (cdr args) t))
(put 'eshell/source 'eshell-no-numeric-conversions t)
(defun eshell/. (&rest args)
"Source a file in the current environment."
- (eshell-eval-using-options
- "." args
- '((?h "help" nil nil "show this usage screen")
- :show-usage
- :usage "FILE [ARGS]
-Invoke the Eshell commands in FILE within the current shell
-environment, binding ARGS to $1, $2, etc.")
- (eshell-source-file (car args) (cdr args))))
+ (eshell-source-file (car args) (cdr args)))
(put 'eshell/. 'eshell-no-numeric-conversions t)
diff --git a/lisp/eshell/em-tramp.el b/lisp/eshell/em-tramp.el
index e9018bdb93..2afd4fe066 100644
--- a/lisp/eshell/em-tramp.el
+++ b/lisp/eshell/em-tramp.el
@@ -61,37 +61,33 @@
"Alias \"su\" to call TRAMP.
Uses the system su through TRAMP's su method."
- (setq args (eshell-stringify-list (flatten-tree args)))
- (let ((orig-args (copy-tree args)))
- (eshell-eval-using-options
- "su" args
- '((?h "help" nil nil "show this usage screen")
- (?l "login" nil login "provide a login environment")
- (? nil nil login "provide a login environment")
- :usage "[- | -l | --login] [USER]
+ (eshell-eval-using-options
+ "su" args
+ '((?h "help" nil nil "show this usage screen")
+ (?l "login" nil login "provide a login environment")
+ (? nil nil login "provide a login environment")
+ :usage "[- | -l | --login] [USER]
Become another USER during a login session.")
- (throw 'eshell-replace-command
- (let ((user "root")
- (host (or (file-remote-p default-directory 'host)
- "localhost"))
- (dir (file-local-name (expand-file-name default-directory)))
- (prefix (file-remote-p default-directory)))
- (dolist (arg args)
- (if (string-equal arg "-") (setq login t) (setq user arg)))
- ;; `eshell-eval-using-options' does not handle "-".
- (if (member "-" orig-args) (setq login t))
- (if login (setq dir "~/"))
- (if (and prefix
- (or
- (not (string-equal
- "su" (file-remote-p default-directory 'method)))
- (not (string-equal
- user (file-remote-p default-directory 'user)))))
- (eshell-parse-command
- "cd" (list (format "%s|su:%s@%s:%s"
- (substring prefix 0 -1) user host dir)))
- (eshell-parse-command
- "cd" (list (format "/su:%s@%s:%s" user host dir)))))))))
+ (throw 'eshell-replace-command
+ (let ((user "root")
+ (host (or (file-remote-p default-directory 'host)
+ "localhost"))
+ (dir (file-local-name (expand-file-name default-directory)))
+ (prefix (file-remote-p default-directory)))
+ (dolist (arg args)
+ (if (string-equal arg "-") (setq login t) (setq user arg)))
+ (when login (setq dir "~/"))
+ (if (and prefix
+ (or
+ (not (string-equal
+ "su" (file-remote-p default-directory 'method)))
+ (not (string-equal
+ user (file-remote-p default-directory 'user)))))
+ (eshell-parse-command
+ "cd" (list (format "%s|su:%s@%s:%s"
+ (substring prefix 0 -1) user host dir)))
+ (eshell-parse-command
+ "cd" (list (format "/su:%s@%s:%s" user host dir))))))))
(put 'eshell/su 'eshell-no-numeric-conversions t)
@@ -99,41 +95,35 @@ Become another USER during a login session.")
"Alias \"sudo\" to call Tramp.
Uses the system sudo through TRAMP's sudo method."
- (setq args (eshell-stringify-list (flatten-tree args)))
- (let ((orig-args (copy-tree args)))
- (eshell-eval-using-options
- "sudo" args
- '((?h "help" nil nil "show this usage screen")
- (?u "user" t user "execute a command as another USER")
- :show-usage
- :parse-leading-options-only
- :usage "[(-u | --user) USER] COMMAND
+ (eshell-eval-using-options
+ "sudo" args
+ '((?h "help" nil nil "show this usage screen")
+ (?u "user" t user "execute a command as another USER")
+ :show-usage
+ :parse-leading-options-only
+ :usage "[(-u | --user) USER] COMMAND
Execute a COMMAND as the superuser or another USER.")
- (throw 'eshell-external
- (let ((user (or user "root"))
- (host (or (file-remote-p default-directory 'host)
- "localhost"))
- (dir (file-local-name (expand-file-name default-directory)))
- (prefix (file-remote-p default-directory)))
- ;; `eshell-eval-using-options' reads options of COMMAND.
- (while (and (stringp (car orig-args))
- (member (car orig-args) '("-u" "--user")))
- (setq orig-args (cddr orig-args)))
- (let ((default-directory
- (if (and prefix
- (or
- (not
- (string-equal
- "sudo"
- (file-remote-p default-directory 'method)))
- (not
- (string-equal
- user
- (file-remote-p default-directory 'user)))))
- (format "%s|sudo:%s@%s:%s"
- (substring prefix 0 -1) user host dir)
- (format "/sudo:%s@%s:%s" user host dir))))
- (eshell-named-command (car orig-args) (cdr orig-args))))))))
+ (throw 'eshell-external
+ (let* ((user (or user "root"))
+ (host (or (file-remote-p default-directory 'host)
+ "localhost"))
+ (dir (file-local-name (expand-file-name default-directory)))
+ (prefix (file-remote-p default-directory))
+ (default-directory
+ (if (and prefix
+ (or
+ (not
+ (string-equal
+ "sudo"
+ (file-remote-p default-directory 'method)))
+ (not
+ (string-equal
+ user
+ (file-remote-p default-directory 'user)))))
+ (format "%s|sudo:%s@%s:%s"
+ (substring prefix 0 -1) user host dir)
+ (format "/sudo:%s@%s:%s" user host dir))))
+ (eshell-named-command (car args) (cdr args))))))
(put 'eshell/sudo 'eshell-no-numeric-conversions t)
diff --git a/lisp/eshell/esh-cmd.el b/lisp/eshell/esh-cmd.el
index a2d7d9431a..04d65df4f3 100644
--- a/lisp/eshell/esh-cmd.el
+++ b/lisp/eshell/esh-cmd.el
@@ -107,6 +107,7 @@
(require 'esh-module)
(require 'esh-io)
(require 'esh-ext)
+(require 'generator)
(eval-when-compile
(require 'cl-lib)
@@ -903,21 +904,55 @@ at the moment are:
"Completion for the `debug' command."
(while (pcomplete-here '("errors" "commands"))))
+(iter-defun eshell--find-subcommands (haystack)
+ "Recursively search for subcommand forms in HAYSTACK.
+This yields the SUBCOMMANDs when found in forms like
+\"(eshell-as-subcommand SUBCOMMAND)\"."
+ (dolist (elem haystack)
+ (cond
+ ((eq (car-safe elem) 'eshell-as-subcommand)
+ (iter-yield (cdr elem)))
+ ((listp elem)
+ (iter-yield-from (eshell--find-subcommands elem))))))
+
+(defun eshell--invoke-command-directly (command)
+ "Determine whether the given COMMAND can be invoked directly.
+COMMAND should be a non-top-level Eshell command in parsed form.
+
+A command can be invoked directly if all of the following are true:
+
+* The command is of the form
+ \"(eshell-trap-errors (eshell-named-command NAME ARGS))\",
+ where ARGS is optional.
+
+* NAME is a string referring to an alias function and isn't a
+ complex command (see `eshell-complex-commands').
+
+* Any subcommands in ARGS can also be invoked directly."
+ (when (and (eq (car command) 'eshell-trap-errors)
+ (eq (car (cadr command)) 'eshell-named-command))
+ (let ((name (cadr (cadr command)))
+ (args (cdr-safe (nth 2 (cadr command)))))
+ (and name (stringp name)
+ (not (member name eshell-complex-commands))
+ (catch 'simple
+ (dolist (pred eshell-complex-commands t)
+ (when (and (functionp pred)
+ (funcall pred name))
+ (throw 'simple nil))))
+ (eshell-find-alias-function name)
+ (catch 'indirect-subcommand
+ (iter-do (subcommand (eshell--find-subcommands args))
+ (unless (eshell--invoke-command-directly subcommand)
+ (throw 'indirect-subcommand nil)))
+ t)))))
+
(defun eshell-invoke-directly (command)
- (let ((base (cadr (nth 2 (nth 2 (cadr command))))) name)
- (if (and (eq (car base) 'eshell-trap-errors)
- (eq (car (cadr base)) 'eshell-named-command))
- (setq name (cadr (cadr base))))
- (and name (stringp name)
- (not (member name eshell-complex-commands))
- (catch 'simple
- (progn
- (dolist (pred eshell-complex-commands)
- (if (and (functionp pred)
- (funcall pred name))
- (throw 'simple nil)))
- t))
- (eshell-find-alias-function name))))
+ "Determine whether the given COMMAND can be invoked directly.
+COMMAND should be a top-level Eshell command in parsed form, as
+produced by `eshell-parse-command'."
+ (let ((base (cadr (nth 2 (nth 2 (cadr command))))))
+ (eshell--invoke-command-directly base)))
(defun eshell-eval-command (command &optional input)
"Evaluate the given COMMAND iteratively."
diff --git a/lisp/eshell/esh-module.el b/lisp/eshell/esh-module.el
index ade151d7cd..14e91912d1 100644
--- a/lisp/eshell/esh-module.el
+++ b/lisp/eshell/esh-module.el
@@ -54,6 +54,7 @@ customizing the variable `eshell-modules-list'."
eshell-basic
eshell-cmpl
eshell-dirs
+ eshell-extpipe
eshell-glob
eshell-hist
eshell-ls
diff --git a/lisp/eshell/esh-opt.el b/lisp/eshell/esh-opt.el
index d96b77ddd3..0961e214f4 100644
--- a/lisp/eshell/esh-opt.el
+++ b/lisp/eshell/esh-opt.el
@@ -97,10 +97,10 @@ let-bound variable `args'."
(declare (debug (form form sexp body)))
`(let* ((temp-args
,(if (memq ':preserve-args (cadr options))
- macro-args
+ (list 'copy-tree macro-args)
(list 'eshell-stringify-list
(list 'flatten-tree macro-args))))
- (processed-args (eshell--do-opts ,name ,options temp-args))
+ (processed-args (eshell--do-opts ,name ,options temp-args
,macro-args))
,@(delete-dups
(delq nil (mapcar (lambda (opt)
(and (listp opt) (nth 3 opt)
@@ -117,7 +117,7 @@ let-bound variable `args'."
;; Documented part of the interface; see eshell-eval-using-options.
(defvar eshell--args)
-(defun eshell--do-opts (name options args)
+(defun eshell--do-opts (name options args orig-args)
"Helper function for `eshell-eval-using-options'.
This code doesn't really need to be macro expanded everywhere."
(require 'esh-ext)
@@ -135,7 +135,7 @@ This code doesn't really need to be macro expanded
everywhere."
(error "%s" usage-msg))))))
(if ext-command
(throw 'eshell-external
- (eshell-external-command ext-command args))
+ (eshell-external-command ext-command orig-args))
args)))
(defun eshell-show-usage (name options)
@@ -187,49 +187,82 @@ passed to this command, the external version `%s'
will be called instead." extcmd)))))
(throw 'eshell-usage usage)))
-(defun eshell--set-option (name ai opt options opt-vals)
+(defun eshell--split-switch (switch kind)
+ "Split SWITCH into its option name and potential value, if any.
+KIND should be the integer 0 if SWITCH is a short option, or 1 if it's
+a long option."
+ (if (eq kind 0)
+ ;; Short option
+ (cons (aref switch 0)
+ (and (> (length switch) 1) (substring switch 1)))
+ ;; Long option
+ (save-match-data
+ (string-match "\\([^=]*\\)\\(?:=\\(.*\\)\\)?" switch)
+ (cons (match-string 1 switch) (match-string 2 switch)))))
+
+(defun eshell--set-option (name ai opt value options opt-vals)
"Using NAME's remaining args (index AI), set the OPT within OPTIONS.
-If the option consumes an argument for its value, the argument list
-will be modified."
+VALUE is the potential value of the OPT, coming from args like
+\"-fVALUE\" or \"--foo=VALUE\", or nil if no value was supplied. If
+OPT doesn't consume a value, return VALUE unchanged so that it can be
+processed later; otherwsie, return nil.
+
+If the OPT consumes an argument for its value and VALUE is nil, the
+argument list will be modified."
(if (not (nth 3 opt))
(eshell-show-usage name options)
- (setcdr (assq (nth 3 opt) opt-vals)
- (if (eq (nth 2 opt) t)
- (if (> ai (length eshell--args))
- (error "%s: missing option argument" name)
- (pop (nthcdr ai eshell--args)))
- (or (nth 2 opt) t)))))
+ (if (eq (nth 2 opt) t)
+ (progn
+ (setcdr (assq (nth 3 opt) opt-vals)
+ (or value
+ (if (> ai (length eshell--args))
+ (error "%s: missing option argument" name)
+ (pop (nthcdr ai eshell--args)))))
+ nil)
+ (setcdr (assq (nth 3 opt) opt-vals)
+ (or (nth 2 opt) t))
+ value)))
(defun eshell--process-option (name switch kind ai options opt-vals)
"For NAME, process SWITCH (of type KIND), from args at index AI.
The SWITCH will be looked up in the set of OPTIONS.
-SWITCH should be either a string or character. KIND should be the
-integer 0 if it's a character, or 1 if it's a string.
-
-The SWITCH is then be matched against OPTIONS. If no matching handler
-is found, and an :external command is defined (and available), it will
-be called; otherwise, an error will be triggered to say that the
-switch is unrecognized."
- (let* ((opts options)
- found)
+SWITCH should be a string starting with the option to process,
+possibly followed by its value, e.g. \"u\" or \"uUSER\". KIND should
+be the integer 0 if it's a short option, or 1 if it's a long option.
+
+The SWITCH is then be matched against OPTIONS. If KIND is 0 and the
+SWITCH matches an option that doesn't take a value, return the
+remaining characters in SWITCH to be processed later as further short
+options.
+
+If no matching handler is found, and an :external command is defined
+(and available), it will be called; otherwise, an error will be
+triggered to say that the switch is unrecognized."
+ (let ((switch (eshell--split-switch switch kind))
+ (opts options)
+ found remaining)
(while opts
(if (and (listp (car opts))
- (nth kind (car opts))
- (equal switch (nth kind (car opts))))
+ (equal (car switch) (nth kind (car opts))))
(progn
- (eshell--set-option name ai (car opts) options opt-vals)
+ (setq remaining (eshell--set-option name ai (car opts)
+ (cdr switch) options opt-vals))
+ (when (and remaining (eq kind 1))
+ (error "%s: option --%s doesn't allow an argument"
+ name (car switch)))
(setq found t opts nil))
(setq opts (cdr opts))))
- (unless found
+ (if found
+ remaining
(let ((extcmd (memq ':external options)))
(when extcmd
- (setq extcmd (eshell-search-path (cadr extcmd)))
- (if extcmd
- (throw 'eshell-ext-command extcmd)
- (error (if (characterp switch) "%s: unrecognized option -%c"
- "%s: unrecognized option --%s")
- name switch)))))))
+ (setq extcmd (eshell-search-path (cadr extcmd))))
+ (if extcmd
+ (throw 'eshell-ext-command extcmd)
+ (error (if (characterp (car switch)) "%s: unrecognized option -%c"
+ "%s: unrecognized option --%s")
+ name (car switch)))))))
(defun eshell--process-args (name args options)
"Process the given ARGS using OPTIONS."
@@ -250,6 +283,9 @@ switch is unrecognized."
(memq :parse-leading-options-only options))))
(setq arg (nth ai eshell--args))
(if (not (and (stringp arg)
+ ;; A string of length 1 can't be an option; (if
+ ;; it's "-", that generally means stdin).
+ (> (length arg) 1)
(string-match "^-\\(-\\)?\\(.*\\)" arg)))
;; Positional argument found, skip
(setq ai (1+ ai)
@@ -262,12 +298,9 @@ switch is unrecognized."
(if (> (length switch) 0)
(eshell--process-option name switch 1 ai options opt-vals)
(setq ai (length eshell--args)))
- (let ((len (length switch))
- (index 0))
- (while (< index len)
- (eshell--process-option name (aref switch index)
- 0 ai options opt-vals)
- (setq index (1+ index))))))))
+ (while (> (length switch) 0)
+ (setq switch (eshell--process-option name switch 0
+ ai options opt-vals)))))))
(nconc (mapcar #'cdr opt-vals) eshell--args)))
(provide 'esh-opt)
diff --git a/lisp/face-remap.el b/lisp/face-remap.el
index 95207959dd..3675ea14b4 100644
--- a/lisp/face-remap.el
+++ b/lisp/face-remap.el
@@ -70,6 +70,13 @@
:foreground :background :stipple :overline :strike-through :box
:font :inherit :fontset :distant-foreground :extend :vector])
+(defun face-attrs--make-indirect-safe ()
+ "Deep-copy the buffer's `face-remapping-alist' upon cloning the buffer."
+ (setq-local face-remapping-alist
+ (mapcar #'copy-sequence face-remapping-alist)))
+
+(add-hook 'clone-indirect-buffer-hook #'face-attrs--make-indirect-safe)
+
(defun face-attrs-more-relative-p (attrs1 attrs2)
"Return true if ATTRS1 contains a greater number of relative
face-attributes than ATTRS2. A face attribute is considered
@@ -400,15 +407,6 @@ a top-level keymap, `text-scale-increase' or
(interactive "e")
(when (not (eq (event-basic-type event) 'pinch))
(error "`text-scale-pinch' bound to bad event type"))
- (let ((evt))
- (catch 'done
- (while t
- (unless (and (setq evt (read-event nil nil 0.01))
- (eq (car evt) 'pinch))
- (throw 'done nil))))
- (when (and (consp evt)
- (eq (car evt) 'pinch))
- (setq event evt)))
(let ((window (posn-window (nth 1 event)))
(scale (nth 4 event))
(dx (nth 2 event))
diff --git a/lisp/faces.el b/lisp/faces.el
index c69603af4d..5e0be11828 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -686,8 +686,10 @@ and `?' are allowed.
VALUE specifies the relative proportionate width of the font to use.
It must be one of the symbols `ultra-condensed', `extra-condensed',
-`condensed', `semi-condensed', `normal', `semi-expanded', `expanded',
-`extra-expanded', or `ultra-expanded'.
+`condensed' (a.k.a. `compressed', a.k.a. `narrow'),
+`semi-condensed' (a.k.a. `demi-condensed'), `normal' (a.k.a. `medium',
+a.k.a. `regular'), `semi-expanded' (a.k.a. `demi-expanded'),
+`expanded', `extra-expanded', or `ultra-expanded' (a.k.a. `wide').
`:height'
@@ -703,9 +705,11 @@ for it to be relative to).
`:weight'
VALUE specifies the weight of the font to use. It must be one of
-the symbols `ultra-heavy', `heavy', `ultra-bold', `extra-bold',
-`bold', `semi-bold', `medium', `normal', `book', `semi-light',
-`light', `extra-light', `ultra-light', or `thin'.
+the symbols `ultra-heavy', `heavy' (a.k.a. `black'),
+`ultra-bold' (a.k.a. `extra-bold'), `bold',
+`semi-bold' (a.k.a. `demi-bold'), `medium', `normal' (a.k.a. `regular',
+a.k.a. `book'), `semi-light' (a.k.a. `demi-light'),
+`light', `extra-light' (a.k.a. `ultra-light'), or `thin'.
`:slant'
@@ -1077,54 +1081,66 @@ That is, if DEFAULT is a list and MULTIPLE is nil, the
first
element of DEFAULT is returned. If DEFAULT isn't a list, but
MULTIPLE is non-nil, a one-element list containing DEFAULT is
returned. Otherwise, DEFAULT is returned verbatim."
- (unless (listp default)
- (setq default (list default)))
- (when default
- (setq default
- (if multiple
- (mapconcat (lambda (f) (if (symbolp f) (symbol-name f) f))
- default ", ")
- ;; If we only want one, and the default is more than one,
- ;; discard the unwanted ones.
- (setq default (car default))
- (if (symbolp default)
- (symbol-name default)
- default))))
- (when (and default (not multiple))
- (require 'crm)
- ;; For compatibility with `completing-read-multiple' use `crm-separator'
- ;; to define DEFAULT if MULTIPLE is nil.
- (setq default (car (split-string default crm-separator t))))
-
- ;; Older versions of `read-face-name' did not append ": " to the
- ;; prompt, so there are third party libraries that have that in the
- ;; prompt. If so, remove it.
- (setq prompt (replace-regexp-in-string ": ?\\'" "" prompt))
- (let ((prompt (if default
- (format-prompt prompt default)
- (format "%s: " prompt)))
- aliasfaces nonaliasfaces faces)
- ;; Build up the completion tables.
- (mapatoms (lambda (s)
- (if (facep s)
- (if (get s 'face-alias)
- (push (symbol-name s) aliasfaces)
- (push (symbol-name s) nonaliasfaces)))))
- (if multiple
- (progn
- (dolist (face (completing-read-multiple
- prompt
- (completion-table-in-turn nonaliasfaces aliasfaces)
- nil t nil 'face-name-history default))
- ;; Ignore elements that are not faces
- ;; (for example, because DEFAULT was "all faces")
- (if (facep face) (push (intern face) faces)))
- (nreverse faces))
- (let ((face (completing-read
- prompt
- (completion-table-in-turn nonaliasfaces aliasfaces)
- nil t nil 'face-name-history default)))
- (if (facep face) (intern face))))))
+ (let (defaults)
+ (unless (listp default)
+ (setq default (list default)))
+ (when default
+ (setq default
+ (if multiple
+ (mapconcat (lambda (f) (if (symbolp f) (symbol-name f) f))
+ default ", ")
+ ;; If we only want one, and the default is more than one,
+ ;; discard the unwanted ones and use them only in the
+ ;; "future history" retrieved via `M-n M-n ...'.
+ (setq defaults default default (car default))
+ (if (symbolp default)
+ (symbol-name default)
+ default))))
+ (when (and default (not multiple))
+ (require 'crm)
+ ;; For compatibility with `completing-read-multiple' use `crm-separator'
+ ;; to define DEFAULT if MULTIPLE is nil.
+ (setq default (car (split-string default crm-separator t))))
+
+ ;; Older versions of `read-face-name' did not append ": " to the
+ ;; prompt, so there are third party libraries that have that in the
+ ;; prompt. If so, remove it.
+ (setq prompt (replace-regexp-in-string ": ?\\'" "" prompt))
+ (let ((prompt (if default
+ (format-prompt prompt default)
+ (format "%s: " prompt)))
+ (completion-extra-properties
+ '(:affixation-function
+ (lambda (faces)
+ (mapcar
+ (lambda (face)
+ (list (concat (propertize "SAMPLE" 'face face)
+ "\t")
+ ""
+ face))
+ faces))))
+ aliasfaces nonaliasfaces faces)
+ ;; Build up the completion tables.
+ (mapatoms (lambda (s)
+ (if (facep s)
+ (if (get s 'face-alias)
+ (push (symbol-name s) aliasfaces)
+ (push (symbol-name s) nonaliasfaces)))))
+ (if multiple
+ (progn
+ (dolist (face (completing-read-multiple
+ prompt
+ (completion-table-in-turn nonaliasfaces aliasfaces)
+ nil t nil 'face-name-history default))
+ ;; Ignore elements that are not faces
+ ;; (for example, because DEFAULT was "all faces")
+ (if (facep face) (push (intern face) faces)))
+ (nreverse faces))
+ (let ((face (completing-read
+ prompt
+ (completion-table-in-turn nonaliasfaces aliasfaces)
+ nil t nil 'face-name-history defaults)))
+ (if (facep face) (intern face)))))))
;; Not defined without X, but behind window-system test.
(defvar x-bitmap-file-path)
diff --git a/lisp/ffap.el b/lisp/ffap.el
index f9220817a7..b5d2a02cd1 100644
--- a/lisp/ffap.el
+++ b/lisp/ffap.el
@@ -1449,10 +1449,13 @@ which may actually result in an URL rather than a
filename."
(ffap-file-exists-string (substring name 0 (match-beginning
0)))))
;; If it contains a colon, get rid of it (and return if exists)
((and (string-match path-separator name)
- (setq name (ffap-string-at-point 'nocolon))
- (> (length name) 0)
- (ffap-file-exists-string name)))
- ;; File does not exist, try the alist:
+ (let ((this-name (ffap-string-at-point 'nocolon)))
+ ;; But don't interpret the first part if ":/bin" as
+ ;; the empty string.
+ (when (> (length this-name) 0)
+ (setq name this-name)
+ (ffap-file-exists-string name)))))
+ ;; File does not exist, try the alist:
((let ((alist ffap-alist) tem try case-fold-search)
(while (and alist (not try))
(setq tem (car alist) alist (cdr alist))
diff --git a/lisp/files.el b/lisp/files.el
index 593925f138..11cb4d4dcc 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -483,12 +483,16 @@ If `silently', don't ask the user before saving."
(defcustom lock-file-name-transforms nil
"Transforms to apply to buffer file name before making a lock file name.
-This has the same syntax as
-`auto-save-file-name-transforms' (which see), but instead of
-applying to auto-save file names, it's applied to lock file names.
+This has the same syntax as `auto-save-file-name-transforms',
+but applies to lock file names instead of auto-save file names.
-By default, a lock file is put into the same directory as the
-file it's locking, and it has the same name, but with \".#\" prepended."
+By default, Emacs puts each lock file into the same directory as the
+file it locks, prepending \".#\" to the base file name.
+
+Note that changing this could break lock file functionality, e.g.:
+if different users access the same file, using different lock file settings;
+if accessing files on a shared file system from different hosts,
+using a transform that puts the lock files on a local file system."
:group 'files
:type '(repeat (list (regexp :tag "Regexp")
(string :tag "Replacement")
@@ -2753,8 +2757,7 @@ since only a single case-insensitive search through the
alist is made."
(defvar auto-mode-alist
;; Note: The entries for the modes defined in cc-mode.el (c-mode,
;; c++-mode, java-mode and more) are added through autoload
- ;; directives in that file. That way is discouraged since it
- ;; spreads out the definition of the initial value.
+ ;; directives in that file.
(mapcar
(lambda (elt)
(cons (purecopy (car elt)) (cdr elt)))
@@ -2925,7 +2928,7 @@
ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\|CBR\\|7Z\\|SQUASHFS\\)\\'" .
("\\.\\(diffs?\\|patch\\|rej\\)\\'" . diff-mode)
("\\.\\(dif\\|pat\\)\\'" . diff-mode) ; for MS-DOS
("\\.[eE]?[pP][sS]\\'" . ps-mode)
-
("\\.\\(?:PDF\\|DVI\\|OD[FGPST]\\|DOCX\\|XLSX?\\|PPTX?\\|pdf\\|djvu\\|dvi\\|od[fgpst]\\|docx\\|xlsx?\\|pptx?\\)\\'"
. doc-view-mode-maybe)
+
("\\.\\(?:PDF\\|EPUB\\|CBZ\\|FB2\\|O?XPS\\|DVI\\|OD[FGPST]\\|DOCX\\|XLSX?\\|PPTX?\\|pdf\\|epub\\|cbz\\|fb2\\|o?xps\\|djvu\\|dvi\\|od[fgpst]\\|docx\\|xlsx?\\|pptx?\\)\\'"
. doc-view-mode-maybe)
("configure\\.\\(ac\\|in\\)\\'" . autoconf-mode)
("\\.s\\(v\\|iv\\|ieve\\)\\'" . sieve-mode)
("BROWSE\\'" . ebrowse-tree-mode)
@@ -3052,8 +3055,7 @@ and `magic-mode-alist', which determines modes based on
file contents.")
(defvar interpreter-mode-alist
;; Note: The entries for the modes defined in cc-mode.el (awk-mode
;; and pike-mode) are added through autoload directives in that
- ;; file. That way is discouraged since it spreads out the
- ;; definition of the initial value.
+ ;; file.
(mapcar
(lambda (l)
(cons (purecopy (car l)) (cdr l)))
@@ -3245,6 +3247,7 @@ extra checks should be done."
(let ((case-fold-search t))
(assoc-default name alist 'string-match))))))
(if (and mode
+ (not (functionp mode))
(consp mode)
(cadr mode))
(setq mode (car mode)
@@ -3637,7 +3640,7 @@ DIR-NAME is the name of the associated directory.
Otherwise it is nil."
(cond
(unsafe-vars
(insert "The local variables list in " name
- "\ncontains values that may not be safe (*)"
+ "\nor .dir-locals.el contains values that may not be safe (*)"
(if risky-vars
", and variables that are risky (**)."
".")))
@@ -3964,12 +3967,12 @@ major-mode."
;; Discard the prefix.
(if (looking-at prefix)
(delete-region (point) (match-end 0))
- (error "Local variables entry is missing the prefix"))
+ (user-error "Local variables entry is missing the prefix"))
(end-of-line)
;; Discard the suffix.
(if (looking-back suffix (line-beginning-position))
(delete-region (match-beginning 0) (point))
- (error "Local variables entry is missing the suffix"))
+ (user-error "Local variables entry is missing the suffix"))
(forward-line 1))
(goto-char (point-min))
@@ -3977,9 +3980,9 @@ major-mode."
(and (eq handle-mode t) result)))
;; Find the variable name;
(unless (looking-at hack-local-variable-regexp)
- (error "Malformed local variable line: %S"
- (buffer-substring-no-properties
- (point) (line-end-position))))
+ (user-error "Malformed local variable line: %S"
+ (buffer-substring-no-properties
+ (point) (line-end-position))))
(goto-char (match-end 1))
(let* ((str (match-string 1))
(var (intern str))
@@ -4083,11 +4086,8 @@ It is dangerous if either of these conditions are met:
(defun hack-one-local-variable-quotep (exp)
(and (consp exp) (eq (car exp) 'quote) (consp (cdr exp))))
-(defun hack-one-local-variable-constantp (exp)
- (or (and (not (symbolp exp)) (not (consp exp)))
- (memq exp '(t nil))
- (keywordp exp)
- (hack-one-local-variable-quotep exp)))
+(define-obsolete-function-alias 'hack-one-local-variable-constantp
+ #'macroexp-const-p "29.1")
(defun hack-one-local-variable-eval-safep (exp)
"Return non-nil if it is safe to eval EXP when it is found in a file."
@@ -4125,7 +4125,7 @@ It is dangerous if either of these conditions are met:
(cond ((eq prop t)
(let ((ok t))
(dolist (arg (cdr exp))
- (unless (hack-one-local-variable-constantp arg)
+ (unless (macroexp-const-p arg)
(setq ok nil)))
ok))
((functionp prop)
@@ -5800,7 +5800,7 @@ to return a predicate used to check buffers."
;; FIXME nil should not be a valid option, let alone the default,
;; eg so that add-function can be used.
:type '(choice (const :tag "Default" nil)
- (function :tag "Only in subdirs of root"
+ (function :tag "Only in subdirs of current project"
save-some-buffers-root)
(function :tag "Custom function"))
:version "26.1")
@@ -5817,6 +5817,27 @@ of the directory that was default during command
invocation."
(lambda () (file-in-directory-p default-directory root))))
(put 'save-some-buffers-root 'save-some-buffers-function t)
+(defun files--buffers-needing-to-be-saved (pred)
+ "Return a list of buffers to save according to PRED.
+See `save-some-buffers' for PRED values."
+ (seq-filter
+ (lambda (buffer)
+ ;; Note that killing some buffers may kill others via
+ ;; hooks (e.g. Rmail and its viewing buffer).
+ (and (buffer-live-p buffer)
+ (buffer-modified-p buffer)
+ (not (buffer-base-buffer buffer))
+ (or
+ (buffer-file-name buffer)
+ (with-current-buffer buffer
+ (or (eq buffer-offer-save 'always)
+ (and pred buffer-offer-save
+ (> (buffer-size) 0)))))
+ (or (not (functionp pred))
+ (with-current-buffer buffer
+ (funcall pred)))))
+ (buffer-list)))
+
(defun save-some-buffers (&optional arg pred)
"Save some modified file-visiting buffers. Asks user about each one.
You can answer \\`y' or \\`SPC' to save, \\`n' or \\`DEL' not to save, \\`C-r'
@@ -5844,14 +5865,16 @@ See `save-some-buffers-action-alist' if you want to
change the additional actions you can take on files."
(interactive "P")
(unless pred
- (setq pred save-some-buffers-default-predicate))
- ;; Allow `pred' to be a function that returns a predicate
- ;; with lexical bindings in its original environment (bug#46374).
- (when (or (and (symbolp pred) (get pred 'save-some-buffers-function)
- (save-some-buffers-function--p pred)))
- (let ((pred-fun (and (functionp pred) (funcall pred))))
- (when (functionp pred-fun)
- (setq pred pred-fun))))
+ (setq pred
+ ;; Allow `pred' to be a function that returns a predicate
+ ;; with lexical bindings in its original environment (bug#46374).
+ (if (or (and (symbolp save-some-buffers-default-predicate)
+ (get save-some-buffers-default-predicate
+ 'save-some-buffers-function))
+ (save-some-buffers-function--p
+ save-some-buffers-default-predicate))
+ (funcall save-some-buffers-default-predicate)
+ save-some-buffers-default-predicate)))
(let* ((switched-buffer nil)
(save-some-buffers--switch-window-callback
(lambda (buffer)
@@ -5873,49 +5896,36 @@ change the additional actions you can take on files."
(setq files-done
(map-y-or-n-p
(lambda (buffer)
- ;; Note that killing some buffers may kill others via
- ;; hooks (e.g. Rmail and its viewing buffer).
- (and (buffer-live-p buffer)
- (buffer-modified-p buffer)
- (not (buffer-base-buffer buffer))
- (or
- (buffer-file-name buffer)
- (with-current-buffer buffer
- (or (eq buffer-offer-save 'always)
- (and pred buffer-offer-save
- (> (buffer-size) 0)))))
- (or (not (functionp pred))
- (with-current-buffer buffer (funcall pred)))
- (if arg
- t
- (setq queried t)
- (if (buffer-file-name buffer)
- (if (or
- (equal (buffer-name buffer)
- (file-name-nondirectory
- (buffer-file-name buffer)))
- (string-match
- (concat "\\<"
- (regexp-quote
- (file-name-nondirectory
- (buffer-file-name buffer)))
- "<[^>]*>\\'")
- (buffer-name buffer)))
- ;; The buffer name is similar to the
- ;; file name.
- (format "Save file %s? "
- (buffer-file-name buffer))
- ;; The buffer and file names are
- ;; dissimilar; display both.
- (format "Save file %s (buffer %s)? "
- (buffer-file-name buffer)
- (buffer-name buffer)))
- ;; No file name
- (format "Save buffer %s? " (buffer-name
buffer))))))
+ (if arg
+ t
+ (setq queried t)
+ (if (buffer-file-name buffer)
+ (if (or
+ (equal (buffer-name buffer)
+ (file-name-nondirectory
+ (buffer-file-name buffer)))
+ (string-match
+ (concat "\\<"
+ (regexp-quote
+ (file-name-nondirectory
+ (buffer-file-name buffer)))
+ "<[^>]*>\\'")
+ (buffer-name buffer)))
+ ;; The buffer name is similar to the file
+ ;; name.
+ (format "Save file %s? "
+ (buffer-file-name buffer))
+ ;; The buffer and file names are dissimilar;
+ ;; display both.
+ (format "Save file %s (buffer %s)? "
+ (buffer-file-name buffer)
+ (buffer-name buffer)))
+ ;; No file name.
+ (format "Save buffer %s? " (buffer-name buffer)))))
(lambda (buffer)
(with-current-buffer buffer
(save-buffer)))
- (buffer-list)
+ (files--buffers-needing-to-be-saved pred)
'("buffer" "buffers" "save")
save-some-buffers-action-alist))
;; Maybe to save abbrevs, and record whether
@@ -7753,7 +7763,16 @@ if any returns nil. If `confirm-kill-emacs' is non-nil,
calls it."
(interactive "P")
;; Don't use save-some-buffers-default-predicate, because we want
;; to ask about all the buffers before killing Emacs.
- (save-some-buffers arg t)
+ (when (files--buffers-needing-to-be-saved t)
+ (if (use-dialog-box-p)
+ (pcase (x-popup-dialog
+ t `("Unsaved Buffers"
+ ("Close Without Saving" . no-save)
+ ("Save All" . save-all)
+ ("Cancel" . cancel)))
+ ('cancel (user-error "Exit cancelled"))
+ ('save-all (save-some-buffers t)))
+ (save-some-buffers arg t)))
(let ((confirm confirm-kill-emacs))
(and
(or (not (memq t (mapcar (lambda (buf)
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index 083bfb8626..d8a1fe399b 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -1906,8 +1906,9 @@ preserve `hi-lock-mode' highlighting patterns."
Sets various variables using `font-lock-defaults' and
`font-lock-maximum-decoration'."
;; Set fontification defaults if not previously set for correct major mode.
- (unless (and font-lock-set-defaults
- (eq font-lock-major-mode major-mode))
+ (when (or (not font-lock-set-defaults)
+ (not font-lock-major-mode)
+ (not (derived-mode-p font-lock-major-mode)))
(setq font-lock-major-mode major-mode)
(setq font-lock-set-defaults t)
(let* ((defaults font-lock-defaults)
diff --git a/lisp/frame.el b/lisp/frame.el
index 62b73f3157..13f82ea4c7 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -798,8 +798,9 @@ also select the new frame."
(windows (unless no-windows
(window-state-get (frame-root-window frame))))
(default-frame-alist
- (seq-remove (lambda (elem) (eq (car elem) 'name))
- (frame-parameters frame)))
+ (seq-remove (lambda (elem)
+ (memq (car elem) '(name parent-id)))
+ (frame-parameters frame)))
(new-frame (make-frame)))
(when windows
(window-state-put windows (frame-root-window new-frame) 'safe))
@@ -2529,6 +2530,80 @@ deleting them."
(if iconify (iconify-frame this) (delete-frame this)))
(setq this next))))
+(eval-when-compile (require 'frameset))
+
+(defvar undelete-frame--deleted-frames nil
+ "Internal variable used by `undelete-frame--handle-delete-frame'.")
+
+(defun undelete-frame--handle-delete-frame (frame)
+ "Save the configuration of frames deleted with `delete-frame'.
+Only the 16 most recently deleted frames are saved."
+ (when (frame-live-p frame)
+ (setq undelete-frame--deleted-frames
+ (cons
+ (cons
+ (display-graphic-p)
+ (frameset-save
+ (list frame)
+ ;; When the daemon is started from a graphical
+ ;; environment, TTY frames have a 'display' parameter set
+ ;; to the value of $DISPLAY (see the note in
+ ;; `server--on-display-p'). Do not store that parameter
+ ;; in the frameset, otherwise `frameset-restore' attempts
+ ;; to restore a graphical frame.
+ :filters (if (display-graphic-p)
+ frameset-filter-alist
+ (cons '(display . :never)
+ frameset-filter-alist))))
+ undelete-frame--deleted-frames))
+ (if (> (length undelete-frame--deleted-frames) 16)
+ (setq undelete-frame--deleted-frames
+ (butlast undelete-frame--deleted-frames)))))
+
+(define-minor-mode undelete-frame-mode
+ "Enable the `undelete-frame' command."
+ :group 'frames
+ :global t
+ (if undelete-frame-mode
+ (add-hook 'delete-frame-functions
+ #'undelete-frame--handle-delete-frame -75)
+ (remove-hook 'delete-frame-functions
+ #'undelete-frame--handle-delete-frame)
+ (setq undelete-frame--deleted-frames nil)))
+
+(defun undelete-frame (&optional arg)
+ "Undelete a frame deleted with `delete-frame'.
+Without a prefix argument, undelete the most recently deleted
+frame.
+With a numerical prefix argument ARG between 1 and 16, where 1 is
+most recently deleted frame, undelete the ARGth deleted frame.
+When called from Lisp, returns the new frame."
+ (interactive "P")
+ (if (not undelete-frame-mode)
+ (user-error "Undelete-Frame mode is disabled")
+ (if (consp arg)
+ (user-error "Missing deleted frame number argument")
+ (let* ((number (pcase arg ('nil 1) ('- -1) (_ arg)))
+ (frames (frame-list))
+ (frameset (nth (1- number) undelete-frame--deleted-frames))
+ (graphic (display-graphic-p)))
+ (if (not (<= 1 number 16))
+ (user-error "%d is not a valid deleted frame number argument"
+ number)
+ (if (not frameset)
+ (user-error "No deleted frame with number %d" number)
+ (if (not (eq graphic (car frameset)))
+ (user-error
+ "Cannot undelete a %s display frame on a %s display"
+ (if graphic "non-graphic" "graphic")
+ (if graphic "graphic" "non-graphic"))
+ (setq undelete-frame--deleted-frames
+ (delq frameset undelete-frame--deleted-frames))
+ (frameset-restore (cdr frameset))
+ (let ((frame (car (seq-difference (frame-list) frames))))
+ (when frame
+ (select-frame-set-input-focus frame)
+ frame)))))))))
;;; Window dividers.
(defgroup window-divider nil
@@ -2873,6 +2948,7 @@ See also `toggle-frame-maximized'."
(define-key ctl-x-5-map "o" #'other-frame)
(define-key ctl-x-5-map "5" #'other-frame-prefix)
(define-key ctl-x-5-map "c" #'clone-frame)
+(define-key ctl-x-5-map "u" #'undelete-frame)
(define-key global-map [f11] #'toggle-frame-fullscreen)
(define-key global-map [(meta f10)] #'toggle-frame-maximized)
(define-key esc-map [f10] #'toggle-frame-maximized)
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el
index fd66135b5c..e4704b35c8 100644
--- a/lisp/gnus/gnus-agent.el
+++ b/lisp/gnus/gnus-agent.el
@@ -31,6 +31,7 @@
(require 'gnus-srvr)
(require 'gnus-util)
(require 'timer)
+(require 'range)
(eval-when-compile (require 'cl-lib))
(autoload 'gnus-server-update-server "gnus-srvr")
@@ -1219,8 +1220,8 @@ This can be added to `gnus-select-article-hook' or
(cond ((eq mark 'read)
(setf (gnus-info-read info)
(funcall (if (eq what 'add)
- #'gnus-range-add
- #'gnus-remove-from-range)
+ #'range-concat
+ #'range-remove)
(gnus-info-read info)
range))
(gnus-get-unread-articles-in-group
@@ -1233,8 +1234,8 @@ This can be added to `gnus-select-article-hook' or
(gnus-info-marks info)))
(setcdr info-marks
(funcall (if (eq what 'add)
- #'gnus-range-add
- #'gnus-remove-from-range)
+ #'range-concat
+ #'range-remove)
(cdr info-marks)
range))))))))
@@ -1307,7 +1308,7 @@ downloaded into the agent."
(let ((read (gnus-info-read info)))
(setf (gnus-info-read info)
- (gnus-range-add
+ (range-concat
read
(list (cons (1+ agent-max)
(1- active-min))))))
@@ -1796,13 +1797,13 @@ article numbers will be returned."
(articles (if fetch-all
(if gnus-newsgroup-maximum-articles
(let ((active (gnus-active group)))
- (gnus-uncompress-range
+ (range-uncompress
(cons (max (car active)
(- (cdr active)
gnus-newsgroup-maximum-articles
-1))
(cdr active))))
- (gnus-uncompress-range (gnus-active group)))
+ (range-uncompress (gnus-active group)))
(gnus-list-of-unread-articles group)))
(gnus-decode-encoded-word-function 'identity)
(gnus-decode-encoded-address-function 'identity)
@@ -1817,7 +1818,7 @@ article numbers will be returned."
;; because otherwise the agent will remove their marks.)
(dolist (arts (gnus-info-marks (gnus-get-info group)))
(unless (memq (car arts) '(seen recent killed cache))
- (setq articles (gnus-range-add articles (cdr arts)))))
+ (setq articles (range-concat articles (cdr arts)))))
(setq articles (sort (gnus-uncompress-sequence articles) #'<)))
;; At this point, I have the list of articles to consider for
@@ -1851,15 +1852,15 @@ article numbers will be returned."
;; gnus-agent-article-alist) equals (cdr (gnus-active
;; group))}. The addition of one(the 1+ above) then
;; forces Low to be greater than High. When this happens,
- ;; gnus-list-range-intersection returns nil which
+ ;; range-list-intersection returns nil which
;; indicates that no headers need to be fetched. -- Kevin
- (setq articles (gnus-list-range-intersection
+ (setq articles (range-list-intersection
articles (list (cons low high)))))))
(when articles
(gnus-message
10 "gnus-agent-fetch-headers: undownloaded articles are `%s'"
- (gnus-compress-sequence articles t)))
+ (range-compress-list articles)))
(with-current-buffer nntp-server-buffer
(if articles
@@ -2060,7 +2061,7 @@ doesn't exist, to valid the overview buffer."
(let (state sequence uncomp)
(while alist
(setq state (caar alist)
- sequence (inline (gnus-uncompress-range (cdar alist)))
+ sequence (inline (range-uncompress (cdar alist)))
alist (cdr alist))
(while sequence
(push (cons (pop sequence) state) uncomp)))
@@ -2404,7 +2405,7 @@ contents, they are first saved to their own file."
(let ((arts (cdr (assq mark (gnus-info-marks
(setq info (gnus-get-info group)))))))
(when arts
- (setq marked-articles (nconc (gnus-uncompress-range arts)
+ (setq marked-articles (nconc (range-uncompress arts)
marked-articles))
))))
(setq marked-articles (sort marked-articles #'<))
@@ -2544,7 +2545,7 @@ contents, they are first saved to their own file."
(let ((read (gnus-info-read
(or info (setq info (gnus-get-info group))))))
(setf (gnus-info-read info)
- (gnus-add-to-range read unfetched-articles)))
+ (range-add-list read unfetched-articles)))
(gnus-group-update-group group t)
(sit-for 0)
@@ -2898,8 +2899,8 @@ The following commands are available:
(defun gnus-agent-read-p ()
"Say whether an article is read or not."
- (gnus-member-of-range (mail-header-number gnus-headers)
- (gnus-info-read (gnus-get-info gnus-newsgroup-name))))
+ (range-member-p (mail-header-number gnus-headers)
+ (gnus-info-read (gnus-get-info gnus-newsgroup-name))))
(defun gnus-category-make-function (predicate)
"Make a function from PREDICATE."
@@ -3115,7 +3116,7 @@ FORCE is equivalent to setting the expiration predicates
to true."
;; All articles EXCEPT those named by the caller
;; are protected from expiration
(gnus-sorted-difference
- (gnus-uncompress-range
+ (range-uncompress
(cons (caar alist)
(caar (last alist))))
(sort articles #'<)))))
@@ -3137,9 +3138,9 @@ FORCE is equivalent to setting the expiration predicates
to true."
;; Ticked and/or dormant articles are excluded
;; from expiration
(nconc
- (gnus-uncompress-range
+ (range-uncompress
(cdr (assq 'tick (gnus-info-marks info))))
- (gnus-uncompress-range
+ (range-uncompress
(cdr (assq 'dormant
(gnus-info-marks info))))))))
(nov-file (concat dir ".overview"))
@@ -3638,7 +3639,7 @@ has been fetched."
(file-name-directory file) t))
(when fetch-old
- (setq articles (gnus-uncompress-range
+ (setq articles (range-uncompress
(cons (if (numberp fetch-old)
(max 1 (- (car articles) fetch-old))
1)
@@ -3694,7 +3695,7 @@ has been fetched."
;; Clip this list to the headers that will
;; actually be returned
- (setq fetched-articles (gnus-list-range-intersection
+ (setq fetched-articles (range-list-intersection
(cdr fetched-articles)
(cons min max)))
@@ -3703,7 +3704,7 @@ has been fetched."
;; excluded IDs may be fetchable using HEAD.
(if (car tail-fetched-articles)
(setq uncached-articles
- (gnus-list-range-intersection
+ (range-list-intersection
uncached-articles
(cons (car uncached-articles)
(car tail-fetched-articles)))))
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index f26ab6ab4c..08e1a6f93e 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -42,6 +42,7 @@
(require 'message)
(require 'mouse)
(require 'seq)
+(require 'range)
(autoload 'gnus-msg-mail "gnus-msg" nil t)
(autoload 'gnus-button-mailto "gnus-msg")
@@ -1159,13 +1160,15 @@ predicate. See Info node `(gnus)Customizing Articles'."
:link '(custom-manual "(gnus)Customizing Articles")
:type gnus-article-treat-head-custom)
-(defcustom gnus-treat-emphasize 50000
+(defcustom gnus-treat-emphasize '(and 50000
+ (not (typep "text/html")))
"Emphasize text.
Valid values are nil, t, `head', `first', `last', an integer or a
predicate. See Info node `(gnus)Customizing Articles'."
:group 'gnus-article-treat
:link '(custom-manual "(gnus)Customizing Articles")
- :type gnus-article-treat-custom)
+ :type gnus-article-treat-custom
+ :version "29.1")
(put 'gnus-treat-emphasize 'highlight t)
(defcustom gnus-treat-strip-cr nil
@@ -1392,6 +1395,15 @@ predicate. See Info node `(gnus)Customizing Articles'."
:link '(custom-manual "(gnus)Customizing Articles")
:type gnus-article-treat-custom)
+(defcustom gnus-treat-suspicious-headers 'head
+ "Mark headers that are suspicious.
+Valid values are nil, t, `head', `first', `last', an integer or a
+predicate. See Info node `(gnus)Customizing Articles'."
+ :version "29.1"
+ :group 'gnus-article-treat
+ :link '(custom-manual "(gnus)Customizing Articles")
+ :type gnus-article-treat-custom)
+
(defcustom gnus-treat-fold-newsgroups 'head
"Fold the Newsgroups and Followup-To headers.
Valid values are nil, t, `head', `first', `last', an integer or a
@@ -1709,6 +1721,7 @@ regexp."
(gnus-treat-unfold-headers gnus-article-treat-unfold-headers)
(gnus-treat-fold-newsgroups gnus-article-treat-fold-newsgroups)
(gnus-treat-fold-headers gnus-article-treat-fold-headers)
+ (gnus-treat-suspicious-headers gnus-article-treat-suspicious-headers)
(gnus-treat-buttonize-head gnus-article-add-buttons-to-head)
(gnus-treat-display-smileys gnus-treat-smiley)
(gnus-treat-capitalize-sentences gnus-article-capitalize-sentences)
@@ -2233,6 +2246,20 @@ unfolded."
(pixel-fill-region (point) (point-max) (pixel-fill-width)))
(goto-char (point-max))))))
+(defun gnus-article-treat-suspicious-headers ()
+ "Mark suspicious headers."
+ (interactive nil gnus-article-mode gnus-summary-mode)
+ (gnus-with-article-headers
+ (let (match)
+ (while (setq match (text-property-search-forward 'textsec-suspicious))
+ (add-text-properties (prop-match-beginning match)
+ (prop-match-end match)
+ (list 'help-echo (prop-match-value match)
+ 'face 'textsec-suspicious))
+ (overlay-put (make-overlay (prop-match-end match)
+ (prop-match-end match))
+ 'after-string "⚠️")))))
+
(defun gnus-treat-smiley ()
"Toggle display of textual emoticons (\"smileys\") as small graphical icons."
(interactive nil gnus-article-mode gnus-summary-mode)
@@ -2299,9 +2326,7 @@ This only works if the article in question is HTML."
(goto-char (point-max))))))
(defcustom gnus-article-truncate-lines (default-value 'truncate-lines)
- "Value of `truncate-lines' in Gnus Article buffer.
-Valid values are nil, t, `head', `first', `last', an integer or a
-predicate. See Info node `(gnus)Customizing Articles'."
+ "Value of `truncate-lines' in Gnus Article buffer."
:version "23.1" ;; No Gnus
:group 'gnus-article
;; :link '(custom-manual "(gnus)Customizing Articles")
@@ -2609,17 +2634,36 @@ If PROMPT (the prefix), prompt for a coding system to
use."
(forward-line -1))
(setq end (point))
(while (not (bobp))
- (while (progn
- (forward-line -1)
- (and (not (bobp))
- (memq (char-after) '(?\t ? )))))
- (setq start (point))
- (if (looking-at "\
+ (let (addresses)
+ (while (progn
+ (forward-line -1)
+ (and (not (bobp))
+ (memq (char-after) '(?\t ? )))))
+ (setq start (point))
+ (save-restriction
+ (narrow-to-region start end)
+ (if (looking-at "\
\\(?:Resent-\\)?\\(?:From\\|Cc\\|To\\|Bcc\\|\\(?:In-\\)?Reply-To\\|Sender\
\\|Mail-Followup-To\\|Mail-Copies-To\\|Approved\\):")
- (funcall gnus-decode-address-function start end)
- (funcall gnus-decode-header-function start end))
- (goto-char (setq end start)))))
+ (progn
+ (setq addresses (buffer-string))
+ (funcall gnus-decode-address-function (point-min) (point-max)))
+ (funcall gnus-decode-header-function (point-min) (point-max))))
+ (when addresses
+ (article--check-suspicious-addresses addresses))
+ (goto-char (point-max))
+ (goto-char (setq end start))))))
+
+(defun article--check-suspicious-addresses (addresses)
+ (setq addresses (replace-regexp-in-string "\\`[^:]+:[ \t\n]*" "" addresses))
+ (dolist (header (mail-header-parse-addresses addresses t))
+ (when-let* ((address (car (ignore-errors
+ (mail-header-parse-address header))))
+ (warning (textsec-suspicious-p address 'email-address)))
+ (goto-char (point-min))
+ (while (search-forward address nil t)
+ (put-text-property (match-beginning 0) (match-end 0)
+ 'textsec-suspicious warning)))))
(defun article-decode-group-name ()
"Decode group names in Newsgroups, Followup-To and Xref headers."
@@ -7017,7 +7061,7 @@ then we display only bindings that start with that
prefix."
(setq sumkeys
(append (mapcar
#'vector
- (nreverse (gnus-uncompress-range def)))
+ (nreverse (range-uncompress def)))
sumkeys))))
((setq def (key-binding key))
(unless (eq def 'undefined)
diff --git a/lisp/gnus/gnus-cloud.el b/lisp/gnus/gnus-cloud.el
index 6ed9e32c91..9bd9f2155f 100644
--- a/lisp/gnus/gnus-cloud.el
+++ b/lisp/gnus/gnus-cloud.el
@@ -30,6 +30,7 @@
(require 'parse-time)
(require 'nnimap)
+(require 'range)
(eval-when-compile (require 'epg)) ;; setf-method for `epg-context-armor'
(autoload 'epg-make-context "epg")
@@ -404,7 +405,7 @@ When FULL is t, upload everything, not just a difference
from the last full."
(let* ((group (gnus-group-full-name gnus-cloud-group-name gnus-cloud-method))
(active (gnus-active group))
headers head)
- (when (gnus-retrieve-headers (gnus-uncompress-range active) group)
+ (when (gnus-retrieve-headers (range-uncompress active) group)
(with-current-buffer nntp-server-buffer
(goto-char (point-min))
(while (setq head (nnheader-parse-head))
diff --git a/lisp/gnus/gnus-draft.el b/lisp/gnus/gnus-draft.el
index cd9b025ff0..56d498cc4d 100644
--- a/lisp/gnus/gnus-draft.el
+++ b/lisp/gnus/gnus-draft.el
@@ -200,7 +200,7 @@ Obeys the standard process/prefix convention."
(gnus-activate-group "nndraft:queue")
(save-excursion
(let* ((articles (nndraft-articles))
- (unsendable (gnus-uncompress-range
+ (unsendable (range-uncompress
(cdr (assq 'unsend
(gnus-info-marks
(gnus-get-info "nndraft:queue"))))))
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index ab874dd060..d3a94e9f4e 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -35,6 +35,7 @@
(require 'gnus-undo)
(require 'gmm-utils)
(require 'time-date)
+(require 'range)
(eval-when-compile
(require 'mm-url)
@@ -512,8 +513,8 @@ simple manner."
((numberp number)
(int-to-string
(+ number
- (gnus-range-length (cdr (assq 'dormant gnus-tmp-marked)))
- (gnus-range-length (cdr (assq 'tick gnus-tmp-marked))))))
+ (range-length (cdr (assq 'dormant gnus-tmp-marked)))
+ (range-length (cdr (assq 'tick gnus-tmp-marked))))))
(t number))
?s)
(?R gnus-tmp-number-of-read ?s)
@@ -523,10 +524,10 @@ simple manner."
?s)
(?t gnus-tmp-number-total ?d)
(?y gnus-tmp-number-of-unread ?s)
- (?I (gnus-range-length (cdr (assq 'dormant gnus-tmp-marked))) ?d)
- (?T (gnus-range-length (cdr (assq 'tick gnus-tmp-marked))) ?d)
- (?i (+ (gnus-range-length (cdr (assq 'dormant gnus-tmp-marked)))
- (gnus-range-length (cdr (assq 'tick gnus-tmp-marked))))
+ (?I (range-length (cdr (assq 'dormant gnus-tmp-marked))) ?d)
+ (?T (range-length (cdr (assq 'tick gnus-tmp-marked))) ?d)
+ (?i (+ (range-length (cdr (assq 'dormant gnus-tmp-marked)))
+ (range-length (cdr (assq 'tick gnus-tmp-marked))))
?d)
(?g gnus-tmp-group ?s)
(?G gnus-tmp-qualified-group ?s)
@@ -1482,9 +1483,9 @@ if it is a string, only list groups matching REGEXP."
(active (gnus-active group)))
(if (not active)
0
- (length (gnus-uncompress-range
- (gnus-range-difference
- (gnus-range-difference (list active) (gnus-info-read info))
+ (length (range-uncompress
+ (range-difference
+ (range-difference (list active) (gnus-info-read info))
seen))))))
;; Moving through the Group buffer (in topic mode) e.g. with C-n doesn't
@@ -1642,7 +1643,7 @@ Some value are bound so the form can use them."
'(mail post-mail))))
(cons 'level (or (gnus-info-level info) gnus-level-killed))
(cons 'score (or (gnus-info-score info) 0))
- (cons 'ticked (gnus-range-length (cdr (assq 'tick marked))))
+ (cons 'ticked (range-length (cdr (assq 'tick marked))))
(cons 'group-age (gnus-group-timestamp-delta group)))))
(while (and list
(not (eval (caar list) env)))
@@ -2065,9 +2066,9 @@ that group."
(- (1+ (cdr active)) (car active)))))
(gnus-summary-read-group
group (or all (and (numberp number)
- (zerop (+ number (gnus-range-length
+ (zerop (+ number (range-length
(cdr (assq 'tick marked)))
- (gnus-range-length
+ (range-length
(cdr (assq 'dormant marked)))))))
no-article nil no-display nil select-articles)))
@@ -2832,7 +2833,7 @@ according to the expiry settings. Note that this will
delete old
not-expirable articles, too."
(interactive (list (gnus-group-group-name) current-prefix-arg)
gnus-group-mode)
- (let ((articles (gnus-uncompress-range (gnus-active group))))
+ (let ((articles (range-uncompress (gnus-active group))))
(when (gnus-yes-or-no-p
(format "Do you really want to delete these %d articles forever? "
(length articles)))
@@ -3755,15 +3756,15 @@ or nil if no action could be taken."
'del '(tick))
(list (cdr (assq 'dormant marks))
'del '(dormant))))
- (setq unread (gnus-range-add (gnus-range-add
- unread (cdr (assq 'dormant marks)))
- (cdr (assq 'tick marks))))
+ (setq unread (range-concat (range-concat
+ unread (cdr (assq 'dormant marks)))
+ (cdr (assq 'tick marks))))
(gnus-add-marked-articles group 'tick nil nil 'force)
(gnus-add-marked-articles group 'dormant nil nil 'force))
;; Do auto-expirable marks if that's required.
(when (and (gnus-group-auto-expirable-p group)
(not (gnus-group-read-only-p group)))
- (gnus-range-map
+ (range-map
(lambda (article)
(gnus-add-marked-articles group 'expire (list article))
(gnus-request-set-mark group (list (list (list article)
@@ -3795,7 +3796,7 @@ Uses the process/prefix convention."
(cons nil (gnus-list-of-read-articles group))
(assq 'expire (gnus-info-marks info))))
(articles-to-expire
- (gnus-list-range-difference
+ (range-list-difference
(gnus-uncompress-sequence (cdr expirable))
(cdr (assq 'unexist (gnus-info-marks info)))))
(expiry-wait (gnus-group-find-parameter group 'expiry-wait))
@@ -4671,23 +4672,22 @@ and the second element is the address."
(and (not (setq marked (nthcdr 3 info)))
(or (null articles)
(setcdr (nthcdr 2 info)
- (list (list (cons type (gnus-compress-sequence
- articles t)))))))
+ (list (list (cons type (range-compress-list
+ articles)))))))
(and (not (setq m (assq type (car marked))))
(or (null articles)
(setcar marked
- (cons (cons type (gnus-compress-sequence articles t) )
+ (cons (cons type (range-compress-list articles))
(car marked)))))
(if force
(if (null articles)
(setcar (nthcdr 3 info)
(assq-delete-all type (car marked)))
- (setcdr m (gnus-compress-sequence articles t)))
- (setcdr m (gnus-compress-sequence
- (sort (nconc (gnus-uncompress-range (cdr m))
+ (setcdr m (range-compress-list articles)))
+ (setcdr m (range-compress-list
+ (sort (nconc (range-uncompress (cdr m))
(copy-sequence articles))
- #'<)
- t))))))
+ #'<)))))))
(declare-function gnus-summary-add-mark "gnus-sum" (article type))
diff --git a/lisp/gnus/gnus-int.el b/lisp/gnus/gnus-int.el
index 5a619e8f07..f00f2a0d04 100644
--- a/lisp/gnus/gnus-int.el
+++ b/lisp/gnus/gnus-int.el
@@ -802,7 +802,7 @@ If GROUP is nil, all groups on COMMAND-METHOD are scanned."
(when (> min 1)
(let* ((range (if (= min 2) 1 (cons 1 (1- min))))
(read (gnus-info-read info))
- (new-read (gnus-range-add read (list range))))
+ (new-read (range-concat read (list range))))
(setf (gnus-info-read info) new-read)))
info))))))
diff --git a/lisp/gnus/gnus-kill.el b/lisp/gnus/gnus-kill.el
index bee7860efd..bc49f8385e 100644
--- a/lisp/gnus/gnus-kill.el
+++ b/lisp/gnus/gnus-kill.el
@@ -349,7 +349,7 @@ Returns the number of articles marked as read."
(setq gnus-newsgroup-kill-headers
(mapcar #'mail-header-number headers))
(while headers
- (unless (gnus-member-of-range
+ (unless (range-member-p
(mail-header-number (car headers))
gnus-newsgroup-killed)
(push (mail-header-number (car headers))
diff --git a/lisp/gnus/gnus-range.el b/lisp/gnus/gnus-range.el
index da3ff47372..23a71bda20 100644
--- a/lisp/gnus/gnus-range.el
+++ b/lisp/gnus/gnus-range.el
@@ -26,10 +26,8 @@
;;; List and range functions
-(defsubst gnus-range-normalize (range)
- "Normalize RANGE.
-If RANGE is a single range, return (RANGE). Otherwise, return RANGE."
- (if (listp (cdr-safe range)) range (list range)))
+(require 'range)
+(define-obsolete-function-alias 'gnus-range-normalize #'range-normalize "29.1")
(defun gnus-last-element (list)
"Return last element of LIST."
@@ -56,10 +54,10 @@ If RANGE is a single range, return (RANGE). Otherwise,
return RANGE."
"Return a range comprising all the RANGES, which are pre-sorted.
RANGES will be destructively altered."
(setq ranges (delete nil ranges))
- (let* ((result (gnus-range-normalize (pop ranges)))
+ (let* ((result (range-normalize (pop ranges)))
(last (last result)))
(dolist (range ranges)
- (setq range (gnus-range-normalize range))
+ (setq range (range-normalize range))
;; Normalize the single-number case, so that we don't need to
;; special-case that so much.
(when (numberp (car last))
@@ -82,47 +80,8 @@ RANGES will be destructively altered."
(car result)
result)))
-(defun gnus-range-difference (range1 range2)
- "Return the range of elements in RANGE1 that do not appear in RANGE2.
-Both ranges must be in ascending order."
- (setq range1 (gnus-range-normalize range1))
- (setq range2 (gnus-range-normalize range2))
- (let* ((new-range (cons nil (copy-sequence range1)))
- (r new-range)
- ) ;; (safe t)
- (while (cdr r)
- (let* ((r1 (cadr r))
- (r2 (car range2))
- (min1 (if (numberp r1) r1 (car r1)))
- (max1 (if (numberp r1) r1 (cdr r1)))
- (min2 (if (numberp r2) r2 (car r2)))
- (max2 (if (numberp r2) r2 (cdr r2))))
-
- (cond ((> min1 max1)
- ;; Invalid range: may result from overlap condition (below)
- ;; remove Invalid range
- (setcdr r (cddr r)))
- ((and (= min1 max1)
- (listp r1))
- ;; Inefficient representation: may result from overlap
condition (below)
- (setcar (cdr r) min1))
- ((not min2)
- ;; All done with range2
- (setq r nil))
- ((< max1 min2)
- ;; No overlap: range1 precedes range2
- (pop r))
- ((< max2 min1)
- ;; No overlap: range2 precedes range1
- (pop range2))
- ((and (<= min2 min1) (<= max1 max2))
- ;; Complete overlap: range1 removed
- (setcdr r (cddr r)))
- (t
- (setcdr r (nconc (list (cons min1 (1- min2)) (cons (1+ max2)
max1)) (cddr r)))))))
- (cdr new-range)))
-
-
+(define-obsolete-function-alias 'gnus-range-difference
+ #'range-difference "29.1")
;;;###autoload
(defun gnus-sorted-difference (list1 list2)
@@ -200,57 +159,8 @@ LIST1 and LIST2 have to be sorted over <."
(setq list2 (cdr list2)))))
(nreverse out)))
-;;;###autoload
-(defun gnus-sorted-range-intersection (range1 range2)
- "Return intersection of RANGE1 and RANGE2.
-RANGE1 and RANGE2 have to be sorted over <."
- (let* (out
- (min1 (car range1))
- (max1 (if (numberp min1)
- (if (numberp (cdr range1))
- (prog1 (cdr range1)
- (setq range1 nil)) min1)
- (prog1 (cdr min1)
- (setq min1 (car min1)))))
- (min2 (car range2))
- (max2 (if (numberp min2)
- (if (numberp (cdr range2))
- (prog1 (cdr range2)
- (setq range2 nil)) min2)
- (prog1 (cdr min2)
- (setq min2 (car min2))))))
- (setq range1 (cdr range1)
- range2 (cdr range2))
- (while (and min1 min2)
- (cond ((< max1 min2) ; range1 precedes range2
- (setq range1 (cdr range1)
- min1 nil))
- ((< max2 min1) ; range2 precedes range1
- (setq range2 (cdr range2)
- min2 nil))
- (t ; some sort of overlap is occurring
- (let ((min (max min1 min2))
- (max (min max1 max2)))
- (setq out (if (= min max)
- (cons min out)
- (cons (cons min max) out))))
- (if (< max1 max2) ; range1 ends before range2
- (setq min1 nil) ; incr range1
- (setq min2 nil)))) ; incr range2
- (unless min1
- (setq min1 (car range1)
- max1 (if (numberp min1) min1 (prog1 (cdr min1) (setq min1 (car
min1))))
- range1 (cdr range1)))
- (unless min2
- (setq min2 (car range2)
- max2 (if (numberp min2) min2 (prog1 (cdr min2) (setq min2 (car
min2))))
- range2 (cdr range2))))
- (cond ((cdr out)
- (nreverse out))
- ((numberp (car out))
- out)
- (t
- (car out)))))
+(define-obsolete-function-alias 'gnus-sorted-range-intersection
+ #'range-intersection "29.1")
;;;###autoload
(defalias 'gnus-set-sorted-intersection 'gnus-sorted-nintersection)
@@ -327,315 +237,33 @@ LIST1 and LIST2 have to be sorted over <."
"Convert sorted list of numbers to a list of ranges or a single range.
If ALWAYS-LIST is non-nil, this function will always release a list of
ranges."
- (let* ((first (car numbers))
- (last (car numbers))
- result)
- (if (null numbers)
- nil
- (if (not (listp (cdr numbers)))
- numbers
- (while numbers
- (cond ((= last (car numbers)) nil) ;Omit duplicated number
- ((= (1+ last) (car numbers)) ;Still in sequence
- (setq last (car numbers)))
- (t ;End of one sequence
- (setq result
- (cons (if (= first last) first
- (cons first last))
- result))
- (setq first (car numbers))
- (setq last (car numbers))))
- (setq numbers (cdr numbers)))
- (if (and (not always-list) (null result))
- (if (= first last) (list first) (cons first last))
- (nreverse (cons (if (= first last) first (cons first last))
- result)))))))
+ (if always-list
+ (range-compress-list numbers)
+ (range-denormalize (range-compress-list numbers))))
(defalias 'gnus-uncompress-sequence 'gnus-uncompress-range)
-(defun gnus-uncompress-range (ranges)
- "Expand a list of ranges into a list of numbers.
-RANGES is either a single range on the form `(num . num)' or a list of
-these ranges."
- (let (first last result)
- (cond
- ((null ranges)
- nil)
- ((not (listp (cdr ranges)))
- (setq first (car ranges))
- (setq last (cdr ranges))
- (while (<= first last)
- (setq result (cons first result))
- (setq first (1+ first)))
- (nreverse result))
- (t
- (while ranges
- (if (atom (car ranges))
- (when (numberp (car ranges))
- (setq result (cons (car ranges) result)))
- (setq first (caar ranges))
- (setq last (cdar ranges))
- (while (<= first last)
- (setq result (cons first result))
- (setq first (1+ first))))
- (setq ranges (cdr ranges)))
- (nreverse result)))))
-
-(defun gnus-add-to-range (ranges list)
- "Return a list of ranges that has all articles from both RANGES and LIST.
-Note: LIST has to be sorted over `<'."
- (if (not ranges)
- (gnus-compress-sequence list t)
- (setq list (copy-sequence list))
- (unless (listp (cdr ranges))
- (setq ranges (list ranges)))
- (let ((out ranges)
- ilist lowest highest temp)
- (while (and ranges list)
- (setq ilist list)
- (setq lowest (or (and (atom (car ranges)) (car ranges))
- (caar ranges)))
- (while (and list (cdr list) (< (cadr list) lowest))
- (setq list (cdr list)))
- (when (< (car ilist) lowest)
- (setq temp list)
- (setq list (cdr list))
- (setcdr temp nil)
- (setq out (nconc (gnus-compress-sequence ilist t) out)))
- (setq highest (or (and (atom (car ranges)) (car ranges))
- (cdar ranges)))
- (while (and list (<= (car list) highest))
- (setq list (cdr list)))
- (setq ranges (cdr ranges)))
- (when list
- (setq out (nconc (gnus-compress-sequence list t) out)))
- (setq out (sort out (lambda (r1 r2)
- (< (or (and (atom r1) r1) (car r1))
- (or (and (atom r2) r2) (car r2))))))
- (setq ranges out)
- (while ranges
- (if (atom (car ranges))
- (when (cdr ranges)
- (if (atom (cadr ranges))
- (when (= (1+ (car ranges)) (cadr ranges))
- (setcar ranges (cons (car ranges)
- (cadr ranges)))
- (setcdr ranges (cddr ranges)))
- (when (= (1+ (car ranges)) (caadr ranges))
- (setcar (cadr ranges) (car ranges))
- (setcar ranges (cadr ranges))
- (setcdr ranges (cddr ranges)))))
- (when (cdr ranges)
- (if (atom (cadr ranges))
- (when (= (1+ (cdar ranges)) (cadr ranges))
- (setcdr (car ranges) (cadr ranges))
- (setcdr ranges (cddr ranges)))
- (when (= (1+ (cdar ranges)) (caadr ranges))
- (setcdr (car ranges) (cdadr ranges))
- (setcdr ranges (cddr ranges))))))
- (setq ranges (cdr ranges)))
- out)))
-
-(defun gnus-remove-from-range (range1 range2)
- "Return a range that has all articles from RANGE2 removed from RANGE1.
-The returned range is always a list. RANGE2 can also be a unsorted
-list of articles. RANGE1 is modified by side effects, RANGE2 is not
-modified."
- (if (or (null range1) (null range2))
- range1
- (let (out r1 r2 r1_min r1_max r2_min r2_max
- (range2 (copy-tree range2)))
- (setq range1 (if (listp (cdr range1)) range1 (list range1))
- range2 (sort (if (listp (cdr range2)) range2 (list range2))
- (lambda (e1 e2)
- (< (if (consp e1) (car e1) e1)
- (if (consp e2) (car e2) e2))))
- r1 (car range1)
- r2 (car range2)
- r1_min (if (consp r1) (car r1) r1)
- r1_max (if (consp r1) (cdr r1) r1)
- r2_min (if (consp r2) (car r2) r2)
- r2_max (if (consp r2) (cdr r2) r2))
- (while (and range1 range2)
- (cond ((< r2_max r1_min) ; r2 < r1
- (pop range2)
- (setq r2 (car range2)
- r2_min (if (consp r2) (car r2) r2)
- r2_max (if (consp r2) (cdr r2) r2)))
- ((and (<= r2_min r1_min) (<= r1_max r2_max)) ; r2 overlap r1
- (pop range1)
- (setq r1 (car range1)
- r1_min (if (consp r1) (car r1) r1)
- r1_max (if (consp r1) (cdr r1) r1)))
- ((and (<= r2_min r1_min) (<= r2_max r1_max)) ; r2 overlap min r1
- (pop range2)
- (setq r1_min (1+ r2_max)
- r2 (car range2)
- r2_min (if (consp r2) (car r2) r2)
- r2_max (if (consp r2) (cdr r2) r2)))
- ((and (<= r1_min r2_min) (<= r2_max r1_max)) ; r2 contained in r1
- (if (eq r1_min (1- r2_min))
- (push r1_min out)
- (push (cons r1_min (1- r2_min)) out))
- (pop range2)
- (if (< r2_max r1_max) ; finished with r1?
- (setq r1_min (1+ r2_max))
- (pop range1)
- (setq r1 (car range1)
- r1_min (if (consp r1) (car r1) r1)
- r1_max (if (consp r1) (cdr r1) r1)))
- (setq r2 (car range2)
- r2_min (if (consp r2) (car r2) r2)
- r2_max (if (consp r2) (cdr r2) r2)))
- ((and (<= r2_min r1_max) (<= r1_max r2_max)) ; r2 overlap max r1
- (if (eq r1_min (1- r2_min))
- (push r1_min out)
- (push (cons r1_min (1- r2_min)) out))
- (pop range1)
- (setq r1 (car range1)
- r1_min (if (consp r1) (car r1) r1)
- r1_max (if (consp r1) (cdr r1) r1)))
- ((< r1_max r2_min) ; r2 > r1
- (pop range1)
- (if (eq r1_min r1_max)
- (push r1_min out)
- (push (cons r1_min r1_max) out))
- (setq r1 (car range1)
- r1_min (if (consp r1) (car r1) r1)
- r1_max (if (consp r1) (cdr r1) r1)))))
- (when r1
- (if (eq r1_min r1_max)
- (push r1_min out)
- (push (cons r1_min r1_max) out))
- (pop range1))
- (while range1
- (push (pop range1) out))
- (nreverse out))))
-
-(defun gnus-member-of-range (number ranges)
- (if (not (listp (cdr ranges)))
- (and (>= number (car ranges))
- (<= number (cdr ranges)))
- (let ((not-stop t))
- (while (and ranges
- (if (numberp (car ranges))
- (>= number (car ranges))
- (>= number (caar ranges)))
- not-stop)
- (when (if (numberp (car ranges))
- (= number (car ranges))
- (and (>= number (caar ranges))
- (<= number (cdar ranges))))
- (setq not-stop nil))
- (setq ranges (cdr ranges)))
- (not not-stop))))
-
-(defun gnus-list-range-intersection (list ranges)
- "Return a list of numbers in LIST that are members of RANGES.
-LIST is a sorted list."
- (setq ranges (gnus-range-normalize ranges))
- (let (number result)
- (while (setq number (pop list))
- (while (and ranges
- (if (numberp (car ranges))
- (< (car ranges) number)
- (< (cdar ranges) number)))
- (setq ranges (cdr ranges)))
- (when (and ranges
- (if (numberp (car ranges))
- (= (car ranges) number)
- ;; (caar ranges) <= number <= (cdar ranges)
- (>= number (caar ranges))))
- (push number result)))
- (nreverse result)))
+(define-obsolete-function-alias 'gnus-uncompress-range
+ #'range-uncompress "29.1")
+
+(define-obsolete-function-alias 'gnus-add-to-range
+ #'range-add-list "29.1")
+
+(define-obsolete-function-alias 'gnus-remove-from-range
+ #'range-remove "29.1")
+
+(define-obsolete-function-alias 'gnus-member-of-range #'range-member-p "29.1")
+
+(define-obsolete-function-alias 'gnus-list-range-intersection
+ #'range-list-intersection "29.1")
(defalias 'gnus-inverse-list-range-intersection 'gnus-list-range-difference)
-(defun gnus-list-range-difference (list ranges)
- "Return a list of numbers in LIST that are not members of RANGES.
-LIST is a sorted list."
- (setq ranges (gnus-range-normalize ranges))
- (let (number result)
- (while (setq number (pop list))
- (while (and ranges
- (if (numberp (car ranges))
- (< (car ranges) number)
- (< (cdar ranges) number)))
- (setq ranges (cdr ranges)))
- (when (or (not ranges)
- (if (numberp (car ranges))
- (not (= (car ranges) number))
- ;; not ((caar ranges) <= number <= (cdar ranges))
- (< number (caar ranges))))
- (push number result)))
- (nreverse result)))
+(define-obsolete-function-alias 'gnus-list-range-difference
+ #'range-list-difference "29.1")
+
+(define-obsolete-function-alias 'gnus-range-length #'range-length "29.1")
-(defun gnus-range-length (range)
- "Return the length RANGE would have if uncompressed."
- (cond
- ((null range)
- 0)
- ((not (listp (cdr range)))
- (- (cdr range) (car range) -1))
- (t
- (let ((sum 0))
- (dolist (x range sum)
- (setq sum
- (+ sum (if (consp x) (- (cdr x) (car x) -1) 1))))))))
-
-(defun gnus-range-add (range1 range2)
- "Add RANGE2 to RANGE1 (nondestructively)."
- (unless (listp (cdr range1))
- (setq range1 (list range1)))
- (unless (listp (cdr range2))
- (setq range2 (list range2)))
- (let ((item1 (pop range1))
- (item2 (pop range2))
- range item selector)
- (while (or item1 item2)
- (setq selector
- (cond
- ((null item1) nil)
- ((null item2) t)
- ((and (numberp item1) (numberp item2)) (< item1 item2))
- ((numberp item1) (< item1 (car item2)))
- ((numberp item2) (< (car item1) item2))
- (t (< (car item1) (car item2)))))
- (setq item
- (or
- (let ((tmp1 item) (tmp2 (if selector item1 item2)))
- (cond
- ((null tmp1) tmp2)
- ((null tmp2) tmp1)
- ((and (numberp tmp1) (numberp tmp2))
- (cond
- ((eq tmp1 tmp2) tmp1)
- ((eq (1+ tmp1) tmp2) (cons tmp1 tmp2))
- ((eq (1+ tmp2) tmp1) (cons tmp2 tmp1))
- (t nil)))
- ((numberp tmp1)
- (cond
- ((and (>= tmp1 (car tmp2)) (<= tmp1 (cdr tmp2))) tmp2)
- ((eq (1+ tmp1) (car tmp2)) (cons tmp1 (cdr tmp2)))
- ((eq (1- tmp1) (cdr tmp2)) (cons (car tmp2) tmp1))
- (t nil)))
- ((numberp tmp2)
- (cond
- ((and (>= tmp2 (car tmp1)) (<= tmp2 (cdr tmp1))) tmp1)
- ((eq (1+ tmp2) (car tmp1)) (cons tmp2 (cdr tmp1)))
- ((eq (1- tmp2) (cdr tmp1)) (cons (car tmp1) tmp2))
- (t nil)))
- ((< (1+ (cdr tmp1)) (car tmp2)) nil)
- ((< (1+ (cdr tmp2)) (car tmp1)) nil)
- (t (cons (min (car tmp1) (car tmp2))
- (max (cdr tmp1) (cdr tmp2))))))
- (progn
- (if item (push item range))
- (if selector item1 item2))))
- (if selector
- (setq item1 (pop range1))
- (setq item2 (pop range2))))
- (if item (push item range))
- (reverse range)))
+(define-obsolete-function-alias 'gnus-range-add #'range-concat "29.1")
;;;###autoload
(defun gnus-add-to-sorted-list (list num)
@@ -649,18 +277,7 @@ LIST is a sorted list."
(setcdr prev (cons num list)))
(cdr top)))
-(defun gnus-range-map (func range)
- "Apply FUNC to each value contained by RANGE."
- (setq range (gnus-range-normalize range))
- (while range
- (let ((span (pop range)))
- (if (numberp span)
- (funcall func span)
- (let ((first (car span))
- (last (cdr span)))
- (while (<= first last)
- (funcall func first)
- (setq first (1+ first))))))))
+(define-obsolete-function-alias 'gnus-range-map #'range-map "29.1")
(provide 'gnus-range)
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el
index 0c281a997f..ccdaabe3c6 100644
--- a/lisp/gnus/gnus-registry.el
+++ b/lisp/gnus/gnus-registry.el
@@ -355,8 +355,13 @@ This is not required after changing
`gnus-registry-cache-file'."
"Load the registry from the cache file."
(interactive)
(let ((file gnus-registry-cache-file))
+ (gnus-message 5 "Initializing the registry")
(condition-case nil
- (gnus-registry-read file)
+ (progn
+ (gnus-registry-read file)
+ (gnus-registry-install-hooks)
+ (gnus-registry-install-shortcuts)
+ (setq gnus-registry-enabled t))
(file-error
;; Fix previous mis-naming of the registry file.
(let ((old-file-name
@@ -846,9 +851,9 @@ Overrides existing keywords with FORCE set non-nil."
(defun gnus-registry-register-message-ids ()
"Register the Message-ID of every article in the group."
- (unless (or (gnus-parameter-registry-ignore gnus-newsgroup-name)
- (null gnus-registry-register-all)
- (null (eieio-object-p gnus-registry-db)))
+ (unless (or (null gnus-registry-enabled)
+ (null gnus-registry-register-all)
+ (gnus-parameter-registry-ignore gnus-newsgroup-name))
(dolist (article gnus-newsgroup-articles)
(let* ((id (gnus-registry-fetch-message-id-fast article))
(groups (gnus-registry-get-id-key id 'group)))
@@ -949,13 +954,12 @@ FUNCTION should take two parameters, a mark symbol and
the cell value."
(defun gnus-registry-install-shortcuts ()
"Install the keyboard shortcuts and menus for the registry.
Uses `gnus-registry-marks' to find what shortcuts to install."
- (let (keys-plist)
- (setq gnus-registry-misc-menus nil)
- (gnus-registry-do-marks
- :char
- (lambda (mark data)
- (let ((function-format
- (format "gnus-registry-%%s-article-%s-mark" mark)))
+ (setq gnus-registry-misc-menus nil)
+ (gnus-registry-do-marks
+ :char
+ (lambda (mark data)
+ (let ((function-format
+ (format "gnus-registry-%%s-article-%s-mark" mark)))
;;; The following generates these functions:
;;; (defun gnus-registry-set-article-Important-mark (&rest articles)
@@ -967,39 +971,37 @@ Uses `gnus-registry-marks' to find what shortcuts to
install."
;;; (interactive (gnus-summary-work-articles current-prefix-arg))
;;; (gnus-registry-set-article-mark-internal 'Important articles t t))
- (dolist (remove '(t nil))
- (let* ((variant-name (if remove "remove" "set"))
- (function-name
- (intern (format function-format variant-name)))
- (shortcut (format "%c" (if remove (upcase data) data))))
- (defalias function-name
- (lambda (&rest articles)
- (:documentation
- (format
- "%s the %s mark over process-marked ARTICLES."
- (upcase-initials variant-name)
- mark))
- (interactive
- (gnus-summary-work-articles current-prefix-arg))
- (gnus-registry--set/remove-mark mark remove articles)))
- (push function-name keys-plist)
- (push shortcut keys-plist)
- (push (vector (format "%s %s"
- (upcase-initials variant-name)
- (symbol-name mark))
- function-name t)
- gnus-registry-misc-menus)
- (gnus-message 9 "Defined mark handling function %s"
- function-name))))))
- (define-key gnus-summary-mark-map "M"
- (apply #'define-keymap :prefix 'gnus-summary-mark-map
- keys-plist))
- (add-hook 'gnus-summary-menu-hook
- (lambda ()
- (easy-menu-add-item
- gnus-summary-misc-menu
- nil
- (cons "Registry Marks" gnus-registry-misc-menus))))))
+ (dolist (remove '(t nil))
+ (let* ((variant-name (if remove "remove" "set"))
+ (function-name
+ (intern (format function-format variant-name)))
+ (shortcut (format "%c" (if remove (upcase data) data))))
+ (defalias function-name
+ (lambda (&rest articles)
+ (:documentation
+ (format
+ "%s the %s mark over process-marked ARTICLES."
+ (upcase-initials variant-name)
+ mark))
+ (interactive
+ (gnus-summary-work-articles current-prefix-arg))
+ (gnus-registry--set/remove-mark mark remove articles)))
+ (keymap-set gnus-summary-mark-map
+ (concat "M " shortcut)
+ function-name)
+ (push (vector (format "%s %s"
+ (upcase-initials variant-name)
+ (symbol-name mark))
+ function-name t)
+ gnus-registry-misc-menus)
+ (gnus-message 9 "Defined mark handling function %s"
+ function-name))))))
+ (add-hook 'gnus-summary-menu-hook
+ (lambda ()
+ (easy-menu-add-item
+ gnus-summary-misc-menu
+ nil
+ (cons "Registry Marks" gnus-registry-misc-menus)))))
(define-obsolete-function-alias 'gnus-registry-user-format-function-M
#'gnus-registry-article-marks-to-chars "24.1")
@@ -1175,7 +1177,8 @@ non-nil."
(defun gnus-registry-clear ()
"Clear the registry."
(gnus-registry-unload-hook)
- (setq gnus-registry-db nil))
+ (setq gnus-registry-db nil
+ gnus-registry-enabled nil))
(gnus-add-shutdown 'gnus-registry-clear 'gnus)
@@ -1183,16 +1186,12 @@ non-nil."
(defun gnus-registry-initialize ()
"Initialize the Gnus registry."
(interactive)
- (gnus-message 5 "Initializing the registry")
- (gnus-registry-install-hooks)
- (gnus-registry-install-shortcuts)
(if (gnus-alive-p)
(gnus-registry-load)
(add-hook 'gnus-read-newsrc-el-hook #'gnus-registry-load)))
(defun gnus-registry-install-hooks ()
"Install the registry hooks."
- (setq gnus-registry-enabled t)
(add-hook 'gnus-summary-article-move-hook #'gnus-registry-action)
(add-hook 'gnus-summary-article-delete-hook #'gnus-registry-action)
(add-hook 'gnus-summary-article-expire-hook #'gnus-registry-action)
@@ -1212,10 +1211,9 @@ non-nil."
(remove-hook 'gnus-save-newsrc-hook #'gnus-registry-save)
(remove-hook 'gnus-read-newsrc-el-hook #'gnus-registry-load)
- (remove-hook 'gnus-summary-prepare-hook #'gnus-registry-register-message-ids)
- (setq gnus-registry-enabled nil))
+ (remove-hook 'gnus-summary-prepare-hook
#'gnus-registry-register-message-ids))
-(add-hook 'gnus-registry-unload-hook #'gnus-registry-unload-hook)
+(add-hook 'gnus-registry-unload-hook #'gnus-registry-clear)
(defun gnus-registry-install-p ()
"Return non-nil if the registry is enabled (and maybe enable it first).
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index 252e6e2229..2cf11fb12f 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -1884,13 +1884,12 @@ The info element is shared with the same element of
(ranges (gnus-info-read info))
news article)
(while articles
- (when (gnus-member-of-range
- (setq article (pop articles)) ranges)
+ (when (range-member-p (setq article (pop articles)) ranges)
(push article news)))
(when news
;; Enter this list into the group info.
(setf (gnus-info-read info)
- (gnus-remove-from-range (gnus-info-read info) (nreverse news)))
+ (range-remove (gnus-info-read info) (nreverse news)))
;; Set the number of unread articles in gnus-newsrc-hashtb.
(gnus-get-unread-articles-in-group info (gnus-active group))
@@ -2362,10 +2361,10 @@ The form should return either t or nil."
ticked (cdr (assq 'tick marks)))
(when (or dormant ticked)
(setf (gnus-info-read info)
- (gnus-add-to-range
+ (range-add-list
(gnus-info-read info)
- (nconc (gnus-uncompress-range dormant)
- (gnus-uncompress-range ticked)))))))))
+ (nconc (range-uncompress dormant)
+ (range-uncompress ticked)))))))))
(defun gnus-load (file)
"Load FILE, but in such a way that read errors can be reported."
@@ -2457,8 +2456,7 @@ The form should return either t or nil."
(unless (nthcdr 3 info)
(nconc info (list nil)))
(setf (gnus-info-marks info)
- (list (cons 'tick (gnus-compress-sequence
- (sort (cdr m) #'<) t))))))
+ (list (cons 'tick (range-compress-list (sort (cdr m) #'<)))))))
(setq newsrc killed)
(while newsrc
(setcar newsrc (caar newsrc))
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index d3e476b5d6..8fb07d5905 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -5755,7 +5755,7 @@ If SELECT-ARTICLES, only select those articles from
GROUP."
;; (let ((n (cdr (gnus-active group))))
;; (lambda () (> number (- n display))))
(setq select-articles
- (gnus-uncompress-range
+ (range-uncompress
(cons (let ((tmp (- (cdr (gnus-active group)) display)))
(if (> tmp 0)
tmp
@@ -5928,7 +5928,7 @@ If SELECT-ARTICLES, only select those articles from
GROUP."
"Find out what articles the user wants to read."
(let* ((only-read-p t)
(articles
- (gnus-list-range-difference
+ (range-list-difference
;; Select all articles if `read-all' is non-nil, or if there
;; are no unread articles.
(if (or read-all
@@ -5943,13 +5943,13 @@ If SELECT-ARTICLES, only select those articles from
GROUP."
(or
(if gnus-newsgroup-maximum-articles
(let ((active (gnus-active group)))
- (gnus-uncompress-range
+ (range-uncompress
(cons (max (car active)
(- (cdr active)
gnus-newsgroup-maximum-articles
-1))
(cdr active))))
- (gnus-uncompress-range (gnus-active group)))
+ (range-uncompress (gnus-active group)))
(gnus-cache-articles-in-group group))
;; Select only the "normal" subset of articles.
(setq only-read-p nil)
@@ -6040,7 +6040,7 @@ If SELECT-ARTICLES, only select those articles from
GROUP."
(defun gnus-killed-articles (killed articles)
(let (out)
(while articles
- (when (inline (gnus-member-of-range (car articles) killed))
+ (when (inline (range-member-p (car articles) killed))
(push (car articles) out))
(setq articles (cdr articles)))
out))
@@ -6078,7 +6078,7 @@ If SELECT-ARTICLES, only select those articles from
GROUP."
;; Adjust "simple" lists - compressed yet unsorted
((eq mark-type 'list)
;; Simultaneously uncompress and clip to active range
- ;; See gnus-uncompress-range for a description of possible marks
+ ;; See range-uncompress for a description of possible marks
(let (l lh)
(if (not (cadr marks))
(set var nil)
@@ -6177,10 +6177,10 @@ If SELECT-ARTICLES, only select those articles from
GROUP."
;; When exiting the group, everything that's previously been
;; unseen is now seen.
(when (eq (cdr type) 'seen)
- (setq list (gnus-range-add list gnus-newsgroup-unseen)))
+ (setq list (range-concat list gnus-newsgroup-unseen)))
(when (eq (gnus-article-mark-to-type (cdr type)) 'list)
- (setq list (gnus-compress-sequence (set symbol (sort list #'<)) t)))
+ (setq list (range-compress-list (set symbol (sort list #'<)))))
(when (and (gnus-check-backend-function
'request-set-mark gnus-newsgroup-name)
@@ -6189,20 +6189,19 @@ If SELECT-ARTICLES, only select those articles from
GROUP."
;; Don't do anything about marks for articles we
;; didn't actually get any headers for.
(del
- (gnus-list-range-intersection
+ (range-list-intersection
gnus-newsgroup-articles
- (gnus-remove-from-range (copy-tree old) list)))
+ (range-remove (copy-tree old) list)))
(add
- (gnus-list-range-intersection
+ (range-list-intersection
gnus-newsgroup-articles
- (gnus-remove-from-range
- (copy-tree list) old))))
+ (range-remove (copy-tree list) old))))
(when add
(push (list add 'add (list (cdr type))) delta-marks))
(when del
;; Don't delete marks from outside the active range.
;; This shouldn't happen, but is a sanity check.
- (setq del (gnus-sorted-range-intersection
+ (setq del (range-intersection
(gnus-active gnus-newsgroup-name) del))
(push (list del 'del (list (cdr type))) delta-marks))))
@@ -6386,7 +6385,7 @@ The resulting hash table is returned, or nil if no Xrefs
were found."
(setq ninfo (cons 1 (1- (car active))))
(setq ninfo (gnus-info-read info)))
;; Then we add the read articles to the range.
- (gnus-add-to-range
+ (range-add-list
ninfo (setq articles (sort articles #'<))))))
(defun gnus-group-make-articles-read (group articles)
@@ -6967,10 +6966,10 @@ displayed, no centering will be performed."
(marked (gnus-info-marks info))
(active (gnus-active group)))
(and info active
- (gnus-list-range-difference
- (gnus-list-range-difference
+ (range-list-difference
+ (range-list-difference
(gnus-sorted-complement
- (gnus-uncompress-range
+ (range-uncompress
(if gnus-newsgroup-maximum-articles
(cons (max (car active)
(- (cdr active)
@@ -7129,12 +7128,11 @@ The prefix argument ALL means to select all articles."
(when group
(when gnus-newsgroup-kill-headers
(setq gnus-newsgroup-killed
- (gnus-compress-sequence
+ (range-compress-list
(gnus-sorted-union
- (gnus-list-range-intersection
+ (range-list-intersection
gnus-newsgroup-unselected gnus-newsgroup-killed)
- gnus-newsgroup-unreads)
- t)))
+ gnus-newsgroup-unreads))))
(unless (listp (cdr gnus-newsgroup-killed))
(setq gnus-newsgroup-killed (list gnus-newsgroup-killed)))
(let ((headers gnus-newsgroup-headers)
@@ -10241,8 +10239,8 @@ ACTION can be either `move' (the default), `crosspost'
or `copy'."
(cdr art-group))
(push 'read to-marks)
(setf (gnus-info-read info)
- (gnus-add-to-range (gnus-info-read info)
- (list (cdr art-group)))))
+ (range-add-list (gnus-info-read info)
+ (list (cdr art-group)))))
;; See whether the article is to be put in the cache.
(let* ((expirable (gnus-group-auto-expirable-p to-group))
@@ -10525,7 +10523,7 @@ This will be the case if the article has both been
mailed and posted."
;; This backend supports expiry.
(let* ((total (gnus-group-total-expirable-p gnus-newsgroup-name))
(expirable
- (gnus-list-range-difference
+ (range-list-difference
(if total
(progn
;; We need to update the info for
@@ -11898,7 +11896,8 @@ Returns nil if no threads were there to be hidden."
(beginning-of-line)
(let ((start (point))
(starteol (line-end-position))
- (article (gnus-summary-article-number)))
+ (article (unless (gnus-summary-article-intangible-p)
+ (gnus-summary-article-number))))
;; Go forward until either the buffer ends or the subthread ends.
(when (and (not (eobp))
(or (zerop (gnus-summary-next-thread 1 t))
@@ -11912,7 +11911,9 @@ Returns nil if no threads were there to be hidden."
(let ((ol (make-overlay starteol (point) nil t nil)))
(overlay-put ol 'invisible 'gnus-sum)
(overlay-put ol 'evaporate t)))
- (gnus-summary-goto-subject article)
+ (if article
+ (gnus-summary-goto-subject article)
+ (gnus-summary-position-point))
;; We moved backward past the start point (invisible thread?)
(when (> start (point))
(goto-char starteol)))
@@ -12871,8 +12872,8 @@ UNREAD is a sorted list."
(gnus-find-method-for-group group)
'server-marks)
(gnus-check-backend-function 'request-set-mark group))
- (let ((del (gnus-remove-from-range (gnus-info-read info) read))
- (add (gnus-remove-from-range read (gnus-info-read info))))
+ (let ((del (range-remove (gnus-info-read info) read))
+ (add (range-remove read (gnus-info-read info))))
(when (or add del)
(unless (gnus-check-group group)
(error "Can't open server for %s" group))
@@ -13130,10 +13131,10 @@ If ALL is a number, fetch this number of articles."
;; Some nntp servers lie about their active range. When
;; this happens, the active range can be in the millions.
;; Use a compressed range to avoid creating a huge list.
- (gnus-range-difference
- (gnus-range-difference (list gnus-newsgroup-active) old)
+ (range-difference
+ (range-difference (list gnus-newsgroup-active) old)
gnus-newsgroup-unexist))
- (setq len (gnus-range-length older))
+ (setq len (range-length older))
(cond
((null older) nil)
((numberp all)
@@ -13150,9 +13151,9 @@ If ALL is a number, fetch this number of articles."
(push max older)
(setq all (1- all)
max (1- max))))))
- (setq older (gnus-uncompress-range older))))
+ (setq older (range-uncompress older))))
(all
- (setq older (gnus-uncompress-range older)))
+ (setq older (range-uncompress older)))
(t
(when (and (numberp gnus-large-newsgroup)
(> len gnus-large-newsgroup))
@@ -13187,7 +13188,7 @@ If ALL is a number, fetch this number of articles."
(push max older)
(setq all (1- all)
max (1- max))))))))))
- (setq older (gnus-uncompress-range older))))
+ (setq older (range-uncompress older))))
(if (not older)
(message "No old news.")
(gnus-summary-insert-articles older)
diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el
index d2f5b9a97e..5d0c0e2654 100644
--- a/lisp/gnus/mail-source.el
+++ b/lisp/gnus/mail-source.el
@@ -31,6 +31,7 @@
(autoload 'pop3-movemail "pop3")
(autoload 'pop3-get-message-count "pop3")
(require 'mm-util)
+(require 'gnus-range)
(require 'message) ;; for `message-directory'
(defvar display-time-mail-function)
@@ -454,7 +455,7 @@ the `mail-source-keyword-map' variable."
search))))
:user)))
user-auth)
- ((and
+ ((and ; cf. 'auth-source-pick-first-password'
(eq keyword :password)
(setq pass-auth
(plist-get
@@ -1048,8 +1049,6 @@ This only works when `display-time' is enabled."
(autoload 'imap-range-to-message-set "imap")
(autoload 'nnheader-ms-strip-cr "nnheader")
-(autoload 'gnus-compress-sequence "gnus-range")
-
(defvar mail-source-imap-file-coding-system 'binary
"Coding system for the crashbox made by `mail-source-fetch-imap'.")
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 8f11e538c5..a6c6a16653 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -4357,7 +4357,11 @@ it is left unchanged."
(defun message-update-smtp-method-header ()
"Insert an X-Message-SMTP-Method header according to `message-server-alist'."
(unless (message-fetch-field "X-Message-SMTP-Method")
- (let ((from (cadr (mail-extract-address-components (message-fetch-field
"From"))))
+ (let ((from (cadr (mail-extract-address-components
+ (save-restriction
+ (widen)
+ (message-narrow-to-headers-or-head)
+ (message-fetch-field "From")))))
method)
(catch 'exit
(dolist (server message-server-alist)
@@ -4901,7 +4905,18 @@ If you always want Gnus to send messages in one piece,
set
(message-generate-headers '(Lines)))
;; Remove some headers.
(message-remove-header message-ignored-mail-headers t)
- (mail-encode-encoded-word-buffer))
+ (mail-encode-encoded-word-buffer)
+ ;; Then check for suspicious addresses.
+ (dolist (hdr '("To" "Cc" "Bcc"))
+ (let ((addr (message-fetch-field hdr)))
+ (when (stringp addr)
+ (dolist (address (mail-header-parse-addresses addr t))
+ (when-let ((warning (textsec-suspicious-p
+ address 'email-address-header)))
+ (unless (y-or-n-p
+ (format "Suspicious address: %s; send anyway?"
+ warning))
+ (user-error "Suspicious address %s" address))))))))
(goto-char (point-max))
;; require one newline at the end.
(or (= (preceding-char) ?\n)
diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el
index b110750c09..c40c38a95f 100644
--- a/lisp/gnus/mm-view.el
+++ b/lisp/gnus/mm-view.el
@@ -504,8 +504,6 @@ If MODE is not set, try to find mode automatically."
(setq coding-system (mm-find-buffer-file-coding-system)))
(setq text (buffer-string))))
(with-temp-buffer
- (buffer-disable-undo)
- (mm-enable-multibyte)
(insert (cond ((eq charset 'gnus-decoded)
(with-current-buffer (mm-handle-buffer handle)
(buffer-string)))
diff --git a/lisp/gnus/nnheader.el b/lisp/gnus/nnheader.el
index 8b3718ed7e..c1c5f00ff7 100644
--- a/lisp/gnus/nnheader.el
+++ b/lisp/gnus/nnheader.el
@@ -27,6 +27,7 @@
;;; Code:
(eval-when-compile (require 'cl-lib))
+(require 'range)
(defvar gnus-decode-encoded-word-function)
(defvar gnus-decode-encoded-address-function)
@@ -44,8 +45,6 @@
(require 'mm-util)
(require 'gnus-util)
(autoload 'gnus-remove-odd-characters "gnus-sum")
-(autoload 'gnus-range-add "gnus-range")
-(autoload 'gnus-remove-from-range "gnus-range")
;; FIXME none of these are used explicitly in this file.
(autoload 'gnus-sorted-intersection "gnus-range")
(autoload 'gnus-intersection "gnus-range")
@@ -1044,10 +1043,9 @@ See `find-file-noselect' for the arguments."
mark
(cond
((eq what 'add)
- (gnus-range-add (cdr (assoc mark backend-marks)) range))
+ (range-concat (cdr (assoc mark backend-marks)) range))
((eq what 'del)
- (gnus-remove-from-range
- (cdr (assoc mark backend-marks)) range))
+ (range-remove (cdr (assoc mark backend-marks)) range))
((eq what 'set)
range))
backend-marks)))))
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
index ab4243e867..afd5418912 100644
--- a/lisp/gnus/nnimap.el
+++ b/lisp/gnus/nnimap.el
@@ -40,6 +40,7 @@
(autoload 'auth-source-forget+ "auth-source")
(autoload 'auth-source-search "auth-source")
+(autoload 'auth-info-password "auth-source")
(nnoo-declare nnimap)
@@ -245,7 +246,7 @@ during splitting, which may be slow."
(nnimap-header-parameters))
t)
(unless (process-live-p (get-buffer-process (current-buffer)))
- (error "Server closed connection"))
+ (error "IMAP server %S closed connection" nnimap-address))
(nnimap-transform-headers)
(nnheader-remove-cr-followed-by-lf))
(insert-buffer-substring
@@ -407,10 +408,7 @@ during splitting, which may be slow."
:create t))))
(if found
(list (plist-get found :user)
- (let ((secret (plist-get found :secret)))
- (if (functionp secret)
- (funcall secret)
- secret))
+ (auth-info-password found)
(plist-get found :save-function))
nil)))
@@ -1662,13 +1660,13 @@ If LIMIT, first try to limit the search to the N last
articles."
(cdr (assoc '%Seen flags))
(cdr (assoc '%Deleted flags))))
(cdr (assoc '%Flagged flags)))))
- (read (gnus-range-difference
+ (read (range-difference
(cons start-article high) unread)))
(when (> start-article 1)
(setq read
(gnus-range-nconcat
(if (> start-article 1)
- (gnus-sorted-range-intersection
+ (range-intersection
(cons 1 (1- start-article))
(gnus-info-read info))
(gnus-info-read info))
@@ -1693,7 +1691,7 @@ If LIMIT, first try to limit the search to the N last
articles."
(pop old-marks)
(when (and old-marks
(> start-article 1))
- (setq old-marks (gnus-range-difference
+ (setq old-marks (range-difference
old-marks
(cons start-article high)))
(setq new-marks (gnus-range-nconcat old-marks new-marks)))
@@ -1704,15 +1702,15 @@ If LIMIT, first try to limit the search to the N last
articles."
(active (gnus-active group))
(unexists
(if completep
- (gnus-range-difference
+ (range-difference
active
(gnus-compress-sequence existing))
- (gnus-add-to-range
+ (range-add-list
(cdr old-unexists)
- (gnus-list-range-difference
+ (range-list-difference
existing (gnus-active group))))))
(when (> (car active) 1)
- (setq unexists (gnus-range-add
+ (setq unexists (range-concat
(cons 1 (1- (car active)))
unexists)))
(if old-unexists
@@ -1735,10 +1733,9 @@ If LIMIT, first try to limit the search to the N last
articles."
(defun nnimap-update-qresync-info (info existing vanished flags)
;; Add all the vanished articles to the list of read articles.
(setf (gnus-info-read info)
- (gnus-add-to-range
- (gnus-add-to-range
- (gnus-range-add (gnus-info-read info)
- vanished)
+ (range-add-list
+ (range-add-list
+ (range-concat (gnus-info-read info) vanished)
(cdr (assq '%Flagged flags)))
(cdr (assq '%Seen flags))))
(let ((marks (gnus-info-marks info)))
@@ -1752,9 +1749,9 @@ If LIMIT, first try to limit the search to the N last
articles."
(setq marks (delq ticks marks))
(pop ticks)
;; Add the new marks we got.
- (setq ticks (gnus-add-to-range ticks new-marks))
+ (setq ticks (range-add-list ticks new-marks))
;; Remove the marks from messages that don't have them.
- (setq ticks (gnus-remove-from-range
+ (setq ticks (range-remove
ticks
(gnus-compress-sequence
(gnus-sorted-complement existing new-marks))))
@@ -1764,7 +1761,7 @@ If LIMIT, first try to limit the search to the N last
articles."
;; Add vanished to the list of unexisting articles.
(when vanished
(let* ((old-unexists (assq 'unexist marks))
- (unexists (gnus-range-add (cdr old-unexists) vanished)))
+ (unexists (range-concat (cdr old-unexists) vanished)))
(if old-unexists
(setcdr old-unexists unexists)
(push (cons 'unexist unexists) marks)))
@@ -2244,7 +2241,7 @@ Return the server's response to the SELECT or EXAMINE
command."
(while (re-search-forward "^\\([0-9]+\\) OK\\b" nil t)
(setq sequence (string-to-number (match-string 1)))
(when (setq range (cadr (assq sequence sequences)))
- (push (gnus-uncompress-range range) copied)))
+ (push (range-uncompress range) copied)))
(gnus-compress-sequence (sort (apply #'nconc copied) #'<))))
(defun nnimap-new-articles (flags)
diff --git a/lisp/gnus/nnmaildir.el b/lisp/gnus/nnmaildir.el
index 690761a2d6..30f473b129 100644
--- a/lisp/gnus/nnmaildir.el
+++ b/lisp/gnus/nnmaildir.el
@@ -1006,10 +1006,10 @@ This variable is set by `nnmaildir-request-article'.")
existing (nnmaildir--grp-nlist group)
existing (mapcar #'car existing)
existing (nreverse existing)
- existing (gnus-compress-sequence existing 'always-list)
+ existing (range-compress-list existing)
missing (list (cons 1 (nnmaildir--group-maxnum
nnmaildir--cur-server group)))
- missing (gnus-range-difference missing existing)
+ missing (range-difference missing existing)
dir (nnmaildir--srv-dir nnmaildir--cur-server)
dir (nnmaildir--srvgrp-dir dir gname)
dir (nnmaildir--nndir dir)
@@ -1076,10 +1076,10 @@ This variable is set by `nnmaildir-request-article'.")
(let ((article (nnmaildir--flist-art flist prefix)))
(when article
(push (nnmaildir--art-num article) article-list))))))
- (setq ranges (gnus-add-to-range ranges (sort article-list #'<)))))
+ (setq ranges (range-add-list ranges (sort article-list #'<)))))
(if (eq mark 'read) (setq read ranges)
(if ranges (setq marks (cons (cons mark ranges) marks)))))
- (setf (gnus-info-read info) (gnus-range-add read missing))
+ (setf (gnus-info-read info) (range-concat read missing))
(gnus-info-set-marks info marks 'extend)
(setf (nnmaildir--grp-mmth group) new-mmth)
info)))
@@ -1548,11 +1548,11 @@ This variable is set by `nnmaildir-request-article'.")
(unless group
(setf (nnmaildir--srv-error nnmaildir--cur-server)
(if gname (concat "No such group: " gname) "No current group"))
- (throw 'return (gnus-uncompress-range ranges)))
+ (throw 'return (range-uncompress ranges)))
(setq gname (nnmaildir--grp-name group)
pgname (nnmaildir--pgname nnmaildir--cur-server gname))
(if (nnmaildir--param pgname 'read-only)
- (throw 'return (gnus-uncompress-range ranges)))
+ (throw 'return (range-uncompress ranges)))
(setq time (nnmaildir--param pgname 'expire-age))
(unless time
(setq time (or (and nnmail-expiry-wait-function
@@ -1564,7 +1564,7 @@ This variable is set by `nnmaildir-request-article'.")
(setq time (round (* time 86400))))))
(when no-force
(unless (integerp time) ;; handle 'never
- (throw 'return (gnus-uncompress-range ranges)))
+ (throw 'return (range-uncompress ranges)))
(setq boundary (time-since time)))
(setq dir (nnmaildir--srv-dir nnmaildir--cur-server)
dir (nnmaildir--srvgrp-dir dir gname)
@@ -1686,7 +1686,7 @@ This variable is set by `nnmaildir-request-article'.")
(setf (nnmaildir--srv-error nnmaildir--cur-server)
(concat "No such group: " gname))
(dolist (action actions)
- (setq ranges (gnus-range-add ranges (car action))))
+ (setq ranges (range-concat ranges (car action))))
(throw 'return ranges))
(setq nlist (nnmaildir--grp-nlist group)
marksdir (nnmaildir--srv-dir nnmaildir--cur-server)
diff --git a/lisp/gnus/nnmairix.el b/lisp/gnus/nnmairix.el
index 8ca1cf0fe8..4e8e329f98 100644
--- a/lisp/gnus/nnmairix.el
+++ b/lisp/gnus/nnmairix.el
@@ -597,7 +597,7 @@ Other back ends might or might not work.")
(dolist (cur actions)
(let ((type (nth 1 cur))
(cmdmarks (nth 2 cur))
- (range (gnus-uncompress-range (nth 0 cur)))
+ (range (range-uncompress (nth 0 cur)))
mid ogroup temp) ;; number method
(when (and corr
(not (zerop (cadr corr))))
diff --git a/lisp/gnus/nnmbox.el b/lisp/gnus/nnmbox.el
index 5a350aac74..96ecc34e15 100644
--- a/lisp/gnus/nnmbox.el
+++ b/lisp/gnus/nnmbox.el
@@ -529,7 +529,7 @@
;; add article to index, either by building complete list
;; in reverse order, or as a list of ranges.
(if (not nnmbox-group-building-active-articles)
- (setcdr entry (gnus-add-to-range (cdr entry) (list article)))
+ (setcdr entry (range-add-list (cdr entry) (list article)))
(when (memq article (cdr entry))
(switch-to-buffer nnmbox-mbox-buffer)
(error "Article %s:%d already exists!" group article))
@@ -548,10 +548,10 @@
nnmbox-group-active-articles)
(car nnmbox-group-active-articles)))))
;; remove article from index
- (setcdr entry (gnus-remove-from-range (cdr entry) (list article)))))
+ (setcdr entry (range-remove (cdr entry) (list article)))))
(defun nnmbox-is-article-active-p (article)
- (gnus-member-of-range
+ (range-member-p
article
(cdr (assoc nnmbox-current-group
nnmbox-group-active-articles))))
diff --git a/lisp/gnus/nnml.el b/lisp/gnus/nnml.el
index afdb0c780a..7fe2b516cc 100644
--- a/lisp/gnus/nnml.el
+++ b/lisp/gnus/nnml.el
@@ -1078,21 +1078,20 @@ Use the nov database for the current group if
available."
;; #### doing anything on them.
;; 2 a/ read articles:
(let ((read (gnus-info-read info)))
- (setq read (gnus-remove-from-range read (list new-number)))
- (when (gnus-member-of-range old-number read)
- (setq read (gnus-remove-from-range read (list old-number)))
- (setq read (gnus-add-to-range read (list new-number))))
+ (setq read (range-remove read (list new-number)))
+ (when (range-member-p old-number read)
+ (setq read (range-remove read (list old-number)))
+ (setq read (range-add-list read (list new-number))))
(setf (gnus-info-read info) read))
;; 2 b/ marked articles:
(let ((oldmarks (gnus-info-marks info))
mark newmarks)
(while (setq mark (pop oldmarks))
- (setcdr mark (gnus-remove-from-range (cdr mark)
- (list new-number)))
- (when (gnus-member-of-range old-number (cdr mark))
- (setcdr mark (gnus-remove-from-range (cdr mark)
- (list old-number)))
- (setcdr mark (gnus-add-to-range (cdr mark)
+ (setcdr mark (range-remove (cdr mark) (list new-number)))
+ (when (range-member-p old-number (cdr mark))
+ (setcdr mark (range-remove (cdr mark)
+ (list old-number)))
+ (setcdr mark (range-add-list (cdr mark)
(list new-number))))
(push mark newmarks))
(setf (gnus-info-marks info) newmarks))
diff --git a/lisp/gnus/nnnil.el b/lisp/gnus/nnnil.el
index 36a8bc4581..092b53298a 100644
--- a/lisp/gnus/nnnil.el
+++ b/lisp/gnus/nnnil.el
@@ -40,7 +40,7 @@
(defun nnnil-open-server (_server &optional _definitions)
t)
-(defun nnnil-close-server (&optional _server)
+(defun nnnil-close-server (&optional _server _defs)
t)
(defun nnnil-request-close ()
diff --git a/lisp/gnus/nnselect.el b/lisp/gnus/nnselect.el
index 9d744ea411..205456a57d 100644
--- a/lisp/gnus/nnselect.el
+++ b/lisp/gnus/nnselect.el
@@ -207,7 +207,7 @@ as `(keyfunc member)' and the corresponding element is just
(inline-quote
(cond
((eq ,type 'range)
- (nnselect-categorize (gnus-uncompress-range ,articles)
+ (nnselect-categorize (range-uncompress ,articles)
#'nnselect-article-group #'nnselect-article-number))
((eq ,type 'tuple)
(nnselect-categorize ,articles
@@ -542,10 +542,10 @@ If this variable is nil, or if the provided function
returns nil,
(group-info (gnus-get-info artgroup))
(marks (gnus-info-marks group-info))
(unread (gnus-uncompress-sequence
- (gnus-range-difference (gnus-active artgroup)
- (gnus-info-read group-info)))))
+ (range-difference (gnus-active artgroup)
+ (gnus-info-read group-info)))))
(setf (gnus-info-read info)
- (gnus-add-to-range
+ (range-add-list
(gnus-info-read info)
(delq nil (mapcar
(lambda (art)
@@ -567,7 +567,7 @@ If this variable is nil, or if the provided function
returns nil,
artids))
(t
(setq mark-list
- (gnus-uncompress-range mark-list))
+ (range-uncompress mark-list))
(mapcar
(lambda (id)
(when (memq (cdr id) mark-list)
@@ -866,16 +866,16 @@ article came from is also searched."
(when (and (gnus-check-backend-function
'request-set-mark artgroup)
(not (gnus-article-unpropagatable-p type)))
- (let* ((old (gnus-list-range-intersection
+ (let* ((old (range-list-intersection
artlist
(alist-get type (gnus-info-marks group-info))))
- (del (gnus-remove-from-range (copy-tree old) list))
- (add (gnus-remove-from-range (copy-tree list) old)))
+ (del (range-remove (copy-tree old) list))
+ (add (range-remove (copy-tree list) old)))
(when add (push (list add 'add (list type)) delta-marks))
(when del
;; Don't delete marks from outside the active range.
;; This shouldn't happen, but is a sanity check.
- (setq del (gnus-sorted-range-intersection
+ (setq del (range-intersection
(gnus-active artgroup) del))
(push (list del 'del (list type)) delta-marks))))
@@ -910,18 +910,18 @@ article came from is also searched."
(< (car elt1) (car elt2))))))
(t
(setq list
- (gnus-compress-sequence
+ (range-compress-list
(gnus-sorted-union
(gnus-sorted-difference
(gnus-uncompress-sequence
(alist-get type (gnus-info-marks group-info)))
artlist)
- (sort list #'<)) t)))
+ (sort list #'<)))))
;; When exiting the group, everything that's previously been
;; unseen is now seen.
(when (eq type 'seen)
- (setq list (gnus-range-add
+ (setq list (range-concat
list (cdr (assoc artgroup select-unseen))))))
(when (or list (eq type 'unexist))
@@ -944,9 +944,9 @@ article came from is also searched."
;; update read and unread
(gnus-update-read-articles
artgroup
- (gnus-uncompress-range
- (gnus-add-to-range
- (gnus-remove-from-range
+ (range-uncompress
+ (range-add-list
+ (range-remove
old-unread
(cdr (assoc artgroup select-reads)))
(sort (cdr (assoc artgroup select-unreads)) #'<))))
diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el
index 990bb4426f..0dcff9743a 100644
--- a/lisp/gnus/nntp.el
+++ b/lisp/gnus/nntp.el
@@ -36,6 +36,7 @@
(eval-when-compile (require 'cl-lib))
(autoload 'auth-source-search "auth-source")
+(autoload 'auth-info-password "auth-source")
(defgroup nntp nil
"NNTP access for Gnus."
@@ -305,7 +306,7 @@ backend doesn't catch this error.")
(nntp-record-command string))
(process-send-string process (concat string nntp-end-of-line))
(or (memq (process-status process) '(open run))
- (nntp-report "Server closed connection")))
+ (nntp-report "NNTP server %S closed connection" nntp-address)))
(defun nntp-record-command (string)
"Record the command STRING."
@@ -368,7 +369,7 @@ retried once before actually displaying the error report."
(nntp-snarf-error-message)
nil))
((not (memq (process-status process) '(open run)))
- (nntp-report "Server closed connection"))
+ (nntp-report "NNTP server %S closed connection" nntp-address))
(t
(goto-char (point-max))
(let ((limit (point-min))
@@ -1175,10 +1176,7 @@ If SEND-IF-FORCE, only send authinfo to the server if the
"563" "nntps" "snews"))))
(auth-user (plist-get auth-info :user))
(auth-force (plist-get auth-info :force))
- (auth-passwd (plist-get auth-info :secret))
- (auth-passwd (if (functionp auth-passwd)
- (funcall auth-passwd)
- auth-passwd))
+ (auth-passwd (auth-info-password auth-info))
(force (or (netrc-get alist "force")
nntp-authinfo-force
auth-force))
@@ -1433,7 +1431,7 @@ If SEND-IF-FORCE, only send authinfo to the server if the
;; be the process's former output buffer (i.e. now killed)
(or (and process
(memq (process-status process) '(open run)))
- (nntp-report "Server closed connection")))))
+ (nntp-report "NNTP server %S closed connection" nntp-address)))))
(defun nntp-accept-response ()
"Wait for output from the process that outputs to BUFFER."
@@ -1452,7 +1450,7 @@ If SEND-IF-FORCE, only send authinfo to the server if the
(when group
(let ((entry (nntp-find-connection-entry nntp-server-buffer)))
(cond ((not entry)
- (nntp-report "Server closed connection"))
+ (nntp-report "NNTP server %S closed connection" nntp-address))
((not (equal group (caddr entry)))
(with-current-buffer (process-buffer (car entry))
(erase-buffer)
diff --git a/lisp/gnus/nnvirtual.el b/lisp/gnus/nnvirtual.el
index 7478a2dd0a..cc87a707ce 100644
--- a/lisp/gnus/nnvirtual.el
+++ b/lisp/gnus/nnvirtual.el
@@ -365,7 +365,7 @@ It is computed from the marks of individual component
groups.")
(lambda (article)
(nnvirtual-reverse-map-article
group article))
- (gnus-uncompress-range
+ (range-uncompress
(gnus-group-expire-articles-1 group))))))
(sort (delq nil unexpired) #'<)))
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index d408efeeb9..98a1b11e08 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -496,9 +496,16 @@ suitable file is found, return nil."
(let ((pt2 (with-current-buffer standard-output (point)))
(remapped (command-remapping function)))
(unless (memq remapped '(ignore undefined))
- (let ((keys (where-is-internal
- (or remapped function) overriding-local-map nil nil))
- non-modified-keys)
+ (let* ((all-keys (where-is-internal
+ (or remapped function) overriding-local-map nil nil))
+ (seps (seq-group-by
+ (lambda (key)
+ (and (vectorp key)
+ (eq (elt key 0) 'menu-bar)))
+ all-keys))
+ (keys (cdr (assq nil seps)))
+ (menus (cdr (assq t seps)))
+ non-modified-keys)
(if (and (eq function 'self-insert-command)
(vectorp (car-safe keys))
(consp (aref (car keys) 0)))
@@ -522,24 +529,42 @@ suitable file is found, return nil."
;; don't mention them one by one.
(if (< (length non-modified-keys) 10)
(with-current-buffer standard-output
- (insert (mapconcat #'help--key-description-fontified
- keys ", ")))
+ (help-fns--insert-bindings keys))
(dolist (key non-modified-keys)
(setq keys (delq key keys)))
(if keys
(with-current-buffer standard-output
- (insert (mapconcat #'help--key-description-fontified
- keys ", "))
+ (help-fns--insert-bindings keys)
(insert ", and many ordinary text characters"))
- (princ "many ordinary text characters"))))
+ (princ "many ordinary text characters."))))
(when (or remapped keys non-modified-keys)
(princ ".")
- (terpri)))))
+ (terpri)))
- (with-current-buffer standard-output
- (fill-region-as-paragraph pt2 (point))
- (unless (looking-back "\n\n" (- (point) 2))
- (terpri))))))
+ (with-current-buffer standard-output
+ (fill-region-as-paragraph pt2 (point))
+ (unless (bolp)
+ (insert "\n"))
+ (when menus
+ (let ((start (point)))
+ (insert (concat "It can "
+ (and keys "also ")
+ "be invoked from the menu: "))
+ ;; FIXME: Should insert menu names instead of key
+ ;; binding names.
+ (help-fns--insert-bindings menus)
+ (insert ".")
+ (fill-region-as-paragraph start (point))))
+ (ensure-empty-lines)))))))
+
+(defun help-fns--insert-bindings (keys)
+ (seq-do-indexed (lambda (key i)
+ (insert
+ (cond ((zerop i) "")
+ ((= i (1- (length keys))) " and ")
+ (t ", ")))
+ (insert (help--key-description-fontified key)))
+ keys))
(defun help-fns--compiler-macro (function)
(let ((handler (function-get function 'compiler-macro)))
@@ -829,11 +854,7 @@ Returns a list of the form (REAL-FUNCTION DEF ALIASED
REAL-DEF)."
(symbol-name function)))))))
(real-def (cond
((and aliased (not (subrp def)))
- (let ((f real-function))
- (while (and (fboundp f)
- (symbolp (symbol-function f)))
- (setq f (symbol-function f)))
- f))
+ (car (function-alias-p real-function t)))
((subrp def) (intern (subr-name def)))
(t def))))
diff --git a/lisp/help-mode.el b/lisp/help-mode.el
index 894b2a50aa..5fb5dcfb19 100644
--- a/lisp/help-mode.el
+++ b/lisp/help-mode.el
@@ -45,6 +45,7 @@
(define-key map [XF86Forward] 'help-go-forward)
(define-key map "\C-c\C-c" 'help-follow-symbol)
(define-key map "s" 'help-view-source)
+ (define-key map "I" 'help-goto-lispref-info)
(define-key map "i" 'help-goto-info)
(define-key map "c" 'help-customize)
map)
@@ -819,6 +820,14 @@ The help buffers are divided into \"pages\" by the ^L
character."
(info-lookup-symbol (plist-get help-mode--current-data :symbol)
'emacs-lisp-mode))
+(defun help-goto-lispref-info ()
+ "View the Emacs Lisp manual *info* node of the current help item."
+ (interactive nil help-mode)
+ (unless help-mode--current-data
+ (error "No symbol to look up in the current buffer"))
+ (info-lookup-symbol (plist-get help-mode--current-data :symbol)
+ 'emacs-lisp-only))
+
(defun help-customize ()
"Customize variable or face whose doc string is shown in the current buffer."
(interactive nil help-mode)
diff --git a/lisp/help.el b/lisp/help.el
index b44a2072c0..c3aae4acdd 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -650,15 +650,21 @@ If INSERT (the prefix arg) is non-nil, insert the message
in the buffer."
(if insert
(if (> (length keys) 0)
(if remapped
- (format "%s (%s) (remapped from %s)"
- keys remapped symbol)
- (format "%s (%s)" keys symbol))
+ (format "%s, remapped to %s (%s)"
+ symbol remapped keys)
+ (format "%s (%s)" symbol keys))
(format "M-x %s RET" symbol))
(if (> (length keys) 0)
(if remapped
- (format "%s is remapped to %s which is on %s"
- symbol remapped keys)
- (format "%s is on %s" symbol keys))
+ (if (eq symbol (symbol-function definition))
+ (format
+ "%s, which is remapped to %s, which is on %s"
+ symbol remapped keys)
+ (format "%s is remapped to %s, which is on %s"
+ symbol remapped keys))
+ (if (eq symbol (symbol-function definition))
+ (format "%s, which is on %s" symbol keys)
+ (format "%s is on %s" symbol keys)))
;; If this is the command the user asked about,
;; and it is not on any key, say so.
;; For other symbols, its aliases, say nothing
@@ -667,7 +673,9 @@ If INSERT (the prefix arg) is non-nil, insert the message
in the buffer."
(format "%s is not on any key" symbol)))))
(when string
(unless (eq symbol definition)
- (princ ";\n its alias "))
+ (if (eq definition (symbol-function symbol))
+ (princ ";\n its alias ")
+ (princ ";\n it's an alias for ")))
(princ string)))))
nil)
@@ -2069,7 +2077,7 @@ the same names as used in the original source code, when
possible."
((symbolp arg)
(let ((name (symbol-name arg)))
(cond
- ((string-match "\\`&" name) arg)
+ ((string-match "\\`&" name) (bare-symbol arg))
((string-match "\\`_." name)
(intern (upcase (substring name 1))))
(t (intern (upcase name))))))
diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el
index fbd698e234..0934eef8ed 100644
--- a/lisp/hi-lock.el
+++ b/lisp/hi-lock.el
@@ -235,10 +235,12 @@ by cycling through the faces in `hi-lock-face-defaults'."
"Human-readable lighters for `hi-lock-interactive-patterns'.")
(put 'hi-lock-interactive-lighters 'permanent-local t)
-(defvar hi-lock-face-defaults
+(defcustom hi-lock-face-defaults
'("hi-yellow" "hi-pink" "hi-green" "hi-blue" "hi-salmon" "hi-aquamarine"
"hi-black-b" "hi-blue-b" "hi-red-b" "hi-green-b" "hi-black-hb")
- "Default faces for hi-lock interactive functions.")
+ "Default face names for hi-lock interactive functions."
+ :type '(repeat string)
+ :version "29.1")
(defvar hi-lock-file-patterns-prefix "Hi-lock"
"String used to identify hi-lock patterns at the start of files.")
@@ -723,21 +725,32 @@ with completion and history."
(when hi-lock-interactive-patterns
(face-name (hi-lock-keyword->face
(car hi-lock-interactive-patterns)))))
- (defaults (append hi-lock--unused-faces
- (cdr (member last-used-face hi-lock-face-defaults))
- hi-lock-face-defaults))
+ (defaults (seq-uniq
+ (append hi-lock--unused-faces
+ (cdr (member last-used-face hi-lock-face-defaults))
+ hi-lock-face-defaults)
+ #'equal))
face)
- (if (and hi-lock-auto-select-face (not current-prefix-arg))
+ (if (and hi-lock-auto-select-face (not current-prefix-arg))
(setq face (or (pop hi-lock--unused-faces) (car defaults)))
- (setq face (completing-read
- (format-prompt "Highlight using face" (car defaults))
- obarray 'facep t nil 'face-name-history defaults))
+ (setq face (symbol-name (read-face-name "Highlight using face"
defaults)))
;; Update list of un-used faces.
(setq hi-lock--unused-faces (remove face hi-lock--unused-faces))
;; Grow the list of defaults.
(add-to-list 'hi-lock-face-defaults face t))
(intern face)))
+(defvar hi-lock-use-overlays nil
+ "Whether to always use overlays instead of font-lock rules.
+When font-lock-mode is enabled and the buffer specifies font-lock rules,
+highlighting is performed by adding new font-lock rules to the existing ones,
+so when new matching strings are added, they are highlighted by font-lock.
+Otherwise, overlays are used, but new highlighting overlays are not added
+when new matching strings are inserted to the buffer.
+However, sometimes overlays are still preferable even in buffers
+where font-lock is enabled, when hi-lock overlays take precedence
+over other overlays in the same buffer.")
+
(defun hi-lock-set-pattern (regexp face &optional subexp lighter case-fold
spaces-regexp)
"Highlight SUBEXP of REGEXP with face FACE.
If omitted or nil, SUBEXP defaults to zero, i.e. the entire
@@ -759,7 +772,8 @@ SPACES-REGEXP is a regexp to substitute spaces in font-lock
search."
(add-to-list 'hi-lock--unused-faces (face-name face))
(push pattern hi-lock-interactive-patterns)
(push (cons (or lighter regexp) pattern) hi-lock-interactive-lighters)
- (if (and font-lock-mode (font-lock-specified-p major-mode))
+ (if (and font-lock-mode (font-lock-specified-p major-mode)
+ (not hi-lock-use-overlays))
(progn
(font-lock-add-keywords nil (list pattern) t)
(font-lock-flush))
@@ -781,6 +795,8 @@ SPACES-REGEXP is a regexp to substitute spaces in font-lock
search."
(match-end subexp))))
(overlay-put overlay 'hi-lock-overlay t)
(overlay-put overlay 'hi-lock-overlay-regexp (or lighter
regexp))
+ ;; Use priority higher than default used by e.g. diff-refine.
+ (overlay-put overlay 'priority 1)
(overlay-put overlay 'face face))
(goto-char (match-end 0)))
(when no-matches
@@ -854,6 +870,27 @@ SPACES-REGEXP is a regexp to substitute spaces in
font-lock search."
;; continue standard unloading
nil)
+;;; Mouse support
+(defalias 'highlight-symbol-at-mouse 'hi-lock-face-symbol-at-mouse)
+(defun hi-lock-face-symbol-at-mouse (event)
+ "Highlight symbol at mouse click EVENT."
+ (interactive "e")
+ (save-excursion
+ (mouse-set-point event)
+ (highlight-symbol-at-point)))
+
+;;;###autoload
+(defun hi-lock-context-menu (menu click)
+ "Populate MENU with a menu item to highlight symbol at CLICK."
+ (when (thing-at-mouse click 'symbol)
+ (define-key-after menu [highlight-search-separator] menu-bar-separator
+ 'middle-separator)
+ (define-key-after menu [highlight-search-mouse]
+ '(menu-item "Highlight Symbol" highlight-symbol-at-mouse
+ :help "Highlight symbol at point")
+ 'highlight-search-separator))
+ menu)
+
(provide 'hi-lock)
;;; hi-lock.el ends here
diff --git a/lisp/image-dired.el b/lisp/image-dired.el
index 536f29441a..9b0bbb70df 100644
--- a/lisp/image-dired.el
+++ b/lisp/image-dired.el
@@ -609,9 +609,7 @@ See also `image-dired-thumbnail-storage'."
((eq 'use-image-dired-dir image-dired-thumbnail-storage)
(let* ((f (expand-file-name file))
(hash
- ;; SHA1 is slightly faster than MD5, so let's use it.
- ;; (We don't need anything crytographically strong.)
- (sha1 (file-name-as-directory (file-name-directory f)))))
+ (md5 (file-name-as-directory (file-name-directory f)))))
(format "%s%s%s.thumb.%s"
(file-name-as-directory (expand-file-name
(image-dired-dir)))
(file-name-base f)
@@ -2355,7 +2353,8 @@ for deletion instead."
(interactive)
(image-dired--with-marked
(image-dired-delete-char)
- (backward-char))
+ (unless (bobp)
+ (backward-char)))
(image-dired--line-up-with-method)
(with-current-buffer (image-dired-associated-dired-buffer)
(dired-do-delete)))
diff --git a/lisp/image.el b/lisp/image.el
index c9165f7781..80815a8a66 100644
--- a/lisp/image.el
+++ b/lisp/image.el
@@ -894,8 +894,9 @@ Frames are indexed from 0. Optional argument NOCHECK
non-nil means
do not check N is within the range of frames present in the image."
(unless nocheck
(if (< n 0) (setq n 0)
- (setq n (min n (1- (car (plist-get (cdr image)
- :animate-multi-frame-data)))))))
+ (setq n (min n (1- (car (or (plist-get (cdr image)
+ :animate-multi-frame-data)
+ (image-multi-frame-p image))))))))
(plist-put (cdr image) :index n)
(force-window-update (plist-get (cdr image) :animate-buffer)))
diff --git a/lisp/indent.el b/lisp/indent.el
index 40669b3842..d20c8053c5 100644
--- a/lisp/indent.el
+++ b/lisp/indent.el
@@ -77,10 +77,11 @@ This variable has no effect unless `tab-always-indent' is
`complete'."
:group 'indent
:type '(choice
(const :tag "Always complete" nil)
- (const :tag "Unless at the end of a line" 'eol)
- (const :tag "Unless looking at a word" 'word)
- (const :tag "Unless at a word or parenthesis" 'word-or-paren)
- (const :tag "Unless at a word, parenthesis, or punctuation."
'word-or-paren-or-punct))
+ (const :tag "Unless at the end of a line" eol)
+ (const :tag "Unless looking at a word" word)
+ (const :tag "Unless at a word or parenthesis" word-or-paren)
+ (const :tag "Unless at a word, parenthesis, or punctuation."
+ word-or-paren-or-punct))
:version "28.1")
(defvar indent-line-ignored-functions '(indent-relative
@@ -170,7 +171,7 @@ prefix argument is ignored."
(let ((old-tick (buffer-chars-modified-tick))
(old-point (point))
(old-indent (current-indentation))
- (syn `(,(syntax-after (point)))))
+ (syn (syntax-after (point))))
;; Indent the line.
(or (not (eq (indent--funcall-widened indent-line-function) 'noindent))
@@ -182,21 +183,21 @@ prefix argument is ignored."
(cond
;; If the text was already indented right, try completion.
((and (eq tab-always-indent 'complete)
- (eq old-point (point))
- (eq old-tick (buffer-chars-modified-tick))
+ (eql old-point (point))
+ (eql old-tick (buffer-chars-modified-tick))
(or (null tab-first-completion)
(eq last-command this-command)
- (and (equal tab-first-completion 'eol)
+ (and (eq tab-first-completion 'eol)
(eolp))
- (and (member tab-first-completion
- '(word word-or-paren word-or-paren-or-punct))
- (not (member 2 syn)))
- (and (member tab-first-completion
- '(word-or-paren word-or-paren-or-punct))
- (not (or (member 4 syn)
- (member 5 syn))))
- (and (equal tab-first-completion 'word-or-paren-or-punct)
- (not (member 1 syn)))))
+ (and (memq tab-first-completion
+ '(word word-or-paren word-or-paren-or-punct))
+ (not (eql 2 syn)))
+ (and (memq tab-first-completion
+ '(word-or-paren word-or-paren-or-punct))
+ (not (or (eql 4 syn)
+ (eql 5 syn))))
+ (and (eq tab-first-completion 'word-or-paren-or-punct)
+ (not (eql 1 syn)))))
(completion-at-point))
;; If a prefix argument was given, rigidly indent the following
diff --git a/lisp/info-look.el b/lisp/info-look.el
index 64f16df4dc..42e758360e 100644
--- a/lisp/info-look.el
+++ b/lisp/info-look.el
@@ -1010,6 +1010,13 @@ Return nil if there is nothing appropriate in the buffer
near point."
("(cl)Function Index" nil "^ -+ .*: " "\\( \\|$\\)")
("(cl)Variable Index" nil "^ -+ .*: " "\\( \\|$\\)")))
+(info-lookup-maybe-add-help
+ :mode 'emacs-lisp-only
+ :regexp "[^][()`'‘’,\" \t\n]+"
+ :doc-spec '(("(elisp)Index" nil "^ -+ .*: " "\\( \\|$\\)")
+ ("(cl)Function Index" nil "^ -+ .*: " "\\( \\|$\\)")
+ ("(cl)Variable Index" nil "^ -+ .*: " "\\( \\|$\\)")))
+
(mapc
(lambda (elem)
(let* ((prefix (car elem)))
diff --git a/lisp/info.el b/lisp/info.el
index f4f0f9790c..bb8cd0d312 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -4693,7 +4693,7 @@ the variable `Info-file-list-for-emacs'."
(defvar Info-link-keymap
(let ((keymap (make-sparse-keymap)))
(define-key keymap [header-line down-mouse-1] 'mouse-drag-header-line)
- (define-key keymap [header-line mouse-1] 'mouse-select-window)
+ (define-key keymap [header-line mouse-1] 'Info-mouse-follow-link)
(define-key keymap [header-line mouse-2] 'Info-mouse-follow-link)
(define-key keymap [mouse-2] 'Info-mouse-follow-link)
(define-key keymap [follow-link] 'mouse-face)
diff --git a/lisp/international/characters.el b/lisp/international/characters.el
index 080e7898c4..63ac455ea6 100644
--- a/lisp/international/characters.el
+++ b/lisp/international/characters.el
@@ -1440,6 +1440,10 @@ Setup `char-width-table' appropriate for non-CJK
language environment."
(set-char-table-range char-script-table range 'tibetan))
'tibetan)
+;; Fix some exceptions that blocks.awk/Blocks.txt couldn't get right.
+(set-char-table-range char-script-table '(#x2ea . #x2eb) 'bopomofo)
+(set-char-table-range char-script-table #xab65 'greek)
+
;;; Setting unicode-category-table.
@@ -1522,8 +1526,11 @@ Setup `char-width-table' appropriate for non-CJK
language environment."
;; We can't use the \N{name} things here, because this file is used
;; too early in the build process.
-(defvar glyphless--bidi-control-characters
- '(#x202a ; ?\N{left-to-right embedding}
+(defvar bidi-control-characters
+ '(#x200e ; ?\N{left-to-right mark}
+ #x200f ; ?\N{right-to-left mark}
+ #x061c ; ?\N{arabic letter mark}
+ #x202a ; ?\N{left-to-right embedding}
#x202b ; ?\N{right-to-left embedding}
#x202d ; ?\N{left-to-right override}
#x202e ; ?\N{right-to-left override}
@@ -1531,7 +1538,14 @@ Setup `char-width-table' appropriate for non-CJK
language environment."
#x2067 ; ?\N{right-to-left isolate}
#x2068 ; ?\N{first strong isolate}
#x202c ; ?\N{pop directional formatting}
- #x2069)) ; ?\N{pop directional isolate})
+ #x2069) ; ?\N{pop directional isolate}
+ "List of bidirectional control characters.")
+
+(defun bidi-string-strip-control-characters (string)
+ "Strip bidi control characters from STRING and return the result."
+ (apply #'string (seq-filter (lambda (char)
+ (not (memq char bidi-control-characters)))
+ string)))
(defun update-glyphless-char-display (&optional variable value)
"Make the setting of `glyphless-char-display-control' take effect.
@@ -1578,8 +1592,7 @@ option `glyphless-char-display'."
(or (aref char-acronym-table from)
"UNK")))
(when (or (eq target 'format-control)
- (memq from
- glyphless--bidi-control-characters))
+ (memq from bidi-control-characters))
(set-char-table-range glyphless-char-display
from this-method)))
(setq from (1+ from))))))
diff --git a/lisp/international/emoji.el b/lisp/international/emoji.el
index 264a1f09dc..df488708af 100644
--- a/lisp/international/emoji.el
+++ b/lisp/international/emoji.el
@@ -55,6 +55,14 @@
"Face for emojis that have derivations."
:version "29.1")
+(defvar emoji-alternate-names nil
+ "Alist of emojis and lists of alternate names for the emojis.
+Each element in the alist should have the emoji (as a string) as
+the first element, and the rest of the elements should be strings
+representing names. For instance:
+
+ (\"🤗\" \"hug\" \"hugging\" \"kind\")")
+
(defvar emoji--labels nil)
(defvar emoji--all-bases nil)
(defvar emoji--derived nil)
@@ -90,8 +98,9 @@ of selecting from emoji display."
;;;###autoload
(defun emoji-search ()
"Choose and insert an emoji glyph by typing its Unicode name.
-This command prompts for an emoji name, with completion, and inserts it.
-It recognizes the Unicode Standard names of emoji."
+This command prompts for an emoji name, with completion, and
+inserts it. It recognizes the Unicode Standard names of emoji,
+and also consults the `emoji-alternate-names' alist."
(interactive "*")
(emoji--init)
(emoji--choose-emoji))
@@ -647,29 +656,47 @@ We prefer the earliest unique letter."
(defun emoji--choose-emoji ()
;; Use the list of names.
- (let ((name
- (completing-read
- "Insert emoji: "
- (lambda (string pred action)
- (if (eq action 'metadata)
- (list 'metadata
- (cons
- 'affixation-function
- ;; Add the glyphs to the start of the displayed
- ;; strings when TAB-ing.
- (lambda (strings)
- (mapcar
- (lambda (name)
- (list name
- (concat
- (or (gethash name emoji--all-bases) " ")
- "\t")
- ""))
- strings))))
- (complete-with-action action emoji--all-bases string pred)))
- nil t)))
+ (let* ((table
+ (if (not emoji-alternate-names)
+ ;; If we don't have alternate names, do the efficient version.
+ emoji--all-bases
+ ;; Compute all the (possibly non-unique) names.
+ (let ((table nil))
+ (maphash
+ (lambda (name glyph)
+ (push (concat name "\t" glyph) table))
+ emoji--all-bases)
+ (dolist (elem emoji-alternate-names)
+ (dolist (name (cdr elem))
+ (push (concat name "\t" (car elem)) table)))
+ (sort table #'string<))))
+ (name
+ (completing-read
+ "Insert emoji: "
+ (lambda (string pred action)
+ (if (eq action 'metadata)
+ (list 'metadata
+ (cons
+ 'affixation-function
+ ;; Add the glyphs to the start of the displayed
+ ;; strings when TAB-ing.
+ (lambda (strings)
+ (mapcar
+ (lambda (name)
+ (if emoji-alternate-names
+ (list name "" "")
+ (list name
+ (concat
+ (or (gethash name emoji--all-bases) " ")
+ "\t")
+ "")))
+ strings))))
+ (complete-with-action action table string pred)))
+ nil t)))
(when (cl-plusp (length name))
- (let* ((glyph (gethash name emoji--all-bases))
+ (let* ((glyph (if emoji-alternate-names
+ (cadr (split-string name "\t"))
+ (gethash name emoji--all-bases)))
(derived (gethash glyph emoji--derived)))
(if (not derived)
;; Simple glyph with no derivations.
diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
index a2e0838a42..bd557df180 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -231,7 +231,6 @@
(elymaic #x10FE0)
(old-uyghur #x10F70)
(mahajani #x11150)
- (sinhala-archaic-number #x111E1)
(khojki #x11200)
(khudawadi #x112B0)
(grantha #x11305)
@@ -253,7 +252,6 @@
(gunjala-gondi #x11D60)
(makasar #x11EE0)
(cuneiform #x12000)
- (cuneiform-numbers-and-punctuation #x12400)
(cypro-minoan #x12F90)
(egyptian #x13000)
(mro #x16A40)
@@ -262,7 +260,6 @@
(pahawh-hmong #x16B11)
(medefaidrin #x16E40)
(tangut #x17000)
- (tangut-components #x18800)
(khitan-small-script #x18B00)
(nushu #x1B170)
(duployan-shorthand #x1BC20)
@@ -768,7 +765,6 @@
old-uyghur
makasar
dives-akuru
- cuneiform-numbers-and-punctuation
cuneiform
egyptian
tangsa
diff --git a/lisp/international/textsec-check.el
b/lisp/international/textsec-check.el
new file mode 100644
index 0000000000..567ef73feb
--- /dev/null
+++ b/lisp/international/textsec-check.el
@@ -0,0 +1,78 @@
+;;; textsec-check.el --- Check for suspicious texts -*- lexical-binding: t;
-*-
+
+;; Copyright (C) 2022 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;
+
+;;; Code:
+
+(defgroup textsec nil
+ "Suspicious text identification."
+ :group 'security
+ :version "29.1")
+
+(defcustom textsec-check t
+ "If non-nil, perform some security-related checks on text objects.
+If nil, these checks are disabled."
+ :type 'boolean
+ :version "29.1")
+
+(defface textsec-suspicious
+ '((t (:weight bold :background "red")))
+ "Face used to highlight suspicious strings.")
+
+;;;###autoload
+(defun textsec-suspicious-p (object type)
+ "Say whether OBJECT is suspicious for use as TYPE.
+If OBJECT is suspicious, return a string explaining the reason
+for considering it suspicious, otherwise return nil.
+
+Available values of TYPE and corresponding OBJECTs are:
+
+ `url' -- a URL; OBJECT should be a URL string.
+
+ `link' -- an HTML link; OBJECT should be a cons cell
+ of the form (URL . LINK-TEXT).
+
+ `domain' -- a Web domain; OBJECT should be a string.
+
+ `local-address' -- the local part of an email address; OBJECT
+ should be a string.
+ `name' -- the \"display name\" part of an email address;
+ OBJECT should be a string.
+
+`email-address' -- a full email address; OBJECT should be a string.
+
+ `email-address-header' -- a raw email address header in RFC 2822 format;
+ OBJECT should be a string.
+
+If the user option `textsec-check' is nil, these checks are
+disabled, and this function always returns nil."
+ (if (not textsec-check)
+ nil
+ (require 'textsec)
+ (let ((func (intern (format "textsec-%s-suspicious-p" type))))
+ (unless (fboundp func)
+ (error "%s is not a valid function" func))
+ (funcall func object))))
+
+(provide 'textsec-check)
+
+;;; textsec-check.el ends here
diff --git a/lisp/international/textsec.el b/lisp/international/textsec.el
new file mode 100644
index 0000000000..6985f4f3ef
--- /dev/null
+++ b/lisp/international/textsec.el
@@ -0,0 +1,448 @@
+;;; textsec.el --- Functions for handling homoglyphs and the like -*-
lexical-binding: t; -*-
+
+;; Copyright (C) 2022 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;
+
+;;; Code:
+
+(require 'cl-lib)
+(require 'uni-confusable)
+(require 'ucs-normalize)
+(require 'idna-mapping)
+(require 'puny)
+(require 'mail-parse)
+(require 'url)
+
+(defvar textsec--char-scripts nil)
+
+(eval-and-compile
+ (defun textsec--create-script-table (data)
+ "Create the textsec--char-scripts char table."
+ (setq textsec--char-scripts (make-char-table nil))
+ (dolist (scripts data)
+ (dolist (range (cadr scripts))
+ (set-char-table-range textsec--char-scripts
+ range (car scripts)))))
+ (require 'uni-scripts))
+
+(defun textsec-scripts (string)
+ "Return a list of Unicode scripts used in STRING.
+The scripts returned by this function use the Unicode Script property
+as defined by the Unicode Standard Annex 24 (UAX#24)."
+ (seq-map (lambda (char)
+ (elt textsec--char-scripts char))
+ string))
+
+(defun textsec-single-script-p (string)
+ "Return non-nil if STRING is all in a single Unicode script.
+
+Note that the concept of \"single script\" used by this function
+isn't obvious -- some mixtures of scripts count as a \"single
+script\". See
+
+ https://www.unicode.org/reports/tr39/#Mixed_Script_Detection
+
+for details. The Unicode scripts are as defined by the
+Unicode Standard Annex 24 (UAX#24)."
+ (let ((scripts (mapcar
+ (lambda (s)
+ (append s
+ ;; Some scripts used in East Asia are
+ ;; commonly used across borders, so we add
+ ;; those.
+ (mapcan (lambda (script)
+ (copy-sequence
+ (textsec--augment-script script)))
+ s)))
+ (textsec-scripts string))))
+ (catch 'empty
+ (cl-loop for s1 in scripts
+ do (cl-loop for s2 in scripts
+ ;; Common/inherited chars can be used in
+ ;; text with all scripts.
+ when (and (not (memq 'common s1))
+ (not (memq 'common s2))
+ (not (memq 'inherited s1))
+ (not (memq 'inherited s2))
+ (not (seq-intersection s1 s2)))
+ do (throw 'empty nil)))
+ t)))
+
+(defun textsec--augment-script (script)
+ (cond
+ ((eq script 'han)
+ '(hangul japan korea))
+ ((or (eq script 'hiragana)
+ (eq script 'katakana))
+ '(japan))
+ ((or (eq script 'hangul)
+ (eq script 'bopomofo))
+ '(korea))))
+
+(defun textsec-covering-scripts (string)
+ "Return a minimal list of scripts used in STRING.
+Note that a string may have several different minimal cover sets.
+The scripts are as defined by the Unicode Standard Annex 24 (UAX#24)."
+ (let* ((scripts (textsec-scripts string))
+ (set (car scripts)))
+ (dolist (s scripts)
+ (setq set (seq-union set (seq-difference s set))))
+ (sort (delq 'common (delq 'inherited set)) #'string<)))
+
+(defun textsec-restriction-level (string)
+ "Say what restriction level STRING qualifies for.
+Levels are (in decreasing order of restrictiveness) `ascii-only',
+`single-script', `highly-restrictive', `moderately-restrictive',
+`minimally-restrictive' and `unrestricted'."
+ (let ((scripts (textsec-covering-scripts string)))
+ (cond
+ ((string-match "\\`[[:ascii:]]+\\'" string)
+ 'ascii-only)
+ ((textsec-single-script-p string)
+ 'single-script)
+ ((or (null (seq-difference scripts '(latin han hiragana katakana)))
+ (null (seq-difference scripts '(latin han bopomofo)))
+ (null (seq-difference scripts '(latin han hangul))))
+ 'highly-restrictive)
+ ((and (= (length scripts) 2)
+ (memq 'latin scripts)
+ ;; This list comes from
+ ;; https://www.unicode.org/reports/tr31/#Table_Recommended_Scripts
+ ;; (but without latin, cyrillic and greek).
+ (seq-intersection scripts
+ '(arabic
+ armenian
+ bengali
+ bopomofo
+ devanagari
+ ethiopic
+ georgian
+ gujarati
+ gurmukhi
+ hangul
+ han
+ hebrew
+ hiragana
+ katakana
+ kannada
+ khmer
+ lao
+ malayalam
+ myanmar
+ oriya
+ sinhala
+ tamil
+ telugu
+ thaana
+ thai
+ tibetan)))
+ ;; The string is covered by Latin and any one other Recommended
+ ;; script, except Cyrillic, Greek.
+ 'moderately-retrictive)
+ ;; Fixme `minimally-restrictive' -- needs well-formedness criteria
+ ;; and Identifier Profile.
+ (t
+ 'unrestricted))))
+
+(defun textsec-mixed-numbers-p (string)
+ "Return non-nil if STRING includes numbers from different decimal systems."
+ (>
+ (length
+ (seq-uniq
+ (mapcar
+ (lambda (char)
+ ;; Compare zeros in the respective decimal systems.
+ (- char (get-char-code-property char 'numeric-value)))
+ (seq-filter (lambda (char)
+ ;; We're selecting the characters that
+ ;; have a numeric property.
+ (eq (get-char-code-property char 'general-category)
+ 'Nd))
+ string))))
+ 1))
+
+(defun textsec-ascii-confusable-p (string)
+ "Return non-nil if non-ASCII STRING can be confused with ASCII on display."
+ (and (not (eq (textsec-restriction-level string) 'ascii-only))
+ (eq (textsec-restriction-level (textsec-unconfuse-string string))
+ 'ascii-only)))
+
+(defun textsec-unconfuse-string (string)
+ "Return a de-confused version of STRING.
+This algorithm is described in:
+
+ https://www.unicode.org/reports/tr39/#Confusable_Detection"
+ (ucs-normalize-NFD-string
+ (apply #'concat
+ (seq-map (lambda (char)
+ (or (gethash char uni-confusable-table)
+ (string char)))
+ (ucs-normalize-NFD-string string)))))
+
+(defun textsec-resolved-script-set (string)
+ "Return the resolved script set for STRING.
+This is the minimal covering script set for STRING, but is nil is
+STRING isn't a single script string.
+The scripts are as defined by the Unicode Standard Annex 24 (UAX#24)."
+ (and (textsec-single-script-p string)
+ (textsec-covering-scripts string)))
+
+(defun textsec-single-script-confusable-p (string1 string2)
+ "Say whether STRING1 and STRING2 are single-script confusables.
+The scripts are as defined by the Unicode Standard Annex 24 (UAX#24)."
+ (and (equal (textsec-unconfuse-string string1)
+ (textsec-unconfuse-string string2))
+ ;; And they have to have at least one resolved script in
+ ;; common.
+ (seq-intersection (textsec-resolved-script-set string1)
+ (textsec-resolved-script-set string2))))
+
+(defun textsec-mixed-script-confusable-p (string1 string2)
+ "Say whether STRING1 and STRING2 are mixed-script confusables.
+The scripts are as defined by the Unicode Standard Annex 24 (UAX#24)."
+ (and (equal (textsec-unconfuse-string string1)
+ (textsec-unconfuse-string string2))
+ ;; And they have no resolved scripts in common.
+ (null (seq-intersection (textsec-resolved-script-set string1)
+ (textsec-resolved-script-set string2)))))
+
+(defun textsec-whole-script-confusable-p (string1 string2)
+ "Say whether STRING1 and STRING2 are whole-script confusables.
+The scripts are as defined by the Unicode Standard Annex 24 (UAX#24)."
+ (and (textsec-mixed-script-confusable-p string1 string2)
+ (textsec-single-script-p string1)
+ (textsec-single-script-p string2)))
+
+(defun textsec-domain-suspicious-p (domain)
+ "Say whether DOMAIN's name looks suspicious.
+Return nil if it isn't suspicious. If it is, return a string explaining
+the potential problem.
+
+Domain names are considered suspicious if they use characters
+that can look similar to other characters when displayed, or
+use characters that are not allowed by Unicode's IDNA mapping,
+or use certain other unusual mixtures of characters."
+ (catch 'found
+ (seq-do
+ (lambda (char)
+ (when (eq (elt idna-mapping-table char) t)
+ (throw 'found
+ (format "Disallowed character%s (#x%x, %s)"
+ (if (eq (get-char-code-property char 'general-category)
+ 'Cf)
+ ""
+ (concat ": " (string char)))
+ char
+ (get-char-code-property char 'name)))))
+ domain)
+ ;; Does IDNA allow it?
+ (unless (puny-highly-restrictive-domain-p domain)
+ (throw
+ 'found
+ (format "`%s' mixes characters from different scripts in suspicious
ways"
+ domain)))
+ ;; Check whether any segment of the domain name is confusable with
+ ;; an ASCII-only segment.
+ (dolist (elem (split-string domain "\\."))
+ (when (textsec-ascii-confusable-p elem)
+ (throw 'found (format "`%s' is confusable with ASCII" elem))))
+ nil))
+
+(defun textsec-local-address-suspicious-p (local)
+ "Say whether LOCAL part of an email address looks suspicious.
+LOCAL is the bit before \"@\" in an email address.
+
+If it isn't suspicious, return nil. If it is, return a string explaining
+the potential problem.
+
+Email addresses are considered suspicious if they use characters
+that can look similar to other characters when displayed, or use
+certain other unusual mixtures of characters."
+ (cond
+ ((not (equal local (ucs-normalize-NFKC-string local)))
+ (format "`%s' is not in normalized format `%s'"
+ local (ucs-normalize-NFKC-string local)))
+ ((textsec-mixed-numbers-p local)
+ (format "`%s' contains numbers from different number systems" local))
+ ((eq (textsec-restriction-level local) 'unrestricted)
+ (format "`%s' isn't restrictive enough" local))
+ ((string-match-p "\\`\\.\\|\\.\\'\\|\\.\\." local)
+ (format "`%s' contains invalid dots" local))))
+
+(defun textsec-bidi-controls-suspicious-p (string)
+ "Return non-nil of STRING uses bidi controls in suspicious ways.
+If STRING doesn't include any suspicious uses of bidirectional
+formatting control characters, return nil. Otherwise, return the
+index of the first character in STRING affected by such suspicious
+use of bidi controls. If the returned value is beyond the length
+of STRING, it means any text following STRING on display might be
+affected by bidi controls in STRING."
+ (with-temp-buffer
+ ;; We add a string that's representative of some text that could
+ ;; follow STRING, with the purpose of detecting residual bidi
+ ;; state at end of STRING which could then affect the following
+ ;; text.
+ (insert string "a1א:!")
+ (let ((pos (bidi-find-overridden-directionality 1 (point-max) nil)))
+ (and (fixnump pos)
+ (1- pos)))))
+
+(defun textsec-name-suspicious-p (name)
+ "Say whether NAME looks suspicious.
+NAME is (for instance) the free-text display name part of an
+email address.
+
+If it isn't suspicious, return nil. If it is, return a string
+explaining the potential problem.
+
+Names are considered suspicious if they use characters that can
+look similar to other characters when displayed, or use certain
+other unusual mixtures of characters."
+ (cond
+ ((not (equal name (ucs-normalize-NFC-string name)))
+ (format "`%s' is not in normalized format `%s'"
+ name (ucs-normalize-NFC-string name)))
+ ((and (seq-find (lambda (char)
+ (and (member char bidi-control-characters)
+ (not (member char
+ '( ?\N{left-to-right mark}
+ ?\N{right-to-left mark}
+ ?\N{arabic letter mark})))))
+ name)
+ ;; We have bidirectional formatting characters, but check
+ ;; whether they affect any other characters in suspicious
+ ;; ways. If not, NAME is not suspicious.
+ (fixnump (textsec-bidi-controls-suspicious-p name)))
+ (format "`%s' contains suspicious uses of bidirectional control characters"
+ name))
+ ((textsec-suspicious-nonspacing-p name))))
+
+(defun textsec-suspicious-nonspacing-p (string)
+ "Say whether STRING uses nonspacing characters in suspicious ways.
+If it doesn't, return nil. If it does, return a string explaining
+the potential problem.
+
+Use of nonspacing characters is considered suspicious if there are
+two or more consecutive identical nonspacing characters, or too many
+consecutive nonspacing characters."
+ (let ((prev nil)
+ (nonspace-count 0))
+ (catch 'found
+ (seq-do
+ (lambda (char)
+ (let ((nonspacing
+ (memq (get-char-code-property char 'general-category)
+ '(Mn Me))))
+ (when (and nonspacing
+ (equal char prev))
+ (throw 'found "Two identical consecutive nonspacing characters"))
+ (setq nonspace-count (if nonspacing
+ (1+ nonspace-count)
+ 0))
+ (when (> nonspace-count 4)
+ (throw 'found
+ "Too many consecutive nonspacing characters"))
+ (setq prev char)))
+ string)
+ nil)))
+
+(defun textsec-email-address-suspicious-p (address)
+ "Say whether EMAIL address looks suspicious.
+If it isn't, return nil. If it is, return a string explaining the
+potential problem.
+
+An email address is considered suspicious if either of its two
+parts -- the local address name or the domain -- are found to be
+suspicious by, respectively, `textsec-local-address-suspicious-p'
+and `textsec-domain-suspicious-p'."
+ (pcase-let ((`(,local ,domain) (split-string address "@")))
+ (or
+ (textsec-domain-suspicious-p domain)
+ (textsec-local-address-suspicious-p local))))
+
+(defun textsec-email-address-header-suspicious-p (email)
+ "Say whether EMAIL looks suspicious.
+If it isn't, return nil. If it is, return a string explaining the
+potential problem.
+
+Note that EMAIL has to be a valid email specification according
+to RFC2047bis -- strings that can't be parsed will be flagged as
+suspicious.
+
+An email specification is considered suspicious if either of its
+two parts -- the address or the name -- are found to be
+suspicious by, respectively, `textsec-email-address-suspicious-p'
+and `textsec-name-suspicious-p'."
+ (catch 'end
+ (pcase-let ((`(,address . ,name)
+ (condition-case nil
+ (mail-header-parse-address email t)
+ (error (throw 'end "Email address can't be parsed.")))))
+ (or
+ (textsec-email-address-suspicious-p address)
+ (and name (textsec-name-suspicious-p name))))))
+
+(defun textsec-url-suspicious-p (url)
+ "Say whether URL looks suspicious.
+If it isn't, return nil. If it is, return a string explaining the
+potential problem."
+ (let ((parsed (url-generic-parse-url url)))
+ ;; The URL may not have a domain.
+ (and (url-host parsed)
+ (textsec-domain-suspicious-p (url-host parsed)))))
+
+(defun textsec-link-suspicious-p (link)
+ "Say whether LINK is suspicious.
+LINK should be a cons cell where the first element is the URL,
+and the second element is the link text.
+
+This function will return non-nil if it seems like the link text
+is misleading about where the URL takes you. This is typical
+when the link text looks like an URL itself, but doesn't lead to
+the same domain as the URL."
+ (let* ((url (car link))
+ (text (string-trim (cdr link))))
+ (catch 'found
+ (let ((udomain (url-host (url-generic-parse-url url)))
+ (tdomain (url-host (url-generic-parse-url text))))
+ (cond
+ ((and udomain
+ tdomain
+ (not (equal udomain tdomain))
+ ;; One may be a sub-domain of the other, but don't allow too
+ ;; short domains.
+ (not (or (and (string-suffix-p udomain tdomain)
+ (url-domsuf-cookie-allowed-p udomain))
+ (and (string-suffix-p tdomain udomain)
+ (url-domsuf-cookie-allowed-p tdomain)))))
+ (throw 'found
+ (format "Text `%s' doesn't point to link URL `%s'"
+ text url)))
+ ((and tdomain
+ (textsec-domain-suspicious-p tdomain))
+ (throw 'found
+ (format "Domain `%s' in the link text is suspicious"
+ (bidi-string-strip-control-characters
+ tdomain)))))))))
+
+(provide 'textsec)
+
+;;; textsec.el ends here
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 7593a0ec98..833d031c56 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -668,6 +668,7 @@ This is like `describe-bindings', but displays only Isearch
keys."
;; The key translations defined in the C-x 8 prefix should add
;; characters to the search string. See iso-transl.el.
(define-key map "\C-x8\r" 'isearch-char-by-name)
+ (define-key map "\C-x8e\r" 'isearch-emoji-by-name)
map)
"Keymap for `isearch-mode'.")
@@ -758,6 +759,8 @@ This is like `describe-bindings', but displays only Isearch
keys."
:help "Search for literal char"]
["Search for char by name" isearch-char-by-name
:help "Search for character by name"]
+ ["Search for Emoji by name" isearch-emoji-by-name
+ :help "Search for Emoji by its Unicode name"]
"---"
["Toggle input method" isearch-toggle-input-method
:help "Toggle input method for search"]
@@ -2747,6 +2750,24 @@ With argument, add COUNT copies of the character."
(mapconcat
'isearch-text-char-description
string ""))))))))
+(defun isearch-emoji-by-name (&optional count)
+ "Read an Emoji name and add it to the search string COUNT times.
+COUNT (interactively, the prefix argument) defaults to 1.
+The command accepts Unicode names like \"smiling face\" or
+\"heart with arrow\", and completion is available."
+ (interactive "p")
+ (with-isearch-suspended
+ (let ((emoji (with-temp-buffer
+ (emoji-search)
+ (if (and (integerp count) (> count 1))
+ (apply 'concat (make-list count (buffer-string)))
+ (buffer-string)))))
+ (when emoji
+ (setq isearch-new-string (concat isearch-string emoji)
+ isearch-new-message (concat isearch-message
+ (mapconcat
'isearch-text-char-description
+ emoji "")))))))
+
(defun isearch-search-and-update ()
"Do the search and update the display."
(when (or isearch-success
diff --git a/lisp/jsonrpc.el b/lisp/jsonrpc.el
index 84d0ef9179..b84e9b74b1 100644
--- a/lisp/jsonrpc.el
+++ b/lisp/jsonrpc.el
@@ -4,7 +4,7 @@
;; Author: João Távora <joaotavora@gmail.com>
;; Keywords: processes, languages, extensions
-;; Version: 1.0.14
+;; Version: 1.0.15
;; Package-Requires: ((emacs "25.2"))
;; This is a GNU ELPA :core package. Avoid functionality that is not
@@ -698,7 +698,9 @@ TIMEOUT is nil)."
(defun jsonrpc--debug (server format &rest args)
"Debug message for SERVER with FORMAT and ARGS."
(jsonrpc--log-event
- server (if (stringp format)`(:message ,(format format args)) format)))
+ server (if (stringp format)
+ `(:message ,(apply #'format format args))
+ format)))
(defun jsonrpc--warn (format &rest args)
"Warning message with FORMAT and ARGS."
diff --git a/lisp/keymap.el b/lisp/keymap.el
index 3e9189fba4..c0fdf8721b 100644
--- a/lisp/keymap.el
+++ b/lisp/keymap.el
@@ -325,38 +325,38 @@ which is
Alt-Control-Hyper-Meta-Shift-super"
(declare (pure t) (side-effect-free t))
- (and
- (stringp keys)
- (string-match-p "\\`[^ ]+\\( [^ ]+\\)*\\'" keys)
- (save-match-data
- (catch 'exit
- (let ((prefixes
- "\\(A-\\)?\\(C-\\)?\\(H-\\)?\\(M-\\)?\\(S-\\)?\\(s-\\)?")
- (case-fold-search nil))
- (dolist (key (split-string keys " "))
- ;; Every key might have these modifiers, and they should be
- ;; in this order.
- (when (string-match (concat "\\`" prefixes) key)
- (setq key (substring key (match-end 0))))
- (unless (or (and (= (length key) 1)
- ;; Don't accept control characters as keys.
- (not (< (aref key 0) ?\s))
- ;; Don't accept Meta'd characters as keys.
- (or (multibyte-string-p key)
- (not (<= 127 (aref key 0) 255))))
- (and (string-match-p "\\`<[-_A-Za-z0-9]+>\\'" key)
- ;; Don't allow <M-C-down>.
- (= (progn
- (string-match
- (concat "\\`<" prefixes) key)
- (match-end 0))
- 1))
- (string-match-p
- "\\`\\(NUL\\|RET\\|TAB\\|LFD\\|ESC\\|SPC\\|DEL\\)\\'"
- key))
- ;; Invalid.
- (throw 'exit nil)))
- t)))))
+ (let ((case-fold-search nil))
+ (and
+ (stringp keys)
+ (string-match-p "\\`[^ ]+\\( [^ ]+\\)*\\'" keys)
+ (save-match-data
+ (catch 'exit
+ (let ((prefixes
+ "\\(A-\\)?\\(C-\\)?\\(H-\\)?\\(M-\\)?\\(S-\\)?\\(s-\\)?"))
+ (dolist (key (split-string keys " "))
+ ;; Every key might have these modifiers, and they should be
+ ;; in this order.
+ (when (string-match (concat "\\`" prefixes) key)
+ (setq key (substring key (match-end 0))))
+ (unless (or (and (= (length key) 1)
+ ;; Don't accept control characters as keys.
+ (not (< (aref key 0) ?\s))
+ ;; Don't accept Meta'd characters as keys.
+ (or (multibyte-string-p key)
+ (not (<= 127 (aref key 0) 255))))
+ (and (string-match-p "\\`<[-_A-Za-z0-9]+>\\'" key)
+ ;; Don't allow <M-C-down>.
+ (= (progn
+ (string-match
+ (concat "\\`<" prefixes) key)
+ (match-end 0))
+ 1))
+ (string-match-p
+ "\\`\\(NUL\\|RET\\|TAB\\|LFD\\|ESC\\|SPC\\|DEL\\)\\'"
+ key))
+ ;; Invalid.
+ (throw 'exit nil)))
+ t))))))
(defun key-translate (from to)
"Translate character FROM to TO on the current terminal.
@@ -462,18 +462,19 @@ If MESSAGE (and interactively), message the result."
(keywordp (car args))
(not (eq (car args) :menu)))
(unless (memq (car args) '(:full :keymap :parent :suppress :name :prefix))
- (byte-compile-warn "Invalid keyword: %s" (car args)))
+ (byte-compile-warn-x (car args) "Invalid keyword: %s" (car args)))
(setq args (cdr args))
(when (null args)
- (byte-compile-warn "Uneven number of keywords in %S" form))
+ (byte-compile-warn-x form "Uneven number of keywords in %S" form))
(setq args (cdr args)))
;; Bindings.
(while args
- (let ((key (pop args)))
+ (let* ((wargs args)
+ (key (pop args)))
(when (and (stringp key) (not (key-valid-p key)))
- (byte-compile-warn "Invalid `kbd' syntax: %S" key)))
+ (byte-compile-warn-x wargs "Invalid `kbd' syntax: %S" key)))
(when (null args)
- (byte-compile-warn "Uneven number of key bindings in %S" form))
+ (byte-compile-warn-x form "Uneven number of key bindings in %S" form))
(setq args (cdr args)))
form)
diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el
index 6d5b0d84e6..6ddce2eba3 100644
--- a/lisp/ldefs-boot.el
+++ b/lisp/ldefs-boot.el
@@ -7867,7 +7867,7 @@ any buffer where (dictionary-tooltip-mode 1) has been
called.
\(fn &optional ARG)" t nil)
-(autoload 'context-menu-dictionary "dictionary" "\
+(autoload 'dictionary-context-menu "dictionary" "\
Populate MENU with dictionary commands at CLICK.
When you add this function to `context-menu-functions',
the context menu will contain an item that searches
@@ -8861,8 +8861,12 @@ Define a constant M whose value is the result of
`easy-mmode-define-keymap'.
The M, BS, and ARGS arguments are as per that function. DOC is
the constant's documentation.
+This macro is deprecated; use `defvar-keymap' instead.
+
\(fn M BS DOC &rest ARGS)" nil t)
+(function-put 'easy-mmode-defmap 'doc-string-elt '3)
+
(function-put 'easy-mmode-defmap 'lisp-indent-function '1)
(autoload 'easy-mmode-defsyntax "easy-mmode" "\
@@ -8871,6 +8875,8 @@ CSS contains a list of syntax specifications of the form
(CHAR . SYNTAX).
\(fn ST CSS DOC &rest ARGS)" nil t)
+(function-put 'easy-mmode-defsyntax 'doc-string-elt '3)
+
(function-put 'easy-mmode-defsyntax 'lisp-indent-function '1)
(register-definition-prefixes "easy-mmode" '("easy-mmode-"))
@@ -9574,7 +9580,10 @@ This applies to `eval-defun', `eval-region',
`eval-buffer', and
You can use the command `edebug-all-defs' to toggle the value of this
variable. You may wish to make it local to each buffer with
\(make-local-variable \\='edebug-all-defs) in your
-`emacs-lisp-mode-hook'.")
+`emacs-lisp-mode-hook'.
+
+Note that this user option has no effect unless the edebug
+package has been loaded.")
(custom-autoload 'edebug-all-defs "edebug" t)
@@ -10291,6 +10300,31 @@ disabled.
;;;### (autoloads nil "elide-head" "elide-head.el" (0 0 0 0))
;;; Generated autoloads from elide-head.el
+(autoload 'elide-head-mode "elide-head" "\
+Toggle eliding (hiding) header material in the current buffer.
+
+This is a minor mode. If called interactively, toggle the `Elide-Head
+mode' mode. If the prefix argument is positive, enable the mode, and
+if it is zero or negative, disable the mode.
+
+If called from Lisp, toggle the mode if ARG is `toggle'. Enable the
+mode if ARG is nil, omitted, or is a positive number. Disable the
+mode if ARG is a negative number.
+
+To check whether the minor mode is enabled in the current buffer,
+evaluate `elide-head-mode'.
+
+The mode's hook is called both when the mode is enabled and when it is
+disabled.
+
+When Elide Header mode is enabled, headers are hidden according
+to `elide-head-headers-to-hide'.
+
+This is suitable as an entry on `find-file-hook' or appropriate
+mode hooks.
+
+\(fn &optional ARG)" t nil)
+
(autoload 'elide-head "elide-head" "\
Hide header material in buffer according to `elide-head-headers-to-hide'.
@@ -10301,6 +10335,8 @@ This is suitable as an entry on `find-file-hook' or
appropriate mode hooks.
\(fn &optional ARG)" t nil)
+(make-obsolete 'elide-head 'elide-head-mode '"29.1")
+
(register-definition-prefixes "elide-head" '("elide-head-"))
;;;***
@@ -10502,8 +10538,9 @@ Choose and insert one of the recently-used emoji
glyphs." t nil)
(autoload 'emoji-search "emoji" "\
Choose and insert an emoji glyph by typing its Unicode name.
-This command prompts for an emoji name, with completion, and inserts it.
-It recognizes the Unicode Standard names of emoji." t nil)
+This command prompts for an emoji name, with completion, and
+inserts it. It recognizes the Unicode Standard names of emoji,
+and also consults the `emoji-alternate-names' alist." t nil)
(autoload 'emoji-list "emoji" "\
List emojis and insert the one that's selected.
@@ -15157,12 +15194,6 @@ LIST1 and LIST2 have to be sorted over <.
\(fn LIST1 LIST2)" nil nil)
-(autoload 'gnus-sorted-range-intersection "gnus-range" "\
-Return intersection of RANGE1 and RANGE2.
-RANGE1 and RANGE2 have to be sorted over <.
-
-\(fn RANGE1 RANGE2)" nil nil)
-
(defalias 'gnus-set-sorted-intersection 'gnus-sorted-nintersection)
(autoload 'gnus-sorted-nintersection "gnus-range" "\
@@ -16764,7 +16795,12 @@ be found in variable `hi-lock-interactive-patterns'."
t nil)
(autoload 'hi-lock-find-patterns "hi-lock" "\
Add patterns from the current buffer to the list of hi-lock patterns." t nil)
-(register-definition-prefixes "hi-lock" '("hi-lock-"
"turn-on-hi-lock-if-enabled"))
+(autoload 'hi-lock-context-menu "hi-lock" "\
+Populate MENU with a menu item to highlight symbol at CLICK.
+
+\(fn MENU CLICK)" nil nil)
+
+(register-definition-prefixes "hi-lock" '("hi-lock-"
"highlight-symbol-at-mouse" "turn-on-hi-lock-if-enabled"))
;;;***
@@ -19155,25 +19191,37 @@ system." t nil)
(put 'info-lookup-symbol 'info-file "emacs")
(autoload 'info-lookup-symbol "info-look" "\
-Display the definition of SYMBOL, as found in the relevant manual.
-When this command is called interactively, it reads SYMBOL from the
-minibuffer. In the minibuffer, use
\\<minibuffer-local-completion-map>\\[next-history-element] to yank the default
argument
-value into the minibuffer so you can edit it. The default symbol is the
-one found at point.
+Look up and display documentation of SYMBOL in the relevant Info manual.
+SYMBOL should be an identifier: a function or method, a macro, a variable,
+a data type, a class, etc.
+
+Interactively, prompt for SYMBOL; you can use
\\<minibuffer-local-completion-map>\\[next-history-element] in the minibuffer
+to yank the default argument value into the minibuffer so you can edit it.
+The default symbol is the one found at point.
-With prefix arg MODE a query for the symbol help mode is offered.
+MODE is the major mode whose Info manuals to search for the documentation
+of SYMBOL. It defaults to the current buffer's `major-mode'; if that
+mode doesn't have any Info manuals known to Emacs, the command will
+prompt for MODE to use, with completion. With prefix arg, the command
+always prompts for MODE.
\(fn SYMBOL &optional MODE)" t nil)
(put 'info-lookup-file 'info-file "emacs")
(autoload 'info-lookup-file "info-look" "\
-Display the documentation of a file.
-When this command is called interactively, it reads FILE from the minibuffer.
-In the minibuffer, use
\\<minibuffer-local-completion-map>\\[next-history-element] to yank the default
file name
-into the minibuffer so you can edit it.
+Look up and display documentation of FILE in the relevant Info manual.
+FILE should be the name of a file; a notable example is a standard header
+file that is part of the C or C++ standard library.
+
+Interactively, prompt for FILE; you can use
\\<minibuffer-local-completion-map>\\[next-history-element] in the minibuffer
+to yank the default argument value into the minibuffer so you can edit it.
The default file name is the one found at point.
-With prefix arg MODE a query for the file help mode is offered.
+MODE is the major mode whose Info manuals to search for the documentation
+of FILE. It defaults to the current buffer's `major-mode'; if that
+mode doesn't have any Info manuals known to Emacs, the command will
+prompt for MODE to use, with completion. With prefix arg, the command
+always prompts for MODE.
\(fn FILE &optional MODE)" t nil)
@@ -19501,7 +19549,7 @@ Valid forms include:
(KEY REGEXP) - skip to end of REGEXP. REGEXP must be a string.
(KEY FUNCTION ARGS) - FUNCTION called with ARGS returns end of region.")
-(defvar ispell-tex-skip-alists (purecopy '((("\\\\addcontentsline"
ispell-tex-arg-end 2) ("\\\\add\\(tocontents\\|vspace\\)" ispell-tex-arg-end)
("\\\\\\([aA]lph\\|arabic\\)" ispell-tex-arg-end) ("\\\\cref"
ispell-tex-arg-end) ("\\\\bibliographystyle" ispell-tex-arg-end) ("\\\\makebox"
ispell-tex-arg-end 0) ("\\\\e?psfig" ispell-tex-arg-end)
("\\\\document\\(class\\|style\\)" . "\\\\begin[ \11\n]*{[ \11\n]*document[
\11\n]*}")) (("\\(figure\\|table\\)\\*?" ispell-tex-arg-end 0) ("list" i [...]
+(defvar ispell-tex-skip-alists (purecopy '((("\\\\addcontentsline"
ispell-tex-arg-end 2) ("\\\\add\\(tocontents\\|vspace\\)" ispell-tex-arg-end)
("\\\\\\([aA]lph\\|arabic\\)" ispell-tex-arg-end) ("\\\\cref"
ispell-tex-arg-end) ("\\\\bibliographystyle" ispell-tex-arg-end) ("\\\\makebox"
ispell-tex-arg-end 0) ("\\\\e?psfig" ispell-tex-arg-end)
("\\\\document\\(class\\|style\\)" . "\\\\begin[ \11\n]*{document}"))
(("\\(figure\\|table\\)\\*?" ispell-tex-arg-end 0) ("list" ispell-tex-arg-end
[...]
Lists of regions to be skipped in TeX mode.
First list is used raw.
Second list has key placed inside \\begin{}.
@@ -19859,7 +19907,7 @@ one of the aforementioned options instead of using this
mode.
;;;### (autoloads nil "jsonrpc" "jsonrpc.el" (0 0 0 0))
;;; Generated autoloads from jsonrpc.el
-(push (purecopy '(jsonrpc 1 0 14)) package--builtin-versions)
+(push (purecopy '(jsonrpc 1 0 15)) package--builtin-versions)
(register-definition-prefixes "jsonrpc" '("jsonrpc-"))
@@ -21311,6 +21359,11 @@ Default bookmark handler for Man buffers.
\(fn BOOKMARK)" nil nil)
+(autoload 'Man-context-menu "man" "\
+Populate MENU with commands that open a man page at point.
+
+\(fn MENU CLICK)" nil nil)
+
(register-definition-prefixes "man" '("Man-" "man"))
;;;***
@@ -27745,6 +27798,13 @@ Display `quickurl-list' as a formatted list using
`quickurl-list-mode'." t nil)
;;;***
+;;;### (autoloads nil "range" "emacs-lisp/range.el" (0 0 0 0))
+;;; Generated autoloads from emacs-lisp/range.el
+
+(register-definition-prefixes "range" '("range-"))
+
+;;;***
+
;;;### (autoloads nil "rcirc" "net/rcirc.el" (0 0 0 0))
;;; Generated autoloads from net/rcirc.el
@@ -31067,6 +31127,8 @@ If FUNCTION is non-nil, place point on the entry for
FUNCTION (if any).
\(fn GROUP &optional FUNCTION)" t nil)
+(defalias 'shortdoc #'shortdoc-display-group)
+
(register-definition-prefixes "shortdoc" '("alist" "buffer"
"define-short-documentation-group" "file" "hash-table" "keymaps" "list"
"number" "overlay" "process" "regexp" "sequence" "shortdoc-" "string"
"text-properties" "vector"))
;;;***
@@ -32860,6 +32922,11 @@ this defaults to the current buffer.
\(fn START END PROP VALUE &optional OBJECT)" nil nil)
+(autoload 'read-process-name "subr-x" "\
+Query the user for a process and return the process object.
+
+\(fn PROMPT)" nil nil)
+
(register-definition-prefixes "subr-x" '("and-let*" "hash-table-" "if-let*"
"internal--" "named-let" "replace-region-contents" "string-" "thread-"
"when-let*" "with-memoization"))
;;;***
@@ -34408,6 +34475,51 @@ value of `texinfo-mode-hook'.
;;;***
+;;;### (autoloads nil "textsec" "international/textsec.el" (0 0 0
+;;;;;; 0))
+;;; Generated autoloads from international/textsec.el
+
+(register-definition-prefixes "textsec" '("textsec-"))
+
+;;;***
+
+;;;### (autoloads nil "textsec-check" "international/textsec-check.el"
+;;;;;; (0 0 0 0))
+;;; Generated autoloads from international/textsec-check.el
+
+(autoload 'textsec-suspicious-p "textsec-check" "\
+Say whether OBJECT is suspicious for use as TYPE.
+If OBJECT is suspicious, return a string explaining the reason
+for considering it suspicious, otherwise return nil.
+
+Available values of TYPE and corresponding OBJECTs are:
+
+ `url' -- a URL; OBJECT should be a URL string.
+
+ `link' -- an HTML link; OBJECT should be a cons cell
+ of the form (URL . LINK-TEXT).
+
+ `domain' -- a Web domain; OBJECT should be a string.
+
+ `local-address' -- the local part of an email address; OBJECT
+ should be a string.
+ `name' -- the \"display name\" part of an email address;
+ OBJECT should be a string.
+
+`email-address' -- a full email address; OBJECT should be a string.
+
+ `email-address-header' -- a raw email address header in RFC 2822 format;
+ OBJECT should be a string.
+
+If the user option `textsec-check' is nil, these checks are
+disabled, and this function always returns nil.
+
+\(fn OBJECT TYPE)" nil nil)
+
+(register-definition-prefixes "textsec-check" '("textsec-check"))
+
+;;;***
+
;;;### (autoloads nil "thai-util" "language/thai-util.el" (0 0 0
;;;;;; 0))
;;; Generated autoloads from language/thai-util.el
@@ -39394,6 +39506,32 @@ unless `windmove-create-window' is non-nil and a new
window is created.
\(fn &optional ARG)" t nil)
+(defvar windmove-mode t "\
+Non-nil if Windmove mode is enabled.
+See the `windmove-mode' command
+for a description of this minor mode.")
+
+(custom-autoload 'windmove-mode "windmove" nil)
+
+(autoload 'windmove-mode "windmove" "\
+Global minor mode for default windmove commands.
+
+This is a minor mode. If called interactively, toggle the `Windmove
+mode' mode. If the prefix argument is positive, enable the mode, and
+if it is zero or negative, disable the mode.
+
+If called from Lisp, toggle the mode if ARG is `toggle'. Enable the
+mode if ARG is nil, omitted, or is a positive number. Disable the
+mode if ARG is a negative number.
+
+To check whether the minor mode is enabled in the current buffer,
+evaluate `(default-value \\='windmove-mode)'.
+
+The mode's hook is called both when the mode is enabled and when it is
+disabled.
+
+\(fn &optional ARG)" t nil)
+
(autoload 'windmove-default-keybindings "windmove" "\
Set up keybindings for `windmove'.
Keybindings are of the form MODIFIERS-{left,right,up,down},
@@ -39969,24 +40107,23 @@ Zone out, completely." t nil)
;;;### (autoloads nil nil ("abbrev.el" "bindings.el" "buff-menu.el"
;;;;;; "button.el" "calc/calc-aent.el" "calc/calc-embed.el"
"calc/calc-misc.el"
-;;;;;; "calc/calc-yank.el" "case-table.el" "cedet/ede/base.el"
"cedet/ede/config.el"
-;;;;;; "cedet/ede/cpp-root.el" "cedet/ede/custom.el" "cedet/ede/dired.el"
-;;;;;; "cedet/ede/emacs.el" "cedet/ede/files.el" "cedet/ede/generic.el"
-;;;;;; "cedet/ede/linux.el" "cedet/ede/locate.el" "cedet/ede/make.el"
-;;;;;; "cedet/ede/shell.el" "cedet/ede/speedbar.el" "cedet/ede/system.el"
-;;;;;; "cedet/ede/util.el" "cedet/semantic/analyze.el"
"cedet/semantic/analyze/complete.el"
-;;;;;; "cedet/semantic/analyze/refs.el" "cedet/semantic/bovine.el"
-;;;;;; "cedet/semantic/bovine/c-by.el" "cedet/semantic/bovine/c.el"
-;;;;;; "cedet/semantic/bovine/el.el" "cedet/semantic/bovine/gcc.el"
-;;;;;; "cedet/semantic/bovine/make-by.el" "cedet/semantic/bovine/make.el"
-;;;;;; "cedet/semantic/bovine/scm-by.el" "cedet/semantic/bovine/scm.el"
-;;;;;; "cedet/semantic/complete.el" "cedet/semantic/ctxt.el"
"cedet/semantic/db-file.el"
-;;;;;; "cedet/semantic/db-find.el" "cedet/semantic/db-global.el"
-;;;;;; "cedet/semantic/db-mode.el" "cedet/semantic/db-typecache.el"
-;;;;;; "cedet/semantic/db.el" "cedet/semantic/debug.el"
"cedet/semantic/decorate/include.el"
-;;;;;; "cedet/semantic/decorate/mode.el" "cedet/semantic/dep.el"
-;;;;;; "cedet/semantic/doc.el" "cedet/semantic/edit.el"
"cedet/semantic/find.el"
-;;;;;; "cedet/semantic/format.el" "cedet/semantic/grammar-wy.el"
+;;;;;; "calc/calc-yank.el" "case-table.el" "cedet/ede/cpp-root.el"
+;;;;;; "cedet/ede/custom.el" "cedet/ede/dired.el" "cedet/ede/emacs.el"
+;;;;;; "cedet/ede/files.el" "cedet/ede/generic.el" "cedet/ede/linux.el"
+;;;;;; "cedet/ede/locate.el" "cedet/ede/make.el" "cedet/ede/speedbar.el"
+;;;;;; "cedet/ede/system.el" "cedet/ede/util.el" "cedet/semantic/analyze.el"
+;;;;;; "cedet/semantic/analyze/complete.el" "cedet/semantic/analyze/refs.el"
+;;;;;; "cedet/semantic/bovine.el" "cedet/semantic/bovine/c-by.el"
+;;;;;; "cedet/semantic/bovine/c.el" "cedet/semantic/bovine/el.el"
+;;;;;; "cedet/semantic/bovine/gcc.el" "cedet/semantic/bovine/make-by.el"
+;;;;;; "cedet/semantic/bovine/make.el" "cedet/semantic/bovine/scm-by.el"
+;;;;;; "cedet/semantic/bovine/scm.el" "cedet/semantic/complete.el"
+;;;;;; "cedet/semantic/ctxt.el" "cedet/semantic/db-file.el"
"cedet/semantic/db-find.el"
+;;;;;; "cedet/semantic/db-global.el" "cedet/semantic/db-mode.el"
+;;;;;; "cedet/semantic/db-typecache.el" "cedet/semantic/db.el"
"cedet/semantic/debug.el"
+;;;;;; "cedet/semantic/decorate/include.el" "cedet/semantic/decorate/mode.el"
+;;;;;; "cedet/semantic/dep.el" "cedet/semantic/doc.el"
"cedet/semantic/edit.el"
+;;;;;; "cedet/semantic/find.el" "cedet/semantic/format.el"
"cedet/semantic/grammar-wy.el"
;;;;;; "cedet/semantic/grm-wy-boot.el" "cedet/semantic/html.el"
;;;;;; "cedet/semantic/ia-sb.el" "cedet/semantic/ia.el"
"cedet/semantic/idle.el"
;;;;;; "cedet/semantic/imenu.el" "cedet/semantic/lex-spp.el"
"cedet/semantic/lex.el"
@@ -40005,8 +40142,8 @@ Zone out, completely." t nil)
;;;;;; "cedet/srecode/insert.el" "cedet/srecode/java.el"
"cedet/srecode/map.el"
;;;;;; "cedet/srecode/mode.el" "cedet/srecode/srt-wy.el"
"cedet/srecode/srt.el"
;;;;;; "cedet/srecode/template.el" "cedet/srecode/texi.el" "composite.el"
-;;;;;; "cus-face.el" "cus-start.el" "custom.el" "dired-aux.el" "dired-x.el"
-;;;;;; "electric.el" "emacs-lisp/backquote.el" "emacs-lisp/byte-run.el"
+;;;;;; "cus-face.el" "cus-load.el" "cus-start.el" "custom.el" "dired-aux.el"
+;;;;;; "dired-x.el" "electric.el" "emacs-lisp/backquote.el"
"emacs-lisp/byte-run.el"
;;;;;; "emacs-lisp/cl-extra.el" "emacs-lisp/cl-macs.el"
"emacs-lisp/cl-preloaded.el"
;;;;;; "emacs-lisp/cl-seq.el" "emacs-lisp/easymenu.el"
"emacs-lisp/eieio-custom.el"
;;;;;; "emacs-lisp/eieio-opt.el" "emacs-lisp/float-sup.el"
"emacs-lisp/lisp-mode.el"
@@ -40028,57 +40165,70 @@ Zone out, completely." t nil)
;;;;;; "eshell/em-pred.el" "eshell/em-prompt.el" "eshell/em-rebind.el"
;;;;;; "eshell/em-script.el" "eshell/em-smart.el" "eshell/em-term.el"
;;;;;; "eshell/em-tramp.el" "eshell/em-unix.el" "eshell/em-xtra.el"
-;;;;;; "faces.el" "files.el" "font-core.el" "font-lock.el" "format.el"
-;;;;;; "frame.el" "help.el" "hfy-cmap.el" "ibuf-ext.el" "indent.el"
-;;;;;; "international/characters.el" "international/charscript.el"
-;;;;;; "international/cp51932.el" "international/emoji-zwj.el"
"international/eucjp-ms.el"
-;;;;;; "international/iso-transl.el" "international/mule-cmds.el"
-;;;;;; "international/mule-conf.el" "international/mule.el" "isearch.el"
-;;;;;; "jit-lock.el" "jka-cmpr-hook.el" "keymap.el" "language/burmese.el"
-;;;;;; "language/cham.el" "language/chinese.el" "language/cyrillic.el"
-;;;;;; "language/czech.el" "language/english.el" "language/ethiopic.el"
-;;;;;; "language/european.el" "language/georgian.el" "language/greek.el"
-;;;;;; "language/hebrew.el" "language/indian.el" "language/japanese.el"
-;;;;;; "language/khmer.el" "language/korean.el" "language/lao.el"
-;;;;;; "language/misc-lang.el" "language/romanian.el" "language/sinhala.el"
-;;;;;; "language/slovak.el" "language/tai-viet.el" "language/thai.el"
-;;;;;; "language/tibetan.el" "language/utf-8-lang.el" "language/vietnamese.el"
-;;;;;; "ldefs-boot.el" "leim/ja-dic/ja-dic.el" "leim/leim-list.el"
-;;;;;; "leim/quail/4Corner.el" "leim/quail/ARRAY30.el" "leim/quail/CCDOSPY.el"
-;;;;;; "leim/quail/CTLau-b5.el" "leim/quail/CTLau.el" "leim/quail/ECDICT.el"
-;;;;;; "leim/quail/ETZY.el" "leim/quail/PY-b5.el" "leim/quail/PY.el"
-;;;;;; "leim/quail/Punct-b5.el" "leim/quail/Punct.el" "leim/quail/QJ-b5.el"
-;;;;;; "leim/quail/QJ.el" "leim/quail/SW.el" "leim/quail/TONEPY.el"
-;;;;;; "leim/quail/ZIRANMA.el" "leim/quail/ZOZY.el" "leim/quail/arabic.el"
-;;;;;; "leim/quail/cham.el" "leim/quail/compose.el" "leim/quail/croatian.el"
-;;;;;; "leim/quail/cyril-jis.el" "leim/quail/cyrillic.el"
"leim/quail/czech.el"
-;;;;;; "leim/quail/georgian.el" "leim/quail/greek.el"
"leim/quail/hanja-jis.el"
-;;;;;; "leim/quail/hanja.el" "leim/quail/hanja3.el" "leim/quail/hebrew.el"
-;;;;;; "leim/quail/ipa-praat.el" "leim/quail/latin-alt.el"
"leim/quail/latin-ltx.el"
-;;;;;; "leim/quail/latin-post.el" "leim/quail/latin-pre.el"
"leim/quail/persian.el"
-;;;;;; "leim/quail/programmer-dvorak.el" "leim/quail/py-punct.el"
-;;;;;; "leim/quail/pypunct-b5.el" "leim/quail/quick-b5.el"
"leim/quail/quick-cns.el"
-;;;;;; "leim/quail/rfc1345.el" "leim/quail/sami.el" "leim/quail/sgml-input.el"
-;;;;;; "leim/quail/slovak.el" "leim/quail/symbol-ksc.el"
"leim/quail/tamil-dvorak.el"
-;;;;;; "leim/quail/tsang-b5.el" "leim/quail/tsang-cns.el"
"leim/quail/vntelex.el"
-;;;;;; "leim/quail/vnvni.el" "leim/quail/welsh.el" "loadup.el"
"mail/blessmail.el"
-;;;;;; "mail/undigest.el" "menu-bar.el" "mh-e/mh-gnus.el" "minibuffer.el"
-;;;;;; "mouse.el" "newcomment.el" "obarray.el" "org/ob-core.el"
-;;;;;; "org/ob-lob.el" "org/ob-matlab.el" "org/ob-tangle.el" "org/ob.el"
-;;;;;; "org/ol-bbdb.el" "org/ol-irc.el" "org/ol.el" "org/org-archive.el"
-;;;;;; "org/org-attach.el" "org/org-clock.el" "org/org-colview.el"
-;;;;;; "org/org-compat.el" "org/org-datetree.el" "org/org-duration.el"
-;;;;;; "org/org-element.el" "org/org-feed.el" "org/org-footnote.el"
-;;;;;; "org/org-goto.el" "org/org-id.el" "org/org-indent.el"
"org/org-install.el"
-;;;;;; "org/org-keys.el" "org/org-lint.el" "org/org-list.el" "org/org-macs.el"
-;;;;;; "org/org-mobile.el" "org/org-num.el" "org/org-plot.el"
"org/org-refile.el"
-;;;;;; "org/org-table.el" "org/org-timer.el" "org/ox-ascii.el"
"org/ox-beamer.el"
-;;;;;; "org/ox-html.el" "org/ox-icalendar.el" "org/ox-latex.el"
-;;;;;; "org/ox-md.el" "org/ox-odt.el" "org/ox-org.el" "org/ox-publish.el"
-;;;;;; "org/ox-texinfo.el" "org/ox.el" "paren.el" "progmodes/elisp-mode.el"
-;;;;;; "progmodes/prog-mode.el" "ps-mule.el" "register.el" "replace.el"
-;;;;;; "rfn-eshadow.el" "select.el" "simple.el" "startup.el" "subdirs.el"
-;;;;;; "subr.el" "tab-bar.el" "textmodes/fill.el" "textmodes/makeinfo.el"
+;;;;;; "eshell/esh-groups.el" "faces.el" "files.el" "finder-inf.el"
+;;;;;; "font-core.el" "font-lock.el" "format.el" "frame.el" "help.el"
+;;;;;; "hfy-cmap.el" "ibuf-ext.el" "indent.el" "international/characters.el"
+;;;;;; "international/charprop.el" "international/charscript.el"
+;;;;;; "international/cp51932.el" "international/emoji-labels.el"
+;;;;;; "international/emoji-zwj.el" "international/eucjp-ms.el"
+;;;;;; "international/idna-mapping.el" "international/iso-transl.el"
+;;;;;; "international/mule-cmds.el" "international/mule-conf.el"
+;;;;;; "international/mule.el" "international/uni-bidi.el"
"international/uni-brackets.el"
+;;;;;; "international/uni-category.el" "international/uni-combining.el"
+;;;;;; "international/uni-comment.el" "international/uni-confusable.el"
+;;;;;; "international/uni-decimal.el" "international/uni-decomposition.el"
+;;;;;; "international/uni-digit.el" "international/uni-lowercase.el"
+;;;;;; "international/uni-mirrored.el" "international/uni-name.el"
+;;;;;; "international/uni-numeric.el" "international/uni-old-name.el"
+;;;;;; "international/uni-scripts.el" "international/uni-special-lowercase.el"
+;;;;;; "international/uni-special-titlecase.el"
"international/uni-special-uppercase.el"
+;;;;;; "international/uni-titlecase.el" "international/uni-uppercase.el"
+;;;;;; "isearch.el" "jit-lock.el" "jka-cmpr-hook.el" "keymap.el"
+;;;;;; "language/burmese.el" "language/cham.el" "language/chinese.el"
+;;;;;; "language/cyrillic.el" "language/czech.el" "language/english.el"
+;;;;;; "language/ethiopic.el" "language/european.el" "language/georgian.el"
+;;;;;; "language/greek.el" "language/hebrew.el" "language/indian.el"
+;;;;;; "language/japanese.el" "language/khmer.el" "language/korean.el"
+;;;;;; "language/lao.el" "language/misc-lang.el" "language/romanian.el"
+;;;;;; "language/sinhala.el" "language/slovak.el" "language/tai-viet.el"
+;;;;;; "language/thai.el" "language/tibetan.el" "language/utf-8-lang.el"
+;;;;;; "language/vietnamese.el" "ldefs-boot.el" "leim/ja-dic/ja-dic.el"
+;;;;;; "leim/leim-list.el" "leim/quail/4Corner.el" "leim/quail/ARRAY30.el"
+;;;;;; "leim/quail/CCDOSPY.el" "leim/quail/CTLau-b5.el" "leim/quail/CTLau.el"
+;;;;;; "leim/quail/ECDICT.el" "leim/quail/ETZY.el" "leim/quail/PY-b5.el"
+;;;;;; "leim/quail/PY.el" "leim/quail/Punct-b5.el" "leim/quail/Punct.el"
+;;;;;; "leim/quail/QJ-b5.el" "leim/quail/QJ.el" "leim/quail/SW.el"
+;;;;;; "leim/quail/TONEPY.el" "leim/quail/ZIRANMA.el" "leim/quail/ZOZY.el"
+;;;;;; "leim/quail/arabic.el" "leim/quail/cham.el" "leim/quail/compose.el"
+;;;;;; "leim/quail/croatian.el" "leim/quail/cyril-jis.el"
"leim/quail/cyrillic.el"
+;;;;;; "leim/quail/czech.el" "leim/quail/emoji.el" "leim/quail/georgian.el"
+;;;;;; "leim/quail/greek.el" "leim/quail/hanja-jis.el" "leim/quail/hanja.el"
+;;;;;; "leim/quail/hanja3.el" "leim/quail/hebrew.el" "leim/quail/ipa-praat.el"
+;;;;;; "leim/quail/latin-alt.el" "leim/quail/latin-ltx.el"
"leim/quail/latin-post.el"
+;;;;;; "leim/quail/latin-pre.el" "leim/quail/persian.el"
"leim/quail/programmer-dvorak.el"
+;;;;;; "leim/quail/py-punct.el" "leim/quail/pypunct-b5.el"
"leim/quail/quick-b5.el"
+;;;;;; "leim/quail/quick-cns.el" "leim/quail/rfc1345.el" "leim/quail/sami.el"
+;;;;;; "leim/quail/sgml-input.el" "leim/quail/slovak.el"
"leim/quail/symbol-ksc.el"
+;;;;;; "leim/quail/tamil-dvorak.el" "leim/quail/tsang-b5.el"
"leim/quail/tsang-cns.el"
+;;;;;; "leim/quail/vntelex.el" "leim/quail/vnvni.el" "leim/quail/welsh.el"
+;;;;;; "loadup.el" "mail/blessmail.el" "mail/undigest.el" "menu-bar.el"
+;;;;;; "mh-e/mh-gnus.el" "minibuffer.el" "mouse.el" "newcomment.el"
+;;;;;; "obarray.el" "org/ob-core.el" "org/ob-lob.el" "org/ob-matlab.el"
+;;;;;; "org/ob-tangle.el" "org/ob.el" "org/ol-bbdb.el" "org/ol-irc.el"
+;;;;;; "org/ol.el" "org/org-archive.el" "org/org-attach.el" "org/org-clock.el"
+;;;;;; "org/org-colview.el" "org/org-compat.el" "org/org-datetree.el"
+;;;;;; "org/org-duration.el" "org/org-element.el" "org/org-feed.el"
+;;;;;; "org/org-footnote.el" "org/org-goto.el" "org/org-id.el"
"org/org-indent.el"
+;;;;;; "org/org-install.el" "org/org-keys.el" "org/org-lint.el"
+;;;;;; "org/org-list.el" "org/org-macs.el" "org/org-mobile.el"
"org/org-num.el"
+;;;;;; "org/org-plot.el" "org/org-refile.el" "org/org-table.el"
+;;;;;; "org/org-timer.el" "org/ox-ascii.el" "org/ox-beamer.el"
"org/ox-html.el"
+;;;;;; "org/ox-icalendar.el" "org/ox-latex.el" "org/ox-md.el" "org/ox-odt.el"
+;;;;;; "org/ox-org.el" "org/ox-publish.el" "org/ox-texinfo.el" "org/ox.el"
+;;;;;; "paren.el" "progmodes/elisp-mode.el" "progmodes/prog-mode.el"
+;;;;;; "ps-mule.el" "register.el" "replace.el" "rfn-eshadow.el"
+;;;;;; "select.el" "simple.el" "startup.el" "subdirs.el" "subr.el"
+;;;;;; "tab-bar.el" "textmodes/fill.el" "textmodes/makeinfo.el"
;;;;;; "textmodes/page.el" "textmodes/paragraphs.el" "textmodes/reftex-auc.el"
;;;;;; "textmodes/reftex-cite.el" "textmodes/reftex-dcr.el"
"textmodes/reftex-global.el"
;;;;;; "textmodes/reftex-index.el" "textmodes/reftex-parse.el"
"textmodes/reftex-ref.el"
@@ -40094,6 +40244,6 @@ Zone out, completely." t nil)
;; version-control: never
;; no-byte-compile: t
;; no-update-autoloads: t
-;; coding: utf-8
+;; coding: utf-8-emacs-unix
;; End:
;;; loaddefs.el ends here
diff --git a/lisp/leim/quail/emoji.el b/lisp/leim/quail/emoji.el
new file mode 100644
index 0000000000..f9d3e170be
--- /dev/null
+++ b/lisp/leim/quail/emoji.el
@@ -0,0 +1,2003 @@
+;;; emoji.el --- Quail package for emoji character composition -*-
lexical-binding: t -*-
+
+;; Copyright (C) 2022 Free Software Foundation, Inc.
+
+;; Author: Juri Linkov <juri@linkov.net>
+;; Keywords: multilingual, input method, i18n
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This input method supports the same key sequences as the names
+;; defined by the `C-x 8 e s' completions in emoji.el. Also it adds
+;; more emoji that enclosed in double colons.
+
+;; You can enable this input method transiently with `C-u C-x \ emoji RET'.
+;; Then typing `C-x \' will enable this input method temporarily, and
+;; after typing a key sequence it will be disabled. So typing
+;; e.g. `C-x \ : )' will insert the smiling character, and disable
+;; this input method automatically afterwards.
+
+;;; Code:
+
+(require 'quail)
+
+(quail-define-package
+ "emoji" "UTF-8" "🙂" t
+ "Emoji input method for inserting emoji characters.
+Examples:
+ slightly smiling face -> 🙂
+ :slightly_smiling_face: -> 🙂
+ :-) -> 🙂"
+ '(("\t" . quail-completion))
+ t nil nil nil nil nil nil nil nil t)
+
+(eval-when-compile
+ (require 'emoji)
+ (emoji--init)
+ (defmacro emoji--define-rules ()
+ `(quail-define-rules
+ ,@(let ((rules nil))
+ (maphash (lambda (from to)
+ (push (list from (if (stringp to)
+ (vector to)
+ to))
+ rules))
+ emoji--all-bases)
+ (append
+ rules
+ '((":hash:" ["#️⃣"])
+ (":keycap_star:" ["*️⃣"])
+ (":zero:" ["0️⃣"])
+ (":one:" ["1️⃣"])
+ (":two:" ["2️⃣"])
+ (":three:" ["3️⃣"])
+ (":four:" ["4️⃣"])
+ (":five:" ["5️⃣"])
+ (":six:" ["6️⃣"])
+ (":seven:" ["7️⃣"])
+ (":eight:" ["8️⃣"])
+ (":nine:" ["9️⃣"])
+ (":copyright:" ["©️"])
+ (":registered:" ["®️"])
+ (":mahjong:" ["🀄"])
+ (":black_joker:" ["🃏"])
+ (":a:" ["🅰️"])
+ (":b:" ["🅱️"])
+ (":o2:" ["🅾️"])
+ (":parking:" ["🅿️"])
+ (":ab:" ["🆎"])
+ (":cl:" ["🆑"])
+ (":cool:" ["🆒"])
+ (":free:" ["🆓"])
+ (":id:" ["🆔"])
+ (":new:" ["🆕"])
+ (":ng:" ["🆖"])
+ (":ok:" ["🆗"])
+ (":sos:" ["🆘"])
+ (":up:" ["🆙"])
+ (":vs:" ["🆚"])
+ (":flag-ac:" ["🇦🇨"])
+ (":flag-ad:" ["🇦🇩"])
+ (":flag-ae:" ["🇦🇪"])
+ (":flag-af:" ["🇦🇫"])
+ (":flag-ag:" ["🇦🇬"])
+ (":flag-ai:" ["🇦🇮"])
+ (":flag-al:" ["🇦🇱"])
+ (":flag-am:" ["🇦🇲"])
+ (":flag-ao:" ["🇦🇴"])
+ (":flag-aq:" ["🇦🇶"])
+ (":flag-ar:" ["🇦🇷"])
+ (":flag-as:" ["🇦🇸"])
+ (":flag-at:" ["🇦🇹"])
+ (":flag-au:" ["🇦🇺"])
+ (":flag-aw:" ["🇦🇼"])
+ (":flag-ax:" ["🇦🇽"])
+ (":flag-az:" ["🇦🇿"])
+ (":flag-ba:" ["🇧🇦"])
+ (":flag-bb:" ["🇧🇧"])
+ (":flag-bd:" ["🇧🇩"])
+ (":flag-be:" ["🇧🇪"])
+ (":flag-bf:" ["🇧🇫"])
+ (":flag-bg:" ["🇧🇬"])
+ (":flag-bh:" ["🇧🇭"])
+ (":flag-bi:" ["🇧🇮"])
+ (":flag-bj:" ["🇧🇯"])
+ (":flag-bl:" ["🇧🇱"])
+ (":flag-bm:" ["🇧🇲"])
+ (":flag-bn:" ["🇧🇳"])
+ (":flag-bo:" ["🇧🇴"])
+ (":flag-bq:" ["🇧🇶"])
+ (":flag-br:" ["🇧🇷"])
+ (":flag-bs:" ["🇧🇸"])
+ (":flag-bt:" ["🇧🇹"])
+ (":flag-bv:" ["🇧🇻"])
+ (":flag-bw:" ["🇧🇼"])
+ (":flag-by:" ["🇧🇾"])
+ (":flag-bz:" ["🇧🇿"])
+ (":flag-ca:" ["🇨🇦"])
+ (":flag-cc:" ["🇨🇨"])
+ (":flag-cd:" ["🇨🇩"])
+ (":flag-cf:" ["🇨🇫"])
+ (":flag-cg:" ["🇨🇬"])
+ (":flag-ch:" ["🇨🇭"])
+ (":flag-ci:" ["🇨🇮"])
+ (":flag-ck:" ["🇨🇰"])
+ (":flag-cl:" ["🇨🇱"])
+ (":flag-cm:" ["🇨🇲"])
+ (":cn:" ["🇨🇳"])
+ (":flag-cn:" ["🇨🇳"])
+ (":flag-co:" ["🇨🇴"])
+ (":flag-cp:" ["🇨🇵"])
+ (":flag-cr:" ["🇨🇷"])
+ (":flag-cu:" ["🇨🇺"])
+ (":flag-cv:" ["🇨🇻"])
+ (":flag-cw:" ["🇨🇼"])
+ (":flag-cx:" ["🇨🇽"])
+ (":flag-cy:" ["🇨🇾"])
+ (":flag-cz:" ["🇨🇿"])
+ (":de:" ["🇩🇪"])
+ (":flag-de:" ["🇩🇪"])
+ (":flag-dg:" ["🇩🇬"])
+ (":flag-dj:" ["🇩🇯"])
+ (":flag-dk:" ["🇩🇰"])
+ (":flag-dm:" ["🇩🇲"])
+ (":flag-do:" ["🇩🇴"])
+ (":flag-dz:" ["🇩🇿"])
+ (":flag-ea:" ["🇪🇦"])
+ (":flag-ec:" ["🇪🇨"])
+ (":flag-ee:" ["🇪🇪"])
+ (":flag-eg:" ["🇪🇬"])
+ (":flag-eh:" ["🇪🇭"])
+ (":flag-er:" ["🇪🇷"])
+ (":es:" ["🇪🇸"])
+ (":flag-es:" ["🇪🇸"])
+ (":flag-et:" ["🇪🇹"])
+ (":flag-eu:" ["🇪🇺"])
+ (":flag-fi:" ["🇫🇮"])
+ (":flag-fj:" ["🇫🇯"])
+ (":flag-fk:" ["🇫🇰"])
+ (":flag-fm:" ["🇫🇲"])
+ (":flag-fo:" ["🇫🇴"])
+ (":fr:" ["🇫🇷"])
+ (":flag-fr:" ["🇫🇷"])
+ (":flag-ga:" ["🇬🇦"])
+ (":gb:" ["🇬🇧"])
+ (":uk:" ["🇬🇧"])
+ (":flag-gb:" ["🇬🇧"])
+ (":flag-gd:" ["🇬🇩"])
+ (":flag-ge:" ["🇬🇪"])
+ (":flag-gf:" ["🇬🇫"])
+ (":flag-gg:" ["🇬🇬"])
+ (":flag-gh:" ["🇬🇭"])
+ (":flag-gi:" ["🇬🇮"])
+ (":flag-gl:" ["🇬🇱"])
+ (":flag-gm:" ["🇬🇲"])
+ (":flag-gn:" ["🇬🇳"])
+ (":flag-gp:" ["🇬🇵"])
+ (":flag-gq:" ["🇬🇶"])
+ (":flag-gr:" ["🇬🇷"])
+ (":flag-gs:" ["🇬🇸"])
+ (":flag-gt:" ["🇬🇹"])
+ (":flag-gu:" ["🇬🇺"])
+ (":flag-gw:" ["🇬🇼"])
+ (":flag-gy:" ["🇬🇾"])
+ (":flag-hk:" ["🇭🇰"])
+ (":flag-hm:" ["🇭🇲"])
+ (":flag-hn:" ["🇭🇳"])
+ (":flag-hr:" ["🇭🇷"])
+ (":flag-ht:" ["🇭🇹"])
+ (":flag-hu:" ["🇭🇺"])
+ (":flag-ic:" ["🇮🇨"])
+ (":flag-id:" ["🇮🇩"])
+ (":flag-ie:" ["🇮🇪"])
+ (":flag-il:" ["🇮🇱"])
+ (":flag-im:" ["🇮🇲"])
+ (":flag-in:" ["🇮🇳"])
+ (":flag-io:" ["🇮🇴"])
+ (":flag-iq:" ["🇮🇶"])
+ (":flag-ir:" ["🇮🇷"])
+ (":flag-is:" ["🇮🇸"])
+ (":it:" ["🇮🇹"])
+ (":flag-it:" ["🇮🇹"])
+ (":flag-je:" ["🇯🇪"])
+ (":flag-jm:" ["🇯🇲"])
+ (":flag-jo:" ["🇯🇴"])
+ (":jp:" ["🇯🇵"])
+ (":flag-jp:" ["🇯🇵"])
+ (":flag-ke:" ["🇰🇪"])
+ (":flag-kg:" ["🇰🇬"])
+ (":flag-kh:" ["🇰🇭"])
+ (":flag-ki:" ["🇰🇮"])
+ (":flag-km:" ["🇰🇲"])
+ (":flag-kn:" ["🇰🇳"])
+ (":flag-kp:" ["🇰🇵"])
+ (":kr:" ["🇰🇷"])
+ (":flag-kr:" ["🇰🇷"])
+ (":flag-kw:" ["🇰🇼"])
+ (":flag-ky:" ["🇰🇾"])
+ (":flag-kz:" ["🇰🇿"])
+ (":flag-la:" ["🇱🇦"])
+ (":flag-lb:" ["🇱🇧"])
+ (":flag-lc:" ["🇱🇨"])
+ (":flag-li:" ["🇱🇮"])
+ (":flag-lk:" ["🇱🇰"])
+ (":flag-lr:" ["🇱🇷"])
+ (":flag-ls:" ["🇱🇸"])
+ (":flag-lt:" ["🇱🇹"])
+ (":flag-lu:" ["🇱🇺"])
+ (":flag-lv:" ["🇱🇻"])
+ (":flag-ly:" ["🇱🇾"])
+ (":flag-ma:" ["🇲🇦"])
+ (":flag-mc:" ["🇲🇨"])
+ (":flag-md:" ["🇲🇩"])
+ (":flag-me:" ["🇲🇪"])
+ (":flag-mf:" ["🇲🇫"])
+ (":flag-mg:" ["🇲🇬"])
+ (":flag-mh:" ["🇲🇭"])
+ (":flag-mk:" ["🇲🇰"])
+ (":flag-ml:" ["🇲🇱"])
+ (":flag-mm:" ["🇲🇲"])
+ (":flag-mn:" ["🇲🇳"])
+ (":flag-mo:" ["🇲🇴"])
+ (":flag-mp:" ["🇲🇵"])
+ (":flag-mq:" ["🇲🇶"])
+ (":flag-mr:" ["🇲🇷"])
+ (":flag-ms:" ["🇲🇸"])
+ (":flag-mt:" ["🇲🇹"])
+ (":flag-mu:" ["🇲🇺"])
+ (":flag-mv:" ["🇲🇻"])
+ (":flag-mw:" ["🇲🇼"])
+ (":flag-mx:" ["🇲🇽"])
+ (":flag-my:" ["🇲🇾"])
+ (":flag-mz:" ["🇲🇿"])
+ (":flag-na:" ["🇳🇦"])
+ (":flag-nc:" ["🇳🇨"])
+ (":flag-ne:" ["🇳🇪"])
+ (":flag-nf:" ["🇳🇫"])
+ (":flag-ng:" ["🇳🇬"])
+ (":flag-ni:" ["🇳🇮"])
+ (":flag-nl:" ["🇳🇱"])
+ (":flag-no:" ["🇳🇴"])
+ (":flag-np:" ["🇳🇵"])
+ (":flag-nr:" ["🇳🇷"])
+ (":flag-nu:" ["🇳🇺"])
+ (":flag-nz:" ["🇳🇿"])
+ (":flag-om:" ["🇴🇲"])
+ (":flag-pa:" ["🇵🇦"])
+ (":flag-pe:" ["🇵🇪"])
+ (":flag-pf:" ["🇵🇫"])
+ (":flag-pg:" ["🇵🇬"])
+ (":flag-ph:" ["🇵🇭"])
+ (":flag-pk:" ["🇵🇰"])
+ (":flag-pl:" ["🇵🇱"])
+ (":flag-pm:" ["🇵🇲"])
+ (":flag-pn:" ["🇵🇳"])
+ (":flag-pr:" ["🇵🇷"])
+ (":flag-ps:" ["🇵🇸"])
+ (":flag-pt:" ["🇵🇹"])
+ (":flag-pw:" ["🇵🇼"])
+ (":flag-py:" ["🇵🇾"])
+ (":flag-qa:" ["🇶🇦"])
+ (":flag-re:" ["🇷🇪"])
+ (":flag-ro:" ["🇷🇴"])
+ (":flag-rs:" ["🇷🇸"])
+ (":ru:" ["🇷🇺"])
+ (":flag-ru:" ["🇷🇺"])
+ (":flag-rw:" ["🇷🇼"])
+ (":flag-sa:" ["🇸🇦"])
+ (":flag-sb:" ["🇸🇧"])
+ (":flag-sc:" ["🇸🇨"])
+ (":flag-sd:" ["🇸🇩"])
+ (":flag-se:" ["🇸🇪"])
+ (":flag-sg:" ["🇸🇬"])
+ (":flag-sh:" ["🇸🇭"])
+ (":flag-si:" ["🇸🇮"])
+ (":flag-sj:" ["🇸🇯"])
+ (":flag-sk:" ["🇸🇰"])
+ (":flag-sl:" ["🇸🇱"])
+ (":flag-sm:" ["🇸🇲"])
+ (":flag-sn:" ["🇸🇳"])
+ (":flag-so:" ["🇸🇴"])
+ (":flag-sr:" ["🇸🇷"])
+ (":flag-ss:" ["🇸🇸"])
+ (":flag-st:" ["🇸🇹"])
+ (":flag-sv:" ["🇸🇻"])
+ (":flag-sx:" ["🇸🇽"])
+ (":flag-sy:" ["🇸🇾"])
+ (":flag-sz:" ["🇸🇿"])
+ (":flag-ta:" ["🇹🇦"])
+ (":flag-tc:" ["🇹🇨"])
+ (":flag-td:" ["🇹🇩"])
+ (":flag-tf:" ["🇹🇫"])
+ (":flag-tg:" ["🇹🇬"])
+ (":flag-th:" ["🇹🇭"])
+ (":flag-tj:" ["🇹🇯"])
+ (":flag-tk:" ["🇹🇰"])
+ (":flag-tl:" ["🇹🇱"])
+ (":flag-tm:" ["🇹🇲"])
+ (":flag-tn:" ["🇹🇳"])
+ (":flag-to:" ["🇹🇴"])
+ (":flag-tr:" ["🇹🇷"])
+ (":flag-tt:" ["🇹🇹"])
+ (":flag-tv:" ["🇹🇻"])
+ (":flag-tw:" ["🇹🇼"])
+ (":flag-tz:" ["🇹🇿"])
+ (":flag-ua:" ["🇺🇦"])
+ (":flag-ug:" ["🇺🇬"])
+ (":flag-um:" ["🇺🇲"])
+ (":flag-un:" ["🇺🇳"])
+ (":us:" ["🇺🇸"])
+ (":flag-us:" ["🇺🇸"])
+ (":flag-uy:" ["🇺🇾"])
+ (":flag-uz:" ["🇺🇿"])
+ (":flag-va:" ["🇻🇦"])
+ (":flag-vc:" ["🇻🇨"])
+ (":flag-ve:" ["🇻🇪"])
+ (":flag-vg:" ["🇻🇬"])
+ (":flag-vi:" ["🇻🇮"])
+ (":flag-vn:" ["🇻🇳"])
+ (":flag-vu:" ["🇻🇺"])
+ (":flag-wf:" ["🇼🇫"])
+ (":flag-ws:" ["🇼🇸"])
+ (":flag-xk:" ["🇽🇰"])
+ (":flag-ye:" ["🇾🇪"])
+ (":flag-yt:" ["🇾🇹"])
+ (":flag-za:" ["🇿🇦"])
+ (":flag-zm:" ["🇿🇲"])
+ (":flag-zw:" ["🇿🇼"])
+ (":koko:" ["🈁"])
+ (":sa:" ["🈂️"])
+ (":u7121:" ["🈚"])
+ (":u6307:" ["🈯"])
+ (":u7981:" ["🈲"])
+ (":u7a7a:" ["🈳"])
+ (":u5408:" ["🈴"])
+ (":u6e80:" ["🈵"])
+ (":u6709:" ["🈶"])
+ (":u6708:" ["🈷️"])
+ (":u7533:" ["🈸"])
+ (":u5272:" ["🈹"])
+ (":u55b6:" ["🈺"])
+ (":ideograph_advantage:" ["🉐"])
+ (":accept:" ["🉑"])
+ (":cyclone:" ["🌀"])
+ (":foggy:" ["🌁"])
+ (":closed_umbrella:" ["🌂"])
+ (":night_with_stars:" ["🌃"])
+ (":sunrise_over_mountains:" ["🌄"])
+ (":sunrise:" ["🌅"])
+ (":city_sunset:" ["🌆"])
+ (":city_sunrise:" ["🌇"])
+ (":rainbow:" ["🌈"])
+ (":bridge_at_night:" ["🌉"])
+ (":ocean:" ["🌊"])
+ (":volcano:" ["🌋"])
+ (":milky_way:" ["🌌"])
+ (":earth_africa:" ["🌍"])
+ (":earth_americas:" ["🌎"])
+ (":earth_asia:" ["🌏"])
+ (":globe_with_meridians:" ["🌐"])
+ (":new_moon:" ["🌑"])
+ (":waxing_crescent_moon:" ["🌒"])
+ (":first_quarter_moon:" ["🌓"])
+ (":moon:" ["🌔"])
+ (":waxing_gibbous_moon:" ["🌔"])
+ (":full_moon:" ["🌕"])
+ (":waning_gibbous_moon:" ["🌖"])
+ (":last_quarter_moon:" ["🌗"])
+ (":waning_crescent_moon:" ["🌘"])
+ (":crescent_moon:" ["🌙"])
+ (":new_moon_with_face:" ["🌚"])
+ (":first_quarter_moon_with_face:" ["🌛"])
+ (":last_quarter_moon_with_face:" ["🌜"])
+ (":full_moon_with_face:" ["🌝"])
+ (":sun_with_face:" ["🌞"])
+ (":star2:" ["🌟"])
+ (":stars:" ["🌠"])
+ (":thermometer:" ["🌡️"])
+ (":mostly_sunny:" ["🌤️"])
+ (":sun_small_cloud:" ["🌤️"])
+ (":barely_sunny:" ["🌥️"])
+ (":sun_behind_cloud:" ["🌥️"])
+ (":partly_sunny_rain:" ["🌦️"])
+ (":sun_behind_rain_cloud:" ["🌦️"])
+ (":rain_cloud:" ["🌧️"])
+ (":snow_cloud:" ["🌨️"])
+ (":lightning:" ["🌩️"])
+ (":lightning_cloud:" ["🌩️"])
+ (":tornado:" ["🌪️"])
+ (":tornado_cloud:" ["🌪️"])
+ (":fog:" ["🌫️"])
+ (":wind_blowing_face:" ["🌬️"])
+ (":hotdog:" ["🌭"])
+ (":taco:" ["🌮"])
+ (":burrito:" ["🌯"])
+ (":chestnut:" ["🌰"])
+ (":seedling:" ["🌱"])
+ (":evergreen_tree:" ["🌲"])
+ (":deciduous_tree:" ["🌳"])
+ (":palm_tree:" ["🌴"])
+ (":cactus:" ["🌵"])
+ (":hot_pepper:" ["🌶️"])
+ (":tulip:" ["🌷"])
+ (":cherry_blossom:" ["🌸"])
+ (":rose:" ["🌹"])
+ (":hibiscus:" ["🌺"])
+ (":sunflower:" ["🌻"])
+ (":blossom:" ["🌼"])
+ (":corn:" ["🌽"])
+ (":ear_of_rice:" ["🌾"])
+ (":herb:" ["🌿"])
+ (":four_leaf_clover:" ["🍀"])
+ (":maple_leaf:" ["🍁"])
+ (":fallen_leaf:" ["🍂"])
+ (":leaves:" ["🍃"])
+ (":mushroom:" ["🍄"])
+ (":tomato:" ["🍅"])
+ (":eggplant:" ["🍆"])
+ (":grapes:" ["🍇"])
+ (":melon:" ["🍈"])
+ (":watermelon:" ["🍉"])
+ (":tangerine:" ["🍊"])
+ (":lemon:" ["🍋"])
+ (":banana:" ["🍌"])
+ (":pineapple:" ["🍍"])
+ (":apple:" ["🍎"])
+ (":green_apple:" ["🍏"])
+ (":pear:" ["🍐"])
+ (":peach:" ["🍑"])
+ (":cherries:" ["🍒"])
+ (":strawberry:" ["🍓"])
+ (":hamburger:" ["🍔"])
+ (":pizza:" ["🍕"])
+ (":meat_on_bone:" ["🍖"])
+ (":poultry_leg:" ["🍗"])
+ (":rice_cracker:" ["🍘"])
+ (":rice_ball:" ["🍙"])
+ (":rice:" ["🍚"])
+ (":curry:" ["🍛"])
+ (":ramen:" ["🍜"])
+ (":spaghetti:" ["🍝"])
+ (":bread:" ["🍞"])
+ (":fries:" ["🍟"])
+ (":sweet_potato:" ["🍠"])
+ (":dango:" ["🍡"])
+ (":oden:" ["🍢"])
+ (":sushi:" ["🍣"])
+ (":fried_shrimp:" ["🍤"])
+ (":fish_cake:" ["🍥"])
+ (":icecream:" ["🍦"])
+ (":shaved_ice:" ["🍧"])
+ (":ice_cream:" ["🍨"])
+ (":doughnut:" ["🍩"])
+ (":cookie:" ["🍪"])
+ (":chocolate_bar:" ["🍫"])
+ (":candy:" ["🍬"])
+ (":lollipop:" ["🍭"])
+ (":custard:" ["🍮"])
+ (":honey_pot:" ["🍯"])
+ (":cake:" ["🍰"])
+ (":bento:" ["🍱"])
+ (":stew:" ["🍲"])
+ (":fried_egg:" ["🍳"])
+ (":cooking:" ["🍳"])
+ (":fork_and_knife:" ["🍴"])
+ (":tea:" ["🍵"])
+ (":sake:" ["🍶"])
+ (":wine_glass:" ["🍷"])
+ (":cocktail:" ["🍸"])
+ (":tropical_drink:" ["🍹"])
+ (":beer:" ["🍺"])
+ (":beers:" ["🍻"])
+ (":baby_bottle:" ["🍼"])
+ (":knife_fork_plate:" ["🍽️"])
+ (":champagne:" ["🍾"])
+ (":popcorn:" ["🍿"])
+ (":ribbon:" ["🎀"])
+ (":gift:" ["🎁"])
+ (":birthday:" ["🎂"])
+ (":jack_o_lantern:" ["🎃"])
+ (":christmas_tree:" ["🎄"])
+ (":santa:" ["🎅"])
+ (":fireworks:" ["🎆"])
+ (":sparkler:" ["🎇"])
+ (":balloon:" ["🎈"])
+ (":tada:" ["🎉"])
+ (":confetti_ball:" ["🎊"])
+ (":tanabata_tree:" ["🎋"])
+ (":crossed_flags:" ["🎌"])
+ (":bamboo:" ["🎍"])
+ (":dolls:" ["🎎"])
+ (":flags:" ["🎏"])
+ (":wind_chime:" ["🎐"])
+ (":rice_scene:" ["🎑"])
+ (":school_satchel:" ["🎒"])
+ (":mortar_board:" ["🎓"])
+ (":medal:" ["🎖️"])
+ (":reminder_ribbon:" ["🎗️"])
+ (":studio_microphone:" ["🎙️"])
+ (":level_slider:" ["🎚️"])
+ (":control_knobs:" ["🎛️"])
+ (":film_frames:" ["🎞️"])
+ (":admission_tickets:" ["🎟️"])
+ (":carousel_horse:" ["🎠"])
+ (":ferris_wheel:" ["🎡"])
+ (":roller_coaster:" ["🎢"])
+ (":fishing_pole_and_fish:" ["🎣"])
+ (":microphone:" ["🎤"])
+ (":movie_camera:" ["🎥"])
+ (":cinema:" ["🎦"])
+ (":headphones:" ["🎧"])
+ (":art:" ["🎨"])
+ (":tophat:" ["🎩"])
+ (":circus_tent:" ["🎪"])
+ (":ticket:" ["🎫"])
+ (":clapper:" ["🎬"])
+ (":performing_arts:" ["🎭"])
+ (":video_game:" ["🎮"])
+ (":dart:" ["🎯"])
+ (":slot_machine:" ["🎰"])
+ (":8ball:" ["🎱"])
+ (":game_die:" ["🎲"])
+ (":bowling:" ["🎳"])
+ (":flower_playing_cards:" ["🎴"])
+ (":musical_note:" ["🎵"])
+ (":notes:" ["🎶"])
+ (":saxophone:" ["🎷"])
+ (":guitar:" ["🎸"])
+ (":musical_keyboard:" ["🎹"])
+ (":trumpet:" ["🎺"])
+ (":violin:" ["🎻"])
+ (":musical_score:" ["🎼"])
+ (":running_shirt_with_sash:" ["🎽"])
+ (":tennis:" ["🎾"])
+ (":ski:" ["🎿"])
+ (":basketball:" ["🏀"])
+ (":checkered_flag:" ["🏁"])
+ (":snowboarder:" ["🏂"])
+ (":woman-running:" ["🏃♀️"])
+ (":man-running:" ["🏃♂️"])
+ (":runner:" ["🏃"])
+ (":running:" ["🏃"])
+ (":woman-surfing:" ["🏄♀️"])
+ (":man-surfing:" ["🏄♂️"])
+ (":surfer:" ["🏄"])
+ (":sports_medal:" ["🏅"])
+ (":trophy:" ["🏆"])
+ (":horse_racing:" ["🏇"])
+ (":football:" ["🏈"])
+ (":rugby_football:" ["🏉"])
+ (":woman-swimming:" ["🏊♀️"])
+ (":man-swimming:" ["🏊♂️"])
+ (":swimmer:" ["🏊"])
+ (":woman-lifting-weights:" ["🏋️♀️"])
+ (":man-lifting-weights:" ["🏋️♂️"])
+ (":weight_lifter:" ["🏋️"])
+ (":woman-golfing:" ["🏌️♀️"])
+ (":man-golfing:" ["🏌️♂️"])
+ (":golfer:" ["🏌️"])
+ (":racing_motorcycle:" ["🏍️"])
+ (":racing_car:" ["🏎️"])
+ (":cricket_bat_and_ball:" ["🏏"])
+ (":volleyball:" ["🏐"])
+ (":field_hockey_stick_and_ball:" ["🏑"])
+ (":ice_hockey_stick_and_puck:" ["🏒"])
+ (":table_tennis_paddle_and_ball:" ["🏓"])
+ (":snow_capped_mountain:" ["🏔️"])
+ (":camping:" ["🏕️"])
+ (":beach_with_umbrella:" ["🏖️"])
+ (":building_construction:" ["🏗️"])
+ (":house_buildings:" ["🏘️"])
+ (":cityscape:" ["🏙️"])
+ (":derelict_house_building:" ["🏚️"])
+ (":classical_building:" ["🏛️"])
+ (":desert:" ["🏜️"])
+ (":desert_island:" ["🏝️"])
+ (":national_park:" ["🏞️"])
+ (":stadium:" ["🏟️"])
+ (":house:" ["🏠"])
+ (":house_with_garden:" ["🏡"])
+ (":office:" ["🏢"])
+ (":post_office:" ["🏣"])
+ (":european_post_office:" ["🏤"])
+ (":hospital:" ["🏥"])
+ (":bank:" ["🏦"])
+ (":atm:" ["🏧"])
+ (":hotel:" ["🏨"])
+ (":love_hotel:" ["🏩"])
+ (":convenience_store:" ["🏪"])
+ (":school:" ["🏫"])
+ (":department_store:" ["🏬"])
+ (":factory:" ["🏭"])
+ (":izakaya_lantern:" ["🏮"])
+ (":lantern:" ["🏮"])
+ (":japanese_castle:" ["🏯"])
+ (":european_castle:" ["🏰"])
+ (":rainbow-flag:" ["🏳️🌈"])
+ (":transgender_flag:" ["🏳️⚧️"])
+ (":waving_white_flag:" ["🏳️"])
+ (":pirate_flag:" ["🏴☠️"])
+ (":flag-england:" ["🏴"])
+ (":flag-scotland:" ["🏴"])
+ (":flag-wales:" ["🏴"])
+ (":waving_black_flag:" ["🏴"])
+ (":rosette:" ["🏵️"])
+ (":label:" ["🏷️"])
+ (":badminton_racquet_and_shuttlecock:" ["🏸"])
+ (":bow_and_arrow:" ["🏹"])
+ (":amphora:" ["🏺"])
+ (":skin-tone-2:" ["🏻"])
+ (":skin-tone-3:" ["🏼"])
+ (":skin-tone-4:" ["🏽"])
+ (":skin-tone-5:" ["🏾"])
+ (":skin-tone-6:" ["🏿"])
+ (":rat:" ["🐀"])
+ (":mouse2:" ["🐁"])
+ (":ox:" ["🐂"])
+ (":water_buffalo:" ["🐃"])
+ (":cow2:" ["🐄"])
+ (":tiger2:" ["🐅"])
+ (":leopard:" ["🐆"])
+ (":rabbit2:" ["🐇"])
+ (":black_cat:" ["🐈⬛"])
+ (":cat2:" ["🐈"])
+ (":dragon:" ["🐉"])
+ (":crocodile:" ["🐊"])
+ (":whale2:" ["🐋"])
+ (":snail:" ["🐌"])
+ (":snake:" ["🐍"])
+ (":racehorse:" ["🐎"])
+ (":ram:" ["🐏"])
+ (":goat:" ["🐐"])
+ (":sheep:" ["🐑"])
+ (":monkey:" ["🐒"])
+ (":rooster:" ["🐓"])
+ (":chicken:" ["🐔"])
+ (":service_dog:" ["🐕🦺"])
+ (":dog2:" ["🐕"])
+ (":pig2:" ["🐖"])
+ (":boar:" ["🐗"])
+ (":elephant:" ["🐘"])
+ (":octopus:" ["🐙"])
+ (":shell:" ["🐚"])
+ (":bug:" ["🐛"])
+ (":ant:" ["🐜"])
+ (":bee:" ["🐝"])
+ (":honeybee:" ["🐝"])
+ (":ladybug:" ["🐞"])
+ (":lady_beetle:" ["🐞"])
+ (":fish:" ["🐟"])
+ (":tropical_fish:" ["🐠"])
+ (":blowfish:" ["🐡"])
+ (":turtle:" ["🐢"])
+ (":hatching_chick:" ["🐣"])
+ (":baby_chick:" ["🐤"])
+ (":hatched_chick:" ["🐥"])
+ (":bird:" ["🐦"])
+ (":penguin:" ["🐧"])
+ (":koala:" ["🐨"])
+ (":poodle:" ["🐩"])
+ (":dromedary_camel:" ["🐪"])
+ (":camel:" ["🐫"])
+ (":dolphin:" ["🐬"])
+ (":flipper:" ["🐬"])
+ (":mouse:" ["🐭"])
+ (":cow:" ["🐮"])
+ (":tiger:" ["🐯"])
+ (":rabbit:" ["🐰"])
+ (":cat:" ["🐱"])
+ (":dragon_face:" ["🐲"])
+ (":whale:" ["🐳"])
+ (":horse:" ["🐴"])
+ (":monkey_face:" ["🐵"])
+ (":o)" ["🐵"])
+ (":dog:" ["🐶"])
+ (":pig:" ["🐷"])
+ (":frog:" ["🐸"])
+ (":hamster:" ["🐹"])
+ (":wolf:" ["🐺"])
+ (":polar_bear:" ["🐻❄️"])
+ (":bear:" ["🐻"])
+ (":panda_face:" ["🐼"])
+ (":pig_nose:" ["🐽"])
+ (":feet:" ["🐾"])
+ (":paw_prints:" ["🐾"])
+ (":chipmunk:" ["🐿️"])
+ (":eyes:" ["👀"])
+ (":eye-in-speech-bubble:" ["👁️🗨️"])
+ (":eye:" ["👁️"])
+ (":ear:" ["👂"])
+ (":nose:" ["👃"])
+ (":lips:" ["👄"])
+ (":tongue:" ["👅"])
+ (":point_up_2:" ["👆"])
+ (":point_down:" ["👇"])
+ (":point_left:" ["👈"])
+ (":point_right:" ["👉"])
+ (":facepunch:" ["👊"])
+ (":punch:" ["👊"])
+ (":wave:" ["👋"])
+ (":ok_hand:" ["👌"])
+ (":+1:" ["👍"])
+ (":thumbsup:" ["👍"])
+ (":-1:" ["👎"])
+ (":thumbsdown:" ["👎"])
+ (":clap:" ["👏"])
+ (":open_hands:" ["👐"])
+ (":crown:" ["👑"])
+ (":womans_hat:" ["👒"])
+ (":eyeglasses:" ["👓"])
+ (":necktie:" ["👔"])
+ (":shirt:" ["👕"])
+ (":tshirt:" ["👕"])
+ (":jeans:" ["👖"])
+ (":dress:" ["👗"])
+ (":kimono:" ["👘"])
+ (":bikini:" ["👙"])
+ (":womans_clothes:" ["👚"])
+ (":purse:" ["👛"])
+ (":handbag:" ["👜"])
+ (":pouch:" ["👝"])
+ (":mans_shoe:" ["👞"])
+ (":shoe:" ["👞"])
+ (":athletic_shoe:" ["👟"])
+ (":high_heel:" ["👠"])
+ (":sandal:" ["👡"])
+ (":boot:" ["👢"])
+ (":footprints:" ["👣"])
+ (":bust_in_silhouette:" ["👤"])
+ (":busts_in_silhouette:" ["👥"])
+ (":boy:" ["👦"])
+ (":girl:" ["👧"])
+ (":male-farmer:" ["👨🌾"])
+ (":male-cook:" ["👨🍳"])
+ (":man_feeding_baby:" ["👨🍼"])
+ (":male-student:" ["👨🎓"])
+ (":male-singer:" ["👨🎤"])
+ (":male-artist:" ["👨🎨"])
+ (":male-teacher:" ["👨🏫"])
+ (":male-factory-worker:" ["👨🏭"])
+ (":man-boy-boy:" ["👨👦👦"])
+ (":man-boy:" ["👨👦"])
+ (":man-girl-boy:" ["👨👧👦"])
+ (":man-girl-girl:" ["👨👧👧"])
+ (":man-girl:" ["👨👧"])
+ (":man-man-boy:" ["👨👨👦"])
+ (":man-man-boy-boy:" ["👨👨👦👦"])
+ (":man-man-girl:" ["👨👨👧"])
+ (":man-man-girl-boy:" ["👨👨👧👦"])
+ (":man-man-girl-girl:" ["👨👨👧👧"])
+ (":man-woman-boy:" ["👨👩👦"])
+ (":man-woman-boy-boy:" ["👨👩👦👦"])
+ (":man-woman-girl:" ["👨👩👧"])
+ (":man-woman-girl-boy:" ["👨👩👧👦"])
+ (":man-woman-girl-girl:" ["👨👩👧👧"])
+ (":male-technologist:" ["👨💻"])
+ (":male-office-worker:" ["👨💼"])
+ (":male-mechanic:" ["👨🔧"])
+ (":male-scientist:" ["👨🔬"])
+ (":male-astronaut:" ["👨🚀"])
+ (":male-firefighter:" ["👨🚒"])
+ (":man_with_probing_cane:" ["👨🦯"])
+ (":red_haired_man:" ["👨🦰"])
+ (":curly_haired_man:" ["👨🦱"])
+ (":bald_man:" ["👨🦲"])
+ (":white_haired_man:" ["👨🦳"])
+ (":man_in_motorized_wheelchair:" ["👨🦼"])
+ (":man_in_manual_wheelchair:" ["👨🦽"])
+ (":male-doctor:" ["👨⚕️"])
+ (":male-judge:" ["👨⚖️"])
+ (":male-pilot:" ["👨✈️"])
+ (":man-heart-man:" ["👨❤️👨"])
+ (":man-kiss-man:" ["👨❤️💋👨"])
+ (":man:" ["👨"])
+ (":female-farmer:" ["👩🌾"])
+ (":female-cook:" ["👩🍳"])
+ (":woman_feeding_baby:" ["👩🍼"])
+ (":female-student:" ["👩🎓"])
+ (":female-singer:" ["👩🎤"])
+ (":female-artist:" ["👩🎨"])
+ (":female-teacher:" ["👩🏫"])
+ (":female-factory-worker:" ["👩🏭"])
+ (":woman-boy-boy:" ["👩👦👦"])
+ (":woman-boy:" ["👩👦"])
+ (":woman-girl-boy:" ["👩👧👦"])
+ (":woman-girl-girl:" ["👩👧👧"])
+ (":woman-girl:" ["👩👧"])
+ (":woman-woman-boy:" ["👩👩👦"])
+ (":woman-woman-boy-boy:" ["👩👩👦👦"])
+ (":woman-woman-girl:" ["👩👩👧"])
+ (":woman-woman-girl-boy:" ["👩👩👧👦"])
+ (":woman-woman-girl-girl:" ["👩👩👧👧"])
+ (":female-technologist:" ["👩💻"])
+ (":female-office-worker:" ["👩💼"])
+ (":female-mechanic:" ["👩🔧"])
+ (":female-scientist:" ["👩🔬"])
+ (":female-astronaut:" ["👩🚀"])
+ (":female-firefighter:" ["👩🚒"])
+ (":woman_with_probing_cane:" ["👩🦯"])
+ (":red_haired_woman:" ["👩🦰"])
+ (":curly_haired_woman:" ["👩🦱"])
+ (":bald_woman:" ["👩🦲"])
+ (":white_haired_woman:" ["👩🦳"])
+ (":woman_in_motorized_wheelchair:" ["👩🦼"])
+ (":woman_in_manual_wheelchair:" ["👩🦽"])
+ (":female-doctor:" ["👩⚕️"])
+ (":female-judge:" ["👩⚖️"])
+ (":female-pilot:" ["👩✈️"])
+ (":woman-heart-man:" ["👩❤️👨"])
+ (":woman-heart-woman:" ["👩❤️👩"])
+ (":woman-kiss-man:" ["👩❤️💋👨"])
+ (":woman-kiss-woman:" ["👩❤️💋👩"])
+ (":woman:" ["👩"])
+ (":family:" ["👪"])
+ (":man_and_woman_holding_hands:" ["👫"])
+ (":woman_and_man_holding_hands:" ["👫"])
+ (":couple:" ["👫"])
+ (":two_men_holding_hands:" ["👬"])
+ (":men_holding_hands:" ["👬"])
+ (":two_women_holding_hands:" ["👭"])
+ (":women_holding_hands:" ["👭"])
+ (":female-police-officer:" ["👮♀️"])
+ (":male-police-officer:" ["👮♂️"])
+ (":cop:" ["👮"])
+ (":women-with-bunny-ears-partying:" ["👯♀️"])
+ (":woman-with-bunny-ears-partying:" ["👯♀️"])
+ (":men-with-bunny-ears-partying:" ["👯♂️"])
+ (":man-with-bunny-ears-partying:" ["👯♂️"])
+ (":dancers:" ["👯"])
+ (":woman_with_veil:" ["👰♀️"])
+ (":man_with_veil:" ["👰♂️"])
+ (":bride_with_veil:" ["👰"])
+ (":blond-haired-woman:" ["👱♀️"])
+ (":blond-haired-man:" ["👱♂️"])
+ (":person_with_blond_hair:" ["👱"])
+ (":man_with_gua_pi_mao:" ["👲"])
+ (":woman-wearing-turban:" ["👳♀️"])
+ (":man-wearing-turban:" ["👳♂️"])
+ (":man_with_turban:" ["👳"])
+ (":older_man:" ["👴"])
+ (":older_woman:" ["👵"])
+ (":baby:" ["👶"])
+ (":female-construction-worker:" ["👷♀️"])
+ (":male-construction-worker:" ["👷♂️"])
+ (":construction_worker:" ["👷"])
+ (":princess:" ["👸"])
+ (":japanese_ogre:" ["👹"])
+ (":japanese_goblin:" ["👺"])
+ (":ghost:" ["👻"])
+ (":angel:" ["👼"])
+ (":alien:" ["👽"])
+ (":space_invader:" ["👾"])
+ (":imp:" ["👿"])
+ (":skull:" ["💀"])
+ (":woman-tipping-hand:" ["💁♀️"])
+ (":man-tipping-hand:" ["💁♂️"])
+ (":information_desk_person:" ["💁"])
+ (":female-guard:" ["💂♀️"])
+ (":male-guard:" ["💂♂️"])
+ (":guardsman:" ["💂"])
+ (":dancer:" ["💃"])
+ (":lipstick:" ["💄"])
+ (":nail_care:" ["💅"])
+ (":woman-getting-massage:" ["💆♀️"])
+ (":man-getting-massage:" ["💆♂️"])
+ (":massage:" ["💆"])
+ (":woman-getting-haircut:" ["💇♀️"])
+ (":man-getting-haircut:" ["💇♂️"])
+ (":haircut:" ["💇"])
+ (":barber:" ["💈"])
+ (":syringe:" ["💉"])
+ (":pill:" ["💊"])
+ (":kiss:" ["💋"])
+ (":love_letter:" ["💌"])
+ (":ring:" ["💍"])
+ (":gem:" ["💎"])
+ (":couplekiss:" ["💏"])
+ (":bouquet:" ["💐"])
+ (":couple_with_heart:" ["💑"])
+ (":wedding:" ["💒"])
+ (":heartbeat:" ["💓"])
+ (":broken_heart:" ["💔"])
+ ("</3" ["💔"])
+ (":two_hearts:" ["💕"])
+ (":sparkling_heart:" ["💖"])
+ (":heartpulse:" ["💗"])
+ (":cupid:" ["💘"])
+ (":blue_heart:" ["💙"])
+ ("<3" ["💙"])
+ (":green_heart:" ["💚"])
+ ("<3" ["💚"])
+ (":yellow_heart:" ["💛"])
+ ("<3" ["💛"])
+ (":purple_heart:" ["💜"])
+ ("<3" ["💜"])
+ (":gift_heart:" ["💝"])
+ (":revolving_hearts:" ["💞"])
+ (":heart_decoration:" ["💟"])
+ (":diamond_shape_with_a_dot_inside:" ["💠"])
+ (":bulb:" ["💡"])
+ (":anger:" ["💢"])
+ (":bomb:" ["💣"])
+ (":zzz:" ["💤"])
+ (":boom:" ["💥"])
+ (":collision:" ["💥"])
+ (":sweat_drops:" ["💦"])
+ (":droplet:" ["💧"])
+ (":dash:" ["💨"])
+ (":hankey:" ["💩"])
+ (":poop:" ["💩"])
+ (":shit:" ["💩"])
+ (":muscle:" ["💪"])
+ (":dizzy:" ["💫"])
+ (":speech_balloon:" ["💬"])
+ (":thought_balloon:" ["💭"])
+ (":white_flower:" ["💮"])
+ (":100:" ["💯"])
+ (":moneybag:" ["💰"])
+ (":currency_exchange:" ["💱"])
+ (":heavy_dollar_sign:" ["💲"])
+ (":credit_card:" ["💳"])
+ (":yen:" ["💴"])
+ (":dollar:" ["💵"])
+ (":euro:" ["💶"])
+ (":pound:" ["💷"])
+ (":money_with_wings:" ["💸"])
+ (":chart:" ["💹"])
+ (":seat:" ["💺"])
+ (":computer:" ["💻"])
+ (":briefcase:" ["💼"])
+ (":minidisc:" ["💽"])
+ (":floppy_disk:" ["💾"])
+ (":cd:" ["💿"])
+ (":dvd:" ["📀"])
+ (":file_folder:" ["📁"])
+ (":open_file_folder:" ["📂"])
+ (":page_with_curl:" ["📃"])
+ (":page_facing_up:" ["📄"])
+ (":date:" ["📅"])
+ (":calendar:" ["📆"])
+ (":card_index:" ["📇"])
+ (":chart_with_upwards_trend:" ["📈"])
+ (":chart_with_downwards_trend:" ["📉"])
+ (":bar_chart:" ["📊"])
+ (":clipboard:" ["📋"])
+ (":pushpin:" ["📌"])
+ (":round_pushpin:" ["📍"])
+ (":paperclip:" ["📎"])
+ (":straight_ruler:" ["📏"])
+ (":triangular_ruler:" ["📐"])
+ (":bookmark_tabs:" ["📑"])
+ (":ledger:" ["📒"])
+ (":notebook:" ["📓"])
+ (":notebook_with_decorative_cover:" ["📔"])
+ (":closed_book:" ["📕"])
+ (":book:" ["📖"])
+ (":open_book:" ["📖"])
+ (":green_book:" ["📗"])
+ (":blue_book:" ["📘"])
+ (":orange_book:" ["📙"])
+ (":books:" ["📚"])
+ (":name_badge:" ["📛"])
+ (":scroll:" ["📜"])
+ (":memo:" ["📝"])
+ (":pencil:" ["📝"])
+ (":telephone_receiver:" ["📞"])
+ (":pager:" ["📟"])
+ (":fax:" ["📠"])
+ (":satellite_antenna:" ["📡"])
+ (":loudspeaker:" ["📢"])
+ (":mega:" ["📣"])
+ (":outbox_tray:" ["📤"])
+ (":inbox_tray:" ["📥"])
+ (":package:" ["📦"])
+ (":e-mail:" ["📧"])
+ (":incoming_envelope:" ["📨"])
+ (":envelope_with_arrow:" ["📩"])
+ (":mailbox_closed:" ["📪"])
+ (":mailbox:" ["📫"])
+ (":mailbox_with_mail:" ["📬"])
+ (":mailbox_with_no_mail:" ["📭"])
+ (":postbox:" ["📮"])
+ (":postal_horn:" ["📯"])
+ (":newspaper:" ["📰"])
+ (":iphone:" ["📱"])
+ (":calling:" ["📲"])
+ (":vibration_mode:" ["📳"])
+ (":mobile_phone_off:" ["📴"])
+ (":no_mobile_phones:" ["📵"])
+ (":signal_strength:" ["📶"])
+ (":camera:" ["📷"])
+ (":camera_with_flash:" ["📸"])
+ (":video_camera:" ["📹"])
+ (":tv:" ["📺"])
+ (":radio:" ["📻"])
+ (":vhs:" ["📼"])
+ (":film_projector:" ["📽️"])
+ (":prayer_beads:" ["📿"])
+ (":twisted_rightwards_arrows:" ["🔀"])
+ (":repeat:" ["🔁"])
+ (":repeat_one:" ["🔂"])
+ (":arrows_clockwise:" ["🔃"])
+ (":arrows_counterclockwise:" ["🔄"])
+ (":low_brightness:" ["🔅"])
+ (":high_brightness:" ["🔆"])
+ (":mute:" ["🔇"])
+ (":speaker:" ["🔈"])
+ (":sound:" ["🔉"])
+ (":loud_sound:" ["🔊"])
+ (":battery:" ["🔋"])
+ (":electric_plug:" ["🔌"])
+ (":mag:" ["🔍"])
+ (":mag_right:" ["🔎"])
+ (":lock_with_ink_pen:" ["🔏"])
+ (":closed_lock_with_key:" ["🔐"])
+ (":key:" ["🔑"])
+ (":lock:" ["🔒"])
+ (":unlock:" ["🔓"])
+ (":bell:" ["🔔"])
+ (":no_bell:" ["🔕"])
+ (":bookmark:" ["🔖"])
+ (":link:" ["🔗"])
+ (":radio_button:" ["🔘"])
+ (":back:" ["🔙"])
+ (":end:" ["🔚"])
+ (":on:" ["🔛"])
+ (":soon:" ["🔜"])
+ (":top:" ["🔝"])
+ (":underage:" ["🔞"])
+ (":keycap_ten:" ["🔟"])
+ (":capital_abcd:" ["🔠"])
+ (":abcd:" ["🔡"])
+ (":1234:" ["🔢"])
+ (":symbols:" ["🔣"])
+ (":abc:" ["🔤"])
+ (":fire:" ["🔥"])
+ (":flashlight:" ["🔦"])
+ (":wrench:" ["🔧"])
+ (":hammer:" ["🔨"])
+ (":nut_and_bolt:" ["🔩"])
+ (":hocho:" ["🔪"])
+ (":knife:" ["🔪"])
+ (":gun:" ["🔫"])
+ (":microscope:" ["🔬"])
+ (":telescope:" ["🔭"])
+ (":crystal_ball:" ["🔮"])
+ (":six_pointed_star:" ["🔯"])
+ (":beginner:" ["🔰"])
+ (":trident:" ["🔱"])
+ (":black_square_button:" ["🔲"])
+ (":white_square_button:" ["🔳"])
+ (":red_circle:" ["🔴"])
+ (":large_blue_circle:" ["🔵"])
+ (":large_orange_diamond:" ["🔶"])
+ (":large_blue_diamond:" ["🔷"])
+ (":small_orange_diamond:" ["🔸"])
+ (":small_blue_diamond:" ["🔹"])
+ (":small_red_triangle:" ["🔺"])
+ (":small_red_triangle_down:" ["🔻"])
+ (":arrow_up_small:" ["🔼"])
+ (":arrow_down_small:" ["🔽"])
+ (":om_symbol:" ["🕉️"])
+ (":dove_of_peace:" ["🕊️"])
+ (":kaaba:" ["🕋"])
+ (":mosque:" ["🕌"])
+ (":synagogue:" ["🕍"])
+ (":menorah_with_nine_branches:" ["🕎"])
+ (":clock1:" ["🕐"])
+ (":clock2:" ["🕑"])
+ (":clock3:" ["🕒"])
+ (":clock4:" ["🕓"])
+ (":clock5:" ["🕔"])
+ (":clock6:" ["🕕"])
+ (":clock7:" ["🕖"])
+ (":clock8:" ["🕗"])
+ (":clock9:" ["🕘"])
+ (":clock10:" ["🕙"])
+ (":clock11:" ["🕚"])
+ (":clock12:" ["🕛"])
+ (":clock130:" ["🕜"])
+ (":clock230:" ["🕝"])
+ (":clock330:" ["🕞"])
+ (":clock430:" ["🕟"])
+ (":clock530:" ["🕠"])
+ (":clock630:" ["🕡"])
+ (":clock730:" ["🕢"])
+ (":clock830:" ["🕣"])
+ (":clock930:" ["🕤"])
+ (":clock1030:" ["🕥"])
+ (":clock1130:" ["🕦"])
+ (":clock1230:" ["🕧"])
+ (":candle:" ["🕯️"])
+ (":mantelpiece_clock:" ["🕰️"])
+ (":hole:" ["🕳️"])
+ (":man_in_business_suit_levitating:" ["🕴️"])
+ (":female-detective:" ["🕵️♀️"])
+ (":male-detective:" ["🕵️♂️"])
+ (":sleuth_or_spy:" ["🕵️"])
+ (":dark_sunglasses:" ["🕶️"])
+ (":spider:" ["🕷️"])
+ (":spider_web:" ["🕸️"])
+ (":joystick:" ["🕹️"])
+ (":man_dancing:" ["🕺"])
+ (":linked_paperclips:" ["🖇️"])
+ (":lower_left_ballpoint_pen:" ["🖊️"])
+ (":lower_left_fountain_pen:" ["🖋️"])
+ (":lower_left_paintbrush:" ["🖌️"])
+ (":lower_left_crayon:" ["🖍️"])
+ (":raised_hand_with_fingers_splayed:" ["🖐️"])
+ (":middle_finger:" ["🖕"])
+ (":reversed_hand_with_middle_finger_extended:" ["🖕"])
+ (":spock-hand:" ["🖖"])
+ (":black_heart:" ["🖤"])
+ (":desktop_computer:" ["🖥️"])
+ (":printer:" ["🖨️"])
+ (":three_button_mouse:" ["🖱️"])
+ (":trackball:" ["🖲️"])
+ (":frame_with_picture:" ["🖼️"])
+ (":card_index_dividers:" ["🗂️"])
+ (":card_file_box:" ["🗃️"])
+ (":file_cabinet:" ["🗄️"])
+ (":wastebasket:" ["🗑️"])
+ (":spiral_note_pad:" ["🗒️"])
+ (":spiral_calendar_pad:" ["🗓️"])
+ (":compression:" ["🗜️"])
+ (":old_key:" ["🗝️"])
+ (":rolled_up_newspaper:" ["🗞️"])
+ (":dagger_knife:" ["🗡️"])
+ (":speaking_head_in_silhouette:" ["🗣️"])
+ (":left_speech_bubble:" ["🗨️"])
+ (":right_anger_bubble:" ["🗯️"])
+ (":ballot_box_with_ballot:" ["🗳️"])
+ (":world_map:" ["🗺️"])
+ (":mount_fuji:" ["🗻"])
+ (":tokyo_tower:" ["🗼"])
+ (":statue_of_liberty:" ["🗽"])
+ (":japan:" ["🗾"])
+ (":moyai:" ["🗿"])
+ (":grinning:" ["😀"])
+ (":D" ["😀"])
+ (":grin:" ["😁"])
+ (":joy:" ["😂"])
+ (":smiley:" ["😃"])
+ (":)" ["😃"])
+ ("=)" ["😃"])
+ ("=-)" ["😃"])
+ (":smile:" ["😄"])
+ (":)" ["😄"])
+ ("C:" ["😄"])
+ ("c:" ["😄"])
+ (":D" ["😄"])
+ (":-D" ["😄"])
+ (":sweat_smile:" ["😅"])
+ (":laughing:" ["😆"])
+ (":satisfied:" ["😆"])
+ (":>" ["😆"])
+ (":->" ["😆"])
+ (":innocent:" ["😇"])
+ (":smiling_imp:" ["😈"])
+ (":wink:" ["😉"])
+ (";)" ["😉"])
+ (";-)" ["😉"])
+ (":blush:" ["😊"])
+ (":)" ["😊"])
+ (":yum:" ["😋"])
+ (":relieved:" ["😌"])
+ (":heart_eyes:" ["😍"])
+ (":sunglasses:" ["😎"])
+ ("8)" ["😎"])
+ (":smirk:" ["😏"])
+ (":neutral_face:" ["😐"])
+ (":|" ["😐"])
+ (":-|" ["😐"])
+ (":expressionless:" ["😑"])
+ (":unamused:" ["😒"])
+ (":(" ["😒"])
+ (":sweat:" ["😓"])
+ (":pensive:" ["😔"])
+ (":confused:" ["😕"])
+ (":\\" ["😕"])
+ (":-\\" ["😕"])
+ (":/" ["😕"])
+ (":-/" ["😕"])
+ (":confounded:" ["😖"])
+ (":kissing:" ["😗"])
+ (":kissing_heart:" ["😘"])
+ (":*" ["😘"])
+ (":-*" ["😘"])
+ (":kissing_smiling_eyes:" ["😙"])
+ (":kissing_closed_eyes:" ["😚"])
+ (":stuck_out_tongue:" ["😛"])
+ (":p" ["😛"])
+ (":-p" ["😛"])
+ (":P" ["😛"])
+ (":-P" ["😛"])
+ (":b" ["😛"])
+ (":-b" ["😛"])
+ (":stuck_out_tongue_winking_eye:" ["😜"])
+ (";p" ["😜"])
+ (";-p" ["😜"])
+ (";b" ["😜"])
+ (";-b" ["😜"])
+ (";P" ["😜"])
+ (";-P" ["😜"])
+ (":stuck_out_tongue_closed_eyes:" ["😝"])
+ (":disappointed:" ["😞"])
+ (":(" ["😞"])
+ ("):" ["😞"])
+ (":-(" ["😞"])
+ (":worried:" ["😟"])
+ (":angry:" ["😠"])
+ (">:(" ["😠"])
+ (">:-(" ["😠"])
+ (":rage:" ["😡"])
+ (":cry:" ["😢"])
+ (":'(" ["😢"])
+ (":persevere:" ["😣"])
+ (":triumph:" ["😤"])
+ (":disappointed_relieved:" ["😥"])
+ (":frowning:" ["😦"])
+ (":anguished:" ["😧"])
+ ("D:" ["😧"])
+ (":fearful:" ["😨"])
+ (":weary:" ["😩"])
+ (":sleepy:" ["😪"])
+ (":tired_face:" ["😫"])
+ (":grimacing:" ["😬"])
+ (":sob:" ["😭"])
+ (":'(" ["😭"])
+ (":face_exhaling:" ["😮💨"])
+ (":open_mouth:" ["😮"])
+ (":o" ["😮"])
+ (":-o" ["😮"])
+ (":O" ["😮"])
+ (":-O" ["😮"])
+ (":hushed:" ["😯"])
+ (":cold_sweat:" ["😰"])
+ (":scream:" ["😱"])
+ (":astonished:" ["😲"])
+ (":flushed:" ["😳"])
+ (":sleeping:" ["😴"])
+ (":face_with_spiral_eyes:" ["😵💫"])
+ (":dizzy_face:" ["😵"])
+ (":face_in_clouds:" ["😶🌫️"])
+ (":no_mouth:" ["😶"])
+ (":mask:" ["😷"])
+ (":smile_cat:" ["😸"])
+ (":joy_cat:" ["😹"])
+ (":smiley_cat:" ["😺"])
+ (":heart_eyes_cat:" ["😻"])
+ (":smirk_cat:" ["😼"])
+ (":kissing_cat:" ["😽"])
+ (":pouting_cat:" ["😾"])
+ (":crying_cat_face:" ["😿"])
+ (":scream_cat:" ["🙀"])
+ (":slightly_frowning_face:" ["🙁"])
+ (":slightly_smiling_face:" ["🙂"])
+ (":)" ["🙂"])
+ ("(:" ["🙂"])
+ (":-)" ["🙂"])
+ (":upside_down_face:" ["🙃"])
+ (":face_with_rolling_eyes:" ["🙄"])
+ (":woman-gesturing-no:" ["🙅♀️"])
+ (":man-gesturing-no:" ["🙅♂️"])
+ (":no_good:" ["🙅"])
+ (":woman-gesturing-ok:" ["🙆♀️"])
+ (":man-gesturing-ok:" ["🙆♂️"])
+ (":ok_woman:" ["🙆"])
+ (":woman-bowing:" ["🙇♀️"])
+ (":man-bowing:" ["🙇♂️"])
+ (":bow:" ["🙇"])
+ (":see_no_evil:" ["🙈"])
+ (":hear_no_evil:" ["🙉"])
+ (":speak_no_evil:" ["🙊"])
+ (":woman-raising-hand:" ["🙋♀️"])
+ (":man-raising-hand:" ["🙋♂️"])
+ (":raising_hand:" ["🙋"])
+ (":raised_hands:" ["🙌"])
+ (":woman-frowning:" ["🙍♀️"])
+ (":man-frowning:" ["🙍♂️"])
+ (":person_frowning:" ["🙍"])
+ (":woman-pouting:" ["🙎♀️"])
+ (":man-pouting:" ["🙎♂️"])
+ (":person_with_pouting_face:" ["🙎"])
+ (":pray:" ["🙏"])
+ (":rocket:" ["🚀"])
+ (":helicopter:" ["🚁"])
+ (":steam_locomotive:" ["🚂"])
+ (":railway_car:" ["🚃"])
+ (":bullettrain_side:" ["🚄"])
+ (":bullettrain_front:" ["🚅"])
+ (":train2:" ["🚆"])
+ (":metro:" ["🚇"])
+ (":light_rail:" ["🚈"])
+ (":station:" ["🚉"])
+ (":tram:" ["🚊"])
+ (":train:" ["🚋"])
+ (":bus:" ["🚌"])
+ (":oncoming_bus:" ["🚍"])
+ (":trolleybus:" ["🚎"])
+ (":busstop:" ["🚏"])
+ (":minibus:" ["🚐"])
+ (":ambulance:" ["🚑"])
+ (":fire_engine:" ["🚒"])
+ (":police_car:" ["🚓"])
+ (":oncoming_police_car:" ["🚔"])
+ (":taxi:" ["🚕"])
+ (":oncoming_taxi:" ["🚖"])
+ (":car:" ["🚗"])
+ (":red_car:" ["🚗"])
+ (":oncoming_automobile:" ["🚘"])
+ (":blue_car:" ["🚙"])
+ (":truck:" ["🚚"])
+ (":articulated_lorry:" ["🚛"])
+ (":tractor:" ["🚜"])
+ (":monorail:" ["🚝"])
+ (":mountain_railway:" ["🚞"])
+ (":suspension_railway:" ["🚟"])
+ (":mountain_cableway:" ["🚠"])
+ (":aerial_tramway:" ["🚡"])
+ (":ship:" ["🚢"])
+ (":woman-rowing-boat:" ["🚣♀️"])
+ (":man-rowing-boat:" ["🚣♂️"])
+ (":rowboat:" ["🚣"])
+ (":speedboat:" ["🚤"])
+ (":traffic_light:" ["🚥"])
+ (":vertical_traffic_light:" ["🚦"])
+ (":construction:" ["🚧"])
+ (":rotating_light:" ["🚨"])
+ (":triangular_flag_on_post:" ["🚩"])
+ (":door:" ["🚪"])
+ (":no_entry_sign:" ["🚫"])
+ (":smoking:" ["🚬"])
+ (":no_smoking:" ["🚭"])
+ (":put_litter_in_its_place:" ["🚮"])
+ (":do_not_litter:" ["🚯"])
+ (":potable_water:" ["🚰"])
+ (":non-potable_water:" ["🚱"])
+ (":bike:" ["🚲"])
+ (":no_bicycles:" ["🚳"])
+ (":woman-biking:" ["🚴♀️"])
+ (":man-biking:" ["🚴♂️"])
+ (":bicyclist:" ["🚴"])
+ (":woman-mountain-biking:" ["🚵♀️"])
+ (":man-mountain-biking:" ["🚵♂️"])
+ (":mountain_bicyclist:" ["🚵"])
+ (":woman-walking:" ["🚶♀️"])
+ (":man-walking:" ["🚶♂️"])
+ (":walking:" ["🚶"])
+ (":no_pedestrians:" ["🚷"])
+ (":children_crossing:" ["🚸"])
+ (":mens:" ["🚹"])
+ (":womens:" ["🚺"])
+ (":restroom:" ["🚻"])
+ (":baby_symbol:" ["🚼"])
+ (":toilet:" ["🚽"])
+ (":wc:" ["🚾"])
+ (":shower:" ["🚿"])
+ (":bath:" ["🛀"])
+ (":bathtub:" ["🛁"])
+ (":passport_control:" ["🛂"])
+ (":customs:" ["🛃"])
+ (":baggage_claim:" ["🛄"])
+ (":left_luggage:" ["🛅"])
+ (":couch_and_lamp:" ["🛋️"])
+ (":sleeping_accommodation:" ["🛌"])
+ (":shopping_bags:" ["🛍️"])
+ (":bellhop_bell:" ["🛎️"])
+ (":bed:" ["🛏️"])
+ (":place_of_worship:" ["🛐"])
+ (":octagonal_sign:" ["🛑"])
+ (":shopping_trolley:" ["🛒"])
+ (":hindu_temple:" ["🛕"])
+ (":hut:" ["🛖"])
+ (":elevator:" ["🛗"])
+ (":hammer_and_wrench:" ["🛠️"])
+ (":shield:" ["🛡️"])
+ (":oil_drum:" ["🛢️"])
+ (":motorway:" ["🛣️"])
+ (":railway_track:" ["🛤️"])
+ (":motor_boat:" ["🛥️"])
+ (":small_airplane:" ["🛩️"])
+ (":airplane_departure:" ["🛫"])
+ (":airplane_arriving:" ["🛬"])
+ (":satellite:" ["🛰️"])
+ (":passenger_ship:" ["🛳️"])
+ (":scooter:" ["🛴"])
+ (":motor_scooter:" ["🛵"])
+ (":canoe:" ["🛶"])
+ (":sled:" ["🛷"])
+ (":flying_saucer:" ["🛸"])
+ (":skateboard:" ["🛹"])
+ (":auto_rickshaw:" ["🛺"])
+ (":pickup_truck:" ["🛻"])
+ (":roller_skate:" ["🛼"])
+ (":large_orange_circle:" ["🟠"])
+ (":large_yellow_circle:" ["🟡"])
+ (":large_green_circle:" ["🟢"])
+ (":large_purple_circle:" ["🟣"])
+ (":large_brown_circle:" ["🟤"])
+ (":large_red_square:" ["🟥"])
+ (":large_blue_square:" ["🟦"])
+ (":large_orange_square:" ["🟧"])
+ (":large_yellow_square:" ["🟨"])
+ (":large_green_square:" ["🟩"])
+ (":large_purple_square:" ["🟪"])
+ (":large_brown_square:" ["🟫"])
+ (":pinched_fingers:" ["🤌"])
+ (":white_heart:" ["🤍"])
+ (":brown_heart:" ["🤎"])
+ (":pinching_hand:" ["🤏"])
+ (":zipper_mouth_face:" ["🤐"])
+ (":money_mouth_face:" ["🤑"])
+ (":face_with_thermometer:" ["🤒"])
+ (":nerd_face:" ["🤓"])
+ (":thinking_face:" ["🤔"])
+ (":face_with_head_bandage:" ["🤕"])
+ (":robot_face:" ["🤖"])
+ (":hugging_face:" ["🤗"])
+ (":the_horns:" ["🤘"])
+ (":sign_of_the_horns:" ["🤘"])
+ (":call_me_hand:" ["🤙"])
+ (":raised_back_of_hand:" ["🤚"])
+ (":left-facing_fist:" ["🤛"])
+ (":right-facing_fist:" ["🤜"])
+ (":handshake:" ["🤝"])
+ (":crossed_fingers:" ["🤞"])
+ (":hand_with_index_and_middle_fingers_crossed:" ["🤞"])
+ (":i_love_you_hand_sign:" ["🤟"])
+ (":face_with_cowboy_hat:" ["🤠"])
+ (":clown_face:" ["🤡"])
+ (":nauseated_face:" ["🤢"])
+ (":rolling_on_the_floor_laughing:" ["🤣"])
+ (":drooling_face:" ["🤤"])
+ (":lying_face:" ["🤥"])
+ (":woman-facepalming:" ["🤦♀️"])
+ (":man-facepalming:" ["🤦♂️"])
+ (":face_palm:" ["🤦"])
+ (":sneezing_face:" ["🤧"])
+ (":face_with_raised_eyebrow:" ["🤨"])
+ (":face_with_one_eyebrow_raised:" ["🤨"])
+ (":star-struck:" ["🤩"])
+ (":grinning_face_with_star_eyes:" ["🤩"])
+ (":zany_face:" ["🤪"])
+ (":grinning_face_with_one_large_and_one_small_eye:" ["🤪"])
+ (":shushing_face:" ["🤫"])
+ (":face_with_finger_covering_closed_lips:" ["🤫"])
+ (":face_with_symbols_on_mouth:" ["🤬"])
+ (":serious_face_with_symbols_covering_mouth:" ["🤬"])
+ (":face_with_hand_over_mouth:" ["🤭"])
+ (":smiling_face_with_smiling_eyes_and_hand_covering_mouth:" ["🤭"])
+ (":face_vomiting:" ["🤮"])
+ (":face_with_open_mouth_vomiting:" ["🤮"])
+ (":exploding_head:" ["🤯"])
+ (":shocked_face_with_exploding_head:" ["🤯"])
+ (":pregnant_woman:" ["🤰"])
+ (":breast-feeding:" ["🤱"])
+ (":palms_up_together:" ["🤲"])
+ (":selfie:" ["🤳"])
+ (":prince:" ["🤴"])
+ (":woman_in_tuxedo:" ["🤵♀️"])
+ (":man_in_tuxedo:" ["🤵♂️"])
+ (":person_in_tuxedo:" ["🤵"])
+ (":mrs_claus:" ["🤶"])
+ (":mother_christmas:" ["🤶"])
+ (":woman-shrugging:" ["🤷♀️"])
+ (":man-shrugging:" ["🤷♂️"])
+ (":shrug:" ["🤷"])
+ (":woman-cartwheeling:" ["🤸♀️"])
+ (":man-cartwheeling:" ["🤸♂️"])
+ (":person_doing_cartwheel:" ["🤸"])
+ (":woman-juggling:" ["🤹♀️"])
+ (":man-juggling:" ["🤹♂️"])
+ (":juggling:" ["🤹"])
+ (":fencer:" ["🤺"])
+ (":woman-wrestling:" ["🤼♀️"])
+ (":man-wrestling:" ["🤼♂️"])
+ (":wrestlers:" ["🤼"])
+ (":woman-playing-water-polo:" ["🤽♀️"])
+ (":man-playing-water-polo:" ["🤽♂️"])
+ (":water_polo:" ["🤽"])
+ (":woman-playing-handball:" ["🤾♀️"])
+ (":man-playing-handball:" ["🤾♂️"])
+ (":handball:" ["🤾"])
+ (":diving_mask:" ["🤿"])
+ (":wilted_flower:" ["🥀"])
+ (":drum_with_drumsticks:" ["🥁"])
+ (":clinking_glasses:" ["🥂"])
+ (":tumbler_glass:" ["🥃"])
+ (":spoon:" ["🥄"])
+ (":goal_net:" ["🥅"])
+ (":first_place_medal:" ["🥇"])
+ (":second_place_medal:" ["🥈"])
+ (":third_place_medal:" ["🥉"])
+ (":boxing_glove:" ["🥊"])
+ (":martial_arts_uniform:" ["🥋"])
+ (":curling_stone:" ["🥌"])
+ (":lacrosse:" ["🥍"])
+ (":softball:" ["🥎"])
+ (":flying_disc:" ["🥏"])
+ (":croissant:" ["🥐"])
+ (":avocado:" ["🥑"])
+ (":cucumber:" ["🥒"])
+ (":bacon:" ["🥓"])
+ (":potato:" ["🥔"])
+ (":carrot:" ["🥕"])
+ (":baguette_bread:" ["🥖"])
+ (":green_salad:" ["🥗"])
+ (":shallow_pan_of_food:" ["🥘"])
+ (":stuffed_flatbread:" ["🥙"])
+ (":egg:" ["🥚"])
+ (":glass_of_milk:" ["🥛"])
+ (":peanuts:" ["🥜"])
+ (":kiwifruit:" ["🥝"])
+ (":pancakes:" ["🥞"])
+ (":dumpling:" ["🥟"])
+ (":fortune_cookie:" ["🥠"])
+ (":takeout_box:" ["🥡"])
+ (":chopsticks:" ["🥢"])
+ (":bowl_with_spoon:" ["🥣"])
+ (":cup_with_straw:" ["🥤"])
+ (":coconut:" ["🥥"])
+ (":broccoli:" ["🥦"])
+ (":pie:" ["🥧"])
+ (":pretzel:" ["🥨"])
+ (":cut_of_meat:" ["🥩"])
+ (":sandwich:" ["🥪"])
+ (":canned_food:" ["🥫"])
+ (":leafy_green:" ["🥬"])
+ (":mango:" ["🥭"])
+ (":moon_cake:" ["🥮"])
+ (":bagel:" ["🥯"])
+ (":smiling_face_with_3_hearts:" ["🥰"])
+ (":yawning_face:" ["🥱"])
+ (":smiling_face_with_tear:" ["🥲"])
+ (":partying_face:" ["🥳"])
+ (":woozy_face:" ["🥴"])
+ (":hot_face:" ["🥵"])
+ (":cold_face:" ["🥶"])
+ (":ninja:" ["🥷"])
+ (":disguised_face:" ["🥸"])
+ (":pleading_face:" ["🥺"])
+ (":sari:" ["🥻"])
+ (":lab_coat:" ["🥼"])
+ (":goggles:" ["🥽"])
+ (":hiking_boot:" ["🥾"])
+ (":womans_flat_shoe:" ["🥿"])
+ (":crab:" ["🦀"])
+ (":lion_face:" ["🦁"])
+ (":scorpion:" ["🦂"])
+ (":turkey:" ["🦃"])
+ (":unicorn_face:" ["🦄"])
+ (":eagle:" ["🦅"])
+ (":duck:" ["🦆"])
+ (":bat:" ["🦇"])
+ (":shark:" ["🦈"])
+ (":owl:" ["🦉"])
+ (":fox_face:" ["🦊"])
+ (":butterfly:" ["🦋"])
+ (":deer:" ["🦌"])
+ (":gorilla:" ["🦍"])
+ (":lizard:" ["🦎"])
+ (":rhinoceros:" ["🦏"])
+ (":shrimp:" ["🦐"])
+ (":squid:" ["🦑"])
+ (":giraffe_face:" ["🦒"])
+ (":zebra_face:" ["🦓"])
+ (":hedgehog:" ["🦔"])
+ (":sauropod:" ["🦕"])
+ (":t-rex:" ["🦖"])
+ (":cricket:" ["🦗"])
+ (":kangaroo:" ["🦘"])
+ (":llama:" ["🦙"])
+ (":peacock:" ["🦚"])
+ (":hippopotamus:" ["🦛"])
+ (":parrot:" ["🦜"])
+ (":raccoon:" ["🦝"])
+ (":lobster:" ["🦞"])
+ (":mosquito:" ["🦟"])
+ (":microbe:" ["🦠"])
+ (":badger:" ["🦡"])
+ (":swan:" ["🦢"])
+ (":mammoth:" ["🦣"])
+ (":dodo:" ["🦤"])
+ (":sloth:" ["🦥"])
+ (":otter:" ["🦦"])
+ (":orangutan:" ["🦧"])
+ (":skunk:" ["🦨"])
+ (":flamingo:" ["🦩"])
+ (":oyster:" ["🦪"])
+ (":beaver:" ["🦫"])
+ (":bison:" ["🦬"])
+ (":seal:" ["🦭"])
+ (":guide_dog:" ["🦮"])
+ (":probing_cane:" ["🦯"])
+ (":bone:" ["🦴"])
+ (":leg:" ["🦵"])
+ (":foot:" ["🦶"])
+ (":tooth:" ["🦷"])
+ (":female_superhero:" ["🦸♀️"])
+ (":male_superhero:" ["🦸♂️"])
+ (":superhero:" ["🦸"])
+ (":female_supervillain:" ["🦹♀️"])
+ (":male_supervillain:" ["🦹♂️"])
+ (":supervillain:" ["🦹"])
+ (":safety_vest:" ["🦺"])
+ (":ear_with_hearing_aid:" ["🦻"])
+ (":motorized_wheelchair:" ["🦼"])
+ (":manual_wheelchair:" ["🦽"])
+ (":mechanical_arm:" ["🦾"])
+ (":mechanical_leg:" ["🦿"])
+ (":cheese_wedge:" ["🧀"])
+ (":cupcake:" ["🧁"])
+ (":salt:" ["🧂"])
+ (":beverage_box:" ["🧃"])
+ (":garlic:" ["🧄"])
+ (":onion:" ["🧅"])
+ (":falafel:" ["🧆"])
+ (":waffle:" ["🧇"])
+ (":butter:" ["🧈"])
+ (":mate_drink:" ["🧉"])
+ (":ice_cube:" ["🧊"])
+ (":bubble_tea:" ["🧋"])
+ (":woman_standing:" ["🧍♀️"])
+ (":man_standing:" ["🧍♂️"])
+ (":standing_person:" ["🧍"])
+ (":woman_kneeling:" ["🧎♀️"])
+ (":man_kneeling:" ["🧎♂️"])
+ (":kneeling_person:" ["🧎"])
+ (":deaf_woman:" ["🧏♀️"])
+ (":deaf_man:" ["🧏♂️"])
+ (":deaf_person:" ["🧏"])
+ (":face_with_monocle:" ["🧐"])
+ (":farmer:" ["🧑🌾"])
+ (":cook:" ["🧑🍳"])
+ (":person_feeding_baby:" ["🧑🍼"])
+ (":mx_claus:" ["🧑🎄"])
+ (":student:" ["🧑🎓"])
+ (":singer:" ["🧑🎤"])
+ (":artist:" ["🧑🎨"])
+ (":teacher:" ["🧑🏫"])
+ (":factory_worker:" ["🧑🏭"])
+ (":technologist:" ["🧑💻"])
+ (":office_worker:" ["🧑💼"])
+ (":mechanic:" ["🧑🔧"])
+ (":scientist:" ["🧑🔬"])
+ (":astronaut:" ["🧑🚀"])
+ (":firefighter:" ["🧑🚒"])
+ (":people_holding_hands:" ["🧑🤝🧑"])
+ (":person_with_probing_cane:" ["🧑🦯"])
+ (":red_haired_person:" ["🧑🦰"])
+ (":curly_haired_person:" ["🧑🦱"])
+ (":bald_person:" ["🧑🦲"])
+ (":white_haired_person:" ["🧑🦳"])
+ (":person_in_motorized_wheelchair:" ["🧑🦼"])
+ (":person_in_manual_wheelchair:" ["🧑🦽"])
+ (":health_worker:" ["🧑⚕️"])
+ (":judge:" ["🧑⚖️"])
+ (":pilot:" ["🧑✈️"])
+ (":adult:" ["🧑"])
+ (":child:" ["🧒"])
+ (":older_adult:" ["🧓"])
+ (":woman_with_beard:" ["🧔♀️"])
+ (":man_with_beard:" ["🧔♂️"])
+ (":bearded_person:" ["🧔"])
+ (":person_with_headscarf:" ["🧕"])
+ (":woman_in_steamy_room:" ["🧖♀️"])
+ (":man_in_steamy_room:" ["🧖♂️"])
+ (":person_in_steamy_room:" ["🧖"])
+ (":woman_climbing:" ["🧗♀️"])
+ (":man_climbing:" ["🧗♂️"])
+ (":person_climbing:" ["🧗"])
+ (":woman_in_lotus_position:" ["🧘♀️"])
+ (":man_in_lotus_position:" ["🧘♂️"])
+ (":person_in_lotus_position:" ["🧘"])
+ (":female_mage:" ["🧙♀️"])
+ (":male_mage:" ["🧙♂️"])
+ (":mage:" ["🧙"])
+ (":female_fairy:" ["🧚♀️"])
+ (":male_fairy:" ["🧚♂️"])
+ (":fairy:" ["🧚"])
+ (":female_vampire:" ["🧛♀️"])
+ (":male_vampire:" ["🧛♂️"])
+ (":vampire:" ["🧛"])
+ (":mermaid:" ["🧜♀️"])
+ (":merman:" ["🧜♂️"])
+ (":merperson:" ["🧜"])
+ (":female_elf:" ["🧝♀️"])
+ (":male_elf:" ["🧝♂️"])
+ (":elf:" ["🧝"])
+ (":female_genie:" ["🧞♀️"])
+ (":male_genie:" ["🧞♂️"])
+ (":genie:" ["🧞"])
+ (":female_zombie:" ["🧟♀️"])
+ (":male_zombie:" ["🧟♂️"])
+ (":zombie:" ["🧟"])
+ (":brain:" ["🧠"])
+ (":orange_heart:" ["🧡"])
+ (":billed_cap:" ["🧢"])
+ (":scarf:" ["🧣"])
+ (":gloves:" ["🧤"])
+ (":coat:" ["🧥"])
+ (":socks:" ["🧦"])
+ (":red_envelope:" ["🧧"])
+ (":firecracker:" ["🧨"])
+ (":jigsaw:" ["🧩"])
+ (":test_tube:" ["🧪"])
+ (":petri_dish:" ["🧫"])
+ (":dna:" ["🧬"])
+ (":compass:" ["🧭"])
+ (":abacus:" ["🧮"])
+ (":fire_extinguisher:" ["🧯"])
+ (":toolbox:" ["🧰"])
+ (":bricks:" ["🧱"])
+ (":magnet:" ["🧲"])
+ (":luggage:" ["🧳"])
+ (":lotion_bottle:" ["🧴"])
+ (":thread:" ["🧵"])
+ (":yarn:" ["🧶"])
+ (":safety_pin:" ["🧷"])
+ (":teddy_bear:" ["🧸"])
+ (":broom:" ["🧹"])
+ (":basket:" ["🧺"])
+ (":roll_of_paper:" ["🧻"])
+ (":soap:" ["🧼"])
+ (":sponge:" ["🧽"])
+ (":receipt:" ["🧾"])
+ (":nazar_amulet:" ["🧿"])
+ (":ballet_shoes:" ["🩰"])
+ (":one-piece_swimsuit:" ["🩱"])
+ (":briefs:" ["🩲"])
+ (":shorts:" ["🩳"])
+ (":thong_sandal:" ["🩴"])
+ (":drop_of_blood:" ["🩸"])
+ (":adhesive_bandage:" ["🩹"])
+ (":stethoscope:" ["🩺"])
+ (":yo-yo:" ["🪀"])
+ (":kite:" ["🪁"])
+ (":parachute:" ["🪂"])
+ (":boomerang:" ["🪃"])
+ (":magic_wand:" ["🪄"])
+ (":pinata:" ["🪅"])
+ (":nesting_dolls:" ["🪆"])
+ (":ringed_planet:" ["🪐"])
+ (":chair:" ["🪑"])
+ (":razor:" ["🪒"])
+ (":axe:" ["🪓"])
+ (":diya_lamp:" ["🪔"])
+ (":banjo:" ["🪕"])
+ (":military_helmet:" ["🪖"])
+ (":accordion:" ["🪗"])
+ (":long_drum:" ["🪘"])
+ (":coin:" ["🪙"])
+ (":carpentry_saw:" ["🪚"])
+ (":screwdriver:" ["🪛"])
+ (":ladder:" ["🪜"])
+ (":hook:" ["🪝"])
+ (":mirror:" ["🪞"])
+ (":window:" ["🪟"])
+ (":plunger:" ["🪠"])
+ (":sewing_needle:" ["🪡"])
+ (":knot:" ["🪢"])
+ (":bucket:" ["🪣"])
+ (":mouse_trap:" ["🪤"])
+ (":toothbrush:" ["🪥"])
+ (":headstone:" ["🪦"])
+ (":placard:" ["🪧"])
+ (":rock:" ["🪨"])
+ (":fly:" ["🪰"])
+ (":worm:" ["🪱"])
+ (":beetle:" ["🪲"])
+ (":cockroach:" ["🪳"])
+ (":potted_plant:" ["🪴"])
+ (":wood:" ["🪵"])
+ (":feather:" ["🪶"])
+ (":anatomical_heart:" ["🫀"])
+ (":lungs:" ["🫁"])
+ (":people_hugging:" ["🫂"])
+ (":blueberries:" ["🫐"])
+ (":bell_pepper:" ["🫑"])
+ (":olive:" ["🫒"])
+ (":flatbread:" ["🫓"])
+ (":tamale:" ["🫔"])
+ (":fondue:" ["🫕"])
+ (":teapot:" ["🫖"])
+ (":bangbang:" ["‼️"])
+ (":interrobang:" ["⁉️"])
+ (":tm:" ["™️"])
+ (":information_source:" ["ℹ️"])
+ (":left_right_arrow:" ["↔️"])
+ (":arrow_up_down:" ["↕️"])
+ (":arrow_upper_left:" ["↖️"])
+ (":arrow_upper_right:" ["↗️"])
+ (":arrow_lower_right:" ["↘️"])
+ (":arrow_lower_left:" ["↙️"])
+ (":leftwards_arrow_with_hook:" ["↩️"])
+ (":arrow_right_hook:" ["↪️"])
+ (":watch:" ["⌚"])
+ (":hourglass:" ["⌛"])
+ (":keyboard:" ["⌨️"])
+ (":eject:" ["⏏️"])
+ (":fast_forward:" ["⏩"])
+ (":rewind:" ["⏪"])
+ (":arrow_double_up:" ["⏫"])
+ (":arrow_double_down:" ["⏬"])
+ (":black_right_pointing_double_triangle_with_vertical_bar:"
["⏭️"])
+ (":black_left_pointing_double_triangle_with_vertical_bar:" ["⏮️"])
+ (":black_right_pointing_triangle_with_double_vertical_bar:"
["⏯️"])
+ (":alarm_clock:" ["⏰"])
+ (":stopwatch:" ["⏱️"])
+ (":timer_clock:" ["⏲️"])
+ (":hourglass_flowing_sand:" ["⏳"])
+ (":double_vertical_bar:" ["⏸️"])
+ (":black_square_for_stop:" ["⏹️"])
+ (":black_circle_for_record:" ["⏺️"])
+ (":m:" ["Ⓜ️"])
+ (":black_small_square:" ["▪️"])
+ (":white_small_square:" ["▫️"])
+ (":arrow_forward:" ["▶️"])
+ (":arrow_backward:" ["◀️"])
+ (":white_medium_square:" ["◻️"])
+ (":black_medium_square:" ["◼️"])
+ (":white_medium_small_square:" ["◽"])
+ (":black_medium_small_square:" ["◾"])
+ (":sunny:" ["☀️"])
+ (":cloud:" ["☁️"])
+ (":umbrella:" ["☂️"])
+ (":snowman:" ["☃️"])
+ (":comet:" ["☄️"])
+ (":phone:" ["☎️"])
+ (":telephone:" ["☎️"])
+ (":ballot_box_with_check:" ["☑️"])
+ (":umbrella_with_rain_drops:" ["☔"])
+ (":coffee:" ["☕"])
+ (":shamrock:" ["☘️"])
+ (":point_up:" ["☝️"])
+ (":skull_and_crossbones:" ["☠️"])
+ (":radioactive_sign:" ["☢️"])
+ (":biohazard_sign:" ["☣️"])
+ (":orthodox_cross:" ["☦️"])
+ (":star_and_crescent:" ["☪️"])
+ (":peace_symbol:" ["☮️"])
+ (":yin_yang:" ["☯️"])
+ (":wheel_of_dharma:" ["☸️"])
+ (":white_frowning_face:" ["☹️"])
+ (":relaxed:" ["☺️"])
+ (":female_sign:" ["♀️"])
+ (":male_sign:" ["♂️"])
+ (":aries:" ["♈"])
+ (":taurus:" ["♉"])
+ (":gemini:" ["♊"])
+ (":cancer:" ["♋"])
+ (":leo:" ["♌"])
+ (":virgo:" ["♍"])
+ (":libra:" ["♎"])
+ (":scorpius:" ["♏"])
+ (":sagittarius:" ["♐"])
+ (":capricorn:" ["♑"])
+ (":aquarius:" ["♒"])
+ (":pisces:" ["♓"])
+ (":chess_pawn:" ["♟️"])
+ (":spades:" ["♠️"])
+ (":clubs:" ["♣️"])
+ (":hearts:" ["♥️"])
+ (":diamonds:" ["♦️"])
+ (":hotsprings:" ["♨️"])
+ (":recycle:" ["♻️"])
+ (":infinity:" ["♾️"])
+ (":wheelchair:" ["♿"])
+ (":hammer_and_pick:" ["⚒️"])
+ (":anchor:" ["⚓"])
+ (":crossed_swords:" ["⚔️"])
+ (":medical_symbol:" ["⚕️"])
+ (":staff_of_aesculapius:" ["⚕️"])
+ (":scales:" ["⚖️"])
+ (":alembic:" ["⚗️"])
+ (":gear:" ["⚙️"])
+ (":atom_symbol:" ["⚛️"])
+ (":fleur_de_lis:" ["⚜️"])
+ (":warning:" ["⚠️"])
+ (":zap:" ["⚡"])
+ (":transgender_symbol:" ["⚧️"])
+ (":white_circle:" ["⚪"])
+ (":black_circle:" ["⚫"])
+ (":coffin:" ["⚰️"])
+ (":funeral_urn:" ["⚱️"])
+ (":soccer:" ["⚽"])
+ (":baseball:" ["⚾"])
+ (":snowman_without_snow:" ["⛄"])
+ (":partly_sunny:" ["⛅"])
+ (":thunder_cloud_and_rain:" ["⛈️"])
+ (":ophiuchus:" ["⛎"])
+ (":pick:" ["⛏️"])
+ (":helmet_with_white_cross:" ["⛑️"])
+ (":chains:" ["⛓️"])
+ (":no_entry:" ["⛔"])
+ (":shinto_shrine:" ["⛩️"])
+ (":church:" ["⛪"])
+ (":mountain:" ["⛰️"])
+ (":umbrella_on_ground:" ["⛱️"])
+ (":fountain:" ["⛲"])
+ (":golf:" ["⛳"])
+ (":ferry:" ["⛴️"])
+ (":boat:" ["⛵"])
+ (":sailboat:" ["⛵"])
+ (":skier:" ["⛷️"])
+ (":ice_skate:" ["⛸️"])
+ (":woman-bouncing-ball:" ["⛹️♀️"])
+ (":man-bouncing-ball:" ["⛹️♂️"])
+ (":person_with_ball:" ["⛹️"])
+ (":tent:" ["⛺"])
+ (":fuelpump:" ["⛽"])
+ (":scissors:" ["✂️"])
+ (":white_check_mark:" ["✅"])
+ (":airplane:" ["✈️"])
+ (":email:" ["✉️"])
+ (":envelope:" ["✉️"])
+ (":fist:" ["✊"])
+ (":hand:" ["✋"])
+ (":raised_hand:" ["✋"])
+ (":v:" ["✌️"])
+ (":writing_hand:" ["✍️"])
+ (":pencil2:" ["✏️"])
+ (":black_nib:" ["✒️"])
+ (":heavy_check_mark:" ["✔️"])
+ (":heavy_multiplication_x:" ["✖️"])
+ (":latin_cross:" ["✝️"])
+ (":star_of_david:" ["✡️"])
+ (":sparkles:" ["✨"])
+ (":eight_spoked_asterisk:" ["✳️"])
+ (":eight_pointed_black_star:" ["✴️"])
+ (":snowflake:" ["❄️"])
+ (":sparkle:" ["❇️"])
+ (":x:" ["❌"])
+ (":negative_squared_cross_mark:" ["❎"])
+ (":question:" ["❓"])
+ (":grey_question:" ["❔"])
+ (":grey_exclamation:" ["❕"])
+ (":exclamation:" ["❗"])
+ (":heavy_exclamation_mark:" ["❗"])
+ (":heavy_heart_exclamation_mark_ornament:" ["❣️"])
+ (":heart_on_fire:" ["❤️🔥"])
+ (":mending_heart:" ["❤️🩹"])
+ (":heart:" ["❤️"])
+ ("<3" ["❤️"])
+ (":heavy_plus_sign:" ["➕"])
+ (":heavy_minus_sign:" ["➖"])
+ (":heavy_division_sign:" ["➗"])
+ (":arrow_right:" ["➡️"])
+ (":curly_loop:" ["➰"])
+ (":loop:" ["➿"])
+ (":arrow_heading_up:" ["⤴️"])
+ (":arrow_heading_down:" ["⤵️"])
+ (":arrow_left:" ["⬅️"])
+ (":arrow_up:" ["⬆️"])
+ (":arrow_down:" ["⬇️"])
+ (":black_large_square:" ["⬛"])
+ (":white_large_square:" ["⬜"])
+ (":star:" ["⭐"])
+ (":o:" ["⭕"])
+ (":wavy_dash:" ["〰️"])
+ (":part_alternation_mark:" ["〽️"])
+ (":congratulations:" ["㊗️"])
+ (":secret:" ["㊙️"])))))))
+
+(emoji--define-rules)
+
+(provide 'emoji)
+;;; emoji.el ends here
diff --git a/lisp/macros.el b/lisp/macros.el
index 3f3a9f1770..0baf380433 100644
--- a/lisp/macros.el
+++ b/lisp/macros.el
@@ -109,8 +109,9 @@ use this command, and then save the file."
(prin1 definition (current-buffer)))
(insert ")\n")
(if keys
- (let ((keys (or (where-is-internal (symbol-function macroname)
- '(keymap))
+ (let ((keys (or (and (symbol-function macroname)
+ (where-is-internal (symbol-function macroname)
+ '(keymap)))
(where-is-internal macroname '(keymap)))))
(while keys
(insert "(global-set-key ")
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index 55921eca68..6b058d09f9 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -3354,12 +3354,12 @@ removing prefixes such as Re:, Fwd: and so on and
mailing list
tags such as [tag]."
(let ((subject (or (rmail-get-header "Subject" msgnum) ""))
(regexp "\\`[ \t\n]*\\(\\(\\w\\{1,4\\}\u00a0*[::]\\|\\[[^]]+]\\)[
\t\n]+\\)*"))
+ (setq subject (rfc2047-decode-string subject))
;; Corporate mailing systems sometimes add `[External] :'; if that
happened,
;; delete everything up thru there. Empirically, that deletion makes
;; the Subject match the other messages in the thread.
(if (string-match "\\[external][ \t\n]*:" subject)
(setq subject (substring subject (match-end 0))))
- (setq subject (rfc2047-decode-string subject))
(setq subject (replace-regexp-in-string regexp "" subject))
(replace-regexp-in-string "[ \t\n]+" " " subject)))
@@ -4489,10 +4489,7 @@ password."
:max 1 :user user :host host
:require '(:secret)))))
(if found
- (let ((secret (plist-get found :secret)))
- (if (functionp secret)
- (funcall secret)
- secret))
+ (auth-info-password found)
(read-passwd (if imap
"IMAP password: "
"POP password: "))))))
diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el
index 8ac0cd7e7c..88e55e968c 100644
--- a/lisp/mail/smtpmail.el
+++ b/lisp/mail/smtpmail.el
@@ -554,11 +554,9 @@ for `smtpmail-try-auth-method'.")
:create ask-for-password)))
(mech (or (plist-get auth-info :smtp-auth) (car mechs)))
(user (plist-get auth-info :user))
- (password (plist-get auth-info :secret))
+ (password (auth-info-password auth-info))
(save-function (and ask-for-password
(plist-get auth-info :save-function))))
- (when (functionp password)
- (setq password (funcall password)))
(when (and user
(not password))
;; The user has stored the user name, but not the password, so
@@ -573,9 +571,7 @@ for `smtpmail-try-auth-method'.")
:user smtpmail-smtp-user
:require '(:user :secret)
:create t))
- password (plist-get auth-info :secret)))
- (when (functionp password)
- (setq password (funcall password)))
+ password (auth-info-password auth-info)))
(let ((result (catch 'done
(if (and mech user password)
(smtpmail-try-auth-method process mech user password)
diff --git a/lisp/man.el b/lisp/man.el
index adf244a11a..a53a696c31 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -1976,6 +1976,32 @@ Uses `Man-name-local-regexp'."
(bookmark-default-handler
`("" (buffer . ,buf) . ,(bookmark-get-bookmark-record bookmark)))))
+;;; Mouse support
+(defun Man-at-mouse (e)
+ "Open man manual at point."
+ (interactive "e")
+ (save-excursion
+ (mouse-set-point e)
+ (man (Man-default-man-entry))))
+
+;;;###autoload
+(defun Man-context-menu (menu click)
+ "Populate MENU with commands that open a man page at point."
+ (save-excursion
+ (mouse-set-point click)
+ (when (save-excursion
+ (skip-syntax-backward "^ ")
+ (and (looking-at
+ "[[:space:]]*\\([[:alnum:]_-]+([[:alnum:]]+)\\)")
+ (match-string 1)))
+ (define-key-after menu [man-separator] menu-bar-separator
+ 'middle-separator)
+ (define-key-after menu [man-at-mouse]
+ '(menu-item "Open man page" Man-at-mouse
+ :help "Open man page around mouse click")
+ 'man-separator)))
+ menu)
+
;; Init the man package variables, if not already done.
(Man-init-defvars)
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index e0cf6c588c..817c2d485e 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -96,18 +96,28 @@
(bindings--define-key menu [separator-print]
menu-bar-separator)
- (unless (featurep 'ns)
- (bindings--define-key menu [close-tab]
- '(menu-item "Close Tab" tab-close
- :visible (fboundp 'tab-close)
- :help "Close currently selected tab"))
- (bindings--define-key menu [make-tab]
- '(menu-item "New Tab" tab-new
- :visible (fboundp 'tab-new)
- :help "Open a new tab"))
-
- (bindings--define-key menu [separator-tab]
- menu-bar-separator))
+ (bindings--define-key menu [close-tab]
+ '(menu-item "Close Tab" tab-close
+ :visible (fboundp 'tab-close)
+ :help "Close currently selected tab"))
+ (bindings--define-key menu [make-tab]
+ '(menu-item "New Tab" tab-new
+ :visible (fboundp 'tab-new)
+ :help "Open a new tab"))
+
+ (bindings--define-key menu [separator-tab]
+ menu-bar-separator)
+
+ (bindings--define-key menu [undelete-frame-mode]
+ '(menu-item "Allow Undeleting Frames" undelete-frame-mode
+ :help "Allow frames to be restored after deletion"
+ :button (:toggle . undelete-frame-mode)))
+
+ (bindings--define-key menu [undelete-last-deleted-frame]
+ '(menu-item "Undelete Frame" undelete-frame
+ :enable (and undelete-frame-mode
+ (car undelete-frame--deleted-frames))
+ :help "Undelete the most recently deleted frame"))
;; Don't use delete-frame as event name because that is a special
;; event.
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index ab760a42d1..c9f5823940 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -1004,7 +1004,9 @@ an association list that can specify properties such as:
- `styles': the list of `completion-styles' to use for that category.
- `cycle': the `completion-cycle-threshold' to use for that category.
Categories are symbols such as `buffer' and `file', used when
-completing buffer and file names, respectively.")
+completing buffer and file names, respectively.
+
+Also see `completion-category-overrides'.")
(defcustom completion-category-overrides nil
"List of category-specific user overrides for completion styles.
@@ -1014,7 +1016,9 @@ an association list that can specify properties such as:
- `cycle': the `completion-cycle-threshold' to use for that category.
Categories are symbols such as `buffer' and `file', used when
completing buffer and file names, respectively.
-This overrides the defaults specified in `completion-category-defaults'."
+
+If a property in a category is specified by this variable, it
+overrides the default specified in `completion-category-defaults'."
:version "25.1"
:type `(alist :key-type (choice :tag "Category"
(const buffer)
@@ -1169,6 +1173,18 @@ completion candidates than this number."
:version "24.1"
:type completion--cycling-threshold-type)
+(defcustom completions-sort 'alphabetical
+ "Sort candidates in the *Completions* buffer.
+
+The value can be nil to disable sorting, `alphabetical' for
+alphabetical sorting or a custom sorting function. The sorting
+function takes and returns a list of completion candidate
+strings."
+ :type '(choice (const :tag "No sorting" nil)
+ (const :tag "Alphabetical sorting" alphabetical)
+ (function :tag "Custom function"))
+ :version "29.1")
+
(defcustom completions-group nil
"Enable grouping of completion candidates in the *Completions* buffer.
See also `completions-group-format' and `completions-group-sort'."
@@ -2264,7 +2280,10 @@ variables.")
;; same, but not always.
(setq completions (if sort-fun
(funcall sort-fun completions)
- (sort completions 'string-lessp)))
+ (pcase completions-sort
+ ('nil completions)
+ ('alphabetical (sort completions
#'string-lessp))
+ (_ (funcall completions-sort
completions)))))
;; After sorting, group the candidates using the
;; `group-function'.
@@ -3047,7 +3066,10 @@ Fourth arg MUSTMATCH can take the following values:
- anything else behaves like t except that typing RET does not exit if it
does non-null completion.
-Fifth arg INITIAL specifies text to start with.
+Fifth arg INITIAL specifies text to start with. It will be
+interpreted as the trailing part of DEFAULT-FILENAME, so using a
+full file name for INITIAL will usually lead to surprising
+results.
Sixth arg PREDICATE, if non-nil, should be a function of one
argument; then a file name is considered an acceptable completion
diff --git a/lisp/mouse.el b/lisp/mouse.el
index 1a76b9a0b6..502683d3d1 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -298,6 +298,10 @@ and should return the same menu with changes such as added
new menu items."
(function-item context-menu-buffers)
(function-item context-menu-vc)
(function-item context-menu-ffap)
+ (function-item hi-lock-context-menu)
+ (function-item occur-context-menu)
+ (function-item Man-context-menu)
+ (function-item dictionary-context-menu)
(function :tag "Custom function")))
:version "28.1")
@@ -320,6 +324,8 @@ the function `context-menu-filter-function'."
(fun (mouse-posn-property (event-start click)
'context-menu-function)))
+ (select-window (posn-window (event-start click)))
+
(if (functionp fun)
(setq menu (funcall fun menu click))
(run-hook-wrapped 'context-menu-functions
diff --git a/lisp/net/dictionary.el b/lisp/net/dictionary.el
index 507363cc0f..e0824f3971 100644
--- a/lisp/net/dictionary.el
+++ b/lisp/net/dictionary.el
@@ -1376,7 +1376,7 @@ any buffer where (dictionary-tooltip-mode 1) has been
called."
(dictionary-search word)))
;;;###autoload
-(defun context-menu-dictionary (menu click)
+(defun dictionary-context-menu (menu click)
"Populate MENU with dictionary commands at CLICK.
When you add this function to `context-menu-functions',
the context menu will contain an item that searches
diff --git a/lisp/net/eudcb-bbdb.el b/lisp/net/eudcb-bbdb.el
index 60a3adbc34..e71dc238d0 100644
--- a/lisp/net/eudcb-bbdb.el
+++ b/lisp/net/eudcb-bbdb.el
@@ -233,7 +233,7 @@ RETURN-ATTRS is a list of attributes to return, defaulting
to
(setq bbdb-attrs (append bbdb-attrs (list (car query-attrs))))
(if (car query-attrs)
;; BEWARE: `bbdb-search' is a macro!
- (setq records (eval `(bbdb-search records ,@bbdb-attrs) t)))
+ (setq records (eval `(bbdb-search (quote ,records) ,@bbdb-attrs) t)))
(setq query-attrs (cdr query-attrs)))
(mapc (lambda (record)
(setq filtered (eudc-filter-duplicate-attributes record))
diff --git a/lisp/net/mailcap.el b/lisp/net/mailcap.el
index bf3c8edd1e..b65f7c25b8 100644
--- a/lisp/net/mailcap.el
+++ b/lisp/net/mailcap.el
@@ -319,8 +319,9 @@ attribute name (viewer, test, etc). This looks like:
Where VIEWERINFO specifies how the content-type is viewed. Can be
a string, in which case it is run through a shell, with appropriate
-parameters, or a symbol, in which case the symbol is `funcall'ed if
-and only if it exists as a function, with the buffer as an argument.
+parameters, or a symbol, in which case the symbol must name a function
+of zero arguments which is called in a buffer holding the MIME part's
+content.
TESTINFO is a test for the viewer's applicability, or nil. If nil, it
means the viewer is always valid. If it is a Lisp function, it is
@@ -439,9 +440,10 @@ MAILCAPS if set; otherwise (on Unix) use the path from RFC
1524, plus
("/usr/local/etc/mailcap" system)))))
(when (stringp path)
(setq path (mapcar #'list (split-string path path-separator t))))
- (when (seq-some (lambda (f)
- (file-has-changed-p (car f) 'mail-parse-mailcaps))
- path)
+ (when (or (null mailcap--computed-mime-data)
+ (seq-some (lambda (f)
+ (file-has-changed-p (car f) 'mail-parse-mailcaps))
+ path))
;; Clear out all old data.
(setq mailcap--computed-mime-data nil)
;; Add the Emacs-distributed defaults (which will be used as
@@ -1174,34 +1176,45 @@ See \"~/.mailcap\", `mailcap-mime-data' and related
files and variables."
(mailcap-parse-mailcaps)
(let ((command (mailcap-mime-info
(mailcap-extension-to-mime (file-name-extension file)))))
- (unless command
- (error "No viewer for %s" (file-name-extension file)))
- ;; Remove quotes around the file name - we'll use shell-quote-argument.
- (while (string-match "['\"]%s['\"]" command)
- (setq command (replace-match "%s" t t command)))
- (setq command (replace-regexp-in-string
- "%s"
- (shell-quote-argument (convert-standard-filename file))
- command
- nil t))
- ;; Handlers such as "gio open" and kde-open5 start viewer in background
- ;; and exit immediately. Avoid `start-process' since it assumes
- ;; :connection-type `pty' and kills children processes with SIGHUP
- ;; when temporary terminal session is finished (Bug#44824).
- ;; An alternative is `process-connection-type' let-bound to nil for
- ;; `start-process-shell-command' call (with no chance to report failure).
- (make-process
- :name "mailcap-view-file"
- :connection-type 'pipe
- :buffer nil ; "*Messages*" may be suitable for debugging
- :sentinel (lambda (proc event)
- (when (and (memq (process-status proc) '(exit signal))
- (/= (process-exit-status proc) 0))
- (message
- "Command %s: %s."
- (mapconcat #'identity (process-command proc) " ")
- (substring event 0 -1))))
- :command (list shell-file-name shell-command-switch command))))
+ (if (functionp command)
+ ;; command is a viewer function (a mode) expecting the file
+ ;; contents to be in the current buffer.
+ (let ((buf (generate-new-buffer (file-name-nondirectory file))))
+ (set-buffer buf)
+ (insert-file-contents file)
+ (setq buffer-file-name file)
+ (funcall command)
+ (set-buffer-modified-p nil)
+ (pop-to-buffer buf))
+ ;; command is a program to run with file as an argument.
+ (unless command
+ (error "No viewer for %s" (file-name-extension file)))
+ ;; Remove quotes around the file name - we'll use shell-quote-argument.
+ (while (string-match "['\"]%s['\"]" command)
+ (setq command (replace-match "%s" t t command)))
+ (setq command (replace-regexp-in-string
+ "%s"
+ (shell-quote-argument (convert-standard-filename file))
+ command
+ nil t))
+ ;; Handlers such as "gio open" and kde-open5 start viewer in background
+ ;; and exit immediately. Avoid `start-process' since it assumes
+ ;; :connection-type `pty' and kills children processes with SIGHUP
+ ;; when temporary terminal session is finished (Bug#44824).
+ ;; An alternative is `process-connection-type' let-bound to nil for
+ ;; `start-process-shell-command' call (with no chance to report failure).
+ (make-process
+ :name "mailcap-view-file"
+ :connection-type 'pipe
+ :buffer nil ; "*Messages*" may be suitable for debugging
+ :sentinel (lambda (proc event)
+ (when (and (memq (process-status proc) '(exit signal))
+ (/= (process-exit-status proc) 0))
+ (message
+ "Command %s: %s."
+ (mapconcat #'identity (process-command proc) " ")
+ (substring event 0 -1))))
+ :command (list shell-file-name shell-command-switch command)))))
(provide 'mailcap)
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
index 62e6281e03..9d1600ed72 100644
--- a/lisp/net/rcirc.el
+++ b/lisp/net/rcirc.el
@@ -560,8 +560,8 @@ If ARG is non-nil, instead prompt for connection
parameters."
(auth (auth-source-search :host server
:user user-name
:port port))
- (fn (plist-get (car auth) :secret)))
- (setq password (funcall fn)))
+ (pwd (auth-info-password (car auth))))
+ (setq password pwd))
(when server
(let (connected)
(dolist (p (rcirc-process-list))
@@ -2047,6 +2047,13 @@ connection."
(run-hook-with-args 'rcirc-print-functions
process sender response target text)))))
+(defun rcirc-when ()
+ "Show the time of reception of the message at point."
+ (interactive)
+ (if-let (time (get-text-property (point) 'rcirc-time))
+ (message (format-time-string "%c" time))
+ (message "No time information at point.")))
+
(defun rcirc-generate-log-filename (process target)
"Return filename for log file based on PROCESS and TARGET."
(if target
diff --git a/lisp/net/shr.el b/lisp/net/shr.el
index 7363874cf3..6e0af06bed 100644
--- a/lisp/net/shr.el
+++ b/lisp/net/shr.el
@@ -630,7 +630,7 @@ size, and full-buffer size."
(t
(shr-generic dom)))
(when-let ((id (dom-attr dom 'id)))
- (push (cons id (point)) shr--link-targets))
+ (push (cons id (set-marker (make-marker) start)) shr--link-targets))
;; If style is set, then this node has set the color.
(when style
(shr-colorize-region
@@ -1465,9 +1465,20 @@ ones, in case fg and bg are nil."
(shr-generic dom)
(when-let* ((id (and (not (dom-attr dom 'id)) ; Handled by `shr-descend'.
(dom-attr dom 'name)))) ; Obsolete since HTML5.
- (push (cons id (point)) shr--link-targets))
+ (push (cons id (set-marker (make-marker) start)) shr--link-targets))
(when url
- (shr-urlify (or shr-start start) (shr-expand-url url) title))))
+ (shr-urlify (or shr-start start) (shr-expand-url url) title)
+ ;; Check whether the URL is suspicious.
+ (when-let ((warning (or (textsec-suspicious-p
+ (shr-expand-url url) 'url)
+ (textsec-suspicious-p
+ (cons (shr-expand-url url)
+ (buffer-substring (or shr-start start)
+ (point)))
+ 'link))))
+ (add-text-properties (or shr-start start) (point)
+ (list 'face '(shr-link textsec-suspicious)))
+ (insert (propertize "⚠️" 'help-echo warning))))))
(defun shr-tag-abbr (dom)
(let ((title (dom-attr dom 'title))
diff --git a/lisp/net/sieve-manage.el b/lisp/net/sieve-manage.el
index 468bc90a9d..50342b9105 100644
--- a/lisp/net/sieve-manage.el
+++ b/lisp/net/sieve-manage.el
@@ -79,6 +79,7 @@
(require 'sasl)
(autoload 'sasl-find-mechanism "sasl")
(autoload 'auth-source-search "auth-source")
+(autoload 'auth-info-password "auth-source")
;; User customizable variables:
@@ -230,10 +231,7 @@ Return the buffer associated with the connection."
:max 1
:create t))
(user-name (or (plist-get (nth 0 auth-info) :user) ""))
- (user-password (or (plist-get (nth 0 auth-info) :secret) ""))
- (user-password (if (functionp user-password)
- (funcall user-password)
- user-password))
+ (user-password (or (auth-info-password (nth 0 auth-info)) ""))
(client (sasl-make-client (sasl-find-mechanism (list mech))
user-name "sieve" sieve-manage-server))
(sasl-read-passphrase
diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el
index ed73a86ef0..75e6b7179b 100644
--- a/lisp/net/tramp-adb.el
+++ b/lisp/net/tramp-adb.el
@@ -776,7 +776,7 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are
completely ignored."
(defun tramp-adb-get-signal-strings (vec)
"Strings to return by `process-file' in case of signals."
(with-tramp-connection-property vec "signal-strings"
- (let ((default-directory (tramp-make-tramp-file-name vec 'localname))
+ (let ((default-directory (tramp-make-tramp-file-name vec 'noloc))
;; `shell-file-name' and `shell-command-switch' are needed
;; for Emacs < 27.1, which doesn't support connection-local
;; variables in `shell-command'.
@@ -815,7 +815,7 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are
completely ignored."
;; Determine input.
(if (null infile)
(setq input (tramp-get-remote-null-device v))
- (setq infile (expand-file-name infile))
+ (setq infile (tramp-compat-file-name-unquote (expand-file-name infile)))
(if (tramp-equal-remote default-directory infile)
;; INFILE is on the same remote host.
(setq input (tramp-file-local-name infile))
@@ -870,7 +870,8 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are
completely ignored."
(setq ret (tramp-adb-send-command-and-check
v (format
"(cd %s; %s)"
- (tramp-shell-quote-argument localname) command)
+ (tramp-unquote-shell-quote-argument localname)
+ command)
t))
(unless (natnump ret) (setq ret 1))
;; We should add the output anyway.
@@ -900,8 +901,7 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are
completely ignored."
;; Cleanup. We remove all file cache values for the connection,
;; because the remote process could have changed them.
(when tmpinput (delete-file tmpinput))
-
- (unless process-file-side-effects
+ (when process-file-side-effects
(tramp-flush-directory-properties v ""))
;; Return exit status.
diff --git a/lisp/net/tramp-archive.el b/lisp/net/tramp-archive.el
index 8a88057d38..d3f427932f 100644
--- a/lisp/net/tramp-archive.el
+++ b/lisp/net/tramp-archive.el
@@ -457,7 +457,7 @@ name is kept in slot `hop'"
((tramp-archive-file-name-p archive)
(let ((archive
(tramp-make-tramp-file-name
- (tramp-archive-dissect-file-name archive) nil 'noarchive)))
+ (tramp-archive-dissect-file-name archive))))
(setf (tramp-file-name-host vec) (tramp-archive-gvfs-host archive)))
(puthash archive (list vec) tramp-archive-hash))
@@ -560,8 +560,7 @@ offered."
(defun tramp-archive-gvfs-file-name (name)
"Return NAME in GVFS syntax."
- (tramp-make-tramp-file-name
- (tramp-archive-dissect-file-name name) nil 'nohop))
+ (tramp-make-tramp-file-name (tramp-archive-dissect-file-name name)))
;; File name primitives.
diff --git a/lisp/net/tramp-cache.el b/lisp/net/tramp-cache.el
index 715b537247..1ab8f4d335 100644
--- a/lisp/net/tramp-cache.el
+++ b/lisp/net/tramp-cache.el
@@ -124,7 +124,7 @@ If KEY is `tramp-cache-undefined', don't create anything,
and return nil."
(dolist (elt tramp-connection-properties)
(when (tramp-compat-string-search
(or (nth 0 elt) "")
- (tramp-make-tramp-file-name key 'noloc 'nohop))
+ (tramp-make-tramp-file-name key 'noloc))
(tramp-set-connection-property key (nth 1 elt) (nth 2 elt)))))
hash))))
diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el
index 0a45b12a04..db7e7d67c4 100644
--- a/lisp/net/tramp-compat.el
+++ b/lisp/net/tramp-compat.el
@@ -283,6 +283,16 @@ CONDITION can also be a list of error conditions."
(tramp-error vec tramp-permission-denied file)
(tramp-error vec tramp-permission-denied "Permission denied: %s" file)))
+;; Function `auth-info-password' is new in Emacs 29.1.
+(defalias 'tramp-compat-auth-info-password
+ (if (fboundp 'auth-info-password)
+ #'auth-info-password
+ (lambda (auth-info)
+ (let ((secret (plist-get auth-info :secret)))
+ (while (functionp secret)
+ (setq secret (funcall secret)))
+ secret))))
+
(dolist (elt (all-completions "tramp-compat-" obarray 'functionp))
(put (intern elt) 'tramp-suppress-trace t))
diff --git a/lisp/net/tramp-crypt.el b/lisp/net/tramp-crypt.el
index 36443e0983..2a6db03672 100644
--- a/lisp/net/tramp-crypt.el
+++ b/lisp/net/tramp-crypt.el
@@ -39,7 +39,7 @@
;; first time you access a crypted remote directory. It is kept in
;; your user directory "~/.emacs.d/" with the url-encoded directory
;; name as part of the basename, and ".encfs6.xml" as suffix. Do not
-;; loose this file and the corresponding password; otherwise there is
+;; lose this file and the corresponding password; otherwise there is
;; no way to decrypt your crypted files.
;; If the user option `tramp-crypt-save-encfs-config-remote' is
@@ -208,7 +208,7 @@ If NAME doesn't belong to a crypted remote directory, retun
nil."
(find-backup-file-name . tramp-handle-find-backup-file-name)
;; `get-file-buffer' performed by default handler.
(insert-directory . tramp-crypt-handle-insert-directory)
- ;; `insert-file-contents' performed by default handler.
+ (insert-file-contents . tramp-handle-insert-file-contents)
(load . tramp-handle-load)
(lock-file . tramp-crypt-handle-lock-file)
(make-auto-save-file-name . tramp-handle-make-auto-save-file-name)
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 72b1ebb3e0..98192bd96d 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -38,6 +38,7 @@
(declare-function dired-compress-file "dired-aux")
(declare-function dired-remove-file "dired-aux")
(defvar dired-compress-file-suffixes)
+;; Added in Emacs 28.1.
(defvar process-file-return-signal-string)
(defvar vc-handled-backends)
(defvar vc-bzr-program)
@@ -136,6 +137,12 @@ be auto-detected by Tramp.
The string is used in `tramp-methods'.")
+(defcustom tramp-use-scp-direct-remote-copying nil
+ "Whether to use direct copying between two remote hosts."
+ :group 'tramp
+ :version "29.1"
+ :type 'boolean)
+
;; Initialize `tramp-methods' with the supported methods.
;;;###tramp-autoload
(tramp--with-startup
@@ -172,7 +179,7 @@ The string is used in `tramp-methods'.")
(tramp-remote-shell-args ("-c"))
(tramp-copy-program "scp")
(tramp-copy-args (("-P" "%p") ("-p" "%k")
- ("%x") ("-q") ("-r") ("%c")))
+ ("%x") ("%y") ("-q") ("-r")
("%c")))
(tramp-copy-keep-date t)
(tramp-copy-recursive t)))
(add-to-list 'tramp-methods
@@ -188,7 +195,7 @@ The string is used in `tramp-methods'.")
(tramp-remote-shell-args ("-c"))
(tramp-copy-program "scp")
(tramp-copy-args (("-P" "%p") ("-p" "%k")
- ("%x") ("-q") ("-r") ("%c")))
+ ("%x") ("%y") ("-q") ("-r")
("%c")))
(tramp-copy-keep-date t)
(tramp-copy-recursive t)))
(add-to-list 'tramp-methods
@@ -1149,8 +1156,7 @@ component is used as the target of the symlink."
(when (file-remote-p result)
(setq result (tramp-compat-file-name-quote result 'top)))
(tramp-message v 4 "True name of `%s' is `%s'" localname result)
- result))
- 'nohop)))))
+ result)))))))
;; Basic functions.
@@ -2241,200 +2247,210 @@ the uid and gid from FILENAME."
(op filename newname ok-if-already-exists keep-date)
"Invoke `scp' program to copy.
The method used must be an out-of-band method."
- (let* ((t1 (tramp-tramp-file-p filename))
- (t2 (tramp-tramp-file-p newname))
- (orig-vec (tramp-dissect-file-name (if t1 filename newname)))
+ (let* ((v1 (and (tramp-tramp-file-p filename)
+ (tramp-dissect-file-name filename)))
+ (v2 (and (tramp-tramp-file-p newname)
+ (tramp-dissect-file-name newname)))
+ (v (or v1 v2))
copy-program copy-args copy-env copy-keep-date listener spec
options source target remote-copy-program remote-copy-args p)
- (with-parsed-tramp-file-name (if t1 filename newname) nil
- (if (and t1 t2)
-
- ;; Both are Tramp files. We shall optimize it when the
- ;; methods for FILENAME and NEWNAME are the same.
- (let* ((dir-flag (file-directory-p filename))
- (tmpfile (tramp-compat-make-temp-file localname dir-flag)))
- (if dir-flag
- (setq tmpfile
- (expand-file-name
- (file-name-nondirectory newname) tmpfile)))
- (unwind-protect
- (progn
- (tramp-do-copy-or-rename-file-out-of-band
- op filename tmpfile ok-if-already-exists keep-date)
- (tramp-do-copy-or-rename-file-out-of-band
- 'rename tmpfile newname ok-if-already-exists keep-date))
- ;; Save exit.
- (ignore-errors
- (if dir-flag
- (delete-directory
- (expand-file-name ".." tmpfile) 'recursive)
- (delete-file tmpfile)))))
-
- ;; Check which ones of source and target are Tramp files.
- (setq source (funcall
- (if (and (string-equal method "rsync")
- (file-directory-p filename)
- (not (file-exists-p newname)))
- #'file-name-as-directory
- #'identity)
- (if t1
- (tramp-make-copy-program-file-name v)
- (tramp-compat-file-name-unquote filename)))
- target (if t2
- (tramp-make-copy-program-file-name v)
- (tramp-compat-file-name-unquote newname)))
-
- ;; Check for user. There might be an interactive setting.
- (setq user (or (tramp-file-name-user v)
- (tramp-get-connection-property v "login-as" nil)))
-
- ;; Check for listener port.
- (when (tramp-get-method-parameter v 'tramp-remote-copy-args)
- (setq listener (number-to-string (+ 50000 (random 10000))))
- (while
- (zerop (tramp-call-process v "nc" nil nil nil "-z" host listener))
- (setq listener (number-to-string (+ 50000 (random 10000))))))
-
- ;; Compose copy command.
- (setq options
- (format-spec
- (tramp-ssh-controlmaster-options v)
- (format-spec-make
- ?t (tramp-get-connection-property
- (tramp-get-connection-process v) "temp-file" "")))
- spec (list
- ?h (or host "") ?u (or user "") ?p (or port "")
- ?r listener ?c options ?k (if keep-date " " "")
- ?n (concat "2>" (tramp-get-remote-null-device v))
- ?x (tramp-scp-strict-file-name-checking v))
- copy-program (tramp-get-method-parameter v 'tramp-copy-program)
- copy-keep-date (tramp-get-method-parameter
- v 'tramp-copy-keep-date)
- copy-args
- ;; " " has either been a replacement of "%k" (when
- ;; keep-date argument is non-nil), or a replacement for
- ;; the whole keep-date sublist.
- (delete " " (apply #'tramp-expand-args v 'tramp-copy-args spec))
- ;; `tramp-ssh-controlmaster-options' is a string instead
- ;; of a list. Unflatten it.
- copy-args
- (tramp-compat-flatten-tree
- (mapcar
- (lambda (x) (if (tramp-compat-string-search " " x)
- (split-string x) x))
- copy-args))
- copy-env (apply #'tramp-expand-args v 'tramp-copy-env spec)
- remote-copy-program
- (tramp-get-method-parameter v 'tramp-remote-copy-program)
- remote-copy-args
- (apply #'tramp-expand-args v 'tramp-remote-copy-args spec))
-
- ;; Check for local copy program.
- (unless (executable-find copy-program)
- (tramp-error
- v 'file-error "Cannot find local copy program: %s" copy-program))
-
- ;; Install listener on the remote side. The prompt must be
- ;; consumed later on, when the process does not listen anymore.
- (when remote-copy-program
- (unless (with-tramp-connection-property
- v (concat "remote-copy-program-" remote-copy-program)
- (tramp-find-executable
- v remote-copy-program (tramp-get-remote-path v)))
- (tramp-error
- v 'file-error
- "Cannot find remote listener: %s" remote-copy-program))
- (setq remote-copy-program
- (mapconcat
- #'identity
- (append
- (list remote-copy-program) remote-copy-args
- (list (if t1 (concat "<" source) (concat ">" target)) "&"))
- " "))
- (tramp-send-command v remote-copy-program)
- (with-timeout
- (60 (tramp-error
- v 'file-error
- "Listener process not running on remote host: `%s'"
- remote-copy-program))
- (tramp-send-command v (format "netstat -l | grep -q :%s" listener))
- (while (not (tramp-send-command-and-check v nil))
- (tramp-send-command
- v (format "netstat -l | grep -q :%s" listener)))))
+ (if (and v1 v2 (zerop (length (tramp-scp-direct-remote-copying v1 v2))))
- (with-temp-buffer
+ ;; Both are Tramp files. We cannot use direct remote copying.
+ (let* ((dir-flag (file-directory-p filename))
+ (tmpfile (tramp-compat-make-temp-file
+ (tramp-file-name-localname v1) dir-flag)))
+ (if dir-flag
+ (setq tmpfile
+ (expand-file-name
+ (file-name-nondirectory newname) tmpfile)))
(unwind-protect
- ;; The default directory must be remote.
- (let ((default-directory
- (file-name-directory (if t1 filename newname)))
- (process-environment (copy-sequence process-environment)))
- ;; Set the transfer process properties.
- (tramp-set-connection-property
- v "process-name" (buffer-name (current-buffer)))
- (tramp-set-connection-property
- v "process-buffer" (current-buffer))
- (when copy-env
- (tramp-message
- orig-vec 6 "%s=\"%s\""
- (car copy-env) (string-join (cdr copy-env) " "))
- (setenv (car copy-env) (string-join (cdr copy-env) " ")))
- (setq
- copy-args
- (append
- copy-args
- (if remote-copy-program
- (list (if t1 (concat ">" target) (concat "<" source)))
- (list source target)))
- ;; Use an asynchronous process. By this, password
- ;; can be handled. We don't set a timeout, because
- ;; the copying of large files can last longer than 60
- ;; secs.
- p (let ((default-directory
tramp-compat-temporary-file-directory))
- (apply
- #'start-process
- (tramp-get-connection-name v)
- (tramp-get-connection-buffer v)
- copy-program copy-args)))
- (tramp-message orig-vec 6 "%s" (string-join (process-command p)
" "))
- (process-put p 'vector orig-vec)
- (process-put p 'adjust-window-size-function #'ignore)
- (set-process-query-on-exit-flag p nil)
+ (progn
+ (tramp-do-copy-or-rename-file-out-of-band
+ op filename tmpfile ok-if-already-exists keep-date)
+ (tramp-do-copy-or-rename-file-out-of-band
+ 'rename tmpfile newname ok-if-already-exists keep-date))
+ ;; Save exit.
+ (ignore-errors
+ (if dir-flag
+ (delete-directory
+ (expand-file-name ".." tmpfile) 'recursive)
+ (delete-file tmpfile)))))
+
+ ;; Check which ones of source and target are Tramp files.
+ (setq source (funcall
+ (if (and (string-equal (tramp-file-name-method v) "rsync")
+ (file-directory-p filename)
+ (not (file-exists-p newname)))
+ #'file-name-as-directory
+ #'identity)
+ (if v1
+ (tramp-make-copy-program-file-name v1)
+ (tramp-compat-file-name-unquote filename)))
+ target (if v2
+ (tramp-make-copy-program-file-name v2)
+ (tramp-compat-file-name-unquote newname)))
+
+ ;; Check for listener port.
+ (when (tramp-get-method-parameter v 'tramp-remote-copy-args)
+ (setq listener (number-to-string (+ 50000 (random 10000))))
+ (while
+ (zerop (tramp-call-process
+ v "nc" nil nil nil "-z" (tramp-file-name-host v) listener))
+ (setq listener (number-to-string (+ 50000 (random 10000))))))
+
+ ;; Compose copy command.
+ (setq options
+ (format-spec
+ (tramp-ssh-controlmaster-options v)
+ (format-spec-make
+ ?t (tramp-get-connection-property
+ (tramp-get-connection-process v) "temp-file" "")))
+ spec (list
+ ;; "%h" and "%u" do not happen in `tramp-copy-args'
+ ;; of `scp', so it is save to use `v'.
+ ?h (or (tramp-file-name-host v) "")
+ ?u (or (tramp-file-name-user v)
+ ;; There might be an interactive setting.
+ (tramp-get-connection-property v "login-as" nil)
+ "")
+ ;; For direct remote copying, the port must be the
+ ;; same for source and target.
+ ?p (or (tramp-file-name-port v) "")
+ ?r listener ?c options ?k (if keep-date " " "")
+ ?n (concat "2>" (tramp-get-remote-null-device v))
+ ?x (tramp-scp-strict-file-name-checking v)
+ ?y (tramp-scp-direct-remote-copying v1 v2))
+ copy-program (tramp-get-method-parameter v 'tramp-copy-program)
+ copy-keep-date (tramp-get-method-parameter
+ v 'tramp-copy-keep-date)
+ copy-args
+ ;; " " has either been a replacement of "%k" (when
+ ;; keep-date argument is non-nil), or a replacement for
+ ;; the whole keep-date sublist.
+ (delete " " (apply #'tramp-expand-args v 'tramp-copy-args spec))
+ ;; `tramp-ssh-controlmaster-options' is a string instead
+ ;; of a list. Unflatten it.
+ copy-args
+ (tramp-compat-flatten-tree
+ (mapcar
+ (lambda (x) (if (tramp-compat-string-search " " x)
+ (split-string x) x))
+ copy-args))
+ copy-env (apply #'tramp-expand-args v 'tramp-copy-env spec)
+ remote-copy-program
+ (tramp-get-method-parameter v 'tramp-remote-copy-program)
+ remote-copy-args
+ (apply #'tramp-expand-args v 'tramp-remote-copy-args spec))
+
+ ;; Check for local copy program.
+ (unless (executable-find copy-program)
+ (tramp-error
+ v 'file-error "Cannot find local copy program: %s" copy-program))
+
+ ;; Install listener on the remote side. The prompt must be
+ ;; consumed later on, when the process does not listen anymore.
+ (when remote-copy-program
+ (unless (with-tramp-connection-property
+ v (concat "remote-copy-program-" remote-copy-program)
+ (tramp-find-executable
+ v remote-copy-program (tramp-get-remote-path v)))
+ (tramp-error
+ v 'file-error
+ "Cannot find remote listener: %s" remote-copy-program))
+ (setq remote-copy-program
+ (mapconcat
+ #'identity
+ (append
+ (list remote-copy-program) remote-copy-args
+ (list (if v1 (concat "<" source) (concat ">" target)) "&"))
+ " "))
+ (tramp-send-command v remote-copy-program)
+ (with-timeout
+ (60 (tramp-error
+ v 'file-error
+ "Listener process not running on remote host: `%s'"
+ remote-copy-program))
+ (tramp-send-command v (format "netstat -l | grep -q :%s" listener))
+ (while (not (tramp-send-command-and-check v nil))
+ (tramp-send-command
+ v (format "netstat -l | grep -q :%s" listener)))))
+
+ (with-temp-buffer
+ (unwind-protect
+ ;; The default directory must be remote.
+ (let ((default-directory
+ (file-name-directory (if v1 filename newname)))
+ (process-environment (copy-sequence process-environment)))
+ ;; Set the transfer process properties.
+ (tramp-set-connection-property
+ v "process-name" (buffer-name (current-buffer)))
+ (tramp-set-connection-property
+ v "process-buffer" (current-buffer))
+ (when copy-env
+ (tramp-message
+ v 6 "%s=\"%s\""
+ (car copy-env) (string-join (cdr copy-env) " "))
+ (setenv (car copy-env) (string-join (cdr copy-env) " ")))
+ (setq
+ copy-args
+ (append
+ copy-args
+ (if remote-copy-program
+ (list (if v1 (concat ">" target) (concat "<" source)))
+ (list source target)))
+ ;; Use an asynchronous process. By this, password can
+ ;; be handled. We don't set a timeout, because the
+ ;; copying of large files can last longer than 60 secs.
+ p (let ((default-directory
+ tramp-compat-temporary-file-directory))
+ (apply
+ #'start-process
+ (tramp-get-connection-name v)
+ (tramp-get-connection-buffer v)
+ copy-program copy-args)))
+ (tramp-message v 6 "%s" (string-join (process-command p) " "))
+ (process-put p 'vector v)
+ (process-put p 'adjust-window-size-function #'ignore)
+ (set-process-query-on-exit-flag p nil)
+
+ ;; We must adapt `tramp-local-end-of-line' for sending
+ ;; the password. Also, we indicate that perhaps several
+ ;; password prompts might appear.
+ (let ((tramp-local-end-of-line tramp-rsh-end-of-line)
+ (tramp-password-prompt-not-unique (and v1 v2)))
+ (tramp-process-actions
+ p v nil tramp-actions-copy-out-of-band)))
+
+ ;; Reset the transfer process properties.
+ (tramp-flush-connection-property v "process-name")
+ (tramp-flush-connection-property v "process-buffer")
+ ;; Clear the remote prompt.
+ (when (and remote-copy-program
+ (not (tramp-send-command-and-check v nil)))
+ ;; Houston, we have a problem! Likely, the listener is
+ ;; still running, so let's clear everything (but the
+ ;; cached password).
+ (tramp-cleanup-connection v 'keep-debug 'keep-password))))
+
+ ;; Handle KEEP-DATE argument.
+ (when (and keep-date (not copy-keep-date))
+ (tramp-compat-set-file-times
+ newname
+ (file-attribute-modification-time (file-attributes filename))
+ (unless ok-if-already-exists 'nofollow)))
+
+ ;; Set the mode.
+ (unless (and keep-date copy-keep-date)
+ (ignore-errors
+ (set-file-modes newname (tramp-default-file-modes filename)))))
- ;; We must adapt `tramp-local-end-of-line' for
- ;; sending the password.
- (let ((tramp-local-end-of-line tramp-rsh-end-of-line))
- (tramp-process-actions
- p v nil tramp-actions-copy-out-of-band)))
-
- ;; Reset the transfer process properties.
- (tramp-flush-connection-property v "process-name")
- (tramp-flush-connection-property v "process-buffer")
- ;; Clear the remote prompt.
- (when (and remote-copy-program
- (not (tramp-send-command-and-check v nil)))
- ;; Houston, we have a problem! Likely, the listener is
- ;; still running, so let's clear everything (but the
- ;; cached password).
- (tramp-cleanup-connection v 'keep-debug 'keep-password))))
-
- ;; Handle KEEP-DATE argument.
- (when (and keep-date (not copy-keep-date))
- (tramp-compat-set-file-times
- newname
- (file-attribute-modification-time (file-attributes filename))
- (unless ok-if-already-exists 'nofollow)))
-
- ;; Set the mode.
- (unless (and keep-date copy-keep-date)
- (ignore-errors
- (set-file-modes newname (tramp-default-file-modes filename)))))
-
- ;; If the operation was `rename', delete the original file.
- (unless (eq op 'copy)
- (if (file-regular-p filename)
- (delete-file filename)
- (delete-directory filename 'recursive))))))
+ ;; If the operation was `rename', delete the original file.
+ (unless (eq op 'copy)
+ (if (file-regular-p filename)
+ (delete-file filename)
+ (delete-directory filename 'recursive)))))
(defun tramp-sh-handle-make-directory (dir &optional parents)
"Like `make-directory' for Tramp files."
@@ -2852,7 +2868,7 @@ implementation will be used."
;; `shell'. We discard hops, if existing, that's why
;; we cannot use `file-remote-p'.
(prompt (format "PS1=%s %s"
- (tramp-make-tramp-file-name v nil 'nohop)
+ (tramp-make-tramp-file-name v)
tramp-initial-end-of-output))
;; We use as environment the difference to toplevel
;; `process-environment'.
@@ -3013,7 +3029,7 @@ implementation will be used."
vec
(concat
"signal-strings-" (tramp-get-method-parameter vec 'tramp-remote-shell))
- (let ((default-directory (tramp-make-tramp-file-name vec 'localname))
+ (let ((default-directory (tramp-make-tramp-file-name vec 'noloc))
process-file-return-signal-string signals res result)
(setq signals
(append
@@ -3098,13 +3114,13 @@ implementation will be used."
;; Determine input.
(if (null infile)
(setq input (tramp-get-remote-null-device v))
- (setq infile (expand-file-name infile))
+ (setq infile (tramp-compat-file-name-unquote (expand-file-name infile)))
(if (tramp-equal-remote default-directory infile)
;; INFILE is on the same remote host.
(setq input (tramp-file-local-name infile))
;; INFILE must be copied to remote host.
(setq input (tramp-make-tramp-temp-file v)
- tmpinput (tramp-make-tramp-file-name v input 'nohop))
+ tmpinput (tramp-make-tramp-file-name v input))
(copy-file infile tmpinput t)))
(when input (setq command (format "%s <%s" command input)))
@@ -3136,7 +3152,7 @@ implementation will be used."
;; stderr must be copied to remote host. The temporary
;; file must be deleted after execution.
(setq stderr (tramp-make-tramp-temp-file v)
- tmpstderr (tramp-make-tramp-file-name v stderr 'nohop))))
+ tmpstderr (tramp-make-tramp-file-name v stderr))))
;; stderr to be discarded.
((null (cadr destination))
(setq stderr (tramp-get-remote-null-device v)))))
@@ -3153,7 +3169,8 @@ implementation will be used."
(setq ret (tramp-send-command-and-check
v (format
"cd %s && %s"
- (tramp-shell-quote-argument localname) command)
+ (tramp-unquote-shell-quote-argument localname)
+ command)
t t t))
(unless (natnump ret) (setq ret 1))
;; We should add the output anyway.
@@ -3184,8 +3201,7 @@ implementation will be used."
;; Cleanup. We remove all file cache values for the connection,
;; because the remote process could have changed them.
(when tmpinput (delete-file tmpinput))
-
- (unless process-file-side-effects
+ (when process-file-side-effects
(tramp-flush-directory-properties v ""))
;; Return exit status.
@@ -3650,8 +3666,7 @@ Fall back to normal file name handler if no Tramp handler
exists."
(defun tramp-sh-file-name-handler-p (vec)
"Whether VEC uses a method from `tramp-sh-file-name-handler'."
(and (assoc (tramp-file-name-method vec) tramp-methods)
- (eq (tramp-find-foreign-file-name-handler
- (tramp-make-tramp-file-name vec nil 'nohop))
+ (eq (tramp-find-foreign-file-name-handler vec)
'tramp-sh-file-name-handler)))
;; This must be the last entry, because `identity' always matches.
@@ -4808,7 +4823,7 @@ Goes through the list `tramp-inline-compress-commands'."
((stringp tramp-scp-strict-file-name-checking)
tramp-scp-strict-file-name-checking)
- ;; Determine the options.
+ ;; Determine the option.
(t (setq tramp-scp-strict-file-name-checking "")
(let ((case-fold-search t))
(ignore-errors
@@ -4824,6 +4839,78 @@ Goes through the list `tramp-inline-compress-commands'."
(setq tramp-scp-strict-file-name-checking "-T")))))))
tramp-scp-strict-file-name-checking)))
+(defun tramp-scp-direct-remote-copying (vec1 vec2)
+ "Return the direct remote copying argument of the local scp."
+ (cond
+ ((or (not tramp-use-scp-direct-remote-copying) (null vec1) (null vec2)
+ (not (tramp-get-process vec1))
+ (not (equal (tramp-file-name-port vec1) (tramp-file-name-port vec2)))
+ (null (assoc "%y" (tramp-get-method-parameter vec1 'tramp-copy-args)))
+ (null (assoc "%y" (tramp-get-method-parameter vec2 'tramp-copy-args))))
+ "")
+
+ ((let ((case-fold-search t))
+ (and
+ ;; Check, whether "scp" supports "-R" option.
+ (with-tramp-connection-property nil "scp-R"
+ (when (executable-find "scp")
+ (with-temp-buffer
+ (tramp-call-process vec1 "scp" nil t nil "-R")
+ (goto-char (point-min))
+ (not (search-forward-regexp
+ "\\(illegal\\|unknown\\) option -- R" nil 'noerror)))))
+
+ ;; Check, that RemoteCommand is not used.
+ (with-tramp-connection-property (tramp-get-process vec1)
"remote-command"
+ (let ((command `("ssh" "-G" ,(tramp-file-name-host vec1))))
+ (with-temp-buffer
+ (tramp-call-process
+ vec1 tramp-encoding-shell nil t nil
+ tramp-encoding-command-switch
+ (mapconcat #'identity command " "))
+ (goto-char (point-min))
+ (not (search-forward "remotecommand" nil 'noerror)))))
+
+ ;; Check hostkeys.
+ (with-tramp-connection-property
+ (tramp-get-process vec1)
+ (concat "direct-remote-copying-"
+ (tramp-make-tramp-file-name vec2 'noloc))
+ (let ((command
+ (append
+ `("ssh" "-G" ,(tramp-file-name-host vec2) "|"
+ "grep" "-i" "^hostname" "|" "cut" "-d\" \"" "-f2" "|"
+ "ssh-keyscan" "-f" "-")
+ (when (tramp-file-name-port vec2)
+ `("-p" ,(tramp-file-name-port vec2)))))
+ found string)
+ (with-temp-buffer
+ ;; Check hostkey of VEC2, seen from VEC1.
+ (tramp-send-command vec1 (mapconcat #'identity command " "))
+ ;; Check hostkey of VEC2, seen locally.
+ (tramp-call-process
+ vec1 tramp-encoding-shell nil t nil tramp-encoding-command-switch
+ (mapconcat #'identity command " "))
+ (goto-char (point-min))
+ (while (and (not found) (not (eobp)))
+ (setq string
+ (buffer-substring
+ (line-beginning-position) (line-end-position))
+ string
+ (and
+ (string-match "^[^# ]+ \\S-+ \\(\\S-+\\)$" string)
+ (match-string 1 string))
+ found
+ (and string
+ (with-current-buffer (tramp-get-buffer vec1)
+ (goto-char (point-min))
+ (search-forward string nil 'noerror))))
+ (forward-line))
+ found)))))
+ "-R")
+
+ (t "-3")))
+
(defun tramp-timeout-session (vec)
"Close the connection VEC after a session timeout.
If there is just some editing, retry it after 5 seconds."
@@ -5441,7 +5528,7 @@ Nonexistent directories are removed from spec."
(lambda (x)
(and
(stringp x)
- (file-directory-p (tramp-make-tramp-file-name vec x 'nohop))
+ (file-directory-p (tramp-make-tramp-file-name vec x))
x))
remote-path))))))
@@ -5977,9 +6064,6 @@ function cell is returned to be applied on a buffer."
;;
;; * Use lsh instead of ssh. (Alfred M. Szmidt)
;;
-;; * Optimize out-of-band copying when both methods are scp-like (not
-;; rsync).
-;;
;; * Keep a second connection open for out-of-band methods like scp or
;; rsync.
;;
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index c5f423fa3f..6515519680 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -1281,7 +1281,7 @@ component is used as the target of the symlink."
;; Determine input.
(when infile
- (setq infile (expand-file-name infile))
+ (setq infile (tramp-compat-file-name-unquote (expand-file-name infile)))
(if (tramp-equal-remote default-directory infile)
;; INFILE is on the same remote host.
(setq input (tramp-file-local-name infile))
@@ -1373,8 +1373,7 @@ component is used as the target of the symlink."
(when tmpinput (delete-file tmpinput))
(unless outbuf
(kill-buffer (tramp-get-connection-property v "process-buffer" nil)))
-
- (unless process-file-side-effects
+ (when process-file-side-effects
(tramp-flush-directory-properties v ""))
;; Return exit status.
diff --git a/lisp/net/tramp-sshfs.el b/lisp/net/tramp-sshfs.el
index 0a5bf2f43b..72837793de 100644
--- a/lisp/net/tramp-sshfs.el
+++ b/lisp/net/tramp-sshfs.el
@@ -137,7 +137,7 @@
(set-file-acl . ignore)
(set-file-modes . tramp-sshfs-handle-set-file-modes)
(set-file-selinux-context . ignore)
- (set-file-times . ignore)
+ (set-file-times . tramp-sshfs-handle-set-file-times)
(set-visited-file-modtime . tramp-handle-set-visited-file-modtime)
(shell-command . tramp-handle-shell-command)
(start-file-process . tramp-handle-start-file-process)
@@ -242,13 +242,28 @@ arguments to pass to the OPERATION."
(let ((command
(format
"cd %s && exec %s"
- localname
- (mapconcat #'tramp-shell-quote-argument (cons program args) " "))))
+ (tramp-unquote-shell-quote-argument localname)
+ (mapconcat #'tramp-shell-quote-argument (cons program args) " ")))
+ input tmpinput)
+
+ ;; Determine input.
+ (if (null infile)
+ (setq input (tramp-get-remote-null-device v))
+ (setq infile (tramp-compat-file-name-unquote (expand-file-name infile)))
+ (if (tramp-equal-remote default-directory infile)
+ ;; INFILE is on the same remote host.
+ (setq input (tramp-file-local-name infile))
+ ;; INFILE must be copied to remote host.
+ (setq input (tramp-make-tramp-temp-file v)
+ tmpinput (tramp-make-tramp-file-name v input))
+ (copy-file infile tmpinput t)))
+ (when input (setq command (format "%s <%s" command input)))
+
(unwind-protect
(apply
#'tramp-call-process
v (tramp-get-method-parameter v 'tramp-login-program)
- infile destination display
+ nil destination display
(tramp-expand-args
v 'tramp-login-args
?h (or (tramp-file-name-host v) "")
@@ -256,7 +271,11 @@ arguments to pass to the OPERATION."
?p (or (tramp-file-name-port v) "")
?l command))
- (unless process-file-side-effects
+ ;; Cleanup. We remove all file cache values for the
+ ;; connection, because the remote process could have changed
+ ;; them.
+ (when tmpinput (delete-file tmpinput))
+ (when process-file-side-effects
(tramp-flush-directory-properties v ""))))))
(defun tramp-sshfs-handle-rename-file
@@ -285,6 +304,15 @@ arguments to pass to the OPERATION."
(tramp-compat-set-file-modes
(tramp-fuse-local-file-name filename) mode flag))))
+(defun tramp-sshfs-handle-set-file-times (filename &optional timestamp flag)
+ "Like `set-file-times' for Tramp files."
+ (or (file-exists-p filename) (write-region "" nil filename nil 0))
+ (with-parsed-tramp-file-name filename nil
+ (unless (and (eq flag 'nofollow) (file-symlink-p filename))
+ (tramp-flush-file-properties v localname)
+ (tramp-compat-set-file-times
+ (tramp-fuse-local-file-name filename) timestamp flag))))
+
(defun tramp-sshfs-handle-write-region
(start end filename &optional append visit lockname mustbenew)
"Like `write-region' for Tramp files."
diff --git a/lisp/net/tramp-sudoedit.el b/lisp/net/tramp-sudoedit.el
index a68d4b3e36..7fbe541270 100644
--- a/lisp/net/tramp-sudoedit.el
+++ b/lisp/net/tramp-sudoedit.el
@@ -572,8 +572,7 @@ the result will be a local, non-Tramp, file name."
(when (file-remote-p result)
(setq result (tramp-compat-file-name-quote result 'top)))
(tramp-message v 4 "True name of `%s' is `%s'" localname result)
- result))
- 'nohop)))))
+ result)))))))
(defun tramp-sudoedit-handle-file-writable-p (filename)
"Like `file-writable-p' for Tramp files."
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index adde443fdd..c6e55ff688 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -255,6 +255,8 @@ pair of the form (KEY VALUE). The following KEYs are
defined:
- \"%n\" expands to \"2>/dev/null\".
- \"%x\" is replaced by the `tramp-scp-strict-file-name-checking'
argument if it is supported.
+ - \"%y\" is replaced by the `tramp-scp-direct-remote-copying'
+ argument if it is supported.
The existence of `tramp-login-args', combined with the
absence of `tramp-copy-args', is an indication that the
@@ -1387,6 +1389,11 @@ Will be called once the password has been verified by
successful
authentication.")
(put 'tramp-password-save-function 'tramp-suppress-trace t)
+(defvar tramp-password-prompt-not-unique nil
+ "Whether several passwords might be requested.
+This shouldn't be set explicitly. It is let-bound, for example
+during direct remote copying with scp.")
+
(defconst tramp-completion-file-name-handler-alist
'((file-name-all-completions
. tramp-completion-handle-file-name-all-completions)
@@ -1713,13 +1720,10 @@ See `tramp-dissect-file-name' for details."
"Construct a Tramp file name from ARGS.
ARGS could have two different signatures. The first one is of
-type (VEC &optional LOCALNAME HOP).
+type (VEC &optional LOCALNAME).
If LOCALNAME is nil, the value in VEC is used. If it is a
symbol, a null localname will be used. Otherwise, LOCALNAME is
expected to be a string, which will be used.
-If HOP is nil, the value in VEC is used. If it is a symbol, a
-null hop will be used. Otherwise, HOP is expected to be a
-string, which will be used.
The other signature exists for backward compatibility. It has
the form (METHOD USER DOMAIN HOST PORT LOCALNAME &optional HOP)."
@@ -1735,8 +1739,13 @@ the form (METHOD USER DOMAIN HOST PORT LOCALNAME
&optional HOP)."
hop (tramp-file-name-hop (car args)))
(when (cadr args)
(setq localname (and (stringp (cadr args)) (cadr args))))
- (when (cl-caddr args)
- (setq hop (and (stringp (cl-caddr args)) (cl-caddr args)))))
+ (when hop
+ (setq hop nil)
+ ;; Assure that the hops are in `tramp-default-proxies-alist'.
+ ;; In tramp-archive.el, the slot `hop' is used for the archive
+ ;; file name.
+ (unless (string-equal method "archive")
+ (tramp-add-hops (car args)))))
(t (setq method (nth 0 args)
user (nth 1 args)
@@ -1769,15 +1778,17 @@ the form (METHOD USER DOMAIN HOST PORT LOCALNAME
&optional HOP)."
localname)))
(set-advertised-calling-convention
- #'tramp-make-tramp-file-name '(vec &optional localname hop) "27.1")
+ #'tramp-make-tramp-file-name '(vec &optional localname) "29.1")
(defun tramp-make-tramp-hop-name (vec)
"Construct a Tramp hop name from VEC."
- (replace-regexp-in-string
- tramp-prefix-regexp ""
+ (concat
+ (tramp-file-name-hop vec)
(replace-regexp-in-string
- (concat tramp-postfix-host-regexp "$") tramp-postfix-hop-format
- (tramp-make-tramp-file-name vec 'noloc))))
+ tramp-prefix-regexp ""
+ (replace-regexp-in-string
+ (concat tramp-postfix-host-regexp "$") tramp-postfix-hop-format
+ (tramp-make-tramp-file-name vec 'noloc)))))
(defun tramp-completion-make-tramp-file-name (method user host localname)
"Construct a Tramp file name from METHOD, USER, HOST and LOCALNAME.
@@ -1811,7 +1822,7 @@ Unless DONT-CREATE, the buffer is created when it doesn't
exist yet."
(tramp-get-connection-property vec "process-buffer" nil))
(setq buffer-undo-list t
default-directory
- (tramp-make-tramp-file-name vec 'noloc 'nohop))
+ (tramp-make-tramp-file-name vec 'noloc))
(current-buffer)))))
(defun tramp-get-connection-buffer (vec &optional dont-create)
@@ -1926,7 +1937,7 @@ The outline level is equal to the verbosity of the Tramp
message."
"A predicate for Tramp interactive commands.
They are completed by \"M-x TAB\" only in Tramp debug buffers."
(with-current-buffer buffer
- (string-equal (buffer-substring 1 10) ";; Emacs:")))
+ (string-equal (buffer-substring 1 (min 10 (point-max))) ";; Emacs:")))
(put #'tramp-debug-buffer-command-completion-p 'tramp-suppress-trace t)
@@ -2596,11 +2607,10 @@ Must be handled by the callers."
;; Unknown file primitive.
(t (error "Unknown file I/O primitive: %s" operation))))
-(defun tramp-find-foreign-file-name-handler (filename &optional _operation)
+(defun tramp-find-foreign-file-name-handler (vec &optional _operation)
"Return foreign file name handler if exists."
- (when (tramp-tramp-file-p filename)
+ (when (tramp-file-name-p vec)
(let ((handler tramp-foreign-file-name-handler-alist)
- (vec (tramp-dissect-file-name filename))
elt func res)
(while handler
(setq elt (car handler)
@@ -2633,7 +2643,7 @@ Fall back to normal file name handler if no Tramp file
name handler exists."
(with-parsed-tramp-file-name filename nil
(let ((current-connection tramp-current-connection)
(foreign
- (tramp-find-foreign-file-name-handler filename operation))
+ (tramp-find-foreign-file-name-handler v operation))
(signal-hook-function #'tramp-signal-hook-function)
result)
;; Set `tramp-current-connection'.
@@ -3351,7 +3361,7 @@ User is always nil."
(tramp-compat-funcall 'directory-abbrev-make-regexp home-dir) filename)
(tramp-make-tramp-file-name
vec (concat "~" (substring filename (match-beginning 1))))
- filename)))
+ (tramp-make-tramp-file-name (tramp-dissect-file-name filename)))))
(defun tramp-handle-access-file (filename string)
"Like `access-file' for Tramp files."
@@ -3678,8 +3688,8 @@ User is always nil."
;; We do not want traces in the debug buffer.
(let ((tramp-verbose (min tramp-verbose 3)))
(when (tramp-tramp-file-p filename)
- (let* ((v (tramp-dissect-file-name filename))
- (p (tramp-get-connection-process v))
+ (let* ((o (tramp-dissect-file-name filename))
+ (p (tramp-get-connection-process o))
(c (and (process-live-p p)
(tramp-get-connection-property p "connected" nil))))
;; We expand the file name only, if there is already a connection.
@@ -3693,7 +3703,8 @@ User is always nil."
((eq identification 'user) (tramp-file-name-user-domain v))
((eq identification 'host) (tramp-file-name-host-port v))
((eq identification 'localname) localname)
- ((eq identification 'hop) hop)
+ ;; Hop exists only in original dissected file name.
+ ((eq identification 'hop) (tramp-file-name-hop o))
(t (tramp-make-tramp-file-name v 'noloc)))))))))
(defun tramp-handle-file-selinux-context (_filename)
@@ -3744,8 +3755,7 @@ User is always nil."
(expand-file-name
symlink-target
(file-name-directory v2-localname))))
- v2-localname)
- 'nohop)))
+ v2-localname))))
(when (>= numchase numchase-limit)
(tramp-error
v1 'file-error
@@ -3904,8 +3914,7 @@ User is always nil."
(cond
((stringp remote-copy)
(file-local-copy
- (tramp-make-tramp-file-name
- v remote-copy 'nohop)))
+ (tramp-make-tramp-file-name v remote-copy)))
((stringp tramp-temp-buffer-file-name)
(copy-file
filename tramp-temp-buffer-file-name 'ok)
@@ -3948,7 +3957,7 @@ User is always nil."
(or remote-copy (null tramp-temp-buffer-file-name)))
(delete-file local-copy))
(when (stringp remote-copy)
- (delete-file (tramp-make-tramp-file-name v remote-copy 'nohop))))
+ (delete-file (tramp-make-tramp-file-name v remote-copy))))
;; Result.
(cons filename (cdr result)))))
@@ -4088,15 +4097,10 @@ Do not set it manually, it is used buffer-local in
`tramp-get-lock-pid'.")
(and (tramp-sh-file-name-handler-p vec)
(not (tramp-get-method-parameter vec 'tramp-copy-program))))
-(defun tramp-compute-multi-hops (vec)
- "Expands VEC according to `tramp-default-proxies-alist'."
- (let ((saved-tdpa tramp-default-proxies-alist)
- (target-alist `(,vec))
- (hops (or (tramp-file-name-hop vec) ""))
- (item vec)
- choices proxy)
-
- ;; Ad-hoc proxy definitions.
+(defun tramp-add-hops (vec)
+ "Add ad-hoc proxy definitions to `tramp-default-proxies-alist'."
+ (when-let ((hops (tramp-file-name-hop vec))
+ (item vec))
(dolist (proxy (reverse (split-string hops tramp-postfix-hop-regexp
'omit)))
(let* ((host-port (tramp-file-name-host-port item))
(user-domain (tramp-file-name-user-domain item))
@@ -4113,9 +4117,19 @@ Do not set it manually, it is used buffer-local in
`tramp-get-lock-pid'.")
(add-to-list 'tramp-default-proxies-alist entry)
(setq item (tramp-dissect-file-name proxy))))
;; Save the new value.
- (when (and hops tramp-save-ad-hoc-proxies)
+ (when tramp-save-ad-hoc-proxies
(customize-save-variable
- 'tramp-default-proxies-alist tramp-default-proxies-alist))
+ 'tramp-default-proxies-alist tramp-default-proxies-alist))))
+
+(defun tramp-compute-multi-hops (vec)
+ "Expands VEC according to `tramp-default-proxies-alist'."
+ (let ((saved-tdpa tramp-default-proxies-alist)
+ (target-alist `(,vec))
+ (item vec)
+ choices proxy)
+
+ ;; Ad-hoc proxy definitions.
+ (tramp-add-hops vec)
;; Look for proxy hosts to be passed.
(setq choices tramp-default-proxies-alist)
@@ -4744,7 +4758,9 @@ of."
;; Let's check whether a wrong password has been sent already.
;; Sometimes, the process returns a new password request
;; immediately after rejecting the previous (wrong) one.
- (unless (tramp-get-connection-property vec "first-password-request" nil)
+ (unless (or tramp-password-prompt-not-unique
+ (tramp-get-connection-property
+ vec "first-password-request" nil))
(tramp-clear-passwd vec))
(goto-char (point-min))
(tramp-check-for-regexp proc tramp-process-action-regexp)
@@ -4752,7 +4768,13 @@ of."
;; We don't call `tramp-send-string' in order to hide the
;; password from the debug buffer and the traces.
(process-send-string
- proc (concat (tramp-read-passwd proc) tramp-local-end-of-line))
+ proc
+ (concat
+ (funcall
+ (if tramp-password-prompt-not-unique
+ #'tramp-read-passwd-without-cache #'tramp-read-passwd)
+ proc)
+ tramp-local-end-of-line))
;; Hide password prompt.
(narrow-to-region (point-max) (point-max))))
t)
@@ -5462,8 +5484,7 @@ This handles also chrooted environments, which are not
regarded as local."
(null tramp-crypt-enabled)
;; The local temp directory must be writable for the other user.
(file-writable-p
- (tramp-make-tramp-file-name
- vec tramp-compat-temporary-file-directory 'nohop))
+ (tramp-make-tramp-file-name vec tramp-compat-temporary-file-directory))
;; On some systems, chown runs only for root.
(or (zerop (user-uid))
(zerop (tramp-get-remote-uid vec 'integer))))))
@@ -5699,8 +5720,7 @@ verbosity of 6."
;; tramp-cache-read-persistent-data t)'" instead.
(defun tramp-read-passwd (proc &optional prompt)
"Read a password from user (compat function).
-Consults the auth-source package.
-Invokes `password-read' if available, `read-passwd' else."
+Consults the auth-source package."
(let* (;; If `auth-sources' contains "~/.authinfo.gpg", and
;; `exec-path' contains a relative file name like ".", it
;; could happen that the "gpg" command is not found. So we
@@ -5712,7 +5732,7 @@ Invokes `password-read' if available, `read-passwd' else."
;; multi-hop.
(tramp-get-connection-property
proc "password-vector" (process-get proc 'vector))
- 'noloc 'nohop))
+ 'noloc))
(pw-prompt
(or prompt
(with-current-buffer (process-buffer proc)
@@ -5756,10 +5776,8 @@ Invokes `password-read' if available, `read-passwd'
else."
:create t))
tramp-password-save-function
(plist-get auth-info :save-function)
- auth-passwd (plist-get auth-info :secret)))
- (while (functionp auth-passwd)
- (setq auth-passwd (funcall auth-passwd)))
- auth-passwd)
+ auth-passwd
+ (tramp-compat-auth-info-password auth-info))))
;; Try the password cache.
(progn
@@ -5779,6 +5797,21 @@ Invokes `password-read' if available, `read-passwd'
else."
(put #'tramp-read-passwd 'tramp-suppress-trace t)
+(defun tramp-read-passwd-without-cache (proc &optional prompt)
+ "Read a password from user (compat function)."
+ ;; We suspend the timers while reading the password.
+ (let ((stimers (with-timeout-suspend)))
+ (unwind-protect
+ (password-read
+ (or prompt
+ (with-current-buffer (process-buffer proc)
+ (tramp-check-for-regexp proc tramp-password-prompt-regexp)
+ (match-string 0))))
+ ;; Reenable the timers.
+ (with-timeout-unsuspend stimers))))
+
+(put #'tramp-read-passwd-without-cache 'tramp-suppress-trace t)
+
(defun tramp-clear-passwd (vec)
"Clear password cache for connection related to VEC."
(let ((method (tramp-file-name-method vec))
@@ -5791,7 +5824,7 @@ Invokes `password-read' if available, `read-passwd' else."
(auth-source-forget
`(:max 1 ,(and user-domain :user) ,user-domain
:host ,host-port :port ,method))
- (password-cache-remove (tramp-make-tramp-file-name vec 'noloc 'nohop))))
+ (password-cache-remove (tramp-make-tramp-file-name vec 'noloc))))
(put #'tramp-clear-passwd 'tramp-suppress-trace t)
diff --git a/lisp/org/ob-gnuplot.el b/lisp/org/ob-gnuplot.el
index 69a5f5f91b..895738822d 100644
--- a/lisp/org/ob-gnuplot.el
+++ b/lisp/org/ob-gnuplot.el
@@ -129,6 +129,7 @@ code."
(title (cdr (assq :title params)))
(lines (cdr (assq :line params)))
(sets (cdr (assq :set params)))
+ (missing (cdr (assq :missing params)))
(x-labels (cdr (assq :xlabels params)))
(y-labels (cdr (assq :ylabels params)))
(timefmt (cdr (assq :timefmt params)))
@@ -138,6 +139,7 @@ code."
(file-name-directory (buffer-file-name))))
(add-to-body (lambda (text) (setq body (concat text "\n" body)))))
;; append header argument settings to body
+ (when missing (funcall add-to-body (format "set datafile missing '%s'"
missing)))
(when title (funcall add-to-body (format "set title '%s'" title)))
(when lines (mapc (lambda (el) (funcall add-to-body el)) lines))
(when sets
@@ -288,21 +290,14 @@ Pass PARAMS through to `orgtbl-to-generic' when exporting
TABLE."
(with-temp-file data-file
(insert (let ((org-babel-gnuplot-timestamp-fmt
(or (plist-get params :timefmt) "%Y-%m-%d-%H:%M:%S")))
- (replace-regexp-in-string
- ;; org export backend adds "|" at the beginning/end of
- ;; the table lines. Strip those.
- "^|\\(.+\\)|$"
- "\\1"
- (orgtbl-to-generic
- table
- (org-combine-plists
- '( :sep "\t" :fmt org-babel-gnuplot-quote-tsv-field
- ;; Two setting below are needed to make :fmt work.
- :raw t
- ;; Use `org', not `ascii' because `ascii' may
- ;; sometimes mishandle quoted strings.
- :backend org)
- params))))))
+ (orgtbl-to-generic
+ table
+ (org-combine-plists
+ '( :sep "\t" :fmt org-babel-gnuplot-quote-tsv-field
+ ;; Two setting below are needed to make :fmt work.
+ :raw t
+ :backend ascii)
+ params)))))
data-file)
(provide 'ob-gnuplot)
diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el
index fed36ac9b6..94aea1b0a3 100644
--- a/lisp/org/org-agenda.el
+++ b/lisp/org/org-agenda.el
@@ -86,6 +86,8 @@
(declare-function org-capture "org-capture" (&optional goto keys))
(declare-function org-clock-modify-effort-estimate "org-clock" (&optional
value))
+(declare-function org-element-type "org-element" (&optional element))
+
(defvar calendar-mode-map)
(defvar org-clock-current-task)
(defvar org-current-tag-alist)
@@ -5729,7 +5731,8 @@ displayed in agenda view."
(org-at-planning-p)
(org-before-first-heading-p)
(and org-agenda-include-inactive-timestamps
- (org-at-clock-log-p)))
+ (org-at-clock-log-p))
+ (not (eq 'timestamp (org-element-type
(org-element-context)))))
(throw :skip nil))
(org-agenda-skip))
(let* ((pos (match-beginning 0))
diff --git a/lisp/org/org-version.el b/lisp/org/org-version.el
index 1053bbe22c..5337d9df74 100644
--- a/lisp/org/org-version.el
+++ b/lisp/org/org-version.el
@@ -11,7 +11,7 @@ Inserted by installing Org mode or when a release is made."
(defun org-git-version ()
"The Git version of Org mode.
Inserted by installing Org or when a release is made."
- (let ((org-git-version "release_9.5.2-3-geb9f34"))
+ (let ((org-git-version "release_9.5.2-9-g7ba24c"))
org-git-version))
(provide 'org-version)
diff --git a/lisp/org/org.el b/lisp/org/org.el
index fba45caabe..f5d4df3d9c 100644
--- a/lisp/org/org.el
+++ b/lisp/org/org.el
@@ -18731,17 +18731,19 @@ With prefix arg UNCOMPILED, load the uncompiled
versions."
"Is S an ID created by UUIDGEN?"
(string-match
"\\`[0-9a-f]\\{8\\}-[0-9a-f]\\{4\\}-[0-9a-f]\\{4\\}-[0-9a-f]\\{4\\}-[0-9a-f]\\{12\\}\\'"
(downcase s)))
-(defun org-in-src-block-p (&optional inside)
+(defun org-in-src-block-p (&optional inside element)
"Whether point is in a code source block.
When INSIDE is non-nil, don't consider we are within a source
-block when point is at #+BEGIN_SRC or #+END_SRC."
- (let ((case-fold-search t))
- (or (and (eq (get-char-property (point) 'src-block) t))
- (and (not inside)
- (save-match-data
- (save-excursion
- (beginning-of-line)
- (looking-at ".*#\\+\\(begin\\|end\\)_src")))))))
+block when point is at #+BEGIN_SRC or #+END_SRC.
+When ELEMENT is provided, it is considered to be element at point."
+ (save-match-data (setq element (or element (org-element-at-point))))
+ (when (eq 'src-block (org-element-type element))
+ (or (not inside)
+ (not (or (= (line-beginning-position)
+ (org-element-property :post-affiliated element))
+ (= (1+ (line-end-position))
+ (- (org-element-property :end element)
+ (org-element-property :post-blank element))))))))
(defun org-context ()
"Return a list of contexts of the current cursor position.
diff --git a/lisp/org/ox-ascii.el b/lisp/org/ox-ascii.el
index c22bb13b6d..38b2a5772c 100644
--- a/lisp/org/ox-ascii.el
+++ b/lisp/org/ox-ascii.el
@@ -1929,7 +1929,11 @@ a communication channel."
(org-export-table-cell-alignment table-cell info)))))
(setq contents
(concat data
- (make-string (- width (string-width (or data ""))) ?\s))))
+ ;; FIXME: If CONTENTS was transformed by filters,
+ ;; the whole width calculation can be wrong.
+ ;; At least, make sure that we do not throw error
+ ;; when CONTENTS is larger than width.
+ (make-string (max 0 (- width (string-width (or data ""))))
?\s))))
;; Return cell.
(concat (format " %s " contents)
(when (memq 'right (org-export-table-cell-borders table-cell info))
diff --git a/lisp/outline.el b/lisp/outline.el
index 0304d2334c..4dbbaa26a0 100644
--- a/lisp/outline.el
+++ b/lisp/outline.el
@@ -187,6 +187,7 @@ in the file it applies to.")
(function :tag "Custom filter"))
:version "28.1")
+(defvar outline-minor-mode-cycle)
(defun outline-minor-mode-cycle--bind (map key binding &optional filter)
(define-key map key
`(menu-item
@@ -195,8 +196,10 @@ in the file it applies to.")
:filter
,(or filter
(lambda (cmd)
- (when (or (not (functionp outline-minor-mode-cycle-filter))
- (funcall outline-minor-mode-cycle-filter))
+ (when (and outline-minor-mode-cycle
+ (outline-on-heading-p t)
+ (or (not (functionp outline-minor-mode-cycle-filter))
+ (funcall outline-minor-mode-cycle-filter)))
cmd))))))
(defvar outline-minor-mode-cycle-map
@@ -223,14 +226,8 @@ in the file it applies to.")
;; Highlight headings according to the level.
(eval . (list (concat "^\\(?:" outline-regexp "\\).*")
0 '(if outline-minor-mode
- (if outline-minor-mode-cycle
- (if outline-minor-mode-highlight
- (list 'face (outline-font-lock-face)
- 'keymap outline-minor-mode-cycle-map)
- (list 'face nil
- 'keymap outline-minor-mode-cycle-map))
- (if outline-minor-mode-highlight
- (list 'face (outline-font-lock-face))))
+ (if outline-minor-mode-highlight
+ (list 'face (outline-font-lock-face)))
(outline-font-lock-face))
(when outline-minor-mode
(pcase outline-minor-mode-highlight
@@ -354,7 +351,8 @@ Turning on outline mode calls the value of `text-mode-hook'
and then of
'(outline-font-lock-keywords t nil nil backward-paragraph))
(setq-local imenu-generic-expression
(list (list nil (concat "^\\(?:" outline-regexp "\\).*$") 0)))
- (add-hook 'change-major-mode-hook #'outline-show-all nil t))
+ (add-hook 'change-major-mode-hook #'outline-show-all nil t)
+ (add-hook 'hack-local-variables-hook #'outline-apply-default-state nil t))
(defvar outline-minor-mode-map)
@@ -410,9 +408,7 @@ faces to major mode's faces."
(not (get-text-property (point) 'face))))
(overlay-put overlay 'face (outline-font-lock-face)))
(when outline-minor-mode-use-buttons
- (outline--insert-open-button))
- (when outline-minor-mode-cycle
- (overlay-put overlay 'keymap outline-minor-mode-cycle-map)))
+ (outline--insert-open-button)))
(goto-char (match-end 0))))))
;;;###autoload
@@ -421,11 +417,13 @@ faces to major mode's faces."
See the command `outline-mode' for more information on this mode."
:lighter " Outl"
- :keymap (list (cons [menu-bar] outline-minor-mode-menu-bar-map)
- (cons outline-minor-mode-prefix outline-mode-prefix-map))
+ :keymap (easy-mmode-define-keymap
+ `(([menu-bar] . ,outline-minor-mode-menu-bar-map)
+ (,outline-minor-mode-prefix . ,outline-mode-prefix-map))
+ :inherit outline-minor-mode-cycle-map)
(if outline-minor-mode
(progn
- (when (or outline-minor-mode-cycle outline-minor-mode-highlight)
+ (when outline-minor-mode-highlight
(if (and global-font-lock-mode (font-lock-specified-p major-mode))
(progn
(font-lock-add-keywords nil outline-font-lock-keywords t)
@@ -437,8 +435,9 @@ See the command `outline-mode' for more information on this
mode."
nil t)
(setq-local line-move-ignore-invisible t)
;; Cause use of ellipses for invisible text.
- (add-to-invisibility-spec '(outline . t)))
- (when (or outline-minor-mode-cycle outline-minor-mode-highlight)
+ (add-to-invisibility-spec '(outline . t))
+ (outline-apply-default-state))
+ (when outline-minor-mode-highlight
(if font-lock-fontified
(font-lock-remove-keywords nil outline-font-lock-keywords))
(remove-overlays nil nil 'outline-overlay t)
@@ -992,7 +991,6 @@ If non-nil, EVENT should be a mouse event."
(overlay-put o 'help-echo "Click to hide")
(overlay-put o 'keymap
(define-keymap
- :parent outline-minor-mode-cycle-map
"RET" #'outline-hide-subtree
"<mouse-2>" #'outline-hide-subtree)))))
@@ -1003,7 +1001,6 @@ If non-nil, EVENT should be a mouse event."
(overlay-put o 'help-echo "Click to show")
(overlay-put o 'keymap
(define-keymap
- :parent outline-minor-mode-cycle-map
"RET" #'outline-show-subtree
"<mouse-2>" #'outline-show-subtree)))))
@@ -1308,6 +1305,184 @@ convenient way to make a table of contents of the
buffer."
(insert "\n\n"))))))
(kill-new (buffer-string)))))))
+(defcustom outline-default-state nil
+ "If non-nil, some headings are initially outlined.
+
+Note that the default state is applied when Outline major and
+minor modes are set or when the command
+`outline-apply-default-state' is called interactively.
+
+When nil, no default state is defined and
+`outline-apply-default-state' is a no-op.
+
+If equal to `outline-show-all', all text of buffer is shown.
+
+If equal to `outline-show-only-headings', show only headings,
+whatever their level is.
+
+If equal to a number, show only headings up to and including the
+corresponding level. See `outline-default-rules' to customize
+visibility of the subtree at that level.
+
+If equal to a lambda function or function name, this function is
+expected to toggle headings visibility, and will be
+called without arguments after the mode is enabled."
+ :version "29.1"
+ :type '(choice (const :tag "Disabled" nil)
+ (const :tag "Show all" outline-show-all)
+ (const :tag "Only headings" outline-show-only-headings)
+ (natnum :tag "Show headings up to level" :value 1)
+ (function :tag "Custom function")))
+
+(defcustom outline-default-rules nil
+ "Determines visibility of subtree starting at `outline-default-state' level.
+
+The rules apply if and only if `outline-default-state' is a
+number.
+
+When nil, the subtree is hidden unconditionally.
+
+When equal to a list, each element should be one of the following:
+
+- A cons cell with CAR `match-regexp' and CDR a regexp, the
+ subtree will be hidden when the outline heading match the
+ regexp.
+
+- `subtree-has-long-lines' to only show the heading branches when
+ long lines are detected in its subtree (see
+ `outline-default-long-line' for the definition of long lines).
+
+- `subtree-is-long' to only show the heading branches when its
+ subtree contains more than `outline-default-line-count' lines.
+
+- A cons cell of the form (custom-function . FUNCTION) where
+ FUNCTION is a lambda function or function name which will be
+ called without arguments with point at the beginning of the
+ heading and the match data set appropriately, the function
+ being expected to toggle the heading visibility."
+ :version "29.1"
+ :type '(choice (const :tag "Hide subtree" nil)
+ (set :tag "Show subtree unless"
+ (cons :tag "Heading match regexp"
+ (const match-regexp) string)
+ (const :tag "Subtree has long lines"
+ subtree-has-long-lines)
+ (const :tag "Subtree is long"
+ subtree-is-long)
+ (cons :tag "Custom function"
+ (const custom-function) function))))
+
+(defcustom outline-default-long-line 1000
+ "Minimal number of characters in a line for a heading to be outlined."
+ :version "29.1"
+ :type '(natnum :tag "Number of characters"))
+
+(defcustom outline-default-line-count 50
+ "Minimal number of lines for a heading to be outlined."
+ :version "29.1"
+ :type '(natnum :tag "Number of lines"))
+
+(defun outline-apply-default-state ()
+ "Apply the outline state defined by `outline-default-state'."
+ (interactive)
+ (cond
+ ((integerp outline-default-state)
+ (outline--show-headings-up-to-level outline-default-state))
+ ((functionp outline-default-state)
+ (funcall outline-default-state))))
+
+(defun outline-show-only-headings ()
+ "Show only headings."
+ (interactive)
+ (outline-show-all)
+ (outline-hide-region-body (point-min) (point-max)))
+
+(eval-when-compile (require 'so-long))
+(autoload 'so-long-detected-long-line-p "so-long")
+(defvar so-long-skip-leading-comments)
+(defvar so-long-threshold)
+(defvar so-long-max-lines)
+
+(defun outline--show-headings-up-to-level (level)
+ "Show only headings up to a LEVEL level.
+
+Like `outline-hide-sublevels' but, for each heading at level
+LEVEL, decides of subtree visibility according to
+`outline-default-rules'."
+ (if (not outline-default-rules)
+ (outline-hide-sublevels level)
+ (if (< level 1)
+ (error "Must keep at least one level of headers"))
+ (save-excursion
+ (let* (outline-view-change-hook
+ (beg (progn
+ (goto-char (point-min))
+ ;; Skip the prelude, if any.
+ (unless (outline-on-heading-p t) (outline-next-heading))
+ (point)))
+ (end (progn
+ (goto-char (point-max))
+ ;; Keep empty last line, if available.
+ (if (bolp) (1- (point)) (point))))
+ (heading-regexp
+ (cdr-safe
+ (assoc 'match-regexp outline-default-rules)))
+ (check-line-count
+ (memq 'subtree-is-long outline-default-rules))
+ (check-long-lines
+ (memq 'subtree-has-long-lines outline-default-rules))
+ (custom-function
+ (cdr-safe
+ (assoc 'custom-function outline-default-rules))))
+ (if (< end beg)
+ (setq beg (prog1 end (setq end beg))))
+ ;; First hide everything.
+ (outline-hide-sublevels level)
+ ;; Then unhide the top level headers.
+ (outline-map-region
+ (lambda ()
+ (let ((current-level (funcall outline-level)))
+ (when (< current-level level)
+ (outline-show-heading)
+ (outline-show-entry))
+ (when (= current-level level)
+ (cond
+ ((and heading-regexp
+ (let ((beg (point))
+ (end (progn (outline-end-of-heading) (point))))
+ (string-match-p heading-regexp (buffer-substring beg
end))))
+ ;; hide entry when heading match regexp
+ (outline-hide-entry))
+ ((and check-line-count
+ (save-excursion
+ (let ((beg (point))
+ (end (progn (outline-end-of-subtree) (point))))
+ (<= outline-default-line-count (count-lines beg
end)))))
+ ;; show only branches when line count of subtree >
+ ;; threshold
+ (outline-show-branches))
+ ((and check-long-lines
+ (save-excursion
+ (let ((beg (point))
+ (end (progn (outline-end-of-subtree) (point))))
+ (save-restriction
+ (narrow-to-region beg end)
+ (let ((so-long-skip-leading-comments nil)
+ (so-long-threshold outline-default-long-line)
+ (so-long-max-lines nil))
+ (so-long-detected-long-line-p))))))
+ ;; show only branches when long lines are detected
+ ;; in subtree
+ (outline-show-branches))
+ (custom-function
+ ;; call custom function if defined
+ (funcall custom-function))
+ (t
+ ;; if no previous clause succeeds, show subtree
+ (outline-show-subtree))))))
+ beg end)))
+ (run-hooks 'outline-view-change-hook)))
+
(defun outline--cycle-state ()
"Return the cycle state of current heading.
Return either 'hide-all, 'headings-only, or 'show-all."
diff --git a/lisp/paren.el b/lisp/paren.el
index a1f74f2097..0065bba72e 100644
--- a/lisp/paren.el
+++ b/lisp/paren.el
@@ -330,9 +330,7 @@ It is the default value of `show-paren-data-function'."
(let ((open-paren-line-string
(blink-paren-open-paren-line-string openparen))
(message-log-max nil))
- (minibuffer-message
- "Matches %s"
- (substring-no-properties open-paren-line-string)))))
+ (minibuffer-message "Matches %s" open-paren-line-string))))
;; Always set the overlay face, since it varies.
(overlay-put show-paren--overlay 'priority show-paren-priority)
(overlay-put show-paren--overlay 'face face))))))
diff --git a/lisp/progmodes/bat-mode.el b/lisp/progmodes/bat-mode.el
index 7ef2500e46..6bac297a29 100644
--- a/lisp/progmodes/bat-mode.el
+++ b/lisp/progmodes/bat-mode.el
@@ -71,8 +71,8 @@
"doskey" "echo" "endlocal" "erase" "fc" "find" "findstr" "format"
"ftype" "label" "md" "mkdir" "more" "move" "net" "path" "pause"
"popd" "prompt" "pushd" "rd" "ren" "rename" "replace" "rmdir"
"set"
- "setlocal" "shift" "sort" "subst" "time" "title" "tree" "type"
- "ver" "vol" "xcopy"))
+ "setlocal" "setx" "shift" "sort" "subst" "time" "title" "tree"
+ "type" "ver" "vol" "xcopy"))
(CONTROLFLOW
'("call" "cmd" "defined" "do" "else" "equ" "exist" "exit" "for"
"geq"
"goto" "gtr" "if" "in" "leq" "lss" "neq" "not" "start"))
@@ -82,7 +82,7 @@
(2 font-lock-constant-face t))
("^:[^:].*"
. 'bat-label-face)
- ("\\_<\\(defined\\|set\\)\\_>[ \t]*\\(\\(\\sw\\|\\s_\\)+\\)"
+ ("\\_<\\(defined\\|set\\|setx\\)\\_>[ \t]*\\(\\(\\sw\\|\\s_\\)+\\)"
(2 font-lock-variable-name-face))
("%~\\([0-9]\\)"
(1 font-lock-variable-name-face))
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index b1bef82842..7092ca2041 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -744,10 +744,10 @@ The option \"--fullname\" must be included in this value."
output))
-(easy-mmode-defmap gud-minibuffer-local-map
- '(("\C-i" . comint-dynamic-complete-filename))
- "Keymap for minibuffer prompting of gud startup command."
- :inherit minibuffer-local-map)
+(defvar-keymap gud-minibuffer-local-map
+ :doc "Keymap for minibuffer prompting of gud startup command."
+ :parent minibuffer-local-map
+ "C-i" #'comint-dynamic-complete-filename)
(defun gud-query-cmdline (minor-mode &optional init)
(let* ((hist-sym (gud-symbol 'history nil minor-mode))
@@ -759,13 +759,18 @@ The option \"--fullname\" must be included in this value."
(concat (or cmd-name (symbol-name minor-mode))
" "
(or init
- (let ((file nil))
- (dolist (f (directory-files default-directory) file)
- (if (and (file-executable-p f)
- (not (file-directory-p f))
- (or (not file)
- (file-newer-than-file-p f file)))
- (setq file f)))))))
+ (let ((file nil)
+ (files (directory-files default-directory)))
+ ;; On remote systems, this may be slow, so avoid it.
+ (when (or (not (file-remote-p default-directory))
+ (length< files 50))
+ (dolist (f files)
+ (if (and (file-executable-p f)
+ (not (file-directory-p f))
+ (or (not file)
+ (file-newer-than-file-p f file)))
+ (setq file f)))
+ file)))))
gud-minibuffer-local-map nil
hist-sym)))
@@ -869,7 +874,8 @@ the buffer in which this command was invoked."
COMMAND is the prefix for which we seek completion.
CONTEXT is the text before COMMAND on the line."
(let* ((complete-list
- (gud-gdb-run-command-fetch-lines (concat "complete " context command)
+ (gud-gdb-run-command-fetch-lines (concat "server complete "
+ context command)
(current-buffer)
;; From string-match above.
(length context))))
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index eda19c46a3..c812f28c1b 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -1017,7 +1017,7 @@ if one already exists."
(default-project-shell-name (project-prefixed-buffer-name "shell"))
(shell-buffer (get-buffer default-project-shell-name)))
(if (and shell-buffer (not current-prefix-arg))
- (pop-to-buffer shell-buffer display-comint-buffer-action)
+ (pop-to-buffer shell-buffer (bound-and-true-p
display-comint-buffer-action))
(shell (generate-new-buffer-name default-project-shell-name)))))
;;;###autoload
@@ -1033,7 +1033,7 @@ if one already exists."
(eshell-buffer-name (project-prefixed-buffer-name "eshell"))
(eshell-buffer (get-buffer eshell-buffer-name)))
(if (and eshell-buffer (not current-prefix-arg))
- (pop-to-buffer eshell-buffer display-comint-buffer-action)
+ (pop-to-buffer eshell-buffer (bound-and-true-p
display-comint-buffer-action))
(eshell t))))
;;;###autoload
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index edd3139a7a..5889f2ab67 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -3216,11 +3216,13 @@ detecting a prompt at the end of the buffer."
(defun python-shell-send-string-no-output (string &optional process)
"Send STRING to PROCESS and inhibit output.
Return the output."
- (let ((process (or process (python-shell-get-process-or-error)))
- (comint-preoutput-filter-functions
- '(python-shell-output-filter))
- (python-shell-output-filter-in-progress t)
- (inhibit-quit t))
+ (or process (setq process (python-shell-get-process-or-error)))
+ (cl-letf (((process-filter process)
+ (lambda (_proc str)
+ (with-current-buffer (process-buffer process)
+ (python-shell-output-filter str))))
+ (python-shell-output-filter-in-progress t)
+ (inhibit-quit t))
(or
(with-local-quit
(python-shell-send-string string process)
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index e1820714b6..2ef18e1b67 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -325,6 +325,13 @@ It is used when `ruby-encoding-magic-comment-style' is set
to `custom'."
"Use `ruby-encoding-map' to set encoding magic comment if this is non-nil."
:type 'boolean :group 'ruby)
+(defcustom ruby-toggle-block-space-before-parameters t
+ "When non-nil, ensure space between the \"toggled\" curly and parameters.
+This only affects the output of the command `ruby-toggle-block'."
+ :type 'boolean
+ :safe 'booleanp
+ :version "29.1")
+
;;; SMIE support
(require 'smie)
@@ -1722,13 +1729,14 @@ See `add-log-current-defun-function'."
(insert "}")
(goto-char orig)
(delete-char 2)
- ;; Maybe this should be customizable, let's see if anyone asks.
- (insert "{ ")
- (setq beg-marker (point-marker))
- (when (looking-at "\\s +|")
- (delete-char (- (match-end 0) (match-beginning 0) 1))
- (forward-char)
- (re-search-forward "|" (line-end-position) t))
+ (insert "{")
+ (if (looking-at "\\s +|")
+ (progn
+ (just-one-space (if ruby-toggle-block-space-before-parameters 1 0))
+ (setq beg-marker (point-marker))
+ (forward-char)
+ (re-search-forward "|" (line-end-position) t))
+ (setq beg-marker (point-marker)))
(save-excursion
(skip-chars-forward " \t\n\r")
(setq beg-pos (point))
diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el
index 6f47f645e0..592e2d5057 100644
--- a/lisp/progmodes/scheme.el
+++ b/lisp/progmodes/scheme.el
@@ -115,12 +115,53 @@
(define-abbrev-table 'scheme-mode-abbrev-table ())
(defvar scheme-imenu-generic-expression
- '((nil
-
"^(define\\(?:-\\(?:generic\\(?:-procedure\\)?\\|method\\)\\)?\\s-+(?\\(\\sw+\\)"
1)
- ("Types"
- "^(define-class\\s-+(?\\(\\sw+\\)" 1)
- ("Macros"
- "^(\\(defmacro\\|define-macro\\|define-syntax\\)\\s-+(?\\(\\sw+\\)"
2))
+ `((nil
+ ,(rx bol "(define"
+ (zero-or-one "*")
+ (zero-or-one "-public")
+ (one-or-more space)
+ (zero-or-one "(")
+ (group (one-or-more (or word (syntax symbol)))))
+ 1)
+ ("Methods"
+ ,(rx bol "(define-"
+ (or "generic" "method" "accessor")
+ (one-or-more space)
+ (zero-or-one "(")
+ (group (one-or-more (or word (syntax symbol)))))
+ 1)
+ ("Classes"
+ ,(rx bol "(define-class"
+ (one-or-more space)
+ (zero-or-one "(")
+ (group (one-or-more (or word (syntax symbol)))))
+ 1)
+ ("Records"
+ ,(rx bol "(define-record-type"
+ (zero-or-one "*")
+ (one-or-more space)
+ (group (one-or-more (or word (syntax symbol)))))
+ 1)
+ ("Conditions"
+ ,(rx bol "(define-condition-type"
+ (one-or-more space)
+ (group (one-or-more (or word (syntax symbol)))))
+ 1)
+ ("Modules"
+ ,(rx bol "(define-module"
+ (one-or-more space)
+ (group "(" (one-or-more any) ")"))
+ 1)
+ ("Macros"
+ ,(rx bol "("
+ (or (and "defmacro"
+ (zero-or-one "*")
+ (zero-or-one "-public"))
+ "define-macro" "define-syntax" "define-syntax-rule")
+ (one-or-more space)
+ (zero-or-one "(")
+ (group (one-or-more (or word (syntax symbol)))))
+ 1))
"Imenu generic expression for Scheme mode. See `imenu-generic-expression'.")
(defun scheme-mode-variables ()
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index e0d597d89d..3ad0f0182f 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -1407,7 +1407,7 @@ If FORCE is non-nil and no process found, create one."
(defun sh-show-shell ()
"Pop the shell interaction buffer."
(interactive)
- (pop-to-buffer (process-buffer (sh-shell-process t))))
+ (pop-to-buffer (process-buffer (sh-shell-process t))
display-comint-buffer-action))
(defun sh-send-text (text)
"Send the text to the `sh-shell-process'."
@@ -1602,7 +1602,7 @@ This adds rules for comments and assignments."
;;; Completion
-(defvar sh--completion-keywords '("if" "while" "until" "for"))
+(defvar sh--completion-keywords '("if" "while" "until" "for" "then"))
(defun sh--vars-before-point ()
(save-excursion
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 9ce63a8f8a..37e2159782 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -118,16 +118,16 @@ When it is a file name, it should be the \"expanded\"
version.")
(defcustom xref-file-name-display 'project-relative
"Style of file name display in *xref* buffers.
-If the value is the symbol `abs', the default, show the file names
-in their full absolute form.
+If the value is the symbol `abs', show the file names in their
+full absolute form.
If `nondirectory', show only the nondirectory (a.k.a. \"base name\")
part of the file name.
-If `project-relative', show only the file name relative to the
-current project root. If there is no current project, or if the
-file resides outside of its root, show that particular file name
-in its full absolute form."
+If `project-relative', the default, show only the file name
+relative to the current project root. If there is no current
+project, or if the file resides outside of its root, show that
+particular file name in its full absolute form."
:type '(choice (const :tag "absolute file name" abs)
(const :tag "nondirectory file name" nondirectory)
(const :tag "relative to project root" project-relative))
@@ -738,11 +738,20 @@ quit the *xref* buffer."
"Perform interactive replacement of FROM with TO in all displayed xrefs.
This command interactively replaces FROM with TO in the names of the
-references displayed in the current *xref* buffer."
+references displayed in the current *xref* buffer.
+
+When called interactively, it uses '.*' as FROM, which means
+replace the whole name. Unless called with prefix argument, in
+which case the user is prompted for both FROM and TO."
(interactive
- (let ((fr (read-regexp "Xref query-replace (regexp)" ".*")))
- (list fr
- (read-regexp (format "Xref query-replace (regexp) %s with: " fr)))))
+ (let* ((fr
+ (if current-prefix-arg
+ (read-regexp "Query-replace (regexp)" ".*")
+ ".*"))
+ (prompt (if current-prefix-arg
+ (format "Query-replace (regexp) %s with: " fr)
+ "Query-replace all matches with: ")))
+ (list fr (read-regexp prompt))))
(let* (item xrefs iter)
(save-excursion
(while (setq item (xref--search-property 'xref-item))
@@ -1469,6 +1478,22 @@ is nil, prompt only if there's no usable symbol at
point."
(interactive (list (xref--read-identifier "Find references of: ")))
(xref--find-xrefs identifier 'references identifier nil))
+(defun xref-find-references-and-replace (from to)
+ "Replace all references to identifier FROM with TO."
+ (interactive
+ (let ((common
+ (query-replace-read-args "Query replace identifier" nil)))
+ (list (nth 0 common) (nth 1 common))))
+ (require 'xref)
+ (with-current-buffer
+ (let ((xref-show-xrefs-function
+ ;; Some future-proofing (bug#44905).
+ (custom--standard-value 'xref-show-xrefs-function))
+ ;; Disable auto-jumping, it will mess up replacement logic.
+ xref-auto-jump-to-first-xref)
+ (xref-find-references from))
+ (xref-query-replace-in-results ".*" to)))
+
;;;###autoload
(defun xref-find-definitions-at-mouse (event)
"Find the definition of identifier at or around mouse click.
diff --git a/lisp/replace.el b/lisp/replace.el
index ff6a20db84..299e42b20e 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -2086,6 +2086,7 @@ See also `multi-occur'."
;; (for Occur Edit mode).
front-sticky t
rear-nonsticky t
+ read-only t
occur-target ,markers
follow-link t
help-echo "mouse-2: go to
this occurrence"))))
diff --git a/lisp/shell.el b/lisp/shell.el
index dcb6bea042..c0a82bca18 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -758,7 +758,7 @@ Make the shell buffer the current buffer, and return it.
(current-buffer)))
;; The buffer's window must be correctly set when we call comint
;; (so that comint sets the COLUMNS env var properly).
- (pop-to-buffer buffer)
+ (pop-to-buffer buffer display-comint-buffer-action)
(with-connection-local-variables
;; On remote hosts, the local `shell-file-name' might be useless.
diff --git a/lisp/simple.el b/lisp/simple.el
index 68210f9930..ac1d89b670 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -2309,8 +2309,8 @@ maps."
(let* ((execute-extended-command--last-typed nil)
(keymaps
;; The major mode's keymap and any active minor modes.
- (cons
- (current-local-map)
+ (nconc
+ (and (current-local-map) (list (current-local-map)))
(mapcar
#'cdr
(seq-filter
@@ -3016,7 +3016,8 @@ undo record: if we undo from 4, `pending-undo-list' will
be at 3,
(defcustom undo-no-redo nil
"If t, `undo' doesn't go through redo entries."
- :type 'boolean)
+ :type 'boolean
+ :group 'undo)
(defvar pending-undo-list nil
"Within a run of consecutive undo commands, list remaining to be undone.
@@ -4150,6 +4151,10 @@ interactively when the prefix argument is given), insert
the
output in current buffer after point leaving mark after it. This
cannot be done asynchronously.
+If OUTPUT-BUFFER is a buffer or buffer name different from the
+current buffer, instead of outputting at point in that buffer,
+the output will be appended at the end of that buffer.
+
The user option `shell-command-dont-erase-buffer', which see, controls
whether the output buffer is erased and where to put point after
the shell command.
@@ -6723,11 +6728,10 @@ mode temporarily."
(user-error "No mark set in this buffer"))
(set-mark (point))
(goto-char omark)
- (cond (temp-highlight
- (setq-local transient-mark-mode (cons 'only transient-mark-mode)))
- ((xor arg (not (region-active-p)))
- (deactivate-mark))
- (t (activate-mark)))
+ (or temp-highlight
+ (cond ((xor arg (not (region-active-p)))
+ (deactivate-mark))
+ (t (activate-mark))))
nil))
(defcustom shift-select-mode t
@@ -9500,9 +9504,6 @@ PREFIX is the string that represents this modifier in an
event type symbol."
(defvar clone-buffer-hook nil
"Normal hook to run in the new buffer at the end of `clone-buffer'.")
-(defvar clone-indirect-buffer-hook nil
- "Normal hook to run in the new buffer at the end of
`clone-indirect-buffer'.")
-
(defun clone-process (process &optional newname)
"Create a twin copy of PROCESS.
If NEWNAME is nil, it defaults to PROCESS' name;
@@ -9655,8 +9656,6 @@ Returns the newly created indirect buffer."
(setq newname (substring newname 0 (match-beginning 0))))
(let* ((name (generate-new-buffer-name newname))
(buffer (make-indirect-buffer (current-buffer) name t)))
- (with-current-buffer buffer
- (run-hooks 'clone-indirect-buffer-hook))
(when display-flag
(pop-to-buffer buffer nil norecord))
buffer))
diff --git a/lisp/speedbar.el b/lisp/speedbar.el
index e63a2642fe..b2e7be1505 100644
--- a/lisp/speedbar.el
+++ b/lisp/speedbar.el
@@ -938,7 +938,9 @@ supported at a time.
;; hscroll
(setq-local auto-hscroll-mode nil)
;; reset the selection variable
- (setq speedbar-last-selected-file nil))
+ (setq speedbar-last-selected-file nil)
+ (unless (display-graphic-p)
+ (message "Use `M-x speedbar-get-focus' to see the speedbar window")))
(defun speedbar-frame-reposition-smartly ()
"Reposition the speedbar frame to be next to the attached frame."
diff --git a/lisp/startup.el b/lisp/startup.el
index d90e7a7d26..66dd726ae9 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -519,18 +519,26 @@ DIRS are relative."
xdg-dir)
(t emacs-d-dir))))
-(defvar comp--delayed-sources)
(defvar comp--loadable)
+(defvar comp--delayed-sources)
+(defun startup--require-comp-safely ()
+ "Require the native compiler avoiding circular dependencies."
+ (unless (featurep 'comp)
+ ;; Require comp with `comp--loadable' set to nil to break
+ ;; circularity.
+ (let ((comp--loadable nil))
+ (require 'comp))
+ (native--compile-async comp--delayed-sources nil 'late)
+ (setq comp--delayed-sources nil)))
+
(declare-function native--compile-async "comp.el"
(files &optional recursively load selector))
(defun startup--honor-delayed-native-compilations ()
"Honor pending delayed deferred native compilations."
(when (and (native-comp-available-p)
comp--delayed-sources)
- (require 'comp)
- (setq comp--loadable t)
- (native--compile-async comp--delayed-sources nil 'late)
- (setq comp--delayed-sources nil)))
+ (startup--require-comp-safely))
+ (setq comp--loadable t))
(defvar native-comp-eln-load-path)
(defun normal-top-level ()
@@ -550,26 +558,6 @@ It is the default value of the variable `top-level'."
(setq user-emacs-directory
(startup--xdg-or-homedot startup--xdg-config-home-emacs nil))
- (when (featurep 'native-compile)
- ;; Form `native-comp-eln-load-path'.
- (let ((path-env (getenv "EMACSNATIVELOADPATH")))
- (when path-env
- (dolist (path (split-string path-env path-separator))
- (unless (string= "" path)
- (push path native-comp-eln-load-path)))))
- (push (expand-file-name "eln-cache/" user-emacs-directory)
- native-comp-eln-load-path)
- ;; When $HOME is set to '/nonexistent' means we are running the
- ;; testsuite, add a temporary folder in front to produce there
- ;; new compilations.
- (when (and (equal (getenv "HOME") "/nonexistent")
- ;; We may be running in a chroot environment where we
- ;; can't write anything.
- (file-writable-p (expand-file-name
- (or temporary-file-directory ""))))
- (let ((tmp-dir (make-temp-file "emacs-testsuite-" t)))
- (add-hook 'kill-emacs-hook (lambda () (delete-directory tmp-dir t)))
- (push tmp-dir native-comp-eln-load-path))))
;; Look in each dir in load-path for a subdirs.el file. If we
;; find one, load it, which will add the appropriate subdirs of
;; that dir into load-path. This needs to be done before setting
@@ -656,16 +644,6 @@ It is the default value of the variable `top-level'."
(set pathsym (mapcar (lambda (dir)
(decode-coding-string dir coding t))
path)))))
- (when (featurep 'native-compile)
- (let ((npath (symbol-value 'native-comp-eln-load-path)))
- (set 'native-comp-eln-load-path
- (mapcar (lambda (dir)
- ;; Call expand-file-name to remove all the
- ;; pesky ".." from the directyory names in
- ;; native-comp-eln-load-path.
- (expand-file-name
- (decode-coding-string dir coding t)))
- npath))))
(dolist (filesym '(data-directory doc-directory exec-directory
installation-directory
invocation-directory invocation-name
@@ -715,6 +693,47 @@ It is the default value of the variable `top-level'."
(let ((old-face-font-rescale-alist face-font-rescale-alist))
(unwind-protect
(command-line)
+
+ ;; Do this after `command-line', since it may alter
+ ;; `user-emacs-directory'.
+ (when (featurep 'native-compile)
+ ;; Form `native-comp-eln-load-path'.
+ (let ((path-env (getenv "EMACSNATIVELOADPATH")))
+ (when path-env
+ (dolist (path (split-string path-env path-separator))
+ (unless (string= "" path)
+ (push path native-comp-eln-load-path)))))
+ (push (expand-file-name "eln-cache/" user-emacs-directory)
+ native-comp-eln-load-path)
+ ;; When $HOME is set to '/nonexistent' means we are running the
+ ;; testsuite, add a temporary folder in front to produce there
+ ;; new compilations.
+ (when (and (equal (getenv "HOME") "/nonexistent")
+ ;; We may be running in a chroot environment where we
+ ;; can't write anything.
+ (file-writable-p (expand-file-name
+ (or temporary-file-directory ""))))
+ (let ((tmp-dir (make-temp-file "emacs-testsuite-" t)))
+ (add-hook 'kill-emacs-hook
+ (lambda ()
+ (delete-directory tmp-dir t)))
+ (push tmp-dir native-comp-eln-load-path)))
+ (when locale-coding-system
+ (let ((coding (if (eq system-type 'windows-nt)
+ ;; MS-Windows build converts all file names to
+ ;; UTF-8 during startup.
+ 'utf-8
+ locale-coding-system))
+ (npath (symbol-value 'native-comp-eln-load-path)))
+ (set 'native-comp-eln-load-path
+ (mapcar (lambda (dir)
+ ;; Call expand-file-name to remove all the
+ ;; pesky ".." from the directyory names in
+ ;; native-comp-eln-load-path.
+ (expand-file-name
+ (decode-coding-string dir coding t)))
+ npath)))))
+
;; Do this again, in case .emacs defined more abbreviations.
(if default-directory
(setq default-directory (abbreviate-file-name default-directory)))
@@ -781,6 +800,7 @@ It is the default value of the variable `top-level'."
(font-menu-add-default))
(unless inhibit-startup-hooks
(run-hooks 'window-setup-hook))))
+
;; Subprocesses of Emacs do not have direct access to the terminal, so
;; unless told otherwise they should only assume a dumb terminal.
;; We are careful to do it late (after term-setup-hook), although the
@@ -1145,7 +1165,8 @@ please check its value")
("--no-x-resources") ("--debug-init")
("--user") ("--iconic") ("--icon-type") ("--quick")
("--no-blinking-cursor") ("--basic-display")
- ("--dump-file") ("--temacs") ("--seccomp")))
+ ("--dump-file") ("--temacs") ("--seccomp")
+ ("--init-directory")))
(argi (pop args))
(orig-argi argi)
argval)
@@ -1185,6 +1206,9 @@ please check its value")
(push '(vertical-scroll-bars . nil) initial-frame-alist))
((member argi '("-q" "-no-init-file"))
(setq init-file-user nil))
+ ((member argi '("-init-directory"))
+ (setq user-emacs-directory (or argval (pop args))
+ argval nil))
((member argi '("-u" "-user"))
(setq init-file-user (or argval (pop args))
argval nil))
@@ -1261,7 +1285,8 @@ please check its value")
(and (eq xdg-dir user-emacs-directory)
(not (eq xdg-dir startup--xdg-config-default))))
user-emacs-directory
- ;; The name is not obvious, so access more directories to calculate
it.
+ ;; The name is not obvious, so access more directories
+ ;; to calculate it.
(setq xdg-dir (concat "~" init-file-user "/.config/emacs/"))
(startup--xdg-or-homedot xdg-dir init-file-user)))
diff --git a/lisp/subr.el b/lisp/subr.el
index 52611240a1..2749c4c5c8 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1972,7 +1972,7 @@ one will be removed."
(format "%s hook to remove: "
(if local "Buffer-local" "Global"))
fn-alist
- nil t)
+ nil t nil 'set-variable-value-history)
fn-alist nil nil #'string=)))
(list hook function local)))
(or (boundp hook) (set hook nil))
@@ -3250,6 +3250,13 @@ switch back again to the minibuffer before entering the
character. This is not possible when using `read-key', but using
`read-key' may be less confusing to some users.")
+(defun use-dialog-box-p ()
+ "Say whether the user should be prompted with a dialog popup box."
+ (and (display-popup-menus-p)
+ last-input-event ; not during startup
+ (listp last-nonmenu-event)
+ use-dialog-box))
+
(defun y-or-n-p (prompt)
"Ask user a \"y or n\" question.
Return t if answer is \"y\" and nil if it is \"n\".
@@ -3309,10 +3316,7 @@ like) while `y-or-n-p' is running)."
((and (member str '("h" "H")) help-form) (print help-form))
(t (setq temp-prompt (concat "Please answer y or n. "
prompt))))))))
- ((and (display-popup-menus-p)
- last-input-event ; not during startup
- (listp last-nonmenu-event)
- use-dialog-box)
+ ((use-dialog-box-p)
(setq prompt (funcall padded prompt t)
answer (x-popup-dialog t `(,prompt ("Yes" . act) ("No" . skip)))))
(y-or-n-p-use-read-key
@@ -4295,11 +4299,13 @@ in which case `save-window-excursion' cannot help."
(defmacro with-output-to-temp-buffer (bufname &rest body)
"Bind `standard-output' to buffer BUFNAME, eval BODY, then show that buffer.
-This construct makes buffer BUFNAME empty before running BODY.
-It does not make the buffer current for BODY.
-Instead it binds `standard-output' to that buffer, so that output
-generated with `prin1' and similar functions in BODY goes into
-the buffer.
+This is a convenience macro meant for displaying help buffers and
+the like. It empties the BUFNAME buffer before evaluating BODY
+and disables undo in that buffer.
+
+It does not make the buffer current for BODY. Instead it binds
+`standard-output' to that buffer, so that output generated with
+`prin1' and similar functions in BODY goes into the buffer.
At the end of BODY, this marks buffer BUFNAME unmodified and displays
it in a window, but does not select it. The normal way to do this is
@@ -6538,4 +6544,39 @@ string will be displayed only if BODY takes longer than
TIMEOUT seconds.
(lambda ()
,@body)))
+(defun function-alias-p (func &optional noerror)
+ "Return nil if FUNC is not a function alias.
+If FUNC is a function alias, return the function alias chain.
+
+If the function alias chain contains loops, an error will be
+signalled. If NOERROR, the non-loop parts of the chain is returned."
+ (declare (side-effect-free t))
+ (let ((chain nil)
+ (orig-func func))
+ (nreverse
+ (catch 'loop
+ (while (and (symbolp func)
+ (setq func (symbol-function func))
+ (symbolp func))
+ (when (or (memq func chain)
+ (eq func orig-func))
+ (if noerror
+ (throw 'loop chain)
+ (signal 'cyclic-function-indirection (list orig-func))))
+ (push func chain))
+ chain))))
+
+(defun readablep (object)
+ "Say whether OBJECT has a readable syntax.
+This means that OBJECT can be printed out and then read back
+again by the Lisp reader. This function returns nil if OBJECT is
+unreadable, and the printed representation (from `prin1') of
+OBJECT if it is readable."
+ (declare (side-effect-free t))
+ (catch 'unreadable
+ (let ((print-unreadable-function
+ (lambda (_object _escape)
+ (throw 'unreadable nil))))
+ (prin1-to-string object))))
+
;;; subr.el ends here
diff --git a/lisp/term.el b/lisp/term.el
index 895dfbed6c..3e05d529cd 100644
--- a/lisp/term.el
+++ b/lisp/term.el
@@ -523,6 +523,16 @@ This means text can automatically reflow if the window is
resized."
(make-obsolete-variable 'term-suppress-hard-newline nil
"27.1")
+(defcustom term-clear-full-screen-programs t
+ "Whether to clear contents of full-screen terminal programs after exit.
+If non-nil, output of full-screen terminal programs is cleared after
+exiting them. Note however that a minority of such programs
+don't send an appropriate escape sequence to the terminal before
+exiting so their output isn't cleared regardless of this option."
+ :version "29.1"
+ :type 'boolean
+ :group 'term)
+
;; Where gud-display-frame should put the debugging arrow. This is
;; set by the marker-filter, which scans the debugger's output for
;; indications of the current pc.
@@ -1270,7 +1280,8 @@ Entry to this mode runs the hooks on `term-mode-hook'."
(when (/= width term-width)
(save-excursion
(term--remove-fake-newlines)))
- (let ((point (point)))
+ (let ((point (point))
+ (home-marker (marker-position term-home-marker)))
(setq term-height height)
(setq term-width width)
(setq term-start-line-column nil)
@@ -1279,11 +1290,20 @@ Entry to this mode runs the hooks on `term-mode-hook'."
(term--reset-scroll-region)
;; `term-set-scroll-region' causes these to be set, we have to
;; clear them again since we're changing point (Bug#30544).
+ (term--unwrap-visible-long-lines width)
(setq term-start-line-column nil)
(setq term-current-row nil)
(setq term-current-column nil)
- (goto-char point))
- (term--unwrap-visible-long-lines width)))
+ (goto-char point)
+
+ (when (term-using-alternate-sub-buffer)
+ (term-handle-deferred-scroll)
+ ;; When using an alternative sub-buffer, the home marker should
+ ;; not move forward. Bring it back by deleting text in front of
+ ;; it.
+ (when (> term-home-marker home-marker)
+ (let ((inhibit-read-only t))
+ (delete-region home-marker term-home-marker)))))))
;; Recursive routine used to check if any string in term-kill-echo-list
;; matches part of the buffer before point.
@@ -1611,6 +1631,7 @@ Using \"emacs\" loses, because bash disables editing if
$TERM == emacs.")
"%s%s:li#%d:co#%d:cl=\\E[H\\E[J:cd=\\E[J:bs:am:xn:cm=\\E[%%i%%d;%%dH\
:nd=\\E[C:up=\\E[A:ce=\\E[K:ho=\\E[H:pt\
:al=\\E[L:dl=\\E[M:DL=\\E[%%dM:AL=\\E[%%dL:cs=\\E[%%i%%d;%%dr:sf=^J\
+:NR:te=\\E[47l:ti=\\E[47h\
:dc=\\E[P:DC=\\E[%%dP:IC=\\E[%%d@:im=\\E[4h:ei=\\E[4l:mi:\
:mb=\\E[5m:mh=\\E[2m:ZR=\\E[23m:ZH=\\E[3m\
:so=\\E[7m:se=\\E[m:us=\\E[4m:ue=\\E[m:md=\\E[1m:mr=\\E[7m:me=\\E[m\
@@ -3539,16 +3560,14 @@ otherwise use the current foreground color."
((eq char ?h)
(cond ((eq (car params) 4) ;; (terminfo: smir)
(setq term-insert-mode t))
- ;; ((eq (car params) 47) ;; (terminfo: smcup)
- ;; (term-switch-to-alternate-sub-buffer t))
- ))
+ ((eq (car params) 47) ;; (terminfo: smcup)
+ (term-switch-to-alternate-sub-buffer t))))
;; \E[?l - DEC Private Mode Reset
((eq char ?l)
(cond ((eq (car params) 4) ;; (terminfo: rmir)
(setq term-insert-mode nil))
- ;; ((eq (car params) 47) ;; (terminfo: rmcup)
- ;; (term-switch-to-alternate-sub-buffer nil))
- ))
+ ((eq (car params) 47) ;; (terminfo: rmcup)
+ (term-switch-to-alternate-sub-buffer nil))))
;; Modified to allow ansi coloring -mm
;; \E[m - Set/reset modes, set bg/fg
@@ -3595,32 +3614,35 @@ The top-most line is line 0."
(term-move-columns (- (term-current-column)))
(term-goto 0 0))
-;; (defun term-switch-to-alternate-sub-buffer (set)
-;; ;; If asked to switch to (from) the alternate sub-buffer, and already
(not)
-;; ;; using it, do nothing. This test is needed for some programs (including
-;; ;; Emacs) that emit the ti termcap string twice, for unknown reason.
-;; (term-handle-deferred-scroll)
-;; (if (eq set (not (term-using-alternate-sub-buffer)))
-;; (let ((row (term-current-row))
-;; (col (term-horizontal-column)))
-;; (cond (set
-;; (goto-char (point-max))
-;; (if (not (eq (preceding-char) ?\n))
-;; (term-insert-char ?\n 1))
-;; (setq term-scroll-with-delete t)
-;; (setq term-saved-home-marker (copy-marker term-home-marker))
-;; (set-marker term-home-marker (point)))
-;; (t
-;; (setq term-scroll-with-delete
-;; (not (and (= term-scroll-start 0)
-;; (= term-scroll-end term-height))))
-;; (set-marker term-home-marker term-saved-home-marker)
-;; (set-marker term-saved-home-marker nil)
-;; (setq term-saved-home-marker nil)
-;; (goto-char term-home-marker)))
-;; (setq term-current-column nil)
-;; (setq term-current-row 0)
-;; (term-goto row col))))
+(defun term-switch-to-alternate-sub-buffer (set)
+ ;; If asked to switch to (from) the alternate sub-buffer, and already (not)
+ ;; using it, do nothing. This test is needed for some programs (including
+ ;; Emacs) that emit the ti termcap string twice, for unknown reason.
+ (term-handle-deferred-scroll)
+ (when (eq set (not (term-using-alternate-sub-buffer)))
+ (cond
+ (set
+ (goto-char (point-max))
+ (if (not (eq (preceding-char) ?\n))
+ (term-insert-char ?\n 1))
+ (setq term-scroll-with-delete t)
+ (setq term-saved-home-marker (copy-marker term-home-marker))
+ (set-marker term-home-marker (point)))
+ (t
+ (setq term-scroll-with-delete
+ (not (and (= term-scroll-start 0)
+ (= term-scroll-end (term--last-line)))))
+ (goto-char (point-max))
+ (when term-clear-full-screen-programs
+ (delete-region term-home-marker (point))
+ (set-marker term-home-marker term-saved-home-marker))
+ (set-marker term-saved-home-marker nil)
+ (setq term-saved-home-marker nil)))
+
+ (setq term-start-line-column nil)
+ (setq term-current-column nil)
+ (setq term-current-row nil)
+ (term-handle-deferred-scroll)))
;; Default value for the symbol term-command-function.
diff --git a/lisp/term/haiku-win.el b/lisp/term/haiku-win.el
index ffd67e9cf0..4c06f7f58a 100644
--- a/lisp/term/haiku-win.el
+++ b/lisp/term/haiku-win.el
@@ -36,7 +36,7 @@
(require 'fontset)
(require 'dnd)
-(add-to-list 'display-format-alist '(".*" . haiku-win))
+(add-to-list 'display-format-alist '(".*" . haiku))
;;;; Command line argument handling.
@@ -50,6 +50,7 @@
(declare-function haiku-selection-data "haikuselect.c")
(declare-function haiku-selection-put "haikuselect.c")
(declare-function haiku-selection-targets "haikuselect.c")
+(declare-function haiku-selection-owner-p "haikuselect.c")
(declare-function haiku-put-resource "haikufns.c")
(defun haiku--handle-x-command-line-resources (command-line-resources)
@@ -105,9 +106,8 @@ If TYPE is nil, return \"text/plain\"."
&context (window-system haiku))
(haiku-selection-data selection "text/plain"))
-(cl-defmethod gui-backend-selection-owner-p (_
- &context (window-system haiku))
- t)
+(cl-defmethod gui-backend-selection-owner-p (selection &context (window-system
haiku))
+ (haiku-selection-owner-p selection))
(declare-function haiku-read-file-name "haikufns.c")
@@ -136,6 +136,16 @@ If TYPE is nil, return \"text/plain\"."
(define-key special-event-map [drag-n-drop]
'haiku-dnd-handle-drag-n-drop-event)
+(defvaralias 'haiku-use-system-tooltips 'use-system-tooltips)
+
+(defun haiku-use-system-tooltips-watcher (&rest _ignored)
+ "Variable watcher to force a menu bar update when `use-system-tooltip'
changes.
+This is necessary because on Haiku `use-system-tooltip' doesn't
+take effect on menu items until the menu bar is updated again."
+ (force-mode-line-update t))
+
+(add-variable-watcher 'use-system-tooltips #'haiku-use-system-tooltips-watcher)
+
(provide 'haiku-win)
(provide 'term/haiku-win)
diff --git a/lisp/term/pgtk-win.el b/lisp/term/pgtk-win.el
index 0f5b9031db..25f3a851dc 100644
--- a/lisp/term/pgtk-win.el
+++ b/lisp/term/pgtk-win.el
@@ -325,8 +325,7 @@ See the documentation of `create-fontset-from-fontset-spec'
for the format.")
(defun pgtk-preedit-text (event)
"An internal function to display preedit text from input method.
-EVENT is an event of PGTK_PREEDIT_TEXT_EVENT.
-It contains colors and texts."
+EVENT is a `preedit-text-event'."
(interactive "e")
(when pgtk-preedit-overlay
(delete-overlay pgtk-preedit-overlay))
@@ -356,6 +355,7 @@ It contains colors and texts."
(overlay-put ov 'before-string ovstr)
(setq pgtk-preedit-overlay ov)))
+(define-key special-event-map [preedit-text] 'pgtk-preedit-text)
(add-hook 'after-init-hook
(function
@@ -510,6 +510,8 @@ This uses `icon-map-list' to map icon file names to stock
icon names."
(t
(popup-menu (mouse-menu-bar-map) last-nonmenu-event))))
+(defvaralias 'x-gtk-use-system-tooltips 'use-system-tooltips)
+
(provide 'pgtk-win)
(provide 'term/pgtk-win)
diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el
index 62cd984866..019a01e22c 100644
--- a/lisp/term/x-win.el
+++ b/lisp/term/x-win.el
@@ -1489,6 +1489,12 @@ If you don't want stock icons, set the variable to nil."
(string :tag "Stock/named")))))
:group 'x)
+(defcustom x-display-cursor-at-start-of-preedit-string nil
+ "If non-nil, display the cursor at the start of any pre-edit text."
+ :version "29.1"
+ :type 'boolean
+ :group 'x)
+
(defconst x-gtk-stock-cache (make-hash-table :weakness t :test 'equal))
(defun x-gtk-map-stock (file)
@@ -1517,6 +1523,46 @@ This uses `icon-map-list' to map icon file names to
stock icon names."
(global-set-key [XF86WakeUp] 'ignore)
+
+(defvar x-preedit-overlay nil
+ "The overlay currently used to display preedit text from a compose
sequence.")
+
+;; With some input methods, text gets inserted before Emacs is told to
+;; remove any preedit text that was displayed, which causes both the
+;; preedit overlay and the text to be visible for a brief period of
+;; time. This pre-command-hook clears the overlay before any command
+;; and should be set whenever a preedit overlay is visible.
+(defun x-clear-preedit-text ()
+ "Clear the pre-edit overlay and remove itself from pre-command-hook.
+This function should be installed in `pre-command-hook' whenever
+preedit text is displayed."
+ (when x-preedit-overlay
+ (delete-overlay x-preedit-overlay)
+ (setq x-preedit-overlay nil))
+ (remove-hook 'pre-command-hook #'x-clear-preedit-text))
+
+(defun x-preedit-text (event)
+ "Display preedit text from a compose sequence in EVENT.
+EVENT is a preedit-text event."
+ (interactive "e")
+ (when x-preedit-overlay
+ (delete-overlay x-preedit-overlay)
+ (setq x-preedit-overlay nil)
+ (remove-hook 'pre-command-hook #'x-clear-preedit-text))
+ (when (nth 1 event)
+ (let ((string (propertize (nth 1 event) 'face '(:underline t))))
+ (setq x-preedit-overlay (make-overlay (point) (point)))
+ (add-hook 'pre-command-hook #'x-clear-preedit-text)
+ (overlay-put x-preedit-overlay 'window (selected-window))
+ (overlay-put x-preedit-overlay 'before-string
+ (if x-display-cursor-at-start-of-preedit-string
+ (propertize string 'cursor t)
+ string)))))
+
+(define-key special-event-map [preedit-text] 'x-preedit-text)
+
+(defvaralias 'x-gtk-use-system-tooltips 'use-system-tooltips)
+
(provide 'x-win)
(provide 'term/x-win)
diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el
index f41fd186e7..87cea5216a 100644
--- a/lisp/textmodes/fill.el
+++ b/lisp/textmodes/fill.el
@@ -713,8 +713,7 @@ space does not end a sentence, so don't break a line there."
(or justify (setq justify (current-justification)))
;; Don't let Adaptive Fill mode alter the fill prefix permanently.
- (let ((actual-fill-prefix fill-prefix)
- (fill-prefix fill-prefix))
+ (let ((fill-prefix fill-prefix))
;; Figure out how this paragraph is indented, if desired.
(when (and adaptive-fill-mode
(or (null fill-prefix) (string= fill-prefix "")))
@@ -754,18 +753,9 @@ space does not end a sentence, so don't break a line
there."
;; This is the actual filling loop.
(goto-char from)
- (let ((first t)
- linebeg)
- (while (< (point) to)
- ;; On the first line, there may be text in the fill prefix
- ;; zone (when `fill-prefix' is specified externally, and
- ;; not computed). In that case, don't consider that area
- ;; when trying to find a place to put a line break
- ;; (bug#45720).
- (if (not first)
- (setq linebeg (point))
- (setq first nil
- linebeg (+ (point) (length actual-fill-prefix))))
+ (let (linebeg)
+ (while (< (point) to)
+ (setq linebeg (point))
(move-to-column (current-fill-column))
(if (when (and (< (point) to) (< linebeg to))
;; Find the position where we'll break the line.
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index ae3b18ed17..6382b402c0 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -1673,14 +1673,13 @@ Valid forms include:
("\\\\bibliographystyle" ispell-tex-arg-end)
("\\\\makebox" ispell-tex-arg-end 0)
("\\\\e?psfig" ispell-tex-arg-end)
- ("\\\\document\\(class\\|style\\)" .
- "\\\\begin[ \t\n]*{[ \t\n]*document[ \t\n]*}"))
+ ("\\\\document\\(class\\|style\\)" . "\\\\begin[ \t\n]*{document}"))
(;; delimited with \begin. In ispell: displaymath, eqnarray, eqnarray*,
;; equation, minipage, picture, tabular, tabular* (ispell)
("\\(figure\\|table\\)\\*?" ispell-tex-arg-end 0)
("list" ispell-tex-arg-end 2)
- ("program" . "\\\\end[ \t\n]*{[ \t\n]*program[ \t\n]*}")
- ("verbatim\\*?" . "\\\\end[ \t\n]*{[ \t\n]*verbatim\\*?[ \t\n]*}"))))
+ ("program" . "\\\\end[ \t]*{program}")
+ ("verbatim\\*?" . "\\\\end[ \t]*{verbatim\\*?}"))))
"Lists of regions to be skipped in TeX mode.
First list is used raw.
Second list has key placed inside \\begin{}.
diff --git a/lisp/textmodes/reftex-global.el b/lisp/textmodes/reftex-global.el
index 5ab9ecd8db..2dbb4484a7 100644
--- a/lisp/textmodes/reftex-global.el
+++ b/lisp/textmodes/reftex-global.el
@@ -184,8 +184,8 @@ No active TAGS table is required."
default))))
(if (string= from "") (setq from default))
(unless to
- (setq to (read-string (format "Replace label %s with: "
- from))))
+ (setq to (read-string (format "Replace label %s with: " from)
+ nil nil from)))
(reftex-query-replace-document
(concat "{" (regexp-quote from) "}")
(format "{%s}" to))))
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index 1925d93d93..ab94036d01 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -505,7 +505,9 @@ An alternative value is \" . \", if you use a font with a
narrow period."
"documentstyle" "documentclass" "verbatiminput"
"includegraphics" "includegraphics*")
t))
- (verbish (regexp-opt '("url" "nolinkurl" "path") t))
+ (verbish (regexp-opt '("url" "nolinkurl" "path"
+ "href" "ProvidesFile")
+ t))
;; Miscellany.
(slash "\\\\")
(opt " *\\(\\[[^]]*\\] *\\)*")
diff --git a/lisp/tooltip.el b/lisp/tooltip.el
index 1cf16fdb5d..2aa487d045 100644
--- a/lisp/tooltip.el
+++ b/lisp/tooltip.el
@@ -339,6 +339,8 @@ This is used by `tooltip-show-help' and
(defvar tooltip-previous-message nil
"The previous content of the echo area.")
+(defvar haiku-use-system-tooltips)
+
(defun tooltip-show-help-non-mode (help)
"Function installed as `show-help-function' when Tooltip mode is off.
It is also called if Tooltip mode is on, for text-only displays."
@@ -374,8 +376,10 @@ It is also called if Tooltip mode is on, for text-only
displays."
"Function installed as `show-help-function'.
MSG is either a help string to display, or nil to cancel the display."
(if (and (display-graphic-p)
- (or (not (eq window-system 'haiku)) ;; On Haiku, there isn't a
reliable way to show tooltips
- ;; above menus.
+ ;; On Haiku, system tooltips can't be displayed above
+ ;; menus.
+ (or (not (and (eq window-system 'haiku)
+ haiku-use-system-tooltips))
(not (menu-or-popup-active-p))))
(let ((previous-help tooltip-help-message))
(setq tooltip-help-message msg)
@@ -383,9 +387,12 @@ MSG is either a help string to display, or nil to cancel
the display."
;; Cancel display. This also cancels a delayed tip, if
;; there is one.
(tooltip-hide))
- ((equal-including-properties previous-help msg)
- ;; Same help as before (but possibly the mouse has moved).
- ;; Keep what we have.
+ ((equal previous-help msg)
+ ;; Same help as before (but possibly the mouse has
+ ;; moved or the text properties have changed). Keep
+ ;; what we have. If only text properties have changed,
+ ;; the tooltip won't be updated, but that shouldn't
+ ;; occur.
)
(t
;; A different help. Remove a previous tooltip, and
diff --git a/lisp/url/url-queue.el b/lisp/url/url-queue.el
index 8741bca942..d353f0c011 100644
--- a/lisp/url/url-queue.el
+++ b/lisp/url/url-queue.el
@@ -155,14 +155,19 @@ The variable `url-queue-timeout' sets a timeout."
(defun url-queue-start-retrieve (job)
(setf (url-queue-buffer job)
(ignore-errors
- (with-current-buffer (if (buffer-live-p (url-queue-context-buffer
job))
+ (with-current-buffer (if (buffer-live-p
+ (url-queue-context-buffer job))
(url-queue-context-buffer job)
(current-buffer))
- (let ((url-request-noninteractive t))
- (url-retrieve (url-queue-url job)
- #'url-queue-callback-function (list job)
- (url-queue-silentp job)
- (url-queue-inhibit-cookiesp job)))))))
+ (let ((url-request-noninteractive t)
+ ;; This will disable querying the user for
+ ;; credentials if one of the things we're fetching
+ ;; in the background return a header requesting it.
+ (url-request-extra-headers '(("Authorization" . ""))))
+ (url-retrieve (url-queue-url job)
+ #'url-queue-callback-function (list job)
+ (url-queue-silentp job)
+ (url-queue-inhibit-cookiesp job)))))))
(defun url-queue-prune-old-entries ()
(let (dead-jobs)
diff --git a/lisp/userlock.el b/lisp/userlock.el
index d985cb5c8b..a8e699385c 100644
--- a/lisp/userlock.el
+++ b/lisp/userlock.el
@@ -65,7 +65,7 @@ in any way you like."
opponent))
(while (null answer)
(message (substitute-command-keys
- "%s locked by %s: (\\`s', \\`q', \\`p', \\`?'? ")
+ "%s locked by %s: (\\`s', \\`q', \\`p', \\`?')? ")
short-file short-opponent)
(if noninteractive (error "Cannot resolve lock conflict in batch mode"))
(let ((tem (let ((inhibit-quit t)
diff --git a/lisp/vc/add-log.el b/lisp/vc/add-log.el
index e9a21825e1..beaad2e835 100644
--- a/lisp/vc/add-log.el
+++ b/lisp/vc/add-log.el
@@ -1068,8 +1068,23 @@ the change log file in another window."
(insert-before-markers "("))
(error nil)))))
+;; If we're filling a line that has a whole bunch of file names, and
+;; we're still in the file names, then transform this so that it'll
+;; still font-lock properly.
+(defun change-log-fill-file-list ()
+ (save-excursion
+ (unless (bobp)
+ (forward-line -1)
+ (when (looking-at change-log-file-names-re)
+ (goto-char (match-end 0))
+ (while (looking-at "\\=, \\([^ ,:([\n]+\\)")
+ (goto-char (match-end 0)))
+ (when (looking-at ", *\n")
+ (replace-match ":\n *" t t))))))
+
(defun change-log-indent ()
(change-log-fill-parenthesized-list)
+ (change-log-fill-file-list)
(let* ((indent
(save-excursion
(beginning-of-line)
diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el
index ca8df5d380..731d1e8256 100644
--- a/lisp/vc/diff-mode.el
+++ b/lisp/vc/diff-mode.el
@@ -1479,6 +1479,14 @@ See `after-change-functions' for the meaning of BEG, END
and LEN."
(defvar whitespace-style)
(defvar whitespace-trailing-regexp)
+(defvar-local diff-mode-read-only nil
+ "Non-nil when read-only diff buffer uses short keys.")
+
+;; It should be lower than `outline-minor-mode' and `view-mode'.
+(or (assq 'diff-mode-read-only minor-mode-map-alist)
+ (nconc minor-mode-map-alist
+ (list (cons 'diff-mode-read-only diff-mode-shared-map))))
+
;;;###autoload
(define-derived-mode diff-mode fundamental-mode "Diff"
"Major mode for viewing/editing context diffs.
@@ -1516,23 +1524,23 @@ a diff with \\[diff-reverse-direction].
(diff-setup-whitespace)
- (if diff-default-read-only
- (setq buffer-read-only t))
+ ;; read-only setup
+ (when diff-default-read-only
+ (setq buffer-read-only t))
+ (when buffer-read-only
+ (setq diff-mode-read-only t))
+ (add-hook 'read-only-mode-hook
+ (lambda ()
+ (setq diff-mode-read-only buffer-read-only))
+ nil t)
+
;; setup change hooks
(if (not diff-update-on-the-fly)
(add-hook 'write-contents-functions #'diff-write-contents-hooks nil t)
(make-local-variable 'diff-unhandled-changes)
(add-hook 'after-change-functions #'diff-after-change-function nil t)
(add-hook 'post-command-hook #'diff-post-command-hook nil t))
- ;; Neat trick from Dave Love to add more bindings in read-only mode:
- (let ((ro-bind (cons 'buffer-read-only diff-mode-shared-map)))
- (add-to-list 'minor-mode-overriding-map-alist ro-bind)
- ;; Turn off this little trick in case the buffer is put in view-mode.
- (add-hook 'view-mode-hook
- (lambda ()
- (setq minor-mode-overriding-map-alist
- (delq ro-bind minor-mode-overriding-map-alist)))
- nil t))
+
;; add-log support
(setq-local add-log-current-defun-function #'diff-current-defun)
(setq-local add-log-buffer-file-name-function
@@ -2264,21 +2272,24 @@ Return new point, if it was moved."
"Iterate over all hunks between point and MAX.
Call FUN with two args (BEG and END) for each hunk."
(save-excursion
- (let* ((beg (or (ignore-errors (diff-beginning-of-hunk))
- (ignore-errors (diff-hunk-next) (point))
- max)))
- (while (< beg max)
- (goto-char beg)
- (cl-assert (looking-at diff-hunk-header-re))
- (let ((end
- (save-excursion (diff-end-of-hunk) (point))))
- (cl-assert (< beg end))
- (funcall fun beg end)
- (goto-char end)
- (setq beg (if (looking-at diff-hunk-header-re)
- end
- (or (ignore-errors (diff-hunk-next) (point))
- max))))))))
+ (catch 'malformed
+ (let* ((beg (or (ignore-errors (diff-beginning-of-hunk))
+ (ignore-errors (diff-hunk-next) (point))
+ max)))
+ (while (< beg max)
+ (goto-char beg)
+ (unless (looking-at diff-hunk-header-re)
+ (throw 'malformed nil))
+ (let ((end
+ (save-excursion (diff-end-of-hunk) (point))))
+ (unless (< beg end)
+ (throw 'malformed nil))
+ (funcall fun beg end)
+ (goto-char end)
+ (setq beg (if (looking-at diff-hunk-header-re)
+ end
+ (or (ignore-errors (diff-hunk-next) (point))
+ max)))))))))
(defun diff--font-lock-refined (max)
"Apply hunk refinement from font-lock."
diff --git a/lisp/vc/pcvs-info.el b/lisp/vc/pcvs-info.el
index 11d14f9576..b48a4a1cbf 100644
--- a/lisp/vc/pcvs-info.el
+++ b/lisp/vc/pcvs-info.el
@@ -130,9 +130,11 @@ to confuse some users sometimes."
(defvar cvs-bakprefix ".#"
"The prefix that CVS prepends to files when rcsmerge'ing.")
-(easy-mmode-defmap cvs-status-map
- '(([(mouse-2)] . cvs-mode-toggle-mark))
- "Local keymap for text properties of status.")
+(declare-function cvs-mode-toggle-mark "pcvs" (e))
+
+(defvar-keymap cvs-status-map
+ :doc "Local keymap for text properties of status."
+ "<mouse-2>" #'cvs-mode-toggle-mark)
;; Constructor:
diff --git a/lisp/vc/smerge-mode.el b/lisp/vc/smerge-mode.el
index 6a4f6542b5..003b26eca4 100644
--- a/lisp/vc/smerge-mode.el
+++ b/lisp/vc/smerge-mode.el
@@ -925,8 +925,11 @@ Its behavior has mainly two restrictions:
to `smerge-refine-regions'.
This only matters if `smerge-refine-weight-hack' is nil.")
-(defvar smerge-refine-ignore-whitespace t
- "If non-nil, `smerge-refine' should try to ignore change in whitespace.")
+(defcustom smerge-refine-ignore-whitespace t
+ "If non-nil, `smerge-refine' should try to ignore change in whitespace."
+ :type 'boolean
+ :version "29.1"
+ :group 'diff)
(defvar smerge-refine-weight-hack t
"If non-nil, pass to diff as many lines as there are chars in the region.
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index 2e6690c537..ad39dc604a 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -1695,8 +1695,8 @@ This command shares argument histories with \\[rgrep] and
\\[grep]."
(vc-setup-buffer "*vc-git-stash*")
(vc-git-command "*vc-git-stash*" 'async nil "stash" "show" "-p" name)
(set-buffer "*vc-git-stash*")
- (diff-mode)
(setq buffer-read-only t)
+ (diff-mode)
(pop-to-buffer (current-buffer)))
(defun vc-git-stash-apply (name)
diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el
index e71796b745..9c49e94781 100644
--- a/lisp/vc/vc-hooks.el
+++ b/lisp/vc/vc-hooks.el
@@ -143,6 +143,7 @@ visited and a warning displayed."
(const :tag "Visit link and warn" nil)
(const :tag "Follow link" t))
:group 'vc)
+(put 'vc-follow-symlinks 'safe-local-variable #'null)
(defcustom vc-display-status t
"If non-nil, display revision number and lock status in mode line.
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index 6041c79efc..54457a2143 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -1004,13 +1004,14 @@ responsible for the given file."
;;
;; First try: find a responsible backend. If this is for registration,
;; it must be a backend under which FILE is not yet registered.
- (let ((dirs (delq nil
- (mapcar
- (lambda (backend)
- (when-let ((dir (vc-call-backend
- backend 'responsible-p file)))
- (cons backend dir)))
- vc-handled-backends))))
+ (let* ((file (expand-file-name file))
+ (dirs (delq nil
+ (mapcar
+ (lambda (backend)
+ (when-let ((dir (vc-call-backend
+ backend 'responsible-p file)))
+ (cons backend dir)))
+ vc-handled-backends))))
;; Just a single response (or none); use it.
(if (< (length dirs) 2)
(caar dirs)
@@ -1730,12 +1731,22 @@ to override the value of `vc-diff-switches' and
`diff-switches'."
;; any switches in diff-switches.
(when (listp switches) switches))))
+(defun vc-shrink-buffer-window (&optional buffer)
+ "Call `shrink-window-if-larger-than-buffer' only when BUFFER is visible.
+BUFFER defaults to the current buffer."
+ (let ((window (get-buffer-window buffer t)))
+ (when window
+ (shrink-window-if-larger-than-buffer window))))
+
+(defvar vc-diff-finish-functions '(vc-shrink-buffer-window)
+ "Functions run at the end of the diff command.
+Each function runs in the diff output buffer without args.")
+
(defun vc-diff-finish (buffer messages)
;; The empty sync output case has already been handled, so the only
;; possibility of an empty output is for an async process.
(when (buffer-live-p buffer)
- (let ((window (get-buffer-window buffer t))
- (emptyp (zerop (buffer-size buffer))))
+ (let ((emptyp (zerop (buffer-size buffer))))
(with-current-buffer buffer
(and messages emptyp
(let ((inhibit-read-only t))
@@ -1744,8 +1755,7 @@ to override the value of `vc-diff-switches' and
`diff-switches'."
(diff-setup-whitespace)
(diff-setup-buffer-type)
(goto-char (point-min))
- (when window
- (shrink-window-if-larger-than-buffer window)))
+ (run-hooks 'vc-diff-finish-functions))
(when (and messages (not emptyp))
(message "%sdone" (car messages))))))
@@ -1808,16 +1818,16 @@ Return t if the buffer had changes, nil otherwise."
(setq files (nreverse filtered))))
(vc-call-backend (car vc-fileset) 'diff files rev1 rev2 buffer async)
(set-buffer buffer)
+ ;; Make the *vc-diff* buffer read only, the diff-mode key
+ ;; bindings are nicer for read only buffers. pcl-cvs does the
+ ;; same thing.
+ (setq buffer-read-only t)
(diff-mode)
(setq-local diff-vc-backend (car vc-fileset))
(setq-local diff-vc-revisions (list rev1 rev2))
(setq-local revert-buffer-function
(lambda (_ignore-auto _noconfirm)
(vc-diff-internal async vc-fileset rev1 rev2 verbose)))
- ;; Make the *vc-diff* buffer read only, the diff-mode key
- ;; bindings are nicer for read only buffers. pcl-cvs does the
- ;; same thing.
- (setq buffer-read-only t)
(if (and (zerop (buffer-size))
(not (get-buffer-process (current-buffer))))
;; Treat this case specially so as not to pop the buffer.
@@ -2498,6 +2508,10 @@ earlier revisions. Show up to LIMIT entries (non-nil
means unlimited)."
(put 'vc-log-view-type 'permanent-local t)
(defvar vc-sentinel-movepoint)
+(defvar vc-log-finish-functions '(vc-shrink-buffer-window)
+ "Functions run at the end of the log command.
+Each function runs in the log output buffer without args.")
+
(defun vc-log-internal-common (backend
buffer-name
files
@@ -2529,11 +2543,11 @@ earlier revisions. Show up to LIMIT entries (non-nil
means unlimited)."
(vc-run-delayed
(let ((inhibit-read-only t))
(funcall setup-buttons-func backend files retval)
- (shrink-window-if-larger-than-buffer)
(when goto-location-func
(funcall goto-location-func backend)
(setq vc-sentinel-movepoint (point)))
- (set-buffer-modified-p nil)))))
+ (set-buffer-modified-p nil)
+ (run-hooks 'vc-log-finish-functions)))))
(defun vc-incoming-outgoing-internal (backend remote-location buffer-name type)
(vc-log-internal-common
diff --git a/lisp/wdired.el b/lisp/wdired.el
index 1c02562721..ab3b91bbe5 100644
--- a/lisp/wdired.el
+++ b/lisp/wdired.el
@@ -169,6 +169,7 @@ nonexistent directory will fail."
"C-p" #'wdired-previous-line
"<down>" #'wdired-next-line
"C-n" #'wdired-next-line
+ "C-(" #'dired-hide-details-mode
"<remap> <upcase-word>" #'wdired-upcase-word
"<remap> <capitalize-word>" #'wdired-capitalize-word
"<remap> <downcase-word>" #'wdired-downcase-word
diff --git a/lisp/window.el b/lisp/window.el
index 3f61d53128..582600e1c6 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -7474,14 +7474,6 @@ ALIST. See `display-buffer' for details."
:version "24.1"
:group 'windows)
-(defcustom display-comint-buffer-action 'display-buffer-same-window
- "The action to display a comint buffer."
- :type display-buffer--action-function-custom-type
- :risky t
- :version "29.1"
- :group 'windows
- :group 'comint)
-
(defconst display-buffer-fallback-action
'((display-buffer--maybe-same-window ;FIXME: why isn't this redundant?
display-buffer-reuse-window
@@ -8575,6 +8567,14 @@ currently selected window; otherwise it will be
displayed in
another window."
(pop-to-buffer buffer display-buffer--same-window-action norecord))
+(defcustom display-comint-buffer-action display-buffer--same-window-action
+ "`display-buffer' action for displaying comint buffers."
+ :type display-buffer--action-custom-type
+ :risky t
+ :version "29.1"
+ :group 'windows
+ :group 'comint)
+
(defun read-buffer-to-switch (prompt)
"Read the name of a buffer to switch to, prompting with PROMPT.
Return the name of the buffer as a string.
diff --git a/lisp/xwidget.el b/lisp/xwidget.el
index 36197c298c..3a77612c2a 100644
--- a/lisp/xwidget.el
+++ b/lisp/xwidget.el
@@ -987,6 +987,7 @@ You can retrieve the value with `xwidget-get'."
(define-key xwidget-webkit-edit-mode-map [M-up]
'xwidget-webkit-pass-command-event)
(define-key xwidget-webkit-edit-mode-map [M-down]
'xwidget-webkit-pass-command-event)
(define-key xwidget-webkit-edit-mode-map [M-return]
'xwidget-webkit-pass-command-event)
+(define-key xwidget-webkit-edit-mode-map [C-backspace]
'xwidget-webkit-pass-command-event)
(define-minor-mode xwidget-webkit-edit-mode
"Minor mode for editing the content of WebKit buffers.
diff --git a/src/.gdbinit b/src/.gdbinit
index 132f414af9..9ec536a96d 100644
--- a/src/.gdbinit
+++ b/src/.gdbinit
@@ -751,6 +751,15 @@ Print $ as a overlay pointer.
This command assumes that $ is an Emacs Lisp overlay value.
end
+define xsymwithpos
+ xgetptr $
+ print (struct Lisp_Symbol_With_Pos *) $ptr
+end
+document xsymwithpos
+Print $ as a symbol with position.
+This command assumes that $ is an Emacs Lisp symbol with position value.
+end
+
define xsymbol
set $sym = $
xgetsym $sym
@@ -1016,6 +1025,9 @@ define xpr
if $vec == PVEC_OVERLAY
xoverlay
end
+ if $vec == PVEC_SYMBOL_WITH_POS
+ xsymwithpos
+ end
if $vec == PVEC_PROCESS
xprocess
end
diff --git a/src/Makefile.in b/src/Makefile.in
index 83210b1317..706beb453b 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -379,7 +379,7 @@ pdmp :=
endif
# Flags that might be in WARN_CFLAGS but are not valid for Objective C.
-NON_OBJC_CFLAGS = -Wignored-attributes -Wignored-qualifiers -Wopenmp-simd
+NON_OBJC_CFLAGS = -Wignored-attributes -Wignored-qualifiers -Wopenmp-simd
-Wnested-externs
# Ditto, but for C++.
NON_CXX_CFLAGS = -Wmissing-prototypes -Wnested-externs -Wold-style-definition \
-Wstrict-prototypes -Wno-override-init
@@ -616,7 +616,7 @@ endif
## icon set.
ifeq ($(HAVE_BE_APP),yes)
-Emacs: emacs$(EXEEXT)
+Emacs: emacs$(EXEEXT) $(libsrc)/be-resources
$(AM_V_GEN) cp -f emacs$(EXEEXT) $@
$(AM_V_at) $(libsrc)/be-resources \
$(etc)/images/icons/hicolor/32x32/apps/emacs.png $@
@@ -914,6 +914,9 @@ $(bootstrap_pdmp): bootstrap-emacs$(EXEEXT)
$(RUN_TEMACS) --batch $(BUILD_DETAILS) -l loadup --temacs=pbootstrap \
--bin-dest $(BIN_DESTDIR) --eln-dest $(ELN_DESTDIR)
@: Compile some files earlier to speed up further compilation.
+ @: First, byte compile these files, ....
+ ANCIENT=yes $(MAKE) -C ../lisp compile-first EMACS="$(bootstrap_exe)"
+ @: .... then use their .elcs in native compiling these and other files.
$(MAKE) -C ../lisp compile-first EMACS="$(bootstrap_exe)"
endif
diff --git a/src/alloc.c b/src/alloc.c
index 7582a42601..e01ea36e64 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -592,7 +592,7 @@ pointer_align (void *ptr, int alignment)
static ATTRIBUTE_NO_SANITIZE_UNDEFINED void *
XPNTR (Lisp_Object a)
{
- return (SYMBOLP (a)
+ return (BARE_SYMBOL_P (a)
? (char *) lispsym + (XLI (a) - LISP_WORD_TAG (Lisp_Symbol))
: (char *) XLP (a) - (XLI (a) & ~VALMASK));
}
@@ -1853,7 +1853,8 @@ allocate_string (void)
static void
allocate_string_data (struct Lisp_String *s,
- EMACS_INT nchars, EMACS_INT nbytes, bool clearit)
+ EMACS_INT nchars, EMACS_INT nbytes, bool clearit,
+ bool immovable)
{
sdata *data;
struct sblock *b;
@@ -1867,7 +1868,7 @@ allocate_string_data (struct Lisp_String *s,
MALLOC_BLOCK_INPUT;
- if (nbytes > LARGE_STRING_BYTES)
+ if (nbytes > LARGE_STRING_BYTES || immovable)
{
size_t size = FLEXSIZEOF (struct sblock, data, needed);
@@ -1967,7 +1968,7 @@ resize_string_data (Lisp_Object string, ptrdiff_t
cidx_byte,
}
else
{
- allocate_string_data (XSTRING (string), nchars, new_nbytes, false);
+ allocate_string_data (XSTRING (string), nchars, new_nbytes, false,
false);
unsigned char *new_data = SDATA (string);
new_charaddr = new_data + cidx_byte;
memcpy (new_charaddr + new_clen, data + cidx_byte + clen,
@@ -2483,7 +2484,7 @@ make_clear_multibyte_string (EMACS_INT nchars, EMACS_INT
nbytes, bool clearit)
s = allocate_string ();
s->u.s.intervals = NULL;
- allocate_string_data (s, nchars, nbytes, clearit);
+ allocate_string_data (s, nchars, nbytes, clearit, false);
XSETSTRING (string, s);
string_chars_consed += nbytes;
return string;
@@ -2513,6 +2514,29 @@ make_formatted_string (char *buf, const char *format,
...)
return make_string (buf, length);
}
+/* Pin a unibyte string in place so that it won't move during GC. */
+void
+pin_string (Lisp_Object string)
+{
+ eassert (STRINGP (string) && !STRING_MULTIBYTE (string));
+ struct Lisp_String *s = XSTRING (string);
+ ptrdiff_t size = STRING_BYTES (s);
+ unsigned char *data = s->u.s.data;
+
+ if (!(size > LARGE_STRING_BYTES
+ || PURE_P (data) || pdumper_object_p (data)
+ || s->u.s.size_byte == -3))
+ {
+ eassert (s->u.s.size_byte == -1);
+ sdata *old_sdata = SDATA_OF_STRING (s);
+ allocate_string_data (s, size, size, false, true);
+ memcpy (s->u.s.data, data, size);
+ old_sdata->string = NULL;
+ SDATA_NBYTES (old_sdata) = size;
+ }
+ s->u.s.size_byte = -3;
+}
+
/***********************************************************************
Float Allocation
@@ -3515,6 +3539,8 @@ usage: (make-byte-code ARGLIST BYTE-CODE CONSTANTS DEPTH
&optional DOCSTRING INT
&& FIXNATP (args[COMPILED_STACK_DEPTH])))
error ("Invalid byte-code object");
+ pin_string (args[COMPILED_BYTECODE]); // Bytecode must be immovable.
+
/* We used to purecopy everything here, if purify-flag was set. This worked
OK for Emacs-23, but with Emacs-24's lexical binding code, it can be
dangerous, since make-byte-code is used during execution to build
@@ -3599,13 +3625,13 @@ static struct Lisp_Symbol *symbol_free_list;
static void
set_symbol_name (Lisp_Object sym, Lisp_Object name)
{
- XSYMBOL (sym)->u.s.name = name;
+ XBARE_SYMBOL (sym)->u.s.name = name;
}
void
init_symbol (Lisp_Object val, Lisp_Object name)
{
- struct Lisp_Symbol *p = XSYMBOL (val);
+ struct Lisp_Symbol *p = XBARE_SYMBOL (val);
set_symbol_name (val, name);
set_symbol_plist (val, Qnil);
p->u.s.redirect = SYMBOL_PLAINVAL;
@@ -3668,6 +3694,21 @@ make_misc_ptr (void *a)
return make_lisp_ptr (p, Lisp_Vectorlike);
}
+/* Return a new symbol with position with the specified SYMBOL and POSITION. */
+Lisp_Object
+build_symbol_with_pos (Lisp_Object symbol, Lisp_Object position)
+{
+ Lisp_Object val;
+ struct Lisp_Symbol_With_Pos *p
+ = (struct Lisp_Symbol_With_Pos *) allocate_vector (2);
+ XSETVECTOR (val, p);
+ XSETPVECTYPESIZE (XVECTOR (val), PVEC_SYMBOL_WITH_POS, 2, 0);
+ p->sym = symbol;
+ p->pos = position;
+
+ return val;
+}
+
/* Return a new overlay with specified START, END and PLIST. */
Lisp_Object
@@ -5212,7 +5253,7 @@ valid_lisp_object_p (Lisp_Object obj)
if (PURE_P (p))
return 1;
- if (SYMBOLP (obj) && c_symbol_p (p))
+ if (BARE_SYMBOL_P (obj) && c_symbol_p (p))
return ((char *) p - (char *) lispsym) % sizeof lispsym[0] == 0;
if (p == &buffer_defaults || p == &buffer_local_symbols)
@@ -5638,14 +5679,18 @@ purecopy (Lisp_Object obj)
memcpy (vec, objp, nbytes);
for (i = 0; i < size; i++)
vec->contents[i] = purecopy (vec->contents[i]);
+ // Byte code strings must be pinned.
+ if (COMPILEDP (obj) && size >= 2 && STRINGP (vec->contents[1])
+ && !STRING_MULTIBYTE (vec->contents[1]))
+ pin_string (vec->contents[1]);
XSETVECTOR (obj, vec);
}
- else if (SYMBOLP (obj))
+ else if (BARE_SYMBOL_P (obj))
{
- if (!XSYMBOL (obj)->u.s.pinned && !c_symbol_p (XSYMBOL (obj)))
+ if (!XBARE_SYMBOL (obj)->u.s.pinned && !c_symbol_p (XBARE_SYMBOL (obj)))
{ /* We can't purify them, but they appear in many pure objects.
Mark them as `pinned' so we know to mark them at every GC cycle.
*/
- XSYMBOL (obj)->u.s.pinned = true;
+ XBARE_SYMBOL (obj)->u.s.pinned = true;
symbol_block_pinned = symbol_block;
}
/* Don't hash-cons it. */
@@ -6273,7 +6318,10 @@ For further details, see Info node `(elisp)Garbage
Collection'. */)
if (garbage_collection_inhibited)
return Qnil;
+ ptrdiff_t count = SPECPDL_INDEX ();
+ specbind (Qsymbols_with_pos_enabled, Qnil);
garbage_collect ();
+ unbind_to (count, Qnil);
struct gcstat gcst = gcstat;
Lisp_Object total[] = {
@@ -6412,7 +6460,7 @@ mark_char_table (struct Lisp_Vector *ptr, enum pvec_type
pvectype)
Lisp_Object val = ptr->contents[i];
if (FIXNUMP (val) ||
- (SYMBOLP (val) && symbol_marked_p (XSYMBOL (val))))
+ (BARE_SYMBOL_P (val) && symbol_marked_p (XBARE_SYMBOL (val))))
continue;
if (SUB_CHAR_TABLE_P (val))
{
@@ -6816,7 +6864,7 @@ mark_object (Lisp_Object arg)
case Lisp_Symbol:
{
- struct Lisp_Symbol *ptr = XSYMBOL (obj);
+ struct Lisp_Symbol *ptr = XBARE_SYMBOL (obj);
nextsym:
if (symbol_marked_p (ptr))
break;
@@ -6937,7 +6985,7 @@ survives_gc_p (Lisp_Object obj)
break;
case Lisp_Symbol:
- survives_p = symbol_marked_p (XSYMBOL (obj));
+ survives_p = symbol_marked_p (XBARE_SYMBOL (obj));
break;
case Lisp_String:
@@ -7354,7 +7402,7 @@ arenas. */)
static bool
symbol_uses_obj (Lisp_Object symbol, Lisp_Object obj)
{
- struct Lisp_Symbol *sym = XSYMBOL (symbol);
+ struct Lisp_Symbol *sym = XBARE_SYMBOL (symbol);
Lisp_Object val = find_symbol_value (symbol);
return (EQ (val, obj)
|| EQ (sym->u.s.function, obj)
diff --git a/src/bidi.c b/src/bidi.c
index c5d524f049..d6ed607f14 100644
--- a/src/bidi.c
+++ b/src/bidi.c
@@ -3569,7 +3569,9 @@ bidi_move_to_visually_next (struct bidi_it *bidi_it)
ptrdiff_t
bidi_find_first_overridden (struct bidi_it *bidi_it)
{
- ptrdiff_t found_pos = ZV;
+ ptrdiff_t eob
+ = STRINGP (bidi_it->string.lstring) ? bidi_it->string.schars : ZV;
+ ptrdiff_t found_pos = eob;
/* Maximum bidi levels we allow for L2R and R2L characters. Note
that these are levels after resolving explicit embeddings,
overrides, and isolates, i.e. before resolving implicit levels. */
@@ -3607,8 +3609,8 @@ bidi_find_first_overridden (struct bidi_it *bidi_it)
|| ((category == WEAK || bidi_it->orig_type == NEUTRAL_ON)
&& level > max_weak))
found_pos = bidi_it->charpos;
- } while (found_pos == ZV
- && bidi_it->charpos < ZV
+ } while (found_pos == eob
+ && bidi_it->charpos < eob
&& bidi_it->ch != BIDI_EOB
&& bidi_it->ch != '\n');
diff --git a/src/buffer.c b/src/buffer.c
index 10ac91915c..0bdad086dd 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -912,6 +912,10 @@ does not run the hooks `kill-buffer-hook',
Fset (intern ("buffer-save-without-query"), Qnil);
Fset (intern ("buffer-file-number"), Qnil);
Fset (intern ("buffer-stale-function"), Qnil);
+ /* Cloned buffers need extra setup, to do things such as deep
+ variable copies for list variables that might be mangled due
+ to destructive operations in the indirect buffer. */
+ run_hook (Qclone_indirect_buffer_hook);
set_buffer_internal_1 (old_b);
}
@@ -1247,7 +1251,7 @@ buffer_local_value (Lisp_Object variable, Lisp_Object
buffer)
{ /* Look in local_var_alist. */
struct Lisp_Buffer_Local_Value *blv = SYMBOL_BLV (sym);
XSETSYMBOL (variable, sym); /* Update In case of aliasing. */
- result = Fassoc (variable, BVAR (buf, local_var_alist), Qnil);
+ result = assq_no_quit (variable, BVAR (buf, local_var_alist));
if (!NILP (result))
{
if (blv->fwd.fwdptr)
@@ -5569,6 +5573,8 @@ syms_of_buffer (void)
Fput (Qprotected_field, Qerror_message,
build_pure_c_string ("Attempt to modify a protected field"));
+ DEFSYM (Qclone_indirect_buffer_hook, "clone-indirect-buffer-hook");
+
DEFVAR_PER_BUFFER ("tab-line-format",
&BVAR (current_buffer, tab_line_format),
Qnil,
@@ -6392,6 +6398,13 @@ If `delete-auto-save-files' is nil, any autosave
deletion is inhibited. */);
This is the default. If nil, auto-save file deletion is inhibited. */);
delete_auto_save_files = 1;
+ DEFVAR_LISP ("clone-indirect-buffer-hook", Vclone_indirect_buffer_hook,
+ doc: /* Normal hook to run in the new buffer at the end of
`make-indirect-buffer'.
+
+Since `clone-indirect-buffer' calls `make-indirect-buffer', this hook
+will run for `clone-indirect-buffer' calls as well. */);
+ Vclone_indirect_buffer_hook = Qnil;
+
defsubr (&Sbuffer_live_p);
defsubr (&Sbuffer_list);
defsubr (&Sget_buffer);
diff --git a/src/bytecode.c b/src/bytecode.c
index 472992be18..da1855d6ba 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -26,6 +26,7 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#include "keyboard.h"
#include "syntax.h"
#include "window.h"
+#include "puresize.h"
/* Work around GCC bug 54561. */
#if GNUC_PREREQ (4, 3, 0)
@@ -226,7 +227,7 @@ DEFINE (Bcondition_case, 0217) /* Obsolete since
Emacs-25. */ \
DEFINE (Btemp_output_buffer_setup, 0220) /* Obsolete since Emacs-24.1. */ \
DEFINE (Btemp_output_buffer_show, 0221) /* Obsolete since Emacs-24.1. */ \
\
-DEFINE (Bunbind_all, 0222) /* Obsolete. Never used. */ \
+/* 0222 was Bunbind_all, never used. */ \
\
DEFINE (Bset_marker, 0223) \
DEFINE (Bmatch_beginning, 0224)
\
@@ -330,8 +331,9 @@ If the third argument is incorrect, Emacs may crash. */)
the original unibyte form. */
bytestr = Fstring_as_unibyte (bytestr);
}
+ pin_string (bytestr); // Bytecode must be immovable.
- return exec_byte_code (bytestr, vector, maxdepth, Qnil, 0, NULL);
+ return exec_byte_code (bytestr, vector, maxdepth, 0, 0, NULL);
}
static void
@@ -342,61 +344,66 @@ bcall0 (Lisp_Object f)
/* Execute the byte-code in BYTESTR. VECTOR is the constant vector, and
MAXDEPTH is the maximum stack depth used (if MAXDEPTH is incorrect,
- emacs may crash!). If ARGS_TEMPLATE is non-nil, it should be a lisp
- argument list (including &rest, &optional, etc.), and ARGS, of size
- NARGS, should be a vector of the actual arguments. The arguments in
- ARGS are pushed on the stack according to ARGS_TEMPLATE before
- executing BYTESTR. */
+ emacs may crash!). ARGS_TEMPLATE is the function arity encoded as an
+ integer, and ARGS, of size NARGS, should be a vector of the actual
+ arguments. The arguments in ARGS are pushed on the stack according
+ to ARGS_TEMPLATE before executing BYTESTR. */
Lisp_Object
exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth,
- Lisp_Object args_template, ptrdiff_t nargs, Lisp_Object *args)
+ ptrdiff_t args_template, ptrdiff_t nargs, Lisp_Object *args)
{
#ifdef BYTE_CODE_METER
int volatile this_op = 0;
#endif
eassert (!STRING_MULTIBYTE (bytestr));
+ eassert (string_immovable_p (bytestr));
ptrdiff_t const_length = ASIZE (vector);
ptrdiff_t bytestr_length = SCHARS (bytestr);
Lisp_Object *vectorp = XVECTOR (vector)->contents;
unsigned char quitcounter = 1;
- EMACS_INT stack_items = XFIXNAT (maxdepth) + 1;
+ /* Allocate two more slots than required, because... */
+ EMACS_INT stack_items = XFIXNAT (maxdepth) + 2;
USE_SAFE_ALLOCA;
void *alloc;
- SAFE_ALLOCA_LISP_EXTRA (alloc, stack_items, bytestr_length);
+ SAFE_ALLOCA_LISP (alloc, stack_items);
Lisp_Object *stack_base = alloc;
- Lisp_Object *top = stack_base;
- *top = vector; /* Ensure VECTOR survives GC (Bug#33014). */
- Lisp_Object *stack_lim = stack_base + stack_items;
- unsigned char const *bytestr_data = memcpy (stack_lim,
- SDATA (bytestr), bytestr_length);
+ /* ... we plonk BYTESTR and VECTOR there to ensure that they survive
+ GC (bug#33014), since these variables aren't used directly beyond
+ the interpreter prologue and wouldn't be found in the stack frame
+ otherwise. */
+ stack_base[0] = bytestr;
+ stack_base[1] = vector;
+ Lisp_Object *top = stack_base + 1;
+ Lisp_Object *stack_lim = top + stack_items;
+ unsigned char const *bytestr_data = SDATA (bytestr);
unsigned char const *pc = bytestr_data;
+#if BYTE_CODE_SAFE || !defined NDEBUG
ptrdiff_t count = SPECPDL_INDEX ();
+#endif
- if (!NILP (args_template))
- {
- eassert (FIXNUMP (args_template));
- ptrdiff_t at = XFIXNUM (args_template);
- bool rest = (at & 128) != 0;
- int mandatory = at & 127;
- ptrdiff_t nonrest = at >> 8;
- ptrdiff_t maxargs = rest ? PTRDIFF_MAX : nonrest;
- if (! (mandatory <= nargs && nargs <= maxargs))
- Fsignal (Qwrong_number_of_arguments,
- list2 (Fcons (make_fixnum (mandatory), make_fixnum (nonrest)),
- make_fixnum (nargs)));
- ptrdiff_t pushedargs = min (nonrest, nargs);
- for (ptrdiff_t i = 0; i < pushedargs; i++, args++)
- PUSH (*args);
- if (nonrest < nargs)
- PUSH (Flist (nargs - nonrest, args));
- else
- for (ptrdiff_t i = nargs - rest; i < nonrest; i++)
- PUSH (Qnil);
- }
+ /* ARGS_TEMPLATE is composed of bit fields:
+ bits 0..6 minimum number of arguments
+ bits 7 1 iff &rest argument present
+ bits 8..14 maximum number of arguments */
+ bool rest = (args_template & 128) != 0;
+ int mandatory = args_template & 127;
+ ptrdiff_t nonrest = args_template >> 8;
+ if (! (mandatory <= nargs && (rest || nargs <= nonrest)))
+ Fsignal (Qwrong_number_of_arguments,
+ list2 (Fcons (make_fixnum (mandatory), make_fixnum (nonrest)),
+ make_fixnum (nargs)));
+ ptrdiff_t pushedargs = min (nonrest, nargs);
+ for (ptrdiff_t i = 0; i < pushedargs; i++, args++)
+ PUSH (*args);
+ if (nonrest < nargs)
+ PUSH (Flist (nargs - nonrest, args));
+ else
+ for (ptrdiff_t i = nargs - rest; i < nonrest; i++)
+ PUSH (Qnil);
while (true)
{
@@ -629,7 +636,53 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector,
Lisp_Object maxdepth,
}
}
#endif
- TOP = Ffuncall (op + 1, &TOP);
+ maybe_quit ();
+
+ if (++lisp_eval_depth > max_lisp_eval_depth)
+ {
+ if (max_lisp_eval_depth < 100)
+ max_lisp_eval_depth = 100;
+ if (lisp_eval_depth > max_lisp_eval_depth)
+ error ("Lisp nesting exceeds `max-lisp-eval-depth'");
+ }
+
+ ptrdiff_t numargs = op;
+ Lisp_Object fun = TOP;
+ Lisp_Object *args = &TOP + 1;
+
+ ptrdiff_t count1 = record_in_backtrace (fun, args, numargs);
+ maybe_gc ();
+ if (debug_on_next_call)
+ do_debug_on_call (Qlambda, count1);
+
+ Lisp_Object original_fun = fun;
+ if (SYMBOLP (fun))
+ fun = XSYMBOL (fun)->u.s.function;
+ Lisp_Object template;
+ Lisp_Object bytecode;
+ Lisp_Object val;
+ if (COMPILEDP (fun)
+ // Lexical binding only.
+ && (template = AREF (fun, COMPILED_ARGLIST),
+ FIXNUMP (template))
+ // No autoloads.
+ && (bytecode = AREF (fun, COMPILED_BYTECODE),
+ !CONSP (bytecode)))
+ val = exec_byte_code (bytecode,
+ AREF (fun, COMPILED_CONSTANTS),
+ AREF (fun, COMPILED_STACK_DEPTH),
+ XFIXNUM (template), numargs, args);
+ else if (SUBRP (fun) && !SUBR_NATIVE_COMPILED_DYNP (fun))
+ val = funcall_subr (XSUBR (fun), numargs, args);
+ else
+ val = funcall_general (original_fun, numargs, args);
+
+ lisp_eval_depth--;
+ if (backtrace_debug_on_exit (specpdl + count1))
+ val = call_debugger (list2 (Qexit, val));
+ specpdl_ptr--;
+
+ TOP = val;
NEXT;
}
@@ -652,12 +705,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector,
Lisp_Object maxdepth,
unbind_to (SPECPDL_INDEX () - op, Qnil);
NEXT;
- CASE (Bunbind_all): /* Obsolete. Never used. */
- /* To unbind back to the beginning of this frame. Not used yet,
- but will be needed for tail-recursion elimination. */
- unbind_to (count, Qnil);
- NEXT;
-
CASE (Bgoto):
op = FETCH2;
op_branch:
@@ -903,15 +950,39 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector,
Lisp_Object maxdepth,
CASE (Baref):
{
- Lisp_Object v1 = POP;
- TOP = Faref (TOP, v1);
+ Lisp_Object idxval = POP;
+ Lisp_Object arrayval = TOP;
+ ptrdiff_t size;
+ ptrdiff_t idx;
+ if (((VECTORP (arrayval) && (size = ASIZE (arrayval), true))
+ || (RECORDP (arrayval) && (size = PVSIZE (arrayval), true)))
+ && FIXNUMP (idxval)
+ && (idx = XFIXNUM (idxval),
+ idx >= 0 && idx < size))
+ TOP = AREF (arrayval, idx);
+ else
+ TOP = Faref (arrayval, idxval);
NEXT;
}
CASE (Baset):
{
- Lisp_Object v2 = POP, v1 = POP;
- TOP = Faset (TOP, v1, v2);
+ Lisp_Object newelt = POP;
+ Lisp_Object idxval = POP;
+ Lisp_Object arrayval = TOP;
+ ptrdiff_t size;
+ ptrdiff_t idx;
+ if (((VECTORP (arrayval) && (size = ASIZE (arrayval), true))
+ || (RECORDP (arrayval) && (size = PVSIZE (arrayval), true)))
+ && FIXNUMP (idxval)
+ && (idx = XFIXNUM (idxval),
+ idx >= 0 && idx < size))
+ {
+ ASET (arrayval, idx, newelt);
+ TOP = newelt;
+ }
+ else
+ TOP = Faset (arrayval, idxval, newelt);
NEXT;
}
@@ -986,43 +1057,72 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector,
Lisp_Object maxdepth,
CASE (Beqlsign):
{
- Lisp_Object v1 = POP;
- TOP = arithcompare (TOP, v1, ARITH_EQUAL);
+ Lisp_Object v2 = POP;
+ Lisp_Object v1 = TOP;
+ if (FIXNUMP (v1) && FIXNUMP (v2))
+ TOP = EQ (v1, v2) ? Qt : Qnil;
+ else
+ TOP = arithcompare (v1, v2, ARITH_EQUAL);
NEXT;
}
CASE (Bgtr):
{
- Lisp_Object v1 = POP;
- TOP = arithcompare (TOP, v1, ARITH_GRTR);
+ Lisp_Object v2 = POP;
+ Lisp_Object v1 = TOP;
+ if (FIXNUMP (v1) && FIXNUMP (v2))
+ TOP = XFIXNUM (v1) > XFIXNUM (v2) ? Qt : Qnil;
+ else
+ TOP = arithcompare (v1, v2, ARITH_GRTR);
NEXT;
}
CASE (Blss):
{
- Lisp_Object v1 = POP;
- TOP = arithcompare (TOP, v1, ARITH_LESS);
+ Lisp_Object v2 = POP;
+ Lisp_Object v1 = TOP;
+ if (FIXNUMP (v1) && FIXNUMP (v2))
+ TOP = XFIXNUM (v1) < XFIXNUM (v2) ? Qt : Qnil;
+ else
+ TOP = arithcompare (v1, v2, ARITH_LESS);
NEXT;
}
CASE (Bleq):
{
- Lisp_Object v1 = POP;
- TOP = arithcompare (TOP, v1, ARITH_LESS_OR_EQUAL);
+ Lisp_Object v2 = POP;
+ Lisp_Object v1 = TOP;
+ if (FIXNUMP (v1) && FIXNUMP (v2))
+ TOP = XFIXNUM (v1) <= XFIXNUM (v2) ? Qt : Qnil;
+ else
+ TOP = arithcompare (v1, v2, ARITH_LESS_OR_EQUAL);
NEXT;
}
CASE (Bgeq):
{
- Lisp_Object v1 = POP;
- TOP = arithcompare (TOP, v1, ARITH_GRTR_OR_EQUAL);
+ Lisp_Object v2 = POP;
+ Lisp_Object v1 = TOP;
+ if (FIXNUMP (v1) && FIXNUMP (v2))
+ TOP = XFIXNUM (v1) >= XFIXNUM (v2) ? Qt : Qnil;
+ else
+ TOP = arithcompare (v1, v2, ARITH_GRTR_OR_EQUAL);
NEXT;
}
CASE (Bdiff):
- DISCARD (1);
- TOP = Fminus (2, &TOP);
- NEXT;
+ {
+ Lisp_Object v2 = POP;
+ Lisp_Object v1 = TOP;
+ EMACS_INT res;
+ if (FIXNUMP (v1) && FIXNUMP (v2)
+ && (res = XFIXNUM (v1) - XFIXNUM (v2),
+ !FIXNUM_OVERFLOW_P (res)))
+ TOP = make_fixnum (res);
+ else
+ TOP = Fminus (2, &TOP);
+ NEXT;
+ }
CASE (Bnegate):
TOP = (FIXNUMP (TOP) && XFIXNUM (TOP) != MOST_NEGATIVE_FIXNUM
@@ -1031,34 +1131,83 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object
vector, Lisp_Object maxdepth,
NEXT;
CASE (Bplus):
- DISCARD (1);
- TOP = Fplus (2, &TOP);
- NEXT;
+ {
+ Lisp_Object v2 = POP;
+ Lisp_Object v1 = TOP;
+ EMACS_INT res;
+ if (FIXNUMP (v1) && FIXNUMP (v2)
+ && (res = XFIXNUM (v1) + XFIXNUM (v2),
+ !FIXNUM_OVERFLOW_P (res)))
+ TOP = make_fixnum (res);
+ else
+ TOP = Fplus (2, &TOP);
+ NEXT;
+ }
CASE (Bmax):
- DISCARD (1);
- TOP = Fmax (2, &TOP);
- NEXT;
+ {
+ Lisp_Object v2 = POP;
+ Lisp_Object v1 = TOP;
+ if (FIXNUMP (v1) && FIXNUMP (v2))
+ {
+ if (XFIXNUM (v2) > XFIXNUM (v1))
+ TOP = v2;
+ }
+ else
+ TOP = Fmax (2, &TOP);
+ NEXT;
+ }
CASE (Bmin):
- DISCARD (1);
- TOP = Fmin (2, &TOP);
- NEXT;
+ {
+ Lisp_Object v2 = POP;
+ Lisp_Object v1 = TOP;
+ if (FIXNUMP (v1) && FIXNUMP (v2))
+ {
+ if (XFIXNUM (v2) < XFIXNUM (v1))
+ TOP = v2;
+ }
+ else
+ TOP = Fmin (2, &TOP);
+ NEXT;
+ }
CASE (Bmult):
- DISCARD (1);
- TOP = Ftimes (2, &TOP);
- NEXT;
+ {
+ Lisp_Object v2 = POP;
+ Lisp_Object v1 = TOP;
+ intmax_t res;
+ if (FIXNUMP (v1) && FIXNUMP (v2)
+ && !INT_MULTIPLY_WRAPV (XFIXNUM (v1), XFIXNUM (v2), &res)
+ && !FIXNUM_OVERFLOW_P (res))
+ TOP = make_fixnum (res);
+ else
+ TOP = Ftimes (2, &TOP);
+ NEXT;
+ }
CASE (Bquo):
- DISCARD (1);
- TOP = Fquo (2, &TOP);
- NEXT;
+ {
+ Lisp_Object v2 = POP;
+ Lisp_Object v1 = TOP;
+ EMACS_INT res;
+ if (FIXNUMP (v1) && FIXNUMP (v2) && XFIXNUM (v2) != 0
+ && (res = XFIXNUM (v1) / XFIXNUM (v2),
+ !FIXNUM_OVERFLOW_P (res)))
+ TOP = make_fixnum (res);
+ else
+ TOP = Fquo (2, &TOP);
+ NEXT;
+ }
CASE (Brem):
{
- Lisp_Object v1 = POP;
- TOP = Frem (TOP, v1);
+ Lisp_Object v2 = POP;
+ Lisp_Object v1 = TOP;
+ if (FIXNUMP (v1) && FIXNUMP (v2) && XFIXNUM (v2) != 0)
+ TOP = make_fixnum (XFIXNUM (v1) % XFIXNUM (v2));
+ else
+ TOP = Frem (v1, v2);
NEXT;
}
@@ -1081,12 +1230,8 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector,
Lisp_Object maxdepth,
NEXT;
CASE (Bpoint_max):
- {
- Lisp_Object v1;
- XSETFASTINT (v1, ZV);
- PUSH (v1);
- NEXT;
- }
+ PUSH (make_fixed_natnum (ZV));
+ NEXT;
CASE (Bpoint_min):
PUSH (make_fixed_natnum (BEGV));
@@ -1167,13 +1312,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector,
Lisp_Object maxdepth,
NEXT;
CASE (Bchar_syntax):
- {
- CHECK_CHARACTER (TOP);
- int c = XFIXNAT (TOP);
- if (NILP (BVAR (current_buffer, enable_multibyte_characters)))
- c = make_char_multibyte (c);
- XSETFASTINT (TOP, syntax_code_spec[SYNTAX (c)]);
- }
+ TOP = Fchar_syntax (TOP);
NEXT;
CASE (Bbuffer_substring):
@@ -1291,15 +1430,23 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object
vector, Lisp_Object maxdepth,
CASE (Bsetcar):
{
- Lisp_Object v1 = POP;
- TOP = Fsetcar (TOP, v1);
+ Lisp_Object newval = POP;
+ Lisp_Object cell = TOP;
+ CHECK_CONS (cell);
+ CHECK_IMPURE (cell, XCONS (cell));
+ XSETCAR (cell, newval);
+ TOP = newval;
NEXT;
}
CASE (Bsetcdr):
{
- Lisp_Object v1 = POP;
- TOP = Fsetcdr (TOP, v1);
+ Lisp_Object newval = POP;
+ Lisp_Object cell = TOP;
+ CHECK_CONS (cell);
+ CHECK_IMPURE (cell, XCONS (cell));
+ XSETCDR (cell, newval);
+ TOP = newval;
NEXT;
}
@@ -1437,13 +1584,17 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object
vector, Lisp_Object maxdepth,
exit:
- /* Binds and unbinds are supposed to be compiled balanced. */
+#if BYTE_CODE_SAFE || !defined NDEBUG
if (SPECPDL_INDEX () != count)
{
+ /* Binds and unbinds are supposed to be compiled balanced. */
if (SPECPDL_INDEX () > count)
unbind_to (count, Qnil);
error ("binding stack not balanced (serious byte compiler bug)");
}
+#endif
+ /* The byte code should have been properly pinned. */
+ eassert (SDATA (bytestr) == bytestr_data);
Lisp_Object result = TOP;
SAFE_FREE ();
diff --git a/src/ccl.c b/src/ccl.c
index 377eb3a0ea..a3121f7278 100644
--- a/src/ccl.c
+++ b/src/ccl.c
@@ -33,6 +33,7 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#include "charset.h"
#include "ccl.h"
#include "coding.h"
+#include "keyboard.h"
/* Table of registered CCL programs. Each element is a vector of
NAME, CCL_PROG, RESOLVEDP, and UPDATEDP, where NAME (symbol) is the
diff --git a/src/comp.c b/src/comp.c
index 64db13fc1c..9342712a38 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -454,6 +454,7 @@ load_gccjit_if_necessary (bool mandatory)
/* C symbols emitted for the load relocation mechanism. */
#define CURRENT_THREAD_RELOC_SYM "current_thread_reloc"
+#define F_SYMBOLS_WITH_POS_ENABLED_RELOC_SYM "f_symbols_with_pos_enabled_reloc"
#define PURE_RELOC_SYM "pure_reloc"
#define DATA_RELOC_SYM "d_reloc"
#define DATA_RELOC_IMPURE_SYM "d_reloc_imp"
@@ -479,6 +480,10 @@ load_gccjit_if_necessary (bool mandatory)
#define THIRD(x) \
XCAR (XCDR (XCDR (x)))
+/* Like call0 but stringify and intern. */
+#define CALL0I(fun) \
+ CALLN (Ffuncall, intern_c_string (STR (fun)))
+
/* Like call1 but stringify and intern. */
#define CALL1I(fun, arg) \
CALLN (Ffuncall, intern_c_string (STR (fun)), arg)
@@ -542,6 +547,7 @@ typedef struct {
gcc_jit_type *emacs_int_type;
gcc_jit_type *emacs_uint_type;
gcc_jit_type *void_ptr_type;
+ gcc_jit_type *bool_ptr_type;
gcc_jit_type *char_ptr_type;
gcc_jit_type *ptrdiff_type;
gcc_jit_type *uintptr_type;
@@ -563,6 +569,16 @@ typedef struct {
gcc_jit_field *lisp_cons_u_s_u_cdr;
gcc_jit_type *lisp_cons_type;
gcc_jit_type *lisp_cons_ptr_type;
+ /* struct Lisp_Symbol_With_Position */
+ gcc_jit_rvalue *f_symbols_with_pos_enabled_ref;
+ gcc_jit_struct *lisp_symbol_with_position;
+ gcc_jit_field *lisp_symbol_with_position_header;
+ gcc_jit_field *lisp_symbol_with_position_sym;
+ gcc_jit_field *lisp_symbol_with_position_pos;
+ gcc_jit_type *lisp_symbol_with_position_type;
+ gcc_jit_type *lisp_symbol_with_position_ptr_type;
+ gcc_jit_function *get_symbol_with_position;
+ gcc_jit_function *symbol_with_pos_sym;
/* struct jmp_buf. */
gcc_jit_struct *jmp_buf_s;
/* struct handler. */
@@ -655,7 +671,10 @@ Lisp_Object helper_temp_output_buffer_setup (Lisp_Object
x);
Lisp_Object helper_unbind_n (Lisp_Object n);
void helper_save_restriction (void);
bool helper_PSEUDOVECTOR_TYPEP_XUNTAG (Lisp_Object a, enum pvec_type code);
+struct Lisp_Symbol_With_Pos *helper_GET_SYMBOL_WITH_POSITION (Lisp_Object a);
+/* Note: helper_link_table must match the list created by
+ `declare_runtime_imported_funcs'. */
void *helper_link_table[] =
{ wrong_type_argument,
helper_PSEUDOVECTOR_TYPEP_XUNTAG,
@@ -664,6 +683,7 @@ void *helper_link_table[] =
record_unwind_protect_excursion,
helper_unbind_n,
helper_save_restriction,
+ helper_GET_SYMBOL_WITH_POSITION,
record_unwind_current_buffer,
set_internal,
helper_unwind_protect,
@@ -1328,9 +1348,9 @@ emit_XCONS (gcc_jit_rvalue *a)
}
static gcc_jit_rvalue *
-emit_EQ (gcc_jit_rvalue *x, gcc_jit_rvalue *y)
+emit_BASE_EQ (gcc_jit_rvalue *x, gcc_jit_rvalue *y)
{
- emit_comment ("EQ");
+ emit_comment ("BASE_EQ");
return gcc_jit_context_new_comparison (
comp.ctxt,
@@ -1340,6 +1360,30 @@ emit_EQ (gcc_jit_rvalue *x, gcc_jit_rvalue *y)
emit_XLI (y));
}
+static gcc_jit_rvalue *
+emit_AND (gcc_jit_rvalue *x, gcc_jit_rvalue *y)
+{
+ return gcc_jit_context_new_binary_op (
+ comp.ctxt,
+ NULL,
+ GCC_JIT_BINARY_OP_LOGICAL_AND,
+ comp.bool_type,
+ x,
+ y);
+}
+
+static gcc_jit_rvalue *
+emit_OR (gcc_jit_rvalue *x, gcc_jit_rvalue *y)
+{
+ return gcc_jit_context_new_binary_op (
+ comp.ctxt,
+ NULL,
+ GCC_JIT_BINARY_OP_LOGICAL_OR,
+ comp.bool_type,
+ x,
+ y);
+}
+
static gcc_jit_rvalue *
emit_TAGGEDP (gcc_jit_rvalue *obj, Lisp_Word_tag tag)
{
@@ -1401,6 +1445,85 @@ emit_CONSP (gcc_jit_rvalue *obj)
return emit_TAGGEDP (obj, Lisp_Cons);
}
+static gcc_jit_rvalue *
+emit_BARE_SYMBOL_P (gcc_jit_rvalue *obj)
+{
+ emit_comment ("BARE_SYMBOL_P");
+
+ return gcc_jit_context_new_cast (comp.ctxt,
+ NULL,
+ emit_TAGGEDP (obj, Lisp_Symbol),
+ comp.bool_type);
+}
+
+static gcc_jit_rvalue *
+emit_SYMBOL_WITH_POS_P (gcc_jit_rvalue *obj)
+{
+ emit_comment ("SYMBOL_WITH_POS_P");
+
+ gcc_jit_rvalue *args[] =
+ { obj,
+ gcc_jit_context_new_rvalue_from_int (comp.ctxt,
+ comp.int_type,
+ PVEC_SYMBOL_WITH_POS)
+ };
+
+ return gcc_jit_context_new_call (comp.ctxt,
+ NULL,
+ comp.pseudovectorp,
+ 2,
+ args);
+}
+
+static gcc_jit_rvalue *
+emit_SYMBOL_WITH_POS_SYM (gcc_jit_rvalue *obj)
+{
+ emit_comment ("SYMBOL_WITH_POS_SYM");
+
+ gcc_jit_rvalue *arg [] = { obj };
+ return gcc_jit_context_new_call (comp.ctxt,
+ NULL,
+ comp.symbol_with_pos_sym,
+ 1,
+ arg);
+}
+
+static gcc_jit_rvalue *
+emit_EQ (gcc_jit_rvalue *x, gcc_jit_rvalue *y)
+{
+ return
+ emit_OR (
+ gcc_jit_context_new_comparison (
+ comp.ctxt, NULL,
+ GCC_JIT_COMPARISON_EQ,
+ emit_XLI (x), emit_XLI (y)),
+ emit_AND (
+ gcc_jit_lvalue_as_rvalue (
+ gcc_jit_rvalue_dereference (comp.f_symbols_with_pos_enabled_ref,
+ NULL)),
+ emit_OR (
+ emit_AND (
+ emit_SYMBOL_WITH_POS_P (x),
+ emit_OR (
+ emit_AND (
+ emit_SYMBOL_WITH_POS_P (y),
+ emit_BASE_EQ (
+ emit_XLI (emit_SYMBOL_WITH_POS_SYM (x)),
+ emit_XLI (emit_SYMBOL_WITH_POS_SYM (y)))),
+ emit_AND (
+ emit_BARE_SYMBOL_P (y),
+ emit_BASE_EQ (
+ emit_XLI (emit_SYMBOL_WITH_POS_SYM (x)),
+ emit_XLI (y))))),
+ emit_AND (
+ emit_BARE_SYMBOL_P (x),
+ emit_AND (
+ emit_SYMBOL_WITH_POS_P (y),
+ emit_BASE_EQ (
+ emit_XLI (x),
+ emit_XLI (emit_SYMBOL_WITH_POS_SYM (y))))))));
+}
+
static gcc_jit_rvalue *
emit_FLOATP (gcc_jit_rvalue *obj)
{
@@ -1601,7 +1724,7 @@ emit_lisp_obj_rval (Lisp_Object obj)
emit_comment (format_string ("const lisp obj: %s",
SSDATA (Fprin1_to_string (obj, Qnil))));
- if (EQ (obj, Qnil))
+ if (NILP (obj))
{
gcc_jit_rvalue *n;
n = emit_rvalue_from_lisp_word ((Lisp_Word) iQnil);
@@ -1615,7 +1738,7 @@ static gcc_jit_rvalue *
emit_NILP (gcc_jit_rvalue *x)
{
emit_comment ("NILP");
- return emit_EQ (x, emit_lisp_obj_rval (Qnil));
+ return emit_BASE_EQ (x, emit_lisp_obj_rval (Qnil));
}
static gcc_jit_rvalue *
@@ -1731,6 +1854,29 @@ emit_CHECK_CONS (gcc_jit_rvalue *x)
args));
}
+static void
+emit_CHECK_SYMBOL_WITH_POS (gcc_jit_rvalue *x)
+{
+ emit_comment ("CHECK_SYMBOL_WITH_POS");
+
+ gcc_jit_rvalue *args[] =
+ { gcc_jit_context_new_cast (comp.ctxt,
+ NULL,
+ emit_SYMBOL_WITH_POS_P (x),
+ comp.int_type),
+ emit_lisp_obj_rval (Qsymbol_with_pos_p),
+ x };
+
+ gcc_jit_block_add_eval (
+ comp.block,
+ NULL,
+ gcc_jit_context_new_call (comp.ctxt,
+ NULL,
+ comp.check_type,
+ 3,
+ args));
+}
+
static gcc_jit_rvalue *
emit_car_addr (gcc_jit_rvalue *c)
{
@@ -2095,7 +2241,13 @@ emit_limple_insn (Lisp_Object insn)
gcc_jit_block *target1 = retrive_block (arg[2]);
gcc_jit_block *target2 = retrive_block (arg[3]);
- emit_cond_jump (emit_EQ (a, b), target1, target2);
+ if ((!NILP (CALL1I (comp-cstr-imm-vld-p, arg[0]))
+ && NILP (CALL1I (comp-cstr-imm, arg[0])))
+ || (!NILP (CALL1I (comp-cstr-imm-vld-p, arg[1]))
+ && NILP (CALL1I (comp-cstr-imm, arg[1]))))
+ emit_cond_jump (emit_BASE_EQ (a, b), target1, target2);
+ else
+ emit_cond_jump (emit_EQ (a, b), target1, target2);
}
else if (EQ (op, Qcond_jump_narg_leq))
{
@@ -2714,7 +2866,8 @@ declare_imported_data (void)
/*
Declare as imported all the functions that are requested from the runtime.
- These are either subrs or not.
+ These are either subrs or not. Note that the list created here must match
+ the array `helper_link_table'.
*/
static Lisp_Object
declare_runtime_imported_funcs (void)
@@ -2751,6 +2904,10 @@ declare_runtime_imported_funcs (void)
ADD_IMPORTED (helper_save_restriction, comp.void_type, 0, NULL);
+ args[0] = comp.lisp_obj_type;
+ ADD_IMPORTED (helper_GET_SYMBOL_WITH_POSITION,
comp.lisp_symbol_with_position_ptr_type,
+ 1, args);
+
ADD_IMPORTED (record_unwind_current_buffer, comp.void_type, 0, NULL);
args[0] = args[1] = args[2] = comp.lisp_obj_type;
@@ -2798,6 +2955,15 @@ emit_ctxt_code (void)
gcc_jit_type_get_pointer (comp.thread_state_ptr_type),
CURRENT_THREAD_RELOC_SYM));
+ comp.f_symbols_with_pos_enabled_ref =
+ gcc_jit_lvalue_as_rvalue (
+ gcc_jit_context_new_global (
+ comp.ctxt,
+ NULL,
+ GCC_JIT_GLOBAL_EXPORTED,
+ comp.bool_ptr_type,
+ F_SYMBOLS_WITH_POS_ENABLED_RELOC_SYM));
+
comp.pure_ptr =
gcc_jit_lvalue_as_rvalue (
gcc_jit_context_new_global (
@@ -2977,6 +3143,39 @@ define_lisp_cons (void)
}
+static void
+define_lisp_symbol_with_position (void)
+{
+ comp.lisp_symbol_with_position_header =
+ gcc_jit_context_new_field (comp.ctxt,
+ NULL,
+ comp.ptrdiff_type,
+ "header");
+ comp.lisp_symbol_with_position_sym =
+ gcc_jit_context_new_field (comp.ctxt,
+ NULL,
+ comp.lisp_obj_type,
+ "sym");
+ comp.lisp_symbol_with_position_pos =
+ gcc_jit_context_new_field (comp.ctxt,
+ NULL,
+ comp.lisp_obj_type,
+ "pos");
+ gcc_jit_field *fields [3] = {comp.lisp_symbol_with_position_header,
+ comp.lisp_symbol_with_position_sym,
+ comp.lisp_symbol_with_position_pos};
+ comp.lisp_symbol_with_position =
+ gcc_jit_context_new_struct_type (comp.ctxt,
+ NULL,
+ "comp_lisp_symbol_with_position",
+ 3,
+ fields);
+ comp.lisp_symbol_with_position_type =
+ gcc_jit_struct_as_type (comp.lisp_symbol_with_position);
+ comp.lisp_symbol_with_position_ptr_type =
+ gcc_jit_type_get_pointer (comp.lisp_symbol_with_position_type);
+}
+
/* Opaque jmp_buf definition. */
static void
@@ -3672,6 +3871,82 @@ define_PSEUDOVECTORP (void)
comp.bool_type, 2, args, false));
}
+static void
+define_GET_SYMBOL_WITH_POSITION (void)
+{
+ gcc_jit_param *param[] =
+ { gcc_jit_context_new_param (comp.ctxt,
+ NULL,
+ comp.lisp_obj_type,
+ "a") };
+
+ comp.get_symbol_with_position =
+ gcc_jit_context_new_function (comp.ctxt, NULL,
+ GCC_JIT_FUNCTION_INTERNAL,
+ comp.lisp_symbol_with_position_ptr_type,
+ "GET_SYMBOL_WITH_POSITION",
+ 1,
+ param,
+ 0);
+
+ DECL_BLOCK (entry_block, comp.get_symbol_with_position);
+
+ comp.block = entry_block;
+ comp.func = comp.get_symbol_with_position;
+
+ gcc_jit_rvalue *args[] =
+ { gcc_jit_param_as_rvalue (param[0]) };
+ /* FIXME use XUNTAG now that's available. */
+ gcc_jit_block_end_with_return (
+ entry_block,
+ NULL,
+ emit_call (intern_c_string ("helper_GET_SYMBOL_WITH_POSITION"),
+ comp.lisp_symbol_with_position_ptr_type,
+ 1, args, false));
+}
+
+static void define_SYMBOL_WITH_POS_SYM (void)
+{
+ gcc_jit_rvalue *tmpr, *swp;
+ gcc_jit_lvalue *tmpl;
+
+ gcc_jit_param *param [] =
+ { gcc_jit_context_new_param (comp.ctxt,
+ NULL,
+ comp.lisp_obj_type,
+ "a") };
+ comp.symbol_with_pos_sym =
+ gcc_jit_context_new_function (comp.ctxt, NULL,
+ GCC_JIT_FUNCTION_INTERNAL,
+ comp.lisp_obj_type,
+ "SYMBOL_WITH_POS_SYM",
+ 1,
+ param,
+ 0);
+
+ DECL_BLOCK (entry_block, comp.symbol_with_pos_sym);
+ comp.func = comp.symbol_with_pos_sym;
+ comp.block = entry_block;
+
+ emit_CHECK_SYMBOL_WITH_POS (gcc_jit_param_as_rvalue (param [0]));
+
+ gcc_jit_rvalue *args[] = { gcc_jit_param_as_rvalue (param [0]) };
+
+ swp = gcc_jit_context_new_call (comp.ctxt,
+ NULL,
+ comp.get_symbol_with_position,
+ 1,
+ args);
+ tmpl = gcc_jit_rvalue_dereference (swp, NULL);
+ tmpr = gcc_jit_lvalue_as_rvalue (tmpl);
+ gcc_jit_block_end_with_return (entry_block,
+ NULL,
+ gcc_jit_rvalue_access_field (
+ tmpr,
+ NULL,
+ comp.lisp_symbol_with_position_sym));
+}
+
static void
define_CHECK_IMPURE (void)
{
@@ -4309,6 +4584,7 @@ Return t on success. */)
gcc_jit_context_get_type (comp.ctxt, GCC_JIT_TYPE_LONG_LONG);
comp.unsigned_long_long_type =
gcc_jit_context_get_type (comp.ctxt, GCC_JIT_TYPE_UNSIGNED_LONG_LONG);
+ comp.bool_ptr_type = gcc_jit_type_get_pointer (comp.bool_type);
comp.char_ptr_type = gcc_jit_type_get_pointer (comp.char_type);
comp.emacs_int_type = gcc_jit_context_get_int_type (comp.ctxt,
sizeof (EMACS_INT),
@@ -4381,6 +4657,7 @@ Return t on success. */)
/* Define data structures. */
define_lisp_cons ();
+ define_lisp_symbol_with_position ();
define_jmp_buf ();
define_handler_struct ();
define_thread_state_struct ();
@@ -4602,7 +4879,9 @@ DEFUN ("comp--compile-ctxt-to-file",
Fcomp__compile_ctxt_to_file,
/* Define inline functions. */
define_CAR_CDR ();
define_PSEUDOVECTORP ();
+ define_GET_SYMBOL_WITH_POSITION ();
define_CHECK_TYPE ();
+ define_SYMBOL_WITH_POS_SYM ();
define_CHECK_IMPURE ();
define_bool_to_lisp_obj ();
define_setcar_setcdr ();
@@ -4734,6 +5013,14 @@ helper_PSEUDOVECTOR_TYPEP_XUNTAG (Lisp_Object a, enum
pvec_type code)
code);
}
+struct Lisp_Symbol_With_Pos *
+helper_GET_SYMBOL_WITH_POSITION (Lisp_Object a)
+{
+ if (!SYMBOL_WITH_POS_P (a))
+ wrong_type_argument (Qwrong_type_argument, a);
+ return XUNTAG (a, Lisp_Vectorlike, struct Lisp_Symbol_With_Pos);
+}
+
/* `native-comp-eln-load-path' clean-up support code. */
@@ -4845,7 +5132,7 @@ maybe_defer_native_compilation (Lisp_Object function_name,
if (comp__loadable)
{
/* Startup is done, comp is usable. */
- Frequire (Qcomp, Qnil, Qnil);
+ CALL0I (startup--require-comp-safely);
Fputhash (function_name, definition, Vcomp_deferred_pending_h);
CALLN (Ffuncall, intern_c_string ("native--compile-async"),
src, Qnil, Qlate);
@@ -5000,12 +5287,15 @@ load_comp_unit (struct Lisp_Native_Comp_Unit *comp_u,
bool loading_dump,
{
struct thread_state ***current_thread_reloc =
dynlib_sym (handle, CURRENT_THREAD_RELOC_SYM);
+ bool **f_symbols_with_pos_enabled_reloc =
+ dynlib_sym (handle, F_SYMBOLS_WITH_POS_ENABLED_RELOC_SYM);
void **pure_reloc = dynlib_sym (handle, PURE_RELOC_SYM);
Lisp_Object *data_relocs = dynlib_sym (handle, DATA_RELOC_SYM);
Lisp_Object *data_imp_relocs = comp_u->data_imp_relocs;
void **freloc_link_table = dynlib_sym (handle, FUNC_LINK_TABLE_SYM);
if (!(current_thread_reloc
+ && f_symbols_with_pos_enabled_reloc
&& pure_reloc
&& data_relocs
&& data_imp_relocs
@@ -5017,6 +5307,7 @@ load_comp_unit (struct Lisp_Native_Comp_Unit *comp_u,
bool loading_dump,
xsignal1 (Qnative_lisp_file_inconsistent, comp_u->file);
*current_thread_reloc = ¤t_thread;
+ *f_symbols_with_pos_enabled_reloc = &symbols_with_pos_enabled;
*pure_reloc = pure;
/* Imported functions. */
@@ -5209,19 +5500,7 @@ This gets called by top_level_run during the load phase.
*/)
make_subr (SYMBOL_NAME (name), minarg, maxarg, c_name, type, doc_idx,
intspec, comp_u);
- if (AUTOLOADP (XSYMBOL (name)->u.s.function))
- /* Remember that the function was already an autoload. */
- LOADHIST_ATTACH (Fcons (Qt, name));
- LOADHIST_ATTACH (Fcons (Qdefun, name));
-
- { /* Handle automatic advice activation (bug#42038).
- See `defalias'. */
- Lisp_Object hook = Fget (name, Qdefalias_fset_function);
- if (!NILP (hook))
- call2 (hook, name, tem);
- else
- Ffset (name, tem);
- }
+ defalias (name, tem);
return tem;
}
@@ -5386,6 +5665,7 @@ compiled one. */);
DEFSYM (Qnumberp, "numberp");
DEFSYM (Qintegerp, "integerp");
DEFSYM (Qcomp_maybe_gc_or_quit, "comp-maybe-gc-or-quit");
+ DEFSYM (Qsymbol_with_pos_p, "symbol-with-pos-p");
/* Allocation classes. */
DEFSYM (Qd_default, "d-default");
@@ -5536,3 +5816,6 @@ be preloaded. */);
defsubr (&Snative_comp_available_p);
}
+/* Local Variables: */
+/* c-file-offsets: ((arglist-intro . +)) */
+/* End: */
diff --git a/src/composite.c b/src/composite.c
index 711284ba6f..a4db66b92d 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -2064,7 +2064,8 @@ The default value is the function `compose-chars-after'.
*/);
Use the command `auto-composition-mode' to change this variable.
If this variable is a string, `auto-composition-mode' will be disabled in
-buffers displayed on a terminal whose type compares equal to this string. */);
+buffers displayed on a terminal whose type, as reported by `tty-type',
+compares equal to that string. */);
Vauto_composition_mode = Qt;
DEFVAR_LISP ("auto-composition-function", Vauto_composition_function,
diff --git a/src/cygw32.c b/src/cygw32.c
index 1b43de2c05..399c1f91b9 100644
--- a/src/cygw32.c
+++ b/src/cygw32.c
@@ -115,7 +115,7 @@ For the reverse operation, see
`cygwin-convert-file-name-from-windows'. */)
(Lisp_Object file, Lisp_Object absolute_p)
{
return from_unicode (
- conv_filename_to_w32_unicode (file, EQ (absolute_p, Qnil) ? 0 : 1));
+ conv_filename_to_w32_unicode (file, NILP (absolute_p) ? 0 : 1));
}
DEFUN ("cygwin-convert-file-name-from-windows",
@@ -128,7 +128,7 @@ For the reverse operation, see
`cygwin-convert-file-name-to-windows'. */)
(Lisp_Object file, Lisp_Object absolute_p)
{
return conv_filename_from_w32_unicode (to_unicode (file, &file),
- EQ (absolute_p, Qnil) ? 0 : 1);
+ NILP (absolute_p) ? 0 : 1);
}
void
diff --git a/src/data.c b/src/data.c
index 44d05e9884..00704cc992 100644
--- a/src/data.c
+++ b/src/data.c
@@ -216,6 +216,7 @@ for example, (type-of 1) returns `integer'. */)
case PVEC_NORMAL_VECTOR: return Qvector;
case PVEC_BIGNUM: return Qinteger;
case PVEC_MARKER: return Qmarker;
+ case PVEC_SYMBOL_WITH_POS: return Qsymbol_with_pos;
case PVEC_OVERLAY: return Qoverlay;
case PVEC_FINALIZER: return Qfinalizer;
case PVEC_USER_PTR: return Quser_ptr;
@@ -318,6 +319,26 @@ DEFUN ("nlistp", Fnlistp, Snlistp, 1, 1, 0,
return Qt;
}
+DEFUN ("bare-symbol-p", Fbare_symbol_p, Sbare_symbol_p, 1, 1, 0,
+ doc: /* Return t if OBJECT is a symbol, but not a symbol together with
position. */
+ attributes: const)
+ (Lisp_Object object)
+{
+ if (BARE_SYMBOL_P (object))
+ return Qt;
+ return Qnil;
+}
+
+DEFUN ("symbol-with-pos-p", Fsymbol_with_pos_p, Ssymbol_with_pos_p, 1, 1, 0,
+ doc: /* Return t if OBJECT is a symbol together with position. */
+ attributes: const)
+ (Lisp_Object object)
+{
+ if (SYMBOL_WITH_POS_P (object))
+ return Qt;
+ return Qnil;
+}
+
DEFUN ("symbolp", Fsymbolp, Ssymbolp, 1, 1, 0,
doc: /* Return t if OBJECT is a symbol. */
attributes: const)
@@ -755,6 +776,62 @@ DEFUN ("symbol-name", Fsymbol_name, Ssymbol_name, 1, 1, 0,
return name;
}
+DEFUN ("bare-symbol", Fbare_symbol, Sbare_symbol, 1, 1, 0,
+ doc: /* Extract, if need be, the bare symbol from SYM, a symbol. */)
+ (register Lisp_Object sym)
+{
+ if (BARE_SYMBOL_P (sym))
+ return sym;
+ /* Type checking is done in the following macro. */
+ return SYMBOL_WITH_POS_SYM (sym);
+}
+
+DEFUN ("symbol-with-pos-pos", Fsymbol_with_pos_pos, Ssymbol_with_pos_pos, 1,
1, 0,
+ doc: /* Extract the position from a symbol with position. */)
+ (register Lisp_Object ls)
+{
+ /* Type checking is done in the following macro. */
+ return SYMBOL_WITH_POS_POS (ls);
+}
+
+DEFUN ("remove-pos-from-symbol", Fremove_pos_from_symbol,
+ Sremove_pos_from_symbol, 1, 1, 0,
+ doc: /* If ARG is a symbol with position, return it without the
position.
+Otherwise, return ARG unchanged. Compare with `bare-symbol'. */)
+ (register Lisp_Object arg)
+{
+ if (SYMBOL_WITH_POS_P (arg))
+ return (SYMBOL_WITH_POS_SYM (arg));
+ return arg;
+}
+
+DEFUN ("position-symbol", Fposition_symbol, Sposition_symbol, 2, 2, 0,
+ doc: /* Create a new symbol with position.
+SYM is a symbol, with or without position, the symbol to position.
+POS, the position, is either a fixnum or a symbol with position from which
+the position will be taken. */)
+ (register Lisp_Object sym, register Lisp_Object pos)
+{
+ Lisp_Object bare;
+ Lisp_Object position;
+
+ if (BARE_SYMBOL_P (sym))
+ bare = sym;
+ else if (SYMBOL_WITH_POS_P (sym))
+ bare = XSYMBOL_WITH_POS (sym)->sym;
+ else
+ wrong_type_argument (Qsymbolp, sym);
+
+ if (FIXNUMP (pos))
+ position = pos;
+ else if (SYMBOL_WITH_POS_P (pos))
+ position = XSYMBOL_WITH_POS (pos)->pos;
+ else
+ wrong_type_argument (Qfixnum_or_symbol_with_pos_p, pos);
+
+ return build_symbol_with_pos (bare, position);
+}
+
DEFUN ("fset", Ffset, Sfset, 2, 2, 0,
doc: /* Set SYMBOL's function definition to DEFINITION, and return
DEFINITION. */)
(register Lisp_Object symbol, Lisp_Object definition)
@@ -769,9 +846,6 @@ DEFUN ("fset", Ffset, Sfset, 2, 2, 0,
function = XSYMBOL (symbol)->u.s.function;
- if (!NILP (Vautoload_queue) && !NILP (function))
- Vautoload_queue = Fcons (Fcons (symbol, function), Vautoload_queue);
-
if (AUTOLOADP (function))
Fput (symbol, Qautoload, XCDR (function));
@@ -789,35 +863,23 @@ DEFUN ("fset", Ffset, Sfset, 2, 2, 0,
return definition;
}
-DEFUN ("defalias", Fdefalias, Sdefalias, 2, 3, 0,
- doc: /* Set SYMBOL's function definition to DEFINITION.
-Associates the function with the current load file, if any.
-The optional third argument DOCSTRING specifies the documentation string
-for SYMBOL; if it is omitted or nil, SYMBOL uses the documentation string
-determined by DEFINITION.
-
-Internally, this normally uses `fset', but if SYMBOL has a
-`defalias-fset-function' property, the associated value is used instead.
-
-The return value is undefined. */)
- (register Lisp_Object symbol, Lisp_Object definition, Lisp_Object docstring)
+void
+defalias (Lisp_Object symbol, Lisp_Object definition)
{
- CHECK_SYMBOL (symbol);
- if (!NILP (Vpurify_flag)
- /* If `definition' is a keymap, immutable (and copying) is wrong. */
- && !KEYMAPP (definition))
- definition = Fpurecopy (definition);
-
{
bool autoload = AUTOLOADP (definition);
if (!will_dump_p () || !autoload)
{ /* Only add autoload entries after dumping, because the ones before are
not useful and else we get loads of them from the loaddefs.el. */
+ Lisp_Object function = XSYMBOL (symbol)->u.s.function;
- if (AUTOLOADP (XSYMBOL (symbol)->u.s.function))
+ if (AUTOLOADP (function))
/* Remember that the function was already an autoload. */
LOADHIST_ATTACH (Fcons (Qt, symbol));
LOADHIST_ATTACH (Fcons (autoload ? Qautoload : Qdefun, symbol));
+
+ if (!NILP (Vautoload_queue) && !NILP (function))
+ Vautoload_queue = Fcons (Fcons (symbol, function), Vautoload_queue);
}
}
@@ -828,6 +890,28 @@ The return value is undefined. */)
else
Ffset (symbol, definition);
}
+}
+
+DEFUN ("defalias", Fdefalias, Sdefalias, 2, 3, 0,
+ doc: /* Set SYMBOL's function definition to DEFINITION.
+Associates the function with the current load file, if any.
+The optional third argument DOCSTRING specifies the documentation string
+for SYMBOL; if it is omitted or nil, SYMBOL uses the documentation string
+determined by DEFINITION.
+
+Internally, this normally uses `fset', but if SYMBOL has a
+`defalias-fset-function' property, the associated value is used instead.
+
+The return value is undefined. */)
+ (register Lisp_Object symbol, Lisp_Object definition, Lisp_Object docstring)
+{
+ CHECK_SYMBOL (symbol);
+ if (!NILP (Vpurify_flag)
+ /* If `definition' is a keymap, immutable (and copying) is wrong. */
+ && !KEYMAPP (definition))
+ definition = Fpurecopy (definition);
+
+ defalias (symbol, definition);
maybe_defer_native_compilation (symbol, definition);
@@ -2053,7 +2137,7 @@ Instead, use `add-hook' and specify t for the LOCAL
argument. */)
/* Make sure this buffer has its own value of symbol. */
XSETSYMBOL (variable, sym); /* Update in case of aliasing. */
- tem = Fassq (variable, BVAR (current_buffer, local_var_alist));
+ tem = assq_no_quit (variable, BVAR (current_buffer, local_var_alist));
if (NILP (tem))
{
if (let_shadows_buffer_binding_p (sym))
@@ -2133,7 +2217,7 @@ From now on the default value will apply in this buffer.
Return VARIABLE. */)
/* Get rid of this buffer's alist element, if any. */
XSETSYMBOL (variable, sym); /* Propagate variable indirection. */
- tem = Fassq (variable, BVAR (current_buffer, local_var_alist));
+ tem = assq_no_quit (variable, BVAR (current_buffer, local_var_alist));
if (!NILP (tem))
bset_local_var_alist
(current_buffer,
@@ -2174,7 +2258,7 @@ Also see `buffer-local-boundp'.*/)
case SYMBOL_PLAINVAL: return Qnil;
case SYMBOL_LOCALIZED:
{
- Lisp_Object tail, elt, tmp;
+ Lisp_Object tmp;
struct Lisp_Buffer_Local_Value *blv = SYMBOL_BLV (sym);
XSETBUFFER (tmp, buf);
XSETSYMBOL (variable, sym); /* Update in case of aliasing. */
@@ -2182,13 +2266,9 @@ Also see `buffer-local-boundp'.*/)
if (EQ (blv->where, tmp)) /* The binding is already loaded. */
return blv_found (blv) ? Qt : Qnil;
else
- for (tail = BVAR (buf, local_var_alist); CONSP (tail); tail = XCDR
(tail))
- {
- elt = XCAR (tail);
- if (EQ (variable, XCAR (elt)))
- return Qt;
- }
- return Qnil;
+ return NILP (assq_no_quit (variable, BVAR (buf, local_var_alist)))
+ ? Qnil
+ : Qt;
}
case SYMBOL_FORWARDED:
{
@@ -3846,7 +3926,7 @@ A is a bool vector, B is t or nil, and I is an index into
A. */)
void
syms_of_data (void)
{
- Lisp_Object error_tail, arith_tail;
+ Lisp_Object error_tail, arith_tail, recursion_tail;
DEFSYM (Qquote, "quote");
DEFSYM (Qlambda, "lambda");
@@ -3881,8 +3961,14 @@ syms_of_data (void)
DEFSYM (Qmark_inactive, "mark-inactive");
DEFSYM (Qinhibited_interaction, "inhibited-interaction");
+ DEFSYM (Qrecursion_error, "recursion-error");
+ DEFSYM (Qexcessive_variable_binding, "excessive-variable-binding");
+ DEFSYM (Qexcessive_lisp_nesting, "excessive-lisp-nesting");
+
DEFSYM (Qlistp, "listp");
DEFSYM (Qconsp, "consp");
+ DEFSYM (Qbare_symbol_p, "bare-symbol-p");
+ DEFSYM (Qsymbol_with_pos_p, "symbol-with-pos-p");
DEFSYM (Qsymbolp, "symbolp");
DEFSYM (Qfixnump, "fixnump");
DEFSYM (Qintegerp, "integerp");
@@ -3908,6 +3994,7 @@ syms_of_data (void)
DEFSYM (Qchar_table_p, "char-table-p");
DEFSYM (Qvector_or_char_table_p, "vector-or-char-table-p");
+ DEFSYM (Qfixnum_or_symbol_with_pos_p, "fixnum-or-symbol-with-pos-p");
DEFSYM (Qsubrp, "subrp");
DEFSYM (Qunevalled, "unevalled");
@@ -3986,12 +4073,23 @@ syms_of_data (void)
PUT_ERROR (Qunderflow_error, Fcons (Qrange_error, arith_tail),
"Arithmetic underflow error");
+ recursion_tail = pure_cons (Qrecursion_error, error_tail);
+ Fput (Qrecursion_error, Qerror_conditions, recursion_tail);
+ Fput (Qrecursion_error, Qerror_message, build_pure_c_string
+ ("Excessive recursive calling error"));
+
+ PUT_ERROR (Qexcessive_variable_binding, recursion_tail,
+ "Variable binding depth exceeds max-specpdl-size");
+ PUT_ERROR (Qexcessive_lisp_nesting, recursion_tail,
+ "Lisp nesting exceeds `max-lisp-eval-depth'");
+
/* Types that type-of returns. */
DEFSYM (Qinteger, "integer");
DEFSYM (Qsymbol, "symbol");
DEFSYM (Qstring, "string");
DEFSYM (Qcons, "cons");
DEFSYM (Qmarker, "marker");
+ DEFSYM (Qsymbol_with_pos, "symbol-with-pos");
DEFSYM (Qoverlay, "overlay");
DEFSYM (Qfinalizer, "finalizer");
DEFSYM (Qmodule_function, "module-function");
@@ -4043,6 +4141,8 @@ syms_of_data (void)
defsubr (&Snumber_or_marker_p);
defsubr (&Sfloatp);
defsubr (&Snatnump);
+ defsubr (&Sbare_symbol_p);
+ defsubr (&Ssymbol_with_pos_p);
defsubr (&Ssymbolp);
defsubr (&Skeywordp);
defsubr (&Sstringp);
@@ -4073,6 +4173,10 @@ syms_of_data (void)
defsubr (&Sindirect_function);
defsubr (&Ssymbol_plist);
defsubr (&Ssymbol_name);
+ defsubr (&Sbare_symbol);
+ defsubr (&Ssymbol_with_pos_pos);
+ defsubr (&Sremove_pos_from_symbol);
+ defsubr (&Sposition_symbol);
defsubr (&Smakunbound);
defsubr (&Sfmakunbound);
defsubr (&Sboundp);
@@ -4155,6 +4259,12 @@ This variable cannot be set; trying to do so will signal
an error. */);
Vmost_negative_fixnum = make_fixnum (MOST_NEGATIVE_FIXNUM);
make_symbol_constant (intern_c_string ("most-negative-fixnum"));
+ DEFSYM (Qsymbols_with_pos_enabled, "symbols-with-pos-enabled");
+ DEFVAR_BOOL ("symbols-with-pos-enabled", symbols_with_pos_enabled,
+ doc: /* Non-nil when "symbols with position" can be used as
symbols.
+Bind this to non-nil in applications such as the byte compiler. */);
+ symbols_with_pos_enabled = false;
+
DEFSYM (Qwatchers, "watchers");
DEFSYM (Qmakunbound, "makunbound");
DEFSYM (Qunlet, "unlet");
diff --git a/src/dispextern.h b/src/dispextern.h
index 954992a0ec..368507732c 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -1720,6 +1720,12 @@ struct face
int box_vertical_line_width;
int box_horizontal_line_width;
+
+ /* The amount of pixels above the descent line the underline should
+ be displayed. It does not take effect unless
+ `underline_at_descent_line_p` is t. */
+ int underline_pixels_above_descent_line;
+
/* Type of box drawn. A value of FACE_NO_BOX means no box is drawn
around text in this face. A value of FACE_SIMPLE_BOX means a box
of width box_line_width is drawn in color box_color. A value of
@@ -1753,6 +1759,9 @@ struct face
bool_bf strike_through_color_defaulted_p : 1;
bool_bf box_color_defaulted_p : 1;
+ /* True means the underline should be drawn at the descent line. */
+ bool_bf underline_at_descent_line_p : 1;
+
/* TTY appearances. Colors are found in `lface' with empty color
string meaning the default color of the TTY. */
bool_bf tty_bold_p : 1;
diff --git a/src/dispnew.c b/src/dispnew.c
index 178d5caffb..6337bcf130 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -6662,6 +6662,8 @@ The value is a symbol:
`w32' for an Emacs frame that is a window on MS-Windows display,
`ns' for an Emacs frame on a GNUstep or Macintosh Cocoa display,
`pc' for a direct-write MS-DOS frame.
+ `pgtk' for an Emacs frame using pure GTK facilities.
+ `haiku' for an Emacs frame running in Haiku.
Use of this variable as a boolean is deprecated. Instead,
use `display-graphic-p' or any of the other `display-*-p'
@@ -6675,6 +6677,8 @@ The value is a symbol:
`w32' for an Emacs frame that is a window on MS-Windows display,
`ns' for an Emacs frame on a GNUstep or Macintosh Cocoa display,
`pc' for a direct-write MS-DOS frame.
+ `pgtk' for an Emacs frame using pure GTK facilities.
+ `haiku' for an Emacs frame running in Haiku.
Use of this variable as a boolean is deprecated. Instead,
use `display-graphic-p' or any of the other `display-*-p'
diff --git a/src/emacs.c b/src/emacs.c
index 3b708db779..2014e97fbf 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -875,9 +875,14 @@ load_pdump (int argc, char **argv)
}
/* Where's our executable? */
- ptrdiff_t bufsize, exec_bufsize;
+ ptrdiff_t bufsize;
+#ifndef NS_SELF_CONTAINED
+ ptrdiff_t exec_bufsize;
+#endif
emacs_executable = load_pdump_find_executable (argv[0], &bufsize);
+#ifndef NS_SELF_CONTAINED
exec_bufsize = bufsize;
+#endif
/* If we couldn't find our executable, go straight to looking for
the dump in the hardcoded location. */
@@ -2467,6 +2472,7 @@ static const struct standard_args standard_args[] =
{ "-quick", 0, 55, 0 },
{ "-q", "--no-init-file", 50, 0 },
{ "-no-init-file", 0, 50, 0 },
+ { "-init-directory", "--init-directory", 30, 1 },
{ "-no-x-resources", "--no-x-resources", 40, 0 },
{ "-no-site-file", "--no-site-file", 40, 0 },
{ "-u", "--user", 30, 1 },
diff --git a/src/emacsgtkfixed.c b/src/emacsgtkfixed.c
index da56031e2a..a38ba35ad8 100644
--- a/src/emacsgtkfixed.c
+++ b/src/emacsgtkfixed.c
@@ -164,13 +164,9 @@ XSetWMSizeHints (Display *d,
if ((hints->flags & PMinSize) && f)
{
-#ifdef HAVE_PGTK
- int w = f->output_data.pgtk->size_hints.min_width;
- int h = f->output_data.pgtk->size_hints.min_height;
-#else
int w = f->output_data.x->size_hints.min_width;
int h = f->output_data.x->size_hints.min_height;
-#endif
+
data[5] = w;
data[6] = h;
}
diff --git a/src/eval.c b/src/eval.c
index e15c9bd56b..5d1da325ec 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -138,13 +138,6 @@ backtrace_args (union specbinding *pdl)
return pdl->bt.args;
}
-static bool
-backtrace_debug_on_exit (union specbinding *pdl)
-{
- eassert (pdl->kind == SPECPDL_BACKTRACE);
- return pdl->bt.debug_on_exit;
-}
-
/* Functions to modify slots of backtrace records. */
static void
@@ -354,7 +347,7 @@ call_debugger (Lisp_Object arg)
return unbind_to (count, val);
}
-static void
+void
do_debug_on_call (Lisp_Object code, ptrdiff_t count)
{
debug_on_next_call = 0;
@@ -1748,21 +1741,8 @@ process_quit_flag (void)
quit ();
}
-/* Check quit-flag and quit if it is non-nil. Typing C-g does not
- directly cause a quit; it only sets Vquit_flag. So the program
- needs to call maybe_quit at times when it is safe to quit. Every
- loop that might run for a long time or might not exit ought to call
- maybe_quit at least once, at a safe place. Unless that is
- impossible, of course. But it is very desirable to avoid creating
- loops where maybe_quit is impossible.
-
- If quit-flag is set to `kill-emacs' the SIGINT handler has received
- a request to exit Emacs when it is safe to do.
-
- When not quitting, process any pending signals. */
-
void
-maybe_quit (void)
+probably_quit (void)
{
if (!NILP (Vquit_flag) && NILP (Vinhibit_quit))
process_quit_flag ();
@@ -2301,7 +2281,7 @@ this does nothing and returns nil. */)
Qnil);
}
-void
+static void
un_autoload (Lisp_Object oldqueue)
{
Lisp_Object queue, first, second;
@@ -2323,6 +2303,32 @@ un_autoload (Lisp_Object oldqueue)
}
}
+Lisp_Object
+load_with_autoload_queue
+ (Lisp_Object file, Lisp_Object noerror, Lisp_Object nomessage,
+ Lisp_Object nosuffix, Lisp_Object must_suffix)
+{
+ ptrdiff_t count = SPECPDL_INDEX ();
+
+ /* If autoloading gets an error (which includes the error of failing
+ to define the function being called), we use Vautoload_queue
+ to undo function definitions and `provide' calls made by
+ the function. We do this in the specific case of autoloading
+ because autoloading is not an explicit request "load this file",
+ but rather a request to "call this function".
+
+ The value saved here is to be restored into Vautoload_queue. */
+ record_unwind_protect (un_autoload, Vautoload_queue);
+ Vautoload_queue = Qt;
+ Lisp_Object tem
+ = save_match_data_load (file, noerror, nomessage, nosuffix, must_suffix);
+
+ /* Once loading finishes, don't undo it. */
+ Vautoload_queue = Qt;
+ unbind_to (count, Qnil);
+ return tem;
+}
+
/* Load an autoloaded function.
FUNNAME is the symbol which is the function's name.
FUNDEF is the autoload definition (a list). */
@@ -2335,8 +2341,6 @@ If equal to `macro', MACRO-ONLY specifies that FUNDEF
should only be loaded if
it defines a macro. */)
(Lisp_Object fundef, Lisp_Object funname, Lisp_Object macro_only)
{
- ptrdiff_t count = SPECPDL_INDEX ();
-
if (!CONSP (fundef) || !EQ (Qautoload, XCAR (fundef)))
return fundef;
@@ -2353,26 +2357,12 @@ it defines a macro. */)
CHECK_SYMBOL (funname);
- /* If autoloading gets an error (which includes the error of failing
- to define the function being called), we use Vautoload_queue
- to undo function definitions and `provide' calls made by
- the function. We do this in the specific case of autoloading
- because autoloading is not an explicit request "load this file",
- but rather a request to "call this function".
-
- The value saved here is to be restored into Vautoload_queue. */
- record_unwind_protect (un_autoload, Vautoload_queue);
- Vautoload_queue = Qt;
/* If `macro_only' is set and fundef isn't a macro, assume this autoload to
be a "best-effort" (e.g. to try and find a compiler macro),
so don't signal an error if autoloading fails. */
Lisp_Object ignore_errors
= (EQ (kind, Qt) || EQ (kind, Qmacro)) ? Qnil : macro_only;
- save_match_data_load (Fcar (Fcdr (fundef)), ignore_errors, Qt, Qnil, Qt);
-
- /* Once loading finishes, don't undo it. */
- Vautoload_queue = Qt;
- unbind_to (count, Qnil);
+ load_with_autoload_queue (Fcar (Fcdr (fundef)), ignore_errors, Qt, Qnil, Qt);
if (NILP (funname) || !NILP (ignore_errors))
return Qnil;
@@ -2403,6 +2393,28 @@ alist mapping symbols to their value. */)
return unbind_to (count, eval_sub (form));
}
+static void
+grow_specpdl_allocation (void)
+{
+ eassert (specpdl_ptr == specpdl + specpdl_size);
+
+ ptrdiff_t count = SPECPDL_INDEX ();
+ ptrdiff_t max_size = min (max_specpdl_size, PTRDIFF_MAX - 1000);
+ union specbinding *pdlvec = specpdl - 1;
+ ptrdiff_t pdlvecsize = specpdl_size + 1;
+ if (max_size <= specpdl_size)
+ {
+ if (max_specpdl_size < 400)
+ max_size = max_specpdl_size = 400;
+ if (max_size <= specpdl_size)
+ xsignal0 (Qexcessive_variable_binding);
+ }
+ pdlvec = xpalloc (pdlvec, &pdlvecsize, 1, max_size + 1, sizeof *specpdl);
+ specpdl = pdlvec + 1;
+ specpdl_size = pdlvecsize - 1;
+ specpdl_ptr = specpdl + count;
+}
+
/* Grow the specpdl stack by one entry.
The caller should have already initialized the entry.
Signal an error on stack overflow.
@@ -2413,30 +2425,12 @@ alist mapping symbols to their value. */)
never-used entry just before the bottom of the stack; sometimes its
address is taken. */
-static void
+INLINE void
grow_specpdl (void)
{
specpdl_ptr++;
-
if (specpdl_ptr == specpdl + specpdl_size)
- {
- ptrdiff_t count = SPECPDL_INDEX ();
- ptrdiff_t max_size = min (max_specpdl_size, PTRDIFF_MAX - 1000);
- union specbinding *pdlvec = specpdl - 1;
- ptrdiff_t pdlvecsize = specpdl_size + 1;
- if (max_size <= specpdl_size)
- {
- if (max_specpdl_size < 400)
- max_size = max_specpdl_size = 400;
- if (max_size <= specpdl_size)
- signal_error ("Variable binding depth exceeds max-specpdl-size",
- Qnil);
- }
- pdlvec = xpalloc (pdlvec, &pdlvecsize, 1, max_size + 1, sizeof *specpdl);
- specpdl = pdlvec + 1;
- specpdl_size = pdlvecsize - 1;
- specpdl_ptr = specpdl + count;
- }
+ grow_specpdl_allocation ();
}
ptrdiff_t
@@ -2484,7 +2478,7 @@ eval_sub (Lisp_Object form)
if (max_lisp_eval_depth < 100)
max_lisp_eval_depth = 100;
if (lisp_eval_depth > max_lisp_eval_depth)
- error ("Lisp nesting exceeds `max-lisp-eval-depth'");
+ xsignal0 (Qexcessive_lisp_nesting);
}
Lisp_Object original_fun = XCAR (form);
@@ -3068,72 +3062,72 @@ FUNCTIONP (Lisp_Object object)
return false;
}
-DEFUN ("funcall", Ffuncall, Sfuncall, 1, MANY, 0,
- doc: /* Call first argument as a function, passing remaining arguments
to it.
-Return the value that function returns.
-Thus, (funcall \\='cons \\='x \\='y) returns (x . y).
-usage: (funcall FUNCTION &rest ARGUMENTS) */)
- (ptrdiff_t nargs, Lisp_Object *args)
+Lisp_Object
+funcall_general (Lisp_Object fun, ptrdiff_t numargs, Lisp_Object *args)
{
- Lisp_Object fun, original_fun;
- Lisp_Object funcar;
- ptrdiff_t numargs = nargs - 1;
- Lisp_Object val;
- ptrdiff_t count;
-
- maybe_quit ();
-
- if (++lisp_eval_depth > max_lisp_eval_depth)
- {
- if (max_lisp_eval_depth < 100)
- max_lisp_eval_depth = 100;
- if (lisp_eval_depth > max_lisp_eval_depth)
- error ("Lisp nesting exceeds `max-lisp-eval-depth'");
- }
-
- count = record_in_backtrace (args[0], &args[1], nargs - 1);
-
- maybe_gc ();
-
- if (debug_on_next_call)
- do_debug_on_call (Qlambda, count);
-
- original_fun = args[0];
-
+ Lisp_Object original_fun = fun;
retry:
-
- /* Optimize for no indirection. */
- fun = original_fun;
if (SYMBOLP (fun) && !NILP (fun)
&& (fun = XSYMBOL (fun)->u.s.function, SYMBOLP (fun)))
fun = indirect_function (fun);
if (SUBRP (fun) && !SUBR_NATIVE_COMPILED_DYNP (fun))
- val = funcall_subr (XSUBR (fun), numargs, args + 1);
+ return funcall_subr (XSUBR (fun), numargs, args);
else if (COMPILEDP (fun)
|| SUBR_NATIVE_COMPILED_DYNP (fun)
|| MODULE_FUNCTIONP (fun))
- val = funcall_lambda (fun, numargs, args + 1);
+ return funcall_lambda (fun, numargs, args);
else
{
if (NILP (fun))
xsignal1 (Qvoid_function, original_fun);
if (!CONSP (fun))
xsignal1 (Qinvalid_function, original_fun);
- funcar = XCAR (fun);
+ Lisp_Object funcar = XCAR (fun);
if (!SYMBOLP (funcar))
xsignal1 (Qinvalid_function, original_fun);
if (EQ (funcar, Qlambda)
|| EQ (funcar, Qclosure))
- val = funcall_lambda (fun, numargs, args + 1);
+ return funcall_lambda (fun, numargs, args);
else if (EQ (funcar, Qautoload))
{
Fautoload_do_load (fun, original_fun, Qnil);
+ fun = original_fun;
goto retry;
}
else
xsignal1 (Qinvalid_function, original_fun);
}
+}
+
+DEFUN ("funcall", Ffuncall, Sfuncall, 1, MANY, 0,
+ doc: /* Call first argument as a function, passing remaining arguments
to it.
+Return the value that function returns.
+Thus, (funcall \\='cons \\='x \\='y) returns (x . y).
+usage: (funcall FUNCTION &rest ARGUMENTS) */)
+ (ptrdiff_t nargs, Lisp_Object *args)
+{
+ ptrdiff_t count;
+
+ maybe_quit ();
+
+ if (++lisp_eval_depth > max_lisp_eval_depth)
+ {
+ if (max_lisp_eval_depth < 100)
+ max_lisp_eval_depth = 100;
+ if (lisp_eval_depth > max_lisp_eval_depth)
+ xsignal0 (Qexcessive_lisp_nesting);
+ }
+
+ count = record_in_backtrace (args[0], &args[1], nargs - 1);
+
+ maybe_gc ();
+
+ if (debug_on_next_call)
+ do_debug_on_call (Qlambda, count);
+
+ Lisp_Object val = funcall_general (args[0], nargs - 1, args + 1);
+
lisp_eval_depth--;
if (backtrace_debug_on_exit (specpdl + count))
val = call_debugger (list2 (Qexit, val));
@@ -3228,15 +3222,16 @@ funcall_subr (struct Lisp_Subr *subr, ptrdiff_t
numargs, Lisp_Object *args)
bytecode string and constants vector, fetch them from the file first. */
static Lisp_Object
-fetch_and_exec_byte_code (Lisp_Object fun, Lisp_Object syms_left,
+fetch_and_exec_byte_code (Lisp_Object fun, ptrdiff_t args_template,
ptrdiff_t nargs, Lisp_Object *args)
{
if (CONSP (AREF (fun, COMPILED_BYTECODE)))
Ffetch_bytecode (fun);
+
return exec_byte_code (AREF (fun, COMPILED_BYTECODE),
AREF (fun, COMPILED_CONSTANTS),
AREF (fun, COMPILED_STACK_DEPTH),
- syms_left, nargs, args);
+ args_template, nargs, args);
}
static Lisp_Object
@@ -3314,7 +3309,8 @@ funcall_lambda (Lisp_Object fun, ptrdiff_t nargs,
argument-binding code below instead (as do all interpreted
functions, even lexically bound ones). */
{
- return fetch_and_exec_byte_code (fun, syms_left, nargs, arg_vector);
+ return fetch_and_exec_byte_code (fun, XFIXNUM (syms_left),
+ nargs, arg_vector);
}
lexenv = Qnil;
}
@@ -3400,7 +3396,7 @@ funcall_lambda (Lisp_Object fun, ptrdiff_t nargs,
val = XSUBR (fun)->function.a0 ();
}
else
- val = fetch_and_exec_byte_code (fun, Qnil, 0, NULL);
+ val = fetch_and_exec_byte_code (fun, 0, 0, NULL);
return unbind_to (count, val);
}
diff --git a/src/filelock.c b/src/filelock.c
index a213c2b3ca..eb8d9ab5e0 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -490,15 +490,29 @@ read_lock_data (char *lfname, char lfinfo[MAX_LFINFO + 1])
return nbytes;
}
+/* True if errno values are negative. Although the C standard
+ requires them to be positive, they are negative in Haiku. */
+enum { NEGATIVE_ERRNO = EDOM < 0 };
+
+/* Nonzero values that are not errno values. */
+enum
+ {
+ /* Another process on this machine owns it. */
+ ANOTHER_OWNS_IT = NEGATIVE_ERRNO ? 1 : -1,
+
+ /* This Emacs process owns it. */
+ I_OWN_IT = 2 * ANOTHER_OWNS_IT
+ };
+
/* Return 0 if nobody owns the lock file LFNAME or the lock is obsolete,
- -1 if another process owns it (and set OWNER (if non-null) to info),
- -2 if the current process owns it,
+ ANOTHER_OWNS_IT if another process owns it
+ (and set OWNER (if non-null) to info),
+ I_OWN_IT if the current process owns it,
or an errno value if something is wrong with the locking mechanism. */
static int
current_lock_owner (lock_info_type *owner, char *lfname)
{
- int ret;
lock_info_type local_owner;
ptrdiff_t lfinfolen;
intmax_t pid, boot_time;
@@ -571,13 +585,13 @@ current_lock_owner (lock_info_type *owner, char *lfname)
&& memcmp (at + 1, SSDATA (system_name), SBYTES (system_name)) == 0)
{
if (pid == getpid ())
- ret = -2; /* We own it. */
+ return I_OWN_IT;
else if (0 < pid && pid <= TYPE_MAXIMUM (pid_t)
&& (kill (pid, 0) >= 0 || errno == EPERM)
&& (boot_time == 0
|| (boot_time <= TYPE_MAXIMUM (time_t)
&& within_one_second (boot_time, get_boot_time ()))))
- ret = -1; /* An existing process on this machine owns it. */
+ return ANOTHER_OWNS_IT;
/* The owner process is dead or has a strange pid, so try to
zap the lockfile. */
else
@@ -586,18 +600,16 @@ current_lock_owner (lock_info_type *owner, char *lfname)
else
{ /* If we wanted to support the check for stale locks on remote machines,
here's where we'd do it. */
- ret = -1;
+ return ANOTHER_OWNS_IT;
}
-
- return ret;
}
/* Lock the lock named LFNAME if possible.
Return 0 in that case.
- Return negative if some other process owns the lock, and info about
+ Return ANOTHER_OWNS_IT if some other process owns the lock, and info about
that process in CLASHER.
- Return positive errno value if cannot lock for any other reason. */
+ Return errno value if cannot lock for any other reason. */
static int
lock_if_free (lock_info_type *clasher, char *lfname)
@@ -606,14 +618,14 @@ lock_if_free (lock_info_type *clasher, char *lfname)
while ((err = lock_file_1 (lfname, 0)) == EEXIST)
{
err = current_lock_owner (clasher, lfname);
+
+ /* Return if we locked it, or another process owns it, or it is
+ a strange error. */
if (err != 0)
- {
- if (err < 0)
- return -2 - err; /* We locked it, or someone else has it. */
- break; /* current_lock_owner returned strange error. */
- }
+ return err == I_OWN_IT ? 0 : err;
- /* We deleted a stale lock; try again to lock the file. */
+ /* We deleted a stale lock or some other process deleted the lock;
+ try again to lock the file. */
}
return err;
@@ -674,12 +686,12 @@ lock_file (Lisp_Object fn)
if (!NILP (subject_buf)
&& NILP (Fverify_visited_file_modtime (subject_buf))
&& !NILP (Ffile_exists_p (fn))
- && current_lock_owner (NULL, lfname) != -2)
+ && current_lock_owner (NULL, lfname) != I_OWN_IT)
call1 (intern ("userlock--ask-user-about-supersession-threat"), fn);
/* Try to lock the lock. FIXME: This ignores errors when
- lock_if_free returns a positive errno value. */
- if (lock_if_free (&lock_info, lfname) < 0)
+ lock_if_free returns an errno value. */
+ if (lock_if_free (&lock_info, lfname) == ANOTHER_OWNS_IT)
{
/* Someone else has the lock. Consider breaking it. */
Lisp_Object attack;
@@ -710,9 +722,9 @@ unlock_file (Lisp_Object fn)
lfname = SSDATA (ENCODE_FILE (lock_filename));
int err = current_lock_owner (0, lfname);
- if (err == -2 && unlink (lfname) != 0 && errno != ENOENT)
- err = errno;
- if (0 < err)
+ if (! (err == 0 || err == ANOTHER_OWNS_IT
+ || (err == I_OWN_IT
+ && (unlink (lfname) == 0 || (err = errno) == ENOENT))))
report_file_errno ("Unlocking file", fn, err);
return Qnil;
@@ -858,8 +870,10 @@ t if it is locked by you, else a string saying which user
has locked it. */)
owner = current_lock_owner (&locker, lfname);
switch (owner)
{
- case -2: ret = Qt; break;
- case -1: ret = make_string (locker.user, locker.at - locker.user); break;
+ case I_OWN_IT: ret = Qt; break;
+ case ANOTHER_OWNS_IT:
+ ret = make_string (locker.user, locker.at - locker.user);
+ break;
case 0: ret = Qnil; break;
default: report_file_errno ("Testing file lock", filename, owner);
}
diff --git a/src/fns.c b/src/fns.c
index 86c49e6fc6..c67871da74 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -643,18 +643,19 @@ Do NOT use this function to compare file names for
equality. */)
}
static Lisp_Object concat (ptrdiff_t nargs, Lisp_Object *args,
- enum Lisp_Type target_type, bool last_special);
+ Lisp_Object last_tail, bool vector_target);
+static Lisp_Object concat_strings (ptrdiff_t nargs, Lisp_Object *args);
Lisp_Object
concat2 (Lisp_Object s1, Lisp_Object s2)
{
- return concat (2, ((Lisp_Object []) {s1, s2}), Lisp_String, 0);
+ return concat_strings (2, ((Lisp_Object []) {s1, s2}));
}
Lisp_Object
concat3 (Lisp_Object s1, Lisp_Object s2, Lisp_Object s3)
{
- return concat (3, ((Lisp_Object []) {s1, s2, s3}), Lisp_String, 0);
+ return concat_strings (3, ((Lisp_Object []) {s1, s2, s3}));
}
DEFUN ("append", Fappend, Sappend, 0, MANY, 0,
@@ -665,7 +666,9 @@ The last argument is not copied, just used as the tail of
the new list.
usage: (append &rest SEQUENCES) */)
(ptrdiff_t nargs, Lisp_Object *args)
{
- return concat (nargs, args, Lisp_Cons, 1);
+ if (nargs == 0)
+ return Qnil;
+ return concat (nargs - 1, args, args[nargs - 1], false);
}
DEFUN ("concat", Fconcat, Sconcat, 0, MANY, 0,
@@ -678,7 +681,7 @@ to be `eq'.
usage: (concat &rest SEQUENCES) */)
(ptrdiff_t nargs, Lisp_Object *args)
{
- return concat (nargs, args, Lisp_String, 0);
+ return concat_strings (nargs, args);
}
DEFUN ("vconcat", Fvconcat, Svconcat, 0, MANY, 0,
@@ -688,7 +691,7 @@ Each argument may be a list, vector or string.
usage: (vconcat &rest SEQUENCES) */)
(ptrdiff_t nargs, Lisp_Object *args)
{
- return concat (nargs, args, Lisp_Vectorlike, 0);
+ return concat (nargs, args, Qnil, true);
}
@@ -702,16 +705,48 @@ the same empty object instead of its copy. */)
{
if (NILP (arg)) return arg;
- if (RECORDP (arg))
+ if (CONSP (arg))
{
- return Frecord (PVSIZE (arg), XVECTOR (arg)->contents);
+ Lisp_Object val = Fcons (XCAR (arg), Qnil);
+ Lisp_Object prev = val;
+ Lisp_Object tail = XCDR (arg);
+ FOR_EACH_TAIL (tail)
+ {
+ Lisp_Object c = Fcons (XCAR (tail), Qnil);
+ XSETCDR (prev, c);
+ prev = c;
+ }
+ CHECK_LIST_END (tail, tail);
+ return val;
}
- if (CHAR_TABLE_P (arg))
+ if (STRINGP (arg))
{
- return copy_char_table (arg);
+ ptrdiff_t bytes = SBYTES (arg);
+ ptrdiff_t chars = SCHARS (arg);
+ Lisp_Object val = STRING_MULTIBYTE (arg)
+ ? make_uninit_multibyte_string (chars, bytes)
+ : make_uninit_string (bytes);
+ memcpy (SDATA (val), SDATA (arg), bytes);
+ INTERVAL ivs = string_intervals (arg);
+ if (ivs)
+ {
+ INTERVAL copy = copy_intervals (ivs, 0, chars);
+ set_interval_object (copy, val);
+ set_string_intervals (val, copy);
+ }
+ return val;
}
+ if (VECTORP (arg))
+ return Fvector (ASIZE (arg), XVECTOR (arg)->contents);
+
+ if (RECORDP (arg))
+ return Frecord (PVSIZE (arg), XVECTOR (arg)->contents);
+
+ if (CHAR_TABLE_P (arg))
+ return copy_char_table (arg);
+
if (BOOL_VECTOR_P (arg))
{
EMACS_INT nbits = bool_vector_size (arg);
@@ -721,13 +756,10 @@ the same empty object instead of its copy. */)
return val;
}
- if (!CONSP (arg) && !VECTORP (arg) && !STRINGP (arg))
- wrong_type_argument (Qsequencep, arg);
-
- return concat (1, &arg, XTYPE (arg), 0);
+ wrong_type_argument (Qsequencep, arg);
}
-/* This structure holds information of an argument of `concat' that is
+/* This structure holds information of an argument of `concat_strings' that is
a string and has text properties to be copied. */
struct textprop_rec
{
@@ -737,278 +769,308 @@ struct textprop_rec
};
static Lisp_Object
-concat (ptrdiff_t nargs, Lisp_Object *args,
- enum Lisp_Type target_type, bool last_special)
+concat_strings (ptrdiff_t nargs, Lisp_Object *args)
{
- Lisp_Object val;
- Lisp_Object tail;
- Lisp_Object this;
- ptrdiff_t toindex;
- ptrdiff_t toindex_byte = 0;
- EMACS_INT result_len;
- EMACS_INT result_len_byte;
- ptrdiff_t argnum;
- Lisp_Object last_tail;
- Lisp_Object prev;
- bool some_multibyte;
- /* When we make a multibyte string, we can't copy text properties
- while concatenating each string because the length of resulting
- string can't be decided until we finish the whole concatenation.
- So, we record strings that have text properties to be copied
- here, and copy the text properties after the concatenation. */
- struct textprop_rec *textprops = NULL;
- /* Number of elements in textprops. */
- ptrdiff_t num_textprops = 0;
USE_SAFE_ALLOCA;
- tail = Qnil;
-
- /* In append, the last arg isn't treated like the others */
- if (last_special && nargs > 0)
- {
- nargs--;
- last_tail = args[nargs];
- }
- else
- last_tail = Qnil;
-
- /* Check each argument. */
- for (argnum = 0; argnum < nargs; argnum++)
- {
- this = args[argnum];
- if (!(CONSP (this) || NILP (this) || VECTORP (this) || STRINGP (this)
- || COMPILEDP (this) || BOOL_VECTOR_P (this)))
- wrong_type_argument (Qsequencep, this);
- }
-
- /* Compute total length in chars of arguments in RESULT_LEN.
- If desired output is a string, also compute length in bytes
- in RESULT_LEN_BYTE, and determine in SOME_MULTIBYTE
+ /* Check types and compute total length in chars of arguments in RESULT_LEN,
+ length in bytes in RESULT_LEN_BYTE, and determine in DEST_MULTIBYTE
whether the result should be a multibyte string. */
- result_len_byte = 0;
- result_len = 0;
- some_multibyte = 0;
- for (argnum = 0; argnum < nargs; argnum++)
+ EMACS_INT result_len = 0;
+ EMACS_INT result_len_byte = 0;
+ bool dest_multibyte = false;
+ bool some_unibyte = false;
+ for (ptrdiff_t i = 0; i < nargs; i++)
{
+ Lisp_Object arg = args[i];
EMACS_INT len;
- this = args[argnum];
- len = XFIXNAT (Flength (this));
- if (target_type == Lisp_String)
- {
- /* We must count the number of bytes needed in the string
- as well as the number of characters. */
- ptrdiff_t i;
- Lisp_Object ch;
- int c;
- ptrdiff_t this_len_byte;
- if (VECTORP (this) || COMPILEDP (this))
- for (i = 0; i < len; i++)
- {
- ch = AREF (this, i);
- CHECK_CHARACTER (ch);
- c = XFIXNAT (ch);
- this_len_byte = CHAR_BYTES (c);
- if (STRING_BYTES_BOUND - result_len_byte < this_len_byte)
- string_overflow ();
- result_len_byte += this_len_byte;
- if (! ASCII_CHAR_P (c) && ! CHAR_BYTE8_P (c))
- some_multibyte = 1;
- }
- else if (BOOL_VECTOR_P (this) && bool_vector_size (this) > 0)
- wrong_type_argument (Qintegerp, Faref (this, make_fixnum (0)));
- else if (CONSP (this))
- for (; CONSP (this); this = XCDR (this))
- {
- ch = XCAR (this);
- CHECK_CHARACTER (ch);
- c = XFIXNAT (ch);
- this_len_byte = CHAR_BYTES (c);
- if (STRING_BYTES_BOUND - result_len_byte < this_len_byte)
- string_overflow ();
- result_len_byte += this_len_byte;
- if (! ASCII_CHAR_P (c) && ! CHAR_BYTE8_P (c))
- some_multibyte = 1;
- }
- else if (STRINGP (this))
+ /* We must count the number of bytes needed in the string
+ as well as the number of characters. */
+
+ if (STRINGP (arg))
+ {
+ ptrdiff_t arg_len_byte = SBYTES (arg);
+ len = SCHARS (arg);
+ if (STRING_MULTIBYTE (arg))
+ dest_multibyte = true;
+ else
+ some_unibyte = true;
+ if (STRING_BYTES_BOUND - result_len_byte < arg_len_byte)
+ string_overflow ();
+ result_len_byte += arg_len_byte;
+ }
+ else if (VECTORP (arg))
+ {
+ len = ASIZE (arg);
+ ptrdiff_t arg_len_byte = 0;
+ for (ptrdiff_t j = 0; j < len; j++)
{
- if (STRING_MULTIBYTE (this))
- {
- some_multibyte = 1;
- this_len_byte = SBYTES (this);
- }
- else
- this_len_byte = count_size_as_multibyte (SDATA (this),
- SCHARS (this));
- if (STRING_BYTES_BOUND - result_len_byte < this_len_byte)
- string_overflow ();
- result_len_byte += this_len_byte;
+ Lisp_Object ch = AREF (arg, j);
+ CHECK_CHARACTER (ch);
+ int c = XFIXNAT (ch);
+ arg_len_byte += CHAR_BYTES (c);
+ if (!ASCII_CHAR_P (c) && !CHAR_BYTE8_P (c))
+ dest_multibyte = true;
}
+ if (STRING_BYTES_BOUND - result_len_byte < arg_len_byte)
+ string_overflow ();
+ result_len_byte += arg_len_byte;
}
+ else if (NILP (arg))
+ continue;
+ else if (CONSP (arg))
+ {
+ len = XFIXNAT (Flength (arg));
+ ptrdiff_t arg_len_byte = 0;
+ for (; CONSP (arg); arg = XCDR (arg))
+ {
+ Lisp_Object ch = XCAR (arg);
+ CHECK_CHARACTER (ch);
+ int c = XFIXNAT (ch);
+ arg_len_byte += CHAR_BYTES (c);
+ if (!ASCII_CHAR_P (c) && !CHAR_BYTE8_P (c))
+ dest_multibyte = true;
+ }
+ if (STRING_BYTES_BOUND - result_len_byte < arg_len_byte)
+ string_overflow ();
+ result_len_byte += arg_len_byte;
+ }
+ else
+ wrong_type_argument (Qsequencep, arg);
result_len += len;
if (MOST_POSITIVE_FIXNUM < result_len)
memory_full (SIZE_MAX);
}
- if (! some_multibyte)
+ if (dest_multibyte && some_unibyte)
+ {
+ /* Non-ASCII characters in unibyte strings take two bytes when
+ converted to multibyte -- count them and adjust the total. */
+ for (ptrdiff_t i = 0; i < nargs; i++)
+ {
+ Lisp_Object arg = args[i];
+ if (STRINGP (arg) && !STRING_MULTIBYTE (arg))
+ {
+ ptrdiff_t bytes = SCHARS (arg);
+ const unsigned char *s = SDATA (arg);
+ ptrdiff_t nonascii = 0;
+ for (ptrdiff_t j = 0; j < bytes; j++)
+ nonascii += s[j] >> 7;
+ if (STRING_BYTES_BOUND - result_len_byte < nonascii)
+ string_overflow ();
+ result_len_byte += nonascii;
+ }
+ }
+ }
+
+ if (!dest_multibyte)
result_len_byte = result_len;
/* Create the output object. */
- if (target_type == Lisp_Cons)
- val = Fmake_list (make_fixnum (result_len), Qnil);
- else if (target_type == Lisp_Vectorlike)
- val = make_nil_vector (result_len);
- else if (some_multibyte)
- val = make_uninit_multibyte_string (result_len, result_len_byte);
- else
- val = make_uninit_string (result_len);
-
- /* In `append', if all but last arg are nil, return last arg. */
- if (target_type == Lisp_Cons && NILP (val))
- return last_tail;
+ Lisp_Object result = dest_multibyte
+ ? make_uninit_multibyte_string (result_len, result_len_byte)
+ : make_uninit_string (result_len);
/* Copy the contents of the args into the result. */
- if (CONSP (val))
- tail = val, toindex = -1; /* -1 in toindex is flag we are making a list */
- else
- toindex = 0, toindex_byte = 0;
+ ptrdiff_t toindex = 0;
+ ptrdiff_t toindex_byte = 0;
- prev = Qnil;
- if (STRINGP (val))
- SAFE_NALLOCA (textprops, 1, nargs);
+ /* When we make a multibyte string, we can't copy text properties
+ while concatenating each string because the length of resulting
+ string can't be decided until we finish the whole concatenation.
+ So, we record strings that have text properties to be copied
+ here, and copy the text properties after the concatenation. */
+ struct textprop_rec *textprops;
+ /* Number of elements in textprops. */
+ ptrdiff_t num_textprops = 0;
+ SAFE_NALLOCA (textprops, 1, nargs);
- for (argnum = 0; argnum < nargs; argnum++)
+ for (ptrdiff_t i = 0; i < nargs; i++)
{
- Lisp_Object thislen;
- ptrdiff_t thisleni = 0;
- ptrdiff_t thisindex = 0;
- ptrdiff_t thisindex_byte = 0;
-
- this = args[argnum];
- if (!CONSP (this))
- thislen = Flength (this), thisleni = XFIXNUM (thislen);
-
- /* Between strings of the same kind, copy fast. */
- if (STRINGP (this) && STRINGP (val)
- && STRING_MULTIBYTE (this) == some_multibyte)
+ Lisp_Object arg = args[i];
+ if (STRINGP (arg))
{
- ptrdiff_t thislen_byte = SBYTES (this);
-
- memcpy (SDATA (val) + toindex_byte, SDATA (this), SBYTES (this));
- if (string_intervals (this))
+ if (string_intervals (arg))
{
- textprops[num_textprops].argnum = argnum;
+ textprops[num_textprops].argnum = i;
textprops[num_textprops].from = 0;
- textprops[num_textprops++].to = toindex;
+ textprops[num_textprops].to = toindex;
+ num_textprops++;
+ }
+ ptrdiff_t nchars = SCHARS (arg);
+ if (STRING_MULTIBYTE (arg) == dest_multibyte)
+ {
+ /* Between strings of the same kind, copy fast. */
+ ptrdiff_t arg_len_byte = SBYTES (arg);
+ memcpy (SDATA (result) + toindex_byte, SDATA (arg), arg_len_byte);
+ toindex_byte += arg_len_byte;
+ }
+ else
+ {
+ /* Copy a single-byte string to a multibyte string. */
+ toindex_byte += copy_text (SDATA (arg),
+ SDATA (result) + toindex_byte,
+ nchars, 0, 1);
}
- toindex_byte += thislen_byte;
- toindex += thisleni;
+ toindex += nchars;
}
- /* Copy a single-byte string to a multibyte string. */
- else if (STRINGP (this) && STRINGP (val))
+ else if (VECTORP (arg))
{
- if (string_intervals (this))
+ ptrdiff_t len = ASIZE (arg);
+ for (ptrdiff_t j = 0; j < len; j++)
{
- textprops[num_textprops].argnum = argnum;
- textprops[num_textprops].from = 0;
- textprops[num_textprops++].to = toindex;
+ int c = XFIXNAT (AREF (arg, j));
+ if (dest_multibyte)
+ toindex_byte += CHAR_STRING (c, SDATA (result) + toindex_byte);
+ else
+ SSET (result, toindex_byte++, c);
+ toindex++;
}
- toindex_byte += copy_text (SDATA (this),
- SDATA (val) + toindex_byte,
- SCHARS (this), 0, 1);
- toindex += thisleni;
}
else
- /* Copy element by element. */
- while (1)
+ for (Lisp_Object tail = arg; !NILP (tail); tail = XCDR (tail))
{
- register Lisp_Object elt;
-
- /* Fetch next element of `this' arg into `elt', or break if
- `this' is exhausted. */
- if (NILP (this)) break;
- if (CONSP (this))
- elt = XCAR (this), this = XCDR (this);
- else if (thisindex >= thisleni)
- break;
- else if (STRINGP (this))
- {
- int c;
- if (STRING_MULTIBYTE (this))
- c = fetch_string_char_advance_no_check (this, &thisindex,
- &thisindex_byte);
- else
- {
- c = SREF (this, thisindex); thisindex++;
- if (some_multibyte && !ASCII_CHAR_P (c))
- c = BYTE8_TO_CHAR (c);
- }
- XSETFASTINT (elt, c);
- }
- else if (BOOL_VECTOR_P (this))
- {
- elt = bool_vector_ref (this, thisindex);
- thisindex++;
- }
- else
- {
- elt = AREF (this, thisindex);
- thisindex++;
- }
-
- /* Store this element into the result. */
- if (toindex < 0)
- {
- XSETCAR (tail, elt);
- prev = tail;
- tail = XCDR (tail);
- }
- else if (VECTORP (val))
- {
- ASET (val, toindex, elt);
- toindex++;
- }
+ int c = XFIXNAT (XCAR (tail));
+ if (dest_multibyte)
+ toindex_byte += CHAR_STRING (c, SDATA (result) + toindex_byte);
else
- {
- int c;
- CHECK_CHARACTER (elt);
- c = XFIXNAT (elt);
- if (some_multibyte)
- toindex_byte += CHAR_STRING (c, SDATA (val) + toindex_byte);
- else
- SSET (val, toindex_byte++, c);
- toindex++;
- }
+ SSET (result, toindex_byte++, c);
+ toindex++;
}
}
- if (!NILP (prev))
- XSETCDR (prev, last_tail);
if (num_textprops > 0)
{
- Lisp_Object props;
ptrdiff_t last_to_end = -1;
-
- for (argnum = 0; argnum < num_textprops; argnum++)
+ for (ptrdiff_t i = 0; i < num_textprops; i++)
{
- this = args[textprops[argnum].argnum];
- props = text_property_list (this,
- make_fixnum (0),
- make_fixnum (SCHARS (this)),
- Qnil);
+ Lisp_Object arg = args[textprops[i].argnum];
+ Lisp_Object props = text_property_list (arg,
+ make_fixnum (0),
+ make_fixnum (SCHARS (arg)),
+ Qnil);
/* If successive arguments have properties, be sure that the
value of `composition' property be the copy. */
- if (last_to_end == textprops[argnum].to)
+ if (last_to_end == textprops[i].to)
make_composition_value_copy (props);
- add_text_properties_from_list (val, props,
- make_fixnum (textprops[argnum].to));
- last_to_end = textprops[argnum].to + SCHARS (this);
+ add_text_properties_from_list (result, props,
+ make_fixnum (textprops[i].to));
+ last_to_end = textprops[i].to + SCHARS (arg);
}
}
SAFE_FREE ();
- return val;
+ return result;
+}
+
+/* Concatenate sequences into a list or vector. */
+
+Lisp_Object
+concat (ptrdiff_t nargs, Lisp_Object *args, Lisp_Object last_tail,
+ bool vector_target)
+{
+ /* Check argument types and compute total length of arguments. */
+ EMACS_INT result_len = 0;
+ for (ptrdiff_t i = 0; i < nargs; i++)
+ {
+ Lisp_Object arg = args[i];
+ if (!(CONSP (arg) || NILP (arg) || VECTORP (arg) || STRINGP (arg)
+ || COMPILEDP (arg) || BOOL_VECTOR_P (arg)))
+ wrong_type_argument (Qsequencep, arg);
+ EMACS_INT len = XFIXNAT (Flength (arg));
+ result_len += len;
+ if (MOST_POSITIVE_FIXNUM < result_len)
+ memory_full (SIZE_MAX);
+ }
+
+ /* When the target is a list, return the tail directly if all other
+ arguments are empty. */
+ if (!vector_target && result_len == 0)
+ return last_tail;
+
+ /* Create the output object. */
+ Lisp_Object result = vector_target
+ ? make_nil_vector (result_len)
+ : Fmake_list (make_fixnum (result_len), Qnil);
+
+ /* Copy the contents of the args into the result. */
+ Lisp_Object tail = Qnil;
+ ptrdiff_t toindex = 0;
+ if (CONSP (result))
+ {
+ tail = result;
+ toindex = -1; /* -1 in toindex is flag we are making a list */
+ }
+
+ Lisp_Object prev = Qnil;
+
+ for (ptrdiff_t i = 0; i < nargs; i++)
+ {
+ ptrdiff_t arglen = 0;
+ ptrdiff_t argindex = 0;
+ ptrdiff_t argindex_byte = 0;
+
+ Lisp_Object arg = args[i];
+ if (!CONSP (arg))
+ arglen = XFIXNUM (Flength (arg));
+
+ /* Copy element by element. */
+ while (1)
+ {
+ /* Fetch next element of `arg' arg into `elt', or break if
+ `arg' is exhausted. */
+ Lisp_Object elt;
+ if (CONSP (arg))
+ {
+ elt = XCAR (arg);
+ arg = XCDR (arg);
+ }
+ else if (NILP (arg) || argindex >= arglen)
+ break;
+ else if (STRINGP (arg))
+ {
+ int c;
+ if (STRING_MULTIBYTE (arg))
+ c = fetch_string_char_advance_no_check (arg, &argindex,
+ &argindex_byte);
+ else
+ {
+ c = SREF (arg, argindex);
+ argindex++;
+ }
+ XSETFASTINT (elt, c);
+ }
+ else if (BOOL_VECTOR_P (arg))
+ {
+ elt = bool_vector_ref (arg, argindex);
+ argindex++;
+ }
+ else
+ {
+ elt = AREF (arg, argindex);
+ argindex++;
+ }
+
+ /* Store this element into the result. */
+ if (toindex < 0)
+ {
+ XSETCAR (tail, elt);
+ prev = tail;
+ tail = XCDR (tail);
+ }
+ else
+ {
+ ASET (result, toindex, elt);
+ toindex++;
+ }
+ }
+ }
+ if (!NILP (prev))
+ XSETCDR (prev, last_tail);
+
+ return result;
}
static Lisp_Object string_char_byte_cache_string;
@@ -1380,7 +1442,7 @@ Elements of ALIST that are not conses are also shared.
*/)
{
if (NILP (alist))
return alist;
- alist = concat (1, &alist, Lisp_Cons, false);
+ alist = Fcopy_sequence (alist);
for (Lisp_Object tem = alist; !NILP (tem); tem = XCDR (tem))
{
Lisp_Object car = XCAR (tem);
@@ -2569,6 +2631,13 @@ internal_equal (Lisp_Object o1, Lisp_Object o2, enum
equal_kind equal_kind,
}
}
+ /* A symbol with position compares the contained symbol, and is
+ `equal' to the corresponding ordinary symbol. */
+ if (SYMBOL_WITH_POS_P (o1))
+ o1 = SYMBOL_WITH_POS_SYM (o1);
+ if (SYMBOL_WITH_POS_P (o2))
+ o2 = SYMBOL_WITH_POS_SYM (o2);
+
if (EQ (o1, o2))
return true;
if (XTYPE (o1) != XTYPE (o2))
@@ -3105,25 +3174,25 @@ require_unwind (Lisp_Object old_value)
}
DEFUN ("require", Frequire, Srequire, 1, 3, 0,
- doc: /* If feature FEATURE is not loaded, load it from FILENAME.
-If FEATURE is not a member of the list `features', then the feature is
-not loaded; so load the file FILENAME.
+ doc: /* If FEATURE is not already loaded, load it from FILENAME.
+If FEATURE is not a member of the list `features', then the feature was
+not yet loaded; so load it from file FILENAME.
If FILENAME is omitted, the printname of FEATURE is used as the file
-name, and `load' will try to load this name appended with the suffix
-`.elc', `.el', or the system-dependent suffix for dynamic module
-files, in that order. The name without appended suffix will not be
-used. See `get-load-suffixes' for the complete list of suffixes.
+name, and `load' is called to try to load the file by that name, after
+appending the suffix `.elc', `.el', or the system-dependent suffix for
+dynamic module files, in that order; but the function will not try to
+load the file without any suffix. See `get-load-suffixes' for the
+complete list of suffixes.
-The directories in `load-path' are searched when trying to find the
-file name.
+To find the file, this function searches that directories in `load-path'.
-If the optional third argument NOERROR is non-nil, then return nil if
-the file is not found instead of signaling an error. Normally the
-return value is FEATURE.
+If the optional third argument NOERROR is non-nil, then, if
+the file is not found, the function returns nil instead of signaling
+an error. Normally the return value is FEATURE.
-The normal messages at start and end of loading FILENAME are
-suppressed. */)
+The normal messages issued by `load' at start and end of loading
+FILENAME are suppressed. */)
(Lisp_Object feature, Lisp_Object filename, Lisp_Object noerror)
{
Lisp_Object tem;
@@ -3180,12 +3249,8 @@ suppressed. */)
record_unwind_protect (require_unwind, require_nesting_list);
require_nesting_list = Fcons (feature, require_nesting_list);
- /* Value saved here is to be restored into Vautoload_queue */
- record_unwind_protect (un_autoload, Vautoload_queue);
- Vautoload_queue = Qt;
-
/* Load the file. */
- tem = save_match_data_load
+ tem = load_with_autoload_queue
(NILP (filename) ? Fsymbol_name (feature) : filename,
noerror, Qt, Qnil, (NILP (filename) ? Qt : Qnil));
@@ -3207,8 +3272,6 @@ suppressed. */)
SDATA (tem3), tem2);
}
- /* Once loading finishes, don't undo it. */
- Vautoload_queue = Qt;
feature = unbind_to (count, feature);
}
@@ -4479,7 +4542,10 @@ hash_lookup (struct Lisp_Hash_Table *h, Lisp_Object key,
Lisp_Object *hash)
{
ptrdiff_t start_of_bucket, i;
- Lisp_Object hash_code = h->test.hashfn (key, h);
+ Lisp_Object hash_code;
+ if (SYMBOL_WITH_POS_P (key))
+ key = SYMBOL_WITH_POS_SYM (key);
+ hash_code = h->test.hashfn (key, h);
if (hash)
*hash = hash_code;
diff --git a/src/font.c b/src/font.c
index 58ff1a7981..7e0219181c 100644
--- a/src/font.c
+++ b/src/font.c
@@ -2183,7 +2183,9 @@ font_score (Lisp_Object entity, Lisp_Object *spec_prop)
/* Score three style numeric fields. Maximum difference is 127. */
for (i = FONT_WEIGHT_INDEX; i <= FONT_WIDTH_INDEX; i++)
- if (! NILP (spec_prop[i]) && ! EQ (AREF (entity, i), spec_prop[i]))
+ if (! NILP (spec_prop[i])
+ && ! EQ (AREF (entity, i), spec_prop[i])
+ && FIXNUMP (AREF (entity, i)))
{
EMACS_INT diff = ((XFIXNUM (AREF (entity, i)) >> 8)
- (XFIXNUM (spec_prop[i]) >> 8));
@@ -2764,29 +2766,31 @@ font_delete_unmatched (Lisp_Object vec, Lisp_Object
spec, int size)
{
if (FIXNUMP (AREF (spec, prop)))
{
- int required = XFIXNUM (AREF (spec, prop)) >> 8;
- int candidate = XFIXNUM (AREF (entity, prop)) >> 8;
-
- if (candidate != required
- /* A kludge for w32 font search, where listing a
- family returns only 4 standard weights: regular,
- italic, bold, bold-italic. For other values one
- must specify the font, not just the family in the
- :family attribute of the face. But specifying
- :family in the face attributes looks for regular
- weight, so if we require exact match, the
- non-regular font will be rejected. So we relax
- the accuracy of the match here, and let
- font_sort_entities find the best match.
-
- Similar things happen on Posix platforms, when
- people use font families that don't have the
- regular weight, only the medium weight: these
- families get rejected if we require an exact match. */
- && (prop != FONT_WEIGHT_INDEX
- || eabs (candidate - required) > 100)
- )
+ if (!FIXNUMP (AREF (entity, prop)))
prop = FONT_SPEC_MAX;
+ else
+ {
+ int required = XFIXNUM (AREF (spec, prop)) >> 8;
+ int candidate = XFIXNUM (AREF (entity, prop)) >> 8;
+
+ if (candidate != required
+#ifdef HAVE_NTGUI
+ /* A kludge for w32 font search, where listing a
+ family returns only 4 standard weights: regular,
+ italic, bold, bold-italic. For other values one
+ must specify the font, not just the family in the
+ :family attribute of the face. But specifying
+ :family in the face attributes looks for regular
+ weight, so if we require exact match, the
+ non-regular font will be rejected. So we relax
+ the accuracy of the match here, and let
+ font_sort_entities find the best match. */
+ && (prop != FONT_WEIGHT_INDEX
+ || eabs (candidate - required) > 100)
+#endif
+ )
+ prop = FONT_SPEC_MAX;
+ }
}
}
if (prop < FONT_SPEC_MAX
diff --git a/src/frame.c b/src/frame.c
index 92120792f8..8aaff949ba 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -277,6 +277,8 @@ The value is a symbol:
`w32' for an Emacs frame that is a window on MS-Windows display,
`ns' for an Emacs frame on a GNUstep or Macintosh Cocoa display,
`pc' for a direct-write MS-DOS frame.
+ `pgtk' for an Emacs frame using pure GTK facilities.
+ `haiku' for an Emacs frame running in Haiku.
FRAME defaults to the currently selected frame.
@@ -2380,9 +2382,12 @@ delete_frame (Lisp_Object frame, Lisp_Object force)
}
DEFUN ("delete-frame", Fdelete_frame, Sdelete_frame, 0, 2, "",
- doc: /* Delete FRAME, permanently eliminating it from use.
+ doc: /* Delete FRAME, eliminating it from use.
FRAME must be a live frame and defaults to the selected one.
+When `undelete-frame-mode' is enabled, the 16 most recently deleted
+frames can be undeleted with `undelete-frame', which see.
+
A frame may not be deleted if its minibuffer serves as surrogate
minibuffer for another frame. Normally, you may not delete a frame if
all other frames are invisible, but if the second optional argument
@@ -6467,6 +6472,14 @@ This variable is effective only with the X toolkit (and
there only when
Gtk+ tooltips are not used) and on Windows. */);
tooltip_reuse_hidden_frame = false;
+ DEFVAR_BOOL ("use-system-tooltips", use_system_tooltips,
+ doc: /* Use the toolkit to display tooltips.
+This option is only meaningful when Emacs is built with GTK+ or Haiku
+windowing support, and results in tooltips that look like those
+displayed by other GTK+ or Haiku programs, but will not be able to
+display text properties inside tooltip text. */);
+ use_system_tooltips = true;
+
DEFVAR_LISP ("iconify-child-frame", iconify_child_frame,
doc: /* How to handle iconification of child frames.
This variable tells Emacs how to proceed when it is asked to iconify a
diff --git a/src/ftfont.c b/src/ftfont.c
index 2bdcce306b..5797300d23 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -189,6 +189,24 @@ ftfont_pattern_entity (FcPattern *p, Lisp_Object extra)
return Qnil;
if (FcPatternGetInteger (p, FC_INDEX, 0, &idx) != FcResultMatch)
return Qnil;
+#ifdef FC_VARIABLE
+ /* This is a virtual/meta FcPattern for a variable weight font, from
+ which it is possible to extract an FcRange value specifying the
+ minimum and maximum weights available in this file. We don't
+ need to know that information explicitly, so skip it. We will be
+ called with an FcPattern for each actually available, non-virtual
+ weight.
+
+ Fontconfig started generating virtual/meta patterns for variable
+ weight fonts in the same release that FC_VARIABLE was added, so
+ we conditionalize on that constant. This also ensures that
+ FcPatternGetRange is available. */
+ FcRange *range;
+ if (FcPatternGetRange (p, FC_WEIGHT, 0, &range) == FcResultMatch
+ && FcPatternGetBool (p, FC_VARIABLE, 0, &b) == FcResultMatch
+ && b == FcTrue)
+ return Qnil;
+#endif /* FC_VARIABLE */
file = (char *) str;
key = Fcons (build_unibyte_string (file), make_fixnum (idx));
@@ -863,6 +881,9 @@ ftfont_list (struct frame *f, Lisp_Object spec)
#if defined HAVE_XFT && defined FC_COLOR
FC_COLOR,
#endif
+#ifdef FC_VARIABLE
+ FC_VARIABLE,
+#endif /* FC_VARIABLE */
NULL);
if (! objset)
goto err;
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 93f51d7796..98907bf022 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -76,6 +76,13 @@ typedef struct pgtk_output xp_output;
#define XG_TEXT_OPEN GTK_STOCK_OPEN
#endif
+#ifndef HAVE_PGTK
+static void xg_im_context_commit (GtkIMContext *, gchar *, gpointer);
+static void xg_im_context_preedit_changed (GtkIMContext *, gpointer);
+static void xg_im_context_preedit_end (GtkIMContext *, gpointer);
+static bool xg_widget_key_press_event_cb (GtkWidget *, GdkEvent *, gpointer);
+#endif
+
#ifndef HAVE_GTK3
#ifdef HAVE_FREETYPE
@@ -1436,6 +1443,9 @@ xg_create_frame_widgets (struct frame *f)
GtkWidget *wfixed;
#ifndef HAVE_GTK3
GtkRcStyle *style;
+#endif
+#ifndef HAVE_PGTK
+ GtkIMContext *imc;
#endif
GtkWindowType type = GTK_WINDOW_TOPLEVEL;
char *title = 0;
@@ -1598,6 +1608,7 @@ xg_create_frame_widgets (struct frame *f)
/* Must use g_strdup because gtk_widget_modify_style does g_free. */
style->bg_pixmap_name[GTK_STATE_NORMAL] = g_strdup ("<none>");
gtk_widget_modify_style (wfixed, style);
+ gtk_widget_set_can_focus (wfixed, TRUE);
#else
gtk_widget_set_can_focus (wfixed, TRUE);
#ifdef HAVE_PGTK
@@ -1621,6 +1632,22 @@ xg_create_frame_widgets (struct frame *f)
#ifndef HAVE_PGTK
gtk_widget_set_tooltip_text (wtop, "Dummy text");
g_signal_connect (wtop, "query-tooltip", G_CALLBACK (qttip_cb), f);
+
+ imc = gtk_im_multicontext_new ();
+ g_object_ref (imc);
+ gtk_im_context_set_use_preedit (imc, TRUE);
+
+ g_signal_connect (G_OBJECT (imc), "commit",
+ G_CALLBACK (xg_im_context_commit), f);
+ g_signal_connect (G_OBJECT (imc), "preedit-changed",
+ G_CALLBACK (xg_im_context_preedit_changed), NULL);
+ g_signal_connect (G_OBJECT (imc), "preedit-end",
+ G_CALLBACK (xg_im_context_preedit_end), NULL);
+ FRAME_X_OUTPUT (f)->im_context = imc;
+
+ g_signal_connect (G_OBJECT (wfixed), "key-press-event",
+ G_CALLBACK (xg_widget_key_press_event_cb),
+ NULL);
#endif
{
@@ -1761,6 +1788,7 @@ xg_free_frame_widgets (struct frame *f)
/* x_free_frame_resources should have taken care of it */
#ifndef HAVE_PGTK
eassert (!FRAME_X_DOUBLE_BUFFERED_P (f));
+ g_object_unref (FRAME_X_OUTPUT (f)->im_context);
#endif
gtk_widget_destroy (FRAME_GTK_OUTER_WIDGET (f));
FRAME_X_WINDOW (f) = 0; /* Set to avoid XDestroyWindow in xterm.c */
@@ -2928,6 +2956,16 @@ xg_mark_data (void)
}
}
}
+
+#ifndef HAVE_PGTK
+ if (xg_pending_quit_event.kind != NO_EVENT)
+ {
+ eassert (xg_pending_quit_event.kind == ASCII_KEYSTROKE_EVENT);
+
+ mark_object (xg_pending_quit_event.frame_or_window);
+ mark_object (xg_pending_quit_event.arg);
+ }
+#endif
}
/* Callback called when a menu item is destroyed. Used to free data.
@@ -3974,6 +4012,7 @@ xg_update_frame_menubar (struct frame *f)
{
xp_output *x = f->output_data.xp;
GtkRequisition req;
+ int scale = xg_get_scale (f);
if (!x->menubar_widget || gtk_widget_get_mapped (x->menubar_widget))
return;
@@ -3991,9 +4030,9 @@ xg_update_frame_menubar (struct frame *f)
gtk_widget_show_all (x->menubar_widget);
gtk_widget_get_preferred_size (x->menubar_widget, NULL, &req);
req.height *= xg_get_scale (f);
- if (FRAME_MENUBAR_HEIGHT (f) != req.height)
+ if (FRAME_MENUBAR_HEIGHT (f) != (req.height * scale))
{
- FRAME_MENUBAR_HEIGHT (f) = req.height;
+ FRAME_MENUBAR_HEIGHT (f) = req.height * scale;
adjust_frame_size (f, -1, -1, 2, 0, Qmenu_bar_lines);
}
unblock_input ();
@@ -4496,6 +4535,12 @@ xg_update_scrollbar_pos (struct frame *f,
gtk_widget_show_all (wparent);
gtk_widget_set_size_request (wscroll, width, height);
}
+
+#if !defined HAVE_PGTK && GTK_CHECK_VERSION (2, 18, 0)
+ if (!gdk_window_ensure_native (gtk_widget_get_window (wscroll)))
+ emacs_abort ();
+#endif
+
if (oldx != -1 && oldw > 0 && oldh > 0)
{
/* Clear under old scroll bar position. */
@@ -4549,7 +4594,6 @@ xg_update_horizontal_scrollbar_pos (struct frame *f,
int width,
int height)
{
-
GtkWidget *wscroll = xg_get_widget_from_map (scrollbar_id);
if (wscroll)
@@ -4596,6 +4640,11 @@ xg_update_horizontal_scrollbar_pos (struct frame *f,
pgtk_clear_area (f, oldx, oldy, oldw, oldh);
#endif
+#if !defined HAVE_PGTK && GTK_CHECK_VERSION (2, 18, 0)
+ if (!gdk_window_ensure_native (gtk_widget_get_window (wscroll)))
+ emacs_abort ();
+#endif
+
/* GTK does not redraw until the main loop is entered again, but
if there are no X events pending we will not enter it. So we sync
here to get some events. */
@@ -5423,6 +5472,7 @@ xg_update_tool_bar_sizes (struct frame *f)
GtkRequisition req;
int nl = 0, nr = 0, nt = 0, nb = 0;
GtkWidget *top_widget = x->toolbar_widget;
+ int scale = xg_get_scale (f);
gtk_widget_get_preferred_size (GTK_WIDGET (top_widget), NULL, &req);
if (x->toolbar_in_hbox)
@@ -5431,8 +5481,10 @@ xg_update_tool_bar_sizes (struct frame *f)
gtk_container_child_get (GTK_CONTAINER (x->hbox_widget),
top_widget,
"position", &pos, NULL);
- if (pos == 0) nl = req.width;
- else nr = req.width;
+ if (pos == 0)
+ nl = req.width * scale;
+ else
+ nr = req.width * scale;
}
else
{
@@ -5440,8 +5492,10 @@ xg_update_tool_bar_sizes (struct frame *f)
gtk_container_child_get (GTK_CONTAINER (x->vbox_widget),
top_widget,
"position", &pos, NULL);
- if (pos == 0 || (pos == 1 && x->menubar_widget)) nt = req.height;
- else nb = req.height;
+ if (pos == 0 || (pos == 1 && x->menubar_widget))
+ nt = req.height * scale;
+ else
+ nb = req.height * scale;
}
if (nl != FRAME_TOOLBAR_LEFT_WIDTH (f)
@@ -5963,4 +6017,364 @@ xg_initialize (void)
#endif
}
+#ifndef HAVE_PGTK
+static void
+xg_add_virtual_mods (struct x_display_info *dpyinfo, GdkEventKey *key)
+{
+ guint modifiers = key->state;
+
+ if (modifiers & dpyinfo->meta_mod_mask)
+ {
+ /* GDK always assumes Mod1 is alt, but that's no reason for
+ us to make that mistake as well. */
+ if (!dpyinfo->alt_mod_mask)
+ key->state |= GDK_MOD1_MASK;
+ else
+ key->state |= GDK_META_MASK;
+ }
+
+ if (modifiers & dpyinfo->alt_mod_mask)
+ key->state |= GDK_MOD1_MASK;
+ if (modifiers & dpyinfo->super_mod_mask)
+ key->state |= GDK_SUPER_MASK;
+ if (modifiers & dpyinfo->hyper_mod_mask)
+ key->state |= GDK_HYPER_MASK;
+}
+
+static unsigned int
+xg_virtual_mods_to_x (struct x_display_info *dpyinfo, guint virtual)
+{
+ unsigned int modifiers = virtual & ~(GDK_SUPER_MASK
+ | GDK_META_MASK
+ | GDK_HYPER_MASK
+ | GDK_MOD2_MASK
+ | GDK_MOD3_MASK
+ | GDK_MOD4_MASK
+ | GDK_MOD5_MASK);
+
+ if (virtual & GDK_META_MASK)
+ modifiers |= dpyinfo->meta_mod_mask;
+ if (virtual & GDK_SUPER_MASK)
+ modifiers |= dpyinfo->super_mod_mask;
+ if (virtual & GDK_HYPER_MASK)
+ modifiers |= dpyinfo->hyper_mod_mask;
+
+ return modifiers;
+}
+
+static void
+xg_im_context_commit (GtkIMContext *imc, gchar *str,
+ gpointer user_data)
+{
+ struct frame *f = user_data;
+ struct input_event ie;
+ gunichar *ucs4_str;
+
+ ucs4_str = g_utf8_to_ucs4_fast (str, -1, NULL);
+
+ if (!ucs4_str)
+ return;
+
+ for (gunichar *c = ucs4_str; *c; c++)
+ {
+ EVENT_INIT (ie);
+ ie.kind = (SINGLE_BYTE_CHAR_P (*c)
+ ? ASCII_KEYSTROKE_EVENT
+ : MULTIBYTE_CHAR_KEYSTROKE_EVENT);
+ ie.arg = Qnil;
+ ie.code = *c;
+ XSETFRAME (ie.frame_or_window, f);
+ ie.modifiers = 0;
+ ie.timestamp = 0;
+
+ kbd_buffer_store_event (&ie);
+ }
+
+ g_free (ucs4_str);
+}
+
+static void
+xg_im_context_preedit_changed (GtkIMContext *imc, gpointer user_data)
+{
+ PangoAttrList *list;
+ gchar *str;
+ gint cursor;
+ struct input_event inev;
+
+ gtk_im_context_get_preedit_string (imc, &str, &list, &cursor);
+
+ EVENT_INIT (inev);
+ inev.kind = PREEDIT_TEXT_EVENT;
+ inev.arg = build_string_from_utf8 (str);
+
+ if (SCHARS (inev.arg))
+ Fput_text_property (make_fixnum (min (SCHARS (inev.arg) - 1,
+ max (0, cursor))),
+ make_fixnum (min (SCHARS (inev.arg),
+ max (0, cursor) + 1)),
+ Qcursor, Qt, inev.arg);
+
+ kbd_buffer_store_event (&inev);
+
+ g_free (str);
+ pango_attr_list_unref (list);
+}
+
+static void
+xg_im_context_preedit_end (GtkIMContext *imc, gpointer user_data)
+{
+ struct input_event inev;
+
+ EVENT_INIT (inev);
+ inev.kind = PREEDIT_TEXT_EVENT;
+ inev.arg = Qnil;
+ kbd_buffer_store_event (&inev);
+}
+
+static bool
+xg_widget_key_press_event_cb (GtkWidget *widget, GdkEvent *event,
+ gpointer user_data)
+{
+ Lisp_Object tail, tem;
+ struct frame *f = NULL;
+ union buffered_input_event inev;
+ guint keysym = event->key.keyval;
+ unsigned int xstate;
+ gunichar uc;
+
+ FOR_EACH_FRAME (tail, tem)
+ {
+ if (FRAME_X_P (XFRAME (tem))
+ && (FRAME_GTK_WIDGET (XFRAME (tem)) == widget))
+ {
+ f = XFRAME (tem);
+ break;
+ }
+ }
+
+ if (!f)
+ return true;
+
+ if (!x_gtk_use_native_input
+ && !FRAME_DISPLAY_INFO (f)->prefer_native_input)
+ return true;
+
+ EVENT_INIT (inev.ie);
+ XSETFRAME (inev.ie.frame_or_window, f);
+
+ xstate = xg_virtual_mods_to_x (FRAME_DISPLAY_INFO (f),
+ event->key.state);
+
+ inev.ie.modifiers
+ |= x_x_to_emacs_modifiers (FRAME_DISPLAY_INFO (f), xstate);
+ inev.ie.timestamp = event->key.time;
+
+ if (event->key.is_modifier)
+ goto done;
+
+ /* First deal with keysyms which have defined
+ translations to characters. */
+ if (keysym >= 32 && keysym < 128)
+ /* Avoid explicitly decoding each ASCII character. */
+ {
+ inev.ie.kind = ASCII_KEYSTROKE_EVENT;
+ inev.ie.code = keysym;
+ goto done;
+ }
+
+ /* Keysyms directly mapped to Unicode characters. */
+ if (keysym >= 0x01000000 && keysym <= 0x0110FFFF)
+ {
+ if (keysym < 0x01000080)
+ inev.ie.kind = ASCII_KEYSTROKE_EVENT;
+ else
+ inev.ie.kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
+ inev.ie.code = keysym & 0xFFFFFF;
+ goto done;
+ }
+
+ /* Random non-modifier sorts of keysyms. */
+ if (((keysym >= GDK_KEY_BackSpace && keysym <= GDK_KEY_Escape)
+ || keysym == GDK_KEY_Delete
+#ifdef GDK_KEY_ISO_Left_Tab
+ || (keysym >= GDK_KEY_ISO_Left_Tab && keysym <= GDK_KEY_ISO_Enter)
+#endif
+ || IsCursorKey (keysym) /* 0xff50 <= x < 0xff60 */
+ || IsMiscFunctionKey (keysym) /* 0xff60 <= x < VARIES */
+#ifdef GDK_KEY_dead_circumflex
+ || keysym == GDK_KEY_dead_circumflex
+#endif
+#ifdef GDK_KEY_dead_grave
+ || keysym == GDK_KEY_dead_grave
+#endif
+#ifdef GDK_KEY_dead_tilde
+ || keysym == GDK_KEY_dead_tilde
+#endif
+#ifdef GDK_KEY_dead_diaeresis
+ || keysym == GDK_KEY_dead_diaeresis
+#endif
+#ifdef GDK_KEY_dead_macron
+ || keysym == GDK_KEY_dead_macron
+#endif
+#ifdef GDK_KEY_dead_degree
+ || keysym == GDK_KEY_dead_degree
+#endif
+#ifdef GDK_KEY_dead_acute
+ || keysym == GDK_KEY_dead_acute
+#endif
+#ifdef GDK_KEY_dead_cedilla
+ || keysym == GDK_KEY_dead_cedilla
+#endif
+#ifdef GDK_KEY_dead_breve
+ || keysym == GDK_KEY_dead_breve
+#endif
+#ifdef GDK_KEY_dead_ogonek
+ || keysym == GDK_KEY_dead_ogonek
+#endif
+#ifdef GDK_KEY_dead_caron
+ || keysym == GDK_KEY_dead_caron
+#endif
+#ifdef GDK_KEY_dead_doubleacute
+ || keysym == GDK_KEY_dead_doubleacute
+#endif
+#ifdef GDK_KEY_dead_abovedot
+ || keysym == GDK_KEY_dead_abovedot
+#endif
+ || IsKeypadKey (keysym) /* 0xff80 <= x < 0xffbe */
+ || IsFunctionKey (keysym) /* 0xffbe <= x < 0xffe1 */
+ /* Any "vendor-specific" key is ok. */
+ || (keysym & (1 << 28))))
+ {
+ inev.ie.kind = NON_ASCII_KEYSTROKE_EVENT;
+ inev.ie.code = keysym;
+ goto done;
+ }
+
+ uc = gdk_keyval_to_unicode (keysym);
+
+ if (uc)
+ {
+ inev.ie.kind = (SINGLE_BYTE_CHAR_P (uc)
+ ? ASCII_KEYSTROKE_EVENT
+ : MULTIBYTE_CHAR_KEYSTROKE_EVENT);
+ inev.ie.code = uc;
+ }
+ else
+ {
+ inev.ie.kind = NON_ASCII_KEYSTROKE_EVENT;
+ inev.ie.code = keysym;
+ }
+
+ done:
+ if (inev.ie.kind != NO_EVENT)
+ {
+ xg_pending_quit_event.kind = NO_EVENT;
+ kbd_buffer_store_buffered_event (&inev, &xg_pending_quit_event);
+ }
+
+ XNoOp (FRAME_X_DISPLAY (f));
+#ifdef USABLE_SIGIO
+ raise (SIGIO);
+#endif
+ return true;
+}
+
+bool
+xg_filter_key (struct frame *frame, XEvent *xkey)
+{
+ GdkEvent *xg_event = gdk_event_new ((xkey->type == KeyPress
+#ifdef HAVE_XINPUT2
+ || (xkey->type == GenericEvent
+ && xkey->xgeneric.evtype ==
XI_KeyPress)
+#endif
+ ) ? GDK_KEY_PRESS : GDK_KEY_RELEASE);
+ GdkDisplay *dpy = gtk_widget_get_display (FRAME_GTK_WIDGET (frame));
+ GdkKeymap *keymap = gdk_keymap_get_for_display (dpy);
+ GdkModifierType consumed;
+ struct x_display_info *dpyinfo = FRAME_DISPLAY_INFO (frame);
+ bool result;
+
+ xg_event->any.window = gtk_widget_get_window (FRAME_GTK_WIDGET (frame));
+ g_object_ref (xg_event->any.window);
+
+#if GTK_CHECK_VERSION (3, 20, 0)
+ GdkSeat *seat = gdk_display_get_default_seat (dpy);
+
+ gdk_event_set_device (xg_event,
+ gdk_seat_get_keyboard (seat));
+#elif GTK_CHECK_VERSION (3, 16, 0)
+ GdkDeviceManager *manager = gdk_display_get_device_manager (dpy);
+ GList *devices = gdk_device_manager_list_devices (manager,
+ GDK_DEVICE_TYPE_MASTER);
+ GdkDevice *device;
+ GList *tem;
+ for (tem = devices; tem; tem = tem->next)
+ {
+ device = GDK_DEVICE (tem->data);
+
+ if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
+ {
+ gdk_event_set_device (xg_event, device);
+ break;
+ }
+ }
+
+ g_list_free (devices);
+#endif
+
+#ifdef HAVE_XINPUT2
+ if (xkey->type != GenericEvent)
+ {
+#endif
+ xg_event->key.hardware_keycode = xkey->xkey.keycode;
+
+#ifdef HAVE_XKB
+ if (dpyinfo->supports_xkb)
+ xg_event->key.group = XkbGroupForCoreState (xkey->xkey.state);
+#endif
+ xg_event->key.state = xkey->xkey.state;
+ gdk_keymap_translate_keyboard_state (keymap,
+ xkey->xkey.keycode,
+ xkey->xkey.state,
+ xg_event->key.group,
+ &xg_event->key.keyval,
+ NULL, NULL, &consumed);
+ xg_add_virtual_mods (dpyinfo, &xg_event->key);
+ xg_event->key.state &= ~consumed;
+ xg_event->key.time = xkey->xkey.time;
+#if GTK_CHECK_VERSION (3, 6, 0)
+ xg_event->key.is_modifier = gdk_x11_keymap_key_is_modifier (keymap,
+
xg_event->key.hardware_keycode);
+#endif
+#ifdef HAVE_XINPUT2
+ }
+ else
+ {
+ XIDeviceEvent *xev = (XIDeviceEvent *) xkey->xcookie.data;
+
+ xg_event->key.hardware_keycode = xev->detail;
+ xg_event->key.group = xev->group.effective;
+ xg_event->key.state = xev->mods.effective;
+ xg_event->key.time = xev->time;
+ gdk_keymap_translate_keyboard_state (keymap,
+ xev->detail,
+ xev->mods.effective,
+ xg_event->key.group,
+ &xg_event->key.keyval,
+ NULL, NULL, &consumed);
+ xg_add_virtual_mods (dpyinfo, &xg_event->key);
+ xg_event->key.state &= ~consumed;
+ xg_event->key.is_modifier = gdk_x11_keymap_key_is_modifier (keymap,
+
xg_event->key.hardware_keycode);
+ }
+#endif
+
+ result = gtk_im_context_filter_keypress (FRAME_X_OUTPUT (frame)->im_context,
+ &xg_event->key);
+
+ gdk_event_free (xg_event);
+
+ return result;
+}
+#endif
#endif /* USE_GTK */
diff --git a/src/gtkutil.h b/src/gtkutil.h
index 5a91825928..b74244d84d 100644
--- a/src/gtkutil.h
+++ b/src/gtkutil.h
@@ -217,6 +217,10 @@ extern void xg_print_frames_dialog (Lisp_Object);
extern bool xg_is_menu_window (Display *dpy, Window);
#endif
+#ifndef HAVE_PGTK
+extern bool xg_filter_key (struct frame *frame, XEvent *xkey);
+#endif
+
/* Mark all callback data that are Lisp_object:s during GC. */
extern void xg_mark_data (void);
diff --git a/src/haiku_draw_support.cc b/src/haiku_draw_support.cc
index 5d355ac205..270a619b89 100644
--- a/src/haiku_draw_support.cc
+++ b/src/haiku_draw_support.cc
@@ -313,7 +313,7 @@ BView_DrawBitmapWithEraseOp (void *view, void *bitmap, int
x,
BRect bounds = bc.Bounds ();
for (int y = 0; y < BE_RECT_HEIGHT (bounds); ++y)
{
- for (int x = 0; x <= BE_RECT_WIDTH (bounds); ++x)
+ for (int x = 0; x < BE_RECT_WIDTH (bounds); ++x)
{
if (bits[y * (stride / 4) + x] == 0xFF000000)
bits[y * (stride / 4) + x] = RGB_COLOR_UINT32 (low_color);
diff --git a/src/haiku_font_support.cc b/src/haiku_font_support.cc
index 6ea10b2e47..e6d21c28fe 100644
--- a/src/haiku_font_support.cc
+++ b/src/haiku_font_support.cc
@@ -159,9 +159,9 @@ BFont_char_bounds (void *font, const char *mb_str, int
*advance,
ft->GetEdges (mb_str, 1, &edge_info);
ft->GetEscapements (mb_str, 1, &escapement);
- *advance = std::ceil (escapement * size);
- *lb = std::ceil (edge_info.left * size);
- *rb = *advance + std::ceil (edge_info.right * size);
+ *advance = std::lrint (escapement * size);
+ *lb = std::lrint (edge_info.left * size);
+ *rb = *advance + std::lrint (edge_info.right * size);
}
/* The same, but for a variable amount of chars. */
@@ -534,14 +534,15 @@ BFont_open_pattern (struct haiku_font_pattern *pat, void
**font, float size)
font_family_style_matches_p (name, NULL, flags, pat, 1))
{
BFont *ft = new BFont;
+ ft->SetSize (size);
+ ft->SetEncoding (B_UNICODE_UTF8);
+ ft->SetSpacing (B_BITMAP_SPACING);
+
if (ft->SetFamilyAndStyle (name, NULL) != B_OK)
{
delete ft;
return 1;
}
- ft->SetSize (size);
- ft->SetEncoding (B_UNICODE_UTF8);
- ft->SetSpacing (B_BITMAP_SPACING);
*font = (void *) ft;
return 0;
}
@@ -553,14 +554,15 @@ BFont_open_pattern (struct haiku_font_pattern *pat, void
**font, float size)
font_family_style_matches_p (name, (char *) &sname, flags, pat))
{
BFont *ft = new BFont;
+ ft->SetSize (size);
+ ft->SetEncoding (B_UNICODE_UTF8);
+ ft->SetSpacing (B_BITMAP_SPACING);
+
if (ft->SetFamilyAndStyle (name, sname) != B_OK)
{
delete ft;
return 1;
}
- ft->SetSize (size);
- ft->SetEncoding (B_UNICODE_UTF8);
- ft->SetSpacing (B_BITMAP_SPACING);
*font = (void *) ft;
return 0;
}
diff --git a/src/haiku_select.cc b/src/haiku_select.cc
index 041e244f3e..d39000d8bb 100644
--- a/src/haiku_select.cc
+++ b/src/haiku_select.cc
@@ -29,6 +29,9 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
static BClipboard *primary = NULL;
static BClipboard *secondary = NULL;
static BClipboard *system_clipboard = NULL;
+static unsigned long count_clipboard = 0;
+static unsigned long count_primary = 0;
+static unsigned long count_secondary = 0;
int selection_state_flag;
@@ -174,6 +177,7 @@ BClipboard_set_system_data (const char *type, const char
*data,
return;
BClipboard_set_data (system_clipboard, type, data, len, clear);
+ count_clipboard = system_clipboard->SystemCount ();
}
void
@@ -184,6 +188,7 @@ BClipboard_set_primary_selection_data (const char *type,
const char *data,
return;
BClipboard_set_data (primary, type, data, len, clear);
+ count_primary = primary->SystemCount ();
}
void
@@ -194,6 +199,7 @@ BClipboard_set_secondary_selection_data (const char *type,
const char *data,
return;
BClipboard_set_data (secondary, type, data, len, clear);
+ count_secondary = secondary->SystemCount ();
}
void
@@ -220,6 +226,27 @@ BClipboard_secondary_targets (char **buf, int len)
BClipboard_get_targets (secondary, buf, len);
}
+bool
+BClipboard_owns_clipboard (void)
+{
+ return (count_clipboard
+ == system_clipboard->SystemCount ());
+}
+
+bool
+BClipboard_owns_primary (void)
+{
+ return (count_primary
+ == primary->SystemCount ());
+}
+
+bool
+BClipboard_owns_secondary (void)
+{
+ return (count_secondary
+ == secondary->SystemCount ());
+}
+
void
init_haiku_select (void)
{
diff --git a/src/haiku_support.cc b/src/haiku_support.cc
index 2e9eff4067..41e5b71182 100644
--- a/src/haiku_support.cc
+++ b/src/haiku_support.cc
@@ -36,6 +36,7 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#include <interface/MenuBar.h>
#include <interface/Alert.h>
#include <interface/Button.h>
+#include <interface/ControlLook.h>
#include <locale/UnicodeChar.h>
@@ -62,6 +63,7 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#include <kernel/scheduler.h>
#include <private/interface/ToolTip.h>
+#include <private/interface/WindowPrivate.h>
#include <cmath>
#include <cstring>
@@ -135,6 +137,87 @@ gui_abort (const char *msg)
emacs_abort ();
}
+/* Convert a raw character RAW produced by the keycode KEY into a key
+ symbol and place it in KEYSYM.
+
+ If RAW cannot be converted into a keysym, value is 0. If RAW can
+ be converted into a keysym, but it should be ignored, value is -1.
+
+ Any other value means success, and that the keysym should be used
+ instead of mapping the keycode into a character. */
+
+static int
+keysym_from_raw_char (int32 raw, int32 key, unsigned *code)
+{
+ switch (raw)
+ {
+ case B_BACKSPACE:
+ *code = XK_BackSpace;
+ break;
+ case B_RETURN:
+ *code = XK_Return;
+ break;
+ case B_TAB:
+ *code = XK_Tab;
+ break;
+ case B_ESCAPE:
+ *code = XK_Escape;
+ break;
+ case B_LEFT_ARROW:
+ *code = XK_Left;
+ break;
+ case B_RIGHT_ARROW:
+ *code = XK_Right;
+ break;
+ case B_UP_ARROW:
+ *code = XK_Up;
+ break;
+ case B_DOWN_ARROW:
+ *code = XK_Down;
+ break;
+ case B_INSERT:
+ *code = XK_Insert;
+ break;
+ case B_DELETE:
+ *code = XK_Delete;
+ break;
+ case B_HOME:
+ *code = XK_Home;
+ break;
+ case B_END:
+ *code = XK_End;
+ break;
+ case B_PAGE_UP:
+ *code = XK_Page_Up;
+ break;
+ case B_PAGE_DOWN:
+ *code = XK_Page_Down;
+ break;
+
+ case B_FUNCTION_KEY:
+ *code = XK_F1 + key - 2;
+
+ if (*code - XK_F1 == 12)
+ *code = XK_Print;
+ else if (*code - XK_F1 == 13)
+ /* Okay, Scroll Lock is a bit too much: keyboard.c doesn't
+ know about it yet, and it shouldn't, since that's a
+ modifier key.
+
+ *code = XK_Scroll_Lock; */
+ return -1;
+ else if (*code - XK_F1 == 14)
+ *code = XK_Pause;
+
+ break;
+
+ default:
+ return 0;
+ }
+
+ return 1;
+}
+
static void
map_key (char *chars, int32 offset, uint32_t *c)
{
@@ -177,6 +260,40 @@ map_shift (uint32_t kc, uint32_t *ch)
key_map_lock.Unlock ();
}
+static void
+map_caps (uint32_t kc, uint32_t *ch)
+{
+ if (!key_map_lock.Lock ())
+ gui_abort ("Failed to lock keymap");
+ if (!key_map)
+ get_key_map (&key_map, &key_chars);
+ if (!key_map)
+ return;
+ if (kc >= 128)
+ return;
+
+ int32_t m = key_map->caps_map[kc];
+ map_key (key_chars, m, ch);
+ key_map_lock.Unlock ();
+}
+
+static void
+map_caps_shift (uint32_t kc, uint32_t *ch)
+{
+ if (!key_map_lock.Lock ())
+ gui_abort ("Failed to lock keymap");
+ if (!key_map)
+ get_key_map (&key_map, &key_chars);
+ if (!key_map)
+ return;
+ if (kc >= 128)
+ return;
+
+ int32_t m = key_map->caps_shift_map[kc];
+ map_key (key_chars, m, ch);
+ key_map_lock.Unlock ();
+}
+
static void
map_normal (uint32_t kc, uint32_t *ch)
{
@@ -197,8 +314,25 @@ map_normal (uint32_t kc, uint32_t *ch)
class Emacs : public BApplication
{
public:
+ BMessage settings;
+ bool settings_valid_p = false;
+
Emacs () : BApplication ("application/x-vnd.GNU-emacs")
{
+ BPath settings_path;
+
+ if (find_directory (B_USER_SETTINGS_DIRECTORY, &settings_path) != B_OK)
+ return;
+
+ settings_path.Append (PACKAGE_NAME);
+
+ BEntry entry (settings_path.Path ());
+ BFile settings_file (&entry, B_READ_ONLY | B_CREATE_FILE);
+
+ if (settings.Unflatten (&settings_file) != B_OK)
+ return;
+
+ settings_valid_p = true;
}
void
@@ -271,6 +405,12 @@ public:
int shown_flag = 0;
volatile int was_shown_p = 0;
bool menu_bar_active_p = false;
+ window_look pre_override_redirect_style;
+ window_feel pre_override_redirect_feel;
+ uint32 pre_override_redirect_workspaces;
+ pthread_mutex_t menu_update_mutex = PTHREAD_MUTEX_INITIALIZER;
+ pthread_cond_t menu_update_cv = PTHREAD_COND_INITIALIZER;
+ bool menu_updated_p = false;
EmacsWindow () : BWindow (BRect (0, 0, 0, 0), "", B_TITLED_WINDOW_LOOK,
B_NORMAL_WINDOW_FEEL,
B_NO_SERVER_SIDE_WINDOW_MODIFIERS)
@@ -296,6 +436,9 @@ public:
if (this->parent)
UnparentAndUnlink ();
child_frame_lock.Unlock ();
+
+ pthread_cond_destroy (&menu_update_cv);
+ pthread_mutex_destroy (&menu_update_mutex);
}
void
@@ -579,7 +722,11 @@ public:
rq.window = this;
- int32_t code = msg->GetInt32 ("raw_char", 0);
+ int32 raw, key;
+ int ret;
+ msg->FindInt32 ("raw_char", &raw);
+ msg->FindInt32 ("key", &key);
+ msg->FindInt64 ("when", &rq.time);
rq.modifiers = 0;
uint32_t mods = modifiers ();
@@ -596,15 +743,33 @@ public:
if (mods & B_OPTION_KEY)
rq.modifiers |= HAIKU_MODIFIER_SUPER;
- rq.mb_char = code;
- rq.kc = msg->GetInt32 ("key", -1);
- rq.unraw_mb_char =
- BUnicodeChar::FromUTF8 (msg->GetString ("bytes"));
+ ret = keysym_from_raw_char (raw, key, &rq.keysym);
- if ((mods & B_SHIFT_KEY) && rq.kc >= 0)
- map_shift (rq.kc, &rq.unraw_mb_char);
- else if (rq.kc >= 0)
- map_normal (rq.kc, &rq.unraw_mb_char);
+ if (!ret)
+ rq.keysym = 0;
+
+ if (ret < 0)
+ return;
+
+ rq.multibyte_char = 0;
+
+ if (!rq.keysym)
+ {
+ if (mods & B_SHIFT_KEY)
+ {
+ if (mods & B_CAPS_LOCK)
+ map_caps_shift (key, &rq.multibyte_char);
+ else
+ map_shift (key, &rq.multibyte_char);
+ }
+ else
+ {
+ if (mods & B_CAPS_LOCK)
+ map_caps (key, &rq.multibyte_char);
+ else
+ map_normal (key, &rq.multibyte_char);
+ }
+ }
haiku_write (msg->what == B_KEY_DOWN ? KEY_DOWN : KEY_UP, &rq);
}
@@ -646,9 +811,36 @@ public:
MenusBeginning ()
{
struct haiku_menu_bar_state_event rq;
+ int lock_count = 0;
+ thread_id current_thread = find_thread (NULL);
+ thread_id window_thread = Thread ();
rq.window = this;
+ rq.no_lock = false;
+
+ if (window_thread != current_thread)
+ rq.no_lock = true;
haiku_write (MENU_BAR_OPEN, &rq);
+
+ if (!rq.no_lock)
+ {
+ while (IsLocked ())
+ {
+ ++lock_count;
+ UnlockLooper ();
+ }
+ pthread_mutex_lock (&menu_update_mutex);
+ while (!menu_updated_p)
+ pthread_cond_wait (&menu_update_cv,
+ &menu_update_mutex);
+ menu_updated_p = false;
+ pthread_mutex_unlock (&menu_update_mutex);
+ for (; lock_count; --lock_count)
+ {
+ if (!LockLooper ())
+ gui_abort ("Failed to lock after cv signal denoting menu update");
+ }
+ }
menu_bar_active_p = true;
}
@@ -1162,7 +1354,6 @@ public:
if (!offscreen_draw_view)
gui_abort ("Failed to lock offscreen view during buffer flip");
- offscreen_draw_view->Flush ();
offscreen_draw_view->Sync ();
EmacsWindow *w = (EmacsWindow *) Window ();
@@ -1225,8 +1416,8 @@ public:
rq.just_exited_p = transit == B_EXITED_VIEW;
rq.x = point.x;
rq.y = point.y;
- rq.be_code = transit;
rq.window = this->Window ();
+ rq.time = system_time ();
if (ToolTip ())
ToolTip ()->SetMouseRelativeLocation (BPoint (-(point.x - tt_absl_pos.x),
@@ -1281,6 +1472,7 @@ public:
SetMouseEventMask (B_POINTER_EVENTS, B_LOCK_WINDOW_FOCUS);
+ rq.time = system_time ();
haiku_write (BUTTON_DOWN, &rq);
}
@@ -1327,6 +1519,7 @@ public:
if (!buttons)
SetMouseEventMask (0, 0);
+ rq.time = system_time ();
haiku_write (BUTTON_UP, &rq);
}
};
@@ -1475,17 +1668,23 @@ public:
Highlight (bool highlight_p)
{
struct haiku_menu_bar_help_event rq;
+ BMenu *menu = Menu ();
+ BRect r;
+ BPoint pt;
+ uint32 buttons;
- if (menu_bar_id >= 0)
+ if (help)
+ menu->SetToolTip (highlight_p ? help : NULL);
+ else if (menu_bar_id >= 0)
{
rq.window = wind_ptr;
rq.mb_idx = highlight_p ? menu_bar_id : -1;
- haiku_write (MENU_BAR_HELP_EVENT, &rq);
- }
- else if (help)
- {
- Menu ()->SetToolTip (highlight_p ? help : NULL);
+ r = Frame ();
+ menu->GetMouse (&pt, &buttons);
+
+ if (!highlight_p || r.Contains (pt))
+ haiku_write (MENU_BAR_HELP_EVENT, &rq);
}
BMenuItem::Highlight (highlight_p);
@@ -1799,71 +1998,6 @@ BWindow_Flush (void *window)
((BWindow *) window)->Flush ();
}
-/* Map the keycode KC, storing the result in CODE and 1 in
- NON_ASCII_P if it should be used. */
-void
-BMapKey (uint32_t kc, int *non_ascii_p, unsigned *code)
-{
- if (*code == 10 && kc != 0x42)
- {
- *code = XK_Return;
- *non_ascii_p = 1;
- return;
- }
-
- switch (kc)
- {
- default:
- *non_ascii_p = 0;
- if (kc < 0xe && kc > 0x1)
- {
- *code = XK_F1 + kc - 2;
- *non_ascii_p = 1;
- }
- return;
- case 0x1e:
- *code = XK_BackSpace;
- break;
- case 0x61:
- *code = XK_Left;
- break;
- case 0x63:
- *code = XK_Right;
- break;
- case 0x57:
- *code = XK_Up;
- break;
- case 0x62:
- *code = XK_Down;
- break;
- case 0x64:
- *code = XK_Insert;
- break;
- case 0x65:
- *code = XK_Delete;
- break;
- case 0x37:
- *code = XK_Home;
- break;
- case 0x58:
- *code = XK_End;
- break;
- case 0x39:
- *code = XK_Page_Up;
- break;
- case 0x5a:
- *code = XK_Page_Down;
- break;
- case 0x1:
- *code = XK_Escape;
- break;
- case 0x68:
- *code = XK_Menu;
- break;
- }
- *non_ascii_p = 1;
-}
-
/* Make a scrollbar, attach it to VIEW's window, and return it. */
void *
BScrollBar_make_for_view (void *view, int horizontal_p,
@@ -1906,8 +2040,6 @@ BView_move_frame (void *view, int x, int y, int x1, int
y1)
gui_abort ("Failed to lock view moving frame");
vw->MoveTo (x, y);
vw->ResizeTo (x1 - x, y1 - y);
- vw->Flush ();
- vw->Sync ();
vw->UnlockLooper ();
}
@@ -1927,7 +2059,9 @@ BView_scroll_bar_update (void *sb, int portion, int
whole, int position)
int
BScrollBar_default_size (int horizontal_p)
{
- return horizontal_p ? B_H_SCROLL_BAR_HEIGHT : B_V_SCROLL_BAR_WIDTH;
+ return be_control_look->GetScrollBarWidth (horizontal_p
+ ? B_HORIZONTAL
+ : B_VERTICAL);
}
/* Invalidate VIEW, causing it to be drawn again. */
@@ -2133,7 +2267,11 @@ BWindow_set_tooltip_decoration (void *window)
if (!w->LockLooper ())
gui_abort ("Failed to lock window while setting ttip decoration");
w->SetLook (B_BORDERED_WINDOW_LOOK);
- w->SetFeel (B_FLOATING_APP_WINDOW_FEEL);
+ w->SetFeel (kMenuWindowFeel);
+ w->SetFlags (B_NOT_ZOOMABLE
+ | B_NOT_MINIMIZABLE
+ | B_AVOID_FRONT
+ | B_AVOID_FOCUS);
w->UnlockLooper ();
}
@@ -2150,7 +2288,6 @@ BWindow_set_avoid_focus (void *window, int avoid_focus_p)
w->SetFlags (w->Flags () & ~B_AVOID_FOCUS);
else
w->SetFlags (w->Flags () | B_AVOID_FOCUS);
- w->Sync ();
w->UnlockLooper ();
}
@@ -2727,7 +2864,7 @@ be_popup_file_dialog (int open_p, const char
*default_dir, int must_match_p, int
enum haiku_event_type type;
char *ptr = NULL;
- if (!haiku_read_with_timeout (&type, buf, 200, 100000))
+ if (!haiku_read_with_timeout (&type, buf, 200, 1000000))
{
block_input_function ();
if (type != FILE_PANEL_EVENT)
@@ -3058,3 +3195,64 @@ be_use_subpixel_antialiasing (void)
return current_subpixel_antialiasing;
}
+
+/* This isn't implemented very properly (for example: what if
+ decorations are changed while the window is under override
+ redirect?) but it works well enough for most use cases. */
+void
+BWindow_set_override_redirect (void *window, bool override_redirect_p)
+{
+ EmacsWindow *w = (EmacsWindow *) window;
+
+ if (w->LockLooper ())
+ {
+ if (override_redirect_p)
+ {
+ w->pre_override_redirect_feel = w->Feel ();
+ w->pre_override_redirect_style = w->Look ();
+ w->SetFeel (kMenuWindowFeel);
+ w->SetLook (B_NO_BORDER_WINDOW_LOOK);
+ w->pre_override_redirect_workspaces = w->Workspaces ();
+ w->SetWorkspaces (B_ALL_WORKSPACES);
+ }
+ else
+ {
+ w->SetFeel (w->pre_override_redirect_feel);
+ w->SetLook (w->pre_override_redirect_style);
+ w->SetWorkspaces (w->pre_override_redirect_workspaces);
+ }
+
+ w->UnlockLooper ();
+ }
+}
+
+/* Find a resource by the name NAME inside the settings file. The
+ string returned is in UTF-8 encoding, and will stay allocated as
+ long as the BApplication (a.k.a display) is alive. */
+const char *
+be_find_setting (const char *name)
+{
+ Emacs *app = (Emacs *) be_app;
+ const char *value;
+
+ /* Note that this is thread-safe since the constructor of `Emacs'
+ runs in the main thread. */
+ if (!app->settings_valid_p)
+ return NULL;
+
+ if (app->settings.FindString (name, 0, &value) != B_OK)
+ return NULL;
+
+ return value;
+}
+
+void
+EmacsWindow_signal_menu_update_complete (void *window)
+{
+ EmacsWindow *w = (EmacsWindow *) window;
+
+ pthread_mutex_lock (&w->menu_update_mutex);
+ w->menu_updated_p = true;
+ pthread_cond_signal (&w->menu_update_cv);
+ pthread_mutex_unlock (&w->menu_update_mutex);
+}
diff --git a/src/haiku_support.h b/src/haiku_support.h
index 6a99eb245d..8d4dddd90f 100644
--- a/src/haiku_support.h
+++ b/src/haiku_support.h
@@ -34,6 +34,8 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#include <math.h>
+#include <kernel/OS.h>
+
enum haiku_cursor
{
CURSOR_ID_NO_CURSOR = 12,
@@ -130,9 +132,11 @@ struct haiku_key_event
{
void *window;
int modifiers;
- uint32_t mb_char;
- uint32_t unraw_mb_char;
- short kc;
+ unsigned keysym;
+ uint32_t multibyte_char;
+
+ /* Time the keypress occurred, in microseconds. */
+ bigtime_t time;
};
struct haiku_activation_event
@@ -147,7 +151,7 @@ struct haiku_mouse_motion_event
bool just_exited_p;
int x;
int y;
- uint32_t be_code;
+ bigtime_t time;
};
struct haiku_button_event
@@ -157,6 +161,7 @@ struct haiku_button_event
int modifiers;
int x;
int y;
+ bigtime_t time;
};
struct haiku_iconification_event
@@ -294,6 +299,7 @@ struct haiku_menu_bar_resize_event
struct haiku_menu_bar_state_event
{
void *window;
+ bool no_lock;
};
#define HAIKU_THIN 0
@@ -560,9 +566,6 @@ extern "C"
extern void
BWindow_Flush (void *window);
- extern void
- BMapKey (uint32_t kc, int *non_ascii_p, unsigned *code);
-
extern void *
BScrollBar_make_for_view (void *view, int horizontal_p,
int x, int y, int x1, int y1,
@@ -856,6 +859,15 @@ extern "C"
extern bool
be_use_subpixel_antialiasing (void);
+ extern void
+ BWindow_set_override_redirect (void *window, bool override_redirect_p);
+
+ extern const char *
+ be_find_setting (const char *name);
+
+ extern void
+ EmacsWindow_signal_menu_update_complete (void *window);
+
#ifdef __cplusplus
extern void *
find_appropriate_view_for_draw (void *vw);
diff --git a/src/haikufns.c b/src/haikufns.c
index 4a0d2272d0..58a2e1d464 100644
--- a/src/haikufns.c
+++ b/src/haikufns.c
@@ -45,7 +45,7 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#define BLUE_FROM_ULONG(color) ((color) & 0xff)
/* The frame of the currently visible tooltip. */
-static Lisp_Object tip_frame;
+Lisp_Object tip_frame;
/* The window-system window corresponding to the frame of the
currently visible tooltip. */
@@ -451,6 +451,15 @@ haiku_set_no_accept_focus (struct frame *f, Lisp_Object
new_value, Lisp_Object o
unblock_input ();
}
+static void
+initial_setup_back_buffer (struct frame *f)
+{
+ block_input ();
+ if (NILP (CDR (Fassq (Qinhibit_double_buffering, f->param_alist))))
+ EmacsView_set_up_double_buffering (FRAME_HAIKU_VIEW (f));
+ unblock_input ();
+}
+
static void
unwind_create_frame (Lisp_Object frame)
{
@@ -547,13 +556,12 @@ unwind_popup (void)
}
static Lisp_Object
-haiku_create_frame (Lisp_Object parms, int ttip_p)
+haiku_create_frame (Lisp_Object parms)
{
struct frame *f;
Lisp_Object frame, tem;
Lisp_Object name;
bool minibuffer_only = false;
- bool face_change_before = face_change;
long window_prompting = 0;
ptrdiff_t count = SPECPDL_INDEX ();
Lisp_Object display;
@@ -593,10 +601,8 @@ haiku_create_frame (Lisp_Object parms, int ttip_p)
tem = gui_display_get_arg (dpyinfo, parms, Qminibuffer,
"minibuffer", "Minibuffer",
RES_TYPE_SYMBOL);
- if (ttip_p)
- f = make_frame (0);
- else if (EQ (tem, Qnone) || NILP (tem))
- f = make_frame_without_minibuffer (Qnil, kb, display);
+ if (EQ (tem, Qnone) || NILP (tem))
+ f = make_frame_without_minibuffer (Qnil, kb, display);
else if (EQ (tem, Qonly))
{
f = make_minibuffer_frame ();
@@ -618,22 +624,16 @@ haiku_create_frame (Lisp_Object parms, int ttip_p)
f->output_data.haiku->pending_zoom_width = INT_MIN;
f->output_data.haiku->pending_zoom_height = INT_MIN;
- if (ttip_p)
- f->wants_modeline = false;
-
fset_icon_name (f, gui_display_get_arg (dpyinfo, parms, Qicon_name,
"iconName", "Title",
RES_TYPE_STRING));
- if (! STRINGP (f->icon_name) || ttip_p)
+ if (! STRINGP (f->icon_name))
fset_icon_name (f, Qnil);
FRAME_DISPLAY_INFO (f) = dpyinfo;
/* With FRAME_DISPLAY_INFO set up, this unwind-protect is safe. */
- if (!ttip_p)
- record_unwind_protect (unwind_create_frame, frame);
- else
- record_unwind_protect (unwind_create_tip_frame, frame);
+ record_unwind_protect (unwind_create_frame, frame);
FRAME_OUTPUT_DATA (f)->parent_desc = NULL;
FRAME_OUTPUT_DATA (f)->explicit_parent = 0;
@@ -660,8 +660,6 @@ haiku_create_frame (Lisp_Object parms, int ttip_p)
#endif
register_font_driver (&haikufont_driver, f);
- f->tooltip = ttip_p;
-
image_cache_refcount =
FRAME_IMAGE_CACHE (f) ? FRAME_IMAGE_CACHE (f)->refcount : 0;
@@ -674,7 +672,7 @@ haiku_create_frame (Lisp_Object parms, int ttip_p)
gui_default_parameter (f, parms, Qborder_width, make_fixnum (0),
"borderwidth", "BorderWidth", RES_TYPE_NUMBER);
- gui_default_parameter (f, parms, Qinternal_border_width, make_fixnum (ttip_p
? 1 : 2),
+ gui_default_parameter (f, parms, Qinternal_border_width, make_fixnum (2),
"internalBorderWidth", "InternalBorderWidth",
RES_TYPE_NUMBER);
gui_default_parameter (f, parms, Qchild_frame_border_width, Qnil,
@@ -684,7 +682,7 @@ haiku_create_frame (Lisp_Object parms, int ttip_p)
NULL, NULL, RES_TYPE_NUMBER);
gui_default_parameter (f, parms, Qbottom_divider_width, make_fixnum (0),
NULL, NULL, RES_TYPE_NUMBER);
- gui_default_parameter (f, parms, Qvertical_scroll_bars, !ttip_p ? Qt : Qnil,
+ gui_default_parameter (f, parms, Qvertical_scroll_bars, Qt,
"verticalScrollBars", "VerticalScrollBars",
RES_TYPE_SYMBOL);
gui_default_parameter (f, parms, Qhorizontal_scroll_bars, Qnil,
@@ -700,7 +698,7 @@ haiku_create_frame (Lisp_Object parms, int ttip_p)
"leftFringe", "LeftFringe", RES_TYPE_NUMBER);
gui_default_parameter (f, parms, Qright_fringe, Qnil,
"rightFringe", "RightFringe", RES_TYPE_NUMBER);
- gui_default_parameter (f, parms, Qno_special_glyphs, ttip_p ? Qnil : Qt,
+ gui_default_parameter (f, parms, Qno_special_glyphs, Qnil,
NULL, NULL, RES_TYPE_BOOLEAN);
init_frame_faces (f);
@@ -718,57 +716,39 @@ haiku_create_frame (Lisp_Object parms, int ttip_p)
FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 5, 1,
Qx_create_frame_1);
- if (!ttip_p)
- {
- gui_default_parameter (f, parms, Qz_group, Qnil, NULL, NULL,
RES_TYPE_SYMBOL);
- gui_default_parameter (f, parms, Qno_focus_on_map, Qnil,
- NULL, NULL, RES_TYPE_BOOLEAN);
- gui_default_parameter (f, parms, Qno_accept_focus, Qnil,
- NULL, NULL, RES_TYPE_BOOLEAN);
-
- /* The resources controlling the menu-bar, tool-bar, and tab-bar are
- processed specially at startup, and reflected in the mode
- variables; ignore them here. */
- gui_default_parameter (f, parms, Qmenu_bar_lines,
- NILP (Vmenu_bar_mode)
- ? make_fixnum (0) : make_fixnum (1),
- NULL, NULL, RES_TYPE_NUMBER);
- gui_default_parameter (f, parms, Qtab_bar_lines,
- NILP (Vtab_bar_mode)
- ? make_fixnum (0) : make_fixnum (1),
- NULL, NULL, RES_TYPE_NUMBER);
- gui_default_parameter (f, parms, Qtool_bar_lines,
- NILP (Vtool_bar_mode)
- ? make_fixnum (0) : make_fixnum (1),
- NULL, NULL, RES_TYPE_NUMBER);
- gui_default_parameter (f, parms, Qbuffer_predicate, Qnil,
"bufferPredicate",
- "BufferPredicate", RES_TYPE_SYMBOL);
- gui_default_parameter (f, parms, Qtitle, Qnil, "title", "Title",
- RES_TYPE_STRING);
- }
+ gui_default_parameter (f, parms, Qz_group, Qnil, NULL, NULL,
RES_TYPE_SYMBOL);
+ gui_default_parameter (f, parms, Qno_focus_on_map, Qnil,
+ NULL, NULL, RES_TYPE_BOOLEAN);
+ gui_default_parameter (f, parms, Qno_accept_focus, Qnil,
+ NULL, NULL, RES_TYPE_BOOLEAN);
+
+ /* The resources controlling the menu-bar, tool-bar, and tab-bar are
+ processed specially at startup, and reflected in the mode
+ variables; ignore them here. */
+ gui_default_parameter (f, parms, Qmenu_bar_lines,
+ NILP (Vmenu_bar_mode)
+ ? make_fixnum (0) : make_fixnum (1),
+ NULL, NULL, RES_TYPE_NUMBER);
+ gui_default_parameter (f, parms, Qtab_bar_lines,
+ NILP (Vtab_bar_mode)
+ ? make_fixnum (0) : make_fixnum (1),
+ NULL, NULL, RES_TYPE_NUMBER);
+ gui_default_parameter (f, parms, Qtool_bar_lines,
+ NILP (Vtool_bar_mode)
+ ? make_fixnum (0) : make_fixnum (1),
+ NULL, NULL, RES_TYPE_NUMBER);
+ gui_default_parameter (f, parms, Qbuffer_predicate, Qnil, "bufferPredicate",
+ "BufferPredicate", RES_TYPE_SYMBOL);
+ gui_default_parameter (f, parms, Qtitle, Qnil, "title", "Title",
+ RES_TYPE_STRING);
parms = get_geometry_from_preferences (dpyinfo, parms);
window_prompting = gui_figure_window_size (f, parms, false, true);
- if (ttip_p)
- {
- /* No fringes on tip frame. */
- f->fringe_cols = 0;
- f->left_fringe_width = 0;
- f->right_fringe_width = 0;
- /* No dividers on tip frame. */
- f->right_divider_width = 0;
- f->bottom_divider_width = 0;
- }
-
tem = gui_display_get_arg (dpyinfo, parms, Qunsplittable, 0, 0,
RES_TYPE_BOOLEAN);
f->no_split = minibuffer_only || (!EQ (tem, Qunbound) && !NILP (tem));
- /* Add `tooltip' frame parameter's default value. */
- if (NILP (Fframe_parameter (frame, Qtooltip)) && ttip_p)
- Fmodify_frame_parameters (frame, Fcons (Fcons (Qtooltip, Qt), Qnil));
-
#define ASSIGN_CURSOR(cursor, be_cursor) \
(FRAME_OUTPUT_DATA (f)->cursor = be_cursor)
@@ -803,16 +783,13 @@ haiku_create_frame (Lisp_Object parms, int ttip_p)
ASSIGN_CURSOR (current_cursor, FRAME_OUTPUT_DATA (f)->text_cursor);
#undef ASSIGN_CURSOR
-
- if (ttip_p)
- f->no_split = true;
f->terminal->reference_count++;
FRAME_OUTPUT_DATA (f)->window = BWindow_new (&FRAME_OUTPUT_DATA (f)->view);
if (!FRAME_OUTPUT_DATA (f)->window)
xsignal1 (Qerror, build_unibyte_string ("Could not create window"));
- if (!minibuffer_only && !ttip_p && FRAME_EXTERNAL_MENU_BAR (f))
+ if (!minibuffer_only && FRAME_EXTERNAL_MENU_BAR (f))
initialize_frame_menubar (f);
FRAME_OUTPUT_DATA (f)->window_desc = FRAME_OUTPUT_DATA (f)->window;
@@ -835,61 +812,37 @@ haiku_create_frame (Lisp_Object parms, int ttip_p)
haiku_set_parent_frame (f, parent_frame, Qnil);
gui_default_parameter (f, parms, Qundecorated, Qnil, NULL, NULL,
RES_TYPE_BOOLEAN);
+ gui_default_parameter (f, parms, Qoverride_redirect, Qnil, NULL, NULL,
RES_TYPE_BOOLEAN);
gui_default_parameter (f, parms, Qicon_type, Qnil,
"bitmapIcon", "BitmapIcon", RES_TYPE_SYMBOL);
- if (ttip_p)
- {
- gui_default_parameter (f, parms, Qundecorated, Qt, NULL, NULL,
RES_TYPE_BOOLEAN);
- gui_default_parameter (f, parms, Qno_accept_focus, Qt, NULL, NULL,
- RES_TYPE_BOOLEAN);
- }
- else
- {
- gui_default_parameter (f, parms, Qauto_raise, Qnil,
- "autoRaise", "AutoRaiseLower", RES_TYPE_BOOLEAN);
- gui_default_parameter (f, parms, Qauto_lower, Qnil,
- "autoLower", "AutoLower", RES_TYPE_BOOLEAN);
- gui_default_parameter (f, parms, Qcursor_type, Qbox,
- "cursorType", "CursorType", RES_TYPE_SYMBOL);
- gui_default_parameter (f, parms, Qscroll_bar_width, Qnil,
- "scrollBarWidth", "ScrollBarWidth",
- RES_TYPE_NUMBER);
- gui_default_parameter (f, parms, Qscroll_bar_height, Qnil,
- "scrollBarHeight", "ScrollBarHeight",
- RES_TYPE_NUMBER);
- gui_default_parameter (f, parms, Qalpha, Qnil,
- "alpha", "Alpha", RES_TYPE_NUMBER);
- gui_default_parameter (f, parms, Qfullscreen, Qnil,
- "fullscreen", "Fullscreen", RES_TYPE_SYMBOL);
- }
+ gui_default_parameter (f, parms, Qauto_raise, Qnil,
+ "autoRaise", "AutoRaiseLower", RES_TYPE_BOOLEAN);
+ gui_default_parameter (f, parms, Qauto_lower, Qnil,
+ "autoLower", "AutoLower", RES_TYPE_BOOLEAN);
+ gui_default_parameter (f, parms, Qcursor_type, Qbox,
+ "cursorType", "CursorType", RES_TYPE_SYMBOL);
+ gui_default_parameter (f, parms, Qscroll_bar_width, Qnil,
+ "scrollBarWidth", "ScrollBarWidth",
+ RES_TYPE_NUMBER);
+ gui_default_parameter (f, parms, Qscroll_bar_height, Qnil,
+ "scrollBarHeight", "ScrollBarHeight",
+ RES_TYPE_NUMBER);
+ gui_default_parameter (f, parms, Qalpha, Qnil,
+ "alpha", "Alpha", RES_TYPE_NUMBER);
+ gui_default_parameter (f, parms, Qfullscreen, Qnil,
+ "fullscreen", "Fullscreen", RES_TYPE_SYMBOL);
gui_default_parameter (f, parms, Qinhibit_double_buffering, Qnil,
"inhibitDoubleBuffering", "InhibitDoubleBuffering",
RES_TYPE_BOOLEAN);
- if (ttip_p)
- {
- Lisp_Object bg = Fframe_parameter (frame, Qbackground_color);
-
- call2 (Qface_set_after_frame_default, frame, Qnil);
-
- if (!EQ (bg, Fframe_parameter (frame, Qbackground_color)))
- {
- AUTO_FRAME_ARG (arg, Qbackground_color, bg);
- Fmodify_frame_parameters (frame, arg);
- }
- }
-
- if (ttip_p)
- face_change = face_change_before;
-
f->can_set_window_size = true;
adjust_frame_size (f, FRAME_TEXT_WIDTH (f), FRAME_TEXT_HEIGHT (f),
- 0, true, ttip_p ? Qtip_frame : Qx_create_frame_2);
+ 0, true, Qx_create_frame_2);
- if (!FRAME_OUTPUT_DATA (f)->explicit_parent && !ttip_p)
+ if (!FRAME_OUTPUT_DATA (f)->explicit_parent)
{
Lisp_Object visibility;
@@ -907,13 +860,10 @@ haiku_create_frame (Lisp_Object parms, int ttip_p)
}
}
- if (!ttip_p)
- {
- if (FRAME_HAS_MINIBUF_P (f)
- && (!FRAMEP (KVAR (kb, Vdefault_minibuffer_frame))
- || !FRAME_LIVE_P (XFRAME (KVAR (kb, Vdefault_minibuffer_frame)))))
- kset_default_minibuffer_frame (kb, frame);
- }
+ if (FRAME_HAS_MINIBUF_P (f)
+ && (!FRAMEP (KVAR (kb, Vdefault_minibuffer_frame))
+ || !FRAME_LIVE_P (XFRAME (KVAR (kb, Vdefault_minibuffer_frame)))))
+ kset_default_minibuffer_frame (kb, frame);
for (tem = parms; CONSP (tem); tem = XCDR (tem))
if (CONSP (XCAR (tem)) && !NILP (XCAR (XCAR (tem))))
@@ -928,13 +878,230 @@ haiku_create_frame (Lisp_Object parms, int ttip_p)
and similar functions. */
Vwindow_list = Qnil;
- if (ttip_p)
- adjust_frame_size (f, FRAME_TEXT_WIDTH (f), FRAME_TEXT_HEIGHT (f),
- 0, true, Qtip_frame);
+ return unbind_to (count, frame);
+}
+
+/* Create a frame for a tooltip. PARMS is a list of frame parameters.
+ TEXT is the string to display in the tip frame. Value is the
+ frame.
+
+ Note that functions called here, esp. gui_default_parameter can
+ signal errors, for instance when a specified color name is
+ undefined. We have to make sure that we're in a consistent state
+ when this happens. */
+
+static Lisp_Object
+haiku_create_tip_frame (Lisp_Object parms)
+{
+ struct frame *f;
+ Lisp_Object frame;
+ Lisp_Object name;
+ ptrdiff_t count = SPECPDL_INDEX ();
+ bool face_change_before = face_change;
+ struct haiku_display_info *dpyinfo = x_display_list;
+
+ if (!dpyinfo->terminal->name)
+ error ("Terminal is not live, can't create new frames on it");
+
+ parms = Fcopy_alist (parms);
+
+ /* Get the name of the frame to use for resource lookup. */
+ name = gui_display_get_arg (dpyinfo, parms, Qname, "name", "Name",
+ RES_TYPE_STRING);
+ if (!STRINGP (name)
+ && !EQ (name, Qunbound)
+ && !NILP (name))
+ error ("Invalid frame name--not a string or nil");
+
+ frame = Qnil;
+ f = make_frame (false);
+ f->wants_modeline = false;
+ XSETFRAME (frame, f);
+ record_unwind_protect (unwind_create_tip_frame, frame);
+
+ f->terminal = dpyinfo->terminal;
+
+ /* By setting the output method, we're essentially saying that
+ the frame is live, as per FRAME_LIVE_P. If we get a signal
+ from this point on, x_destroy_window might screw up reference
+ counts etc. */
+ f->output_method = output_haiku;
+ f->output_data.haiku = xzalloc (sizeof *f->output_data.haiku);
+
+ f->output_data.haiku->pending_zoom_x = INT_MIN;
+ f->output_data.haiku->pending_zoom_y = INT_MIN;
+ f->output_data.haiku->pending_zoom_width = INT_MIN;
+ f->output_data.haiku->pending_zoom_height = INT_MIN;
+
+ f->tooltip = true;
+ fset_icon_name (f, Qnil);
+ FRAME_DISPLAY_INFO (f) = dpyinfo;
+
+ FRAME_OUTPUT_DATA (f)->parent_desc = NULL;
+ FRAME_OUTPUT_DATA (f)->explicit_parent = 0;
+
+ /* Set the name; the functions to which we pass f expect the name to
+ be set. */
+ if (EQ (name, Qunbound) || NILP (name))
+ f->explicit_name = false;
+ else
+ {
+ fset_name (f, name);
+ f->explicit_name = true;
+ /* use the frame's title when getting resources for this frame. */
+ specbind (Qx_resource_name, name);
+ }
+
+#ifdef USE_BE_CAIRO
+ register_font_driver (&ftcrfont_driver, f);
+#ifdef HAVE_HARFBUZZ
+ register_font_driver (&ftcrhbfont_driver, f);
+#endif
+#endif
+ register_font_driver (&haikufont_driver, f);
+
+ image_cache_refcount =
+ FRAME_IMAGE_CACHE (f) ? FRAME_IMAGE_CACHE (f)->refcount : 0;
+
+ gui_default_parameter (f, parms, Qfont_backend, Qnil,
+ "fontBackend", "FontBackend", RES_TYPE_STRING);
+
+ /* Extract the window parameters from the supplied values that are
+ needed to determine window geometry. */
+ FRAME_RIF (f)->default_font_parameter (f, parms);
+
+ /* This defaults to 1 in order to match xterm. We recognize either
+ internalBorderWidth or internalBorder (which is what xterm calls
+ it). */
+ if (NILP (Fassq (Qinternal_border_width, parms)))
+ {
+ Lisp_Object value;
+
+ value = gui_display_get_arg (dpyinfo, parms, Qinternal_border_width,
+ "internalBorder", "internalBorder",
+ RES_TYPE_NUMBER);
+ if (! EQ (value, Qunbound))
+ parms = Fcons (Fcons (Qinternal_border_width, value),
+ parms);
+ }
+
+ gui_default_parameter (f, parms, Qinternal_border_width, make_fixnum (1),
+ "internalBorderWidth", "internalBorderWidth",
+ RES_TYPE_NUMBER);
+
+ gui_default_parameter (f, parms, Qright_divider_width, make_fixnum (0),
+ NULL, NULL, RES_TYPE_NUMBER);
+ gui_default_parameter (f, parms, Qbottom_divider_width, make_fixnum (0),
+ NULL, NULL, RES_TYPE_NUMBER);
+
+ /* Also do the stuff which must be set before the window exists. */
+ gui_default_parameter (f, parms, Qforeground_color, build_string ("black"),
+ "foreground", "Foreground", RES_TYPE_STRING);
+
+ gui_default_parameter (f, parms, Qbackground_color, build_string ("white"),
+ "background", "Background", RES_TYPE_STRING);
+ gui_default_parameter (f, parms, Qmouse_color, build_string ("black"),
+ "pointerColor", "Foreground", RES_TYPE_STRING);
+ gui_default_parameter (f, parms, Qcursor_color, build_string ("black"),
+ "cursorColor", "Foreground", RES_TYPE_STRING);
+ gui_default_parameter (f, parms, Qborder_color, build_string ("black"),
+ "borderColor", "BorderColor", RES_TYPE_STRING);
+ gui_default_parameter (f, parms, Qno_special_glyphs, Qnil,
+ NULL, NULL, RES_TYPE_BOOLEAN);
+
+ /* Init faces before gui_default_parameter is called for the
+ scroll-bar-width parameter because otherwise we end up in
+ init_iterator with a null face cache, which should not happen. */
+ init_frame_faces (f);
+
+ gui_default_parameter (f, parms, Qinhibit_double_buffering, Qnil,
+ "inhibitDoubleBuffering", "InhibitDoubleBuffering",
+ RES_TYPE_BOOLEAN);
+
+ gui_figure_window_size (f, parms, false, false);
+
+ {
+ void *window;
+
+ block_input ();
+ window = BWindow_new (&FRAME_OUTPUT_DATA (f)->view);
+
+ FRAME_OUTPUT_DATA (f)->window = window;
+ if (!window)
+ emacs_abort ();
+
+ FRAME_OUTPUT_DATA (f)->window_desc = window;
+ BWindow_set_tooltip_decoration (window);
+ unblock_input ();
+ }
+
+ gui_default_parameter (f, parms, Qauto_raise, Qnil,
+ "autoRaise", "AutoRaiseLower", RES_TYPE_BOOLEAN);
+ gui_default_parameter (f, parms, Qauto_lower, Qnil,
+ "autoLower", "AutoRaiseLower", RES_TYPE_BOOLEAN);
+ gui_default_parameter (f, parms, Qcursor_type, Qbox,
+ "cursorType", "CursorType", RES_TYPE_SYMBOL);
+ gui_default_parameter (f, parms, Qalpha, Qnil,
+ "alpha", "Alpha", RES_TYPE_NUMBER);
+
+ initial_setup_back_buffer (f);
+
+ /* Add `tooltip' frame parameter's default value. */
+ if (NILP (Fframe_parameter (frame, Qtooltip)))
+ {
+ AUTO_FRAME_ARG (arg, Qtooltip, Qt);
+ Fmodify_frame_parameters (frame, arg);
+ }
+
+ /* FIXME - can this be done in a similar way to normal frames?
+ https://lists.gnu.org/r/emacs-devel/2007-10/msg00641.html */
+
+ /* Set up faces after all frame parameters are known. This call
+ also merges in face attributes specified for new frames.
+
+ Frame parameters may be changed if .Xdefaults contains
+ specifications for the default font. For example, if there is an
+ `Emacs.default.attributeBackground: pink', the `background-color'
+ attribute of the frame gets set, which let's the internal border
+ of the tooltip frame appear in pink. Prevent this. */
+ {
+ Lisp_Object bg = Fframe_parameter (frame, Qbackground_color);
+ call2 (Qface_set_after_frame_default, frame, Qnil);
+
+ if (!EQ (bg, Fframe_parameter (frame, Qbackground_color)))
+ {
+ AUTO_FRAME_ARG (arg, Qbackground_color, bg);
+ Fmodify_frame_parameters (frame, arg);
+ }
+ }
+
+ f->no_split = true;
+
+ /* Now that the frame will be official, it counts as a reference to
+ its display and terminal. */
+ f->terminal->reference_count++;
+
+ /* It is now ok to make the frame official even if we get an error
+ below. And the frame needs to be on Vframe_list or making it
+ visible won't work. */
+ Vframe_list = Fcons (frame, Vframe_list);
+ f->can_set_window_size = true;
+ adjust_frame_size (f, FRAME_TEXT_WIDTH (f), FRAME_TEXT_HEIGHT (f),
+ 0, true, Qtip_frame);
+
+ /* Setting attributes of faces of the tooltip frame from resources
+ and similar will set face_change, which leads to the clearing of
+ all current matrices. Since this isn't necessary here, avoid it
+ by resetting face_change to the value it had before we created
+ the tip frame. */
+ face_change = face_change_before;
+
+ /* Discard the unwind_protect. */
return unbind_to (count, frame);
}
+
static void
compute_tip_xy (struct frame *f,
Lisp_Object parms, Lisp_Object dx, Lisp_Object dy,
@@ -1067,6 +1234,20 @@ haiku_set_undecorated (struct frame *f, Lisp_Object
new_value,
unblock_input ();
}
+static void
+haiku_set_override_redirect (struct frame *f, Lisp_Object new_value,
+ Lisp_Object old_value)
+{
+ if (EQ (new_value, old_value))
+ return;
+
+ block_input ();
+ BWindow_set_override_redirect (FRAME_HAIKU_WINDOW (f),
+ !NILP (new_value));
+ FRAME_OVERRIDE_REDIRECT (f) = !NILP (new_value);
+ unblock_input ();
+}
+
static void
haiku_set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object
oldval)
{
@@ -1425,6 +1606,7 @@ haiku_set_internal_border_width (struct frame *f,
Lisp_Object arg, Lisp_Object o
if (new_width == old_width)
return;
+
f->internal_border_width = new_width;
if (FRAME_HAIKU_WINDOW (f))
@@ -1512,9 +1694,9 @@ haiku_set_inhibit_double_buffering (struct frame *f,
Lisp_Object old_value)
{
block_input ();
-#ifndef USE_BE_CAIRO
if (FRAME_HAIKU_WINDOW (f))
{
+#ifndef USE_BE_CAIRO
if (NILP (new_value))
{
#endif
@@ -1528,8 +1710,8 @@ haiku_set_inhibit_double_buffering (struct frame *f,
}
else
EmacsView_disable_double_buffering (FRAME_HAIKU_VIEW (f));
- }
#endif
+ }
unblock_input ();
}
@@ -1694,7 +1876,7 @@ DEFUN ("x-display-mm-width", Fx_display_mm_width,
Sx_display_mm_width, 0, 1, 0,
int width, height;
BScreen_px_dim (&width, &height);
- return make_fixnum (height / (dpyinfo->resy / 25.4));
+ return make_fixnum (width / (dpyinfo->resx / 25.4));
}
DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame,
@@ -1702,7 +1884,7 @@ DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame,
doc: /* SKIP: real doc in xfns.c. */)
(Lisp_Object parms)
{
- return haiku_create_frame (parms, 0);
+ return haiku_create_frame (parms);
}
DEFUN ("x-display-visual-class", Fx_display_visual_class,
@@ -1737,12 +1919,13 @@ DEFUN ("x-show-tip", Fx_show_tip, Sx_show_tip, 1, 6, 0,
ptrdiff_t count = SPECPDL_INDEX ();
ptrdiff_t count_1;
Lisp_Object window, size, tip_buf;
-
AUTO_STRING (tip, " *tip*");
specbind (Qinhibit_redisplay, Qt);
CHECK_STRING (string);
+ if (SCHARS (string) == 0)
+ string = make_unibyte_string (" ", 1);
if (NILP (frame))
frame = selected_frame;
@@ -1763,7 +1946,7 @@ DEFUN ("x-show-tip", Fx_show_tip, Sx_show_tip, 1, 6, 0,
else
CHECK_FIXNUM (dy);
- if (haiku_use_system_tooltips)
+ if (use_system_tooltips)
{
int root_x, root_y;
CHECK_STRING (string);
@@ -1806,24 +1989,21 @@ DEFUN ("x-show-tip", Fx_show_tip, Sx_show_tip, 1, 6, 0,
{
if (FRAME_VISIBLE_P (XFRAME (tip_frame))
&& EQ (frame, tip_last_frame)
- && !NILP (Fequal_including_properties (string, tip_last_string))
- && !NILP (Fequal (parms, tip_last_parms)))
+ && !NILP (Fequal_including_properties (tip_last_string, string))
+ && !NILP (Fequal (tip_last_parms, parms)))
{
/* Only DX and DY have changed. */
tip_f = XFRAME (tip_frame);
if (!NILP (tip_timer))
{
- Lisp_Object timer = tip_timer;
-
+ call1 (Qcancel_timer, tip_timer);
tip_timer = Qnil;
- call1 (Qcancel_timer, timer);
}
block_input ();
compute_tip_xy (tip_f, parms, dx, dy, FRAME_PIXEL_WIDTH (tip_f),
FRAME_PIXEL_HEIGHT (tip_f), &root_x, &root_y);
- haiku_set_offset (tip_f, root_x, root_y, 1);
- haiku_visualize_frame (tip_f);
+ BWindow_set_offset (FRAME_HAIKU_WINDOW (tip_f), root_x, root_y);
unblock_input ();
goto start_timer;
@@ -1834,8 +2014,8 @@ DEFUN ("x-show-tip", Fx_show_tip, Sx_show_tip, 1, 6, 0,
Lisp_Object tail, elt, parm, last;
/* Check if every parameter in PARMS has the same value in
- tip_last_parms. This may destruct tip_last_parms
- which, however, will be recreated below. */
+ tip_last_parms. This may destruct tip_last_parms which,
+ however, will be recreated below. */
for (tail = parms; CONSP (tail); tail = XCDR (tail))
{
elt = XCAR (tail);
@@ -1861,8 +2041,9 @@ DEFUN ("x-show-tip", Fx_show_tip, Sx_show_tip, 1, 6, 0,
call2 (Qassq_delete_all, parm, tip_last_parms);
}
- /* Now check if there's a parameter left in tip_last_parms with a
- non-nil value. */
+ /* Now check if every parameter in what is left of
+ tip_last_parms with a non-nil value has an association in
+ PARMS. */
for (tail = tip_last_parms; CONSP (tail); tail = XCDR (tail))
{
elt = XCAR (tail);
@@ -1888,10 +2069,6 @@ DEFUN ("x-show-tip", Fx_show_tip, Sx_show_tip, 1, 6, 0,
tip_last_string = string;
tip_last_parms = parms;
- /* Block input until the tip has been fully drawn, to avoid crashes
- when drawing tips in menus. */
- block_input ();
-
if (NILP (tip_frame) || !FRAME_LIVE_P (XFRAME (tip_frame)))
{
/* Add default values to frame parameters. */
@@ -1902,21 +2079,16 @@ DEFUN ("x-show-tip", Fx_show_tip, Sx_show_tip, 1, 6, 0,
if (NILP (Fassq (Qborder_width, parms)))
parms = Fcons (Fcons (Qborder_width, make_fixnum (1)), parms);
if (NILP (Fassq (Qborder_color, parms)))
- parms = Fcons (Fcons (Qborder_color, build_string ("lightyellow")),
- parms);
+ parms = Fcons (Fcons (Qborder_color, build_string ("lightyellow")),
parms);
if (NILP (Fassq (Qbackground_color, parms)))
parms = Fcons (Fcons (Qbackground_color, build_string ("lightyellow")),
parms);
- /* Create a frame for the tooltip and record it in the global
+ /* Create a frame for the tooltip, and record it in the global
variable tip_frame. */
-
- if (NILP (tip_frame = haiku_create_frame (parms, 1)))
- {
- /* Creating the tip frame failed. */
- unblock_input ();
- return unbind_to (count, Qnil);
- }
+ if (NILP (tip_frame = haiku_create_tip_frame (parms)))
+ /* Creating the tip frame failed. */
+ return unbind_to (count, Qnil);
}
tip_f = XFRAME (tip_frame);
@@ -1956,11 +2128,11 @@ DEFUN ("x-show-tip", Fx_show_tip, Sx_show_tip, 1, 6, 0,
w->pixel_width = w->total_cols * FRAME_COLUMN_WIDTH (tip_f);
w->pixel_height = w->total_lines * FRAME_LINE_HEIGHT (tip_f);
- FRAME_TOTAL_COLS (tip_f) = WINDOW_TOTAL_COLS (w);
+ FRAME_TOTAL_COLS (tip_f) = w->total_cols;
adjust_frame_glyphs (tip_f);
- /* Insert STRING into the root window's buffer and fit the frame to
- the buffer. */
+ /* Insert STRING into root window's buffer and fit the frame to the
+ buffer. */
count_1 = SPECPDL_INDEX ();
old_buffer = current_buffer;
set_buffer_internal_1 (XBUFFER (w->contents));
@@ -1981,22 +2153,28 @@ DEFUN ("x-show-tip", Fx_show_tip, Sx_show_tip, 1, 6, 0,
/* Add the frame's internal border to calculated size. */
width = XFIXNUM (Fcar (size)) + 2 * FRAME_INTERNAL_BORDER_WIDTH (tip_f);
height = XFIXNUM (Fcdr (size)) + 2 * FRAME_INTERNAL_BORDER_WIDTH (tip_f);
+
/* Calculate position of tooltip frame. */
compute_tip_xy (tip_f, parms, dx, dy, width, height, &root_x, &root_y);
- BWindow_resize (FRAME_HAIKU_WINDOW (tip_f), width, height);
- haiku_set_offset (tip_f, root_x, root_y, 1);
- BWindow_set_tooltip_decoration (FRAME_HAIKU_WINDOW (tip_f));
- BView_set_view_cursor (FRAME_HAIKU_VIEW (tip_f),
- FRAME_OUTPUT_DATA (XFRAME (frame))->current_cursor);
- SET_FRAME_VISIBLE (tip_f, 1);
- BWindow_set_visible (FRAME_HAIKU_WINDOW (tip_f), 1);
+
+ /* Show tooltip frame. */
+ block_input ();
+ void *wnd = FRAME_HAIKU_WINDOW (tip_f);
+ BWindow_resize (wnd, width, height);
+ BView_resize_to (FRAME_HAIKU_VIEW (tip_f), width, height);
+ BWindow_set_offset (wnd, root_x, root_y);
+ BWindow_set_visible (wnd, true);
+ SET_FRAME_VISIBLE (tip_f, true);
+ FRAME_PIXEL_WIDTH (tip_f) = width;
+ FRAME_PIXEL_HEIGHT (tip_f) = height;
+ BWindow_sync (wnd);
+ unblock_input ();
w->must_be_updated_p = true;
- flush_frame (tip_f);
update_single_window (w);
+ flush_frame (tip_f);
set_buffer_internal_1 (old_buffer);
unbind_to (count_1, Qnil);
- unblock_input ();
windows_or_buffers_changed = old_windows_or_buffers_changed;
start_timer:
@@ -2430,7 +2608,7 @@ frame_parm_handler haiku_frame_parm_handlers[] =
haiku_set_no_focus_on_map,
haiku_set_no_accept_focus,
NULL, /* set z group */
- NULL, /* set override redir */
+ haiku_set_override_redirect,
gui_set_no_special_glyphs
};
@@ -2444,6 +2622,7 @@ syms_of_haikufns (void)
DEFSYM (Qalways, "always");
DEFSYM (Qnot_useful, "not-useful");
DEFSYM (Qwhen_mapped, "when-mapped");
+ DEFSYM (Qtooltip_reuse_hidden_frame, "tooltip-reuse-hidden-frame");
defsubr (&Sx_hide_tip);
defsubr (&Sxw_display_color_p);
@@ -2493,14 +2672,6 @@ syms_of_haikufns (void)
doc: /* SKIP: real doc in xfns.c. */);
Vx_max_tooltip_size = Fcons (make_fixnum (80), make_fixnum (40));
- DEFVAR_BOOL ("haiku-use-system-tooltips", haiku_use_system_tooltips,
- doc: /* When non-nil, Emacs will display tooltips using the App
Kit.
-This can avoid a great deal of consing that does not play
-well with the Haiku memory allocator, but comes with the
-disadvantage of not being able to use special display properties
-within tooltips. */);
- haiku_use_system_tooltips = 1;
-
#ifdef USE_BE_CAIRO
DEFVAR_LISP ("cairo-version-string", Vcairo_version_string,
doc: /* Version info for cairo. */);
diff --git a/src/haikuimage.c b/src/haikuimage.c
index 4ffa214f1c..fe960bbc29 100644
--- a/src/haikuimage.c
+++ b/src/haikuimage.c
@@ -52,6 +52,8 @@ haiku_can_use_native_image_api (Lisp_Object type)
mime_type = "image/svg";
else if (EQ (type, Qpbm))
mime_type = "image/pbm";
+ else if (EQ (type, Qwebp))
+ mime_type = "image/webp";
if (!mime_type)
return 0;
diff --git a/src/haikumenu.c b/src/haikumenu.c
index f335bdacb4..875f1afb6a 100644
--- a/src/haikumenu.c
+++ b/src/haikumenu.c
@@ -142,10 +142,7 @@ digest_menu_items (void *first_menu, int start, int
menu_items_used,
}
if (STRINGP (help) && STRING_MULTIBYTE (help))
- {
- help = ENCODE_UTF_8 (help);
- ASET (menu_items, i + MENU_ITEMS_ITEM_HELP, help);
- }
+ help = ENCODE_UTF_8 (help);
if (i + MENU_ITEMS_ITEM_LENGTH < menu_items_used &&
NILP (AREF (menu_items, i + MENU_ITEMS_ITEM_LENGTH)))
@@ -158,6 +155,12 @@ digest_menu_items (void *first_menu, int start, int
menu_items_used,
!NILP (enable), !NILP (selected), 0, window,
!NILP (descrip) ? SSDATA (descrip) : NULL,
STRINGP (help) ? SSDATA (help) : NULL);
+ else if (!use_system_tooltips || NILP (Fsymbol_value (Qtooltip_mode)))
+ BMenu_add_item (menu, SSDATA (item_name),
+ !NILP (def) ? (void *) (intptr_t) i : NULL,
+ !NILP (enable), !NILP (selected), 1, window,
+ !NILP (descrip) ? SSDATA (descrip) : NULL,
+ NULL);
else
BMenu_add_item (menu, SSDATA (item_name),
!NILP (def) ? (void *) (intptr_t) i : NULL,
@@ -613,7 +616,7 @@ run_menu_bar_help_event (struct frame *f, int mb_idx)
}
vec = f->menu_bar_vector;
- if (mb_idx >= ASIZE (vec))
+ if ((mb_idx + MENU_ITEMS_ITEM_HELP) >= ASIZE (vec))
emacs_abort ();
help = AREF (vec, mb_idx + MENU_ITEMS_ITEM_HELP);
@@ -642,8 +645,10 @@ the position of the last non-menu event instead. */)
if (FRAME_EXTERNAL_MENU_BAR (f))
{
- if (!FRAME_OUTPUT_DATA (f)->menu_up_to_date_p)
- set_frame_menubar (f, 1);
+ block_input ();
+ set_frame_menubar (f, 1);
+ BMenuBar_start_tracking (FRAME_HAIKU_MENU_BAR (f));
+ unblock_input ();
}
else
{
@@ -651,10 +656,6 @@ the position of the last non-menu event instead. */)
last_nonmenu_event);
}
- block_input ();
- BMenuBar_start_tracking (FRAME_HAIKU_MENU_BAR (f));
- unblock_input ();
-
return Qnil;
}
@@ -664,6 +665,7 @@ syms_of_haikumenu (void)
DEFSYM (Qdebug_on_next_call, "debug-on-next-call");
DEFSYM (Qpopup_menu, "popup-menu");
DEFSYM (Qmouse_menu_bar_map, "mouse-menu-bar-map");
+ DEFSYM (Qtooltip_mode, "tooltip-mode");
defsubr (&Smenu_or_popup_active_p);
defsubr (&Shaiku_menu_bar_open);
diff --git a/src/haikuselect.c b/src/haikuselect.c
index 1b94fb97e6..e65ab827c5 100644
--- a/src/haikuselect.c
+++ b/src/haikuselect.c
@@ -24,6 +24,8 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#include "haikuselect.h"
#include "haikuterm.h"
+#include <stdlib.h>
+
static Lisp_Object
haiku_selection_data_1 (Lisp_Object clipboard)
{
@@ -164,6 +166,36 @@ clipboard. */)
return Qnil;
}
+DEFUN ("haiku-selection-owner-p", Fhaiku_selection_owner_p,
Shaiku_selection_owner_p,
+ 0, 1, 0,
+ doc: /* Whether the current Emacs process owns the given SELECTION.
+The arg should be the name of the selection in question, typically one
+of the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. For
+convenience, the symbol nil is the same as `PRIMARY', and t is the
+same as `SECONDARY'. */)
+ (Lisp_Object selection)
+{
+ bool value;
+
+ if (NILP (selection))
+ selection = QPRIMARY;
+ else if (EQ (selection, Qt))
+ selection = QSECONDARY;
+
+ block_input ();
+ if (EQ (selection, QPRIMARY))
+ value = BClipboard_owns_primary ();
+ else if (EQ (selection, QSECONDARY))
+ value = BClipboard_owns_secondary ();
+ else if (EQ (selection, QCLIPBOARD))
+ value = BClipboard_owns_clipboard ();
+ else
+ value = false;
+ unblock_input ();
+
+ return value ? Qt : Qnil;
+}
+
void
syms_of_haikuselect (void)
{
@@ -177,4 +209,5 @@ syms_of_haikuselect (void)
defsubr (&Shaiku_selection_data);
defsubr (&Shaiku_selection_put);
defsubr (&Shaiku_selection_targets);
+ defsubr (&Shaiku_selection_owner_p);
}
diff --git a/src/haikuselect.h b/src/haikuselect.h
index 80f33c6ed2..566aae596f 100644
--- a/src/haikuselect.h
+++ b/src/haikuselect.h
@@ -66,6 +66,15 @@ extern "C"
extern void
BClipboard_secondary_targets (char **buf, int len);
+ extern bool
+ BClipboard_owns_clipboard (void);
+
+ extern bool
+ BClipboard_owns_primary (void);
+
+ extern bool
+ BClipboard_owns_secondary (void);
+
/* Free the returned data. */
extern void BClipboard_free_data (void *ptr);
#ifdef __cplusplus
diff --git a/src/haikuterm.c b/src/haikuterm.c
index 928b571855..b9eb1d2fc5 100644
--- a/src/haikuterm.c
+++ b/src/haikuterm.c
@@ -55,6 +55,8 @@ struct unhandled_event
uint8_t buffer[200];
};
+static bool any_help_event_p = false;
+
char *
get_keysym_name (int keysym)
{
@@ -107,6 +109,8 @@ haiku_delete_terminal (struct terminal *terminal)
static const char *
get_string_resource (void *ignored, const char *name, const char *class)
{
+ const char *native;
+
if (!name)
return NULL;
@@ -115,6 +119,9 @@ get_string_resource (void *ignored, const char *name, const
char *class)
if (!NILP (lval))
return SSDATA (XCDR (lval));
+ if ((native = be_find_setting (name)))
+ return native;
+
return NULL;
}
@@ -231,14 +238,17 @@ static void
haiku_clear_frame (struct frame *f)
{
void *view = FRAME_HAIKU_VIEW (f);
+
+ mark_window_cursors_off (XWINDOW (FRAME_ROOT_WINDOW (f)));
+
block_input ();
BView_draw_lock (view);
BView_StartClip (view);
- BView_ClipToRect (view, 0, 0, FRAME_PIXEL_WIDTH (f) + 1,
- FRAME_PIXEL_HEIGHT (f) + 1);
+ BView_ClipToRect (view, 0, 0, FRAME_PIXEL_WIDTH (f),
+ FRAME_PIXEL_HEIGHT (f));
BView_SetHighColor (view, FRAME_BACKGROUND_PIXEL (f));
- BView_FillRectangle (view, 0, 0, FRAME_PIXEL_WIDTH (f) + 1,
- FRAME_PIXEL_HEIGHT (f) + 1);
+ BView_FillRectangle (view, 0, 0, FRAME_PIXEL_WIDTH (f) ,
+ FRAME_PIXEL_HEIGHT (f));
BView_EndClip (view);
BView_draw_unlock (view);
unblock_input ();
@@ -276,7 +286,7 @@ haiku_new_font (struct frame *f, Lisp_Object font_object,
int fontset)
else
FRAME_CONFIG_SCROLL_BAR_COLS (f) = (14 + unit - 1) / unit;
- if (FRAME_HAIKU_WINDOW (f))
+ if (FRAME_HAIKU_WINDOW (f) && !FRAME_TOOLTIP_P (f))
{
adjust_frame_size (f, FRAME_COLS (f) * FRAME_COLUMN_WIDTH (f),
FRAME_LINES (f) * FRAME_LINE_HEIGHT (f),
@@ -365,6 +375,13 @@ haiku_frame_raise_lower (struct frame *f, bool raise_p)
BWindow_sync (FRAME_HAIKU_WINDOW (f));
unblock_input ();
}
+ else
+ {
+ block_input ();
+ BWindow_send_behind (FRAME_HAIKU_WINDOW (f), NULL);
+ BWindow_sync (FRAME_HAIKU_WINDOW (f));
+ unblock_input ();
+ }
}
/* Unfortunately, NOACTIVATE is not implementable on Haiku. */
@@ -428,8 +445,6 @@ haiku_draw_box_rect (struct glyph_string *s,
void *view = FRAME_HAIKU_VIEW (s->f);
struct face *face = s->face;
- BView_StartClip (view);
- haiku_clip_to_string (s);
BView_SetHighColor (view, face->box_color);
if (clip_rect)
BView_ClipToRect (view, clip_rect->x, clip_rect->y, clip_rect->width,
@@ -443,7 +458,6 @@ haiku_draw_box_rect (struct glyph_string *s,
if (right_p)
BView_FillRectangle (view, right_x - vwidth + 1,
top_y, vwidth, bottom_y - top_y + 1);
- BView_EndClip (view);
}
static void
@@ -484,8 +498,6 @@ haiku_draw_relief_rect (struct glyph_string *s,
&color_corner);
void *view = FRAME_HAIKU_VIEW (s->f);
- BView_StartClip (view);
- haiku_clip_to_string (s);
BView_SetHighColor (view, raised_p ? color_white : color_black);
if (clip_rect)
BView_ClipToRect (view, clip_rect->x, clip_rect->y, clip_rect->width,
@@ -548,8 +560,6 @@ haiku_draw_relief_rect (struct glyph_string *s,
if (right_p && bot_p)
BView_FillRectangle (view, right_x, bottom_y, 1, 1);
}
-
- BView_EndClip (view);
}
static void
@@ -598,8 +608,6 @@ haiku_draw_text_decoration (struct glyph_string *s, struct
face *face,
void *view = FRAME_HAIKU_VIEW (s->f);
BView_draw_lock (view);
- BView_StartClip (view);
- haiku_clip_to_string (s);
if (face->underline)
{
@@ -617,22 +625,19 @@ haiku_draw_text_decoration (struct glyph_string *s,
struct face *face,
unsigned long thickness, position;
int y;
- if (s->prev && s->prev && s->prev->hl == DRAW_MOUSE_FACE)
+ if (s->prev
+ && s->prev->face->underline == FACE_UNDER_LINE
+ && (s->prev->face->underline_at_descent_line_p
+ == s->face->underline_at_descent_line_p)
+ && (s->prev->face->underline_pixels_above_descent_line
+ == s->face->underline_pixels_above_descent_line))
{
- struct face *prev_face = s->prev->face;
-
- if (prev_face && prev_face->underline == FACE_UNDER_LINE)
- {
- /* We use the same underline style as the previous one. */
- thickness = s->prev->underline_thickness;
- position = s->prev->underline_position;
- }
- else
- goto calculate_underline_metrics;
+ /* We use the same underline style as the previous one. */
+ thickness = s->prev->underline_thickness;
+ position = s->prev->underline_position;
}
else
{
- calculate_underline_metrics:;
struct font *font = font_for_underline_metrics (s);
unsigned long minimum_offset;
bool underline_at_descent_line;
@@ -648,7 +653,8 @@ haiku_draw_text_decoration (struct glyph_string *s, struct
face *face,
val = (WINDOW_BUFFER_LOCAL_VALUE
(Qx_underline_at_descent_line, s->w));
underline_at_descent_line
- = !(NILP (val) || EQ (val, Qunbound));
+ = (!(NILP (val) || EQ (val, Qunbound))
+ || s->face->underline_at_descent_line_p);
val = (WINDOW_BUFFER_LOCAL_VALUE
(Qx_use_underline_position_properties, s->w));
@@ -661,7 +667,9 @@ haiku_draw_text_decoration (struct glyph_string *s, struct
face *face,
else
thickness = 1;
if (underline_at_descent_line)
- position = (s->height - thickness) - (s->ybase - s->y);
+ position = ((s->height - thickness)
+ - (s->ybase - s->y)
+ - s->face->underline_pixels_above_descent_line);
else
{
/* Get the underline position. This is the
@@ -734,7 +742,6 @@ haiku_draw_text_decoration (struct glyph_string *s, struct
face *face,
BView_FillRectangle (view, s->x, glyph_y + dy, s->width, h);
}
- BView_EndClip (view);
BView_draw_unlock (view);
}
@@ -2219,6 +2226,7 @@ haiku_draw_fringe_bitmap (struct window *w, struct
glyph_row *row,
void *view = FRAME_HAIKU_VIEW (XFRAME (WINDOW_FRAME (w)));
struct face *face = p->face;
+ block_input ();
BView_draw_lock (view);
BView_StartClip (view);
@@ -2253,6 +2261,7 @@ haiku_draw_fringe_bitmap (struct window *w, struct
glyph_row *row,
}
BView_EndClip (view);
BView_draw_unlock (view);
+ unblock_input ();
}
static void
@@ -2316,50 +2325,14 @@ haiku_scroll_run (struct window *w, struct run *run)
height = run->height;
}
- if (!height)
- return;
-
block_input ();
gui_clear_cursor (w);
+
BView_draw_lock (view);
-#ifdef USE_BE_CAIRO
- if (EmacsView_double_buffered_p (view))
- {
-#endif
- BView_StartClip (view);
- BView_CopyBits (view, x, from_y, width, height,
- x, to_y, width, height);
- BView_EndClip (view);
-#ifdef USE_BE_CAIRO
- }
- else
- {
- EmacsWindow_begin_cr_critical_section (FRAME_HAIKU_WINDOW (f));
- cairo_surface_t *surface = FRAME_CR_SURFACE (f);
- cairo_surface_t *s
- = cairo_surface_create_similar (surface,
- cairo_surface_get_content (surface),
- width, height);
- cairo_t *cr = cairo_create (s);
- if (surface)
- {
- cairo_set_source_surface (cr, surface, -x, -from_y);
- cairo_paint (cr);
- cairo_destroy (cr);
-
- cr = haiku_begin_cr_clip (f, NULL);
- cairo_save (cr);
- cairo_set_source_surface (cr, s, x, to_y);
- cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
- cairo_rectangle (cr, x, to_y, width, height);
- cairo_fill (cr);
- cairo_restore (cr);
- cairo_surface_destroy (s);
- haiku_end_cr_clip (cr);
- }
- EmacsWindow_end_cr_critical_section (FRAME_HAIKU_WINDOW (f));
- }
-#endif
+ BView_StartClip (view);
+ BView_CopyBits (view, x, from_y, width, height,
+ x, to_y, width, height);
+ BView_EndClip (view);
BView_draw_unlock (view);
unblock_input ();
@@ -2467,10 +2440,7 @@ haiku_default_font_parameter (struct frame *f,
Lisp_Object parms)
struct haiku_font_pattern ptn;
ptn.specified = 0;
- if (f->tooltip)
- BFont_populate_plain_family (&ptn);
- else
- BFont_populate_fixed_family (&ptn);
+ BFont_populate_fixed_family (&ptn);
if (ptn.specified & FSPEC_FAMILY)
font = font_open_by_name (f, build_unibyte_string (ptn.family));
@@ -2585,6 +2555,7 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
struct unhandled_event *unhandled_events = NULL;
int button_or_motion_p;
int need_flush = 0;
+ int do_help = 0;
if (!buf)
buf = xmalloc (200);
@@ -2633,9 +2604,19 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
int width = lrint (b->px_widthf);
int height = lrint (b->px_heightf);
+ if (FRAME_TOOLTIP_P (f))
+ {
+ FRAME_PIXEL_WIDTH (f) = width;
+ FRAME_PIXEL_HEIGHT (f) = height;
+
+ haiku_clear_under_internal_border (f);
+ continue;
+ }
+
BView_draw_lock (FRAME_HAIKU_VIEW (f));
BView_resize_to (FRAME_HAIKU_VIEW (f), width, height);
BView_draw_unlock (FRAME_HAIKU_VIEW (f));
+
if (width != FRAME_PIXEL_WIDTH (f)
|| height != FRAME_PIXEL_HEIGHT (f)
|| (f->new_size_p
@@ -2680,7 +2661,6 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
struct haiku_key_event *b = buf;
Mouse_HLInfo *hlinfo = &x_display_list->mouse_highlight;
struct frame *f = haiku_window_to_frame (b->window);
- int non_ascii_p;
if (!f)
continue;
@@ -2696,16 +2676,15 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
need_flush = 1;
}
- inev.code = b->unraw_mb_char;
-
- BMapKey (b->kc, &non_ascii_p, &inev.code);
+ inev.code = b->keysym ? b->keysym : b->multibyte_char;
- if (non_ascii_p)
+ if (b->keysym)
inev.kind = NON_ASCII_KEYSTROKE_EVENT;
else
inev.kind = inev.code > 127 ? MULTIBYTE_CHAR_KEYSTROKE_EVENT :
ASCII_KEYSTROKE_EVENT;
+ inev.timestamp = b->time / 1000;
inev.modifiers = haiku_modifiers_to_emacs (b->modifiers);
XSETFRAME (inev.frame_or_window, f);
break;
@@ -2738,13 +2717,13 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
struct frame *f = haiku_window_to_frame (b->window);
Mouse_HLInfo *hlinfo = &x_display_list->mouse_highlight;
- if (!f)
+ if (!f || FRAME_TOOLTIP_P (f))
continue;
Lisp_Object frame;
XSETFRAME (frame, f);
- x_display_list->last_mouse_movement_time = time (NULL);
+ x_display_list->last_mouse_movement_time = b->time / 1000;
button_or_motion_p = 1;
if (hlinfo->mouse_face_hidden)
@@ -2768,14 +2747,25 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
}
haiku_new_focus_frame (x_display_list->focused_frame);
- help_echo_string = Qnil;
- gen_help_event (Qnil, frame, Qnil, Qnil, 0);
+
+ if (any_help_event_p)
+ do_help = -1;
}
else
{
struct haiku_display_info *dpyinfo = FRAME_DISPLAY_INFO (f);
struct haiku_rect r = dpyinfo->last_mouse_glyph;
+ /* For an unknown reason Haiku sends phantom motion events when
a
+ tooltip frame is visible. FIXME */
+ if (FRAMEP (tip_frame)
+ && FRAME_LIVE_P (XFRAME (tip_frame))
+ && FRAME_VISIBLE_P (XFRAME (tip_frame))
+ && f == dpyinfo->last_mouse_motion_frame
+ && b->x == dpyinfo->last_mouse_motion_x
+ && b->y == dpyinfo->last_mouse_motion_y)
+ continue;
+
dpyinfo->last_mouse_motion_x = b->x;
dpyinfo->last_mouse_motion_y = b->y;
dpyinfo->last_mouse_motion_frame = f;
@@ -2814,9 +2804,9 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
remember_mouse_glyph (f, b->x, b->y,
&FRAME_DISPLAY_INFO
(f)->last_mouse_glyph);
dpyinfo->last_mouse_glyph_frame = f;
- gen_help_event (help_echo_string, frame, help_echo_window,
- help_echo_object, help_echo_pos);
}
+ else
+ help_echo_string = previous_help_echo_string;
if (!NILP (Vmouse_autoselect_window))
{
@@ -2836,6 +2826,10 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
last_mouse_window = window;
}
+
+ if (!NILP (help_echo_string)
+ || !NILP (previous_help_echo_string))
+ do_help = 1;
}
break;
}
@@ -2855,7 +2849,7 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
inev.modifiers = haiku_modifiers_to_emacs (b->modifiers);
x_display_list->last_mouse_glyph_frame = 0;
- x_display_list->last_mouse_movement_time = time (NULL);
+ x_display_list->last_mouse_movement_time = b->time / 1000;
button_or_motion_p = 1;
/* Is this in the tab-bar? */
@@ -3045,13 +3039,28 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
{
struct haiku_wheel_move_event *b = buf;
struct frame *f = haiku_window_to_frame (b->window);
- int x, y;
+ int x, y, scroll_width, scroll_height;
static float px = 0.0f, py = 0.0f;
+ Lisp_Object wheel_window;
if (!f)
continue;
+
BView_get_mouse (FRAME_HAIKU_VIEW (f), &x, &y);
+ wheel_window = window_from_coordinates (f, x, y, 0, false, false);
+
+ if (NILP (wheel_window))
+ {
+ scroll_width = FRAME_PIXEL_WIDTH (f);
+ scroll_height = FRAME_PIXEL_HEIGHT (f);
+ }
+ else
+ {
+ scroll_width = XWINDOW (wheel_window)->pixel_width;
+ scroll_height = XWINDOW (wheel_window)->pixel_height;
+ }
+
inev.modifiers = haiku_modifiers_to_emacs (b->modifiers);
inev2.modifiers = inev.modifiers;
@@ -3063,9 +3072,9 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
py = 0;
px += (b->delta_x
- * powf (FRAME_PIXEL_HEIGHT (f), 2.0f / 3.0f));
+ * powf (scroll_width, 2.0f / 3.0f));
py += (b->delta_y
- * powf (FRAME_PIXEL_HEIGHT (f), 2.0f / 3.0f));
+ * powf (scroll_height, 2.0f / 3.0f));
if (fabsf (py) >= FRAME_LINE_HEIGHT (f)
|| fabsf (px) >= FRAME_COLUMN_WIDTH (f)
@@ -3125,7 +3134,11 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
if (type == MENU_BAR_OPEN)
{
- if (!FRAME_OUTPUT_DATA (f)->menu_up_to_date_p)
+ /* b->no_lock means that MenusBeginning was called
+ from the main thread, which means tracking was
+ started manually, and we have already updated the
+ menu bar. */
+ if (!b->no_lock)
{
BView_draw_lock (FRAME_HAIKU_VIEW (f));
/* This shouldn't be here, but nsmenu does it, so
@@ -3137,8 +3150,14 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
waiting_for_input = was_waiting_for_input_p;
BView_draw_unlock (FRAME_HAIKU_VIEW (f));
}
+
+ /* But set the flag anyway, because the menu will end
+ from the window thread. */
FRAME_OUTPUT_DATA (f)->menu_bar_open_p = 1;
popup_activated_p += 1;
+
+ if (!b->no_lock)
+ EmacsWindow_signal_menu_update_complete (b->window);
}
else
{
@@ -3218,7 +3237,10 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
struct frame *f = haiku_window_to_frame (b->window);
if (!f)
- continue;
+ {
+ free (b->ref);
+ continue;
+ }
inev.kind = DRAG_N_DROP_EVENT;
inev.arg = build_string_from_utf8 (b->ref);
@@ -3242,20 +3264,20 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
if (inev.kind != NO_EVENT)
{
- if (inev.kind != HELP_EVENT)
+ if (inev.kind != HELP_EVENT && !inev.timestamp)
inev.timestamp = (button_or_motion_p
? x_display_list->last_mouse_movement_time
- : time (NULL));
+ : system_time () / 1000);
kbd_buffer_store_event_hold (&inev, hold_quit);
++message_count;
}
if (inev2.kind != NO_EVENT)
{
- if (inev2.kind != HELP_EVENT)
+ if (inev2.kind != HELP_EVENT && !inev.timestamp)
inev2.timestamp = (button_or_motion_p
? x_display_list->last_mouse_movement_time
- : time (NULL));
+ : system_time () / 1000);
kbd_buffer_store_event_hold (&inev2, hold_quit);
++message_count;
}
@@ -3269,6 +3291,28 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
xfree (old);
}
+ if (do_help && !(hold_quit && hold_quit->kind != NO_EVENT))
+ {
+ Lisp_Object help_frame = Qnil;
+
+ if (x_display_list->last_mouse_frame)
+ XSETFRAME (help_frame,
+ x_display_list->last_mouse_frame);
+
+ if (do_help > 0)
+ {
+ any_help_event_p = true;
+ gen_help_event (help_echo_string, help_frame,
+ help_echo_window, help_echo_object,
+ help_echo_pos);
+ }
+ else
+ {
+ help_echo_string = Qnil;
+ gen_help_event (Qnil, help_frame, Qnil, Qnil, 0);
+ }
+ }
+
if (need_flush)
flush_dirty_back_buffers ();
@@ -3487,7 +3531,10 @@ put_xrm_resource (Lisp_Object name, Lisp_Object val)
void
haiku_clear_under_internal_border (struct frame *f)
{
- if (FRAME_INTERNAL_BORDER_WIDTH (f) > 0)
+ if (FRAME_INTERNAL_BORDER_WIDTH (f) > 0
+ /* This is needed because tooltip frames set up the internal
+ border before init_frame_faces. */
+ && FRAME_FACE_CACHE (f))
{
int border = FRAME_INTERNAL_BORDER_WIDTH (f);
int width = FRAME_PIXEL_WIDTH (f);
diff --git a/src/haikuterm.h b/src/haikuterm.h
index 3e39403ab4..de302883e4 100644
--- a/src/haikuterm.h
+++ b/src/haikuterm.h
@@ -178,6 +178,8 @@ struct x_output
extern struct haiku_display_info *x_display_list;
extern struct font_driver const haikufont_driver;
+extern Lisp_Object tip_frame;
+
struct scroll_bar
{
/* These fields are shared by all vectors. */
diff --git a/src/image.c b/src/image.c
index 439348759f..32e03ab6f7 100644
--- a/src/image.c
+++ b/src/image.c
@@ -82,7 +82,9 @@ typedef struct x_bitmap_record Bitmap_Record;
#if defined(USE_CAIRO) || defined(HAVE_NS)
#define RGB_TO_ULONG(r, g, b) (((r) << 16) | ((g) << 8) | (b))
+#ifndef HAVE_NS
#define ARGB_TO_ULONG(a, r, g, b) (((a) << 24) | ((r) << 16) | ((g) << 8) |
(b))
+#endif
#define RED_FROM_ULONG(color) (((color) >> 16) & 0xff)
#define GREEN_FROM_ULONG(color) (((color) >> 8) & 0xff)
#define BLUE_FROM_ULONG(color) ((color) & 0xff)
@@ -1175,7 +1177,7 @@ parse_image_spec (Lisp_Object spec, struct image_keyword
*keywords,
return false;
maybe_done:
- if (EQ (XCDR (plist), Qnil))
+ if (NILP (XCDR (plist)))
{
/* Check that all mandatory fields are present. */
for (i = 0; i < nkeywords; ++i)
@@ -2904,9 +2906,8 @@ x_create_xrender_picture (struct frame *f, Emacs_Pixmap
pixmap, int depth)
{
Picture p;
Display *display = FRAME_X_DISPLAY (f);
- int event_basep, error_basep;
- if (XRenderQueryExtension (display, &event_basep, &error_basep))
+ if (FRAME_DISPLAY_INFO (f)->xrender_supported_p)
{
if (depth <= 0)
depth = DefaultDepthOfScreen (FRAME_X_SCREEN (f));
@@ -10671,11 +10672,16 @@ svg_load_image (struct frame *f, struct image *img,
char *contents,
viewbox_height = dimension_data.height;
#endif
+#ifdef HAVE_NATIVE_TRANSFORMS
compute_image_size (viewbox_width, viewbox_height, img,
&width, &height);
width = scale_image_size (width, 1, FRAME_SCALE_FACTOR (f));
height = scale_image_size (height, 1, FRAME_SCALE_FACTOR (f));
+#else
+ width = viewbox_width;
+ height = viewbox_height;
+#endif
if (! check_image_size (f, width, height))
{
@@ -11194,10 +11200,7 @@ The list of capabilities can include one or more of
the following:
|| defined (HAVE_HAIKU)
return list2 (Qscale, Qrotate90);
# elif defined (HAVE_X_WINDOWS) && defined (HAVE_XRENDER)
- int event_basep, error_basep;
-
- if (XRenderQueryExtension (FRAME_X_DISPLAY (f),
- &event_basep, &error_basep))
+ if (FRAME_DISPLAY_INFO (f)->xrender_supported_p)
return list2 (Qscale, Qrotate90);
# elif defined (HAVE_NTGUI)
return (w32_image_rotations_p ()
@@ -11455,7 +11458,8 @@ non-numeric, there is no explicit limit on the size of
images. */);
add_image_type (Qpng);
#endif
-#if defined (HAVE_WEBP)
+#if defined (HAVE_WEBP) || (defined (HAVE_NATIVE_IMAGE_API) \
+ && defined (HAVE_HAIKU))
DEFSYM (Qwebp, "webp");
add_image_type (Qwebp);
#endif
diff --git a/src/keyboard.c b/src/keyboard.c
index ec1b7cd85d..441c23e10c 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -689,6 +689,8 @@ recursive_edit_1 (void)
{
specbind (Qstandard_output, Qt);
specbind (Qstandard_input, Qt);
+ specbind (Qsymbols_with_pos_enabled, Qnil);
+ specbind (Qprint_symbols_bare, Qnil);
}
#ifdef HAVE_WINDOW_SYSTEM
@@ -1895,6 +1897,9 @@ int poll_suppress_count;
static struct atimer *poll_timer;
+/* The poll period that constructed this timer. */
+static Lisp_Object poll_timer_time;
+
#if defined CYGWIN || defined DOS_NT
/* Poll for input, so that we catch a C-g if it comes in. */
void
@@ -1936,17 +1941,18 @@ start_polling (void)
/* If poll timer doesn't exist, or we need one with
a different interval, start a new one. */
- if (poll_timer == NULL
- || poll_timer->interval.tv_sec != polling_period)
+ if (NUMBERP (Vpolling_period)
+ && (poll_timer == NULL
+ || NILP (Fequal (Vpolling_period, poll_timer_time))))
{
- time_t period = max (1, min (polling_period, TYPE_MAXIMUM (time_t)));
- struct timespec interval = make_timespec (period, 0);
+ struct timespec interval = dtotimespec (XFLOATINT (Vpolling_period));
if (poll_timer)
cancel_atimer (poll_timer);
poll_timer = start_atimer (ATIMER_CONTINUOUS, interval,
poll_for_input, NULL);
+ poll_timer_time = Vpolling_period;
}
/* Let the timer's callback function poll for input
@@ -2014,14 +2020,28 @@ void
bind_polling_period (int n)
{
#ifdef POLL_FOR_INPUT
- intmax_t new = polling_period;
+ if (FIXNUMP (Vpolling_period))
+ {
+ intmax_t new = XFIXNUM (Vpolling_period);
- if (n > new)
- new = n;
+ if (n > new)
+ new = n;
+
+ stop_other_atimers (poll_timer);
+ stop_polling ();
+ specbind (Qpolling_period, make_int (new));
+ }
+ else if (FLOATP (Vpolling_period))
+ {
+ double new = XFLOAT_DATA (Vpolling_period);
+
+ stop_other_atimers (poll_timer);
+ stop_polling ();
+ specbind (Qpolling_period, (n > new
+ ? make_int (n)
+ : Vpolling_period));
+ }
- stop_other_atimers (poll_timer);
- stop_polling ();
- specbind (Qpolling_period, make_int (new));
/* Start a new alarm with the new period. */
start_polling ();
#endif
@@ -3973,9 +3993,7 @@ kbd_buffer_get_event (KBOARD **kbp,
*used_mouse_menu = true;
FALLTHROUGH;
#endif
-#ifdef HAVE_PGTK
- case PGTK_PREEDIT_TEXT_EVENT:
-#endif
+ case PREEDIT_TEXT_EVENT:
#ifdef HAVE_NTGUI
case END_SESSION_EVENT:
case LANGUAGE_CHANGE_EVENT:
@@ -6289,10 +6307,8 @@ make_lispy_event (struct input_event *event)
return list3 (Qconfig_changed_event,
event->arg, event->frame_or_window);
-#ifdef HAVE_PGTK
- case PGTK_PREEDIT_TEXT_EVENT:
- return list2 (intern ("pgtk-preedit-text"), event->arg);
-#endif
+ case PREEDIT_TEXT_EVENT:
+ return list2 (Qpreedit_text, event->arg);
/* The 'kind' field of the event is something we don't recognize. */
default:
@@ -12003,6 +12019,8 @@ syms_of_keyboard (void)
DEFSYM (Qno_record, "no-record");
DEFSYM (Qencoded, "encoded");
+ DEFSYM (Qpreedit_text, "preedit-text");
+
button_down_location = make_nil_vector (5);
staticpro (&button_down_location);
staticpro (&frame_relative_event_pos);
@@ -12066,6 +12084,11 @@ syms_of_keyboard (void)
help_form_saved_window_configs = Qnil;
staticpro (&help_form_saved_window_configs);
+#ifdef POLL_FOR_INPUT
+ poll_timer_time = Qnil;
+ staticpro (&poll_timer_time);
+#endif
+
defsubr (&Scurrent_idle_time);
defsubr (&Sevent_symbol_parse_modifiers);
defsubr (&Sevent_convert_list);
@@ -12223,12 +12246,12 @@ The value may be integer or floating point.
If the value is zero, don't echo at all. */);
Vecho_keystrokes = make_fixnum (1);
- DEFVAR_INT ("polling-period", polling_period,
+ DEFVAR_LISP ("polling-period", Vpolling_period,
doc: /* Interval between polling for input during Lisp execution.
The reason for polling is to make C-g work to stop a running program.
Polling is needed only when using X windows and SIGIO does not work.
Polling is automatically disabled in all other cases. */);
- polling_period = 2;
+ Vpolling_period = make_float (2.0);
DEFVAR_LISP ("double-click-time", Vdouble_click_time,
doc: /* Maximum time between mouse clicks to make a double-click.
@@ -12771,8 +12794,6 @@ keys_of_keyboard (void)
"ns-put-working-text");
initial_define_lispy_key (Vspecial_event_map, "ns-unput-working-text",
"ns-unput-working-text");
- initial_define_lispy_key (Vspecial_event_map, "pgtk-preedit-text",
- "pgtk-preedit-text");
/* Here we used to use `ignore-event' which would simple set prefix-arg to
current-prefix-arg, as is done in `handle-switch-frame'.
But `handle-switch-frame is not run from the special-map.
diff --git a/src/keyboard.h b/src/keyboard.h
index 167b7d79e8..cd5f677b96 100644
--- a/src/keyboard.h
+++ b/src/keyboard.h
@@ -486,8 +486,6 @@ extern bool kbd_buffer_events_waiting (void);
extern void add_user_signal (int, const char *);
extern int tty_read_avail_input (struct terminal *, struct input_event *);
-extern bool volatile pending_signals;
-extern void process_pending_signals (void);
extern struct timespec timer_check (void);
extern void mark_kboards (void);
diff --git a/src/lisp.h b/src/lisp.h
index f8fe2a6906..10f45057d5 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -137,25 +137,9 @@ verify (BITS_WORD_MAX >> (BITS_PER_BITS_WORD - 1) == 1);
/* Use pD to format ptrdiff_t values, which suffice for indexes into
buffers and strings. Emacs never allocates objects larger than
PTRDIFF_MAX bytes, as they cause problems with pointer subtraction.
- In C99, pD can always be "t"; configure it here for the sake of
- pre-C99 libraries such as glibc 2.0 and Solaris 8.
-
- On Haiku, the size of ptrdiff_t is inconsistent with the value of
- PTRDIFF_MAX. In that case, "t" should be sufficient. */
-
-#ifndef HAIKU
-#if PTRDIFF_MAX == INT_MAX
-# define pD ""
-#elif PTRDIFF_MAX == LONG_MAX
-# define pD "l"
-#elif PTRDIFF_MAX == LLONG_MAX
-# define pD "ll"
-#else
-# define pD "t"
-#endif
-#else
-# define pD "t"
-#endif
+ In C99, pD can always be "t", as we no longer need to worry about
+ pre-C99 libraries such as glibc 2.0 (1997) and Solaris 8 (2000). */
+#define pD "t"
/* Convenience macro for rarely-used functions that do not return. */
#define AVOID _Noreturn ATTRIBUTE_COLD void
@@ -369,18 +353,41 @@ typedef EMACS_INT Lisp_Word;
# endif
#endif
+#define lisp_h_PSEUDOVECTORP(a,code) \
+ (lisp_h_VECTORLIKEP((a)) && \
+ ((XUNTAG ((a), Lisp_Vectorlike, union vectorlike_header)->size \
+ & (PSEUDOVECTOR_FLAG | PVEC_TYPE_MASK)) \
+ == (PSEUDOVECTOR_FLAG | ((code) << PSEUDOVECTOR_AREA_BITS))))
+
#define lisp_h_CHECK_FIXNUM(x) CHECK_TYPE (FIXNUMP (x), Qfixnump, x)
#define lisp_h_CHECK_SYMBOL(x) CHECK_TYPE (SYMBOLP (x), Qsymbolp, x)
#define lisp_h_CHECK_TYPE(ok, predicate, x) \
((ok) ? (void) 0 : wrong_type_argument (predicate, x))
#define lisp_h_CONSP(x) TAGGEDP (x, Lisp_Cons)
-#define lisp_h_EQ(x, y) (XLI (x) == XLI (y))
+#define lisp_h_BASE_EQ(x, y) (XLI (x) == XLI (y))
+
+/* FIXME: Do we really need to inline the whole thing?
+ * What about keeping the part after `symbols_with_pos_enabled` in
+ * a separate function? */
+#define lisp_h_EQ(x, y) \
+ ((XLI ((x)) == XLI ((y))) \
+ || (symbols_with_pos_enabled \
+ && (SYMBOL_WITH_POS_P ((x)) \
+ ? (BARE_SYMBOL_P ((y)) \
+ ? XLI (XSYMBOL_WITH_POS((x))->sym) == XLI (y) \
+ : SYMBOL_WITH_POS_P((y)) \
+ && (XLI (XSYMBOL_WITH_POS((x))->sym) \
+ == XLI (XSYMBOL_WITH_POS((y))->sym))) \
+ : (SYMBOL_WITH_POS_P ((y)) \
+ && BARE_SYMBOL_P ((x)) \
+ && (XLI (x) == XLI ((XSYMBOL_WITH_POS ((y)))->sym))))))
+
#define lisp_h_FIXNUMP(x) \
(! (((unsigned) (XLI (x) >> (USE_LSB_TAG ? 0 : FIXNUM_BITS)) \
- (unsigned) (Lisp_Int0 >> !USE_LSB_TAG)) \
& ((1 << INTTYPEBITS) - 1)))
#define lisp_h_FLOATP(x) TAGGEDP (x, Lisp_Float)
-#define lisp_h_NILP(x) EQ (x, Qnil)
+#define lisp_h_NILP(x) BASE_EQ (x, Qnil)
#define lisp_h_SET_SYMBOL_VAL(sym, v) \
(eassert ((sym)->u.s.redirect == SYMBOL_PLAINVAL), \
(sym)->u.s.val.value = (v))
@@ -389,7 +396,10 @@ typedef EMACS_INT Lisp_Word;
#define lisp_h_SYMBOL_TRAPPED_WRITE_P(sym) (XSYMBOL (sym)->u.s.trapped_write)
#define lisp_h_SYMBOL_VAL(sym) \
(eassert ((sym)->u.s.redirect == SYMBOL_PLAINVAL), (sym)->u.s.val.value)
-#define lisp_h_SYMBOLP(x) TAGGEDP (x, Lisp_Symbol)
+#define lisp_h_SYMBOL_WITH_POS_P(x) PSEUDOVECTORP ((x), PVEC_SYMBOL_WITH_POS)
+#define lisp_h_BARE_SYMBOL_P(x) TAGGEDP ((x), Lisp_Symbol)
+#define lisp_h_SYMBOLP(x) ((BARE_SYMBOL_P ((x)) || \
+ (symbols_with_pos_enabled && (SYMBOL_WITH_POS_P
((x))))))
#define lisp_h_TAGGEDP(a, tag) \
(! (((unsigned) (XLI (a) >> (USE_LSB_TAG ? 0 : VALBITS)) \
- (unsigned) (tag)) \
@@ -434,11 +444,12 @@ typedef EMACS_INT Lisp_Word;
# define XLI(o) lisp_h_XLI (o)
# define XIL(i) lisp_h_XIL (i)
# define XLP(o) lisp_h_XLP (o)
+# define BARE_SYMBOL_P(x) lisp_h_BARE_SYMBOL_P (x)
# define CHECK_FIXNUM(x) lisp_h_CHECK_FIXNUM (x)
# define CHECK_SYMBOL(x) lisp_h_CHECK_SYMBOL (x)
# define CHECK_TYPE(ok, predicate, x) lisp_h_CHECK_TYPE (ok, predicate, x)
# define CONSP(x) lisp_h_CONSP (x)
-# define EQ(x, y) lisp_h_EQ (x, y)
+# define BASE_EQ(x, y) lisp_h_BASE_EQ (x, y)
# define FLOATP(x) lisp_h_FLOATP (x)
# define FIXNUMP(x) lisp_h_FIXNUMP (x)
# define NILP(x) lisp_h_NILP (x)
@@ -446,7 +457,7 @@ typedef EMACS_INT Lisp_Word;
# define SYMBOL_CONSTANT_P(sym) lisp_h_SYMBOL_CONSTANT_P (sym)
# define SYMBOL_TRAPPED_WRITE_P(sym) lisp_h_SYMBOL_TRAPPED_WRITE_P (sym)
# define SYMBOL_VAL(sym) lisp_h_SYMBOL_VAL (sym)
-# define SYMBOLP(x) lisp_h_SYMBOLP (x)
+/* # define SYMBOLP(x) lisp_h_SYMBOLP (x) */ /* X is accessed more than once.
*/
# define TAGGEDP(a, tag) lisp_h_TAGGEDP (a, tag)
# define VECTORLIKEP(x) lisp_h_VECTORLIKEP (x)
# define XCAR(c) lisp_h_XCAR (c)
@@ -605,9 +616,11 @@ extern Lisp_Object char_table_ref (Lisp_Object, int)
ATTRIBUTE_PURE;
extern void char_table_set (Lisp_Object, int, Lisp_Object);
/* Defined in data.c. */
+extern bool symbols_with_pos_enabled;
extern AVOID args_out_of_range_3 (Lisp_Object, Lisp_Object, Lisp_Object);
extern AVOID wrong_type_argument (Lisp_Object, Lisp_Object);
extern Lisp_Object default_value (Lisp_Object symbol);
+extern void defalias (Lisp_Object symbol, Lisp_Object definition);
/* Defined in emacs.c. */
@@ -989,57 +1002,12 @@ union vectorlike_header
ptrdiff_t size;
};
-INLINE bool
-(SYMBOLP) (Lisp_Object x)
-{
- return lisp_h_SYMBOLP (x);
-}
-
-INLINE struct Lisp_Symbol * ATTRIBUTE_NO_SANITIZE_UNDEFINED
-XSYMBOL (Lisp_Object a)
-{
- eassert (SYMBOLP (a));
- intptr_t i = (intptr_t) XUNTAG (a, Lisp_Symbol, struct Lisp_Symbol);
- void *p = (char *) lispsym + i;
- return p;
-}
-
-INLINE Lisp_Object
-make_lisp_symbol (struct Lisp_Symbol *sym)
+struct Lisp_Symbol_With_Pos
{
- /* GCC 7 x86-64 generates faster code if lispsym is
- cast to char * rather than to intptr_t. */
- char *symoffset = (char *) ((char *) sym - (char *) lispsym);
- Lisp_Object a = TAG_PTR (Lisp_Symbol, symoffset);
- eassert (XSYMBOL (a) == sym);
- return a;
-}
-
-INLINE Lisp_Object
-builtin_lisp_symbol (int index)
-{
- return make_lisp_symbol (&lispsym[index]);
-}
-
-INLINE bool
-c_symbol_p (struct Lisp_Symbol *sym)
-{
- char *bp = (char *) lispsym;
- char *sp = (char *) sym;
- if (PTRDIFF_MAX < INTPTR_MAX)
- return bp <= sp && sp < bp + sizeof lispsym;
- else
- {
- ptrdiff_t offset = sp - bp;
- return 0 <= offset && offset < sizeof lispsym;
- }
-}
-
-INLINE void
-(CHECK_SYMBOL) (Lisp_Object x)
-{
- lisp_h_CHECK_SYMBOL (x);
-}
+ union vectorlike_header header;
+ Lisp_Object sym; /* A symbol */
+ Lisp_Object pos; /* A fixnum */
+} GCALIGNED_STRUCT;
/* In the size word of a vector, this bit means the vector has been marked. */
@@ -1064,6 +1032,7 @@ enum pvec_type
PVEC_MARKER,
PVEC_OVERLAY,
PVEC_FINALIZER,
+ PVEC_SYMBOL_WITH_POS,
PVEC_MISC_PTR,
PVEC_USER_PTR,
PVEC_PROCESS,
@@ -1123,6 +1092,92 @@ enum More_Lisp_Bits
values. They are macros for use in #if and static initializers. */
#define MOST_POSITIVE_FIXNUM (EMACS_INT_MAX >> INTTYPEBITS)
#define MOST_NEGATIVE_FIXNUM (-1 - MOST_POSITIVE_FIXNUM)
+
+INLINE bool
+PSEUDOVECTORP (Lisp_Object a, int code)
+{
+ return lisp_h_PSEUDOVECTORP (a, code);
+}
+
+INLINE bool
+(BARE_SYMBOL_P) (Lisp_Object x)
+{
+ return lisp_h_BARE_SYMBOL_P (x);
+}
+
+INLINE bool
+(SYMBOL_WITH_POS_P) (Lisp_Object x)
+{
+ return lisp_h_SYMBOL_WITH_POS_P (x);
+}
+
+INLINE bool
+(SYMBOLP) (Lisp_Object x)
+{
+ return lisp_h_SYMBOLP (x);
+}
+
+INLINE struct Lisp_Symbol_With_Pos *
+XSYMBOL_WITH_POS (Lisp_Object a)
+{
+ eassert (SYMBOL_WITH_POS_P (a));
+ return XUNTAG (a, Lisp_Vectorlike, struct Lisp_Symbol_With_Pos);
+}
+
+INLINE struct Lisp_Symbol * ATTRIBUTE_NO_SANITIZE_UNDEFINED
+(XBARE_SYMBOL) (Lisp_Object a)
+{
+ eassert (BARE_SYMBOL_P (a));
+ intptr_t i = (intptr_t) XUNTAG (a, Lisp_Symbol, struct Lisp_Symbol);
+ void *p = (char *) lispsym + i;
+ return p;
+}
+
+INLINE struct Lisp_Symbol * ATTRIBUTE_NO_SANITIZE_UNDEFINED
+(XSYMBOL) (Lisp_Object a)
+{
+ eassert (SYMBOLP ((a)));
+ if (!symbols_with_pos_enabled || BARE_SYMBOL_P (a))
+ return XBARE_SYMBOL (a);
+ return XBARE_SYMBOL (XSYMBOL_WITH_POS (a)->sym);
+}
+
+INLINE Lisp_Object
+make_lisp_symbol (struct Lisp_Symbol *sym)
+{
+ /* GCC 7 x86-64 generates faster code if lispsym is
+ cast to char * rather than to intptr_t. */
+ char *symoffset = (char *) ((char *) sym - (char *) lispsym);
+ Lisp_Object a = TAG_PTR (Lisp_Symbol, symoffset);
+ eassert (XSYMBOL (a) == sym);
+ return a;
+}
+
+INLINE Lisp_Object
+builtin_lisp_symbol (int index)
+{
+ return make_lisp_symbol (&lispsym[index]);
+}
+
+INLINE bool
+c_symbol_p (struct Lisp_Symbol *sym)
+{
+ char *bp = (char *) lispsym;
+ char *sp = (char *) sym;
+ if (PTRDIFF_MAX < INTPTR_MAX)
+ return bp <= sp && sp < bp + sizeof lispsym;
+ else
+ {
+ ptrdiff_t offset = sp - bp;
+ return 0 <= offset && offset < sizeof lispsym;
+ }
+}
+
+INLINE void
+(CHECK_SYMBOL) (Lisp_Object x)
+{
+ lisp_h_CHECK_SYMBOL (x);
+}
/* True if the possibly-unsigned integer I doesn't fit in a fixnum. */
@@ -1254,7 +1309,14 @@ make_fixed_natnum (EMACS_INT n)
}
/* Return true if X and Y are the same object. */
+INLINE bool
+(BASE_EQ) (Lisp_Object x, Lisp_Object y)
+{
+ return lisp_h_BASE_EQ (x, y);
+}
+/* Return true if X and Y are the same object, reckoning a symbol with
+ position as being the same as the bare symbol. */
INLINE bool
(EQ) (Lisp_Object x, Lisp_Object y)
{
@@ -1496,7 +1558,9 @@ struct Lisp_String
struct
{
ptrdiff_t size; /* MSB is used as the markbit. */
- ptrdiff_t size_byte; /* Set to -1 for unibyte strings. */
+ ptrdiff_t size_byte; /* Set to -1 for unibyte strings,
+ -2 for data in rodata,
+ -3 for immovable unibyte strings. */
INTERVAL intervals; /* Text properties in this string. */
unsigned char *data;
} s;
@@ -1644,6 +1708,13 @@ CHECK_STRING_NULL_BYTES (Lisp_Object string)
Qfilenamep, string);
}
+/* True if STR is immovable (whose data won't move during GC). */
+INLINE bool
+string_immovable_p (Lisp_Object str)
+{
+ return XSTRING (str)->u.s.size_byte == -3;
+}
+
/* A regular vector is just a header plus an array of Lisp_Objects. */
struct Lisp_Vector
@@ -1720,21 +1791,6 @@ PSEUDOVECTOR_TYPEP (const union vectorlike_header *a,
enum pvec_type code)
== (PSEUDOVECTOR_FLAG | (code << PSEUDOVECTOR_AREA_BITS)));
}
-/* True if A is a pseudovector whose code is CODE. */
-INLINE bool
-PSEUDOVECTORP (Lisp_Object a, int code)
-{
- if (! VECTORLIKEP (a))
- return false;
- else
- {
- /* Converting to union vectorlike_header * avoids aliasing issues. */
- return PSEUDOVECTOR_TYPEP (XUNTAG (a, Lisp_Vectorlike,
- union vectorlike_header),
- code);
- }
-}
-
/* A boolvector is a kind of vectorlike, with contents like a string. */
struct Lisp_Bool_Vector
@@ -2646,6 +2702,22 @@ XOVERLAY (Lisp_Object a)
return XUNTAG (a, Lisp_Vectorlike, struct Lisp_Overlay);
}
+INLINE Lisp_Object
+SYMBOL_WITH_POS_SYM (Lisp_Object a)
+{
+ if (!SYMBOL_WITH_POS_P (a))
+ wrong_type_argument (Qsymbol_with_pos_p, a);
+ return XSYMBOL_WITH_POS (a)->sym;
+}
+
+INLINE Lisp_Object
+SYMBOL_WITH_POS_POS (Lisp_Object a)
+{
+ if (!SYMBOL_WITH_POS_P (a))
+ wrong_type_argument (Qsymbol_with_pos_p, a);
+ return XSYMBOL_WITH_POS (a)->pos;
+}
+
INLINE bool
USER_PTRP (Lisp_Object x)
{
@@ -3284,6 +3356,13 @@ SPECPDL_INDEX (void)
return specpdl_ptr - specpdl;
}
+INLINE bool
+backtrace_debug_on_exit (union specbinding *pdl)
+{
+ eassert (pdl->kind == SPECPDL_BACKTRACE);
+ return pdl->bt.debug_on_exit;
+}
+
/* This structure helps implement the `catch/throw' and `condition-case/signal'
control structures. A struct handler contains all the information needed to
restore the state of the interpreter after a non-local jump.
@@ -3347,12 +3426,34 @@ struct handler
extern Lisp_Object memory_signal_data;
-extern void maybe_quit (void);
-
/* True if ought to quit now. */
#define QUITP (!NILP (Vquit_flag) && NILP (Vinhibit_quit))
+extern bool volatile pending_signals;
+extern void process_pending_signals (void);
+extern void probably_quit (void);
+
+/* Check quit-flag and quit if it is non-nil. Typing C-g does not
+ directly cause a quit; it only sets Vquit_flag. So the program
+ needs to call maybe_quit at times when it is safe to quit. Every
+ loop that might run for a long time or might not exit ought to call
+ maybe_quit at least once, at a safe place. Unless that is
+ impossible, of course. But it is very desirable to avoid creating
+ loops where maybe_quit is impossible.
+
+ If quit-flag is set to `kill-emacs' the SIGINT handler has received
+ a request to exit Emacs when it is safe to do.
+
+ When not quitting, process any pending signals. */
+
+INLINE void
+maybe_quit (void)
+{
+ if (!NILP (Vquit_flag) || pending_signals)
+ probably_quit ();
+}
+
/* Process a quit rarely, based on a counter COUNT, for efficiency.
"Rarely" means once per USHRT_MAX + 1 times; this is somewhat
arbitrary, but efficient. */
@@ -3982,6 +4083,7 @@ extern Lisp_Object make_specified_string (const char *,
ptrdiff_t, ptrdiff_t, bool);
extern Lisp_Object make_pure_string (const char *, ptrdiff_t, ptrdiff_t, bool);
extern Lisp_Object make_pure_c_string (const char *, ptrdiff_t);
+extern void pin_string (Lisp_Object string);
/* Make a string allocated in pure space, use STR as string data. */
@@ -4077,6 +4179,7 @@ extern bool gc_in_progress;
extern Lisp_Object make_float (double);
extern void display_malloc_warning (void);
extern ptrdiff_t inhibit_garbage_collection (void);
+extern Lisp_Object build_symbol_with_pos (Lisp_Object, Lisp_Object);
extern Lisp_Object build_overlay (Lisp_Object, Lisp_Object, Lisp_Object);
extern void free_cons (struct Lisp_Cons *);
extern void init_alloc_once (void);
@@ -4264,7 +4367,9 @@ extern AVOID verror (const char *, va_list)
ATTRIBUTE_FORMAT_PRINTF (1, 0);
extern Lisp_Object vformat_string (const char *, va_list)
ATTRIBUTE_FORMAT_PRINTF (1, 0);
-extern void un_autoload (Lisp_Object);
+extern Lisp_Object load_with_autoload_queue
+ (Lisp_Object file, Lisp_Object noerror, Lisp_Object nomessage,
+ Lisp_Object nosuffix, Lisp_Object must_suffix);
extern Lisp_Object call_debugger (Lisp_Object arg);
extern void init_eval_once (void);
extern Lisp_Object safe_call (ptrdiff_t, Lisp_Object, ...);
@@ -4278,6 +4383,9 @@ extern void mark_specpdl (union specbinding *first, union
specbinding *ptr);
extern void get_backtrace (Lisp_Object array);
Lisp_Object backtrace_top_function (void);
extern bool let_shadows_buffer_binding_p (struct Lisp_Symbol *symbol);
+void do_debug_on_call (Lisp_Object code, ptrdiff_t count);
+Lisp_Object funcall_general (Lisp_Object fun,
+ ptrdiff_t numargs, Lisp_Object *args);
/* Defined in unexmacosx.c. */
#if defined DARWIN_OS && defined HAVE_UNEXEC
@@ -4620,7 +4728,7 @@ extern int read_bytecode_char (bool);
/* Defined in bytecode.c. */
extern void syms_of_bytecode (void);
extern Lisp_Object exec_byte_code (Lisp_Object, Lisp_Object, Lisp_Object,
- Lisp_Object, ptrdiff_t, Lisp_Object *);
+ ptrdiff_t, ptrdiff_t, Lisp_Object *);
extern Lisp_Object get_byte_code_arity (Lisp_Object);
/* Defined in macros.c. */
diff --git a/src/lread.c b/src/lread.c
index 2eff20f15d..9910db27de 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -128,9 +128,8 @@ static ptrdiff_t read_from_string_index;
static ptrdiff_t read_from_string_index_byte;
static ptrdiff_t read_from_string_limit;
-/* Number of characters read in the current call to Fread or
- Fread_from_string. */
-static EMACS_INT readchar_count;
+/* Position in object from which characters are being read by `readchar'. */
+static EMACS_INT readchar_offset;
/* This contains the last string skipped with #@. */
static char *saved_doc_string;
@@ -213,7 +212,7 @@ readchar (Lisp_Object readcharfun, bool *multibyte)
if (multibyte)
*multibyte = 0;
- readchar_count++;
+ readchar_offset++;
if (BUFFERP (readcharfun))
{
@@ -424,7 +423,7 @@ skip_dyn_eof (Lisp_Object readcharfun)
static void
unreadchar (Lisp_Object readcharfun, int c)
{
- readchar_count--;
+ readchar_offset--;
if (c == -1)
/* Don't back up the pointer if we're unreading the end-of-input mark,
since readchar didn't advance it when we read it. */
@@ -647,12 +646,12 @@ struct subst
};
static Lisp_Object read_internal_start (Lisp_Object, Lisp_Object,
- Lisp_Object);
-static Lisp_Object read0 (Lisp_Object);
-static Lisp_Object read1 (Lisp_Object, int *, bool);
+ Lisp_Object, bool);
+static Lisp_Object read0 (Lisp_Object, bool);
+static Lisp_Object read1 (Lisp_Object, int *, bool, bool);
-static Lisp_Object read_list (bool, Lisp_Object);
-static Lisp_Object read_vector (Lisp_Object, bool);
+static Lisp_Object read_list (bool, Lisp_Object, bool);
+static Lisp_Object read_vector (Lisp_Object, bool, bool);
static Lisp_Object substitute_object_recurse (struct subst *, Lisp_Object);
static void substitute_in_interval (INTERVAL, void *);
@@ -2287,7 +2286,7 @@ readevalloop (Lisp_Object readcharfun,
Qnil, false);
if (!NILP (Vpurify_flag) && c == '(')
{
- val = read_list (0, readcharfun);
+ val = read_list (0, readcharfun, false);
}
else
{
@@ -2309,7 +2308,7 @@ readevalloop (Lisp_Object readcharfun,
else if (! NILP (Vload_read_function))
val = call1 (Vload_read_function, readcharfun);
else
- val = read_internal_start (readcharfun, Qnil, Qnil);
+ val = read_internal_start (readcharfun, Qnil, Qnil, false);
}
/* Empty hashes can be reused; otherwise, reset on next call. */
if (HASH_TABLE_P (read_objects_map)
@@ -2467,7 +2466,35 @@ STREAM or the value of `standard-input' may be:
return call1 (intern ("read-minibuffer"),
build_string ("Lisp expression: "));
- return read_internal_start (stream, Qnil, Qnil);
+ return read_internal_start (stream, Qnil, Qnil, false);
+}
+
+DEFUN ("read-positioning-symbols", Fread_positioning_symbols,
+ Sread_positioning_symbols, 0, 1, 0,
+ doc: /* Read one Lisp expression as text from STREAM, return as Lisp
object.
+Convert each occurrence of a symbol into a "symbol with pos" object.
+
+If STREAM is nil, use the value of `standard-input' (which see).
+STREAM or the value of `standard-input' may be:
+ a buffer (read from point and advance it)
+ a marker (read from where it points and advance it)
+ a function (call it with no arguments for each character,
+ call it with a char as argument to push a char back)
+ a string (takes text from string, starting at the beginning)
+ t (read text line using minibuffer and use it, or read from
+ standard input in batch mode). */)
+ (Lisp_Object stream)
+{
+ if (NILP (stream))
+ stream = Vstandard_input;
+ if (EQ (stream, Qt))
+ stream = Qread_char;
+ if (EQ (stream, Qread_char))
+ /* FIXME: ?! When is this used !? */
+ return call1 (intern ("read-minibuffer"),
+ build_string ("Lisp expression: "));
+
+ return read_internal_start (stream, Qnil, Qnil, true);
}
DEFUN ("read-from-string", Fread_from_string, Sread_from_string, 1, 3, 0,
@@ -2483,18 +2510,21 @@ the end of STRING. */)
Lisp_Object ret;
CHECK_STRING (string);
/* `read_internal_start' sets `read_from_string_index'. */
- ret = read_internal_start (string, start, end);
+ ret = read_internal_start (string, start, end, false);
return Fcons (ret, make_fixnum (read_from_string_index));
}
/* Function to set up the global context we need in toplevel read
- calls. START and END only used when STREAM is a string. */
+ calls. START and END only used when STREAM is a string.
+ LOCATE_SYMS true means read symbol occurrences as symbols with
+ position. */
static Lisp_Object
-read_internal_start (Lisp_Object stream, Lisp_Object start, Lisp_Object end)
+read_internal_start (Lisp_Object stream, Lisp_Object start, Lisp_Object end,
+ bool locate_syms)
{
Lisp_Object retval;
- readchar_count = 0;
+ readchar_offset = BUFFERP (stream) ? XBUFFER (stream)->pt : 0;
/* We can get called from readevalloop which may have set these
already. */
if (! HASH_TABLE_P (read_objects_map)
@@ -2507,9 +2537,6 @@ read_internal_start (Lisp_Object stream, Lisp_Object
start, Lisp_Object end)
read_objects_completed
= make_hash_table (hashtest_eq, DEFAULT_HASH_SIZE, DEFAULT_REHASH_SIZE,
DEFAULT_REHASH_THRESHOLD, Qnil, false);
- if (EQ (Vread_with_symbol_positions, Qt)
- || EQ (Vread_with_symbol_positions, stream))
- Vread_symbol_positions_list = Qnil;
if (STRINGP (stream)
|| ((CONSP (stream) && STRINGP (XCAR (stream)))))
@@ -2530,11 +2557,7 @@ read_internal_start (Lisp_Object stream, Lisp_Object
start, Lisp_Object end)
read_from_string_limit = endval;
}
- retval = read0 (stream);
- if (EQ (Vread_with_symbol_positions, Qt)
- || EQ (Vread_with_symbol_positions, stream))
- Vread_symbol_positions_list = Fnreverse (Vread_symbol_positions_list);
- /* Empty hashes can be reused; otherwise, reset on next call. */
+ retval = read0 (stream, locate_syms);
if (HASH_TABLE_P (read_objects_map)
&& XHASH_TABLE (read_objects_map)->count > 0)
read_objects_map = Qnil;
@@ -2549,12 +2572,12 @@ read_internal_start (Lisp_Object stream, Lisp_Object
start, Lisp_Object end)
are not allowed. */
static Lisp_Object
-read0 (Lisp_Object readcharfun)
+read0 (Lisp_Object readcharfun, bool locate_syms)
{
register Lisp_Object val;
int c;
- val = read1 (readcharfun, &c, 0);
+ val = read1 (readcharfun, &c, 0, locate_syms);
if (!c)
return val;
@@ -2978,10 +3001,12 @@ read_integer (Lisp_Object readcharfun, int radix,
in *PCH and the return value is not interesting. Else, we store
zero in *PCH and we read and return one lisp object.
- FIRST_IN_LIST is true if this is the first element of a list. */
+ FIRST_IN_LIST is true if this is the first element of a list.
+ LOCATE_SYMS true means read symbol occurrences as symbols with
+ position. */
static Lisp_Object
-read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
+read1 (Lisp_Object readcharfun, int *pch, bool first_in_list, bool locate_syms)
{
int c;
bool uninterned_symbol = false;
@@ -3001,10 +3026,10 @@ read1 (Lisp_Object readcharfun, int *pch, bool
first_in_list)
switch (c)
{
case '(':
- return read_list (0, readcharfun);
+ return read_list (0, readcharfun, locate_syms);
case '[':
- return read_vector (readcharfun, 0);
+ return read_vector (readcharfun, 0, locate_syms);
case ')':
case ']':
@@ -3023,7 +3048,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool
first_in_list)
/* Accept extended format for hash tables (extensible to
other types), e.g.
#s(hash-table size 2 test equal data (k1 v1 k2 v2)) */
- Lisp_Object tmp = read_list (0, readcharfun);
+ Lisp_Object tmp = read_list (0, readcharfun, false);
Lisp_Object head = CAR_SAFE (tmp);
Lisp_Object data = Qnil;
Lisp_Object val = Qnil;
@@ -3112,7 +3137,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool
first_in_list)
if (c == '[')
{
Lisp_Object tmp;
- tmp = read_vector (readcharfun, 0);
+ tmp = read_vector (readcharfun, 0, false);
if (ASIZE (tmp) < CHAR_TABLE_STANDARD_SLOTS)
error ("Invalid size char-table");
XSETPVECTYPE (XVECTOR (tmp), PVEC_CHAR_TABLE);
@@ -3125,7 +3150,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool
first_in_list)
{
/* Sub char-table can't be read as a regular
vector because of a two C integer fields. */
- Lisp_Object tbl, tmp = read_list (1, readcharfun);
+ Lisp_Object tbl, tmp = read_list (1, readcharfun, false);
ptrdiff_t size = list_length (tmp);
int i, depth, min_char;
struct Lisp_Cons *cell;
@@ -3163,7 +3188,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool
first_in_list)
if (c == '&')
{
Lisp_Object length;
- length = read1 (readcharfun, pch, first_in_list);
+ length = read1 (readcharfun, pch, first_in_list, false);
c = READCHAR;
if (c == '"')
{
@@ -3172,7 +3197,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool
first_in_list)
unsigned char *data;
UNREAD (c);
- tmp = read1 (readcharfun, pch, first_in_list);
+ tmp = read1 (readcharfun, pch, first_in_list, false);
if (STRING_MULTIBYTE (tmp)
|| (size_in_chars != SCHARS (tmp)
/* We used to print 1 char too many
@@ -3200,7 +3225,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool
first_in_list)
build them using function calls. */
Lisp_Object tmp;
struct Lisp_Vector *vec;
- tmp = read_vector (readcharfun, 1);
+ tmp = read_vector (readcharfun, 1, false);
vec = XVECTOR (tmp);
if (! (COMPILED_STACK_DEPTH < ASIZE (tmp)
&& (FIXNUMP (AREF (tmp, COMPILED_ARGLIST))
@@ -3212,16 +3237,20 @@ read1 (Lisp_Object readcharfun, int *pch, bool
first_in_list)
&& FIXNATP (AREF (tmp, COMPILED_STACK_DEPTH))))
invalid_syntax ("Invalid byte-code object", readcharfun);
- if (STRINGP (AREF (tmp, COMPILED_BYTECODE))
- && STRING_MULTIBYTE (AREF (tmp, COMPILED_BYTECODE)))
+ if (STRINGP (AREF (tmp, COMPILED_BYTECODE)))
{
- /* BYTESTR must have been produced by Emacs 20.2 or earlier
- because it produced a raw 8-bit string for byte-code and
- now such a byte-code string is loaded as multibyte with
- raw 8-bit characters converted to multibyte form.
- Convert them back to the original unibyte form. */
- ASET (tmp, COMPILED_BYTECODE,
- Fstring_as_unibyte (AREF (tmp, COMPILED_BYTECODE)));
+ if (STRING_MULTIBYTE (AREF (tmp, COMPILED_BYTECODE)))
+ {
+ /* BYTESTR must have been produced by Emacs 20.2 or earlier
+ because it produced a raw 8-bit string for byte-code and
+ now such a byte-code string is loaded as multibyte with
+ raw 8-bit characters converted to multibyte form.
+ Convert them back to the original unibyte form. */
+ ASET (tmp, COMPILED_BYTECODE,
+ Fstring_as_unibyte (AREF (tmp, COMPILED_BYTECODE)));
+ }
+ // Bytecode must be immovable.
+ pin_string (AREF (tmp, COMPILED_BYTECODE));
}
XSETPVECTYPE (vec, PVEC_COMPILED);
@@ -3233,7 +3262,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool
first_in_list)
int ch;
/* Read the string itself. */
- tmp = read1 (readcharfun, &ch, 0);
+ tmp = read1 (readcharfun, &ch, 0, false);
if (ch != 0 || !STRINGP (tmp))
invalid_syntax ("#", readcharfun);
/* Read the intervals and their properties. */
@@ -3241,14 +3270,14 @@ read1 (Lisp_Object readcharfun, int *pch, bool
first_in_list)
{
Lisp_Object beg, end, plist;
- beg = read1 (readcharfun, &ch, 0);
+ beg = read1 (readcharfun, &ch, 0, false);
end = plist = Qnil;
if (ch == ')')
break;
if (ch == 0)
- end = read1 (readcharfun, &ch, 0);
+ end = read1 (readcharfun, &ch, 0, false);
if (ch == 0)
- plist = read1 (readcharfun, &ch, 0);
+ plist = read1 (readcharfun, &ch, 0, false);
if (ch)
invalid_syntax ("Invalid string property list", readcharfun);
Fset_text_properties (beg, end, plist, tmp);
@@ -3359,7 +3388,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool
first_in_list)
if (c == '$')
return Vload_file_name;
if (c == '\'')
- return list2 (Qfunction, read0 (readcharfun));
+ return list2 (Qfunction, read0 (readcharfun, locate_syms));
/* #:foo is the uninterned symbol named foo. */
if (c == ':')
{
@@ -3442,7 +3471,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool
first_in_list)
hash_put (h, number, placeholder, hash);
/* Read the object itself. */
- Lisp_Object tem = read0 (readcharfun);
+ Lisp_Object tem = read0 (readcharfun, locate_syms);
/* If it can be recursive, remember it for
future substitutions. */
@@ -3498,6 +3527,9 @@ read1 (Lisp_Object readcharfun, int *pch, bool
first_in_list)
else if (c == 'b' || c == 'B')
return read_integer (readcharfun, 2, stackbuf);
+ char acm_buf[15]; /* FIXME!!! 2021-11-27. */
+ sprintf (acm_buf, "#%c", c);
+ invalid_syntax (acm_buf, readcharfun);
UNREAD (c);
invalid_syntax ("#", readcharfun);
@@ -3506,10 +3538,10 @@ read1 (Lisp_Object readcharfun, int *pch, bool
first_in_list)
goto retry;
case '\'':
- return list2 (Qquote, read0 (readcharfun));
+ return list2 (Qquote, read0 (readcharfun, locate_syms));
case '`':
- return list2 (Qbackquote, read0 (readcharfun));
+ return list2 (Qbackquote, read0 (readcharfun, locate_syms));
case ',':
{
@@ -3525,7 +3557,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool
first_in_list)
comma_type = Qcomma;
}
- value = read0 (readcharfun);
+ value = read0 (readcharfun, locate_syms);
return list2 (comma_type, value);
}
case '?':
@@ -3727,7 +3759,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool
first_in_list)
char *p = read_buffer;
char *end = read_buffer + read_buffer_size;
bool quoted = false;
- EMACS_INT start_position = readchar_count - 1;
+ EMACS_INT start_position = readchar_offset - 1;
do
{
@@ -3832,12 +3864,12 @@ read1 (Lisp_Object readcharfun, int *pch, bool
first_in_list)
result = intern_driver (name, obarray, tem);
}
}
+ if (locate_syms
+ && !NILP (result)
+ )
+ result = build_symbol_with_pos (result,
+ make_fixnum (start_position));
- if (EQ (Vread_with_symbol_positions, Qt)
- || EQ (Vread_with_symbol_positions, readcharfun))
- Vread_symbol_positions_list
- = Fcons (Fcons (result, make_fixnum (start_position)),
- Vread_symbol_positions_list);
return unbind_to (count, result);
}
}
@@ -4090,9 +4122,9 @@ string_to_number (char const *string, int base, ptrdiff_t
*plen)
static Lisp_Object
-read_vector (Lisp_Object readcharfun, bool bytecodeflag)
+read_vector (Lisp_Object readcharfun, bool bytecodeflag, bool locate_syms)
{
- Lisp_Object tem = read_list (1, readcharfun);
+ Lisp_Object tem = read_list (1, readcharfun, locate_syms);
ptrdiff_t size = list_length (tem);
Lisp_Object vector = make_nil_vector (size);
@@ -4164,10 +4196,12 @@ read_vector (Lisp_Object readcharfun, bool bytecodeflag)
return vector;
}
-/* FLAG means check for ']' to terminate rather than ')' and '.'. */
+/* FLAG means check for ']' to terminate rather than ')' and '.'.
+ LOCATE_SYMS true means read symbol occurrencess as symbols with
+ position. */
static Lisp_Object
-read_list (bool flag, Lisp_Object readcharfun)
+read_list (bool flag, Lisp_Object readcharfun, bool locate_syms)
{
Lisp_Object val, tail;
Lisp_Object elt, tem;
@@ -4185,7 +4219,7 @@ read_list (bool flag, Lisp_Object readcharfun)
while (1)
{
int ch;
- elt = read1 (readcharfun, &ch, first_in_list);
+ elt = read1 (readcharfun, &ch, first_in_list, locate_syms);
first_in_list = 0;
@@ -4211,10 +4245,10 @@ read_list (bool flag, Lisp_Object readcharfun)
if (ch == '.')
{
if (!NILP (tail))
- XSETCDR (tail, read0 (readcharfun));
+ XSETCDR (tail, read0 (readcharfun, locate_syms));
else
- val = read0 (readcharfun);
- read1 (readcharfun, &ch, 0);
+ val = read0 (readcharfun, locate_syms);
+ read1 (readcharfun, &ch, 0, locate_syms);
if (ch == ')')
{
@@ -5090,6 +5124,7 @@ void
syms_of_lread (void)
{
defsubr (&Sread);
+ defsubr (&Sread_positioning_symbols);
defsubr (&Sread_from_string);
defsubr (&Slread__substitute_object_in_subtree);
defsubr (&Sintern);
@@ -5123,35 +5158,6 @@ This variable is obsolete as of Emacs 28.1 and should
not be used. */);
See documentation of `read' for possible values. */);
Vstandard_input = Qt;
- DEFVAR_LISP ("read-with-symbol-positions", Vread_with_symbol_positions,
- doc: /* If non-nil, add position of read symbols to
`read-symbol-positions-list'.
-
-If this variable is a buffer, then only forms read from that buffer
-will be added to `read-symbol-positions-list'.
-If this variable is t, then all read forms will be added.
-The effect of all other values other than nil are not currently
-defined, although they may be in the future.
-
-The positions are relative to the last call to `read' or
-`read-from-string'. It is probably a bad idea to set this variable at
-the toplevel; bind it instead. */);
- Vread_with_symbol_positions = Qnil;
-
- DEFVAR_LISP ("read-symbol-positions-list", Vread_symbol_positions_list,
- doc: /* A list mapping read symbols to their positions.
-This variable is modified during calls to `read' or
-`read-from-string', but only when `read-with-symbol-positions' is
-non-nil.
-
-Each element of the list looks like (SYMBOL . CHAR-POSITION), where
-CHAR-POSITION is an integer giving the offset of that occurrence of the
-symbol from the position where `read' or `read-from-string' started.
-
-Note that a symbol will appear multiple times in this list, if it was
-read multiple times. The list is in the same order as the symbols
-were read in. */);
- Vread_symbol_positions_list = Qnil;
-
DEFVAR_LISP ("read-circle", Vread_circle,
doc: /* Non-nil means read recursive structures using #N= and
#N# syntax. */);
Vread_circle = Qt;
@@ -5272,7 +5278,9 @@ of the file, regardless of whether or not it has the
`.elc' extension. */);
Vcurrent_load_list = Qnil;
DEFVAR_LISP ("load-read-function", Vload_read_function,
- doc: /* Function used by `load' and `eval-region' for reading
expressions.
+ doc: /* Function used for reading expressions.
+It is used by `load' and `eval-region'.
+
Called with a single argument (the stream from which to read).
The default is to use the function `read'. */);
DEFSYM (Qread, "read");
diff --git a/src/nsfont.m b/src/nsfont.m
index d4ea4fa504..f3c8a82930 100644
--- a/src/nsfont.m
+++ b/src/nsfont.m
@@ -1222,22 +1222,10 @@ nsfont_draw (struct glyph_string *s, int from, int to,
int x, int y,
/* render under GNUstep using DPS */
{
NSGraphicsContext *context = [NSGraphicsContext currentContext];
- DPSgsave (context);
- if (s->clip_head)
- {
- DPSrectclip (context, s->clip_head->x, 0,
- FRAME_PIXEL_WIDTH (s->f),
- FRAME_PIXEL_HEIGHT (s->f));
- }
[font->nsfont set];
-
[col set];
-
DPSmoveto (context, r.origin.x, r.origin.y);
GSShowGlyphs (context, c, len);
- DPSstroke (context);
-
- DPSgrestore (context);
}
unblock_input ();
diff --git a/src/nsmenu.m b/src/nsmenu.m
index 4d3c752816..5df391bcbe 100644
--- a/src/nsmenu.m
+++ b/src/nsmenu.m
@@ -758,6 +758,32 @@ prettify_key (const char *key)
: Qnil;
}
+#ifdef NS_IMPL_GNUSTEP
+/* The code below doesn't work on Mac OS X, because it runs a nested
+ Carbon-related event loop to track menu bar movement.
+
+ But it works fine aside from that, so it will work on GNUstep if
+ they start to call `willHighlightItem'. */
+- (void) menu: (NSMenu *) menu willHighlightItem: (NSMenuItem *) item
+{
+ NSInteger idx = [item tag];
+ struct frame *f = SELECTED_FRAME ();
+ Lisp_Object vec = f->menu_bar_vector;
+ Lisp_Object help, frame;
+
+ if (idx >= ASIZE (vec))
+ return;
+
+ XSETFRAME (frame, f);
+ help = AREF (vec, idx + MENU_ITEMS_ITEM_HELP);
+
+ if (STRINGP (help) || NILP (help))
+ kbd_buffer_store_help_event (frame, help);
+
+ raise (SIGIO);
+}
+#endif
+
#ifdef NS_IMPL_GNUSTEP
- (void) close
{
@@ -777,6 +803,25 @@ prettify_key (const char *key)
/* GNUstep seems to have a number of required methods in
NSMenuDelegate that are optional in Cocoa. */
+- (BOOL) menu: (NSMenu*) menu updateItem: (NSMenuItem*) item
+ atIndex: (NSInteger) index shouldCancel: (BOOL) shouldCancel
+{
+ return YES;
+}
+
+- (BOOL) menuHasKeyEquivalent: (NSMenu*) menu
+ forEvent: (NSEvent*) event
+ target: (id*) target
+ action: (SEL*) action
+{
+ return NO;
+}
+
+- (NSInteger) numberOfItemsInMenu: (NSMenu*) menu
+{
+ return [super numberOfItemsInMenu: menu];
+}
+
- (void) menuWillOpen:(NSMenu *)menu
{
}
@@ -790,10 +835,6 @@ prettify_key (const char *key)
{
return NSZeroRect;
}
-
-- (void)menu:(NSMenu *)menu willHighlightItem:(NSMenuItem *)item
-{
-}
#endif
@end /* EmacsMenu */
diff --git a/src/nsterm.m b/src/nsterm.m
index 41c311e04d..a3c7b55218 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -1617,10 +1617,17 @@ ns_destroy_window (struct frame *f)
/* If this frame has a parent window, detach it as not doing so can
cause a crash in GNUStep. */
- if (FRAME_PARENT_FRAME (f) != NULL)
+ if (FRAME_PARENT_FRAME (f))
{
NSWindow *child = [FRAME_NS_VIEW (f) window];
- NSWindow *parent = [FRAME_NS_VIEW (FRAME_PARENT_FRAME (f)) window];
+ NSWindow *parent;
+
+ /* Pacify a incorrect GCC warning about FRAME_PARENT_FRAME (f)
+ being NULL. */
+ if (FRAME_PARENT_FRAME (f))
+ parent = [FRAME_NS_VIEW (FRAME_PARENT_FRAME (f)) window];
+ else
+ emacs_abort ();
[parent removeChildWindow: child];
}
@@ -2086,8 +2093,8 @@ ns_lisp_to_color (Lisp_Object color, NSColor **col)
return 1;
}
-void
-ns_query_color(void *col, Emacs_Color *color_def)
+static void
+ns_query_color (void *col, Emacs_Color *color_def)
/* --------------------------------------------------------------------------
Get ARGB values out of NSColor col and put them into color_def
and set color_def pixel to the ARGB color.
@@ -3258,7 +3265,11 @@ ns_draw_text_decoration (struct glyph_string *s, struct
face *face,
/* If the prev was underlined, match its appearance. */
if (s->prev
&& s->prev->face->underline == FACE_UNDER_LINE
- && s->prev->underline_thickness > 0)
+ && s->prev->underline_thickness > 0
+ && (s->prev->face->underline_at_descent_line_p
+ == s->face->underline_at_descent_line_p)
+ && (s->prev->face->underline_pixels_above_descent_line
+ == s->face->underline_pixels_above_descent_line))
{
thickness = s->prev->underline_thickness;
position = s->prev->underline_position;
@@ -3279,7 +3290,8 @@ ns_draw_text_decoration (struct glyph_string *s, struct
face *face,
val = (WINDOW_BUFFER_LOCAL_VALUE
(Qx_underline_at_descent_line, s->w));
- underline_at_descent_line = !(NILP (val) || EQ (val, Qunbound));
+ underline_at_descent_line = (!(NILP (val) || EQ (val, Qunbound))
+ ||
s->face->underline_at_descent_line_p);
val = (WINDOW_BUFFER_LOCAL_VALUE
(Qx_use_underline_position_properties, s->w));
@@ -3292,7 +3304,8 @@ ns_draw_text_decoration (struct glyph_string *s, struct
face *face,
/* Determine the offset of underlining from the baseline. */
if (underline_at_descent_line)
- position = descent - thickness;
+ position = (descent - thickness
+ - s->face->underline_pixels_above_descent_line);
else if (use_underline_position_properties
&& font && font->underline_position >= 0)
position = font->underline_position;
@@ -3301,7 +3314,8 @@ ns_draw_text_decoration (struct glyph_string *s, struct
face *face,
else
position = minimum_offset;
- position = max (position, minimum_offset);
+ if (!s->face->underline_pixels_above_descent_line)
+ position = max (position, minimum_offset);
/* Ensure underlining is not cropped. */
if (descent <= position)
@@ -4063,19 +4077,22 @@ ns_draw_glyph_string (struct glyph_string *s)
/* As prev was drawn while clipped to its own area, we
must draw the right_overhang part using s->hl now. */
enum draw_glyphs_face save = prev->hl;
- struct face *save_face = prev->face;
- prev->face = s->face;
+ prev->hl = s->hl;
NSRect r = NSMakeRect (s->x, s->y, s->width, s->height);
+ NSRect rc;
+ get_glyph_string_clip_rect (s, &rc);
[[NSGraphicsContext currentContext] saveGraphicsState];
NSRectClip (r);
+ if (n)
+ NSRectClip (rc);
#ifdef NS_IMPL_GNUSTEP
DPSgsave ([NSGraphicsContext currentContext]);
DPSrectclip ([NSGraphicsContext currentContext], s->x, s->y,
s->width, s->height);
+ DPSrectclip ([NSGraphicsContext currentContext], NSMinX (rc),
+ NSMinY (rc), NSWidth (rc), NSHeight (rc));
#endif
- prev->num_clips = 1;
- prev->hl = s->hl;
if (prev->first_glyph->type == CHAR_GLYPH)
ns_draw_glyph_string_foreground (prev);
else
@@ -4085,8 +4102,6 @@ ns_draw_glyph_string (struct glyph_string *s)
#endif
[[NSGraphicsContext currentContext] restoreGraphicsState];
prev->hl = save;
- prev->face = save_face;
- prev->num_clips = 0;
}
ns_unfocus (s->f);
}
@@ -4103,19 +4118,21 @@ ns_draw_glyph_string (struct glyph_string *s)
/* As next will be drawn while clipped to its own area,
we must draw the left_overhang part using s->hl now. */
enum draw_glyphs_face save = next->hl;
- struct face *save_face = next->face;
next->hl = s->hl;
- next->face = s->face;
NSRect r = NSMakeRect (s->x, s->y, s->width, s->height);
+ NSRect rc;
+ get_glyph_string_clip_rect (s, &rc);
[[NSGraphicsContext currentContext] saveGraphicsState];
NSRectClip (r);
+ NSRectClip (rc);
#ifdef NS_IMPL_GNUSTEP
DPSgsave ([NSGraphicsContext currentContext]);
DPSrectclip ([NSGraphicsContext currentContext], s->x, s->y,
s->width, s->height);
+ DPSrectclip ([NSGraphicsContext currentContext], NSMinX (rc),
+ NSMinY (rc), NSWidth (rc), NSHeight (rc));
#endif
- next->num_clips = 1;
if (next->first_glyph->type == CHAR_GLYPH)
ns_draw_glyph_string_foreground (next);
else
@@ -4125,10 +4142,7 @@ ns_draw_glyph_string (struct glyph_string *s)
#endif
[[NSGraphicsContext currentContext] restoreGraphicsState];
next->hl = save;
- next->num_clips = 0;
- next->face = save_face;
- next->clip_head = next;
- next->background_filled_p = 0;
+ next->clip_head = s->next;
}
ns_unfocus (s->f);
}
@@ -4481,7 +4495,7 @@ ns_select (int nfds, fd_set *readfds, fd_set *writefds,
#ifdef HAVE_PTHREAD
void
-ns_run_loop_break ()
+ns_run_loop_break (void)
/* Break out of the NS run loop in ns_select or ns_read_socket. */
{
NSTRACE_WHEN (NSTRACE_GROUP_EVENTS, "ns_run_loop_break");
@@ -6512,6 +6526,22 @@ not_in_argv (NSString *arg)
int x = 0, y = 0;
int scrollUp = NO;
+ static bool end_flag = false;
+
+ if (!ns_use_mwheel_momentum && !end_flag
+ && [theEvent momentumPhase] != NSEventPhaseNone)
+ {
+ emacs_event->kind = TOUCH_END_EVENT;
+ emacs_event->arg = Qnil;
+ end_flag = [theEvent momentumPhase] != NSEventPhaseNone;
+ XSETINT (emacs_event->x, lrint (p.x));
+ XSETINT (emacs_event->y, lrint (p.y));
+ EV_TRAILER (theEvent);
+ return;
+ }
+
+ end_flag = [theEvent momentumPhase] != NSEventPhaseNone;
+
/* FIXME: At the top or bottom of the buffer we should
* ignore momentum-phase events. */
if (! ns_use_mwheel_momentum
@@ -7041,6 +7071,9 @@ not_in_argv (NSString *arg)
{
struct ns_display_info *dpyinfo = FRAME_DISPLAY_INFO (emacsframe);
struct frame *old_focus = dpyinfo->ns_focus_frame;
+ struct input_event event;
+
+ EVENT_INIT (event);
NSTRACE ("[EmacsView windowDidBecomeKey]");
@@ -7049,11 +7082,9 @@ not_in_argv (NSString *arg)
ns_frame_rehighlight (emacsframe);
- if (emacs_event)
- {
- emacs_event->kind = FOCUS_IN_EVENT;
- EV_TRAILER ((id)nil);
- }
+ event.kind = FOCUS_IN_EVENT;
+ XSETFRAME (event.frame_or_window, emacsframe);
+ kbd_buffer_store_event (&event);
}
@@ -7565,7 +7596,7 @@ not_in_argv (NSString *arg)
EmacsWindow *w, *fw;
BOOL onFirstScreen;
struct frame *f;
- NSRect r, wr;
+ NSRect r;
NSColor *col;
NSTRACE ("[EmacsView toggleFullScreen:]");
@@ -7584,7 +7615,6 @@ not_in_argv (NSString *arg)
w = (EmacsWindow *)[self window];
onFirstScreen = [[w screen] isEqual:[[NSScreen screens] objectAtIndex:0]];
f = emacsframe;
- wr = [w frame];
col = [NSColor colorWithUnsignedLong:NS_FACE_BACKGROUND
(FACE_FROM_ID (f, DEFAULT_FACE_ID))];
diff --git a/src/pdumper.c b/src/pdumper.c
index eeebb7ed0e..f4e8e4af28 100644
--- a/src/pdumper.c
+++ b/src/pdumper.c
@@ -2068,7 +2068,7 @@ dump_interval_tree (struct dump_context *ctx,
static dump_off
dump_string (struct dump_context *ctx, const struct Lisp_String *string)
{
-#if CHECK_STRUCTS && !defined (HASH_Lisp_String_348C2B2FDB)
+#if CHECK_STRUCTS && !defined (HASH_Lisp_String_C2CAF90352)
# error "Lisp_String changed. See CHECK_STRUCTS comment in config.h."
#endif
/* If we have text properties, write them _after_ the string so that
@@ -2079,7 +2079,7 @@ dump_string (struct dump_context *ctx, const struct
Lisp_String *string)
we seldom write to string data and never relocate it, so lumping
it together at the end of the dump saves on COW faults.
- If, however, the string's size_byte field is -1, the string data
+ If, however, the string's size_byte field is -2, the string data
is actually a pointer to Emacs data segment, so we can do even
better by emitting a relocation instead of bothering to copy the
string data. */
@@ -2948,7 +2948,7 @@ dump_vectorlike (struct dump_context *ctx,
Lisp_Object lv,
dump_off offset)
{
-#if CHECK_STRUCTS && !defined HASH_pvec_type_19F6CF5169
+#if CHECK_STRUCTS && !defined HASH_pvec_type_AFF6FED5BD
# error "pvec_type changed. See CHECK_STRUCTS comment in config.h."
#endif
const struct Lisp_Vector *v = XVECTOR (lv);
@@ -3032,6 +3032,8 @@ dump_vectorlike (struct dump_context *ctx,
error_unsupported_dump_object (ctx, lv, "sqlite");
case PVEC_MODULE_FUNCTION:
error_unsupported_dump_object (ctx, lv, "module function");
+ case PVEC_SYMBOL_WITH_POS:
+ error_unsupported_dump_object (ctx, lv, "symbol with pos");
default:
error_unsupported_dump_object(ctx, lv, "weird pseudovector");
}
diff --git a/src/pgtkfns.c b/src/pgtkfns.c
index e94c2dfb30..9c37c04810 100644
--- a/src/pgtkfns.c
+++ b/src/pgtkfns.c
@@ -186,18 +186,27 @@ pgtk_display_info_for_name (Lisp_Object name)
static void
x_set_foreground_color (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
{
- unsigned long fg;
+ unsigned long fg, old_fg;
+ block_input ();
+ old_fg = FRAME_FOREGROUND_COLOR (f);
fg = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f));
FRAME_FOREGROUND_PIXEL (f) = fg;
FRAME_X_OUTPUT (f)->foreground_color = fg;
if (FRAME_GTK_WIDGET (f))
{
+ if (FRAME_X_OUTPUT (f)->cursor_color == old_fg)
+ {
+ FRAME_X_OUTPUT (f)->cursor_color = fg;
+ FRAME_X_OUTPUT (f)->cursor_xgcv.background = fg;
+ }
+
update_face_from_frame_parameter (f, Qforeground_color, arg);
if (FRAME_VISIBLE_P (f))
SET_FRAME_GARBAGED (f);
}
+ unblock_input ();
}
@@ -206,6 +215,7 @@ x_set_background_color (struct frame *f, Lisp_Object arg,
Lisp_Object oldval)
{
unsigned long bg;
+ block_input ();
bg = x_decode_color (f, arg, WHITE_PIX_DEFAULT (f));
FRAME_BACKGROUND_PIXEL (f) = bg;
@@ -214,12 +224,14 @@ x_set_background_color (struct frame *f, Lisp_Object arg,
Lisp_Object oldval)
pgtk_clear_frame (f);
FRAME_X_OUTPUT (f)->background_color = bg;
+ FRAME_X_OUTPUT (f)->cursor_xgcv.foreground = bg;
xg_set_background_color (f, bg);
update_face_from_frame_parameter (f, Qbackground_color, arg);
if (FRAME_VISIBLE_P (f))
SET_FRAME_GARBAGED (f);
+ unblock_input ();
}
static void
@@ -3116,7 +3128,7 @@ x_hide_tip (bool delete)
value of x_gtk_use_system_tooltips might not be the same as used
for the tooltip we have to hide, see Bug#30399. */
if ((NILP (tip_last_frame) && NILP (tip_frame))
- || (!x_gtk_use_system_tooltips
+ || (!use_system_tooltips
&& !delete
&& FRAMEP (tip_frame)
&& FRAME_LIVE_P (XFRAME (tip_frame))
@@ -3149,7 +3161,7 @@ x_hide_tip (bool delete)
/* When using GTK+ system tooltips (compare Bug#41200) reset
tip_last_frame. It will be reassigned when showing the next
GTK+ system tooltip. */
- if (x_gtk_use_system_tooltips)
+ if (use_system_tooltips)
tip_last_frame = Qnil;
/* Now look whether there's an Emacs tip around. */
@@ -3159,7 +3171,7 @@ x_hide_tip (bool delete)
if (FRAME_LIVE_P (f))
{
- if (delete || x_gtk_use_system_tooltips)
+ if (delete || use_system_tooltips)
{
/* Delete the Emacs tooltip frame when DELETE is true
or we change the tooltip type from an Emacs one to
@@ -3255,7 +3267,7 @@ Text larger than the specified size is clipped. */)
else
CHECK_FIXNUM (dy);
- if (x_gtk_use_system_tooltips)
+ if (use_system_tooltips)
{
bool ok;
@@ -4056,12 +4068,6 @@ If more space for files in the file chooser dialog is
wanted, set this to nil
to turn the additional text off. */);
x_gtk_file_dialog_help_text = true;
- DEFVAR_BOOL ("x-gtk-use-system-tooltips", x_gtk_use_system_tooltips,
- doc: /* If non-nil with a Gtk+ built Emacs, the Gtk+ tooltip is
used.
-Otherwise use Emacs own tooltip implementation.
-When using Gtk+ tooltips, the tooltip face is not used. */);
- x_gtk_use_system_tooltips = true;
-
DEFVAR_LISP ("x-max-tooltip-size", Vx_max_tooltip_size,
doc: /* Maximum size for tooltips.
Value is a pair (COLUMNS . ROWS). Text larger than this is clipped. */);
diff --git a/src/pgtkterm.c b/src/pgtkterm.c
index 736fce09c4..efbeaafaf1 100644
--- a/src/pgtkterm.c
+++ b/src/pgtkterm.c
@@ -153,10 +153,24 @@ static int
evq_flush (struct input_event *hold_quit)
{
struct event_queue_t *evq = &event_q;
- int i, n = evq->nr;
- for (i = 0; i < n; i++)
- kbd_buffer_store_buffered_event (&evq->q[i], hold_quit);
- evq->nr = 0;
+ int n = 0;
+
+ while (evq->nr > 0)
+ {
+ /* kbd_buffer_store_buffered_event may do longjmp, so
+ we need to shift event queue first and pass the event
+ to kbd_buffer_store_buffered_event so that events in
+ queue are not processed twice. Bug#52941 */
+ union buffered_input_event ev = evq->q[0];
+ int i;
+ for (i = 1; i < evq->nr; i++)
+ evq->q[i - 1] = evq->q[i];
+ evq->nr--;
+
+ kbd_buffer_store_buffered_event (&ev, hold_quit);
+ n++;
+ }
+
return n;
}
@@ -2527,8 +2541,12 @@ pgtk_draw_glyph_string (struct glyph_string *s)
unsigned long thickness, position;
int y;
- if (s->prev && s->prev->face->underline
- && s->prev->face->underline == FACE_UNDER_LINE)
+ if (s->prev
+ && s->prev->face->underline == FACE_UNDER_LINE
+ && (s->prev->face->underline_at_descent_line_p
+ == s->face->underline_at_descent_line_p)
+ && (s->prev->face->underline_pixels_above_descent_line
+ == s->face->underline_pixels_above_descent_line))
{
/* We use the same underline style as the previous one. */
thickness = s->prev->underline_thickness;
@@ -2543,8 +2561,11 @@ pgtk_draw_glyph_string (struct glyph_string *s)
thickness = font->underline_thickness;
else
thickness = 1;
- if (x_underline_at_descent_line)
- position = (s->height - thickness) - (s->ybase - s->y);
+ if ((x_underline_at_descent_line
+ || s->face->underline_at_descent_line_p))
+ position = ((s->height - thickness)
+ - (s->ybase - s->y)
+ - s->face->underline_pixels_above_descent_line);
else
{
/* Get the underline position. This is the recommended
@@ -2563,7 +2584,11 @@ pgtk_draw_glyph_string (struct glyph_string *s)
else
position = underline_minimum_offset;
}
- position = max (position, underline_minimum_offset);
+
+ /* Ignore minimum_offset if the amount of pixels was
+ explictly specified. */
+ if (!s->face->underline_pixels_above_descent_line)
+ position = max (position, underline_minimum_offset);
}
/* Check the sanity of thickness and position. We should
avoid drawing underline out of the current line area. */
@@ -3706,9 +3731,12 @@ recover_from_visible_bell (struct atimer *timer)
static void
pgtk_flash (struct frame *f)
{
- block_input ();
-
{
+ if (!FRAME_CR_CONTEXT (f))
+ return;
+
+ block_input ();
+
cairo_surface_t *surface_orig = FRAME_CR_SURFACE (f);
int width = FRAME_CR_SURFACE_DESIRED_WIDTH (f);
@@ -3778,9 +3806,8 @@ pgtk_flash (struct frame *f)
}
cairo_destroy (cr);
+ unblock_input ();
}
-
- unblock_input ();
}
/* Make audible bell. */
@@ -5231,9 +5258,9 @@ pgtk_emacs_to_gtk_modifiers (struct pgtk_display_info
*dpyinfo, int state)
void
pgtk_enqueue_string (struct frame *f, gchar * str)
{
- gunichar *ustr;
+ gunichar *ustr, *uptr;
- ustr = g_utf8_to_ucs4 (str, -1, NULL, NULL, NULL);
+ uptr = ustr = g_utf8_to_ucs4 (str, -1, NULL, NULL, NULL);
if (ustr == NULL)
return;
for (; *ustr != 0; ustr++)
@@ -5252,6 +5279,7 @@ pgtk_enqueue_string (struct frame *f, gchar * str)
evq_enqueue (&inev);
}
+ g_free (uptr);
}
void
@@ -5259,7 +5287,7 @@ pgtk_enqueue_preedit (struct frame *f, Lisp_Object
preedit)
{
union buffered_input_event inev;
EVENT_INIT (inev.ie);
- inev.ie.kind = PGTK_PREEDIT_TEXT_EVENT;
+ inev.ie.kind = PREEDIT_TEXT_EVENT;
inev.ie.arg = preedit;
inev.ie.code = 0;
XSETFRAME (inev.ie.frame_or_window, f);
@@ -7015,13 +7043,12 @@ If set to a non-float value, there will be no wait at
all. */);
}
/* Cairo does not allow resizing a surface/context after it is
- * created, so we need to trash the old context, create a new context
- * on the next cr_clip_begin with the new dimensions and request a
- * re-draw.
- *
- * This Will leave the active context available to present on screen
- * until a redrawn frame is completed.
- */
+ created, so we need to trash the old context, create a new context
+ on the next cr_clip_begin with the new dimensions and request a
+ re-draw.
+
+ This will leave the active context available to present on screen
+ until a redrawn frame is completed. */
void
pgtk_cr_update_surface_desired_size (struct frame *f, int width, int height,
bool force)
{
diff --git a/src/print.c b/src/print.c
index a3c9011215..04a271ce45 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1387,6 +1387,7 @@ static bool
print_vectorlike (Lisp_Object obj, Lisp_Object printcharfun, bool escapeflag,
char *buf)
{
+ /* First do all the vectorlike types that have a readable syntax. */
switch (PSEUDOVECTOR_TYPE (XVECTOR (obj)))
{
case PVEC_BIGNUM:
@@ -1398,8 +1399,240 @@ print_vectorlike (Lisp_Object obj, Lisp_Object
printcharfun, bool escapeflag,
strout (str, len, len, printcharfun);
SAFE_FREE ();
}
+ return true;
+
+ case PVEC_BOOL_VECTOR:
+ {
+ EMACS_INT size = bool_vector_size (obj);
+ ptrdiff_t size_in_bytes = bool_vector_bytes (size);
+ ptrdiff_t real_size_in_bytes = size_in_bytes;
+ unsigned char *data = bool_vector_uchar_data (obj);
+
+ int len = sprintf (buf, "#&%"pI"d\"", size);
+ strout (buf, len, len, printcharfun);
+
+ /* Don't print more bytes than the specified maximum.
+ Negative values of print-length are invalid. Treat them
+ like a print-length of nil. */
+ if (FIXNATP (Vprint_length)
+ && XFIXNAT (Vprint_length) < size_in_bytes)
+ size_in_bytes = XFIXNAT (Vprint_length);
+
+ for (ptrdiff_t i = 0; i < size_in_bytes; i++)
+ {
+ maybe_quit ();
+ unsigned char c = data[i];
+ if (c == '\n' && print_escape_newlines)
+ print_c_string ("\\n", printcharfun);
+ else if (c == '\f' && print_escape_newlines)
+ print_c_string ("\\f", printcharfun);
+ else if (c > '\177'
+ || (print_escape_control_characters && c_iscntrl (c)))
+ {
+ /* Use octal escapes to avoid encoding issues. */
+ octalout (c, data, i + 1, size_in_bytes, printcharfun);
+ }
+ else
+ {
+ if (c == '\"' || c == '\\')
+ printchar ('\\', printcharfun);
+ printchar (c, printcharfun);
+ }
+ }
+
+ if (size_in_bytes < real_size_in_bytes)
+ print_c_string (" ...", printcharfun);
+ printchar ('\"', printcharfun);
+ }
+ return true;
+
+ case PVEC_HASH_TABLE:
+ {
+ struct Lisp_Hash_Table *h = XHASH_TABLE (obj);
+ /* Implement a readable output, e.g.:
+ #s(hash-table size 2 test equal data (k1 v1 k2 v2)) */
+ /* Always print the size. */
+ int len = sprintf (buf, "#s(hash-table size %"pD"d",
+ HASH_TABLE_SIZE (h));
+ strout (buf, len, len, printcharfun);
+
+ if (!NILP (h->test.name))
+ {
+ print_c_string (" test ", printcharfun);
+ print_object (h->test.name, printcharfun, escapeflag);
+ }
+
+ if (!NILP (h->weak))
+ {
+ print_c_string (" weakness ", printcharfun);
+ print_object (h->weak, printcharfun, escapeflag);
+ }
+
+ print_c_string (" rehash-size ", printcharfun);
+ print_object (Fhash_table_rehash_size (obj),
+ printcharfun, escapeflag);
+
+ print_c_string (" rehash-threshold ", printcharfun);
+ print_object (Fhash_table_rehash_threshold (obj),
+ printcharfun, escapeflag);
+
+ if (h->purecopy)
+ {
+ print_c_string (" purecopy ", printcharfun);
+ print_object (h->purecopy ? Qt : Qnil, printcharfun, escapeflag);
+ }
+
+ print_c_string (" data ", printcharfun);
+
+ /* Print the data here as a plist. */
+ ptrdiff_t real_size = HASH_TABLE_SIZE (h);
+ ptrdiff_t size = h->count;
+
+ /* Don't print more elements than the specified maximum. */
+ if (FIXNATP (Vprint_length) && XFIXNAT (Vprint_length) < size)
+ size = XFIXNAT (Vprint_length);
+
+ printchar ('(', printcharfun);
+ ptrdiff_t j = 0;
+ for (ptrdiff_t i = 0; i < real_size; i++)
+ {
+ Lisp_Object key = HASH_KEY (h, i);
+ if (!EQ (key, Qunbound))
+ {
+ if (j++) printchar (' ', printcharfun);
+ print_object (key, printcharfun, escapeflag);
+ printchar (' ', printcharfun);
+ print_object (HASH_VALUE (h, i), printcharfun, escapeflag);
+ if (j == size)
+ break;
+ }
+ }
+
+ if (j < h->count)
+ {
+ if (j)
+ printchar (' ', printcharfun);
+ print_c_string ("...", printcharfun);
+ }
+
+ print_c_string ("))", printcharfun);
+ }
+ return true;
+
+ case PVEC_RECORD:
+ {
+ ptrdiff_t size = PVSIZE (obj);
+
+ /* Don't print more elements than the specified maximum. */
+ ptrdiff_t n
+ = (FIXNATP (Vprint_length) && XFIXNAT (Vprint_length) < size
+ ? XFIXNAT (Vprint_length) : size);
+
+ print_c_string ("#s(", printcharfun);
+ for (ptrdiff_t i = 0; i < n; i ++)
+ {
+ if (i) printchar (' ', printcharfun);
+ print_object (AREF (obj, i), printcharfun, escapeflag);
+ }
+ if (n < size)
+ print_c_string (" ...", printcharfun);
+ printchar (')', printcharfun);
+ }
+ return true;
+
+ case PVEC_SUB_CHAR_TABLE:
+ case PVEC_COMPILED:
+ case PVEC_CHAR_TABLE:
+ case PVEC_NORMAL_VECTOR:
+ {
+ ptrdiff_t size = ASIZE (obj);
+ if (COMPILEDP (obj))
+ {
+ printchar ('#', printcharfun);
+ size &= PSEUDOVECTOR_SIZE_MASK;
+ }
+ if (CHAR_TABLE_P (obj) || SUB_CHAR_TABLE_P (obj))
+ {
+ /* Print a char-table as if it were a vector,
+ lumping the parent and default slots in with the
+ character slots. But add #^ as a prefix. */
+
+ /* Make each lowest sub_char_table start a new line.
+ Otherwise we'll make a line extremely long, which
+ results in slow redisplay. */
+ if (SUB_CHAR_TABLE_P (obj)
+ && XSUB_CHAR_TABLE (obj)->depth == 3)
+ printchar ('\n', printcharfun);
+ print_c_string ("#^", printcharfun);
+ if (SUB_CHAR_TABLE_P (obj))
+ printchar ('^', printcharfun);
+ size &= PSEUDOVECTOR_SIZE_MASK;
+ }
+ if (size & PSEUDOVECTOR_FLAG)
+ return false;
+
+ printchar ('[', printcharfun);
+
+ int idx = SUB_CHAR_TABLE_P (obj) ? SUB_CHAR_TABLE_OFFSET : 0;
+ Lisp_Object tem;
+ ptrdiff_t real_size = size;
+
+ /* For a sub char-table, print heading non-Lisp data first. */
+ if (SUB_CHAR_TABLE_P (obj))
+ {
+ int i = sprintf (buf, "%d %d", XSUB_CHAR_TABLE (obj)->depth,
+ XSUB_CHAR_TABLE (obj)->min_char);
+ strout (buf, i, i, printcharfun);
+ }
+
+ /* Don't print more elements than the specified maximum. */
+ if (FIXNATP (Vprint_length)
+ && XFIXNAT (Vprint_length) < size)
+ size = XFIXNAT (Vprint_length);
+
+ for (int i = idx; i < size; i++)
+ {
+ if (i) printchar (' ', printcharfun);
+ tem = AREF (obj, i);
+ print_object (tem, printcharfun, escapeflag);
+ }
+ if (size < real_size)
+ print_c_string (" ...", printcharfun);
+ printchar (']', printcharfun);
+ }
+ return true;
+
+ default:
break;
+ }
+ /* Then do all the pseudovector types that don't have a readable
+ syntax. First check whether this is handled by
+ `print-unreadable-function'. */
+ if (!NILP (Vprint_unreadable_function)
+ && FUNCTIONP (Vprint_unreadable_function))
+ {
+ ptrdiff_t count = SPECPDL_INDEX ();
+ /* Bind `print-unreadable-function' to nil to avoid accidental
+ infinite recursion in the function called. */
+ Lisp_Object func = Vprint_unreadable_function;
+ specbind (Qprint_unreadable_function, Qnil);
+ Lisp_Object result = CALLN (Ffuncall, func, obj,
+ escapeflag? Qt: Qnil);
+ unbind_to (count, Qnil);
+
+ if (!NILP (result))
+ {
+ if (STRINGP (result))
+ print_string (result, printcharfun);
+ /* It's handled, so stop processing here. */
+ return true;
+ }
+ }
+
+ /* Not handled; print unreadable object. */
+ switch (PSEUDOVECTOR_TYPE (XVECTOR (obj)))
+ {
case PVEC_MARKER:
print_c_string ("#<marker ", printcharfun);
/* Do you think this is necessary? */
@@ -1416,6 +1649,30 @@ print_vectorlike (Lisp_Object obj, Lisp_Object
printcharfun, bool escapeflag,
printchar ('>', printcharfun);
break;
+ case PVEC_SYMBOL_WITH_POS:
+ {
+ struct Lisp_Symbol_With_Pos *sp = XSYMBOL_WITH_POS (obj);
+ if (print_symbols_bare)
+ print_object (sp->sym, printcharfun, escapeflag);
+ else
+ {
+ print_c_string ("#<symbol ", printcharfun);
+ if (BARE_SYMBOL_P (sp->sym))
+ print_object (sp->sym, printcharfun, escapeflag);
+ else
+ print_c_string ("NOT A SYMBOL!!", printcharfun);
+ if (FIXNUMP (sp->pos))
+ {
+ print_c_string (" at ", printcharfun);
+ print_object (sp->pos, printcharfun, escapeflag);
+ }
+ else
+ print_c_string (" NOT A POSITION!!", printcharfun);
+ printchar ('>', printcharfun);
+ }
+ }
+ break;
+
case PVEC_OVERLAY:
print_c_string ("#<overlay ", printcharfun);
if (! XMARKER (OVERLAY_START (obj))->buffer)
@@ -1470,51 +1727,6 @@ print_vectorlike (Lisp_Object obj, Lisp_Object
printcharfun, bool escapeflag,
print_string (XPROCESS (obj)->name, printcharfun);
break;
- case PVEC_BOOL_VECTOR:
- {
- EMACS_INT size = bool_vector_size (obj);
- ptrdiff_t size_in_bytes = bool_vector_bytes (size);
- ptrdiff_t real_size_in_bytes = size_in_bytes;
- unsigned char *data = bool_vector_uchar_data (obj);
-
- int len = sprintf (buf, "#&%"pI"d\"", size);
- strout (buf, len, len, printcharfun);
-
- /* Don't print more bytes than the specified maximum.
- Negative values of print-length are invalid. Treat them
- like a print-length of nil. */
- if (FIXNATP (Vprint_length)
- && XFIXNAT (Vprint_length) < size_in_bytes)
- size_in_bytes = XFIXNAT (Vprint_length);
-
- for (ptrdiff_t i = 0; i < size_in_bytes; i++)
- {
- maybe_quit ();
- unsigned char c = data[i];
- if (c == '\n' && print_escape_newlines)
- print_c_string ("\\n", printcharfun);
- else if (c == '\f' && print_escape_newlines)
- print_c_string ("\\f", printcharfun);
- else if (c > '\177'
- || (print_escape_control_characters && c_iscntrl (c)))
- {
- /* Use octal escapes to avoid encoding issues. */
- octalout (c, data, i + 1, size_in_bytes, printcharfun);
- }
- else
- {
- if (c == '\"' || c == '\\')
- printchar ('\\', printcharfun);
- printchar (c, printcharfun);
- }
- }
-
- if (size_in_bytes < real_size_in_bytes)
- print_c_string (" ...", printcharfun);
- printchar ('\"', printcharfun);
- }
- break;
-
case PVEC_SUBR:
print_c_string ("#<subr ", printcharfun);
print_c_string (XSUBR (obj)->symbol_name, printcharfun);
@@ -1578,79 +1790,6 @@ print_vectorlike (Lisp_Object obj, Lisp_Object
printcharfun, bool escapeflag,
}
break;
- case PVEC_HASH_TABLE:
- {
- struct Lisp_Hash_Table *h = XHASH_TABLE (obj);
- /* Implement a readable output, e.g.:
- #s(hash-table size 2 test equal data (k1 v1 k2 v2)) */
- /* Always print the size. */
- int len = sprintf (buf, "#s(hash-table size %"pD"d",
- HASH_TABLE_SIZE (h));
- strout (buf, len, len, printcharfun);
-
- if (!NILP (h->test.name))
- {
- print_c_string (" test ", printcharfun);
- print_object (h->test.name, printcharfun, escapeflag);
- }
-
- if (!NILP (h->weak))
- {
- print_c_string (" weakness ", printcharfun);
- print_object (h->weak, printcharfun, escapeflag);
- }
-
- print_c_string (" rehash-size ", printcharfun);
- print_object (Fhash_table_rehash_size (obj),
- printcharfun, escapeflag);
-
- print_c_string (" rehash-threshold ", printcharfun);
- print_object (Fhash_table_rehash_threshold (obj),
- printcharfun, escapeflag);
-
- if (h->purecopy)
- {
- print_c_string (" purecopy ", printcharfun);
- print_object (h->purecopy ? Qt : Qnil, printcharfun, escapeflag);
- }
-
- print_c_string (" data ", printcharfun);
-
- /* Print the data here as a plist. */
- ptrdiff_t real_size = HASH_TABLE_SIZE (h);
- ptrdiff_t size = h->count;
-
- /* Don't print more elements than the specified maximum. */
- if (FIXNATP (Vprint_length) && XFIXNAT (Vprint_length) < size)
- size = XFIXNAT (Vprint_length);
-
- printchar ('(', printcharfun);
- ptrdiff_t j = 0;
- for (ptrdiff_t i = 0; i < real_size; i++)
- {
- Lisp_Object key = HASH_KEY (h, i);
- if (!EQ (key, Qunbound))
- {
- if (j++) printchar (' ', printcharfun);
- print_object (key, printcharfun, escapeflag);
- printchar (' ', printcharfun);
- print_object (HASH_VALUE (h, i), printcharfun, escapeflag);
- if (j == size)
- break;
- }
- }
-
- if (j < h->count)
- {
- if (j)
- printchar (' ', printcharfun);
- print_c_string ("...", printcharfun);
- }
-
- print_c_string ("))", printcharfun);
- }
- break;
-
case PVEC_BUFFER:
if (!BUFFER_LIVE_P (XBUFFER (obj)))
print_c_string ("#<killed buffer>", printcharfun);
@@ -1756,89 +1895,6 @@ print_vectorlike (Lisp_Object obj, Lisp_Object
printcharfun, bool escapeflag,
printchar ('>', printcharfun);
break;
- case PVEC_RECORD:
- {
- ptrdiff_t size = PVSIZE (obj);
-
- /* Don't print more elements than the specified maximum. */
- ptrdiff_t n
- = (FIXNATP (Vprint_length) && XFIXNAT (Vprint_length) < size
- ? XFIXNAT (Vprint_length) : size);
-
- print_c_string ("#s(", printcharfun);
- for (ptrdiff_t i = 0; i < n; i ++)
- {
- if (i) printchar (' ', printcharfun);
- print_object (AREF (obj, i), printcharfun, escapeflag);
- }
- if (n < size)
- print_c_string (" ...", printcharfun);
- printchar (')', printcharfun);
- }
- break;
-
- case PVEC_SUB_CHAR_TABLE:
- case PVEC_COMPILED:
- case PVEC_CHAR_TABLE:
- case PVEC_NORMAL_VECTOR:
- {
- ptrdiff_t size = ASIZE (obj);
- if (COMPILEDP (obj))
- {
- printchar ('#', printcharfun);
- size &= PSEUDOVECTOR_SIZE_MASK;
- }
- if (CHAR_TABLE_P (obj) || SUB_CHAR_TABLE_P (obj))
- {
- /* Print a char-table as if it were a vector,
- lumping the parent and default slots in with the
- character slots. But add #^ as a prefix. */
-
- /* Make each lowest sub_char_table start a new line.
- Otherwise we'll make a line extremely long, which
- results in slow redisplay. */
- if (SUB_CHAR_TABLE_P (obj)
- && XSUB_CHAR_TABLE (obj)->depth == 3)
- printchar ('\n', printcharfun);
- print_c_string ("#^", printcharfun);
- if (SUB_CHAR_TABLE_P (obj))
- printchar ('^', printcharfun);
- size &= PSEUDOVECTOR_SIZE_MASK;
- }
- if (size & PSEUDOVECTOR_FLAG)
- return false;
-
- printchar ('[', printcharfun);
-
- int idx = SUB_CHAR_TABLE_P (obj) ? SUB_CHAR_TABLE_OFFSET : 0;
- Lisp_Object tem;
- ptrdiff_t real_size = size;
-
- /* For a sub char-table, print heading non-Lisp data first. */
- if (SUB_CHAR_TABLE_P (obj))
- {
- int i = sprintf (buf, "%d %d", XSUB_CHAR_TABLE (obj)->depth,
- XSUB_CHAR_TABLE (obj)->min_char);
- strout (buf, i, i, printcharfun);
- }
-
- /* Don't print more elements than the specified maximum. */
- if (FIXNATP (Vprint_length)
- && XFIXNAT (Vprint_length) < size)
- size = XFIXNAT (Vprint_length);
-
- for (int i = idx; i < size; i++)
- {
- if (i) printchar (' ', printcharfun);
- tem = AREF (obj, i);
- print_object (tem, printcharfun, escapeflag);
- }
- if (size < real_size)
- print_c_string (" ...", printcharfun);
- printchar (']', printcharfun);
- }
- break;
-
#ifdef HAVE_MODULES
case PVEC_MODULE_FUNCTION:
{
@@ -1942,7 +1998,7 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun,
bool escapeflag)
error ("Apparently circular structure being printed");
for (i = 0; i < print_depth; i++)
- if (EQ (obj, being_printed[i]))
+ if (BASE_EQ (obj, being_printed[i]))
{
int len = sprintf (buf, "#%d", i);
strout (buf, len, len, printcharfun);
@@ -2446,6 +2502,13 @@ priorities. Values other than nil or t are also treated
as
`default'. */);
Vprint_charset_text_property = Qdefault;
+ DEFVAR_BOOL ("print-symbols-bare", print_symbols_bare,
+ doc: /* A flag to control printing of symbols with position.
+If the value is nil, print these objects complete with position.
+Otherwise print just the bare symbol. */);
+ print_symbols_bare = false;
+ DEFSYM (Qprint_symbols_bare, "print-symbols-bare");
+
/* prin1_to_string_buffer initialized in init_buffer_once in buffer.c */
staticpro (&Vprin1_to_string_buffer);
@@ -2464,4 +2527,19 @@ priorities. Values other than nil or t are also treated
as
print_prune_charset_plist = Qnil;
staticpro (&print_prune_charset_plist);
+
+ DEFVAR_LISP ("print-unreadable-function", Vprint_unreadable_function,
+ doc: /* If non-nil, a function to call when printing unreadable
objects.
+By default, Emacs printing functions (like `prin1') print unreadable
+objects as \"#<...>\", where \"...\" describes the object (for
+instance, \"#<marker in no buffer>\").
+
+If non-nil, it should be a function that will be called with two
+arguments: the object to be printed, and the NOESCAPE flag (see
+`prin1-to-string'). If this function returns nil, the object will be
+printed as usual. If it returns a string, that string will then be
+printed. If the function returns anything else, the object will not
+be printed. */);
+ Vprint_unreadable_function = Qnil;
+ DEFSYM (Qprint_unreadable_function, "print-unreadable-function");
}
diff --git a/src/process.c b/src/process.c
index 9664180cfd..7c7f608284 100644
--- a/src/process.c
+++ b/src/process.c
@@ -4644,7 +4644,7 @@ error displays the error message. */)
struct addrinfo hints;
memset (&hints, 0, sizeof hints);
- if (EQ (family, Qnil))
+ if (NILP (family))
hints.ai_family = AF_UNSPEC;
else if (EQ (family, Qipv4))
hints.ai_family = AF_INET;
@@ -6934,7 +6934,8 @@ the order of the list, until one of them returns non-nil.
*/)
process, current_group);
}
-DEFUN ("kill-process", Fkill_process, Skill_process, 0, 2, 0,
+DEFUN ("kill-process", Fkill_process, Skill_process, 0, 2,
+ "(list (read-process-name \"Kill process\"))",
doc: /* Kill process PROCESS. May be process or name of one.
See function `interrupt-process' for more details on usage. */)
(Lisp_Object process, Lisp_Object current_group)
diff --git a/src/syntax.c b/src/syntax.c
index 9df878b8ed..13c36fdf3c 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -1101,10 +1101,11 @@ this is probably the wrong function to use, because it
can't take
`syntax-after' instead. */)
(Lisp_Object character)
{
- int char_int;
CHECK_CHARACTER (character);
- char_int = XFIXNUM (character);
+ int char_int = XFIXNAT (character);
SETUP_BUFFER_SYNTAX_TABLE ();
+ if (NILP (BVAR (current_buffer, enable_multibyte_characters)))
+ char_int = make_char_multibyte (char_int);
return make_fixnum (syntax_code_spec[SYNTAX (char_int)]);
}
diff --git a/src/term.c b/src/term.c
index 4c7a90a577..ddf0e8e2f2 100644
--- a/src/term.c
+++ b/src/term.c
@@ -1632,9 +1632,13 @@ produce_glyphs (struct it *it)
}
else
{
- Lisp_Object charset_list = FRAME_TERMINAL (it->f)->charset_list;
+ struct terminal *t = FRAME_TERMINAL (it->f);
+ Lisp_Object charset_list = t->charset_list, char_glyph;
- if (char_charset (it->char_to_display, charset_list, NULL))
+ if (char_charset (it->char_to_display, charset_list, NULL)
+ && (char_glyph = terminal_glyph_code (t, it->char_to_display),
+ NILP (char_glyph)
+ || (FIXNUMP (char_glyph) && XFIXNUM (char_glyph) >= 0)))
{
it->pixel_width = CHARACTER_WIDTH (it->char_to_display);
it->nglyphs = it->pixel_width;
diff --git a/src/termhooks.h b/src/termhooks.h
index 55f7aa5d1a..518e855eae 100644
--- a/src/termhooks.h
+++ b/src/termhooks.h
@@ -269,10 +269,8 @@ enum event_kind
, FILE_NOTIFY_EVENT
#endif
-#ifdef HAVE_PGTK
/* Pre-edit text was changed. */
- , PGTK_PREEDIT_TEXT_EVENT
-#endif
+ , PREEDIT_TEXT_EVENT
/* Either the mouse wheel has been released without it being
clicked, or the user has lifted his finger from a touchpad.
diff --git a/src/verbose.mk.in b/src/verbose.mk.in
index e3f5678303..4ec7788442 100644
--- a/src/verbose.mk.in
+++ b/src/verbose.mk.in
@@ -33,24 +33,45 @@ AM_V_GLOBALS =
AM_V_NO_PD =
AM_V_RC =
else
+
+# Whether $(info ...) works. This is to work around a bug in GNU Make
+# 4.3 and earlier, which implements $(info MSG) via two system calls
+# { write (..., "MSG", 3); write (..., "\n", 1); }
+# which looks bad when make -j interleaves two of these at about the same time.
+#
+# Later versions of GNU Make have the 'notintermediate' feature,
+# so assume that $(info ...) works if this feature is present.
+#
+have_working_info = $(filter notintermediate,$(value .FEATURES))
+#
+# The workaround is to use the shell and 'echo' rather than $(info ...).
+# The workaround is done only for AM_V_ELC and AM_V_ELN,
+# since the bug is not annoying elsewhere.
+
AM_V_AR = @$(info $ AR $@)
AM_V_at = @
AM_V_CC = @$(info $ CC $@)
AM_V_CXX = @$(info $ CXX $@)
AM_V_CCLD = @$(info $ CCLD $@)
AM_V_CXXLD = @$(info $ CXXLD $@)
-ifeq ($(HAVE_NATIVE_COMP),yes)
-ifeq ($(NATIVE_DISABLED),1)
-AM_V_ELC = @$(info $ ELC $@)
-AM_V_ELN =
-else
+
+ifeq ($(HAVE_NATIVE_COMP)-$(NATIVE_DISABLED)-$(ANCIENT),yes--)
+ifneq (,$(have_working_info))
AM_V_ELC = @$(info $ ELC+ELN $@)
AM_V_ELN = @$(info $ ELN $@)
+else
+AM_V_ELC = @echo " ELC+ELN " $@;
+AM_V_ELN = @echo " ELN " $@;
endif
else
+ifneq (,$(have_working_info))
AM_V_ELC = @$(info $ ELC $@)
+else
+AM_V_ELC = @echo " ELC " $@;
+endif
AM_V_ELN =
endif
+
AM_V_GEN = @$(info $ GEN $@)
AM_V_GLOBALS = @$(info $ GEN globals.h)
AM_V_NO_PD = --no-print-directory
diff --git a/src/w16select.c b/src/w16select.c
index f6bc3dd8d4..b878481e46 100644
--- a/src/w16select.c
+++ b/src/w16select.c
@@ -651,7 +651,7 @@ frame's display, or the first available X display. */)
by the X interface code. (On MSDOS, killed text is only put
into the clipboard if we run under Windows, so we cannot check
the clipboard alone.) */
- if ((EQ (selection, Qnil) || EQ (selection, QPRIMARY))
+ if ((NILP (selection) || EQ (selection, QPRIMARY))
&& ! NILP (Fsymbol_value (Fintern_soft (build_string ("kill-ring"),
Qnil))))
return Qt;
diff --git a/src/w32fns.c b/src/w32fns.c
index 37f9b813c6..1ea685d194 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -1217,7 +1217,7 @@ w32_set_mouse_color (struct frame *f, Lisp_Object arg,
Lisp_Object oldval)
#endif
int mask_color;
- if (!EQ (Qnil, arg))
+ if (!NILP (arg))
f->output_data.w32->mouse_pixel
= w32_decode_color (f, arg, BLACK_PIX_DEFAULT (f));
mask_color = FRAME_BACKGROUND_PIXEL (f);
@@ -1233,7 +1233,7 @@ w32_set_mouse_color (struct frame *f, Lisp_Object arg,
Lisp_Object oldval)
/* It's not okay to crash if the user selects a screwy cursor. */
count = x_catch_errors (FRAME_W32_DISPLAY (f));
- if (!EQ (Qnil, Vx_pointer_shape))
+ if (!NILP (Vx_pointer_shape))
{
CHECK_FIXNUM (Vx_pointer_shape);
cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f), XFIXNUM
(Vx_pointer_shape));
@@ -1242,7 +1242,7 @@ w32_set_mouse_color (struct frame *f, Lisp_Object arg,
Lisp_Object oldval)
cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f), XC_xterm);
x_check_errors (FRAME_W32_DISPLAY (f), "bad text pointer cursor: %s");
- if (!EQ (Qnil, Vx_nontext_pointer_shape))
+ if (!NILP (Vx_nontext_pointer_shape))
{
CHECK_FIXNUM (Vx_nontext_pointer_shape);
nontext_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f),
@@ -1252,7 +1252,7 @@ w32_set_mouse_color (struct frame *f, Lisp_Object arg,
Lisp_Object oldval)
nontext_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f), XC_left_ptr);
x_check_errors (FRAME_W32_DISPLAY (f), "bad nontext pointer cursor: %s");
- if (!EQ (Qnil, Vx_hourglass_pointer_shape))
+ if (!NILP (Vx_hourglass_pointer_shape))
{
CHECK_FIXNUM (Vx_hourglass_pointer_shape);
hourglass_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f),
@@ -1263,7 +1263,7 @@ w32_set_mouse_color (struct frame *f, Lisp_Object arg,
Lisp_Object oldval)
x_check_errors (FRAME_W32_DISPLAY (f), "bad busy pointer cursor: %s");
x_check_errors (FRAME_W32_DISPLAY (f), "bad nontext pointer cursor: %s");
- if (!EQ (Qnil, Vx_mode_pointer_shape))
+ if (!NILP (Vx_mode_pointer_shape))
{
CHECK_FIXNUM (Vx_mode_pointer_shape);
mode_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f),
@@ -1273,7 +1273,7 @@ w32_set_mouse_color (struct frame *f, Lisp_Object arg,
Lisp_Object oldval)
mode_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f), XC_xterm);
x_check_errors (FRAME_W32_DISPLAY (f), "bad modeline pointer cursor: %s");
- if (!EQ (Qnil, Vx_sensitive_text_pointer_shape))
+ if (!NILP (Vx_sensitive_text_pointer_shape))
{
CHECK_FIXNUM (Vx_sensitive_text_pointer_shape);
hand_cursor
diff --git a/src/w32font.c b/src/w32font.c
index 0495099db5..c4a89446b9 100644
--- a/src/w32font.c
+++ b/src/w32font.c
@@ -2385,7 +2385,6 @@ font_supported_scripts (FONTSIGNATURE * sig)
SUBRANGE (108, Qkharoshthi);
SUBRANGE (109, Qtai_xuan_jing_symbol);
SUBRANGE (110, Qcuneiform);
- SUBRANGE (111, Qcuneiform_numbers_and_punctuation);
SUBRANGE (111, Qcounting_rod_numeral);
SUBRANGE (112, Qsundanese);
SUBRANGE (113, Qlepcha);
@@ -2828,8 +2827,6 @@ syms_of_w32font (void)
DEFSYM (Qbuginese, "buginese");
DEFSYM (Qbuhid, "buhid");
DEFSYM (Qcuneiform, "cuneiform");
- DEFSYM (Qcuneiform_numbers_and_punctuation,
- "cuneiform-numbers-and-punctuation");
DEFSYM (Qcypriot, "cypriot");
DEFSYM (Qdeseret, "deseret");
DEFSYM (Qglagolitic, "glagolitic");
diff --git a/src/w32menu.c b/src/w32menu.c
index 42e27babbc..57f6762c2f 100644
--- a/src/w32menu.c
+++ b/src/w32menu.c
@@ -188,7 +188,7 @@ menubar_selection_callback (struct frame *f, void *
client_data)
i = 0;
while (i < f->menu_bar_items_used)
{
- if (EQ (AREF (vector, i), Qnil))
+ if (NILP (AREF (vector, i)))
{
subprefix_stack[submenu_depth++] = prefix;
prefix = entry;
@@ -587,7 +587,7 @@ w32_menu_show (struct frame *f, int x, int y, int menuflags,
i = 0;
while (i < menu_items_used)
{
- if (EQ (AREF (menu_items, i), Qnil))
+ if (NILP (AREF (menu_items, i)))
{
submenu_stack[submenu_depth++] = save_wv;
save_wv = prev_wv;
@@ -779,7 +779,7 @@ w32_menu_show (struct frame *f, int x, int y, int menuflags,
i = 0;
while (i < menu_items_used)
{
- if (EQ (AREF (menu_items, i), Qnil))
+ if (NILP (AREF (menu_items, i)))
{
subprefix_stack[submenu_depth++] = prefix;
prefix = entry;
diff --git a/src/w32term.c b/src/w32term.c
index 700c492cc3..78777f153c 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -2564,7 +2564,11 @@ w32_draw_glyph_string (struct glyph_string *s)
int y;
if (s->prev
- && s->prev->face->underline == FACE_UNDER_LINE)
+ && s->prev->face->underline == FACE_UNDER_LINE
+ && (s->prev->face->underline_at_descent_line_p
+ == s->face->underline_at_descent_line_p)
+ && (s->prev->face->underline_pixels_above_descent_line
+ == s->face->underline_pixels_above_descent_line))
{
/* We use the same underline style as the previous one. */
thickness = s->prev->underline_thickness;
@@ -2587,7 +2591,8 @@ w32_draw_glyph_string (struct glyph_string *s)
val = (WINDOW_BUFFER_LOCAL_VALUE
(Qx_underline_at_descent_line, s->w));
underline_at_descent_line
- = !(NILP (val) || EQ (val, Qunbound));
+ = (!(NILP (val) || EQ (val, Qunbound))
+ || s->face->underline_at_descent_line_p);
val = (WINDOW_BUFFER_LOCAL_VALUE
(Qx_use_underline_position_properties, s->w));
@@ -2601,7 +2606,9 @@ w32_draw_glyph_string (struct glyph_string *s)
thickness = 1;
if (underline_at_descent_line
|| !font)
- position = (s->height - thickness) - (s->ybase - s->y);
+ position = ((s->height - thickness)
+ - (s->ybase - s->y)
+ - s->face->underline_pixels_above_descent_line);
else
{
/* Get the underline position. This is the
@@ -2619,7 +2626,12 @@ w32_draw_glyph_string (struct glyph_string *s)
else
position = (font->descent + 1) / 2;
}
- position = max (position, minimum_offset);
+
+ if (!(s->face->underline_at_descent_line_p
+ /* Ignore minimum_offset if the amount of pixels
+ was explictly specified. */
+ && s->face->underline_pixels_above_descent_line))
+ position = max (position, minimum_offset);
}
/* Check the sanity of thickness and position. We should
avoid drawing underline out of the current line area. */
diff --git a/src/window.c b/src/window.c
index 1e7c26b82e..2a5e4042a4 100644
--- a/src/window.c
+++ b/src/window.c
@@ -5861,7 +5861,8 @@ window_scroll_pixel_based (Lisp_Object window, int n,
bool whole, bool noerror)
/* We moved the window start towards ZV, so PT may be now
in the scroll margin at the top. */
- move_it_to (&it, PT, -1, -1, -1, MOVE_TO_POS);
+ if (IT_CHARPOS (it) < PT)
+ move_it_to (&it, PT, -1, -1, -1, MOVE_TO_POS);
if (IT_CHARPOS (it) == PT
&& it.current_y >= this_scroll_margin
&& it.current_y <= last_y - WINDOW_TAB_LINE_HEIGHT (w)
@@ -6307,10 +6308,12 @@ followed by all visible frames on the current terminal.
*/)
if (NILP (window))
window = display_buffer (Vother_window_scroll_buffer, Qt, Qnil);
}
+ else if (FUNCTIONP (Vother_window_scroll_default))
+ /* Nothing specified; try to get a window from the function. */
+ window = call0 (Vother_window_scroll_default);
else
{
- /* Nothing specified; look for a neighboring window on the same
- frame. */
+ /* Otherwise, look for a neighboring window on the same frame. */
window = Fnext_window (selected_window, Qlambda, Qnil);
if (EQ (window, selected_window))
@@ -8268,6 +8271,14 @@ is displayed in the `mode-line' face. */);
doc: /* If this is a live buffer, \\[scroll-other-window] should
scroll its window. */);
Vother_window_scroll_buffer = Qnil;
+ DEFVAR_LISP ("other-window-scroll-default", Vother_window_scroll_default,
+ doc: /* Function that provides the window to scroll by
\\[scroll-other-window].
+The function `other-window-for-scrolling' first tries to use
+`minibuffer-scroll-window' and `other-window-scroll-buffer'.
+But when both are nil, then by default it uses a neighboring window.
+This variable is intended to get another default instead of `next-window'.
*/);
+ Vother_window_scroll_default = Qnil;
+
DEFVAR_BOOL ("auto-window-vscroll", auto_window_vscroll_p,
doc: /* Non-nil means to automatically adjust `window-vscroll'
to view tall lines. */);
auto_window_vscroll_p = true;
diff --git a/src/xdisp.c b/src/xdisp.c
index 2326df4300..26bd45a861 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -10216,7 +10216,8 @@ move_it_to (struct it *it, ptrdiff_t to_charpos, int
to_x, int to_y, int to_vpos
could have both positions after TO_CHARPOS or
both positions before it, due to bidi
reordering.) */
- if (IT_CHARPOS (*it) != to_charpos
+ if (to_charpos > 0
+ && IT_CHARPOS (*it) != to_charpos
&& ((IT_CHARPOS (it_backup) > to_charpos)
== (IT_CHARPOS (*it) > to_charpos)))
{
@@ -13928,6 +13929,8 @@ redisplay_tab_bar (struct frame *f)
struct it it;
struct glyph_row *row;
+ f->tab_bar_redisplayed = true;
+
/* If frame hasn't a tab-bar window or if it is zero-height, don't
do anything. This means you must start with tab-bar-lines
non-zero to get the auto-sizing effect. Or in other words, you
@@ -13935,9 +13938,16 @@ redisplay_tab_bar (struct frame *f)
if (!WINDOWP (f->tab_bar_window)
|| (w = XWINDOW (f->tab_bar_window),
WINDOW_TOTAL_LINES (w) == 0))
- return false;
+ {
+ /* Even if we do not display a tab bar initially, still pretend
+ that we have resized it. This avoids that a later activation
+ of the tab bar resizes the frame, despite of the fact that the
+ setting of 'frame-inhibit-implied-resize' should inhibit it
+ (Bug#52986). */
+ f->tab_bar_resized = true;
- f->tab_bar_redisplayed = true;
+ return false;
+ }
/* Set up an iterator for the tab-bar window. */
init_iterator (&it, w, -1, -1, w->desired_matrix->rows, TAB_BAR_FACE_ID);
@@ -14847,6 +14857,8 @@ redisplay_tool_bar (struct frame *f)
struct it it;
struct glyph_row *row;
+ f->tool_bar_redisplayed = true;
+
/* If frame hasn't a tool-bar window or if it is zero-height, don't
do anything. This means you must start with tool-bar-lines
non-zero to get the auto-sizing effect. Or in other words, you
@@ -14854,9 +14866,16 @@ redisplay_tool_bar (struct frame *f)
if (!WINDOWP (f->tool_bar_window)
|| (w = XWINDOW (f->tool_bar_window),
WINDOW_TOTAL_LINES (w) == 0))
- return false;
+ {
+ /* Even if we do not display a tool bar initially, still pretend
+ that we have resized it already. This avoids that a later
+ activation of the tool bar resizes the frame, despite of the
+ fact that a setting of 'frame-inhibit-implied-resize' should
+ inhibit it (Bug#52986). */
+ f->tool_bar_resized = true;
- f->tool_bar_redisplayed = true;
+ return false;
+ }
/* Set up an iterator for the tool-bar window. */
init_iterator (&it, w, -1, -1, w->desired_matrix->rows, TOOL_BAR_FACE_ID);
@@ -18557,6 +18576,20 @@ try_cursor_movement (Lisp_Object window, struct
text_pos startp,
|| (NILP (g->object)
&& (g->charpos == PT
|| (g->charpos == 0 && endpos - 1 == PT)));
+ /* Perhaps the point position is inside
+ invisible text? In that case, we trust
+ 'set_cursor_from_row' to do its job and
+ find the best position for the cursor. */
+ if (!exact_match_p)
+ {
+ Lisp_Object val =
+ get_char_property_and_overlay (make_fixnum (PT),
+ Qinvisible,
+ Qnil, NULL);
+
+ if (TEXT_PROP_MEANS_INVISIBLE (val) != 0)
+ exact_match_p = true;
+ }
}
if (at_zv_p || exact_match_p)
{
@@ -19143,7 +19176,8 @@ redisplay_window (Lisp_Object window, bool
just_this_one_p)
struct glyph_row *row;
row = MATRIX_FIRST_TEXT_ROW (w->desired_matrix);
- while (MATRIX_ROW_BOTTOM_Y (row) < new_vpos)
+ while (MATRIX_ROW_BOTTOM_Y (row) < new_vpos
+ && !row->ends_at_zv_p)
++row;
TEMP_SET_PT_BOTH (MATRIX_ROW_START_CHARPOS (row),
@@ -24869,15 +24903,17 @@ DEFUN ("bidi-find-overridden-directionality",
doc: /* Return position between FROM and TO where directionality was
overridden.
This function returns the first character position in the specified
-region of OBJECT where there is a character whose `bidi-class' property
-is `L', but which was forced to display as `R' by a directional
-override, and likewise with characters whose `bidi-class' is `R'
-or `AL' that were forced to display as `L'.
+region of OBJECT where characters have their bidirectional
+properties affected in a way that might make its text look confusingly
+on display. For example, characters whose `bidi-class' property is `L',
+could be forced to display as `R' by a directional override, and
+likewise characters whose `bidi-class' is `R' or `AL' that are
+forced to display as `L'.
If no such character is found, the function returns nil.
OBJECT is a Lisp string or buffer to search for overridden
-directionality, and defaults to the current buffer if nil or omitted.
+directionality, and defaults to the current buffer if nil.
OBJECT can also be a window, in which case the function will search
the buffer displayed in that window. Passing the window instead of
a buffer is preferable when the buffer is displayed in some window,
@@ -24889,12 +24925,16 @@ of the text. It should be a symbol, either
`left-to-right'
or `right-to-left', and defaults to `left-to-right'.
Strong directional characters `L', `R', and `AL' can have their
-intrinsic directionality overridden by directional override
-control characters RLO (u+202E) and LRO (u+202D). They can also
-have their directionality affected by other formatting control
-characters: LRE (u+202A), RLE (u+202B), LRI (u+2066), and RLI (u+2067).
-See the function `get-char-code-property' for a way to inquire about
-the `bidi-class' property of a character. */)
+intrinsic directionality overridden by directional override control
+characters RLO (u+202E) and LRO (u+202D). They can also have their
+directionality affected by other formatting control characters: LRE
+(u+202A), RLE (u+202B), LRI (u+2066), and RLI (u+2067). See the
+function `get-char-code-property' for a way to inquire about the
+`bidi-class' property of a character. Characters whose intrinsic
+directionality is weak or neutral, such as numbers or punctuation
+characters, can be forced to display in a very different place with
+respect of its surrounding characters, so as to make the surrounding
+text confuse the user regarding what the text says. */)
(Lisp_Object from, Lisp_Object to, Lisp_Object object, Lisp_Object base_dir)
{
struct buffer *buf = current_buffer;
diff --git a/src/xfaces.c b/src/xfaces.c
index 3fd31b7f22..6a279f8719 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -3165,14 +3165,15 @@ FRAME 0 means change the face on all frames, and change
the default
*/
valid_p = true;
- while (!NILP (CAR_SAFE(list)))
+ while (!NILP (CAR_SAFE (list)))
{
key = CAR_SAFE (list);
list = CDR_SAFE (list);
val = CAR_SAFE (list);
list = CDR_SAFE (list);
- if (NILP (key) || NILP (val))
+ if (NILP (key) || (NILP (val)
+ && !EQ (key, QCposition)))
{
valid_p = false;
break;
@@ -6041,6 +6042,8 @@ realize_gui_face (struct face_cache *cache, Lisp_Object
attrs[LFACE_VECTOR_SIZE]
face->underline = FACE_UNDER_LINE;
face->underline_defaulted_p = true;
face->underline_color = 0;
+ face->underline_at_descent_line_p = false;
+ face->underline_pixels_above_descent_line = 0;
}
else if (STRINGP (underline))
{
@@ -6050,12 +6053,16 @@ realize_gui_face (struct face_cache *cache, Lisp_Object
attrs[LFACE_VECTOR_SIZE]
face->underline_color
= load_color (f, face, underline,
LFACE_UNDERLINE_INDEX);
+ face->underline_at_descent_line_p = false;
+ face->underline_pixels_above_descent_line = 0;
}
else if (NILP (underline))
{
face->underline = FACE_NO_UNDERLINE;
face->underline_defaulted_p = false;
face->underline_color = 0;
+ face->underline_at_descent_line_p = false;
+ face->underline_pixels_above_descent_line = 0;
}
else if (CONSP (underline))
{
@@ -6064,6 +6071,8 @@ realize_gui_face (struct face_cache *cache, Lisp_Object
attrs[LFACE_VECTOR_SIZE]
face->underline = FACE_UNDER_LINE;
face->underline_color = 0;
face->underline_defaulted_p = true;
+ face->underline_at_descent_line_p = false;
+ face->underline_pixels_above_descent_line = 0;
/* FIXME? This is also not robust about checking the precise form.
See comments in Finternal_set_lisp_face_attribute. */
@@ -6100,6 +6109,13 @@ realize_gui_face (struct face_cache *cache, Lisp_Object
attrs[LFACE_VECTOR_SIZE]
else if (EQ (value, Qwave))
face->underline = FACE_UNDER_WAVE;
}
+ else if (EQ (keyword, QCposition))
+ {
+ face->underline_at_descent_line_p = !NILP (value);
+
+ if (FIXNATP (value))
+ face->underline_pixels_above_descent_line = XFIXNAT (value);
+ }
}
}
@@ -6408,8 +6424,12 @@ face_at_buffer_position (struct window *w, ptrdiff_t pos,
cached faces since we've looked up these faces, we need to look
them up again. */
if (!default_face)
- default_face = FACE_FROM_ID (f,
- lookup_basic_face (w, f, DEFAULT_FACE_ID));
+ {
+ if (FRAME_FACE_CACHE (f)->used == 0)
+ recompute_basic_faces (f);
+ default_face = FACE_FROM_ID (f,
+ lookup_basic_face (w, f, DEFAULT_FACE_ID));
+ }
}
/* Optimize common cases where we can use the default face. */
@@ -6915,6 +6935,7 @@ syms_of_xfaces (void)
DEFSYM (QCcolor, ":color");
DEFSYM (QCline_width, ":line-width");
DEFSYM (QCstyle, ":style");
+ DEFSYM (QCposition, ":position");
DEFSYM (Qline, "line");
DEFSYM (Qwave, "wave");
DEFSYM (Qreleased_button, "released-button");
diff --git a/src/xfns.c b/src/xfns.c
index b94fe17922..faab1b1158 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -24,6 +24,7 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include "lisp.h"
+#include "character.h"
#include "xterm.h"
#include "frame.h"
#include "window.h"
@@ -39,6 +40,12 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/stat.h>
+#ifdef USE_XCB
+#include <xcb/xcb.h>
+#include <xcb/xproto.h>
+#include <xcb/xcb_aux.h>
+#endif
+
#include "bitmaps/gray.xbm"
#include "xsettings.h"
@@ -2330,8 +2337,24 @@ hack_wm_protocols (struct frame *f, Widget widget)
#ifdef HAVE_X_I18N
-static XFontSet xic_create_xfontset (struct frame *);
-static XIMStyle best_xim_style (XIMStyles *);
+static void xic_preedit_draw_callback (XIC, XPointer,
XIMPreeditDrawCallbackStruct *);
+static void xic_preedit_caret_callback (XIC, XPointer,
XIMPreeditCaretCallbackStruct *);
+static void xic_preedit_done_callback (XIC, XPointer, XPointer);
+static int xic_preedit_start_callback (XIC, XPointer, XPointer);
+
+#ifndef HAVE_XICCALLBACK_CALLBACK
+#define XICCallback XIMCallback
+#define XICProc XIMProc
+#endif
+
+static XIMCallback Xxic_preedit_draw_callback = { NULL,
+ (XIMProc)
xic_preedit_draw_callback };
+static XIMCallback Xxic_preedit_caret_callback = { NULL,
+ (XIMProc)
xic_preedit_caret_callback };
+static XIMCallback Xxic_preedit_done_callback = { NULL,
+ (XIMProc)
xic_preedit_done_callback };
+static XICCallback Xxic_preedit_start_callback = { NULL,
+ (XICProc)
xic_preedit_start_callback };
#if defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
/* Create an X fontset on frame F with base font name BASE_FONTNAME. */
@@ -2608,16 +2631,37 @@ xic_free_xfontset (struct frame *f)
FRAME_XIC_FONTSET (f) = NULL;
}
+/* Create XIC for frame F. */
+
+static const XIMStyle supported_xim_styles[] =
+ {
+ STYLE_NONE,
+ STYLE_CALLBACK,
+ STYLE_OVERTHESPOT,
+ STYLE_OFFTHESPOT,
+ STYLE_ROOT
+ };
/* Value is the best input style, given user preferences USER (already
checked to be supported by Emacs), and styles supported by the
input method XIM. */
static XIMStyle
-best_xim_style (XIMStyles *xim)
+best_xim_style (struct x_display_info *dpyinfo,
+ XIMStyles *xim)
{
- /* Return the default style. This is what GTK3 uses and
- should work fine with all modern input methods. */
+ int i, j;
+ int nr_supported = ARRAYELTS (supported_xim_styles);
+
+ if (dpyinfo->preferred_xim_style)
+ return dpyinfo->preferred_xim_style;
+
+ for (i = 0; i < nr_supported; ++i)
+ for (j = 0; j < xim->count_styles; ++j)
+ if (supported_xim_styles[i] == xim->supported_styles[j])
+ return supported_xim_styles[i];
+
+ /* Return the default style. */
return XIMPreeditNothing | XIMStatusNothing;
}
@@ -2643,7 +2687,8 @@ create_frame_xic (struct frame *f)
goto out;
/* Determine XIC style. */
- xic_style = best_xim_style (FRAME_X_XIM_STYLES (f));
+ xic_style = best_xim_style (FRAME_DISPLAY_INFO (f),
+ FRAME_X_XIM_STYLES (f));
/* Create X fontset. */
if (xic_style & (XIMPreeditPosition | XIMStatusArea))
@@ -2692,6 +2737,22 @@ create_frame_xic (struct frame *f)
goto out;
}
+ if (xic_style & XIMPreeditCallbacks)
+ {
+ spot.x = 0;
+ spot.y = 0;
+ preedit_attr = XVaCreateNestedList (0,
+ XNSpotLocation, &spot,
+ XNPreeditStartCallback,
&Xxic_preedit_start_callback,
+ XNPreeditDoneCallback,
&Xxic_preedit_done_callback,
+ XNPreeditDrawCallback,
&Xxic_preedit_draw_callback,
+ XNPreeditCaretCallback,
&Xxic_preedit_caret_callback,
+ NULL);
+
+ if (!preedit_attr)
+ goto out;
+ }
+
if (preedit_attr && status_attr)
xic = XCreateIC (xim,
XNInputStyle, xic_style,
@@ -2762,15 +2823,46 @@ free_frame_xic (struct frame *f)
void
xic_set_preeditarea (struct window *w, int x, int y)
{
- struct frame *f = XFRAME (w->frame);
+ struct frame *f = WINDOW_XFRAME (w);
XVaNestedList attr;
XPoint spot;
- spot.x = WINDOW_TO_FRAME_PIXEL_X (w, x) + WINDOW_LEFT_FRINGE_WIDTH (w) +
WINDOW_LEFT_MARGIN_WIDTH(w);
- spot.y = WINDOW_TO_FRAME_PIXEL_Y (w, y) + FONT_BASE (FRAME_FONT (f));
- attr = XVaCreateNestedList (0, XNSpotLocation, &spot, NULL);
- XSetICValues (FRAME_XIC (f), XNPreeditAttributes, attr, NULL);
- XFree (attr);
+ if (FRAME_XIC (f))
+ {
+ spot.x = (WINDOW_TO_FRAME_PIXEL_X (w, x)
+ + WINDOW_LEFT_FRINGE_WIDTH (w)
+ + WINDOW_LEFT_MARGIN_WIDTH (w));
+ spot.y = (WINDOW_TO_FRAME_PIXEL_Y (w, y)
+ + w->phys_cursor_height);
+
+ if (FRAME_XIC_STYLE (f) & XIMPreeditCallbacks)
+ attr = XVaCreateNestedList (0, XNSpotLocation, &spot,
+ XNPreeditStartCallback,
&Xxic_preedit_start_callback,
+ XNPreeditDoneCallback,
&Xxic_preedit_done_callback,
+ XNPreeditDrawCallback,
&Xxic_preedit_draw_callback,
+ XNPreeditCaretCallback,
&Xxic_preedit_caret_callback,
+ NULL);
+ else
+ attr = XVaCreateNestedList (0, XNSpotLocation, &spot, NULL);
+ XSetICValues (FRAME_XIC (f), XNPreeditAttributes, attr, NULL);
+ XFree (attr);
+ }
+#ifdef USE_GTK
+ GdkRectangle rect;
+ int scale = xg_get_scale (f);
+
+ rect.x = (WINDOW_TO_FRAME_PIXEL_X (w, x)
+ + WINDOW_LEFT_FRINGE_WIDTH (w)
+ + WINDOW_LEFT_MARGIN_WIDTH (w)) / scale;
+ rect.y = (WINDOW_TO_FRAME_PIXEL_Y (w, y)
+ + FRAME_TOOLBAR_HEIGHT (f)
+ + FRAME_MENUBAR_HEIGHT (f)) / scale;
+ rect.width = w->phys_cursor_width / scale;
+ rect.height = w->phys_cursor_height / scale;
+
+ gtk_im_context_set_cursor_location (FRAME_X_OUTPUT (f)->im_context,
+ &rect);
+#endif
}
@@ -2816,9 +2908,336 @@ xic_set_statusarea (struct frame *f)
XFree (attr);
}
+static struct frame *
+x_xic_to_frame (XIC xic)
+{
+ Lisp_Object tail, tem;
+ struct frame *f;
+
+ FOR_EACH_FRAME (tail, tem)
+ {
+ f = XFRAME (tem);
+
+ if (FRAME_X_P (f) && FRAME_XIC (f) == xic)
+ return f;
+ }
+
+ return NULL;
+}
+
+static int
+xic_preedit_start_callback (XIC xic, XPointer client_data,
+ XPointer call_data)
+{
+ struct frame *f = x_xic_to_frame (xic);
+ struct x_output *output;
+
+ if (f)
+ {
+ output = FRAME_X_OUTPUT (f);
+
+ output->preedit_size = 0;
+ output->preedit_active = true;
+ output->preedit_caret = 0;
+
+ if (output->preedit_chars)
+ xfree (output->preedit_chars);
+
+ output->preedit_chars = NULL;
+ }
+
+ return -1;
+}
+
+static void
+xic_preedit_caret_callback (XIC xic, XPointer client_data,
+ XIMPreeditCaretCallbackStruct *call_data)
+{
+ struct frame *f = x_xic_to_frame (xic);
+ struct x_output *output;
+ struct input_event ie;
+ EVENT_INIT (ie);
+
+ if (f)
+ {
+ output = FRAME_X_OUTPUT (f);
+
+ if (!output->preedit_active)
+ return;
+
+ switch (call_data->direction)
+ {
+ case XIMAbsolutePosition:
+ output->preedit_caret = call_data->position;
+ break;
+ case XIMForwardChar:
+ case XIMForwardWord:
+ call_data->position = output->preedit_caret++;
+ break;
+ case XIMBackwardChar:
+ case XIMBackwardWord:
+ call_data->position = max (0, output->preedit_caret--);
+ break;
+ default:
+ call_data->position = output->preedit_caret;
+ }
+
+ if (output->preedit_chars)
+ {
+ ie.kind = PREEDIT_TEXT_EVENT;
+ XSETFRAME (ie.frame_or_window, f);
+ ie.arg = make_string_from_utf8 (output->preedit_chars,
+ output->preedit_size);
+
+ if (SCHARS (ie.arg))
+ Fput_text_property (make_fixnum (min (SCHARS (ie.arg) - 1,
+ max (0,
output->preedit_caret))),
+ make_fixnum (max (SCHARS (ie.arg),
+ max (0,
output->preedit_caret) + 1)),
+ Qcursor, Qt, ie.arg);
+
+ XSETINT (ie.x, 0);
+ XSETINT (ie.y, 0);
+
+ kbd_buffer_store_event (&ie);
+ }
+ }
+}
+
+
+static void
+xic_preedit_done_callback (XIC xic, XPointer client_data,
+ XPointer call_data)
+{
+ struct frame *f = x_xic_to_frame (xic);
+ struct x_output *output;
+ struct input_event ie;
+ EVENT_INIT (ie);
+
+ if (f)
+ {
+ ie.kind = PREEDIT_TEXT_EVENT;
+ ie.arg = Qnil;
+ XSETFRAME (ie.frame_or_window, f);
+ XSETINT (ie.x, 0);
+ XSETINT (ie.y, 0);
+ kbd_buffer_store_event (&ie);
+
+ output = FRAME_X_OUTPUT (f);
+
+ if (output->preedit_chars)
+ xfree (output->preedit_chars);
+
+ output->preedit_size = 0;
+ output->preedit_active = false;
+ output->preedit_chars = NULL;
+ output->preedit_caret = 0;
+ }
+}
+
+/* The string returned is not null-terminated. */
+static char *
+x_xim_text_to_utf8_unix (XIMText *text, ptrdiff_t *length)
+{
+ unsigned char *wchar_buf;
+ ptrdiff_t wchar_actual_length, i;
+ ptrdiff_t nbytes;
+ struct coding_system coding;
+
+ if (text->encoding_is_wchar)
+ {
+ wchar_buf = xmalloc ((text->length + 1) * MAX_MULTIBYTE_LENGTH);
+ wchar_actual_length = 0;
+
+ for (i = 0; i < text->length; ++i)
+ wchar_actual_length += CHAR_STRING (text->string.wide_char[i],
+ wchar_buf + wchar_actual_length);
+ *length = wchar_actual_length;
+
+ return (char *) wchar_buf;
+ }
+
+ nbytes = strlen (text->string.multi_byte);
+ setup_coding_system (Vlocale_coding_system, &coding);
+ coding.mode |= (CODING_MODE_LAST_BLOCK
+ | CODING_MODE_SAFE_ENCODING);
+ coding.source = (const unsigned char *) text->string.multi_byte;
+ coding.dst_bytes = 2048;
+ coding.destination = xmalloc (2048);
+ decode_coding_object (&coding, Qnil, 0, 0, nbytes, nbytes, Qnil);
+
+ /* coding.destination has either been allocated by us, or
+ reallocated by decode_coding_object. */
+
+ *length = coding.produced;
+ return (char *) coding.destination;
+}
+
+static void
+xic_preedit_draw_callback (XIC xic, XPointer client_data,
+ XIMPreeditDrawCallbackStruct *call_data)
+{
+ struct frame *f = x_xic_to_frame (xic);
+ struct x_output *output;
+ ptrdiff_t text_length = 0;
+ ptrdiff_t charpos;
+ ptrdiff_t original_size;
+ char *text;
+ char *chg_start, *chg_end;
+ struct input_event ie;
+ EVENT_INIT (ie);
+
+ if (f)
+ {
+ output = FRAME_X_OUTPUT (f);
+
+ if (!output->preedit_active)
+ return;
+
+ if (call_data->text)
+ text = x_xim_text_to_utf8_unix (call_data->text, &text_length);
+ else
+ text = NULL;
+
+ original_size = output->preedit_size;
+
+ /* This is an ordinary insertion: reallocate the buffer to hold
+ enough for TEXT. */
+ if (!call_data->chg_length)
+ {
+ if (!text)
+ goto im_abort;
-/* Set X fontset for XIC of frame F, using base font name
- BASE_FONTNAME. Called when a new Emacs fontset is chosen. */
+ if (output->preedit_chars)
+ output->preedit_chars = xrealloc (output->preedit_chars,
+ output->preedit_size +=
text_length);
+ else
+ output->preedit_chars = xmalloc (output->preedit_size +=
text_length);
+ }
+
+ chg_start = output->preedit_chars;
+
+ /* The IM sent bad data: the buffer is empty, but the change
+ position is more than 0. */
+ if (!output->preedit_chars && call_data->chg_first)
+ goto im_abort;
+
+ /* Find the byte position for the character position where the
+ first change is to be made. */
+ if (call_data->chg_first)
+ {
+ charpos = 0;
+
+ while (charpos < call_data->chg_first)
+ {
+ chg_start += BYTES_BY_CHAR_HEAD (*chg_start);
+
+ if ((chg_start - output->preedit_chars) > output->preedit_size)
+ /* The IM sent bad data: chg_start is larger than the
+ current buffer. */
+ goto im_abort;
+ ++charpos;
+ }
+ }
+
+ if (!call_data->chg_length)
+ {
+ if (!text)
+ goto im_abort;
+
+ memmove (chg_start + text_length, chg_start,
+ original_size - (chg_start - output->preedit_chars));
+ memcpy (chg_start, text, text_length);
+ }
+ else
+ {
+ if (call_data->chg_length < 1)
+ goto im_abort;
+
+ charpos = 0;
+ chg_end = chg_start;
+
+ while (charpos < call_data->chg_length)
+ {
+ chg_end += BYTES_BY_CHAR_HEAD (*chg_end);
+
+ if ((chg_end - output->preedit_chars) > output->preedit_size)
+ /* The IM sent bad data: chg_end ends someplace outside
+ the current buffer. */
+ goto im_abort;
+ ++charpos;
+ }
+
+ memmove (chg_start, chg_end, ((output->preedit_chars
+ + output->preedit_size) - chg_end));
+ output->preedit_size -= (chg_end - chg_start);
+
+ if (text)
+ {
+ original_size = output->preedit_size;
+ output->preedit_chars = xrealloc (output->preedit_chars,
+ output->preedit_size +=
text_length);
+
+ /* Find chg_start again, since preedit_chars was reallocated. */
+
+ chg_start = output->preedit_chars;
+ charpos = 0;
+
+ while (charpos < call_data->chg_first)
+ {
+ chg_start += BYTES_BY_CHAR_HEAD (*chg_start);
+
+ if ((chg_start - output->preedit_chars) >
output->preedit_size)
+ /* The IM sent bad data: chg_start is larger than the
+ current buffer. */
+ goto im_abort;
+ ++charpos;
+ }
+
+ memmove (chg_start + text_length, chg_start,
+ original_size - (chg_start - output->preedit_chars));
+ memcpy (chg_start, text, text_length);
+ }
+ }
+
+ if (text)
+ xfree (text);
+
+ output->preedit_caret = call_data->caret;
+
+ /* This is okay because this callback is called from the big XIM
+ event filter, which runs inside XTread_socket. */
+
+ ie.kind = PREEDIT_TEXT_EVENT;
+ XSETFRAME (ie.frame_or_window, f);
+ ie.arg = make_string_from_utf8 (output->preedit_chars,
+ output->preedit_size);
+
+ if (SCHARS (ie.arg))
+ Fput_text_property (make_fixnum (min (SCHARS (ie.arg) - 1,
+ max (0, output->preedit_caret))),
+ make_fixnum (min (SCHARS (ie.arg),
+ max (0, output->preedit_caret) +
1)),
+ Qcursor, Qt, ie.arg);
+
+ XSETINT (ie.x, 0);
+ XSETINT (ie.y, 0);
+
+ kbd_buffer_store_event (&ie);
+ }
+
+ return;
+
+ im_abort:
+ if (text)
+ xfree (text);
+ if (output->preedit_chars)
+ xfree (output->preedit_chars);
+ output->preedit_chars = NULL;
+ output->preedit_size = 0;
+ output->preedit_active = false;
+ output->preedit_caret = 0;
+}
void
xic_set_xfontset (struct frame *f, const char *base_fontname)
@@ -2855,6 +3274,17 @@ x_mark_frame_dirty (struct frame *f)
static void
set_up_x_back_buffer (struct frame *f)
{
+#ifdef HAVE_XRENDER
+ block_input ();
+ if (FRAME_X_PICTURE (f) != None)
+ {
+ XRenderFreePicture (FRAME_X_DISPLAY (f),
+ FRAME_X_PICTURE (f));
+ FRAME_X_PICTURE (f) = None;
+ }
+ unblock_input ();
+#endif
+
#ifdef HAVE_XDBE
block_input ();
if (FRAME_X_WINDOW (f) && !FRAME_X_DOUBLE_BUFFERED_P (f))
@@ -2869,10 +3299,10 @@ set_up_x_back_buffer (struct frame *f)
server ran out of memory or we don't have the right kind
of visual, just use single-buffered rendering. */
x_catch_errors (FRAME_X_DISPLAY (f));
- FRAME_X_RAW_DRAWABLE (f) = XdbeAllocateBackBufferName (
- FRAME_X_DISPLAY (f),
- FRAME_X_WINDOW (f),
- XdbeCopied);
+ FRAME_X_RAW_DRAWABLE (f)
+ = XdbeAllocateBackBufferName (FRAME_X_DISPLAY (f),
+ FRAME_X_WINDOW (f),
+ XdbeCopied);
if (x_had_errors_p (FRAME_X_DISPLAY (f)))
FRAME_X_RAW_DRAWABLE (f) = FRAME_X_WINDOW (f);
x_uncatch_errors_after_check ();
@@ -2885,6 +3315,17 @@ set_up_x_back_buffer (struct frame *f)
void
tear_down_x_back_buffer (struct frame *f)
{
+#ifdef HAVE_XRENDER
+ block_input ();
+ if (FRAME_X_PICTURE (f) != None)
+ {
+ XRenderFreePicture (FRAME_X_DISPLAY (f),
+ FRAME_X_PICTURE (f));
+ FRAME_X_PICTURE (f) = None;
+ }
+ unblock_input ();
+#endif
+
#ifdef HAVE_XDBE
block_input ();
if (FRAME_X_WINDOW (f) && FRAME_X_DOUBLE_BUFFERED_P (f))
@@ -2937,6 +3378,8 @@ setup_xi_event_mask (struct frame *f)
XISetMask (m, XI_Motion);
XISetMask (m, XI_Enter);
XISetMask (m, XI_Leave);
+ XISetMask (m, XI_FocusIn);
+ XISetMask (m, XI_FocusOut);
XISetMask (m, XI_KeyPress);
XISetMask (m, XI_KeyRelease);
XISelectEvents (FRAME_X_DISPLAY (f),
@@ -2949,6 +3392,8 @@ setup_xi_event_mask (struct frame *f)
#ifdef USE_X_TOOLKIT
XISetMask (m, XI_KeyPress);
XISetMask (m, XI_KeyRelease);
+ XISetMask (m, XI_FocusIn);
+ XISetMask (m, XI_FocusOut);
XISelectEvents (FRAME_X_DISPLAY (f),
FRAME_OUTER_WINDOW (f),
@@ -6072,7 +6517,11 @@ void
x_sync (struct frame *f)
{
block_input ();
+#ifndef USE_XCB
XSync (FRAME_X_DISPLAY (f), False);
+#else
+ xcb_aux_sync (FRAME_DISPLAY_INFO (f)->xcb_connection);
+#endif
unblock_input ();
}
@@ -6693,6 +7142,7 @@ x_create_tip_frame (struct x_display_info *dpyinfo,
Lisp_Object parms)
gui_figure_window_size (f, parms, false, false);
{
+#ifndef USE_XCB
XSetWindowAttributes attrs;
unsigned long mask;
Atom type = FRAME_DISPLAY_INFO (f)->Xatom_net_window_type_tooltip;
@@ -6729,6 +7179,47 @@ x_create_tip_frame (struct x_display_info *dpyinfo,
Lisp_Object parms)
XA_ATOM, 32, PropModeReplace,
(unsigned char *)&type, 1);
unblock_input ();
+#else
+ uint32_t value_list[4];
+ xcb_atom_t net_wm_window_type_tooltip
+ = (xcb_atom_t) dpyinfo->Xatom_net_window_type_tooltip;
+
+ f->output_data.x->current_cursor = f->output_data.x->text_cursor;
+ /* Values are set in the order of their enumeration in `enum
+ xcb_cw_t'. */
+ value_list[0] = FRAME_BACKGROUND_PIXEL (f);
+ value_list[1] = true;
+ value_list[2] = XCB_EVENT_MASK_STRUCTURE_NOTIFY;
+ value_list[3] = (xcb_cursor_t) f->output_data.x->text_cursor;
+
+ block_input ();
+ tip_window
+ = FRAME_X_WINDOW (f)
+ = (Window) xcb_generate_id (dpyinfo->xcb_connection);
+
+ xcb_create_window (dpyinfo->xcb_connection,
+ XCB_COPY_FROM_PARENT,
+ (xcb_window_t) tip_window,
+ (xcb_window_t) dpyinfo->root_window,
+ 0, 0, 1, 1, f->border_width,
+ XCB_WINDOW_CLASS_INPUT_OUTPUT,
+ XCB_COPY_FROM_PARENT,
+ (XCB_CW_BACK_PIXEL
+ | XCB_CW_OVERRIDE_REDIRECT
+ | XCB_CW_EVENT_MASK
+ | XCB_CW_CURSOR),
+ &value_list);
+
+ xcb_change_property (dpyinfo->xcb_connection,
+ XCB_PROP_MODE_REPLACE,
+ (xcb_window_t) tip_window,
+ (xcb_atom_t) dpyinfo->Xatom_net_window_type,
+ (xcb_atom_t) dpyinfo->Xatom_ATOM,
+ 32, 1, &net_wm_window_type_tooltip);
+
+ initial_set_up_x_back_buffer (f);
+ unblock_input ();
+#endif
}
x_make_gc (f);
@@ -6947,13 +7438,13 @@ x_hide_tip (bool delete)
}
#ifdef USE_GTK
- /* Any GTK+ system tooltip can be found via the x_output structure of
- tip_last_frame, provided that frame is still live. Any Emacs
- tooltip is found via the tip_frame variable. Note that the current
- value of x_gtk_use_system_tooltips might not be the same as used
- for the tooltip we have to hide, see Bug#30399. */
+ /* Any GTK+ system tooltip can be found via the x_output structure
+ of tip_last_frame, provided that frame is still live. Any Emacs
+ tooltip is found via the tip_frame variable. Note that the
+ current value of use_system_tooltips might not be the same as
+ used for the tooltip we have to hide, see Bug#30399. */
if ((NILP (tip_last_frame) && NILP (tip_frame))
- || (!x_gtk_use_system_tooltips
+ || (!use_system_tooltips
&& !delete
&& !NILP (tip_frame)
&& FRAME_LIVE_P (XFRAME (tip_frame))
@@ -6986,7 +7477,7 @@ x_hide_tip (bool delete)
/* When using GTK+ system tooltips (compare Bug#41200) reset
tip_last_frame. It will be reassigned when showing the next
GTK+ system tooltip. */
- if (x_gtk_use_system_tooltips)
+ if (use_system_tooltips)
tip_last_frame = Qnil;
/* Now look whether there's an Emacs tip around. */
@@ -6996,7 +7487,7 @@ x_hide_tip (bool delete)
if (FRAME_LIVE_P (f))
{
- if (delete || x_gtk_use_system_tooltips)
+ if (delete || use_system_tooltips)
{
/* Delete the Emacs tooltip frame when DELETE is true
or we change the tooltip type from an Emacs one to
@@ -7155,7 +7646,7 @@ Text larger than the specified size is clipped. */)
CHECK_FIXNUM (dy);
#ifdef USE_GTK
- if (x_gtk_use_system_tooltips)
+ if (use_system_tooltips)
{
bool ok;
@@ -7351,9 +7842,23 @@ Text larger than the specified size is clipped. */)
/* Show tooltip frame. */
block_input ();
+#ifndef USE_XCB
XMoveResizeWindow (FRAME_X_DISPLAY (tip_f), FRAME_X_WINDOW (tip_f),
root_x, root_y, width, height);
XMapRaised (FRAME_X_DISPLAY (tip_f), FRAME_X_WINDOW (tip_f));
+#else
+ uint32_t values[] = { root_x, root_y, width, height, XCB_STACK_MODE_ABOVE };
+
+ xcb_configure_window (FRAME_DISPLAY_INFO (tip_f)->xcb_connection,
+ (xcb_window_t) FRAME_X_WINDOW (tip_f),
+ (XCB_CONFIG_WINDOW_X
+ | XCB_CONFIG_WINDOW_Y
+ | XCB_CONFIG_WINDOW_WIDTH
+ | XCB_CONFIG_WINDOW_HEIGHT
+ | XCB_CONFIG_WINDOW_STACK_MODE), &values);
+ xcb_map_window (FRAME_DISPLAY_INFO (tip_f)->xcb_connection,
+ (xcb_window_t) FRAME_X_WINDOW (tip_f));
+#endif
unblock_input ();
#ifdef USE_CAIRO
@@ -8237,12 +8742,6 @@ If more space for files in the file chooser dialog is
wanted, set this to nil
to turn the additional text off. */);
x_gtk_file_dialog_help_text = true;
- DEFVAR_BOOL ("x-gtk-use-system-tooltips", x_gtk_use_system_tooltips,
- doc: /* If non-nil with a Gtk+ built Emacs, the Gtk+ tooltip is used.
-Otherwise use Emacs own tooltip implementation.
-When using Gtk+ tooltips, the tooltip face is not used. */);
- x_gtk_use_system_tooltips = true;
-
DEFVAR_LISP ("x-gtk-resize-child-frames", x_gtk_resize_child_frames,
doc: /* If non-nil, resize child frames specially with GTK builds.
If this is nil, resize child frames like any other frames. This is the
diff --git a/src/xftfont.c b/src/xftfont.c
index f305738410..c2175d9614 100644
--- a/src/xftfont.c
+++ b/src/xftfont.c
@@ -441,10 +441,10 @@ xftfont_get_xft_draw (struct frame *f)
if (! xft_draw)
{
block_input ();
- xft_draw= XftDrawCreate (FRAME_X_DISPLAY (f),
- FRAME_X_DRAWABLE (f),
- FRAME_X_VISUAL (f),
- FRAME_X_COLORMAP (f));
+ xft_draw = XftDrawCreate (FRAME_X_DISPLAY (f),
+ FRAME_X_DRAWABLE (f),
+ FRAME_X_VISUAL (f),
+ FRAME_X_COLORMAP (f));
unblock_input ();
eassert (xft_draw != NULL);
font_put_frame_data (f, Qxft, xft_draw);
diff --git a/src/xgselect.c b/src/xgselect.c
index 674c259db7..7252210c68 100644
--- a/src/xgselect.c
+++ b/src/xgselect.c
@@ -96,10 +96,20 @@ xg_select (int fds_lim, fd_set *rfds, fd_set *wfds, fd_set
*efds,
int n_gfds, retval = 0, our_fds = 0, max_fds = fds_lim - 1;
int i, nfds, tmo_in_millisec, must_free = 0;
bool need_to_dispatch;
+#ifdef USE_GTK
+ bool already_has_events;
+#endif
context = g_main_context_default ();
acquire_select_lock (context);
+#ifdef USE_GTK
+ already_has_events = g_main_context_pending (context);
+#ifndef HAVE_PGTK
+ already_has_events = already_has_events && x_gtk_use_native_input;
+#endif
+#endif
+
if (rfds) all_rfds = *rfds;
else FD_ZERO (&all_rfds);
if (wfds) all_wfds = *wfds;
@@ -146,10 +156,46 @@ xg_select (int fds_lim, fd_set *rfds, fd_set *wfds,
fd_set *efds,
tmop = &tmo;
}
+#ifndef USE_GTK
fds_lim = max_fds + 1;
nfds = thread_select (pselect, fds_lim,
&all_rfds, have_wfds ? &all_wfds : NULL, efds,
tmop, sigmask);
+#else
+ /* On PGTK, when you type a key, the key press event are received,
+ and one more key press event seems to be received internally.
+
+ The same can happen with GTK native input, which makes input
+ slow.
+
+ The second event is not sent via the display connection, so the
+ following is the case:
+
+ - socket read buffer is empty
+ - a key press event is pending
+
+ In that case, we should not sleep in pselect, and dispatch the
+ event immediately. (Bug#52761) */
+ if (!already_has_events)
+ {
+ fds_lim = max_fds + 1;
+ nfds = thread_select (pselect, fds_lim,
+ &all_rfds, have_wfds ? &all_wfds : NULL, efds,
+ tmop, sigmask);
+ }
+ else
+ {
+ /* Emulate return values */
+ nfds = 1;
+ FD_ZERO (&all_rfds);
+ if (have_wfds)
+ FD_ZERO (&all_wfds);
+ if (efds)
+ FD_ZERO (efds);
+ our_fds++;
+ }
+#endif
+
if (nfds < 0)
retval = nfds;
else if (nfds > 0)
diff --git a/src/xmenu.c b/src/xmenu.c
index b755f75da0..9e4e6b62fc 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -457,8 +457,11 @@ x_activate_menubar (struct frame *f)
if (dpyinfo->num_devices)
{
for (int i = 0; i < dpyinfo->num_devices; ++i)
- XIUngrabDevice (dpyinfo->display, dpyinfo->devices[i].device_id,
- CurrentTime);
+ {
+ if (dpyinfo->devices[i].grab)
+ XIUngrabDevice (dpyinfo->display, dpyinfo->devices[i].device_id,
+ CurrentTime);
+ }
}
#endif
XtDispatchEvent (f->output_data.x->saved_menu_event);
@@ -1469,8 +1472,11 @@ create_and_show_popup_menu (struct frame *f,
widget_value *first_wv,
if (dpyinfo->num_devices)
{
for (int i = 0; i < dpyinfo->num_devices; ++i)
- XIUngrabDevice (dpyinfo->display, dpyinfo->devices[i].device_id,
- CurrentTime);
+ {
+ if (dpyinfo->devices[i].grab)
+ XIUngrabDevice (dpyinfo->display, dpyinfo->devices[i].device_id,
+ CurrentTime);
+ }
}
#endif
/* Display the menu. */
@@ -2367,6 +2373,22 @@ x_menu_show (struct frame *f, int x, int y, int
menuflags,
/* Help display under X won't work because XMenuActivate contains
a loop that doesn't give Emacs a chance to process it. */
menu_help_frame = f;
+
+#ifdef HAVE_XINPUT2
+ struct x_display_info *dpyinfo = FRAME_DISPLAY_INFO (f);
+ /* Clear the XI2 grab so a core grab can be set. */
+
+ if (dpyinfo->num_devices)
+ {
+ for (int i = 0; i < dpyinfo->num_devices; ++i)
+ {
+ if (dpyinfo->devices[i].grab)
+ XIUngrabDevice (dpyinfo->display, dpyinfo->devices[i].device_id,
+ CurrentTime);
+ }
+ }
+#endif
+
status = XMenuActivate (FRAME_X_DISPLAY (f), menu, &pane, &selidx,
x, y, ButtonReleaseMask, &datap,
menu_help_callback);
diff --git a/src/xsettings.h b/src/xsettings.h
index 266526df10..ccaa36489d 100644
--- a/src/xsettings.h
+++ b/src/xsettings.h
@@ -21,15 +21,14 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#define XSETTINGS_H
#ifndef HAVE_PGTK
+#include "dispextern.h"
#include <X11/Xlib.h>
#endif
struct x_display_info;
struct pgtk_display_info;
-#ifndef HAVE_PGTK
-typedef struct x_display_info Display_Info;
-#else
+#ifdef HAVE_PGTK
typedef struct pgtk_display_info Display_Info;
#endif
diff --git a/src/xterm.c b/src/xterm.c
index 8202e8fb00..3f277c5b87 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -20,6 +20,72 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
/* New display code by Gerd Moellmann <gerd@gnu.org>. */
/* Xt features made by Fred Pierresteguy. */
+/* X window system support for GNU Emacs
+
+ This file is part of the X window system support for GNU Emacs. It
+ contains subroutines comprising the redisplay interface, setting up
+ scroll bars and widgets, and handling input.
+
+ INPUT
+
+ Emacs handles input by running pselect in a loop, which returns
+ whenever there is input available on the connection to the X
+ server. On some systems, Emacs also arranges for any new input on
+ that connection to send an asynchronous signal. Whenever pselect
+ returns, or such a signal is received and input is not blocked,
+ XTread_socket is called and translates X11 events read by Xlib into
+ struct input_events, which are then stored in the keyboard buffer,
+ to be processed and acted upon at some later time. The function
+ handle_one_xevent is responsible for handling core events after
+ they are filtered, and filtering X Input Extension events. It also
+ performs actions on some special events, such as updating the
+ dimensions of a frame after a ConfigureNotify is sent by the X
+ server to inform us that it changed.
+
+ Before such events are translated, an Emacs build with
+ internationalization enabled (the default since X11R6) will filter
+ events through an X Input Method (XIM) or GTK, which might decide
+ to intercept the event and send a different one in its place, for
+ reasons such as enabling the user to insert international
+ characters that aren't on his keyboard by typing a sequence of
+ characters which are. See the function x_filter_event and its
+ callers for more details.
+
+ Events that cause Emacs to quit are treated specially by the code
+ that stores them in the keyboard buffer and generally cause an
+ immediate interrupt. Such an interrupt can lead to a longjmp from
+ the code that stored the keyboard event, which isn't safe inside
+ XTread_socket. To avoid this problem, XTread_socket is provided a
+ special event buffer named hold_quit. When a quit event is
+ encountered, it is stored inside this special buffer, which will
+ cause the keyboard code that called XTread_socket to store it at a
+ later time when it is safe to do so.
+
+ handle_one_xevent will generally have to determine which frame an
+ event should be attributed to. This is not easy, because events
+ can come from multiple X windows, and a frame can also have
+ multiple windows. handle_one_xevent usually calls the function
+ x_any_window_to_frame, which searches for a frame by toplevel
+ window and widget windows. There are also some other functions for
+ searching by specific types of window, such as
+ x_top_window_to_frame (which only searches for frames by toplevel
+ window), and x_menubar_window_to_frame (which will only search
+ through frame menu bars).
+
+ INPUT FOCUS
+
+ Under X, the window where keyboard input is sent is not always
+ explictly defined. When there is a focus window, it receives what
+ is referred to as "explicit focus", but when there is none, it
+ receives "implicit focus" whenever the pointer enters it, and loses
+ that focus when the pointer leaves. When the toplevel window of a
+ frame receives an explicit focus event (FocusIn or FocusOut), we
+ treat that frame as having the current input focus, but when there
+ is no focus window, we treat each frame as having the input focus
+ whenever the pointer enters it, and undo that treatment when the
+ pointer leaves it. See the callers of x_detect_focus_change for
+ more details. */
+
#include <config.h>
#include <stdlib.h>
#include <math.h>
@@ -33,6 +99,12 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#include "xterm.h"
#include <X11/cursorfont.h>
+#ifdef USE_XCB
+#include <xcb/xproto.h>
+#include <xcb/xcb.h>
+#include <xcb/xcb_aux.h>
+#endif
+
/* If we have Xfixes extension, use it for pointer blanking. */
#ifdef HAVE_XFIXES
#include <X11/extensions/Xfixes.h>
@@ -101,6 +173,10 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#include "../lwlib/xlwmenu.h"
#endif
+#ifdef HAVE_XWIDGETS
+#include <cairo-xlib.h>
+#endif
+
#ifdef USE_X_TOOLKIT
/* Include toolkit specific headers for the scroll bar widget. */
@@ -140,6 +216,10 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#include <X11/XKBlib.h>
#endif
+#if defined USE_XCB && defined USE_CAIRO_XCB
+#define USE_CAIRO_XCB_SURFACE
+#endif
+
/* Default to using XIM if available. */
#ifdef USE_XIM
bool use_xim = true;
@@ -147,6 +227,17 @@ bool use_xim = true;
bool use_xim = false; /* configure --without-xim */
#endif
+#ifdef USE_GTK
+/* GTK can't tolerate a call to `handle_interrupt' inside an event
+ signal handler, but we have to store input events inside the
+ handler for native input to work.
+
+ This acts as a `hold_quit', and it is stored in the keyboard buffer
+ (thereby causing the call to `handle_interrupt') after the GTK
+ signal handler exits and control returns to XTread_socket. */
+struct input_event xg_pending_quit_event = { .kind = NO_EVENT };
+#endif
+
/* Non-zero means that a HELP_EVENT has been generated since Emacs
start. */
@@ -183,8 +274,10 @@ static int x_noop_count;
static Lisp_Object xg_default_icon_file;
#endif
+#ifdef HAVE_X_I18N
/* Some functions take this as char *, not const char *. */
static char emacs_class[] = EMACS_CLASS;
+#endif
enum xembed_info
{
@@ -265,6 +358,38 @@ x_flush (struct frame *f)
unblock_input ();
}
+static void
+x_drop_xrender_surfaces (struct frame *f)
+{
+ font_drop_xrender_surfaces (f);
+
+#ifdef HAVE_XRENDER
+ if (f && FRAME_X_DOUBLE_BUFFERED_P (f)
+ && FRAME_X_PICTURE (f) != None)
+ {
+ XRenderFreePicture (FRAME_X_DISPLAY (f),
+ FRAME_X_PICTURE (f));
+ FRAME_X_PICTURE (f) = None;
+ }
+#endif
+}
+
+#ifdef HAVE_XRENDER
+MAYBE_UNUSED static void
+x_xr_ensure_picture (struct frame *f)
+{
+ if (FRAME_X_PICTURE (f) == None && FRAME_X_PICTURE_FORMAT (f))
+ {
+ XRenderPictureAttributes attrs;
+ attrs.clip_mask = None;
+
+ FRAME_X_PICTURE (f) = XRenderCreatePicture (FRAME_X_DISPLAY (f),
+ FRAME_X_RAW_DRAWABLE (f),
+ FRAME_X_PICTURE_FORMAT (f),
+ CPClipMask, &attrs);
+ }
+}
+#endif
/* Remove calls to XFlush by defining XFlush to an empty replacement.
Calls to XFlush should be unnecessary because the X output buffer
@@ -308,14 +433,7 @@ record_event (char *locus, int type)
#endif
-#ifdef USE_CAIRO
-
-#define FRAME_CR_CONTEXT(f) ((f)->output_data.x->cr_context)
-#define FRAME_CR_SURFACE_DESIRED_WIDTH(f) \
- ((f)->output_data.x->cr_surface_desired_width)
-#define FRAME_CR_SURFACE_DESIRED_HEIGHT(f) \
- ((f)->output_data.x->cr_surface_desired_height)
-
+#if defined USE_CAIRO || defined HAVE_XRENDER
static struct x_gc_ext_data *
x_gc_get_ext_data (struct frame *f, GC gc, int create_if_not_found_p)
{
@@ -348,6 +466,15 @@ x_extension_initialize (struct x_display_info *dpyinfo)
dpyinfo->ext_codes = ext_codes;
}
+#endif
+
+#ifdef USE_CAIRO
+
+#define FRAME_CR_CONTEXT(f) ((f)->output_data.x->cr_context)
+#define FRAME_CR_SURFACE_DESIRED_WIDTH(f) \
+ ((f)->output_data.x->cr_surface_desired_width)
+#define FRAME_CR_SURFACE_DESIRED_HEIGHT(f) \
+ ((f)->output_data.x->cr_surface_desired_height)
#endif /* HAVE_CAIRO */
@@ -365,8 +492,6 @@ x_free_xi_devices (struct x_display_info *dpyinfo)
{
for (int i = 0; i < dpyinfo->num_devices; ++i)
{
- XIUngrabDevice (dpyinfo->display, dpyinfo->devices[i].device_id,
- CurrentTime);
xfree (dpyinfo->devices[i].valuators);
tem = dpyinfo->devices[i].touchpoints;
@@ -700,11 +825,19 @@ x_begin_cr_clip (struct frame *f, GC gc)
{
int width = FRAME_CR_SURFACE_DESIRED_WIDTH (f);
int height = FRAME_CR_SURFACE_DESIRED_HEIGHT (f);
- cairo_surface_t *surface
- = cairo_xlib_surface_create (FRAME_X_DISPLAY (f),
- FRAME_X_RAW_DRAWABLE (f),
- FRAME_X_VISUAL (f),
- width, height);
+ cairo_surface_t *surface;
+#ifdef USE_CAIRO_XCB_SURFACE
+ if (FRAME_DISPLAY_INFO (f)->xcb_visual)
+ surface = cairo_xcb_surface_create (FRAME_DISPLAY_INFO
(f)->xcb_connection,
+ (xcb_drawable_t)
FRAME_X_RAW_DRAWABLE (f),
+ FRAME_DISPLAY_INFO (f)->xcb_visual,
+ width, height);
+ else
+#endif
+ surface = cairo_xlib_surface_create (FRAME_X_DISPLAY (f),
+ FRAME_X_RAW_DRAWABLE (f),
+ FRAME_X_VISUAL (f),
+ width, height);
cr = FRAME_CR_CONTEXT (f) = cairo_create (surface);
cairo_surface_destroy (surface);
@@ -773,6 +906,9 @@ x_try_cr_xlib_drawable (struct frame *f, GC gc)
switch (cairo_surface_get_type (surface))
{
case CAIRO_SURFACE_TYPE_XLIB:
+#ifdef USE_CAIRO_XCB_SURFACE
+ case CAIRO_SURFACE_TYPE_XCB:
+#endif
cairo_surface_flush (surface);
return true;
@@ -1082,11 +1218,37 @@ x_cr_export_frames (Lisp_Object frames,
cairo_surface_type_t surface_type)
#endif /* USE_CAIRO */
+#if defined HAVE_XRENDER && !defined USE_CAIRO
+MAYBE_UNUSED static void
+x_xr_apply_ext_clip (struct frame *f, GC gc)
+{
+ eassert (FRAME_X_PICTURE (f) != None);
+
+ struct x_gc_ext_data *data = x_gc_get_ext_data (f, gc, 1);
+
+ if (data->n_clip_rects)
+ XRenderSetPictureClipRectangles (FRAME_X_DISPLAY (f),
+ FRAME_X_PICTURE (f),
+ 0, 0, data->clip_rects,
+ data->n_clip_rects);
+}
+
+MAYBE_UNUSED static void
+x_xr_reset_ext_clip (struct frame *f)
+{
+ XRenderPictureAttributes attrs = { .clip_mask = None };
+
+ XRenderChangePicture (FRAME_X_DISPLAY (f),
+ FRAME_X_PICTURE (f),
+ CPClipMask, &attrs);
+}
+#endif
+
static void
x_set_clip_rectangles (struct frame *f, GC gc, XRectangle *rectangles, int n)
{
XSetClipRectangles (FRAME_X_DISPLAY (f), gc, 0, 0, rectangles, n, Unsorted);
-#ifdef USE_CAIRO
+#if defined USE_CAIRO || defined HAVE_XRENDER
eassert (n >= 0 && n <= MAX_CLIP_RECTS);
{
@@ -1102,7 +1264,7 @@ static void
x_reset_clip_rectangles (struct frame *f, GC gc)
{
XSetClipMask (FRAME_X_DISPLAY (f), gc, None);
-#ifdef USE_CAIRO
+#if defined USE_CAIRO || defined HAVE_XRENDER
{
struct x_gc_ext_data *gc_ext = x_gc_get_ext_data (f, gc, 0);
@@ -1185,11 +1347,15 @@ x_clear_window (struct frame *f)
cairo_paint (cr);
x_end_cr_clip (f);
#else
+#ifndef USE_GTK
if (FRAME_X_DOUBLE_BUFFERED_P (f))
+#endif
x_clear_area (f, 0, 0, FRAME_PIXEL_WIDTH (f), FRAME_PIXEL_HEIGHT (f));
+#ifndef USE_GTK
else
XClearWindow (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f));
#endif
+#endif
}
#ifdef USE_CAIRO
@@ -2691,8 +2857,9 @@ x_query_frame_background_color (struct frame *f, XColor
*bgcolor)
and names we've actually looked up; list-colors-display is probably
the most color-intensive case we're likely to hit. */
-Status x_parse_color (struct frame *f, const char *color_name,
- XColor *color)
+Status
+x_parse_color (struct frame *f, const char *color_name,
+ XColor *color)
{
/* Don't pass #RGB strings directly to XParseColor, because that
follows the X convention of zero-extending each channel
@@ -2721,6 +2888,10 @@ Status x_parse_color (struct frame *f, const char
*color_name,
}
}
+ /* Some X servers send BadValue on empty color names. */
+ if (!strlen (color_name))
+ return 0;
+
if (XParseColor (dpy, cmap, color_name, color) == 0)
/* No caching of negative results, currently. */
return 0;
@@ -3333,14 +3504,15 @@ x_composite_image (struct glyph_string *s, Pixmap dest,
{
Display *display = FRAME_X_DISPLAY (s->f);
#ifdef HAVE_XRENDER
- if (s->img->picture)
+ if (s->img->picture && FRAME_X_PICTURE_FORMAT (s->f))
{
Picture destination;
XRenderPictFormat *default_format;
XRenderPictureAttributes attr;
+ /* Pacify GCC. */
+ memset (&attr, 0, sizeof attr);
- default_format = XRenderFindVisualFormat (display,
- DefaultVisual (display, 0));
+ default_format = FRAME_X_PICTURE_FORMAT (s->f);
destination = XRenderCreatePicture (display, dest,
default_format, 0, &attr);
@@ -3932,7 +4104,7 @@ x_get_scale_factor(Display *disp, int *scale_x, int
*scale_y)
*/
static void
-x_draw_underwave (struct glyph_string *s)
+x_draw_underwave (struct glyph_string *s, int decoration_width)
{
Display *display = FRAME_X_DISPLAY (s->f);
@@ -3945,7 +4117,7 @@ x_draw_underwave (struct glyph_string *s)
#ifdef USE_CAIRO
x_draw_horizontal_wave (s->f, s->gc, s->x, s->ybase - wave_height + 3,
- s->width, wave_height, wave_length);
+ decoration_width, wave_height, wave_length);
#else /* not USE_CAIRO */
int dx, dy, x0, y0, width, x1, y1, x2, y2, xmax, thickness = scale_y;;
bool odd;
@@ -3955,7 +4127,7 @@ x_draw_underwave (struct glyph_string *s)
dy = wave_height - 1;
x0 = s->x;
y0 = s->ybase + wave_height / 2 - scale_y;
- width = s->width;
+ width = decoration_width;
xmax = x0 + width;
/* Find and set clipping rectangle */
@@ -4105,6 +4277,21 @@ x_draw_glyph_string (struct glyph_string *s)
if (!s->for_overlaps)
{
+ int area_x, area_y, area_width, area_height;
+ int area_max_x, decoration_width;
+
+ /* Prevent the underline from overwriting surrounding areas
+ and the fringe. */
+ window_box (s->w, s->area, &area_x, &area_y,
+ &area_width, &area_height);
+ area_max_x = area_x + area_width - 1;
+
+ decoration_width = s->width;
+ if (!s->row->mode_line_p
+ && !s->row->tab_line_p
+ && area_max_x < (s->x + decoration_width - 1))
+ decoration_width -= (s->x + decoration_width - 1) - area_max_x;
+
/* Draw relief if not yet drawn. */
if (!relief_drawn_p && s->face->box != FACE_NO_BOX)
x_draw_glyph_string_box (s);
@@ -4115,14 +4302,14 @@ x_draw_glyph_string (struct glyph_string *s)
if (s->face->underline == FACE_UNDER_WAVE)
{
if (s->face->underline_defaulted_p)
- x_draw_underwave (s);
+ x_draw_underwave (s, decoration_width);
else
{
Display *display = FRAME_X_DISPLAY (s->f);
XGCValues xgcv;
XGetGCValues (display, s->gc, GCForeground, &xgcv);
XSetForeground (display, s->gc, s->face->underline_color);
- x_draw_underwave (s);
+ x_draw_underwave (s, decoration_width);
XSetForeground (display, s->gc, xgcv.foreground);
}
}
@@ -4131,8 +4318,12 @@ x_draw_glyph_string (struct glyph_string *s)
unsigned long thickness, position;
int y;
- if (s->prev &&
- s->prev->face->underline == FACE_UNDER_LINE)
+ if (s->prev
+ && s->prev->face->underline == FACE_UNDER_LINE
+ && (s->prev->face->underline_at_descent_line_p
+ == s->face->underline_at_descent_line_p)
+ && (s->prev->face->underline_pixels_above_descent_line
+ == s->face->underline_pixels_above_descent_line))
{
/* We use the same underline style as the previous one. */
thickness = s->prev->underline_thickness;
@@ -4155,7 +4346,8 @@ x_draw_glyph_string (struct glyph_string *s)
val = (WINDOW_BUFFER_LOCAL_VALUE
(Qx_underline_at_descent_line, s->w));
underline_at_descent_line
- = !(NILP (val) || EQ (val, Qunbound));
+ = (!(NILP (val) || EQ (val, Qunbound))
+ || s->face->underline_at_descent_line_p);
val = (WINDOW_BUFFER_LOCAL_VALUE
(Qx_use_underline_position_properties, s->w));
@@ -4168,7 +4360,9 @@ x_draw_glyph_string (struct glyph_string *s)
else
thickness = 1;
if (underline_at_descent_line)
- position = (s->height - thickness) - (s->ybase - s->y);
+ position = ((s->height - thickness)
+ - (s->ybase - s->y)
+ - s->face->underline_pixels_above_descent_line);
else
{
/* Get the underline position. This is the
@@ -4188,12 +4382,16 @@ x_draw_glyph_string (struct glyph_string *s)
else
position = minimum_offset;
}
- position = max (position, minimum_offset);
+
+ /* Ignore minimum_offset if the amount of pixels was
+ explictly specified. */
+ if (!s->face->underline_pixels_above_descent_line)
+ position = max (position, minimum_offset);
}
/* Check the sanity of thickness and position. We should
avoid drawing underline out of the current line area. */
- if (s->y + s->height <= s->ybase + position)
- position = (s->height - 1) - (s->ybase - s->y);
+ if (s->y + s->height <= s->ybase + position)
+ position = (s->height - 1) - (s->ybase - s->y);
if (s->y + s->height < s->ybase + position + thickness)
thickness = (s->y + s->height) - (s->ybase + position);
s->underline_thickness = thickness;
@@ -4201,7 +4399,7 @@ x_draw_glyph_string (struct glyph_string *s)
y = s->ybase + position;
if (s->face->underline_defaulted_p)
x_fill_rectangle (s->f, s->gc,
- s->x, y, s->width, thickness);
+ s->x, y, decoration_width, thickness);
else
{
Display *display = FRAME_X_DISPLAY (s->f);
@@ -4209,7 +4407,7 @@ x_draw_glyph_string (struct glyph_string *s)
XGetGCValues (display, s->gc, GCForeground, &xgcv);
XSetForeground (display, s->gc, s->face->underline_color);
x_fill_rectangle (s->f, s->gc,
- s->x, y, s->width, thickness);
+ s->x, y, decoration_width, thickness);
XSetForeground (display, s->gc, xgcv.foreground);
}
}
@@ -4221,7 +4419,7 @@ x_draw_glyph_string (struct glyph_string *s)
if (s->face->overline_color_defaulted_p)
x_fill_rectangle (s->f, s->gc, s->x, s->y + dy,
- s->width, h);
+ decoration_width, h);
else
{
Display *display = FRAME_X_DISPLAY (s->f);
@@ -4229,7 +4427,7 @@ x_draw_glyph_string (struct glyph_string *s)
XGetGCValues (display, s->gc, GCForeground, &xgcv);
XSetForeground (display, s->gc, s->face->overline_color);
x_fill_rectangle (s->f, s->gc, s->x, s->y + dy,
- s->width, h);
+ decoration_width, h);
XSetForeground (display, s->gc, xgcv.foreground);
}
}
@@ -4259,7 +4457,7 @@ x_draw_glyph_string (struct glyph_string *s)
XGetGCValues (display, s->gc, GCForeground, &xgcv);
XSetForeground (display, s->gc, s->face->strike_through_color);
x_fill_rectangle (s->f, s->gc, s->x, glyph_y + dy,
- s->width, h);
+ decoration_width, h);
XSetForeground (display, s->gc, xgcv.foreground);
}
}
@@ -4370,15 +4568,40 @@ x_clear_area (struct frame *f, int x, int y, int width,
int height)
cairo_fill (cr);
x_end_cr_clip (f);
#else
+#ifndef USE_GTK
if (FRAME_X_DOUBLE_BUFFERED_P (f))
- XFillRectangle (FRAME_X_DISPLAY (f),
- FRAME_X_DRAWABLE (f),
- f->output_data.x->reverse_gc,
- x, y, width, height);
+#endif
+ {
+#if defined HAVE_XRENDER && \
+ (RENDER_MAJOR > 0 || (RENDER_MINOR >= 2))
+ x_xr_ensure_picture (f);
+ if (FRAME_X_PICTURE (f) != None
+ && FRAME_CHECK_XR_VERSION (f, 0, 2))
+ {
+ XRenderColor xc;
+ GC gc = f->output_data.x->reverse_gc;
+
+ x_xr_apply_ext_clip (f, gc);
+ x_xrender_color_from_gc_foreground (f, gc, &xc);
+ XRenderFillRectangle (FRAME_X_DISPLAY (f),
+ PictOpSrc, FRAME_X_PICTURE (f),
+ &xc, x, y, width, height);
+ x_xr_reset_ext_clip (f);
+ x_mark_frame_dirty (f);
+ }
+ else
+#endif
+ XFillRectangle (FRAME_X_DISPLAY (f),
+ FRAME_X_DRAWABLE (f),
+ f->output_data.x->reverse_gc,
+ x, y, width, height);
+ }
+#ifndef USE_GTK
else
x_clear_area1 (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
x, y, width, height, False);
#endif
+#endif
}
@@ -4425,6 +4648,7 @@ x_show_hourglass (struct frame *f)
if (!x->hourglass_window)
{
+#ifndef USE_XCB
unsigned long mask = CWCursor;
XSetWindowAttributes attrs;
#ifdef USE_GTK
@@ -4437,12 +4661,41 @@ x_show_hourglass (struct frame *f)
x->hourglass_window = XCreateWindow
(dpy, parent, 0, 0, 32000, 32000, 0, 0,
InputOnly, CopyFromParent, mask, &attrs);
+#else
+ uint32_t cursor = (uint32_t) x->hourglass_cursor;
+#ifdef USE_GTK
+ xcb_window_t parent = (xcb_window_t) FRAME_X_WINDOW (f);
+#else
+ xcb_window_t parent = (xcb_window_t) FRAME_OUTER_WINDOW (f);
+#endif
+ x->hourglass_window
+ = (Window) xcb_generate_id (FRAME_DISPLAY_INFO
(f)->xcb_connection);
+
+ xcb_create_window (FRAME_DISPLAY_INFO (f)->xcb_connection,
+ XCB_COPY_FROM_PARENT,
+ (xcb_window_t) x->hourglass_window,
+ parent, 0, 0, FRAME_PIXEL_WIDTH (f),
+ FRAME_PIXEL_HEIGHT (f), 0,
+ XCB_WINDOW_CLASS_INPUT_OUTPUT,
+ XCB_COPY_FROM_PARENT, XCB_CW_CURSOR,
+ &cursor);
+#endif
}
+#ifndef USE_XCB
XMapRaised (dpy, x->hourglass_window);
- XFlush (dpy);
/* Ensure that the spinning hourglass is shown. */
flush_frame (f);
+#else
+ uint32_t value = XCB_STACK_MODE_ABOVE;
+
+ xcb_configure_window (FRAME_DISPLAY_INFO (f)->xcb_connection,
+ (xcb_window_t) x->hourglass_window,
+ XCB_CONFIG_WINDOW_STACK_MODE, &value);
+ xcb_map_window (FRAME_DISPLAY_INFO (f)->xcb_connection,
+ (xcb_window_t) x->hourglass_window);
+ xcb_flush (FRAME_DISPLAY_INFO (f)->xcb_connection);
+#endif
}
}
}
@@ -4457,10 +4710,16 @@ x_hide_hourglass (struct frame *f)
/* Watch out for newly created frames. */
if (x->hourglass_window)
{
+#ifndef USE_XCB
XUnmapWindow (FRAME_X_DISPLAY (f), x->hourglass_window);
/* Sync here because XTread_socket looks at the
hourglass_p flag that is reset to zero below. */
XSync (FRAME_X_DISPLAY (f), False);
+#else
+ xcb_unmap_window (FRAME_DISPLAY_INFO (f)->xcb_connection,
+ (xcb_window_t) x->hourglass_window);
+ xcb_aux_sync (FRAME_DISPLAY_INFO (f)->xcb_connection);
+#endif
x->hourglass_p = false;
}
}
@@ -4473,38 +4732,6 @@ XTflash (struct frame *f)
block_input ();
{
-#ifdef USE_GTK
- /* Use Gdk routines to draw. This way, we won't draw over scroll bars
- when the scroll bars and the edit widget share the same X window. */
- GdkWindow *window = gtk_widget_get_window (FRAME_GTK_WIDGET (f));
-#ifdef HAVE_GTK3
-#if GTK_CHECK_VERSION (3, 22, 0)
- cairo_region_t *region = gdk_window_get_visible_region (window);
- GdkDrawingContext *context = gdk_window_begin_draw_frame (window, region);
- cairo_t *cr = gdk_drawing_context_get_cairo_context (context);
-#else
- cairo_t *cr = gdk_cairo_create (window);
-#endif
- cairo_set_source_rgb (cr, 1, 1, 1);
- cairo_set_operator (cr, CAIRO_OPERATOR_DIFFERENCE);
-#define XFillRectangle(d, win, gc, x, y, w, h) \
- do { \
- cairo_rectangle (cr, x, y, w, h); \
- cairo_fill (cr); \
- } \
- while (false)
-#else /* ! HAVE_GTK3 */
- GdkGCValues vals;
- GdkGC *gc;
- vals.foreground.pixel = (FRAME_FOREGROUND_PIXEL (f)
- ^ FRAME_BACKGROUND_PIXEL (f));
- vals.function = GDK_XOR;
- gc = gdk_gc_new_with_values (window,
- &vals, GDK_GC_FUNCTION | GDK_GC_FOREGROUND);
-#define XFillRectangle(d, win, gc, x, y, w, h) \
- gdk_draw_rectangle (window, gc, true, x, y, w, h)
-#endif /* ! HAVE_GTK3 */
-#else /* ! USE_GTK */
GC gc;
/* Create a GC that will use the GXxor function to flip foreground
@@ -4519,7 +4746,6 @@ XTflash (struct frame *f)
gc = XCreateGC (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
GCFunction | GCForeground, &values);
}
-#endif
{
/* Get the height not including a menu bar widget. */
int height = FRAME_PIXEL_HEIGHT (f);
@@ -4595,22 +4821,7 @@ XTflash (struct frame *f)
XFillRectangle (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), gc,
flash_left, FRAME_INTERNAL_BORDER_WIDTH (f),
width, height - 2 * FRAME_INTERNAL_BORDER_WIDTH (f));
-
-#ifdef USE_GTK
-#ifdef HAVE_GTK3
-#if GTK_CHECK_VERSION (3, 22, 0)
- gdk_window_end_draw_frame (window, context);
- cairo_region_destroy (region);
-#else
- cairo_destroy (cr);
-#endif
-#else
- g_object_unref (G_OBJECT (gc));
-#endif
-#undef XFillRectangle
-#else
XFreeGC (FRAME_X_DISPLAY (f), gc);
-#endif
x_flush (f);
}
}
@@ -4818,6 +5029,18 @@ x_scroll_run (struct window *w, struct run *run)
x, to_y);
cairo_surface_mark_dirty_rectangle (surface, x, to_y, width, height);
}
+#ifdef USE_CAIRO_XCB_SURFACE
+ else if (cairo_surface_get_type (surface) == CAIRO_SURFACE_TYPE_XCB)
+ {
+ cairo_surface_flush (surface);
+ xcb_copy_area (FRAME_DISPLAY_INFO (f)->xcb_connection,
+ (xcb_drawable_t) FRAME_X_DRAWABLE (f),
+ (xcb_drawable_t) FRAME_X_DRAWABLE (f),
+ (xcb_gcontext_t) XGContextFromGC
(f->output_data.x->normal_gc),
+ x, from_y, x, to_y, width, height);
+ cairo_surface_mark_dirty_rectangle (surface, x, to_y, width, height);
+ }
+#endif
else
{
cairo_surface_t *s
@@ -4931,7 +5154,8 @@ x_new_focus_frame (struct x_display_info *dpyinfo, struct
frame *frame)
a FOCUS_IN_EVENT into *BUFP. */
static void
-x_focus_changed (int type, int state, struct x_display_info *dpyinfo, struct
frame *frame, struct input_event *bufp)
+x_focus_changed (int type, int state, struct x_display_info *dpyinfo, struct
frame *frame,
+ struct input_event *bufp)
{
if (type == FocusIn)
{
@@ -4947,7 +5171,15 @@ x_focus_changed (int type, int state, struct
x_display_info *dpyinfo, struct fra
#ifdef HAVE_X_I18N
if (FRAME_XIC (frame))
- XSetICFocus (FRAME_XIC (frame));
+ XSetICFocus (FRAME_XIC (frame));
+#ifdef USE_GTK
+ GtkWidget *widget;
+
+ gtk_im_context_focus_in (FRAME_X_OUTPUT (frame)->im_context);
+ widget = FRAME_GTK_OUTER_WIDGET (frame);
+ gtk_im_context_set_client_window (FRAME_X_OUTPUT (frame)->im_context,
+ gtk_widget_get_window (widget));
+#endif
#endif
}
else if (type == FocusOut)
@@ -4966,6 +5198,10 @@ x_focus_changed (int type, int state, struct
x_display_info *dpyinfo, struct fra
#ifdef HAVE_X_I18N
if (FRAME_XIC (frame))
XUnsetICFocus (FRAME_XIC (frame));
+#ifdef USE_GTK
+ gtk_im_context_focus_out (FRAME_X_OUTPUT (frame)->im_context);
+ gtk_im_context_set_client_window (FRAME_X_OUTPUT (frame)->im_context,
NULL);
+#endif
#endif
if (frame->pointer_invisible)
XTtoggle_invisible_pointer (frame, false);
@@ -5198,27 +5434,24 @@ x_detect_focus_change (struct x_display_info *dpyinfo,
struct frame *frame,
#ifdef HAVE_XINPUT2
case GenericEvent:
{
- XIEvent *xi_event = (XIEvent *) event;
+ XIEvent *xi_event = (XIEvent *) event->xcookie.data;
struct frame *focus_frame = dpyinfo->x_focus_event_frame;
int focus_state
= focus_frame ? focus_frame->output_data.x->focus_state : 0;
-#ifdef USE_GTK
if (xi_event->evtype == XI_FocusIn
|| xi_event->evtype == XI_FocusOut)
x_focus_changed ((xi_event->evtype == XI_FocusIn
? FocusIn : FocusOut),
FOCUS_EXPLICIT,
dpyinfo, frame, bufp);
- else
-#endif
- if ((xi_event->evtype == XI_Enter
- || xi_event->evtype == XI_Leave)
- && (((XIEnterEvent *) xi_event)->detail
- != XINotifyInferior)
- && ((XIEnterEvent *) xi_event)->focus
- && !(focus_state & FOCUS_EXPLICIT))
+ else if ((xi_event->evtype == XI_Enter
+ || xi_event->evtype == XI_Leave)
+ && (((XIEnterEvent *) xi_event)->detail
+ != XINotifyInferior)
+ && ((XIEnterEvent *) xi_event)->focus
+ && !(focus_state & FOCUS_EXPLICIT))
x_focus_changed ((xi_event->evtype == XI_Enter
? FocusIn : FocusOut),
FOCUS_IMPLICIT,
@@ -5323,11 +5556,6 @@ x_find_modifier_meanings (struct x_display_info *dpyinfo)
int syms_per_code;
XModifierKeymap *mods;
#ifdef HAVE_XKB
- Atom meta;
- Atom super;
- Atom hyper;
- Atom shiftlock;
- Atom alt;
int i;
int found_meta_p = false;
#endif
@@ -5338,33 +5566,25 @@ x_find_modifier_meanings (struct x_display_info
*dpyinfo)
dpyinfo->super_mod_mask = 0;
dpyinfo->hyper_mod_mask = 0;
- XDisplayKeycodes (dpyinfo->display, &min_code, &max_code);
-
#ifdef HAVE_XKB
if (dpyinfo->xkb_desc)
{
- meta = XInternAtom (dpyinfo->display, "Meta", False);
- super = XInternAtom (dpyinfo->display, "Super", False);
- hyper = XInternAtom (dpyinfo->display, "Hyper", False);
- shiftlock = XInternAtom (dpyinfo->display, "ShiftLock", False);
- alt = XInternAtom (dpyinfo->display, "Alt", False);
-
for (i = 0; i < XkbNumVirtualMods; i++)
{
uint vmodmask = dpyinfo->xkb_desc->server->vmods[i];
- if (dpyinfo->xkb_desc->names->vmods[i] == meta)
+ if (dpyinfo->xkb_desc->names->vmods[i] == dpyinfo->Xatom_Meta)
{
dpyinfo->meta_mod_mask |= vmodmask;
found_meta_p = vmodmask;
}
- else if (dpyinfo->xkb_desc->names->vmods[i] == alt)
+ else if (dpyinfo->xkb_desc->names->vmods[i] == dpyinfo->Xatom_Alt)
dpyinfo->alt_mod_mask |= vmodmask;
- else if (dpyinfo->xkb_desc->names->vmods[i] == super)
+ else if (dpyinfo->xkb_desc->names->vmods[i] == dpyinfo->Xatom_Super)
dpyinfo->super_mod_mask |= vmodmask;
- else if (dpyinfo->xkb_desc->names->vmods[i] == hyper)
+ else if (dpyinfo->xkb_desc->names->vmods[i] == dpyinfo->Xatom_Hyper)
dpyinfo->hyper_mod_mask |= vmodmask;
- else if (dpyinfo->xkb_desc->names->vmods[i] == shiftlock)
+ else if (dpyinfo->xkb_desc->names->vmods[i] ==
dpyinfo->Xatom_ShiftLock)
dpyinfo->shift_lock_mask |= vmodmask;
}
@@ -5384,6 +5604,8 @@ x_find_modifier_meanings (struct x_display_info *dpyinfo)
}
#endif
+ XDisplayKeycodes (dpyinfo->display, &min_code, &max_code);
+
syms = XGetKeyboardMapping (dpyinfo->display,
min_code, max_code - min_code + 1,
&syms_per_code);
@@ -5472,6 +5694,12 @@ x_find_modifier_meanings (struct x_display_info *dpyinfo)
dpyinfo->alt_mod_mask &= ~dpyinfo->meta_mod_mask;
}
+ /* If some keys are both super and hyper, make them just super.
+ Many X servers are misconfigured so that super and hyper are both
+ Mod4, but most users have no hyper key. */
+ if (dpyinfo->hyper_mod_mask & dpyinfo->super_mod_mask)
+ dpyinfo->hyper_mod_mask &= ~dpyinfo->super_mod_mask;
+
XFree (syms);
XFreeModifiermap (mods);
}
@@ -5876,7 +6104,7 @@ XTmouse_position (struct frame **fp, int insist,
Lisp_Object *bar_window,
if (!f1 && insist > 0)
f1 = SELECTED_FRAME ();
- if (f1)
+ if (f1 && FRAME_X_P (f1))
{
/* Ok, we found a frame. Store all the values.
last_mouse_glyph is a rectangle used to reduce the
@@ -5886,7 +6114,6 @@ XTmouse_position (struct frame **fp, int insist,
Lisp_Object *bar_window,
on it, i.e. into the same rectangles that matrices on
the frame are divided into. */
- /* FIXME: what if F1 is not an X frame? */
dpyinfo = FRAME_DISPLAY_INFO (f1);
remember_mouse_glyph (f1, win_x, win_y, &dpyinfo->last_mouse_glyph);
dpyinfo->last_mouse_glyph_frame = f1;
@@ -8229,10 +8456,60 @@ x_filter_event (struct x_display_info *dpyinfo, XEvent
*event)
XFilterEvent because that's the one for which the IC
was created. */
- struct frame *f1 = x_any_window_to_frame (dpyinfo,
- event->xclient.window);
+ struct frame *f1;
- return XFilterEvent (event, f1 ? FRAME_X_WINDOW (f1) : None);
+#if defined HAVE_XINPUT2 && defined USE_GTK
+ bool xinput_event = false;
+ if (dpyinfo->supports_xi2
+ && event->type == GenericEvent
+ && (event->xgeneric.extension
+ == dpyinfo->xi2_opcode)
+ && ((event->xgeneric.evtype
+ == XI_KeyPress)
+ || (event->xgeneric.evtype
+ == XI_KeyRelease)))
+ {
+ f1 = x_any_window_to_frame (dpyinfo,
+ ((XIDeviceEvent *)
+ event->xcookie.data)->event);
+ xinput_event = true;
+ }
+ else
+#endif
+ f1 = x_any_window_to_frame (dpyinfo,
+ event->xclient.window);
+
+#ifdef USE_GTK
+ if (!x_gtk_use_native_input
+ && !dpyinfo->prefer_native_input)
+ {
+#endif
+ return XFilterEvent (event, f1 ? FRAME_X_WINDOW (f1) : None);
+#ifdef USE_GTK
+ }
+ else if (f1 && (event->type == KeyPress
+ || event->type == KeyRelease
+#ifdef HAVE_XINPUT2
+ || xinput_event
+#endif
+ ))
+ {
+ bool result;
+
+ block_input ();
+ result = xg_filter_key (f1, event);
+ unblock_input ();
+
+ if (result && f1)
+ /* There will probably be a GDK event generated soon, so
+ exercise the wire to make pselect return. */
+ XNoOp (FRAME_X_DISPLAY (f1));
+
+ return result;
+ }
+
+ return 0;
+#endif
}
#endif
@@ -8267,6 +8544,40 @@ event_handler_gdk (GdkXEvent *gxev, GdkEvent *ev,
gpointer data)
unblock_input ();
return GDK_FILTER_REMOVE;
}
+#elif USE_GTK
+ if (dpyinfo && (dpyinfo->prefer_native_input
+ || x_gtk_use_native_input)
+ && (xev->type == KeyPress
+#ifdef HAVE_XINPUT2
+ /* GTK claims cookies for us, so we don't have to claim
+ them here. */
+ || (dpyinfo->supports_xi2
+ && xev->type == GenericEvent
+ && (xev->xgeneric.extension
+ == dpyinfo->xi2_opcode)
+ && ((xev->xgeneric.evtype
+ == XI_KeyPress)
+ || (xev->xgeneric.evtype
+ == XI_KeyRelease)))
+#endif
+ ))
+ {
+ struct frame *f;
+
+#ifdef HAVE_XINPUT2
+ if (xev->type == GenericEvent)
+ f = x_any_window_to_frame (dpyinfo,
+ ((XIDeviceEvent *)
xev->xcookie.data)->event);
+ else
+#endif
+ f = x_any_window_to_frame (dpyinfo, xev->xany.window);
+
+ if (f && xg_filter_key (f, xev))
+ {
+ unblock_input ();
+ return GDK_FILTER_REMOVE;
+ }
+ }
#endif
if (! dpyinfo)
@@ -8759,15 +9070,20 @@ handle_one_xevent (struct x_display_info *dpyinfo,
if (!FRAME_VISIBLE_P (f))
{
block_input ();
- /* The following two are commented out to avoid that a
- plain invisible frame gets reported as iconified. That
- problem occurred first for Emacs 26 and is described in
-
https://lists.gnu.org/archive/html/emacs-devel/2017-02/msg00133.html. */
-/** SET_FRAME_VISIBLE (f, 1); **/
-/** SET_FRAME_ICONIFIED (f, false); **/
+ /* By default, do not set the frame's visibility here, see
+
https://lists.gnu.org/archive/html/emacs-devel/2017-02/msg00133.html.
+ The default behavior can be overridden by setting
+ 'x-set-frame-visibility-more-laxly' (Bug#49955,
+ Bug#53298). */
+ if (EQ (x_set_frame_visibility_more_laxly, Qexpose)
+ || EQ (x_set_frame_visibility_more_laxly, Qt))
+ {
+ SET_FRAME_VISIBLE (f, 1);
+ SET_FRAME_ICONIFIED (f, false);
+ }
if (FRAME_X_DOUBLE_BUFFERED_P (f))
- font_drop_xrender_surfaces (f);
+ x_drop_xrender_surfaces (f);
f->output_data.x->has_been_visible = true;
SET_FRAME_GARBAGED (f);
unblock_input ();
@@ -9048,7 +9364,8 @@ handle_one_xevent (struct x_display_info *dpyinfo,
int modifiers;
Lisp_Object coding_system = Qlatin_1;
Lisp_Object c;
- /* Event will be modified. */
+ /* `xkey' will be modified, but it's not important to modify
+ `event' itself. */
XKeyEvent xkey = event->xkey;
#ifdef USE_GTK
@@ -9310,8 +9627,6 @@ handle_one_xevent (struct x_display_info *dpyinfo,
if (keysym == NoSymbol)
break;
}
- /* FIXME: check side effects and remove this. */
- ((XEvent *) event)->xkey = xkey;
}
done_keysym:
#ifdef HAVE_X_I18N
@@ -9336,7 +9651,9 @@ handle_one_xevent (struct x_display_info *dpyinfo,
case EnterNotify:
x_display_set_last_user_time (dpyinfo, event->xcrossing.time);
- x_detect_focus_change (dpyinfo, any, event, &inev.ie);
+
+ if (x_top_window_to_frame (dpyinfo, event->xcrossing.window))
+ x_detect_focus_change (dpyinfo, any, event, &inev.ie);
#ifdef HAVE_XWIDGETS
{
@@ -9381,26 +9698,33 @@ handle_one_xevent (struct x_display_info *dpyinfo,
goto OTHER;
case FocusIn:
-#ifndef USE_GTK
+#ifdef USE_GTK
/* Some WMs (e.g. Mutter in Gnome Shell), don't unmap
minimized/iconified windows; thus, for those WMs we won't get
- a MapNotify when unminimizing/deconifying. Check here if we
+ a MapNotify when unminimizing/deiconifying. Check here if we
are deiconizing a window (Bug42655).
- But don't do that on GTK since it may cause a plain invisible
- frame get reported as iconified, compare
+ But don't do that by default on GTK since it may cause a plain
+ invisible frame get reported as iconified, compare
https://lists.gnu.org/archive/html/emacs-devel/2017-02/msg00133.html.
- That is fixed above but bites us here again. */
- f = any;
- if (f && FRAME_ICONIFIED_P (f))
- {
- SET_FRAME_VISIBLE (f, 1);
- SET_FRAME_ICONIFIED (f, false);
- f->output_data.x->has_been_visible = true;
- inev.ie.kind = DEICONIFY_EVENT;
- XSETFRAME (inev.ie.frame_or_window, f);
- }
+ That is fixed above but bites us here again.
+
+ The option x_set_frame_visibility_more_laxly allows to override
+ the default behavior (Bug#49955, Bug#53298). */
+ if (EQ (x_set_frame_visibility_more_laxly, Qfocus_in)
+ || EQ (x_set_frame_visibility_more_laxly, Qt))
#endif /* USE_GTK */
+ {
+ f = any;
+ if (f && FRAME_ICONIFIED_P (f))
+ {
+ SET_FRAME_VISIBLE (f, 1);
+ SET_FRAME_ICONIFIED (f, false);
+ f->output_data.x->has_been_visible = true;
+ inev.ie.kind = DEICONIFY_EVENT;
+ XSETFRAME (inev.ie.frame_or_window, f);
+ }
+ }
x_detect_focus_change (dpyinfo, any, event, &inev.ie);
goto OTHER;
@@ -9418,7 +9742,9 @@ handle_one_xevent (struct x_display_info *dpyinfo,
}
#endif
x_display_set_last_user_time (dpyinfo, event->xcrossing.time);
- x_detect_focus_change (dpyinfo, any, event, &inev.ie);
+
+ if (x_top_window_to_frame (dpyinfo, event->xcrossing.window))
+ x_detect_focus_change (dpyinfo, any, event, &inev.ie);
f = x_top_window_to_frame (dpyinfo, event->xcrossing.window);
#if defined HAVE_X_TOOLKIT && defined HAVE_XINPUT2
@@ -9581,14 +9907,14 @@ handle_one_xevent (struct x_display_info *dpyinfo,
}
f = x_top_window_to_frame (dpyinfo, configureEvent.xconfigure.window);
- /* Unfortunately, we need to call font_drop_xrender_surfaces for
+ /* Unfortunately, we need to call x_drop_xrender_surfaces for
_all_ ConfigureNotify events, otherwise we miss some and
flicker. Don't try to optimize these calls by looking only
for size changes: that's not sufficient. We miss some
surface invalidations and flicker. */
block_input ();
if (f && FRAME_X_DOUBLE_BUFFERED_P (f))
- font_drop_xrender_surfaces (f);
+ x_drop_xrender_surfaces (f);
unblock_input ();
#if defined USE_CAIRO && !defined USE_GTK
if (f)
@@ -9618,7 +9944,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
block_input ();
if (FRAME_X_DOUBLE_BUFFERED_P (f))
- font_drop_xrender_surfaces (f);
+ x_drop_xrender_surfaces (f);
unblock_input ();
xg_frame_resized (f, configureEvent.xconfigure.width,
configureEvent.xconfigure.height);
@@ -9726,6 +10052,12 @@ handle_one_xevent (struct x_display_info *dpyinfo,
#ifdef HAVE_X_I18N
if (FRAME_XIC (f) && (FRAME_XIC_STYLE (f) & XIMStatusArea))
xic_set_statusarea (f);
+
+ if (f)
+ {
+ struct window *w = XWINDOW (f->selected_window);
+ xic_set_preeditarea (w, w->cursor.x, w->cursor.y);
+ }
#endif
}
@@ -10002,81 +10334,68 @@ handle_one_xevent (struct x_display_info *dpyinfo,
{
case XI_FocusIn:
any = x_any_window_to_frame (dpyinfo, focusin->event);
-#ifndef USE_GTK
+#ifdef USE_GTK
/* Some WMs (e.g. Mutter in Gnome Shell), don't unmap
minimized/iconified windows; thus, for those WMs we won't get
- a MapNotify when unminimizing/deconifying. Check here if we
+ a MapNotify when unminimizing/deiconifying. Check here if we
are deiconizing a window (Bug42655).
- But don't do that on GTK since it may cause a plain invisible
- frame get reported as iconified, compare
+ But don't do that by default on GTK since it may cause a plain
+ invisible frame get reported as iconified, compare
https://lists.gnu.org/archive/html/emacs-devel/2017-02/msg00133.html.
- That is fixed above but bites us here again. */
- f = any;
- if (f && FRAME_ICONIFIED_P (f))
+ That is fixed above but bites us here again.
+
+ The option x_set_frame_visibility_more_laxly allows to override
+ the default behavior (Bug#49955, Bug#53298). */
+ if (EQ (x_set_frame_visibility_more_laxly, Qfocus_in)
+ || EQ (x_set_frame_visibility_more_laxly, Qt))
+#endif /* USE_GTK */
{
- SET_FRAME_VISIBLE (f, 1);
- SET_FRAME_ICONIFIED (f, false);
- f->output_data.x->has_been_visible = true;
- inev.ie.kind = DEICONIFY_EVENT;
- XSETFRAME (inev.ie.frame_or_window, f);
+ f = any;
+ if (f && FRAME_ICONIFIED_P (f))
+ {
+ SET_FRAME_VISIBLE (f, 1);
+ SET_FRAME_ICONIFIED (f, false);
+ f->output_data.x->has_been_visible = true;
+ inev.ie.kind = DEICONIFY_EVENT;
+ XSETFRAME (inev.ie.frame_or_window, f);
+ }
}
-#endif /* USE_GTK */
x_detect_focus_change (dpyinfo, any, event, &inev.ie);
goto XI_OTHER;
+
case XI_FocusOut:
any = x_any_window_to_frame (dpyinfo, focusout->event);
x_detect_focus_change (dpyinfo, any, event, &inev.ie);
goto XI_OTHER;
+
case XI_Enter:
- any = x_any_window_to_frame (dpyinfo, enter->event);
+
+ any = x_top_window_to_frame (dpyinfo, enter->event);
ev.x = lrint (enter->event_x);
ev.y = lrint (enter->event_y);
- ev.window = leave->event;
-
+ ev.window = enter->event;
x_display_set_last_user_time (dpyinfo, xi_event->time);
- x_detect_focus_change (dpyinfo, any, event, &inev.ie);
+
+ /* There is no need to handle entry/exit events for
+ passive focus from non-top windows at all, since they
+ are an inferiors of the frame's top window, which will
+ get virtual events. */
+ if (any)
+ x_detect_focus_change (dpyinfo, any, event, &inev.ie);
+
+ if (!any)
+ any = x_any_window_to_frame (dpyinfo, enter->event);
+
{
#ifdef HAVE_XWIDGETS
struct xwidget_view *xwidget_view = xwidget_view_from_window
(enter->event);
-#else
- bool xwidget_view = false;
-#endif
-
- /* One problem behind the design of XInput 2 scrolling is
- that valuators are not unique to each window, but only
- the window that has grabbed the valuator's device or
- the window that the device's pointer is on top of can
- receive motion events. There is also no way to
- retrieve the value of a valuator outside of each motion
- event.
-
- As such, to prevent wildly inaccurate results when the
- valuators have changed outside Emacs, we reset our
- records of each valuator's value whenever the pointer
- re-enters a frame after its valuators have potentially
- been changed elsewhere. */
- if (enter->detail != XINotifyInferior
- && enter->mode != XINotifyPassiveUngrab
- /* See the comment under FocusIn in
- `x_detect_focus_change'. The main relevant culprit
- these days seems to be XFCE. */
- && enter->mode != XINotifyUngrab
- && (xwidget_view
- || (any && enter->event == FRAME_X_WINDOW (any))))
- xi_reset_scroll_valuators_for_device_id (dpyinfo,
enter->deviceid);
+#endif
#ifdef HAVE_XWIDGETS
if (xwidget_view)
{
- /* Don't send an enter event to the xwidget if the
- first button is pressed, to avoid it releasing
- the passive grab. I don't know why that happens,
- but this workaround makes dragging to select text
- work again. */
- if (!(enter->buttons.mask_len
- && XIMaskIsSet (enter->buttons.mask, 1)))
- xwidget_motion_or_crossing (xwidget_view, event);
+ xwidget_motion_or_crossing (xwidget_view, event);
goto XI_OTHER;
}
@@ -10099,11 +10418,28 @@ handle_one_xevent (struct x_display_info *dpyinfo,
x_note_mouse_movement (dpyinfo->last_mouse_glyph_frame, &ev);
#endif
goto XI_OTHER;
+
case XI_Leave:
ev.x = lrint (leave->event_x);
ev.y = lrint (leave->event_y);
ev.window = leave->event;
- any = x_any_window_to_frame (dpyinfo, leave->event);
+ any = x_top_window_to_frame (dpyinfo, leave->event);
+
+ /* One problem behind the design of XInput 2 scrolling is
+ that valuators are not unique to each window, but only
+ the window that has grabbed the valuator's device or
+ the window that the device's pointer is on top of can
+ receive motion events. There is also no way to
+ retrieve the value of a valuator outside of each motion
+ event.
+
+ As such, to prevent wildly inaccurate results when the
+ valuators have changed outside Emacs, we reset our
+ records of each valuator's value whenever the pointer
+ moves out of a frame (and not into one of its
+ children, which we know about). */
+ if (leave->detail != XINotifyInferior && any)
+ xi_reset_scroll_valuators_for_device_id (dpyinfo,
enter->deviceid);
#ifdef HAVE_XWIDGETS
{
@@ -10121,7 +10457,12 @@ handle_one_xevent (struct x_display_info *dpyinfo,
#endif
x_display_set_last_user_time (dpyinfo, xi_event->time);
- x_detect_focus_change (dpyinfo, any, event, &inev.ie);
+
+ if (any)
+ x_detect_focus_change (dpyinfo, any, event, &inev.ie);
+
+ if (!any)
+ any = x_any_window_to_frame (dpyinfo, leave->event);
#ifndef USE_X_TOOLKIT
f = x_top_window_to_frame (dpyinfo, leave->event);
@@ -10153,9 +10494,11 @@ handle_one_xevent (struct x_display_info *dpyinfo,
x_note_mouse_movement (dpyinfo->last_mouse_glyph_frame, &ev);
#endif
goto XI_OTHER;
+
case XI_Motion:
{
struct xi_device_t *device;
+ bool touch_end_event_seen = false;
states = &xev->valuators;
values = states->values;
@@ -10294,7 +10637,12 @@ handle_one_xevent (struct x_display_info *dpyinfo,
inev.ie.arg = Qnil;
}
- kbd_buffer_store_event_hold (&inev.ie, hold_quit);
+ if (inev.ie.kind != TOUCH_END_EVENT
+ || !touch_end_event_seen)
+ {
+ kbd_buffer_store_event_hold (&inev.ie, hold_quit);
+ touch_end_event_seen = inev.ie.kind ==
TOUCH_END_EVENT;
+ }
val->emacs_value = 0;
}
@@ -10427,6 +10775,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
do_help = 1;
goto XI_OTHER;
}
+
case XI_ButtonRelease:
case XI_ButtonPress:
{
@@ -10486,7 +10835,6 @@ handle_one_xevent (struct x_display_info *dpyinfo,
bv.state = xev->mods.effective;
bv.time = xev->time;
- memset (&compose_status, 0, sizeof (compose_status));
dpyinfo->last_mouse_glyph_frame = NULL;
x_display_set_last_user_time (dpyinfo, xev->time);
@@ -10494,7 +10842,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
if (f && xev->evtype == XI_ButtonPress
&& !popup_activated ()
- && !x_window_to_scroll_bar (xev->display, xev->event, 2)
+ && !x_window_to_scroll_bar (dpyinfo->display, xev->event, 2)
&& !FRAME_NO_ACCEPT_FOCUS (f))
{
/* When clicking into a child frame or when clicking
@@ -10627,6 +10975,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
#endif
goto XI_OTHER;
}
+
case XI_KeyPress:
{
int state = xev->mods.effective;
@@ -10655,7 +11004,11 @@ handle_one_xevent (struct x_display_info *dpyinfo,
goto XI_OTHER;
#endif
-#ifdef HAVE_X_I18N
+ x_display_set_last_user_time (dpyinfo, xev->time);
+ ignore_next_mouse_click_timeout = 0;
+
+ f = x_any_window_to_frame (dpyinfo, xev->event);
+
XKeyPressedEvent xkey;
memset (&xkey, 0, sizeof xkey);
@@ -10663,7 +11016,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
xkey.type = KeyPress;
xkey.serial = xev->serial;
xkey.send_event = xev->send_event;
- xkey.display = xev->display;
+ xkey.display = dpyinfo->display;
xkey.window = xev->event;
xkey.root = xev->root;
xkey.subwindow = xev->child;
@@ -10673,12 +11026,32 @@ handle_one_xevent (struct x_display_info *dpyinfo,
xkey.keycode = xev->detail;
xkey.same_screen = True;
+#ifdef HAVE_X_I18N
+#ifdef USE_GTK
+ if ((!x_gtk_use_native_input
+ && x_filter_event (dpyinfo, (XEvent *) &xkey))
+ || (x_gtk_use_native_input
+ && x_filter_event (dpyinfo, event)))
+ {
+ *finish = X_EVENT_DROP;
+ goto XI_OTHER;
+ }
+#else
if (x_filter_event (dpyinfo, (XEvent *) &xkey))
{
*finish = X_EVENT_DROP;
goto XI_OTHER;
}
#endif
+#elif USE_GTK
+ if ((x_gtk_use_native_input
+ || dpyinfo->prefer_native_input)
+ && xg_filter_key (any, event))
+ {
+ *finish = X_EVENT_DROP;
+ goto XI_OTHER;
+ }
+#endif
#ifdef HAVE_XKB
if (dpyinfo->xkb_desc)
@@ -10710,11 +11083,6 @@ handle_one_xevent (struct x_display_info *dpyinfo,
if (keysym == NoSymbol)
goto XI_OTHER;
- x_display_set_last_user_time (dpyinfo, xev->time);
- ignore_next_mouse_click_timeout = 0;
-
- f = x_any_window_to_frame (dpyinfo, xev->event);
-
/* If mouse-highlight is an integer, input clears out
mouse highlighting. */
if (!hlinfo->mouse_face_hidden && FIXNUMP (Vmouse_highlight)
@@ -10738,12 +11106,6 @@ handle_one_xevent (struct x_display_info *dpyinfo,
(see above). */
*finish = X_EVENT_DROP;
#endif
- /* If not using XIM/XIC, and a compose sequence is in
progress,
- we break here. Otherwise, chars_matched is always 0. */
- if (compose_status.chars_matched > 0 && nbytes == 0)
- goto XI_OTHER;
-
- memset (&compose_status, 0, sizeof (compose_status));
XSETFRAME (inev.ie.frame_or_window, f);
inev.ie.modifiers
@@ -10810,7 +11172,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
{
nbytes = XLookupString (&xkey, copy_bufptr,
copy_bufsiz, &keysym,
- &compose_status);
+ NULL);
}
}
@@ -10983,33 +11345,53 @@ handle_one_xevent (struct x_display_info *dpyinfo,
}
goto XI_OTHER;
}
+
case XI_KeyRelease:
x_display_set_last_user_time (dpyinfo, xev->time);
-#ifdef HAVE_X_I18N
- XKeyPressedEvent xkey;
- memset (&xkey, 0, sizeof xkey);
+#if defined HAVE_X_I18N || defined USE_GTK
+ XKeyPressedEvent xkey;
+
+ memset (&xkey, 0, sizeof xkey);
- xkey.type = KeyRelease;
- xkey.serial = xev->serial;
- xkey.send_event = xev->send_event;
- xkey.display = xev->display;
- xkey.window = xev->event;
- xkey.root = xev->root;
- xkey.subwindow = xev->child;
- xkey.time = xev->time;
- xkey.state = xev->mods.effective;
- xkey.keycode = xev->detail;
- xkey.same_screen = True;
+ xkey.type = KeyRelease;
+ xkey.serial = xev->serial;
+ xkey.send_event = xev->send_event;
+ xkey.display = dpyinfo->display;
+ xkey.window = xev->event;
+ xkey.root = xev->root;
+ xkey.subwindow = xev->child;
+ xkey.time = xev->time;
+ xkey.state = ((xev->mods.effective & ~(1 << 13 | 1 << 14))
+ | (xev->group.effective << 13));
+ xkey.keycode = xev->detail;
+ xkey.same_screen = True;
- x_filter_event (dpyinfo, (XEvent *) &xkey);
+#ifdef HAVE_X_I18N
+ if (x_filter_event (dpyinfo, (XEvent *) &xkey))
+ *finish = X_EVENT_DROP;
+#else
+ f = x_any_window_to_frame (xkey->event);
+
+ if (f && xg_filter_key (f, event))
+ *finish = X_EVENT_DROP;
+#endif
#endif
+
goto XI_OTHER;
+
case XI_PropertyEvent:
case XI_HierarchyChanged:
case XI_DeviceChanged:
+#ifdef XISlaveSwitch
+ if (xi_event->evtype == XI_DeviceChanged
+ && (((XIDeviceChangedEvent *) xi_event)->reason
+ == XISlaveSwitch))
+ goto XI_OTHER;
+#endif
x_init_master_valuators (dpyinfo);
goto XI_OTHER;
+
#ifdef XI_TouchBegin
case XI_TouchBegin:
{
@@ -11034,8 +11416,10 @@ handle_one_xevent (struct x_display_info *dpyinfo,
&& xg_event_is_for_menubar (f, event));
if (f && FRAME_X_OUTPUT (f)->toolbar_widget)
{
- test_rect.x = xev->event_x;
- test_rect.y = xev->event_y;
+ int scale = xg_get_scale (f);
+
+ test_rect.x = xev->event_x / scale;
+ test_rect.y = xev->event_y / scale;
test_rect.width = 1;
test_rect.height = 1;
@@ -11050,8 +11434,9 @@ handle_one_xevent (struct x_display_info *dpyinfo,
{
*finish = X_EVENT_DROP;
x_catch_errors (dpyinfo->display);
- XIAllowTouchEvents (dpyinfo->display, xev->deviceid,
- xev->detail, xev->event,
XIAcceptTouch);
+ if (x_input_grab_touch_events)
+ XIAllowTouchEvents (dpyinfo->display, xev->deviceid,
+ xev->detail, xev->event,
XIAcceptTouch);
if (!x_had_errors_p (dpyinfo->display))
{
xi_link_touch_point (device, xev->detail,
xev->event_x,
@@ -11070,8 +11455,9 @@ handle_one_xevent (struct x_display_info *dpyinfo,
else
{
x_catch_errors (dpyinfo->display);
- XIAllowTouchEvents (dpyinfo->display, xev->deviceid,
- xev->detail, xev->event,
XIRejectTouch);
+ if (x_input_grab_touch_events)
+ XIAllowTouchEvents (dpyinfo->display, xev->deviceid,
+ xev->detail, xev->event,
XIRejectTouch);
x_uncatch_errors ();
}
#endif
@@ -11092,6 +11478,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
goto XI_OTHER;
}
+
case XI_TouchUpdate:
{
struct xi_device_t *device;
@@ -11134,6 +11521,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
goto XI_OTHER;
}
+
case XI_TouchEnd:
{
struct xi_device_t *device;
@@ -11164,6 +11552,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
goto XI_OTHER;
}
+
#endif
#ifdef XI_GesturePinchBegin
case XI_GesturePinchBegin:
@@ -11209,6 +11598,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
*finish = X_EVENT_DROP;
goto XI_OTHER;
}
+
case XI_GesturePinchEnd:
{
x_display_set_last_user_time (dpyinfo, xi_event->time);
@@ -11227,6 +11617,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
default:
goto XI_OTHER;
}
+
xi_done_keysym:
#ifdef HAVE_X_I18N
if (FRAME_XIC (f) && (FRAME_XIC_STYLE (f) & XIMStatusArea))
@@ -11235,6 +11626,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
if (must_free_data)
XFreeEventData (dpyinfo->display, &event->xcookie);
goto done_keysym;
+
XI_OTHER:
if (must_free_data)
XFreeEventData (dpyinfo->display, &event->xcookie);
@@ -11253,18 +11645,40 @@ handle_one_xevent (struct x_display_info *dpyinfo,
{
if (dpyinfo->xkb_desc)
{
- XkbGetUpdatedMap (dpyinfo->display,
- (XkbKeySymsMask
- | XkbKeyTypesMask
- | XkbModifierMapMask
- | XkbVirtualModsMask),
- dpyinfo->xkb_desc);
- XkbGetNames (dpyinfo->display,
- XkbGroupNamesMask | XkbVirtualModNamesMask,
- dpyinfo->xkb_desc);
-
- x_find_modifier_meanings (dpyinfo);
+ if (XkbGetUpdatedMap (dpyinfo->display,
+ (XkbKeySymsMask
+ | XkbKeyTypesMask
+ | XkbModifierMapMask
+ | XkbVirtualModsMask),
+ dpyinfo->xkb_desc) == Success)
+ {
+ XkbGetNames (dpyinfo->display,
+ XkbGroupNamesMask | XkbVirtualModNamesMask,
+ dpyinfo->xkb_desc);
+ }
+ else
+ {
+ XkbFreeKeyboard (dpyinfo->xkb_desc, XkbAllComponentsMask,
True);
+ dpyinfo->xkb_desc = NULL;
+ }
}
+ else
+ {
+ dpyinfo->xkb_desc = XkbGetMap (dpyinfo->display,
+ (XkbKeySymsMask
+ | XkbKeyTypesMask
+ | XkbModifierMapMask
+ | XkbVirtualModsMask),
+ XkbUseCoreKbd);
+
+ if (dpyinfo->xkb_desc)
+ XkbGetNames (dpyinfo->display,
+ XkbGroupNamesMask | XkbVirtualModNamesMask,
+ dpyinfo->xkb_desc);
+ }
+
+ XkbRefreshKeyboardMapping (&xkbevent->map);
+ x_find_modifier_meanings (dpyinfo);
}
}
#endif
@@ -11407,6 +11821,20 @@ XTread_socket (struct terminal *terminal, struct
input_event *hold_quit)
if (current_finish == X_EVENT_GOTO_OUT)
break;
}
+
+ /* Now see if `xg_pending_quit_event' was set. */
+ if (xg_pending_quit_event.kind != NO_EVENT)
+ {
+ /* Check that the frame is still valid. It could have been
+ deleted between now and the time the event was recorded. */
+ if (FRAME_LIVE_P (XFRAME (xg_pending_quit_event.frame_or_window)))
+ /* Store that event into hold_quit and clear the pending quit
+ event. */
+ *hold_quit = xg_pending_quit_event;
+
+ /* If the frame is invalid, just clear the event as well. */
+ xg_pending_quit_event.kind = NO_EVENT;
+ }
#endif /* USE_GTK */
/* On some systems, an X bug causes Emacs to get no more events
@@ -11666,7 +12094,9 @@ x_draw_window_cursor (struct window *w, struct
glyph_row *glyph_row, int x,
int y, enum text_cursor_kinds cursor_type,
int cursor_width, bool on_p, bool active_p)
{
+#ifdef HAVE_X_I18N
struct frame *f = XFRAME (WINDOW_FRAME (w));
+#endif
if (on_p)
{
@@ -11712,8 +12142,7 @@ x_draw_window_cursor (struct window *w, struct
glyph_row *glyph_row, int x,
#ifdef HAVE_X_I18N
if (w == XWINDOW (f->selected_window))
- if (FRAME_XIC (f))
- xic_set_preeditarea (w, x, y);
+ xic_set_preeditarea (w, x, y);
#endif
}
@@ -12406,9 +12835,11 @@ xim_initialize (struct x_display_info *dpyinfo, char
*resource_name)
ret = XRegisterIMInstantiateCallback
(dpyinfo->display, dpyinfo->rdb, xim_inst->resource_name,
emacs_class, xim_instantiate_callback,
- /* This is XPointer in XFree86 but (XPointer *)
- on Tru64, at least, hence the configure test. */
- (XRegisterIMInstantiateCallback_arg6) xim_inst);
+ /* This is XPointer in XFree86 but (XPointer *) on Tru64, at
+ least, but the configure test doesn't work because
+ xim_instantiate_callback can either be XIMProc or
+ XIDProc, so just cast to void *. */
+ (void *) xim_inst);
eassert (ret == True);
#else /* not HAVE_X11R6_XIM */
xim_open_dpy (dpyinfo, resource_name);
@@ -12433,8 +12864,7 @@ xim_close_dpy (struct x_display_info *dpyinfo)
{
Bool ret = XUnregisterIMInstantiateCallback
(dpyinfo->display, dpyinfo->rdb, xim_inst->resource_name,
- emacs_class, xim_instantiate_callback,
- (XRegisterIMInstantiateCallback_arg6) xim_inst);
+ emacs_class, xim_instantiate_callback, (void *) xim_inst);
eassert (ret == True);
}
xfree (xim_inst->resource_name);
@@ -13580,7 +14010,7 @@ x_focus_frame (struct frame *f, bool noactivate)
}
else
{
- XSetInputFocus (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
+ XSetInputFocus (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f),
RevertToParent, CurrentTime);
if (!noactivate)
x_ewmh_activate_frame (f);
@@ -14032,6 +14462,9 @@ x_free_frame_resources (struct frame *f)
#ifdef HAVE_X_I18N
if (FRAME_XIC (f))
free_frame_xic (f);
+
+ if (f->output_data.x->preedit_chars)
+ xfree (f->output_data.x->preedit_chars);
#endif
#ifdef USE_CAIRO
@@ -14572,8 +15005,12 @@ static bool
x_probe_xfixes_extension (Display *dpy)
{
#ifdef HAVE_XFIXES
- int major, minor;
- return XFixesQueryVersion (dpy, &major, &minor) && major >= 4;
+ struct x_display_info *info
+ = x_display_info_for_display (dpy);
+
+ return (info
+ && info->xfixes_supported_p
+ && info->xfixes_major >= 4);
#else
return false;
#endif /* HAVE_XFIXES */
@@ -14966,6 +15403,40 @@ x_term_init (Lisp_Object display_name, char
*xrm_option, char *resource_name)
dpyinfo->supports_xdbe = true;
#endif
+#ifdef USE_XCB
+ xcb_screen_t *xcb_screen = NULL;
+ xcb_screen_iterator_t iter;
+ xcb_visualid_t wanted = { XVisualIDFromVisual (dpyinfo->visual) };
+ xcb_depth_iterator_t depth_iter;
+ xcb_visualtype_iterator_t visual_iter;
+
+ int screen = DefaultScreen (dpyinfo->display);
+
+ iter = xcb_setup_roots_iterator (xcb_get_setup (dpyinfo->xcb_connection));
+ for (; iter.rem; --screen, xcb_screen_next (&iter))
+ {
+ if (!screen)
+ xcb_screen = iter.data;
+ }
+
+ if (xcb_screen)
+ {
+ depth_iter = xcb_screen_allowed_depths_iterator (xcb_screen);
+ for (; depth_iter.rem; xcb_depth_next (&depth_iter))
+ {
+ visual_iter = xcb_depth_visuals_iterator (depth_iter.data);
+ for (; visual_iter.rem; xcb_visualtype_next (&visual_iter))
+ {
+ if (wanted == visual_iter.data->visual_id)
+ {
+ dpyinfo->xcb_visual = visual_iter.data;
+ break;
+ }
+ }
+ }
+ }
+#endif
+
#ifdef HAVE_XINPUT2
dpyinfo->supports_xi2 = false;
int rc;
@@ -15034,9 +15505,36 @@ x_term_init (Lisp_Object display_name, char
*xrm_option, char *resource_name)
XkbNewKeyboardNotifyMask | XkbMapNotifyMask,
XkbNewKeyboardNotifyMask | XkbMapNotifyMask);
}
+#endif
- /* Figure out which modifier bits mean what. */
- x_find_modifier_meanings (dpyinfo);
+#ifdef HAVE_XRENDER
+ int event_base, error_base;
+ dpyinfo->xrender_supported_p
+ = XRenderQueryExtension (dpyinfo->display, &event_base, &error_base);
+
+ if (dpyinfo->xrender_supported_p)
+ {
+ if (!XRenderQueryVersion (dpyinfo->display, &dpyinfo->xrender_major,
+ &dpyinfo->xrender_minor))
+ dpyinfo->xrender_supported_p = false;
+ else
+ dpyinfo->pict_format = XRenderFindVisualFormat (dpyinfo->display,
+ dpyinfo->visual);
+ }
+#endif
+
+#ifdef HAVE_XFIXES
+ int xfixes_event_base, xfixes_error_base;
+ dpyinfo->xfixes_supported_p
+ = XFixesQueryExtension (dpyinfo->display, &xfixes_event_base,
+ &xfixes_error_base);
+
+ if (dpyinfo->xfixes_supported_p)
+ {
+ if (!XFixesQueryVersion (dpyinfo->display, &dpyinfo->xfixes_major,
+ &dpyinfo->xfixes_minor))
+ dpyinfo->xfixes_supported_p = false;
+ }
#endif
#if defined USE_CAIRO || defined HAVE_XFT
@@ -15055,11 +15553,6 @@ x_term_init (Lisp_Object display_name, char
*xrm_option, char *resource_name)
or larger than other for other applications, even if it is the same
font name (monospace-10 for example). */
-# ifdef HAVE_XRENDER
- int event_base, error_base;
- XRenderQueryExtension (dpyinfo->display, &event_base, &error_base);
-# endif
-
char *v = XGetDefault (dpyinfo->display, "Xft", "dpi");
double d;
if (v != NULL && sscanf (v, "%lf", &d) == 1)
@@ -15152,6 +15645,13 @@ x_term_init (Lisp_Object display_name, char
*xrm_option, char *resource_name)
ATOM_REFS_INIT ("_NET_WM_STATE_SKIP_TASKBAR",
Xatom_net_wm_state_skip_taskbar)
ATOM_REFS_INIT ("_NET_WM_STATE_ABOVE", Xatom_net_wm_state_above)
ATOM_REFS_INIT ("_NET_WM_STATE_BELOW", Xatom_net_wm_state_below)
+#ifdef HAVE_XKB
+ ATOM_REFS_INIT ("Meta", Xatom_Meta)
+ ATOM_REFS_INIT ("Super", Xatom_Super)
+ ATOM_REFS_INIT ("Hyper", Xatom_Hyper)
+ ATOM_REFS_INIT ("ShiftLock", Xatom_ShiftLock)
+ ATOM_REFS_INIT ("Alt", Xatom_Alt)
+#endif
};
int i;
@@ -15182,6 +15682,11 @@ x_term_init (Lisp_Object display_name, char
*xrm_option, char *resource_name)
dpyinfo->Xatom_xsettings_sel = atoms_return[i];
}
+#ifdef HAVE_XKB
+ /* Figure out which modifier bits mean what. */
+ x_find_modifier_meanings (dpyinfo);
+#endif
+
dpyinfo->x_dnd_atoms_size = 8;
dpyinfo->x_dnd_atoms = xmalloc (sizeof *dpyinfo->x_dnd_atoms
* dpyinfo->x_dnd_atoms_size);
@@ -15263,6 +15768,33 @@ x_term_init (Lisp_Object display_name, char
*xrm_option, char *resource_name)
#endif
}
+#ifdef HAVE_X_I18N
+ {
+ AUTO_STRING (inputStyle, "inputStyle");
+ AUTO_STRING (InputStyle, "InputStyle");
+ Lisp_Object value = gui_display_get_resource (dpyinfo, inputStyle,
InputStyle,
+ Qnil, Qnil);
+
+ if (STRINGP (value))
+ {
+ if (!strcmp (SSDATA (value), "callback"))
+ dpyinfo->preferred_xim_style = STYLE_CALLBACK;
+ else if (!strcmp (SSDATA (value), "none"))
+ dpyinfo->preferred_xim_style = STYLE_NONE;
+ else if (!strcmp (SSDATA (value), "overthespot"))
+ dpyinfo->preferred_xim_style = STYLE_OVERTHESPOT;
+ else if (!strcmp (SSDATA (value), "offthespot"))
+ dpyinfo->preferred_xim_style = STYLE_OFFTHESPOT;
+ else if (!strcmp (SSDATA (value), "root"))
+ dpyinfo->preferred_xim_style = STYLE_ROOT;
+#ifdef USE_GTK
+ else if (!strcmp (SSDATA (value), "native"))
+ dpyinfo->prefer_native_input = true;
+#endif
+ }
+ }
+#endif
+
#ifdef HAVE_X_SM
/* Only do this for the very first display in the Emacs session.
Ignore X session management when Emacs was first started on a
@@ -15271,7 +15803,7 @@ x_term_init (Lisp_Object display_name, char
*xrm_option, char *resource_name)
x_session_initialize (dpyinfo);
#endif
-#ifdef USE_CAIRO
+#if defined USE_CAIRO || defined HAVE_XRENDER
x_extension_initialize (dpyinfo);
#endif
@@ -15647,6 +16179,40 @@ init_xterm (void)
}
#endif
+#ifdef HAVE_XRENDER
+void
+x_xrender_color_from_gc_foreground (struct frame *f, GC gc, XRenderColor
*color)
+{
+ XGCValues xgcv;
+ XColor xc;
+
+ XGetGCValues (FRAME_X_DISPLAY (f), gc, GCForeground, &xgcv);
+ xc.pixel = xgcv.foreground;
+ x_query_colors (f, &xc, 1);
+
+ color->alpha = 65535;
+ color->red = xc.red;
+ color->blue = xc.blue;
+ color->green = xc.green;
+}
+
+void
+x_xrender_color_from_gc_background (struct frame *f, GC gc, XRenderColor
*color)
+{
+ XGCValues xgcv;
+ XColor xc;
+
+ XGetGCValues (FRAME_X_DISPLAY (f), gc, GCBackground, &xgcv);
+ xc.pixel = xgcv.foreground;
+ x_query_colors (f, &xc, 1);
+
+ color->alpha = 65535;
+ color->red = xc.red;
+ color->blue = xc.blue;
+ color->green = xc.green;
+}
+#endif
+
void
syms_of_xterm (void)
{
@@ -15806,4 +16372,34 @@ always uses gtk_window_move and ignores the value of
this variable. */);
This option is only effective when Emacs is built with XInput 2
support. */);
Vx_scroll_event_delta_factor = make_float (1.0);
+ DEFSYM (Qexpose, "expose");
+
+ DEFVAR_BOOL ("x-gtk-use-native-input", x_gtk_use_native_input,
+ doc: /* Non-nil means to use GTK for input method support.
+This provides better support for some modern input methods, and is
+only effective when Emacs is built with GTK. */);
+ x_gtk_use_native_input = false;
+
+ DEFVAR_LISP ("x-set-frame-visibility-more-laxly",
+ x_set_frame_visibility_more_laxly,
+ doc: /* Non-nil means set frame visibility more laxly.
+If this is nil, Emacs is more strict when marking a frame as visible.
+Since this may cause problems on some window managers, this variable can
+be also set as follows: The value `focus-in' means to mark a frame as
+visible also when a FocusIn event is received for it on GTK builds. The
+value `expose' means to mark a frame as visible also when an Expose
+event is received for it on any X build. The value `t' means to mark a
+frame as visible in either of these two cases.
+
+Note that any non-nil setting may cause invisible frames get erroneously
+reported as iconified. */);
+ x_set_frame_visibility_more_laxly = Qnil;
+
+ DEFVAR_BOOL ("x-input-grab-touch-events", x_input_grab_touch_events,
+ doc: /* Non-nil means to actively grab touch events.
+This means touch sequences that started on an Emacs frame will
+reliably continue to receive updates even if the finger moves off the
+frame, but may cause crashes with some window managers and/or external
+programs. */);
+ x_input_grab_touch_events = true;
}
diff --git a/src/xterm.h b/src/xterm.h
index d4600bdf80..33887be52b 100644
--- a/src/xterm.h
+++ b/src/xterm.h
@@ -54,6 +54,10 @@ typedef Widget xt_or_gtk_widget;
#define GTK_CHECK_VERSION(i, j, k) false
#endif
+#ifdef HAVE_XRENDER
+#include <X11/extensions/Xrender.h>
+#endif
+
#ifdef USE_GTK
/* Some definitions to reduce conditionals. */
typedef GtkWidget *xt_or_gtk_widget;
@@ -78,6 +82,9 @@ typedef GtkWidget *xt_or_gtk_widget;
#ifdef CAIRO_HAS_SVG_SURFACE
#include <cairo-svg.h>
#endif
+#ifdef USE_CAIRO_XCB
+#include <cairo-xcb.h>
+#endif
#endif
#ifdef HAVE_X_I18N
@@ -145,7 +152,7 @@ struct x_bitmap_record
int height, width, depth;
};
-#ifdef USE_CAIRO
+#if defined USE_CAIRO || defined HAVE_XRENDER
struct x_gc_ext_data
{
#define MAX_CLIP_RECTS 2
@@ -155,7 +162,9 @@ struct x_gc_ext_data
/* Clipping rectangles. */
XRectangle clip_rects[MAX_CLIP_RECTS];
};
+#endif
+#ifdef USE_CAIRO
extern cairo_pattern_t *x_bitmap_stipple (struct frame *, Pixmap);
#endif
@@ -236,6 +245,11 @@ struct x_display_info
/* The Visual being used for this display. */
Visual *visual;
+#ifdef HAVE_XRENDER
+ /* The picture format for this display. */
+ XRenderPictFormat *pict_format;
+#endif
+
/* The colormap being used. */
Colormap cmap;
@@ -434,6 +448,7 @@ struct x_display_info
XIM xim;
XIMStyles *xim_styles;
struct xim_inst_t *xim_callback_data;
+ XIMStyle preferred_xim_style;
#endif
/* A cache mapping color names to RGB values. */
@@ -495,17 +510,23 @@ struct x_display_info
/* SM */
Atom Xatom_SM_CLIENT_ID;
+#ifdef HAVE_XKB
+ /* Virtual modifiers */
+ Atom Xatom_Meta, Xatom_Super, Xatom_Hyper, Xatom_ShiftLock, Xatom_Alt;
+#endif
+
#ifdef HAVE_XRANDR
int xrandr_major_version;
int xrandr_minor_version;
#endif
-#ifdef USE_CAIRO
+#if defined USE_CAIRO || defined HAVE_XRENDER
XExtCodes *ext_codes;
#endif
#ifdef USE_XCB
xcb_connection_t *xcb_connection;
+ xcb_visualtype_t *xcb_visual;
#endif
#ifdef HAVE_XDBE
@@ -526,6 +547,22 @@ struct x_display_info
int xkb_event_type;
XkbDescPtr xkb_desc;
#endif
+
+#ifdef USE_GTK
+ bool prefer_native_input;
+#endif
+
+#ifdef HAVE_XRENDER
+ bool xrender_supported_p;
+ int xrender_major;
+ int xrender_minor;
+#endif
+
+#ifdef HAVE_XFIXES
+ bool xfixes_supported_p;
+ int xfixes_major;
+ int xfixes_minor;
+#endif
};
#ifdef HAVE_X_I18N
@@ -590,6 +627,13 @@ struct x_output
window's back buffer. */
Drawable draw_desc;
+#ifdef HAVE_XRENDER
+ /* The Xrender picture that corresponds to this drawable. None
+ means no picture format was found, or the Xrender extension is
+ not present. */
+ Picture picture;
+#endif
+
/* Flag that indicates whether we've modified the back buffer and
need to publish our modifications to the front buffer at a
convenient time. */
@@ -642,6 +686,8 @@ struct x_output
GtkTooltip *ttip_widget;
GtkWidget *ttip_lbl;
GtkWindow *ttip_window;
+
+ GtkIMContext *im_context;
#endif /* USE_GTK */
/* If >=0, a bitmap index. The indicated bitmap is used for the
@@ -788,6 +834,13 @@ struct x_output
They are used when creating the cairo surface next time. */
int cr_surface_desired_width, cr_surface_desired_height;
#endif
+
+#ifdef HAVE_X_I18N
+ ptrdiff_t preedit_size;
+ char *preedit_chars;
+ bool preedit_active;
+ int preedit_caret;
+#endif
};
enum
@@ -898,6 +951,17 @@ extern void x_mark_frame_dirty (struct frame *f);
/* This is the Visual which frame F is on. */
#define FRAME_X_VISUAL(f) FRAME_DISPLAY_INFO (f)->visual
+#ifdef HAVE_XRENDER
+#define FRAME_X_PICTURE_FORMAT(f) FRAME_DISPLAY_INFO (f)->pict_format
+#define FRAME_X_PICTURE(f) ((f)->output_data.x->picture)
+#define FRAME_CHECK_XR_VERSION(f, major, minor) \
+ (FRAME_DISPLAY_INFO (f)->xrender_supported_p \
+ && ((FRAME_DISPLAY_INFO (f)->xrender_major == (major) \
+ && FRAME_DISPLAY_INFO (f)->xrender_minor >= (minor)) \
+ || (FRAME_DISPLAY_INFO (f)->xrender_major > (major))))
+#endif
+
+
/* This is the Colormap which frame F uses. */
#define FRAME_X_COLORMAP(f) FRAME_DISPLAY_INFO (f)->cmap
@@ -1177,6 +1241,11 @@ extern void x_cr_draw_frame (cairo_t *, struct frame *);
extern Lisp_Object x_cr_export_frames (Lisp_Object, cairo_surface_type_t);
#endif
+#ifdef HAVE_XRENDER
+extern void x_xrender_color_from_gc_foreground (struct frame *, GC,
XRenderColor *);
+extern void x_xrender_color_from_gc_background (struct frame *, GC,
XRenderColor *);
+#endif
+
INLINE int
x_display_pixel_height (struct x_display_info *dpyinfo)
{
@@ -1325,6 +1394,17 @@ extern bool x_session_have_connection (void);
extern void x_session_close (void);
#endif
+#ifdef HAVE_X_I18N
+#define STYLE_OFFTHESPOT (XIMPreeditArea | XIMStatusArea)
+#define STYLE_OVERTHESPOT (XIMPreeditPosition | XIMStatusNothing)
+#define STYLE_ROOT (XIMPreeditNothing | XIMStatusNothing)
+#define STYLE_CALLBACK (XIMPreeditCallbacks | XIMStatusNothing)
+#define STYLE_NONE (XIMPreeditNothing | XIMStatusNothing)
+#endif
+
+#ifdef USE_GTK
+extern struct input_event xg_pending_quit_event;
+#endif
/* Is the frame embedded into another application? */
diff --git a/src/xwidget.c b/src/xwidget.c
index 7d6d256a19..85535a35b1 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -40,6 +40,7 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#include <JavaScriptCore/JavaScript.h>
#include <cairo.h>
#ifndef HAVE_PGTK
+#include <cairo-xlib.h>
#include <X11/Xlib.h>
#else
#include <gtk/gtk.h>
@@ -106,7 +107,8 @@ webkit_decide_policy_cb (WebKitWebView *,
WebKitPolicyDecision *,
WebKitPolicyDecisionType,
gpointer);
-static GtkWidget *find_widget_at_pos (GtkWidget *, int, int, int *, int *);
+static GtkWidget *find_widget_at_pos (GtkWidget *, int, int, int *, int *,
bool,
+ struct xwidget_view *);
static gboolean run_file_chooser_cb (WebKitWebView *,
WebKitFileChooserRequest *,
gpointer);
@@ -121,11 +123,12 @@ struct widget_search_data
};
static void find_widget (GtkWidget *t, struct widget_search_data *);
-static void mouse_target_changed (WebKitWebView *, WebKitHitTestResult *,
guint,
- gpointer);
#endif
#ifdef HAVE_PGTK
+static void mouse_target_changed (WebKitWebView *, WebKitHitTestResult *,
guint,
+ gpointer);
+
static int
xw_forward_event_translate (GdkEvent *event, struct xwidget_view *xv,
struct xwidget *xw)
@@ -142,7 +145,7 @@ xw_forward_event_translate (GdkEvent *event, struct
xwidget_view *xv,
widget = find_widget_at_pos (xw->widgetwindow_osr,
lrint (event->button.x - xv->clip_left),
lrint (event->button.y - xv->clip_top),
- &new_x, &new_y);
+ &new_x, &new_y, false, NULL);
if (widget)
{
event->any.window = gtk_widget_get_window (widget);
@@ -155,7 +158,7 @@ xw_forward_event_translate (GdkEvent *event, struct
xwidget_view *xv,
widget = find_widget_at_pos (xw->widgetwindow_osr,
lrint (event->scroll.x - xv->clip_left),
lrint (event->scroll.y - xv->clip_top),
- &new_x, &new_y);
+ &new_x, &new_y, false, NULL);
if (widget)
{
event->any.window = gtk_widget_get_window (widget);
@@ -168,7 +171,7 @@ xw_forward_event_translate (GdkEvent *event, struct
xwidget_view *xv,
widget = find_widget_at_pos (xw->widgetwindow_osr,
lrint (event->motion.x - xv->clip_left),
lrint (event->motion.y - xv->clip_top),
- &new_x, &new_y);
+ &new_x, &new_y, false, NULL);
if (widget)
{
event->any.window = gtk_widget_get_window (widget);
@@ -182,7 +185,7 @@ xw_forward_event_translate (GdkEvent *event, struct
xwidget_view *xv,
widget = find_widget_at_pos (xw->widgetwindow_osr,
lrint (event->crossing.x - xv->clip_left),
lrint (event->crossing.y - xv->clip_top),
- &new_x, &new_y);
+ &new_x, &new_y, false, NULL);
if (widget)
{
event->any.window = gtk_widget_get_window (widget);
@@ -223,6 +226,13 @@ xw_forward_event_from_view (GtkWidget *widget, GdkEvent
*event,
#endif
#ifdef HAVE_X_WINDOWS
+enum xw_crossing_mode
+ {
+ XW_CROSSING_LEFT,
+ XW_CROSSING_ENTERED,
+ XW_CROSSING_NONE
+ };
+
static guint
xw_translate_x_modifiers (struct x_display_info *dpyinfo,
unsigned int modifiers)
@@ -252,6 +262,15 @@ xw_translate_x_modifiers (struct x_display_info *dpyinfo,
return mods;
}
+
+static bool xw_maybe_synthesize_crossing (struct xwidget_view *,
+ GdkWindow *, int, int, int,
+ Time, unsigned int);
+static void xw_notify_virtual_upwards_until (struct xwidget_view *, GdkWindow
*,
+ GdkWindow *, GdkWindow *, unsigned
int,
+ int, int, Time, GdkEventType,
bool);
+static void window_coords_from_toplevel (GdkWindow *, GdkWindow *, int,
+ int, int *, int *);
#endif
DEFUN ("make-xwidget",
@@ -402,11 +421,12 @@ fails. */)
G_CALLBACK
(webkit_decide_policy_cb),
xw);
-
+#ifdef HAVE_PGTK
g_signal_connect (G_OBJECT (xw->widget_osr),
"mouse-target-changed",
G_CALLBACK (mouse_target_changed),
xw);
+#endif
g_signal_connect (G_OBJECT (xw->widget_osr),
"create",
G_CALLBACK (webkit_create_cb),
@@ -709,7 +729,7 @@ pick_embedded_child (GdkWindow *window, double x, double y,
return NULL;
child = find_widget_at_pos (widget, lrint (x), lrint (y),
- &xout, &yout);
+ &xout, &yout, false, NULL);
if (!child)
return NULL;
@@ -918,9 +938,9 @@ find_widget (GtkWidget *widget,
}
}
- if ((data->x >= new_allocation.x) && (data->y >= new_allocation.y) &&
- (data->x < new_allocation.x + new_allocation.width) &&
- (data->y < new_allocation.y + new_allocation.height))
+ if ((data->x >= new_allocation.x) && (data->y >= new_allocation.y)
+ && (data->x < new_allocation.x + new_allocation.width)
+ && (data->y < new_allocation.y + new_allocation.height))
{
/* First, check if the drag is in a valid drop site in one of
our children. */
@@ -954,9 +974,27 @@ find_widget (GtkWidget *widget,
static GtkWidget *
find_widget_at_pos (GtkWidget *w, int x, int y,
- int *new_x, int *new_y)
+ int *new_x, int *new_y,
+ bool pointer_grabs,
+ struct xwidget_view *vw)
{
struct widget_search_data data;
+#ifdef HAVE_X_WINDOWS
+ GtkWidget *grab = NULL;
+
+ if (pointer_grabs)
+ {
+ grab = vw->passive_grab;
+
+ if (grab && gtk_widget_get_window (grab))
+ {
+ gtk_widget_translate_coordinates (w, grab, x,
+ y, new_x, new_y);
+
+ return grab;
+ }
+ }
+#endif
data.x = x;
data.y = y;
@@ -978,6 +1016,7 @@ find_widget_at_pos (GtkWidget *w, int x, int y,
return NULL;
}
+#ifdef HAVE_PGTK
static Emacs_Cursor
cursor_for_hit (guint result, struct frame *frame)
{
@@ -1001,9 +1040,7 @@ static void
define_cursors (struct xwidget *xw, WebKitHitTestResult *res)
{
struct xwidget_view *xvw;
-#ifdef HAVE_PGTK
GdkWindow *wdesc;
-#endif
xw->hit_result = webkit_hit_test_result_get_context (res);
@@ -1017,16 +1054,12 @@ define_cursors (struct xwidget *xw, WebKitHitTestResult
*res)
if (XXWIDGET (xvw->model) == xw)
{
xvw->cursor = cursor_for_hit (xw->hit_result, xvw->frame);
-#ifdef HAVE_X_WINDOWS
- if (xvw->wdesc != None)
- XDefineCursor (xvw->dpy, xvw->wdesc, xvw->cursor);
-#else
+
if (gtk_widget_get_realized (xvw->widget))
{
wdesc = gtk_widget_get_window (xvw->widget);
gdk_window_set_cursor (wdesc, xvw->cursor);
}
-#endif
}
}
}
@@ -1039,6 +1072,7 @@ mouse_target_changed (WebKitWebView *webview,
{
define_cursors (xw, hitresult);
}
+#endif
static gboolean
run_file_chooser_cb (WebKitWebView *webview,
@@ -1102,24 +1136,127 @@ run_file_chooser_cb (WebKitWebView *webview,
#ifdef HAVE_X_WINDOWS
+static void
+xv_drag_begin_cb (GtkWidget *widget,
+ GdkDragContext *context,
+ gpointer user_data)
+{
+ struct xwidget_view *view = user_data;
+
+ if (view->passive_grab)
+ {
+ g_signal_handler_disconnect (view->passive_grab,
+ view->passive_grab_destruction_signal);
+ g_signal_handler_disconnect (view->passive_grab,
+ view->passive_grab_drag_signal);
+ view->passive_grab = NULL;
+ }
+}
+
static void
xwidget_button_1 (struct xwidget_view *view,
bool down_p, int x, int y, int button,
int modifier_state, Time time)
{
- GdkEvent *xg_event = gdk_event_new (down_p ? GDK_BUTTON_PRESS :
GDK_BUTTON_RELEASE);
+ GdkEvent *xg_event;
struct xwidget *model = XXWIDGET (view->model);
GtkWidget *target;
+ GtkWidget *ungrab_target;
+ GdkWindow *toplevel, *target_window;
+ int view_x, view_y;
/* X and Y should be relative to the origin of view->wdesc. */
x += view->clip_left;
y += view->clip_top;
- target = find_widget_at_pos (model->widgetwindow_osr, x, y, &x, &y);
+ view_x = x;
+ view_y = y;
+
+ target = find_widget_at_pos (model->widgetwindow_osr, x, y, &x, &y,
+ true, view);
if (!target)
target = model->widget_osr;
+ if (down_p && !view->passive_grab)
+ {
+ view->passive_grab = target;
+ view->passive_grab_destruction_signal
+ = g_signal_connect (G_OBJECT (view->passive_grab),
+ "destroy", G_CALLBACK (gtk_widget_destroyed),
+ &view->passive_grab);
+ view->passive_grab_drag_signal
+ = g_signal_connect (G_OBJECT (view->passive_grab),
+ "drag-begin", G_CALLBACK (xv_drag_begin_cb),
+ view);
+ }
+ else
+ {
+ ungrab_target = find_widget_at_pos (model->widgetwindow_osr,
+ view_x, view_y, &x, &y,
+ false, NULL);
+
+ if (view->last_crossing_window && ungrab_target)
+ {
+ xw_maybe_synthesize_crossing (view, gtk_widget_get_window
(ungrab_target),
+ view_x, view_y, XW_CROSSING_NONE,
+ time, modifier_state);
+ }
+ else
+ {
+ toplevel = gtk_widget_get_window (model->widgetwindow_osr);
+ xg_event = gdk_event_new (GDK_LEAVE_NOTIFY);
+ target_window = gtk_widget_get_window (target);
+ window_coords_from_toplevel (target_window, toplevel, view_x,
+ view_y, &x, &y);
+
+ xg_event->crossing.x = x;
+ xg_event->crossing.y = y;
+ xg_event->crossing.time = time;
+ xg_event->crossing.focus = FALSE;
+ xg_event->crossing.detail = GDK_NOTIFY_ANCESTOR;
+ xg_event->crossing.mode = GDK_CROSSING_UNGRAB;
+ xg_event->crossing.window = g_object_ref (target_window);
+ gdk_event_set_device (xg_event, find_suitable_pointer (view->frame));
+
+ gtk_main_do_event (xg_event);
+ gdk_event_free (xg_event);
+
+ xw_notify_virtual_upwards_until (view, target_window, toplevel,
toplevel,
+ modifier_state, view_x, view_y, time,
+ GDK_LEAVE_NOTIFY, false);
+
+ if (target_window != toplevel)
+ {
+ xg_event = gdk_event_new (GDK_LEAVE_NOTIFY);
+
+ xg_event->crossing.x = view_y;
+ xg_event->crossing.y = view_y;
+ xg_event->crossing.time = time;
+ xg_event->crossing.focus = FALSE;
+ xg_event->crossing.detail = GDK_NOTIFY_VIRTUAL;
+ xg_event->crossing.mode = GDK_CROSSING_UNGRAB;
+ xg_event->crossing.window = g_object_ref (toplevel);
+
+ gdk_event_set_device (xg_event, find_suitable_pointer
(view->frame));
+ gtk_main_do_event (xg_event);
+ gdk_event_free (xg_event);
+ }
+
+ }
+
+ if (view->passive_grab)
+ {
+ g_signal_handler_disconnect (view->passive_grab,
+ view->passive_grab_destruction_signal);
+ g_signal_handler_disconnect (view->passive_grab,
+ view->passive_grab_drag_signal);
+ view->passive_grab = NULL;
+ }
+ }
+
+ xg_event = gdk_event_new (down_p ? GDK_BUTTON_PRESS : GDK_BUTTON_RELEASE);
+
xg_event->any.window = gtk_widget_get_window (target);
g_object_ref (xg_event->any.window); /* The window will be unrefed
later by gdk_event_free. */
@@ -1156,44 +1293,48 @@ xwidget_button (struct xwidget_view *view,
|| FRAME_DISPLAY_INFO (view->frame)->xi2_version < 1)
#endif
{
- GdkEvent *xg_event = gdk_event_new (GDK_SCROLL);
- struct xwidget *model = XXWIDGET (view->model);
- GtkWidget *target;
-
- x += view->clip_left;
- y += view->clip_top;
-
- target = find_widget_at_pos (model->widgetwindow_osr, x, y, &x, &y);
-
- if (!target)
- target = model->widget_osr;
-
- xg_event->any.window = gtk_widget_get_window (target);
- g_object_ref (xg_event->any.window); /* The window will be unrefed
- later by gdk_event_free. */
- if (button == 4)
- xg_event->scroll.direction = GDK_SCROLL_UP;
- else if (button == 5)
- xg_event->scroll.direction = GDK_SCROLL_DOWN;
- else if (button == 6)
- xg_event->scroll.direction = GDK_SCROLL_LEFT;
- else
- xg_event->scroll.direction = GDK_SCROLL_RIGHT;
+ if (!down_p)
+ {
+ GdkEvent *xg_event = gdk_event_new (GDK_SCROLL);
+ struct xwidget *model = XXWIDGET (view->model);
+ GtkWidget *target;
+
+ x += view->clip_left;
+ y += view->clip_top;
+
+ target = find_widget_at_pos (model->widgetwindow_osr, x, y, &x, &y,
+ true, view);
+
+ if (!target)
+ target = model->widget_osr;
+
+ xg_event->any.window = gtk_widget_get_window (target);
+ g_object_ref (xg_event->any.window); /* The window will be unrefed
+ later by gdk_event_free. */
+ if (button == 4)
+ xg_event->scroll.direction = GDK_SCROLL_UP;
+ else if (button == 5)
+ xg_event->scroll.direction = GDK_SCROLL_DOWN;
+ else if (button == 6)
+ xg_event->scroll.direction = GDK_SCROLL_LEFT;
+ else
+ xg_event->scroll.direction = GDK_SCROLL_RIGHT;
- xg_event->scroll.device = find_suitable_pointer (view->frame);
+ xg_event->scroll.device = find_suitable_pointer (view->frame);
- xg_event->scroll.x = x;
- xg_event->scroll.x_root = x;
- xg_event->scroll.y = y;
- xg_event->scroll.y_root = y;
- xg_event->scroll.state = modifier_state;
- xg_event->scroll.time = time;
+ xg_event->scroll.x = x;
+ xg_event->scroll.x_root = x;
+ xg_event->scroll.y = y;
+ xg_event->scroll.y_root = y;
+ xg_event->scroll.state = modifier_state;
+ xg_event->scroll.time = time;
- xg_event->scroll.delta_x = 0;
- xg_event->scroll.delta_y = 0;
+ xg_event->scroll.delta_x = 0;
+ xg_event->scroll.delta_y = 0;
- gtk_main_do_event (xg_event);
- gdk_event_free (xg_event);
+ gtk_main_do_event (xg_event);
+ gdk_event_free (xg_event);
+ }
}
}
@@ -1217,14 +1358,19 @@ xwidget_motion_notify (struct xwidget_view *view,
target = find_widget_at_pos (model->widgetwindow_osr,
lrint (x + view->clip_left),
lrint (y + view->clip_top),
- &target_x, &target_y);
+ &target_x, &target_y,
+ true, view);
if (!target)
{
- target_x = lrint (x);
- target_y = lrint (y);
+ target_x = lrint (x + view->clip_left);
+ target_y = lrint (y + view->clip_top);
target = model->widget_osr;
}
+ else if (xw_maybe_synthesize_crossing (view, gtk_widget_get_window (target),
+ x + view->clip_left, y +
view->clip_top,
+ XW_CROSSING_NONE, time, state))
+ return;
xg_event = gdk_event_new (GDK_MOTION_NOTIFY);
xg_event->any.window = gtk_widget_get_window (target);
@@ -1260,7 +1406,8 @@ xwidget_scroll (struct xwidget_view *view, double x,
double y,
target = find_widget_at_pos (model->widgetwindow_osr,
lrint (x + view->clip_left),
lrint (y + view->clip_top),
- &target_x, &target_y);
+ &target_x, &target_y,
+ true, view);
if (!target)
{
@@ -1309,7 +1456,8 @@ xwidget_pinch (struct xwidget_view *view,
XIGesturePinchEvent *xev)
target = find_widget_at_pos (model->widgetwindow_osr,
lrint (x + view->clip_left),
lrint (y + view->clip_top),
- &target_x, &target_y);
+ &target_x, &target_y,
+ true, view);
if (!target)
{
@@ -1376,13 +1524,331 @@ xi_translate_notify_detail (int detail)
}
#endif
+static void
+window_coords_from_toplevel (GdkWindow *window, GdkWindow *toplevel,
+ int x, int y, int *out_x, int *out_y)
+{
+ GdkWindow *parent;
+ GList *children, *l;
+ gdouble x_out, y_out;
+
+ if (window == toplevel)
+ {
+ *out_x = x;
+ *out_y = y;
+ return;
+ }
+
+ children = NULL;
+ while ((parent = gdk_window_get_parent (window)) != toplevel)
+ {
+ children = g_list_prepend (children, window);
+ window = parent;
+ }
+
+ for (l = children; l != NULL; l = l->next)
+ gdk_window_coords_from_parent (l->data, x, y, &x_out, &y_out);
+
+ g_list_free (children);
+
+ *out_x = x_out;
+ *out_y = y_out;
+}
+
+static GdkWindow *
+xw_find_common_ancestor (GdkWindow *window,
+ GdkWindow *other,
+ GdkWindow *toplevel)
+{
+ GdkWindow *tem;
+ GList *l1 = NULL;
+ GList *l2 = NULL;
+ GList *i1, *i2;
+
+ tem = window;
+ while (tem && tem != toplevel)
+ {
+ l1 = g_list_prepend (l1, tem);
+ tem = gdk_window_get_parent (tem);
+ }
+
+ tem = other;
+ while (tem && tem != toplevel)
+ {
+ l2 = g_list_prepend (l2, tem);
+ tem = gdk_window_get_parent (tem);
+ }
+
+ tem = NULL;
+ i1 = l1;
+ i2 = l2;
+
+ while (i1 && i2 && (i1->data == i2->data))
+ {
+ tem = i1->data;
+ i1 = i1->next;
+ i2 = i2->next;
+ }
+
+ g_list_free (l1);
+ g_list_free (l2);
+
+ return tem;
+}
+
+static void
+xw_notify_virtual_upwards_until (struct xwidget_view *xv,
+ GdkWindow *window,
+ GdkWindow *until,
+ GdkWindow *toplevel,
+ unsigned int state,
+ int x, int y, Time time,
+ GdkEventType type,
+ bool nonlinear_p)
+{
+ GdkEvent *xg_event;
+ GdkWindow *tem;
+ int cx, cy;
+
+ for (tem = gdk_window_get_parent (window);
+ tem && (tem != until);
+ tem = gdk_window_get_parent (tem))
+ {
+ xg_event = gdk_event_new (type);
+
+ gdk_event_set_device (xg_event, find_suitable_pointer (xv->frame));
+ window_coords_from_toplevel (tem, toplevel, x, y, &cx, &cy);
+ xg_event->crossing.x = cx;
+ xg_event->crossing.y = cy;
+ xg_event->crossing.time = time;
+ xg_event->crossing.focus = FALSE;
+ xg_event->crossing.detail = (nonlinear_p
+ ? GDK_NOTIFY_NONLINEAR_VIRTUAL
+ : GDK_NOTIFY_VIRTUAL);
+ xg_event->crossing.mode = GDK_CROSSING_NORMAL;
+ xg_event->crossing.window = g_object_ref (tem);
+
+ gtk_main_do_event (xg_event);
+ gdk_event_free (xg_event);
+ }
+}
+
+static void
+xw_notify_virtual_downwards_until (struct xwidget_view *xv,
+ GdkWindow *window,
+ GdkWindow *until,
+ GdkWindow *toplevel,
+ unsigned int state,
+ int x, int y, Time time,
+ GdkEventType type,
+ bool nonlinear_p)
+{
+ GdkEvent *xg_event;
+ GdkWindow *tem;
+ int cx, cy;
+ GList *path = NULL, *it;
+
+ tem = gdk_window_get_parent (window);
+
+ while (tem && tem != until)
+ {
+ path = g_list_prepend (path, tem);
+ tem = gdk_window_get_parent (tem);
+ }
+
+ for (it = path; it; it = it->next)
+ {
+ tem = it->data;
+ xg_event = gdk_event_new (type);
+
+ gdk_event_set_device (xg_event, find_suitable_pointer (xv->frame));
+ window_coords_from_toplevel (tem, toplevel, x, y, &cx, &cy);
+ xg_event->crossing.x = cx;
+ xg_event->crossing.y = cy;
+ xg_event->crossing.time = time;
+ xg_event->crossing.focus = FALSE;
+ xg_event->crossing.detail = (nonlinear_p
+ ? GDK_NOTIFY_NONLINEAR_VIRTUAL
+ : GDK_NOTIFY_VIRTUAL);
+ xg_event->crossing.mode = GDK_CROSSING_NORMAL;
+ xg_event->crossing.window = g_object_ref (tem);
+
+ gtk_main_do_event (xg_event);
+ gdk_event_free (xg_event);
+ }
+
+ g_list_free (path);
+}
+
+static void
+xw_update_cursor_for_view (struct xwidget_view *xv,
+ GdkWindow *crossing_window)
+{
+ GdkCursor *xg_cursor;
+ Cursor cursor;
+
+ xg_cursor = gdk_window_get_cursor (crossing_window);
+
+ if (xg_cursor)
+ {
+ cursor = gdk_x11_cursor_get_xcursor (xg_cursor);
+
+ if (gdk_x11_cursor_get_xdisplay (xg_cursor) == xv->dpy)
+ xv->cursor = cursor;
+ }
+ else
+ xv->cursor = FRAME_OUTPUT_DATA (xv->frame)->nontext_cursor;
+
+ if (xv->wdesc != None)
+ XDefineCursor (xv->dpy, xv->wdesc, xv->cursor);
+}
+
+static void
+xw_last_crossing_cursor_cb (GdkWindow *window,
+ GParamSpec *spec,
+ gpointer user_data)
+{
+ xw_update_cursor_for_view (user_data, window);
+}
+
+static bool
+xw_maybe_synthesize_crossing (struct xwidget_view *view,
+ GdkWindow *current_window,
+ int x, int y, int crossing,
+ Time time, unsigned int state)
+{
+ GdkWindow *last_crossing, *toplevel, *ancestor;
+ GdkEvent *xg_event;
+ int cx, cy;
+ bool nonlinear_p;
+
+ toplevel = gtk_widget_get_window (XXWIDGET (view->model)->widgetwindow_osr);
+
+ if (crossing == XW_CROSSING_LEFT
+ && (view->last_crossing_window
+ && !gdk_window_is_destroyed (view->last_crossing_window)))
+ {
+ xw_notify_virtual_upwards_until (view, view->last_crossing_window,
+ toplevel, toplevel,
+ state, x, y, time,
+ GDK_LEAVE_NOTIFY, false);
+ }
+
+ if (view->last_crossing_window
+ && (gdk_window_is_destroyed (view->last_crossing_window)
+ || crossing == XW_CROSSING_LEFT))
+ {
+ g_signal_handler_disconnect (view->last_crossing_window,
+ view->last_crossing_cursor_signal);
+ g_clear_pointer (&view->last_crossing_window,
+ g_object_unref);
+ }
+ last_crossing = view->last_crossing_window;
+
+ if (!last_crossing)
+ {
+ if (current_window)
+ {
+ view->last_crossing_window = g_object_ref (current_window);
+ xw_update_cursor_for_view (view, current_window);
+ view->last_crossing_cursor_signal
+ = g_signal_connect (G_OBJECT (current_window), "notify::cursor",
+ G_CALLBACK (xw_last_crossing_cursor_cb), view);
+
+ xw_notify_virtual_downwards_until (view, current_window,
+ toplevel, toplevel,
+ state, x, y, time,
+ GDK_ENTER_NOTIFY,
+ false);
+ }
+ return false;
+ }
+
+ if (last_crossing != current_window)
+ {
+ view->last_crossing_window = g_object_ref (current_window);
+ g_signal_handler_disconnect (last_crossing,
view->last_crossing_cursor_signal);
+
+ xw_update_cursor_for_view (view, current_window);
+ view->last_crossing_cursor_signal
+ = g_signal_connect (G_OBJECT (current_window), "notify::cursor",
+ G_CALLBACK (xw_last_crossing_cursor_cb), view);
+
+ ancestor = xw_find_common_ancestor (last_crossing, current_window,
toplevel);
+
+ if (!ancestor)
+ emacs_abort ();
+
+ nonlinear_p = (last_crossing != ancestor) && (current_window !=
ancestor);
+
+ if (nonlinear_p || (last_crossing != ancestor))
+ xw_notify_virtual_upwards_until (view, last_crossing,
+ ancestor, toplevel,
+ state, x, y, time,
+ GDK_LEAVE_NOTIFY,
+ nonlinear_p);
+
+ xg_event = gdk_event_new (GDK_LEAVE_NOTIFY);
+ gdk_event_set_device (xg_event, find_suitable_pointer (view->frame));
+ window_coords_from_toplevel (last_crossing, toplevel,
+ x, y, &cx, &cy);
+ xg_event->crossing.x = cx;
+ xg_event->crossing.y = cy;
+ xg_event->crossing.time = time;
+ xg_event->crossing.focus = FALSE;
+ xg_event->crossing.state = state;
+ /* TODO: actually calculate the event mode. */
+ xg_event->crossing.detail = (nonlinear_p
+ ? GDK_NOTIFY_NONLINEAR
+ : (last_crossing == ancestor
+ ? GDK_NOTIFY_INFERIOR
+ : GDK_NOTIFY_ANCESTOR));
+ xg_event->crossing.mode = GDK_CROSSING_NORMAL;
+ xg_event->crossing.window = g_object_ref (last_crossing);
+
+ gtk_main_do_event (xg_event);
+ gdk_event_free (xg_event);
+
+ if (nonlinear_p || (current_window != ancestor))
+ xw_notify_virtual_downwards_until (view, current_window,
+ ancestor, toplevel,
+ state, x, y, time,
+ GDK_ENTER_NOTIFY,
+ nonlinear_p);
+
+ xg_event = gdk_event_new (GDK_ENTER_NOTIFY);
+ gdk_event_set_device (xg_event, find_suitable_pointer (view->frame));
+ window_coords_from_toplevel (current_window, toplevel,
+ x, y, &cx, &cy);
+ xg_event->crossing.x = cx;
+ xg_event->crossing.y = cy;
+ xg_event->crossing.time = time;
+ xg_event->crossing.focus = FALSE;
+ xg_event->crossing.state = state;
+ xg_event->crossing.detail = (nonlinear_p
+ ? GDK_NOTIFY_NONLINEAR
+ : (current_window == ancestor
+ ? GDK_NOTIFY_INFERIOR
+ : GDK_NOTIFY_ANCESTOR));
+ xg_event->crossing.mode = GDK_CROSSING_NORMAL;
+ xg_event->crossing.window = g_object_ref (current_window);
+
+ gtk_main_do_event (xg_event);
+ gdk_event_free (xg_event);
+ g_object_unref (last_crossing);
+
+ return true;
+ }
+
+ return false;
+}
+
void
xwidget_motion_or_crossing (struct xwidget_view *view, const XEvent *event)
{
GdkEvent *xg_event;
struct xwidget *model = XXWIDGET (view->model);
- int x;
- int y;
+ int x, y, toplevel_x, toplevel_y;
GtkWidget *target;
#ifdef HAVE_XINPUT2
XIEnterEvent *xev = NULL;
@@ -1400,14 +1866,15 @@ xwidget_motion_or_crossing (struct xwidget_view *view,
const XEvent *event)
: (event->type == LeaveNotify
? GDK_LEAVE_NOTIFY
: GDK_ENTER_NOTIFY));
+ toplevel_x = (event->type == MotionNotify
+ ? event->xmotion.x + view->clip_left
+ : event->xcrossing.x + view->clip_left);
+ toplevel_y = (event->type == MotionNotify
+ ? event->xmotion.y + view->clip_top
+ : event->xcrossing.y + view->clip_top);
target = find_widget_at_pos (model->widgetwindow_osr,
- (event->type == MotionNotify
- ? event->xmotion.x + view->clip_left
- : event->xcrossing.x + view->clip_left),
- (event->type == MotionNotify
- ? event->xmotion.y + view->clip_top
- : event->xcrossing.y + view->clip_top),
- &x, &y);
+ toplevel_x, toplevel_y, &x, &y,
+ true, view);
}
#ifdef HAVE_XINPUT2
else
@@ -1420,9 +1887,11 @@ xwidget_motion_or_crossing (struct xwidget_view *view,
const XEvent *event)
? GDK_ENTER_NOTIFY
: GDK_LEAVE_NOTIFY);
target = find_widget_at_pos (model->widgetwindow_osr,
- lrint (xev->event_x + view->clip_left),
- lrint (xev->event_y + view->clip_top),
- &x, &y);
+ (toplevel_x
+ = lrint (xev->event_x + view->clip_left)),
+ (toplevel_y
+ = lrint (xev->event_y + view->clip_top)),
+ &x, &y, true, view);
}
#endif
@@ -1436,19 +1905,30 @@ xwidget_motion_or_crossing (struct xwidget_view *view,
const XEvent *event)
if (event->type == MotionNotify)
{
- xg_event->motion.x = x;
- xg_event->motion.y = y;
- xg_event->motion.x_root = event->xmotion.x_root;
- xg_event->motion.y_root = event->xmotion.y_root;
- xg_event->motion.time = event->xmotion.time;
- xg_event->motion.state = event->xmotion.state;
- xg_event->motion.device = find_suitable_pointer (view->frame);
+ if (!xw_maybe_synthesize_crossing (view, xg_event->any.window,
+ toplevel_x, toplevel_y,
+ XW_CROSSING_NONE, event->xmotion.time,
+ event->xmotion.state))
+ {
+ xg_event->motion.x = x;
+ xg_event->motion.y = y;
+ xg_event->motion.x_root = event->xmotion.x_root;
+ xg_event->motion.y_root = event->xmotion.y_root;
+ xg_event->motion.time = event->xmotion.time;
+ xg_event->motion.state = event->xmotion.state;
+ xg_event->motion.device = find_suitable_pointer (view->frame);
+ }
+ else
+ {
+ gdk_event_free (xg_event);
+ return;
+ }
}
#ifdef HAVE_XINPUT2
else if (event->type == GenericEvent)
{
- xg_event->crossing.x = (gdouble) xev->event_x;
- xg_event->crossing.y = (gdouble) xev->event_y;
+ xg_event->crossing.x = x;
+ xg_event->crossing.y = y;
xg_event->crossing.x_root = (gdouble) xev->root_x;
xg_event->crossing.y_root = (gdouble) xev->root_y;
xg_event->crossing.time = xev->time;
@@ -1467,11 +1947,36 @@ xwidget_motion_or_crossing (struct xwidget_view *view,
const XEvent *event)
xg_event->crossing.state |= GDK_BUTTON3_MASK;
}
+ if (view->passive_grab
+ || xw_maybe_synthesize_crossing (view, xg_event->any.window,
+ toplevel_x, toplevel_y,
+ (xev->type == XI_Enter
+ ? XW_CROSSING_ENTERED
+ : XW_CROSSING_LEFT),
+ xev->time, xg_event->crossing.state))
+ {
+ gdk_event_free (xg_event);
+ return;
+ }
+
gdk_event_set_device (xg_event, find_suitable_pointer (view->frame));
}
#endif
else
{
+ if (view->passive_grab
+ || xw_maybe_synthesize_crossing (view, xg_event->any.window,
+ toplevel_x, toplevel_y,
+ (event->type == EnterNotify
+ ? XW_CROSSING_ENTERED
+ : XW_CROSSING_LEFT),
+ event->xcrossing.time,
+ event->xcrossing.state))
+ {
+ gdk_event_free (xg_event);
+ return;
+ }
+
xg_event->crossing.detail = min (5, event->xcrossing.detail);
xg_event->crossing.time = event->xcrossing.time;
xg_event->crossing.x = x;
@@ -1855,7 +2360,7 @@ webkit_js_to_lisp (JSCValue *value)
const gint32 dlen = jsc_value_to_int32 (len);
Lisp_Object obj;
- if (! (0 <= dlen && dlen < PTRDIFF_MAX + 1.0))
+ if (! (0 <= dlen && dlen < G_MAXINT32))
memory_full (SIZE_MAX);
ptrdiff_t n = dlen;
@@ -2132,8 +2637,10 @@ xwidget_init_view (struct xwidget *xww,
xv->wdesc = None;
xv->frame = s->f;
- xv->cursor = cursor_for_hit (xww->hit_result, s->f);
+ xv->cursor = FRAME_OUTPUT_DATA (s->f)->nontext_cursor;
xv->just_resized = false;
+ xv->last_crossing_window = NULL;
+ xv->passive_grab = NULL;
#elif defined HAVE_PGTK
xv->dpyinfo = FRAME_DISPLAY_INFO (s->f);
xv->widget = gtk_drawing_area_new ();
@@ -2406,8 +2913,11 @@ x_draw_xwidget_glyph_string (struct glyph_string *s)
#endif
#if defined HAVE_XINPUT2 || defined HAVE_PGTK
- record_osr_embedder (xv);
- synthesize_focus_in_event (xww->widget_osr);
+ if (!NILP (xww->buffer))
+ {
+ record_osr_embedder (xv);
+ synthesize_focus_in_event (xww->widget_osr);
+ }
#endif
#ifdef USE_GTK
@@ -2756,6 +3266,22 @@ DEFUN ("delete-xwidget-view",
XDestroyWindow (xv->dpy, xv->wdesc);
Fremhash (make_fixnum (xv->wdesc), x_window_to_xwv_map);
}
+
+ if (xv->last_crossing_window)
+ g_signal_handler_disconnect (xv->last_crossing_window,
+ xv->last_crossing_cursor_signal);
+ g_clear_pointer (&xv->last_crossing_window,
+ g_object_unref);
+
+ if (xv->passive_grab)
+ {
+ g_signal_handler_disconnect (xv->passive_grab,
+ xv->passive_grab_destruction_signal);
+ g_signal_handler_disconnect (xv->passive_grab,
+ xv->passive_grab_drag_signal);
+ xv->passive_grab = NULL;
+ }
+
#else
gtk_widget_destroy (xv->widget);
#endif
diff --git a/src/xwidget.h b/src/xwidget.h
index ee74e53c4d..be1460ede5 100644
--- a/src/xwidget.h
+++ b/src/xwidget.h
@@ -118,6 +118,12 @@ struct xwidget_view
#ifndef HAVE_PGTK
Display *dpy;
Window wdesc;
+
+ GdkWindow *last_crossing_window;
+ guint last_crossing_cursor_signal;
+ GtkWidget *passive_grab;
+ guint passive_grab_destruction_signal;
+ guint passive_grab_drag_signal;
#else
struct pgtk_display_info *dpyinfo;
GtkWidget *widget;
diff --git a/test/Makefile.in b/test/Makefile.in
index d6ab7b244d..9ad994e110 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -75,7 +75,7 @@ EMACS_EXTRAOPT =
EMACSOPT = --no-init-file --no-site-file --no-site-lisp -L
"$(SEPCHAR)$(srcdir)" $(elpa_opts) $(EMACS_EXTRAOPT)
# Prevent any settings in the user environment causing problems.
-unexport EMACSDATA EMACSDOC EMACSPATH GREP_OPTIONS XDG_CONFIG_HOME
+unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH GREP_OPTIONS
XDG_CONFIG_HOME
# To run tests under a debugger, set this to eg: "gdb --args".
GDB =
@@ -118,10 +118,8 @@ MODULES_EMACSOPT :=
endif
# The actual Emacs command run in the targets below.
-# Prevent any setting of EMACSLOADPATH in user environment causing problems,
-# and prevent locals to influence the text of the errors we expect to receive.
-emacs = LANG=C EMACSLOADPATH= \
- EMACS_TEST_DIRECTORY=$(abspath $(srcdir)) \
+# Prevent locales influencing the text of the errors we expect to receive.
+emacs = LANG=C EMACS_TEST_DIRECTORY=$(abspath $(srcdir)) \
$(GDB) $(TEST_TIMEOUT) "$(EMACS)" $(MODULES_EMACSOPT) $(EMACSOPT)
# Set HOME to a nonexistent directory to prevent tests from accessing
diff --git a/test/README b/test/README
index e44c4a43ee..2ab34ba20e 100644
--- a/test/README
+++ b/test/README
@@ -111,8 +111,8 @@ debugging. To do that, use
By default, ERT test failure summaries are quite brief in batch
mode--only the names of the failed tests are listed. If the
-$EMACS_TEST_VERBOSE environment variable is set, the failure summaries
-will also include the data from the failing test.
+$EMACS_TEST_VERBOSE environment variable is set and non-empty, the
+failure summaries will also include the data from the failing test.
If the $EMACS_TEST_JUNIT_REPORT environment variable is set to a file
name, a JUnit test report is generated under this name.
diff --git a/test/lisp/auth-source-tests.el b/test/lisp/auth-source-tests.el
index 7060d9570e..41f8b6d8c9 100644
--- a/test/lisp/auth-source-tests.el
+++ b/test/lisp/auth-source-tests.el
@@ -295,11 +295,7 @@
(setq found (apply #'auth-source-search parameters))
(when (listp found)
(dolist (f found)
- (setf f (plist-put f :secret
- (let ((secret (plist-get f :secret)))
- (if (functionp secret)
- (funcall secret)
- secret))))))
+ (setf f (plist-put f :secret (auth-info-password f)))))
(setq found-as-string (format "%s: %S" testname found))
;; (message "With parameters %S found: [%s] needed: [%s]"
@@ -326,10 +322,7 @@
auth-info
(car (auth-source-search
:max 1 :host host :require '(:user :secret) :create t))
- auth-passwd (plist-get auth-info :secret)
- auth-passwd (if (functionp auth-passwd)
- (funcall auth-passwd)
- auth-passwd))
+ auth-passwd (auth-info-password auth-info))
(should (string-equal (plist-get auth-info :user)
(user-login-name)))
(should (string-equal (plist-get auth-info :host) host))
(should (equal auth-passwd passwd))
@@ -339,10 +332,7 @@
;; Check, that the item has been created indeed.
(auth-source-forget+ :host t)
(setq auth-info (car (auth-source-search :host host))
- auth-passwd (plist-get auth-info :secret)
- auth-passwd (if (functionp auth-passwd)
- (funcall auth-passwd)
- auth-passwd))
+ auth-passwd (auth-info-password auth-info))
(if (zerop (length passwd))
(progn
(should-not (plist-get auth-info :user))
@@ -377,10 +367,7 @@
auth-info
(car (auth-source-search
:max 1 :host host :require '(:user :secret) :create t))
- auth-passwd (plist-get auth-info :secret)
- auth-passwd (if (functionp auth-passwd)
- (funcall auth-passwd)
- auth-passwd))
+ auth-passwd (auth-info-password auth-info))
(should (string-equal (plist-get auth-info :user) (user-login-name)))
(should (string-equal (plist-get auth-info :host) host))
(should (equal auth-passwd passwd))
@@ -391,10 +378,7 @@
(auth-source-forget+ :host t)
(setq auth-source-netrc-cache nil)
(setq auth-info (car (auth-source-search :host host))
- auth-passwd (plist-get auth-info :secret)
- auth-passwd (if (functionp auth-passwd)
- (funcall auth-passwd)
- auth-passwd))
+ auth-passwd (auth-info-password auth-info))
(with-temp-buffer
(insert-file-contents netrc-file)
(if (zerop (length passwd))
@@ -421,9 +405,7 @@ machine c1 port c2 user c3 password c4\n"
(parameters '(:max 1 :host t))
(found (apply #'auth-source-delete parameters)))
(dolist (f found)
- (let ((s (plist-get f :secret)))
- (setf f (plist-put f :secret
- (if (functionp s) (funcall s) s)))))
+ (setf f (plist-put f :secret (auth-info-password f))))
;; Note: The netrc backend doesn't delete anything, so
;; this is actually the same as `auth-source-search'.
(should (equal found expected)))))
diff --git a/test/lisp/elide-head-tests.el b/test/lisp/elide-head-tests.el
index 804617f48f..6f351170f1 100644
--- a/test/lisp/elide-head-tests.el
+++ b/test/lisp/elide-head-tests.el
@@ -28,41 +28,67 @@
(require 'elide-head)
(require 'ert)
+(require 'ert-x)
-(ert-deftest elide-head-tests-elide-head ()
+(ert-deftest elide-head-tests-elide-head-mode ()
(let ((elide-head-headers-to-hide '(("START" . "END"))))
(with-temp-buffer
(insert "foo\nSTART\nHIDDEN\nEND\nbar")
- (elide-head)
+ (elide-head-mode 1)
(let ((o (car (overlays-at 14))))
(should (= (overlay-start o) 10))
(should (= (overlay-end o) 21))
(should (overlay-get o 'invisible))
(should (overlay-get o 'evaporate))))))
-(ert-deftest elide-head-tests-elide-head-with-prefix-arg ()
+(ert-deftest elide-head-tests-elide-head-mode/enable-disable ()
(let ((elide-head-headers-to-hide '(("START" . "END"))))
(with-temp-buffer
(insert "foo\nSTART\nHIDDEN\nEND\nbar")
- (elide-head)
+ (elide-head-mode 1)
(should (overlays-at 14))
- (elide-head t)
+ (elide-head-mode -1)
(should-not (overlays-at 14)))))
-(ert-deftest elide-head-tests-show ()
- (let ((elide-head-headers-to-hide '(("START" . "END"))))
- (with-temp-buffer
- (insert "foo\nSTART\nHIDDEN\nEND\nbar")
- (elide-head)
- (should (overlays-at 14))
- (elide-head-show)
- (should-not (overlays-at 14)))))
+(ert-deftest elide-head-tests-elide-head-mode/normal-mode ()
+ (ert-with-temp-file fil
+ (with-temp-file fil
+ (insert "foo\nSTART\nHIDDEN\nEND\nbar"))
+ (let ((elide-head-headers-to-hide '(("START" . "END")))
+ (buf (find-file-noselect fil)))
+ (save-excursion
+ (unwind-protect
+ (progn
+ (set-buffer buf)
+ (elide-head-mode 1)
+ (should (= 1 (length (overlays-in (point-min) (point-max)))))
+ (normal-mode)
+ (should (= 0 (length (overlays-in (point-min) (point-max))))))
+ (when buf (kill-buffer buf)))))))
+
+(ert-deftest elide-head-tests-elide-head-mode/revert-buffer ()
+ (ert-with-temp-file fil
+ (with-temp-file fil
+ (insert "foo\nSTART\nHIDDEN\nEND\nbar"))
+ (let ((elide-head-headers-to-hide '(("START" . "END")))
+ (buf (find-file-noselect fil)))
+ (save-excursion
+ (unwind-protect
+ (progn
+ (set-buffer buf)
+ (elide-head-mode 1)
+ (should (= 1 (length (overlays-in (point-min) (point-max)))))
+ (revert-buffer nil t)
+ (elide-head-mode 1)
+ (should (= 1 (length (overlays-in (point-min) (point-max))))))
+ (when buf (kill-buffer buf)))))))
+
(defmacro elide-head--add-test (name text search-str)
`(ert-deftest ,(intern (format "elide-head--test-headers-to-hide/%s" name))
()
(with-temp-buffer
(insert ,text)
- (elide-head)
+ (elide-head-mode 1)
(goto-char (point-min))
(re-search-forward ,search-str)
(let ((o (car (overlays-at (match-beginning 0)))))
@@ -163,5 +189,39 @@
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA.
" "This program is distributed in the hope that")
+
+;;; Obsolete
+
+(with-suppressed-warnings ((obsolete elide-head)
+ (obsolete elide-head-show))
+ (ert-deftest elide-head-tests-elide-head ()
+ (let ((elide-head-headers-to-hide '(("START" . "END"))))
+ (with-temp-buffer
+ (insert "foo\nSTART\nHIDDEN\nEND\nbar")
+ (elide-head)
+ (let ((o (car (overlays-at 14))))
+ (should (= (overlay-start o) 10))
+ (should (= (overlay-end o) 21))
+ (should (overlay-get o 'invisible))
+ (should (overlay-get o 'evaporate))))))
+
+ (ert-deftest elide-head-tests-elide-head-with-prefix-arg ()
+ (let ((elide-head-headers-to-hide '(("START" . "END"))))
+ (with-temp-buffer
+ (insert "foo\nSTART\nHIDDEN\nEND\nbar")
+ (elide-head)
+ (should (overlays-at 14))
+ (elide-head t)
+ (should-not (overlays-at 14)))))
+
+ (ert-deftest elide-head-tests-show ()
+ (let ((elide-head-headers-to-hide '(("START" . "END"))))
+ (with-temp-buffer
+ (insert "foo\nSTART\nHIDDEN\nEND\nbar")
+ (elide-head)
+ (should (overlays-at 14))
+ (elide-head-show)
+ (should-not (overlays-at 14))))))
+
(provide 'elide-head-tests)
;;; elide-head-tests.el ends here
diff --git a/test/lisp/emacs-lisp/cl-generic-tests.el
b/test/lisp/emacs-lisp/cl-generic-tests.el
index 2ec01b2b5d..56b766769e 100644
--- a/test/lisp/emacs-lisp/cl-generic-tests.el
+++ b/test/lisp/emacs-lisp/cl-generic-tests.el
@@ -27,7 +27,7 @@
(require 'edebug)
;; Don't indirectly require `cl-lib' at run-time.
-(eval-when-compile (require 'ert))
+(require 'ert)
(declare-function ert--should-signal-hook "ert")
(declare-function ert--signal-should-execution "ert")
(declare-function ert-fail "ert")
diff --git a/test/lisp/emacs-lisp/copyright-tests.el
b/test/lisp/emacs-lisp/copyright-tests.el
index dc82974a99..b00d697aa6 100644
--- a/test/lisp/emacs-lisp/copyright-tests.el
+++ b/test/lisp/emacs-lisp/copyright-tests.el
@@ -50,5 +50,47 @@
(dolist (test copyright-tests--data)
(with-copyright-test (car test) (cdr test))))
+(ert-deftest test-end-chop ()
+ (should
+ (equal
+ (with-temp-buffer
+ (let ((copyright-query nil))
+ (insert (make-string (- copyright-limit 14) ?x) "\n"
+ "\nCopyright 2006, 2007, 2008 Foo Bar\n\n")
+ (copyright-update)
+ (buffer-substring (- (point-max) 42) (point-max))))
+ "Copyright 2006, 2007, 2008, 2022 Foo Bar\n\n")))
+
+(ert-deftest test-correct-notice ()
+ (should (equal
+ (with-temp-buffer
+ (dotimes (_ 2)
+ (insert "Copyright 2021 FSF\n"))
+ (let ((copyright-at-end-flag t)
+ (copyright-query nil))
+ (copyright-update))
+ (buffer-string))
+ "Copyright 2021 FSF\nCopyright 2021, 2022 FSF\n")))
+
+(defmacro with-copyright-fix-years-test (orig result)
+ `(let ((copyright-year-ranges t))
+ (with-temp-buffer
+ (insert ,orig)
+ (copyright-fix-years)
+ (should (equal (buffer-string) ,result)))))
+
+(defvar copyright-fix-years-tests--data
+ '((";; Copyright (C) 2008, 2010, 2012"
+ . ";; Copyright (C) 2008, 2010, 2012")
+ (";; Copyright (C) 2008, 2009, 2010, 2013, 2014, 2015, 2016, 2018"
+ . ";; Copyright (C) 2008-2010, 2013-2016, 2018")
+ (";; Copyright (C) 2008-2010, 2011, 2015, 2016, 2017"
+ . ";; Copyright (C) 2008-2010, 2011, 2015-2017")))
+
+(ert-deftest text-copyright-fix-years ()
+ "Test basics of \\[copyright-fix-years]."
+ (dolist (test copyright-fix-years-tests--data)
+ (with-copyright-fix-years-test (car test) (cdr test))))
+
(provide 'copyright-tests)
;;; copyright-tests.el ends here
diff --git a/test/lisp/emacs-lisp/derived-tests.el
b/test/lisp/emacs-lisp/derived-tests.el
index d867a18183..547b16843d 100644
--- a/test/lisp/emacs-lisp/derived-tests.el
+++ b/test/lisp/emacs-lisp/derived-tests.el
@@ -40,4 +40,25 @@
(derived-tests--child-mode)
(should (equal (buffer-string) "PB CB MH AFP=S AFC=S ")))))
+(declare-function mode-a "derived-tests")
+(declare-function mode-b "derived-tests")
+(declare-function mode-c "derived-tests")
+(ert-deftest test-add-font-lock ()
+ (define-derived-mode mode-a fundamental-mode "mode-a"
+ (font-lock-add-keywords nil `(("a" 0 'font-lock-keyword-face))))
+ (define-derived-mode mode-b mode-a "mode-b"
+ (font-lock-add-keywords nil `(("b" 0 'font-lock-builtin-face))))
+ (define-derived-mode mode-c mode-b "mode-c"
+ (font-lock-add-keywords nil `(("c" 0 'font-lock-constant-face))))
+
+ (with-temp-buffer
+ (mode-c)
+ (should (equal font-lock-keywords
+ '(t (("c" 0 'font-lock-constant-face)
+ ("b" 0 'font-lock-builtin-face)
+ ("a" 0 'font-lock-keyword-face))
+ ("c" (0 'font-lock-constant-face))
+ ("b" (0 'font-lock-builtin-face))
+ ("a" (0 'font-lock-keyword-face)))))))
+
;;; derived-tests.el ends here
diff --git a/test/lisp/emacs-lisp/edebug-tests.el
b/test/lisp/emacs-lisp/edebug-tests.el
index d238bffdaa..35259a796a 100644
--- a/test/lisp/emacs-lisp/edebug-tests.el
+++ b/test/lisp/emacs-lisp/edebug-tests.el
@@ -1094,5 +1094,15 @@ This avoids potential duplicate definitions (Bug#41988)."
(edebug-new-definition name))))
(should-error (eval-buffer) :type 'invalid-read-syntax))))
+(ert-deftest edebug-tests-inline ()
+ "Check that Edebug can instrument inline functions (Bug#53068)."
+ (with-temp-buffer
+ (print '(define-inline edebug-tests-inline (arg)
+ (inline-quote ,arg))
+ (current-buffer))
+ (let ((edebug-all-defs t)
+ (edebug-initial-mode 'Go-nonstop))
+ (eval-buffer))))
+
(provide 'edebug-tests)
;;; edebug-tests.el ends here
diff --git a/test/lisp/emacs-lisp/ert-tests.el
b/test/lisp/emacs-lisp/ert-tests.el
index ac13064474..270cca1c2e 100644
--- a/test/lisp/emacs-lisp/ert-tests.el
+++ b/test/lisp/emacs-lisp/ert-tests.el
@@ -881,6 +881,9 @@ This macro is used to test if macroexpansion in `should'
works."
"Check that `lexical-binding' in `ert-deftest' has the file value."
(should (equal lexical-binding t)))
+(ert-deftest ert-test-get-explainer ()
+ (should (eq (ert--get-explainer 'string-equal) 'ert--explain-string-equal))
+ (should (eq (ert--get-explainer 'string=) 'ert--explain-string-equal)))
(provide 'ert-tests)
diff --git a/test/lisp/emacs-lisp/range-tests.el
b/test/lisp/emacs-lisp/range-tests.el
new file mode 100644
index 0000000000..660110aa1f
--- /dev/null
+++ b/test/lisp/emacs-lisp/range-tests.el
@@ -0,0 +1,65 @@
+;;; range-tests.el --- Tests for range.el -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2021-2022 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;
+
+;;; Code:
+
+(require 'range)
+(require 'ert)
+(require 'ert-x)
+
+(ert-deftest ranges ()
+ (should (equal (range-compress-list '(2 3 4 5 9 11 12 13))
+ '((2 . 5) 9 (11 . 13))))
+ (should (equal (range-uncompress '((2 . 5) 9 (11 . 13)))
+ '(2 3 4 5 9 11 12 13)))
+ (should (equal (range-normalize '(1 . 2))
+ '((1 . 2))))
+ (should (equal (range-difference '((1 . 10))
+ '((2 . 7)))
+ '(1 (8 . 10))))
+ (should (equal (range-intersection '((2 . 5) 9 (11 . 13))
+ '((5 . 12)))
+ '(5 9 (11 . 12))))
+ (should (equal (range-add-list '((2 . 5) 9 (11 . 13))
+ '(10 11 12 15 16 17))
+ '((2 . 5) (9 . 10) (11 . 13) (15 . 17))))
+ (should (equal (range-remove (copy-tree '((2 . 5) 9 (11 . 13)))
+ '((5 . 9)))
+ '((2 . 4) (11 . 13))))
+ (should (range-member-p 9 '((2 . 5) 9 (11 . 13))))
+ (should (range-member-p 12 '((2 . 5) 9 (11 . 13))))
+ (should (equal (range-list-intersection
+ '(4 5 6 7 8 9)
+ '((2 . 5) 9 (11 . 13)))
+ '(4 5 9)))
+ (should (equal (range-list-difference
+ '(4 5 6 7 8 9)
+ '((2 . 5) 9 (11 . 13)))
+ '(6 7 8)))
+ (should (equal (range-length '((2 . 5) 9 (11 . 13)))
+ 8))
+ (should (equal (range-concat '((2 . 5) 9 (11 . 13))
+ '(6 (12 . 15)))
+ '((2 . 6) 9 (11 . 15)))))
+
+;;; range-tests.el ends here
diff --git a/test/lisp/emacs-lisp/tabulated-list-tests.el
b/test/lisp/emacs-lisp/tabulated-list-tests.el
index 0074b10170..3ce4a63f4f 100644
--- a/test/lisp/emacs-lisp/tabulated-list-tests.el
+++ b/test/lisp/emacs-lisp/tabulated-list-tests.el
@@ -55,28 +55,37 @@
(ert-deftest tabulated-list-print ()
(tabulated-list--test-with-buffer
;; Basic printing.
- (should (string= (buffer-substring-no-properties (point-min) (point-max))
- " zzzz-game zzzz-game 2113
installed play zzzz in Emacs
- 4clojure 4clojure 1507 obsolete
Open and evaluate 4clojure.com questions
- abc-mode abc-mode 944 available
Major mode for editing abc music files
- mode mode 1128 installed A simple
mode for editing Actionscript 3 files\n"))
+ (should (string-equal
+ (buffer-substring-no-properties (point-min) (point-max))
+ "\
+ zzzz-game zzzz-game 2113 installed play zzzz in Emacs
+ 4clojure 4clojure 1507 obsolete Open and evaluate
4clojure.com questions
+ abc-mode abc-mode 944 available Major mode for editing abc
music files
+ mode mode 1128 installed A simple mode for editing
Actionscript 3 files
+"))
;; Preserve position.
(forward-line 3)
(let ((pos (thing-at-point 'line)))
(pop tabulated-list-entries)
(tabulated-list-print t)
(should (equal (thing-at-point 'line) pos))
- (should (string= (buffer-substring-no-properties (point-min) (point-max))
- " 4clojure 4clojure 1507
obsolete Open and evaluate 4clojure.com questions
- abc-mode abc-mode 944 available
Major mode for editing abc music files
- mode mode 1128 installed A simple
mode for editing Actionscript 3 files\n"))
+ (should (string-equal
+ (buffer-substring-no-properties (point-min) (point-max))
+ "\
+ 4clojure 4clojure 1507 obsolete Open and evaluate
4clojure.com questions
+ abc-mode abc-mode 944 available Major mode for editing abc
music files
+ mode mode 1128 installed A simple mode for editing
Actionscript 3 files
+"))
;; Check the UPDATE argument
(pop tabulated-list-entries)
(setf (cdr (car tabulated-list-entries)) (list ["x" "x" "944" "available"
" XX"]))
(tabulated-list-print t t)
- (should (string= (buffer-substring-no-properties (point-min) (point-max))
- " x x 944 available
XX
- mode mode 1128 installed A simple
mode for editing Actionscript 3 files\n"))
+ (should (string-equal
+ (buffer-substring-no-properties (point-min) (point-max))
+ "\
+ x x 944 available XX
+ mode mode 1128 installed A simple mode for editing
Actionscript 3 files
+"))
(should (equal (thing-at-point 'line) pos)))))
(ert-deftest tabulated-list-sort ()
@@ -86,11 +95,14 @@
(skip-chars-forward "[:blank:]")
(tabulated-list-sort)
(let ((text (buffer-substring-no-properties (point-min) (point-max))))
- (should (string= text
- " 4clojure 4clojure 1507
obsolete Open and evaluate 4clojure.com questions
- abc-mode abc-mode 944 available
Major mode for editing abc music files
- mode mode 1128 installed A simple
mode for editing Actionscript 3 files
- zzzz-game zzzz-game 2113 installed
play zzzz in Emacs\n"))
+ (should (string-equal
+ text
+ "\
+ 4clojure 4clojure 1507 obsolete Open and evaluate
4clojure.com questions
+ abc-mode abc-mode 944 available Major mode for editing abc
music files
+ mode mode 1128 installed A simple mode for editing
Actionscript 3 files
+ zzzz-game zzzz-game 2113 installed play zzzz in Emacs
+"))
(skip-chars-forward "^[:blank:]")
(skip-chars-forward "[:blank:]")
@@ -101,11 +113,14 @@
(should (string= text (buffer-substring-no-properties (point-min)
(point-max))))
;; Invert.
(tabulated-list-sort 1)
- (should (string= (buffer-substring-no-properties (point-min) (point-max))
- " zzzz-game zzzz-game 2113
installed play zzzz in Emacs
- mode mode 1128 installed A simple
mode for editing Actionscript 3 files
- abc-mode abc-mode 944 available
Major mode for editing abc music files
- 4clojure 4clojure 1507 obsolete
Open and evaluate 4clojure.com questions\n"))
+ (should (string-equal
+ (buffer-substring-no-properties (point-min) (point-max))
+ "\
+ zzzz-game zzzz-game 2113 installed play zzzz in Emacs
+ mode mode 1128 installed A simple mode for editing
Actionscript 3 files
+ abc-mode abc-mode 944 available Major mode for editing abc
music files
+ 4clojure 4clojure 1507 obsolete Open and evaluate
4clojure.com questions
+"))
;; Again
(tabulated-list-sort 1)
(should (string= text (buffer-substring-no-properties (point-min)
(point-max)))))
diff --git a/test/lisp/eshell/em-extpipe-tests.el
b/test/lisp/eshell/em-extpipe-tests.el
new file mode 100644
index 0000000000..0879ad5b0c
--- /dev/null
+++ b/test/lisp/eshell/em-extpipe-tests.el
@@ -0,0 +1,209 @@
+;;; em-extpipe-tests.el --- em-extpipe test suite -*- lexical-binding:t -*-
+
+;; Copyright (C) 2022 Free Software Foundation, Inc.
+
+;; Author: Sean Whitton <spwhitton@spwhitton.name>
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+
+;;; Code:
+
+(require 'cl-lib)
+(require 'ert)
+(require 'ert-x)
+(require 'em-extpipe)
+(eval-and-compile
+ (load (expand-file-name "eshell-tests-helpers"
+ (file-name-directory (or load-file-name
+ default-directory)))))
+
+(defvar eshell-history-file-name)
+(defvar eshell-test--max-subprocess-time)
+(declare-function eshell-command-result-p "eshell-tests-helpers")
+
+(defmacro em-extpipe-tests--deftest (name input &rest body)
+ (declare (indent 2))
+ `(ert-deftest ,name ()
+ (cl-macrolet
+ ((should-parse (expected)
+ `(let ((shell-file-name "sh")
+ (shell-command-switch "-c"))
+ ;; Strip `eshell-trap-errors'.
+ (should (equal ,expected
+ (cadr (eshell-parse-command input))))))
+ (with-substitute-for-temp (&rest body)
+ ;; Substitute name of an actual temporary file and/or
+ ;; buffer into `input'. The substitution logic is
+ ;; appropriate for only the use we put it to in this file.
+ `(ert-with-temp-file temp
+ (let ((temp-buffer (generate-new-buffer " *temp*" t)))
+ (unwind-protect
+ (let ((input
+ (replace-regexp-in-string
+ "temp\\([^>]\\|\\'\\)" temp
+ (string-replace "#<buffer temp>"
+ (buffer-name temp-buffer)
+ input))))
+ ,@body)
+ (when (buffer-name temp-buffer)
+ (kill-buffer temp-buffer))))))
+ (temp-should-string= (expected)
+ `(string= ,expected (string-trim-right
+ (with-temp-buffer
+ (insert-file-contents temp)
+ (buffer-string)))))
+ (temp-buffer-should-string= (expected)
+ `(string= ,expected (string-trim-right
+ (with-current-buffer temp-buffer
+ (buffer-string))))))
+ (skip-unless shell-file-name)
+ (skip-unless shell-command-switch)
+ (skip-unless (executable-find shell-file-name))
+ (let ((input ,input))
+ (with-temp-eshell ,@body)))))
+
+(em-extpipe-tests--deftest em-extpipe-test-1
+ "echo \"bar\" *| rev >temp"
+ (skip-unless (executable-find "rev"))
+ (should-parse '(eshell-named-command
+ "sh" (list "-c" "echo \"bar\" | rev >temp")))
+ (with-substitute-for-temp
+ (eshell-command-result-p input "^$")
+ (temp-should-string= "rab")))
+
+(em-extpipe-tests--deftest em-extpipe-test-2
+ "echo \"bar\" | rev *>temp"
+ (skip-unless (executable-find "rev"))
+ (should-parse
+ '(eshell-execute-pipeline
+ '((eshell-named-command "echo" (list (eshell-escape-arg "bar")))
+ (eshell-named-command "sh" (list "-c" "rev >temp")))))
+ (with-substitute-for-temp
+ (eshell-command-result-p input "^$")
+ (temp-should-string= "rab")))
+
+(em-extpipe-tests--deftest em-extpipe-test-3 "foo *| bar | baz -d"
+ (should-parse
+ '(eshell-execute-pipeline
+ '((eshell-named-command "sh" (list "-c" "foo | bar"))
+ (eshell-named-command "baz" (list "-d"))))))
+
+(em-extpipe-tests--deftest em-extpipe-test-4
+ "echo \"bar\" *| rev >#<buffer temp>"
+ (skip-unless (executable-find "rev"))
+ (should-parse
+ '(progn
+ (ignore
+ (eshell-set-output-handle 1 'overwrite
+ (get-buffer-create "temp")))
+ (eshell-named-command "sh"
+ (list "-c" "echo \"bar\" | rev"))))
+ (with-substitute-for-temp
+ (eshell-command-result-p input "^$")
+ (temp-buffer-should-string= "rab")))
+
+(em-extpipe-tests--deftest em-extpipe-test-5
+ "foo *| bar >#<buffer quux> baz"
+ (should-parse '(eshell-named-command
+ "sh" (list "-c" "foo | bar >#<buffer quux> baz"))))
+
+(em-extpipe-tests--deftest em-extpipe-test-6
+ "foo >#<buffer quux> *| bar baz"
+ (should-parse '(eshell-named-command
+ "sh" (list "-c" "foo >#<buffer quux> | bar baz"))))
+
+(em-extpipe-tests--deftest em-extpipe-test-7
+ "foo *| bar >#<buffer quux> >>#<process other>"
+ (should-parse
+ '(progn
+ (ignore
+ (eshell-set-output-handle 1 'overwrite
+ (get-buffer-create "quux")))
+ (ignore
+ (eshell-set-output-handle 1 'append
+ (get-process "other")))
+ (eshell-named-command "sh"
+ (list "-c" "foo | bar")))))
+
+(em-extpipe-tests--deftest em-extpipe-test-8
+ "foo *| bar >/dev/kill | baz"
+ (should-parse
+ '(eshell-execute-pipeline
+ '((progn
+ (ignore
+ (eshell-set-output-handle 1 'overwrite "/dev/kill"))
+ (eshell-named-command "sh"
+ (list "-c" "foo | bar")))
+ (eshell-named-command "baz")))))
+
+(em-extpipe-tests--deftest em-extpipe-test-9 "foo \\*| bar"
+ (should-parse
+ '(eshell-execute-pipeline
+ '((eshell-named-command "foo"
+ (list (eshell-escape-arg "*")))
+ (eshell-named-command "bar")))))
+
+(em-extpipe-tests--deftest em-extpipe-test-10 "foo \"*|\" *>bar"
+ (should-parse
+ '(eshell-named-command "sh" (list "-c" "foo \"*|\" >bar"))))
+
+(em-extpipe-tests--deftest em-extpipe-test-11 "foo '*|' bar"
+ (should-parse '(eshell-named-command
+ "foo" (list (eshell-escape-arg "*|") "bar"))))
+
+(em-extpipe-tests--deftest em-extpipe-test-12 ">foo bar *| baz"
+ (should-parse
+ '(eshell-named-command "sh" (list "-c" ">foo bar | baz"))))
+
+(em-extpipe-tests--deftest em-extpipe-test-13 "foo*|bar"
+ (should-parse '(eshell-execute-pipeline
+ '((eshell-named-command (concat "foo" "*"))
+ (eshell-named-command "bar")))))
+
+(em-extpipe-tests--deftest em-extpipe-test-14 "tac *<temp"
+ (skip-unless (executable-find "tac"))
+ (should-parse '(eshell-named-command "sh" (list "-c" "tac <temp")))
+ (with-substitute-for-temp
+ (with-temp-buffer (insert "bar\nbaz\n") (write-file temp))
+ (eshell-command-result-p input "baz\nbar")))
+
+(em-extpipe-tests--deftest em-extpipe-test-15 "echo \"bar\" *| cat"
+ (skip-unless (executable-find "cat"))
+ (should-parse
+ '(eshell-named-command "sh" (list "-c" "echo \"bar\" | cat")))
+ (cl-letf (((symbol-function 'eshell/cat)
+ (lambda (&rest _args) (eshell-print "nonsense"))))
+ (eshell-command-result-p input "bar")
+ (eshell-command-result-p "echo \"bar\" | cat" "nonsense")))
+
+(em-extpipe-tests--deftest em-extpipe-test-16 "echo \"bar\" *| rev"
+ (skip-unless (executable-find "rev"))
+ (should-parse
+ '(eshell-named-command "sh" (list "-c" "echo \"bar\" | rev")))
+ (let ((eshell-prefer-lisp-functions t))
+ (cl-letf (((symbol-function 'rev)
+ (lambda (&rest _args) (eshell-print "nonsense"))))
+ (eshell-command-result-p input "rab")
+ (eshell-command-result-p "echo \"bar\" | rev" "nonsense"))))
+
+;; Confirm we don't break input of sharp-quoted symbols (Bug#53518).
+(em-extpipe-tests--deftest em-extpipe-test-17 "funcall #'upcase foo"
+ (eshell-command-result-p input "FOO"))
+
+;;; em-extpipe-tests.el ends here
diff --git a/test/lisp/eshell/em-tramp-tests.el
b/test/lisp/eshell/em-tramp-tests.el
new file mode 100644
index 0000000000..7f054da514
--- /dev/null
+++ b/test/lisp/eshell/em-tramp-tests.el
@@ -0,0 +1,85 @@
+;;; em-tramp-tests.el --- em-tramp test suite -*- lexical-binding:t -*-
+
+;; Copyright (C) 2022 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(require 'ert)
+(require 'em-tramp)
+
+(ert-deftest em-tramp-test/su-default ()
+ "Test Eshell `su' command with no arguments."
+ (should (equal
+ (catch 'eshell-replace-command (eshell/su))
+ `(eshell-trap-errors
+ (eshell-named-command
+ "cd"
+ (list ,(format "/su:root@localhost:%s" default-directory)))))))
+
+(ert-deftest em-tramp-test/su-user ()
+ "Test Eshell `su' command with USER argument."
+ (should (equal
+ (catch 'eshell-replace-command (eshell/su "USER"))
+ `(eshell-trap-errors
+ (eshell-named-command
+ "cd"
+ (list ,(format "/su:USER@localhost:%s" default-directory)))))))
+
+(ert-deftest em-tramp-test/su-login ()
+ "Test Eshell `su' command with -/-l/--login option."
+ (dolist (args '(("--login")
+ ("-l")
+ ("-")))
+ (should (equal
+ (catch 'eshell-replace-command (apply #'eshell/su args))
+ `(eshell-trap-errors
+ (eshell-named-command
+ "cd"
+ (list "/su:root@localhost:~/")))))))
+
+(defun mock-eshell-named-command (&rest args)
+ "Dummy function to test Eshell `sudo' command rewriting."
+ (list default-directory args))
+
+(ert-deftest em-tramp-test/sudo-basic ()
+ "Test Eshell `sudo' command with default user."
+ (cl-letf (((symbol-function 'eshell-named-command)
+ #'mock-eshell-named-command))
+ (should (equal
+ (catch 'eshell-external (eshell/sudo "echo" "hi"))
+ `(,(format "/sudo:root@localhost:%s" default-directory)
+ ("echo" ("hi")))))
+ (should (equal
+ (catch 'eshell-external (eshell/sudo "echo" "-u" "hi"))
+ `(,(format "/sudo:root@localhost:%s" default-directory)
+ ("echo" ("-u" "hi")))))))
+
+(ert-deftest em-tramp-test/sudo-user ()
+ "Test Eshell `sudo' command with specified user."
+ (cl-letf (((symbol-function 'eshell-named-command)
+ #'mock-eshell-named-command))
+ (should (equal
+ (catch 'eshell-external (eshell/sudo "-u" "USER" "echo" "hi"))
+ `(,(format "/sudo:USER@localhost:%s" default-directory)
+ ("echo" ("hi")))))
+ (should (equal
+ (catch 'eshell-external (eshell/sudo "-u" "USER" "echo" "-u"
"hi"))
+ `(,(format "/sudo:USER@localhost:%s" default-directory)
+ ("echo" ("-u" "hi")))))))
+
+;;; em-tramp-tests.el ends here
diff --git a/test/lisp/eshell/esh-opt-tests.el
b/test/lisp/eshell/esh-opt-tests.el
index 532adfb733..5b30de414a 100644
--- a/test/lisp/eshell/esh-opt-tests.el
+++ b/test/lisp/eshell/esh-opt-tests.el
@@ -22,102 +22,267 @@
(require 'ert)
(require 'esh-opt)
-(ert-deftest esh-opt-process-args-test ()
- "Unit tests which verify correct behavior of `eshell--process-args'."
+(ert-deftest esh-opt-test/process-args ()
+ "Test behavior of `eshell--process-args'."
(should
(equal '(t)
(eshell--process-args
- "sudo"
- '("-a")
- '((?a "all" nil show-all "")))))
- (should
- (equal '(nil)
- (eshell--process-args
- "sudo"
- '("-g")
- '((?a "all" nil show-all "")))))
+ "sudo" '("-a")
+ '((?a "all" nil show-all
+ "do not ignore entries starting with .")))))
(should
(equal '("root" "world")
(eshell--process-args
- "sudo"
- '("-u" "root" "world")
- '((?u "user" t user "execute a command as another USER")))))
+ "sudo" '("-u" "root" "world")
+ '((?u "user" t user
+ "execute a command as another USER"))))))
+
+(ert-deftest esh-opt-test/process-args-parse-leading-options-only ()
+ "Test behavior of :parse-leading-options-only in `eshell--process-args'."
(should
(equal '(nil "emerge" "-uDN" "world")
(eshell--process-args
- "sudo"
- '("emerge" "-uDN" "world")
- '((?u "user" t user "execute a command as another USER")
+ "sudo" '("emerge" "-uDN" "world")
+ '((?u "user" t user
+ "execute a command as another USER")
:parse-leading-options-only))))
(should
(equal '("root" "emerge" "-uDN" "world")
(eshell--process-args
- "sudo"
- '("-u" "root" "emerge" "-uDN" "world")
- '((?u "user" t user "execute a command as another USER")
+ "sudo" '("-u" "root" "emerge" "-uDN" "world")
+ '((?u "user" t user
+ "execute a command as another USER")
:parse-leading-options-only))))
(should
- (equal '("world" "emerge")
+ (equal '("DN" "emerge" "world")
(eshell--process-args
- "sudo"
- '("-u" "root" "emerge" "-uDN" "world")
- '((?u "user" t user "execute a command as another USER"))))))
+ "sudo" '("-u" "root" "emerge" "-uDN" "world")
+ '((?u "user" t user
+ "execute a command as another USER"))))))
+
+(ert-deftest esh-opt-test/process-args-external ()
+ "Test behavior of :external in `eshell--process-args'."
+ (cl-letf (((symbol-function 'eshell-search-path) #'ignore))
+ (should
+ (equal '(nil "/some/path")
+ (eshell--process-args
+ "ls" '("/some/path")
+ '((?a "all" nil show-all
+ "do not ignore entries starting with .")
+ :external "ls")))))
+ (cl-letf (((symbol-function 'eshell-search-path) #'identity))
+ (should
+ (equal '(no-catch eshell-ext-command "ls")
+ (should-error
+ (eshell--process-args
+ "ls" '("-u" "/some/path")
+ '((?a "all" nil show-all
+ "do not ignore entries starting with .")
+ :external "ls"))
+ :type 'no-catch))))
+ (cl-letf (((symbol-function 'eshell-search-path) #'ignore))
+ (should-error
+ (eshell--process-args
+ "ls" '("-u" "/some/path")
+ '((?a "all" nil show-all
+ "do not ignore entries starting with .")
+ :external "ls"))
+ :type 'error)))
+
+(ert-deftest esh-opt-test/eval-using-options-short ()
+ "Test `eshell-eval-using-options' with short options."
+ (eshell-eval-using-options
+ "ls" '("-a" "/some/path")
+ '((?a "all" nil show-all
+ "do not ignore entries starting with ."))
+ (should (eq show-all t))
+ (should (equal args '("/some/path"))))
+ (eshell-eval-using-options
+ "ls" '("/some/path")
+ '((?a "all" nil show-all
+ "do not ignore entries starting with ."))
+ (should (eq show-all nil))
+ (should (equal args '("/some/path")))))
+
+(ert-deftest esh-opt-test/eval-using-options-long ()
+ "Test `eshell-eval-using-options' with long options."
+ (eshell-eval-using-options
+ "ls" '("--all" "/some/path")
+ '((?a "all" nil show-all
+ "do not ignore entries starting with ."))
+ (should (eq show-all t))
+ (should (equal args '("/some/path")))))
+
+(ert-deftest esh-opt-test/eval-using-options-constant ()
+ "Test `eshell-eval-using-options' with options with constant values."
+ (eshell-eval-using-options
+ "ls" '("/some/path" "-h")
+ '((?h "human-readable" 1024 human-readable
+ "print sizes in human readable format"))
+ (should (eql human-readable 1024))
+ (should (equal args '("/some/path"))))
+ (eshell-eval-using-options
+ "ls" '("/some/path" "--human-readable")
+ '((?h "human-readable" 1024 human-readable
+ "print sizes in human readable format"))
+ (should (eql human-readable 1024))
+ (should (equal args '("/some/path"))))
+ (eshell-eval-using-options
+ "ls" '("/some/path")
+ '((?h "human-readable" 1024 human-readable
+ "print sizes in human readable format"))
+ (should (eq human-readable nil))
+ (should (equal args '("/some/path")))))
-(ert-deftest test-eshell-eval-using-options ()
- "Tests for `eshell-eval-using-options'."
+(ert-deftest esh-opt-test/eval-using-options-user-specified ()
+ "Test `eshell-eval-using-options' with options with user-specified values."
+ (eshell-eval-using-options
+ "ls" '("-I" "*.txt" "/some/path")
+ '((?I "ignore" t ignore-pattern
+ "do not list implied entries matching pattern"))
+ (should (equal ignore-pattern "*.txt"))
+ (should (equal args '("/some/path"))))
+ (eshell-eval-using-options
+ "ls" '("-I*.txt" "/some/path")
+ '((?I "ignore" t ignore-pattern
+ "do not list implied entries matching pattern"))
+ (should (equal ignore-pattern "*.txt"))
+ (should (equal args '("/some/path"))))
+ (eshell-eval-using-options
+ "ls" '("--ignore" "*.txt" "/some/path")
+ '((?I "ignore" t ignore-pattern
+ "do not list implied entries matching pattern"))
+ (should (equal ignore-pattern "*.txt"))
+ (should (equal args '("/some/path"))))
+ (eshell-eval-using-options
+ "ls" '("--ignore=*.txt" "/some/path")
+ '((?I "ignore" t ignore-pattern
+ "do not list implied entries matching pattern"))
+ (should (equal ignore-pattern "*.txt"))
+ (should (equal args '("/some/path")))))
+
+(ert-deftest esh-opt-test/eval-using-options-short-single-token ()
+ "Test `eshell-eval-using-options' with multiple short options in one token."
+ (eshell-eval-using-options
+ "ls" '("-al" "/some/path")
+ '((?a "all" nil show-all
+ "do not ignore entries starting with .")
+ (?l nil long-listing listing-style
+ "use a long listing format"))
+ (should (eq t show-all))
+ (should (eql listing-style 'long-listing))
+ (should (equal args '("/some/path"))))
+ (eshell-eval-using-options
+ "ls" '("-aI*.txt" "/some/path")
+ '((?a "all" nil show-all
+ "do not ignore entries starting with .")
+ (?I "ignore" t ignore-pattern
+ "do not list implied entries matching pattern"))
+ (should (eq t show-all))
+ (should (equal ignore-pattern "*.txt"))
+ (should (equal args '("/some/path")))))
+
+(ert-deftest esh-opt-test/eval-using-options-stdin ()
+ "Test that \"-\" is a positional arg in `eshell-eval-using-options'."
+ (eshell-eval-using-options
+ "cat" '("-")
+ '((?A "show-all" nil show-all
+ "show all characters"))
+ (should (eq show-all nil))
+ (should (equal args '("-"))))
+ (eshell-eval-using-options
+ "cat" '("-A" "-")
+ '((?A "show-all" nil show-all
+ "show all characters"))
+ (should (eq show-all t))
+ (should (equal args '("-"))))
+ (eshell-eval-using-options
+ "cat" '("-" "-A")
+ '((?A "show-all" nil show-all
+ "show all characters"))
+ (should (eq show-all t))
+ (should (equal args '("-")))))
+
+(ert-deftest esh-opt-test/eval-using-options-terminate-options ()
+ "Test that \"--\" terminates options in `eshell-eval-using-options'."
+ (eshell-eval-using-options
+ "ls" '("--" "-a")
+ '((?a "all" nil show-all
+ "do not ignore entries starting with ."))
+ (should (eq show-all nil))
+ (should (equal args '("-a"))))
+ (eshell-eval-using-options
+ "ls" '("--" "--all")
+ '((?a "all" nil show-all
+ "do not ignore entries starting with ."))
+ (should (eq show-all nil))
+ (should (equal args '("--all")))))
+
+(ert-deftest esh-opt-test/eval-using-options-parse-leading-options-only ()
+ "Test :parse-leading-options-only in `eshell-eval-using-options'."
(eshell-eval-using-options
"sudo" '("-u" "root" "whoami")
'((?u "user" t user "execute a command as another USER")
:parse-leading-options-only)
- (should (equal user "root")))
+ (should (equal user "root"))
+ (should (equal args '("whoami"))))
(eshell-eval-using-options
"sudo" '("--user" "root" "whoami")
'((?u "user" t user "execute a command as another USER")
:parse-leading-options-only)
- (should (equal user "root")))
-
+ (should (equal user "root"))
+ (should (equal args '("whoami"))))
(eshell-eval-using-options
"sudo" '("emerge" "-uDN" "world")
'((?u "user" t user "execute a command as another USER"))
- (should (equal user "world")))
+ (should (equal user "DN"))
+ (should (equal args '("emerge" "world"))))
(eshell-eval-using-options
"sudo" '("emerge" "-uDN" "world")
'((?u "user" t user "execute a command as another USER")
:parse-leading-options-only)
- (should (eq user nil)))
+ (should (eq user nil))
+ (should (equal args '("emerge" "-uDN" "world")))))
- (eshell-eval-using-options
- "ls" '("-I" "*.txt" "/dev/null")
- '((?I "ignore" t ignore-pattern
- "do not list implied entries matching pattern"))
- (should (equal ignore-pattern "*.txt")))
-
- (eshell-eval-using-options
- "ls" '("-l" "/dev/null")
- '((?l nil long-listing listing-style
- "use a long listing format"))
- (should (eql listing-style 'long-listing)))
- (eshell-eval-using-options
- "ls" '("/dev/null")
- '((?l nil long-listing listing-style
- "use a long listing format"))
- (should (eq listing-style nil)))
+(ert-deftest esh-opt-test/eval-using-options-unrecognized ()
+ "Test `eshell-eval-using-options' with unrecognized options."
+ (should-error
+ (eshell-eval-using-options
+ "ls" '("-u" "/some/path")
+ '((?a "all" nil _show-all
+ "do not ignore entries starting with ."))))
+ (should-error
+ (eshell-eval-using-options
+ "ls" '("-au" "/some/path")
+ '((?a "all" nil _show-all
+ "do not ignore entries starting with ."))))
+ (should-error
+ (eshell-eval-using-options
+ "ls" '("--unrecognized" "/some/path")
+ '((?a "all" nil _show-all
+ "do not ignore entries starting with .")))))
- (eshell-eval-using-options
- "ls" '("/dev/null" "-h")
- '((?h "human-readable" 1024 human-readable
- "print sizes in human readable format"))
- (should (eql human-readable 1024)))
- (eshell-eval-using-options
- "ls" '("/dev/null" "--human-readable")
- '((?h "human-readable" 1024 human-readable
- "print sizes in human readable format"))
- (should (eql human-readable 1024)))
- (eshell-eval-using-options
- "ls" '("/dev/null")
- '((?h "human-readable" 1024 human-readable
- "print sizes in human readable format"))
- (should (eq human-readable nil))))
+(ert-deftest esh-opt-test/eval-using-options-external ()
+ "Test :external in `eshell-eval-using-options'."
+ (cl-letf (((symbol-function 'eshell-search-path) #'identity)
+ ((symbol-function 'eshell-external-command) #'list))
+ (should
+ (equal (catch 'eshell-external
+ (eshell-eval-using-options
+ "ls" '("/some/path" "-u")
+ '((?a "all" nil _show-all
+ "do not ignore entries starting with .")
+ :external "ls")))
+ '("ls" ("/some/path" "-u"))))
+ (should
+ (equal (catch 'eshell-external
+ (eshell-eval-using-options
+ "ls" '("/some/path2" "-u")
+ '((?a "all" nil _show-all
+ "do not ignore entries starting with .")
+ :preserve-args
+ :external "ls")))
+ '("ls" ("/some/path2" "-u"))))))
(provide 'esh-opt-tests)
diff --git a/test/lisp/eshell/eshell-tests-helpers.el
b/test/lisp/eshell/eshell-tests-helpers.el
new file mode 100644
index 0000000000..77f5313d57
--- /dev/null
+++ b/test/lisp/eshell/eshell-tests-helpers.el
@@ -0,0 +1,91 @@
+;;; eshell-tests-helpers.el --- Eshell test suite helpers -*-
lexical-binding:t -*-
+
+;; Copyright (C) 1999-2022 Free Software Foundation, Inc.
+
+;; Author: John Wiegley <johnw@gnu.org>
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Eshell test suite helpers.
+
+;;; Code:
+
+(require 'ert)
+(require 'ert-x)
+(require 'esh-mode)
+(require 'eshell)
+
+(defvar eshell-test--max-subprocess-time 5
+ "The maximum amount of time to wait for a subprocess to finish, in seconds.
+See `eshell-wait-for-subprocess'.")
+
+(defmacro with-temp-eshell (&rest body)
+ "Evaluate BODY in a temporary Eshell buffer."
+ `(ert-with-temp-directory eshell-directory-name
+ (let* (;; We want no history file, so prevent Eshell from falling
+ ;; back on $HISTFILE.
+ (process-environment (cons "HISTFILE" process-environment))
+ (eshell-history-file-name nil)
+ (eshell-buffer (eshell t)))
+ (unwind-protect
+ (with-current-buffer eshell-buffer
+ ,@body)
+ (let (kill-buffer-query-functions)
+ (kill-buffer eshell-buffer))))))
+
+(defun eshell-wait-for-subprocess ()
+ "Wait until there is no interactive subprocess running in Eshell.
+If this takes longer than `eshell-test--max-subprocess-time',
+raise an error."
+ (let ((start (current-time)))
+ (while (eshell-interactive-process)
+ (when (> (float-time (time-since start))
+ eshell-test--max-subprocess-time)
+ (error "timed out waiting for subprocess"))
+ (sit-for 0.1))))
+
+(defun eshell-insert-command (text &optional func)
+ "Insert a command at the end of the buffer."
+ (goto-char eshell-last-output-end)
+ (insert-and-inherit text)
+ (funcall (or func 'eshell-send-input)))
+
+(defun eshell-match-result (regexp)
+ "Check that output of last command matches REGEXP."
+ (should
+ (string-match-p
+ regexp (buffer-substring-no-properties
+ (eshell-beginning-of-output) (eshell-end-of-output)))))
+
+(defun eshell-command-result-p (text regexp &optional func)
+ "Insert a command at the end of the buffer."
+ (eshell-insert-command text func)
+ (eshell-wait-for-subprocess)
+ (eshell-match-result regexp))
+
+(defvar eshell-history-file-name)
+
+(defun eshell-test-command-result (command)
+ "Like `eshell-command-result', but not using HOME."
+ (ert-with-temp-directory eshell-directory-name
+ (let ((eshell-history-file-name nil))
+ (eshell-command-result command))))
+
+(provide 'eshell-tests-helpers)
+
+;;; eshell-tests-helpers.el ends here
diff --git a/test/lisp/eshell/eshell-tests.el b/test/lisp/eshell/eshell-tests.el
index aef1447907..542815df80 100644
--- a/test/lisp/eshell/eshell-tests.el
+++ b/test/lisp/eshell/eshell-tests.el
@@ -29,45 +29,16 @@
(require 'ert-x)
(require 'esh-mode)
(require 'eshell)
-
-(defmacro with-temp-eshell (&rest body)
- "Evaluate BODY in a temporary Eshell buffer."
- `(ert-with-temp-directory eshell-directory-name
- (let* (;; We want no history file, so prevent Eshell from falling
- ;; back on $HISTFILE.
- (process-environment (cons "HISTFILE" process-environment))
- (eshell-history-file-name nil)
- (eshell-buffer (eshell t)))
- (unwind-protect
- (with-current-buffer eshell-buffer
- ,@body)
- (let (kill-buffer-query-functions)
- (kill-buffer eshell-buffer))))))
-
-(defun eshell-insert-command (text &optional func)
- "Insert a command at the end of the buffer."
- (goto-char eshell-last-output-end)
- (insert-and-inherit text)
- (funcall (or func 'eshell-send-input)))
-
-(defun eshell-match-result (regexp)
- "Check that text after `eshell-last-input-end' matches REGEXP."
- (goto-char eshell-last-input-end)
- (should (string-match-p regexp (buffer-substring-no-properties
- (point) (point-max)))))
-
-(defun eshell-command-result-p (text regexp &optional func)
- "Insert a command at the end of the buffer."
- (eshell-insert-command text func)
- (eshell-match-result regexp))
+(eval-and-compile
+ (load (expand-file-name "eshell-tests-helpers"
+ (file-name-directory (or load-file-name
+ default-directory)))))
(defvar eshell-history-file-name)
-
-(defun eshell-test-command-result (command)
- "Like `eshell-command-result', but not using HOME."
- (ert-with-temp-directory eshell-directory-name
- (let ((eshell-history-file-name nil))
- (eshell-command-result command))))
+(defvar eshell-test--max-subprocess-time)
+(declare-function eshell-insert-command "eshell-tests-helpers")
+(declare-function eshell-match-result "eshell-tests-helpers")
+(declare-function eshell-command-result-p "eshell-tests-helpers")
;;; Tests:
@@ -144,6 +115,20 @@ e.g. \"{(+ 1 2)} 3\" => 3"
"Interpolate and concat two Lisp forms"
(should (equal (eshell-test-command-result "+ $(+ 1 2)$(+ 1 2) 3") 36)))
+(ert-deftest eshell-test/interp-cmd-external ()
+ "Interpolate command result from external command"
+ (skip-unless (executable-find "echo"))
+ (with-temp-eshell
+ (eshell-command-result-p "echo ${*echo hi}"
+ "hi\n")))
+
+(ert-deftest eshell-test/interp-cmd-external-concat ()
+ "Interpolate command result from external command with concatenation"
+ (skip-unless (executable-find "echo"))
+ (with-temp-eshell
+ (eshell-command-result-p "echo ${echo hi}-${*echo there}"
+ "hi-there\n")))
+
(ert-deftest eshell-test/window-height ()
"$LINES should equal (window-height)"
(should (eshell-test-command-result "= $LINES (window-height)")))
@@ -247,9 +232,8 @@ chars"
(with-temp-eshell
(eshell-insert-command "echo alpha")
(eshell-kill-output)
- (eshell-match-result (regexp-quote "*** output flushed ***\n"))
- (should (forward-line))
- (should (= (point) eshell-last-output-start))))
+ (eshell-match-result
+ (concat "^" (regexp-quote "*** output flushed ***\n") "$"))))
(ert-deftest eshell-test/run-old-command ()
"Re-run an old command"
diff --git a/test/lisp/ffap-tests.el b/test/lisp/ffap-tests.el
index aebc9b6dbb..0fdc31e8b6 100644
--- a/test/lisp/ffap-tests.el
+++ b/test/lisp/ffap-tests.el
@@ -141,6 +141,23 @@ left alone when opening a URL in an external browser."
(let (kill-buffer-query-functions)
(kill-buffer (call-interactively #'find-file-at-point)))))))
+(ert-deftest ffap-test-path ()
+ (skip-unless (file-exists-p "/bin"))
+ (skip-unless (file-exists-p "/usr/bin"))
+ (with-temp-buffer
+ (insert "/usr/bin:/bin")
+ (goto-char (point-min))
+ (should (equal (ffap-file-at-point) "/usr/bin")))
+ (with-temp-buffer
+ (insert "/usr/bin:/bin")
+ (goto-char (point-min))
+ (search-forward ":")
+ (should (equal (ffap-file-at-point) "/bin")))
+ (with-temp-buffer
+ (insert ":/bin")
+ (goto-char (point-min))
+ (should (equal (ffap-file-at-point) nil))))
+
(provide 'ffap-tests)
;;; ffap-tests.el ends here
diff --git a/test/lisp/files-tests.el b/test/lisp/files-tests.el
index a3c67bc3d6..57d1ef1682 100644
--- a/test/lisp/files-tests.el
+++ b/test/lisp/files-tests.el
@@ -1679,7 +1679,7 @@ PRED is nil."
(pcase-dolist (`(,pred ,def-pred-bind ,exp-1 ,exp-2) args-results)
(files-tests--save-some-buffers pred def-pred-bind exp-1 exp-2))))
-(defmacro files-tests--with-buffer-offer-save (buffers-offer fn-test
fn-binders args-results)
+(defun files-tests--with-buffer-offer-save (buffers-offer fn-test args-results)
"Helper macro to test `save-some-buffers' and `save-buffers-kill-emacs'.
This macro creates several non-file-visiting buffers in different
@@ -1693,52 +1693,52 @@ FN-TEST is the function to test: either
`save-some-buffers' or
`save-some-buffers-default-predicate' let-bound to a value
specified inside ARGS-RESULTS.
-FN-BINDERS is a list of elements (FUNCTION . BINDING), where FUNCTION
-is a function symbol that this macro temporary binds to BINDING during
-the FN-TEST call.
+During the call to FN-TEST,`read-event' is overridden with a function that
+just returns `n' and `kill-emacs' is overriden to do nothing.
ARGS-RESULTS is a list of elements (FN-ARGS CALLERS-DIR EXPECTED), where
FN-ARGS are the arguments for FN-TEST;
CALLERS-DIR specifies the value to let-bind
\`save-some-buffers-default-predicate';
EXPECTED is the expected result of the test."
- (declare (debug (form symbol form form)))
- (let ((dir (gensym "dir"))
- (buffers (gensym "buffers")))
- `(let* ((,dir (make-temp-file "testdir" 'dir))
- (inhibit-message t)
- (use-dialog-box nil)
- ,buffers)
- (pcase-dolist (`(,bufsym ,offer-save) ,buffers-offer)
- (let* ((buf (generate-new-buffer (symbol-name bufsym)))
- (subdir (expand-file-name
- (format "subdir-%s" (buffer-name buf))
- ,dir)))
- (make-directory subdir 'parens)
- (push buf ,buffers)
- (with-current-buffer buf
- (cd subdir)
- (setq buffer-offer-save offer-save)
- (insert "foobar\n"))))
- (setq ,buffers (nreverse ,buffers))
- (let ((nb-saved-buffers 0))
- (unwind-protect
- (pcase-dolist (`(,fn-test-args ,callers-dir ,expected)
- ,args-results)
- (setq nb-saved-buffers 0)
- (with-current-buffer (car ,buffers)
- (cl-letf
- (,@(mapcar (lambda (pair) `((symbol-function ,(car pair))
,(cdr pair)))
- fn-binders)
- (save-some-buffers-default-predicate callers-dir))
- (apply #',fn-test fn-test-args)
- (should (equal nb-saved-buffers expected)))))
- ;; Clean up.
- (dolist (buf ,buffers)
- (with-current-buffer buf
- (set-buffer-modified-p nil)
- (kill-buffer buf)))
- (delete-directory ,dir 'recursive))))))
+ (let* ((dir (make-temp-file "testdir" 'dir))
+ (inhibit-message t)
+ (use-dialog-box nil)
+ buffers)
+ (pcase-dolist (`(,bufsym ,offer-save) buffers-offer)
+ (let* ((buf (generate-new-buffer (symbol-name bufsym)))
+ (subdir (expand-file-name
+ (format "subdir-%s" (buffer-name buf))
+ dir)))
+ (make-directory subdir 'parens)
+ (push buf buffers)
+ (with-current-buffer buf
+ (cd subdir)
+ (setq buffer-offer-save offer-save)
+ (insert "foobar\n"))))
+ (setq buffers (nreverse buffers))
+ (let ((nb-saved-buffers 0))
+ (unwind-protect
+ (pcase-dolist (`(,fn-test-args ,callers-dir ,expected)
+ args-results)
+ (setq nb-saved-buffers 0)
+ (with-current-buffer (car buffers)
+ (cl-letf
+ (((symbol-function 'read-event)
+ ;; Increase counter and answer 'n' when prompted
+ ;; to save a buffer.
+ (lambda (&rest _) (cl-incf nb-saved-buffers) ?n))
+ ;; Do not kill Emacs.
+ ((symbol-function 'kill-emacs) #'ignore)
+ (save-some-buffers-default-predicate callers-dir))
+ (apply fn-test fn-test-args)
+ (should (equal nb-saved-buffers expected)))))
+ ;; Clean up.
+ (dolist (buf buffers)
+ (with-current-buffer buf
+ (set-buffer-modified-p nil)
+ (kill-buffer buf)))
+ (delete-directory dir 'recursive)))))
(defmacro files-tests-with-all-permutations (permutation list &rest body)
"Execute BODY forms for all permutations of LIST.
@@ -1777,7 +1777,7 @@ PRED is nil."
(files-tests-with-all-permutations
buffers-offer
buffers-offer-init
- (dolist (pred `(nil t save-some-buffers-root))
+ (dolist (pred `(nil t))
(dolist (callers-dir `(nil save-some-buffers-root))
(let* ((head-offer (cadar buffers-offer))
(res (cond ((null pred)
@@ -1790,9 +1790,7 @@ PRED is nil."
(args-res `(((nil ,pred) ,callers-dir ,res))))
(files-tests--with-buffer-offer-save
buffers-offer
- save-some-buffers
- ;; Increase counter and answer 'n' when prompted to save a buffer.
- (('read-event . (lambda (&rest _) (cl-incf nb-saved-buffers) ?n)))
+ #'save-some-buffers
args-res)))))))
(ert-deftest files-tests-save-buffers-kill-emacs--asks-to-save-buffers ()
@@ -1807,10 +1805,7 @@ Prompt users for any modified buffer with
`buffer-offer-save' non-nil."
buffers-offer-init
(files-tests--with-buffer-offer-save
buffers-offer
- save-buffers-kill-emacs
- ;; Increase counter and answer 'n' when prompted to save a buffer.
- (('read-event . (lambda (&rest _) (cl-incf nb-saved-buffers) ?n))
- ('kill-emacs . #'ignore)) ; Do not kill Emacs.
+ #'save-buffers-kill-emacs
`((nil nil ,nb-might-save)
;; `save-some-buffers-default-predicate' (i.e. the 2nd element) is
ignored.
(nil save-some-buffers-root ,nb-might-save))))))
diff --git a/test/lisp/gnus/mml-sec-tests.el b/test/lisp/gnus/mml-sec-tests.el
index 182d82b961..f308a61764 100644
--- a/test/lisp/gnus/mml-sec-tests.el
+++ b/test/lisp/gnus/mml-sec-tests.el
@@ -605,6 +605,9 @@ In this test, the encryption key needs to fixed among
multiple ones."
(ert-deftest mml-secure-en-decrypt-3 ()
"Encrypt message; then decrypt and test for expected result.
In this test, encrypt-to-self variables are set to t."
+ ;; Random failures with "wrong-type-argument stringp nil".
+ ;; Seems unlikely to be specific to hydra.nixos.org...
+ :tags (if (getenv "EMACS_HYDRA_CI") '(:unstable))
(skip-unless (test-conf))
(skip-unless (ignore-errors (epg-find-configuration 'CMS)))
;; sub@example.org with multiple candidate keys,
diff --git a/test/lisp/help-fns-tests.el b/test/lisp/help-fns-tests.el
index 6ee7b4f3eb..4df8e3c9ef 100644
--- a/test/lisp/help-fns-tests.el
+++ b/test/lisp/help-fns-tests.el
@@ -177,4 +177,13 @@ Return first line of the output of (describe-function-1
FUNC)."
(should-not (find-lisp-object-file-name help-fns--test-var 'defface))
(should-not (find-lisp-object-file-name help-fns--test-var 1))))
+(ert-deftest help-fns--analyze-function-recursive ()
+ (defalias 'help-fns--a 'help-fns--b)
+ (should (equal (help-fns--analyze-function 'help-fns--a)
+ '(help-fns--a help-fns--b t help-fns--b)))
+ ;; Make a loop and see that it doesn't infloop.
+ (defalias 'help-fns--b 'help-fns--a)
+ (should (equal (help-fns--analyze-function 'help-fns--a)
+ '(help-fns--a help-fns--b t help-fns--b))))
+
;;; help-fns-tests.el ends here
diff --git a/test/lisp/hi-lock-tests.el b/test/lisp/hi-lock-tests.el
index 71983c713d..760b319a92 100644
--- a/test/lisp/hi-lock-tests.el
+++ b/test/lisp/hi-lock-tests.el
@@ -30,10 +30,9 @@
(let ((faces hi-lock-face-defaults))
(with-temp-buffer
(insert "a A b B\n")
- (cl-letf (((symbol-function 'completing-read)
- (lambda (_prompt _coll
- &optional _x _y _z _hist defaults _inherit)
- (car defaults))))
+ (cl-letf (((symbol-function 'read-face-name)
+ (lambda (_prompt &optional defaults)
+ (intern (car defaults)))))
(dotimes (_ 2)
(let ((face (hi-lock-read-face-name)))
(hi-lock-set-pattern "a" face))))
@@ -43,10 +42,9 @@
(let ((faces hi-lock-face-defaults))
(with-temp-buffer
(insert "foo bar")
- (cl-letf (((symbol-function 'completing-read)
- (lambda (_prompt _coll
- &optional _x _y _z _hist defaults _inherit)
- (car defaults))))
+ (cl-letf (((symbol-function 'read-face-name)
+ (lambda (_prompt &optional defaults)
+ (intern (car defaults)))))
(hi-lock-set-pattern "9999" (hi-lock-read-face-name)) ; No match
(hi-lock-set-pattern "foo" (hi-lock-read-face-name)))
;; Only one match, then we have used just 1 face
diff --git a/test/lisp/international/textsec-tests.el
b/test/lisp/international/textsec-tests.el
new file mode 100644
index 0000000000..ee0af66d99
--- /dev/null
+++ b/test/lisp/international/textsec-tests.el
@@ -0,0 +1,202 @@
+;;; textsec-tests.el --- Tests for textsec.el -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2022 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;
+
+;;; Code:
+
+(require 'textsec)
+(require 'ert)
+(require 'ert-x)
+
+(ert-deftest test-scripts ()
+ (should (equal (textsec-scripts "Circle")
+ '((latin) (latin) (latin) (latin) (latin) (latin))))
+ (should (textsec-single-script-p "Circle"))
+
+ (should (equal (textsec-scripts "СігсӀе")
+ '((cyrillic) (cyrillic) (cyrillic)
+ (cyrillic) (cyrillic) (cyrillic))))
+ (should (textsec-single-script-p "СігсӀе"))
+
+ (should (equal (textsec-scripts "Сirсlе")
+ '((cyrillic) (latin) (latin) (cyrillic) (latin) (cyrillic))))
+ (should-not (textsec-single-script-p "Сirсlе"))
+
+ (should (equal (textsec-scripts "Circ1e")
+ '((latin) (latin) (latin) (latin) (common) (latin))))
+ (should (textsec-single-script-p "Circ1e"))
+
+ (should (equal (textsec-scripts "C𝗂𝗋𝖼𝗅𝖾")
+ '((latin) (common) (common) (common) (common) (common))))
+ (should (textsec-single-script-p "C𝗂𝗋𝖼𝗅𝖾"))
+
+ (should (equal (textsec-scripts "𝖢𝗂𝗋𝖼𝗅𝖾")
+ '((common) (common) (common) (common) (common) (common))))
+ (should (textsec-single-script-p "𝖢𝗂𝗋𝖼𝗅𝖾"))
+
+ (should (equal (textsec-scripts "〆切")
+ '((common han) (han))))
+ (should (textsec-single-script-p "〆切"))
+
+ (should (equal (textsec-scripts "ねガ")
+ '((hiragana) (katakana))))
+ (should (textsec-single-script-p "ねガ")))
+
+(ert-deftest test-minimal-scripts ()
+ (should (equal (textsec-covering-scripts "Circle")
+ '(latin)))
+ (should (equal (textsec-covering-scripts "Сirсlе")
+ '(cyrillic latin)))
+ (should (equal (textsec-covering-scripts "〆切")
+ '(han))))
+
+(ert-deftest test-restriction-level ()
+ (should (eq (textsec-restriction-level "foo")
+ 'ascii-only))
+ (should (eq (textsec-restriction-level "C𝗂𝗋𝖼𝗅𝖾")
+ 'single-script))
+ (should (eq (textsec-restriction-level "切foo")
+ 'highly-restrictive))
+ (should (eq (textsec-restriction-level "հfoo")
+ 'moderately-retrictive))
+ (should (eq (textsec-restriction-level "Сirсlе")
+ 'unrestricted)))
+
+(ert-deftest test-mixed-numbers ()
+ (should-not (textsec-mixed-numbers-p "foo"))
+ (should-not (textsec-mixed-numbers-p "8foo8"))
+ (should-not (textsec-mixed-numbers-p "foo20@foo.org"))
+ (should (textsec-mixed-numbers-p "8foo৪")))
+
+(ert-deftest test-resolved ()
+ (should (equal (textsec-resolved-script-set "ljeto")
+ '(latin)))
+ (should-not (textsec-resolved-script-set "Сirсlе")))
+
+(ert-deftest test-confusable ()
+ (should (equal (textsec-unconfuse-string "ljeto") "ljeto"))
+ (should (textsec-ascii-confusable-p "ljeto"))
+ (should-not (textsec-ascii-confusable-p "ljeto"))
+ (should (equal (textsec-unconfuse-string "~") "〜"))
+ (should-not (textsec-ascii-confusable-p "~"))
+
+ (should (textsec-single-script-confusable-p "ljeto" "ljeto"))
+ (should-not (textsec-single-script-confusable-p "paypal" "pаypаl"))
+ (should-not (textsec-single-script-confusable-p "scope""ѕсоре"))
+
+ (should-not (textsec-mixed-script-confusable-p "ljeto" "ljeto"))
+ (should (textsec-mixed-script-confusable-p "paypal" "pаypаl"))
+ (should (textsec-mixed-script-confusable-p "scope""ѕсоре"))
+
+ (should-not (textsec-whole-script-confusable-p "ljeto" "ljeto"))
+ (should-not (textsec-whole-script-confusable-p "paypal" "pаypаl"))
+ (should (textsec-whole-script-confusable-p "scope""ѕсоре")))
+
+(ert-deftest test-suspiction-domain ()
+ (should (textsec-domain-suspicious-p "foo/bar.org"))
+ (should-not (textsec-domain-suspicious-p "foo.org"))
+ (should (textsec-domain-suspicious-p "f\N{LEFT-TO-RIGHT ISOLATE}oo.org"))
+
+ (should (textsec-domain-suspicious-p "Сгсе.ru"))
+ (should-not (textsec-domain-suspicious-p "фСгсе.ru")))
+
+(ert-deftest test-suspicious-local ()
+ (should-not (textsec-local-address-suspicious-p "larsi"))
+ (should (textsec-local-address-suspicious-p ".larsi"))
+ (should (textsec-local-address-suspicious-p "larsi."))
+ (should-not (textsec-local-address-suspicious-p "la.rsi"))
+ (should (textsec-local-address-suspicious-p "lar..si"))
+
+ (should-not (textsec-local-address-suspicious-p "LÅRSI"))
+ (should (textsec-local-address-suspicious-p "LÅRSI"))
+
+ (should (textsec-local-address-suspicious-p "larsi8৪")))
+
+(ert-deftest test-suspicious-name ()
+ (should-not (textsec-name-suspicious-p "Lars Ingebrigtsen"))
+ (should (textsec-name-suspicious-p "LÅRS INGEBRIGTSEN"))
+ (should-not (textsec-name-suspicious-p "LÅRS INGEBRIGTSEN"))
+
+ (should (textsec-name-suspicious-p
+ "Lars Ingebrigtsen\N{LEFT-TO-RIGHT OVERRIDE}"))
+ (should (textsec-name-suspicious-p
+ "Lars Ingebrigtsen\N{LEFT-TO-RIGHT OVERRIDE}f"))
+ (should-not (textsec-name-suspicious-p
+ "Lars Ingebrigtsen\N{LEFT-TO-RIGHT MARK}"))
+ (should-not (textsec-name-suspicious-p "אבגד שונה מרגיל"))
+
+ (should (textsec-name-suspicious-p
+ "\N{COMBINING GRAVE ACCENT}\N{COMBINING GRAVE ACCENT}Lars
Ingebrigtsen"))
+ (should-not (textsec-name-suspicious-p
+ "\N{COMBINING GRAVE ACCENT}\N{COMBINING ENCLOSING CIRCLE}Lars
Ingebrigtsen"))
+ (should (textsec-name-suspicious-p
+ "\N{COMBINING GRAVE ACCENT}\N{COMBINING ENCLOSING
CIRCLE}\N{COMBINING GRAVE ACCENT}\N{COMBINING ENCLOSING CIRCLE}\N{COMBINING
GRAVE ACCENT}Lars Ingebrigtsen")))
+
+(ert-deftest test-suspicious-email ()
+ (should-not
+ (textsec-email-address-header-suspicious-p
+ "Lars Ingebrigtsen <larsi@gnus.org>"))
+ (should
+ (textsec-email-address-header-suspicious-p
+ "LÅrs Ingebrigtsen <larsi@gnus.org>"))
+ (should
+ (textsec-email-address-header-suspicious-p
+ "Lars Ingebrigtsen <.larsi@gnus.org>"))
+ (should
+ (textsec-email-address-header-suspicious-p
+ "Lars Ingebrigtsen <larsi@gn\N{LEFT-TO-RIGHT ISOLATE}us.org>"))
+
+ (should
+ (textsec-email-address-header-suspicious-p
+ "Lars Ingebrigtsen <larsi@\N{RIGHT-TO-LEFT OVERRIDE}gnus.org>"))
+
+ (should (textsec-email-address-header-suspicious-p
+ "דגבא <foo@bar.com>"))
+
+ (should (textsec-email-address-suspicious-p
+ "Bob_Norbolwits@GCSsafetyACE.com")))
+
+(ert-deftest test-suspicious-url ()
+ (should-not (textsec-url-suspicious-p "http://example.ru/bar"))
+ (should (textsec-url-suspicious-p "http://Сгсе.ru/bar")))
+
+(ert-deftest test-suspicious-link ()
+ (should-not (textsec-link-suspicious-p
+ (cons "https://gnu.org/" "Hello")))
+ (should-not (textsec-link-suspicious-p
+ (cons "https://gnu.org/" "https://gnu.org/")))
+ (should-not (textsec-link-suspicious-p
+ (cons "https://gnu.org/" "https://www.gnu.org/")))
+ (should-not (textsec-link-suspicious-p
+ (cons "https://www.gnu.org/" "https://gnu.org/")))
+ (should (textsec-link-suspicious-p
+ (cons "https://www.gnu.org/" "https://org/")))
+ (should (textsec-link-suspicious-p
+ (cons "https://www.gnu.org/" "https://fsf.org/")))
+ (should (textsec-link-suspicious-p
+ (cons "https://www.gnu.org/" "http://fsf.org/")))
+
+ (should (textsec-link-suspicious-p
+ (cons "https://www.gn\N{LEFT-TO-RIGHT ISOLATE}u.org/"
+ "https://gn\N{LEFT-TO-RIGHT ISOLATE}u.org"))))
+
+;;; textsec-tests.el ends here
diff --git a/test/lisp/net/mailcap-resources/mailcap
b/test/lisp/net/mailcap-resources/mailcap
new file mode 100644
index 0000000000..ad3f7404fd
--- /dev/null
+++ b/test/lisp/net/mailcap-resources/mailcap
@@ -0,0 +1,9 @@
+audio/ogg; mpv %s
+audio/flac; mpv %s
+audio/x-wav; aplay %s
+text/*; emacsclient -t %s
+application/pdf; acroread %s; test=false
+application/pdf; evince %s
+application/pdf; okular %s
+image/*; eog %s
+image/svg+xml; inkscape %s
diff --git a/test/lisp/net/mailcap-resources/test.test
b/test/lisp/net/mailcap-resources/test.test
new file mode 100644
index 0000000000..9daeafb986
--- /dev/null
+++ b/test/lisp/net/mailcap-resources/test.test
@@ -0,0 +1 @@
+test
diff --git a/test/lisp/net/mailcap-tests.el b/test/lisp/net/mailcap-tests.el
index 362cb22bb2..b439c08c79 100644
--- a/test/lisp/net/mailcap-tests.el
+++ b/test/lisp/net/mailcap-tests.el
@@ -63,4 +63,74 @@
(append mailcap-tests-path-extensions
mailcap-tests-mime-extensions))))
+(defmacro with-pristine-mailcap (&rest body)
+ ;; We only want the mailcap info we define ourselves.
+ `(let (mailcap--computed-mime-data
+ mailcap-mime-data
+ mailcap-user-mime-data)
+ ;; `mailcap-mime-info' calls `mailcap-parse-mailcaps' which parses
+ ;; the system's mailcaps. We don't want that for our test.
+ (cl-letf (((symbol-function 'mailcap-parse-mailcaps) #'ignore))
+ ,@body)))
+
+(ert-deftest mailcap-parsing-and-mailcap-mime-info ()
+ (with-pristine-mailcap
+ ;; One mailcap entry has a test=false field. The shell command
+ ;; execution errors when running the tests from the Makefile
+ ;; because then HOME=/nonexistent.
+ (ert-with-temp-directory home
+ (setenv "HOME" home)
+ ;; Now parse our resource mailcap file.
+ (mailcap-parse-mailcap (ert-resource-file "mailcap"))
+
+ ;; Assert that we get what we have defined.
+ (dolist (type '("audio/ogg" "audio/flac"))
+ (should (string= "mpv %s" (mailcap-mime-info type))))
+ (should (string= "aplay %s" (mailcap-mime-info "audio/x-wav")))
+ (should (string= "emacsclient -t %s"
+ (mailcap-mime-info "text/plain")))
+ ;; evince is chosen because acroread has test=false and okular
+ ;; comes later.
+ (should (string= "evince %s"
+ (mailcap-mime-info "application/pdf")))
+ (should (string= "inkscape %s"
+ (mailcap-mime-info "image/svg+xml")))
+ (should (string= "eog %s"
+ (mailcap-mime-info "image/jpg")))
+ ;; With REQUEST being a number, all fields of the selected entry
+ ;; should be returned.
+ (should (equal '((viewer . "evince %s")
+ (type . "application/pdf"))
+ (mailcap-mime-info "application/pdf" 1)))
+ ;; With 'all, all applicable entries should be returned.
+ (should (equal '(((viewer . "evince %s")
+ (type . "application/pdf"))
+ ((viewer . "okular %s")
+ (type . "application/pdf")))
+ (mailcap-mime-info "application/pdf" 'all)))
+ (let* ((c nil)
+ (toggle (lambda (_) (setq c (not c)))))
+ (mailcap-add "audio/ogg" "toggle %s" toggle)
+ (should (string= "toggle %s" (mailcap-mime-info "audio/ogg")))
+ ;; The test results are cached, so in order to have the test
+ ;; re-evaluated, one needs to clear the cache.
+ (setq mailcap-viewer-test-cache nil)
+ (should (string= "mpv %s" (mailcap-mime-info "audio/ogg")))
+ (setq mailcap-viewer-test-cache nil)
+ (should (string= "toggle %s" (mailcap-mime-info "audio/ogg")))))))
+
+(defvar mailcap--test-result nil)
+(defun mailcap--test-viewer ()
+ (setq mailcap--test-result (string= (buffer-string) "test\n")))
+
+(ert-deftest mailcap-view-file ()
+ (with-pristine-mailcap
+ ;; Try using a lambda as viewer and check wether
+ ;; `mailcap-view-file' works correctly.
+ (let* ((mailcap-mime-extensions '((".test" . "test/test"))))
+ (mailcap-add "test/test" 'mailcap--test-viewer)
+ (save-window-excursion
+ (mailcap-view-file (ert-resource-file "test.test")))
+ (should mailcap--test-result))))
+
;;; mailcap-tests.el ends here
diff --git a/test/lisp/net/puny-resources/IdnaTestV2.txt
b/test/lisp/net/puny-resources/IdnaTestV2.txt
new file mode 100644
index 0000000000..ed2f32e129
--- /dev/null
+++ b/test/lisp/net/puny-resources/IdnaTestV2.txt
@@ -0,0 +1,6344 @@
+# IdnaTestV2.txt
+# Date: 2021-08-17, 19:34:01 GMT
+# © 2021 Unicode®, Inc.
+# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in
the U.S. and other countries.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+#
+# Unicode IDNA Compatible Preprocessing for UTS #46
+# Version: 14.0.0
+#
+# For documentation and usage, see http://www.unicode.org/reports/tr46
+#
+# Test cases for verifying UTS #46 conformance.
+#
+# FORMAT:
+#
+# This file is in UTF-8, where characters may be escaped using the \uXXXX or
\x{XXXX}
+# convention where they could otherwise have a confusing display.
+# These characters include control codes and combining marks.
+#
+# Columns (c1, c2,...) are separated by semicolons.
+# Leading and trailing spaces and tabs in each column are ignored.
+# Comments are indicated with hash marks.
+#
+# Column 1: source - The source string to be tested
+# Column 2: toUnicode - The result of applying toUnicode to the source,
+# with Transitional_Processing=false.
+# A blank value means the same as the source value.
+# Column 3: toUnicodeStatus - A set of status codes, each corresponding to a
particular test.
+# A blank value means [] (no errors).
+# Column 4: toAsciiN - The result of applying toASCII to the source,
+# with Transitional_Processing=false.
+# A blank value means the same as the toUnicode
value.
+# Column 5: toAsciiNStatus - A set of status codes, each corresponding to a
particular test.
+# A blank value means the same as the
toUnicodeStatus value.
+# An explicit [] means no errors.
+# Column 6: toAsciiT - The result of applying toASCII to the source,
+# with Transitional_Processing=true.
+# A blank value means the same as the toAsciiN
value.
+# Column 7: toAsciiTStatus - A set of status codes, each corresponding to a
particular test.
+# A blank value means the same as the
toAsciiNStatus value.
+# An explicit [] means no errors.
+#
+# The line comments currently show visible characters that have been escaped.
+#
+# CONFORMANCE:
+#
+# To test for conformance to UTS #46, an implementation will perform the
toUnicode, toAsciiN, and
+# toAsciiT operations on the source string, then verify the resulting strings
and relevant status
+# values.
+#
+# If the implementation converts illegal code points into U+FFFD (as per
+# https://www.unicode.org/reports/tr46/#Processing) then the string
comparisons need to
+# account for that by treating U+FFFD in the actual value as a wildcard when
comparing to the
+# expected value in the test file.
+#
+# A status in toUnicode, toAsciiN or toAsciiT is indicated by a value in
square brackets,
+# such as "[B5 B6]". In such a case, the contents is a list of status codes
based on the step
+# numbers in UTS #46 and IDNA2008, with the following formats.
+#
+# Pn for Section 4 Processing step n
+# Vn for 4.1 Validity Criteria step n
+# U1 for UseSTD3ASCIIRules
+# An for 4.2 ToASCII step n
+# Bn for Bidi (in IDNA2008)
+# Cn for ContextJ (in IDNA2008)
+# Xn for toUnicode issues (see below)
+#
+# Thus C1 = Appendix A.1. ZERO WIDTH NON-JOINER, and C2 = Appendix A.2. ZERO
WIDTH JOINER.
+# (The CONTEXTO tests are optional for client software, and not tested here.)
+#
+# Implementations that allow values of particular input flags to be false
would ignore
+# the corresponding status codes listed in the table below when testing for
errors.
+#
+# VerifyDnsLength: P4
+# CheckHyphens: V2, V3
+# CheckBidi: V8
+# CheckJoiners: V7
+# UseSTD3ASCIIRules: U1
+#
+# Implementations may be more strict than the default settings for UTS #46.
+# In particular, an implementation conformant to IDNA2008 would disallow the
input for lines
+# marked with NV8.
+#
+# Implementations need only record that there is an error: they need not
reproduce the
+# precise status codes (after removing the ignored status values).
+#
+# Compatibility errors
+#
+# The special error codes X3 and X4_2 are now returned where a toASCII error
code
+# was formerly being generated in toUnicode due to an empty label.
+#
+# A3 was being generated in the following cases (in addition to its normal
usage).
+# • an empty label in toUnicode. In this case, it is replaced by X3.
+#
+# A4_2 was being generated in the following case (in addition to its normal
usage).
+# • an empty label in V8 (CheckBidi). In this case, it is being replaced by
X4_2.
+#
============================================================================================
+fass.de; ; ; ; ; ; # fass.de
+faß.de; ; ; xn--fa-hia.de; ; fass.de; # faß.de
+Faß.de; faß.de; ; xn--fa-hia.de; ; fass.de; # faß.de
+xn--fa-hia.de; faß.de; ; xn--fa-hia.de; ; ; # faß.de
+
+# BIDI TESTS
+
+àא; ; [B5, B6]; xn--0ca24w; ; ; # àא
+àא; àא; [B5, B6]; xn--0ca24w; ; ; # àא
+Àא; àא; [B5, B6]; xn--0ca24w; ; ; # àא
+Àא; àא; [B5, B6]; xn--0ca24w; ; ; # àא
+xn--0ca24w; àא; [B5, B6]; xn--0ca24w; ; ; # àא
+0à.א; ; [B1]; xn--0-sfa.xn--4db; ; ; # 0à.א
+0à.א; 0à.א; [B1]; xn--0-sfa.xn--4db; ; ; # 0à.א
+0À.א; 0à.א; [B1]; xn--0-sfa.xn--4db; ; ; # 0à.א
+0À.א; 0à.א; [B1]; xn--0-sfa.xn--4db; ; ; # 0à.א
+xn--0-sfa.xn--4db; 0à.א; [B1]; xn--0-sfa.xn--4db; ; ; # 0à.א
+à.א̈; ; ; xn--0ca.xn--ssa73l; ; ; # à.א̈
+à.א̈; à.א̈; ; xn--0ca.xn--ssa73l; ; ; # à.א̈
+À.א̈; à.א̈; ; xn--0ca.xn--ssa73l; ; ; # à.א̈
+À.א̈; à.א̈; ; xn--0ca.xn--ssa73l; ; ; # à.א̈
+xn--0ca.xn--ssa73l; à.א̈; ; xn--0ca.xn--ssa73l; ; ; # à.א̈
+à.א0٠א; ; [B4]; xn--0ca.xn--0-zhcb98c; ; ; # à.א0٠א
+à.א0٠א; à.א0٠א; [B4]; xn--0ca.xn--0-zhcb98c; ; ; # à.א0٠א
+À.א0٠א; à.א0٠א; [B4]; xn--0ca.xn--0-zhcb98c; ; ; # à.א0٠א
+À.א0٠א; à.א0٠א; [B4]; xn--0ca.xn--0-zhcb98c; ; ; # à.א0٠א
+xn--0ca.xn--0-zhcb98c; à.א0٠א; [B4]; xn--0ca.xn--0-zhcb98c; ; ; # à.א0٠א
+̈.א; ; [B1, B3, B6, V5]; xn--ssa.xn--4db; ; ; # ̈.א
+xn--ssa.xn--4db; ̈.א; [B1, B3, B6, V5]; xn--ssa.xn--4db; ; ; # ̈.א
+à.א0٠; ; [B4]; xn--0ca.xn--0-zhc74b; ; ; # à.א0٠
+à.א0٠; à.א0٠; [B4]; xn--0ca.xn--0-zhc74b; ; ; # à.א0٠
+À.א0٠; à.א0٠; [B4]; xn--0ca.xn--0-zhc74b; ; ; # à.א0٠
+À.א0٠; à.א0٠; [B4]; xn--0ca.xn--0-zhc74b; ; ; # à.א0٠
+xn--0ca.xn--0-zhc74b; à.א0٠; [B4]; xn--0ca.xn--0-zhc74b; ; ; # à.א0٠
+àˇ.א; ; [B6]; xn--0ca88g.xn--4db; ; ; # àˇ.א
+àˇ.א; àˇ.א; [B6]; xn--0ca88g.xn--4db; ; ; # àˇ.א
+Àˇ.א; àˇ.א; [B6]; xn--0ca88g.xn--4db; ; ; # àˇ.א
+Àˇ.א; àˇ.א; [B6]; xn--0ca88g.xn--4db; ; ; # àˇ.א
+xn--0ca88g.xn--4db; àˇ.א; [B6]; xn--0ca88g.xn--4db; ; ; # àˇ.א
+à̈.א; ; ; xn--0ca81i.xn--4db; ; ; # à̈.א
+à̈.א; à̈.א; ; xn--0ca81i.xn--4db; ; ; # à̈.א
+À̈.א; à̈.א; ; xn--0ca81i.xn--4db; ; ; # à̈.א
+À̈.א; à̈.א; ; xn--0ca81i.xn--4db; ; ; # à̈.א
+xn--0ca81i.xn--4db; à̈.א; ; xn--0ca81i.xn--4db; ; ; # à̈.א
+
+# CONTEXT TESTS
+
+ab; ; [C1]; xn--ab-j1t; ; ab; [] # ab
+AB; ab; [C1]; xn--ab-j1t; ; ab; [] # ab
+Ab; ab; [C1]; xn--ab-j1t; ; ab; [] # ab
+ab; ; ; ; ; ; # ab
+xn--ab-j1t; ab; [C1]; xn--ab-j1t; ; ; # ab
+a्b; ; ; xn--ab-fsf604u; ; xn--ab-fsf; # a्b
+A्B; a्b; ; xn--ab-fsf604u; ; xn--ab-fsf; # a्b
+A्b; a्b; ; xn--ab-fsf604u; ; xn--ab-fsf; # a्b
+xn--ab-fsf; a्b; ; xn--ab-fsf; ; ; # a्b
+a्b; ; ; xn--ab-fsf; ; ; # a्b
+A्B; a्b; ; xn--ab-fsf; ; ; # a्b
+A्b; a्b; ; xn--ab-fsf; ; ; # a्b
+xn--ab-fsf604u; a्b; ; xn--ab-fsf604u; ; ; # a्b
+̈̈بb; ; [B1, C1, V5]; xn--b-bcba413a2w8b; ; xn--b-bcba413a; [B1, V5] # ̈̈بb
+̈̈بB; ̈̈بb; [B1, C1, V5]; xn--b-bcba413a2w8b; ; xn--b-bcba413a; [B1, V5] #
̈̈بb
+xn--b-bcba413a; ̈̈بb; [B1, V5]; xn--b-bcba413a; ; ; # ̈̈بb
+xn--b-bcba413a2w8b; ̈̈بb; [B1, C1, V5]; xn--b-bcba413a2w8b; ; ; # ̈̈بb
+aب̈̈; ; [B5, B6, C1]; xn--a-ccba213a5w8b; ; xn--a-ccba213a; [B5, B6] # aب̈̈
+Aب̈̈; aب̈̈; [B5, B6, C1]; xn--a-ccba213a5w8b; ; xn--a-ccba213a; [B5, B6] #
aب̈̈
+xn--a-ccba213a; aب̈̈; [B5, B6]; xn--a-ccba213a; ; ; # aب̈̈
+xn--a-ccba213a5w8b; aب̈̈; [B5, B6, C1]; xn--a-ccba213a5w8b; ; ; # aب̈̈
+aب̈̈بb; ; [B5]; xn--ab-uuba211bca8057b; ; xn--ab-uuba211bca; # aب̈̈بb
+Aب̈̈بB; aب̈̈بb; [B5]; xn--ab-uuba211bca8057b; ; xn--ab-uuba211bca; # aب̈̈بb
+Aب̈̈بb; aب̈̈بb; [B5]; xn--ab-uuba211bca8057b; ; xn--ab-uuba211bca; # aب̈̈بb
+xn--ab-uuba211bca; aب̈̈بb; [B5]; xn--ab-uuba211bca; ; ; # aب̈̈بb
+xn--ab-uuba211bca8057b; aب̈̈بb; [B5]; xn--ab-uuba211bca8057b; ; ; # aب̈̈بb
+ab; ; [C2]; xn--ab-m1t; ; ab; [] # ab
+AB; ab; [C2]; xn--ab-m1t; ; ab; [] # ab
+Ab; ab; [C2]; xn--ab-m1t; ; ab; [] # ab
+xn--ab-m1t; ab; [C2]; xn--ab-m1t; ; ; # ab
+a्b; ; ; xn--ab-fsf014u; ; xn--ab-fsf; # a्b
+A्B; a्b; ; xn--ab-fsf014u; ; xn--ab-fsf; # a्b
+A्b; a्b; ; xn--ab-fsf014u; ; xn--ab-fsf; # a्b
+xn--ab-fsf014u; a्b; ; xn--ab-fsf014u; ; ; # a्b
+̈̈بb; ; [B1, C2, V5]; xn--b-bcba413a7w8b; ; xn--b-bcba413a; [B1, V5] # ̈̈بb
+̈̈بB; ̈̈بb; [B1, C2, V5]; xn--b-bcba413a7w8b; ; xn--b-bcba413a; [B1, V5] #
̈̈بb
+xn--b-bcba413a7w8b; ̈̈بb; [B1, C2, V5]; xn--b-bcba413a7w8b; ; ; # ̈̈بb
+aب̈̈; ; [B5, B6, C2]; xn--a-ccba213abx8b; ; xn--a-ccba213a; [B5, B6] # aب̈̈
+Aب̈̈; aب̈̈; [B5, B6, C2]; xn--a-ccba213abx8b; ; xn--a-ccba213a; [B5, B6] #
aب̈̈
+xn--a-ccba213abx8b; aب̈̈; [B5, B6, C2]; xn--a-ccba213abx8b; ; ; # aب̈̈
+aب̈̈بb; ; [B5, C2]; xn--ab-uuba211bca5157b; ; xn--ab-uuba211bca; [B5] # aب̈̈بb
+Aب̈̈بB; aب̈̈بb; [B5, C2]; xn--ab-uuba211bca5157b; ; xn--ab-uuba211bca; [B5]
# aب̈̈بb
+Aب̈̈بb; aب̈̈بb; [B5, C2]; xn--ab-uuba211bca5157b; ; xn--ab-uuba211bca; [B5]
# aب̈̈بb
+xn--ab-uuba211bca5157b; aب̈̈بb; [B5, C2]; xn--ab-uuba211bca5157b; ; ; #
aب̈̈بb
+
+# SELECTED TESTS
+
+¡; ; ; xn--7a; ; ; # ¡
+xn--7a; ¡; ; xn--7a; ; ; # ¡
+᧚; ; ; xn--pkf; ; ; # ᧚
+xn--pkf; ᧚; ; xn--pkf; ; ; # ᧚
+。; .; [X4_2]; ; [A4_2]; ; # .
+.; ; [X4_2]; ; [A4_2]; ; # .
+ꭠ; ; ; xn--3y9a; ; ; # ꭠ
+xn--3y9a; ꭠ; ; xn--3y9a; ; ; # ꭠ
+1234567890ä1234567890123456789012345678901234567890123456; ; ;
xn--12345678901234567890123456789012345678901234567890123456-fxe; [A4_2]; ; #
1234567890ä1234567890123456789012345678901234567890123456
+1234567890ä1234567890123456789012345678901234567890123456;
1234567890ä1234567890123456789012345678901234567890123456; ;
xn--12345678901234567890123456789012345678901234567890123456-fxe; [A4_2]; ; #
1234567890ä1234567890123456789012345678901234567890123456
+1234567890Ä1234567890123456789012345678901234567890123456;
1234567890ä1234567890123456789012345678901234567890123456; ;
xn--12345678901234567890123456789012345678901234567890123456-fxe; [A4_2]; ; #
1234567890ä1234567890123456789012345678901234567890123456
+1234567890Ä1234567890123456789012345678901234567890123456;
1234567890ä1234567890123456789012345678901234567890123456; ;
xn--12345678901234567890123456789012345678901234567890123456-fxe; [A4_2]; ; #
1234567890ä1234567890123456789012345678901234567890123456
+xn--12345678901234567890123456789012345678901234567890123456-fxe;
1234567890ä1234567890123456789012345678901234567890123456; ;
xn--12345678901234567890123456789012345678901234567890123456-fxe; [A4_2]; ; #
1234567890ä1234567890123456789012345678901234567890123456
+www.eXample.cOm; www.example.com; ; ; ; ; # www.example.com
+Bücher.de; bücher.de; ; xn--bcher-kva.de; ; ; # bücher.de
+Bücher.de; bücher.de; ; xn--bcher-kva.de; ; ; # bücher.de
+bücher.de; bücher.de; ; xn--bcher-kva.de; ; ; # bücher.de
+bücher.de; ; ; xn--bcher-kva.de; ; ; # bücher.de
+BÜCHER.DE; bücher.de; ; xn--bcher-kva.de; ; ; # bücher.de
+BÜCHER.DE; bücher.de; ; xn--bcher-kva.de; ; ; # bücher.de
+xn--bcher-kva.de; bücher.de; ; xn--bcher-kva.de; ; ; # bücher.de
+ÖBB; öbb; ; xn--bb-eka; ; ; # öbb
+ÖBB; öbb; ; xn--bb-eka; ; ; # öbb
+öbb; öbb; ; xn--bb-eka; ; ; # öbb
+öbb; ; ; xn--bb-eka; ; ; # öbb
+Öbb; öbb; ; xn--bb-eka; ; ; # öbb
+Öbb; öbb; ; xn--bb-eka; ; ; # öbb
+xn--bb-eka; öbb; ; xn--bb-eka; ; ; # öbb
+βόλος.com; ; ; xn--nxasmm1c.com; ; xn--nxasmq6b.com; # βόλος.com
+βόλος.com; βόλος.com; ; xn--nxasmm1c.com; ; xn--nxasmq6b.com; # βόλος.com
+ΒΌΛΟΣ.COM; βόλοσ.com; ; xn--nxasmq6b.com; ; ; # βόλοσ.com
+ΒΌΛΟΣ.COM; βόλοσ.com; ; xn--nxasmq6b.com; ; ; # βόλοσ.com
+βόλοσ.com; ; ; xn--nxasmq6b.com; ; ; # βόλοσ.com
+βόλοσ.com; βόλοσ.com; ; xn--nxasmq6b.com; ; ; # βόλοσ.com
+Βόλοσ.com; βόλοσ.com; ; xn--nxasmq6b.com; ; ; # βόλοσ.com
+Βόλοσ.com; βόλοσ.com; ; xn--nxasmq6b.com; ; ; # βόλοσ.com
+xn--nxasmq6b.com; βόλοσ.com; ; xn--nxasmq6b.com; ; ; # βόλοσ.com
+Βόλος.com; βόλος.com; ; xn--nxasmm1c.com; ; xn--nxasmq6b.com; # βόλος.com
+Βόλος.com; βόλος.com; ; xn--nxasmm1c.com; ; xn--nxasmq6b.com; # βόλος.com
+xn--nxasmm1c.com; βόλος.com; ; xn--nxasmm1c.com; ; ; # βόλος.com
+xn--nxasmm1c; βόλος; ; xn--nxasmm1c; ; ; # βόλος
+βόλος; ; ; xn--nxasmm1c; ; xn--nxasmq6b; # βόλος
+βόλος; βόλος; ; xn--nxasmm1c; ; xn--nxasmq6b; # βόλος
+ΒΌΛΟΣ; βόλοσ; ; xn--nxasmq6b; ; ; # βόλοσ
+ΒΌΛΟΣ; βόλοσ; ; xn--nxasmq6b; ; ; # βόλοσ
+βόλοσ; ; ; xn--nxasmq6b; ; ; # βόλοσ
+βόλοσ; βόλοσ; ; xn--nxasmq6b; ; ; # βόλοσ
+Βόλοσ; βόλοσ; ; xn--nxasmq6b; ; ; # βόλοσ
+Βόλοσ; βόλοσ; ; xn--nxasmq6b; ; ; # βόλοσ
+xn--nxasmq6b; βόλοσ; ; xn--nxasmq6b; ; ; # βόλοσ
+Βόλος; βόλος; ; xn--nxasmm1c; ; xn--nxasmq6b; # βόλος
+Βόλος; βόλος; ; xn--nxasmm1c; ; xn--nxasmq6b; # βόλος
+www.ශ්රී.com; ; ; www.xn--10cl1a0b660p.com; ; www.xn--10cl1a0b.com; #
www.ශ්රී.com
+WWW.ශ්රී.COM; www.ශ්රී.com; ; www.xn--10cl1a0b660p.com; ;
www.xn--10cl1a0b.com; # www.ශ්රී.com
+Www.ශ්රී.com; www.ශ්රී.com; ; www.xn--10cl1a0b660p.com; ;
www.xn--10cl1a0b.com; # www.ශ්රී.com
+www.xn--10cl1a0b.com; www.ශ්රී.com; ; www.xn--10cl1a0b.com; ; ; # www.ශ්රී.com
+www.ශ්රී.com; ; ; www.xn--10cl1a0b.com; ; ; # www.ශ්රී.com
+WWW.ශ්රී.COM; www.ශ්රී.com; ; www.xn--10cl1a0b.com; ; ; # www.ශ්රී.com
+Www.ශ්රී.com; www.ශ්රී.com; ; www.xn--10cl1a0b.com; ; ; # www.ශ්රී.com
+www.xn--10cl1a0b660p.com; www.ශ්රී.com; ; www.xn--10cl1a0b660p.com; ; ; #
www.ශ්රී.com
+نامهای; ; ; xn--mgba3gch31f060k; ; xn--mgba3gch31f; # نامهای
+xn--mgba3gch31f; نامهای; ; xn--mgba3gch31f; ; ; # نامهای
+نامهای; ; ; xn--mgba3gch31f; ; ; # نامهای
+xn--mgba3gch31f060k; نامهای; ; xn--mgba3gch31f060k; ; ; # نامهای
+xn--mgba3gch31f060k.com; نامهای.com; ; xn--mgba3gch31f060k.com; ; ; #
نامهای.com
+نامهای.com; ; ; xn--mgba3gch31f060k.com; ; xn--mgba3gch31f.com; # نامهای.com
+نامهای.COM; نامهای.com; ; xn--mgba3gch31f060k.com; ; xn--mgba3gch31f.com; #
نامهای.com
+xn--mgba3gch31f.com; نامهای.com; ; xn--mgba3gch31f.com; ; ; # نامهای.com
+نامهای.com; ; ; xn--mgba3gch31f.com; ; ; # نامهای.com
+نامهای.COM; نامهای.com; ; xn--mgba3gch31f.com; ; ; # نامهای.com
+a.b.c。d。; a.b.c.d.; ; ; ; ; # a.b.c.d.
+a.b.c。d。; a.b.c.d.; ; ; ; ; # a.b.c.d.
+A.B.C。D。; a.b.c.d.; ; ; ; ; # a.b.c.d.
+A.b.c。D。; a.b.c.d.; ; ; ; ; # a.b.c.d.
+a.b.c.d.; ; ; ; ; ; # a.b.c.d.
+A.B.C。D。; a.b.c.d.; ; ; ; ; # a.b.c.d.
+A.b.c。D。; a.b.c.d.; ; ; ; ; # a.b.c.d.
+Ü.xn--tda; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.xn--tda; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+ü.xn--tda; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+ü.xn--tda; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.XN--TDA; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.XN--TDA; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.xn--Tda; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.xn--Tda; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+xn--tda.xn--tda; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+ü.ü; ; ; xn--tda.xn--tda; ; ; # ü.ü
+ü.ü; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.Ü; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.Ü; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.ü; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.ü; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+xn--u-ccb; ü; [V1]; xn--u-ccb; ; ; # ü
+a⒈com; ; [P1, V6]; xn--acom-0w1b; ; ; # a⒈com
+a1.com; ; ; ; ; ; # a1.com
+A⒈COM; a⒈com; [P1, V6]; xn--acom-0w1b; ; ; # a⒈com
+A⒈Com; a⒈com; [P1, V6]; xn--acom-0w1b; ; ; # a⒈com
+xn--acom-0w1b; a⒈com; [V6]; xn--acom-0w1b; ; ; # a⒈com
+xn--a-ecp.ru; a⒈.ru; [V6]; xn--a-ecp.ru; ; ; # a⒈.ru
+xn--0.pt; ; [P4]; ; ; ; # xn--0.pt
+xn--a.pt; .pt; [V6]; xn--a.pt; ; ; # .pt
+xn--a-Ä.pt; xn--a-ä.pt; [P4]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+xn--a-Ä.pt; xn--a-ä.pt; [P4]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+xn--a-ä.pt; xn--a-ä.pt; [P4]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+xn--a-ä.pt; ; [P4]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+XN--A-Ä.PT; xn--a-ä.pt; [P4]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+XN--A-Ä.PT; xn--a-ä.pt; [P4]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+Xn--A-Ä.pt; xn--a-ä.pt; [P4]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+Xn--A-Ä.pt; xn--a-ä.pt; [P4]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+xn--xn--a--gua.pt; xn--a-ä.pt; [V2]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+日本語。JP; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+日本語。JP; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+日本語。jp; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+日本語。Jp; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+xn--wgv71a119e.jp; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+日本語.jp; ; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+日本語.JP; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+日本語.Jp; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+日本語。jp; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+日本語。Jp; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+☕; ; ; xn--53h; ; ; # ☕
+xn--53h; ☕; ; xn--53h; ; ; # ☕
+1.aßbcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz; ; [C1, C2];
1.xn--abcdexyz-qyacaaabaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaa010ze2isb1140zba8cc;
[C1, C2, A4_2];
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa;
[A4_2] # 1.aßbcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz
+1.ASSBCSSSSSSSSDΣΣSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSŜSSZ;
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
[C1, C2];
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc;
[C1, C2, A4_2];
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa;
[A4_2] # 1.assbcssssssssdσσsssss [...]
+1.ASSBCSSSSSSSSDΣΣSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSŜSSZ;
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
[C1, C2];
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc;
[C1, C2, A4_2];
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa;
[A4_2] # 1.assbcssssssssdσσssssss [...]
+1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
; [C1, C2];
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc;
[C1, C2, A4_2];
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa;
[A4_2] #
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
[C1, C2];
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc;
[C1, C2, A4_2];
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa;
[A4_2] # 1.assbcssssssssdσσsssss [...]
+1.Assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
[C1, C2];
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc;
[C1, C2, A4_2];
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa;
[A4_2] # 1.assbcssssssssdσσsssss [...]
+1.Assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
[C1, C2];
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc;
[C1, C2, A4_2];
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa;
[A4_2] # 1.assbcssssssssdσσssssss [...]
+1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa;
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
;
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa;
[A4_2]; ; #
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
; ;
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa;
[A4_2]; ; #
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
;
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa;
[A4_2]; ; #
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.ASSBCSSSSSSSSDΣΣSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSŜSSZ;
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
;
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa;
[A4_2]; ; #
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.ASSBCSSSSSSSSDΣΣSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSŜSSZ;
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
;
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa;
[A4_2]; ; #
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.Assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
;
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa;
[A4_2]; ; #
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.Assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
;
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa;
[A4_2]; ; #
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc;
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz;
[C1, C2];
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc;
[C1, C2, A4_2]; ; #
1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.Aßbcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz;
1.aßbcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz; [C1, C2];
1.xn--abcdexyz-qyacaaabaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaa010ze2isb1140zba8cc;
[C1, C2, A4_2];
1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa;
[A4_2] # 1.aßbcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz
+1.xn--abcdexyz-qyacaaabaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaa010ze2isb1140zba8cc;
1.aßbcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz; [C1, C2];
1.xn--abcdexyz-qyacaaabaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaa010ze2isb1140zba8cc;
[C1, C2, A4_2]; ; # 1.aßbcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz
+xn--bß; ; [C1, C2]; xn--xn--b-pqa5796ccahd; ; xn--bss; [] # xn--bß
+XN--BSS; xn--bss; [C1, C2]; xn--xn--bss-7z6ccid; ; xn--bss; [] #
xn--bss
+xn--bss; ; [C1, C2]; xn--xn--bss-7z6ccid; ; xn--bss; [] # xn--bss
+Xn--Bss; xn--bss; [C1, C2]; xn--xn--bss-7z6ccid; ; xn--bss; [] #
xn--bss
+xn--bss; 夙; ; xn--bss; ; ; # 夙
+夙; ; ; xn--bss; ; ; # 夙
+xn--xn--bss-7z6ccid; xn--bss; [C1, C2]; xn--xn--bss-7z6ccid; ; ; # xn--bss
+Xn--Bß; xn--bß; [C1, C2]; xn--xn--b-pqa5796ccahd; ; xn--bss; [] #
xn--bß
+xn--xn--b-pqa5796ccahd; xn--bß; [C1, C2]; xn--xn--b-pqa5796ccahd; ; ; #
xn--bß
+ˣ͏ℕ﹣-᠌ℬ︀ſ𝔰󠇯ffl; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+x͏N--᠌B︀ss󠇯ffl; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+x͏n--᠌b︀ss󠇯ffl; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+X͏N--᠌B︀SS󠇯FFL; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+X͏n--᠌B︀ss󠇯ffl; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+xn--bssffl; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+夡夞夜夙; ; ; xn--bssffl; ; ; # 夡夞夜夙
+ˣ͏ℕ﹣-᠌ℬ︀S𝔰󠇯FFL; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+x͏N--᠌B︀Ss󠇯FFL; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+ˣ͏ℕ﹣-᠌ℬ︀s𝔰󠇯ffl; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901;
; ; ; ; ; #
123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012
[...]
+123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.;
; ; ; ; ; #
123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901
[...]
+123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012;
; ; ; [A4_1]; ; #
123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890;
; ; ; [A4_2]; ; #
123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.;
; ; ; [A4_2]; ; #
123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901;
; ; ; [A4_1, A4_2]; ; #
123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.123456789012345678
[...]
+ä1234567890123456789012345678901234567890123456789012345; ; ;
xn--1234567890123456789012345678901234567890123456789012345-9te; ; ; #
ä1234567890123456789012345678901234567890123456789012345
+ä1234567890123456789012345678901234567890123456789012345;
ä1234567890123456789012345678901234567890123456789012345; ;
xn--1234567890123456789012345678901234567890123456789012345-9te; ; ; #
ä1234567890123456789012345678901234567890123456789012345
+Ä1234567890123456789012345678901234567890123456789012345;
ä1234567890123456789012345678901234567890123456789012345; ;
xn--1234567890123456789012345678901234567890123456789012345-9te; ; ; #
ä1234567890123456789012345678901234567890123456789012345
+Ä1234567890123456789012345678901234567890123456789012345;
ä1234567890123456789012345678901234567890123456789012345; ;
xn--1234567890123456789012345678901234567890123456789012345-9te; ; ; #
ä1234567890123456789012345678901234567890123456789012345
+xn--1234567890123456789012345678901234567890123456789012345-9te;
ä1234567890123456789012345678901234567890123456789012345; ;
xn--1234567890123456789012345678901234567890123456789012345-9te; ; ; #
ä1234567890123456789012345678901234567890123456789012345
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901;
; ;
123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789
[...]
+123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.;
; ;
123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678
[...]
+123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012;
; ;
123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678
[...]
+123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890;
; ;
123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678
[...]
+123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.;
; ;
123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567
[...]
+123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901;
; ;
123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456
[...]
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567
[...]
+123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901;
123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890
[...]
+a.b..-q--a-.e; ; [V2, V3, X4_2]; ; [V2, V3, A4_2]; ; # a.b..-q--a-.e
+a.b..-q--ä-.e; ; [V2, V3, X4_2]; a.b..xn---q----jra.e; [V2, V3, A4_2]; ; #
a.b..-q--ä-.e
+a.b..-q--ä-.e; a.b..-q--ä-.e; [V2, V3, X4_2]; a.b..xn---q----jra.e; [V2, V3,
A4_2]; ; # a.b..-q--ä-.e
+A.B..-Q--Ä-.E; a.b..-q--ä-.e; [V2, V3, X4_2]; a.b..xn---q----jra.e; [V2, V3,
A4_2]; ; # a.b..-q--ä-.e
+A.B..-Q--Ä-.E; a.b..-q--ä-.e; [V2, V3, X4_2]; a.b..xn---q----jra.e; [V2, V3,
A4_2]; ; # a.b..-q--ä-.e
+A.b..-Q--Ä-.E; a.b..-q--ä-.e; [V2, V3, X4_2]; a.b..xn---q----jra.e; [V2, V3,
A4_2]; ; # a.b..-q--ä-.e
+A.b..-Q--Ä-.E; a.b..-q--ä-.e; [V2, V3, X4_2]; a.b..xn---q----jra.e; [V2, V3,
A4_2]; ; # a.b..-q--ä-.e
+a.b..xn---q----jra.e; a.b..-q--ä-.e; [V2, V3, X4_2]; a.b..xn---q----jra.e;
[V2, V3, A4_2]; ; # a.b..-q--ä-.e
+a..c; ; [X4_2]; ; [A4_2]; ; # a..c
+a.-b.; ; [V3]; ; ; ; # a.-b.
+a.b-.c; ; [V3]; ; ; ; # a.b-.c
+a.-.c; ; [V3]; ; ; ; # a.-.c
+a.bc--de.f; ; [V2]; ; ; ; # a.bc--de.f
+ä..c; ä..c; [X4_2]; xn--4ca..c; [A4_2]; ; # ä..c
+ä..c; ä..c; [X4_2]; xn--4ca..c; [A4_2]; ; # ä..c
+Ä..C; ä..c; [X4_2]; xn--4ca..c; [A4_2]; ; # ä..c
+Ä..C; ä..c; [X4_2]; xn--4ca..c; [A4_2]; ; # ä..c
+xn--4ca..c; ä..c; [X4_2]; xn--4ca..c; [A4_2]; ; # ä..c
+ä.-b.; ; [V3]; xn--4ca.-b.; ; ; # ä.-b.
+ä.-b.; ä.-b.; [V3]; xn--4ca.-b.; ; ; # ä.-b.
+Ä.-B.; ä.-b.; [V3]; xn--4ca.-b.; ; ; # ä.-b.
+Ä.-B.; ä.-b.; [V3]; xn--4ca.-b.; ; ; # ä.-b.
+xn--4ca.-b.; ä.-b.; [V3]; xn--4ca.-b.; ; ; # ä.-b.
+ä.b-.c; ; [V3]; xn--4ca.b-.c; ; ; # ä.b-.c
+ä.b-.c; ä.b-.c; [V3]; xn--4ca.b-.c; ; ; # ä.b-.c
+Ä.B-.C; ä.b-.c; [V3]; xn--4ca.b-.c; ; ; # ä.b-.c
+Ä.B-.C; ä.b-.c; [V3]; xn--4ca.b-.c; ; ; # ä.b-.c
+Ä.b-.C; ä.b-.c; [V3]; xn--4ca.b-.c; ; ; # ä.b-.c
+Ä.b-.C; ä.b-.c; [V3]; xn--4ca.b-.c; ; ; # ä.b-.c
+xn--4ca.b-.c; ä.b-.c; [V3]; xn--4ca.b-.c; ; ; # ä.b-.c
+ä.-.c; ; [V3]; xn--4ca.-.c; ; ; # ä.-.c
+ä.-.c; ä.-.c; [V3]; xn--4ca.-.c; ; ; # ä.-.c
+Ä.-.C; ä.-.c; [V3]; xn--4ca.-.c; ; ; # ä.-.c
+Ä.-.C; ä.-.c; [V3]; xn--4ca.-.c; ; ; # ä.-.c
+xn--4ca.-.c; ä.-.c; [V3]; xn--4ca.-.c; ; ; # ä.-.c
+ä.bc--de.f; ; [V2]; xn--4ca.bc--de.f; ; ; # ä.bc--de.f
+ä.bc--de.f; ä.bc--de.f; [V2]; xn--4ca.bc--de.f; ; ; # ä.bc--de.f
+Ä.BC--DE.F; ä.bc--de.f; [V2]; xn--4ca.bc--de.f; ; ; # ä.bc--de.f
+Ä.BC--DE.F; ä.bc--de.f; [V2]; xn--4ca.bc--de.f; ; ; # ä.bc--de.f
+Ä.bc--De.f; ä.bc--de.f; [V2]; xn--4ca.bc--de.f; ; ; # ä.bc--de.f
+Ä.bc--De.f; ä.bc--de.f; [V2]; xn--4ca.bc--de.f; ; ; # ä.bc--de.f
+xn--4ca.bc--de.f; ä.bc--de.f; [V2]; xn--4ca.bc--de.f; ; ; # ä.bc--de.f
+a.b.̈c.d; ; [V5]; a.b.xn--c-bcb.d; ; ; # a.b.̈c.d
+A.B.̈C.D; a.b.̈c.d; [V5]; a.b.xn--c-bcb.d; ; ; # a.b.̈c.d
+A.b.̈c.d; a.b.̈c.d; [V5]; a.b.xn--c-bcb.d; ; ; # a.b.̈c.d
+a.b.xn--c-bcb.d; a.b.̈c.d; [V5]; a.b.xn--c-bcb.d; ; ; # a.b.̈c.d
+A0; a0; ; ; ; ; # a0
+0A; 0a; ; ; ; ; # 0a
+0A.א; 0a.א; [B1]; 0a.xn--4db; ; ; # 0a.א
+0a.א; ; [B1]; 0a.xn--4db; ; ; # 0a.א
+0a.xn--4db; 0a.א; [B1]; 0a.xn--4db; ; ; # 0a.א
+c.xn--0-eha.xn--4db; c.0ü.א; [B1]; c.xn--0-eha.xn--4db; ; ; # c.0ü.א
+b-.א; ; [B6, V3]; b-.xn--4db; ; ; # b-.א
+B-.א; b-.א; [B6, V3]; b-.xn--4db; ; ; # b-.א
+b-.xn--4db; b-.א; [B6, V3]; b-.xn--4db; ; ; # b-.א
+d.xn----dha.xn--4db; d.ü-.א; [B6, V3]; d.xn----dha.xn--4db; ; ; # d.ü-.א
+aא; ; [B5, B6]; xn--a-0hc; ; ; # aא
+Aא; aא; [B5, B6]; xn--a-0hc; ; ; # aא
+xn--a-0hc; aא; [B5, B6]; xn--a-0hc; ; ; # aא
+אׇ; ; ; xn--vdbr; ; ; # אׇ
+xn--vdbr; אׇ; ; xn--vdbr; ; ; # אׇ
+א9ׇ; ; ; xn--9-ihcz; ; ; # א9ׇ
+xn--9-ihcz; א9ׇ; ; xn--9-ihcz; ; ; # א9ׇ
+אaׇ; ; [B2, B3]; xn--a-ihcz; ; ; # אaׇ
+אAׇ; אaׇ; [B2, B3]; xn--a-ihcz; ; ; # אaׇ
+xn--a-ihcz; אaׇ; [B2, B3]; xn--a-ihcz; ; ; # אaׇ
+את; ; ; xn--4db6c; ; ; # את
+xn--4db6c; את; ; xn--4db6c; ; ; # את
+א׳ת; ; ; xn--4db6c0a; ; ; # א׳ת
+xn--4db6c0a; א׳ת; ; xn--4db6c0a; ; ; # א׳ת
+aאTz; aאtz; [B5]; xn--atz-qpe; ; ; # aאtz
+aאtz; ; [B5]; xn--atz-qpe; ; ; # aאtz
+AאTZ; aאtz; [B5]; xn--atz-qpe; ; ; # aאtz
+Aאtz; aאtz; [B5]; xn--atz-qpe; ; ; # aאtz
+xn--atz-qpe; aאtz; [B5]; xn--atz-qpe; ; ; # aאtz
+אTת; אtת; [B2]; xn--t-zhc3f; ; ; # אtת
+אtת; ; [B2]; xn--t-zhc3f; ; ; # אtת
+xn--t-zhc3f; אtת; [B2]; xn--t-zhc3f; ; ; # אtת
+א7ת; ; ; xn--7-zhc3f; ; ; # א7ת
+xn--7-zhc3f; א7ת; ; xn--7-zhc3f; ; ; # א7ת
+א٧ת; ; ; xn--4db6c6t; ; ; # א٧ת
+xn--4db6c6t; א٧ת; ; xn--4db6c6t; ; ; # א٧ת
+a7٧z; ; [B5]; xn--a7z-06e; ; ; # a7٧z
+A7٧Z; a7٧z; [B5]; xn--a7z-06e; ; ; # a7٧z
+A7٧z; a7٧z; [B5]; xn--a7z-06e; ; ; # a7٧z
+xn--a7z-06e; a7٧z; [B5]; xn--a7z-06e; ; ; # a7٧z
+א7٧ת; ; [B4]; xn--7-zhc3fty; ; ; # א7٧ת
+xn--7-zhc3fty; א7٧ת; [B4]; xn--7-zhc3fty; ; ; # א7٧ת
+ஹ்; ; ; xn--dmc4b194h; ; xn--dmc4b; # ஹ்
+xn--dmc4b; ஹ்; ; xn--dmc4b; ; ; # ஹ்
+ஹ்; ; ; xn--dmc4b; ; ; # ஹ்
+xn--dmc4b194h; ஹ்; ; xn--dmc4b194h; ; ; # ஹ்
+ஹ; ; [C2]; xn--dmc225h; ; xn--dmc; [] # ஹ
+xn--dmc; ஹ; ; xn--dmc; ; ; # ஹ
+ஹ; ; ; xn--dmc; ; ; # ஹ
+xn--dmc225h; ஹ; [C2]; xn--dmc225h; ; ; # ஹ
+; ; [C2]; xn--1ug; ; ; [A4_2] #
+; ; [X4_2]; ; [A4_2]; ; #
+xn--1ug; ; [C2]; xn--1ug; ; ; #
+ஹ்; ; ; xn--dmc4by94h; ; xn--dmc4b; # ஹ்
+xn--dmc4by94h; ஹ்; ; xn--dmc4by94h; ; ; # ஹ்
+ஹ; ; [C1]; xn--dmc025h; ; xn--dmc; [] # ஹ
+xn--dmc025h; ஹ; [C1]; xn--dmc025h; ; ; # ஹ
+; ; [C1]; xn--0ug; ; ; [A4_2] #
+xn--0ug; ; [C1]; xn--0ug; ; ; #
+لٰۭۯ; ; ; xn--ghb2gxqia7523a; ; xn--ghb2gxqia; # لٰۭۯ
+xn--ghb2gxqia; لٰۭۯ; ; xn--ghb2gxqia; ; ; # لٰۭۯ
+لٰۭۯ; ; ; xn--ghb2gxqia; ; ; # لٰۭۯ
+xn--ghb2gxqia7523a; لٰۭۯ; ; xn--ghb2gxqia7523a; ; ; # لٰۭۯ
+لٰۯ; ; ; xn--ghb2g3qq34f; ; xn--ghb2g3q; # لٰۯ
+xn--ghb2g3q; لٰۯ; ; xn--ghb2g3q; ; ; # لٰۯ
+لٰۯ; ; ; xn--ghb2g3q; ; ; # لٰۯ
+xn--ghb2g3qq34f; لٰۯ; ; xn--ghb2g3qq34f; ; ; # لٰۯ
+لۭۯ; ; ; xn--ghb25aga828w; ; xn--ghb25aga; # لۭۯ
+xn--ghb25aga; لۭۯ; ; xn--ghb25aga; ; ; # لۭۯ
+لۭۯ; ; ; xn--ghb25aga; ; ; # لۭۯ
+xn--ghb25aga828w; لۭۯ; ; xn--ghb25aga828w; ; ; # لۭۯ
+لۯ; ; ; xn--ghb65a953d; ; xn--ghb65a; # لۯ
+xn--ghb65a; لۯ; ; xn--ghb65a; ; ; # لۯ
+لۯ; ; ; xn--ghb65a; ; ; # لۯ
+xn--ghb65a953d; لۯ; ; xn--ghb65a953d; ; ; # لۯ
+لٰۭ; ; [B3, C1]; xn--ghb2gxqy34f; ; xn--ghb2gxq; [] # لٰۭ
+xn--ghb2gxq; لٰۭ; ; xn--ghb2gxq; ; ; # لٰۭ
+لٰۭ; ; ; xn--ghb2gxq; ; ; # لٰۭ
+xn--ghb2gxqy34f; لٰۭ; [B3, C1]; xn--ghb2gxqy34f; ; ; # لٰۭ
+ۯۯ; ; [C1]; xn--cmba004q; ; xn--cmba; [] # ۯۯ
+xn--cmba; ۯۯ; ; xn--cmba; ; ; # ۯۯ
+ۯۯ; ; ; xn--cmba; ; ; # ۯۯ
+xn--cmba004q; ۯۯ; [C1]; xn--cmba004q; ; ; # ۯۯ
+ل; ; [B3, C1]; xn--ghb413k; ; xn--ghb; [] # ل
+xn--ghb; ل; ; xn--ghb; ; ; # ل
+ل; ; ; xn--ghb; ; ; # ل
+xn--ghb413k; ل; [B3, C1]; xn--ghb413k; ; ; # ل
+a。。b; a..b; [X4_2]; ; [A4_2]; ; # a..b
+A。。B; a..b; [X4_2]; ; [A4_2]; ; # a..b
+a..b; ; [X4_2]; ; [A4_2]; ; # a..b
+。。ڹ; ..ڹ; [B1, B3, C1, C2, X4_2]; xn--1ug..xn--skb080k; [B1, B3, C1, C2,
A4_2]; ..xn--skb; [A4_2] # ..ڹ
+..xn--skb; ..ڹ; [X4_2]; ..xn--skb; [A4_2]; ; # ..ڹ
+xn--1ug..xn--skb080k; ..ڹ; [B1, B3, C1, C2, X4_2]; xn--1ug..xn--skb080k;
[B1, B3, C1, C2, A4_2]; ; # ..ڹ
+א0٠; ; [B4]; xn--0-zhc74b; ; ; # א0٠
+xn--0-zhc74b; א0٠; [B4]; xn--0-zhc74b; ; ; # א0٠
+$; ; [P1, V6]; ; ; ; # $
+
+# RANDOMIZED TESTS
+
+c.0ü.א; ; [B1]; c.xn--0-eha.xn--4db; ; ; # c.0ü.א
+c.0ü.א; c.0ü.א; [B1]; c.xn--0-eha.xn--4db; ; ; # c.0ü.א
+C.0Ü.א; c.0ü.א; [B1]; c.xn--0-eha.xn--4db; ; ; # c.0ü.א
+C.0Ü.א; c.0ü.א; [B1]; c.xn--0-eha.xn--4db; ; ; # c.0ü.א
+C.0ü.א; c.0ü.א; [B1]; c.xn--0-eha.xn--4db; ; ; # c.0ü.א
+C.0ü.א; c.0ü.א; [B1]; c.xn--0-eha.xn--4db; ; ; # c.0ü.א
+⒕∝ٟ.-󠄯; ⒕∝ٟ.-; [P1, V3, V6]; xn--7hb713lfwbi1311b.-; ; ; # ⒕∝ٟ.-
+14.∝ٟ.-󠄯; 14.∝ٟ.-; [P1, V3, V6]; 14.xn--7hb713l3v90n.-; ; ; # 14.∝ٟ.-
+14.xn--7hb713l3v90n.-; 14.∝ٟ.-; [V3, V6]; 14.xn--7hb713l3v90n.-; ; ; #
14.∝ٟ.-
+xn--7hb713lfwbi1311b.-; ⒕∝ٟ.-; [V3, V6]; xn--7hb713lfwbi1311b.-; ; ; # ⒕∝ٟ.-
+ꡣ.ߏ; ; ; xn--8c9a.xn--qsb; ; ; # ꡣ.ߏ
+xn--8c9a.xn--qsb; ꡣ.ߏ; ; xn--8c9a.xn--qsb; ; ; # ꡣ.ߏ
+≯。-; ≯.-; [B1, P1, V3, V6]; xn--lfb566l.-; ; ; # ≯.-
+≯。-; ≯.-; [B1, P1, V3, V6]; xn--lfb566l.-; ; ; # ≯.-
+≯。-; ≯.-; [B1, P1, V3, V6]; xn--lfb566l.-; ; ; # ≯.-
+≯。-; ≯.-; [B1, P1, V3, V6]; xn--lfb566l.-; ; ; # ≯.-
+xn--lfb566l.-; ≯.-; [B1, V3, V6]; xn--lfb566l.-; ; ; # ≯.-
+⾛𐹧⾕.ᅟςႭ; 走𐹧谷.ᅟςႭ; [B5, P1, V6]; xn--6g3a1x434z.xn--3xa827dhpae6345i; ;
xn--6g3a1x434z.xn--4xa627dhpae6345i; # 走𐹧谷.ςႭ
+走𐹧谷.ᅟςႭ; ; [B5, P1, V6]; xn--6g3a1x434z.xn--3xa827dhpae6345i; ;
xn--6g3a1x434z.xn--4xa627dhpae6345i; # 走𐹧谷.ςႭ
+走𐹧谷.ᅟςⴍ; ; [B5, P1, V6]; xn--6g3a1x434z.xn--3xa380eotvh7453a; ;
xn--6g3a1x434z.xn--4xa180eotvh7453a; # 走𐹧谷.ςⴍ
+走𐹧谷.ᅟΣႭ; 走𐹧谷.ᅟσႭ; [B5, P1, V6]; xn--6g3a1x434z.xn--4xa627dhpae6345i; ; ; #
走𐹧谷.σႭ
+走𐹧谷.ᅟσⴍ; ; [B5, P1, V6]; xn--6g3a1x434z.xn--4xa180eotvh7453a; ; ; # 走𐹧谷.σⴍ
+走𐹧谷.ᅟΣⴍ; 走𐹧谷.ᅟσⴍ; [B5, P1, V6]; xn--6g3a1x434z.xn--4xa180eotvh7453a; ; ; #
走𐹧谷.σⴍ
+xn--6g3a1x434z.xn--4xa180eotvh7453a; 走𐹧谷.ᅟσⴍ; [B5, V6];
xn--6g3a1x434z.xn--4xa180eotvh7453a; ; ; # 走𐹧谷.σⴍ
+xn--6g3a1x434z.xn--4xa627dhpae6345i; 走𐹧谷.ᅟσႭ; [B5, V6];
xn--6g3a1x434z.xn--4xa627dhpae6345i; ; ; # 走𐹧谷.σႭ
+xn--6g3a1x434z.xn--3xa380eotvh7453a; 走𐹧谷.ᅟςⴍ; [B5, V6];
xn--6g3a1x434z.xn--3xa380eotvh7453a; ; ; # 走𐹧谷.ςⴍ
+xn--6g3a1x434z.xn--3xa827dhpae6345i; 走𐹧谷.ᅟςႭ; [B5, V6];
xn--6g3a1x434z.xn--3xa827dhpae6345i; ; ; # 走𐹧谷.ςႭ
+⾛𐹧⾕.ᅟςⴍ; 走𐹧谷.ᅟςⴍ; [B5, P1, V6]; xn--6g3a1x434z.xn--3xa380eotvh7453a; ;
xn--6g3a1x434z.xn--4xa180eotvh7453a; # 走𐹧谷.ςⴍ
+⾛𐹧⾕.ᅟΣႭ; 走𐹧谷.ᅟσႭ; [B5, P1, V6]; xn--6g3a1x434z.xn--4xa627dhpae6345i; ; ; #
走𐹧谷.σႭ
+⾛𐹧⾕.ᅟσⴍ; 走𐹧谷.ᅟσⴍ; [B5, P1, V6]; xn--6g3a1x434z.xn--4xa180eotvh7453a; ; ; #
走𐹧谷.σⴍ
+⾛𐹧⾕.ᅟΣⴍ; 走𐹧谷.ᅟσⴍ; [B5, P1, V6]; xn--6g3a1x434z.xn--4xa180eotvh7453a; ; ; #
走𐹧谷.σⴍ
+≠ᢙ≯.솣-ᡴႠ; ; [C2, P1, V6]; xn--jbf929a90b0b.xn----6zg521d196p; ;
xn--jbf911clb.xn----6zg521d196p; [P1, V6] # ≠ᢙ≯.솣-ᡴႠ
+≠ᢙ≯.솣-ᡴႠ; ≠ᢙ≯.솣-ᡴႠ; [C2, P1, V6]; xn--jbf929a90b0b.xn----6zg521d196p; ;
xn--jbf911clb.xn----6zg521d196p; [P1, V6] # ≠ᢙ≯.솣-ᡴႠ
+≠ᢙ≯.솣-ᡴⴀ; ≠ᢙ≯.솣-ᡴⴀ; [C2, P1, V6]; xn--jbf929a90b0b.xn----p9j493ivi4l; ;
xn--jbf911clb.xn----p9j493ivi4l; [P1, V6] # ≠ᢙ≯.솣-ᡴⴀ
+≠ᢙ≯.솣-ᡴⴀ; ; [C2, P1, V6]; xn--jbf929a90b0b.xn----p9j493ivi4l; ;
xn--jbf911clb.xn----p9j493ivi4l; [P1, V6] # ≠ᢙ≯.솣-ᡴⴀ
+xn--jbf911clb.xn----p9j493ivi4l; ≠ᢙ≯.솣-ᡴⴀ; [V6];
xn--jbf911clb.xn----p9j493ivi4l; ; ; # ≠ᢙ≯.솣-ᡴⴀ
+xn--jbf929a90b0b.xn----p9j493ivi4l; ≠ᢙ≯.솣-ᡴⴀ; [C2, V6];
xn--jbf929a90b0b.xn----p9j493ivi4l; ; ; # ≠ᢙ≯.솣-ᡴⴀ
+xn--jbf911clb.xn----6zg521d196p; ≠ᢙ≯.솣-ᡴႠ; [V6];
xn--jbf911clb.xn----6zg521d196p; ; ; # ≠ᢙ≯.솣-ᡴႠ
+xn--jbf929a90b0b.xn----6zg521d196p; ≠ᢙ≯.솣-ᡴႠ; [C2, V6];
xn--jbf929a90b0b.xn----6zg521d196p; ; ; # ≠ᢙ≯.솣-ᡴႠ
+.𐿇ྡྷݽ; .𐿇ྡྷݽ; [P1, V6]; xn--gw68a.xn--ifb57ev2psc6027m; ; ; # .𐿇ྡྷݽ
+.𐿇ྡྷݽ; .𐿇ྡྷݽ; [P1, V6]; xn--gw68a.xn--ifb57ev2psc6027m; ; ; # .𐿇ྡྷݽ
+.𐿇ྡྷݽ; ; [P1, V6]; xn--gw68a.xn--ifb57ev2psc6027m; ; ; # .𐿇ྡྷݽ
+xn--gw68a.xn--ifb57ev2psc6027m; .𐿇ྡྷݽ; [V6]; xn--gw68a.xn--ifb57ev2psc6027m;
; ; # .𐿇ྡྷݽ
+𣳔̃.𑓂; ; [V5]; xn--nsa95820a.xn--wz1d; ; ; # 𣳔̃.𑓂
+xn--nsa95820a.xn--wz1d; 𣳔̃.𑓂; [V5]; xn--nsa95820a.xn--wz1d; ; ; # 𣳔̃.𑓂
+𞤀𞥅。󠄌Ⴣꡥ; 𞤢𞥅.Ⴣꡥ; [B2, B3, P1, V6]; xn--9d6hgcy3556a.xn--7nd0578e; ; ; # 𞤢𞥅.Ⴣꡥ
+𞤢𞥅。󠄌ⴣꡥ; 𞤢𞥅.ⴣꡥ; [B2, B3, P1, V6]; xn--9d6hgcy3556a.xn--rlju750b; ; ; # 𞤢𞥅.ⴣꡥ
+xn--9d6hgcy3556a.xn--rlju750b; 𞤢𞥅.ⴣꡥ; [B2, B3, V6];
xn--9d6hgcy3556a.xn--rlju750b; ; ; # 𞤢𞥅.ⴣꡥ
+xn--9d6hgcy3556a.xn--7nd0578e; 𞤢𞥅.Ⴣꡥ; [B2, B3, V6];
xn--9d6hgcy3556a.xn--7nd0578e; ; ; # 𞤢𞥅.Ⴣꡥ
+𞤀𞥅。󠄌ⴣꡥ; 𞤢𞥅.ⴣꡥ; [B2, B3, P1, V6]; xn--9d6hgcy3556a.xn--rlju750b; ; ; # 𞤢𞥅.ⴣꡥ
+𑁿ς𖬱。󠅡렧; 𑁿ς𖬱.렧; [B1, P1, V6]; xn--3xa73xp48ys2xc.xn--kn2b; ;
xn--4xa53xp48ys2xc.xn--kn2b; # 𑁿ς𖬱.렧
+𑁿ς𖬱。󠅡렧; 𑁿ς𖬱.렧; [B1, P1, V6]; xn--3xa73xp48ys2xc.xn--kn2b; ;
xn--4xa53xp48ys2xc.xn--kn2b; # 𑁿ς𖬱.렧
+𑁿Σ𖬱。󠅡렧; 𑁿σ𖬱.렧; [B1, P1, V6]; xn--4xa53xp48ys2xc.xn--kn2b; ; ; # 𑁿σ𖬱.렧
+𑁿Σ𖬱。󠅡렧; 𑁿σ𖬱.렧; [B1, P1, V6]; xn--4xa53xp48ys2xc.xn--kn2b; ; ; # 𑁿σ𖬱.렧
+𑁿σ𖬱。󠅡렧; 𑁿σ𖬱.렧; [B1, P1, V6]; xn--4xa53xp48ys2xc.xn--kn2b; ; ; # 𑁿σ𖬱.렧
+𑁿σ𖬱。󠅡렧; 𑁿σ𖬱.렧; [B1, P1, V6]; xn--4xa53xp48ys2xc.xn--kn2b; ; ; # 𑁿σ𖬱.렧
+xn--4xa53xp48ys2xc.xn--kn2b; 𑁿σ𖬱.렧; [B1, V6]; xn--4xa53xp48ys2xc.xn--kn2b; ;
; # 𑁿σ𖬱.렧
+xn--3xa73xp48ys2xc.xn--kn2b; 𑁿ς𖬱.렧; [B1, V6]; xn--3xa73xp48ys2xc.xn--kn2b; ;
; # 𑁿ς𖬱.렧
+-。𞤍⒈; -.𞤯⒈; [B1, C1, C2, P1, V3, V6]; xn----ugn.xn--0ugc555aiv51d; ;
-.xn--tsh3666n; [B1, P1, V3, V6] # -.𞤯⒈
+-。𞤍1.; -.𞤯1.; [B1, C1, C2, V3]; xn----ugn.xn--1-rgnd61297b.; ;
-.xn--1-0i8r.; [B1, V3] # -.𞤯1.
+-。𞤯1.; -.𞤯1.; [B1, C1, C2, V3]; xn----ugn.xn--1-rgnd61297b.; ;
-.xn--1-0i8r.; [B1, V3] # -.𞤯1.
+-.xn--1-0i8r.; -.𞤯1.; [B1, V3]; -.xn--1-0i8r.; ; ; # -.𞤯1.
+xn----ugn.xn--1-rgnd61297b.; -.𞤯1.; [B1, C1, C2, V3];
xn----ugn.xn--1-rgnd61297b.; ; ; # -.𞤯1.
+-。𞤯⒈; -.𞤯⒈; [B1, C1, C2, P1, V3, V6]; xn----ugn.xn--0ugc555aiv51d; ;
-.xn--tsh3666n; [B1, P1, V3, V6] # -.𞤯⒈
+-.xn--tsh3666n; -.𞤯⒈; [B1, V3, V6]; -.xn--tsh3666n; ; ; # -.𞤯⒈
+xn----ugn.xn--0ugc555aiv51d; -.𞤯⒈; [B1, C1, C2, V3, V6];
xn----ugn.xn--0ugc555aiv51d; ; ; # -.𞤯⒈
+.Ⴒ𑇀; ; [C1, P1, V6]; xn--0ug15083f.xn--qnd6272k; ; xn--bn95b.xn--qnd6272k;
[P1, V6] # .Ⴒ𑇀
+.ⴒ𑇀; ; [C1, P1, V6]; xn--0ug15083f.xn--9kj2034e; ; xn--bn95b.xn--9kj2034e;
[P1, V6] # .ⴒ𑇀
+xn--bn95b.xn--9kj2034e; .ⴒ𑇀; [V6]; xn--bn95b.xn--9kj2034e; ; ; # .ⴒ𑇀
+xn--0ug15083f.xn--9kj2034e; .ⴒ𑇀; [C1, V6]; xn--0ug15083f.xn--9kj2034e; ; ;
# .ⴒ𑇀
+xn--bn95b.xn--qnd6272k; .Ⴒ𑇀; [V6]; xn--bn95b.xn--qnd6272k; ; ; # .Ⴒ𑇀
+xn--0ug15083f.xn--qnd6272k; .Ⴒ𑇀; [C1, V6]; xn--0ug15083f.xn--qnd6272k; ; ;
# .Ⴒ𑇀
+繱𑖿.8︒; 繱𑖿.8︒; [P1, V6]; xn--1ug6928ac48e.xn--8-o89h; ;
xn--gl0as212a.xn--8-o89h; # 繱𑖿.8︒
+繱𑖿.8。; 繱𑖿.8.; ; xn--1ug6928ac48e.8.; ; xn--gl0as212a.8.; # 繱𑖿.8.
+xn--gl0as212a.8.; 繱𑖿.8.; ; xn--gl0as212a.8.; ; ; # 繱𑖿.8.
+繱𑖿.8.; ; ; xn--gl0as212a.8.; ; ; # 繱𑖿.8.
+xn--1ug6928ac48e.8.; 繱𑖿.8.; ; xn--1ug6928ac48e.8.; ; ; # 繱𑖿.8.
+繱𑖿.8.; ; ; xn--1ug6928ac48e.8.; ; xn--gl0as212a.8.; # 繱𑖿.8.
+xn--gl0as212a.xn--8-o89h; 繱𑖿.8︒; [V6]; xn--gl0as212a.xn--8-o89h; ; ; # 繱𑖿.8︒
+xn--1ug6928ac48e.xn--8-o89h; 繱𑖿.8︒; [V6]; xn--1ug6928ac48e.xn--8-o89h; ; ; #
繱𑖿.8︒
+󠆾.𞀈; .𞀈; [V5, X4_2]; .xn--ph4h; [V5, A4_2]; ; # .𞀈
+󠆾.𞀈; .𞀈; [V5, X4_2]; .xn--ph4h; [V5, A4_2]; ; # .𞀈
+.xn--ph4h; .𞀈; [V5, X4_2]; .xn--ph4h; [V5, A4_2]; ; # .𞀈
+ß۫。; ß۫.; [C2]; xn--zca012a.xn--1ug; ; xn--ss-59d.; [] # ß۫.
+SS۫。; ss۫.; [C2]; xn--ss-59d.xn--1ug; ; xn--ss-59d.; [] # ss۫.
+ss۫。; ss۫.; [C2]; xn--ss-59d.xn--1ug; ; xn--ss-59d.; [] # ss۫.
+Ss۫。; ss۫.; [C2]; xn--ss-59d.xn--1ug; ; xn--ss-59d.; [] # ss۫.
+xn--ss-59d.; ss۫.; ; xn--ss-59d.; ; ; # ss۫.
+ss۫.; ; ; xn--ss-59d.; ; ; # ss۫.
+SS۫.; ss۫.; ; xn--ss-59d.; ; ; # ss۫.
+Ss۫.; ss۫.; ; xn--ss-59d.; ; ; # ss۫.
+xn--ss-59d.xn--1ug; ss۫.; [C2]; xn--ss-59d.xn--1ug; ; ; # ss۫.
+xn--zca012a.xn--1ug; ß۫.; [C2]; xn--zca012a.xn--1ug; ; ; # ß۫.
+⒈.; ⒈.; [C1, P1, V6]; xn--0ug88o47900b.xn--tv36e; ;
xn--tshz2001k.xn--tv36e; [P1, V6] # ⒈.
+1..; ; [C1, P1, V6, X4_2]; xn--1-rgn37671n..xn--tv36e; [C1, P1, V6, A4_2];
xn--1-bs31m..xn--tv36e; [P1, V6, A4_2] # 1..
+xn--1-bs31m..xn--tv36e; 1..; [V6, X4_2]; xn--1-bs31m..xn--tv36e; [V6, A4_2];
; # 1..
+xn--1-rgn37671n..xn--tv36e; 1..; [C1, V6, X4_2];
xn--1-rgn37671n..xn--tv36e; [C1, V6, A4_2]; ; # 1..
+xn--tshz2001k.xn--tv36e; ⒈.; [V6]; xn--tshz2001k.xn--tv36e; ; ; # ⒈.
+xn--0ug88o47900b.xn--tv36e; ⒈.; [C1, V6]; xn--0ug88o47900b.xn--tv36e; ; ;
# ⒈.
+ٟꪲß。; ٟꪲß.; [P1, V6]; xn--zca92z0t7n5w96j.xn--bb79d; ;
xn--ss-3xd2839nncy1m.xn--bb79d; # ٟꪲß.
+ٟꪲSS。; ٟꪲss.; [P1, V6]; xn--ss-3xd2839nncy1m.xn--bb79d; ; ; # ٟꪲss.
+ٟꪲss。; ٟꪲss.; [P1, V6]; xn--ss-3xd2839nncy1m.xn--bb79d; ; ; # ٟꪲss.
+ٟꪲSs。; ٟꪲss.; [P1, V6]; xn--ss-3xd2839nncy1m.xn--bb79d; ; ; # ٟꪲss.
+xn--ss-3xd2839nncy1m.xn--bb79d; ٟꪲss.; [V6]; xn--ss-3xd2839nncy1m.xn--bb79d;
; ; # ٟꪲss.
+xn--zca92z0t7n5w96j.xn--bb79d; ٟꪲß.; [V6]; xn--zca92z0t7n5w96j.xn--bb79d; ;
; # ٟꪲß.
+ݴ𞤿。䉜; ݴ𞤿.䉜; [C1, C2, P1, V6]; xn--4pb607jjt73a.xn--1ug236ke314donv1a;
; xn--4pb2977v.xn--z0nt555ukbnv; [P1, V6] # ݴ𞤿.䉜
+ݴ𞤝。䉜; ݴ𞤿.䉜; [C1, C2, P1, V6]; xn--4pb607jjt73a.xn--1ug236ke314donv1a;
; xn--4pb2977v.xn--z0nt555ukbnv; [P1, V6] # ݴ𞤿.䉜
+xn--4pb2977v.xn--z0nt555ukbnv; ݴ𞤿.䉜; [V6]; xn--4pb2977v.xn--z0nt555ukbnv; ;
; # ݴ𞤿.䉜
+xn--4pb607jjt73a.xn--1ug236ke314donv1a; ݴ𞤿.䉜; [C1, C2, V6];
xn--4pb607jjt73a.xn--1ug236ke314donv1a; ; ; # ݴ𞤿.䉜
+ςᡱ⒈.≮𑄳𐮍; ; [B1, P1, V6]; xn--3xa407hkzinr77u.xn--1ug85gn777ahze; ;
xn--4xa207hkzinr77u.xn--gdh5392g6sd; # ςᡱ⒈.≮𑄳𐮍
+ςᡱ⒈.≮𑄳𐮍; ςᡱ⒈.≮𑄳𐮍; [B1, P1, V6]; xn--3xa407hkzinr77u.xn--1ug85gn777ahze; ;
xn--4xa207hkzinr77u.xn--gdh5392g6sd; # ςᡱ⒈.≮𑄳𐮍
+ςᡱ1..≮𑄳𐮍; ; [B1, P1, V6, X4_2]; xn--1-xmb999meq63t..xn--1ug85gn777ahze; [B1,
P1, V6, A4_2]; xn--1-zmb699meq63t..xn--gdh5392g6sd; # ςᡱ1..≮𑄳𐮍
+ςᡱ1..≮𑄳𐮍; ςᡱ1..≮𑄳𐮍; [B1, P1, V6, X4_2];
xn--1-xmb999meq63t..xn--1ug85gn777ahze; [B1, P1, V6, A4_2];
xn--1-zmb699meq63t..xn--gdh5392g6sd; # ςᡱ1..≮𑄳𐮍
+Σᡱ1..≮𑄳𐮍; σᡱ1..≮𑄳𐮍; [B1, P1, V6, X4_2];
xn--1-zmb699meq63t..xn--1ug85gn777ahze; [B1, P1, V6, A4_2];
xn--1-zmb699meq63t..xn--gdh5392g6sd; # σᡱ1..≮𑄳𐮍
+Σᡱ1..≮𑄳𐮍; σᡱ1..≮𑄳𐮍; [B1, P1, V6, X4_2];
xn--1-zmb699meq63t..xn--1ug85gn777ahze; [B1, P1, V6, A4_2];
xn--1-zmb699meq63t..xn--gdh5392g6sd; # σᡱ1..≮𑄳𐮍
+σᡱ1..≮𑄳𐮍; ; [B1, P1, V6, X4_2]; xn--1-zmb699meq63t..xn--1ug85gn777ahze; [B1,
P1, V6, A4_2]; xn--1-zmb699meq63t..xn--gdh5392g6sd; # σᡱ1..≮𑄳𐮍
+σᡱ1..≮𑄳𐮍; σᡱ1..≮𑄳𐮍; [B1, P1, V6, X4_2];
xn--1-zmb699meq63t..xn--1ug85gn777ahze; [B1, P1, V6, A4_2];
xn--1-zmb699meq63t..xn--gdh5392g6sd; # σᡱ1..≮𑄳𐮍
+xn--1-zmb699meq63t..xn--gdh5392g6sd; σᡱ1..≮𑄳𐮍; [B1, V6, X4_2];
xn--1-zmb699meq63t..xn--gdh5392g6sd; [B1, V6, A4_2]; ; # σᡱ1..≮𑄳𐮍
+xn--1-zmb699meq63t..xn--1ug85gn777ahze; σᡱ1..≮𑄳𐮍; [B1, V6, X4_2];
xn--1-zmb699meq63t..xn--1ug85gn777ahze; [B1, V6, A4_2]; ; # σᡱ1..≮𑄳𐮍
+xn--1-xmb999meq63t..xn--1ug85gn777ahze; ςᡱ1..≮𑄳𐮍; [B1, V6, X4_2];
xn--1-xmb999meq63t..xn--1ug85gn777ahze; [B1, V6, A4_2]; ; # ςᡱ1..≮𑄳𐮍
+Σᡱ⒈.≮𑄳𐮍; σᡱ⒈.≮𑄳𐮍; [B1, P1, V6]; xn--4xa207hkzinr77u.xn--1ug85gn777ahze; ;
xn--4xa207hkzinr77u.xn--gdh5392g6sd; # σᡱ⒈.≮𑄳𐮍
+Σᡱ⒈.≮𑄳𐮍; σᡱ⒈.≮𑄳𐮍; [B1, P1, V6]; xn--4xa207hkzinr77u.xn--1ug85gn777ahze; ;
xn--4xa207hkzinr77u.xn--gdh5392g6sd; # σᡱ⒈.≮𑄳𐮍
+σᡱ⒈.≮𑄳𐮍; ; [B1, P1, V6]; xn--4xa207hkzinr77u.xn--1ug85gn777ahze; ;
xn--4xa207hkzinr77u.xn--gdh5392g6sd; # σᡱ⒈.≮𑄳𐮍
+σᡱ⒈.≮𑄳𐮍; σᡱ⒈.≮𑄳𐮍; [B1, P1, V6]; xn--4xa207hkzinr77u.xn--1ug85gn777ahze; ;
xn--4xa207hkzinr77u.xn--gdh5392g6sd; # σᡱ⒈.≮𑄳𐮍
+xn--4xa207hkzinr77u.xn--gdh5392g6sd; σᡱ⒈.≮𑄳𐮍; [B1, V6];
xn--4xa207hkzinr77u.xn--gdh5392g6sd; ; ; # σᡱ⒈.≮𑄳𐮍
+xn--4xa207hkzinr77u.xn--1ug85gn777ahze; σᡱ⒈.≮𑄳𐮍; [B1, V6];
xn--4xa207hkzinr77u.xn--1ug85gn777ahze; ; ; # σᡱ⒈.≮𑄳𐮍
+xn--3xa407hkzinr77u.xn--1ug85gn777ahze; ςᡱ⒈.≮𑄳𐮍; [B1, V6];
xn--3xa407hkzinr77u.xn--1ug85gn777ahze; ; ; # ςᡱ⒈.≮𑄳𐮍
+ㅤ्Ⴀ័.᠋; ㅤ्Ⴀ័.; [P1, V6]; xn--n3b468azngju2a.; ; ; # ्Ⴀ័.
+ᅠ्Ⴀ័.᠋; ᅠ्Ⴀ័.; [P1, V6]; xn--n3b468aoqa89r.; ; ; # ्Ⴀ័.
+ᅠ्ⴀ័.᠋; ᅠ्ⴀ័.; [P1, V6]; xn--n3b742bkqf4ty.; ; ; # ्ⴀ័.
+xn--n3b742bkqf4ty.; ᅠ्ⴀ័.; [V6]; xn--n3b742bkqf4ty.; ; ; # ्ⴀ័.
+xn--n3b468aoqa89r.; ᅠ्Ⴀ័.; [V6]; xn--n3b468aoqa89r.; ; ; # ्Ⴀ័.
+ㅤ्ⴀ័.᠋; ㅤ्ⴀ័.; [P1, V6]; xn--n3b445e53po6d.; ; ; # ्ⴀ័.
+xn--n3b445e53po6d.; ㅤ्ⴀ័.; [V6]; xn--n3b445e53po6d.; ; ; # ्ⴀ័.
+xn--n3b468azngju2a.; ㅤ्Ⴀ័.; [V6]; xn--n3b468azngju2a.; ; ; # ्Ⴀ័.
+❣.্𑰽ؒꤩ; ❣.্𑰽ؒꤩ; [C2, V5]; xn--1ugy10a.xn--0fb32q3w7q2g4d; ;
xn--pei.xn--0fb32q3w7q2g4d; [V5] # ❣.্𑰽ؒꤩ
+❣.্𑰽ؒꤩ; ; [C2, V5]; xn--1ugy10a.xn--0fb32q3w7q2g4d; ;
xn--pei.xn--0fb32q3w7q2g4d; [V5] # ❣.্𑰽ؒꤩ
+xn--pei.xn--0fb32q3w7q2g4d; ❣.্𑰽ؒꤩ; [V5]; xn--pei.xn--0fb32q3w7q2g4d; ; ; #
❣.্𑰽ؒꤩ
+xn--1ugy10a.xn--0fb32q3w7q2g4d; ❣.্𑰽ؒꤩ; [C2, V5];
xn--1ugy10a.xn--0fb32q3w7q2g4d; ; ; # ❣.্𑰽ؒꤩ
+≮𐳺.≯ꡅ; ; [B1, P1, V6]; xn--gdh7943gk2a.xn--hdh1383c5e36c; ; ; # ≮𐳺.≯ꡅ
+≮𐳺.≯ꡅ; ≮𐳺.≯ꡅ; [B1, P1, V6]; xn--gdh7943gk2a.xn--hdh1383c5e36c; ; ; #
≮𐳺.≯ꡅ
+xn--gdh7943gk2a.xn--hdh1383c5e36c; ≮𐳺.≯ꡅ; [B1, V6];
xn--gdh7943gk2a.xn--hdh1383c5e36c; ; ; # ≮𐳺.≯ꡅ
+ೌ𐧅𐳏。್ᠦ; ೌ𐧅𐳏.್ᠦ; [B1, P1, V5, V6]; xn--7tc6360ky5bn2732c.xn--8tc429c; ; ; #
ೌ𐧅𐳏.್ᠦ
+ೌ𐧅𐳏。್ᠦ; ೌ𐧅𐳏.್ᠦ; [B1, P1, V5, V6]; xn--7tc6360ky5bn2732c.xn--8tc429c; ; ; #
ೌ𐧅𐳏.್ᠦ
+ೌ𐧅𐲏。್ᠦ; ೌ𐧅𐳏.್ᠦ; [B1, P1, V5, V6]; xn--7tc6360ky5bn2732c.xn--8tc429c; ; ; #
ೌ𐧅𐳏.್ᠦ
+xn--7tc6360ky5bn2732c.xn--8tc429c; ೌ𐧅𐳏.್ᠦ; [B1, V5, V6];
xn--7tc6360ky5bn2732c.xn--8tc429c; ; ; # ೌ𐧅𐳏.್ᠦ
+ೌ𐧅𐲏。್ᠦ; ೌ𐧅𐳏.್ᠦ; [B1, P1, V5, V6]; xn--7tc6360ky5bn2732c.xn--8tc429c; ; ; #
ೌ𐧅𐳏.್ᠦ
+͉。𧡫; ͉.𧡫; [V5]; xn--nua.xn--bc6k; ; ; # ͉.𧡫
+xn--nua.xn--bc6k; ͉.𧡫; [V5]; xn--nua.xn--bc6k; ; ; # ͉.𧡫
+𑰿󠅦.ᅠ; 𑰿.ᅠ; [P1, V5, V6]; xn--ok3d.xn--psd; ; ; # 𑰿.
+𑰿󠅦.ᅠ; 𑰿.ᅠ; [P1, V5, V6]; xn--ok3d.xn--psd; ; ; # 𑰿.
+xn--ok3d.xn--psd; 𑰿.ᅠ; [V5, V6]; xn--ok3d.xn--psd; ; ; # 𑰿.
+-𞤆。; -𞤨.; [B1, B5, B6, C2, P1, V3, V6]; xn----ugnx367r.xn--846h96596c; ;
xn----ni8r.xn--846h96596c; [B1, B5, B6, P1, V3, V6] # -𞤨.
+-𞤨。; -𞤨.; [B1, B5, B6, C2, P1, V3, V6]; xn----ugnx367r.xn--846h96596c; ;
xn----ni8r.xn--846h96596c; [B1, B5, B6, P1, V3, V6] # -𞤨.
+xn----ni8r.xn--846h96596c; -𞤨.; [B1, B5, B6, V3, V6];
xn----ni8r.xn--846h96596c; ; ; # -𞤨.
+xn----ugnx367r.xn--846h96596c; -𞤨.; [B1, B5, B6, C2, V3, V6];
xn----ugnx367r.xn--846h96596c; ; ; # -𞤨.
+ꡏ≯。᷽⾇滸𐹰; ꡏ≯.᷽舛滸𐹰; [B1, P1, V5, V6];
xn--hdh7483cu6twwki8e.xn--yfg0765a58l0n6k; ; ; # ꡏ≯.᷽舛滸𐹰
+ꡏ≯。᷽⾇滸𐹰; ꡏ≯.᷽舛滸𐹰; [B1, P1, V5, V6];
xn--hdh7483cu6twwki8e.xn--yfg0765a58l0n6k; ; ; # ꡏ≯.᷽舛滸𐹰
+ꡏ≯。᷽舛滸𐹰; ꡏ≯.᷽舛滸𐹰; [B1, P1, V5, V6];
xn--hdh7483cu6twwki8e.xn--yfg0765a58l0n6k; ; ; # ꡏ≯.᷽舛滸𐹰
+ꡏ≯。᷽舛滸𐹰; ꡏ≯.᷽舛滸𐹰; [B1, P1, V5, V6];
xn--hdh7483cu6twwki8e.xn--yfg0765a58l0n6k; ; ; # ꡏ≯.᷽舛滸𐹰
+xn--hdh7483cu6twwki8e.xn--yfg0765a58l0n6k; ꡏ≯.᷽舛滸𐹰; [B1, V5, V6];
xn--hdh7483cu6twwki8e.xn--yfg0765a58l0n6k; ; ; # ꡏ≯.᷽舛滸𐹰
+蔏。𑰺; 蔏.𑰺; [V5]; xn--uy1a.xn--jk3d; ; ; # 蔏.𑰺
+蔏。𑰺; 蔏.𑰺; [V5]; xn--uy1a.xn--jk3d; ; ; # 蔏.𑰺
+xn--uy1a.xn--jk3d; 蔏.𑰺; [V5]; xn--uy1a.xn--jk3d; ; ; # 蔏.𑰺
+𝟿𐮋。󠄊; 9𐮋.; [B1]; xn--9-rv5i.; ; ; # 9𐮋.
+9𐮋。󠄊; 9𐮋.; [B1]; xn--9-rv5i.; ; ; # 9𐮋.
+xn--9-rv5i.; 9𐮋.; [B1]; xn--9-rv5i.; ; ; # 9𐮋.
+-䟖F。ߋ⒈٢; -䟖f.ߋ⒈٢; [B4, P1, V6]; xn---f-mz8b08788k.xn--bib53ev44d; ; ; #
-䟖f.ߋ⒈٢
+-䟖F。ߋ1.٢; -䟖f.ߋ1.٢; [B1, P1, V6]; xn---f-mz8b08788k.xn--1-ybd.xn--bib; ; ;
# -䟖f.ߋ1.٢
+-䟖f。ߋ1.٢; -䟖f.ߋ1.٢; [B1, P1, V6]; xn---f-mz8b08788k.xn--1-ybd.xn--bib; ; ;
# -䟖f.ߋ1.٢
+xn---f-mz8b08788k.xn--1-ybd.xn--bib; -䟖f.ߋ1.٢; [B1, V6];
xn---f-mz8b08788k.xn--1-ybd.xn--bib; ; ; # -䟖f.ߋ1.٢
+-䟖f。ߋ⒈٢; -䟖f.ߋ⒈٢; [B4, P1, V6]; xn---f-mz8b08788k.xn--bib53ev44d; ; ; #
-䟖f.ߋ⒈٢
+xn---f-mz8b08788k.xn--bib53ev44d; -䟖f.ߋ⒈٢; [B4, V6];
xn---f-mz8b08788k.xn--bib53ev44d; ; ; # -䟖f.ߋ⒈٢
+。𐹺; .𐹺; [B1, C1]; xn--0ug.xn--yo0d; ; .xn--yo0d; [B1, A4_2] # .𐹺
+。𐹺; .𐹺; [B1, C1]; xn--0ug.xn--yo0d; ; .xn--yo0d; [B1, A4_2] # .𐹺
+.xn--yo0d; .𐹺; [B1, X4_2]; .xn--yo0d; [B1, A4_2]; ; # .𐹺
+xn--0ug.xn--yo0d; .𐹺; [B1, C1]; xn--0ug.xn--yo0d; ; ; # .𐹺
+𐡆.≯-𞥀; ; [B1, C1, P1, V6]; xn--le9c.xn----rgn40iy359e; ;
xn--le9c.xn----ogo9956r; [B1, P1, V6] # 𐡆.≯-𞥀
+𐡆.≯-𞥀; 𐡆.≯-𞥀; [B1, C1, P1, V6]; xn--le9c.xn----rgn40iy359e; ;
xn--le9c.xn----ogo9956r; [B1, P1, V6] # 𐡆.≯-𞥀
+𐡆.≯-𞤞; 𐡆.≯-𞥀; [B1, C1, P1, V6]; xn--le9c.xn----rgn40iy359e; ;
xn--le9c.xn----ogo9956r; [B1, P1, V6] # 𐡆.≯-𞥀
+𐡆.≯-𞤞; 𐡆.≯-𞥀; [B1, C1, P1, V6]; xn--le9c.xn----rgn40iy359e; ;
xn--le9c.xn----ogo9956r; [B1, P1, V6] # 𐡆.≯-𞥀
+xn--le9c.xn----ogo9956r; 𐡆.≯-𞥀; [B1, V6]; xn--le9c.xn----ogo9956r; ; ; # 𐡆.≯-𞥀
+xn--le9c.xn----rgn40iy359e; 𐡆.≯-𞥀; [B1, C1, V6]; xn--le9c.xn----rgn40iy359e;
; ; # 𐡆.≯-𞥀
+-。≠ﳗ; -.≠هج; [B1, P1, V3, V6]; xn----f411m.xn--rgb7c611j; ; ; # -.≠هج
+-。≠ﳗ; -.≠هج; [B1, P1, V3, V6]; xn----f411m.xn--rgb7c611j; ; ; # -.≠هج
+-。≠هج; -.≠هج; [B1, P1, V3, V6]; xn----f411m.xn--rgb7c611j; ; ; # -.≠هج
+-。≠هج; -.≠هج; [B1, P1, V3, V6]; xn----f411m.xn--rgb7c611j; ; ; # -.≠هج
+xn----f411m.xn--rgb7c611j; -.≠هج; [B1, V3, V6]; xn----f411m.xn--rgb7c611j; ;
; # -.≠هج
+𑈵。; 𑈵.; [B1, C2, P1, V6]; xn--8g1d12120a.xn--1ug6651p; ;
xn--8g1d12120a.xn--5l6h; [P1, V6] # 𑈵.
+xn--8g1d12120a.xn--5l6h; 𑈵.; [V6]; xn--8g1d12120a.xn--5l6h; ; ; # 𑈵.
+xn--8g1d12120a.xn--1ug6651p; 𑈵.; [B1, C2, V6]; xn--8g1d12120a.xn--1ug6651p;
; ; # 𑈵.
+𑋧꧀2。㧉; 𑋧꧀2.㧉; [P1, V5, V6]; xn--2-5z4eu89y.xn--97l02706d; ; ; # 𑋧꧀2.㧉
+𑋧꧀2。㧉; 𑋧꧀2.㧉; [P1, V5, V6]; xn--2-5z4eu89y.xn--97l02706d; ; ; # 𑋧꧀2.㧉
+xn--2-5z4eu89y.xn--97l02706d; 𑋧꧀2.㧉; [V5, V6]; xn--2-5z4eu89y.xn--97l02706d;
; ; # 𑋧꧀2.㧉
+𐹴。≯6; 𐹴.≯6; [B1, C1, P1, V6]; xn--0ug7105gf5wfxepq.xn--6-ogo; ;
xn--so0du768aim9m.xn--6-ogo; [B1, B5, B6, P1, V6] # 𐹴.≯6
+𐹴。≯6; 𐹴.≯6; [B1, C1, P1, V6]; xn--0ug7105gf5wfxepq.xn--6-ogo; ;
xn--so0du768aim9m.xn--6-ogo; [B1, B5, B6, P1, V6] # 𐹴.≯6
+xn--so0du768aim9m.xn--6-ogo; 𐹴.≯6; [B1, B5, B6, V6];
xn--so0du768aim9m.xn--6-ogo; ; ; # 𐹴.≯6
+xn--0ug7105gf5wfxepq.xn--6-ogo; 𐹴.≯6; [B1, C1, V6];
xn--0ug7105gf5wfxepq.xn--6-ogo; ; ; # 𐹴.≯6
+𑁿.𐹦-; 𑁿.𐹦-; [B1, B3, B6, C2, P1, V5, V6]; xn--q30d.xn----ugn1088hfsxv; ;
xn--q30d.xn----i26i1299n; [B1, B3, B6, P1, V3, V5, V6] # 𑁿.𐹦-
+𑁿.𐹦-; ; [B1, B3, B6, C2, P1, V5, V6]; xn--q30d.xn----ugn1088hfsxv; ;
xn--q30d.xn----i26i1299n; [B1, B3, B6, P1, V3, V5, V6] # 𑁿.𐹦-
+xn--q30d.xn----i26i1299n; 𑁿.𐹦-; [B1, B3, B6, V3, V5, V6];
xn--q30d.xn----i26i1299n; ; ; # 𑁿.𐹦-
+xn--q30d.xn----ugn1088hfsxv; 𑁿.𐹦-; [B1, B3, B6, C2, V5, V6];
xn--q30d.xn----ugn1088hfsxv; ; ; # 𑁿.𐹦-
+⤸ς。ᅠ; ⤸ς.ᅠ; [P1, V6]; xn--3xa392qmp03d.xn--cl7c; ;
xn--4xa192qmp03d.xn--cl7c; # ⤸ς.
+⤸ς。ᅠ; ⤸ς.ᅠ; [P1, V6]; xn--3xa392qmp03d.xn--psd; ; xn--4xa192qmp03d.xn--psd;
# ⤸ς.
+⤸Σ。ᅠ; ⤸σ.ᅠ; [P1, V6]; xn--4xa192qmp03d.xn--psd; ; ; # ⤸σ.
+⤸σ。ᅠ; ⤸σ.ᅠ; [P1, V6]; xn--4xa192qmp03d.xn--psd; ; ; # ⤸σ.
+xn--4xa192qmp03d.xn--psd; ⤸σ.ᅠ; [V6]; xn--4xa192qmp03d.xn--psd; ; ; # ⤸σ.
+xn--3xa392qmp03d.xn--psd; ⤸ς.ᅠ; [V6]; xn--3xa392qmp03d.xn--psd; ; ; # ⤸ς.
+⤸Σ。ᅠ; ⤸σ.ᅠ; [P1, V6]; xn--4xa192qmp03d.xn--cl7c; ; ; # ⤸σ.
+⤸σ。ᅠ; ⤸σ.ᅠ; [P1, V6]; xn--4xa192qmp03d.xn--cl7c; ; ; # ⤸σ.
+xn--4xa192qmp03d.xn--cl7c; ⤸σ.ᅠ; [V6]; xn--4xa192qmp03d.xn--cl7c; ; ; # ⤸σ.
+xn--3xa392qmp03d.xn--cl7c; ⤸ς.ᅠ; [V6]; xn--3xa392qmp03d.xn--cl7c; ; ; # ⤸ς.
+ݥဵ𐫔ە.𐦬𑋪Ⴃ; ; [B2, B3, P1, V6]; xn--llb10as9tqp5y.xn--bnd9168j21f; ; ; #
ݥဵ𐫔ە.𐦬𑋪Ⴃ
+ݥဵ𐫔ە.𐦬𑋪ⴃ; ; [B2, B3]; xn--llb10as9tqp5y.xn--ukj7371e21f; ; ; # ݥဵ𐫔ە.𐦬𑋪ⴃ
+xn--llb10as9tqp5y.xn--ukj7371e21f; ݥဵ𐫔ە.𐦬𑋪ⴃ; [B2, B3];
xn--llb10as9tqp5y.xn--ukj7371e21f; ; ; # ݥဵ𐫔ە.𐦬𑋪ⴃ
+xn--llb10as9tqp5y.xn--bnd9168j21f; ݥဵ𐫔ە.𐦬𑋪Ⴃ; [B2, B3, V6];
xn--llb10as9tqp5y.xn--bnd9168j21f; ; ; # ݥဵ𐫔ە.𐦬𑋪Ⴃ
+١᭄-킼.᮪ؖ٬≯; ; [B1, B5, B6, P1, V5, V6]; xn----9pc551nk39n.xn--4fb6o571degg; ; ;
# ١᭄-킼.᮪ؖ٬≯
+١᭄-킼.᮪ؖ٬≯; ١᭄-킼.᮪ؖ٬≯; [B1, B5, B6, P1, V5, V6];
xn----9pc551nk39n.xn--4fb6o571degg; ; ; # ١᭄-킼.᮪ؖ٬≯
+xn----9pc551nk39n.xn--4fb6o571degg; ١᭄-킼.᮪ؖ٬≯; [B1, B5, B6, V5, V6];
xn----9pc551nk39n.xn--4fb6o571degg; ; ; # ١᭄-킼.᮪ؖ٬≯
+-。ۂ𑓂; -.ۂ𑓂; [B1, B2, B3, P1, V3, V6]; -.xn--mfb39a7208dzgs3d; ; ; # -.ۂ𑓂
+-。ۂ𑓂; -.ۂ𑓂; [B1, B2, B3, P1, V3, V6]; -.xn--mfb39a7208dzgs3d; ; ; # -.ۂ𑓂
+-.xn--mfb39a7208dzgs3d; -.ۂ𑓂; [B1, B2, B3, V3, V6]; -.xn--mfb39a7208dzgs3d;
; ; # -.ۂ𑓂
+.ֽꡝ𐋡; .ֽꡝ𐋡; [C2, P1, V5, V6]; xn--1ug66101lt8me.xn--ldb8734fg0qcyzzg;
; xn--b726ey18m.xn--ldb8734fg0qcyzzg; [P1, V5, V6] # .ֽꡝ𐋡
+.ֽꡝ𐋡; ; [C2, P1, V5, V6]; xn--1ug66101lt8me.xn--ldb8734fg0qcyzzg; ;
xn--b726ey18m.xn--ldb8734fg0qcyzzg; [P1, V5, V6] # .ֽꡝ𐋡
+xn--b726ey18m.xn--ldb8734fg0qcyzzg; .ֽꡝ𐋡; [V5, V6];
xn--b726ey18m.xn--ldb8734fg0qcyzzg; ; ; # .ֽꡝ𐋡
+xn--1ug66101lt8me.xn--ldb8734fg0qcyzzg; .ֽꡝ𐋡; [C2, V5, V6];
xn--1ug66101lt8me.xn--ldb8734fg0qcyzzg; ; ; # .ֽꡝ𐋡
+︒ς。𐮈; ︒ς.𐮈; [B1, P1, V6]; xn--3xa3729jwz5t7gl5f.xn--f29c; ;
xn--4xa1729jwz5t7gl5f.xn--f29c; # ︒ς.𐮈
+。ς。𐮈; .ς.𐮈; [P1, V6, X4_2]; .xn--3xa88573c7n64d.xn--f29c; [P1, V6, A4_2];
.xn--4xa68573c7n64d.xn--f29c; # .ς.𐮈
+。Σ。𐮈; .σ.𐮈; [P1, V6, X4_2]; .xn--4xa68573c7n64d.xn--f29c; [P1, V6, A4_2];
; # .σ.𐮈
+。σ。𐮈; .σ.𐮈; [P1, V6, X4_2]; .xn--4xa68573c7n64d.xn--f29c; [P1, V6, A4_2];
; # .σ.𐮈
+.xn--4xa68573c7n64d.xn--f29c; .σ.𐮈; [V6, X4_2];
.xn--4xa68573c7n64d.xn--f29c; [V6, A4_2]; ; # .σ.𐮈
+.xn--3xa88573c7n64d.xn--f29c; .ς.𐮈; [V6, X4_2];
.xn--3xa88573c7n64d.xn--f29c; [V6, A4_2]; ; # .ς.𐮈
+︒Σ。𐮈; ︒σ.𐮈; [B1, P1, V6]; xn--4xa1729jwz5t7gl5f.xn--f29c; ; ; # ︒σ.𐮈
+︒σ。𐮈; ︒σ.𐮈; [B1, P1, V6]; xn--4xa1729jwz5t7gl5f.xn--f29c; ; ; # ︒σ.𐮈
+xn--4xa1729jwz5t7gl5f.xn--f29c; ︒σ.𐮈; [B1, V6];
xn--4xa1729jwz5t7gl5f.xn--f29c; ; ; # ︒σ.𐮈
+xn--3xa3729jwz5t7gl5f.xn--f29c; ︒ς.𐮈; [B1, V6];
xn--3xa3729jwz5t7gl5f.xn--f29c; ; ; # ︒ς.𐮈
+ߙ.ۮ≯󠅲; ߙ.ۮ≯; [B2, B3, P1, V6]; xn--0sb.xn--bmb691l0524t; ; ; # ߙ.ۮ≯
+ߙ.ۮ≯󠅲; ߙ.ۮ≯; [B2, B3, P1, V6]; xn--0sb.xn--bmb691l0524t; ; ; # ߙ.ۮ≯
+ߙ.ۮ≯󠅲; ߙ.ۮ≯; [B2, B3, P1, V6]; xn--0sb.xn--bmb691l0524t; ; ; # ߙ.ۮ≯
+ߙ.ۮ≯󠅲; ߙ.ۮ≯; [B2, B3, P1, V6]; xn--0sb.xn--bmb691l0524t; ; ; # ߙ.ۮ≯
+xn--0sb.xn--bmb691l0524t; ߙ.ۮ≯; [B2, B3, V6]; xn--0sb.xn--bmb691l0524t; ; ;
# ߙ.ۮ≯
+ᩳ.𐭍; ; [B1, P1, V5, V6]; xn--2of22352n.xn--q09c; ; ; # ᩳ.𐭍
+xn--2of22352n.xn--q09c; ᩳ.𐭍; [B1, V5, V6]; xn--2of22352n.xn--q09c; ; ; # ᩳ.𐭍
+⒉≠。Ⴟ⬣Ⴈ; ⒉≠.Ⴟ⬣Ⴈ; [P1, V6]; xn--1ch07f91401d.xn--gnd9b297j; ; ; # ⒉≠.Ⴟ⬣Ⴈ
+⒉≠。Ⴟ⬣Ⴈ; ⒉≠.Ⴟ⬣Ⴈ; [P1, V6]; xn--1ch07f91401d.xn--gnd9b297j; ; ; # ⒉≠.Ⴟ⬣Ⴈ
+2.≠。Ⴟ⬣Ⴈ; 2.≠.Ⴟ⬣Ⴈ; [P1, V6]; 2.xn--1chz4101l.xn--gnd9b297j; ; ; # 2.≠.Ⴟ⬣Ⴈ
+2.≠。Ⴟ⬣Ⴈ; 2.≠.Ⴟ⬣Ⴈ; [P1, V6]; 2.xn--1chz4101l.xn--gnd9b297j; ; ; # 2.≠.Ⴟ⬣Ⴈ
+2.≠。ⴟ⬣ⴈ; 2.≠.ⴟ⬣ⴈ; [P1, V6]; 2.xn--1chz4101l.xn--45iz7d6b; ; ; # 2.≠.ⴟ⬣ⴈ
+2.≠。ⴟ⬣ⴈ; 2.≠.ⴟ⬣ⴈ; [P1, V6]; 2.xn--1chz4101l.xn--45iz7d6b; ; ; # 2.≠.ⴟ⬣ⴈ
+2.xn--1chz4101l.xn--45iz7d6b; 2.≠.ⴟ⬣ⴈ; [V6]; 2.xn--1chz4101l.xn--45iz7d6b; ;
; # 2.≠.ⴟ⬣ⴈ
+2.xn--1chz4101l.xn--gnd9b297j; 2.≠.Ⴟ⬣Ⴈ; [V6]; 2.xn--1chz4101l.xn--gnd9b297j;
; ; # 2.≠.Ⴟ⬣Ⴈ
+⒉≠。ⴟ⬣ⴈ; ⒉≠.ⴟ⬣ⴈ; [P1, V6]; xn--1ch07f91401d.xn--45iz7d6b; ; ; # ⒉≠.ⴟ⬣ⴈ
+⒉≠。ⴟ⬣ⴈ; ⒉≠.ⴟ⬣ⴈ; [P1, V6]; xn--1ch07f91401d.xn--45iz7d6b; ; ; # ⒉≠.ⴟ⬣ⴈ
+xn--1ch07f91401d.xn--45iz7d6b; ⒉≠.ⴟ⬣ⴈ; [V6]; xn--1ch07f91401d.xn--45iz7d6b; ;
; # ⒉≠.ⴟ⬣ⴈ
+xn--1ch07f91401d.xn--gnd9b297j; ⒉≠.Ⴟ⬣Ⴈ; [V6]; xn--1ch07f91401d.xn--gnd9b297j;
; ; # ⒉≠.Ⴟ⬣Ⴈ
+-ྸჅ。-𐹽ݴ𞣑; -ྸჅ.-𐹽ݴ𞣑; [B1, P1, V3, V6]; xn----xmg12fm2555h.xn----05c4213ryr0g;
; ; # -ྸჅ.-𐹽ݴ𞣑
+-ྸⴥ。-𐹽ݴ𞣑; -ྸⴥ.-𐹽ݴ𞣑; [B1, P1, V3, V6];
xn----xmg317tgv352a.xn----05c4213ryr0g; ; ; # -ྸⴥ.-𐹽ݴ𞣑
+xn----xmg317tgv352a.xn----05c4213ryr0g; -ྸⴥ.-𐹽ݴ𞣑; [B1, V3, V6];
xn----xmg317tgv352a.xn----05c4213ryr0g; ; ; # -ྸⴥ.-𐹽ݴ𞣑
+xn----xmg12fm2555h.xn----05c4213ryr0g; -ྸჅ.-𐹽ݴ𞣑; [B1, V3, V6];
xn----xmg12fm2555h.xn----05c4213ryr0g; ; ; # -ྸჅ.-𐹽ݴ𞣑
+ٙ。𑄴︒اߝ; ٙ.𑄴︒اߝ; [B1, B3, B6, P1, V5, V6]; xn--1hb.xn--mgb09fp820c08pa; ; ; #
ٙ.𑄴︒اߝ
+ٙ。𑄴。اߝ; ٙ.𑄴.اߝ; [B1, B3, B6, V5]; xn--1hb.xn--w80d.xn--mgb09f; ; ; # ٙ.𑄴.اߝ
+xn--1hb.xn--w80d.xn--mgb09f; ٙ.𑄴.اߝ; [B1, B3, B6, V5];
xn--1hb.xn--w80d.xn--mgb09f; ; ; # ٙ.𑄴.اߝ
+xn--1hb.xn--mgb09fp820c08pa; ٙ.𑄴︒اߝ; [B1, B3, B6, V5, V6];
xn--1hb.xn--mgb09fp820c08pa; ; ; # ٙ.𑄴︒اߝ
+Ⴙظ.󠆓; Ⴙظ.; [B1, B5, B6, C2, P1, V6]; xn--3gb194c.xn--1ug; ; xn--3gb194c.;
[B5, B6, P1, V6] # Ⴙظ.
+ⴙظ.󠆓; ⴙظ.; [B1, B5, B6, C2]; xn--3gb910r.xn--1ug; ; xn--3gb910r.; [B5, B6] #
ⴙظ.
+xn--3gb910r.; ⴙظ.; [B5, B6]; xn--3gb910r.; ; ; # ⴙظ.
+xn--3gb910r.xn--1ug; ⴙظ.; [B1, B5, B6, C2]; xn--3gb910r.xn--1ug; ; ; # ⴙظ.
+xn--3gb194c.; Ⴙظ.; [B5, B6, V6]; xn--3gb194c.; ; ; # Ⴙظ.
+xn--3gb194c.xn--1ug; Ⴙظ.; [B1, B5, B6, C2, V6]; xn--3gb194c.xn--1ug; ; ; #
Ⴙظ.
+󠆸。₆0𐺧ݖ; .60𐺧ݖ; [B1, X4_2]; .xn--60-cke9470y; [B1, A4_2]; ; # .60𐺧ݖ
+󠆸。60𐺧ݖ; .60𐺧ݖ; [B1, X4_2]; .xn--60-cke9470y; [B1, A4_2]; ; # .60𐺧ݖ
+.xn--60-cke9470y; .60𐺧ݖ; [B1, X4_2]; .xn--60-cke9470y; [B1, A4_2]; ; # .60𐺧ݖ
+6ࡏ。-𑈴; 6ࡏ.-𑈴; [B1, V3]; xn--6-jjd.xn----6n8i; ; ; # 6ࡏ.-𑈴
+6ࡏ。-𑈴; 6ࡏ.-𑈴; [B1, V3]; xn--6-jjd.xn----6n8i; ; ; # 6ࡏ.-𑈴
+xn--6-jjd.xn----6n8i; 6ࡏ.-𑈴; [B1, V3]; xn--6-jjd.xn----6n8i; ; ; # 6ࡏ.-𑈴
+𐹰。્ςࣖ; 𐹰.્ςࣖ; [B1, C2, P1, V5, V6]; xn--1ugx105gq26y.xn--3xa41xcwbfz15g;
; xn--oo0d1330n.xn--4xa21xcwbfz15g; [B1, B5, B6, P1, V5, V6] # 𐹰.્ςࣖ
+𐹰。્ςࣖ; 𐹰.્ςࣖ; [B1, C2, P1, V5, V6]; xn--1ugx105gq26y.xn--3xa41xcwbfz15g;
; xn--oo0d1330n.xn--4xa21xcwbfz15g; [B1, B5, B6, P1, V5, V6] # 𐹰.્ςࣖ
+𐹰。્Σࣖ; 𐹰.્σࣖ; [B1, C2, P1, V5, V6]; xn--1ugx105gq26y.xn--4xa21xcwbfz15g;
; xn--oo0d1330n.xn--4xa21xcwbfz15g; [B1, B5, B6, P1, V5, V6] # 𐹰.્σࣖ
+𐹰。્σࣖ; 𐹰.્σࣖ; [B1, C2, P1, V5, V6]; xn--1ugx105gq26y.xn--4xa21xcwbfz15g;
; xn--oo0d1330n.xn--4xa21xcwbfz15g; [B1, B5, B6, P1, V5, V6] # 𐹰.્σࣖ
+xn--oo0d1330n.xn--4xa21xcwbfz15g; 𐹰.્σࣖ; [B1, B5, B6, V5, V6];
xn--oo0d1330n.xn--4xa21xcwbfz15g; ; ; # 𐹰.્σࣖ
+xn--1ugx105gq26y.xn--4xa21xcwbfz15g; 𐹰.્σࣖ; [B1, C2, V5, V6];
xn--1ugx105gq26y.xn--4xa21xcwbfz15g; ; ; # 𐹰.્σࣖ
+xn--1ugx105gq26y.xn--3xa41xcwbfz15g; 𐹰.્ςࣖ; [B1, C2, V5, V6];
xn--1ugx105gq26y.xn--3xa41xcwbfz15g; ; ; # 𐹰.્ςࣖ
+𐹰。્Σࣖ; 𐹰.્σࣖ; [B1, C2, P1, V5, V6]; xn--1ugx105gq26y.xn--4xa21xcwbfz15g;
; xn--oo0d1330n.xn--4xa21xcwbfz15g; [B1, B5, B6, P1, V5, V6] # 𐹰.્σࣖ
+𐹰。્σࣖ; 𐹰.્σࣖ; [B1, C2, P1, V5, V6]; xn--1ugx105gq26y.xn--4xa21xcwbfz15g;
; xn--oo0d1330n.xn--4xa21xcwbfz15g; [B1, B5, B6, P1, V5, V6] # 𐹰.્σࣖ
+⒈Ⴓ⒪.්ࢋ𐹢; ⒈Ⴓ⒪.්ࢋ𐹢; [B1, P1, V5, V6];
xn--rnd762h7cx3027d.xn--3xb99xpx1yoes3e; ; ; # ⒈Ⴓ⒪.්ࢋ𐹢
+1.Ⴓ(o).්ࢋ𐹢; ; [B1, B6, P1, V5, V6]; 1.xn--(o)-7sn88849j.xn--3xb99xpx1yoes3e;
; ; # 1.Ⴓ(o).්ࢋ𐹢
+1.ⴓ(o).්ࢋ𐹢; ; [B1, B6, P1, V5, V6];
1.xn--(o)-ej1bu5389e.xn--3xb99xpx1yoes3e; ; ; # 1.ⴓ(o).්ࢋ𐹢
+1.Ⴓ(O).්ࢋ𐹢; 1.Ⴓ(o).්ࢋ𐹢; [B1, B6, P1, V5, V6];
1.xn--(o)-7sn88849j.xn--3xb99xpx1yoes3e; ; ; # 1.Ⴓ(o).්ࢋ𐹢
+1.xn--(o)-7sn88849j.xn--3xb99xpx1yoes3e; 1.Ⴓ(o).්ࢋ𐹢; [B1, B6, P1, V5, V6];
1.xn--(o)-7sn88849j.xn--3xb99xpx1yoes3e; ; ; # 1.Ⴓ(o).්ࢋ𐹢
+1.xn--(o)-ej1bu5389e.xn--3xb99xpx1yoes3e; 1.ⴓ(o).්ࢋ𐹢; [B1, B6, P1, V5, V6];
1.xn--(o)-ej1bu5389e.xn--3xb99xpx1yoes3e; ; ; # 1.ⴓ(o).්ࢋ𐹢
+⒈ⴓ⒪.්ࢋ𐹢; ⒈ⴓ⒪.්ࢋ𐹢; [B1, P1, V5, V6];
xn--tsh0ds63atl31n.xn--3xb99xpx1yoes3e; ; ; # ⒈ⴓ⒪.්ࢋ𐹢
+xn--tsh0ds63atl31n.xn--3xb99xpx1yoes3e; ⒈ⴓ⒪.්ࢋ𐹢; [B1, V5, V6];
xn--tsh0ds63atl31n.xn--3xb99xpx1yoes3e; ; ; # ⒈ⴓ⒪.්ࢋ𐹢
+xn--rnd762h7cx3027d.xn--3xb99xpx1yoes3e; ⒈Ⴓ⒪.්ࢋ𐹢; [B1, V5, V6];
xn--rnd762h7cx3027d.xn--3xb99xpx1yoes3e; ; ; # ⒈Ⴓ⒪.්ࢋ𐹢
+𞤷.𐮐𞢁𐹠ؤ; ; ; xn--ve6h.xn--jgb1694kz0b2176a; ; ; # 𞤷.𐮐𞢁𐹠ؤ
+𞤷.𐮐𞢁𐹠ؤ; 𞤷.𐮐𞢁𐹠ؤ; ; xn--ve6h.xn--jgb1694kz0b2176a; ; ; # 𞤷.𐮐𞢁𐹠ؤ
+𞤕.𐮐𞢁𐹠ؤ; 𞤷.𐮐𞢁𐹠ؤ; ; xn--ve6h.xn--jgb1694kz0b2176a; ; ; # 𞤷.𐮐𞢁𐹠ؤ
+𞤕.𐮐𞢁𐹠ؤ; 𞤷.𐮐𞢁𐹠ؤ; ; xn--ve6h.xn--jgb1694kz0b2176a; ; ; # 𞤷.𐮐𞢁𐹠ؤ
+xn--ve6h.xn--jgb1694kz0b2176a; 𞤷.𐮐𞢁𐹠ؤ; ; xn--ve6h.xn--jgb1694kz0b2176a; ; ; #
𞤷.𐮐𞢁𐹠ؤ
+𐲈-。𑄳; 𐳈-.𑄳; [B1, B3, P1, V3, V5, V6]; xn----ue6i.xn--v80d6662t; ; ; # 𐳈-.𑄳
+𐲈-。𑄳; 𐳈-.𑄳; [B1, B3, P1, V3, V5, V6]; xn----ue6i.xn--v80d6662t; ; ; # 𐳈-.𑄳
+𐳈-。𑄳; 𐳈-.𑄳; [B1, B3, P1, V3, V5, V6]; xn----ue6i.xn--v80d6662t; ; ; # 𐳈-.𑄳
+xn----ue6i.xn--v80d6662t; 𐳈-.𑄳; [B1, B3, V3, V5, V6];
xn----ue6i.xn--v80d6662t; ; ; # 𐳈-.𑄳
+𐳈-。𑄳; 𐳈-.𑄳; [B1, B3, P1, V3, V5, V6]; xn----ue6i.xn--v80d6662t; ; ; # 𐳈-.𑄳
+-ꡧ.🄉; -ꡧ.🄉; [P1, V3, V6]; xn----hg4ei0361g.xn--207ht163h7m94c; ; ; #
-ꡧ.🄉
+-ꡧ.8,; ; [P1, V3, V6]; xn----hg4ei0361g.xn--8,-k362evu488a; ; ; # -ꡧ.8,
+xn----hg4ei0361g.xn--8,-k362evu488a; -ꡧ.8,; [P1, V3, V6];
xn----hg4ei0361g.xn--8,-k362evu488a; ; ; # -ꡧ.8,
+xn----hg4ei0361g.xn--207ht163h7m94c; -ꡧ.🄉; [V3, V6];
xn----hg4ei0361g.xn--207ht163h7m94c; ; ; # -ꡧ.🄉
+臯𧔤.ݨ𝟝; 臯𧔤.ݨ5; [B1, P1, V6]; xn--zb1at733hm579ddhla.xn--5-b5c; ; ; # 臯𧔤.ݨ5
+臯𧔤.ݨ5; ; [B1, P1, V6]; xn--zb1at733hm579ddhla.xn--5-b5c; ; ; # 臯𧔤.ݨ5
+xn--zb1at733hm579ddhla.xn--5-b5c; 臯𧔤.ݨ5; [B1, V6];
xn--zb1at733hm579ddhla.xn--5-b5c; ; ; # 臯𧔤.ݨ5
+≮𐹣.𝨿; ≮𐹣.𝨿; [B1, B3, B6, P1, V5, V6]; xn--gdh1504g.xn--e92h; ; ; # ≮𐹣.𝨿
+≮𐹣.𝨿; ≮𐹣.𝨿; [B1, B3, B6, P1, V5, V6]; xn--gdh1504g.xn--e92h; ; ; # ≮𐹣.𝨿
+≮𐹣.𝨿; ; [B1, B3, B6, P1, V5, V6]; xn--gdh1504g.xn--e92h; ; ; # ≮𐹣.𝨿
+≮𐹣.𝨿; ≮𐹣.𝨿; [B1, B3, B6, P1, V5, V6]; xn--gdh1504g.xn--e92h; ; ; # ≮𐹣.𝨿
+xn--gdh1504g.xn--e92h; ≮𐹣.𝨿; [B1, B3, B6, V5, V6]; xn--gdh1504g.xn--e92h; ; ;
# ≮𐹣.𝨿
+𐹯ᯛ੍。脥; 𐹯ᯛ੍.脥; [B1]; xn--ybc101g3m1p.xn--740a; ; ; # 𐹯ᯛ੍.脥
+𐹯ᯛ੍。脥; 𐹯ᯛ੍.脥; [B1]; xn--ybc101g3m1p.xn--740a; ; ; # 𐹯ᯛ੍.脥
+xn--ybc101g3m1p.xn--740a; 𐹯ᯛ੍.脥; [B1]; xn--ybc101g3m1p.xn--740a; ; ; # 𐹯ᯛ੍.脥
+᭄ᅟ.-; ; [B1, B5, P1, V3, V5, V6]; xn--osd971cpx70btgt8b.-; ; ; # ᭄.-
+xn--osd971cpx70btgt8b.-; ᭄ᅟ.-; [B1, B5, V3, V5, V6];
xn--osd971cpx70btgt8b.-; ; ; # ᭄.-
+。͔; .͔; [C1, V5]; xn--0ug.xn--yua; ; .xn--yua; [V5, A4_2] # .͔
+。͔; .͔; [C1, V5]; xn--0ug.xn--yua; ; .xn--yua; [V5, A4_2] # .͔
+.xn--yua; .͔; [V5, X4_2]; .xn--yua; [V5, A4_2]; ; # .͔
+xn--0ug.xn--yua; .͔; [C1, V5]; xn--0ug.xn--yua; ; ; # .͔
+𞤥󠅮.ᡄႮ; 𞤥.ᡄႮ; [P1, V6]; xn--de6h.xn--mnd799a; ; ; # 𞤥.ᡄႮ
+𞤥󠅮.ᡄႮ; 𞤥.ᡄႮ; [P1, V6]; xn--de6h.xn--mnd799a; ; ; # 𞤥.ᡄႮ
+𞤥󠅮.ᡄⴎ; 𞤥.ᡄⴎ; ; xn--de6h.xn--37e857h; ; ; # 𞤥.ᡄⴎ
+𞤃󠅮.ᡄႮ; 𞤥.ᡄႮ; [P1, V6]; xn--de6h.xn--mnd799a; ; ; # 𞤥.ᡄႮ
+𞤃󠅮.ᡄⴎ; 𞤥.ᡄⴎ; ; xn--de6h.xn--37e857h; ; ; # 𞤥.ᡄⴎ
+xn--de6h.xn--37e857h; 𞤥.ᡄⴎ; ; xn--de6h.xn--37e857h; ; ; # 𞤥.ᡄⴎ
+𞤥.ᡄⴎ; ; ; xn--de6h.xn--37e857h; ; ; # 𞤥.ᡄⴎ
+𞤃.ᡄႮ; 𞤥.ᡄႮ; [P1, V6]; xn--de6h.xn--mnd799a; ; ; # 𞤥.ᡄႮ
+𞤃.ᡄⴎ; 𞤥.ᡄⴎ; ; xn--de6h.xn--37e857h; ; ; # 𞤥.ᡄⴎ
+xn--de6h.xn--mnd799a; 𞤥.ᡄႮ; [V6]; xn--de6h.xn--mnd799a; ; ; # 𞤥.ᡄႮ
+𞤥󠅮.ᡄⴎ; 𞤥.ᡄⴎ; ; xn--de6h.xn--37e857h; ; ; # 𞤥.ᡄⴎ
+𞤃󠅮.ᡄႮ; 𞤥.ᡄႮ; [P1, V6]; xn--de6h.xn--mnd799a; ; ; # 𞤥.ᡄႮ
+𞤃󠅮.ᡄⴎ; 𞤥.ᡄⴎ; ; xn--de6h.xn--37e857h; ; ; # 𞤥.ᡄⴎ
+𞤥.ᡄႮ; ; [P1, V6]; xn--de6h.xn--mnd799a; ; ; # 𞤥.ᡄႮ
+𞤧𝨨Ξ.𪺏㛨❸; 𞤧𝨨ξ.𪺏㛨❸; [B2, B3, B6]; xn--zxa5691vboja.xn--bfi293ci119b; ; ; #
𞤧𝨨ξ.𪺏㛨❸
+𞤧𝨨Ξ.𪺏㛨❸; 𞤧𝨨ξ.𪺏㛨❸; [B2, B3, B6]; xn--zxa5691vboja.xn--bfi293ci119b; ; ; #
𞤧𝨨ξ.𪺏㛨❸
+𞤧𝨨ξ.𪺏㛨❸; ; [B2, B3, B6]; xn--zxa5691vboja.xn--bfi293ci119b; ; ; # 𞤧𝨨ξ.𪺏㛨❸
+𞤅𝨨Ξ.𪺏㛨❸; 𞤧𝨨ξ.𪺏㛨❸; [B2, B3, B6]; xn--zxa5691vboja.xn--bfi293ci119b; ; ; #
𞤧𝨨ξ.𪺏㛨❸
+𞤅𝨨ξ.𪺏㛨❸; 𞤧𝨨ξ.𪺏㛨❸; [B2, B3, B6]; xn--zxa5691vboja.xn--bfi293ci119b; ; ; #
𞤧𝨨ξ.𪺏㛨❸
+xn--zxa5691vboja.xn--bfi293ci119b; 𞤧𝨨ξ.𪺏㛨❸; [B2, B3, B6];
xn--zxa5691vboja.xn--bfi293ci119b; ; ; # 𞤧𝨨ξ.𪺏㛨❸
+𞤧𝨨ξ.𪺏㛨❸; 𞤧𝨨ξ.𪺏㛨❸; [B2, B3, B6]; xn--zxa5691vboja.xn--bfi293ci119b; ; ; #
𞤧𝨨ξ.𪺏㛨❸
+𞤅𝨨Ξ.𪺏㛨❸; 𞤧𝨨ξ.𪺏㛨❸; [B2, B3, B6]; xn--zxa5691vboja.xn--bfi293ci119b; ; ; #
𞤧𝨨ξ.𪺏㛨❸
+𞤅𝨨ξ.𪺏㛨❸; 𞤧𝨨ξ.𪺏㛨❸; [B2, B3, B6]; xn--zxa5691vboja.xn--bfi293ci119b; ; ; #
𞤧𝨨ξ.𪺏㛨❸
+᠆몆-。Ⴛ𐦅︒; ᠆몆-.Ⴛ𐦅︒; [B1, B5, B6, C1, P1, V3, V6];
xn----e3j425bsk1o.xn--znd2362jhgh; ; xn----e3j6620g.xn--znd2362jhgh; [B1, B5,
B6, P1, V3, V6] # ᠆몆-.Ⴛ𐦅︒
+᠆몆-。Ⴛ𐦅︒; ᠆몆-.Ⴛ𐦅︒; [B1, B5, B6, C1, P1, V3, V6];
xn----e3j425bsk1o.xn--znd2362jhgh; ; xn----e3j6620g.xn--znd2362jhgh; [B1, B5,
B6, P1, V3, V6] # ᠆몆-.Ⴛ𐦅︒
+᠆몆-。Ⴛ𐦅。; ᠆몆-.Ⴛ𐦅.; [B1, B5, B6, C1, P1, V3, V6];
xn----e3j425bsk1o.xn--znd4948j.; ; xn----e3j6620g.xn--znd4948j.; [B1, B5, B6,
P1, V3, V6] # ᠆몆-.Ⴛ𐦅.
+᠆몆-。Ⴛ𐦅。; ᠆몆-.Ⴛ𐦅.; [B1, B5, B6, C1, P1, V3, V6];
xn----e3j425bsk1o.xn--znd4948j.; ; xn----e3j6620g.xn--znd4948j.; [B1, B5, B6,
P1, V3, V6] # ᠆몆-.Ⴛ𐦅.
+᠆몆-。ⴛ𐦅。; ᠆몆-.ⴛ𐦅.; [B1, B5, B6, C1, P1, V3, V6];
xn----e3j425bsk1o.xn--jlju661e.; ; xn----e3j6620g.xn--jlju661e.; [B1, B5, B6,
P1, V3, V6] # ᠆몆-.ⴛ𐦅.
+᠆몆-。ⴛ𐦅。; ᠆몆-.ⴛ𐦅.; [B1, B5, B6, C1, P1, V3, V6];
xn----e3j425bsk1o.xn--jlju661e.; ; xn----e3j6620g.xn--jlju661e.; [B1, B5, B6,
P1, V3, V6] # ᠆몆-.ⴛ𐦅.
+xn----e3j6620g.xn--jlju661e.; ᠆몆-.ⴛ𐦅.; [B1, B5, B6, V3, V6];
xn----e3j6620g.xn--jlju661e.; ; ; # ᠆몆-.ⴛ𐦅.
+xn----e3j425bsk1o.xn--jlju661e.; ᠆몆-.ⴛ𐦅.; [B1, B5, B6, C1, V3, V6];
xn----e3j425bsk1o.xn--jlju661e.; ; ; # ᠆몆-.ⴛ𐦅.
+xn----e3j6620g.xn--znd4948j.; ᠆몆-.Ⴛ𐦅.; [B1, B5, B6, V3, V6];
xn----e3j6620g.xn--znd4948j.; ; ; # ᠆몆-.Ⴛ𐦅.
+xn----e3j425bsk1o.xn--znd4948j.; ᠆몆-.Ⴛ𐦅.; [B1, B5, B6, C1, V3, V6];
xn----e3j425bsk1o.xn--znd4948j.; ; ; # ᠆몆-.Ⴛ𐦅.
+᠆몆-。ⴛ𐦅︒; ᠆몆-.ⴛ𐦅︒; [B1, B5, B6, C1, P1, V3, V6];
xn----e3j425bsk1o.xn--jlj4997dhgh; ; xn----e3j6620g.xn--jlj4997dhgh; [B1, B5,
B6, P1, V3, V6] # ᠆몆-.ⴛ𐦅︒
+᠆몆-。ⴛ𐦅︒; ᠆몆-.ⴛ𐦅︒; [B1, B5, B6, C1, P1, V3, V6];
xn----e3j425bsk1o.xn--jlj4997dhgh; ; xn----e3j6620g.xn--jlj4997dhgh; [B1, B5,
B6, P1, V3, V6] # ᠆몆-.ⴛ𐦅︒
+xn----e3j6620g.xn--jlj4997dhgh; ᠆몆-.ⴛ𐦅︒; [B1, B5, B6, V3, V6];
xn----e3j6620g.xn--jlj4997dhgh; ; ; # ᠆몆-.ⴛ𐦅︒
+xn----e3j425bsk1o.xn--jlj4997dhgh; ᠆몆-.ⴛ𐦅︒; [B1, B5, B6, C1, V3, V6];
xn----e3j425bsk1o.xn--jlj4997dhgh; ; ; # ᠆몆-.ⴛ𐦅︒
+xn----e3j6620g.xn--znd2362jhgh; ᠆몆-.Ⴛ𐦅︒; [B1, B5, B6, V3, V6];
xn----e3j6620g.xn--znd2362jhgh; ; ; # ᠆몆-.Ⴛ𐦅︒
+xn----e3j425bsk1o.xn--znd2362jhgh; ᠆몆-.Ⴛ𐦅︒; [B1, B5, B6, C1, V3, V6];
xn----e3j425bsk1o.xn--znd2362jhgh; ; ; # ᠆몆-.Ⴛ𐦅︒
+.︒⥱𐹬; ; [B1, C1, P1, V6]; xn--uf66e.xn--0ugz28axl3pqxna; ;
xn--uf66e.xn--qtiz073e3ik; [B1, P1, V6] # .︒⥱𐹬
+.。⥱𐹬; ..⥱𐹬; [B1, C1, P1, V6, X4_2]; xn--uf66e..xn--0ugz28as66q; [B1, C1,
P1, V6, A4_2]; xn--uf66e..xn--qti2829e; [B1, P1, V6, A4_2] # ..⥱𐹬
+xn--uf66e..xn--qti2829e; ..⥱𐹬; [B1, V6, X4_2]; xn--uf66e..xn--qti2829e; [B1,
V6, A4_2]; ; # ..⥱𐹬
+xn--uf66e..xn--0ugz28as66q; ..⥱𐹬; [B1, C1, V6, X4_2];
xn--uf66e..xn--0ugz28as66q; [B1, C1, V6, A4_2]; ; # ..⥱𐹬
+xn--uf66e.xn--qtiz073e3ik; .︒⥱𐹬; [B1, V6]; xn--uf66e.xn--qtiz073e3ik; ; ; #
.︒⥱𐹬
+xn--uf66e.xn--0ugz28axl3pqxna; .︒⥱𐹬; [B1, C1, V6];
xn--uf66e.xn--0ugz28axl3pqxna; ; ; # .︒⥱𐹬
+.𐹠Ⴑ𐫊; ; [B1, P1, V6]; xn--n49c.xn--pnd4619jwicl862o; ; ; # .𐹠Ⴑ𐫊
+.𐹠ⴑ𐫊; ; [B1, P1, V6]; xn--n49c.xn--8kj8702ewicl862o; ; ; # .𐹠ⴑ𐫊
+xn--n49c.xn--8kj8702ewicl862o; .𐹠ⴑ𐫊; [B1, V6];
xn--n49c.xn--8kj8702ewicl862o; ; ; # .𐹠ⴑ𐫊
+xn--n49c.xn--pnd4619jwicl862o; .𐹠Ⴑ𐫊; [B1, V6];
xn--n49c.xn--pnd4619jwicl862o; ; ; # .𐹠Ⴑ𐫊
+ྤ.𝟭Ⴛ; ྤ.1Ⴛ; [P1, V5, V6]; xn--0fd40533g.xn--1-q1g; ; ; # ྤ.1Ⴛ
+ྤ.1Ⴛ; ; [P1, V5, V6]; xn--0fd40533g.xn--1-q1g; ; ; # ྤ.1Ⴛ
+ྤ.1ⴛ; ; [P1, V5, V6]; xn--0fd40533g.xn--1-tws; ; ; # ྤ.1ⴛ
+xn--0fd40533g.xn--1-tws; ྤ.1ⴛ; [V5, V6]; xn--0fd40533g.xn--1-tws; ; ; # ྤ.1ⴛ
+xn--0fd40533g.xn--1-q1g; ྤ.1Ⴛ; [V5, V6]; xn--0fd40533g.xn--1-q1g; ; ; # ྤ.1Ⴛ
+ྤ.𝟭ⴛ; ྤ.1ⴛ; [P1, V5, V6]; xn--0fd40533g.xn--1-tws; ; ; # ྤ.1ⴛ
+-ࠦ齀。릿; -ࠦ齀.릿; [B1, B5, B6, P1, V3, V6]; xn----6gd0617i.xn--7y2bm55m; ; ; #
-ࠦ齀.릿
+-ࠦ齀。릿; -ࠦ齀.릿; [B1, B5, B6, P1, V3, V6]; xn----6gd0617i.xn--7y2bm55m; ; ;
# -ࠦ齀.릿
+xn----6gd0617i.xn--7y2bm55m; -ࠦ齀.릿; [B1, B5, B6, V3, V6];
xn----6gd0617i.xn--7y2bm55m; ; ; # -ࠦ齀.릿
+ܜ鹝꾗。⏃; ܜ鹝꾗.⏃; [B1, B6, C2, P1, V6];
xn--mnb6558e91kyq533a.xn--1uga46zs309y; ; xn--mnb6558e91kyq533a.xn--6mh27269e;
[B1, B6, P1, V6] # ܜ鹝꾗.⏃
+ܜ鹝꾗。⏃; ܜ鹝꾗.⏃; [B1, B6, C2, P1, V6];
xn--mnb6558e91kyq533a.xn--1uga46zs309y; ; xn--mnb6558e91kyq533a.xn--6mh27269e;
[B1, B6, P1, V6] # ܜ鹝꾗.⏃
+xn--mnb6558e91kyq533a.xn--6mh27269e; ܜ鹝꾗.⏃; [B1, B6, V6];
xn--mnb6558e91kyq533a.xn--6mh27269e; ; ; # ܜ鹝꾗.⏃
+xn--mnb6558e91kyq533a.xn--1uga46zs309y; ܜ鹝꾗.⏃; [B1, B6, C2, V6];
xn--mnb6558e91kyq533a.xn--1uga46zs309y; ; ; # ܜ鹝꾗.⏃
+≮.-܈--; ≮.-܈--; [B1, P1, V2, V3, V6]; xn--gdh.xn------eqf; ; ; # ≮.-܈--
+≮.-܈--; ≮.-܈--; [B1, P1, V2, V3, V6]; xn--gdh.xn------eqf; ; ; # ≮.-܈--
+≮.-܈--; ; [B1, P1, V2, V3, V6]; xn--gdh.xn------eqf; ; ; # ≮.-܈--
+≮.-܈--; ≮.-܈--; [B1, P1, V2, V3, V6]; xn--gdh.xn------eqf; ; ; # ≮.-܈--
+xn--gdh.xn------eqf; ≮.-܈--; [B1, V2, V3, V6]; xn--gdh.xn------eqf; ; ; #
≮.-܈--
+𐹸。ς𝟩; 𐹸.ς7; [B1, C2, P1, V6]; xn--wo0di5177c.xn--7-xmb248s; ;
xn--wo0di5177c.xn--7-zmb; [B1, P1, V6] # 𐹸.ς7
+𐹸。ς7; 𐹸.ς7; [B1, C2, P1, V6]; xn--wo0di5177c.xn--7-xmb248s; ;
xn--wo0di5177c.xn--7-zmb; [B1, P1, V6] # 𐹸.ς7
+𐹸。Σ7; 𐹸.σ7; [B1, C2, P1, V6]; xn--wo0di5177c.xn--7-zmb938s; ;
xn--wo0di5177c.xn--7-zmb; [B1, P1, V6] # 𐹸.σ7
+𐹸。σ7; 𐹸.σ7; [B1, C2, P1, V6]; xn--wo0di5177c.xn--7-zmb938s; ;
xn--wo0di5177c.xn--7-zmb; [B1, P1, V6] # 𐹸.σ7
+xn--wo0di5177c.xn--7-zmb; 𐹸.σ7; [B1, V6]; xn--wo0di5177c.xn--7-zmb; ; ; #
𐹸.σ7
+xn--wo0di5177c.xn--7-zmb938s; 𐹸.σ7; [B1, C2, V6];
xn--wo0di5177c.xn--7-zmb938s; ; ; # 𐹸.σ7
+xn--wo0di5177c.xn--7-xmb248s; 𐹸.ς7; [B1, C2, V6];
xn--wo0di5177c.xn--7-xmb248s; ; ; # 𐹸.ς7
+𐹸。Σ𝟩; 𐹸.σ7; [B1, C2, P1, V6]; xn--wo0di5177c.xn--7-zmb938s; ;
xn--wo0di5177c.xn--7-zmb; [B1, P1, V6] # 𐹸.σ7
+𐹸。σ𝟩; 𐹸.σ7; [B1, C2, P1, V6]; xn--wo0di5177c.xn--7-zmb938s; ;
xn--wo0di5177c.xn--7-zmb; [B1, P1, V6] # 𐹸.σ7
+ς8.; ς8.; [P1, V6]; xn--8-xmb44974n.xn--su6h; ; xn--8-zmb14974n.xn--su6h;
# ς8.
+ς8.; ; [P1, V6]; xn--8-xmb44974n.xn--su6h; ; xn--8-zmb14974n.xn--su6h; # ς8.
+Σ8.; σ8.; [P1, V6]; xn--8-zmb14974n.xn--su6h; ; ; # σ8.
+σ8.; ; [P1, V6]; xn--8-zmb14974n.xn--su6h; ; ; # σ8.
+xn--8-zmb14974n.xn--su6h; σ8.; [V6]; xn--8-zmb14974n.xn--su6h; ; ; # σ8.
+xn--8-xmb44974n.xn--su6h; ς8.; [V6]; xn--8-xmb44974n.xn--su6h; ; ; # ς8.
+Σ8.; σ8.; [P1, V6]; xn--8-zmb14974n.xn--su6h; ; ; # σ8.
+σ8.; σ8.; [P1, V6]; xn--8-zmb14974n.xn--su6h; ; ; # σ8.
+ᡑ🄀ڄ.-𐫄𑲤; ᡑ🄀ڄ.-𐫄𑲤; [B1, C1, P1, V3, V6]; xn--9ib722gvtfi563c.xn----ek5i065b;
; xn--9ib722gbw95a.xn----ek5i065b; [B1, B5, B6, P1, V3, V6] # ᡑ🄀ڄ.-𐫄𑲤
+ᡑ0.ڄ.-𐫄𑲤; ; [B1, C1, V3]; xn--0-o7j263b.xn--9ib.xn----ek5i065b; ;
xn--0-o7j.xn--9ib.xn----ek5i065b; [B1, V3] # ᡑ0.ڄ.-𐫄𑲤
+xn--0-o7j.xn--9ib.xn----ek5i065b; ᡑ0.ڄ.-𐫄𑲤; [B1, V3];
xn--0-o7j.xn--9ib.xn----ek5i065b; ; ; # ᡑ0.ڄ.-𐫄𑲤
+xn--0-o7j263b.xn--9ib.xn----ek5i065b; ᡑ0.ڄ.-𐫄𑲤; [B1, C1, V3];
xn--0-o7j263b.xn--9ib.xn----ek5i065b; ; ; # ᡑ0.ڄ.-𐫄𑲤
+xn--9ib722gbw95a.xn----ek5i065b; ᡑ🄀ڄ.-𐫄𑲤; [B1, B5, B6, V3, V6];
xn--9ib722gbw95a.xn----ek5i065b; ; ; # ᡑ🄀ڄ.-𐫄𑲤
+xn--9ib722gvtfi563c.xn----ek5i065b; ᡑ🄀ڄ.-𐫄𑲤; [B1, C1, V3, V6];
xn--9ib722gvtfi563c.xn----ek5i065b; ; ; # ᡑ🄀ڄ.-𐫄𑲤
+𖠍。넯; 𖠍.넯; [B2, B3, P1, V6]; xn--4e9e.xn--l60bj21opd57g; ; ; # 𖠍.넯
+𖠍。넯; 𖠍.넯; [B2, B3, P1, V6]; xn--4e9e.xn--l60bj21opd57g; ; ; # 𖠍.넯
+xn--4e9e.xn--l60bj21opd57g; 𖠍.넯; [B2, B3, V6]; xn--4e9e.xn--l60bj21opd57g; ;
; # 𖠍.넯
+᠇Ⴘ。Ⴈ𝆊; ᠇Ⴘ.Ⴈ𝆊; [B1, P1, V6]; xn--wnd558a.xn--lfb465c1v87a; ; ; # ᠇Ⴘ.Ⴈ𝆊
+᠇ⴘ。ⴈ𝆊; ᠇ⴘ.ⴈ𝆊; [B1, P1, V6]; xn--d6e009h.xn--lfb290rfu3z; ; ; # ᠇ⴘ.ⴈ𝆊
+xn--d6e009h.xn--lfb290rfu3z; ᠇ⴘ.ⴈ𝆊; [B1, V6]; xn--d6e009h.xn--lfb290rfu3z; ;
; # ᠇ⴘ.ⴈ𝆊
+xn--wnd558a.xn--lfb465c1v87a; ᠇Ⴘ.Ⴈ𝆊; [B1, V6]; xn--wnd558a.xn--lfb465c1v87a;
; ; # ᠇Ⴘ.Ⴈ𝆊
+⒚𞤰。牣٧Ⴜᣥ; ⒚𞤰.牣٧Ⴜᣥ; [B1, B5, P1, V6]; xn--cthy466n29j3e.xn--gib404ccxgh00h; ;
; # ⒚𞤰.牣٧Ⴜᣥ
+19.𞤰。牣٧Ⴜᣥ; 19.𞤰.牣٧Ⴜᣥ; [B1, B5, P1, V6];
19.xn--oe6h75760c.xn--gib404ccxgh00h; ; ; # 19.𞤰.牣٧Ⴜᣥ
+19.𞤰。牣٧ⴜᣥ; 19.𞤰.牣٧ⴜᣥ; [B1, B5, P1, V6];
19.xn--oe6h75760c.xn--gib285gtxo2l9d; ; ; # 19.𞤰.牣٧ⴜᣥ
+19.𞤎。牣٧Ⴜᣥ; 19.𞤰.牣٧Ⴜᣥ; [B1, B5, P1, V6];
19.xn--oe6h75760c.xn--gib404ccxgh00h; ; ; # 19.𞤰.牣٧Ⴜᣥ
+19.𞤎。牣٧ⴜᣥ; 19.𞤰.牣٧ⴜᣥ; [B1, B5, P1, V6];
19.xn--oe6h75760c.xn--gib285gtxo2l9d; ; ; # 19.𞤰.牣٧ⴜᣥ
+19.xn--oe6h75760c.xn--gib285gtxo2l9d; 19.𞤰.牣٧ⴜᣥ; [B1, B5, V6];
19.xn--oe6h75760c.xn--gib285gtxo2l9d; ; ; # 19.𞤰.牣٧ⴜᣥ
+19.xn--oe6h75760c.xn--gib404ccxgh00h; 19.𞤰.牣٧Ⴜᣥ; [B1, B5, V6];
19.xn--oe6h75760c.xn--gib404ccxgh00h; ; ; # 19.𞤰.牣٧Ⴜᣥ
+⒚𞤰。牣٧ⴜᣥ; ⒚𞤰.牣٧ⴜᣥ; [B1, B5, P1, V6]; xn--cthy466n29j3e.xn--gib285gtxo2l9d; ;
; # ⒚𞤰.牣٧ⴜᣥ
+⒚𞤎。牣٧Ⴜᣥ; ⒚𞤰.牣٧Ⴜᣥ; [B1, B5, P1, V6]; xn--cthy466n29j3e.xn--gib404ccxgh00h; ;
; # ⒚𞤰.牣٧Ⴜᣥ
+⒚𞤎。牣٧ⴜᣥ; ⒚𞤰.牣٧ⴜᣥ; [B1, B5, P1, V6]; xn--cthy466n29j3e.xn--gib285gtxo2l9d; ;
; # ⒚𞤰.牣٧ⴜᣥ
+xn--cthy466n29j3e.xn--gib285gtxo2l9d; ⒚𞤰.牣٧ⴜᣥ; [B1, B5, V6];
xn--cthy466n29j3e.xn--gib285gtxo2l9d; ; ; # ⒚𞤰.牣٧ⴜᣥ
+xn--cthy466n29j3e.xn--gib404ccxgh00h; ⒚𞤰.牣٧Ⴜᣥ; [B1, B5, V6];
xn--cthy466n29j3e.xn--gib404ccxgh00h; ; ; # ⒚𞤰.牣٧Ⴜᣥ
+-𐋱𐰽⒈.Ⴓ; ; [B1, P1, V3, V6]; xn----ecp0206g90h.xn--rnd; ; ; # -𐋱𐰽⒈.Ⴓ
+-𐋱𐰽1..Ⴓ; ; [B1, P1, V3, V6, X4_2]; xn---1-895nq11a..xn--rnd; [B1, P1, V3, V6,
A4_2]; ; # -𐋱𐰽1..Ⴓ
+-𐋱𐰽1..ⴓ; ; [B1, V3, X4_2]; xn---1-895nq11a..xn--blj; [B1, V3, A4_2]; ; #
-𐋱𐰽1..ⴓ
+xn---1-895nq11a..xn--blj; -𐋱𐰽1..ⴓ; [B1, V3, X4_2]; xn---1-895nq11a..xn--blj;
[B1, V3, A4_2]; ; # -𐋱𐰽1..ⴓ
+xn---1-895nq11a..xn--rnd; -𐋱𐰽1..Ⴓ; [B1, V3, V6, X4_2];
xn---1-895nq11a..xn--rnd; [B1, V3, V6, A4_2]; ; # -𐋱𐰽1..Ⴓ
+-𐋱𐰽⒈.ⴓ; ; [B1, P1, V3, V6]; xn----ecp0206g90h.xn--blj; ; ; # -𐋱𐰽⒈.ⴓ
+xn----ecp0206g90h.xn--blj; -𐋱𐰽⒈.ⴓ; [B1, V3, V6]; xn----ecp0206g90h.xn--blj; ;
; # -𐋱𐰽⒈.ⴓ
+xn----ecp0206g90h.xn--rnd; -𐋱𐰽⒈.Ⴓ; [B1, V3, V6]; xn----ecp0206g90h.xn--rnd; ;
; # -𐋱𐰽⒈.Ⴓ
+긃.榶-; ; [C1, V3]; xn--0ug3307c.xn----d87b; ; xn--ej0b.xn----d87b; [V3] # 긃.榶-
+긃.榶-; 긃.榶-; [C1, V3]; xn--0ug3307c.xn----d87b; ; xn--ej0b.xn----d87b; [V3]
# 긃.榶-
+xn--ej0b.xn----d87b; 긃.榶-; [V3]; xn--ej0b.xn----d87b; ; ; # 긃.榶-
+xn--0ug3307c.xn----d87b; 긃.榶-; [C1, V3]; xn--0ug3307c.xn----d87b; ; ; # 긃.榶-
+뉓泓.্; ; [P1, V5, V6]; xn--lwwp69lqs7m.xn--b7b605i; ;
xn--lwwp69lqs7m.xn--b7b; # 뉓泓.্
+뉓泓.্; 뉓泓.্; [P1, V5, V6]; xn--lwwp69lqs7m.xn--b7b605i; ;
xn--lwwp69lqs7m.xn--b7b; # 뉓泓.্
+xn--lwwp69lqs7m.xn--b7b; 뉓泓.্; [V5, V6]; xn--lwwp69lqs7m.xn--b7b; ; ; # 뉓泓.্
+xn--lwwp69lqs7m.xn--b7b605i; 뉓泓.্; [V5, V6]; xn--lwwp69lqs7m.xn--b7b605i; ;
; # 뉓泓.্
+𐹴ß。ິ; 𐹴ß.ິ; [B1, C2, P1, V5, V6]; xn--zca770nip7n.xn--57c638l8774i; ;
xn--ss-ti3o.xn--57c638l8774i; [B1, P1, V5, V6] # 𐹴ß.ິ
+𐹴ß。ິ; 𐹴ß.ິ; [B1, C2, P1, V5, V6]; xn--zca770nip7n.xn--57c638l8774i; ;
xn--ss-ti3o.xn--57c638l8774i; [B1, P1, V5, V6] # 𐹴ß.ິ
+𐹴SS。ິ; 𐹴ss.ິ; [B1, C2, P1, V5, V6]; xn--ss-l1t5169j.xn--57c638l8774i; ;
xn--ss-ti3o.xn--57c638l8774i; [B1, P1, V5, V6] # 𐹴ss.ິ
+𐹴ss。ິ; 𐹴ss.ິ; [B1, C2, P1, V5, V6]; xn--ss-l1t5169j.xn--57c638l8774i; ;
xn--ss-ti3o.xn--57c638l8774i; [B1, P1, V5, V6] # 𐹴ss.ິ
+𐹴Ss。ິ; 𐹴ss.ິ; [B1, C2, P1, V5, V6]; xn--ss-l1t5169j.xn--57c638l8774i; ;
xn--ss-ti3o.xn--57c638l8774i; [B1, P1, V5, V6] # 𐹴ss.ິ
+xn--ss-ti3o.xn--57c638l8774i; 𐹴ss.ິ; [B1, V5, V6];
xn--ss-ti3o.xn--57c638l8774i; ; ; # 𐹴ss.ິ
+xn--ss-l1t5169j.xn--57c638l8774i; 𐹴ss.ິ; [B1, C2, V5, V6];
xn--ss-l1t5169j.xn--57c638l8774i; ; ; # 𐹴ss.ິ
+xn--zca770nip7n.xn--57c638l8774i; 𐹴ß.ິ; [B1, C2, V5, V6];
xn--zca770nip7n.xn--57c638l8774i; ; ; # 𐹴ß.ິ
+𐹴SS。ິ; 𐹴ss.ິ; [B1, C2, P1, V5, V6]; xn--ss-l1t5169j.xn--57c638l8774i; ;
xn--ss-ti3o.xn--57c638l8774i; [B1, P1, V5, V6] # 𐹴ss.ິ
+𐹴ss。ິ; 𐹴ss.ິ; [B1, C2, P1, V5, V6]; xn--ss-l1t5169j.xn--57c638l8774i; ;
xn--ss-ti3o.xn--57c638l8774i; [B1, P1, V5, V6] # 𐹴ss.ິ
+𐹴Ss。ິ; 𐹴ss.ິ; [B1, C2, P1, V5, V6]; xn--ss-l1t5169j.xn--57c638l8774i; ;
xn--ss-ti3o.xn--57c638l8774i; [B1, P1, V5, V6] # 𐹴ss.ິ
+᭄.᮪-≮≠; ᭄.᮪-≮≠; [P1, V5, V6]; xn--1uf.xn----nmlz65aub; ; ; # ᭄.᮪-≮≠
+᭄.᮪-≮≠; ᭄.᮪-≮≠; [P1, V5, V6]; xn--1uf.xn----nmlz65aub; ; ; # ᭄.᮪-≮≠
+᭄.᮪-≮≠; ; [P1, V5, V6]; xn--1uf.xn----nmlz65aub; ; ; # ᭄.᮪-≮≠
+᭄.᮪-≮≠; ᭄.᮪-≮≠; [P1, V5, V6]; xn--1uf.xn----nmlz65aub; ; ; # ᭄.᮪-≮≠
+xn--1uf.xn----nmlz65aub; ᭄.᮪-≮≠; [V5, V6]; xn--1uf.xn----nmlz65aub; ; ; #
᭄.᮪-≮≠
+᯳Ⴑᅟ.𑄴Ⅎ; ᯳Ⴑᅟ.𑄴Ⅎ; [P1, V5, V6]; xn--pnd26a55x.xn--f3g7465g; ; ; # ᯳Ⴑ.𑄴Ⅎ
+᯳Ⴑᅟ.𑄴Ⅎ; ; [P1, V5, V6]; xn--pnd26a55x.xn--f3g7465g; ; ; # ᯳Ⴑ.𑄴Ⅎ
+᯳ⴑᅟ.𑄴ⅎ; ; [P1, V5, V6]; xn--osd925cvyn.xn--73g3065g; ; ; # ᯳ⴑ.𑄴ⅎ
+᯳Ⴑᅟ.𑄴ⅎ; ; [P1, V5, V6]; xn--pnd26a55x.xn--73g3065g; ; ; # ᯳Ⴑ.𑄴ⅎ
+xn--pnd26a55x.xn--73g3065g; ᯳Ⴑᅟ.𑄴ⅎ; [V5, V6]; xn--pnd26a55x.xn--73g3065g; ; ;
# ᯳Ⴑ.𑄴ⅎ
+xn--osd925cvyn.xn--73g3065g; ᯳ⴑᅟ.𑄴ⅎ; [V5, V6]; xn--osd925cvyn.xn--73g3065g; ;
; # ᯳ⴑ.𑄴ⅎ
+xn--pnd26a55x.xn--f3g7465g; ᯳Ⴑᅟ.𑄴Ⅎ; [V5, V6]; xn--pnd26a55x.xn--f3g7465g; ; ;
# ᯳Ⴑ.𑄴Ⅎ
+᯳ⴑᅟ.𑄴ⅎ; ᯳ⴑᅟ.𑄴ⅎ; [P1, V5, V6]; xn--osd925cvyn.xn--73g3065g; ; ; # ᯳ⴑ.𑄴ⅎ
+᯳Ⴑᅟ.𑄴ⅎ; ᯳Ⴑᅟ.𑄴ⅎ; [P1, V5, V6]; xn--pnd26a55x.xn--73g3065g; ; ; # ᯳Ⴑ.𑄴ⅎ
+。Ⴃ𐴣𐹹똯; .Ⴃ𐴣𐹹똯; [B5, P1, V6]; xn--187g.xn--bnd4785f8r8bdeb; ; ; # .Ⴃ𐴣𐹹똯
+。Ⴃ𐴣𐹹똯; .Ⴃ𐴣𐹹똯; [B5, P1, V6]; xn--187g.xn--bnd4785f8r8bdeb; ; ; # .Ⴃ𐴣𐹹똯
+。ⴃ𐴣𐹹똯; .ⴃ𐴣𐹹똯; [B5, P1, V6]; xn--187g.xn--ukjy205b8rscdeb; ; ; # .ⴃ𐴣𐹹똯
+。ⴃ𐴣𐹹똯; .ⴃ𐴣𐹹똯; [B5, P1, V6]; xn--187g.xn--ukjy205b8rscdeb; ; ; # .ⴃ𐴣𐹹똯
+xn--187g.xn--ukjy205b8rscdeb; .ⴃ𐴣𐹹똯; [B5, V6]; xn--187g.xn--ukjy205b8rscdeb;
; ; # .ⴃ𐴣𐹹똯
+xn--187g.xn--bnd4785f8r8bdeb; .Ⴃ𐴣𐹹똯; [B5, V6]; xn--187g.xn--bnd4785f8r8bdeb;
; ; # .Ⴃ𐴣𐹹똯
+𐫀。⳻󠄷ㅤ; 𐫀.⳻ㅤ; [B1, P1, V6]; xn--pw9c.xn--mkj83l4v899a; ; ; # 𐫀.⳻
+𐫀。⳻󠄷ᅠ; 𐫀.⳻ᅠ; [B1, P1, V6]; xn--pw9c.xn--psd742lxt32w; ; ; # 𐫀.⳻
+xn--pw9c.xn--psd742lxt32w; 𐫀.⳻ᅠ; [B1, V6]; xn--pw9c.xn--psd742lxt32w; ; ; #
𐫀.⳻
+xn--pw9c.xn--mkj83l4v899a; 𐫀.⳻ㅤ; [B1, V6]; xn--pw9c.xn--mkj83l4v899a; ; ; #
𐫀.⳻
+ޚ⾇.ܞ-𐋰; ޚ舛.ܞ-𐋰; [B2, B3]; xn--7qb6383d.xn----20c3154q; ; ; # ޚ舛.ܞ-𐋰
+ޚ舛.ܞ-𐋰; ; [B2, B3]; xn--7qb6383d.xn----20c3154q; ; ; # ޚ舛.ܞ-𐋰
+xn--7qb6383d.xn----20c3154q; ޚ舛.ܞ-𐋰; [B2, B3]; xn--7qb6383d.xn----20c3154q; ;
; # ޚ舛.ܞ-𐋰
+Ⴉ猕≮.︒; Ⴉ猕≮.︒; [P1, V6]; xn--hnd212gz32d54x5r.xn--y86c; ; ; # Ⴉ猕≮.︒
+Ⴉ猕≮.︒; Ⴉ猕≮.︒; [P1, V6]; xn--hnd212gz32d54x5r.xn--y86c; ; ; # Ⴉ猕≮.︒
+Ⴉ猕≮.。; Ⴉ猕≮..; [P1, V6, X4_2]; xn--hnd212gz32d54x5r..; [P1, V6, A4_2]; ; #
Ⴉ猕≮..
+Ⴉ猕≮.。; Ⴉ猕≮..; [P1, V6, X4_2]; xn--hnd212gz32d54x5r..; [P1, V6, A4_2]; ; #
Ⴉ猕≮..
+ⴉ猕≮.。; ⴉ猕≮..; [P1, V6, X4_2]; xn--gdh892bbz0d5438s..; [P1, V6, A4_2]; ; #
ⴉ猕≮..
+ⴉ猕≮.。; ⴉ猕≮..; [P1, V6, X4_2]; xn--gdh892bbz0d5438s..; [P1, V6, A4_2]; ; #
ⴉ猕≮..
+xn--gdh892bbz0d5438s..; ⴉ猕≮..; [V6, X4_2]; xn--gdh892bbz0d5438s..; [V6,
A4_2]; ; # ⴉ猕≮..
+xn--hnd212gz32d54x5r..; Ⴉ猕≮..; [V6, X4_2]; xn--hnd212gz32d54x5r..; [V6,
A4_2]; ; # Ⴉ猕≮..
+ⴉ猕≮.︒; ⴉ猕≮.︒; [P1, V6]; xn--gdh892bbz0d5438s.xn--y86c; ; ; # ⴉ猕≮.︒
+ⴉ猕≮.︒; ⴉ猕≮.︒; [P1, V6]; xn--gdh892bbz0d5438s.xn--y86c; ; ; # ⴉ猕≮.︒
+xn--gdh892bbz0d5438s.xn--y86c; ⴉ猕≮.︒; [V6]; xn--gdh892bbz0d5438s.xn--y86c; ;
; # ⴉ猕≮.︒
+xn--hnd212gz32d54x5r.xn--y86c; Ⴉ猕≮.︒; [V6]; xn--hnd212gz32d54x5r.xn--y86c; ;
; # Ⴉ猕≮.︒
+🏮。ث鳳ߢ󠅉; 🏮.ث鳳ߢ; [B1, B2]; xn--8m8h.xn--qgb29f6z90a; ; ; # 🏮.ث鳳ߢ
+🏮。ث鳳ߢ󠅉; 🏮.ث鳳ߢ; [B1, B2]; xn--8m8h.xn--qgb29f6z90a; ; ; # 🏮.ث鳳ߢ
+xn--8m8h.xn--qgb29f6z90a; 🏮.ث鳳ߢ; [B1, B2]; xn--8m8h.xn--qgb29f6z90a; ; ; #
🏮.ث鳳ߢ
+𐹶。ß; 𐹶.ß; [B1, C2]; xn--1ug9105g.xn--zca; ; xn--uo0d.ss; [B1] # 𐹶.ß
+𐹶。SS; 𐹶.ss; [B1, C2]; xn--1ug9105g.ss; ; xn--uo0d.ss; [B1] # 𐹶.ss
+𐹶。ss; 𐹶.ss; [B1, C2]; xn--1ug9105g.ss; ; xn--uo0d.ss; [B1] # 𐹶.ss
+𐹶。Ss; 𐹶.ss; [B1, C2]; xn--1ug9105g.ss; ; xn--uo0d.ss; [B1] # 𐹶.ss
+xn--uo0d.ss; 𐹶.ss; [B1]; xn--uo0d.ss; ; ; # 𐹶.ss
+xn--1ug9105g.ss; 𐹶.ss; [B1, C2]; xn--1ug9105g.ss; ; ; # 𐹶.ss
+xn--1ug9105g.xn--zca; 𐹶.ß; [B1, C2]; xn--1ug9105g.xn--zca; ; ; # 𐹶.ß
+Å둄-.; å둄-.; [C1, V3]; xn----1fa1788k.xn--0ug; ; xn----1fa1788k.; [V3] # å둄-.
+Å둄-.; å둄-.; [C1, V3]; xn----1fa1788k.xn--0ug; ; xn----1fa1788k.; [V3] #
å둄-.
+Å둄-.; å둄-.; [C1, V3]; xn----1fa1788k.xn--0ug; ; xn----1fa1788k.; [V3] # å둄-.
+Å둄-.; å둄-.; [C1, V3]; xn----1fa1788k.xn--0ug; ; xn----1fa1788k.; [V3] #
å둄-.
+å둄-.; å둄-.; [C1, V3]; xn----1fa1788k.xn--0ug; ; xn----1fa1788k.; [V3] #
å둄-.
+å둄-.; ; [C1, V3]; xn----1fa1788k.xn--0ug; ; xn----1fa1788k.; [V3] # å둄-.
+xn----1fa1788k.; å둄-.; [V3]; xn----1fa1788k.; ; ; # å둄-.
+xn----1fa1788k.xn--0ug; å둄-.; [C1, V3]; xn----1fa1788k.xn--0ug; ; ; # å둄-.
+å둄-.; å둄-.; [C1, V3]; xn----1fa1788k.xn--0ug; ; xn----1fa1788k.; [V3] #
å둄-.
+å둄-.; å둄-.; [C1, V3]; xn----1fa1788k.xn--0ug; ; xn----1fa1788k.; [V3] # å둄-.
+゙ᷗ𞤀.-॓; ゙ᷗ𞤢.-॓; [B1, B6, P1, V5, V6];
xn--veg121fwg63altj9d.xn----eyd92688s; ; ; # ゙ᷗ𞤢.-॓
+゙ᷗ𞤢.-॓; ; [B1, B6, P1, V5, V6]; xn--veg121fwg63altj9d.xn----eyd92688s; ; ;
# ゙ᷗ𞤢.-॓
+xn--veg121fwg63altj9d.xn----eyd92688s; ゙ᷗ𞤢.-॓; [B1, B6, V5, V6];
xn--veg121fwg63altj9d.xn----eyd92688s; ; ; # ゙ᷗ𞤢.-॓
+ς.ß⵿; ; [B5, B6, P1, V6]; xn--3xa.xn--zca281az71b8x73m; ;
xn--4xa.xn--ss-y8d4760biv60n; # ς.ß⵿
+Σ.SS⵿; σ.ss⵿; [B5, B6, P1, V6]; xn--4xa.xn--ss-y8d4760biv60n; ; ; # σ.ss⵿
+σ.ss⵿; ; [B5, B6, P1, V6]; xn--4xa.xn--ss-y8d4760biv60n; ; ; # σ.ss⵿
+Σ.ss⵿; σ.ss⵿; [B5, B6, P1, V6]; xn--4xa.xn--ss-y8d4760biv60n; ; ; # σ.ss⵿
+xn--4xa.xn--ss-y8d4760biv60n; σ.ss⵿; [B5, B6, V6];
xn--4xa.xn--ss-y8d4760biv60n; ; ; # σ.ss⵿
+Σ.ß⵿; σ.ß⵿; [B5, B6, P1, V6]; xn--4xa.xn--zca281az71b8x73m; ;
xn--4xa.xn--ss-y8d4760biv60n; # σ.ß⵿
+σ.ß⵿; ; [B5, B6, P1, V6]; xn--4xa.xn--zca281az71b8x73m; ;
xn--4xa.xn--ss-y8d4760biv60n; # σ.ß⵿
+xn--4xa.xn--zca281az71b8x73m; σ.ß⵿; [B5, B6, V6];
xn--4xa.xn--zca281az71b8x73m; ; ; # σ.ß⵿
+xn--3xa.xn--zca281az71b8x73m; ς.ß⵿; [B5, B6, V6];
xn--3xa.xn--zca281az71b8x73m; ; ; # ς.ß⵿
+ꡀ𞀟。٫֙; ꡀ𞀟.٫֙; [B1]; xn--8b9a1720d.xn--kcb33b; ; ; # ꡀ𞀟.٫֙
+ꡀ𞀟。٫֙; ꡀ𞀟.٫֙; [B1]; xn--8b9a1720d.xn--kcb33b; ; ; # ꡀ𞀟.٫֙
+xn--8b9a1720d.xn--kcb33b; ꡀ𞀟.٫֙; [B1]; xn--8b9a1720d.xn--kcb33b; ; ; # ꡀ𞀟.٫֙
+ࢩ。⧅-𐭡; ࢩ.⧅-𐭡; [B1, B5, B6, C1, P1, V6];
xn--yyb780jll63m.xn----zir1232guu71b; ; xn--yyb56242i.xn----zir1232guu71b; [B1,
B5, B6, P1, V6] # ࢩ.⧅-𐭡
+ࢩ。⧅-𐭡; ࢩ.⧅-𐭡; [B1, B5, B6, C1, P1, V6];
xn--yyb780jll63m.xn----zir1232guu71b; ; xn--yyb56242i.xn----zir1232guu71b; [B1,
B5, B6, P1, V6] # ࢩ.⧅-𐭡
+xn--yyb56242i.xn----zir1232guu71b; ࢩ.⧅-𐭡; [B1, B5, B6, V6];
xn--yyb56242i.xn----zir1232guu71b; ; ; # ࢩ.⧅-𐭡
+xn--yyb780jll63m.xn----zir1232guu71b; ࢩ.⧅-𐭡; [B1, B5, B6, C1, V6];
xn--yyb780jll63m.xn----zir1232guu71b; ; ; # ࢩ.⧅-𐭡
+룱𰍨。𝨖︒; 룱𰍨.𝨖︒; [C1, C2, P1, V5, V6]; xn--0ugb3358ili2v.xn--y86cl899a; ;
xn--ct2b0738h.xn--y86cl899a; [P1, V5, V6] # 룱𰍨.𝨖︒
+룱𰍨。𝨖︒; 룱𰍨.𝨖︒; [C1, C2, P1, V5, V6]; xn--0ugb3358ili2v.xn--y86cl899a; ;
xn--ct2b0738h.xn--y86cl899a; [P1, V5, V6] # 룱𰍨.𝨖︒
+룱𰍨。𝨖。; 룱𰍨.𝨖.; [C1, C2, V5]; xn--0ugb3358ili2v.xn--772h.; ;
xn--ct2b0738h.xn--772h.; [V5] # 룱𰍨.𝨖.
+룱𰍨。𝨖。; 룱𰍨.𝨖.; [C1, C2, V5]; xn--0ugb3358ili2v.xn--772h.; ;
xn--ct2b0738h.xn--772h.; [V5] # 룱𰍨.𝨖.
+xn--ct2b0738h.xn--772h.; 룱𰍨.𝨖.; [V5]; xn--ct2b0738h.xn--772h.; ; ; # 룱𰍨.𝨖.
+xn--0ugb3358ili2v.xn--772h.; 룱𰍨.𝨖.; [C1, C2, V5];
xn--0ugb3358ili2v.xn--772h.; ; ; # 룱𰍨.𝨖.
+xn--ct2b0738h.xn--y86cl899a; 룱𰍨.𝨖︒; [V5, V6]; xn--ct2b0738h.xn--y86cl899a; ; ;
# 룱𰍨.𝨖︒
+xn--0ugb3358ili2v.xn--y86cl899a; 룱𰍨.𝨖︒; [C1, C2, V5, V6];
xn--0ugb3358ili2v.xn--y86cl899a; ; ; # 룱𰍨.𝨖︒
+🄄.᳜⒈ß; 🄄.᳜⒈ß; [P1, V5, V6]; xn--x07h.xn--zca344lmif; ;
xn--x07h.xn--ss-k1r094b; # 🄄.᳜⒈ß
+3,.᳜1.ß; ; [P1, V5, V6]; 3,.xn--1-43l.xn--zca; ; 3,.xn--1-43l.ss; # 3,.᳜1.ß
+3,.᳜1.SS; 3,.᳜1.ss; [P1, V5, V6]; 3,.xn--1-43l.ss; ; ; # 3,.᳜1.ss
+3,.᳜1.ss; ; [P1, V5, V6]; 3,.xn--1-43l.ss; ; ; # 3,.᳜1.ss
+3,.᳜1.Ss; 3,.᳜1.ss; [P1, V5, V6]; 3,.xn--1-43l.ss; ; ; # 3,.᳜1.ss
+3,.xn--1-43l.ss; 3,.᳜1.ss; [P1, V5, V6]; 3,.xn--1-43l.ss; ; ; # 3,.᳜1.ss
+3,.xn--1-43l.xn--zca; 3,.᳜1.ß; [P1, V5, V6]; 3,.xn--1-43l.xn--zca; ; ; #
3,.᳜1.ß
+🄄.᳜⒈SS; 🄄.᳜⒈ss; [P1, V5, V6]; xn--x07h.xn--ss-k1r094b; ; ; # 🄄.᳜⒈ss
+🄄.᳜⒈ss; 🄄.᳜⒈ss; [P1, V5, V6]; xn--x07h.xn--ss-k1r094b; ; ; # 🄄.᳜⒈ss
+🄄.᳜⒈Ss; 🄄.᳜⒈ss; [P1, V5, V6]; xn--x07h.xn--ss-k1r094b; ; ; # 🄄.᳜⒈ss
+xn--x07h.xn--ss-k1r094b; 🄄.᳜⒈ss; [V5, V6]; xn--x07h.xn--ss-k1r094b; ; ; #
🄄.᳜⒈ss
+xn--x07h.xn--zca344lmif; 🄄.᳜⒈ß; [V5, V6]; xn--x07h.xn--zca344lmif; ; ; # 🄄.᳜⒈ß
+⵿。𑐺; ⵿.𑐺; [B2, B3, P1, V6]; xn--eoj16016a.xn--0v1d3848a3lr0d; ; ; # ⵿.𑐺
+⵿。𑐺; ⵿.𑐺; [B2, B3, P1, V6]; xn--eoj16016a.xn--0v1d3848a3lr0d; ; ; # ⵿.𑐺
+xn--eoj16016a.xn--0v1d3848a3lr0d; ⵿.𑐺; [B2, B3, V6];
xn--eoj16016a.xn--0v1d3848a3lr0d; ; ; # ⵿.𑐺
+်्᷽.≠㇛; ်्᷽.≠㇛; [C2, P1, V5, V6]; xn--n3b956a9zm.xn--1ug63gz5w; ;
xn--n3b956a9zm.xn--1ch912d; [P1, V5, V6] # ်्᷽.≠㇛
+်्᷽.≠㇛; ်्᷽.≠㇛; [C2, P1, V5, V6]; xn--n3b956a9zm.xn--1ug63gz5w; ;
xn--n3b956a9zm.xn--1ch912d; [P1, V5, V6] # ်्᷽.≠㇛
+်्᷽.≠㇛; ်्᷽.≠㇛; [C2, P1, V5, V6]; xn--n3b956a9zm.xn--1ug63gz5w; ;
xn--n3b956a9zm.xn--1ch912d; [P1, V5, V6] # ်्᷽.≠㇛
+်्᷽.≠㇛; ; [C2, P1, V5, V6]; xn--n3b956a9zm.xn--1ug63gz5w; ;
xn--n3b956a9zm.xn--1ch912d; [P1, V5, V6] # ်्᷽.≠㇛
+်्᷽.≠㇛; ်्᷽.≠㇛; [C2, P1, V5, V6]; xn--n3b956a9zm.xn--1ug63gz5w; ;
xn--n3b956a9zm.xn--1ch912d; [P1, V5, V6] # ်्᷽.≠㇛
+xn--n3b956a9zm.xn--1ch912d; ်्᷽.≠㇛; [V5, V6]; xn--n3b956a9zm.xn--1ch912d; ; ;
# ်्᷽.≠㇛
+xn--n3b956a9zm.xn--1ug63gz5w; ်्᷽.≠㇛; [C2, V5, V6];
xn--n3b956a9zm.xn--1ug63gz5w; ; ; # ်्᷽.≠㇛
+Ⴁ𐋨娤.̼٢𑖿; ; [B1, C2, P1, V6]; xn--8md2578ag21g.xn--9ta62ngt6aou8t; ;
xn--8md2578ag21g.xn--9ta62nrv36a; [B1, P1, V5, V6] # Ⴁ𐋨娤.̼٢𑖿
+ⴁ𐋨娤.̼٢𑖿; ; [B1, C2]; xn--skjw75lg29h.xn--9ta62ngt6aou8t; ;
xn--skjw75lg29h.xn--9ta62nrv36a; [B1, V5] # ⴁ𐋨娤.̼٢𑖿
+xn--skjw75lg29h.xn--9ta62nrv36a; ⴁ𐋨娤.̼٢𑖿; [B1, V5];
xn--skjw75lg29h.xn--9ta62nrv36a; ; ; # ⴁ𐋨娤.̼٢𑖿
+xn--skjw75lg29h.xn--9ta62ngt6aou8t; ⴁ𐋨娤.̼٢𑖿; [B1, C2];
xn--skjw75lg29h.xn--9ta62ngt6aou8t; ; ; # ⴁ𐋨娤.̼٢𑖿
+xn--8md2578ag21g.xn--9ta62nrv36a; Ⴁ𐋨娤.̼٢𑖿; [B1, V5, V6];
xn--8md2578ag21g.xn--9ta62nrv36a; ; ; # Ⴁ𐋨娤.̼٢𑖿
+xn--8md2578ag21g.xn--9ta62ngt6aou8t; Ⴁ𐋨娤.̼٢𑖿; [B1, C2, V6];
xn--8md2578ag21g.xn--9ta62ngt6aou8t; ; ; # Ⴁ𐋨娤.̼٢𑖿
+🄀Ⴄ٩ࠠ。⒈ྶß; 🄀Ⴄ٩ࠠ.⒈ྶß; [B1, P1, V6]; xn--iib29f26o6n43c.xn--zca117e3vp; ;
xn--iib29f26o6n43c.xn--ss-1sj588o; # 🄀Ⴄ٩ࠠ.⒈ྶß
+0.Ⴄ٩ࠠ。1.ྶß; 0.Ⴄ٩ࠠ.1.ྶß; [B1, B5, B6, P1, V5, V6];
0.xn--iib29f26o.1.xn--zca117e; ; 0.xn--iib29f26o.1.xn--ss-1sj; # 0.Ⴄ٩ࠠ.1.ྶß
+0.ⴄ٩ࠠ。1.ྶß; 0.ⴄ٩ࠠ.1.ྶß; [B1, B5, B6, V5]; 0.xn--iib29fp25e.1.xn--zca117e; ;
0.xn--iib29fp25e.1.xn--ss-1sj; # 0.ⴄ٩ࠠ.1.ྶß
+0.Ⴄ٩ࠠ。1.ྶSS; 0.Ⴄ٩ࠠ.1.ྶss; [B1, B5, B6, P1, V5, V6];
0.xn--iib29f26o.1.xn--ss-1sj; ; ; # 0.Ⴄ٩ࠠ.1.ྶss
+0.ⴄ٩ࠠ。1.ྶss; 0.ⴄ٩ࠠ.1.ྶss; [B1, B5, B6, V5]; 0.xn--iib29fp25e.1.xn--ss-1sj; ; ;
# 0.ⴄ٩ࠠ.1.ྶss
+0.Ⴄ٩ࠠ。1.ྶSs; 0.Ⴄ٩ࠠ.1.ྶss; [B1, B5, B6, P1, V5, V6];
0.xn--iib29f26o.1.xn--ss-1sj; ; ; # 0.Ⴄ٩ࠠ.1.ྶss
+0.xn--iib29f26o.1.xn--ss-1sj; 0.Ⴄ٩ࠠ.1.ྶss; [B1, B5, B6, V5, V6];
0.xn--iib29f26o.1.xn--ss-1sj; ; ; # 0.Ⴄ٩ࠠ.1.ྶss
+0.xn--iib29fp25e.1.xn--ss-1sj; 0.ⴄ٩ࠠ.1.ྶss; [B1, B5, B6, V5];
0.xn--iib29fp25e.1.xn--ss-1sj; ; ; # 0.ⴄ٩ࠠ.1.ྶss
+0.xn--iib29fp25e.1.xn--zca117e; 0.ⴄ٩ࠠ.1.ྶß; [B1, B5, B6, V5];
0.xn--iib29fp25e.1.xn--zca117e; ; ; # 0.ⴄ٩ࠠ.1.ྶß
+0.xn--iib29f26o.1.xn--zca117e; 0.Ⴄ٩ࠠ.1.ྶß; [B1, B5, B6, V5, V6];
0.xn--iib29f26o.1.xn--zca117e; ; ; # 0.Ⴄ٩ࠠ.1.ྶß
+🄀ⴄ٩ࠠ。⒈ྶß; 🄀ⴄ٩ࠠ.⒈ྶß; [B1, P1, V6]; xn--iib29fp25e0219a.xn--zca117e3vp; ;
xn--iib29fp25e0219a.xn--ss-1sj588o; # 🄀ⴄ٩ࠠ.⒈ྶß
+🄀Ⴄ٩ࠠ。⒈ྶSS; 🄀Ⴄ٩ࠠ.⒈ྶss; [B1, P1, V6]; xn--iib29f26o6n43c.xn--ss-1sj588o; ; ; #
🄀Ⴄ٩ࠠ.⒈ྶss
+🄀ⴄ٩ࠠ。⒈ྶss; 🄀ⴄ٩ࠠ.⒈ྶss; [B1, P1, V6]; xn--iib29fp25e0219a.xn--ss-1sj588o; ; ; #
🄀ⴄ٩ࠠ.⒈ྶss
+🄀Ⴄ٩ࠠ。⒈ྶSs; 🄀Ⴄ٩ࠠ.⒈ྶss; [B1, P1, V6]; xn--iib29f26o6n43c.xn--ss-1sj588o; ; ; #
🄀Ⴄ٩ࠠ.⒈ྶss
+xn--iib29f26o6n43c.xn--ss-1sj588o; 🄀Ⴄ٩ࠠ.⒈ྶss; [B1, V6];
xn--iib29f26o6n43c.xn--ss-1sj588o; ; ; # 🄀Ⴄ٩ࠠ.⒈ྶss
+xn--iib29fp25e0219a.xn--ss-1sj588o; 🄀ⴄ٩ࠠ.⒈ྶss; [B1, V6];
xn--iib29fp25e0219a.xn--ss-1sj588o; ; ; # 🄀ⴄ٩ࠠ.⒈ྶss
+xn--iib29fp25e0219a.xn--zca117e3vp; 🄀ⴄ٩ࠠ.⒈ྶß; [B1, V6];
xn--iib29fp25e0219a.xn--zca117e3vp; ; ; # 🄀ⴄ٩ࠠ.⒈ྶß
+xn--iib29f26o6n43c.xn--zca117e3vp; 🄀Ⴄ٩ࠠ.⒈ྶß; [B1, V6];
xn--iib29f26o6n43c.xn--zca117e3vp; ; ; # 🄀Ⴄ٩ࠠ.⒈ྶß
+≠.-٫; ; [B1, C1, P1, V6]; xn--1ch.xn----vqc597q; ; xn--1ch.xn----vqc; [B1,
P1, V3, V6] # ≠.-٫
+≠.-٫; ≠.-٫; [B1, C1, P1, V6]; xn--1ch.xn----vqc597q; ; xn--1ch.xn----vqc;
[B1, P1, V3, V6] # ≠.-٫
+xn--1ch.xn----vqc; ≠.-٫; [B1, V3, V6]; xn--1ch.xn----vqc; ; ; # ≠.-٫
+xn--1ch.xn----vqc597q; ≠.-٫; [B1, C1, V6]; xn--1ch.xn----vqc597q; ; ; # ≠.-٫
+٠۱。𞠁٥; ٠۱.𞠁٥; [B1, P1, V6]; xn--8hb40a.xn--eib7967vner3e; ; ; # ٠۱.𞠁٥
+٠۱。𞠁٥; ٠۱.𞠁٥; [B1, P1, V6]; xn--8hb40a.xn--eib7967vner3e; ; ; # ٠۱.𞠁٥
+xn--8hb40a.xn--eib7967vner3e; ٠۱.𞠁٥; [B1, V6]; xn--8hb40a.xn--eib7967vner3e;
; ; # ٠۱.𞠁٥
+٣⒖。᯳; ٣⒖.᯳; [B1, C1, P1, V6]; xn--cib152kwgd.xn--1zf13512buy41d; ;
xn--cib675m.xn--1zf13512buy41d; [B1, P1, V6] # ٣⒖.᯳
+٣15.。᯳; ٣15..᯳; [B1, C1, P1, V6, X4_2];
xn--15-gyd983x..xn--1zf13512buy41d; [B1, C1, P1, V6, A4_2];
xn--15-gyd..xn--1zf13512buy41d; [B1, P1, V6, A4_2] # ٣15..᯳
+xn--15-gyd..xn--1zf13512buy41d; ٣15..᯳; [B1, V6, X4_2];
xn--15-gyd..xn--1zf13512buy41d; [B1, V6, A4_2]; ; # ٣15..᯳
+xn--15-gyd983x..xn--1zf13512buy41d; ٣15..᯳; [B1, C1, V6, X4_2];
xn--15-gyd983x..xn--1zf13512buy41d; [B1, C1, V6, A4_2]; ; # ٣15..᯳
+xn--cib675m.xn--1zf13512buy41d; ٣⒖.᯳; [B1, V6];
xn--cib675m.xn--1zf13512buy41d; ; ; # ٣⒖.᯳
+xn--cib152kwgd.xn--1zf13512buy41d; ٣⒖.᯳; [B1, C1, V6];
xn--cib152kwgd.xn--1zf13512buy41d; ; ; # ٣⒖.᯳
+᯳.-逋; ; [P1, V3, V5, V6]; xn--1zf.xn----483d46987byr50b; ; ; # ᯳.-逋
+xn--1zf.xn----483d46987byr50b; ᯳.-逋; [V3, V5, V6];
xn--1zf.xn----483d46987byr50b; ; ; # ᯳.-逋
+ݖ。ㅤς; ݖ.ㅤς; [C2, P1, V6]; xn--9ob.xn--3xa995lq2l; ; xn--9ob.xn--4xa574u;
[P1, V6] # ݖ.ς
+ݖ。ᅠς; ݖ.ᅠς; [C2, P1, V6]; xn--9ob.xn--3xa580ebol; ; xn--9ob.xn--4xa380e;
[P1, V6] # ݖ.ς
+ݖ。ᅠΣ; ݖ.ᅠσ; [C2, P1, V6]; xn--9ob.xn--4xa380ebol; ; xn--9ob.xn--4xa380e;
[P1, V6] # ݖ.σ
+ݖ。ᅠσ; ݖ.ᅠσ; [C2, P1, V6]; xn--9ob.xn--4xa380ebol; ; xn--9ob.xn--4xa380e;
[P1, V6] # ݖ.σ
+xn--9ob.xn--4xa380e; ݖ.ᅠσ; [V6]; xn--9ob.xn--4xa380e; ; ; # ݖ.σ
+xn--9ob.xn--4xa380ebol; ݖ.ᅠσ; [C2, V6]; xn--9ob.xn--4xa380ebol; ; ; # ݖ.σ
+xn--9ob.xn--3xa580ebol; ݖ.ᅠς; [C2, V6]; xn--9ob.xn--3xa580ebol; ; ; # ݖ.ς
+ݖ。ㅤΣ; ݖ.ㅤσ; [C2, P1, V6]; xn--9ob.xn--4xa795lq2l; ; xn--9ob.xn--4xa574u;
[P1, V6] # ݖ.σ
+ݖ。ㅤσ; ݖ.ㅤσ; [C2, P1, V6]; xn--9ob.xn--4xa795lq2l; ; xn--9ob.xn--4xa574u;
[P1, V6] # ݖ.σ
+xn--9ob.xn--4xa574u; ݖ.ㅤσ; [V6]; xn--9ob.xn--4xa574u; ; ; # ݖ.σ
+xn--9ob.xn--4xa795lq2l; ݖ.ㅤσ; [C2, V6]; xn--9ob.xn--4xa795lq2l; ; ; # ݖ.σ
+xn--9ob.xn--3xa995lq2l; ݖ.ㅤς; [C2, V6]; xn--9ob.xn--3xa995lq2l; ; ; # ݖ.ς
+ᡆႣ。̕; ᡆႣ.̕; [C2, P1, V6]; xn--bnd320b.xn--5sa649la993427a; ;
xn--bnd320b.xn--5sa98523p; [P1, V6] # ᡆႣ.̕
+ᡆႣ。̕; ᡆႣ.̕; [C2, P1, V6]; xn--bnd320b.xn--5sa649la993427a; ;
xn--bnd320b.xn--5sa98523p; [P1, V6] # ᡆႣ.̕
+ᡆⴃ。̕; ᡆⴃ.̕; [C2, P1, V6]; xn--57e237h.xn--5sa649la993427a; ;
xn--57e237h.xn--5sa98523p; [P1, V6] # ᡆⴃ.̕
+xn--57e237h.xn--5sa98523p; ᡆⴃ.̕; [V6]; xn--57e237h.xn--5sa98523p; ; ; # ᡆⴃ.̕
+xn--57e237h.xn--5sa649la993427a; ᡆⴃ.̕; [C2, V6];
xn--57e237h.xn--5sa649la993427a; ; ; # ᡆⴃ.̕
+xn--bnd320b.xn--5sa98523p; ᡆႣ.̕; [V6]; xn--bnd320b.xn--5sa98523p; ; ; # ᡆႣ.̕
+xn--bnd320b.xn--5sa649la993427a; ᡆႣ.̕; [C2, V6];
xn--bnd320b.xn--5sa649la993427a; ; ; # ᡆႣ.̕
+ᡆⴃ。̕; ᡆⴃ.̕; [C2, P1, V6]; xn--57e237h.xn--5sa649la993427a; ;
xn--57e237h.xn--5sa98523p; [P1, V6] # ᡆⴃ.̕
+㭄ࡏ𑚵.ς𐮮; 㭄ࡏ𑚵.ς𐮮; [B5, B6, C1, C2]; xn--ewb962jfitku4r.xn--3xa895lda6932v;
; xn--ewb302xhu1l.xn--4xa0426k; [B5, B6] # 㭄ࡏ𑚵.ς𐮮
+㭄ࡏ𑚵.ς𐮮; ; [B5, B6, C1, C2]; xn--ewb962jfitku4r.xn--3xa895lda6932v; ;
xn--ewb302xhu1l.xn--4xa0426k; [B5, B6] # 㭄ࡏ𑚵.ς𐮮
+㭄ࡏ𑚵.Σ𐮮; 㭄ࡏ𑚵.σ𐮮; [B5, B6, C1, C2]; xn--ewb962jfitku4r.xn--4xa695lda6932v;
; xn--ewb302xhu1l.xn--4xa0426k; [B5, B6] # 㭄ࡏ𑚵.σ𐮮
+㭄ࡏ𑚵.σ𐮮; ; [B5, B6, C1, C2]; xn--ewb962jfitku4r.xn--4xa695lda6932v; ;
xn--ewb302xhu1l.xn--4xa0426k; [B5, B6] # 㭄ࡏ𑚵.σ𐮮
+xn--ewb302xhu1l.xn--4xa0426k; 㭄ࡏ𑚵.σ𐮮; [B5, B6]; xn--ewb302xhu1l.xn--4xa0426k;
; ; # 㭄ࡏ𑚵.σ𐮮
+xn--ewb962jfitku4r.xn--4xa695lda6932v; 㭄ࡏ𑚵.σ𐮮; [B5, B6, C1, C2];
xn--ewb962jfitku4r.xn--4xa695lda6932v; ; ; # 㭄ࡏ𑚵.σ𐮮
+xn--ewb962jfitku4r.xn--3xa895lda6932v; 㭄ࡏ𑚵.ς𐮮; [B5, B6, C1, C2];
xn--ewb962jfitku4r.xn--3xa895lda6932v; ; ; # 㭄ࡏ𑚵.ς𐮮
+㭄ࡏ𑚵.Σ𐮮; 㭄ࡏ𑚵.σ𐮮; [B5, B6, C1, C2]; xn--ewb962jfitku4r.xn--4xa695lda6932v;
; xn--ewb302xhu1l.xn--4xa0426k; [B5, B6] # 㭄ࡏ𑚵.σ𐮮
+㭄ࡏ𑚵.σ𐮮; 㭄ࡏ𑚵.σ𐮮; [B5, B6, C1, C2]; xn--ewb962jfitku4r.xn--4xa695lda6932v;
; xn--ewb302xhu1l.xn--4xa0426k; [B5, B6] # 㭄ࡏ𑚵.σ𐮮
+឵。ꡀ🄋; ឵.ꡀ🄋; [B1, B2, B3, B6, P1, V5, V6]; xn--03e.xn--8b9ar252dngd; ; ; #
.ꡀ🄋
+xn--03e.xn--8b9ar252dngd; ឵.ꡀ🄋; [B1, B2, B3, B6, V5, V6];
xn--03e.xn--8b9ar252dngd; ; ; # .ꡀ🄋
+暑.⾑٨; 暑.襾٨; [B5, B6, P1, V6]; xn--tlvq3513e.xn--hib9228d; ; ; # 暑.襾٨
+暑.襾٨; ; [B5, B6, P1, V6]; xn--tlvq3513e.xn--hib9228d; ; ; # 暑.襾٨
+xn--tlvq3513e.xn--hib9228d; 暑.襾٨; [B5, B6, V6]; xn--tlvq3513e.xn--hib9228d; ;
; # 暑.襾٨
+󠄚≯ꡢ。᷿; ≯ꡢ.᷿; [B1, P1, V6]; xn--hdh7783c.xn--9xb680i; ; ; # ≯ꡢ.᷿
+󠄚≯ꡢ。᷿; ≯ꡢ.᷿; [B1, P1, V6]; xn--hdh7783c.xn--9xb680i; ; ; # ≯ꡢ.᷿
+xn--hdh7783c.xn--9xb680i; ≯ꡢ.᷿; [B1, V6]; xn--hdh7783c.xn--9xb680i; ; ; #
≯ꡢ.᷿
+ﷃ𮁱୍𐨿.Ⴗ; كمم𮁱୍𐨿.Ⴗ; [B2, B3, P1, V6]; xn--fhbea662czx68a2tju.xn--vnd55511o; ;
; # كمم𮁱୍𐨿.Ⴗ
+كمم𮁱୍𐨿.Ⴗ; ; [B2, B3, P1, V6]; xn--fhbea662czx68a2tju.xn--vnd55511o; ; ; #
كمم𮁱୍𐨿.Ⴗ
+كمم𮁱୍𐨿.ⴗ; ; [B2, B3, P1, V6]; xn--fhbea662czx68a2tju.xn--fljz2846h; ; ; #
كمم𮁱୍𐨿.ⴗ
+xn--fhbea662czx68a2tju.xn--fljz2846h; كمم𮁱୍𐨿.ⴗ; [B2, B3, V6];
xn--fhbea662czx68a2tju.xn--fljz2846h; ; ; # كمم𮁱୍𐨿.ⴗ
+xn--fhbea662czx68a2tju.xn--vnd55511o; كمم𮁱୍𐨿.Ⴗ; [B2, B3, V6];
xn--fhbea662czx68a2tju.xn--vnd55511o; ; ; # كمم𮁱୍𐨿.Ⴗ
+ﷃ𮁱୍𐨿.ⴗ; كمم𮁱୍𐨿.ⴗ; [B2, B3, P1, V6]; xn--fhbea662czx68a2tju.xn--fljz2846h; ;
; # كمم𮁱୍𐨿.ⴗ
+𞀨。᭄; 𞀨.᭄; [P1, V5, V6]; xn--mi4h.xn--1uf6843smg20c; ; ; # 𞀨.᭄
+𞀨。᭄; 𞀨.᭄; [P1, V5, V6]; xn--mi4h.xn--1uf6843smg20c; ; ; # 𞀨.᭄
+xn--mi4h.xn--1uf6843smg20c; 𞀨.᭄; [V5, V6]; xn--mi4h.xn--1uf6843smg20c; ; ;
# 𞀨.᭄
+.𐺰ᡟ; .𐺰ᡟ; [B1, B2, B3, C1, P1, V6]; xn--0ug18531l.xn--v8e340bp21t; ;
xn--q046e.xn--v8e7227j; [B1, B2, B3, P1, V6] # .𐺰ᡟ
+.𐺰ᡟ; ; [B1, B2, B3, C1, P1, V6]; xn--0ug18531l.xn--v8e340bp21t; ;
xn--q046e.xn--v8e7227j; [B1, B2, B3, P1, V6] # .𐺰ᡟ
+xn--q046e.xn--v8e7227j; .𐺰ᡟ; [B1, B2, B3, V6]; xn--q046e.xn--v8e7227j; ; ; #
.𐺰ᡟ
+xn--0ug18531l.xn--v8e340bp21t; .𐺰ᡟ; [B1, B2, B3, C1, V6];
xn--0ug18531l.xn--v8e340bp21t; ; ; # .𐺰ᡟ
+ᢛß.ጧ; ; [P1, V6]; xn--zca562jc642x.xn--p5d; ; xn--ss-7dp66033t.xn--p5d; #
ᢛß.ጧ
+ᢛSS.ጧ; ᢛss.ጧ; [P1, V6]; xn--ss-7dp66033t.xn--p5d; ; ; # ᢛss.ጧ
+ᢛss.ጧ; ; [P1, V6]; xn--ss-7dp66033t.xn--p5d; ; ; # ᢛss.ጧ
+ᢛSs.ጧ; ᢛss.ጧ; [P1, V6]; xn--ss-7dp66033t.xn--p5d; ; ; # ᢛss.ጧ
+xn--ss-7dp66033t.xn--p5d; ᢛss.ጧ; [V6]; xn--ss-7dp66033t.xn--p5d; ; ; # ᢛss.ጧ
+xn--zca562jc642x.xn--p5d; ᢛß.ጧ; [V6]; xn--zca562jc642x.xn--p5d; ; ; # ᢛß.ጧ
+⮒.; ; [C1, P1, V6]; xn--0ugx66b.xn--0ugz2871c; ; xn--b9i.xn--5p9y; [P1, V6]
# ⮒.
+xn--b9i.xn--5p9y; ⮒.; [V6]; xn--b9i.xn--5p9y; ; ; # ⮒.
+xn--0ugx66b.xn--0ugz2871c; ⮒.; [C1, V6]; xn--0ugx66b.xn--0ugz2871c; ; ; #
⮒.
+𞤂𐹯。Ⴜ; 𞤤𐹯.Ⴜ; [B2, P1, V6]; xn--no0dr648a51o3b.xn--0nd; ; ; # 𞤤𐹯.Ⴜ
+𞤤𐹯。ⴜ; 𞤤𐹯.ⴜ; [B2, P1, V6]; xn--no0dr648a51o3b.xn--klj; ; ; # 𞤤𐹯.ⴜ
+xn--no0dr648a51o3b.xn--klj; 𞤤𐹯.ⴜ; [B2, V6]; xn--no0dr648a51o3b.xn--klj; ; ;
# 𞤤𐹯.ⴜ
+xn--no0dr648a51o3b.xn--0nd; 𞤤𐹯.Ⴜ; [B2, V6]; xn--no0dr648a51o3b.xn--0nd; ; ;
# 𞤤𐹯.Ⴜ
+𞤂𐹯。ⴜ; 𞤤𐹯.ⴜ; [B2, P1, V6]; xn--no0dr648a51o3b.xn--klj; ; ; # 𞤤𐹯.ⴜ
+𐹵⮣𑄰。ﲷ; 𐹵⮣𑄰.ضم; [B1, B5, B6, C1, P1, V6];
xn--0ug586bcj8p7jc.xn--1gb4a66004i; ; xn--s9i5458e7yb.xn--1gb4a66004i; [B1, B5,
B6, P1, V6] # 𐹵⮣𑄰.ضم
+𐹵⮣𑄰。ضم; 𐹵⮣𑄰.ضم; [B1, B5, B6, C1, P1, V6];
xn--0ug586bcj8p7jc.xn--1gb4a66004i; ; xn--s9i5458e7yb.xn--1gb4a66004i; [B1, B5,
B6, P1, V6] # 𐹵⮣𑄰.ضم
+xn--s9i5458e7yb.xn--1gb4a66004i; 𐹵⮣𑄰.ضم; [B1, B5, B6, V6];
xn--s9i5458e7yb.xn--1gb4a66004i; ; ; # 𐹵⮣𑄰.ضم
+xn--0ug586bcj8p7jc.xn--1gb4a66004i; 𐹵⮣𑄰.ضم; [B1, B5, B6, C1, V6];
xn--0ug586bcj8p7jc.xn--1gb4a66004i; ; ; # 𐹵⮣𑄰.ضم
+Ⴒ。デß𞤵్; Ⴒ.デß𞤵్; [B5, B6, P1, V6]; xn--qnd.xn--zca669cmr3a0f28a; ;
xn--qnd.xn--ss-9nh3648ahh20b; # Ⴒ.デß𞤵్
+Ⴒ。デß𞤵్; Ⴒ.デß𞤵్; [B5, B6, P1, V6]; xn--qnd.xn--zca669cmr3a0f28a; ;
xn--qnd.xn--ss-9nh3648ahh20b; # Ⴒ.デß𞤵్
+ⴒ。デß𞤵్; ⴒ.デß𞤵్; [B5, B6]; xn--9kj.xn--zca669cmr3a0f28a; ;
xn--9kj.xn--ss-9nh3648ahh20b; # ⴒ.デß𞤵్
+ⴒ。デß𞤵్; ⴒ.デß𞤵్; [B5, B6]; xn--9kj.xn--zca669cmr3a0f28a; ;
xn--9kj.xn--ss-9nh3648ahh20b; # ⴒ.デß𞤵్
+Ⴒ。デSS𞤓్; Ⴒ.デss𞤵్; [B5, B6, P1, V6]; xn--qnd.xn--ss-9nh3648ahh20b; ; ; #
Ⴒ.デss𞤵్
+Ⴒ。デSS𞤓్; Ⴒ.デss𞤵్; [B5, B6, P1, V6]; xn--qnd.xn--ss-9nh3648ahh20b; ; ; #
Ⴒ.デss𞤵్
+ⴒ。デss𞤵్; ⴒ.デss𞤵్; [B5, B6]; xn--9kj.xn--ss-9nh3648ahh20b; ; ; # ⴒ.デss𞤵్
+ⴒ。デss𞤵్; ⴒ.デss𞤵్; [B5, B6]; xn--9kj.xn--ss-9nh3648ahh20b; ; ; # ⴒ.デss𞤵్
+Ⴒ。デSs𞤵్; Ⴒ.デss𞤵్; [B5, B6, P1, V6]; xn--qnd.xn--ss-9nh3648ahh20b; ; ; #
Ⴒ.デss𞤵్
+Ⴒ。デSs𞤵్; Ⴒ.デss𞤵్; [B5, B6, P1, V6]; xn--qnd.xn--ss-9nh3648ahh20b; ; ; #
Ⴒ.デss𞤵్
+xn--qnd.xn--ss-9nh3648ahh20b; Ⴒ.デss𞤵్; [B5, B6, V6];
xn--qnd.xn--ss-9nh3648ahh20b; ; ; # Ⴒ.デss𞤵్
+xn--9kj.xn--ss-9nh3648ahh20b; ⴒ.デss𞤵్; [B5, B6]; xn--9kj.xn--ss-9nh3648ahh20b;
; ; # ⴒ.デss𞤵్
+xn--9kj.xn--zca669cmr3a0f28a; ⴒ.デß𞤵్; [B5, B6]; xn--9kj.xn--zca669cmr3a0f28a;
; ; # ⴒ.デß𞤵్
+xn--qnd.xn--zca669cmr3a0f28a; Ⴒ.デß𞤵్; [B5, B6, V6];
xn--qnd.xn--zca669cmr3a0f28a; ; ; # Ⴒ.デß𞤵్
+Ⴒ。デSS𞤵్; Ⴒ.デss𞤵్; [B5, B6, P1, V6]; xn--qnd.xn--ss-9nh3648ahh20b; ; ; #
Ⴒ.デss𞤵్
+Ⴒ。デSS𞤵్; Ⴒ.デss𞤵్; [B5, B6, P1, V6]; xn--qnd.xn--ss-9nh3648ahh20b; ; ; #
Ⴒ.デss𞤵్
+𑁿്.7-ߒ; 𑁿്.7-ߒ; [B1, B3, B6, V5]; xn--wxc1283k.xn--7--yue; ; ; # 𑁿്.7-ߒ
+𑁿്.7-ߒ; ; [B1, B3, B6, V5]; xn--wxc1283k.xn--7--yue; ; ; # 𑁿്.7-ߒ
+xn--wxc1283k.xn--7--yue; 𑁿്.7-ߒ; [B1, B3, B6, V5]; xn--wxc1283k.xn--7--yue; ;
; # 𑁿്.7-ߒ
+≯𑜫.᜴𑍬ᢧ; ; [P1, V5, V6]; xn--hdhx157g68o0g.xn--c0e65eu616c34o7a; ; ; # ≯𑜫.᜴𑍬ᢧ
+≯𑜫.᜴𑍬ᢧ; ≯𑜫.᜴𑍬ᢧ; [P1, V5, V6]; xn--hdhx157g68o0g.xn--c0e65eu616c34o7a; ; ;
# ≯𑜫.᜴𑍬ᢧ
+xn--hdhx157g68o0g.xn--c0e65eu616c34o7a; ≯𑜫.᜴𑍬ᢧ; [V5, V6];
xn--hdhx157g68o0g.xn--c0e65eu616c34o7a; ; ; # ≯𑜫.᜴𑍬ᢧ
+ᷛႷ쏔。ށ; ᷛႷ쏔.ށ; [B1, P1, V5, V6]; xn--vnd148d733ky6n9e.xn--iqb; ; ; # ᷛႷ쏔.ށ
+ᷛႷ쏔。ށ; ᷛႷ쏔.ށ; [B1, P1, V5, V6]; xn--vnd148d733ky6n9e.xn--iqb; ; ; # ᷛႷ쏔.ށ
+ᷛⴗ쏔。ށ; ᷛⴗ쏔.ށ; [B1, P1, V5, V6]; xn--zegy26dw47iy6w2f.xn--iqb; ; ; # ᷛⴗ쏔.ށ
+ᷛⴗ쏔。ށ; ᷛⴗ쏔.ށ; [B1, P1, V5, V6]; xn--zegy26dw47iy6w2f.xn--iqb; ; ; # ᷛⴗ쏔.ށ
+xn--zegy26dw47iy6w2f.xn--iqb; ᷛⴗ쏔.ށ; [B1, V5, V6];
xn--zegy26dw47iy6w2f.xn--iqb; ; ; # ᷛⴗ쏔.ށ
+xn--vnd148d733ky6n9e.xn--iqb; ᷛႷ쏔.ށ; [B1, V5, V6];
xn--vnd148d733ky6n9e.xn--iqb; ; ; # ᷛႷ쏔.ށ
+ß。𐋳Ⴌྸ; ß.𐋳Ⴌྸ; [P1, V6]; xn--zca.xn--lgd10cu829c; ; ss.xn--lgd10cu829c; # ß.𐋳Ⴌྸ
+ß。𐋳Ⴌྸ; ß.𐋳Ⴌྸ; [P1, V6]; xn--zca.xn--lgd10cu829c; ; ss.xn--lgd10cu829c; # ß.𐋳Ⴌྸ
+ß。𐋳ⴌྸ; ß.𐋳ⴌྸ; ; xn--zca.xn--lgd921mvv0m; ; ss.xn--lgd921mvv0m; # ß.𐋳ⴌྸ
+SS。𐋳Ⴌྸ; ss.𐋳Ⴌྸ; [P1, V6]; ss.xn--lgd10cu829c; ; ; # ss.𐋳Ⴌྸ
+ss。𐋳ⴌྸ; ss.𐋳ⴌྸ; ; ss.xn--lgd921mvv0m; ; ; # ss.𐋳ⴌྸ
+Ss。𐋳Ⴌྸ; ss.𐋳Ⴌྸ; [P1, V6]; ss.xn--lgd10cu829c; ; ; # ss.𐋳Ⴌྸ
+ss.xn--lgd10cu829c; ss.𐋳Ⴌྸ; [V6]; ss.xn--lgd10cu829c; ; ; # ss.𐋳Ⴌྸ
+ss.xn--lgd921mvv0m; ss.𐋳ⴌྸ; ; ss.xn--lgd921mvv0m; ; ; # ss.𐋳ⴌྸ
+ss.𐋳ⴌྸ; ; ; ss.xn--lgd921mvv0m; ; ; # ss.𐋳ⴌྸ
+SS.𐋳Ⴌྸ; ss.𐋳Ⴌྸ; [P1, V6]; ss.xn--lgd10cu829c; ; ; # ss.𐋳Ⴌྸ
+Ss.𐋳Ⴌྸ; ss.𐋳Ⴌྸ; [P1, V6]; ss.xn--lgd10cu829c; ; ; # ss.𐋳Ⴌྸ
+xn--zca.xn--lgd921mvv0m; ß.𐋳ⴌྸ; ; xn--zca.xn--lgd921mvv0m; ; ; # ß.𐋳ⴌྸ
+ß.𐋳ⴌྸ; ; ; xn--zca.xn--lgd921mvv0m; ; ss.xn--lgd921mvv0m; # ß.𐋳ⴌྸ
+xn--zca.xn--lgd10cu829c; ß.𐋳Ⴌྸ; [V6]; xn--zca.xn--lgd10cu829c; ; ; # ß.𐋳Ⴌྸ
+ß。𐋳ⴌྸ; ß.𐋳ⴌྸ; ; xn--zca.xn--lgd921mvv0m; ; ss.xn--lgd921mvv0m; # ß.𐋳ⴌྸ
+SS。𐋳Ⴌྸ; ss.𐋳Ⴌྸ; [P1, V6]; ss.xn--lgd10cu829c; ; ; # ss.𐋳Ⴌྸ
+ss。𐋳ⴌྸ; ss.𐋳ⴌྸ; ; ss.xn--lgd921mvv0m; ; ; # ss.𐋳ⴌྸ
+Ss。𐋳Ⴌྸ; ss.𐋳Ⴌྸ; [P1, V6]; ss.xn--lgd10cu829c; ; ; # ss.𐋳Ⴌྸ
+-ڞ.⾝্; -ڞ.身্; [B1, C1, P1, V3, V6]; xn----stc7013r.xn--b7b305imj2f; ;
xn----stc7013r.xn--b7b1419d; [B1, P1, V3, V6] # -ڞ.身্
+-ڞ.身্; ; [B1, C1, P1, V3, V6]; xn----stc7013r.xn--b7b305imj2f; ;
xn----stc7013r.xn--b7b1419d; [B1, P1, V3, V6] # -ڞ.身্
+xn----stc7013r.xn--b7b1419d; -ڞ.身্; [B1, V3, V6];
xn----stc7013r.xn--b7b1419d; ; ; # -ڞ.身্
+xn----stc7013r.xn--b7b305imj2f; -ڞ.身্; [B1, C1, V3, V6];
xn----stc7013r.xn--b7b305imj2f; ; ; # -ڞ.身্
+😮ݤ𑈵𞀖.💅; 😮ݤ𑈵𞀖.💅; [B1, C2]; xn--opb4277kuc7elqsa.xn--1ug5265p; ;
xn--opb4277kuc7elqsa.xn--kr8h; [B1] # 😮ݤ𑈵𞀖.💅
+😮ݤ𑈵𞀖.💅; ; [B1, C2]; xn--opb4277kuc7elqsa.xn--1ug5265p; ;
xn--opb4277kuc7elqsa.xn--kr8h; [B1] # 😮ݤ𑈵𞀖.💅
+xn--opb4277kuc7elqsa.xn--kr8h; 😮ݤ𑈵𞀖.💅; [B1]; xn--opb4277kuc7elqsa.xn--kr8h; ;
; # 😮ݤ𑈵𞀖.💅
+xn--opb4277kuc7elqsa.xn--1ug5265p; 😮ݤ𑈵𞀖.💅; [B1, C2];
xn--opb4277kuc7elqsa.xn--1ug5265p; ; ; # 😮ݤ𑈵𞀖.💅
+ࣲ꙳ܒ.ᢏ; ; [B1, B6, C1, C2, P1, V5, V6];
xn--cnb37g904be26j.xn--89e849ax9363a; ; xn--cnb37gdy00a.xn--89e02253p; [B1, B6,
P1, V5, V6] # ࣲ꙳ܒ.ᢏ
+xn--cnb37gdy00a.xn--89e02253p; ࣲ꙳ܒ.ᢏ; [B1, B6, V5, V6];
xn--cnb37gdy00a.xn--89e02253p; ; ; # ࣲ꙳ܒ.ᢏ
+xn--cnb37g904be26j.xn--89e849ax9363a; ࣲ꙳ܒ.ᢏ; [B1, B6, C1, C2, V5, V6];
xn--cnb37g904be26j.xn--89e849ax9363a; ; ; # ࣲ꙳ܒ.ᢏ
+Ⴑ.ڿᠲ; Ⴑ.ڿᠲ; [B2, B3, P1, V6]; xn--pnd.xn--ykb840gd555a; ; ; # Ⴑ.ڿᠲ
+Ⴑ.ڿᠲ; ; [B2, B3, P1, V6]; xn--pnd.xn--ykb840gd555a; ; ; # Ⴑ.ڿᠲ
+ⴑ.ڿᠲ; ; [B2, B3, P1, V6]; xn--8kj.xn--ykb840gd555a; ; ; # ⴑ.ڿᠲ
+xn--8kj.xn--ykb840gd555a; ⴑ.ڿᠲ; [B2, B3, V6]; xn--8kj.xn--ykb840gd555a; ; ;
# ⴑ.ڿᠲ
+xn--pnd.xn--ykb840gd555a; Ⴑ.ڿᠲ; [B2, B3, V6]; xn--pnd.xn--ykb840gd555a; ; ;
# Ⴑ.ڿᠲ
+ⴑ.ڿᠲ; ⴑ.ڿᠲ; [B2, B3, P1, V6]; xn--8kj.xn--ykb840gd555a; ; ; # ⴑ.ڿᠲ
+ᩚ్。𝟵; ᩚ్.9; [P1, V5, V6]; xn--lqc703ebm93a.xn--9-000p; ; ; # ᩚ్.9
+ᩚ్。9; ᩚ్.9; [P1, V5, V6]; xn--lqc703ebm93a.xn--9-000p; ; ; # ᩚ్.9
+xn--lqc703ebm93a.xn--9-000p; ᩚ్.9; [V5, V6]; xn--lqc703ebm93a.xn--9-000p; ;
; # ᩚ్.9
+ڠ𝟗。Ⴣ꒘ﳐ; ڠ9.Ⴣ꒘مخ; [B1, B5, C1, P1, V6];
xn--9-vtc736qts91g.xn--tgb9bz61cfn8mw3t2c; ;
xn--9-vtc42319e.xn--tgb9bz61cfn8mw3t2c; [B2, B5, P1, V6] # ڠ9.Ⴣ꒘مخ
+ڠ9。Ⴣ꒘مخ; ڠ9.Ⴣ꒘مخ; [B1, B5, C1, P1, V6];
xn--9-vtc736qts91g.xn--tgb9bz61cfn8mw3t2c; ;
xn--9-vtc42319e.xn--tgb9bz61cfn8mw3t2c; [B2, B5, P1, V6] # ڠ9.Ⴣ꒘مخ
+ڠ9。ⴣ꒘مخ; ڠ9.ⴣ꒘مخ; [B1, B5, C1, P1, V6];
xn--9-vtc736qts91g.xn--tgb9bz87p833hw316c; ;
xn--9-vtc42319e.xn--tgb9bz87p833hw316c; [B2, B5, P1, V6] # ڠ9.ⴣ꒘مخ
+xn--9-vtc42319e.xn--tgb9bz87p833hw316c; ڠ9.ⴣ꒘مخ; [B2, B5, V6];
xn--9-vtc42319e.xn--tgb9bz87p833hw316c; ; ; # ڠ9.ⴣ꒘مخ
+xn--9-vtc736qts91g.xn--tgb9bz87p833hw316c; ڠ9.ⴣ꒘مخ; [B1, B5, C1, V6];
xn--9-vtc736qts91g.xn--tgb9bz87p833hw316c; ; ; # ڠ9.ⴣ꒘مخ
+xn--9-vtc42319e.xn--tgb9bz61cfn8mw3t2c; ڠ9.Ⴣ꒘مخ; [B2, B5, V6];
xn--9-vtc42319e.xn--tgb9bz61cfn8mw3t2c; ; ; # ڠ9.Ⴣ꒘مخ
+xn--9-vtc736qts91g.xn--tgb9bz61cfn8mw3t2c; ڠ9.Ⴣ꒘مخ; [B1, B5, C1, V6];
xn--9-vtc736qts91g.xn--tgb9bz61cfn8mw3t2c; ; ; # ڠ9.Ⴣ꒘مخ
+ڠ𝟗。ⴣ꒘ﳐ; ڠ9.ⴣ꒘مخ; [B1, B5, C1, P1, V6];
xn--9-vtc736qts91g.xn--tgb9bz87p833hw316c; ;
xn--9-vtc42319e.xn--tgb9bz87p833hw316c; [B2, B5, P1, V6] # ڠ9.ⴣ꒘مخ
+ᡖ。̟ஂ-; ᡖ.̟ஂ-; [P1, V3, V5, V6]; xn--m8e.xn----mdb555dkk71m; ; ; # ᡖ.̟ஂ-
+ᡖ。̟ஂ-; ᡖ.̟ஂ-; [P1, V3, V5, V6]; xn--m8e.xn----mdb555dkk71m; ; ; # ᡖ.̟ஂ-
+xn--m8e.xn----mdb555dkk71m; ᡖ.̟ஂ-; [V3, V5, V6]; xn--m8e.xn----mdb555dkk71m;
; ; # ᡖ.̟ஂ-
+𞠠浘。絧𞀀; 𞠠浘.絧𞀀; [B2, B3]; xn--e0wp491f.xn--ud0a3573e; ; ; # 𞠠浘.絧𞀀
+xn--e0wp491f.xn--ud0a3573e; 𞠠浘.絧𞀀; [B2, B3]; xn--e0wp491f.xn--ud0a3573e; ; ;
# 𞠠浘.絧𞀀
+֖Ⴋ.𝟳≯︒︊; ֖Ⴋ.7≯︒; [P1, V5, V6]; xn--hcb887c.xn--7-pgoy530h; ; ; # ֖Ⴋ.7≯︒
+֖Ⴋ.𝟳≯︒︊; ֖Ⴋ.7≯︒; [P1, V5, V6]; xn--hcb887c.xn--7-pgoy530h; ; ; # ֖Ⴋ.7≯︒
+֖Ⴋ.7≯。︊; ֖Ⴋ.7≯.; [P1, V5, V6]; xn--hcb887c.xn--7-pgo.; ; ; # ֖Ⴋ.7≯.
+֖Ⴋ.7≯。︊; ֖Ⴋ.7≯.; [P1, V5, V6]; xn--hcb887c.xn--7-pgo.; ; ; # ֖Ⴋ.7≯.
+֖ⴋ.7≯。︊; ֖ⴋ.7≯.; [P1, V5, V6]; xn--hcb613r.xn--7-pgo.; ; ; # ֖ⴋ.7≯.
+֖ⴋ.7≯。︊; ֖ⴋ.7≯.; [P1, V5, V6]; xn--hcb613r.xn--7-pgo.; ; ; # ֖ⴋ.7≯.
+xn--hcb613r.xn--7-pgo.; ֖ⴋ.7≯.; [V5, V6]; xn--hcb613r.xn--7-pgo.; ; ; # ֖ⴋ.7≯.
+xn--hcb887c.xn--7-pgo.; ֖Ⴋ.7≯.; [V5, V6]; xn--hcb887c.xn--7-pgo.; ; ; # ֖Ⴋ.7≯.
+֖ⴋ.𝟳≯︒︊; ֖ⴋ.7≯︒; [P1, V5, V6]; xn--hcb613r.xn--7-pgoy530h; ; ; # ֖ⴋ.7≯︒
+֖ⴋ.𝟳≯︒︊; ֖ⴋ.7≯︒; [P1, V5, V6]; xn--hcb613r.xn--7-pgoy530h; ; ; # ֖ⴋ.7≯︒
+xn--hcb613r.xn--7-pgoy530h; ֖ⴋ.7≯︒; [V5, V6]; xn--hcb613r.xn--7-pgoy530h; ; ;
# ֖ⴋ.7≯︒
+xn--hcb887c.xn--7-pgoy530h; ֖Ⴋ.7≯︒; [V5, V6]; xn--hcb887c.xn--7-pgoy530h; ; ;
# ֖Ⴋ.7≯︒
+F𑓂。︒ݾ𐹢; f𑓂.︒ݾ𐹢; [B1, C2, P1, V6]; xn--f-tgn9761i.xn--fqb1637j8hky9452a; ;
xn--f-kq9i.xn--fqb1637j8hky9452a; [B1, P1, V6] # f𑓂.︒ݾ𐹢
+F𑓂。。ݾ𐹢; f𑓂..ݾ𐹢; [B1, C2, P1, V6]; xn--f-tgn9761i.xn--7656e.xn--fqb4175k; ;
xn--f-kq9i.xn--7656e.xn--fqb4175k; [B1, P1, V6] # f𑓂..ݾ𐹢
+f𑓂。。ݾ𐹢; f𑓂..ݾ𐹢; [B1, C2, P1, V6]; xn--f-tgn9761i.xn--7656e.xn--fqb4175k; ;
xn--f-kq9i.xn--7656e.xn--fqb4175k; [B1, P1, V6] # f𑓂..ݾ𐹢
+xn--f-kq9i.xn--7656e.xn--fqb4175k; f𑓂..ݾ𐹢; [B1, V6];
xn--f-kq9i.xn--7656e.xn--fqb4175k; ; ; # f𑓂..ݾ𐹢
+xn--f-tgn9761i.xn--7656e.xn--fqb4175k; f𑓂..ݾ𐹢; [B1, C2, V6];
xn--f-tgn9761i.xn--7656e.xn--fqb4175k; ; ; # f𑓂..ݾ𐹢
+f𑓂。︒ݾ𐹢; f𑓂.︒ݾ𐹢; [B1, C2, P1, V6]; xn--f-tgn9761i.xn--fqb1637j8hky9452a; ;
xn--f-kq9i.xn--fqb1637j8hky9452a; [B1, P1, V6] # f𑓂.︒ݾ𐹢
+xn--f-kq9i.xn--fqb1637j8hky9452a; f𑓂.︒ݾ𐹢; [B1, V6];
xn--f-kq9i.xn--fqb1637j8hky9452a; ; ; # f𑓂.︒ݾ𐹢
+xn--f-tgn9761i.xn--fqb1637j8hky9452a; f𑓂.︒ݾ𐹢; [B1, C2, V6];
xn--f-tgn9761i.xn--fqb1637j8hky9452a; ; ; # f𑓂.︒ݾ𐹢
+ࡅ🄇𐼗︒。𐹻𑜫; ࡅ🄇𐼗︒.𐹻𑜫; [B1, B3, P1, V6]; xn--3vb4696jpxkjh7s.xn--zo0di2m; ; ; #
ࡅ🄇𐼗︒.𐹻𑜫
+ࡅ6,𐼗。。𐹻𑜫; ࡅ6,𐼗..𐹻𑜫; [B1, P1, V6, X4_2]; xn--6,-r4e4420y..xn--zo0di2m; [B1, P1,
V6, A4_2]; ; # ࡅ6,𐼗..𐹻𑜫
+xn--6,-r4e4420y..xn--zo0di2m; ࡅ6,𐼗..𐹻𑜫; [B1, P1, V6, X4_2];
xn--6,-r4e4420y..xn--zo0di2m; [B1, P1, V6, A4_2]; ; # ࡅ6,𐼗..𐹻𑜫
+xn--3vb4696jpxkjh7s.xn--zo0di2m; ࡅ🄇𐼗︒.𐹻𑜫; [B1, B3, V6];
xn--3vb4696jpxkjh7s.xn--zo0di2m; ; ; # ࡅ🄇𐼗︒.𐹻𑜫
+.᷀𑈱𐦭; ; [B1, P1, V5, V6]; xn--jn0d.xn--7dg0871h3lf; ; ; # .᷀𑈱𐦭
+xn--jn0d.xn--7dg0871h3lf; .᷀𑈱𐦭; [B1, V5, V6]; xn--jn0d.xn--7dg0871h3lf; ; ;
# .᷀𑈱𐦭
+Ⴂ䠺。𞤃ړ; Ⴂ䠺.𞤥ړ; [B2, P1, V6]; xn--9md875z.xn--pjb9818vg4xno967d; ; ; # Ⴂ䠺.𞤥ړ
+ⴂ䠺。𞤥ړ; ⴂ䠺.𞤥ړ; [B2, P1, V6]; xn--tkj638f.xn--pjb9818vg4xno967d; ; ; # ⴂ䠺.𞤥ړ
+xn--tkj638f.xn--pjb9818vg4xno967d; ⴂ䠺.𞤥ړ; [B2, V6];
xn--tkj638f.xn--pjb9818vg4xno967d; ; ; # ⴂ䠺.𞤥ړ
+xn--9md875z.xn--pjb9818vg4xno967d; Ⴂ䠺.𞤥ړ; [B2, V6];
xn--9md875z.xn--pjb9818vg4xno967d; ; ; # Ⴂ䠺.𞤥ړ
+ⴂ䠺。𞤃ړ; ⴂ䠺.𞤥ړ; [B2, P1, V6]; xn--tkj638f.xn--pjb9818vg4xno967d; ; ; # ⴂ䠺.𞤥ړ
+🄇伐︒.꣄; ; [P1, V6]; xn--woqs083bel0g.xn--0f9ao925c; ; ; # 🄇伐︒.꣄
+6,伐。.꣄; 6,伐..꣄; [P1, V6, X4_2]; xn--6,-7i3c..xn--0f9ao925c; [P1, V6, A4_2];
; # 6,伐..꣄
+xn--6,-7i3c..xn--0f9ao925c; 6,伐..꣄; [P1, V6, X4_2];
xn--6,-7i3c..xn--0f9ao925c; [P1, V6, A4_2]; ; # 6,伐..꣄
+xn--woqs083bel0g.xn--0f9ao925c; 🄇伐︒.꣄; [V6]; xn--woqs083bel0g.xn--0f9ao925c;
; ; # 🄇伐︒.꣄
+𐹠꯭。𐫓Ⴚ𑂹; 𐹠꯭.𐫓Ⴚ𑂹; [B1, C2, P1, V6];
xn--1ugz126coy7bdbm.xn--ynd959evs1pv6e; ; xn--429az70n29i.xn--ynd3619jqyd; [B1,
B2, B3, P1, V6] # 𐹠꯭.𐫓Ⴚ𑂹
+𐹠꯭。𐫓ⴚ𑂹; 𐹠꯭.𐫓ⴚ𑂹; [B1, C2, P1, V6];
xn--1ugz126coy7bdbm.xn--1ug062chv7ov6e; ; xn--429az70n29i.xn--ilj7702eqyd; [B1,
B2, B3, P1, V6] # 𐹠꯭.𐫓ⴚ𑂹
+xn--429az70n29i.xn--ilj7702eqyd; 𐹠꯭.𐫓ⴚ𑂹; [B1, B2, B3, V6];
xn--429az70n29i.xn--ilj7702eqyd; ; ; # 𐹠꯭.𐫓ⴚ𑂹
+xn--1ugz126coy7bdbm.xn--1ug062chv7ov6e; 𐹠꯭.𐫓ⴚ𑂹; [B1, C2, V6];
xn--1ugz126coy7bdbm.xn--1ug062chv7ov6e; ; ; # 𐹠꯭.𐫓ⴚ𑂹
+xn--429az70n29i.xn--ynd3619jqyd; 𐹠꯭.𐫓Ⴚ𑂹; [B1, B2, B3, V6];
xn--429az70n29i.xn--ynd3619jqyd; ; ; # 𐹠꯭.𐫓Ⴚ𑂹
+xn--1ugz126coy7bdbm.xn--ynd959evs1pv6e; 𐹠꯭.𐫓Ⴚ𑂹; [B1, C2, V6];
xn--1ugz126coy7bdbm.xn--ynd959evs1pv6e; ; ; # 𐹠꯭.𐫓Ⴚ𑂹
+󠆠.; .; [P1, V6, X4_2]; .xn--rx21bhv12i; [P1, V6, A4_2]; ; # .
+󠆠.; .; [P1, V6, X4_2]; .xn--rx21bhv12i; [P1, V6, A4_2]; ; # .
+.xn--rx21bhv12i; .; [V6, X4_2]; .xn--rx21bhv12i; [V6, A4_2]; ; # .
+𐫃Ⴆ.≠; ; [B1, B2, B3, C1, P1, V6]; xn--end799ekr1p.xn--1ch2802p; ;
xn--end1719j.xn--1ch2802p; [B1, B2, B3, P1, V6] # 𐫃Ⴆ.≠
+𐫃Ⴆ.≠; 𐫃Ⴆ.≠; [B1, B2, B3, C1, P1, V6]; xn--end799ekr1p.xn--1ch2802p; ;
xn--end1719j.xn--1ch2802p; [B1, B2, B3, P1, V6] # 𐫃Ⴆ.≠
+𐫃ⴆ.≠; 𐫃ⴆ.≠; [B1, B2, B3, C1, P1, V6]; xn--0ug132csv7o.xn--1ch2802p; ;
xn--xkjz802e.xn--1ch2802p; [B1, B2, B3, P1, V6] # 𐫃ⴆ.≠
+𐫃ⴆ.≠; ; [B1, B2, B3, C1, P1, V6]; xn--0ug132csv7o.xn--1ch2802p; ;
xn--xkjz802e.xn--1ch2802p; [B1, B2, B3, P1, V6] # 𐫃ⴆ.≠
+xn--xkjz802e.xn--1ch2802p; 𐫃ⴆ.≠; [B1, B2, B3, V6]; xn--xkjz802e.xn--1ch2802p;
; ; # 𐫃ⴆ.≠
+xn--0ug132csv7o.xn--1ch2802p; 𐫃ⴆ.≠; [B1, B2, B3, C1, V6];
xn--0ug132csv7o.xn--1ch2802p; ; ; # 𐫃ⴆ.≠
+xn--end1719j.xn--1ch2802p; 𐫃Ⴆ.≠; [B1, B2, B3, V6]; xn--end1719j.xn--1ch2802p;
; ; # 𐫃Ⴆ.≠
+xn--end799ekr1p.xn--1ch2802p; 𐫃Ⴆ.≠; [B1, B2, B3, C1, V6];
xn--end799ekr1p.xn--1ch2802p; ; ; # 𐫃Ⴆ.≠
+𝟥ꘌ.ࡁ; 3ꘌ.ࡁ; [B1, P1, V6]; xn--3-0g3es485d8i15h.xn--zvb; ; ; # 3ꘌ.ࡁ
+3ꘌ.ࡁ; ; [B1, P1, V6]; xn--3-0g3es485d8i15h.xn--zvb; ; ; # 3ꘌ.ࡁ
+xn--3-0g3es485d8i15h.xn--zvb; 3ꘌ.ࡁ; [B1, V6]; xn--3-0g3es485d8i15h.xn--zvb;
; ; # 3ꘌ.ࡁ
+-.ᢆ-; ; [P1, V3, V5, V6]; -.xn----pbkx6497q; ; ; # -.ᢆ-
+-.xn----pbkx6497q; -.ᢆ-; [V3, V5, V6]; -.xn----pbkx6497q; ; ; # -.ᢆ-
+。ς; .ς; [B1, B6, C1, P1, V6]; xn--0ug76062m.xn--3xa795lhn92a; ;
xn--qp42f.xn--4xa3011w; [B2, B3, P1, V6] # .ς
+。ς; .ς; [B1, B6, C1, P1, V6]; xn--0ug76062m.xn--3xa795lhn92a; ;
xn--qp42f.xn--4xa3011w; [B2, B3, P1, V6] # .ς
+。Σ; .σ; [B1, B6, C1, P1, V6]; xn--0ug76062m.xn--4xa595lhn92a; ;
xn--qp42f.xn--4xa3011w; [B2, B3, P1, V6] # .σ
+。σ; .σ; [B1, B6, C1, P1, V6]; xn--0ug76062m.xn--4xa595lhn92a; ;
xn--qp42f.xn--4xa3011w; [B2, B3, P1, V6] # .σ
+xn--qp42f.xn--4xa3011w; .σ; [B2, B3, V6]; xn--qp42f.xn--4xa3011w; ; ; # .σ
+xn--0ug76062m.xn--4xa595lhn92a; .σ; [B1, B6, C1, V6];
xn--0ug76062m.xn--4xa595lhn92a; ; ; # .σ
+xn--0ug76062m.xn--3xa795lhn92a; .ς; [B1, B6, C1, V6];
xn--0ug76062m.xn--3xa795lhn92a; ; ; # .ς
+。Σ; .σ; [B1, B6, C1, P1, V6]; xn--0ug76062m.xn--4xa595lhn92a; ;
xn--qp42f.xn--4xa3011w; [B2, B3, P1, V6] # .σ
+。σ; .σ; [B1, B6, C1, P1, V6]; xn--0ug76062m.xn--4xa595lhn92a; ;
xn--qp42f.xn--4xa3011w; [B2, B3, P1, V6] # .σ
+堕𑓂ᬂ。𐮇𞤽-; 堕𑓂ᬂ.𐮇𞤽-; [B3, C1, V3]; xn--5sf345zdk8h.xn----rgnt157hwl9g; ;
xn--5sf345zdk8h.xn----iv5iw606c; [B3, V3] # 堕𑓂ᬂ.𐮇𞤽-
+堕𑓂ᬂ。𐮇𞤛-; 堕𑓂ᬂ.𐮇𞤽-; [B3, C1, V3]; xn--5sf345zdk8h.xn----rgnt157hwl9g; ;
xn--5sf345zdk8h.xn----iv5iw606c; [B3, V3] # 堕𑓂ᬂ.𐮇𞤽-
+xn--5sf345zdk8h.xn----iv5iw606c; 堕𑓂ᬂ.𐮇𞤽-; [B3, V3];
xn--5sf345zdk8h.xn----iv5iw606c; ; ; # 堕𑓂ᬂ.𐮇𞤽-
+xn--5sf345zdk8h.xn----rgnt157hwl9g; 堕𑓂ᬂ.𐮇𞤽-; [B3, C1, V3];
xn--5sf345zdk8h.xn----rgnt157hwl9g; ; ; # 堕𑓂ᬂ.𐮇𞤽-
+𐹶𑁆ᡕ𞤢。ᡥςتς; 𐹶𑁆ᡕ𞤢.ᡥςتς; [B1, B5]; xn--l8e1317j1ebz456b.xn--3xaa16plx4a; ;
xn--l8e1317j1ebz456b.xn--4xaa85plx4a; # 𐹶𑁆ᡕ𞤢.ᡥςتς
+𐹶𑁆ᡕ𞤢。ᡥςتς; 𐹶𑁆ᡕ𞤢.ᡥςتς; [B1, B5]; xn--l8e1317j1ebz456b.xn--3xaa16plx4a; ;
xn--l8e1317j1ebz456b.xn--4xaa85plx4a; # 𐹶𑁆ᡕ𞤢.ᡥςتς
+𐹶𑁆ᡕ𞤀。ᡥΣتΣ; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5]; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; #
𐹶𑁆ᡕ𞤢.ᡥσتσ
+𐹶𑁆ᡕ𞤢。ᡥσتσ; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5]; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; #
𐹶𑁆ᡕ𞤢.ᡥσتσ
+xn--l8e1317j1ebz456b.xn--4xaa85plx4a; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5];
xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; # 𐹶𑁆ᡕ𞤢.ᡥσتσ
+xn--l8e1317j1ebz456b.xn--3xaa16plx4a; 𐹶𑁆ᡕ𞤢.ᡥςتς; [B1, B5];
xn--l8e1317j1ebz456b.xn--3xaa16plx4a; ; ; # 𐹶𑁆ᡕ𞤢.ᡥςتς
+𐹶𑁆ᡕ𞤀。ᡥΣتΣ; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5]; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; #
𐹶𑁆ᡕ𞤢.ᡥσتσ
+𐹶𑁆ᡕ𞤢。ᡥσتσ; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5]; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; #
𐹶𑁆ᡕ𞤢.ᡥσتσ
+𐹶𑁆ᡕ𞤢。ᡥΣتΣ; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5]; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; #
𐹶𑁆ᡕ𞤢.ᡥσتσ
+𐹶𑁆ᡕ𞤢。ᡥΣتσ; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5]; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; #
𐹶𑁆ᡕ𞤢.ᡥσتσ
+𐹶𑁆ᡕ𞤢。ᡥΣتς; 𐹶𑁆ᡕ𞤢.ᡥσتς; [B1, B5]; xn--l8e1317j1ebz456b.xn--3xab95plx4a; ;
xn--l8e1317j1ebz456b.xn--4xaa85plx4a; # 𐹶𑁆ᡕ𞤢.ᡥσتς
+𐹶𑁆ᡕ𞤢。ᡥσتς; 𐹶𑁆ᡕ𞤢.ᡥσتς; [B1, B5]; xn--l8e1317j1ebz456b.xn--3xab95plx4a; ;
xn--l8e1317j1ebz456b.xn--4xaa85plx4a; # 𐹶𑁆ᡕ𞤢.ᡥσتς
+xn--l8e1317j1ebz456b.xn--3xab95plx4a; 𐹶𑁆ᡕ𞤢.ᡥσتς; [B1, B5];
xn--l8e1317j1ebz456b.xn--3xab95plx4a; ; ; # 𐹶𑁆ᡕ𞤢.ᡥσتς
+𐹶𑁆ᡕ𞤢。ᡥΣتΣ; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5]; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; #
𐹶𑁆ᡕ𞤢.ᡥσتσ
+𐹶𑁆ᡕ𞤢。ᡥΣتσ; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5]; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; #
𐹶𑁆ᡕ𞤢.ᡥσتσ
+𐹶𑁆ᡕ𞤢。ᡥΣتς; 𐹶𑁆ᡕ𞤢.ᡥσتς; [B1, B5]; xn--l8e1317j1ebz456b.xn--3xab95plx4a; ;
xn--l8e1317j1ebz456b.xn--4xaa85plx4a; # 𐹶𑁆ᡕ𞤢.ᡥσتς
+𐹶𑁆ᡕ𞤢。ᡥσتς; 𐹶𑁆ᡕ𞤢.ᡥσتς; [B1, B5]; xn--l8e1317j1ebz456b.xn--3xab95plx4a; ;
xn--l8e1317j1ebz456b.xn--4xaa85plx4a; # 𐹶𑁆ᡕ𞤢.ᡥσتς
+.-𝟻ß; .-5ß; [P1, V3, V6]; xn--t960e.xn---5-hia; ; xn--t960e.-5ss; # .-5ß
+.-5ß; ; [P1, V3, V6]; xn--t960e.xn---5-hia; ; xn--t960e.-5ss; # .-5ß
+.-5SS; .-5ss; [P1, V3, V6]; xn--t960e.-5ss; ; ; # .-5ss
+.-5ss; ; [P1, V3, V6]; xn--t960e.-5ss; ; ; # .-5ss
+xn--t960e.-5ss; .-5ss; [V3, V6]; xn--t960e.-5ss; ; ; # .-5ss
+xn--t960e.xn---5-hia; .-5ß; [V3, V6]; xn--t960e.xn---5-hia; ; ; # .-5ß
+.-𝟻SS; .-5ss; [P1, V3, V6]; xn--t960e.-5ss; ; ; # .-5ss
+.-𝟻ss; .-5ss; [P1, V3, V6]; xn--t960e.-5ss; ; ; # .-5ss
+.-𝟻Ss; .-5ss; [P1, V3, V6]; xn--t960e.-5ss; ; ; # .-5ss
+.-5Ss; .-5ss; [P1, V3, V6]; xn--t960e.-5ss; ; ; # .-5ss
+𐨿.🤒Ⴥ; ; [C2, P1, V6]; xn--1ug9533g.xn--9nd3211w0gz4b; ;
xn--0s9c.xn--9nd3211w0gz4b; [P1, V5, V6] # 𐨿.🤒Ⴥ
+𐨿.🤒ⴥ; ; [C2, P1, V6]; xn--1ug9533g.xn--tljz038l0gz4b; ;
xn--0s9c.xn--tljz038l0gz4b; [P1, V5, V6] # 𐨿.🤒ⴥ
+xn--0s9c.xn--tljz038l0gz4b; 𐨿.🤒ⴥ; [V5, V6]; xn--0s9c.xn--tljz038l0gz4b; ; ;
# 𐨿.🤒ⴥ
+xn--1ug9533g.xn--tljz038l0gz4b; 𐨿.🤒ⴥ; [C2, V6];
xn--1ug9533g.xn--tljz038l0gz4b; ; ; # 𐨿.🤒ⴥ
+xn--0s9c.xn--9nd3211w0gz4b; 𐨿.🤒Ⴥ; [V5, V6]; xn--0s9c.xn--9nd3211w0gz4b; ; ;
# 𐨿.🤒Ⴥ
+xn--1ug9533g.xn--9nd3211w0gz4b; 𐨿.🤒Ⴥ; [C2, V6];
xn--1ug9533g.xn--9nd3211w0gz4b; ; ; # 𐨿.🤒Ⴥ
+。ß𬵩; .ß𬵩; [C2, P1, V6]; xn--ey1p.xn--zca870nz438b; ;
xn--ey1p.xn--ss-eq36b; [P1, V6] # .ß𬵩
+。SS𬵩; .ss𬵩; [C2, P1, V6]; xn--ey1p.xn--ss-n1tx0508a; ;
xn--ey1p.xn--ss-eq36b; [P1, V6] # .ss𬵩
+。ss𬵩; .ss𬵩; [C2, P1, V6]; xn--ey1p.xn--ss-n1tx0508a; ;
xn--ey1p.xn--ss-eq36b; [P1, V6] # .ss𬵩
+。Ss𬵩; .ss𬵩; [C2, P1, V6]; xn--ey1p.xn--ss-n1tx0508a; ;
xn--ey1p.xn--ss-eq36b; [P1, V6] # .ss𬵩
+xn--ey1p.xn--ss-eq36b; .ss𬵩; [V6]; xn--ey1p.xn--ss-eq36b; ; ; # .ss𬵩
+xn--ey1p.xn--ss-n1tx0508a; .ss𬵩; [C2, V6]; xn--ey1p.xn--ss-n1tx0508a; ; ; #
.ss𬵩
+xn--ey1p.xn--zca870nz438b; .ß𬵩; [C2, V6]; xn--ey1p.xn--zca870nz438b; ; ; #
.ß𬵩
+𭉝。߱́𞹻; 𭉝.߱́غ; [B1, C1, V5]; xn--0ugy003y.xn--lsa46nuub; ;
xn--634m.xn--lsa46nuub; [B1, V5] # 𭉝.߱́غ
+𭉝。߱́غ; 𭉝.߱́غ; [B1, C1, V5]; xn--0ugy003y.xn--lsa46nuub; ;
xn--634m.xn--lsa46nuub; [B1, V5] # 𭉝.߱́غ
+xn--634m.xn--lsa46nuub; 𭉝.߱́غ; [B1, V5]; xn--634m.xn--lsa46nuub; ; ; # 𭉝.߱́غ
+xn--0ugy003y.xn--lsa46nuub; 𭉝.߱́غ; [B1, C1, V5]; xn--0ugy003y.xn--lsa46nuub;
; ; # 𭉝.߱́غ
+𑈶。𐹡; 𑈶.𐹡; [B1, B3, C1, P1, V6]; xn--0ug7946gzpxf.xn--8n0d; ;
xn--9g1d1288a.xn--8n0d; [B1, P1, V6] # 𑈶.𐹡
+xn--9g1d1288a.xn--8n0d; 𑈶.𐹡; [B1, V6]; xn--9g1d1288a.xn--8n0d; ; ; # 𑈶.𐹡
+xn--0ug7946gzpxf.xn--8n0d; 𑈶.𐹡; [B1, B3, C1, V6]; xn--0ug7946gzpxf.xn--8n0d;
; ; # 𑈶.𐹡
+󠅯🜭。𑖿᪻ς≠; 🜭.𑖿᪻ς≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--3xa578i1mfjw7y; ;
xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻ς≠
+󠅯🜭。𑖿᪻ς≠; 🜭.𑖿᪻ς≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--3xa578i1mfjw7y;
; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻ς≠
+󠅯🜭。𑖿᪻ς≠; 🜭.𑖿᪻ς≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--3xa578i1mfjw7y; ;
xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻ς≠
+󠅯🜭。𑖿᪻ς≠; 🜭.𑖿᪻ς≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--3xa578i1mfjw7y;
; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻ς≠
+󠅯🜭。𑖿᪻Σ≠; 🜭.𑖿᪻σ≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y;
; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻σ≠
+󠅯🜭。𑖿᪻Σ≠; 🜭.𑖿᪻σ≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y; ;
xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻σ≠
+󠅯🜭。𑖿᪻σ≠; 🜭.𑖿᪻σ≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y; ;
xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻σ≠
+󠅯🜭。𑖿᪻σ≠; 🜭.𑖿᪻σ≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y;
; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻σ≠
+xn--zb9h5968x.xn--4xa378i1mfjw7y; 🜭.𑖿᪻σ≠; [V5, V6];
xn--zb9h5968x.xn--4xa378i1mfjw7y; ; ; # 🜭.𑖿᪻σ≠
+xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y; 🜭.𑖿᪻σ≠; [C1, V5, V6];
xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y; ; ; # 🜭.𑖿᪻σ≠
+xn--0ug3766p5nm1b.xn--3xa578i1mfjw7y; 🜭.𑖿᪻ς≠; [C1, V5, V6];
xn--0ug3766p5nm1b.xn--3xa578i1mfjw7y; ; ; # 🜭.𑖿᪻ς≠
+󠅯🜭。𑖿᪻Σ≠; 🜭.𑖿᪻σ≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y;
; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻σ≠
+󠅯🜭。𑖿᪻Σ≠; 🜭.𑖿᪻σ≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y; ;
xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻σ≠
+󠅯🜭。𑖿᪻σ≠; 🜭.𑖿᪻σ≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y; ;
xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻σ≠
+󠅯🜭。𑖿᪻σ≠; 🜭.𑖿᪻σ≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y;
; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻σ≠
+⒋。⒈; ⒋.⒈; [C2, P1, V6]; xn--wsh.xn--1ug58o74922a; ; xn--wsh.xn--tsh07994h;
[P1, V6] # ⒋.⒈
+4.。1.; 4..1.; [C2, P1, V6, X4_2]; 4..1.xn--1ug64613i; [C2, P1, V6, A4_2];
4..1.xn--sf51d; [P1, V6, A4_2] # 4..1.
+4..1.xn--sf51d; 4..1.; [V6, X4_2]; 4..1.xn--sf51d; [V6, A4_2]; ; # 4..1.
+4..1.xn--1ug64613i; 4..1.; [C2, V6, X4_2]; 4..1.xn--1ug64613i; [C2, V6,
A4_2]; ; # 4..1.
+xn--wsh.xn--tsh07994h; ⒋.⒈; [V6]; xn--wsh.xn--tsh07994h; ; ; # ⒋.⒈
+xn--wsh.xn--1ug58o74922a; ⒋.⒈; [C2, V6]; xn--wsh.xn--1ug58o74922a; ; ; # ⒋.⒈
+لß。᩠𐇽𞤾; لß.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6]; xn--zca57y.xn--jof2298hn83fln78f;
; xn--ss-svd.xn--jof2298hn83fln78f; # لß.᩠𐇽𞤾
+لß。᩠𐇽𞤾; لß.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6]; xn--zca57y.xn--jof2298hn83fln78f;
; xn--ss-svd.xn--jof2298hn83fln78f; # لß.᩠𐇽𞤾
+لß。᩠𐇽𞤾; لß.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6]; xn--zca57y.xn--jof2298hn83fln78f;
; xn--ss-svd.xn--jof2298hn83fln78f; # لß.᩠𐇽𞤾
+لSS。᩠𐇽𞤜; لss.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6];
xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لss。᩠𐇽𞤾; لss.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6];
xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لss。᩠𐇽𞤜; لss.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6];
xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+xn--ss-svd.xn--jof2298hn83fln78f; لss.᩠𐇽𞤾; [B1, B2, B3, V5, V6];
xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لß。᩠𐇽𞤜; لß.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6]; xn--zca57y.xn--jof2298hn83fln78f;
; xn--ss-svd.xn--jof2298hn83fln78f; # لß.᩠𐇽𞤾
+xn--zca57y.xn--jof2298hn83fln78f; لß.᩠𐇽𞤾; [B1, B2, B3, V5, V6];
xn--zca57y.xn--jof2298hn83fln78f; ; ; # لß.᩠𐇽𞤾
+لSS。᩠𐇽𞤜; لss.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6];
xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لss。᩠𐇽𞤾; لss.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6];
xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لss。᩠𐇽𞤜; لss.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6];
xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لß。᩠𐇽𞤜; لß.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6]; xn--zca57y.xn--jof2298hn83fln78f;
; xn--ss-svd.xn--jof2298hn83fln78f; # لß.᩠𐇽𞤾
+لSS。᩠𐇽𞤜; لss.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6];
xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لss。᩠𐇽𞤾; لss.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6];
xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لss。᩠𐇽𞤜; لss.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6];
xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لß。᩠𐇽𞤜; لß.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6]; xn--zca57y.xn--jof2298hn83fln78f;
; xn--ss-svd.xn--jof2298hn83fln78f; # لß.᩠𐇽𞤾
+لSS。᩠𐇽𞤾; لss.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6];
xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لSs。᩠𐇽𞤾; لss.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6];
xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لSS。᩠𐇽𞤾; لss.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6];
xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لSs。᩠𐇽𞤾; لss.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6];
xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لSS。᩠𐇽𞤾; لss.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6];
xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لSs。᩠𐇽𞤾; لss.᩠𐇽𞤾; [B1, B2, B3, P1, V5, V6];
xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+𐹽𑄳.ᷟី꠆𑜫; ; [B1, B3, B6, P1, V5, V6]; xn--1o0di0c0652w.xn--33e362arr1l153d; ;
; # 𐹽𑄳.ᷟី꠆𑜫
+xn--1o0di0c0652w.xn--33e362arr1l153d; 𐹽𑄳.ᷟី꠆𑜫; [B1, B3, B6, V5, V6];
xn--1o0di0c0652w.xn--33e362arr1l153d; ; ; # 𐹽𑄳.ᷟី꠆𑜫
+Ⴓ𑜫.ڧ𑰶; Ⴓ𑜫.ڧ𑰶; [P1, V6]; xn--rnd479ep20q7x12e.xn--9jb4223l; ;
xn--rnd8945ky009c.xn--9jb4223l; # Ⴓ𑜫.ڧ𑰶
+Ⴓ𑜫.ڧ𑰶; ; [P1, V6]; xn--rnd479ep20q7x12e.xn--9jb4223l; ;
xn--rnd8945ky009c.xn--9jb4223l; # Ⴓ𑜫.ڧ𑰶
+ⴓ𑜫.ڧ𑰶; ; [P1, V6]; xn--1ugy52cym7p7xu5e.xn--9jb4223l; ;
xn--blj6306ey091d.xn--9jb4223l; # ⴓ𑜫.ڧ𑰶
+xn--blj6306ey091d.xn--9jb4223l; ⴓ𑜫.ڧ𑰶; [V6]; xn--blj6306ey091d.xn--9jb4223l;
; ; # ⴓ𑜫.ڧ𑰶
+xn--1ugy52cym7p7xu5e.xn--9jb4223l; ⴓ𑜫.ڧ𑰶; [V6];
xn--1ugy52cym7p7xu5e.xn--9jb4223l; ; ; # ⴓ𑜫.ڧ𑰶
+xn--rnd8945ky009c.xn--9jb4223l; Ⴓ𑜫.ڧ𑰶; [V6]; xn--rnd8945ky009c.xn--9jb4223l;
; ; # Ⴓ𑜫.ڧ𑰶
+xn--rnd479ep20q7x12e.xn--9jb4223l; Ⴓ𑜫.ڧ𑰶; [V6];
xn--rnd479ep20q7x12e.xn--9jb4223l; ; ; # Ⴓ𑜫.ڧ𑰶
+ⴓ𑜫.ڧ𑰶; ⴓ𑜫.ڧ𑰶; [P1, V6]; xn--1ugy52cym7p7xu5e.xn--9jb4223l; ;
xn--blj6306ey091d.xn--9jb4223l; # ⴓ𑜫.ڧ𑰶
+𐨿.🄆—; ; [P1, V5, V6]; xn--0s9c.xn--8ug8324p; ; ; # 𐨿.🄆—
+𐨿.5,—; ; [P1, V5, V6]; xn--0s9c.xn--5,-81t; ; ; # 𐨿.5,—
+xn--0s9c.xn--5,-81t; 𐨿.5,—; [P1, V5, V6]; xn--0s9c.xn--5,-81t; ; ; # 𐨿.5,—
+xn--0s9c.xn--8ug8324p; 𐨿.🄆—; [V5, V6]; xn--0s9c.xn--8ug8324p; ; ; # 𐨿.🄆—
+۸。-; ۸.-; [P1, V3, V6]; xn--lmb18944c0g2z.xn----2k81m; ; ; # ۸.-
+xn--lmb18944c0g2z.xn----2k81m; ۸.-; [V3, V6];
xn--lmb18944c0g2z.xn----2k81m; ; ; # ۸.-
+ߍ𐹮。ᡎᠴ; ߍ𐹮.ᡎᠴ; [B1, B5, B6, P1, V6]; xn--osb0855kcc2r.xn--tlb299fhc; ; ; #
ߍ𐹮.ᡎᠴ
+xn--osb0855kcc2r.xn--tlb299fhc; ߍ𐹮.ᡎᠴ; [B1, B5, B6, V6];
xn--osb0855kcc2r.xn--tlb299fhc; ; ; # ߍ𐹮.ᡎᠴ
+ᠮႾ🄂.🚗ࡁ; ; [B1, C1, C2, P1, V6]; xn--2nd129ay2gnw71c.xn--zvb692j9664aic1g; ;
xn--2nd129ai554b.xn--zvb3124wpkpf; [B1, P1, V6] # ᠮႾ🄂.🚗ࡁ
+ᠮႾ1,.🚗ࡁ; ; [B1, C1, C2, P1, V6]; xn--1,-ogkx89c39j.xn--zvb692j9664aic1g; ;
xn--1,-ogkx89c.xn--zvb3124wpkpf; [B1, B6, P1, V6] # ᠮႾ1,.🚗ࡁ
+ᠮⴞ1,.🚗ࡁ; ; [B1, C1, C2, P1, V6]; xn--1,-v3o161c53q.xn--zvb692j9664aic1g; ;
xn--1,-v3o625k.xn--zvb3124wpkpf; [B1, B6, P1, V6] # ᠮⴞ1,.🚗ࡁ
+xn--1,-v3o625k.xn--zvb3124wpkpf; ᠮⴞ1,.🚗ࡁ; [B1, B6, P1, V6];
xn--1,-v3o625k.xn--zvb3124wpkpf; ; ; # ᠮⴞ1,.🚗ࡁ
+xn--1,-v3o161c53q.xn--zvb692j9664aic1g; ᠮⴞ1,.🚗ࡁ; [B1, C1, C2, P1, V6];
xn--1,-v3o161c53q.xn--zvb692j9664aic1g; ; ; # ᠮⴞ1,.🚗ࡁ
+xn--1,-ogkx89c.xn--zvb3124wpkpf; ᠮႾ1,.🚗ࡁ; [B1, B6, P1, V6];
xn--1,-ogkx89c.xn--zvb3124wpkpf; ; ; # ᠮႾ1,.🚗ࡁ
+xn--1,-ogkx89c39j.xn--zvb692j9664aic1g; ᠮႾ1,.🚗ࡁ; [B1, C1, C2, P1, V6];
xn--1,-ogkx89c39j.xn--zvb692j9664aic1g; ; ; # ᠮႾ1,.🚗ࡁ
+ᠮⴞ🄂.🚗ࡁ; ; [B1, C1, C2, P1, V6]; xn--h7e341b0wlbv45b.xn--zvb692j9664aic1g; ;
xn--h7e438h1p44a.xn--zvb3124wpkpf; [B1, P1, V6] # ᠮⴞ🄂.🚗ࡁ
+xn--h7e438h1p44a.xn--zvb3124wpkpf; ᠮⴞ🄂.🚗ࡁ; [B1, V6];
xn--h7e438h1p44a.xn--zvb3124wpkpf; ; ; # ᠮⴞ🄂.🚗ࡁ
+xn--h7e341b0wlbv45b.xn--zvb692j9664aic1g; ᠮⴞ🄂.🚗ࡁ; [B1, C1, C2, V6];
xn--h7e341b0wlbv45b.xn--zvb692j9664aic1g; ; ; # ᠮⴞ🄂.🚗ࡁ
+xn--2nd129ai554b.xn--zvb3124wpkpf; ᠮႾ🄂.🚗ࡁ; [B1, V6];
xn--2nd129ai554b.xn--zvb3124wpkpf; ; ; # ᠮႾ🄂.🚗ࡁ
+xn--2nd129ay2gnw71c.xn--zvb692j9664aic1g; ᠮႾ🄂.🚗ࡁ; [B1, C1, C2, V6];
xn--2nd129ay2gnw71c.xn--zvb692j9664aic1g; ; ; # ᠮႾ🄂.🚗ࡁ
+ڗ.𑚶⾆; ڗ.𑚶舌; [B1, P1, V5, V6]; xn--jfb41a.xn--tc1ap851axo39c; ; ; # ڗ.𑚶舌
+ڗ.𑚶舌; ; [B1, P1, V5, V6]; xn--jfb41a.xn--tc1ap851axo39c; ; ; # ڗ.𑚶舌
+xn--jfb41a.xn--tc1ap851axo39c; ڗ.𑚶舌; [B1, V5, V6];
xn--jfb41a.xn--tc1ap851axo39c; ; ; # ڗ.𑚶舌
+🞅.; ; [P1, V6]; xn--ie9hi1349bqdlb.xn--oj69a; ; ; # 🞅.
+xn--ie9hi1349bqdlb.xn--oj69a; 🞅.; [V6]; xn--ie9hi1349bqdlb.xn--oj69a; ; ;
# 🞅.
+⃧-.4Ⴄ; ; [C1, P1, V5, V6]; xn----9snu5320fi76w.xn--4-f0g649i; ;
xn----9snu5320fi76w.xn--4-f0g; [P1, V5, V6] # ⃧-.4Ⴄ
+⃧-.4ⴄ; ; [C1, P1, V5, V6]; xn----9snu5320fi76w.xn--4-sgn589c; ;
xn----9snu5320fi76w.xn--4-ivs; [P1, V5, V6] # ⃧-.4ⴄ
+xn----9snu5320fi76w.xn--4-ivs; ⃧-.4ⴄ; [V5, V6];
xn----9snu5320fi76w.xn--4-ivs; ; ; # ⃧-.4ⴄ
+xn----9snu5320fi76w.xn--4-sgn589c; ⃧-.4ⴄ; [C1, V5, V6];
xn----9snu5320fi76w.xn--4-sgn589c; ; ; # ⃧-.4ⴄ
+xn----9snu5320fi76w.xn--4-f0g; ⃧-.4Ⴄ; [V5, V6];
xn----9snu5320fi76w.xn--4-f0g; ; ; # ⃧-.4Ⴄ
+xn----9snu5320fi76w.xn--4-f0g649i; ⃧-.4Ⴄ; [C1, V5, V6];
xn----9snu5320fi76w.xn--4-f0g649i; ; ; # ⃧-.4Ⴄ
+ᚭ。𝌠ß𖫱; ᚭ.𝌠ß𖫱; ; xn--hwe.xn--zca4946pblnc; ; xn--hwe.xn--ss-ci1ub261a; # ᚭ.𝌠ß𖫱
+ᚭ。𝌠ß𖫱; ᚭ.𝌠ß𖫱; ; xn--hwe.xn--zca4946pblnc; ; xn--hwe.xn--ss-ci1ub261a; # ᚭ.𝌠ß𖫱
+ᚭ。𝌠SS𖫱; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+ᚭ。𝌠ss𖫱; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+ᚭ。𝌠Ss𖫱; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+xn--hwe.xn--ss-ci1ub261a; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+ᚭ.𝌠ss𖫱; ; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+ᚭ.𝌠SS𖫱; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+ᚭ.𝌠Ss𖫱; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+xn--hwe.xn--zca4946pblnc; ᚭ.𝌠ß𖫱; ; xn--hwe.xn--zca4946pblnc; ; ; # ᚭ.𝌠ß𖫱
+ᚭ.𝌠ß𖫱; ; ; xn--hwe.xn--zca4946pblnc; ; xn--hwe.xn--ss-ci1ub261a; # ᚭ.𝌠ß𖫱
+ᚭ。𝌠SS𖫱; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+ᚭ。𝌠ss𖫱; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+ᚭ。𝌠Ss𖫱; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+₁。𞤫ꡪ; 1.𞤫ꡪ; [B1, B2, B3]; 1.xn--gd9al691d; ; ; # 1.𞤫ꡪ
+1。𞤫ꡪ; 1.𞤫ꡪ; [B1, B2, B3]; 1.xn--gd9al691d; ; ; # 1.𞤫ꡪ
+1。𞤉ꡪ; 1.𞤫ꡪ; [B1, B2, B3]; 1.xn--gd9al691d; ; ; # 1.𞤫ꡪ
+1.xn--gd9al691d; 1.𞤫ꡪ; [B1, B2, B3]; 1.xn--gd9al691d; ; ; # 1.𞤫ꡪ
+₁。𞤉ꡪ; 1.𞤫ꡪ; [B1, B2, B3]; 1.xn--gd9al691d; ; ; # 1.𞤫ꡪ
+.; ; [B2, B3, B6, C1, P1, V6]; xn--0ug27500a.xn--2b7hs861pl540a; ;
xn--kg4n.xn--2b7hs861pl540a; [B2, B3, P1, V6] # .
+xn--kg4n.xn--2b7hs861pl540a; .; [B2, B3, V6]; xn--kg4n.xn--2b7hs861pl540a;
; ; # .
+xn--0ug27500a.xn--2b7hs861pl540a; .; [B2, B3, B6, C1, V6];
xn--0ug27500a.xn--2b7hs861pl540a; ; ; # .
+𑑄≯。𑜤; 𑑄≯.𑜤; [P1, V5, V6]; xn--hdh5636g.xn--ci2d; ; ; # 𑑄≯.𑜤
+𑑄≯。𑜤; 𑑄≯.𑜤; [P1, V5, V6]; xn--hdh5636g.xn--ci2d; ; ; # 𑑄≯.𑜤
+𑑄≯。𑜤; 𑑄≯.𑜤; [P1, V5, V6]; xn--hdh5636g.xn--ci2d; ; ; # 𑑄≯.𑜤
+𑑄≯。𑜤; 𑑄≯.𑜤; [P1, V5, V6]; xn--hdh5636g.xn--ci2d; ; ; # 𑑄≯.𑜤
+xn--hdh5636g.xn--ci2d; 𑑄≯.𑜤; [V5, V6]; xn--hdh5636g.xn--ci2d; ; ; # 𑑄≯.𑜤
+Ⴋ≮𱲆。ާ𐋣; Ⴋ≮𱲆.ާ𐋣; [C2, P1, V6]; xn--jnd802gsm17c.xn--lrb506jqr4n; ;
xn--jnd802gsm17c.xn--lrb6479j; [P1, V5, V6] # Ⴋ≮.ާ𐋣
+Ⴋ≮𱲆。ާ𐋣; Ⴋ≮𱲆.ާ𐋣; [C2, P1, V6]; xn--jnd802gsm17c.xn--lrb506jqr4n; ;
xn--jnd802gsm17c.xn--lrb6479j; [P1, V5, V6] # Ⴋ≮.ާ𐋣
+ⴋ≮𱲆。ާ𐋣; ⴋ≮𱲆.ާ𐋣; [C2, P1, V6]; xn--gdhz03bxt42d.xn--lrb506jqr4n; ;
xn--gdhz03bxt42d.xn--lrb6479j; [P1, V5, V6] # ⴋ≮.ާ𐋣
+ⴋ≮𱲆。ާ𐋣; ⴋ≮𱲆.ާ𐋣; [C2, P1, V6]; xn--gdhz03bxt42d.xn--lrb506jqr4n; ;
xn--gdhz03bxt42d.xn--lrb6479j; [P1, V5, V6] # ⴋ≮.ާ𐋣
+xn--gdhz03bxt42d.xn--lrb6479j; ⴋ≮𱲆.ާ𐋣; [V5, V6];
xn--gdhz03bxt42d.xn--lrb6479j; ; ; # ⴋ≮.ާ𐋣
+xn--gdhz03bxt42d.xn--lrb506jqr4n; ⴋ≮𱲆.ާ𐋣; [C2, V6];
xn--gdhz03bxt42d.xn--lrb506jqr4n; ; ; # ⴋ≮.ާ𐋣
+xn--jnd802gsm17c.xn--lrb6479j; Ⴋ≮𱲆.ާ𐋣; [V5, V6];
xn--jnd802gsm17c.xn--lrb6479j; ; ; # Ⴋ≮.ާ𐋣
+xn--jnd802gsm17c.xn--lrb506jqr4n; Ⴋ≮𱲆.ާ𐋣; [C2, V6];
xn--jnd802gsm17c.xn--lrb506jqr4n; ; ; # Ⴋ≮.ާ𐋣
+្.≯; ; [P1, V5, V6]; xn--u4e.xn--hdhx0084f; ; ; # ្.≯
+្.≯; ្.≯; [P1, V5, V6]; xn--u4e.xn--hdhx0084f; ; ; # ្.≯
+xn--u4e.xn--hdhx0084f; ្.≯; [V5, V6]; xn--u4e.xn--hdhx0084f; ; ; # ្.≯
+᜴.𐨺É⬓𑄴; ᜴.𐨺é⬓𑄴; [P1, V5, V6]; xn--c0e34564d.xn--9ca207st53lg3f; ; ; # ᜴.𐨺é⬓𑄴
+᜴.𐨺É⬓𑄴; ᜴.𐨺é⬓𑄴; [P1, V5, V6]; xn--c0e34564d.xn--9ca207st53lg3f; ; ; #
᜴.𐨺é⬓𑄴
+᜴.𐨺É⬓𑄴; ᜴.𐨺é⬓𑄴; [P1, V5, V6]; xn--c0e34564d.xn--9ca207st53lg3f; ; ; # ᜴.𐨺é⬓𑄴
+᜴.𐨺É⬓𑄴; ᜴.𐨺é⬓𑄴; [P1, V5, V6]; xn--c0e34564d.xn--9ca207st53lg3f; ; ; #
᜴.𐨺é⬓𑄴
+᜴.𐨺é⬓𑄴; ᜴.𐨺é⬓𑄴; [P1, V5, V6]; xn--c0e34564d.xn--9ca207st53lg3f; ; ; #
᜴.𐨺é⬓𑄴
+᜴.𐨺é⬓𑄴; ; [P1, V5, V6]; xn--c0e34564d.xn--9ca207st53lg3f; ; ; # ᜴.𐨺é⬓𑄴
+xn--c0e34564d.xn--9ca207st53lg3f; ᜴.𐨺é⬓𑄴; [V5, V6];
xn--c0e34564d.xn--9ca207st53lg3f; ; ; # ᜴.𐨺é⬓𑄴
+᜴.𐨺é⬓𑄴; ᜴.𐨺é⬓𑄴; [P1, V5, V6]; xn--c0e34564d.xn--9ca207st53lg3f; ; ; #
᜴.𐨺é⬓𑄴
+᜴.𐨺é⬓𑄴; ᜴.𐨺é⬓𑄴; [P1, V5, V6]; xn--c0e34564d.xn--9ca207st53lg3f; ; ; # ᜴.𐨺é⬓𑄴
+ᢇ꣄。︒𞤺; ᢇ꣄.︒𞤺; [B1, B6, C2, P1, V6]; xn--09e669a6x8j.xn--y86cv562b; ;
xn--09e4694e.xn--y86cv562b; [B1, P1, V6] # ᢇ꣄.︒𞤺
+ᢇ꣄。。𞤺; ᢇ꣄..𞤺; [B6, C2, X4_2]; xn--09e669a6x8j..xn--ye6h; [B6, C2, A4_2];
xn--09e4694e..xn--ye6h; [A4_2] # ᢇ꣄..𞤺
+ᢇ꣄。。𞤘; ᢇ꣄..𞤺; [B6, C2, X4_2]; xn--09e669a6x8j..xn--ye6h; [B6, C2, A4_2];
xn--09e4694e..xn--ye6h; [A4_2] # ᢇ꣄..𞤺
+xn--09e4694e..xn--ye6h; ᢇ꣄..𞤺; [X4_2]; xn--09e4694e..xn--ye6h; [A4_2]; ; #
ᢇ꣄..𞤺
+xn--09e669a6x8j..xn--ye6h; ᢇ꣄..𞤺; [B6, C2, X4_2]; xn--09e669a6x8j..xn--ye6h;
[B6, C2, A4_2]; ; # ᢇ꣄..𞤺
+ᢇ꣄。︒𞤘; ᢇ꣄.︒𞤺; [B1, B6, C2, P1, V6]; xn--09e669a6x8j.xn--y86cv562b; ;
xn--09e4694e.xn--y86cv562b; [B1, P1, V6] # ᢇ꣄.︒𞤺
+xn--09e4694e.xn--y86cv562b; ᢇ꣄.︒𞤺; [B1, V6]; xn--09e4694e.xn--y86cv562b; ; ;
# ᢇ꣄.︒𞤺
+xn--09e669a6x8j.xn--y86cv562b; ᢇ꣄.︒𞤺; [B1, B6, C2, V6];
xn--09e669a6x8j.xn--y86cv562b; ; ; # ᢇ꣄.︒𞤺
+᜔。رު≮; ᜔.رު≮; [B2, B3, P1, V6]; xn--fze607b9651bjwl7c.xn--wgb86el10d; ;
xn--fze3930v7hz6b.xn--wgb86el10d; # ᜔.رު≮
+᜔。رު≮; ᜔.رު≮; [B2, B3, P1, V6]; xn--fze607b9651bjwl7c.xn--wgb86el10d; ;
xn--fze3930v7hz6b.xn--wgb86el10d; # ᜔.رު≮
+᜔。رު≮; ᜔.رު≮; [B2, B3, P1, V6]; xn--fze607b9651bjwl7c.xn--wgb86el10d; ;
xn--fze3930v7hz6b.xn--wgb86el10d; # ᜔.رު≮
+᜔。رު≮; ᜔.رު≮; [B2, B3, P1, V6]; xn--fze607b9651bjwl7c.xn--wgb86el10d; ;
xn--fze3930v7hz6b.xn--wgb86el10d; # ᜔.رު≮
+xn--fze3930v7hz6b.xn--wgb86el10d; ᜔.رު≮; [B2, B3, V6];
xn--fze3930v7hz6b.xn--wgb86el10d; ; ; # ᜔.رު≮
+xn--fze607b9651bjwl7c.xn--wgb86el10d; ᜔.رު≮; [B2, B3, V6];
xn--fze607b9651bjwl7c.xn--wgb86el10d; ; ; # ᜔.رު≮
+Ⴣ.ٓᢤ; Ⴣ.ٓᢤ; [P1, V5, V6]; xn--7nd.xn--vhb294g; ; ; # Ⴣ.ٓᢤ
+Ⴣ.ٓᢤ; ; [P1, V5, V6]; xn--7nd.xn--vhb294g; ; ; # Ⴣ.ٓᢤ
+ⴣ.ٓᢤ; ; [V5]; xn--rlj.xn--vhb294g; ; ; # ⴣ.ٓᢤ
+xn--rlj.xn--vhb294g; ⴣ.ٓᢤ; [V5]; xn--rlj.xn--vhb294g; ; ; # ⴣ.ٓᢤ
+xn--7nd.xn--vhb294g; Ⴣ.ٓᢤ; [V5, V6]; xn--7nd.xn--vhb294g; ; ; # Ⴣ.ٓᢤ
+ⴣ.ٓᢤ; ⴣ.ٓᢤ; [V5]; xn--rlj.xn--vhb294g; ; ; # ⴣ.ٓᢤ
+󠄈ࠓ.싉Ⴤ; ࠓ.싉Ⴤ; [P1, V6]; xn--oub.xn--8nd9522gpe69cviva; ; ; # ࠓ.싉Ⴤ
+󠄈ࠓ.싉Ⴤ; ࠓ.싉Ⴤ; [P1, V6]; xn--oub.xn--8nd9522gpe69cviva; ; ; # ࠓ.싉Ⴤ
+󠄈ࠓ.싉Ⴤ; ࠓ.싉Ⴤ; [P1, V6]; xn--oub.xn--8nd9522gpe69cviva; ; ; # ࠓ.싉Ⴤ
+󠄈ࠓ.싉Ⴤ; ࠓ.싉Ⴤ; [P1, V6]; xn--oub.xn--8nd9522gpe69cviva; ; ; # ࠓ.싉Ⴤ
+󠄈ࠓ.싉ⴤ; ࠓ.싉ⴤ; [P1, V6]; xn--oub.xn--sljz109bpe25dviva; ; ; # ࠓ.싉ⴤ
+󠄈ࠓ.싉ⴤ; ࠓ.싉ⴤ; [P1, V6]; xn--oub.xn--sljz109bpe25dviva; ; ; # ࠓ.싉ⴤ
+xn--oub.xn--sljz109bpe25dviva; ࠓ.싉ⴤ; [V6]; xn--oub.xn--sljz109bpe25dviva; ;
; # ࠓ.싉ⴤ
+xn--oub.xn--8nd9522gpe69cviva; ࠓ.싉Ⴤ; [V6]; xn--oub.xn--8nd9522gpe69cviva; ;
; # ࠓ.싉Ⴤ
+󠄈ࠓ.싉ⴤ; ࠓ.싉ⴤ; [P1, V6]; xn--oub.xn--sljz109bpe25dviva; ; ; # ࠓ.싉ⴤ
+󠄈ࠓ.싉ⴤ; ࠓ.싉ⴤ; [P1, V6]; xn--oub.xn--sljz109bpe25dviva; ; ; # ࠓ.싉ⴤ
+ꨬ𑲫≮.⤂; ꨬ𑲫≮.⤂; [P1, V5, V6]; xn--gdh1854cn19c.xn--kqi; ; ; # ꨬ𑲫≮.⤂
+ꨬ𑲫≮.⤂; ꨬ𑲫≮.⤂; [P1, V5, V6]; xn--gdh1854cn19c.xn--kqi; ; ; # ꨬ𑲫≮.⤂
+ꨬ𑲫≮.⤂; ; [P1, V5, V6]; xn--gdh1854cn19c.xn--kqi; ; ; # ꨬ𑲫≮.⤂
+ꨬ𑲫≮.⤂; ꨬ𑲫≮.⤂; [P1, V5, V6]; xn--gdh1854cn19c.xn--kqi; ; ; # ꨬ𑲫≮.⤂
+xn--gdh1854cn19c.xn--kqi; ꨬ𑲫≮.⤂; [V5, V6]; xn--gdh1854cn19c.xn--kqi; ; ; #
ꨬ𑲫≮.⤂
+𐩔≮Ⴢ.Ⴃ; 𐩔≮Ⴢ.Ⴃ; [B1, P1, V6]; xn--mfb416c0jox02t.xn--bnd; ; ; # 𐩔≮Ⴢ.Ⴃ
+𐩔≮Ⴢ.Ⴃ; 𐩔≮Ⴢ.Ⴃ; [B1, P1, V6]; xn--mfb416c0jox02t.xn--bnd; ; ; # 𐩔≮Ⴢ.Ⴃ
+𐩔≮Ⴢ.Ⴃ; ; [B1, P1, V6]; xn--mfb416c0jox02t.xn--bnd; ; ; # 𐩔≮Ⴢ.Ⴃ
+𐩔≮Ⴢ.Ⴃ; 𐩔≮Ⴢ.Ⴃ; [B1, P1, V6]; xn--mfb416c0jox02t.xn--bnd; ; ; # 𐩔≮Ⴢ.Ⴃ
+𐩔≮ⴢ.ⴃ; 𐩔≮ⴢ.ⴃ; [B1, P1, V6]; xn--mfb266l4khr54u.xn--ukj; ; ; # 𐩔≮ⴢ.ⴃ
+𐩔≮ⴢ.ⴃ; ; [B1, P1, V6]; xn--mfb266l4khr54u.xn--ukj; ; ; # 𐩔≮ⴢ.ⴃ
+𐩔≮Ⴢ.ⴃ; ; [B1, P1, V6]; xn--mfb416c0jox02t.xn--ukj; ; ; # 𐩔≮Ⴢ.ⴃ
+𐩔≮Ⴢ.ⴃ; 𐩔≮Ⴢ.ⴃ; [B1, P1, V6]; xn--mfb416c0jox02t.xn--ukj; ; ; # 𐩔≮Ⴢ.ⴃ
+xn--mfb416c0jox02t.xn--ukj; 𐩔≮Ⴢ.ⴃ; [B1, V6]; xn--mfb416c0jox02t.xn--ukj; ; ;
# 𐩔≮Ⴢ.ⴃ
+xn--mfb266l4khr54u.xn--ukj; 𐩔≮ⴢ.ⴃ; [B1, V6]; xn--mfb266l4khr54u.xn--ukj; ; ;
# 𐩔≮ⴢ.ⴃ
+xn--mfb416c0jox02t.xn--bnd; 𐩔≮Ⴢ.Ⴃ; [B1, V6]; xn--mfb416c0jox02t.xn--bnd; ; ;
# 𐩔≮Ⴢ.Ⴃ
+𐩔≮ⴢ.ⴃ; 𐩔≮ⴢ.ⴃ; [B1, P1, V6]; xn--mfb266l4khr54u.xn--ukj; ; ; # 𐩔≮ⴢ.ⴃ
+𐩔≮ⴢ.ⴃ; 𐩔≮ⴢ.ⴃ; [B1, P1, V6]; xn--mfb266l4khr54u.xn--ukj; ; ; # 𐩔≮ⴢ.ⴃ
+𐩔≮Ⴢ.ⴃ; 𐩔≮Ⴢ.ⴃ; [B1, P1, V6]; xn--mfb416c0jox02t.xn--ukj; ; ; # 𐩔≮Ⴢ.ⴃ
+𐩔≮Ⴢ.ⴃ; 𐩔≮Ⴢ.ⴃ; [B1, P1, V6]; xn--mfb416c0jox02t.xn--ukj; ; ; # 𐩔≮Ⴢ.ⴃ
+𑁅。-; 𑁅.-; [V3, V5]; xn--210d.-; ; ; # 𑁅.-
+xn--210d.-; 𑁅.-; [V3, V5]; xn--210d.-; ; ; # 𑁅.-
+්。饈≠٤; ්.饈≠٤; [B1, B5, B6, P1, V5, V6]; xn--h1c25913jfwov.xn--dib144ler5f;
; ; # ්.饈≠٤
+්。饈≠٤; ්.饈≠٤; [B1, B5, B6, P1, V5, V6];
xn--h1c25913jfwov.xn--dib144ler5f; ; ; # ්.饈≠٤
+්。饈≠٤; ්.饈≠٤; [B1, B5, B6, P1, V5, V6]; xn--h1c25913jfwov.xn--dib144ler5f;
; ; # ්.饈≠٤
+්。饈≠٤; ්.饈≠٤; [B1, B5, B6, P1, V5, V6];
xn--h1c25913jfwov.xn--dib144ler5f; ; ; # ්.饈≠٤
+xn--h1c25913jfwov.xn--dib144ler5f; ්.饈≠٤; [B1, B5, B6, V5, V6];
xn--h1c25913jfwov.xn--dib144ler5f; ; ; # ්.饈≠٤
+𞥃ᠠ⁷。≯邅⬻4; 𞥃ᠠ7.≯邅⬻4; [B1, B2, P1, V6]; xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ; #
𞥃ᠠ7.≯邅⬻4
+𞥃ᠠ⁷。≯邅⬻4; 𞥃ᠠ7.≯邅⬻4; [B1, B2, P1, V6]; xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ;
# 𞥃ᠠ7.≯邅⬻4
+𞥃ᠠ7。≯邅⬻4; 𞥃ᠠ7.≯邅⬻4; [B1, B2, P1, V6]; xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ; #
𞥃ᠠ7.≯邅⬻4
+𞥃ᠠ7。≯邅⬻4; 𞥃ᠠ7.≯邅⬻4; [B1, B2, P1, V6]; xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ;
# 𞥃ᠠ7.≯邅⬻4
+𞤡ᠠ7。≯邅⬻4; 𞥃ᠠ7.≯邅⬻4; [B1, B2, P1, V6]; xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ;
# 𞥃ᠠ7.≯邅⬻4
+𞤡ᠠ7。≯邅⬻4; 𞥃ᠠ7.≯邅⬻4; [B1, B2, P1, V6]; xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ; #
𞥃ᠠ7.≯邅⬻4
+xn--7-v4j2826w.xn--4-ogoy01bou3i; 𞥃ᠠ7.≯邅⬻4; [B1, B2, V6];
xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ; # 𞥃ᠠ7.≯邅⬻4
+𞤡ᠠ⁷。≯邅⬻4; 𞥃ᠠ7.≯邅⬻4; [B1, B2, P1, V6]; xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ;
# 𞥃ᠠ7.≯邅⬻4
+𞤡ᠠ⁷。≯邅⬻4; 𞥃ᠠ7.≯邅⬻4; [B1, B2, P1, V6]; xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ; #
𞥃ᠠ7.≯邅⬻4
+ᡳ-𑐻.𐹴𐋫; ; [B1, B6, P1, V6]; xn----m9j3429kxmy7e.xn--nfb7950kdihrp812a; ; ;
# ᡳ-𑐻.𐹴𐋫
+xn----m9j3429kxmy7e.xn--nfb7950kdihrp812a; ᡳ-𑐻.𐹴𐋫; [B1, B6, V6];
xn----m9j3429kxmy7e.xn--nfb7950kdihrp812a; ; ; # ᡳ-𑐻.𐹴𐋫
+ࡅੑ.넨-; ; [B5, B6, P1, V6]; xn--3vb26hb6834b.xn----i37ez0957g; ; ; # ࡅੑ.넨-
+ࡅੑ.넨-; ࡅੑ.넨-; [B5, B6, P1, V6]; xn--3vb26hb6834b.xn----i37ez0957g; ; ;
# ࡅੑ.넨-
+xn--3vb26hb6834b.xn----i37ez0957g; ࡅੑ.넨-; [B5, B6, V6];
xn--3vb26hb6834b.xn----i37ez0957g; ; ; # ࡅੑ.넨-
+ꡦᡑ⒈。𐋣-; ꡦᡑ⒈.𐋣-; [C2, P1, V3, V6]; xn--h8e470bl0d838o.xn----381i; ;
xn--h8e863drj7h.xn----381i; [P1, V3, V6] # ꡦᡑ⒈.𐋣-
+ꡦᡑ1.。𐋣-; ꡦᡑ1..𐋣-; [C2, V3, X4_2]; xn--1-o7j663bdl7m..xn----381i; [C2, V3,
A4_2]; xn--1-o7j0610f..xn----381i; [V3, A4_2] # ꡦᡑ1..𐋣-
+xn--1-o7j0610f..xn----381i; ꡦᡑ1..𐋣-; [V3, X4_2]; xn--1-o7j0610f..xn----381i;
[V3, A4_2]; ; # ꡦᡑ1..𐋣-
+xn--1-o7j663bdl7m..xn----381i; ꡦᡑ1..𐋣-; [C2, V3, X4_2];
xn--1-o7j663bdl7m..xn----381i; [C2, V3, A4_2]; ; # ꡦᡑ1..𐋣-
+xn--h8e863drj7h.xn----381i; ꡦᡑ⒈.𐋣-; [V3, V6]; xn--h8e863drj7h.xn----381i; ; ;
# ꡦᡑ⒈.𐋣-
+xn--h8e470bl0d838o.xn----381i; ꡦᡑ⒈.𐋣-; [C2, V3, V6];
xn--h8e470bl0d838o.xn----381i; ; ; # ꡦᡑ⒈.𐋣-
+Ⴌ。ﭩ; Ⴌ.ٹ; [B5, B6, P1, V6]; xn--knd.xn--yib19191t; ; ; # Ⴌ.ٹ
+Ⴌ。ٹ; Ⴌ.ٹ; [B5, B6, P1, V6]; xn--knd.xn--yib19191t; ; ; # Ⴌ.ٹ
+ⴌ。ٹ; ⴌ.ٹ; [B5, B6, P1, V6]; xn--3kj.xn--yib19191t; ; ; # ⴌ.ٹ
+xn--3kj.xn--yib19191t; ⴌ.ٹ; [B5, B6, V6]; xn--3kj.xn--yib19191t; ; ; # ⴌ.ٹ
+xn--knd.xn--yib19191t; Ⴌ.ٹ; [B5, B6, V6]; xn--knd.xn--yib19191t; ; ; # Ⴌ.ٹ
+ⴌ。ﭩ; ⴌ.ٹ; [B5, B6, P1, V6]; xn--3kj.xn--yib19191t; ; ; # ⴌ.ٹ
+𐮁𐭱.྄፞-ᳺ; ; [B1, V5]; xn--r19c5a.xn----xjg270ag3m; ; ; # 𐮁𐭱.྄፞-ᳺ
+xn--r19c5a.xn----xjg270ag3m; 𐮁𐭱.྄፞-ᳺ; [B1, V5]; xn--r19c5a.xn----xjg270ag3m; ;
; # 𐮁𐭱.྄፞-ᳺ
+⒈䰹-。웈; ⒈䰹-.웈; [C2, P1, V3, V6]; xn----tgnx5rjr6c.xn--kp5b; ;
xn----dcp160o.xn--kp5b; [P1, V3, V6] # ⒈䰹-.웈
+⒈䰹-。웈; ⒈䰹-.웈; [C2, P1, V3, V6]; xn----tgnx5rjr6c.xn--kp5b; ;
xn----dcp160o.xn--kp5b; [P1, V3, V6] # ⒈䰹-.웈
+1.䰹-。웈; 1.䰹-.웈; [C2, V3]; 1.xn----tgnz80r.xn--kp5b; ; 1.xn----zw5a.xn--kp5b;
[V3] # 1.䰹-.웈
+1.䰹-。웈; 1.䰹-.웈; [C2, V3]; 1.xn----tgnz80r.xn--kp5b; ;
1.xn----zw5a.xn--kp5b; [V3] # 1.䰹-.웈
+1.xn----zw5a.xn--kp5b; 1.䰹-.웈; [V3]; 1.xn----zw5a.xn--kp5b; ; ; # 1.䰹-.웈
+1.xn----tgnz80r.xn--kp5b; 1.䰹-.웈; [C2, V3]; 1.xn----tgnz80r.xn--kp5b; ; ; #
1.䰹-.웈
+xn----dcp160o.xn--kp5b; ⒈䰹-.웈; [V3, V6]; xn----dcp160o.xn--kp5b; ; ; # ⒈䰹-.웈
+xn----tgnx5rjr6c.xn--kp5b; ⒈䰹-.웈; [C2, V3, V6]; xn----tgnx5rjr6c.xn--kp5b; ;
; # ⒈䰹-.웈
+て。߳; て.߳; [C1, P1, V6]; xn--m9j.xn--rtb154j9l73w; ; xn--m9j.xn--rtb10784p;
[P1, V6] # て.߳
+xn--m9j.xn--rtb10784p; て.߳; [V6]; xn--m9j.xn--rtb10784p; ; ; # て.߳
+xn--m9j.xn--rtb154j9l73w; て.߳; [C1, V6]; xn--m9j.xn--rtb154j9l73w; ; ; # て.߳
+ς。꧀ۧ; ς.꧀ۧ; [V5]; xn--3xa.xn--3lb1944f; ; xn--4xa.xn--3lb1944f; # ς.꧀ۧ
+ς。꧀ۧ; ς.꧀ۧ; [V5]; xn--3xa.xn--3lb1944f; ; xn--4xa.xn--3lb1944f; # ς.꧀ۧ
+Σ。꧀ۧ; σ.꧀ۧ; [V5]; xn--4xa.xn--3lb1944f; ; ; # σ.꧀ۧ
+σ。꧀ۧ; σ.꧀ۧ; [V5]; xn--4xa.xn--3lb1944f; ; ; # σ.꧀ۧ
+xn--4xa.xn--3lb1944f; σ.꧀ۧ; [V5]; xn--4xa.xn--3lb1944f; ; ; # σ.꧀ۧ
+xn--3xa.xn--3lb1944f; ς.꧀ۧ; [V5]; xn--3xa.xn--3lb1944f; ; ; # ς.꧀ۧ
+Σ。꧀ۧ; σ.꧀ۧ; [V5]; xn--4xa.xn--3lb1944f; ; ; # σ.꧀ۧ
+σ。꧀ۧ; σ.꧀ۧ; [V5]; xn--4xa.xn--3lb1944f; ; ; # σ.꧀ۧ
+்.ႢႵ; ; [P1, V5, V6]; xn--xmc83135idcxza.xn--9md2b; ; ; # ்.ႢႵ
+்.ⴂⴕ; ; [P1, V5, V6]; xn--xmc83135idcxza.xn--tkjwb; ; ; # ்.ⴂⴕ
+்.Ⴂⴕ; ; [P1, V5, V6]; xn--xmc83135idcxza.xn--9md086l; ; ; # ்.Ⴂⴕ
+xn--xmc83135idcxza.xn--9md086l; ்.Ⴂⴕ; [V5, V6];
xn--xmc83135idcxza.xn--9md086l; ; ; # ்.Ⴂⴕ
+xn--xmc83135idcxza.xn--tkjwb; ்.ⴂⴕ; [V5, V6]; xn--xmc83135idcxza.xn--tkjwb;
; ; # ்.ⴂⴕ
+xn--xmc83135idcxza.xn--9md2b; ்.ႢႵ; [V5, V6]; xn--xmc83135idcxza.xn--9md2b;
; ; # ்.ႢႵ
+ᰲ🄈⾛֦.߽; ᰲ🄈走֦.߽; [C2, P1, V5, V6]; xn--xcb756i493fwi5o.xn--1tb334j1197q; ;
xn--xcb756i493fwi5o.xn--1tb13454l; [P1, V5, V6] # ᰲ🄈走֦.߽
+ᰲ7,走֦.߽; ; [C2, P1, V5, V6]; xn--7,-bid991urn3k.xn--1tb334j1197q; ;
xn--7,-bid991urn3k.xn--1tb13454l; [P1, V5, V6] # ᰲ7,走֦.߽
+xn--7,-bid991urn3k.xn--1tb13454l; ᰲ7,走֦.߽; [P1, V5, V6];
xn--7,-bid991urn3k.xn--1tb13454l; ; ; # ᰲ7,走֦.߽
+xn--7,-bid991urn3k.xn--1tb334j1197q; ᰲ7,走֦.߽; [C2, P1, V5, V6];
xn--7,-bid991urn3k.xn--1tb334j1197q; ; ; # ᰲ7,走֦.߽
+xn--xcb756i493fwi5o.xn--1tb13454l; ᰲ🄈走֦.߽; [V5, V6];
xn--xcb756i493fwi5o.xn--1tb13454l; ; ; # ᰲ🄈走֦.߽
+xn--xcb756i493fwi5o.xn--1tb334j1197q; ᰲ🄈走֦.߽; [C2, V5, V6];
xn--xcb756i493fwi5o.xn--1tb334j1197q; ; ; # ᰲ🄈走֦.߽
+ᢗ。Ӏ; ᢗ.Ӏ; [P1, V6]; xn--hbf.xn--d5a86117e; ; ; # ᢗ.Ӏ
+ᢗ。Ӏ; ᢗ.Ӏ; [P1, V6]; xn--hbf.xn--d5a86117e; ; ; # ᢗ.Ӏ
+ᢗ。ӏ; ᢗ.ӏ; [P1, V6]; xn--hbf.xn--s5a83117e; ; ; # ᢗ.ӏ
+xn--hbf.xn--s5a83117e; ᢗ.ӏ; [V6]; xn--hbf.xn--s5a83117e; ; ; # ᢗ.ӏ
+xn--hbf.xn--d5a86117e; ᢗ.Ӏ; [V6]; xn--hbf.xn--d5a86117e; ; ; # ᢗ.Ӏ
+ᢗ。ӏ; ᢗ.ӏ; [P1, V6]; xn--hbf.xn--s5a83117e; ; ; # ᢗ.ӏ
+٨-。🝆ᄾ; ٨-.🝆ᄾ; [B1, P1, V3, V6]; xn----oqc.xn--qrd1699v327w; ; ; # ٨-.🝆ᄾ
+xn----oqc.xn--qrd1699v327w; ٨-.🝆ᄾ; [B1, V3, V6]; xn----oqc.xn--qrd1699v327w;
; ; # ٨-.🝆ᄾ
+-𐋷𖾑。󠆬; -𐋷𖾑.; [V3]; xn----991iq40y.; ; ; # -𐋷𖾑.
+xn----991iq40y.; -𐋷𖾑.; [V3]; xn----991iq40y.; ; ; # -𐋷𖾑.
+𐹳🐴멈.꯭; ; [B1, C1, P1, V5, V6]; xn--0ug6681d406b7bwk.xn--429a8682s; ;
xn--422b325mqb6i.xn--429a8682s; [B1, P1, V5, V6] # 𐹳🐴멈.꯭
+𐹳🐴멈.꯭; 𐹳🐴멈.꯭; [B1, C1, P1, V5, V6]; xn--0ug6681d406b7bwk.xn--429a8682s;
; xn--422b325mqb6i.xn--429a8682s; [B1, P1, V5, V6] # 𐹳🐴멈.꯭
+xn--422b325mqb6i.xn--429a8682s; 𐹳🐴멈.꯭; [B1, V5, V6];
xn--422b325mqb6i.xn--429a8682s; ; ; # 𐹳🐴멈.꯭
+xn--0ug6681d406b7bwk.xn--429a8682s; 𐹳🐴멈.꯭; [B1, C1, V5, V6];
xn--0ug6681d406b7bwk.xn--429a8682s; ; ; # 𐹳🐴멈.꯭
+≮.ݩ; ; [B1, P1, V6]; xn--gdh.xn--lfb92e; ; ; # ≮.ݩ
+≮.ݩ; ≮.ݩ; [B1, P1, V6]; xn--gdh.xn--lfb92e; ; ; # ≮.ݩ
+xn--gdh.xn--lfb92e; ≮.ݩ; [B1, V6]; xn--gdh.xn--lfb92e; ; ; # ≮.ݩ
+⾆。𑚶; 舌.𑚶; [B1, B2, B3, C1, P1, V6];
xn--tc1ao37z.xn--0ugx728gi1nfwqz2e; ; xn--tc1ao37z.xn--6e2dw557azds2d; [B2, B3,
B5, B6, P1, V5, V6] # 舌.𑚶
+舌。𑚶; 舌.𑚶; [B1, B2, B3, C1, P1, V6];
xn--tc1ao37z.xn--0ugx728gi1nfwqz2e; ; xn--tc1ao37z.xn--6e2dw557azds2d; [B2, B3,
B5, B6, P1, V5, V6] # 舌.𑚶
+xn--tc1ao37z.xn--6e2dw557azds2d; 舌.𑚶; [B2, B3, B5, B6, V5, V6];
xn--tc1ao37z.xn--6e2dw557azds2d; ; ; # 舌.𑚶
+xn--tc1ao37z.xn--0ugx728gi1nfwqz2e; 舌.𑚶; [B1, B2, B3, C1, V6];
xn--tc1ao37z.xn--0ugx728gi1nfwqz2e; ; ; # 舌.𑚶
+Ⴠ-.𝟷ς𞴺ς; Ⴠ-.1ς𞴺ς; [B1, C1, P1, V3, V6]; xn----z1g168i.xn--1-ymba92321c; ;
xn----z1g.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # Ⴠ-.1ς𞴺ς
+Ⴠ-.1ς𞴺ς; ; [B1, C1, P1, V3, V6]; xn----z1g168i.xn--1-ymba92321c; ;
xn----z1g.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # Ⴠ-.1ς𞴺ς
+ⴠ-.1ς𞴺ς; ; [B1, C1, V3]; xn----rgn530d.xn--1-ymba92321c; ;
xn----2ws.xn--1-0mba52321c; [B1, B6, V3] # ⴠ-.1ς𞴺ς
+Ⴠ-.1Σ𞴺Σ; Ⴠ-.1σ𞴺σ; [B1, C1, P1, V3, V6]; xn----z1g168i.xn--1-0mba52321c; ;
xn----z1g.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # Ⴠ-.1σ𞴺σ
+ⴠ-.1σ𞴺σ; ; [B1, C1, V3]; xn----rgn530d.xn--1-0mba52321c; ;
xn----2ws.xn--1-0mba52321c; [B1, B6, V3] # ⴠ-.1σ𞴺σ
+Ⴠ-.1σ𞴺Σ; Ⴠ-.1σ𞴺σ; [B1, C1, P1, V3, V6]; xn----z1g168i.xn--1-0mba52321c; ;
xn----z1g.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # Ⴠ-.1σ𞴺σ
+xn----z1g.xn--1-0mba52321c; Ⴠ-.1σ𞴺σ; [B1, B6, V3, V6];
xn----z1g.xn--1-0mba52321c; ; ; # Ⴠ-.1σ𞴺σ
+xn----z1g168i.xn--1-0mba52321c; Ⴠ-.1σ𞴺σ; [B1, C1, V3, V6];
xn----z1g168i.xn--1-0mba52321c; ; ; # Ⴠ-.1σ𞴺σ
+xn----2ws.xn--1-0mba52321c; ⴠ-.1σ𞴺σ; [B1, B6, V3]; xn----2ws.xn--1-0mba52321c;
; ; # ⴠ-.1σ𞴺σ
+xn----rgn530d.xn--1-0mba52321c; ⴠ-.1σ𞴺σ; [B1, C1, V3];
xn----rgn530d.xn--1-0mba52321c; ; ; # ⴠ-.1σ𞴺σ
+Ⴠ-.1ς𞴺Σ; Ⴠ-.1ς𞴺σ; [B1, C1, P1, V3, V6]; xn----z1g168i.xn--1-ymbd52321c; ;
xn----z1g.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # Ⴠ-.1ς𞴺σ
+ⴠ-.1ς𞴺σ; ; [B1, C1, V3]; xn----rgn530d.xn--1-ymbd52321c; ;
xn----2ws.xn--1-0mba52321c; [B1, B6, V3] # ⴠ-.1ς𞴺σ
+xn----rgn530d.xn--1-ymbd52321c; ⴠ-.1ς𞴺σ; [B1, C1, V3];
xn----rgn530d.xn--1-ymbd52321c; ; ; # ⴠ-.1ς𞴺σ
+xn----z1g168i.xn--1-ymbd52321c; Ⴠ-.1ς𞴺σ; [B1, C1, V3, V6];
xn----z1g168i.xn--1-ymbd52321c; ; ; # Ⴠ-.1ς𞴺σ
+xn----rgn530d.xn--1-ymba92321c; ⴠ-.1ς𞴺ς; [B1, C1, V3];
xn----rgn530d.xn--1-ymba92321c; ; ; # ⴠ-.1ς𞴺ς
+xn----z1g168i.xn--1-ymba92321c; Ⴠ-.1ς𞴺ς; [B1, C1, V3, V6];
xn----z1g168i.xn--1-ymba92321c; ; ; # Ⴠ-.1ς𞴺ς
+ⴠ-.𝟷ς𞴺ς; ⴠ-.1ς𞴺ς; [B1, C1, V3]; xn----rgn530d.xn--1-ymba92321c; ;
xn----2ws.xn--1-0mba52321c; [B1, B6, V3] # ⴠ-.1ς𞴺ς
+Ⴠ-.𝟷Σ𞴺Σ; Ⴠ-.1σ𞴺σ; [B1, C1, P1, V3, V6]; xn----z1g168i.xn--1-0mba52321c; ;
xn----z1g.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # Ⴠ-.1σ𞴺σ
+ⴠ-.𝟷σ𞴺σ; ⴠ-.1σ𞴺σ; [B1, C1, V3]; xn----rgn530d.xn--1-0mba52321c; ;
xn----2ws.xn--1-0mba52321c; [B1, B6, V3] # ⴠ-.1σ𞴺σ
+Ⴠ-.𝟷σ𞴺Σ; Ⴠ-.1σ𞴺σ; [B1, C1, P1, V3, V6]; xn----z1g168i.xn--1-0mba52321c; ;
xn----z1g.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # Ⴠ-.1σ𞴺σ
+Ⴠ-.𝟷ς𞴺Σ; Ⴠ-.1ς𞴺σ; [B1, C1, P1, V3, V6]; xn----z1g168i.xn--1-ymbd52321c; ;
xn----z1g.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # Ⴠ-.1ς𞴺σ
+ⴠ-.𝟷ς𞴺σ; ⴠ-.1ς𞴺σ; [B1, C1, V3]; xn----rgn530d.xn--1-ymbd52321c; ;
xn----2ws.xn--1-0mba52321c; [B1, B6, V3] # ⴠ-.1ς𞴺σ
+𑲘󠄒。𝟪Ⴜ; 𑲘.8Ⴜ; [P1, V5, V6]; xn--7m3d291b.xn--8-s1g; ; ; # 𑲘.8Ⴜ
+𑲘󠄒。8Ⴜ; 𑲘.8Ⴜ; [P1, V5, V6]; xn--7m3d291b.xn--8-s1g; ; ; # 𑲘.8Ⴜ
+𑲘󠄒。8ⴜ; 𑲘.8ⴜ; [P1, V5, V6]; xn--7m3d291b.xn--8-vws; ; ; # 𑲘.8ⴜ
+xn--7m3d291b.xn--8-vws; 𑲘.8ⴜ; [V5, V6]; xn--7m3d291b.xn--8-vws; ; ; # 𑲘.8ⴜ
+xn--7m3d291b.xn--8-s1g; 𑲘.8Ⴜ; [V5, V6]; xn--7m3d291b.xn--8-s1g; ; ; # 𑲘.8Ⴜ
+𑲘󠄒。𝟪ⴜ; 𑲘.8ⴜ; [P1, V5, V6]; xn--7m3d291b.xn--8-vws; ; ; # 𑲘.8ⴜ
+䪏ګߠु。뭕ᢝឹ; 䪏ګߠु.뭕ᢝឹ; [B5, B6]; xn--ekb23dj4at01n.xn--43e96bh910b; ; ; #
䪏ګߠु.뭕ᢝឹ
+䪏ګߠु。뭕ᢝឹ; 䪏ګߠु.뭕ᢝឹ; [B5, B6]; xn--ekb23dj4at01n.xn--43e96bh910b; ; ; #
䪏ګߠु.뭕ᢝឹ
+䪏ګߠु。뭕ᢝឹ; 䪏ګߠु.뭕ᢝឹ; [B5, B6]; xn--ekb23dj4at01n.xn--43e96bh910b; ; ; #
䪏ګߠु.뭕ᢝឹ
+䪏ګߠु。뭕ᢝឹ; 䪏ګߠु.뭕ᢝឹ; [B5, B6]; xn--ekb23dj4at01n.xn--43e96bh910b; ; ; #
䪏ګߠु.뭕ᢝឹ
+xn--ekb23dj4at01n.xn--43e96bh910b; 䪏ګߠु.뭕ᢝឹ; [B5, B6];
xn--ekb23dj4at01n.xn--43e96bh910b; ; ; # 䪏ګߠु.뭕ᢝឹ
+᮫。🂉; ᮫.🂉; [P1, V5, V6]; xn--zxf.xn--fx7ho0250c; ; ; # ᮫.🂉
+᮫。🂉; ᮫.🂉; [P1, V5, V6]; xn--zxf.xn--fx7ho0250c; ; ; # ᮫.🂉
+xn--zxf.xn--fx7ho0250c; ᮫.🂉; [V5, V6]; xn--zxf.xn--fx7ho0250c; ; ; # ᮫.🂉
+ૄ。ς𐹮𑈵; ૄ.ς𐹮𑈵; [B5, C2, P1, V6]; xn--dfc53161q.xn--3xa006lzo7nsfd; ;
xn--dfc53161q.xn--4xa8467k5mc; [B5, P1, V6] # ૄ.ς𐹮𑈵
+ૄ。Σ𐹮𑈵; ૄ.σ𐹮𑈵; [B5, C2, P1, V6]; xn--dfc53161q.xn--4xa895lzo7nsfd; ;
xn--dfc53161q.xn--4xa8467k5mc; [B5, P1, V6] # ૄ.σ𐹮𑈵
+ૄ。σ𐹮𑈵; ૄ.σ𐹮𑈵; [B5, C2, P1, V6]; xn--dfc53161q.xn--4xa895lzo7nsfd; ;
xn--dfc53161q.xn--4xa8467k5mc; [B5, P1, V6] # ૄ.σ𐹮𑈵
+xn--dfc53161q.xn--4xa8467k5mc; ૄ.σ𐹮𑈵; [B5, V6];
xn--dfc53161q.xn--4xa8467k5mc; ; ; # ૄ.σ𐹮𑈵
+xn--dfc53161q.xn--4xa895lzo7nsfd; ૄ.σ𐹮𑈵; [B5, C2, V6];
xn--dfc53161q.xn--4xa895lzo7nsfd; ; ; # ૄ.σ𐹮𑈵
+xn--dfc53161q.xn--3xa006lzo7nsfd; ૄ.ς𐹮𑈵; [B5, C2, V6];
xn--dfc53161q.xn--3xa006lzo7nsfd; ; ; # ૄ.ς𐹮𑈵
+𐫀ᡂ𑜫.𑘿; 𐫀ᡂ𑜫.𑘿; [B1, B2, B3, B6, V5]; xn--17e9625js1h.xn--sb2d; ; ; # 𐫀ᡂ𑜫.𑘿
+𐫀ᡂ𑜫.𑘿; ; [B1, B2, B3, B6, V5]; xn--17e9625js1h.xn--sb2d; ; ; # 𐫀ᡂ𑜫.𑘿
+xn--17e9625js1h.xn--sb2d; 𐫀ᡂ𑜫.𑘿; [B1, B2, B3, B6, V5];
xn--17e9625js1h.xn--sb2d; ; ; # 𐫀ᡂ𑜫.𑘿
+-。; -.; [C1, P1, V3, V6]; xn----7i12hu122k9ire.xn--0ug; ;
xn----7i12hu122k9ire.; [P1, V3, V6] # -.
+xn----7i12hu122k9ire.; -.; [V3, V6]; xn----7i12hu122k9ire.; ; ; # -.
+xn----7i12hu122k9ire.xn--0ug; -.; [C1, V3, V6];
xn----7i12hu122k9ire.xn--0ug; ; ; # -.
+𐹣.߂; 𐹣.߂; [B1]; xn--bo0d.xn--dsb; ; ; # 𐹣.߂
+𐹣.߂; ; [B1]; xn--bo0d.xn--dsb; ; ; # 𐹣.߂
+xn--bo0d.xn--dsb; 𐹣.߂; [B1]; xn--bo0d.xn--dsb; ; ; # 𐹣.߂
+-ߡ。Ↄ; -ߡ.Ↄ; [B1, P1, V3, V6]; xn----8cd.xn--q5g; ; ; # -ߡ.Ↄ
+-ߡ。Ↄ; -ߡ.Ↄ; [B1, P1, V3, V6]; xn----8cd.xn--q5g; ; ; # -ߡ.Ↄ
+-ߡ。ↄ; -ߡ.ↄ; [B1, V3]; xn----8cd.xn--r5g; ; ; # -ߡ.ↄ
+xn----8cd.xn--r5g; -ߡ.ↄ; [B1, V3]; xn----8cd.xn--r5g; ; ; # -ߡ.ↄ
+xn----8cd.xn--q5g; -ߡ.Ↄ; [B1, V3, V6]; xn----8cd.xn--q5g; ; ; # -ߡ.Ↄ
+-ߡ。ↄ; -ߡ.ↄ; [B1, V3]; xn----8cd.xn--r5g; ; ; # -ߡ.ↄ
+-︒󠄄。ß哑; -︒.ß哑; [B1, B5, B6, C1, C2, P1, V6];
xn----tgnt341h.xn--zca670n5f0binyk; ; xn----o89h.xn--ss-h46c5711e; [B1, B5, B6,
P1, V3, V6] # -︒.ß哑
+-。󠄄。ß哑; -..ß哑; [B1, B5, B6, C1, C2, P1, V3, V6, X4_2];
xn----tgn..xn--zca670n5f0binyk; [B1, B5, B6, C1, C2, P1, V3, V6, A4_2];
-..xn--ss-h46c5711e; [B1, B5, B6, P1, V3, V6, A4_2] # -..ß哑
+-。󠄄。SS哑; -..ss哑; [B1, B5, B6, C1, C2, P1, V3, V6, X4_2];
xn----tgn..xn--ss-k1ts75zb8ym; [B1, B5, B6, C1, C2, P1, V3, V6, A4_2];
-..xn--ss-h46c5711e; [B1, B5, B6, P1, V3, V6, A4_2] # -..ss哑
+-。󠄄。ss哑; -..ss哑; [B1, B5, B6, C1, C2, P1, V3, V6, X4_2];
xn----tgn..xn--ss-k1ts75zb8ym; [B1, B5, B6, C1, C2, P1, V3, V6, A4_2];
-..xn--ss-h46c5711e; [B1, B5, B6, P1, V3, V6, A4_2] # -..ss哑
+-。󠄄。Ss哑; -..ss哑; [B1, B5, B6, C1, C2, P1, V3, V6, X4_2];
xn----tgn..xn--ss-k1ts75zb8ym; [B1, B5, B6, C1, C2, P1, V3, V6, A4_2];
-..xn--ss-h46c5711e; [B1, B5, B6, P1, V3, V6, A4_2] # -..ss哑
+-..xn--ss-h46c5711e; -..ss哑; [B1, B5, B6, V3, V6, X4_2]; -..xn--ss-h46c5711e;
[B1, B5, B6, V3, V6, A4_2]; ; # -..ss哑
+xn----tgn..xn--ss-k1ts75zb8ym; -..ss哑; [B1, B5, B6, C1, C2, V3, V6, X4_2];
xn----tgn..xn--ss-k1ts75zb8ym; [B1, B5, B6, C1, C2, V3, V6, A4_2]; ; # -..ss哑
+xn----tgn..xn--zca670n5f0binyk; -..ß哑; [B1, B5, B6, C1, C2, V3, V6, X4_2];
xn----tgn..xn--zca670n5f0binyk; [B1, B5, B6, C1, C2, V3, V6, A4_2]; ; # -..ß哑
+-︒󠄄。SS哑; -︒.ss哑; [B1, B5, B6, C1, C2, P1, V6];
xn----tgnt341h.xn--ss-k1ts75zb8ym; ; xn----o89h.xn--ss-h46c5711e; [B1, B5, B6,
P1, V3, V6] # -︒.ss哑
+-︒󠄄。ss哑; -︒.ss哑; [B1, B5, B6, C1, C2, P1, V6];
xn----tgnt341h.xn--ss-k1ts75zb8ym; ; xn----o89h.xn--ss-h46c5711e; [B1, B5, B6,
P1, V3, V6] # -︒.ss哑
+-︒󠄄。Ss哑; -︒.ss哑; [B1, B5, B6, C1, C2, P1, V6];
xn----tgnt341h.xn--ss-k1ts75zb8ym; ; xn----o89h.xn--ss-h46c5711e; [B1, B5, B6,
P1, V3, V6] # -︒.ss哑
+xn----o89h.xn--ss-h46c5711e; -︒.ss哑; [B1, B5, B6, V3, V6];
xn----o89h.xn--ss-h46c5711e; ; ; # -︒.ss哑
+xn----tgnt341h.xn--ss-k1ts75zb8ym; -︒.ss哑; [B1, B5, B6, C1, C2, V6];
xn----tgnt341h.xn--ss-k1ts75zb8ym; ; ; # -︒.ss哑
+xn----tgnt341h.xn--zca670n5f0binyk; -︒.ß哑; [B1, B5, B6, C1, C2, V6];
xn----tgnt341h.xn--zca670n5f0binyk; ; ; # -︒.ß哑
+︒.𑑂︯; ︒.𑑂︯; [P1, V5, V6]; xn--y86c.xn--s96cu30b; ; ; # ︒.𑑂︯
+︒.𑑂︯; ︒.𑑂︯; [P1, V5, V6]; xn--y86c.xn--s96cu30b; ; ; # ︒.𑑂︯
+。.𑑂︯; ..𑑂︯; [V5, X4_2]; ..xn--s96cu30b; [V5, A4_2]; ; # ..𑑂︯
+..xn--s96cu30b; ..𑑂︯; [V5, X4_2]; ..xn--s96cu30b; [V5, A4_2]; ; # ..𑑂︯
+xn--y86c.xn--s96cu30b; ︒.𑑂︯; [V5, V6]; xn--y86c.xn--s96cu30b; ; ; # ︒.𑑂︯
+꤬。; ꤬.; [C2, V5]; xn--zi9a.xn--1ug; ; xn--zi9a.; [V5] # ꤬.
+xn--zi9a.; ꤬.; [V5]; xn--zi9a.; ; ; # ꤬.
+xn--zi9a.xn--1ug; ꤬.; [C2, V5]; xn--zi9a.xn--1ug; ; ; # ꤬.
+。ﳗ; .هج; [B1, C2, P1, V6]; xn--1ug80651l.xn--rgb7c; ; xn--d356e.xn--rgb7c;
[B1, P1, V6] # .هج
+。هج; .هج; [B1, C2, P1, V6]; xn--1ug80651l.xn--rgb7c; ;
xn--d356e.xn--rgb7c; [B1, P1, V6] # .هج
+xn--d356e.xn--rgb7c; .هج; [B1, V6]; xn--d356e.xn--rgb7c; ; ; # .هج
+xn--1ug80651l.xn--rgb7c; .هج; [B1, C2, V6]; xn--1ug80651l.xn--rgb7c; ; ; #
.هج
+-Ⴄ𝟢٣.𑍴ς; -Ⴄ0٣.𑍴ς; [B1, P1, V3, V5, V6]; xn---0-iyd216h.xn--3xa1220l; ;
xn---0-iyd216h.xn--4xa9120l; # -Ⴄ0٣.𑍴ς
+-Ⴄ0٣.𑍴ς; ; [B1, P1, V3, V5, V6]; xn---0-iyd216h.xn--3xa1220l; ;
xn---0-iyd216h.xn--4xa9120l; # -Ⴄ0٣.𑍴ς
+-ⴄ0٣.𑍴ς; ; [B1, V3, V5]; xn---0-iyd8660b.xn--3xa1220l; ;
xn---0-iyd8660b.xn--4xa9120l; # -ⴄ0٣.𑍴ς
+-Ⴄ0٣.𑍴Σ; -Ⴄ0٣.𑍴σ; [B1, P1, V3, V5, V6]; xn---0-iyd216h.xn--4xa9120l; ; ; #
-Ⴄ0٣.𑍴σ
+-ⴄ0٣.𑍴σ; ; [B1, V3, V5]; xn---0-iyd8660b.xn--4xa9120l; ; ; # -ⴄ0٣.𑍴σ
+xn---0-iyd8660b.xn--4xa9120l; -ⴄ0٣.𑍴σ; [B1, V3, V5];
xn---0-iyd8660b.xn--4xa9120l; ; ; # -ⴄ0٣.𑍴σ
+xn---0-iyd216h.xn--4xa9120l; -Ⴄ0٣.𑍴σ; [B1, V3, V5, V6];
xn---0-iyd216h.xn--4xa9120l; ; ; # -Ⴄ0٣.𑍴σ
+xn---0-iyd8660b.xn--3xa1220l; -ⴄ0٣.𑍴ς; [B1, V3, V5];
xn---0-iyd8660b.xn--3xa1220l; ; ; # -ⴄ0٣.𑍴ς
+xn---0-iyd216h.xn--3xa1220l; -Ⴄ0٣.𑍴ς; [B1, V3, V5, V6];
xn---0-iyd216h.xn--3xa1220l; ; ; # -Ⴄ0٣.𑍴ς
+-ⴄ𝟢٣.𑍴ς; -ⴄ0٣.𑍴ς; [B1, V3, V5]; xn---0-iyd8660b.xn--3xa1220l; ;
xn---0-iyd8660b.xn--4xa9120l; # -ⴄ0٣.𑍴ς
+-Ⴄ𝟢٣.𑍴Σ; -Ⴄ0٣.𑍴σ; [B1, P1, V3, V5, V6]; xn---0-iyd216h.xn--4xa9120l; ; ; #
-Ⴄ0٣.𑍴σ
+-ⴄ𝟢٣.𑍴σ; -ⴄ0٣.𑍴σ; [B1, V3, V5]; xn---0-iyd8660b.xn--4xa9120l; ; ; # -ⴄ0٣.𑍴σ
+。-; .-; [P1, V3, V6]; xn--xm38e.-; ; ; # .-
+xn--xm38e.-; .-; [V3, V6]; xn--xm38e.-; ; ; # .-
+⋠𐋮.༘ß≯; ⋠𐋮.༘ß≯; [P1, V6]; xn--pgh4639f.xn--zca593eo6oc013y; ;
xn--pgh4639f.xn--ss-ifj426nle504a; # ⋠𐋮.༘ß≯
+⋠𐋮.༘ß≯; ⋠𐋮.༘ß≯; [P1, V6]; xn--pgh4639f.xn--zca593eo6oc013y; ;
xn--pgh4639f.xn--ss-ifj426nle504a; # ⋠𐋮.༘ß≯
+⋠𐋮.༘ß≯; ; [P1, V6]; xn--pgh4639f.xn--zca593eo6oc013y; ;
xn--pgh4639f.xn--ss-ifj426nle504a; # ⋠𐋮.༘ß≯
+⋠𐋮.༘ß≯; ⋠𐋮.༘ß≯; [P1, V6]; xn--pgh4639f.xn--zca593eo6oc013y; ;
xn--pgh4639f.xn--ss-ifj426nle504a; # ⋠𐋮.༘ß≯
+⋠𐋮.༘SS≯; ⋠𐋮.༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; #
⋠𐋮.༘ss≯
+⋠𐋮.༘SS≯; ⋠𐋮.༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+⋠𐋮.༘ss≯; ; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+⋠𐋮.༘ss≯; ⋠𐋮.༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; #
⋠𐋮.༘ss≯
+⋠𐋮.༘Ss≯; ⋠𐋮.༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; #
⋠𐋮.༘ss≯
+⋠𐋮.༘Ss≯; ⋠𐋮.༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+xn--pgh4639f.xn--ss-ifj426nle504a; ⋠𐋮.༘ss≯; [V6];
xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+xn--pgh4639f.xn--zca593eo6oc013y; ⋠𐋮.༘ß≯; [V6];
xn--pgh4639f.xn--zca593eo6oc013y; ; ; # ⋠𐋮.༘ß≯
+⋠𐋮.༘SS≯; ⋠𐋮.༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; #
⋠𐋮.༘ss≯
+⋠𐋮.༘SS≯; ⋠𐋮.༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+⋠𐋮.༘ss≯; ⋠𐋮.༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+⋠𐋮.༘ss≯; ⋠𐋮.༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; #
⋠𐋮.༘ss≯
+⋠𐋮.༘Ss≯; ⋠𐋮.༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; #
⋠𐋮.༘ss≯
+⋠𐋮.༘Ss≯; ⋠𐋮.༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+1𐋸٤。ﮤ; 1𐋸٤.ۀ; [B1, P1, V6]; xn--1-hqc3905q.xn--zkb83268gqee4a; ; ; # 1𐋸٤.ۀ
+1𐋸٤。ۀ; 1𐋸٤.ۀ; [B1, P1, V6]; xn--1-hqc3905q.xn--zkb83268gqee4a; ; ; # 1𐋸٤.ۀ
+1𐋸٤。ۀ; 1𐋸٤.ۀ; [B1, P1, V6]; xn--1-hqc3905q.xn--zkb83268gqee4a; ; ; #
1𐋸٤.ۀ
+xn--1-hqc3905q.xn--zkb83268gqee4a; 1𐋸٤.ۀ; [B1, V6];
xn--1-hqc3905q.xn--zkb83268gqee4a; ; ; # 1𐋸٤.ۀ
+儭-。𐹴Ⴢ; 儭-.𐹴Ⴢ; [B1, B6, C1, P1, V3, V6]; xn----gz7a.xn--6nd249ejl4pusr7b; ;
xn----gz7a.xn--6nd5001kyw98a; [B1, B6, P1, V3, V6] # 儭-.𐹴Ⴢ
+儭-。𐹴Ⴢ; 儭-.𐹴Ⴢ; [B1, B6, C1, P1, V3, V6]; xn----gz7a.xn--6nd249ejl4pusr7b; ;
xn----gz7a.xn--6nd5001kyw98a; [B1, B6, P1, V3, V6] # 儭-.𐹴Ⴢ
+儭-。𐹴ⴢ; 儭-.𐹴ⴢ; [B1, B6, C1, P1, V3, V6]; xn----gz7a.xn--0ug472cfq0pus98b; ;
xn----gz7a.xn--qlj9223eywx0b; [B1, B6, P1, V3, V6] # 儭-.𐹴ⴢ
+xn----gz7a.xn--qlj9223eywx0b; 儭-.𐹴ⴢ; [B1, B6, V3, V6];
xn----gz7a.xn--qlj9223eywx0b; ; ; # 儭-.𐹴ⴢ
+xn----gz7a.xn--0ug472cfq0pus98b; 儭-.𐹴ⴢ; [B1, B6, C1, V3, V6];
xn----gz7a.xn--0ug472cfq0pus98b; ; ; # 儭-.𐹴ⴢ
+xn----gz7a.xn--6nd5001kyw98a; 儭-.𐹴Ⴢ; [B1, B6, V3, V6];
xn----gz7a.xn--6nd5001kyw98a; ; ; # 儭-.𐹴Ⴢ
+xn----gz7a.xn--6nd249ejl4pusr7b; 儭-.𐹴Ⴢ; [B1, B6, C1, V3, V6];
xn----gz7a.xn--6nd249ejl4pusr7b; ; ; # 儭-.𐹴Ⴢ
+儭-。𐹴ⴢ; 儭-.𐹴ⴢ; [B1, B6, C1, P1, V3, V6]; xn----gz7a.xn--0ug472cfq0pus98b; ;
xn----gz7a.xn--qlj9223eywx0b; [B1, B6, P1, V3, V6] # 儭-.𐹴ⴢ
+𝟺𐋷ڹ.𞤭; 4𐋷ڹ.𞤭; [B1, B2, B3, P1, V6]; xn--4-cvc5384q.xn--le6hi7322b; ; ; #
4𐋷ڹ.𞤭
+4𐋷ڹ.𞤭; ; [B1, B2, B3, P1, V6]; xn--4-cvc5384q.xn--le6hi7322b; ; ; # 4𐋷ڹ.𞤭
+4𐋷ڹ.𞤋; 4𐋷ڹ.𞤭; [B1, B2, B3, P1, V6]; xn--4-cvc5384q.xn--le6hi7322b; ; ; #
4𐋷ڹ.𞤭
+xn--4-cvc5384q.xn--le6hi7322b; 4𐋷ڹ.𞤭; [B1, B2, B3, V6];
xn--4-cvc5384q.xn--le6hi7322b; ; ; # 4𐋷ڹ.𞤭
+𝟺𐋷ڹ.𞤋; 4𐋷ڹ.𞤭; [B1, B2, B3, P1, V6]; xn--4-cvc5384q.xn--le6hi7322b; ; ; #
4𐋷ڹ.𞤭
+≯-ꡋ𑲣.⒈𐹭; ; [B1, P1, V6]; xn----ogox061d5i8d.xn--tsh0666f; ; ; # ≯-ꡋ𑲣.⒈𐹭
+≯-ꡋ𑲣.⒈𐹭; ≯-ꡋ𑲣.⒈𐹭; [B1, P1, V6]; xn----ogox061d5i8d.xn--tsh0666f; ; ; #
≯-ꡋ𑲣.⒈𐹭
+≯-ꡋ𑲣.1.𐹭; ; [B1, P1, V6]; xn----ogox061d5i8d.1.xn--lo0d; ; ; # ≯-ꡋ𑲣.1.𐹭
+≯-ꡋ𑲣.1.𐹭; ≯-ꡋ𑲣.1.𐹭; [B1, P1, V6]; xn----ogox061d5i8d.1.xn--lo0d; ; ; #
≯-ꡋ𑲣.1.𐹭
+xn----ogox061d5i8d.1.xn--lo0d; ≯-ꡋ𑲣.1.𐹭; [B1, V6];
xn----ogox061d5i8d.1.xn--lo0d; ; ; # ≯-ꡋ𑲣.1.𐹭
+xn----ogox061d5i8d.xn--tsh0666f; ≯-ꡋ𑲣.⒈𐹭; [B1, V6];
xn----ogox061d5i8d.xn--tsh0666f; ; ; # ≯-ꡋ𑲣.⒈𐹭
+̰.蚀; ̰.蚀; [P1, V5, V6]; xn--xta.xn--e91aw9417e; ; ; # ̰.蚀
+̰.蚀; ; [P1, V5, V6]; xn--xta.xn--e91aw9417e; ; ; # ̰.蚀
+xn--xta.xn--e91aw9417e; ̰.蚀; [V5, V6]; xn--xta.xn--e91aw9417e; ; ; # ̰.蚀
+יּႸ.𞡼𑇀ß⃗; יּႸ.𞡼𑇀ß⃗; [B2, B3, P1, V6]; xn--kdb1d867b.xn--zca284nhg9nrrxg; ;
xn--kdb1d867b.xn--ss-yju5690ken9h; # יּႸ.𞡼𑇀ß⃗
+יּႸ.𞡼𑇀ß⃗; ; [B2, B3, P1, V6]; xn--kdb1d867b.xn--zca284nhg9nrrxg; ;
xn--kdb1d867b.xn--ss-yju5690ken9h; # יּႸ.𞡼𑇀ß⃗
+יּⴘ.𞡼𑇀ß⃗; ; [B2, B3]; xn--kdb1d278n.xn--zca284nhg9nrrxg; ;
xn--kdb1d278n.xn--ss-yju5690ken9h; # יּⴘ.𞡼𑇀ß⃗
+יּႸ.𞡼𑇀SS⃗; יּႸ.𞡼𑇀ss⃗; [B2, B3, P1, V6]; xn--kdb1d867b.xn--ss-yju5690ken9h; ; ;
# יּႸ.𞡼𑇀ss⃗
+יּⴘ.𞡼𑇀ss⃗; ; [B2, B3]; xn--kdb1d278n.xn--ss-yju5690ken9h; ; ; # יּⴘ.𞡼𑇀ss⃗
+xn--kdb1d278n.xn--ss-yju5690ken9h; יּⴘ.𞡼𑇀ss⃗; [B2, B3];
xn--kdb1d278n.xn--ss-yju5690ken9h; ; ; # יּⴘ.𞡼𑇀ss⃗
+xn--kdb1d867b.xn--ss-yju5690ken9h; יּႸ.𞡼𑇀ss⃗; [B2, B3, V6];
xn--kdb1d867b.xn--ss-yju5690ken9h; ; ; # יּႸ.𞡼𑇀ss⃗
+xn--kdb1d278n.xn--zca284nhg9nrrxg; יּⴘ.𞡼𑇀ß⃗; [B2, B3];
xn--kdb1d278n.xn--zca284nhg9nrrxg; ; ; # יּⴘ.𞡼𑇀ß⃗
+xn--kdb1d867b.xn--zca284nhg9nrrxg; יּႸ.𞡼𑇀ß⃗; [B2, B3, V6];
xn--kdb1d867b.xn--zca284nhg9nrrxg; ; ; # יּႸ.𞡼𑇀ß⃗
+יּⴘ.𞡼𑇀ß⃗; יּⴘ.𞡼𑇀ß⃗; [B2, B3]; xn--kdb1d278n.xn--zca284nhg9nrrxg; ;
xn--kdb1d278n.xn--ss-yju5690ken9h; # יּⴘ.𞡼𑇀ß⃗
+יּႸ.𞡼𑇀SS⃗; יּႸ.𞡼𑇀ss⃗; [B2, B3, P1, V6]; xn--kdb1d867b.xn--ss-yju5690ken9h; ; ;
# יּႸ.𞡼𑇀ss⃗
+יּⴘ.𞡼𑇀ss⃗; יּⴘ.𞡼𑇀ss⃗; [B2, B3]; xn--kdb1d278n.xn--ss-yju5690ken9h; ; ; #
יּⴘ.𞡼𑇀ss⃗
+יּႸ.𞡼𑇀ss⃗; ; [B2, B3, P1, V6]; xn--kdb1d867b.xn--ss-yju5690ken9h; ; ; #
יּႸ.𞡼𑇀ss⃗
+יּႸ.𞡼𑇀ss⃗; יּႸ.𞡼𑇀ss⃗; [B2, B3, P1, V6]; xn--kdb1d867b.xn--ss-yju5690ken9h; ; ;
# יּႸ.𞡼𑇀ss⃗
+ᮣ𐹰。凬; ᮣ𐹰.凬; [B1, P1, V5, V6]; xn--rxfz314ilg20c.xn--t9q; ; ; # ᮣ𐹰.凬
+ᮣ𐹰。凬; ᮣ𐹰.凬; [B1, P1, V5, V6]; xn--rxfz314ilg20c.xn--t9q; ; ; # ᮣ𐹰.凬
+xn--rxfz314ilg20c.xn--t9q; ᮣ𐹰.凬; [B1, V5, V6]; xn--rxfz314ilg20c.xn--t9q; ; ;
# ᮣ𐹰.凬
+🢟🄈ꡎ。྄; 🢟🄈ꡎ.྄; [C2, P1, V5, V6]; xn--1ug4874cfd0kbmg.xn--3ed; ;
xn--nc9aq743ds0e.xn--3ed; [P1, V5, V6] # 🢟🄈ꡎ.྄
+🢟7,ꡎ。྄; 🢟7,ꡎ.྄; [C2, P1, V5, V6]; xn--7,-n1t0654eqo3o.xn--3ed; ;
xn--7,-gh9hg322i.xn--3ed; [P1, V5, V6] # 🢟7,ꡎ.྄
+xn--7,-gh9hg322i.xn--3ed; 🢟7,ꡎ.྄; [P1, V5, V6]; xn--7,-gh9hg322i.xn--3ed; ; ;
# 🢟7,ꡎ.྄
+xn--7,-n1t0654eqo3o.xn--3ed; 🢟7,ꡎ.྄; [C2, P1, V5, V6];
xn--7,-n1t0654eqo3o.xn--3ed; ; ; # 🢟7,ꡎ.྄
+xn--nc9aq743ds0e.xn--3ed; 🢟🄈ꡎ.྄; [V5, V6]; xn--nc9aq743ds0e.xn--3ed; ; ; #
🢟🄈ꡎ.྄
+xn--1ug4874cfd0kbmg.xn--3ed; 🢟🄈ꡎ.྄; [C2, V5, V6];
xn--1ug4874cfd0kbmg.xn--3ed; ; ; # 🢟🄈ꡎ.྄
+ꡔ。္ᢇ; ꡔ.္ᢇ; [V5]; xn--tc9a.xn--9jd663b; ; ; # ꡔ.္ᢇ
+xn--tc9a.xn--9jd663b; ꡔ.္ᢇ; [V5]; xn--tc9a.xn--9jd663b; ; ; # ꡔ.္ᢇ
+⃫≮.𝨖; ; [P1, V5, V6]; xn--e1g71d.xn--772h; ; ; # ⃫≮.𝨖
+⃫≮.𝨖; ⃫≮.𝨖; [P1, V5, V6]; xn--e1g71d.xn--772h; ; ; # ⃫≮.𝨖
+xn--e1g71d.xn--772h; ⃫≮.𝨖; [V5, V6]; xn--e1g71d.xn--772h; ; ; # ⃫≮.𝨖
+Ⴢ≯褦.ᠪߪႾݧ; Ⴢ≯褦.ᠪߪႾݧ; [B5, B6, P1, V6]; xn--6nd461g478e.xn--rpb5x49td2h; ; ; #
Ⴢ≯褦.ᠪߪႾݧ
+Ⴢ≯褦.ᠪߪႾݧ; Ⴢ≯褦.ᠪߪႾݧ; [B5, B6, P1, V6]; xn--6nd461g478e.xn--rpb5x49td2h; ; ; #
Ⴢ≯褦.ᠪߪႾݧ
+Ⴢ≯褦.ᠪߪႾݧ; ; [B5, B6, P1, V6]; xn--6nd461g478e.xn--rpb5x49td2h; ; ; # Ⴢ≯褦.ᠪߪႾݧ
+Ⴢ≯褦.ᠪߪႾݧ; Ⴢ≯褦.ᠪߪႾݧ; [B5, B6, P1, V6]; xn--6nd461g478e.xn--rpb5x49td2h; ; ; #
Ⴢ≯褦.ᠪߪႾݧ
+ⴢ≯褦.ᠪߪⴞݧ; ⴢ≯褦.ᠪߪⴞݧ; [B5, B6, P1, V6]; xn--hdh433bev8e.xn--rpb5x392bcyt; ; ;
# ⴢ≯褦.ᠪߪⴞݧ
+ⴢ≯褦.ᠪߪⴞݧ; ; [B5, B6, P1, V6]; xn--hdh433bev8e.xn--rpb5x392bcyt; ; ; # ⴢ≯褦.ᠪߪⴞݧ
+Ⴢ≯褦.ᠪߪⴞݧ; ; [B5, B6, P1, V6]; xn--6nd461g478e.xn--rpb5x392bcyt; ; ; # Ⴢ≯褦.ᠪߪⴞݧ
+Ⴢ≯褦.ᠪߪⴞݧ; Ⴢ≯褦.ᠪߪⴞݧ; [B5, B6, P1, V6]; xn--6nd461g478e.xn--rpb5x392bcyt; ; ;
# Ⴢ≯褦.ᠪߪⴞݧ
+xn--6nd461g478e.xn--rpb5x392bcyt; Ⴢ≯褦.ᠪߪⴞݧ; [B5, B6, V6];
xn--6nd461g478e.xn--rpb5x392bcyt; ; ; # Ⴢ≯褦.ᠪߪⴞݧ
+xn--hdh433bev8e.xn--rpb5x392bcyt; ⴢ≯褦.ᠪߪⴞݧ; [B5, B6, V6];
xn--hdh433bev8e.xn--rpb5x392bcyt; ; ; # ⴢ≯褦.ᠪߪⴞݧ
+xn--6nd461g478e.xn--rpb5x49td2h; Ⴢ≯褦.ᠪߪႾݧ; [B5, B6, V6];
xn--6nd461g478e.xn--rpb5x49td2h; ; ; # Ⴢ≯褦.ᠪߪႾݧ
+ⴢ≯褦.ᠪߪⴞݧ; ⴢ≯褦.ᠪߪⴞݧ; [B5, B6, P1, V6]; xn--hdh433bev8e.xn--rpb5x392bcyt; ; ;
# ⴢ≯褦.ᠪߪⴞݧ
+ⴢ≯褦.ᠪߪⴞݧ; ⴢ≯褦.ᠪߪⴞݧ; [B5, B6, P1, V6]; xn--hdh433bev8e.xn--rpb5x392bcyt; ; ; #
ⴢ≯褦.ᠪߪⴞݧ
+Ⴢ≯褦.ᠪߪⴞݧ; Ⴢ≯褦.ᠪߪⴞݧ; [B5, B6, P1, V6]; xn--6nd461g478e.xn--rpb5x392bcyt; ; ; #
Ⴢ≯褦.ᠪߪⴞݧ
+Ⴢ≯褦.ᠪߪⴞݧ; Ⴢ≯褦.ᠪߪⴞݧ; [B5, B6, P1, V6]; xn--6nd461g478e.xn--rpb5x392bcyt; ; ;
# Ⴢ≯褦.ᠪߪⴞݧ
+󠆒꥓。𞤙ٻꡘ; ꥓.𞤻ٻꡘ; [B2, B3, C1, P1, V6]; xn--0ug8815chtz0e.xn--0ib8893fegvj; ;
xn--3j9al6189a.xn--0ib8893fegvj; [B2, B3, P1, V6] # ꥓.𞤻ٻꡘ
+󠆒꥓。𞤻ٻꡘ; ꥓.𞤻ٻꡘ; [B2, B3, C1, P1, V6]; xn--0ug8815chtz0e.xn--0ib8893fegvj; ;
xn--3j9al6189a.xn--0ib8893fegvj; [B2, B3, P1, V6] # ꥓.𞤻ٻꡘ
+xn--3j9al6189a.xn--0ib8893fegvj; ꥓.𞤻ٻꡘ; [B2, B3, V6];
xn--3j9al6189a.xn--0ib8893fegvj; ; ; # ꥓.𞤻ٻꡘ
+xn--0ug8815chtz0e.xn--0ib8893fegvj; ꥓.𞤻ٻꡘ; [B2, B3, C1, V6];
xn--0ug8815chtz0e.xn--0ib8893fegvj; ; ; # ꥓.𞤻ٻꡘ
+.≯; ; [C1, P1, V6]; xn--0ug.xn--hdh; ; .xn--hdh; [P1, V6, A4_2] # .≯
+.≯; .≯; [C1, P1, V6]; xn--0ug.xn--hdh; ; .xn--hdh; [P1, V6, A4_2] # .≯
+.xn--hdh; .≯; [V6, X4_2]; .xn--hdh; [V6, A4_2]; ; # .≯
+xn--0ug.xn--hdh; .≯; [C1, V6]; xn--0ug.xn--hdh; ; ; # .≯
+𰅧-.꯭-悜; 𰅧-.꯭-悜; [P1, V3, V5, V6]; xn----7m53aj640l.xn----8f4br83t; ; ; #
𰅧-.꯭-悜
+𰅧-.꯭-悜; ; [P1, V3, V5, V6]; xn----7m53aj640l.xn----8f4br83t; ; ; # 𰅧-.꯭-悜
+xn----7m53aj640l.xn----8f4br83t; 𰅧-.꯭-悜; [V3, V5, V6];
xn----7m53aj640l.xn----8f4br83t; ; ; # 𰅧-.꯭-悜
+ᡉ⬞ᢜ.-𞣑; ; [C2, P1, V3, V6]; xn--87e0ol04cdl39e.xn----ugn5e3763s; ;
xn--87e0ol04cdl39e.xn----qinu247r; [P1, V3, V6] # ᡉ⬞ᢜ.-𞣑
+xn--87e0ol04cdl39e.xn----qinu247r; ᡉ⬞ᢜ.-𞣑; [V3, V6];
xn--87e0ol04cdl39e.xn----qinu247r; ; ; # ᡉ⬞ᢜ.-𞣑
+xn--87e0ol04cdl39e.xn----ugn5e3763s; ᡉ⬞ᢜ.-𞣑; [C2, V3, V6];
xn--87e0ol04cdl39e.xn----ugn5e3763s; ; ; # ᡉ⬞ᢜ.-𞣑
+⒐衃Ⴝ.ڂႴ; ; [B1, B2, B3, C1, P1, V6]; xn--1nd159ecmd785k.xn--7ib433c; ;
xn--1nd362hy16e.xn--7ib433c; [B1, B2, B3, P1, V6] # ⒐衃Ⴝ.ڂႴ
+9.衃Ⴝ.ڂႴ; ; [B1, B2, B3, C1, P1, V6]; 9.xn--1nd159e1y2f.xn--7ib433c; ;
9.xn--1nd9032d.xn--7ib433c; [B1, B2, B3, P1, V6] # 9.衃Ⴝ.ڂႴ
+9.衃ⴝ.ڂⴔ; ; [B1, B2, B3, C1]; 9.xn--0ug862cbm5e.xn--7ib268q; ;
9.xn--llj1920a.xn--7ib268q; [B1, B2, B3] # 9.衃ⴝ.ڂⴔ
+9.衃Ⴝ.ڂⴔ; ; [B1, B2, B3, C1, P1, V6]; 9.xn--1nd159e1y2f.xn--7ib268q; ;
9.xn--1nd9032d.xn--7ib268q; [B1, B2, B3, P1, V6] # 9.衃Ⴝ.ڂⴔ
+9.xn--1nd9032d.xn--7ib268q; 9.衃Ⴝ.ڂⴔ; [B1, B2, B3, V6];
9.xn--1nd9032d.xn--7ib268q; ; ; # 9.衃Ⴝ.ڂⴔ
+9.xn--1nd159e1y2f.xn--7ib268q; 9.衃Ⴝ.ڂⴔ; [B1, B2, B3, C1, V6];
9.xn--1nd159e1y2f.xn--7ib268q; ; ; # 9.衃Ⴝ.ڂⴔ
+9.xn--llj1920a.xn--7ib268q; 9.衃ⴝ.ڂⴔ; [B1, B2, B3]; 9.xn--llj1920a.xn--7ib268q;
; ; # 9.衃ⴝ.ڂⴔ
+9.xn--0ug862cbm5e.xn--7ib268q; 9.衃ⴝ.ڂⴔ; [B1, B2, B3, C1];
9.xn--0ug862cbm5e.xn--7ib268q; ; ; # 9.衃ⴝ.ڂⴔ
+9.xn--1nd9032d.xn--7ib433c; 9.衃Ⴝ.ڂႴ; [B1, B2, B3, V6];
9.xn--1nd9032d.xn--7ib433c; ; ; # 9.衃Ⴝ.ڂႴ
+9.xn--1nd159e1y2f.xn--7ib433c; 9.衃Ⴝ.ڂႴ; [B1, B2, B3, C1, V6];
9.xn--1nd159e1y2f.xn--7ib433c; ; ; # 9.衃Ⴝ.ڂႴ
+⒐衃ⴝ.ڂⴔ; ; [B1, B2, B3, C1, P1, V6]; xn--0ugx0px1izu2h.xn--7ib268q; ;
xn--1shy52abz3f.xn--7ib268q; [B1, B2, B3, P1, V6] # ⒐衃ⴝ.ڂⴔ
+⒐衃Ⴝ.ڂⴔ; ; [B1, B2, B3, C1, P1, V6]; xn--1nd159ecmd785k.xn--7ib268q; ;
xn--1nd362hy16e.xn--7ib268q; [B1, B2, B3, P1, V6] # ⒐衃Ⴝ.ڂⴔ
+xn--1nd362hy16e.xn--7ib268q; ⒐衃Ⴝ.ڂⴔ; [B1, B2, B3, V6];
xn--1nd362hy16e.xn--7ib268q; ; ; # ⒐衃Ⴝ.ڂⴔ
+xn--1nd159ecmd785k.xn--7ib268q; ⒐衃Ⴝ.ڂⴔ; [B1, B2, B3, C1, V6];
xn--1nd159ecmd785k.xn--7ib268q; ; ; # ⒐衃Ⴝ.ڂⴔ
+xn--1shy52abz3f.xn--7ib268q; ⒐衃ⴝ.ڂⴔ; [B1, B2, B3, V6];
xn--1shy52abz3f.xn--7ib268q; ; ; # ⒐衃ⴝ.ڂⴔ
+xn--0ugx0px1izu2h.xn--7ib268q; ⒐衃ⴝ.ڂⴔ; [B1, B2, B3, C1, V6];
xn--0ugx0px1izu2h.xn--7ib268q; ; ; # ⒐衃ⴝ.ڂⴔ
+xn--1nd362hy16e.xn--7ib433c; ⒐衃Ⴝ.ڂႴ; [B1, B2, B3, V6];
xn--1nd362hy16e.xn--7ib433c; ; ; # ⒐衃Ⴝ.ڂႴ
+xn--1nd159ecmd785k.xn--7ib433c; ⒐衃Ⴝ.ڂႴ; [B1, B2, B3, C1, V6];
xn--1nd159ecmd785k.xn--7ib433c; ; ; # ⒐衃Ⴝ.ڂႴ
+ߡ。--⸬; ߡ.--⸬; [B1, B3, C1, V3]; xn--8sb884j.xn-----iw2a; ;
xn--8sb.xn-----iw2a; [B1, V3] # ߡ.--⸬
+xn--8sb.xn-----iw2a; ߡ.--⸬; [B1, V3]; xn--8sb.xn-----iw2a; ; ; # ߡ.--⸬
+xn--8sb884j.xn-----iw2a; ߡ.--⸬; [B1, B3, C1, V3]; xn--8sb884j.xn-----iw2a; ;
; # ߡ.--⸬
+𞥓.ܘ; 𞥓.ܘ; ; xn--of6h.xn--inb; ; ; # 𞥓.ܘ
+𞥓.ܘ; ; ; xn--of6h.xn--inb; ; ; # 𞥓.ܘ
+xn--of6h.xn--inb; 𞥓.ܘ; ; xn--of6h.xn--inb; ; ; # 𞥓.ܘ
+󠄽-.-්; -.-්; [V3]; -.xn----ptf; ; ; # -.-්
+󠄽-.-්; -.-්; [V3]; -.xn----ptf; ; ; # -.-්
+-.xn----ptf; -.-්; [V3]; -.xn----ptf; ; ; # -.-්
+󠇝ݛ-.ᤧ; ݛ-.ᤧ; [B1, B3, B6, V3, V5]; xn----k4c.xn--lff; ; ; # ݛ-.ᤧ
+xn----k4c.xn--lff; ݛ-.ᤧ; [B1, B3, B6, V3, V5]; xn----k4c.xn--lff; ; ; # ݛ-.ᤧ
+𞤴󠆹⦉𐹺.꠆⒌; 𞤴⦉𐹺.꠆⒌; [B1, P1, V5, V6]; xn--fuix729epewf.xn--xsh5029b6e77i; ; ;
# 𞤴⦉𐹺.꠆⒌
+𞤴󠆹⦉𐹺.꠆5.; 𞤴⦉𐹺.꠆5.; [B1, P1, V5, V6]; xn--fuix729epewf.xn--5-w93e.xn--7b83e;
; ; # 𞤴⦉𐹺.꠆5.
+𞤒󠆹⦉𐹺.꠆5.; 𞤴⦉𐹺.꠆5.; [B1, P1, V5, V6]; xn--fuix729epewf.xn--5-w93e.xn--7b83e;
; ; # 𞤴⦉𐹺.꠆5.
+xn--fuix729epewf.xn--5-w93e.xn--7b83e; 𞤴⦉𐹺.꠆5.; [B1, V5, V6];
xn--fuix729epewf.xn--5-w93e.xn--7b83e; ; ; # 𞤴⦉𐹺.꠆5.
+𞤒󠆹⦉𐹺.꠆⒌; 𞤴⦉𐹺.꠆⒌; [B1, P1, V5, V6]; xn--fuix729epewf.xn--xsh5029b6e77i; ; ;
# 𞤴⦉𐹺.꠆⒌
+xn--fuix729epewf.xn--xsh5029b6e77i; 𞤴⦉𐹺.꠆⒌; [B1, V5, V6];
xn--fuix729epewf.xn--xsh5029b6e77i; ; ; # 𞤴⦉𐹺.꠆⒌
+󠄸₀。𑖿𐦂; 0.𑖿𐦂; [B1, C2, V5]; 0.xn--0ugc8040p9hk; ; 0.xn--mn9cz2s; [B1, V5] #
0.𑖿𐦂
+󠄸0。𑖿𐦂; 0.𑖿𐦂; [B1, C2, V5]; 0.xn--0ugc8040p9hk; ; 0.xn--mn9cz2s; [B1, V5] #
0.𑖿𐦂
+0.xn--mn9cz2s; 0.𑖿𐦂; [B1, V5]; 0.xn--mn9cz2s; ; ; # 0.𑖿𐦂
+0.xn--0ugc8040p9hk; 0.𑖿𐦂; [B1, C2, V5]; 0.xn--0ugc8040p9hk; ; ; # 0.𑖿𐦂
+Ⴚ𐋸󠄄。𝟝ퟶ်; Ⴚ𐋸.5ퟶ်; [P1, V6]; xn--ynd2415j.xn--5-dug9054m; ; ; # Ⴚ𐋸.5ퟶ်
+Ⴚ𐋸󠄄。5ퟶ်; Ⴚ𐋸.5ퟶ်; [P1, V6]; xn--ynd2415j.xn--5-dug9054m; ; ; # Ⴚ𐋸.5ퟶ်
+ⴚ𐋸󠄄。5ퟶ်; ⴚ𐋸.5ퟶ်; ; xn--ilj2659d.xn--5-dug9054m; ; ; # ⴚ𐋸.5ퟶ်
+xn--ilj2659d.xn--5-dug9054m; ⴚ𐋸.5ퟶ်; ; xn--ilj2659d.xn--5-dug9054m; ; ; #
ⴚ𐋸.5ퟶ်
+ⴚ𐋸.5ퟶ်; ; ; xn--ilj2659d.xn--5-dug9054m; ; ; # ⴚ𐋸.5ퟶ်
+Ⴚ𐋸.5ퟶ်; ; [P1, V6]; xn--ynd2415j.xn--5-dug9054m; ; ; # Ⴚ𐋸.5ퟶ်
+xn--ynd2415j.xn--5-dug9054m; Ⴚ𐋸.5ퟶ်; [V6]; xn--ynd2415j.xn--5-dug9054m; ; ; #
Ⴚ𐋸.5ퟶ်
+ⴚ𐋸󠄄。𝟝ퟶ်; ⴚ𐋸.5ퟶ်; ; xn--ilj2659d.xn--5-dug9054m; ; ; # ⴚ𐋸.5ퟶ်
+-ᠹ﹪.ᷡᤢ; ; [C2, P1, V5, V6]; xn----c6j614b1z4v.xn--gff52t; ;
xn----c6jx047j.xn--gff52t; [P1, V3, V5, V6] # -ᠹ﹪.ᷡᤢ
+-ᠹ%.ᷡᤢ; ; [C2, P1, V5, V6]; xn---%-u4oy48b.xn--gff52t; ;
xn---%-u4o.xn--gff52t; [P1, V3, V5, V6] # -ᠹ%.ᷡᤢ
+xn---%-u4o.xn--gff52t; -ᠹ%.ᷡᤢ; [P1, V3, V5, V6]; xn---%-u4o.xn--gff52t; ; ; #
-ᠹ%.ᷡᤢ
+xn---%-u4oy48b.xn--gff52t; -ᠹ%.ᷡᤢ; [C2, P1, V5, V6];
xn---%-u4oy48b.xn--gff52t; ; ; # -ᠹ%.ᷡᤢ
+xn----c6jx047j.xn--gff52t; -ᠹ﹪.ᷡᤢ; [V3, V5, V6]; xn----c6jx047j.xn--gff52t; ;
; # -ᠹ﹪.ᷡᤢ
+xn----c6j614b1z4v.xn--gff52t; -ᠹ﹪.ᷡᤢ; [C2, V5, V6];
xn----c6j614b1z4v.xn--gff52t; ; ; # -ᠹ﹪.ᷡᤢ
+≠.ᠿ; ; [P1, V6]; xn--1ch.xn--y7e; ; ; # ≠.ᠿ
+≠.ᠿ; ≠.ᠿ; [P1, V6]; xn--1ch.xn--y7e; ; ; # ≠.ᠿ
+xn--1ch.xn--y7e; ≠.ᠿ; [V6]; xn--1ch.xn--y7e; ; ; # ≠.ᠿ
+ܣ֣。㌪; ܣ֣.ハイツ; ; xn--ucb18e.xn--eck4c5a; ; ; # ܣ֣.ハイツ
+ܣ֣。ハイツ; ܣ֣.ハイツ; ; xn--ucb18e.xn--eck4c5a; ; ; # ܣ֣.ハイツ
+xn--ucb18e.xn--eck4c5a; ܣ֣.ハイツ; ; xn--ucb18e.xn--eck4c5a; ; ; # ܣ֣.ハイツ
+ܣ֣.ハイツ; ; ; xn--ucb18e.xn--eck4c5a; ; ; # ܣ֣.ハイツ
+󠆀≮.⵿-; ≮.⵿-; [B1, B3, P1, V3, V5, V6]; xn--gdhx802p.xn----i2s; ; ; # ≮.⵿-
+󠆀≮.⵿-; ≮.⵿-; [B1, B3, P1, V3, V5, V6]; xn--gdhx802p.xn----i2s; ; ; # ≮.⵿-
+xn--gdhx802p.xn----i2s; ≮.⵿-; [B1, B3, V3, V5, V6]; xn--gdhx802p.xn----i2s; ;
; # ≮.⵿-
+₆榎്。𞤅ۭﱚ; 6榎്.𞤧ۭيي; [B1, B3, P1, V6];
xn--6-kmf4691ejv41j.xn--mhba10ch545mn8v8h; ; ; # 6榎്.𞤧ۭيي
+6榎്。𞤅ۭيي; 6榎്.𞤧ۭيي; [B1, B3, P1, V6];
xn--6-kmf4691ejv41j.xn--mhba10ch545mn8v8h; ; ; # 6榎്.𞤧ۭيي
+6榎്。𞤧ۭيي; 6榎്.𞤧ۭيي; [B1, B3, P1, V6];
xn--6-kmf4691ejv41j.xn--mhba10ch545mn8v8h; ; ; # 6榎്.𞤧ۭيي
+xn--6-kmf4691ejv41j.xn--mhba10ch545mn8v8h; 6榎്.𞤧ۭيي; [B1, B3, V6];
xn--6-kmf4691ejv41j.xn--mhba10ch545mn8v8h; ; ; # 6榎്.𞤧ۭيي
+₆榎്。𞤧ۭﱚ; 6榎്.𞤧ۭيي; [B1, B3, P1, V6];
xn--6-kmf4691ejv41j.xn--mhba10ch545mn8v8h; ; ; # 6榎്.𞤧ۭيي
+𣩫.; 𣩫.; [P1, V6]; xn--td3j.xn--4628b; ; ; # 𣩫.
+𣩫.; ; [P1, V6]; xn--td3j.xn--4628b; ; ; # 𣩫.
+xn--td3j.xn--4628b; 𣩫.; [V6]; xn--td3j.xn--4628b; ; ; # 𣩫.
+︒。ڹ; ︒.ڹ; [B1, B3, C1, C2, P1, V6]; xn--1ug2658f.xn--skb080k; ;
xn--y86c.xn--skb; [B1, P1, V6] # ︒.ڹ
+xn--y86c.xn--skb; ︒.ڹ; [B1, V6]; xn--y86c.xn--skb; ; ; # ︒.ڹ
+xn--1ug2658f.xn--skb080k; ︒.ڹ; [B1, B3, C1, C2, V6];
xn--1ug2658f.xn--skb080k; ; ; # ︒.ڹ
+xn--skb; ڹ; ; xn--skb; ; ; # ڹ
+ڹ; ; ; xn--skb; ; ; # ڹ
+𐹦𐹶。; 𐹦𐹶.; [B1, C1, P1, V6]; xn--0ug4994goba.xn--sxg; ; xn--eo0d6a.xn--sxg;
[B1, P1, V6] # 𐹦𐹶.
+xn--eo0d6a.xn--sxg; 𐹦𐹶.; [B1, V6]; xn--eo0d6a.xn--sxg; ; ; # 𐹦𐹶.
+xn--0ug4994goba.xn--sxg; 𐹦𐹶.; [B1, C1, V6]; xn--0ug4994goba.xn--sxg; ; ; #
𐹦𐹶.
+్𝨾֩𝟭。-𑜨; ్𝨾֩1.-𑜨; [V3, V5]; xn--1-rfc312cdp45c.xn----nq0j; ; ; # ్𝨾֩1.-𑜨
+్𝨾֩1。-𑜨; ్𝨾֩1.-𑜨; [V3, V5]; xn--1-rfc312cdp45c.xn----nq0j; ; ; # ్𝨾֩1.-𑜨
+xn--1-rfc312cdp45c.xn----nq0j; ్𝨾֩1.-𑜨; [V3, V5];
xn--1-rfc312cdp45c.xn----nq0j; ; ; # ్𝨾֩1.-𑜨
+。뙏; .뙏; [P1, V6]; xn--ph26c.xn--281b; ; ; # .뙏
+。뙏; .뙏; [P1, V6]; xn--ph26c.xn--281b; ; ; # .뙏
+xn--ph26c.xn--281b; .뙏; [V6]; xn--ph26c.xn--281b; ; ; # .뙏
+󠄌ᡀ.ࢶ; ᡀ.ࢶ; [P1, V6]; xn--z7e98100evc01b.xn--czb; ; ; # ᡀ.ࢶ
+xn--z7e98100evc01b.xn--czb; ᡀ.ࢶ; [V6]; xn--z7e98100evc01b.xn--czb; ; ; # ᡀ.ࢶ
+。; .; [C2, P1, V6]; xn--1ug.xn--6x4u; ; .xn--6x4u; [P1, V6, A4_2] # .
+。; .; [C2, P1, V6]; xn--1ug.xn--6x4u; ; .xn--6x4u; [P1, V6, A4_2] # .
+.xn--6x4u; .; [V6, X4_2]; .xn--6x4u; [V6, A4_2]; ; # .
+xn--1ug.xn--6x4u; .; [C2, V6]; xn--1ug.xn--6x4u; ; ; # .
+ࡋ皥.-; ࡋ皥.-; [B1, B2, B3, V3]; xn--9vb4167c.-; ; ; # ࡋ皥.-
+ࡋ皥.-; ; [B1, B2, B3, V3]; xn--9vb4167c.-; ; ; # ࡋ皥.-
+xn--9vb4167c.-; ࡋ皥.-; [B1, B2, B3, V3]; xn--9vb4167c.-; ; ; # ࡋ皥.-
+̕𐮇.⒈ꡦ; ̕𐮇.⒈ꡦ; [B1, P1, V6]; xn--5sa9915kgvb.xn--tshw539b; ; ; # ̕𐮇.⒈ꡦ
+̕𐮇.1.ꡦ; ; [B1, P1, V6]; xn--5sa9915kgvb.1.xn--cd9a; ; ; # ̕𐮇.1.ꡦ
+xn--5sa9915kgvb.1.xn--cd9a; ̕𐮇.1.ꡦ; [B1, V6]; xn--5sa9915kgvb.1.xn--cd9a; ; ;
# ̕𐮇.1.ꡦ
+xn--5sa9915kgvb.xn--tshw539b; ̕𐮇.⒈ꡦ; [B1, V6]; xn--5sa9915kgvb.xn--tshw539b;
; ; # ̕𐮇.⒈ꡦ
+Ⴛ֢。ᅠā𐹦; Ⴛ֢.ᅠā𐹦; [B5, B6, C1, C2, P1, V6];
xn--tcb597cdmmfa.xn--yda9741khjj; ; xn--tcb597c.xn--yda9741khjj; [B5, B6, P1,
V6] # Ⴛ֢.ā𐹦
+Ⴛ֢。ᅠā𐹦; Ⴛ֢.ᅠā𐹦; [B5, B6, C1, C2, P1, V6];
xn--tcb597cdmmfa.xn--yda9741khjj; ; xn--tcb597c.xn--yda9741khjj; [B5, B6, P1,
V6] # Ⴛ֢.ā𐹦
+Ⴛ֢。ᅠā𐹦; Ⴛ֢.ᅠā𐹦; [B5, B6, C1, C2, P1, V6];
xn--tcb597cdmmfa.xn--yda594fdn5q; ; xn--tcb597c.xn--yda594fdn5q; [B5, B6, P1,
V6] # Ⴛ֢.ā𐹦
+Ⴛ֢。ᅠā𐹦; Ⴛ֢.ᅠā𐹦; [B5, B6, C1, C2, P1, V6];
xn--tcb597cdmmfa.xn--yda594fdn5q; ; xn--tcb597c.xn--yda594fdn5q; [B5, B6, P1,
V6] # Ⴛ֢.ā𐹦
+ⴛ֢。ᅠā𐹦; ⴛ֢.ᅠā𐹦; [B5, B6, C1, C2, P1, V6];
xn--tcb736kea974k.xn--yda594fdn5q; ; xn--tcb323r.xn--yda594fdn5q; [B5, B6, P1,
V6] # ⴛ֢.ā𐹦
+ⴛ֢。ᅠā𐹦; ⴛ֢.ᅠā𐹦; [B5, B6, C1, C2, P1, V6];
xn--tcb736kea974k.xn--yda594fdn5q; ; xn--tcb323r.xn--yda594fdn5q; [B5, B6, P1,
V6] # ⴛ֢.ā𐹦
+Ⴛ֢。ᅠĀ𐹦; Ⴛ֢.ᅠā𐹦; [B5, B6, C1, C2, P1, V6];
xn--tcb597cdmmfa.xn--yda594fdn5q; ; xn--tcb597c.xn--yda594fdn5q; [B5, B6, P1,
V6] # Ⴛ֢.ā𐹦
+Ⴛ֢。ᅠĀ𐹦; Ⴛ֢.ᅠā𐹦; [B5, B6, C1, C2, P1, V6];
xn--tcb597cdmmfa.xn--yda594fdn5q; ; xn--tcb597c.xn--yda594fdn5q; [B5, B6, P1,
V6] # Ⴛ֢.ā𐹦
+xn--tcb597c.xn--yda594fdn5q; Ⴛ֢.ᅠā𐹦; [B5, B6, V6];
xn--tcb597c.xn--yda594fdn5q; ; ; # Ⴛ֢.ā𐹦
+xn--tcb597cdmmfa.xn--yda594fdn5q; Ⴛ֢.ᅠā𐹦; [B5, B6, C1, C2, V6];
xn--tcb597cdmmfa.xn--yda594fdn5q; ; ; # Ⴛ֢.ā𐹦
+xn--tcb323r.xn--yda594fdn5q; ⴛ֢.ᅠā𐹦; [B5, B6, V6];
xn--tcb323r.xn--yda594fdn5q; ; ; # ⴛ֢.ā𐹦
+xn--tcb736kea974k.xn--yda594fdn5q; ⴛ֢.ᅠā𐹦; [B5, B6, C1, C2, V6];
xn--tcb736kea974k.xn--yda594fdn5q; ; ; # ⴛ֢.ā𐹦
+ⴛ֢。ᅠā𐹦; ⴛ֢.ᅠā𐹦; [B5, B6, C1, C2, P1, V6];
xn--tcb736kea974k.xn--yda9741khjj; ; xn--tcb323r.xn--yda9741khjj; [B5, B6, P1,
V6] # ⴛ֢.ā𐹦
+ⴛ֢。ᅠā𐹦; ⴛ֢.ᅠā𐹦; [B5, B6, C1, C2, P1, V6];
xn--tcb736kea974k.xn--yda9741khjj; ; xn--tcb323r.xn--yda9741khjj; [B5, B6, P1,
V6] # ⴛ֢.ā𐹦
+Ⴛ֢。ᅠĀ𐹦; Ⴛ֢.ᅠā𐹦; [B5, B6, C1, C2, P1, V6];
xn--tcb597cdmmfa.xn--yda9741khjj; ; xn--tcb597c.xn--yda9741khjj; [B5, B6, P1,
V6] # Ⴛ֢.ā𐹦
+Ⴛ֢。ᅠĀ𐹦; Ⴛ֢.ᅠā𐹦; [B5, B6, C1, C2, P1, V6];
xn--tcb597cdmmfa.xn--yda9741khjj; ; xn--tcb597c.xn--yda9741khjj; [B5, B6, P1,
V6] # Ⴛ֢.ā𐹦
+xn--tcb597c.xn--yda9741khjj; Ⴛ֢.ᅠā𐹦; [B5, B6, V6];
xn--tcb597c.xn--yda9741khjj; ; ; # Ⴛ֢.ā𐹦
+xn--tcb597cdmmfa.xn--yda9741khjj; Ⴛ֢.ᅠā𐹦; [B5, B6, C1, C2, V6];
xn--tcb597cdmmfa.xn--yda9741khjj; ; ; # Ⴛ֢.ā𐹦
+xn--tcb323r.xn--yda9741khjj; ⴛ֢.ᅠā𐹦; [B5, B6, V6];
xn--tcb323r.xn--yda9741khjj; ; ; # ⴛ֢.ā𐹦
+xn--tcb736kea974k.xn--yda9741khjj; ⴛ֢.ᅠā𐹦; [B5, B6, C1, C2, V6];
xn--tcb736kea974k.xn--yda9741khjj; ; ; # ⴛ֢.ā𐹦
+。曳⾑𐋰≯; .曳襾𐋰≯; [C1, P1, V6]; xn--0ug2139f.xn--hdh501y8wvfs5h; ;
xn--vn7c.xn--hdh501y8wvfs5h; [P1, V6] # .曳襾𐋰≯
+。曳⾑𐋰≯; .曳襾𐋰≯; [C1, P1, V6]; xn--0ug2139f.xn--hdh501y8wvfs5h; ;
xn--vn7c.xn--hdh501y8wvfs5h; [P1, V6] # .曳襾𐋰≯
+。曳襾𐋰≯; .曳襾𐋰≯; [C1, P1, V6]; xn--0ug2139f.xn--hdh501y8wvfs5h; ;
xn--vn7c.xn--hdh501y8wvfs5h; [P1, V6] # .曳襾𐋰≯
+。曳襾𐋰≯; .曳襾𐋰≯; [C1, P1, V6]; xn--0ug2139f.xn--hdh501y8wvfs5h; ;
xn--vn7c.xn--hdh501y8wvfs5h; [P1, V6] # .曳襾𐋰≯
+xn--vn7c.xn--hdh501y8wvfs5h; .曳襾𐋰≯; [V6]; xn--vn7c.xn--hdh501y8wvfs5h; ; ; #
.曳襾𐋰≯
+xn--0ug2139f.xn--hdh501y8wvfs5h; .曳襾𐋰≯; [C1, V6];
xn--0ug2139f.xn--hdh501y8wvfs5h; ; ; # .曳襾𐋰≯
+≯⒈。ß; ≯⒈.ß; [P1, V6]; xn--hdh84f.xn--zca; ; xn--hdh84f.ss; # ≯⒈.ß
+≯⒈。ß; ≯⒈.ß; [P1, V6]; xn--hdh84f.xn--zca; ; xn--hdh84f.ss; # ≯⒈.ß
+≯1.。ß; ≯1..ß; [P1, V6, X4_2]; xn--1-ogo..xn--zca; [P1, V6, A4_2];
xn--1-ogo..ss; # ≯1..ß
+≯1.。ß; ≯1..ß; [P1, V6, X4_2]; xn--1-ogo..xn--zca; [P1, V6, A4_2];
xn--1-ogo..ss; # ≯1..ß
+≯1.。SS; ≯1..ss; [P1, V6, X4_2]; xn--1-ogo..ss; [P1, V6, A4_2]; ; # ≯1..ss
+≯1.。SS; ≯1..ss; [P1, V6, X4_2]; xn--1-ogo..ss; [P1, V6, A4_2]; ; # ≯1..ss
+≯1.。ss; ≯1..ss; [P1, V6, X4_2]; xn--1-ogo..ss; [P1, V6, A4_2]; ; # ≯1..ss
+≯1.。ss; ≯1..ss; [P1, V6, X4_2]; xn--1-ogo..ss; [P1, V6, A4_2]; ; # ≯1..ss
+≯1.。Ss; ≯1..ss; [P1, V6, X4_2]; xn--1-ogo..ss; [P1, V6, A4_2]; ; # ≯1..ss
+≯1.。Ss; ≯1..ss; [P1, V6, X4_2]; xn--1-ogo..ss; [P1, V6, A4_2]; ; # ≯1..ss
+xn--1-ogo..ss; ≯1..ss; [V6, X4_2]; xn--1-ogo..ss; [V6, A4_2]; ; # ≯1..ss
+xn--1-ogo..xn--zca; ≯1..ß; [V6, X4_2]; xn--1-ogo..xn--zca; [V6, A4_2]; ; #
≯1..ß
+≯⒈。SS; ≯⒈.ss; [P1, V6]; xn--hdh84f.ss; ; ; # ≯⒈.ss
+≯⒈。SS; ≯⒈.ss; [P1, V6]; xn--hdh84f.ss; ; ; # ≯⒈.ss
+≯⒈。ss; ≯⒈.ss; [P1, V6]; xn--hdh84f.ss; ; ; # ≯⒈.ss
+≯⒈。ss; ≯⒈.ss; [P1, V6]; xn--hdh84f.ss; ; ; # ≯⒈.ss
+≯⒈。Ss; ≯⒈.ss; [P1, V6]; xn--hdh84f.ss; ; ; # ≯⒈.ss
+≯⒈。Ss; ≯⒈.ss; [P1, V6]; xn--hdh84f.ss; ; ; # ≯⒈.ss
+xn--hdh84f.ss; ≯⒈.ss; [V6]; xn--hdh84f.ss; ; ; # ≯⒈.ss
+xn--hdh84f.xn--zca; ≯⒈.ß; [V6]; xn--hdh84f.xn--zca; ; ; # ≯⒈.ß
+٧ﮖ。ߚ-₆Ⴙ; ٧ڳ.ߚ-6Ⴙ; [B1, B2, B3, C2, P1, V6]; xn--gib6m343e.xn---6-lve002g; ;
xn--gib6m.xn---6-lve002g; [B1, B2, B3, P1, V6] # ٧ڳ.ߚ-6Ⴙ
+٧ڳ。ߚ-6Ⴙ; ٧ڳ.ߚ-6Ⴙ; [B1, B2, B3, C2, P1, V6]; xn--gib6m343e.xn---6-lve002g; ;
xn--gib6m.xn---6-lve002g; [B1, B2, B3, P1, V6] # ٧ڳ.ߚ-6Ⴙ
+٧ڳ。ߚ-6ⴙ; ٧ڳ.ߚ-6ⴙ; [B1, B2, B3, C2]; xn--gib6m343e.xn---6-lve6529a; ;
xn--gib6m.xn---6-lve6529a; [B1, B2, B3] # ٧ڳ.ߚ-6ⴙ
+xn--gib6m.xn---6-lve6529a; ٧ڳ.ߚ-6ⴙ; [B1, B2, B3]; xn--gib6m.xn---6-lve6529a; ;
; # ٧ڳ.ߚ-6ⴙ
+xn--gib6m343e.xn---6-lve6529a; ٧ڳ.ߚ-6ⴙ; [B1, B2, B3, C2];
xn--gib6m343e.xn---6-lve6529a; ; ; # ٧ڳ.ߚ-6ⴙ
+xn--gib6m.xn---6-lve002g; ٧ڳ.ߚ-6Ⴙ; [B1, B2, B3, V6]; xn--gib6m.xn---6-lve002g;
; ; # ٧ڳ.ߚ-6Ⴙ
+xn--gib6m343e.xn---6-lve002g; ٧ڳ.ߚ-6Ⴙ; [B1, B2, B3, C2, V6];
xn--gib6m343e.xn---6-lve002g; ; ; # ٧ڳ.ߚ-6Ⴙ
+٧ﮖ。ߚ-₆ⴙ; ٧ڳ.ߚ-6ⴙ; [B1, B2, B3, C2]; xn--gib6m343e.xn---6-lve6529a; ;
xn--gib6m.xn---6-lve6529a; [B1, B2, B3] # ٧ڳ.ߚ-6ⴙ
+。≠; .≠; [C1, P1, V6]; xn--0ug.xn--1ch; ; .xn--1ch; [P1, V6, A4_2] # .≠
+。≠; .≠; [C1, P1, V6]; xn--0ug.xn--1ch; ; .xn--1ch; [P1, V6, A4_2] # .≠
+。≠; .≠; [C1, P1, V6]; xn--0ug.xn--1ch; ; .xn--1ch; [P1, V6, A4_2] # .≠
+。≠; .≠; [C1, P1, V6]; xn--0ug.xn--1ch; ; .xn--1ch; [P1, V6, A4_2] # .≠
+.xn--1ch; .≠; [V6, X4_2]; .xn--1ch; [V6, A4_2]; ; # .≠
+xn--0ug.xn--1ch; .≠; [C1, V6]; xn--0ug.xn--1ch; ; ; # .≠
+𑖿𝨔.ᡟ𑖿ᭂ; ; [C1, V5]; xn--461dw464a.xn--v8e29ldzfo952a; ;
xn--461dw464a.xn--v8e29loy65a; [V5] # 𑖿𝨔.ᡟ𑖿ᭂ
+xn--461dw464a.xn--v8e29loy65a; 𑖿𝨔.ᡟ𑖿ᭂ; [V5]; xn--461dw464a.xn--v8e29loy65a; ;
; # 𑖿𝨔.ᡟ𑖿ᭂ
+xn--461dw464a.xn--v8e29ldzfo952a; 𑖿𝨔.ᡟ𑖿ᭂ; [C1, V5];
xn--461dw464a.xn--v8e29ldzfo952a; ; ; # 𑖿𝨔.ᡟ𑖿ᭂ
+.𖬴Ↄ≠-; ; [C2, P1, V3, V5, V6]; xn--1ug15151gkb5a.xn----61n81bt713h; ;
xn--6j00chy9a.xn----61n81bt713h; [P1, V3, V5, V6] # .𖬴Ↄ≠-
+.𖬴Ↄ≠-; .𖬴Ↄ≠-; [C2, P1, V3, V5, V6];
xn--1ug15151gkb5a.xn----61n81bt713h; ; xn--6j00chy9a.xn----61n81bt713h; [P1,
V3, V5, V6] # .𖬴Ↄ≠-
+.𖬴ↄ≠-; .𖬴ↄ≠-; [C2, P1, V3, V5, V6];
xn--1ug15151gkb5a.xn----81n51bt713h; ; xn--6j00chy9a.xn----81n51bt713h; [P1,
V3, V5, V6] # .𖬴ↄ≠-
+.𖬴ↄ≠-; ; [C2, P1, V3, V5, V6]; xn--1ug15151gkb5a.xn----81n51bt713h; ;
xn--6j00chy9a.xn----81n51bt713h; [P1, V3, V5, V6] # .𖬴ↄ≠-
+xn--6j00chy9a.xn----81n51bt713h; .𖬴ↄ≠-; [V3, V5, V6];
xn--6j00chy9a.xn----81n51bt713h; ; ; # .𖬴ↄ≠-
+xn--1ug15151gkb5a.xn----81n51bt713h; .𖬴ↄ≠-; [C2, V3, V5, V6];
xn--1ug15151gkb5a.xn----81n51bt713h; ; ; # .𖬴ↄ≠-
+xn--6j00chy9a.xn----61n81bt713h; .𖬴Ↄ≠-; [V3, V5, V6];
xn--6j00chy9a.xn----61n81bt713h; ; ; # .𖬴Ↄ≠-
+xn--1ug15151gkb5a.xn----61n81bt713h; .𖬴Ↄ≠-; [C2, V3, V5, V6];
xn--1ug15151gkb5a.xn----61n81bt713h; ; ; # .𖬴Ↄ≠-
+ߢς𝟳。蔑; ߢς7.蔑; [B2, C2, P1, V6]; xn--7-xmb182aez5a.xn--wy1ao4929b; ;
xn--7-zmb872a.xn--wy1ao4929b; [B2, P1, V6] # ߢς7.蔑
+ߢς7。蔑; ߢς7.蔑; [B2, C2, P1, V6]; xn--7-xmb182aez5a.xn--wy1ao4929b; ;
xn--7-zmb872a.xn--wy1ao4929b; [B2, P1, V6] # ߢς7.蔑
+ߢΣ7。蔑; ߢσ7.蔑; [B2, C2, P1, V6]; xn--7-zmb872aez5a.xn--wy1ao4929b; ;
xn--7-zmb872a.xn--wy1ao4929b; [B2, P1, V6] # ߢσ7.蔑
+ߢσ7。蔑; ߢσ7.蔑; [B2, C2, P1, V6]; xn--7-zmb872aez5a.xn--wy1ao4929b; ;
xn--7-zmb872a.xn--wy1ao4929b; [B2, P1, V6] # ߢσ7.蔑
+xn--7-zmb872a.xn--wy1ao4929b; ߢσ7.蔑; [B2, V6]; xn--7-zmb872a.xn--wy1ao4929b;
; ; # ߢσ7.蔑
+xn--7-zmb872aez5a.xn--wy1ao4929b; ߢσ7.蔑; [B2, C2, V6];
xn--7-zmb872aez5a.xn--wy1ao4929b; ; ; # ߢσ7.蔑
+xn--7-xmb182aez5a.xn--wy1ao4929b; ߢς7.蔑; [B2, C2, V6];
xn--7-xmb182aez5a.xn--wy1ao4929b; ; ; # ߢς7.蔑
+ߢΣ𝟳。蔑; ߢσ7.蔑; [B2, C2, P1, V6]; xn--7-zmb872aez5a.xn--wy1ao4929b; ;
xn--7-zmb872a.xn--wy1ao4929b; [B2, P1, V6] # ߢσ7.蔑
+ߢσ𝟳。蔑; ߢσ7.蔑; [B2, C2, P1, V6]; xn--7-zmb872aez5a.xn--wy1ao4929b; ;
xn--7-zmb872a.xn--wy1ao4929b; [B2, P1, V6] # ߢσ7.蔑
+𐹰.; ; [B1, P1, V6]; xn--oo0d.xn--ifb; ; ; # 𐹰.
+xn--oo0d.xn--ifb; 𐹰.; [B1, V6]; xn--oo0d.xn--ifb; ; ; # 𐹰.
+-ࢨ.𱠖; ; [B1, P1, V3, V6]; xn----mod.xn--5o9n; ; ; # -ࢨ.
+xn----mod.xn--5o9n; -ࢨ.𱠖; [B1, V3, V6]; xn----mod.xn--5o9n; ; ; # -ࢨ.
+≯𞱸󠇀。誆⒈; ≯𞱸.誆⒈; [B1, P1, V6]; xn--hdh7151p.xn--tsh1248a; ; ; # ≯𞱸.誆⒈
+≯𞱸󠇀。誆⒈; ≯𞱸.誆⒈; [B1, P1, V6]; xn--hdh7151p.xn--tsh1248a; ; ; # ≯𞱸.誆⒈
+≯𞱸󠇀。誆1.; ≯𞱸.誆1.; [B1, P1, V6]; xn--hdh7151p.xn--1-dy1d.; ; ; # ≯𞱸.誆1.
+≯𞱸󠇀。誆1.; ≯𞱸.誆1.; [B1, P1, V6]; xn--hdh7151p.xn--1-dy1d.; ; ; # ≯𞱸.誆1.
+xn--hdh7151p.xn--1-dy1d.; ≯𞱸.誆1.; [B1, V6]; xn--hdh7151p.xn--1-dy1d.; ; ; #
≯𞱸.誆1.
+xn--hdh7151p.xn--tsh1248a; ≯𞱸.誆⒈; [B1, V6]; xn--hdh7151p.xn--tsh1248a; ; ; #
≯𞱸.誆⒈
+ؖ𞥙䐊ِ.︒م↺ڜ; ؖ𞥙䐊ِ.︒م↺ڜ; [B1, P1, V5, V6]; xn--4fb0j490qjg4x.xn--hhb8o948euo5r; ;
; # ؖ𞥙䐊ِ.︒م↺ڜ
+ؖ𞥙䐊ِ.。م↺ڜ; ؖ𞥙䐊ِ..م↺ڜ; [B1, V5, X4_2]; xn--4fb0j490qjg4x..xn--hhb8o948e; [B1,
V5, A4_2]; ; # ؖ𞥙䐊ِ..م↺ڜ
+xn--4fb0j490qjg4x..xn--hhb8o948e; ؖ𞥙䐊ِ..م↺ڜ; [B1, V5, X4_2];
xn--4fb0j490qjg4x..xn--hhb8o948e; [B1, V5, A4_2]; ; # ؖ𞥙䐊ِ..م↺ڜ
+xn--4fb0j490qjg4x.xn--hhb8o948euo5r; ؖ𞥙䐊ِ.︒م↺ڜ; [B1, V5, V6];
xn--4fb0j490qjg4x.xn--hhb8o948euo5r; ; ; # ؖ𞥙䐊ِ.︒م↺ڜ
+퀬-?.ૅ۴; ; [C1, P1, V6]; xn---?-6g4k75207c.xn--hmb76q48y18505a; ;
xn---?-6g4k75207c.xn--hmb76q74166b; [P1, V5, V6] # 퀬-?.ૅ۴
+퀬-?.ૅ۴; 퀬-?.ૅ۴; [C1, P1, V6]; xn---?-6g4k75207c.xn--hmb76q48y18505a; ;
xn---?-6g4k75207c.xn--hmb76q74166b; [P1, V5, V6] # 퀬-?.ૅ۴
+xn---?-6g4k75207c.xn--hmb76q74166b; 퀬-?.ૅ۴; [P1, V5, V6];
xn---?-6g4k75207c.xn--hmb76q74166b; ; ; # 퀬-?.ૅ۴
+xn---?-6g4k75207c.xn--hmb76q48y18505a; 퀬-?.ૅ۴; [C1, P1, V6];
xn---?-6g4k75207c.xn--hmb76q48y18505a; ; ; # 퀬-?.ૅ۴
+퀬-?.xn--hmb76q74166b; 퀬-?.ૅ۴; [P1, V5, V6];
xn---?-6g4k75207c.xn--hmb76q74166b; ; ; # 퀬-?.ૅ۴
+퀬-?.xn--hmb76q74166b; 퀬-?.ૅ۴; [P1, V5, V6];
xn---?-6g4k75207c.xn--hmb76q74166b; ; ; # 퀬-?.ૅ۴
+퀬-?.XN--HMB76Q74166B; 퀬-?.ૅ۴; [P1, V5, V6];
xn---?-6g4k75207c.xn--hmb76q74166b; ; ; # 퀬-?.ૅ۴
+퀬-?.XN--HMB76Q74166B; 퀬-?.ૅ۴; [P1, V5, V6];
xn---?-6g4k75207c.xn--hmb76q74166b; ; ; # 퀬-?.ૅ۴
+퀬-?.Xn--Hmb76q74166b; 퀬-?.ૅ۴; [P1, V5, V6];
xn---?-6g4k75207c.xn--hmb76q74166b; ; ; # 퀬-?.ૅ۴
+퀬-?.Xn--Hmb76q74166b; 퀬-?.ૅ۴; [P1, V5, V6];
xn---?-6g4k75207c.xn--hmb76q74166b; ; ; # 퀬-?.ૅ۴
+퀬-?.xn--hmb76q48y18505a; 퀬-?.ૅ۴; [C1, P1, V6];
xn---?-6g4k75207c.xn--hmb76q48y18505a; ; ; # 퀬-?.ૅ۴
+퀬-?.xn--hmb76q48y18505a; 퀬-?.ૅ۴; [C1, P1, V6];
xn---?-6g4k75207c.xn--hmb76q48y18505a; ; ; # 퀬-?.ૅ۴
+퀬-?.XN--HMB76Q48Y18505A; 퀬-?.ૅ۴; [C1, P1, V6];
xn---?-6g4k75207c.xn--hmb76q48y18505a; ; ; # 퀬-?.ૅ۴
+퀬-?.XN--HMB76Q48Y18505A; 퀬-?.ૅ۴; [C1, P1, V6];
xn---?-6g4k75207c.xn--hmb76q48y18505a; ; ; # 퀬-?.ૅ۴
+퀬-?.Xn--Hmb76q48y18505a; 퀬-?.ૅ۴; [C1, P1, V6];
xn---?-6g4k75207c.xn--hmb76q48y18505a; ; ; # 퀬-?.ૅ۴
+퀬-?.Xn--Hmb76q48y18505a; 퀬-?.ૅ۴; [C1, P1, V6];
xn---?-6g4k75207c.xn--hmb76q48y18505a; ; ; # 퀬-?.ૅ۴
+Ⴌ.𐹾︒𑁿; ; [B1, P1, V6]; xn--knd.xn--y86c030a9ob6374b; ; ; # Ⴌ.𐹾︒𑁿
+Ⴌ.𐹾。𑁿; Ⴌ.𐹾.𑁿; [B1, P1, V5, V6]; xn--knd.xn--2o0d.xn--q30dg029a; ; ; # Ⴌ.𐹾.𑁿
+ⴌ.𐹾。𑁿; ⴌ.𐹾.𑁿; [B1, P1, V5, V6]; xn--3kj.xn--2o0d.xn--q30dg029a; ; ; # ⴌ.𐹾.𑁿
+xn--3kj.xn--2o0d.xn--q30dg029a; ⴌ.𐹾.𑁿; [B1, V5, V6];
xn--3kj.xn--2o0d.xn--q30dg029a; ; ; # ⴌ.𐹾.𑁿
+xn--knd.xn--2o0d.xn--q30dg029a; Ⴌ.𐹾.𑁿; [B1, V5, V6];
xn--knd.xn--2o0d.xn--q30dg029a; ; ; # Ⴌ.𐹾.𑁿
+ⴌ.𐹾︒𑁿; ; [B1, P1, V6]; xn--3kj.xn--y86c030a9ob6374b; ; ; # ⴌ.𐹾︒𑁿
+xn--3kj.xn--y86c030a9ob6374b; ⴌ.𐹾︒𑁿; [B1, V6]; xn--3kj.xn--y86c030a9ob6374b;
; ; # ⴌ.𐹾︒𑁿
+xn--knd.xn--y86c030a9ob6374b; Ⴌ.𐹾︒𑁿; [B1, V6]; xn--knd.xn--y86c030a9ob6374b;
; ; # Ⴌ.𐹾︒𑁿
+╏。; ╏.; [B3, B6, P1, V6]; xn--iyh90030d.xn--1m6hs0260c; ; ; # ╏.
+xn--iyh90030d.xn--1m6hs0260c; ╏.; [B3, B6, V6];
xn--iyh90030d.xn--1m6hs0260c; ; ; # ╏.
+┮󠇐.ఀ్᜴; ┮.ఀ్᜴; [C2, V5]; xn--1ug04r.xn--eoc8m432a40i; ;
xn--kxh.xn--eoc8m432a; [V5] # ┮.ఀ్᜴
+┮󠇐.ఀ్᜴; ┮.ఀ్᜴; [C2, V5]; xn--1ug04r.xn--eoc8m432a40i; ;
xn--kxh.xn--eoc8m432a; [V5] # ┮.ఀ్᜴
+xn--kxh.xn--eoc8m432a; ┮.ఀ్᜴; [V5]; xn--kxh.xn--eoc8m432a; ; ; # ┮.ఀ్᜴
+xn--1ug04r.xn--eoc8m432a40i; ┮.ఀ్᜴; [C2, V5]; xn--1ug04r.xn--eoc8m432a40i; ;
; # ┮.ఀ్᜴
+。🄂; .🄂; [P1, V6]; xn--n433d.xn--v07h; ; ; # .🄂
+。1,; .1,; [P1, V6]; xn--n433d.1,; ; ; # .1,
+xn--n433d.1,; .1,; [P1, V6]; xn--n433d.1,; ; ; # .1,
+xn--n433d.xn--v07h; .🄂; [V6]; xn--n433d.xn--v07h; ; ; # .🄂
+𑍨刍.🛦; ; [V5]; xn--rbry728b.xn--y88h; ; ; # 𑍨刍.🛦
+xn--rbry728b.xn--y88h; 𑍨刍.🛦; [V5]; xn--rbry728b.xn--y88h; ; ; # 𑍨刍.🛦
+3。ᯱ𝟒; 3.ᯱ4; [P1, V5, V6]; xn--3-ib31m.xn--4-pql; ; ; # 3.ᯱ4
+3。ᯱ4; 3.ᯱ4; [P1, V5, V6]; xn--3-ib31m.xn--4-pql; ; ; # 3.ᯱ4
+xn--3-ib31m.xn--4-pql; 3.ᯱ4; [V5, V6]; xn--3-ib31m.xn--4-pql; ; ; # 3.ᯱ4
+ڇ6Ⴔ辘.ﴢڇ; ڇ6Ⴔ辘.صيڇ; [B2, B3, C1, P1, V6]; xn--6-gsc039eqq6k.xn--0gb6bxkx18g;
; xn--6-gsc039eqq6k.xn--0gb6bxk; [B2, B3, P1, V6] # ڇ6Ⴔ辘.صيڇ
+ڇ6Ⴔ辘.صيڇ; ; [B2, B3, C1, P1, V6]; xn--6-gsc039eqq6k.xn--0gb6bxkx18g; ;
xn--6-gsc039eqq6k.xn--0gb6bxk; [B2, B3, P1, V6] # ڇ6Ⴔ辘.صيڇ
+ڇ6ⴔ辘.صيڇ; ; [B2, B3, C1]; xn--6-gsc2270akm6f.xn--0gb6bxkx18g; ;
xn--6-gsc2270akm6f.xn--0gb6bxk; [B2, B3] # ڇ6ⴔ辘.صيڇ
+xn--6-gsc2270akm6f.xn--0gb6bxk; ڇ6ⴔ辘.صيڇ; [B2, B3];
xn--6-gsc2270akm6f.xn--0gb6bxk; ; ; # ڇ6ⴔ辘.صيڇ
+xn--6-gsc2270akm6f.xn--0gb6bxkx18g; ڇ6ⴔ辘.صيڇ; [B2, B3, C1];
xn--6-gsc2270akm6f.xn--0gb6bxkx18g; ; ; # ڇ6ⴔ辘.صيڇ
+xn--6-gsc039eqq6k.xn--0gb6bxk; ڇ6Ⴔ辘.صيڇ; [B2, B3, V6];
xn--6-gsc039eqq6k.xn--0gb6bxk; ; ; # ڇ6Ⴔ辘.صيڇ
+xn--6-gsc039eqq6k.xn--0gb6bxkx18g; ڇ6Ⴔ辘.صيڇ; [B2, B3, C1, V6];
xn--6-gsc039eqq6k.xn--0gb6bxkx18g; ; ; # ڇ6Ⴔ辘.صيڇ
+ڇ6ⴔ辘.ﴢڇ; ڇ6ⴔ辘.صيڇ; [B2, B3, C1]; xn--6-gsc2270akm6f.xn--0gb6bxkx18g; ;
xn--6-gsc2270akm6f.xn--0gb6bxk; [B2, B3] # ڇ6ⴔ辘.صيڇ
+󠄍.𐮭۹; .𐮭۹; [B2, P1, V6, X4_2]; .xn--mmb3954kd0uf1zx7f; [B2, P1, V6, A4_2];
; # .𐮭۹
+.xn--mmb3954kd0uf1zx7f; .𐮭۹; [B2, V6, X4_2]; .xn--mmb3954kd0uf1zx7f; [B2,
V6, A4_2]; ; # .𐮭۹
+≯.; ≯.; [P1, V6]; xn--hdh8193c.xn--5z40cp629b; ; ; # ≯.
+≯.; ≯.; [P1, V6]; xn--hdh8193c.xn--5z40cp629b; ; ; # ≯.
+≯.; ; [P1, V6]; xn--hdh8193c.xn--5z40cp629b; ; ; # ≯.
+≯.; ≯.; [P1, V6]; xn--hdh8193c.xn--5z40cp629b; ; ; # ≯.
+xn--hdh8193c.xn--5z40cp629b; ≯.; [V6]; xn--hdh8193c.xn--5z40cp629b; ; ; #
≯.
+ςოٻ.ςܔ; ; [B5, B6]; xn--3xa80l26n.xn--3xa41o; ; xn--4xa60l26n.xn--4xa21o; #
ςოٻ.ςܔ
+ΣᲝٻ.Σܔ; σოٻ.σܔ; [B5, B6]; xn--4xa60l26n.xn--4xa21o; ; ; # σოٻ.σܔ
+σოٻ.σܔ; ; [B5, B6]; xn--4xa60l26n.xn--4xa21o; ; ; # σოٻ.σܔ
+Σოٻ.σܔ; σოٻ.σܔ; [B5, B6]; xn--4xa60l26n.xn--4xa21o; ; ; # σოٻ.σܔ
+xn--4xa60l26n.xn--4xa21o; σოٻ.σܔ; [B5, B6]; xn--4xa60l26n.xn--4xa21o; ; ; #
σოٻ.σܔ
+Σოٻ.ςܔ; σოٻ.ςܔ; [B5, B6]; xn--4xa60l26n.xn--3xa41o; ;
xn--4xa60l26n.xn--4xa21o; # σოٻ.ςܔ
+σოٻ.ςܔ; ; [B5, B6]; xn--4xa60l26n.xn--3xa41o; ; xn--4xa60l26n.xn--4xa21o; #
σოٻ.ςܔ
+xn--4xa60l26n.xn--3xa41o; σოٻ.ςܔ; [B5, B6]; xn--4xa60l26n.xn--3xa41o; ; ; #
σოٻ.ςܔ
+xn--3xa80l26n.xn--3xa41o; ςოٻ.ςܔ; [B5, B6]; xn--3xa80l26n.xn--3xa41o; ; ; #
ςოٻ.ςܔ
+Σოٻ.Σܔ; σოٻ.σܔ; [B5, B6]; xn--4xa60l26n.xn--4xa21o; ; ; # σოٻ.σܔ
+݈𠄯ݟ。; ݈𠄯ݟ.; [B1, B5, B6, P1, V6]; xn--vob0c4369twfv8b.xn--kl46e; ; ; #
݈𠄯ݟ.
+݈𠄯ݟ。; ݈𠄯ݟ.; [B1, B5, B6, P1, V6]; xn--vob0c4369twfv8b.xn--kl46e; ; ; #
݈𠄯ݟ.
+xn--vob0c4369twfv8b.xn--kl46e; ݈𠄯ݟ.; [B1, B5, B6, V6];
xn--vob0c4369twfv8b.xn--kl46e; ; ; # ݈𠄯ݟ.
+.䤫≠Ⴞ; .䤫≠Ⴞ; [C2, P1, V6]; xn--1t56e.xn--2nd159e9vb743e; ;
xn--1t56e.xn--2nd141ghl2a; [P1, V6] # .䤫≠Ⴞ
+.䤫≠Ⴞ; .䤫≠Ⴞ; [C2, P1, V6]; xn--1t56e.xn--2nd159e9vb743e; ;
xn--1t56e.xn--2nd141ghl2a; [P1, V6] # .䤫≠Ⴞ
+.䤫≠Ⴞ; ; [C2, P1, V6]; xn--1t56e.xn--2nd159e9vb743e; ;
xn--1t56e.xn--2nd141ghl2a; [P1, V6] # .䤫≠Ⴞ
+.䤫≠Ⴞ; .䤫≠Ⴞ; [C2, P1, V6]; xn--1t56e.xn--2nd159e9vb743e; ;
xn--1t56e.xn--2nd141ghl2a; [P1, V6] # .䤫≠Ⴞ
+.䤫≠ⴞ; .䤫≠ⴞ; [C2, P1, V6]; xn--1t56e.xn--1ug73gzzpwi3a; ;
xn--1t56e.xn--1ch153bqvw; [P1, V6] # .䤫≠ⴞ
+.䤫≠ⴞ; ; [C2, P1, V6]; xn--1t56e.xn--1ug73gzzpwi3a; ;
xn--1t56e.xn--1ch153bqvw; [P1, V6] # .䤫≠ⴞ
+xn--1t56e.xn--1ch153bqvw; .䤫≠ⴞ; [V6]; xn--1t56e.xn--1ch153bqvw; ; ; # .䤫≠ⴞ
+xn--1t56e.xn--1ug73gzzpwi3a; .䤫≠ⴞ; [C2, V6]; xn--1t56e.xn--1ug73gzzpwi3a; ;
; # .䤫≠ⴞ
+xn--1t56e.xn--2nd141ghl2a; .䤫≠Ⴞ; [V6]; xn--1t56e.xn--2nd141ghl2a; ; ; # .䤫≠Ⴞ
+xn--1t56e.xn--2nd159e9vb743e; .䤫≠Ⴞ; [C2, V6]; xn--1t56e.xn--2nd159e9vb743e;
; ; # .䤫≠Ⴞ
+.䤫≠ⴞ; .䤫≠ⴞ; [C2, P1, V6]; xn--1t56e.xn--1ug73gzzpwi3a; ;
xn--1t56e.xn--1ch153bqvw; [P1, V6] # .䤫≠ⴞ
+.䤫≠ⴞ; .䤫≠ⴞ; [C2, P1, V6]; xn--1t56e.xn--1ug73gzzpwi3a; ;
xn--1t56e.xn--1ch153bqvw; [P1, V6] # .䤫≠ⴞ
+𐽘𑈵.𐹣🕥; 𐽘𑈵.𐹣🕥; [B1, B2, B3]; xn--bv0d02c.xn--bo0dq650b; ; ; # 𐽘𑈵.𐹣🕥
+𐽘𑈵.𐹣🕥; ; [B1, B2, B3]; xn--bv0d02c.xn--bo0dq650b; ; ; # 𐽘𑈵.𐹣🕥
+xn--bv0d02c.xn--bo0dq650b; 𐽘𑈵.𐹣🕥; [B1, B2, B3]; xn--bv0d02c.xn--bo0dq650b; ; ;
# 𐽘𑈵.𐹣🕥
+⒊⒈𑁄。9; ⒊⒈𑁄.9; [P1, V6]; xn--tshd3512p.9; ; ; # ⒊⒈𑁄.9
+3.1.𑁄。9; 3.1.𑁄.9; [V5]; 3.1.xn--110d.9; ; ; # 3.1.𑁄.9
+3.1.xn--110d.9; 3.1.𑁄.9; [V5]; 3.1.xn--110d.9; ; ; # 3.1.𑁄.9
+xn--tshd3512p.9; ⒊⒈𑁄.9; [V6]; xn--tshd3512p.9; ; ; # ⒊⒈𑁄.9
+-ⷱ≮.𐹱4₉; -ⷱ≮.𐹱49; [B1, C1, P1, V3, V6]; xn----sgn20i14s.xn--49-ki3om2611f;
; xn----ngo823c.xn--49-ki3om2611f; [B1, P1, V3, V6] # -ⷱ≮.𐹱49
+-ⷱ≮.𐹱4₉; -ⷱ≮.𐹱49; [B1, C1, P1, V3, V6];
xn----sgn20i14s.xn--49-ki3om2611f; ; xn----ngo823c.xn--49-ki3om2611f; [B1, P1,
V3, V6] # -ⷱ≮.𐹱49
+-ⷱ≮.𐹱49; ; [B1, C1, P1, V3, V6]; xn----sgn20i14s.xn--49-ki3om2611f; ;
xn----ngo823c.xn--49-ki3om2611f; [B1, P1, V3, V6] # -ⷱ≮.𐹱49
+-ⷱ≮.𐹱49; -ⷱ≮.𐹱49; [B1, C1, P1, V3, V6];
xn----sgn20i14s.xn--49-ki3om2611f; ; xn----ngo823c.xn--49-ki3om2611f; [B1, P1,
V3, V6] # -ⷱ≮.𐹱49
+xn----ngo823c.xn--49-ki3om2611f; -ⷱ≮.𐹱49; [B1, V3, V6];
xn----ngo823c.xn--49-ki3om2611f; ; ; # -ⷱ≮.𐹱49
+xn----sgn20i14s.xn--49-ki3om2611f; -ⷱ≮.𐹱49; [B1, C1, V3, V6];
xn----sgn20i14s.xn--49-ki3om2611f; ; ; # -ⷱ≮.𐹱49
+-≯딾。ࡇ; -≯딾.ࡇ; [B1, P1, V3, V6]; xn----pgow547d.xn--5vb; ; ; # -≯딾.ࡇ
+-≯딾。ࡇ; -≯딾.ࡇ; [B1, P1, V3, V6]; xn----pgow547d.xn--5vb; ; ; # -≯딾.ࡇ
+-≯딾。ࡇ; -≯딾.ࡇ; [B1, P1, V3, V6]; xn----pgow547d.xn--5vb; ; ; # -≯딾.ࡇ
+-≯딾。ࡇ; -≯딾.ࡇ; [B1, P1, V3, V6]; xn----pgow547d.xn--5vb; ; ; # -≯딾.ࡇ
+xn----pgow547d.xn--5vb; -≯딾.ࡇ; [B1, V3, V6]; xn----pgow547d.xn--5vb; ; ; #
-≯딾.ࡇ
+𑙢⒈𐹠-。; 𑙢⒈𐹠-.; [B1, C1, P1, V3, V6]; xn----dcpy090hiyg.xn--0ug23321l; ;
xn----dcpy090hiyg.xn--jd46e; [B1, P1, V3, V6] # 𑙢⒈𐹠-.
+𑙢1.𐹠-。; 𑙢1.𐹠-.; [B1, C1, P1, V3, V6]; xn--1-bf0j.xn----516i.xn--0ug23321l;
; xn--1-bf0j.xn----516i.xn--jd46e; [B1, P1, V3, V6] # 𑙢1.𐹠-.
+xn--1-bf0j.xn----516i.xn--jd46e; 𑙢1.𐹠-.; [B1, V3, V6];
xn--1-bf0j.xn----516i.xn--jd46e; ; ; # 𑙢1.𐹠-.
+xn--1-bf0j.xn----516i.xn--0ug23321l; 𑙢1.𐹠-.; [B1, C1, V3, V6];
xn--1-bf0j.xn----516i.xn--0ug23321l; ; ; # 𑙢1.𐹠-.
+xn----dcpy090hiyg.xn--jd46e; 𑙢⒈𐹠-.; [B1, V3, V6];
xn----dcpy090hiyg.xn--jd46e; ; ; # 𑙢⒈𐹠-.
+xn----dcpy090hiyg.xn--0ug23321l; 𑙢⒈𐹠-.; [B1, C1, V3, V6];
xn----dcpy090hiyg.xn--0ug23321l; ; ; # 𑙢⒈𐹠-.
+͊.𐨎; ͊.𐨎; [V5]; xn--oua.xn--mr9c; ; ; # ͊.𐨎
+͊.𐨎; ; [V5]; xn--oua.xn--mr9c; ; ; # ͊.𐨎
+xn--oua.xn--mr9c; ͊.𐨎; [V5]; xn--oua.xn--mr9c; ; ; # ͊.𐨎
+훉≮。ิ; 훉≮.ิ; [P1, V5, V6]; xn--gdh2512e.xn--i4c; ; ; # 훉≮.ิ
+훉≮。ิ; 훉≮.ิ; [P1, V5, V6]; xn--gdh2512e.xn--i4c; ; ; # 훉≮.ิ
+훉≮。ิ; 훉≮.ิ; [P1, V5, V6]; xn--gdh2512e.xn--i4c; ; ; # 훉≮.ิ
+훉≮。ิ; 훉≮.ิ; [P1, V5, V6]; xn--gdh2512e.xn--i4c; ; ; # 훉≮.ิ
+xn--gdh2512e.xn--i4c; 훉≮.ิ; [V5, V6]; xn--gdh2512e.xn--i4c; ; ; # 훉≮.ิ
+ⷷ🃘.𝟸ٙ𞤯; ⷷ🃘.2ٙ𞤯; [B1, B5, B6, P1, V5, V6];
xn--trj8045le6s9b.xn--2-upc23918acjsj; ; ; # ⷷ🃘.2ٙ𞤯
+ⷷ🃘.2ٙ𞤯; ; [B1, B5, B6, P1, V5, V6]; xn--trj8045le6s9b.xn--2-upc23918acjsj; ;
; # ⷷ🃘.2ٙ𞤯
+ⷷ🃘.2ٙ𞤍; ⷷ🃘.2ٙ𞤯; [B1, B5, B6, P1, V5, V6];
xn--trj8045le6s9b.xn--2-upc23918acjsj; ; ; # ⷷ🃘.2ٙ𞤯
+xn--trj8045le6s9b.xn--2-upc23918acjsj; ⷷ🃘.2ٙ𞤯; [B1, B5, B6, V5, V6];
xn--trj8045le6s9b.xn--2-upc23918acjsj; ; ; # ⷷ🃘.2ٙ𞤯
+ⷷ🃘.𝟸ٙ𞤍; ⷷ🃘.2ٙ𞤯; [B1, B5, B6, P1, V5, V6];
xn--trj8045le6s9b.xn--2-upc23918acjsj; ; ; # ⷷ🃘.2ٙ𞤯
+ßᢞ。٠ﳔ-; ßᢞ.٠نخ-; [B1, B6, C1, P1, V3, V6];
xn--zca272jbif10059a.xn----dnc5e1er384z; ; xn--ss-jepz4596r.xn----dnc5e1er384z;
[B1, P1, V3, V6] # ßᢞ.٠نخ-
+ßᢞ。٠نخ-; ßᢞ.٠نخ-; [B1, B6, C1, P1, V3, V6];
xn--zca272jbif10059a.xn----dnc5e1er384z; ; xn--ss-jepz4596r.xn----dnc5e1er384z;
[B1, P1, V3, V6] # ßᢞ.٠نخ-
+SSᢞ。٠نخ-; ssᢞ.٠نخ-; [B1, B6, C1, P1, V3, V6];
xn--ss-jep006bqt765b.xn----dnc5e1er384z; ; xn--ss-jepz4596r.xn----dnc5e1er384z;
[B1, P1, V3, V6] # ssᢞ.٠نخ-
+ssᢞ。٠نخ-; ssᢞ.٠نخ-; [B1, B6, C1, P1, V3, V6];
xn--ss-jep006bqt765b.xn----dnc5e1er384z; ; xn--ss-jepz4596r.xn----dnc5e1er384z;
[B1, P1, V3, V6] # ssᢞ.٠نخ-
+Ssᢞ。٠نخ-; ssᢞ.٠نخ-; [B1, B6, C1, P1, V3, V6];
xn--ss-jep006bqt765b.xn----dnc5e1er384z; ; xn--ss-jepz4596r.xn----dnc5e1er384z;
[B1, P1, V3, V6] # ssᢞ.٠نخ-
+xn--ss-jepz4596r.xn----dnc5e1er384z; ssᢞ.٠نخ-; [B1, V3, V6];
xn--ss-jepz4596r.xn----dnc5e1er384z; ; ; # ssᢞ.٠نخ-
+xn--ss-jep006bqt765b.xn----dnc5e1er384z; ssᢞ.٠نخ-; [B1, B6, C1, V3, V6];
xn--ss-jep006bqt765b.xn----dnc5e1er384z; ; ; # ssᢞ.٠نخ-
+xn--zca272jbif10059a.xn----dnc5e1er384z; ßᢞ.٠نخ-; [B1, B6, C1, V3, V6];
xn--zca272jbif10059a.xn----dnc5e1er384z; ; ; # ßᢞ.٠نخ-
+SSᢞ。٠ﳔ-; ssᢞ.٠نخ-; [B1, B6, C1, P1, V3, V6];
xn--ss-jep006bqt765b.xn----dnc5e1er384z; ; xn--ss-jepz4596r.xn----dnc5e1er384z;
[B1, P1, V3, V6] # ssᢞ.٠نخ-
+ssᢞ。٠ﳔ-; ssᢞ.٠نخ-; [B1, B6, C1, P1, V3, V6];
xn--ss-jep006bqt765b.xn----dnc5e1er384z; ; xn--ss-jepz4596r.xn----dnc5e1er384z;
[B1, P1, V3, V6] # ssᢞ.٠نخ-
+Ssᢞ。٠ﳔ-; ssᢞ.٠نخ-; [B1, B6, C1, P1, V3, V6];
xn--ss-jep006bqt765b.xn----dnc5e1er384z; ; xn--ss-jepz4596r.xn----dnc5e1er384z;
[B1, P1, V3, V6] # ssᢞ.٠نخ-
+ꡆ。Ↄྵ놮-; ꡆ.Ↄྵ놮-; [P1, V3, V6]; xn--fc9a.xn----qmg787k869k; ; ; # ꡆ.Ↄྵ놮-
+ꡆ。Ↄྵ놮-; ꡆ.Ↄྵ놮-; [P1, V3, V6]; xn--fc9a.xn----qmg787k869k; ; ; # ꡆ.Ↄྵ놮-
+ꡆ。ↄྵ놮-; ꡆ.ↄྵ놮-; [V3]; xn--fc9a.xn----qmg097k469k; ; ; # ꡆ.ↄྵ놮-
+ꡆ。ↄྵ놮-; ꡆ.ↄྵ놮-; [V3]; xn--fc9a.xn----qmg097k469k; ; ; # ꡆ.ↄྵ놮-
+xn--fc9a.xn----qmg097k469k; ꡆ.ↄྵ놮-; [V3]; xn--fc9a.xn----qmg097k469k; ; ; #
ꡆ.ↄྵ놮-
+xn--fc9a.xn----qmg787k869k; ꡆ.Ↄྵ놮-; [V3, V6]; xn--fc9a.xn----qmg787k869k; ; ;
# ꡆ.Ↄྵ놮-
+ﶭ.ک; لمي.ک; [B3, B5, B6, C2, P1, V6]; xn--ghbcp494x.xn--ckb36214f; ;
xn--ghbcp.xn--ckb36214f; [B5, B6, P1, V6] # لمي.ک
+لمي.ک; ; [B3, B5, B6, C2, P1, V6]; xn--ghbcp494x.xn--ckb36214f; ;
xn--ghbcp.xn--ckb36214f; [B5, B6, P1, V6] # لمي.ک
+xn--ghbcp.xn--ckb36214f; لمي.ک; [B5, B6, V6]; xn--ghbcp.xn--ckb36214f; ; ; #
لمي.ک
+xn--ghbcp494x.xn--ckb36214f; لمي.ک; [B3, B5, B6, C2, V6];
xn--ghbcp494x.xn--ckb36214f; ; ; # لمي.ک
+Ⴜᰯ𐳒≯。۠ᜲྺ; Ⴜᰯ𐳒≯.۠ᜲྺ; [B1, B3, B5, B6, P1, V5, V6];
xn--0nd679cf3eq67y.xn--wlb646b4ng; ; ; # Ⴜᰯ𐳒≯.۠ᜲྺ
+Ⴜᰯ𐳒≯。۠ᜲྺ; Ⴜᰯ𐳒≯.۠ᜲྺ; [B1, B3, B5, B6, P1, V5, V6];
xn--0nd679cf3eq67y.xn--wlb646b4ng; ; ; # Ⴜᰯ𐳒≯.۠ᜲྺ
+ⴜᰯ𐳒≯。۠ᜲྺ; ⴜᰯ𐳒≯.۠ᜲྺ; [B1, B3, B5, B6, P1, V5, V6];
xn--r1f68xh1jgv7u.xn--wlb646b4ng; ; ; # ⴜᰯ𐳒≯.۠ᜲྺ
+ⴜᰯ𐳒≯。۠ᜲྺ; ⴜᰯ𐳒≯.۠ᜲྺ; [B1, B3, B5, B6, P1, V5, V6];
xn--r1f68xh1jgv7u.xn--wlb646b4ng; ; ; # ⴜᰯ𐳒≯.۠ᜲྺ
+Ⴜᰯ𐲒≯。۠ᜲྺ; Ⴜᰯ𐳒≯.۠ᜲྺ; [B1, B3, B5, B6, P1, V5, V6];
xn--0nd679cf3eq67y.xn--wlb646b4ng; ; ; # Ⴜᰯ𐳒≯.۠ᜲྺ
+Ⴜᰯ𐲒≯。۠ᜲྺ; Ⴜᰯ𐳒≯.۠ᜲྺ; [B1, B3, B5, B6, P1, V5, V6];
xn--0nd679cf3eq67y.xn--wlb646b4ng; ; ; # Ⴜᰯ𐳒≯.۠ᜲྺ
+xn--0nd679cf3eq67y.xn--wlb646b4ng; Ⴜᰯ𐳒≯.۠ᜲྺ; [B1, B3, B5, B6, V5, V6];
xn--0nd679cf3eq67y.xn--wlb646b4ng; ; ; # Ⴜᰯ𐳒≯.۠ᜲྺ
+xn--r1f68xh1jgv7u.xn--wlb646b4ng; ⴜᰯ𐳒≯.۠ᜲྺ; [B1, B3, B5, B6, V5, V6];
xn--r1f68xh1jgv7u.xn--wlb646b4ng; ; ; # ⴜᰯ𐳒≯.۠ᜲྺ
+𐋵。ﳬ; 𐋵.كم; [B1]; xn--p97c.xn--fhbe; ; ; # 𐋵.كم
+𐋵。كم; 𐋵.كم; [B1]; xn--p97c.xn--fhbe; ; ; # 𐋵.كم
+xn--p97c.xn--fhbe; 𐋵.كم; [B1]; xn--p97c.xn--fhbe; ; ; # 𐋵.كم
+𐋵.كم; ; [B1]; xn--p97c.xn--fhbe; ; ; # 𐋵.كم
+≮.ꫬ⹈; ≮.ꫬ⹈; [P1, V6]; xn--gdh0880o.xn--4tjx101bsg00ds9pyc; ; ; # ≮.ꫬ⹈
+≮.ꫬ⹈; ≮.ꫬ⹈; [P1, V6]; xn--gdh0880o.xn--4tjx101bsg00ds9pyc; ; ; # ≮.ꫬ⹈
+≮.ꫬ⹈; ; [P1, V6]; xn--gdh0880o.xn--4tjx101bsg00ds9pyc; ; ; # ≮.ꫬ⹈
+≮.ꫬ⹈; ≮.ꫬ⹈; [P1, V6]; xn--gdh0880o.xn--4tjx101bsg00ds9pyc; ; ; # ≮.ꫬ⹈
+xn--gdh0880o.xn--4tjx101bsg00ds9pyc; ≮.ꫬ⹈; [V6];
xn--gdh0880o.xn--4tjx101bsg00ds9pyc; ; ; # ≮.ꫬ⹈
+ⷰ͘ᢕ.͡𐹷; ⷰ͘ᢕ.͡𐹷; [B1, P1, V5, V6]; xn--2ua889htsp.xn--cva2687k2tv0g; ; ; #
ⷰ͘ᢕ.͡𐹷
+ⷰ͘ᢕ.͡𐹷; ; [B1, P1, V5, V6]; xn--2ua889htsp.xn--cva2687k2tv0g; ; ; # ⷰ͘ᢕ.͡𐹷
+xn--2ua889htsp.xn--cva2687k2tv0g; ⷰ͘ᢕ.͡𐹷; [B1, V5, V6];
xn--2ua889htsp.xn--cva2687k2tv0g; ; ; # ⷰ͘ᢕ.͡𐹷
+ﵹᡐڭ.𑋪ׇ; غممᡐڭ.𑋪ׇ; [B1, B2, B3, B6, V5]; xn--5gbwa03bg24eptk.xn--vdb1198k; ;
xn--5gbwa03bg24e.xn--vdb1198k; # غممᡐڭ.𑋪ׇ
+غممᡐڭ.𑋪ׇ; ; [B1, B2, B3, B6, V5]; xn--5gbwa03bg24eptk.xn--vdb1198k; ;
xn--5gbwa03bg24e.xn--vdb1198k; # غممᡐڭ.𑋪ׇ
+xn--5gbwa03bg24e.xn--vdb1198k; غممᡐڭ.𑋪ׇ; [B1, B2, B3, B6, V5];
xn--5gbwa03bg24e.xn--vdb1198k; ; ; # غممᡐڭ.𑋪ׇ
+xn--5gbwa03bg24eptk.xn--vdb1198k; غممᡐڭ.𑋪ׇ; [B1, B2, B3, B6, V5];
xn--5gbwa03bg24eptk.xn--vdb1198k; ; ; # غممᡐڭ.𑋪ׇ
+𑑂。🞕; 𑑂.🞕; [C2, P1, V5, V6]; xn--8v1d.xn--1ug1386plvx1cd8vya; ;
xn--8v1d.xn--ye9h41035a2qqs; [P1, V5, V6] # 𑑂.🞕
+𑑂。🞕; 𑑂.🞕; [C2, P1, V5, V6]; xn--8v1d.xn--1ug1386plvx1cd8vya; ;
xn--8v1d.xn--ye9h41035a2qqs; [P1, V5, V6] # 𑑂.🞕
+xn--8v1d.xn--ye9h41035a2qqs; 𑑂.🞕; [V5, V6]; xn--8v1d.xn--ye9h41035a2qqs; ; ;
# 𑑂.🞕
+xn--8v1d.xn--1ug1386plvx1cd8vya; 𑑂.🞕; [C2, V5, V6];
xn--8v1d.xn--1ug1386plvx1cd8vya; ; ; # 𑑂.🞕
+-ש。⒚; -ש.⒚; [B1, P1, V3, V6]; xn----gjc.xn--cth; ; ; # -ש.⒚
+-ש。19.; -ש.19.; [B1, V3]; xn----gjc.19.; ; ; # -ש.19.
+xn----gjc.19.; -ש.19.; [B1, V3]; xn----gjc.19.; ; ; # -ש.19.
+xn----gjc.xn--cth; -ש.⒚; [B1, V3, V6]; xn----gjc.xn--cth; ; ; # -ש.⒚
+ࡅ。ᢎ; ࡅ.ᢎ; [B5, B6, C1, C2, P1, V6]; xn--3vb882jz4411a.xn--79e259a; ;
xn--3vb50049s.xn--79e; [B5, B6, P1, V6] # ࡅ.ᢎ
+ࡅ。ᢎ; ࡅ.ᢎ; [B5, B6, C1, C2, P1, V6]; xn--3vb882jz4411a.xn--79e259a; ;
xn--3vb50049s.xn--79e; [B5, B6, P1, V6] # ࡅ.ᢎ
+xn--3vb50049s.xn--79e; ࡅ.ᢎ; [B5, B6, V6]; xn--3vb50049s.xn--79e; ; ; # ࡅ.ᢎ
+xn--3vb882jz4411a.xn--79e259a; ࡅ.ᢎ; [B5, B6, C1, C2, V6];
xn--3vb882jz4411a.xn--79e259a; ; ; # ࡅ.ᢎ
+ßুᷭ。ؠ8₅; ßুᷭ.ؠ85; ; xn--zca266bwrr.xn--85-psd; ; xn--ss-e2f077r.xn--85-psd; #
ßুᷭ.ؠ85
+ßুᷭ。ؠ85; ßুᷭ.ؠ85; ; xn--zca266bwrr.xn--85-psd; ; xn--ss-e2f077r.xn--85-psd; #
ßুᷭ.ؠ85
+SSুᷭ。ؠ85; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+ssুᷭ。ؠ85; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+Ssুᷭ。ؠ85; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+xn--ss-e2f077r.xn--85-psd; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; #
ssুᷭ.ؠ85
+ssুᷭ.ؠ85; ; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+SSুᷭ.ؠ85; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+Ssুᷭ.ؠ85; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+xn--zca266bwrr.xn--85-psd; ßুᷭ.ؠ85; ; xn--zca266bwrr.xn--85-psd; ; ; # ßুᷭ.ؠ85
+ßুᷭ.ؠ85; ; ; xn--zca266bwrr.xn--85-psd; ; xn--ss-e2f077r.xn--85-psd; # ßুᷭ.ؠ85
+SSুᷭ。ؠ8₅; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+ssুᷭ。ؠ8₅; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+Ssুᷭ。ؠ8₅; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+્҄魅𝟣.₃𐹥ß; ્҄魅1.3𐹥ß; [B1, V5]; xn--1-0xb049b102o.xn--3-qfa7018r; ;
xn--1-0xb049b102o.xn--3ss-nv9t; # ્҄魅1.3𐹥ß
+્҄魅1.3𐹥ß; ; [B1, V5]; xn--1-0xb049b102o.xn--3-qfa7018r; ;
xn--1-0xb049b102o.xn--3ss-nv9t; # ્҄魅1.3𐹥ß
+્҄魅1.3𐹥SS; ્҄魅1.3𐹥ss; [B1, V5]; xn--1-0xb049b102o.xn--3ss-nv9t; ; ; #
્҄魅1.3𐹥ss
+્҄魅1.3𐹥ss; ; [B1, V5]; xn--1-0xb049b102o.xn--3ss-nv9t; ; ; # ્҄魅1.3𐹥ss
+્҄魅1.3𐹥Ss; ્҄魅1.3𐹥ss; [B1, V5]; xn--1-0xb049b102o.xn--3ss-nv9t; ; ; #
્҄魅1.3𐹥ss
+xn--1-0xb049b102o.xn--3ss-nv9t; ્҄魅1.3𐹥ss; [B1, V5];
xn--1-0xb049b102o.xn--3ss-nv9t; ; ; # ્҄魅1.3𐹥ss
+xn--1-0xb049b102o.xn--3-qfa7018r; ્҄魅1.3𐹥ß; [B1, V5];
xn--1-0xb049b102o.xn--3-qfa7018r; ; ; # ્҄魅1.3𐹥ß
+્҄魅𝟣.₃𐹥SS; ્҄魅1.3𐹥ss; [B1, V5]; xn--1-0xb049b102o.xn--3ss-nv9t; ; ; #
્҄魅1.3𐹥ss
+્҄魅𝟣.₃𐹥ss; ્҄魅1.3𐹥ss; [B1, V5]; xn--1-0xb049b102o.xn--3ss-nv9t; ; ; #
્҄魅1.3𐹥ss
+્҄魅𝟣.₃𐹥Ss; ્҄魅1.3𐹥ss; [B1, V5]; xn--1-0xb049b102o.xn--3ss-nv9t; ; ; #
્҄魅1.3𐹥ss
+ܫ。𑓂⒈𑜫; ܫ.𑓂⒈𑜫; [B1, P1, V5, V6]; xn--1nb.xn--tsh7798f6rbrt828c; ; ; # ܫ.𑓂⒈𑜫
+ܫ。𑓂1.𑜫; ܫ.𑓂1.𑜫; [B1, P1, V5, V6]; xn--1nb.xn--1-jq9i.xn--ji2dg9877c; ; ; #
ܫ.𑓂1.𑜫
+xn--1nb.xn--1-jq9i.xn--ji2dg9877c; ܫ.𑓂1.𑜫; [B1, V5, V6];
xn--1nb.xn--1-jq9i.xn--ji2dg9877c; ; ; # ܫ.𑓂1.𑜫
+xn--1nb.xn--tsh7798f6rbrt828c; ܫ.𑓂⒈𑜫; [B1, V5, V6];
xn--1nb.xn--tsh7798f6rbrt828c; ; ; # ܫ.𑓂⒈𑜫
+︍છ。嵨; છ.嵨; ; xn--6dc.xn--tot; ; ; # છ.嵨
+xn--6dc.xn--tot; છ.嵨; ; xn--6dc.xn--tot; ; ; # છ.嵨
+છ.嵨; ; ; xn--6dc.xn--tot; ; ; # છ.嵨
+Ⴔ≠Ⴀ.𐹥𐹰; ; [B1, P1, V6]; xn--7md3b171g.xn--do0dwa; ; ; # Ⴔ≠Ⴀ.𐹥𐹰
+Ⴔ≠Ⴀ.𐹥𐹰; Ⴔ≠Ⴀ.𐹥𐹰; [B1, P1, V6]; xn--7md3b171g.xn--do0dwa; ; ; # Ⴔ≠Ⴀ.𐹥𐹰
+ⴔ≠ⴀ.𐹥𐹰; ⴔ≠ⴀ.𐹥𐹰; [B1, P1, V6]; xn--1ch603bxb.xn--do0dwa; ; ; # ⴔ≠ⴀ.𐹥𐹰
+ⴔ≠ⴀ.𐹥𐹰; ; [B1, P1, V6]; xn--1ch603bxb.xn--do0dwa; ; ; # ⴔ≠ⴀ.𐹥𐹰
+xn--1ch603bxb.xn--do0dwa; ⴔ≠ⴀ.𐹥𐹰; [B1, V6]; xn--1ch603bxb.xn--do0dwa; ; ; #
ⴔ≠ⴀ.𐹥𐹰
+xn--7md3b171g.xn--do0dwa; Ⴔ≠Ⴀ.𐹥𐹰; [B1, V6]; xn--7md3b171g.xn--do0dwa; ; ; #
Ⴔ≠Ⴀ.𐹥𐹰
+-⒙𐫥。𝨵; -⒙𐫥.𝨵; [C1, P1, V3, V5, V6]; xn----sgn18r3191a.xn--382h; ;
xn----ddps939g.xn--382h; [P1, V3, V5, V6] # -⒙𐫥.𝨵
+-18.𐫥。𝨵; -18.𐫥.𝨵; [C1, V3, V5]; xn---18-9m0a.xn--rx9c.xn--382h; ;
-18.xn--rx9c.xn--382h; [V3, V5] # -18.𐫥.𝨵
+-18.xn--rx9c.xn--382h; -18.𐫥.𝨵; [V3, V5]; -18.xn--rx9c.xn--382h; ; ; # -18.𐫥.𝨵
+xn---18-9m0a.xn--rx9c.xn--382h; -18.𐫥.𝨵; [C1, V3, V5];
xn---18-9m0a.xn--rx9c.xn--382h; ; ; # -18.𐫥.𝨵
+xn----ddps939g.xn--382h; -⒙𐫥.𝨵; [V3, V5, V6]; xn----ddps939g.xn--382h; ; ; #
-⒙𐫥.𝨵
+xn----sgn18r3191a.xn--382h; -⒙𐫥.𝨵; [C1, V3, V5, V6];
xn----sgn18r3191a.xn--382h; ; ; # -⒙𐫥.𝨵
+︒.ʌᠣ-𐹽; ; [B1, B5, B6, P1, V6]; xn--y86c.xn----73a596nuh9t; ; ; # ︒.ʌᠣ-𐹽
+。.ʌᠣ-𐹽; ..ʌᠣ-𐹽; [B5, B6, X4_2]; ..xn----73a596nuh9t; [B5, B6, A4_2]; ; #
..ʌᠣ-𐹽
+。.Ʌᠣ-𐹽; ..ʌᠣ-𐹽; [B5, B6, X4_2]; ..xn----73a596nuh9t; [B5, B6, A4_2]; ; #
..ʌᠣ-𐹽
+..xn----73a596nuh9t; ..ʌᠣ-𐹽; [B5, B6, X4_2]; ..xn----73a596nuh9t; [B5, B6,
A4_2]; ; # ..ʌᠣ-𐹽
+︒.Ʌᠣ-𐹽; ︒.ʌᠣ-𐹽; [B1, B5, B6, P1, V6]; xn--y86c.xn----73a596nuh9t; ; ; # ︒.ʌᠣ-𐹽
+xn--y86c.xn----73a596nuh9t; ︒.ʌᠣ-𐹽; [B1, B5, B6, V6];
xn--y86c.xn----73a596nuh9t; ; ; # ︒.ʌᠣ-𐹽
+︅︒。𦀾᳠; ︒.𦀾᳠; [P1, V6]; xn--y86c.xn--t6f5138v; ; ; # ︒.𦀾᳠
+︅。。𦀾᳠; ..𦀾᳠; [X4_2]; ..xn--t6f5138v; [A4_2]; ; # ..𦀾᳠
+..xn--t6f5138v; ..𦀾᳠; [X4_2]; ..xn--t6f5138v; [A4_2]; ; # ..𦀾᳠
+xn--y86c.xn--t6f5138v; ︒.𦀾᳠; [V6]; xn--y86c.xn--t6f5138v; ; ; # ︒.𦀾᳠
+xn--t6f5138v; 𦀾᳠; ; xn--t6f5138v; ; ; # 𦀾᳠
+𦀾᳠; ; ; xn--t6f5138v; ; ; # 𦀾᳠
+ß。ᡁ; ß.ᡁ; [B2, B3, P1, V6]; xn--zca9432wb989f.xn--07e; ;
xn--ss-o412ac6305g.xn--07e; # ß.ᡁ
+SS。ᡁ; ss.ᡁ; [B2, B3, P1, V6]; xn--ss-o412ac6305g.xn--07e; ; ; # ss.ᡁ
+ss。ᡁ; ss.ᡁ; [B2, B3, P1, V6]; xn--ss-o412ac6305g.xn--07e; ; ; # ss.ᡁ
+Ss。ᡁ; ss.ᡁ; [B2, B3, P1, V6]; xn--ss-o412ac6305g.xn--07e; ; ; # ss.ᡁ
+xn--ss-o412ac6305g.xn--07e; ss.ᡁ; [B2, B3, V6]; xn--ss-o412ac6305g.xn--07e;
; ; # ss.ᡁ
+xn--zca9432wb989f.xn--07e; ß.ᡁ; [B2, B3, V6]; xn--zca9432wb989f.xn--07e; ; ;
# ß.ᡁ
+꥓ج٬。𱆎󠅆; ꥓ج٬.𱆎; [B5, B6, C1, P1, V5, V6];
xn--rgb2k500fhq9j.xn--0ug78870a5sp9d; ; xn--rgb2k6711c.xn--ec8nj3948b; [B5, B6,
P1, V5, V6] # ꥓ج٬.𱆎
+xn--rgb2k6711c.xn--ec8nj3948b; ꥓ج٬.𱆎; [B5, B6, V5, V6];
xn--rgb2k6711c.xn--ec8nj3948b; ; ; # ꥓ج٬.𱆎
+xn--rgb2k500fhq9j.xn--0ug78870a5sp9d; ꥓ج٬.𱆎; [B5, B6, C1, V5, V6];
xn--rgb2k500fhq9j.xn--0ug78870a5sp9d; ; ; # ꥓ج٬.𱆎
+.-ß≠; .-ß≠; [C1, P1, V3, V6]; xn--u836e.xn----qfa750ve7b; ;
xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ß≠
+.-ß≠; .-ß≠; [C1, P1, V3, V6]; xn--u836e.xn----qfa750ve7b; ;
xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ß≠
+.-ß≠; ; [C1, P1, V3, V6]; xn--u836e.xn----qfa750ve7b; ;
xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ß≠
+.-ß≠; .-ß≠; [C1, P1, V3, V6]; xn--u836e.xn----qfa750ve7b; ;
xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ß≠
+.-SS≠; .-ss≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ;
xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+.-SS≠; .-ss≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ;
xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+.-ss≠; ; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ;
xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+.-ss≠; .-ss≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ;
xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+.-Ss≠; .-ss≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ;
xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+.-Ss≠; .-ss≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ;
xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+xn--u836e.xn---ss-gl2a; .-ss≠; [V3, V6]; xn--u836e.xn---ss-gl2a; ; ; # .-ss≠
+xn--u836e.xn---ss-cn0at5l; .-ss≠; [C1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ;
; # .-ss≠
+xn--u836e.xn----qfa750ve7b; .-ß≠; [C1, V3, V6]; xn--u836e.xn----qfa750ve7b;
; ; # .-ß≠
+.-SS≠; .-ss≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ;
xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+.-SS≠; .-ss≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ;
xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+.-ss≠; .-ss≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ;
xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+.-ss≠; .-ss≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ;
xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+.-Ss≠; .-ss≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ;
xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+.-Ss≠; .-ss≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ;
xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+ᡙ。≯𐋲≠; ᡙ.≯𐋲≠; [C1, P1, V6]; xn--p8e650b.xn--1ch3a7084l; ;
xn--p8e.xn--1ch3a7084l; [P1, V6] # ᡙ.≯𐋲≠
+ᡙ。≯𐋲≠; ᡙ.≯𐋲≠; [C1, P1, V6]; xn--p8e650b.xn--1ch3a7084l; ;
xn--p8e.xn--1ch3a7084l; [P1, V6] # ᡙ.≯𐋲≠
+ᡙ。≯𐋲≠; ᡙ.≯𐋲≠; [C1, P1, V6]; xn--p8e650b.xn--1ch3a7084l; ;
xn--p8e.xn--1ch3a7084l; [P1, V6] # ᡙ.≯𐋲≠
+ᡙ。≯𐋲≠; ᡙ.≯𐋲≠; [C1, P1, V6]; xn--p8e650b.xn--1ch3a7084l; ;
xn--p8e.xn--1ch3a7084l; [P1, V6] # ᡙ.≯𐋲≠
+xn--p8e.xn--1ch3a7084l; ᡙ.≯𐋲≠; [V6]; xn--p8e.xn--1ch3a7084l; ; ; # ᡙ.≯𐋲≠
+xn--p8e650b.xn--1ch3a7084l; ᡙ.≯𐋲≠; [C1, V6]; xn--p8e650b.xn--1ch3a7084l; ; ;
# ᡙ.≯𐋲≠
+𐹧𞲄。͎🄀; 𐹧𞲄.͎🄀; [B1, P1, V5, V6]; xn--fo0dw409aq58qrn69d.xn--sua6883w; ; ;
# 𐹧𞲄.͎🄀
+𐹧𞲄。͎0.; 𐹧𞲄.͎0.; [B1, P1, V5, V6]; xn--fo0dw409aq58qrn69d.xn--0-bgb.; ; ;
# 𐹧𞲄.͎0.
+xn--fo0dw409aq58qrn69d.xn--0-bgb.; 𐹧𞲄.͎0.; [B1, V5, V6];
xn--fo0dw409aq58qrn69d.xn--0-bgb.; ; ; # 𐹧𞲄.͎0.
+xn--fo0dw409aq58qrn69d.xn--sua6883w; 𐹧𞲄.͎🄀; [B1, V5, V6];
xn--fo0dw409aq58qrn69d.xn--sua6883w; ; ; # 𐹧𞲄.͎🄀
+Ⴄ.ܡς; Ⴄ.ܡς; [B1, C2, P1, V6]; xn--cnd.xn--3xa93o3t5ajq467a; ;
xn--cnd.xn--4xa73ob5892c; [B2, B3, P1, V6] # Ⴄ.ܡς
+Ⴄ.ܡς; ; [B1, C2, P1, V6]; xn--cnd.xn--3xa93o3t5ajq467a; ;
xn--cnd.xn--4xa73ob5892c; [B2, B3, P1, V6] # Ⴄ.ܡς
+ⴄ.ܡς; ; [B1, C2, P1, V6]; xn--vkj.xn--3xa93o3t5ajq467a; ;
xn--vkj.xn--4xa73ob5892c; [B2, B3, P1, V6] # ⴄ.ܡς
+Ⴄ.ܡΣ; Ⴄ.ܡσ; [B1, C2, P1, V6]; xn--cnd.xn--4xa73o3t5ajq467a; ;
xn--cnd.xn--4xa73ob5892c; [B2, B3, P1, V6] # Ⴄ.ܡσ
+ⴄ.ܡσ; ; [B1, C2, P1, V6]; xn--vkj.xn--4xa73o3t5ajq467a; ;
xn--vkj.xn--4xa73ob5892c; [B2, B3, P1, V6] # ⴄ.ܡσ
+xn--vkj.xn--4xa73ob5892c; ⴄ.ܡσ; [B2, B3, V6]; xn--vkj.xn--4xa73ob5892c; ; ;
# ⴄ.ܡσ
+xn--vkj.xn--4xa73o3t5ajq467a; ⴄ.ܡσ; [B1, C2, V6];
xn--vkj.xn--4xa73o3t5ajq467a; ; ; # ⴄ.ܡσ
+xn--cnd.xn--4xa73ob5892c; Ⴄ.ܡσ; [B2, B3, V6]; xn--cnd.xn--4xa73ob5892c; ; ;
# Ⴄ.ܡσ
+xn--cnd.xn--4xa73o3t5ajq467a; Ⴄ.ܡσ; [B1, C2, V6];
xn--cnd.xn--4xa73o3t5ajq467a; ; ; # Ⴄ.ܡσ
+xn--vkj.xn--3xa93o3t5ajq467a; ⴄ.ܡς; [B1, C2, V6];
xn--vkj.xn--3xa93o3t5ajq467a; ; ; # ⴄ.ܡς
+xn--cnd.xn--3xa93o3t5ajq467a; Ⴄ.ܡς; [B1, C2, V6];
xn--cnd.xn--3xa93o3t5ajq467a; ; ; # Ⴄ.ܡς
+ⴄ.ܡς; ⴄ.ܡς; [B1, C2, P1, V6]; xn--vkj.xn--3xa93o3t5ajq467a; ;
xn--vkj.xn--4xa73ob5892c; [B2, B3, P1, V6] # ⴄ.ܡς
+Ⴄ.ܡΣ; Ⴄ.ܡσ; [B1, C2, P1, V6]; xn--cnd.xn--4xa73o3t5ajq467a; ;
xn--cnd.xn--4xa73ob5892c; [B2, B3, P1, V6] # Ⴄ.ܡσ
+ⴄ.ܡσ; ⴄ.ܡσ; [B1, C2, P1, V6]; xn--vkj.xn--4xa73o3t5ajq467a; ;
xn--vkj.xn--4xa73ob5892c; [B2, B3, P1, V6] # ⴄ.ܡσ
+ؓ.Ⴕ; ; [P1, V6]; xn--1fb94204l.xn--tnd; ; ; # ؓ.Ⴕ
+ؓ.ⴕ; ; [P1, V6]; xn--1fb94204l.xn--dlj; ; ; # ؓ.ⴕ
+xn--1fb94204l.xn--dlj; ؓ.ⴕ; [V6]; xn--1fb94204l.xn--dlj; ; ; # ؓ.ⴕ
+xn--1fb94204l.xn--tnd; ؓ.Ⴕ; [V6]; xn--1fb94204l.xn--tnd; ; ; # ؓ.Ⴕ
+≯ᷳ𞤥。꣄; ≯ᷳ𞤥.꣄; [B1, C1, C2, P1, V6]; xn--ofg13qyr21c.xn--0ugc0116hix29k;
; xn--ofg13qyr21c.xn--0f9au6706d; [B1, P1, V5, V6] # ≯ᷳ𞤥.꣄
+≯ᷳ𞤥。꣄; ≯ᷳ𞤥.꣄; [B1, C1, C2, P1, V6]; xn--ofg13qyr21c.xn--0ugc0116hix29k;
; xn--ofg13qyr21c.xn--0f9au6706d; [B1, P1, V5, V6] # ≯ᷳ𞤥.꣄
+≯ᷳ𞤃。꣄; ≯ᷳ𞤥.꣄; [B1, C1, C2, P1, V6]; xn--ofg13qyr21c.xn--0ugc0116hix29k;
; xn--ofg13qyr21c.xn--0f9au6706d; [B1, P1, V5, V6] # ≯ᷳ𞤥.꣄
+≯ᷳ𞤃。꣄; ≯ᷳ𞤥.꣄; [B1, C1, C2, P1, V6]; xn--ofg13qyr21c.xn--0ugc0116hix29k;
; xn--ofg13qyr21c.xn--0f9au6706d; [B1, P1, V5, V6] # ≯ᷳ𞤥.꣄
+xn--ofg13qyr21c.xn--0f9au6706d; ≯ᷳ𞤥.꣄; [B1, V5, V6];
xn--ofg13qyr21c.xn--0f9au6706d; ; ; # ≯ᷳ𞤥.꣄
+xn--ofg13qyr21c.xn--0ugc0116hix29k; ≯ᷳ𞤥.꣄; [B1, C1, C2, V6];
xn--ofg13qyr21c.xn--0ugc0116hix29k; ; ; # ≯ᷳ𞤥.꣄
+󠄷。; .; [C1, P1, V6]; xn--0ug.xn--w720c; ; .xn--w720c; [P1, V6, A4_2] # .
+󠄷。; .; [C1, P1, V6]; xn--0ug.xn--w720c; ; .xn--w720c; [P1, V6, A4_2] # .
+.xn--w720c; .; [V6, X4_2]; .xn--w720c; [V6, A4_2]; ; # .
+xn--0ug.xn--w720c; .; [C1, V6]; xn--0ug.xn--w720c; ; ; # .
+⒈ූ焅.ꡟ; ; [C2, P1, V6]; xn--t1c337io97c.xn--1ugz184c9lw7i; ;
xn--t1c337io97c.xn--4c9a21133d; [P1, V6] # ⒈ූ焅.ꡟ
+1.ූ焅.ꡟ; ; [C2, P1, V5, V6]; 1.xn--t1c6981c.xn--1ugz184c9lw7i; ;
1.xn--t1c6981c.xn--4c9a21133d; [P1, V5, V6] # 1.ූ焅.ꡟ
+1.xn--t1c6981c.xn--4c9a21133d; 1.ූ焅.ꡟ; [V5, V6];
1.xn--t1c6981c.xn--4c9a21133d; ; ; # 1.ූ焅.ꡟ
+1.xn--t1c6981c.xn--1ugz184c9lw7i; 1.ූ焅.ꡟ; [C2, V5, V6];
1.xn--t1c6981c.xn--1ugz184c9lw7i; ; ; # 1.ූ焅.ꡟ
+xn--t1c337io97c.xn--4c9a21133d; ⒈ූ焅.ꡟ; [V6]; xn--t1c337io97c.xn--4c9a21133d;
; ; # ⒈ූ焅.ꡟ
+xn--t1c337io97c.xn--1ugz184c9lw7i; ⒈ූ焅.ꡟ; [C2, V6];
xn--t1c337io97c.xn--1ugz184c9lw7i; ; ; # ⒈ූ焅.ꡟ
+᷍ς≮.ς𝪦𞤕0; ᷍ς≮.ς𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--3xa744kvid.xn--0-xmb85727aggma;
; xn--4xa544kvid.xn--0-zmb55727aggma; # ᷍ς≮.ς𝪦𞤷0
+᷍ς≮.ς𝪦𞤕0; ᷍ς≮.ς𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--3xa744kvid.xn--0-xmb85727aggma;
; xn--4xa544kvid.xn--0-zmb55727aggma; # ᷍ς≮.ς𝪦𞤷0
+᷍ς≮.ς𝪦𞤷0; ᷍ς≮.ς𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--3xa744kvid.xn--0-xmb85727aggma;
; xn--4xa544kvid.xn--0-zmb55727aggma; # ᷍ς≮.ς𝪦𞤷0
+᷍ς≮.ς𝪦𞤷0; ; [B1, B5, P1, V5, V6]; xn--3xa744kvid.xn--0-xmb85727aggma; ;
xn--4xa544kvid.xn--0-zmb55727aggma; # ᷍ς≮.ς𝪦𞤷0
+᷍Σ≮.Σ𝪦𞤕0; ᷍σ≮.σ𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--4xa544kvid.xn--0-zmb55727aggma;
; ; # ᷍σ≮.σ𝪦𞤷0
+᷍Σ≮.Σ𝪦𞤕0; ᷍σ≮.σ𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--4xa544kvid.xn--0-zmb55727aggma;
; ; # ᷍σ≮.σ𝪦𞤷0
+᷍σ≮.σ𝪦𞤷0; ᷍σ≮.σ𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--4xa544kvid.xn--0-zmb55727aggma;
; ; # ᷍σ≮.σ𝪦𞤷0
+᷍σ≮.σ𝪦𞤷0; ; [B1, B5, P1, V5, V6]; xn--4xa544kvid.xn--0-zmb55727aggma; ; ; #
᷍σ≮.σ𝪦𞤷0
+᷍Σ≮.Σ𝪦𞤷0; ᷍σ≮.σ𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--4xa544kvid.xn--0-zmb55727aggma;
; ; # ᷍σ≮.σ𝪦𞤷0
+᷍Σ≮.Σ𝪦𞤷0; ᷍σ≮.σ𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--4xa544kvid.xn--0-zmb55727aggma;
; ; # ᷍σ≮.σ𝪦𞤷0
+xn--4xa544kvid.xn--0-zmb55727aggma; ᷍σ≮.σ𝪦𞤷0; [B1, B5, V5, V6];
xn--4xa544kvid.xn--0-zmb55727aggma; ; ; # ᷍σ≮.σ𝪦𞤷0
+xn--3xa744kvid.xn--0-xmb85727aggma; ᷍ς≮.ς𝪦𞤷0; [B1, B5, V5, V6];
xn--3xa744kvid.xn--0-xmb85727aggma; ; ; # ᷍ς≮.ς𝪦𞤷0
+᷍σ≮.σ𝪦𞤕0; ᷍σ≮.σ𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--4xa544kvid.xn--0-zmb55727aggma;
; ; # ᷍σ≮.σ𝪦𞤷0
+᷍σ≮.σ𝪦𞤕0; ᷍σ≮.σ𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--4xa544kvid.xn--0-zmb55727aggma;
; ; # ᷍σ≮.σ𝪦𞤷0
+ßֹ𐫙.֭ࢡ; ; [B1, B5, B6, P1, V5, V6]; xn--zca89v339zj118e.xn--4cb62m; ;
xn--ss-xjd6058xlz50g.xn--4cb62m; # ßֹ𐫙.֭ࢡ
+SSֹ𐫙.֭ࢡ; ssֹ𐫙.֭ࢡ; [B1, B5, B6, P1, V5, V6]; xn--ss-xjd6058xlz50g.xn--4cb62m;
; ; # ssֹ𐫙.֭ࢡ
+ssֹ𐫙.֭ࢡ; ; [B1, B5, B6, P1, V5, V6]; xn--ss-xjd6058xlz50g.xn--4cb62m; ; ; #
ssֹ𐫙.֭ࢡ
+Ssֹ𐫙.֭ࢡ; ssֹ𐫙.֭ࢡ; [B1, B5, B6, P1, V5, V6]; xn--ss-xjd6058xlz50g.xn--4cb62m;
; ; # ssֹ𐫙.֭ࢡ
+xn--ss-xjd6058xlz50g.xn--4cb62m; ssֹ𐫙.֭ࢡ; [B1, B5, B6, V5, V6];
xn--ss-xjd6058xlz50g.xn--4cb62m; ; ; # ssֹ𐫙.֭ࢡ
+xn--zca89v339zj118e.xn--4cb62m; ßֹ𐫙.֭ࢡ; [B1, B5, B6, V5, V6];
xn--zca89v339zj118e.xn--4cb62m; ; ; # ßֹ𐫙.֭ࢡ
+-𞣄。⒈; -𞣄.⒈; [B1, P1, V3, V6]; xn----xc8r.xn--tsh; ; ; # -𞣄.⒈
+-𞣄。1.; -𞣄.1.; [B1, V3]; xn----xc8r.1.; ; ; # -𞣄.1.
+xn----xc8r.1.; -𞣄.1.; [B1, V3]; xn----xc8r.1.; ; ; # -𞣄.1.
+xn----xc8r.xn--tsh; -𞣄.⒈; [B1, V3, V6]; xn----xc8r.xn--tsh; ; ; # -𞣄.⒈
+𐫖𝟡。ؾ𑘿; 𐫖9.ؾ𑘿; [B5, P1, V6]; xn--9-el5iv442t.xn--9gb0830l; ; ; # 𐫖9.ؾ𑘿
+𐫖9。ؾ𑘿; 𐫖9.ؾ𑘿; [B5, P1, V6]; xn--9-el5iv442t.xn--9gb0830l; ; ; # 𐫖9.ؾ𑘿
+xn--9-el5iv442t.xn--9gb0830l; 𐫖9.ؾ𑘿; [B5, V6]; xn--9-el5iv442t.xn--9gb0830l;
; ; # 𐫖9.ؾ𑘿
+٨ﲌ٨ᩝ.; ٨نم٨ᩝ.; [B1, C2]; xn--hhbb5hc956w.xn--1ug; ; xn--hhbb5hc956w.; [B1] #
٨نم٨ᩝ.
+٨نم٨ᩝ.; ; [B1, C2]; xn--hhbb5hc956w.xn--1ug; ; xn--hhbb5hc956w.; [B1] # ٨نم٨ᩝ.
+xn--hhbb5hc956w.; ٨نم٨ᩝ.; [B1]; xn--hhbb5hc956w.; ; ; # ٨نم٨ᩝ.
+xn--hhbb5hc956w.xn--1ug; ٨نم٨ᩝ.; [B1, C2]; xn--hhbb5hc956w.xn--1ug; ; ; #
٨نم٨ᩝ.
+𝟘.Ⴇﵐ; 0.Ⴇتجم; [B1, B5, P1, V6]; 0.xn--pgbe9e344c2725svff8b; ; ; # 0.Ⴇتجم
+0.Ⴇتجم; ; [B1, B5, P1, V6]; 0.xn--pgbe9e344c2725svff8b; ; ; # 0.Ⴇتجم
+0.ⴇتجم; ; [B1, B5, P1, V6]; 0.xn--pgbe9ez79qd207lvff8b; ; ; # 0.ⴇتجم
+0.xn--pgbe9ez79qd207lvff8b; 0.ⴇتجم; [B1, B5, V6];
0.xn--pgbe9ez79qd207lvff8b; ; ; # 0.ⴇتجم
+0.xn--pgbe9e344c2725svff8b; 0.Ⴇتجم; [B1, B5, V6];
0.xn--pgbe9e344c2725svff8b; ; ; # 0.Ⴇتجم
+𝟘.ⴇﵐ; 0.ⴇتجم; [B1, B5, P1, V6]; 0.xn--pgbe9ez79qd207lvff8b; ; ; # 0.ⴇتجم
+𑇀▍.⁞ᠰ; ; [V5]; xn--9zh3057f.xn--j7e103b; ; ; # 𑇀▍.⁞ᠰ
+xn--9zh3057f.xn--j7e103b; 𑇀▍.⁞ᠰ; [V5]; xn--9zh3057f.xn--j7e103b; ; ; # 𑇀▍.⁞ᠰ
+-ٺ.; ; [B1, C2, P1, V6]; xn----qrc357q.xn--ts49b; ; xn----qrc.xn--ts49b;
[B1, P1, V3, V6] # -ٺ.
+xn----qrc.xn--ts49b; -ٺ.; [B1, V3, V6]; xn----qrc.xn--ts49b; ; ; # -ٺ.
+xn----qrc357q.xn--ts49b; -ٺ.; [B1, C2, V6]; xn----qrc357q.xn--ts49b; ; ; #
-ٺ.
+ᠢ𐮂𐫘寐。≯✳; ᠢ𐮂𐫘寐.≯✳; [B1, B5, C1, P1, V6]; xn--46e6675axzzhota.xn--0ug06gu8f; ;
xn--46e6675axzzhota.xn--hdh99p; [B1, B5, P1, V6] # ᠢ𐮂𐫘寐.≯✳
+ᠢ𐮂𐫘寐。≯✳; ᠢ𐮂𐫘寐.≯✳; [B1, B5, C1, P1, V6]; xn--46e6675axzzhota.xn--0ug06gu8f;
; xn--46e6675axzzhota.xn--hdh99p; [B1, B5, P1, V6] # ᠢ𐮂𐫘寐.≯✳
+ᠢ𐮂𐫘寐。≯✳; ᠢ𐮂𐫘寐.≯✳; [B1, B5, C1, P1, V6]; xn--46e6675axzzhota.xn--0ug06gu8f; ;
xn--46e6675axzzhota.xn--hdh99p; [B1, B5, P1, V6] # ᠢ𐮂𐫘寐.≯✳
+ᠢ𐮂𐫘寐。≯✳; ᠢ𐮂𐫘寐.≯✳; [B1, B5, C1, P1, V6]; xn--46e6675axzzhota.xn--0ug06gu8f;
; xn--46e6675axzzhota.xn--hdh99p; [B1, B5, P1, V6] # ᠢ𐮂𐫘寐.≯✳
+xn--46e6675axzzhota.xn--hdh99p; ᠢ𐮂𐫘寐.≯✳; [B1, B5, V6];
xn--46e6675axzzhota.xn--hdh99p; ; ; # ᠢ𐮂𐫘寐.≯✳
+xn--46e6675axzzhota.xn--0ug06gu8f; ᠢ𐮂𐫘寐.≯✳; [B1, B5, C1, V6];
xn--46e6675axzzhota.xn--0ug06gu8f; ; ; # ᠢ𐮂𐫘寐.≯✳
+。ႺႴ; .ႺႴ; [B1, B5, B6, C2, P1, V6]; xn--1ug.xn--sndl01647an3h1h; ;
.xn--sndl01647an3h1h; [B5, B6, P1, V6, A4_2] # .ႺႴ
+。ႺႴ; .ႺႴ; [B1, B5, B6, C2, P1, V6]; xn--1ug.xn--sndl01647an3h1h; ;
.xn--sndl01647an3h1h; [B5, B6, P1, V6, A4_2] # .ႺႴ
+。ⴚⴔ; .ⴚⴔ; [B1, B5, B6, C2, P1, V6]; xn--1ug.xn--cljl81825an3r4h; ;
.xn--cljl81825an3r4h; [B5, B6, P1, V6, A4_2] # .ⴚⴔ
+。Ⴚⴔ; .Ⴚⴔ; [B1, B5, B6, C2, P1, V6]; xn--1ug.xn--ynd036lq981an3r4h; ;
.xn--ynd036lq981an3r4h; [B5, B6, P1, V6, A4_2] # .Ⴚⴔ
+.xn--ynd036lq981an3r4h; .Ⴚⴔ; [B5, B6, V6, X4_2]; .xn--ynd036lq981an3r4h;
[B5, B6, V6, A4_2]; ; # .Ⴚⴔ
+xn--1ug.xn--ynd036lq981an3r4h; .Ⴚⴔ; [B1, B5, B6, C2, V6];
xn--1ug.xn--ynd036lq981an3r4h; ; ; # .Ⴚⴔ
+.xn--cljl81825an3r4h; .ⴚⴔ; [B5, B6, V6, X4_2]; .xn--cljl81825an3r4h; [B5,
B6, V6, A4_2]; ; # .ⴚⴔ
+xn--1ug.xn--cljl81825an3r4h; .ⴚⴔ; [B1, B5, B6, C2, V6];
xn--1ug.xn--cljl81825an3r4h; ; ; # .ⴚⴔ
+.xn--sndl01647an3h1h; .ႺႴ; [B5, B6, V6, X4_2]; .xn--sndl01647an3h1h; [B5,
B6, V6, A4_2]; ; # .ႺႴ
+xn--1ug.xn--sndl01647an3h1h; .ႺႴ; [B1, B5, B6, C2, V6];
xn--1ug.xn--sndl01647an3h1h; ; ; # .ႺႴ
+。ⴚⴔ; .ⴚⴔ; [B1, B5, B6, C2, P1, V6]; xn--1ug.xn--cljl81825an3r4h; ;
.xn--cljl81825an3r4h; [B5, B6, P1, V6, A4_2] # .ⴚⴔ
+。Ⴚⴔ; .Ⴚⴔ; [B1, B5, B6, C2, P1, V6]; xn--1ug.xn--ynd036lq981an3r4h; ;
.xn--ynd036lq981an3r4h; [B5, B6, P1, V6, A4_2] # .Ⴚⴔ
+-3.ヌᢕ; ; [C2, V3]; -3.xn--fbf739aq5o; ; -3.xn--fbf115j; [V3] # -3.ヌᢕ
+-3.xn--fbf115j; -3.ヌᢕ; [V3]; -3.xn--fbf115j; ; ; # -3.ヌᢕ
+-3.xn--fbf739aq5o; -3.ヌᢕ; [C2, V3]; -3.xn--fbf739aq5o; ; ; # -3.ヌᢕ
+🂃٦ß。-; 🂃٦ß.-; [B1, C2, P1, V3, V6];
xn--zca34z68yzu83b.xn----nz8rh7531csznt; ;
xn--ss-pyd98921c.xn----nz8rh7531csznt; [B1, P1, V3, V6] # 🂃٦ß.-
+🂃٦SS。-; 🂃٦ss.-; [B1, C2, P1, V3, V6];
xn--ss-pyd483x5k99b.xn----nz8rh7531csznt; ;
xn--ss-pyd98921c.xn----nz8rh7531csznt; [B1, P1, V3, V6] # 🂃٦ss.-
+🂃٦ss。-; 🂃٦ss.-; [B1, C2, P1, V3, V6];
xn--ss-pyd483x5k99b.xn----nz8rh7531csznt; ;
xn--ss-pyd98921c.xn----nz8rh7531csznt; [B1, P1, V3, V6] # 🂃٦ss.-
+xn--ss-pyd98921c.xn----nz8rh7531csznt; 🂃٦ss.-; [B1, V3, V6];
xn--ss-pyd98921c.xn----nz8rh7531csznt; ; ; # 🂃٦ss.-
+xn--ss-pyd483x5k99b.xn----nz8rh7531csznt; 🂃٦ss.-; [B1, C2, V3, V6];
xn--ss-pyd483x5k99b.xn----nz8rh7531csznt; ; ; # 🂃٦ss.-
+xn--zca34z68yzu83b.xn----nz8rh7531csznt; 🂃٦ß.-; [B1, C2, V3, V6];
xn--zca34z68yzu83b.xn----nz8rh7531csznt; ; ; # 🂃٦ß.-
+🂃٦Ss。-; 🂃٦ss.-; [B1, C2, P1, V3, V6];
xn--ss-pyd483x5k99b.xn----nz8rh7531csznt; ;
xn--ss-pyd98921c.xn----nz8rh7531csznt; [B1, P1, V3, V6] # 🂃٦ss.-
+ꇟ-𐾺ڟ。; ꇟ-𐾺ڟ.; [B5, B6, C1, P1, V6]; xn----utc4430jd3zd.xn--0ugx6670i; ;
xn----utc4430jd3zd.xn--bp20d; [B5, B6, P1, V6] # ꇟ-𐾺ڟ.
+xn----utc4430jd3zd.xn--bp20d; ꇟ-𐾺ڟ.; [B5, B6, V6];
xn----utc4430jd3zd.xn--bp20d; ; ; # ꇟ-𐾺ڟ.
+xn----utc4430jd3zd.xn--0ugx6670i; ꇟ-𐾺ڟ.; [B5, B6, C1, V6];
xn----utc4430jd3zd.xn--0ugx6670i; ; ; # ꇟ-𐾺ڟ.
+٥.҄𐨗𝩋; ; [B1, P1, V5, V6]; xn--eib.xn--n3a0405kus8eft5l; ; ; # ٥.҄𐨗𝩋
+xn--eib.xn--n3a0405kus8eft5l; ٥.҄𐨗𝩋; [B1, V5, V6];
xn--eib.xn--n3a0405kus8eft5l; ; ; # ٥.҄𐨗𝩋
+-.ى𐨿; ; [B1, B5, B6, P1, V3, V6]; -.xn--lhb4124khbq4b; ; ; # -.ى𐨿
+-.xn--lhb4124khbq4b; -.ى𐨿; [B1, B5, B6, V3, V6]; -.xn--lhb4124khbq4b; ; ; #
-.ى𐨿
+ς.녫ß; ; [B2, B3, P1, V6]; xn--3xa96659r.xn--zca5051g4h4i; ;
xn--4xa76659r.xn--ss-d64i8755h; # ς.녫ß
+ς.녫ß; ς.녫ß; [B2, B3, P1, V6]; xn--3xa96659r.xn--zca5051g4h4i; ;
xn--4xa76659r.xn--ss-d64i8755h; # ς.녫ß
+Σ.녫SS; σ.녫ss; [B2, B3, P1, V6]; xn--4xa76659r.xn--ss-d64i8755h; ; ; #
σ.녫ss
+Σ.녫SS; σ.녫ss; [B2, B3, P1, V6]; xn--4xa76659r.xn--ss-d64i8755h; ; ; #
σ.녫ss
+σ.녫ss; ; [B2, B3, P1, V6]; xn--4xa76659r.xn--ss-d64i8755h; ; ; # σ.녫ss
+σ.녫ss; σ.녫ss; [B2, B3, P1, V6]; xn--4xa76659r.xn--ss-d64i8755h; ; ; #
σ.녫ss
+Σ.녫ss; σ.녫ss; [B2, B3, P1, V6]; xn--4xa76659r.xn--ss-d64i8755h; ; ; #
σ.녫ss
+Σ.녫ss; σ.녫ss; [B2, B3, P1, V6]; xn--4xa76659r.xn--ss-d64i8755h; ; ; #
σ.녫ss
+Σ.녫Ss; σ.녫ss; [B2, B3, P1, V6]; xn--4xa76659r.xn--ss-d64i8755h; ; ; #
σ.녫ss
+Σ.녫Ss; σ.녫ss; [B2, B3, P1, V6]; xn--4xa76659r.xn--ss-d64i8755h; ; ; #
σ.녫ss
+xn--4xa76659r.xn--ss-d64i8755h; σ.녫ss; [B2, B3, V6];
xn--4xa76659r.xn--ss-d64i8755h; ; ; # σ.녫ss
+Σ.녫ß; σ.녫ß; [B2, B3, P1, V6]; xn--4xa76659r.xn--zca5051g4h4i; ;
xn--4xa76659r.xn--ss-d64i8755h; # σ.녫ß
+Σ.녫ß; σ.녫ß; [B2, B3, P1, V6]; xn--4xa76659r.xn--zca5051g4h4i; ;
xn--4xa76659r.xn--ss-d64i8755h; # σ.녫ß
+σ.녫ß; ; [B2, B3, P1, V6]; xn--4xa76659r.xn--zca5051g4h4i; ;
xn--4xa76659r.xn--ss-d64i8755h; # σ.녫ß
+σ.녫ß; σ.녫ß; [B2, B3, P1, V6]; xn--4xa76659r.xn--zca5051g4h4i; ;
xn--4xa76659r.xn--ss-d64i8755h; # σ.녫ß
+xn--4xa76659r.xn--zca5051g4h4i; σ.녫ß; [B2, B3, V6];
xn--4xa76659r.xn--zca5051g4h4i; ; ; # σ.녫ß
+xn--3xa96659r.xn--zca5051g4h4i; ς.녫ß; [B2, B3, V6];
xn--3xa96659r.xn--zca5051g4h4i; ; ; # ς.녫ß
+Ⅎ្。≠; Ⅎ្.≠; [C1, C2, P1, V6]; xn--u4e823bcza.xn--0ugb89o; ;
xn--u4e319b.xn--1ch; [P1, V6] # Ⅎ្.≠
+Ⅎ្。≠; Ⅎ្.≠; [C1, C2, P1, V6]; xn--u4e823bcza.xn--0ugb89o; ;
xn--u4e319b.xn--1ch; [P1, V6] # Ⅎ្.≠
+Ⅎ្。≠; Ⅎ្.≠; [C1, C2, P1, V6]; xn--u4e823bcza.xn--0ugb89o; ;
xn--u4e319b.xn--1ch; [P1, V6] # Ⅎ្.≠
+Ⅎ្。≠; Ⅎ្.≠; [C1, C2, P1, V6]; xn--u4e823bcza.xn--0ugb89o; ;
xn--u4e319b.xn--1ch; [P1, V6] # Ⅎ្.≠
+ⅎ្。≠; ⅎ្.≠; [C1, C2, P1, V6]; xn--u4e823bq1a.xn--0ugb89o; ;
xn--u4e969b.xn--1ch; [P1, V6] # ⅎ្.≠
+ⅎ្。≠; ⅎ្.≠; [C1, C2, P1, V6]; xn--u4e823bq1a.xn--0ugb89o; ;
xn--u4e969b.xn--1ch; [P1, V6] # ⅎ្.≠
+xn--u4e969b.xn--1ch; ⅎ្.≠; [V6]; xn--u4e969b.xn--1ch; ; ; # ⅎ្.≠
+xn--u4e823bq1a.xn--0ugb89o; ⅎ្.≠; [C1, C2, V6]; xn--u4e823bq1a.xn--0ugb89o;
; ; # ⅎ្.≠
+xn--u4e319b.xn--1ch; Ⅎ្.≠; [V6]; xn--u4e319b.xn--1ch; ; ; # Ⅎ្.≠
+xn--u4e823bcza.xn--0ugb89o; Ⅎ្.≠; [C1, C2, V6]; xn--u4e823bcza.xn--0ugb89o;
; ; # Ⅎ្.≠
+ⅎ្。≠; ⅎ្.≠; [C1, C2, P1, V6]; xn--u4e823bq1a.xn--0ugb89o; ;
xn--u4e969b.xn--1ch; [P1, V6] # ⅎ្.≠
+ⅎ្。≠; ⅎ្.≠; [C1, C2, P1, V6]; xn--u4e823bq1a.xn--0ugb89o; ;
xn--u4e969b.xn--1ch; [P1, V6] # ⅎ្.≠
+𐋺꫶꥓.᜔ڏ; 𐋺꫶꥓.᜔ڏ; [B1, C1, P1, V6]; xn--3j9a14ak27osbz2o.xn--ljb175f1wg; ;
xn--3j9a14ak27osbz2o.xn--ljb175f; [B1, P1, V5, V6] # 𐋺꫶꥓.᜔ڏ
+𐋺꫶꥓.᜔ڏ; ; [B1, C1, P1, V6]; xn--3j9a14ak27osbz2o.xn--ljb175f1wg; ;
xn--3j9a14ak27osbz2o.xn--ljb175f; [B1, P1, V5, V6] # 𐋺꫶꥓.᜔ڏ
+xn--3j9a14ak27osbz2o.xn--ljb175f; 𐋺꫶꥓.᜔ڏ; [B1, V5, V6];
xn--3j9a14ak27osbz2o.xn--ljb175f; ; ; # 𐋺꫶꥓.᜔ڏ
+xn--3j9a14ak27osbz2o.xn--ljb175f1wg; 𐋺꫶꥓.᜔ڏ; [B1, C1, V6];
xn--3j9a14ak27osbz2o.xn--ljb175f1wg; ; ; # 𐋺꫶꥓.᜔ڏ
+ྨ.≯; ྨ.≯; [P1, V6]; xn--4fd57150h.xn--hdh; ; ; # ྨ.≯
+ྨ.≯; ྨ.≯; [P1, V6]; xn--4fd57150h.xn--hdh; ; ; # ྨ.≯
+ྨ.≯; ; [P1, V6]; xn--4fd57150h.xn--hdh; ; ; # ྨ.≯
+ྨ.≯; ྨ.≯; [P1, V6]; xn--4fd57150h.xn--hdh; ; ; # ྨ.≯
+xn--4fd57150h.xn--hdh; ྨ.≯; [V6]; xn--4fd57150h.xn--hdh; ; ; # ྨ.≯
+𞡄Ⴓ.𐇽; 𞡄Ⴓ.𐇽; [B1, B3, B6, C2, P1, V5, V6]; xn--rnd379ex885a.xn--m27c; ;
xn--rnd5552v.xn--m27c; [B1, B2, B3, B6, P1, V5, V6] # 𞡄Ⴓ.𐇽
+𞡄Ⴓ.𐇽; ; [B1, B3, B6, C2, P1, V5, V6]; xn--rnd379ex885a.xn--m27c; ;
xn--rnd5552v.xn--m27c; [B1, B2, B3, B6, P1, V5, V6] # 𞡄Ⴓ.𐇽
+𞡄ⴓ.𐇽; ; [B1, B3, B6, C2, V5]; xn--1ugz52c4i16a.xn--m27c; ;
xn--blj7492l.xn--m27c; [B1, B2, B3, B6, V5] # 𞡄ⴓ.𐇽
+xn--blj7492l.xn--m27c; 𞡄ⴓ.𐇽; [B1, B2, B3, B6, V5]; xn--blj7492l.xn--m27c; ; ;
# 𞡄ⴓ.𐇽
+xn--1ugz52c4i16a.xn--m27c; 𞡄ⴓ.𐇽; [B1, B3, B6, C2, V5];
xn--1ugz52c4i16a.xn--m27c; ; ; # 𞡄ⴓ.𐇽
+xn--rnd5552v.xn--m27c; 𞡄Ⴓ.𐇽; [B1, B2, B3, B6, V5, V6]; xn--rnd5552v.xn--m27c;
; ; # 𞡄Ⴓ.𐇽
+xn--rnd379ex885a.xn--m27c; 𞡄Ⴓ.𐇽; [B1, B3, B6, C2, V5, V6];
xn--rnd379ex885a.xn--m27c; ; ; # 𞡄Ⴓ.𐇽
+𞡄ⴓ.𐇽; 𞡄ⴓ.𐇽; [B1, B3, B6, C2, V5]; xn--1ugz52c4i16a.xn--m27c; ;
xn--blj7492l.xn--m27c; [B1, B2, B3, B6, V5] # 𞡄ⴓ.𐇽
+𐪒ß꣪.ᡤ; 𐪒ß꣪.ᡤ; [B2, B3]; xn--zca2517f2hvc.xn--08e; ; xn--ss-tu9hw933a.xn--08e;
# 𐪒ß꣪.ᡤ
+𐪒ß꣪.ᡤ; ; [B2, B3]; xn--zca2517f2hvc.xn--08e; ; xn--ss-tu9hw933a.xn--08e; #
𐪒ß꣪.ᡤ
+𐪒SS꣪.ᡤ; 𐪒ss꣪.ᡤ; [B2, B3]; xn--ss-tu9hw933a.xn--08e; ; ; # 𐪒ss꣪.ᡤ
+𐪒ss꣪.ᡤ; ; [B2, B3]; xn--ss-tu9hw933a.xn--08e; ; ; # 𐪒ss꣪.ᡤ
+xn--ss-tu9hw933a.xn--08e; 𐪒ss꣪.ᡤ; [B2, B3]; xn--ss-tu9hw933a.xn--08e; ; ; #
𐪒ss꣪.ᡤ
+xn--zca2517f2hvc.xn--08e; 𐪒ß꣪.ᡤ; [B2, B3]; xn--zca2517f2hvc.xn--08e; ; ; #
𐪒ß꣪.ᡤ
+𐪒SS꣪.ᡤ; 𐪒ss꣪.ᡤ; [B2, B3]; xn--ss-tu9hw933a.xn--08e; ; ; # 𐪒ss꣪.ᡤ
+𐪒ss꣪.ᡤ; 𐪒ss꣪.ᡤ; [B2, B3]; xn--ss-tu9hw933a.xn--08e; ; ; # 𐪒ss꣪.ᡤ
+𐪒Ss꣪.ᡤ; 𐪒ss꣪.ᡤ; [B2, B3]; xn--ss-tu9hw933a.xn--08e; ; ; # 𐪒ss꣪.ᡤ
+𐪒Ss꣪.ᡤ; 𐪒ss꣪.ᡤ; [B2, B3]; xn--ss-tu9hw933a.xn--08e; ; ; # 𐪒ss꣪.ᡤ
+𐨿󠆌鸮𑚶.ς; 𐨿鸮𑚶.ς; [V5]; xn--l76a726rt2h.xn--3xa; ; xn--l76a726rt2h.xn--4xa; #
𐨿鸮𑚶.ς
+𐨿󠆌鸮𑚶.Σ; 𐨿鸮𑚶.σ; [V5]; xn--l76a726rt2h.xn--4xa; ; ; # 𐨿鸮𑚶.σ
+𐨿󠆌鸮𑚶.σ; 𐨿鸮𑚶.σ; [V5]; xn--l76a726rt2h.xn--4xa; ; ; # 𐨿鸮𑚶.σ
+xn--l76a726rt2h.xn--4xa; 𐨿鸮𑚶.σ; [V5]; xn--l76a726rt2h.xn--4xa; ; ; # 𐨿鸮𑚶.σ
+xn--l76a726rt2h.xn--3xa; 𐨿鸮𑚶.ς; [V5]; xn--l76a726rt2h.xn--3xa; ; ; # 𐨿鸮𑚶.ς
+⒗𞤬。-𑚶; ⒗𞤬.-𑚶; [B1, P1, V3, V6]; xn--8shw466n.xn----4j0j; ; ; # ⒗𞤬.-𑚶
+16.𞤬。-𑚶; 16.𞤬.-𑚶; [B1, V3]; 16.xn--ke6h.xn----4j0j; ; ; # 16.𞤬.-𑚶
+16.𞤊。-𑚶; 16.𞤬.-𑚶; [B1, V3]; 16.xn--ke6h.xn----4j0j; ; ; # 16.𞤬.-𑚶
+16.xn--ke6h.xn----4j0j; 16.𞤬.-𑚶; [B1, V3]; 16.xn--ke6h.xn----4j0j; ; ; #
16.𞤬.-𑚶
+⒗𞤊。-𑚶; ⒗𞤬.-𑚶; [B1, P1, V3, V6]; xn--8shw466n.xn----4j0j; ; ; # ⒗𞤬.-𑚶
+xn--8shw466n.xn----4j0j; ⒗𞤬.-𑚶; [B1, V3, V6]; xn--8shw466n.xn----4j0j; ; ; #
⒗𞤬.-𑚶
+ࢳ𞤿⾫。𐹣ڏ⒈; ࢳ𞤿隹.𐹣ڏ⒈; [B1, B2, B3, P1, V6]; xn--8yb0383efiwk.xn--ljb064mol4n; ; ;
# ࢳ𞤿隹.𐹣ڏ⒈
+ࢳ𞤿隹。𐹣ڏ1.; ࢳ𞤿隹.𐹣ڏ1.; [B1, B2, B3]; xn--8yb0383efiwk.xn--1-wsc3373r.; ; ; #
ࢳ𞤿隹.𐹣ڏ1.
+ࢳ𞤝隹。𐹣ڏ1.; ࢳ𞤿隹.𐹣ڏ1.; [B1, B2, B3]; xn--8yb0383efiwk.xn--1-wsc3373r.; ; ; #
ࢳ𞤿隹.𐹣ڏ1.
+xn--8yb0383efiwk.xn--1-wsc3373r.; ࢳ𞤿隹.𐹣ڏ1.; [B1, B2, B3];
xn--8yb0383efiwk.xn--1-wsc3373r.; ; ; # ࢳ𞤿隹.𐹣ڏ1.
+ࢳ𞤝⾫。𐹣ڏ⒈; ࢳ𞤿隹.𐹣ڏ⒈; [B1, B2, B3, P1, V6]; xn--8yb0383efiwk.xn--ljb064mol4n; ; ;
# ࢳ𞤿隹.𐹣ڏ⒈
+xn--8yb0383efiwk.xn--ljb064mol4n; ࢳ𞤿隹.𐹣ڏ⒈; [B1, B2, B3, V6];
xn--8yb0383efiwk.xn--ljb064mol4n; ; ; # ࢳ𞤿隹.𐹣ڏ⒈
+𝟧١.ᡢ8ི; 5١.ᡢ8ི; [B5, B6, P1, V6]; xn--5-bqc410un435a.xn--8-rkc763epjj; ;
; # 5١.ᡢ8ི
+5١.ᡢ8ི; ; [B5, B6, P1, V6]; xn--5-bqc410un435a.xn--8-rkc763epjj; ; ; #
5١.ᡢ8ི
+xn--5-bqc410un435a.xn--8-rkc763epjj; 5١.ᡢ8ི; [B5, B6, V6];
xn--5-bqc410un435a.xn--8-rkc763epjj; ; ; # 5١.ᡢ8ི
+𐹠.🄀⒒-; ; [B1, P1, V6]; xn--7n0d.xn----xcp9757q1s13g; ; ; # 𐹠.🄀⒒-
+𐹠.0.11.-; ; [B1, P1, V3, V6]; xn--7n0d.0.11.xn----8j07m; ; ; # 𐹠.0.11.-
+xn--7n0d.0.11.xn----8j07m; 𐹠.0.11.-; [B1, V3, V6]; xn--7n0d.0.11.xn----8j07m;
; ; # 𐹠.0.11.-
+xn--7n0d.xn----xcp9757q1s13g; 𐹠.🄀⒒-; [B1, V6]; xn--7n0d.xn----xcp9757q1s13g;
; ; # 𐹠.🄀⒒-
+ς-。𝟭-; ς-.1-; [C1, V3]; xn----xmb.xn--1--i1t; ; xn----zmb.1-; [V3] # ς-.1-
+ς-。1-; ς-.1-; [C1, V3]; xn----xmb.xn--1--i1t; ; xn----zmb.1-; [V3] # ς-.1-
+Σ-。1-; σ-.1-; [C1, V3]; xn----zmb.xn--1--i1t; ; xn----zmb.1-; [V3] # σ-.1-
+σ-。1-; σ-.1-; [C1, V3]; xn----zmb.xn--1--i1t; ; xn----zmb.1-; [V3] # σ-.1-
+xn----zmb.1-; σ-.1-; [V3]; xn----zmb.1-; ; ; # σ-.1-
+xn----zmb.xn--1--i1t; σ-.1-; [C1, V3]; xn----zmb.xn--1--i1t; ; ; # σ-.1-
+xn----xmb.xn--1--i1t; ς-.1-; [C1, V3]; xn----xmb.xn--1--i1t; ; ; # ς-.1-
+Σ-。𝟭-; σ-.1-; [C1, V3]; xn----zmb.xn--1--i1t; ; xn----zmb.1-; [V3] # σ-.1-
+σ-。𝟭-; σ-.1-; [C1, V3]; xn----zmb.xn--1--i1t; ; xn----zmb.1-; [V3] # σ-.1-
+᜴-ೢ.󠄩Ⴄ; ᜴-ೢ.Ⴄ; [P1, V5, V6]; xn----ggf830f.xn--cnd; ; ; # ᜴-ೢ.Ⴄ
+᜴-ೢ.󠄩Ⴄ; ᜴-ೢ.Ⴄ; [P1, V5, V6]; xn----ggf830f.xn--cnd; ; ; # ᜴-ೢ.Ⴄ
+᜴-ೢ.󠄩ⴄ; ᜴-ೢ.ⴄ; [V5]; xn----ggf830f.xn--vkj; ; ; # ᜴-ೢ.ⴄ
+xn----ggf830f.xn--vkj; ᜴-ೢ.ⴄ; [V5]; xn----ggf830f.xn--vkj; ; ; # ᜴-ೢ.ⴄ
+xn----ggf830f.xn--cnd; ᜴-ೢ.Ⴄ; [V5, V6]; xn----ggf830f.xn--cnd; ; ; # ᜴-ೢ.Ⴄ
+᜴-ೢ.󠄩ⴄ; ᜴-ೢ.ⴄ; [V5]; xn----ggf830f.xn--vkj; ; ; # ᜴-ೢ.ⴄ
+♋ڻ𐦥。॔⒈; ♋ڻ𐦥.॔⒈; [B1, B5, B6, P1, V5, V6]; xn--ukb372n129m3rs7f.xn--u3b240l;
; ; # ♋ڻ𐦥.॔⒈
+♋ڻ𐦥。॔1.; ♋ڻ𐦥.॔1.; [B1, B5, B6, P1, V5, V6]; xn--ukb372n129m3rs7f.xn--1-fyd.;
; ; # ♋ڻ𐦥.॔1.
+xn--ukb372n129m3rs7f.xn--1-fyd.; ♋ڻ𐦥.॔1.; [B1, B5, B6, V5, V6];
xn--ukb372n129m3rs7f.xn--1-fyd.; ; ; # ♋ڻ𐦥.॔1.
+xn--ukb372n129m3rs7f.xn--u3b240l; ♋ڻ𐦥.॔⒈; [B1, B5, B6, V5, V6];
xn--ukb372n129m3rs7f.xn--u3b240l; ; ; # ♋ڻ𐦥.॔⒈
+֤.ہ᪳; ֤.ہ᪳; [B1, B3, B6, C1, V5]; xn--vcb.xn--0kb623hm1d; ;
xn--vcb.xn--0kb623h; [B1, B3, B6, V5] # ֤.ہ᪳
+֤.ہ᪳; ; [B1, B3, B6, C1, V5]; xn--vcb.xn--0kb623hm1d; ; xn--vcb.xn--0kb623h;
[B1, B3, B6, V5] # ֤.ہ᪳
+xn--vcb.xn--0kb623h; ֤.ہ᪳; [B1, B3, B6, V5]; xn--vcb.xn--0kb623h; ; ; # ֤.ہ᪳
+xn--vcb.xn--0kb623hm1d; ֤.ہ᪳; [B1, B3, B6, C1, V5]; xn--vcb.xn--0kb623hm1d; ;
; # ֤.ہ᪳
+ࡆ≮્.; ࡆ≮્.; [B5, B6, P1, V6]; xn--4vb80kq29ayo62l.xn--8g6h; ; ; # ࡆ≮્.
+ࡆ≮્.; ࡆ≮્.; [B5, B6, P1, V6]; xn--4vb80kq29ayo62l.xn--8g6h; ; ; # ࡆ≮્.
+ࡆ≮્.; ; [B5, B6, P1, V6]; xn--4vb80kq29ayo62l.xn--8g6h; ; ; # ࡆ≮્.
+ࡆ≮્.; ࡆ≮્.; [B5, B6, P1, V6]; xn--4vb80kq29ayo62l.xn--8g6h; ; ; # ࡆ≮્.
+xn--4vb80kq29ayo62l.xn--8g6h; ࡆ≮્.; [B5, B6, V6];
xn--4vb80kq29ayo62l.xn--8g6h; ; ; # ࡆ≮્.
+。𞀘⒈ꡍ擉; .𞀘⒈ꡍ擉; [C2, P1, V5, V6]; xn--1ug.xn--tsh026uql4bew9p; ;
.xn--tsh026uql4bew9p; [P1, V5, V6, A4_2] # .𞀘⒈ꡍ擉
+。𞀘1.ꡍ擉; .𞀘1.ꡍ擉; [C2, V5]; xn--1ug.xn--1-1p4r.xn--s7uv61m; ;
.xn--1-1p4r.xn--s7uv61m; [V5, A4_2] # .𞀘1.ꡍ擉
+.xn--1-1p4r.xn--s7uv61m; .𞀘1.ꡍ擉; [V5, X4_2]; .xn--1-1p4r.xn--s7uv61m; [V5,
A4_2]; ; # .𞀘1.ꡍ擉
+xn--1ug.xn--1-1p4r.xn--s7uv61m; .𞀘1.ꡍ擉; [C2, V5];
xn--1ug.xn--1-1p4r.xn--s7uv61m; ; ; # .𞀘1.ꡍ擉
+.xn--tsh026uql4bew9p; .𞀘⒈ꡍ擉; [V5, V6, X4_2]; .xn--tsh026uql4bew9p; [V5, V6,
A4_2]; ; # .𞀘⒈ꡍ擉
+xn--1ug.xn--tsh026uql4bew9p; .𞀘⒈ꡍ擉; [C2, V5, V6];
xn--1ug.xn--tsh026uql4bew9p; ; ; # .𞀘⒈ꡍ擉
+₈ߋ.ﭤ≠; 8ߋ.ٿ≠; [B1, B3, P1, V6]; xn--8-zbd.xn--4ib883l; ; ; # 8ߋ.ٿ≠
+₈ߋ.ﭤ≠; 8ߋ.ٿ≠; [B1, B3, P1, V6]; xn--8-zbd.xn--4ib883l; ; ; # 8ߋ.ٿ≠
+8ߋ.ٿ≠; ; [B1, B3, P1, V6]; xn--8-zbd.xn--4ib883l; ; ; # 8ߋ.ٿ≠
+8ߋ.ٿ≠; 8ߋ.ٿ≠; [B1, B3, P1, V6]; xn--8-zbd.xn--4ib883l; ; ; # 8ߋ.ٿ≠
+xn--8-zbd.xn--4ib883l; 8ߋ.ٿ≠; [B1, B3, V6]; xn--8-zbd.xn--4ib883l; ; ; # 8ߋ.ٿ≠
+ᢡߞ.⒒ق𑍦; ; [B1, B5, P1, V6]; xn--5sb596fi873t.xn--ehb336mvy7n; ; ; # ᢡߞ.⒒ق𑍦
+ᢡߞ.11.ق𑍦; ; [B1, B5, P1, V6]; xn--5sb596fi873t.11.xn--ehb4198k; ; ; #
ᢡߞ.11.ق𑍦
+xn--5sb596fi873t.11.xn--ehb4198k; ᢡߞ.11.ق𑍦; [B1, B5, V6];
xn--5sb596fi873t.11.xn--ehb4198k; ; ; # ᢡߞ.11.ق𑍦
+xn--5sb596fi873t.xn--ehb336mvy7n; ᢡߞ.⒒ق𑍦; [B1, B5, V6];
xn--5sb596fi873t.xn--ehb336mvy7n; ; ; # ᢡߞ.⒒ق𑍦
+่-𐹺𝟜.ͣۡ⒏; ่-𐹺4.ͣۡ⒏; [B1, P1, V5, V6]; xn---4-owiz479s.xn--eva20pjv9a; ; ; #
่-𐹺4.ͣۡ⒏
+่-𐹺4.ͣۡ8.; ; [B1, V5]; xn---4-owiz479s.xn--8-ihb69x.; ; ; # ่-𐹺4.ͣۡ8.
+xn---4-owiz479s.xn--8-ihb69x.; ่-𐹺4.ͣۡ8.; [B1, V5];
xn---4-owiz479s.xn--8-ihb69x.; ; ; # ่-𐹺4.ͣۡ8.
+xn---4-owiz479s.xn--eva20pjv9a; ่-𐹺4.ͣۡ⒏; [B1, V5, V6];
xn---4-owiz479s.xn--eva20pjv9a; ; ; # ่-𐹺4.ͣۡ⒏
+⫐。Ⴠ-; ⫐.Ⴠ-; [P1, V6]; xn--r3i.xn----z1g58579u; ; ; # ⫐.Ⴠ-
+⫐。Ⴠ-; ⫐.Ⴠ-; [P1, V6]; xn--r3i.xn----z1g58579u; ; ; # ⫐.Ⴠ-
+⫐。ⴠ-; ⫐.ⴠ-; [P1, V6]; xn--r3i.xn----2wst7439i; ; ; # ⫐.ⴠ-
+xn--r3i.xn----2wst7439i; ⫐.ⴠ-; [V6]; xn--r3i.xn----2wst7439i; ; ; # ⫐.ⴠ-
+xn--r3i.xn----z1g58579u; ⫐.Ⴠ-; [V6]; xn--r3i.xn----z1g58579u; ; ; # ⫐.Ⴠ-
+⫐。ⴠ-; ⫐.ⴠ-; [P1, V6]; xn--r3i.xn----2wst7439i; ; ; # ⫐.ⴠ-
+𑑂◊.⦟∠; 𑑂◊.⦟∠; [V5]; xn--01h3338f.xn--79g270a; ; ; # 𑑂◊.⦟∠
+𑑂◊.⦟∠; ; [V5]; xn--01h3338f.xn--79g270a; ; ; # 𑑂◊.⦟∠
+xn--01h3338f.xn--79g270a; 𑑂◊.⦟∠; [V5]; xn--01h3338f.xn--79g270a; ; ; # 𑑂◊.⦟∠
+-٢。ꡂ; -٢.ꡂ; [B5, B6, P1, V6]; xn----dqc20828e.xn--bc9an2879c; ; ; # -٢.ꡂ
+xn----dqc20828e.xn--bc9an2879c; -٢.ꡂ; [B5, B6, V6];
xn----dqc20828e.xn--bc9an2879c; ; ; # -٢.ꡂ
+ٸ。݁𐹪; يٴ.݁𐹪; [B1, P1, V6]; xn--mhb8f.xn--oob2585kfdsfsbo7h; ; ; # يٴ.݁𐹪
+يٴ。݁𐹪; يٴ.݁𐹪; [B1, P1, V6]; xn--mhb8f.xn--oob2585kfdsfsbo7h; ; ; # يٴ.݁𐹪
+xn--mhb8f.xn--oob2585kfdsfsbo7h; يٴ.݁𐹪; [B1, V6];
xn--mhb8f.xn--oob2585kfdsfsbo7h; ; ; # يٴ.݁𐹪
+𐫆ꌄ。ᣬ; 𐫆ꌄ.ᣬ; [B1, B2, B3, C2]; xn--y77ao18q.xn--wdf367a; ;
xn--y77ao18q.xn--wdf; [B2, B3] # 𐫆ꌄ.ᣬ
+𐫆ꌄ。ᣬ; 𐫆ꌄ.ᣬ; [B1, B2, B3, C2]; xn--y77ao18q.xn--wdf367a; ;
xn--y77ao18q.xn--wdf; [B2, B3] # 𐫆ꌄ.ᣬ
+xn--y77ao18q.xn--wdf; 𐫆ꌄ.ᣬ; [B2, B3]; xn--y77ao18q.xn--wdf; ; ; # 𐫆ꌄ.ᣬ
+xn--y77ao18q.xn--wdf367a; 𐫆ꌄ.ᣬ; [B1, B2, B3, C2]; xn--y77ao18q.xn--wdf367a; ;
; # 𐫆ꌄ.ᣬ
+₀٢。≯-; 0٢.≯-; [B1, B6, P1, V3, V6]; xn--0-dqc.xn----ogov3342l; ; ; # 0٢.≯-
+₀٢。≯-; 0٢.≯-; [B1, B6, P1, V3, V6]; xn--0-dqc.xn----ogov3342l; ; ; # 0٢.≯-
+0٢。≯-; 0٢.≯-; [B1, B6, P1, V3, V6]; xn--0-dqc.xn----ogov3342l; ; ; # 0٢.≯-
+0٢。≯-; 0٢.≯-; [B1, B6, P1, V3, V6]; xn--0-dqc.xn----ogov3342l; ; ; # 0٢.≯-
+xn--0-dqc.xn----ogov3342l; 0٢.≯-; [B1, B6, V3, V6];
xn--0-dqc.xn----ogov3342l; ; ; # 0٢.≯-
+̜𐹫-.𐋤ࡅ; ; [B1, P1, V5, V6]; xn----gdb7046r692g.xn--3vb1349j; ; ; # ̜𐹫-.𐋤ࡅ
+xn----gdb7046r692g.xn--3vb1349j; ̜𐹫-.𐋤ࡅ; [B1, V5, V6];
xn----gdb7046r692g.xn--3vb1349j; ; ; # ̜𐹫-.𐋤ࡅ
+≠。𝩑𐹩Ⴡ֔; ≠.𝩑𐹩Ⴡ֔; [B1, P1, V5, V6]; xn--1ch.xn--fcb538c649rypog; ; ; # ≠.𝩑𐹩Ⴡ֔
+≠。𝩑𐹩Ⴡ֔; ≠.𝩑𐹩Ⴡ֔; [B1, P1, V5, V6]; xn--1ch.xn--fcb538c649rypog; ; ; # ≠.𝩑𐹩Ⴡ֔
+≠。𝩑𐹩Ⴡ֔; ≠.𝩑𐹩Ⴡ֔; [B1, P1, V5, V6]; xn--1ch.xn--fcb538c649rypog; ; ; # ≠.𝩑𐹩Ⴡ֔
+≠。𝩑𐹩Ⴡ֔; ≠.𝩑𐹩Ⴡ֔; [B1, P1, V5, V6]; xn--1ch.xn--fcb538c649rypog; ; ; # ≠.𝩑𐹩Ⴡ֔
+≠。𝩑𐹩ⴡ֔; ≠.𝩑𐹩ⴡ֔; [B1, P1, V5, V6]; xn--1ch.xn--fcb363rk03mypug; ; ; # ≠.𝩑𐹩ⴡ֔
+≠。𝩑𐹩ⴡ֔; ≠.𝩑𐹩ⴡ֔; [B1, P1, V5, V6]; xn--1ch.xn--fcb363rk03mypug; ; ; # ≠.𝩑𐹩ⴡ֔
+xn--1ch.xn--fcb363rk03mypug; ≠.𝩑𐹩ⴡ֔; [B1, V5, V6];
xn--1ch.xn--fcb363rk03mypug; ; ; # ≠.𝩑𐹩ⴡ֔
+xn--1ch.xn--fcb538c649rypog; ≠.𝩑𐹩Ⴡ֔; [B1, V5, V6];
xn--1ch.xn--fcb538c649rypog; ; ; # ≠.𝩑𐹩Ⴡ֔
+≠。𝩑𐹩ⴡ֔; ≠.𝩑𐹩ⴡ֔; [B1, P1, V5, V6]; xn--1ch.xn--fcb363rk03mypug; ; ; # ≠.𝩑𐹩ⴡ֔
+≠。𝩑𐹩ⴡ֔; ≠.𝩑𐹩ⴡ֔; [B1, P1, V5, V6]; xn--1ch.xn--fcb363rk03mypug; ; ; # ≠.𝩑𐹩ⴡ֔
+𖫳≠.Ⴀ𐮀; ; [B1, B5, B6, P1, V5, V6]; xn--1ch9250k.xn--7md2659j; ; ; # 𖫳≠.Ⴀ𐮀
+𖫳≠.Ⴀ𐮀; 𖫳≠.Ⴀ𐮀; [B1, B5, B6, P1, V5, V6]; xn--1ch9250k.xn--7md2659j; ; ; #
𖫳≠.Ⴀ𐮀
+𖫳≠.ⴀ𐮀; 𖫳≠.ⴀ𐮀; [B1, B5, B6, P1, V5, V6]; xn--1ch9250k.xn--rkj6232e; ; ; #
𖫳≠.ⴀ𐮀
+𖫳≠.ⴀ𐮀; ; [B1, B5, B6, P1, V5, V6]; xn--1ch9250k.xn--rkj6232e; ; ; # 𖫳≠.ⴀ𐮀
+xn--1ch9250k.xn--rkj6232e; 𖫳≠.ⴀ𐮀; [B1, B5, B6, V5, V6];
xn--1ch9250k.xn--rkj6232e; ; ; # 𖫳≠.ⴀ𐮀
+xn--1ch9250k.xn--7md2659j; 𖫳≠.Ⴀ𐮀; [B1, B5, B6, V5, V6];
xn--1ch9250k.xn--7md2659j; ; ; # 𖫳≠.Ⴀ𐮀
+󠅾ܶܦ.ᢚ閪𝩟; ܶܦ.ᢚ閪𝩟; [B1, B5, B6, P1, V5, V6]; xn--wnb5a.xn--l0b161fis8gbp5m; ;
; # ܶܦ.ᢚ閪𝩟
+󠅾ܶܦ.ᢚ閪𝩟; ܶܦ.ᢚ閪𝩟; [B1, B5, B6, P1, V5, V6]; xn--wnb5a.xn--l0b161fis8gbp5m; ;
; # ܶܦ.ᢚ閪𝩟
+xn--wnb5a.xn--l0b161fis8gbp5m; ܶܦ.ᢚ閪𝩟; [B1, B5, B6, V5, V6];
xn--wnb5a.xn--l0b161fis8gbp5m; ; ; # ܶܦ.ᢚ閪𝩟
+󠇜ۋ꣩。⃝ྰ-ᛟ; ۋ꣩.⃝ྰ-ᛟ; [B1, C2, V5]; xn--blb540ke10h.xn----gmg236cj6k; ;
xn--blb8114f.xn----gmg236cj6k; [B1, V5] # ۋ꣩.⃝ྰ-ᛟ
+󠇜ۋ꣩。⃝ྰ-ᛟ; ۋ꣩.⃝ྰ-ᛟ; [B1, C2, V5]; xn--blb540ke10h.xn----gmg236cj6k; ;
xn--blb8114f.xn----gmg236cj6k; [B1, V5] # ۋ꣩.⃝ྰ-ᛟ
+xn--blb8114f.xn----gmg236cj6k; ۋ꣩.⃝ྰ-ᛟ; [B1, V5];
xn--blb8114f.xn----gmg236cj6k; ; ; # ۋ꣩.⃝ྰ-ᛟ
+xn--blb540ke10h.xn----gmg236cj6k; ۋ꣩.⃝ྰ-ᛟ; [B1, C2, V5];
xn--blb540ke10h.xn----gmg236cj6k; ; ; # ۋ꣩.⃝ྰ-ᛟ
+헁ฺ。ں𝟜; 헁ฺ.ں4; [P1, V6]; xn--o4c1723h8g85gt4ya.xn--4-dvc; ; ; # 헁ฺ.ں4
+헁ฺ。ں𝟜; 헁ฺ.ں4; [P1, V6]; xn--o4c1723h8g85gt4ya.xn--4-dvc; ; ; # 헁ฺ.ں4
+헁ฺ。ں4; 헁ฺ.ں4; [P1, V6]; xn--o4c1723h8g85gt4ya.xn--4-dvc; ; ; # 헁ฺ.ں4
+헁ฺ。ں4; 헁ฺ.ں4; [P1, V6]; xn--o4c1723h8g85gt4ya.xn--4-dvc; ; ; # 헁ฺ.ں4
+xn--o4c1723h8g85gt4ya.xn--4-dvc; 헁ฺ.ں4; [V6];
xn--o4c1723h8g85gt4ya.xn--4-dvc; ; ; # 헁ฺ.ں4
+𐹭。Ⴞ; 𐹭.Ⴞ; [B1, C1, P1, V6]; xn--lo0d.xn--2nd949eqw95u; ;
xn--lo0d.xn--2nd75260n; [B1, P1, V6] # 𐹭.Ⴞ
+𐹭。Ⴞ; 𐹭.Ⴞ; [B1, C1, P1, V6]; xn--lo0d.xn--2nd949eqw95u; ;
xn--lo0d.xn--2nd75260n; [B1, P1, V6] # 𐹭.Ⴞ
+𐹭。ⴞ; 𐹭.ⴞ; [B1, C1, P1, V6]; xn--lo0d.xn--0ugx72cwi33v; ;
xn--lo0d.xn--mljx1099g; [B1, P1, V6] # 𐹭.ⴞ
+xn--lo0d.xn--mljx1099g; 𐹭.ⴞ; [B1, V6]; xn--lo0d.xn--mljx1099g; ; ; # 𐹭.ⴞ
+xn--lo0d.xn--0ugx72cwi33v; 𐹭.ⴞ; [B1, C1, V6]; xn--lo0d.xn--0ugx72cwi33v; ; ;
# 𐹭.ⴞ
+xn--lo0d.xn--2nd75260n; 𐹭.Ⴞ; [B1, V6]; xn--lo0d.xn--2nd75260n; ; ; # 𐹭.Ⴞ
+xn--lo0d.xn--2nd949eqw95u; 𐹭.Ⴞ; [B1, C1, V6]; xn--lo0d.xn--2nd949eqw95u; ; ;
# 𐹭.Ⴞ
+𐹭。ⴞ; 𐹭.ⴞ; [B1, C1, P1, V6]; xn--lo0d.xn--0ugx72cwi33v; ;
xn--lo0d.xn--mljx1099g; [B1, P1, V6] # 𐹭.ⴞ
+꥓.̽馋; ; [P1, V5, V6]; xn--3j9a.xn--bua0708eqzrd; ; ; # ꥓.̽馋
+xn--3j9a.xn--bua0708eqzrd; ꥓.̽馋; [V5, V6]; xn--3j9a.xn--bua0708eqzrd; ; ; #
꥓.̽馋
+。䜖; .䜖; [C2, P1, V6]; xn--1ug30527h9mxi.xn--k0o; ;
xn--g138cxw05a.xn--k0o; [P1, V6] # .䜖
+。䜖; .䜖; [C2, P1, V6]; xn--1ug30527h9mxi.xn--k0o; ;
xn--g138cxw05a.xn--k0o; [P1, V6] # .䜖
+xn--g138cxw05a.xn--k0o; .䜖; [V6]; xn--g138cxw05a.xn--k0o; ; ; # .䜖
+xn--1ug30527h9mxi.xn--k0o; .䜖; [C2, V6]; xn--1ug30527h9mxi.xn--k0o; ; ; #
.䜖
+ᡯ⚉姶🄉.۷🎪; ᡯ⚉姶🄉.۷🎪; [C2, P1, V6]; xn--c9e433epi4b3j20a.xn--kmb859ja94998b; ;
xn--c9e433epi4b3j20a.xn--kmb6733w; [P1, V6] # ᡯ⚉姶🄉.۷🎪
+ᡯ⚉姶8,.۷🎪; ; [C2, P1, V6]; xn--8,-g9oy26fzu4d.xn--kmb859ja94998b; ;
xn--8,-g9oy26fzu4d.xn--kmb6733w; [P1, V6] # ᡯ⚉姶8,.۷🎪
+xn--8,-g9oy26fzu4d.xn--kmb6733w; ᡯ⚉姶8,.۷🎪; [P1, V6];
xn--8,-g9oy26fzu4d.xn--kmb6733w; ; ; # ᡯ⚉姶8,.۷🎪
+xn--8,-g9oy26fzu4d.xn--kmb859ja94998b; ᡯ⚉姶8,.۷🎪; [C2, P1, V6];
xn--8,-g9oy26fzu4d.xn--kmb859ja94998b; ; ; # ᡯ⚉姶8,.۷🎪
+xn--c9e433epi4b3j20a.xn--kmb6733w; ᡯ⚉姶🄉.۷🎪; [V6];
xn--c9e433epi4b3j20a.xn--kmb6733w; ; ; # ᡯ⚉姶🄉.۷🎪
+xn--c9e433epi4b3j20a.xn--kmb859ja94998b; ᡯ⚉姶🄉.۷🎪; [C2, V6];
xn--c9e433epi4b3j20a.xn--kmb859ja94998b; ; ; # ᡯ⚉姶🄉.۷🎪
+.𐹸🚖ฺ; ; [B1, P1, V6]; xn--0n7h.xn--o4c9032klszf; ; ; # .𐹸🚖ฺ
+xn--0n7h.xn--o4c9032klszf; .𐹸🚖ฺ; [B1, V6]; xn--0n7h.xn--o4c9032klszf; ; ; #
.𐹸🚖ฺ
+Ⴔᠵ。𐹧݇۹; Ⴔᠵ.𐹧݇۹; [B1, P1, V6]; xn--snd659a.xn--mmb9ml895e; ; ; # Ⴔᠵ.𐹧݇۹
+Ⴔᠵ。𐹧݇۹; Ⴔᠵ.𐹧݇۹; [B1, P1, V6]; xn--snd659a.xn--mmb9ml895e; ; ; # Ⴔᠵ.𐹧݇۹
+ⴔᠵ。𐹧݇۹; ⴔᠵ.𐹧݇۹; [B1]; xn--o7e997h.xn--mmb9ml895e; ; ; # ⴔᠵ.𐹧݇۹
+xn--o7e997h.xn--mmb9ml895e; ⴔᠵ.𐹧݇۹; [B1]; xn--o7e997h.xn--mmb9ml895e; ; ; #
ⴔᠵ.𐹧݇۹
+xn--snd659a.xn--mmb9ml895e; Ⴔᠵ.𐹧݇۹; [B1, V6]; xn--snd659a.xn--mmb9ml895e; ; ;
# Ⴔᠵ.𐹧݇۹
+ⴔᠵ。𐹧݇۹; ⴔᠵ.𐹧݇۹; [B1]; xn--o7e997h.xn--mmb9ml895e; ; ; # ⴔᠵ.𐹧݇۹
+፟ᡈ.︒-𖾐-; ፟ᡈ.︒-𖾐-; [C1, P1, V3, V5, V6]; xn--b7d82wo4h.xn-----c82nz547a; ;
xn--b7d82w.xn-----c82nz547a; [P1, V3, V5, V6] # ፟ᡈ.︒-𖾐-
+፟ᡈ.。-𖾐-; ፟ᡈ..-𖾐-; [C1, V3, V5, X4_2]; xn--b7d82wo4h..xn-----pe4u; [C1, V3,
V5, A4_2]; xn--b7d82w..xn-----pe4u; [V3, V5, A4_2] # ፟ᡈ..-𖾐-
+xn--b7d82w..xn-----pe4u; ፟ᡈ..-𖾐-; [V3, V5, X4_2]; xn--b7d82w..xn-----pe4u;
[V3, V5, A4_2]; ; # ፟ᡈ..-𖾐-
+xn--b7d82wo4h..xn-----pe4u; ፟ᡈ..-𖾐-; [C1, V3, V5, X4_2];
xn--b7d82wo4h..xn-----pe4u; [C1, V3, V5, A4_2]; ; # ፟ᡈ..-𖾐-
+xn--b7d82w.xn-----c82nz547a; ፟ᡈ.︒-𖾐-; [V3, V5, V6];
xn--b7d82w.xn-----c82nz547a; ; ; # ፟ᡈ.︒-𖾐-
+xn--b7d82wo4h.xn-----c82nz547a; ፟ᡈ.︒-𖾐-; [C1, V3, V5, V6];
xn--b7d82wo4h.xn-----c82nz547a; ; ; # ፟ᡈ.︒-𖾐-
+⒈⒖.ᷰߛ; ; [B1, C1, P1, V5, V6]; xn--jfb844kmfdwb.xn--2sb914i; ;
xn--jfb347mib.xn--2sb914i; [B1, P1, V5, V6] # ⒈⒖.ᷰߛ
+1.15..ᷰߛ; ; [B1, C1, P1, V5, V6]; 1.xn--15-1pd.xn--0ug.xn--2sb914i; ;
1.xn--15-1pd..xn--2sb914i; [B1, P1, V5, V6, A4_2] # 1.15..ᷰߛ
+1.xn--15-1pd..xn--2sb914i; 1.15..ᷰߛ; [B1, V5, V6, X4_2];
1.xn--15-1pd..xn--2sb914i; [B1, V5, V6, A4_2]; ; # 1.15..ᷰߛ
+1.xn--15-1pd.xn--0ug.xn--2sb914i; 1.15..ᷰߛ; [B1, C1, V5, V6];
1.xn--15-1pd.xn--0ug.xn--2sb914i; ; ; # 1.15..ᷰߛ
+xn--jfb347mib.xn--2sb914i; ⒈⒖.ᷰߛ; [B1, V5, V6]; xn--jfb347mib.xn--2sb914i; ;
; # ⒈⒖.ᷰߛ
+xn--jfb844kmfdwb.xn--2sb914i; ⒈⒖.ᷰߛ; [B1, C1, V5, V6];
xn--jfb844kmfdwb.xn--2sb914i; ; ; # ⒈⒖.ᷰߛ
+𝩜。-୍Ⴋ; 𝩜.-୍Ⴋ; [P1, V3, V5, V6]; xn--792h.xn----bse632b; ; ; # 𝩜.-୍Ⴋ
+𝩜。-୍ⴋ; 𝩜.-୍ⴋ; [V3, V5]; xn--792h.xn----bse820x; ; ; # 𝩜.-୍ⴋ
+xn--792h.xn----bse820x; 𝩜.-୍ⴋ; [V3, V5]; xn--792h.xn----bse820x; ; ; # 𝩜.-୍ⴋ
+xn--792h.xn----bse632b; 𝩜.-୍Ⴋ; [V3, V5, V6]; xn--792h.xn----bse632b; ; ; #
𝩜.-୍Ⴋ
+ßჀ.ؠ刯Ⴝ; ; [B2, B3, P1, V6]; xn--zca442f.xn--fgb845cb66c; ;
xn--ss-wgk.xn--fgb845cb66c; # ßჀ.ؠ刯Ⴝ
+ßⴠ.ؠ刯ⴝ; ; [B2, B3]; xn--zca277t.xn--fgb670rovy; ; xn--ss-j81a.xn--fgb670rovy;
# ßⴠ.ؠ刯ⴝ
+SSჀ.ؠ刯Ⴝ; ssჀ.ؠ刯Ⴝ; [B2, B3, P1, V6]; xn--ss-wgk.xn--fgb845cb66c; ; ; # ssჀ.ؠ刯Ⴝ
+ssⴠ.ؠ刯ⴝ; ; [B2, B3]; xn--ss-j81a.xn--fgb670rovy; ; ; # ssⴠ.ؠ刯ⴝ
+Ssⴠ.ؠ刯Ⴝ; ssⴠ.ؠ刯Ⴝ; [B2, B3, P1, V6]; xn--ss-j81a.xn--fgb845cb66c; ; ; # ssⴠ.ؠ刯Ⴝ
+xn--ss-j81a.xn--fgb845cb66c; ssⴠ.ؠ刯Ⴝ; [B2, B3, V6];
xn--ss-j81a.xn--fgb845cb66c; ; ; # ssⴠ.ؠ刯Ⴝ
+xn--ss-j81a.xn--fgb670rovy; ssⴠ.ؠ刯ⴝ; [B2, B3]; xn--ss-j81a.xn--fgb670rovy; ; ;
# ssⴠ.ؠ刯ⴝ
+xn--ss-wgk.xn--fgb845cb66c; ssჀ.ؠ刯Ⴝ; [B2, B3, V6]; xn--ss-wgk.xn--fgb845cb66c;
; ; # ssჀ.ؠ刯Ⴝ
+xn--zca277t.xn--fgb670rovy; ßⴠ.ؠ刯ⴝ; [B2, B3]; xn--zca277t.xn--fgb670rovy; ; ;
# ßⴠ.ؠ刯ⴝ
+xn--zca442f.xn--fgb845cb66c; ßჀ.ؠ刯Ⴝ; [B2, B3, V6];
xn--zca442f.xn--fgb845cb66c; ; ; # ßჀ.ؠ刯Ⴝ
+᮪ႣℲ。ᠳ툻ٳ; ᮪ႣℲ.ᠳ툻ٳ; [B5, B6, P1, V5, V6]; xn--bnd957cone.xn--sib102gc69k; ; ; #
᮪ႣℲ.ᠳ툻ٳ
+᮪ႣℲ。ᠳ툻ٳ; ᮪ႣℲ.ᠳ툻ٳ; [B5, B6, P1, V5, V6]; xn--bnd957cone.xn--sib102gc69k; ; ;
# ᮪ႣℲ.ᠳ툻ٳ
+᮪ႣℲ。ᠳ툻ٳ; ᮪ႣℲ.ᠳ툻ٳ; [B5, B6, P1, V5, V6]; xn--bnd957cone.xn--sib102gc69k; ; ; #
᮪ႣℲ.ᠳ툻ٳ
+᮪ႣℲ。ᠳ툻ٳ; ᮪ႣℲ.ᠳ툻ٳ; [B5, B6, P1, V5, V6]; xn--bnd957cone.xn--sib102gc69k; ; ;
# ᮪ႣℲ.ᠳ툻ٳ
+᮪ⴃⅎ。ᠳ툻ٳ; ᮪ⴃⅎ.ᠳ툻ٳ; [B5, B6, V5]; xn--yxf24x4ol.xn--sib102gc69k; ; ; # ᮪ⴃⅎ.ᠳ툻ٳ
+᮪ⴃⅎ。ᠳ툻ٳ; ᮪ⴃⅎ.ᠳ툻ٳ; [B5, B6, V5]; xn--yxf24x4ol.xn--sib102gc69k; ; ; # ᮪ⴃⅎ.ᠳ툻ٳ
+᮪Ⴃⅎ。ᠳ툻ٳ; ᮪Ⴃⅎ.ᠳ툻ٳ; [B5, B6, P1, V5, V6]; xn--bnd957c2pe.xn--sib102gc69k; ; ; #
᮪Ⴃⅎ.ᠳ툻ٳ
+᮪Ⴃⅎ。ᠳ툻ٳ; ᮪Ⴃⅎ.ᠳ툻ٳ; [B5, B6, P1, V5, V6]; xn--bnd957c2pe.xn--sib102gc69k; ; ;
# ᮪Ⴃⅎ.ᠳ툻ٳ
+xn--bnd957c2pe.xn--sib102gc69k; ᮪Ⴃⅎ.ᠳ툻ٳ; [B5, B6, V5, V6];
xn--bnd957c2pe.xn--sib102gc69k; ; ; # ᮪Ⴃⅎ.ᠳ툻ٳ
+xn--yxf24x4ol.xn--sib102gc69k; ᮪ⴃⅎ.ᠳ툻ٳ; [B5, B6, V5];
xn--yxf24x4ol.xn--sib102gc69k; ; ; # ᮪ⴃⅎ.ᠳ툻ٳ
+xn--bnd957cone.xn--sib102gc69k; ᮪ႣℲ.ᠳ툻ٳ; [B5, B6, V5, V6];
xn--bnd957cone.xn--sib102gc69k; ; ; # ᮪ႣℲ.ᠳ툻ٳ
+᮪ⴃⅎ。ᠳ툻ٳ; ᮪ⴃⅎ.ᠳ툻ٳ; [B5, B6, V5]; xn--yxf24x4ol.xn--sib102gc69k; ; ; # ᮪ⴃⅎ.ᠳ툻ٳ
+᮪ⴃⅎ。ᠳ툻ٳ; ᮪ⴃⅎ.ᠳ툻ٳ; [B5, B6, V5]; xn--yxf24x4ol.xn--sib102gc69k; ; ; # ᮪ⴃⅎ.ᠳ툻ٳ
+᮪Ⴃⅎ。ᠳ툻ٳ; ᮪Ⴃⅎ.ᠳ툻ٳ; [B5, B6, P1, V5, V6]; xn--bnd957c2pe.xn--sib102gc69k; ; ; #
᮪Ⴃⅎ.ᠳ툻ٳ
+᮪Ⴃⅎ。ᠳ툻ٳ; ᮪Ⴃⅎ.ᠳ툻ٳ; [B5, B6, P1, V5, V6]; xn--bnd957c2pe.xn--sib102gc69k; ; ;
# ᮪Ⴃⅎ.ᠳ툻ٳ
+۬.ࢢ𐹫ټ; ; [B1, B3, B6, V5]; xn--8lb.xn--1ib31ily45b; ; ; # ۬.ࢢ𐹫ټ
+xn--8lb.xn--1ib31ily45b; ۬.ࢢ𐹫ټ; [B1, B3, B6, V5]; xn--8lb.xn--1ib31ily45b; ; ;
# ۬.ࢢ𐹫ټ
+ڶ۟。₇꠆; ڶ۟.7꠆; [B1]; xn--pkb6f.xn--7-x93e; ; ; # ڶ۟.7꠆
+ڶ۟。7꠆; ڶ۟.7꠆; [B1]; xn--pkb6f.xn--7-x93e; ; ; # ڶ۟.7꠆
+xn--pkb6f.xn--7-x93e; ڶ۟.7꠆; [B1]; xn--pkb6f.xn--7-x93e; ; ; # ڶ۟.7꠆
+ڶ۟.7꠆; ; [B1]; xn--pkb6f.xn--7-x93e; ; ; # ڶ۟.7꠆
+Ⴣ𐹻.𝪣≮; ; [B1, B5, B6, C1, P1, V6]; xn--7nd8101k.xn--0ugy6gn120eb103g; ;
xn--7nd8101k.xn--gdh4944ob3x3e; [B1, B5, B6, P1, V5, V6] # Ⴣ𐹻.𝪣≮
+Ⴣ𐹻.𝪣≮; Ⴣ𐹻.𝪣≮; [B1, B5, B6, C1, P1, V6];
xn--7nd8101k.xn--0ugy6gn120eb103g; ; xn--7nd8101k.xn--gdh4944ob3x3e; [B1, B5,
B6, P1, V5, V6] # Ⴣ𐹻.𝪣≮
+ⴣ𐹻.𝪣≮; ⴣ𐹻.𝪣≮; [B1, B5, B6, C1, P1, V6];
xn--rlj6323e.xn--0ugy6gn120eb103g; ; xn--rlj6323e.xn--gdh4944ob3x3e; [B1, B5,
B6, P1, V5, V6] # ⴣ𐹻.𝪣≮
+ⴣ𐹻.𝪣≮; ; [B1, B5, B6, C1, P1, V6]; xn--rlj6323e.xn--0ugy6gn120eb103g; ;
xn--rlj6323e.xn--gdh4944ob3x3e; [B1, B5, B6, P1, V5, V6] # ⴣ𐹻.𝪣≮
+xn--rlj6323e.xn--gdh4944ob3x3e; ⴣ𐹻.𝪣≮; [B1, B5, B6, V5, V6];
xn--rlj6323e.xn--gdh4944ob3x3e; ; ; # ⴣ𐹻.𝪣≮
+xn--rlj6323e.xn--0ugy6gn120eb103g; ⴣ𐹻.𝪣≮; [B1, B5, B6, C1, V6];
xn--rlj6323e.xn--0ugy6gn120eb103g; ; ; # ⴣ𐹻.𝪣≮
+xn--7nd8101k.xn--gdh4944ob3x3e; Ⴣ𐹻.𝪣≮; [B1, B5, B6, V5, V6];
xn--7nd8101k.xn--gdh4944ob3x3e; ; ; # Ⴣ𐹻.𝪣≮
+xn--7nd8101k.xn--0ugy6gn120eb103g; Ⴣ𐹻.𝪣≮; [B1, B5, B6, C1, V6];
xn--7nd8101k.xn--0ugy6gn120eb103g; ; ; # Ⴣ𐹻.𝪣≮
+𝟵隁⯮.᠍; 9隁⯮.; [C1]; xn--9-mfs8024b.xn--0ug; ; xn--9-mfs8024b.; [] # 9隁⯮.
+9隁⯮.᠍; 9隁⯮.; [C1]; xn--9-mfs8024b.xn--0ug; ; xn--9-mfs8024b.; [] # 9隁⯮.
+xn--9-mfs8024b.; 9隁⯮.; ; xn--9-mfs8024b.; ; ; # 9隁⯮.
+9隁⯮.; ; ; xn--9-mfs8024b.; ; ; # 9隁⯮.
+xn--9-mfs8024b.xn--0ug; 9隁⯮.; [C1]; xn--9-mfs8024b.xn--0ug; ; ; # 9隁⯮.
+⒏𐹧。Ⴣ྄彦; ⒏𐹧.Ⴣ྄彦; [B1, P1, V6]; xn--0sh2466f.xn--3ed15dt93o; ; ; # ⒏𐹧.Ⴣ྄彦
+8.𐹧。Ⴣ྄彦; 8.𐹧.Ⴣ྄彦; [B1, P1, V6]; 8.xn--fo0d.xn--3ed15dt93o; ; ; # 8.𐹧.Ⴣ྄彦
+8.𐹧。ⴣ྄彦; 8.𐹧.ⴣ྄彦; [B1]; 8.xn--fo0d.xn--3ed972m6o8a; ; ; # 8.𐹧.ⴣ྄彦
+8.xn--fo0d.xn--3ed972m6o8a; 8.𐹧.ⴣ྄彦; [B1]; 8.xn--fo0d.xn--3ed972m6o8a; ; ; #
8.𐹧.ⴣ྄彦
+8.xn--fo0d.xn--3ed15dt93o; 8.𐹧.Ⴣ྄彦; [B1, V6]; 8.xn--fo0d.xn--3ed15dt93o; ; ;
# 8.𐹧.Ⴣ྄彦
+⒏𐹧。ⴣ྄彦; ⒏𐹧.ⴣ྄彦; [B1, P1, V6]; xn--0sh2466f.xn--3ed972m6o8a; ; ; # ⒏𐹧.ⴣ྄彦
+xn--0sh2466f.xn--3ed972m6o8a; ⒏𐹧.ⴣ྄彦; [B1, V6]; xn--0sh2466f.xn--3ed972m6o8a;
; ; # ⒏𐹧.ⴣ྄彦
+xn--0sh2466f.xn--3ed15dt93o; ⒏𐹧.Ⴣ྄彦; [B1, V6]; xn--0sh2466f.xn--3ed15dt93o; ;
; # ⒏𐹧.Ⴣ྄彦
+-问⒛。-橬; -问⒛.-橬; [B1, P1, V3, V6];
xn----hdpu849bhis3e.xn----ykc7228efm46d; ; ; # -问⒛.-橬
+-问20.。-橬; -问20..-橬; [B1, P1, V3, V6, X4_2];
xn---20-658jx1776d..xn----ykc7228efm46d; [B1, P1, V3, V6, A4_2]; ; # -问20..-橬
+xn---20-658jx1776d..xn----ykc7228efm46d; -问20..-橬; [B1, V3, V6, X4_2];
xn---20-658jx1776d..xn----ykc7228efm46d; [B1, V3, V6, A4_2]; ; # -问20..-橬
+xn----hdpu849bhis3e.xn----ykc7228efm46d; -问⒛.-橬; [B1, V3, V6];
xn----hdpu849bhis3e.xn----ykc7228efm46d; ; ; # -问⒛.-橬
+ᮬႬ̥。𝟸; ᮬႬ̥.2; [C1, P1, V5, V6]; xn--mta930emribme.2; ; xn--mta930emri.2;
[P1, V5, V6] # ᮬႬ̥.2
+ᮬႬ̥。2; ᮬႬ̥.2; [C1, P1, V5, V6]; xn--mta930emribme.2; ; xn--mta930emri.2;
[P1, V5, V6] # ᮬႬ̥.2
+ᮬⴌ̥。2; ᮬⴌ̥.2; [C1, V5]; xn--mta176j97cl2q.2; ; xn--mta176jjjm.2; [V5] # ᮬⴌ̥.2
+xn--mta176jjjm.2; ᮬⴌ̥.2; [V5]; xn--mta176jjjm.2; ; ; # ᮬⴌ̥.2
+xn--mta176j97cl2q.2; ᮬⴌ̥.2; [C1, V5]; xn--mta176j97cl2q.2; ; ; # ᮬⴌ̥.2
+xn--mta930emri.2; ᮬႬ̥.2; [V5, V6]; xn--mta930emri.2; ; ; # ᮬႬ̥.2
+xn--mta930emribme.2; ᮬႬ̥.2; [C1, V5, V6]; xn--mta930emribme.2; ; ; # ᮬႬ̥.2
+ᮬⴌ̥。𝟸; ᮬⴌ̥.2; [C1, V5]; xn--mta176j97cl2q.2; ; xn--mta176jjjm.2; [V5] # ᮬⴌ̥.2
+?。꠆٩; ?.꠆٩; [B1, P1, V5, V6]; ?.xn--iib9583fusy0i; ; ; # ?.꠆٩
+?.xn--iib9583fusy0i; ?.꠆٩; [B1, P1, V5, V6]; ?.xn--iib9583fusy0i; ; ; # ?.꠆٩
+󠄁͟⾶。₇︒눇≮; ͟飛.7︒눇≮; [P1, V5, V6]; xn--9ua0567e.xn--7-ngou006d1ttc; ; ; #
͟飛.7︒눇≮
+󠄁͟⾶。₇︒눇≮; ͟飛.7︒눇≮; [P1, V5, V6]; xn--9ua0567e.xn--7-ngou006d1ttc; ; ; #
͟飛.7︒눇≮
+󠄁͟飛。7。눇≮; ͟飛.7.눇≮; [P1, V5, V6]; xn--9ua0567e.7.xn--gdh6767c; ; ; # ͟飛.7.눇≮
+󠄁͟飛。7。눇≮; ͟飛.7.눇≮; [P1, V5, V6]; xn--9ua0567e.7.xn--gdh6767c; ; ; # ͟飛.7.눇≮
+xn--9ua0567e.7.xn--gdh6767c; ͟飛.7.눇≮; [V5, V6]; xn--9ua0567e.7.xn--gdh6767c; ;
; # ͟飛.7.눇≮
+xn--9ua0567e.xn--7-ngou006d1ttc; ͟飛.7︒눇≮; [V5, V6];
xn--9ua0567e.xn--7-ngou006d1ttc; ; ; # ͟飛.7︒눇≮
+︉𐹴.⿃; 𐹴.鳥; [B1, C1, C2]; xn--0ugc6024p.xn--0ug1920c; ;
xn--so0d.xn--6x6a; [B1] # 𐹴.鳥
+︉𐹴.鳥; 𐹴.鳥; [B1, C1, C2]; xn--0ugc6024p.xn--0ug1920c; ;
xn--so0d.xn--6x6a; [B1] # 𐹴.鳥
+xn--so0d.xn--6x6a; 𐹴.鳥; [B1]; xn--so0d.xn--6x6a; ; ; # 𐹴.鳥
+xn--0ugc6024p.xn--0ug1920c; 𐹴.鳥; [B1, C1, C2]; xn--0ugc6024p.xn--0ug1920c;
; ; # 𐹴.鳥
+🍮.𐦁𝨝; 🍮.𐦁𝨝; [B1, C2, P1, V6]; xn--lj8h.xn--1ug6603gr1pfwq37h; ;
xn--lj8h.xn--ln9ci476aqmr2g; [B1, P1, V6] # 🍮.𐦁𝨝
+🍮.𐦁𝨝; ; [B1, C2, P1, V6]; xn--lj8h.xn--1ug6603gr1pfwq37h; ;
xn--lj8h.xn--ln9ci476aqmr2g; [B1, P1, V6] # 🍮.𐦁𝨝
+xn--lj8h.xn--ln9ci476aqmr2g; 🍮.𐦁𝨝; [B1, V6]; xn--lj8h.xn--ln9ci476aqmr2g; ; ;
# 🍮.𐦁𝨝
+xn--lj8h.xn--1ug6603gr1pfwq37h; 🍮.𐦁𝨝; [B1, C2, V6];
xn--lj8h.xn--1ug6603gr1pfwq37h; ; ; # 🍮.𐦁𝨝
+ٽृ.𞤓; ٽृ.𞤵; [B3, C2]; xn--2ib43l.xn--1ugy711p; ; xn--2ib43l.xn--te6h; [] #
ٽृ.𞤵
+ٽृ.𞤵; ; [B3, C2]; xn--2ib43l.xn--1ugy711p; ; xn--2ib43l.xn--te6h; [] # ٽृ.𞤵
+xn--2ib43l.xn--te6h; ٽृ.𞤵; ; xn--2ib43l.xn--te6h; ; ; # ٽृ.𞤵
+ٽृ.𞤵; ; ; xn--2ib43l.xn--te6h; ; ; # ٽृ.𞤵
+ٽृ.𞤓; ٽृ.𞤵; ; xn--2ib43l.xn--te6h; ; ; # ٽृ.𞤵
+xn--2ib43l.xn--1ugy711p; ٽृ.𞤵; [B3, C2]; xn--2ib43l.xn--1ugy711p; ; ; # ٽृ.𞤵
+٤੍-.္; ٤੍-.္; [B1, P1, V3, V6]; xn----gqc711a.xn--9jd88234f3qm0b; ; ; #
٤੍-.္
+٤੍-.္; ; [B1, P1, V3, V6]; xn----gqc711a.xn--9jd88234f3qm0b; ; ; # ٤੍-.္
+xn----gqc711a.xn--9jd88234f3qm0b; ٤੍-.္; [B1, V3, V6];
xn----gqc711a.xn--9jd88234f3qm0b; ; ; # ٤੍-.္
+4်-𐹸。ꨩ𐹴≮; 4်-𐹸.ꨩ𐹴≮; [B1, C1, P1, V5, V6];
xn--4--e4j7831r.xn--0ugy6gjy5sl3ud; ; xn--4--e4j7831r.xn--gdh8754cz40c; [B1,
P1, V5, V6] # 4်-𐹸.ꨩ𐹴≮
+4်-𐹸。ꨩ𐹴≮; 4်-𐹸.ꨩ𐹴≮; [B1, C1, P1, V5, V6];
xn--4--e4j7831r.xn--0ugy6gjy5sl3ud; ; xn--4--e4j7831r.xn--gdh8754cz40c; [B1,
P1, V5, V6] # 4်-𐹸.ꨩ𐹴≮
+4်-𐹸。ꨩ𐹴≮; 4်-𐹸.ꨩ𐹴≮; [B1, C1, P1, V5, V6];
xn--4--e4j7831r.xn--0ugy6gjy5sl3ud; ; xn--4--e4j7831r.xn--gdh8754cz40c; [B1,
P1, V5, V6] # 4်-𐹸.ꨩ𐹴≮
+4်-𐹸。ꨩ𐹴≮; 4်-𐹸.ꨩ𐹴≮; [B1, C1, P1, V5, V6];
xn--4--e4j7831r.xn--0ugy6gjy5sl3ud; ; xn--4--e4j7831r.xn--gdh8754cz40c; [B1,
P1, V5, V6] # 4်-𐹸.ꨩ𐹴≮
+xn--4--e4j7831r.xn--gdh8754cz40c; 4်-𐹸.ꨩ𐹴≮; [B1, V5, V6];
xn--4--e4j7831r.xn--gdh8754cz40c; ; ; # 4်-𐹸.ꨩ𐹴≮
+xn--4--e4j7831r.xn--0ugy6gjy5sl3ud; 4်-𐹸.ꨩ𐹴≮; [B1, C1, V5, V6];
xn--4--e4j7831r.xn--0ugy6gjy5sl3ud; ; ; # 4်-𐹸.ꨩ𐹴≮
+。ᅠ྄ྖ; .ᅠ྄ྖ; [C1, P1, V6]; xn--0ug.xn--3ed0by082k; ; .xn--3ed0by082k; [P1,
V6, A4_2] # .྄ྖ
+。ᅠ྄ྖ; .ᅠ྄ྖ; [C1, P1, V6]; xn--0ug.xn--3ed0b20h; ; .xn--3ed0b20h; [P1, V6,
A4_2] # .྄ྖ
+.xn--3ed0b20h; .ᅠ྄ྖ; [V6, X4_2]; .xn--3ed0b20h; [V6, A4_2]; ; # .྄ྖ
+xn--0ug.xn--3ed0b20h; .ᅠ྄ྖ; [C1, V6]; xn--0ug.xn--3ed0b20h; ; ; # .྄ྖ
+.xn--3ed0by082k; .ᅠ྄ྖ; [V6, X4_2]; .xn--3ed0by082k; [V6, A4_2]; ; # .྄ྖ
+xn--0ug.xn--3ed0by082k; .ᅠ྄ྖ; [C1, V6]; xn--0ug.xn--3ed0by082k; ; ; # .྄ྖ
+≯.𐅼; ≯.𐅼; [C2, P1, V6]; xn--hdh84488f.xn--1ug8099fbjp4e; ;
xn--hdh84488f.xn--xy7cw2886b; [P1, V6] # ≯.𐅼
+≯.𐅼; ≯.𐅼; [C2, P1, V6]; xn--hdh84488f.xn--1ug8099fbjp4e; ;
xn--hdh84488f.xn--xy7cw2886b; [P1, V6] # ≯.𐅼
+≯.𐅼; ; [C2, P1, V6]; xn--hdh84488f.xn--1ug8099fbjp4e; ;
xn--hdh84488f.xn--xy7cw2886b; [P1, V6] # ≯.𐅼
+≯.𐅼; ≯.𐅼; [C2, P1, V6]; xn--hdh84488f.xn--1ug8099fbjp4e; ;
xn--hdh84488f.xn--xy7cw2886b; [P1, V6] # ≯.𐅼
+xn--hdh84488f.xn--xy7cw2886b; ≯.𐅼; [V6]; xn--hdh84488f.xn--xy7cw2886b; ; ;
# ≯.𐅼
+xn--hdh84488f.xn--1ug8099fbjp4e; ≯.𐅼; [C2, V6];
xn--hdh84488f.xn--1ug8099fbjp4e; ; ; # ≯.𐅼
+فß𐰯。𝟕𐫫; فß𐰯.7𐫫; [B1, B2]; xn--zca96ys96y.xn--7-mm5i; ;
xn--ss-jvd2339x.xn--7-mm5i; # فß𐰯.7𐫫
+فß𐰯。7𐫫; فß𐰯.7𐫫; [B1, B2]; xn--zca96ys96y.xn--7-mm5i; ;
xn--ss-jvd2339x.xn--7-mm5i; # فß𐰯.7𐫫
+فSS𐰯。7𐫫; فss𐰯.7𐫫; [B1, B2]; xn--ss-jvd2339x.xn--7-mm5i; ; ; # فss𐰯.7𐫫
+فss𐰯。7𐫫; فss𐰯.7𐫫; [B1, B2]; xn--ss-jvd2339x.xn--7-mm5i; ; ; # فss𐰯.7𐫫
+xn--ss-jvd2339x.xn--7-mm5i; فss𐰯.7𐫫; [B1, B2]; xn--ss-jvd2339x.xn--7-mm5i; ; ;
# فss𐰯.7𐫫
+xn--zca96ys96y.xn--7-mm5i; فß𐰯.7𐫫; [B1, B2]; xn--zca96ys96y.xn--7-mm5i; ; ; #
فß𐰯.7𐫫
+فSS𐰯。𝟕𐫫; فss𐰯.7𐫫; [B1, B2]; xn--ss-jvd2339x.xn--7-mm5i; ; ; # فss𐰯.7𐫫
+فss𐰯。𝟕𐫫; فss𐰯.7𐫫; [B1, B2]; xn--ss-jvd2339x.xn--7-mm5i; ; ; # فss𐰯.7𐫫
+فSs𐰯。7𐫫; فss𐰯.7𐫫; [B1, B2]; xn--ss-jvd2339x.xn--7-mm5i; ; ; # فss𐰯.7𐫫
+فSs𐰯。𝟕𐫫; فss𐰯.7𐫫; [B1, B2]; xn--ss-jvd2339x.xn--7-mm5i; ; ; # فss𐰯.7𐫫
+ßެާࢱ。𐭁𐹲; ßެާࢱ.𐭁𐹲; [B2, B5, B6, P1, V6]; xn--zca685aoa95h.xn--e09co8cr9861c;
; xn--ss-9qet02k.xn--e09co8cr9861c; # ßެާࢱ.𐭁𐹲
+SSެާࢱ。𐭁𐹲; ssެާࢱ.𐭁𐹲; [B2, B5, B6, P1, V6]; xn--ss-9qet02k.xn--e09co8cr9861c;
; ; # ssެާࢱ.𐭁𐹲
+ssެާࢱ。𐭁𐹲; ssެާࢱ.𐭁𐹲; [B2, B5, B6, P1, V6]; xn--ss-9qet02k.xn--e09co8cr9861c;
; ; # ssެާࢱ.𐭁𐹲
+Ssެާࢱ。𐭁𐹲; ssެާࢱ.𐭁𐹲; [B2, B5, B6, P1, V6]; xn--ss-9qet02k.xn--e09co8cr9861c;
; ; # ssެާࢱ.𐭁𐹲
+xn--ss-9qet02k.xn--e09co8cr9861c; ssެާࢱ.𐭁𐹲; [B2, B5, B6, V6];
xn--ss-9qet02k.xn--e09co8cr9861c; ; ; # ssެާࢱ.𐭁𐹲
+xn--zca685aoa95h.xn--e09co8cr9861c; ßެާࢱ.𐭁𐹲; [B2, B5, B6, V6];
xn--zca685aoa95h.xn--e09co8cr9861c; ; ; # ßެާࢱ.𐭁𐹲
+-。⒌; -.⒌; [B1, P1, V3, V6]; -.xn--xsh6367n1bi3e; ; ; # -.⒌
+-。5.; -.5.; [B1, P1, V3, V6]; -.xn--5-zz21m.xn--6x6h; ; ; # -.5.
+-.xn--5-zz21m.xn--6x6h; -.5.; [B1, V3, V6]; -.xn--5-zz21m.xn--6x6h; ; ; #
-.5.
+-.xn--xsh6367n1bi3e; -.⒌; [B1, V3, V6]; -.xn--xsh6367n1bi3e; ; ; # -.⒌
+ς.-≮ﲫ; ς.-≮خج; [B1, P1, V3, V6]; xn--3xa13520c.xn----9mcf1400a; ;
xn--4xa92520c.xn----9mcf1400a; # ς.-≮خج
+ς.-≮ﲫ; ς.-≮خج; [B1, P1, V3, V6]; xn--3xa13520c.xn----9mcf1400a; ;
xn--4xa92520c.xn----9mcf1400a; # ς.-≮خج
+ς.-≮خج; ; [B1, P1, V3, V6]; xn--3xa13520c.xn----9mcf1400a; ;
xn--4xa92520c.xn----9mcf1400a; # ς.-≮خج
+ς.-≮خج; ς.-≮خج; [B1, P1, V3, V6]; xn--3xa13520c.xn----9mcf1400a; ;
xn--4xa92520c.xn----9mcf1400a; # ς.-≮خج
+Σ.-≮خج; σ.-≮خج; [B1, P1, V3, V6]; xn--4xa92520c.xn----9mcf1400a; ; ; #
σ.-≮خج
+Σ.-≮خج; σ.-≮خج; [B1, P1, V3, V6]; xn--4xa92520c.xn----9mcf1400a; ; ; #
σ.-≮خج
+σ.-≮خج; ; [B1, P1, V3, V6]; xn--4xa92520c.xn----9mcf1400a; ; ; # σ.-≮خج
+σ.-≮خج; σ.-≮خج; [B1, P1, V3, V6]; xn--4xa92520c.xn----9mcf1400a; ; ; #
σ.-≮خج
+xn--4xa92520c.xn----9mcf1400a; σ.-≮خج; [B1, V3, V6];
xn--4xa92520c.xn----9mcf1400a; ; ; # σ.-≮خج
+xn--3xa13520c.xn----9mcf1400a; ς.-≮خج; [B1, V3, V6];
xn--3xa13520c.xn----9mcf1400a; ; ; # ς.-≮خج
+Σ.-≮ﲫ; σ.-≮خج; [B1, P1, V3, V6]; xn--4xa92520c.xn----9mcf1400a; ; ; #
σ.-≮خج
+Σ.-≮ﲫ; σ.-≮خج; [B1, P1, V3, V6]; xn--4xa92520c.xn----9mcf1400a; ; ; # σ.-≮خج
+σ.-≮ﲫ; σ.-≮خج; [B1, P1, V3, V6]; xn--4xa92520c.xn----9mcf1400a; ; ; # σ.-≮خج
+σ.-≮ﲫ; σ.-≮خج; [B1, P1, V3, V6]; xn--4xa92520c.xn----9mcf1400a; ; ; #
σ.-≮خج
+ꡗࢸܙ.్ﰾ; ꡗࢸܙ.్كي; [B5, B6, P1, V6]; xn--jnb34fs003a.xn--fhbo927bk128mpi24d;
; ; # ꡗࢸܙ.్كي
+ꡗࢸܙ.్كي; ; [B5, B6, P1, V6]; xn--jnb34fs003a.xn--fhbo927bk128mpi24d; ; ; #
ꡗࢸܙ.్كي
+xn--jnb34fs003a.xn--fhbo927bk128mpi24d; ꡗࢸܙ.్كي; [B5, B6, V6];
xn--jnb34fs003a.xn--fhbo927bk128mpi24d; ; ; # ꡗࢸܙ.్كي
+𐠰ࢷ𞤌𐫭。𐋦៍𝩃; 𐠰ࢷ𞤮𐫭.𐋦៍𝩃; [B1]; xn--dzb5191kezbrw47a.xn--p4e3841jz9tf; ; ; #
𐠰ࢷ𞤮𐫭.𐋦៍𝩃
+𐠰ࢷ𞤮𐫭。𐋦៍𝩃; 𐠰ࢷ𞤮𐫭.𐋦៍𝩃; [B1]; xn--dzb5191kezbrw47a.xn--p4e3841jz9tf; ; ; #
𐠰ࢷ𞤮𐫭.𐋦៍𝩃
+xn--dzb5191kezbrw47a.xn--p4e3841jz9tf; 𐠰ࢷ𞤮𐫭.𐋦៍𝩃; [B1];
xn--dzb5191kezbrw47a.xn--p4e3841jz9tf; ; ; # 𐠰ࢷ𞤮𐫭.𐋦៍𝩃
+𐠰ࢷ𞤮𐫭.𐋦៍𝩃; ; [B1]; xn--dzb5191kezbrw47a.xn--p4e3841jz9tf; ; ; # 𐠰ࢷ𞤮𐫭.𐋦៍𝩃
+𐠰ࢷ𞤌𐫭.𐋦៍𝩃; 𐠰ࢷ𞤮𐫭.𐋦៍𝩃; [B1]; xn--dzb5191kezbrw47a.xn--p4e3841jz9tf; ; ; #
𐠰ࢷ𞤮𐫭.𐋦៍𝩃
+₂㘷--。ۓ𐫆𑖿; 2㘷--.ۓ𐫆𑖿; [B1, C1, V2, V3]; xn--2---u58b.xn--jlb820ku99nbgj; ;
xn--2---u58b.xn--jlb8024k14g; [B1, V2, V3] # 2㘷--.ۓ𐫆𑖿
+₂㘷--。ۓ𐫆𑖿; 2㘷--.ۓ𐫆𑖿; [B1, C1, V2, V3]; xn--2---u58b.xn--jlb820ku99nbgj; ;
xn--2---u58b.xn--jlb8024k14g; [B1, V2, V3] # 2㘷--.ۓ𐫆𑖿
+2㘷--。ۓ𐫆𑖿; 2㘷--.ۓ𐫆𑖿; [B1, C1, V2, V3]; xn--2---u58b.xn--jlb820ku99nbgj; ;
xn--2---u58b.xn--jlb8024k14g; [B1, V2, V3] # 2㘷--.ۓ𐫆𑖿
+2㘷--。ۓ𐫆𑖿; 2㘷--.ۓ𐫆𑖿; [B1, C1, V2, V3]; xn--2---u58b.xn--jlb820ku99nbgj; ;
xn--2---u58b.xn--jlb8024k14g; [B1, V2, V3] # 2㘷--.ۓ𐫆𑖿
+xn--2---u58b.xn--jlb8024k14g; 2㘷--.ۓ𐫆𑖿; [B1, V2, V3];
xn--2---u58b.xn--jlb8024k14g; ; ; # 2㘷--.ۓ𐫆𑖿
+xn--2---u58b.xn--jlb820ku99nbgj; 2㘷--.ۓ𐫆𑖿; [B1, C1, V2, V3];
xn--2---u58b.xn--jlb820ku99nbgj; ; ; # 2㘷--.ۓ𐫆𑖿
+-𘊻.ᡮح-; -𘊻.ᡮح-; [B1, B5, B6, V3]; xn----bp5n.xn----bnc231l; ; ; # -𘊻.ᡮح-
+-𘊻.ᡮح-; ; [B1, B5, B6, V3]; xn----bp5n.xn----bnc231l; ; ; # -𘊻.ᡮح-
+xn----bp5n.xn----bnc231l; -𘊻.ᡮح-; [B1, B5, B6, V3]; xn----bp5n.xn----bnc231l;
; ; # -𘊻.ᡮح-
+-ß。ᢣ𐹭ؿ; -ß.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn----qfa550v.xn--bhb925glx3p; ;
-ss.xn--bhb925glx3p; [B1, B5, B6, V3] # -ß.ᢣ𐹭ؿ
+-ß。ᢣ𐹭ؿ; -ß.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn----qfa550v.xn--bhb925glx3p; ;
-ss.xn--bhb925glx3p; [B1, B5, B6, V3] # -ß.ᢣ𐹭ؿ
+-SS。ᢣ𐹭ؿ; -ss.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn---ss-8m0a.xn--bhb925glx3p; ;
-ss.xn--bhb925glx3p; [B1, B5, B6, V3] # -ss.ᢣ𐹭ؿ
+-ss。ᢣ𐹭ؿ; -ss.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn---ss-8m0a.xn--bhb925glx3p; ;
-ss.xn--bhb925glx3p; [B1, B5, B6, V3] # -ss.ᢣ𐹭ؿ
+-Ss。ᢣ𐹭ؿ; -ss.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn---ss-8m0a.xn--bhb925glx3p; ;
-ss.xn--bhb925glx3p; [B1, B5, B6, V3] # -ss.ᢣ𐹭ؿ
+-ss.xn--bhb925glx3p; -ss.ᢣ𐹭ؿ; [B1, B5, B6, V3]; -ss.xn--bhb925glx3p; ; ; #
-ss.ᢣ𐹭ؿ
+xn---ss-8m0a.xn--bhb925glx3p; -ss.ᢣ𐹭ؿ; [B1, B5, B6, C1];
xn---ss-8m0a.xn--bhb925glx3p; ; ; # -ss.ᢣ𐹭ؿ
+xn----qfa550v.xn--bhb925glx3p; -ß.ᢣ𐹭ؿ; [B1, B5, B6, C1];
xn----qfa550v.xn--bhb925glx3p; ; ; # -ß.ᢣ𐹭ؿ
+-SS。ᢣ𐹭ؿ; -ss.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn---ss-8m0a.xn--bhb925glx3p; ;
-ss.xn--bhb925glx3p; [B1, B5, B6, V3] # -ss.ᢣ𐹭ؿ
+-ss。ᢣ𐹭ؿ; -ss.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn---ss-8m0a.xn--bhb925glx3p; ;
-ss.xn--bhb925glx3p; [B1, B5, B6, V3] # -ss.ᢣ𐹭ؿ
+-Ss。ᢣ𐹭ؿ; -ss.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn---ss-8m0a.xn--bhb925glx3p; ;
-ss.xn--bhb925glx3p; [B1, B5, B6, V3] # -ss.ᢣ𐹭ؿ
+꧐Ӏ᮪ࣶ.눵; ꧐Ӏ᮪ࣶ.눵; [P1, V6]; xn--d5a07sn4u297k.xn--2e1b; ; ; # ꧐Ӏ᮪ࣶ.눵
+꧐Ӏ᮪ࣶ.눵; ꧐Ӏ᮪ࣶ.눵; [P1, V6]; xn--d5a07sn4u297k.xn--2e1b; ; ; # ꧐Ӏ᮪ࣶ.눵
+꧐Ӏ᮪ࣶ.눵; ; [P1, V6]; xn--d5a07sn4u297k.xn--2e1b; ; ; # ꧐Ӏ᮪ࣶ.눵
+꧐Ӏ᮪ࣶ.눵; ꧐Ӏ᮪ࣶ.눵; [P1, V6]; xn--d5a07sn4u297k.xn--2e1b; ; ; # ꧐Ӏ᮪ࣶ.눵
+꧐ӏ᮪ࣶ.눵; ꧐ӏ᮪ࣶ.눵; ; xn--s5a04sn4u297k.xn--2e1b; ; ; # ꧐ӏ᮪ࣶ.눵
+꧐ӏ᮪ࣶ.눵; ; ; xn--s5a04sn4u297k.xn--2e1b; ; ; # ꧐ӏ᮪ࣶ.눵
+xn--s5a04sn4u297k.xn--2e1b; ꧐ӏ᮪ࣶ.눵; ; xn--s5a04sn4u297k.xn--2e1b; ; ; # ꧐ӏ᮪ࣶ.눵
+xn--d5a07sn4u297k.xn--2e1b; ꧐Ӏ᮪ࣶ.눵; [V6]; xn--d5a07sn4u297k.xn--2e1b; ; ; #
꧐Ӏ᮪ࣶ.눵
+꧐ӏ᮪ࣶ.눵; ꧐ӏ᮪ࣶ.눵; ; xn--s5a04sn4u297k.xn--2e1b; ; ; # ꧐ӏ᮪ࣶ.눵
+꧐ӏ᮪ࣶ.눵; ꧐ӏ᮪ࣶ.눵; ; xn--s5a04sn4u297k.xn--2e1b; ; ; # ꧐ӏ᮪ࣶ.눵
+꣪。𑆾󠇗; ꣪.𑆾; [P1, V5, V6]; xn--3g9a.xn--ud1dz07k; ; ; # ꣪.𑆾
+꣪。𑆾󠇗; ꣪.𑆾; [P1, V5, V6]; xn--3g9a.xn--ud1dz07k; ; ; # ꣪.𑆾
+xn--3g9a.xn--ud1dz07k; ꣪.𑆾; [V5, V6]; xn--3g9a.xn--ud1dz07k; ; ; # ꣪.𑆾
+𑚳。≯⾇; 𑚳.≯舛; [P1, V6]; xn--3e2d79770c.xn--hdh0088abyy1c; ; ; # 𑚳.≯舛
+𑚳。≯⾇; 𑚳.≯舛; [P1, V6]; xn--3e2d79770c.xn--hdh0088abyy1c; ; ; # 𑚳.≯舛
+𑚳。≯舛; 𑚳.≯舛; [P1, V6]; xn--3e2d79770c.xn--hdh0088abyy1c; ; ; # 𑚳.≯舛
+𑚳。≯舛; 𑚳.≯舛; [P1, V6]; xn--3e2d79770c.xn--hdh0088abyy1c; ; ; # 𑚳.≯舛
+xn--3e2d79770c.xn--hdh0088abyy1c; 𑚳.≯舛; [V6];
xn--3e2d79770c.xn--hdh0088abyy1c; ; ; # 𑚳.≯舛
+𐫇١.; 𐫇١.; [B1, B3, C1, C2]; xn--9hb652kv99n.xn--0ugb; ; xn--9hb7344k.;
[] # 𐫇١.
+𐫇١.; ; [B1, B3, C1, C2]; xn--9hb652kv99n.xn--0ugb; ; xn--9hb7344k.; [] # 𐫇١.
+xn--9hb7344k.; 𐫇١.; ; xn--9hb7344k.; ; ; # 𐫇١.
+𐫇١.; ; ; xn--9hb7344k.; ; ; # 𐫇١.
+xn--9hb652kv99n.xn--0ugb; 𐫇١.; [B1, B3, C1, C2]; xn--9hb652kv99n.xn--0ugb;
; ; # 𐫇١.
+砪≯ᢑ。≯𝩚; 砪≯ᢑ.≯𝩚; [C1, P1, V6]; xn--bbf561cf95e57y3e.xn--0ugz6gc910ejro8c;
; xn--bbf561cf95e57y3e.xn--hdh0834o7mj6b; [P1, V6] # 砪≯ᢑ.≯𝩚
+砪≯ᢑ。≯𝩚; 砪≯ᢑ.≯𝩚; [C1, P1, V6];
xn--bbf561cf95e57y3e.xn--0ugz6gc910ejro8c; ;
xn--bbf561cf95e57y3e.xn--hdh0834o7mj6b; [P1, V6] # 砪≯ᢑ.≯𝩚
+砪≯ᢑ。≯𝩚; 砪≯ᢑ.≯𝩚; [C1, P1, V6]; xn--bbf561cf95e57y3e.xn--0ugz6gc910ejro8c;
; xn--bbf561cf95e57y3e.xn--hdh0834o7mj6b; [P1, V6] # 砪≯ᢑ.≯𝩚
+砪≯ᢑ。≯𝩚; 砪≯ᢑ.≯𝩚; [C1, P1, V6];
xn--bbf561cf95e57y3e.xn--0ugz6gc910ejro8c; ;
xn--bbf561cf95e57y3e.xn--hdh0834o7mj6b; [P1, V6] # 砪≯ᢑ.≯𝩚
+xn--bbf561cf95e57y3e.xn--hdh0834o7mj6b; 砪≯ᢑ.≯𝩚; [V6];
xn--bbf561cf95e57y3e.xn--hdh0834o7mj6b; ; ; # 砪≯ᢑ.≯𝩚
+xn--bbf561cf95e57y3e.xn--0ugz6gc910ejro8c; 砪≯ᢑ.≯𝩚; [C1, V6];
xn--bbf561cf95e57y3e.xn--0ugz6gc910ejro8c; ; ; # 砪≯ᢑ.≯𝩚
+Ⴥ.𑄳㊸; Ⴥ.𑄳43; [P1, V5, V6]; xn--9nd.xn--43-274o; ; ; # Ⴥ.𑄳43
+Ⴥ.𑄳43; ; [P1, V5, V6]; xn--9nd.xn--43-274o; ; ; # Ⴥ.𑄳43
+ⴥ.𑄳43; ; [V5]; xn--tlj.xn--43-274o; ; ; # ⴥ.𑄳43
+xn--tlj.xn--43-274o; ⴥ.𑄳43; [V5]; xn--tlj.xn--43-274o; ; ; # ⴥ.𑄳43
+xn--9nd.xn--43-274o; Ⴥ.𑄳43; [V5, V6]; xn--9nd.xn--43-274o; ; ; # Ⴥ.𑄳43
+ⴥ.𑄳㊸; ⴥ.𑄳43; [V5]; xn--tlj.xn--43-274o; ; ; # ⴥ.𑄳43
+𝟎٣。Ⴒᡇࣲ𐹠; 0٣.Ⴒᡇࣲ𐹠; [B1, B5, B6, P1, V6]; xn--0-fqc.xn--10b180bnwgfy0z; ; ; #
0٣.Ⴒᡇࣲ𐹠
+0٣。Ⴒᡇࣲ𐹠; 0٣.Ⴒᡇࣲ𐹠; [B1, B5, B6, P1, V6]; xn--0-fqc.xn--10b180bnwgfy0z; ; ; #
0٣.Ⴒᡇࣲ𐹠
+0٣。ⴒᡇࣲ𐹠; 0٣.ⴒᡇࣲ𐹠; [B1, B5, B6]; xn--0-fqc.xn--10b369eivp359r; ; ; # 0٣.ⴒᡇࣲ𐹠
+xn--0-fqc.xn--10b369eivp359r; 0٣.ⴒᡇࣲ𐹠; [B1, B5, B6];
xn--0-fqc.xn--10b369eivp359r; ; ; # 0٣.ⴒᡇࣲ𐹠
+xn--0-fqc.xn--10b180bnwgfy0z; 0٣.Ⴒᡇࣲ𐹠; [B1, B5, B6, V6];
xn--0-fqc.xn--10b180bnwgfy0z; ; ; # 0٣.Ⴒᡇࣲ𐹠
+𝟎٣。ⴒᡇࣲ𐹠; 0٣.ⴒᡇࣲ𐹠; [B1, B5, B6]; xn--0-fqc.xn--10b369eivp359r; ; ; # 0٣.ⴒᡇࣲ𐹠
+󠄉ᅠྷ.꥓; ᅠྷ.꥓; [P1, V6]; xn--kgd7493jee34a.xn--3j9au7544a; ; ; # ྷ.꥓
+󠄉ᅠྷ.꥓; ᅠྷ.꥓; [P1, V6]; xn--kgd36f9z57y.xn--3j9au7544a; ; ; # ྷ.꥓
+xn--kgd36f9z57y.xn--3j9au7544a; ᅠྷ.꥓; [V6]; xn--kgd36f9z57y.xn--3j9au7544a;
; ; # ྷ.꥓
+xn--kgd7493jee34a.xn--3j9au7544a; ᅠྷ.꥓; [V6];
xn--kgd7493jee34a.xn--3j9au7544a; ; ; # ྷ.꥓
+ؘ.۳꥓; ; [C1, V5]; xn--6fb.xn--gmb469jjf1h; ; xn--6fb.xn--gmb0524f; [V5] # ؘ.۳꥓
+xn--6fb.xn--gmb0524f; ؘ.۳꥓; [V5]; xn--6fb.xn--gmb0524f; ; ; # ؘ.۳꥓
+xn--6fb.xn--gmb469jjf1h; ؘ.۳꥓; [C1, V5]; xn--6fb.xn--gmb469jjf1h; ; ; # ؘ.۳꥓
+ᡌ.︒ᢑ; ᡌ.︒ᢑ; [P1, V6]; xn--c8e.xn--bbf9168i; ; ; # ᡌ.︒ᢑ
+ᡌ.。ᢑ; ᡌ..ᢑ; [X4_2]; xn--c8e..xn--bbf; [A4_2]; ; # ᡌ..ᢑ
+xn--c8e..xn--bbf; ᡌ..ᢑ; [X4_2]; xn--c8e..xn--bbf; [A4_2]; ; # ᡌ..ᢑ
+xn--c8e.xn--bbf9168i; ᡌ.︒ᢑ; [V6]; xn--c8e.xn--bbf9168i; ; ; # ᡌ.︒ᢑ
+𑋪ၳ。; 𑋪ၳ.; [B1, B3, B6, P1, V5, V6]; xn--xld7443k.xn--4o7h; ; ; # 𑋪ၳ.
+𑋪ၳ。; 𑋪ၳ.; [B1, B3, B6, P1, V5, V6]; xn--xld7443k.xn--4o7h; ; ; # 𑋪ၳ.
+xn--xld7443k.xn--4o7h; 𑋪ၳ.; [B1, B3, B6, V5, V6]; xn--xld7443k.xn--4o7h; ; ;
# 𑋪ၳ.
+。ᠢ; .ᠢ; [P1, V6]; xn--hd7h.xn--46e66060j; ; ; # .ᠢ
+xn--hd7h.xn--46e66060j; .ᠢ; [V6]; xn--hd7h.xn--46e66060j; ; ; # .ᠢ
+𑄳㴼.𐹡⃫; 𑄳㴼.𐹡⃫; [B1, C1, P1, V5, V6]; xn--iym9428c.xn--0ug46a7218cllv0c; ;
xn--iym9428c.xn--e1g3464g08p3b; [B1, P1, V5, V6] # 𑄳㴼.𐹡⃫
+𑄳㴼.𐹡⃫; ; [B1, C1, P1, V5, V6]; xn--iym9428c.xn--0ug46a7218cllv0c; ;
xn--iym9428c.xn--e1g3464g08p3b; [B1, P1, V5, V6] # 𑄳㴼.𐹡⃫
+xn--iym9428c.xn--e1g3464g08p3b; 𑄳㴼.𐹡⃫; [B1, V5, V6];
xn--iym9428c.xn--e1g3464g08p3b; ; ; # 𑄳㴼.𐹡⃫
+xn--iym9428c.xn--0ug46a7218cllv0c; 𑄳㴼.𐹡⃫; [B1, C1, V5, V6];
xn--iym9428c.xn--0ug46a7218cllv0c; ; ; # 𑄳㴼.𐹡⃫
+𐹳𑈯。̝; 𐹳𑈯.̝; [B1, B3, B5, B6, P1, V5, V6]; xn--ro0dw7dey96m.xn--eta; ; ; #
𐹳𑈯.̝
+𐹳𑈯。̝; 𐹳𑈯.̝; [B1, B3, B5, B6, P1, V5, V6]; xn--ro0dw7dey96m.xn--eta; ; ; #
𐹳𑈯.̝
+xn--ro0dw7dey96m.xn--eta; 𐹳𑈯.̝; [B1, B3, B5, B6, V5, V6];
xn--ro0dw7dey96m.xn--eta; ; ; # 𐹳𑈯.̝
+ᢊ뾜𑚶。࢝𐹥; ᢊ뾜𑚶.࢝𐹥; [B1, P1, V5, V6]; xn--39e4566fjv8bwmt6n.xn--myb6415k; ; ; #
ᢊ뾜𑚶.࢝𐹥
+ᢊ뾜𑚶。࢝𐹥; ᢊ뾜𑚶.࢝𐹥; [B1, P1, V5, V6]; xn--39e4566fjv8bwmt6n.xn--myb6415k; ; ;
# ᢊ뾜𑚶.࢝𐹥
+xn--39e4566fjv8bwmt6n.xn--myb6415k; ᢊ뾜𑚶.࢝𐹥; [B1, V5, V6];
xn--39e4566fjv8bwmt6n.xn--myb6415k; ; ; # ᢊ뾜𑚶.࢝𐹥
+𐹥≠。𐋲; 𐹥≠.𐋲; [B1, C1, P1, V6]; xn--1ch6704g.xn--0ug3840g51u4g; ;
xn--1ch6704g.xn--m97cw2999c; [B1, P1, V6] # 𐹥≠.𐋲
+𐹥≠。𐋲; 𐹥≠.𐋲; [B1, C1, P1, V6]; xn--1ch6704g.xn--0ug3840g51u4g; ;
xn--1ch6704g.xn--m97cw2999c; [B1, P1, V6] # 𐹥≠.𐋲
+𐹥≠。𐋲; 𐹥≠.𐋲; [B1, C1, P1, V6]; xn--1ch6704g.xn--0ug3840g51u4g; ;
xn--1ch6704g.xn--m97cw2999c; [B1, P1, V6] # 𐹥≠.𐋲
+𐹥≠。𐋲; 𐹥≠.𐋲; [B1, C1, P1, V6]; xn--1ch6704g.xn--0ug3840g51u4g; ;
xn--1ch6704g.xn--m97cw2999c; [B1, P1, V6] # 𐹥≠.𐋲
+xn--1ch6704g.xn--m97cw2999c; 𐹥≠.𐋲; [B1, V6]; xn--1ch6704g.xn--m97cw2999c; ; ;
# 𐹥≠.𐋲
+xn--1ch6704g.xn--0ug3840g51u4g; 𐹥≠.𐋲; [B1, C1, V6];
xn--1ch6704g.xn--0ug3840g51u4g; ; ; # 𐹥≠.𐋲
+ᅟ्.꥓; ᅟ्.꥓; [B1, C2, P1, V6]; xn--n3b542bb085j.xn--1ug6815co9wc; ;
xn--n3b542bb085j.xn--3j9al95p; [B5, B6, P1, V5, V6] # ्.꥓
+ᅟ्.꥓; ; [B1, C2, P1, V6]; xn--n3b542bb085j.xn--1ug6815co9wc; ;
xn--n3b542bb085j.xn--3j9al95p; [B5, B6, P1, V5, V6] # ्.꥓
+xn--n3b542bb085j.xn--3j9al95p; ᅟ्.꥓; [B5, B6, V5, V6];
xn--n3b542bb085j.xn--3j9al95p; ; ; # ्.꥓
+xn--n3b542bb085j.xn--1ug6815co9wc; ᅟ्.꥓; [B1, C2, V6];
xn--n3b542bb085j.xn--1ug6815co9wc; ; ; # ्.꥓
+󠆎󠆗𑲕。≮; 𑲕.≮; [P1, V6]; xn--4m3dv4354a.xn--gdh; ; ; # 𑲕.≮
+󠆎󠆗𑲕。≮; 𑲕.≮; [P1, V6]; xn--4m3dv4354a.xn--gdh; ; ; # 𑲕.≮
+xn--4m3dv4354a.xn--gdh; 𑲕.≮; [V6]; xn--4m3dv4354a.xn--gdh; ; ; # 𑲕.≮
+󠆦.ࣣ暀≠; .ࣣ暀≠; [P1, V5, V6, X4_2]; .xn--m0b461k3g2c; [P1, V5, V6, A4_2]; ; #
.ࣣ暀≠
+󠆦.ࣣ暀≠; .ࣣ暀≠; [P1, V5, V6, X4_2]; .xn--m0b461k3g2c; [P1, V5, V6, A4_2]; ; #
.ࣣ暀≠
+.xn--m0b461k3g2c; .ࣣ暀≠; [V5, V6, X4_2]; .xn--m0b461k3g2c; [V5, V6, A4_2]; ; #
.ࣣ暀≠
+𐡤꯭。ﴰᷰ; 𐡤꯭.شمᷰ; [B2, B3, P1, V6]; xn--429ak76o.xn--zgb8a701kox37t; ; ; #
𐡤꯭.شمᷰ
+𐡤꯭。شمᷰ; 𐡤꯭.شمᷰ; [B2, B3, P1, V6]; xn--429ak76o.xn--zgb8a701kox37t; ; ; #
𐡤꯭.شمᷰ
+xn--429ak76o.xn--zgb8a701kox37t; 𐡤꯭.شمᷰ; [B2, B3, V6];
xn--429ak76o.xn--zgb8a701kox37t; ; ; # 𐡤꯭.شمᷰ
+𝉃⒈。Ⴌ; 𝉃⒈.Ⴌ; [B1, B5, B6, C2, P1, V5, V6]; xn--1ug68oq348b.xn--knd8464v; ;
xn--tshz828m.xn--knd8464v; [B1, B5, B6, P1, V5, V6] # 𝉃⒈.Ⴌ
+𝉃1.。Ⴌ; 𝉃1..Ⴌ; [B1, B5, B6, C2, P1, V5, V6, X4_2];
xn--1-tgn9827q..xn--knd8464v; [B1, B5, B6, C2, P1, V5, V6, A4_2];
xn--1-px8q..xn--knd8464v; [B1, B5, B6, P1, V5, V6, A4_2] # 𝉃1..Ⴌ
+𝉃1.。ⴌ; 𝉃1..ⴌ; [B1, B5, B6, C2, P1, V5, V6, X4_2];
xn--1-tgn9827q..xn--3kj4524l; [B1, B5, B6, C2, P1, V5, V6, A4_2];
xn--1-px8q..xn--3kj4524l; [B1, B5, B6, P1, V5, V6, A4_2] # 𝉃1..ⴌ
+xn--1-px8q..xn--3kj4524l; 𝉃1..ⴌ; [B1, B5, B6, V5, V6, X4_2];
xn--1-px8q..xn--3kj4524l; [B1, B5, B6, V5, V6, A4_2]; ; # 𝉃1..ⴌ
+xn--1-tgn9827q..xn--3kj4524l; 𝉃1..ⴌ; [B1, B5, B6, C2, V5, V6, X4_2];
xn--1-tgn9827q..xn--3kj4524l; [B1, B5, B6, C2, V5, V6, A4_2]; ; # 𝉃1..ⴌ
+xn--1-px8q..xn--knd8464v; 𝉃1..Ⴌ; [B1, B5, B6, V5, V6, X4_2];
xn--1-px8q..xn--knd8464v; [B1, B5, B6, V5, V6, A4_2]; ; # 𝉃1..Ⴌ
+xn--1-tgn9827q..xn--knd8464v; 𝉃1..Ⴌ; [B1, B5, B6, C2, V5, V6, X4_2];
xn--1-tgn9827q..xn--knd8464v; [B1, B5, B6, C2, V5, V6, A4_2]; ; # 𝉃1..Ⴌ
+𝉃⒈。ⴌ; 𝉃⒈.ⴌ; [B1, B5, B6, C2, P1, V5, V6]; xn--1ug68oq348b.xn--3kj4524l; ;
xn--tshz828m.xn--3kj4524l; [B1, B5, B6, P1, V5, V6] # 𝉃⒈.ⴌ
+xn--tshz828m.xn--3kj4524l; 𝉃⒈.ⴌ; [B1, B5, B6, V5, V6];
xn--tshz828m.xn--3kj4524l; ; ; # 𝉃⒈.ⴌ
+xn--1ug68oq348b.xn--3kj4524l; 𝉃⒈.ⴌ; [B1, B5, B6, C2, V5, V6];
xn--1ug68oq348b.xn--3kj4524l; ; ; # 𝉃⒈.ⴌ
+xn--tshz828m.xn--knd8464v; 𝉃⒈.Ⴌ; [B1, B5, B6, V5, V6];
xn--tshz828m.xn--knd8464v; ; ; # 𝉃⒈.Ⴌ
+xn--1ug68oq348b.xn--knd8464v; 𝉃⒈.Ⴌ; [B1, B5, B6, C2, V5, V6];
xn--1ug68oq348b.xn--knd8464v; ; ; # 𝉃⒈.Ⴌ
+੍𱫘𞤸.ς; ; [B1, P1, V6]; xn--ybc0236vjvxgt5q0g.xn--3xa03737giye6b; ;
xn--ybc0236vjvxgt5q0g.xn--4xa82737giye6b; # ੍𞤸.ς
+੍𱫘𞤖.Σ; ੍𱫘𞤸.σ; [B1, P1, V6]; xn--ybc0236vjvxgt5q0g.xn--4xa82737giye6b; ;
; # ੍𞤸.σ
+੍𱫘𞤸.σ; ; [B1, P1, V6]; xn--ybc0236vjvxgt5q0g.xn--4xa82737giye6b; ; ; # ੍𞤸.σ
+੍𱫘𞤖.σ; ੍𱫘𞤸.σ; [B1, P1, V6]; xn--ybc0236vjvxgt5q0g.xn--4xa82737giye6b; ;
; # ੍𞤸.σ
+xn--ybc0236vjvxgt5q0g.xn--4xa82737giye6b; ੍𱫘𞤸.σ; [B1, V6];
xn--ybc0236vjvxgt5q0g.xn--4xa82737giye6b; ; ; # ੍𞤸.σ
+੍𱫘𞤖.ς; ੍𱫘𞤸.ς; [B1, P1, V6]; xn--ybc0236vjvxgt5q0g.xn--3xa03737giye6b; ;
xn--ybc0236vjvxgt5q0g.xn--4xa82737giye6b; # ੍𞤸.ς
+xn--ybc0236vjvxgt5q0g.xn--3xa03737giye6b; ੍𱫘𞤸.ς; [B1, V6];
xn--ybc0236vjvxgt5q0g.xn--3xa03737giye6b; ; ; # ੍𞤸.ς
+੍𱫘𞤸.Σ; ੍𱫘𞤸.σ; [B1, P1, V6]; xn--ybc0236vjvxgt5q0g.xn--4xa82737giye6b; ;
; # ੍𞤸.σ
+ߓ。𐫀; ߓ.𐫀; [B1, C1, P1, V6]; xn--usb.xn--0ug9553gm3v5d; ;
xn--usb.xn--pw9ci1099a; [B2, B3, P1, V6] # ߓ.𐫀
+xn--usb.xn--pw9ci1099a; ߓ.𐫀; [B2, B3, V6]; xn--usb.xn--pw9ci1099a; ; ; # ߓ.𐫀
+xn--usb.xn--0ug9553gm3v5d; ߓ.𐫀; [B1, C1, V6]; xn--usb.xn--0ug9553gm3v5d; ; ;
# ߓ.𐫀
+ᰮ𞀝.֦ꡟ𞤕󠆖; ᰮ𞀝.֦ꡟ𞤷; [B1, B3, B6, V5]; xn--q1f4493q.xn--xcb8244fifvj; ; ; # ᰮ𞀝.֦ꡟ𞤷
+ᰮ𞀝.֦ꡟ𞤷󠆖; ᰮ𞀝.֦ꡟ𞤷; [B1, B3, B6, V5]; xn--q1f4493q.xn--xcb8244fifvj; ; ; # ᰮ𞀝.֦ꡟ𞤷
+xn--q1f4493q.xn--xcb8244fifvj; ᰮ𞀝.֦ꡟ𞤷; [B1, B3, B6, V5];
xn--q1f4493q.xn--xcb8244fifvj; ; ; # ᰮ𞀝.֦ꡟ𞤷
+䂹𐋦.; 䂹𐋦.; [C2, P1, V6]; xn--0on3543c5981i.xn--1ug; ; xn--0on3543c5981i.;
[P1, V6] # 䂹𐋦.
+䂹𐋦.; ; [C2, P1, V6]; xn--0on3543c5981i.xn--1ug; ; xn--0on3543c5981i.; [P1,
V6] # 䂹𐋦.
+xn--0on3543c5981i.; 䂹𐋦.; [V6]; xn--0on3543c5981i.; ; ; # 䂹𐋦.
+xn--0on3543c5981i.xn--1ug; 䂹𐋦.; [C2, V6]; xn--0on3543c5981i.xn--1ug; ; ; #
䂹𐋦.
+꧀𐹲。ݧ🄉; ꧀𐹲.ݧ🄉; [B5, B6, C1, P1, V5, V6]; xn--0uga8686hdgvd.xn--rpb6081w; ;
xn--7m9an32q.xn--rpb6081w; [B5, B6, P1, V5, V6] # ꧀𐹲.ݧ🄉
+꧀𐹲。ݧ8,; ꧀𐹲.ݧ8,; [B3, B5, B6, C1, P1, V5, V6];
xn--0uga8686hdgvd.xn--8,-qle; ; xn--7m9an32q.xn--8,-qle; [B3, B5, B6, P1, V5,
V6] # ꧀𐹲.ݧ8,
+xn--7m9an32q.xn--8,-qle; ꧀𐹲.ݧ8,; [B3, B5, B6, P1, V5, V6];
xn--7m9an32q.xn--8,-qle; ; ; # ꧀𐹲.ݧ8,
+xn--0uga8686hdgvd.xn--8,-qle; ꧀𐹲.ݧ8,; [B3, B5, B6, C1, P1, V5, V6];
xn--0uga8686hdgvd.xn--8,-qle; ; ; # ꧀𐹲.ݧ8,
+xn--7m9an32q.xn--rpb6081w; ꧀𐹲.ݧ🄉; [B5, B6, V5, V6]; xn--7m9an32q.xn--rpb6081w;
; ; # ꧀𐹲.ݧ🄉
+xn--0uga8686hdgvd.xn--rpb6081w; ꧀𐹲.ݧ🄉; [B5, B6, C1, V5, V6];
xn--0uga8686hdgvd.xn--rpb6081w; ; ; # ꧀𐹲.ݧ🄉
+︒。Ⴃ≯; ︒.Ⴃ≯; [P1, V6]; xn--y86c.xn--bnd622g; ; ; # ︒.Ⴃ≯
+︒。Ⴃ≯; ︒.Ⴃ≯; [P1, V6]; xn--y86c.xn--bnd622g; ; ; # ︒.Ⴃ≯
+。。Ⴃ≯; ..Ⴃ≯; [P1, V6, X4_2]; ..xn--bnd622g; [P1, V6, A4_2]; ; # ..Ⴃ≯
+。。Ⴃ≯; ..Ⴃ≯; [P1, V6, X4_2]; ..xn--bnd622g; [P1, V6, A4_2]; ; # ..Ⴃ≯
+。。ⴃ≯; ..ⴃ≯; [P1, V6, X4_2]; ..xn--hdh782b; [P1, V6, A4_2]; ; # ..ⴃ≯
+。。ⴃ≯; ..ⴃ≯; [P1, V6, X4_2]; ..xn--hdh782b; [P1, V6, A4_2]; ; # ..ⴃ≯
+..xn--hdh782b; ..ⴃ≯; [V6, X4_2]; ..xn--hdh782b; [V6, A4_2]; ; # ..ⴃ≯
+..xn--bnd622g; ..Ⴃ≯; [V6, X4_2]; ..xn--bnd622g; [V6, A4_2]; ; # ..Ⴃ≯
+︒。ⴃ≯; ︒.ⴃ≯; [P1, V6]; xn--y86c.xn--hdh782b; ; ; # ︒.ⴃ≯
+︒。ⴃ≯; ︒.ⴃ≯; [P1, V6]; xn--y86c.xn--hdh782b; ; ; # ︒.ⴃ≯
+xn--y86c.xn--hdh782b; ︒.ⴃ≯; [V6]; xn--y86c.xn--hdh782b; ; ; # ︒.ⴃ≯
+xn--y86c.xn--bnd622g; ︒.Ⴃ≯; [V6]; xn--y86c.xn--bnd622g; ; ; # ︒.Ⴃ≯
+𐹮。; 𐹮.; [B1, C2, P1, V6]; xn--mo0d.xn--1ug18431l; ; xn--mo0d.xn--wy46e;
[B1, P1, V6] # 𐹮.
+𐹮。; 𐹮.; [B1, C2, P1, V6]; xn--mo0d.xn--1ug18431l; ; xn--mo0d.xn--wy46e;
[B1, P1, V6] # 𐹮.
+xn--mo0d.xn--wy46e; 𐹮.; [B1, V6]; xn--mo0d.xn--wy46e; ; ; # 𐹮.
+xn--mo0d.xn--1ug18431l; 𐹮.; [B1, C2, V6]; xn--mo0d.xn--1ug18431l; ; ; # 𐹮.
+Ⴞ𐹨。︒ݽႯ; Ⴞ𐹨.︒ݽႯ; [B1, B5, B6, C2, P1, V6]; xn--2nd0990k.xn--eqb228bgzmvp0t; ;
xn--2nd0990k.xn--eqb228b583r; [B1, B5, B6, P1, V6] # Ⴞ𐹨.︒ݽႯ
+Ⴞ𐹨。。ݽႯ; Ⴞ𐹨..ݽႯ; [B2, B3, B5, B6, C2, P1, V6, X4_2];
xn--2nd0990k..xn--eqb228bgzm; [B2, B3, B5, B6, C2, P1, V6, A4_2];
xn--2nd0990k..xn--eqb228b; [B2, B3, B5, B6, P1, V6, A4_2] # Ⴞ𐹨..ݽႯ
+ⴞ𐹨。。ݽⴏ; ⴞ𐹨..ݽⴏ; [B2, B3, B5, B6, C2, X4_2]; xn--mlju223e..xn--eqb096jpgj;
[B2, B3, B5, B6, C2, A4_2]; xn--mlju223e..xn--eqb053q; [B2, B3, B5, B6, A4_2] #
ⴞ𐹨..ݽⴏ
+Ⴞ𐹨。。ݽⴏ; Ⴞ𐹨..ݽⴏ; [B2, B3, B5, B6, C2, P1, V6, X4_2];
xn--2nd0990k..xn--eqb096jpgj; [B2, B3, B5, B6, C2, P1, V6, A4_2];
xn--2nd0990k..xn--eqb053q; [B2, B3, B5, B6, P1, V6, A4_2] # Ⴞ𐹨..ݽⴏ
+xn--2nd0990k..xn--eqb053q; Ⴞ𐹨..ݽⴏ; [B2, B3, B5, B6, V6, X4_2];
xn--2nd0990k..xn--eqb053q; [B2, B3, B5, B6, V6, A4_2]; ; # Ⴞ𐹨..ݽⴏ
+xn--2nd0990k..xn--eqb096jpgj; Ⴞ𐹨..ݽⴏ; [B2, B3, B5, B6, C2, V6, X4_2];
xn--2nd0990k..xn--eqb096jpgj; [B2, B3, B5, B6, C2, V6, A4_2]; ; # Ⴞ𐹨..ݽⴏ
+xn--mlju223e..xn--eqb053q; ⴞ𐹨..ݽⴏ; [B2, B3, B5, B6, X4_2];
xn--mlju223e..xn--eqb053q; [B2, B3, B5, B6, A4_2]; ; # ⴞ𐹨..ݽⴏ
+xn--mlju223e..xn--eqb096jpgj; ⴞ𐹨..ݽⴏ; [B2, B3, B5, B6, C2, X4_2];
xn--mlju223e..xn--eqb096jpgj; [B2, B3, B5, B6, C2, A4_2]; ; # ⴞ𐹨..ݽⴏ
+xn--2nd0990k..xn--eqb228b; Ⴞ𐹨..ݽႯ; [B2, B3, B5, B6, V6, X4_2];
xn--2nd0990k..xn--eqb228b; [B2, B3, B5, B6, V6, A4_2]; ; # Ⴞ𐹨..ݽႯ
+xn--2nd0990k..xn--eqb228bgzm; Ⴞ𐹨..ݽႯ; [B2, B3, B5, B6, C2, V6, X4_2];
xn--2nd0990k..xn--eqb228bgzm; [B2, B3, B5, B6, C2, V6, A4_2]; ; # Ⴞ𐹨..ݽႯ
+ⴞ𐹨。︒ݽⴏ; ⴞ𐹨.︒ݽⴏ; [B1, B5, B6, C2, P1, V6]; xn--mlju223e.xn--eqb096jpgj9y7r; ;
xn--mlju223e.xn--eqb053qjk7l; [B1, B5, B6, P1, V6] # ⴞ𐹨.︒ݽⴏ
+Ⴞ𐹨。︒ݽⴏ; Ⴞ𐹨.︒ݽⴏ; [B1, B5, B6, C2, P1, V6]; xn--2nd0990k.xn--eqb096jpgj9y7r; ;
xn--2nd0990k.xn--eqb053qjk7l; [B1, B5, B6, P1, V6] # Ⴞ𐹨.︒ݽⴏ
+xn--2nd0990k.xn--eqb053qjk7l; Ⴞ𐹨.︒ݽⴏ; [B1, B5, B6, V6];
xn--2nd0990k.xn--eqb053qjk7l; ; ; # Ⴞ𐹨.︒ݽⴏ
+xn--2nd0990k.xn--eqb096jpgj9y7r; Ⴞ𐹨.︒ݽⴏ; [B1, B5, B6, C2, V6];
xn--2nd0990k.xn--eqb096jpgj9y7r; ; ; # Ⴞ𐹨.︒ݽⴏ
+xn--mlju223e.xn--eqb053qjk7l; ⴞ𐹨.︒ݽⴏ; [B1, B5, B6, V6];
xn--mlju223e.xn--eqb053qjk7l; ; ; # ⴞ𐹨.︒ݽⴏ
+xn--mlju223e.xn--eqb096jpgj9y7r; ⴞ𐹨.︒ݽⴏ; [B1, B5, B6, C2, V6];
xn--mlju223e.xn--eqb096jpgj9y7r; ; ; # ⴞ𐹨.︒ݽⴏ
+xn--2nd0990k.xn--eqb228b583r; Ⴞ𐹨.︒ݽႯ; [B1, B5, B6, V6];
xn--2nd0990k.xn--eqb228b583r; ; ; # Ⴞ𐹨.︒ݽႯ
+xn--2nd0990k.xn--eqb228bgzmvp0t; Ⴞ𐹨.︒ݽႯ; [B1, B5, B6, C2, V6];
xn--2nd0990k.xn--eqb228bgzmvp0t; ; ; # Ⴞ𐹨.︒ݽႯ
+Ⴆ𝟹。-⃒-ߑ; Ⴆ3.-⃒-ߑ; [B1, C1, P1, V3, V6]; xn--3-i0g939i.xn-----vue617w; ;
xn--3-i0g.xn-----vue617w; [B1, P1, V3, V6] # Ⴆ3.-⃒-ߑ
+Ⴆ3。-⃒-ߑ; Ⴆ3.-⃒-ߑ; [B1, C1, P1, V3, V6]; xn--3-i0g939i.xn-----vue617w; ;
xn--3-i0g.xn-----vue617w; [B1, P1, V3, V6] # Ⴆ3.-⃒-ߑ
+ⴆ3。-⃒-ߑ; ⴆ3.-⃒-ߑ; [B1, C1, V3]; xn--3-rgnv99c.xn-----vue617w; ;
xn--3-lvs.xn-----vue617w; [B1, V3] # ⴆ3.-⃒-ߑ
+xn--3-lvs.xn-----vue617w; ⴆ3.-⃒-ߑ; [B1, V3]; xn--3-lvs.xn-----vue617w; ; ; #
ⴆ3.-⃒-ߑ
+xn--3-rgnv99c.xn-----vue617w; ⴆ3.-⃒-ߑ; [B1, C1, V3];
xn--3-rgnv99c.xn-----vue617w; ; ; # ⴆ3.-⃒-ߑ
+xn--3-i0g.xn-----vue617w; Ⴆ3.-⃒-ߑ; [B1, V3, V6]; xn--3-i0g.xn-----vue617w; ; ;
# Ⴆ3.-⃒-ߑ
+xn--3-i0g939i.xn-----vue617w; Ⴆ3.-⃒-ߑ; [B1, C1, V3, V6];
xn--3-i0g939i.xn-----vue617w; ; ; # Ⴆ3.-⃒-ߑ
+ⴆ𝟹。-⃒-ߑ; ⴆ3.-⃒-ߑ; [B1, C1, V3]; xn--3-rgnv99c.xn-----vue617w; ;
xn--3-lvs.xn-----vue617w; [B1, V3] # ⴆ3.-⃒-ߑ
+箃Ⴡ-。≠-🤖; 箃Ⴡ-.≠-🤖; [P1, V6]; xn----11g3013fy8x5m.xn----tfot873s; ; ; #
箃Ⴡ-.≠-🤖
+箃Ⴡ-。≠-🤖; 箃Ⴡ-.≠-🤖; [P1, V6]; xn----11g3013fy8x5m.xn----tfot873s; ; ; #
箃Ⴡ-.≠-🤖
+箃Ⴡ-。≠-🤖; 箃Ⴡ-.≠-🤖; [P1, V6]; xn----11g3013fy8x5m.xn----tfot873s; ; ; #
箃Ⴡ-.≠-🤖
+箃Ⴡ-。≠-🤖; 箃Ⴡ-.≠-🤖; [P1, V6]; xn----11g3013fy8x5m.xn----tfot873s; ; ; #
箃Ⴡ-.≠-🤖
+箃ⴡ-。≠-🤖; 箃ⴡ-.≠-🤖; [P1, V6]; xn----4wsr321ay823p.xn----tfot873s; ; ; #
箃ⴡ-.≠-🤖
+箃ⴡ-。≠-🤖; 箃ⴡ-.≠-🤖; [P1, V6]; xn----4wsr321ay823p.xn----tfot873s; ; ; #
箃ⴡ-.≠-🤖
+xn----4wsr321ay823p.xn----tfot873s; 箃ⴡ-.≠-🤖; [V6];
xn----4wsr321ay823p.xn----tfot873s; ; ; # 箃ⴡ-.≠-🤖
+xn----11g3013fy8x5m.xn----tfot873s; 箃Ⴡ-.≠-🤖; [V6];
xn----11g3013fy8x5m.xn----tfot873s; ; ; # 箃Ⴡ-.≠-🤖
+箃ⴡ-。≠-🤖; 箃ⴡ-.≠-🤖; [P1, V6]; xn----4wsr321ay823p.xn----tfot873s; ; ; #
箃ⴡ-.≠-🤖
+箃ⴡ-。≠-🤖; 箃ⴡ-.≠-🤖; [P1, V6]; xn----4wsr321ay823p.xn----tfot873s; ; ; #
箃ⴡ-.≠-🤖
+ߥ.ڵ; ; ; xn--dtb.xn--okb; ; ; # ߥ.ڵ
+xn--dtb.xn--okb; ߥ.ڵ; ; xn--dtb.xn--okb; ; ; # ߥ.ڵ
+.𞤿; ; [B1, C1, C2]; xn--0ugc.xn--3e6h; ; .xn--3e6h; [A4_2] # .𞤿
+.𞤝; .𞤿; [B1, C1, C2]; xn--0ugc.xn--3e6h; ; .xn--3e6h; [A4_2] # .𞤿
+.xn--3e6h; .𞤿; [X4_2]; .xn--3e6h; [A4_2]; ; # .𞤿
+xn--0ugc.xn--3e6h; .𞤿; [B1, C1, C2]; xn--0ugc.xn--3e6h; ; ; # .𞤿
+xn--3e6h; 𞤿; ; xn--3e6h; ; ; # 𞤿
+𞤿; ; ; xn--3e6h; ; ; # 𞤿
+𞤝; 𞤿; ; xn--3e6h; ; ; # 𞤿
+🜑𐹧ع.ς𑍍蜹; ; [B1]; xn--4gb3736kk4zf.xn--3xa4248dy27d; ;
xn--4gb3736kk4zf.xn--4xa2248dy27d; # 🜑𐹧ع.ς𑍍蜹
+🜑𐹧ع.Σ𑍍蜹; 🜑𐹧ع.σ𑍍蜹; [B1]; xn--4gb3736kk4zf.xn--4xa2248dy27d; ; ; # 🜑𐹧ع.σ𑍍蜹
+🜑𐹧ع.σ𑍍蜹; ; [B1]; xn--4gb3736kk4zf.xn--4xa2248dy27d; ; ; # 🜑𐹧ع.σ𑍍蜹
+xn--4gb3736kk4zf.xn--4xa2248dy27d; 🜑𐹧ع.σ𑍍蜹; [B1];
xn--4gb3736kk4zf.xn--4xa2248dy27d; ; ; # 🜑𐹧ع.σ𑍍蜹
+xn--4gb3736kk4zf.xn--3xa4248dy27d; 🜑𐹧ع.ς𑍍蜹; [B1];
xn--4gb3736kk4zf.xn--3xa4248dy27d; ; ; # 🜑𐹧ع.ς𑍍蜹
+ス٩.; ス٩.; [B5, B6, P1, V6]; xn--iib777sp230oo708a.xn--7824e; ; ; # ス٩.
+ス٩.; ; [B5, B6, P1, V6]; xn--iib777sp230oo708a.xn--7824e; ; ; # ス٩.
+xn--iib777sp230oo708a.xn--7824e; ス٩.; [B5, B6, V6];
xn--iib777sp230oo708a.xn--7824e; ; ; # ス٩.
+𝪣.֚?ۂ; 𝪣.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.xn--?-wec30g; ; ; # 𝪣.֚?ۂ
+𝪣.֚?ۂ; 𝪣.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.xn--?-wec30g; ; ; # 𝪣.֚?ۂ
+𝪣.֚?ۂ; ; [B1, P1, V5, V6]; xn--8c3hu7971a.xn--?-wec30g; ; ; # 𝪣.֚?ۂ
+𝪣.֚?ۂ; 𝪣.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.xn--?-wec30g; ; ; # 𝪣.֚?ۂ
+xn--8c3hu7971a.xn--?-wec30g; 𝪣.֚?ۂ; [B1, P1, V5, V6];
xn--8c3hu7971a.xn--?-wec30g; ; ; # 𝪣.֚?ۂ
+xn--8c3hu7971a.֚?ۂ; 𝪣.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.xn--?-wec30g; ; ;
# 𝪣.֚?ۂ
+xn--8c3hu7971a.֚?ۂ; 𝪣.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.xn--?-wec30g; ;
; # 𝪣.֚?ۂ
+XN--8C3HU7971A.֚?ۂ; 𝪣.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.xn--?-wec30g; ;
; # 𝪣.֚?ۂ
+XN--8C3HU7971A.֚?ۂ; 𝪣.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.xn--?-wec30g; ; ;
# 𝪣.֚?ۂ
+Xn--8c3hu7971a.֚?ۂ; 𝪣.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.xn--?-wec30g; ; ;
# 𝪣.֚?ۂ
+Xn--8c3hu7971a.֚?ۂ; 𝪣.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.xn--?-wec30g; ;
; # 𝪣.֚?ۂ
+٠。ݗ; ٠.ݗ; [B1, C1, P1, V6]; xn--8hb852ke991q.xn--bpb; ;
xn--8hb82030l.xn--bpb; [B1, P1, V6] # ٠.ݗ
+xn--8hb82030l.xn--bpb; ٠.ݗ; [B1, V6]; xn--8hb82030l.xn--bpb; ; ; # ٠.ݗ
+xn--8hb852ke991q.xn--bpb; ٠.ݗ; [B1, C1, V6]; xn--8hb852ke991q.xn--bpb; ; ;
# ٠.ݗ
+်。-; ်.-; [C1, V3, V5]; xn--bkd412fca.xn----sgn; ; xn--bkd.-; [V3, V5] #
်.-
+xn--bkd.-; ်.-; [V3, V5]; xn--bkd.-; ; ; # ်.-
+xn--bkd412fca.xn----sgn; ်.-; [C1, V3, V5]; xn--bkd412fca.xn----sgn; ; ; #
်.-
+︒。᭄ᡉ; ︒.᭄ᡉ; [P1, V5, V6]; xn--y86c.xn--87e93m; ; ; # ︒.᭄ᡉ
+。。᭄ᡉ; ..᭄ᡉ; [V5, X4_2]; ..xn--87e93m; [V5, A4_2]; ; # ..᭄ᡉ
+..xn--87e93m; ..᭄ᡉ; [V5, X4_2]; ..xn--87e93m; [V5, A4_2]; ; # ..᭄ᡉ
+xn--y86c.xn--87e93m; ︒.᭄ᡉ; [V5, V6]; xn--y86c.xn--87e93m; ; ; # ︒.᭄ᡉ
+ݘß。ጫᢊݨ𝟐; ݘß.ጫᢊݨ2; [B2, B3, B5]; xn--zca724a.xn--2-b5c641gfmf; ;
xn--ss-gke.xn--2-b5c641gfmf; # ݘß.ጫᢊݨ2
+ݘß。ጫᢊݨ2; ݘß.ጫᢊݨ2; [B2, B3, B5]; xn--zca724a.xn--2-b5c641gfmf; ;
xn--ss-gke.xn--2-b5c641gfmf; # ݘß.ጫᢊݨ2
+ݘSS。ጫᢊݨ2; ݘss.ጫᢊݨ2; [B2, B3, B5]; xn--ss-gke.xn--2-b5c641gfmf; ; ; # ݘss.ጫᢊݨ2
+ݘss。ጫᢊݨ2; ݘss.ጫᢊݨ2; [B2, B3, B5]; xn--ss-gke.xn--2-b5c641gfmf; ; ; # ݘss.ጫᢊݨ2
+xn--ss-gke.xn--2-b5c641gfmf; ݘss.ጫᢊݨ2; [B2, B3, B5];
xn--ss-gke.xn--2-b5c641gfmf; ; ; # ݘss.ጫᢊݨ2
+xn--zca724a.xn--2-b5c641gfmf; ݘß.ጫᢊݨ2; [B2, B3, B5];
xn--zca724a.xn--2-b5c641gfmf; ; ; # ݘß.ጫᢊݨ2
+ݘSS。ጫᢊݨ𝟐; ݘss.ጫᢊݨ2; [B2, B3, B5]; xn--ss-gke.xn--2-b5c641gfmf; ; ; # ݘss.ጫᢊݨ2
+ݘss。ጫᢊݨ𝟐; ݘss.ጫᢊݨ2; [B2, B3, B5]; xn--ss-gke.xn--2-b5c641gfmf; ; ; # ݘss.ጫᢊݨ2
+ݘSs。ጫᢊݨ2; ݘss.ጫᢊݨ2; [B2, B3, B5]; xn--ss-gke.xn--2-b5c641gfmf; ; ; # ݘss.ጫᢊݨ2
+ݘSs。ጫᢊݨ𝟐; ݘss.ጫᢊݨ2; [B2, B3, B5]; xn--ss-gke.xn--2-b5c641gfmf; ; ; # ݘss.ጫᢊݨ2
+߃ᚲ.ं͓𝟚্; ߃ᚲ.ं͓2্; [B1, B2, B3, P1, V5, V6];
xn--esb067enh07a.xn--2-lgb874bjxa; ; ; # ߃ᚲ.ं͓2্
+߃ᚲ.ं͓2্; ; [B1, B2, B3, P1, V5, V6]; xn--esb067enh07a.xn--2-lgb874bjxa; ; ;
# ߃ᚲ.ं͓2্
+xn--esb067enh07a.xn--2-lgb874bjxa; ߃ᚲ.ं͓2্; [B1, B2, B3, V5, V6];
xn--esb067enh07a.xn--2-lgb874bjxa; ; ; # ߃ᚲ.ं͓2্
+-᮫︒.; ; [C2, P1, V3, V6]; xn----qmlv7tw180a.xn--x50zy803a; ;
xn----qml1407i.xn--x50zy803a; [P1, V3, V6] # -᮫︒.
+-᮫。.; -᮫..; [C2, P1, V3, V6]; xn----qml.xn--1ug.xn--x50zy803a; ;
xn----qml..xn--x50zy803a; [P1, V3, V6, A4_2] # -᮫..
+xn----qml..xn--x50zy803a; -᮫..; [V3, V6, X4_2]; xn----qml..xn--x50zy803a;
[V3, V6, A4_2]; ; # -᮫..
+xn----qml.xn--1ug.xn--x50zy803a; -᮫..; [C2, V3, V6];
xn----qml.xn--1ug.xn--x50zy803a; ; ; # -᮫..
+xn----qml1407i.xn--x50zy803a; -᮫︒.; [V3, V6]; xn----qml1407i.xn--x50zy803a;
; ; # -᮫︒.
+xn----qmlv7tw180a.xn--x50zy803a; -᮫︒.; [C2, V3, V6];
xn----qmlv7tw180a.xn--x50zy803a; ; ; # -᮫︒.
+.≯𞀆; ; [P1, V6]; xn--t546e.xn--hdh5166o; ; ; # .≯𞀆
+.≯𞀆; .≯𞀆; [P1, V6]; xn--t546e.xn--hdh5166o; ; ; # .≯𞀆
+xn--t546e.xn--hdh5166o; .≯𞀆; [V6]; xn--t546e.xn--hdh5166o; ; ; # .≯𞀆
+-𑄳𐹩。; -𑄳𐹩.; [B1, P1, V3, V6]; xn----p26i72em2894c.xn--zw6h; ; ; # -𑄳𐹩.
+xn----p26i72em2894c.xn--zw6h; -𑄳𐹩.; [B1, V3, V6];
xn----p26i72em2894c.xn--zw6h; ; ; # -𑄳𐹩.
+ڹ.ᡳᅟ; ڹ.ᡳᅟ; [P1, V6]; xn--skb.xn--osd737a; ; ; # ڹ.ᡳ
+ڹ.ᡳᅟ; ; [P1, V6]; xn--skb.xn--osd737a; ; ; # ڹ.ᡳ
+xn--skb.xn--osd737a; ڹ.ᡳᅟ; [V6]; xn--skb.xn--osd737a; ; ; # ڹ.ᡳ
+㨛𘱎.︒𝟕ഁ; 㨛𘱎.︒7ഁ; [P1, V6]; xn--mbm8237g.xn--7-7hf1526p; ; ; # 㨛𘱎.︒7ഁ
+㨛𘱎.。7ഁ; 㨛𘱎..7ഁ; [X4_2]; xn--mbm8237g..xn--7-7hf; [A4_2]; ; # 㨛𘱎..7ഁ
+xn--mbm8237g..xn--7-7hf; 㨛𘱎..7ഁ; [X4_2]; xn--mbm8237g..xn--7-7hf; [A4_2]; ; #
㨛𘱎..7ഁ
+xn--mbm8237g.xn--7-7hf1526p; 㨛𘱎.︒7ഁ; [V6]; xn--mbm8237g.xn--7-7hf1526p; ; ; #
㨛𘱎.︒7ഁ
+-。𞤣≮; -.𞤣≮; [B1, B3, P1, V3, V6]; xn----dxc06304e.xn--gdh5020pk5c; ; ;
# -.𞤣≮
+-。𞤣≮; -.𞤣≮; [B1, B3, P1, V3, V6]; xn----dxc06304e.xn--gdh5020pk5c; ; ;
# -.𞤣≮
+-。𞤣≮; -.𞤣≮; [B1, B3, P1, V3, V6]; xn----dxc06304e.xn--gdh5020pk5c; ; ;
# -.𞤣≮
+-。𞤣≮; -.𞤣≮; [B1, B3, P1, V3, V6]; xn----dxc06304e.xn--gdh5020pk5c; ; ;
# -.𞤣≮
+-。𞤁≮; -.𞤣≮; [B1, B3, P1, V3, V6]; xn----dxc06304e.xn--gdh5020pk5c; ; ;
# -.𞤣≮
+-。𞤁≮; -.𞤣≮; [B1, B3, P1, V3, V6]; xn----dxc06304e.xn--gdh5020pk5c; ; ;
# -.𞤣≮
+xn----dxc06304e.xn--gdh5020pk5c; -.𞤣≮; [B1, B3, V3, V6];
xn----dxc06304e.xn--gdh5020pk5c; ; ; # -.𞤣≮
+-。𞤁≮; -.𞤣≮; [B1, B3, P1, V3, V6]; xn----dxc06304e.xn--gdh5020pk5c; ; ;
# -.𞤣≮
+-。𞤁≮; -.𞤣≮; [B1, B3, P1, V3, V6]; xn----dxc06304e.xn--gdh5020pk5c; ; ;
# -.𞤣≮
+ß꫶ᢥ.⊶ჁႶ; ß꫶ᢥ.⊶ჁႶ; [C1, P1, V6]; xn--zca682johfi89m.xn--undv409k; ;
xn--ss-4epx629f.xn--undv409k; [P1, V6] # ß꫶ᢥ.⊶ჁႶ
+ß꫶ᢥ.⊶ჁႶ; ; [C1, P1, V6]; xn--zca682johfi89m.xn--undv409k; ;
xn--ss-4epx629f.xn--undv409k; [P1, V6] # ß꫶ᢥ.⊶ჁႶ
+ß꫶ᢥ.⊶ⴡⴖ; ; [C1]; xn--zca682johfi89m.xn--ifh802b6a; ;
xn--ss-4epx629f.xn--ifh802b6a; [] # ß꫶ᢥ.⊶ⴡⴖ
+SS꫶ᢥ.⊶ჁႶ; ss꫶ᢥ.⊶ჁႶ; [C1, P1, V6]; xn--ss-4ep585bkm5p.xn--undv409k; ;
xn--ss-4epx629f.xn--undv409k; [P1, V6] # ss꫶ᢥ.⊶ჁႶ
+ss꫶ᢥ.⊶ⴡⴖ; ; [C1]; xn--ss-4ep585bkm5p.xn--ifh802b6a; ;
xn--ss-4epx629f.xn--ifh802b6a; [] # ss꫶ᢥ.⊶ⴡⴖ
+Ss꫶ᢥ.⊶Ⴡⴖ; ss꫶ᢥ.⊶Ⴡⴖ; [C1, P1, V6]; xn--ss-4ep585bkm5p.xn--5nd703gyrh; ;
xn--ss-4epx629f.xn--5nd703gyrh; [P1, V6] # ss꫶ᢥ.⊶Ⴡⴖ
+xn--ss-4epx629f.xn--5nd703gyrh; ss꫶ᢥ.⊶Ⴡⴖ; [V6];
xn--ss-4epx629f.xn--5nd703gyrh; ; ; # ss꫶ᢥ.⊶Ⴡⴖ
+xn--ss-4ep585bkm5p.xn--5nd703gyrh; ss꫶ᢥ.⊶Ⴡⴖ; [C1, V6];
xn--ss-4ep585bkm5p.xn--5nd703gyrh; ; ; # ss꫶ᢥ.⊶Ⴡⴖ
+xn--ss-4epx629f.xn--ifh802b6a; ss꫶ᢥ.⊶ⴡⴖ; ; xn--ss-4epx629f.xn--ifh802b6a; ; ;
# ss꫶ᢥ.⊶ⴡⴖ
+ss꫶ᢥ.⊶ⴡⴖ; ; ; xn--ss-4epx629f.xn--ifh802b6a; ; ; # ss꫶ᢥ.⊶ⴡⴖ
+SS꫶ᢥ.⊶ჁႶ; ss꫶ᢥ.⊶ჁႶ; [P1, V6]; xn--ss-4epx629f.xn--undv409k; ; ; # ss꫶ᢥ.⊶ჁႶ
+Ss꫶ᢥ.⊶Ⴡⴖ; ss꫶ᢥ.⊶Ⴡⴖ; [P1, V6]; xn--ss-4epx629f.xn--5nd703gyrh; ; ; # ss꫶ᢥ.⊶Ⴡⴖ
+xn--ss-4epx629f.xn--undv409k; ss꫶ᢥ.⊶ჁႶ; [V6]; xn--ss-4epx629f.xn--undv409k; ;
; # ss꫶ᢥ.⊶ჁႶ
+xn--ss-4ep585bkm5p.xn--ifh802b6a; ss꫶ᢥ.⊶ⴡⴖ; [C1];
xn--ss-4ep585bkm5p.xn--ifh802b6a; ; ; # ss꫶ᢥ.⊶ⴡⴖ
+xn--ss-4ep585bkm5p.xn--undv409k; ss꫶ᢥ.⊶ჁႶ; [C1, V6];
xn--ss-4ep585bkm5p.xn--undv409k; ; ; # ss꫶ᢥ.⊶ჁႶ
+xn--zca682johfi89m.xn--ifh802b6a; ß꫶ᢥ.⊶ⴡⴖ; [C1];
xn--zca682johfi89m.xn--ifh802b6a; ; ; # ß꫶ᢥ.⊶ⴡⴖ
+xn--zca682johfi89m.xn--undv409k; ß꫶ᢥ.⊶ჁႶ; [C1, V6];
xn--zca682johfi89m.xn--undv409k; ; ; # ß꫶ᢥ.⊶ჁႶ
+ß꫶ᢥ.⊶ⴡⴖ; ß꫶ᢥ.⊶ⴡⴖ; [C1]; xn--zca682johfi89m.xn--ifh802b6a; ;
xn--ss-4epx629f.xn--ifh802b6a; [] # ß꫶ᢥ.⊶ⴡⴖ
+SS꫶ᢥ.⊶ჁႶ; ss꫶ᢥ.⊶ჁႶ; [C1, P1, V6]; xn--ss-4ep585bkm5p.xn--undv409k; ;
xn--ss-4epx629f.xn--undv409k; [P1, V6] # ss꫶ᢥ.⊶ჁႶ
+ss꫶ᢥ.⊶ⴡⴖ; ss꫶ᢥ.⊶ⴡⴖ; [C1]; xn--ss-4ep585bkm5p.xn--ifh802b6a; ;
xn--ss-4epx629f.xn--ifh802b6a; [] # ss꫶ᢥ.⊶ⴡⴖ
+Ss꫶ᢥ.⊶Ⴡⴖ; ss꫶ᢥ.⊶Ⴡⴖ; [C1, P1, V6]; xn--ss-4ep585bkm5p.xn--5nd703gyrh; ;
xn--ss-4epx629f.xn--5nd703gyrh; [P1, V6] # ss꫶ᢥ.⊶Ⴡⴖ
+。ς; .ς; [C2, P1, V6]; xn--1ug.xn--3xa44344p; ; .xn--4xa24344p; [P1, V6,
A4_2] # .ς
+。Σ; .σ; [C2, P1, V6]; xn--1ug.xn--4xa24344p; ; .xn--4xa24344p; [P1, V6,
A4_2] # .σ
+。σ; .σ; [C2, P1, V6]; xn--1ug.xn--4xa24344p; ; .xn--4xa24344p; [P1, V6,
A4_2] # .σ
+.xn--4xa24344p; .σ; [V6, X4_2]; .xn--4xa24344p; [V6, A4_2]; ; # .σ
+xn--1ug.xn--4xa24344p; .σ; [C2, V6]; xn--1ug.xn--4xa24344p; ; ; # .σ
+xn--1ug.xn--3xa44344p; .ς; [C2, V6]; xn--1ug.xn--3xa44344p; ; ; # .ς
+ß.ݑ𞤛-; ß.ݑ𞤽-; [B2, B3, C2, P1, V3, V6]; xn--zca5423w.xn----z3c011q9513b; ;
xn--ss-2722a.xn----z3c03218a; [B2, B3, P1, V3, V6] # ß.ݑ𞤽-
+ß.ݑ𞤽-; ; [B2, B3, C2, P1, V3, V6]; xn--zca5423w.xn----z3c011q9513b; ;
xn--ss-2722a.xn----z3c03218a; [B2, B3, P1, V3, V6] # ß.ݑ𞤽-
+SS.ݑ𞤛-; ss.ݑ𞤽-; [B2, B3, C2, P1, V3, V6]; xn--ss-2722a.xn----z3c011q9513b;
; xn--ss-2722a.xn----z3c03218a; [B2, B3, P1, V3, V6] # ss.ݑ𞤽-
+ss.ݑ𞤽-; ; [B2, B3, C2, P1, V3, V6]; xn--ss-2722a.xn----z3c011q9513b; ;
xn--ss-2722a.xn----z3c03218a; [B2, B3, P1, V3, V6] # ss.ݑ𞤽-
+Ss.ݑ𞤽-; ss.ݑ𞤽-; [B2, B3, C2, P1, V3, V6]; xn--ss-2722a.xn----z3c011q9513b;
; xn--ss-2722a.xn----z3c03218a; [B2, B3, P1, V3, V6] # ss.ݑ𞤽-
+xn--ss-2722a.xn----z3c03218a; ss.ݑ𞤽-; [B2, B3, V3, V6];
xn--ss-2722a.xn----z3c03218a; ; ; # ss.ݑ𞤽-
+xn--ss-2722a.xn----z3c011q9513b; ss.ݑ𞤽-; [B2, B3, C2, V3, V6];
xn--ss-2722a.xn----z3c011q9513b; ; ; # ss.ݑ𞤽-
+xn--zca5423w.xn----z3c011q9513b; ß.ݑ𞤽-; [B2, B3, C2, V3, V6];
xn--zca5423w.xn----z3c011q9513b; ; ; # ß.ݑ𞤽-
+ss.ݑ𞤛-; ss.ݑ𞤽-; [B2, B3, C2, P1, V3, V6]; xn--ss-2722a.xn----z3c011q9513b;
; xn--ss-2722a.xn----z3c03218a; [B2, B3, P1, V3, V6] # ss.ݑ𞤽-
+Ss.ݑ𞤛-; ss.ݑ𞤽-; [B2, B3, C2, P1, V3, V6]; xn--ss-2722a.xn----z3c011q9513b;
; xn--ss-2722a.xn----z3c03218a; [B2, B3, P1, V3, V6] # ss.ݑ𞤽-
+𑘽𞤧.𐹧-; 𑘽𞤧.𐹧-; [B1, C2, P1, V3, V5, V6]; xn--1ugz808gdimf.xn----k26iq1483f;
; xn--qb2ds317a.xn----k26iq1483f; [B1, P1, V3, V5, V6] # 𑘽𞤧.𐹧-
+𑘽𞤧.𐹧-; ; [B1, C2, P1, V3, V5, V6]; xn--1ugz808gdimf.xn----k26iq1483f; ;
xn--qb2ds317a.xn----k26iq1483f; [B1, P1, V3, V5, V6] # 𑘽𞤧.𐹧-
+𑘽𞤅.𐹧-; 𑘽𞤧.𐹧-; [B1, C2, P1, V3, V5, V6]; xn--1ugz808gdimf.xn----k26iq1483f;
; xn--qb2ds317a.xn----k26iq1483f; [B1, P1, V3, V5, V6] # 𑘽𞤧.𐹧-
+xn--qb2ds317a.xn----k26iq1483f; 𑘽𞤧.𐹧-; [B1, V3, V5, V6];
xn--qb2ds317a.xn----k26iq1483f; ; ; # 𑘽𞤧.𐹧-
+xn--1ugz808gdimf.xn----k26iq1483f; 𑘽𞤧.𐹧-; [B1, C2, V3, V5, V6];
xn--1ugz808gdimf.xn----k26iq1483f; ; ; # 𑘽𞤧.𐹧-
+𑘽𞤅.𐹧-; 𑘽𞤧.𐹧-; [B1, C2, P1, V3, V5, V6]; xn--1ugz808gdimf.xn----k26iq1483f;
; xn--qb2ds317a.xn----k26iq1483f; [B1, P1, V3, V5, V6] # 𑘽𞤧.𐹧-
+⒒𑓀.-; ; [P1, V3, V6]; xn--3shy698frsu9dt1me.xn----x310m; ; ; # ⒒𑓀.-
+11.𑓀.-; ; [P1, V3, V6]; 11.xn--uz1d59632bxujd.xn----x310m; ; ; # 11.𑓀.-
+11.xn--uz1d59632bxujd.xn----x310m; 11.𑓀.-; [V3, V6];
11.xn--uz1d59632bxujd.xn----x310m; ; ; # 11.𑓀.-
+xn--3shy698frsu9dt1me.xn----x310m; ⒒𑓀.-; [V3, V6];
xn--3shy698frsu9dt1me.xn----x310m; ; ; # ⒒𑓀.-
+-。; -.; [C2, V3]; -.xn--1ug; ; -.; [V3] # -.
+-。; -.; [C2, V3]; -.xn--1ug; ; -.; [V3] # -.
+-.; ; [V3]; ; ; ; # -.
+-.xn--1ug; -.; [C2, V3]; -.xn--1ug; ; ; # -.
+≮ᡬ.ς¹-?; ≮ᡬ.ς1-?; [P1, V6]; xn--88e732c.xn--1-?-lzc; ;
xn--88e732c.xn--1-?-pzc; # ≮ᡬ.ς1-?
+≮ᡬ.ς¹-?; ≮ᡬ.ς1-?; [P1, V6]; xn--88e732c.xn--1-?-lzc; ;
xn--88e732c.xn--1-?-pzc; # ≮ᡬ.ς1-?
+≮ᡬ.ς1-?; ; [P1, V6]; xn--88e732c.xn--1-?-lzc; ; xn--88e732c.xn--1-?-pzc; #
≮ᡬ.ς1-?
+≮ᡬ.ς1-?; ≮ᡬ.ς1-?; [P1, V6]; xn--88e732c.xn--1-?-lzc; ;
xn--88e732c.xn--1-?-pzc; # ≮ᡬ.ς1-?
+≮ᡬ.Σ1-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.xn--1-?-pzc; ; ; # ≮ᡬ.σ1-?
+≮ᡬ.Σ1-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.xn--1-?-pzc; ; ; # ≮ᡬ.σ1-?
+≮ᡬ.σ1-?; ; [P1, V6]; xn--88e732c.xn--1-?-pzc; ; ; # ≮ᡬ.σ1-?
+≮ᡬ.σ1-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.xn--1-?-pzc; ; ; # ≮ᡬ.σ1-?
+xn--88e732c.xn--1-?-pzc; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.xn--1-?-pzc; ; ; #
≮ᡬ.σ1-?
+xn--88e732c.xn--1-?-lzc; ≮ᡬ.ς1-?; [P1, V6]; xn--88e732c.xn--1-?-lzc; ; ; #
≮ᡬ.ς1-?
+≮ᡬ.Σ¹-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.xn--1-?-pzc; ; ; # ≮ᡬ.σ1-?
+≮ᡬ.Σ¹-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.xn--1-?-pzc; ; ; # ≮ᡬ.σ1-?
+≮ᡬ.σ¹-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.xn--1-?-pzc; ; ; # ≮ᡬ.σ1-?
+≮ᡬ.σ¹-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.xn--1-?-pzc; ; ; # ≮ᡬ.σ1-?
+xn--88e732c.σ1-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.xn--1-?-pzc; ; ; # ≮ᡬ.σ1-?
+XN--88E732C.Σ1-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.xn--1-?-pzc; ; ; # ≮ᡬ.σ1-?
+xn--88e732c.ς1-?; ≮ᡬ.ς1-?; [P1, V6]; xn--88e732c.xn--1-?-lzc; ;
xn--88e732c.xn--1-?-pzc; # ≮ᡬ.ς1-?
+Xn--88e732c.ς1-?; ≮ᡬ.ς1-?; [P1, V6]; xn--88e732c.xn--1-?-lzc; ;
xn--88e732c.xn--1-?-pzc; # ≮ᡬ.ς1-?
+Xn--88e732c.σ1-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.xn--1-?-pzc; ; ; # ≮ᡬ.σ1-?
+ቬ。𐨬𝟠; ቬ.𐨬8; [P1, V6]; xn--d0d41273c887z.xn--8-ob5i; ; ; # ቬ.𐨬8
+ቬ。𐨬8; ቬ.𐨬8; [P1, V6]; xn--d0d41273c887z.xn--8-ob5i; ; ; # ቬ.𐨬8
+xn--d0d41273c887z.xn--8-ob5i; ቬ.𐨬8; [V6]; xn--d0d41273c887z.xn--8-ob5i; ; ;
# ቬ.𐨬8
+。蔫ݦ; .蔫ݦ; [B5, B6, P1, V6]; xn--389c.xn--qpb7055d; ; ; # .蔫ݦ
+xn--389c.xn--qpb7055d; .蔫ݦ; [B5, B6, V6]; xn--389c.xn--qpb7055d; ; ; # .蔫ݦ
+₃。ꡚ𛇑󠄳ه; 3.ꡚ𛇑ه; [B5, B6, P1, V6]; xn--3-ep59g.xn--jhb5904fcp0h; ; ; # 3.ꡚ𛇑ه
+3。ꡚ𛇑󠄳ه; 3.ꡚ𛇑ه; [B5, B6, P1, V6]; xn--3-ep59g.xn--jhb5904fcp0h; ; ; # 3.ꡚ𛇑ه
+xn--3-ep59g.xn--jhb5904fcp0h; 3.ꡚ𛇑ه; [B5, B6, V6];
xn--3-ep59g.xn--jhb5904fcp0h; ; ; # 3.ꡚ𛇑ه
+蓸ق≠.ß; ; [B5, B6, P1, V6]; xn--ehb015lnt1e.xn--zca; ; xn--ehb015lnt1e.ss; #
蓸ق≠.ß
+蓸ق≠.ß; 蓸ق≠.ß; [B5, B6, P1, V6]; xn--ehb015lnt1e.xn--zca; ;
xn--ehb015lnt1e.ss; # 蓸ق≠.ß
+蓸ق≠.SS; 蓸ق≠.ss; [B5, B6, P1, V6]; xn--ehb015lnt1e.ss; ; ; # 蓸ق≠.ss
+蓸ق≠.SS; 蓸ق≠.ss; [B5, B6, P1, V6]; xn--ehb015lnt1e.ss; ; ; # 蓸ق≠.ss
+蓸ق≠.ss; ; [B5, B6, P1, V6]; xn--ehb015lnt1e.ss; ; ; # 蓸ق≠.ss
+蓸ق≠.ss; 蓸ق≠.ss; [B5, B6, P1, V6]; xn--ehb015lnt1e.ss; ; ; # 蓸ق≠.ss
+蓸ق≠.Ss; 蓸ق≠.ss; [B5, B6, P1, V6]; xn--ehb015lnt1e.ss; ; ; # 蓸ق≠.ss
+蓸ق≠.Ss; 蓸ق≠.ss; [B5, B6, P1, V6]; xn--ehb015lnt1e.ss; ; ; # 蓸ق≠.ss
+xn--ehb015lnt1e.ss; 蓸ق≠.ss; [B5, B6, V6]; xn--ehb015lnt1e.ss; ; ; # 蓸ق≠.ss
+xn--ehb015lnt1e.xn--zca; 蓸ق≠.ß; [B5, B6, V6]; xn--ehb015lnt1e.xn--zca; ; ; #
蓸ق≠.ß
+ࡎٺී⒊.𐹹; ; [B1, C1, P1, V6]; xn--zib94gfziuq1a.xn--0ug3205g7eyf3c96h; ;
xn--zib94gfziuq1a.xn--xo0dw109an237f; [B1, P1, V6] # ࡎٺී⒊.𐹹
+ࡎٺී3..𐹹; ; [B1, C1, P1, V6, X4_2]; xn--3-prc71ls9j..xn--0ug3205g7eyf3c96h;
[B1, C1, P1, V6, A4_2]; xn--3-prc71ls9j..xn--xo0dw109an237f; [B1, P1, V6, A4_2]
# ࡎٺී3..𐹹
+xn--3-prc71ls9j..xn--xo0dw109an237f; ࡎٺී3..𐹹; [B1, V6, X4_2];
xn--3-prc71ls9j..xn--xo0dw109an237f; [B1, V6, A4_2]; ; # ࡎٺී3..𐹹
+xn--3-prc71ls9j..xn--0ug3205g7eyf3c96h; ࡎٺී3..𐹹; [B1, C1, V6, X4_2];
xn--3-prc71ls9j..xn--0ug3205g7eyf3c96h; [B1, C1, V6, A4_2]; ; # ࡎٺී3..𐹹
+xn--zib94gfziuq1a.xn--xo0dw109an237f; ࡎٺී⒊.𐹹; [B1, V6];
xn--zib94gfziuq1a.xn--xo0dw109an237f; ; ; # ࡎٺී⒊.𐹹
+xn--zib94gfziuq1a.xn--0ug3205g7eyf3c96h; ࡎٺී⒊.𐹹; [B1, C1, V6];
xn--zib94gfziuq1a.xn--0ug3205g7eyf3c96h; ; ; # ࡎٺී⒊.𐹹
+ς-.Ⴣ𦟙; ; [C2, P1, V3, V6]; xn----xmb348s.xn--7nd64871a; ;
xn----zmb.xn--7nd64871a; [P1, V3, V6] # ς-.Ⴣ𦟙
+ς-.ⴣ𦟙; ; [C2, V3]; xn----xmb348s.xn--rlj2573p; ; xn----zmb.xn--rlj2573p; [V3]
# ς-.ⴣ𦟙
+Σ-.Ⴣ𦟙; σ-.Ⴣ𦟙; [C2, P1, V3, V6]; xn----zmb048s.xn--7nd64871a; ;
xn----zmb.xn--7nd64871a; [P1, V3, V6] # σ-.Ⴣ𦟙
+σ-.ⴣ𦟙; ; [C2, V3]; xn----zmb048s.xn--rlj2573p; ; xn----zmb.xn--rlj2573p; [V3]
# σ-.ⴣ𦟙
+xn----zmb.xn--rlj2573p; σ-.ⴣ𦟙; [V3]; xn----zmb.xn--rlj2573p; ; ; # σ-.ⴣ𦟙
+xn----zmb048s.xn--rlj2573p; σ-.ⴣ𦟙; [C2, V3]; xn----zmb048s.xn--rlj2573p; ; ;
# σ-.ⴣ𦟙
+xn----zmb.xn--7nd64871a; σ-.Ⴣ𦟙; [V3, V6]; xn----zmb.xn--7nd64871a; ; ; # σ-.Ⴣ𦟙
+xn----zmb048s.xn--7nd64871a; σ-.Ⴣ𦟙; [C2, V3, V6];
xn----zmb048s.xn--7nd64871a; ; ; # σ-.Ⴣ𦟙
+xn----xmb348s.xn--rlj2573p; ς-.ⴣ𦟙; [C2, V3]; xn----xmb348s.xn--rlj2573p; ; ;
# ς-.ⴣ𦟙
+xn----xmb348s.xn--7nd64871a; ς-.Ⴣ𦟙; [C2, V3, V6];
xn----xmb348s.xn--7nd64871a; ; ; # ς-.Ⴣ𦟙
+≠。🞳𝟲; ≠.🞳6; [P1, V6]; xn--1ch.xn--6-dl4s; ; ; # ≠.🞳6
+≠。🞳𝟲; ≠.🞳6; [P1, V6]; xn--1ch.xn--6-dl4s; ; ; # ≠.🞳6
+≠。🞳6; ≠.🞳6; [P1, V6]; xn--1ch.xn--6-dl4s; ; ; # ≠.🞳6
+≠。🞳6; ≠.🞳6; [P1, V6]; xn--1ch.xn--6-dl4s; ; ; # ≠.🞳6
+xn--1ch.xn--6-dl4s; ≠.🞳6; [V6]; xn--1ch.xn--6-dl4s; ; ; # ≠.🞳6
+.蠔; ; [P1, V6]; xn--g747d.xn--xl2a; ; ; # .蠔
+xn--g747d.xn--xl2a; .蠔; [V6]; xn--g747d.xn--xl2a; ; ; # .蠔
+ࣦ.뼽; ࣦ.뼽; [C2, V5]; xn--p0b869i.xn--e43b; ; xn--p0b.xn--e43b; [V5] # ࣦ.뼽
+ࣦ.뼽; ࣦ.뼽; [C2, V5]; xn--p0b869i.xn--e43b; ; xn--p0b.xn--e43b; [V5] # ࣦ.뼽
+ࣦ.뼽; ; [C2, V5]; xn--p0b869i.xn--e43b; ; xn--p0b.xn--e43b; [V5] # ࣦ.뼽
+ࣦ.뼽; ࣦ.뼽; [C2, V5]; xn--p0b869i.xn--e43b; ; xn--p0b.xn--e43b; [V5] # ࣦ.뼽
+xn--p0b.xn--e43b; ࣦ.뼽; [V5]; xn--p0b.xn--e43b; ; ; # ࣦ.뼽
+xn--p0b869i.xn--e43b; ࣦ.뼽; [C2, V5]; xn--p0b869i.xn--e43b; ; ; # ࣦ.뼽
+₇்ے。👖ٵ-; 7்ے.👖اٴ-; [B1, P1, V6]; xn--7-rwc839aj3073c.xn----ymc5uv818oghka;
; ; # 7்ے.👖اٴ-
+7்ے。👖اٴ-; 7்ے.👖اٴ-; [B1, P1, V6];
xn--7-rwc839aj3073c.xn----ymc5uv818oghka; ; ; # 7்ے.👖اٴ-
+xn--7-rwc839aj3073c.xn----ymc5uv818oghka; 7்ے.👖اٴ-; [B1, V6];
xn--7-rwc839aj3073c.xn----ymc5uv818oghka; ; ; # 7்ے.👖اٴ-
+-。ݻ; -.ݻ; [B1, V3]; -.xn--cqb; ; ; # -.ݻ
+-。ݻ; -.ݻ; [B1, V3]; -.xn--cqb; ; ; # -.ݻ
+-.xn--cqb; -.ݻ; [B1, V3]; -.xn--cqb; ; ; # -.ݻ
+𑇌。-⒈ꡏܫ; 𑇌.-⒈ꡏܫ; [B1, P1, V3, V5, V6]; xn--8d1dg030h.xn----u1c466tp10j; ; ;
# 𑇌.-⒈ꡏܫ
+𑇌。-1.ꡏܫ; 𑇌.-1.ꡏܫ; [B1, B5, B6, P1, V3, V5, V6];
xn--8d1dg030h.-1.xn--1nb7163f; ; ; # 𑇌.-1.ꡏܫ
+xn--8d1dg030h.-1.xn--1nb7163f; 𑇌.-1.ꡏܫ; [B1, B5, B6, V3, V5, V6];
xn--8d1dg030h.-1.xn--1nb7163f; ; ; # 𑇌.-1.ꡏܫ
+xn--8d1dg030h.xn----u1c466tp10j; 𑇌.-⒈ꡏܫ; [B1, V3, V5, V6];
xn--8d1dg030h.xn----u1c466tp10j; ; ; # 𑇌.-⒈ꡏܫ
+璛᜴گ.-; ; [B1, B5, B6, V3]; xn--ikb175frt4e.-; ; ; # 璛᜴گ.-
+xn--ikb175frt4e.-; 璛᜴گ.-; [B1, B5, B6, V3]; xn--ikb175frt4e.-; ; ; # 璛᜴گ.-
+󠆰ࢡ੍샕.𐹲휁; ࢡ੍샕.𐹲휁; [B1, B2, B3]; xn--qyb07fj857a.xn--728bv72h; ; ; # ࢡ੍샕.𐹲휁
+󠆰ࢡ੍샕.𐹲휁; ࢡ੍샕.𐹲휁; [B1, B2, B3]; xn--qyb07fj857a.xn--728bv72h; ; ; # ࢡ੍샕.𐹲휁
+󠆰ࢡ੍샕.𐹲휁; ࢡ੍샕.𐹲휁; [B1, B2, B3]; xn--qyb07fj857a.xn--728bv72h; ; ; # ࢡ੍샕.𐹲휁
+󠆰ࢡ੍샕.𐹲휁; ࢡ੍샕.𐹲휁; [B1, B2, B3]; xn--qyb07fj857a.xn--728bv72h; ; ; # ࢡ੍샕.𐹲휁
+xn--qyb07fj857a.xn--728bv72h; ࢡ੍샕.𐹲휁; [B1, B2, B3];
xn--qyb07fj857a.xn--728bv72h; ; ; # ࢡ੍샕.𐹲휁
+.; .; [P1, V6]; xn--pr3x.xn--rv7w; ; ; # .
+.; ; [P1, V6]; xn--pr3x.xn--rv7w; ; ; # .
+xn--pr3x.xn--rv7w; .; [V6]; xn--pr3x.xn--rv7w; ; ; # .
+ٽ𞥕。𑑂𞤶Ⴍ-; ٽ𞥕.𑑂𞤶Ⴍ-; [B1, P1, V3, V5, V6]; xn--2ib0338v.xn----w0g2740ro9vg; ; ;
# ٽ𞥕.𑑂𞤶Ⴍ-
+ٽ𞥕。𑑂𞤶Ⴍ-; ٽ𞥕.𑑂𞤶Ⴍ-; [B1, P1, V3, V5, V6]; xn--2ib0338v.xn----w0g2740ro9vg; ; ;
# ٽ𞥕.𑑂𞤶Ⴍ-
+ٽ𞥕。𑑂𞤶ⴍ-; ٽ𞥕.𑑂𞤶ⴍ-; [B1, V3, V5]; xn--2ib0338v.xn----zvs0199fo91g; ; ; # ٽ𞥕.𑑂𞤶ⴍ-
+ٽ𞥕。𑑂𞤔Ⴍ-; ٽ𞥕.𑑂𞤶Ⴍ-; [B1, P1, V3, V5, V6]; xn--2ib0338v.xn----w0g2740ro9vg; ; ;
# ٽ𞥕.𑑂𞤶Ⴍ-
+ٽ𞥕。𑑂𞤔ⴍ-; ٽ𞥕.𑑂𞤶ⴍ-; [B1, V3, V5]; xn--2ib0338v.xn----zvs0199fo91g; ; ; # ٽ𞥕.𑑂𞤶ⴍ-
+xn--2ib0338v.xn----zvs0199fo91g; ٽ𞥕.𑑂𞤶ⴍ-; [B1, V3, V5];
xn--2ib0338v.xn----zvs0199fo91g; ; ; # ٽ𞥕.𑑂𞤶ⴍ-
+xn--2ib0338v.xn----w0g2740ro9vg; ٽ𞥕.𑑂𞤶Ⴍ-; [B1, V3, V5, V6];
xn--2ib0338v.xn----w0g2740ro9vg; ; ; # ٽ𞥕.𑑂𞤶Ⴍ-
+ٽ𞥕。𑑂𞤶ⴍ-; ٽ𞥕.𑑂𞤶ⴍ-; [B1, V3, V5]; xn--2ib0338v.xn----zvs0199fo91g; ; ; # ٽ𞥕.𑑂𞤶ⴍ-
+ٽ𞥕。𑑂𞤔Ⴍ-; ٽ𞥕.𑑂𞤶Ⴍ-; [B1, P1, V3, V5, V6]; xn--2ib0338v.xn----w0g2740ro9vg; ; ;
# ٽ𞥕.𑑂𞤶Ⴍ-
+ٽ𞥕。𑑂𞤔ⴍ-; ٽ𞥕.𑑂𞤶ⴍ-; [B1, V3, V5]; xn--2ib0338v.xn----zvs0199fo91g; ; ; # ٽ𞥕.𑑂𞤶ⴍ-
+。₄Ⴋ; .4Ⴋ; [P1, V6]; xn--039c42bq865a.xn--4-t0g49302fnrzm; ; ; # .4Ⴋ
+。4Ⴋ; .4Ⴋ; [P1, V6]; xn--039c42bq865a.xn--4-t0g49302fnrzm; ; ; # .4Ⴋ
+。4ⴋ; .4ⴋ; [P1, V6]; xn--039c42bq865a.xn--4-wvs27840bnrzm; ; ; # .4ⴋ
+xn--039c42bq865a.xn--4-wvs27840bnrzm; .4ⴋ; [V6];
xn--039c42bq865a.xn--4-wvs27840bnrzm; ; ; # .4ⴋ
+xn--039c42bq865a.xn--4-t0g49302fnrzm; .4Ⴋ; [V6];
xn--039c42bq865a.xn--4-t0g49302fnrzm; ; ; # .4Ⴋ
+。₄ⴋ; .4ⴋ; [P1, V6]; xn--039c42bq865a.xn--4-wvs27840bnrzm; ; ; # .4ⴋ
+4ڽ︒.≠; ; [B1, P1, V6]; xn--4-kvc5601q2h50i.xn--1ch; ; ; # 4ڽ︒.≠
+4ڽ︒.≠; 4ڽ︒.≠; [B1, P1, V6]; xn--4-kvc5601q2h50i.xn--1ch; ; ; # 4ڽ︒.≠
+4ڽ。.≠; 4ڽ..≠; [B1, P1, V6]; xn--4-kvc.xn--5136e.xn--1ch; ; ; # 4ڽ..≠
+4ڽ。.≠; 4ڽ..≠; [B1, P1, V6]; xn--4-kvc.xn--5136e.xn--1ch; ; ; # 4ڽ..≠
+xn--4-kvc.xn--5136e.xn--1ch; 4ڽ..≠; [B1, V6]; xn--4-kvc.xn--5136e.xn--1ch; ;
; # 4ڽ..≠
+xn--4-kvc5601q2h50i.xn--1ch; 4ڽ︒.≠; [B1, V6]; xn--4-kvc5601q2h50i.xn--1ch; ;
; # 4ڽ︒.≠
+𝟓。ۗ; 5.ۗ; [V5]; 5.xn--nlb; ; ; # 5.ۗ
+5。ۗ; 5.ۗ; [V5]; 5.xn--nlb; ; ; # 5.ۗ
+5.xn--nlb; 5.ۗ; [V5]; 5.xn--nlb; ; ; # 5.ۗ
+.⾕; .谷; [C1, P1, V6]; xn--0ug26167i.xn--6g3a; ; xn--i183d.xn--6g3a; [P1,
V6] # .谷
+.谷; ; [C1, P1, V6]; xn--0ug26167i.xn--6g3a; ; xn--i183d.xn--6g3a; [P1, V6] #
.谷
+xn--i183d.xn--6g3a; .谷; [V6]; xn--i183d.xn--6g3a; ; ; # .谷
+xn--0ug26167i.xn--6g3a; .谷; [C1, V6]; xn--0ug26167i.xn--6g3a; ; ; # .谷
+︒.-ܼ; ; [C1, C2, P1, V3, V6]; xn--1ug1658ftw26f.xn----t2c071q; ;
xn--y86c71305c.xn----t2c; [P1, V3, V6] # ︒.-ܼ
+。.-ܼ; ..-ܼ; [C1, C2, P1, V3, V6, X4_2]; .xn--1ug05310k.xn----t2c071q;
[C1, C2, P1, V3, V6, A4_2]; .xn--hh50e.xn----t2c; [P1, V3, V6, A4_2] # ..-ܼ
+.xn--hh50e.xn----t2c; ..-ܼ; [V3, V6, X4_2]; .xn--hh50e.xn----t2c; [V3, V6,
A4_2]; ; # ..-ܼ
+.xn--1ug05310k.xn----t2c071q; ..-ܼ; [C1, C2, V3, V6, X4_2];
.xn--1ug05310k.xn----t2c071q; [C1, C2, V3, V6, A4_2]; ; # ..-ܼ
+xn--y86c71305c.xn----t2c; ︒.-ܼ; [V3, V6]; xn--y86c71305c.xn----t2c; ; ; #
︒.-ܼ
+xn--1ug1658ftw26f.xn----t2c071q; ︒.-ܼ; [C1, C2, V3, V6];
xn--1ug1658ftw26f.xn----t2c071q; ; ; # ︒.-ܼ
+≯𞤟。ᡨ; ≯𞥁.ᡨ; [B1, P1, V6]; xn--hdhz520p.xn--48e; ; ; # ≯𞥁.ᡨ
+≯𞤟。ᡨ; ≯𞥁.ᡨ; [B1, P1, V6]; xn--hdhz520p.xn--48e; ; ; # ≯𞥁.ᡨ
+≯𞥁。ᡨ; ≯𞥁.ᡨ; [B1, P1, V6]; xn--hdhz520p.xn--48e; ; ; # ≯𞥁.ᡨ
+≯𞥁。ᡨ; ≯𞥁.ᡨ; [B1, P1, V6]; xn--hdhz520p.xn--48e; ; ; # ≯𞥁.ᡨ
+xn--hdhz520p.xn--48e; ≯𞥁.ᡨ; [B1, V6]; xn--hdhz520p.xn--48e; ; ; # ≯𞥁.ᡨ
+ུ𫫰𝨄。ܓ𐹦; ུ𫫰𝨄.ܓ𐹦; [B1, V5]; xn--ned8985uo92e.xn--dnb6395k; ; ; # ུ𫫰𝨄.ܓ𐹦
+xn--ned8985uo92e.xn--dnb6395k; ུ𫫰𝨄.ܓ𐹦; [B1, V5];
xn--ned8985uo92e.xn--dnb6395k; ; ; # ུ𫫰𝨄.ܓ𐹦
+̼ߛ⁷𝟹。𝟬; ̼ߛ73.0; [B1, V5]; xn--73-9yb648b.0; ; ; # ̼ߛ73.0
+̼ߛ73。0; ̼ߛ73.0; [B1, V5]; xn--73-9yb648b.0; ; ; # ̼ߛ73.0
+xn--73-9yb648b.0; ̼ߛ73.0; [B1, V5]; xn--73-9yb648b.0; ; ; # ̼ߛ73.0
+.𝟗; .9; [C2]; xn--1ug.9; ; .9; [A4_2] # .9
+.9; ; [C2]; xn--1ug.9; ; .9; [A4_2] # .9
+.9; ; [X4_2]; ; [A4_2]; ; # .9
+xn--1ug.9; .9; [C2]; xn--1ug.9; ; ; # .9
+9; ; ; ; ; ; # 9
+ݹᡭ𪕈。ڶࣙ; ݹᡭ𪕈.ڶࣙ; [B2, B3]; xn--9pb497fs270c.xn--pkb80i; ; ; # ݹᡭ𪕈.ڶࣙ
+xn--9pb497fs270c.xn--pkb80i; ݹᡭ𪕈.ڶࣙ; [B2, B3]; xn--9pb497fs270c.xn--pkb80i; ;
; # ݹᡭ𪕈.ڶࣙ
+ܦ5ߢ겙。᳴; ܦ5ߢ겙.᳴; [B1, B2, B3, P1, V5, V6]; xn--5-j1c97c2483c.xn--e7f2093h; ;
; # ܦ5ߢ겙.᳴
+ܦ5ߢ겙。᳴; ܦ5ߢ겙.᳴; [B1, B2, B3, P1, V5, V6]; xn--5-j1c97c2483c.xn--e7f2093h;
; ; # ܦ5ߢ겙.᳴
+ܦ5ߢ겙。᳴; ܦ5ߢ겙.᳴; [B1, B2, B3, P1, V5, V6]; xn--5-j1c97c2483c.xn--e7f2093h; ;
; # ܦ5ߢ겙.᳴
+ܦ5ߢ겙。᳴; ܦ5ߢ겙.᳴; [B1, B2, B3, P1, V5, V6]; xn--5-j1c97c2483c.xn--e7f2093h;
; ; # ܦ5ߢ겙.᳴
+xn--5-j1c97c2483c.xn--e7f2093h; ܦ5ߢ겙.᳴; [B1, B2, B3, V5, V6];
xn--5-j1c97c2483c.xn--e7f2093h; ; ; # ܦ5ߢ겙.᳴
+Ⴍꡨ֮。Ⴞ; Ⴍꡨ֮.Ⴞ; [C1, P1, V6]; xn--5cb347co96jug15a.xn--2nd059ea; ;
xn--5cb347co96jug15a.xn--2nd; [P1, V6] # Ⴍꡨ֮.Ⴞ
+ⴍꡨ֮。ⴞ; ⴍꡨ֮.ⴞ; [C1, P1, V6]; xn--5cb172r175fug38a.xn--0uga051h; ;
xn--5cb172r175fug38a.xn--mlj; [P1, V6] # ⴍꡨ֮.ⴞ
+xn--5cb172r175fug38a.xn--mlj; ⴍꡨ֮.ⴞ; [V6]; xn--5cb172r175fug38a.xn--mlj; ; ;
# ⴍꡨ֮.ⴞ
+xn--5cb172r175fug38a.xn--0uga051h; ⴍꡨ֮.ⴞ; [C1, V6];
xn--5cb172r175fug38a.xn--0uga051h; ; ; # ⴍꡨ֮.ⴞ
+xn--5cb347co96jug15a.xn--2nd; Ⴍꡨ֮.Ⴞ; [V6]; xn--5cb347co96jug15a.xn--2nd; ; ;
# Ⴍꡨ֮.Ⴞ
+xn--5cb347co96jug15a.xn--2nd059ea; Ⴍꡨ֮.Ⴞ; [C1, V6];
xn--5cb347co96jug15a.xn--2nd059ea; ; ; # Ⴍꡨ֮.Ⴞ
+𐋰。; 𐋰.; [P1, V6]; xn--k97c.xn--q031e; ; ; # 𐋰.
+xn--k97c.xn--q031e; 𐋰.; [V6]; xn--k97c.xn--q031e; ; ; # 𐋰.
+឴୍.𐹾; ; [B1, P1, V6]; xn--9ic364dho91z.xn--2o0d; ; ; # ୍.𐹾
+xn--9ic364dho91z.xn--2o0d; ឴୍.𐹾; [B1, V6]; xn--9ic364dho91z.xn--2o0d; ; ; #
୍.𐹾
+ࣟႫ귤.𝟢휪ૣ; ࣟႫ귤.0휪ૣ; [P1, V5, V6]; xn--i0b601b6r7l2hs0a.xn--0-8le8997mulr5f;
; ; # ࣟႫ귤.0휪ૣ
+ࣟႫ귤.𝟢휪ૣ; ࣟႫ귤.0휪ૣ; [P1, V5, V6];
xn--i0b601b6r7l2hs0a.xn--0-8le8997mulr5f; ; ; # ࣟႫ귤.0휪ૣ
+ࣟႫ귤.0휪ૣ; ; [P1, V5, V6]; xn--i0b601b6r7l2hs0a.xn--0-8le8997mulr5f; ; ; #
ࣟႫ귤.0휪ૣ
+ࣟႫ귤.0휪ૣ; ࣟႫ귤.0휪ૣ; [P1, V5, V6];
xn--i0b601b6r7l2hs0a.xn--0-8le8997mulr5f; ; ; # ࣟႫ귤.0휪ૣ
+ࣟⴋ귤.0휪ૣ; ࣟⴋ귤.0휪ૣ; [P1, V5, V6];
xn--i0b436pkl2g2h42a.xn--0-8le8997mulr5f; ; ; # ࣟⴋ귤.0휪ૣ
+ࣟⴋ귤.0휪ૣ; ; [P1, V5, V6]; xn--i0b436pkl2g2h42a.xn--0-8le8997mulr5f; ; ; #
ࣟⴋ귤.0휪ૣ
+xn--i0b436pkl2g2h42a.xn--0-8le8997mulr5f; ࣟⴋ귤.0휪ૣ; [V5, V6];
xn--i0b436pkl2g2h42a.xn--0-8le8997mulr5f; ; ; # ࣟⴋ귤.0휪ૣ
+xn--i0b601b6r7l2hs0a.xn--0-8le8997mulr5f; ࣟႫ귤.0휪ૣ; [V5, V6];
xn--i0b601b6r7l2hs0a.xn--0-8le8997mulr5f; ; ; # ࣟႫ귤.0휪ૣ
+ࣟⴋ귤.𝟢휪ૣ; ࣟⴋ귤.0휪ૣ; [P1, V5, V6];
xn--i0b436pkl2g2h42a.xn--0-8le8997mulr5f; ; ; # ࣟⴋ귤.0휪ૣ
+ࣟⴋ귤.𝟢휪ૣ; ࣟⴋ귤.0휪ૣ; [P1, V5, V6]; xn--i0b436pkl2g2h42a.xn--0-8le8997mulr5f;
; ; # ࣟⴋ귤.0휪ૣ
+ބ.𞡝; ބ.𞡝; [P1, V6]; xn--lqb.xn--jfb1808v; ; ; # ބ.𞡝
+ބ.𞡝; ; [P1, V6]; xn--lqb.xn--jfb1808v; ; ; # ބ.𞡝
+xn--lqb.xn--jfb1808v; ބ.𞡝; [V6]; xn--lqb.xn--jfb1808v; ; ; # ބ.𞡝
+્₃.8꣄🃤; ્3.8꣄🃤; [V5]; xn--3-yke.xn--8-ugnv982dbkwm; ;
xn--3-yke.xn--8-sl4et308f; # ્3.8꣄🃤
+્3.8꣄🃤; ; [V5]; xn--3-yke.xn--8-ugnv982dbkwm; ; xn--3-yke.xn--8-sl4et308f; #
્3.8꣄🃤
+xn--3-yke.xn--8-sl4et308f; ્3.8꣄🃤; [V5]; xn--3-yke.xn--8-sl4et308f; ; ; #
્3.8꣄🃤
+xn--3-yke.xn--8-ugnv982dbkwm; ્3.8꣄🃤; [V5]; xn--3-yke.xn--8-ugnv982dbkwm; ; ;
# ્3.8꣄🃤
+℻⩷𝆆。𞤠󠆁᠌; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+FAX⩷𝆆。𞤠󠆁᠌; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+fax⩷𝆆。𞥂󠆁᠌; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+Fax⩷𝆆。𞤠󠆁᠌; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+xn--fax-4c9a1676t.xn--6e6h; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; #
fax⩷𝆆.𞥂
+℻⩷𝆆。𞥂󠆁᠌; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+FAX⩷𝆆。𞥂󠆁᠌; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+fax⩷𝆆。𞤠󠆁᠌; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+fax⩷𝆆.𞥂; ; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+FAX⩷𝆆.𞤠; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+Fax⩷𝆆.𞤠; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+FAX⩷𝆆.𞥂; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+Fax⩷𝆆.𞥂; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+ꡕ≠ၞ。󠄫ᅠ; ꡕ≠ၞ.ᅠ; [B2, B3, P1, V6]; xn--cld333gn31h0158l.xn--cl7c96v; ; ; #
ꡕ≠ၞ.
+ꡕ≠ၞ。󠄫ᅠ; ꡕ≠ၞ.ᅠ; [B2, B3, P1, V6]; xn--cld333gn31h0158l.xn--cl7c96v; ; ; #
ꡕ≠ၞ.
+ꡕ≠ၞ。󠄫ᅠ; ꡕ≠ၞ.ᅠ; [B2, B3, P1, V6]; xn--cld333gn31h0158l.xn--psd1510k; ; ; #
ꡕ≠ၞ.
+ꡕ≠ၞ。󠄫ᅠ; ꡕ≠ၞ.ᅠ; [B2, B3, P1, V6]; xn--cld333gn31h0158l.xn--psd1510k; ; ;
# ꡕ≠ၞ.
+xn--cld333gn31h0158l.xn--psd1510k; ꡕ≠ၞ.ᅠ; [B2, B3, V6];
xn--cld333gn31h0158l.xn--psd1510k; ; ; # ꡕ≠ၞ.
+xn--cld333gn31h0158l.xn--cl7c96v; ꡕ≠ၞ.ᅠ; [B2, B3, V6];
xn--cld333gn31h0158l.xn--cl7c96v; ; ; # ꡕ≠ၞ.
+鱊。; 鱊.; [C1]; xn--rt6a.xn--0ug; ; xn--rt6a.; [] # 鱊.
+xn--rt6a.; 鱊.; ; xn--rt6a.; ; ; # 鱊.
+鱊.; ; ; xn--rt6a.; ; ; # 鱊.
+xn--rt6a.xn--0ug; 鱊.; [C1]; xn--rt6a.xn--0ug; ; ; # 鱊.
+8𐹣.𑍨; 8𐹣.𑍨; [B1, B3, B6, V5]; xn--8-d26i.xn--0p1d; ; ; # 8𐹣.𑍨
+8𐹣.𑍨; ; [B1, B3, B6, V5]; xn--8-d26i.xn--0p1d; ; ; # 8𐹣.𑍨
+xn--8-d26i.xn--0p1d; 8𐹣.𑍨; [B1, B3, B6, V5]; xn--8-d26i.xn--0p1d; ; ; # 8𐹣.𑍨
+⏹𐧀.𐫯; ⏹𐧀.𐫯; [B1]; xn--qoh9161g.xn--1x9c; ; ; # ⏹𐧀.𐫯
+⏹𐧀.𐫯; ; [B1]; xn--qoh9161g.xn--1x9c; ; ; # ⏹𐧀.𐫯
+xn--qoh9161g.xn--1x9c; ⏹𐧀.𐫯; [B1]; xn--qoh9161g.xn--1x9c; ; ; # ⏹𐧀.𐫯
+𞤺ߌ4.; 𞤺ߌ4.; [B1, C2]; xn--4-0bd15808a.xn--1ug; ; xn--4-0bd15808a.; [] # 𞤺ߌ4.
+𞤺ߌ4.; ; [B1, C2]; xn--4-0bd15808a.xn--1ug; ; xn--4-0bd15808a.; [] # 𞤺ߌ4.
+𞤘ߌ4.; 𞤺ߌ4.; [B1, C2]; xn--4-0bd15808a.xn--1ug; ; xn--4-0bd15808a.; [] # 𞤺ߌ4.
+xn--4-0bd15808a.; 𞤺ߌ4.; ; xn--4-0bd15808a.; ; ; # 𞤺ߌ4.
+𞤺ߌ4.; ; ; xn--4-0bd15808a.; ; ; # 𞤺ߌ4.
+𞤘ߌ4.; 𞤺ߌ4.; ; xn--4-0bd15808a.; ; ; # 𞤺ߌ4.
+xn--4-0bd15808a.xn--1ug; 𞤺ߌ4.; [B1, C2]; xn--4-0bd15808a.xn--1ug; ; ; # 𞤺ߌ4.
+𞤘ߌ4.; 𞤺ߌ4.; [B1, C2]; xn--4-0bd15808a.xn--1ug; ; xn--4-0bd15808a.; [] # 𞤺ߌ4.
+⒗ঁ⃯-.•; ; [B1, P1, V3, V6]; xn----z0d801p6kd.xn--l0b810j; ; ; # ⒗ঁ⃯-.•
+16.ঁ⃯-.•; ; [B1, P1, V3, V5, V6]; 16.xn----z0d801p.xn--l0b810j; ; ; #
16.ঁ⃯-.•
+16.xn----z0d801p.xn--l0b810j; 16.ঁ⃯-.•; [B1, V3, V5, V6];
16.xn----z0d801p.xn--l0b810j; ; ; # 16.ঁ⃯-.•
+xn----z0d801p6kd.xn--l0b810j; ⒗ঁ⃯-.•; [B1, V3, V6];
xn----z0d801p6kd.xn--l0b810j; ; ; # ⒗ঁ⃯-.•
+-。䏛; -.䏛; [V3]; -.xn--xco; ; ; # -.䏛
+-。䏛; -.䏛; [V3]; -.xn--xco; ; ; # -.䏛
+-.xn--xco; -.䏛; [V3]; -.xn--xco; ; ; # -.䏛
+.; .; [C1, C2, P1, V6]; xn--0ugz7551c.xn--1ug; ; xn--dj8y.; [P1, V6] # .
+.; ; [C1, C2, P1, V6]; xn--0ugz7551c.xn--1ug; ; xn--dj8y.; [P1, V6] # .
+xn--dj8y.; .; [V6]; xn--dj8y.; ; ; # .
+xn--0ugz7551c.xn--1ug; .; [C1, C2, V6]; xn--0ugz7551c.xn--1ug; ; ; # .
+⒈⓰。𐹠Ⴕ; ⒈⓰.𐹠Ⴕ; [B1, C2, P1, V6]; xn--tsh0nz9380h.xn--tnd969erj4psgl3e; ;
xn--tsh0nz9380h.xn--tnd1990ke579c; [B1, P1, V6] # ⒈⓰.𐹠Ⴕ
+1.⓰。𐹠Ⴕ; 1.⓰.𐹠Ⴕ; [B1, C2, P1, V6]; 1.xn--svh00804k.xn--tnd969erj4psgl3e;
; 1.xn--svh00804k.xn--tnd1990ke579c; [B1, P1, V6] # 1.⓰.𐹠Ⴕ
+1.⓰。𐹠ⴕ; 1.⓰.𐹠ⴕ; [B1, C2, P1, V6]; 1.xn--svh00804k.xn--1ug352csp0psg45e;
; 1.xn--svh00804k.xn--dljv223ee5t2d; [B1, P1, V6] # 1.⓰.𐹠ⴕ
+1.xn--svh00804k.xn--dljv223ee5t2d; 1.⓰.𐹠ⴕ; [B1, V6];
1.xn--svh00804k.xn--dljv223ee5t2d; ; ; # 1.⓰.𐹠ⴕ
+1.xn--svh00804k.xn--1ug352csp0psg45e; 1.⓰.𐹠ⴕ; [B1, C2, V6];
1.xn--svh00804k.xn--1ug352csp0psg45e; ; ; # 1.⓰.𐹠ⴕ
+1.xn--svh00804k.xn--tnd1990ke579c; 1.⓰.𐹠Ⴕ; [B1, V6];
1.xn--svh00804k.xn--tnd1990ke579c; ; ; # 1.⓰.𐹠Ⴕ
+1.xn--svh00804k.xn--tnd969erj4psgl3e; 1.⓰.𐹠Ⴕ; [B1, C2, V6];
1.xn--svh00804k.xn--tnd969erj4psgl3e; ; ; # 1.⓰.𐹠Ⴕ
+⒈⓰。𐹠ⴕ; ⒈⓰.𐹠ⴕ; [B1, C2, P1, V6]; xn--tsh0nz9380h.xn--1ug352csp0psg45e; ;
xn--tsh0nz9380h.xn--dljv223ee5t2d; [B1, P1, V6] # ⒈⓰.𐹠ⴕ
+xn--tsh0nz9380h.xn--dljv223ee5t2d; ⒈⓰.𐹠ⴕ; [B1, V6];
xn--tsh0nz9380h.xn--dljv223ee5t2d; ; ; # ⒈⓰.𐹠ⴕ
+xn--tsh0nz9380h.xn--1ug352csp0psg45e; ⒈⓰.𐹠ⴕ; [B1, C2, V6];
xn--tsh0nz9380h.xn--1ug352csp0psg45e; ; ; # ⒈⓰.𐹠ⴕ
+xn--tsh0nz9380h.xn--tnd1990ke579c; ⒈⓰.𐹠Ⴕ; [B1, V6];
xn--tsh0nz9380h.xn--tnd1990ke579c; ; ; # ⒈⓰.𐹠Ⴕ
+xn--tsh0nz9380h.xn--tnd969erj4psgl3e; ⒈⓰.𐹠Ⴕ; [B1, C2, V6];
xn--tsh0nz9380h.xn--tnd969erj4psgl3e; ; ; # ⒈⓰.𐹠Ⴕ
+𞠊ᠮ-ß。᳐効; 𞠊ᠮ-ß.᳐効; [B1, B2, B3, P1, V5, V6];
xn----qfa310pg973b.xn--jfb197i791bi6x4c; ;
xn---ss-21t18904a.xn--jfb197i791bi6x4c; # 𞠊ᠮ-ß.᳐効
+𞠊ᠮ-ß。᳐効; 𞠊ᠮ-ß.᳐効; [B1, B2, B3, P1, V5, V6];
xn----qfa310pg973b.xn--jfb197i791bi6x4c; ;
xn---ss-21t18904a.xn--jfb197i791bi6x4c; # 𞠊ᠮ-ß.᳐効
+𞠊ᠮ-SS。᳐効; 𞠊ᠮ-ss.᳐効; [B1, B2, B3, P1, V5, V6];
xn---ss-21t18904a.xn--jfb197i791bi6x4c; ; ; # 𞠊ᠮ-ss.᳐効
+𞠊ᠮ-ss。᳐効; 𞠊ᠮ-ss.᳐効; [B1, B2, B3, P1, V5, V6];
xn---ss-21t18904a.xn--jfb197i791bi6x4c; ; ; # 𞠊ᠮ-ss.᳐効
+𞠊ᠮ-Ss。᳐効; 𞠊ᠮ-ss.᳐効; [B1, B2, B3, P1, V5, V6];
xn---ss-21t18904a.xn--jfb197i791bi6x4c; ; ; # 𞠊ᠮ-ss.᳐効
+xn---ss-21t18904a.xn--jfb197i791bi6x4c; 𞠊ᠮ-ss.᳐効; [B1, B2, B3, V5, V6];
xn---ss-21t18904a.xn--jfb197i791bi6x4c; ; ; # 𞠊ᠮ-ss.᳐効
+xn----qfa310pg973b.xn--jfb197i791bi6x4c; 𞠊ᠮ-ß.᳐効; [B1, B2, B3, V5, V6];
xn----qfa310pg973b.xn--jfb197i791bi6x4c; ; ; # 𞠊ᠮ-ß.᳐効
+𞠊ᠮ-SS。᳐効; 𞠊ᠮ-ss.᳐効; [B1, B2, B3, P1, V5, V6];
xn---ss-21t18904a.xn--jfb197i791bi6x4c; ; ; # 𞠊ᠮ-ss.᳐効
+𞠊ᠮ-ss。᳐効; 𞠊ᠮ-ss.᳐効; [B1, B2, B3, P1, V5, V6];
xn---ss-21t18904a.xn--jfb197i791bi6x4c; ; ; # 𞠊ᠮ-ss.᳐効
+𞠊ᠮ-Ss。᳐効; 𞠊ᠮ-ss.᳐効; [B1, B2, B3, P1, V5, V6];
xn---ss-21t18904a.xn--jfb197i791bi6x4c; ; ; # 𞠊ᠮ-ss.᳐効
+𑇀.; ; [P1, V5, V6]; xn--wd1d.xn--k946e; ; ; # 𑇀.
+xn--wd1d.xn--k946e; 𑇀.; [V5, V6]; xn--wd1d.xn--k946e; ; ; # 𑇀.
+␒3ﮈ。𝟘𐨿; ␒3ڈ.0𐨿; [B1, P1, V6]; xn--3-jsc897t.xn--0-sc5iy3h; ; ; # ␒3ڈ.0𐨿
+␒3ڈ。0𐨿; ␒3ڈ.0𐨿; [B1, P1, V6]; xn--3-jsc897t.xn--0-sc5iy3h; ; ; # ␒3ڈ.0𐨿
+xn--3-jsc897t.xn--0-sc5iy3h; ␒3ڈ.0𐨿; [B1, V6]; xn--3-jsc897t.xn--0-sc5iy3h; ;
; # ␒3ڈ.0𐨿
+ݫ6ઁࢦ。ᷣ; ݫ6ઁࢦ.ᷣ; [B1, B3, B6, V5]; xn--6-h5c06gj6c.xn--7eg; ; ; # ݫ6ઁࢦ.ᷣ
+ݫ6ઁࢦ。ᷣ; ݫ6ઁࢦ.ᷣ; [B1, B3, B6, V5]; xn--6-h5c06gj6c.xn--7eg; ; ; # ݫ6ઁࢦ.ᷣ
+xn--6-h5c06gj6c.xn--7eg; ݫ6ઁࢦ.ᷣ; [B1, B3, B6, V5]; xn--6-h5c06gj6c.xn--7eg; ;
; # ݫ6ઁࢦ.ᷣ
+-Ⴂ。; -Ⴂ.; [B1, B6, C2, P1, V6]; xn----0kc662fc152h.xn--1ugy3204f; ;
xn----0kc662fc152h.xn--ss06b; [B1, P1, V6] # -Ⴂ.
+-ⴂ。; -ⴂ.; [B1, B6, C2, P1, V6]; xn----0kc8501a5399e.xn--1ugy3204f; ;
xn----0kc8501a5399e.xn--ss06b; [B1, P1, V6] # -ⴂ.
+xn----0kc8501a5399e.xn--ss06b; -ⴂ.; [B1, V6];
xn----0kc8501a5399e.xn--ss06b; ; ; # -ⴂ.
+xn----0kc8501a5399e.xn--1ugy3204f; -ⴂ.; [B1, B6, C2, V6];
xn----0kc8501a5399e.xn--1ugy3204f; ; ; # -ⴂ.
+xn----0kc662fc152h.xn--ss06b; -Ⴂ.; [B1, V6]; xn----0kc662fc152h.xn--ss06b;
; ; # -Ⴂ.
+xn----0kc662fc152h.xn--1ugy3204f; -Ⴂ.; [B1, B6, C2, V6];
xn----0kc662fc152h.xn--1ugy3204f; ; ; # -Ⴂ.
+⾆.ꡈ5≯ß; 舌.ꡈ5≯ß; [P1, V6]; xn--tc1a.xn--5-qfa988w745i; ;
xn--tc1a.xn--5ss-3m2a5009e; # 舌.ꡈ5≯ß
+⾆.ꡈ5≯ß; 舌.ꡈ5≯ß; [P1, V6]; xn--tc1a.xn--5-qfa988w745i; ;
xn--tc1a.xn--5ss-3m2a5009e; # 舌.ꡈ5≯ß
+舌.ꡈ5≯ß; ; [P1, V6]; xn--tc1a.xn--5-qfa988w745i; ; xn--tc1a.xn--5ss-3m2a5009e;
# 舌.ꡈ5≯ß
+舌.ꡈ5≯ß; 舌.ꡈ5≯ß; [P1, V6]; xn--tc1a.xn--5-qfa988w745i; ;
xn--tc1a.xn--5ss-3m2a5009e; # 舌.ꡈ5≯ß
+舌.ꡈ5≯SS; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+舌.ꡈ5≯SS; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+舌.ꡈ5≯ss; ; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+舌.ꡈ5≯ss; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+舌.ꡈ5≯Ss; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+舌.ꡈ5≯Ss; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+xn--tc1a.xn--5ss-3m2a5009e; 舌.ꡈ5≯ss; [V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; #
舌.ꡈ5≯ss
+xn--tc1a.xn--5-qfa988w745i; 舌.ꡈ5≯ß; [V6]; xn--tc1a.xn--5-qfa988w745i; ; ; #
舌.ꡈ5≯ß
+⾆.ꡈ5≯SS; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+⾆.ꡈ5≯SS; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+⾆.ꡈ5≯ss; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+⾆.ꡈ5≯ss; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+⾆.ꡈ5≯Ss; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+⾆.ꡈ5≯Ss; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+્8.ݜ; ્8.ݜ; [B1, B5, B6, C2, P1, V5, V6]; xn--8-yke534n.xn--gpb79046m; ;
xn--8-yke.xn--gpb79046m; [B1, B5, B6, P1, V5, V6] # ્8.ݜ
+્8.ݜ; ; [B1, B5, B6, C2, P1, V5, V6]; xn--8-yke534n.xn--gpb79046m; ;
xn--8-yke.xn--gpb79046m; [B1, B5, B6, P1, V5, V6] # ્8.ݜ
+xn--8-yke.xn--gpb79046m; ્8.ݜ; [B1, B5, B6, V5, V6]; xn--8-yke.xn--gpb79046m;
; ; # ્8.ݜ
+xn--8-yke534n.xn--gpb79046m; ્8.ݜ; [B1, B5, B6, C2, V5, V6];
xn--8-yke534n.xn--gpb79046m; ; ; # ્8.ݜ
+ੰ≮.⁷ڶ; ੰ≮.7ڶ; [B5, B6, P1, V6];
xn--ycc893jqh38rb6fa.xn--7-5uc53836ixt41c; ; ; # ੰ≮.7ڶ
+ੰ≮.⁷ڶ; ੰ≮.7ڶ; [B5, B6, P1, V6];
xn--ycc893jqh38rb6fa.xn--7-5uc53836ixt41c; ; ; # ੰ≮.7ڶ
+ੰ≮.7ڶ; ; [B5, B6, P1, V6]; xn--ycc893jqh38rb6fa.xn--7-5uc53836ixt41c; ; ;
# ੰ≮.7ڶ
+ੰ≮.7ڶ; ੰ≮.7ڶ; [B5, B6, P1, V6];
xn--ycc893jqh38rb6fa.xn--7-5uc53836ixt41c; ; ; # ੰ≮.7ڶ
+xn--ycc893jqh38rb6fa.xn--7-5uc53836ixt41c; ੰ≮.7ڶ; [B5, B6, V6];
xn--ycc893jqh38rb6fa.xn--7-5uc53836ixt41c; ; ; # ੰ≮.7ڶ
+𞤪.ς; ; ; xn--ie6h.xn--3xa; ; xn--ie6h.xn--4xa; # 𞤪.ς
+𞤈.Σ; 𞤪.σ; ; xn--ie6h.xn--4xa; ; ; # 𞤪.σ
+𞤪.σ; ; ; xn--ie6h.xn--4xa; ; ; # 𞤪.σ
+𞤈.σ; 𞤪.σ; ; xn--ie6h.xn--4xa; ; ; # 𞤪.σ
+xn--ie6h.xn--4xa; 𞤪.σ; ; xn--ie6h.xn--4xa; ; ; # 𞤪.σ
+𞤈.ς; 𞤪.ς; ; xn--ie6h.xn--3xa; ; xn--ie6h.xn--4xa; # 𞤪.ς
+xn--ie6h.xn--3xa; 𞤪.ς; ; xn--ie6h.xn--3xa; ; ; # 𞤪.ς
+𞤪.Σ; 𞤪.σ; ; xn--ie6h.xn--4xa; ; ; # 𞤪.σ
+Ⴚ。ς; Ⴚ.ς; [C1, P1, V6]; xn--ynd759e.xn--3xa; ; xn--ynd.xn--4xa; [P1, V6] #
Ⴚ.ς
+Ⴚ。ς; Ⴚ.ς; [C1, P1, V6]; xn--ynd759e.xn--3xa; ; xn--ynd.xn--4xa; [P1, V6] #
Ⴚ.ς
+ⴚ。ς; ⴚ.ς; [C1]; xn--0ug262c.xn--3xa; ; xn--ilj.xn--4xa; [] # ⴚ.ς
+Ⴚ。Σ; Ⴚ.σ; [C1, P1, V6]; xn--ynd759e.xn--4xa; ; xn--ynd.xn--4xa; [P1, V6] #
Ⴚ.σ
+ⴚ。σ; ⴚ.σ; [C1]; xn--0ug262c.xn--4xa; ; xn--ilj.xn--4xa; [] # ⴚ.σ
+xn--ilj.xn--4xa; ⴚ.σ; ; xn--ilj.xn--4xa; ; ; # ⴚ.σ
+ⴚ.σ; ; ; xn--ilj.xn--4xa; ; ; # ⴚ.σ
+Ⴚ.Σ; Ⴚ.σ; [P1, V6]; xn--ynd.xn--4xa; ; ; # Ⴚ.σ
+ⴚ.ς; ; ; xn--ilj.xn--3xa; ; xn--ilj.xn--4xa; # ⴚ.ς
+Ⴚ.ς; ; [P1, V6]; xn--ynd.xn--3xa; ; xn--ynd.xn--4xa; # Ⴚ.ς
+xn--ynd.xn--4xa; Ⴚ.σ; [V6]; xn--ynd.xn--4xa; ; ; # Ⴚ.σ
+xn--ynd.xn--3xa; Ⴚ.ς; [V6]; xn--ynd.xn--3xa; ; ; # Ⴚ.ς
+xn--ilj.xn--3xa; ⴚ.ς; ; xn--ilj.xn--3xa; ; ; # ⴚ.ς
+Ⴚ.σ; ; [P1, V6]; xn--ynd.xn--4xa; ; ; # Ⴚ.σ
+xn--0ug262c.xn--4xa; ⴚ.σ; [C1]; xn--0ug262c.xn--4xa; ; ; # ⴚ.σ
+xn--ynd759e.xn--4xa; Ⴚ.σ; [C1, V6]; xn--ynd759e.xn--4xa; ; ; # Ⴚ.σ
+xn--0ug262c.xn--3xa; ⴚ.ς; [C1]; xn--0ug262c.xn--3xa; ; ; # ⴚ.ς
+xn--ynd759e.xn--3xa; Ⴚ.ς; [C1, V6]; xn--ynd759e.xn--3xa; ; ; # Ⴚ.ς
+ⴚ。ς; ⴚ.ς; [C1]; xn--0ug262c.xn--3xa; ; xn--ilj.xn--4xa; [] # ⴚ.ς
+Ⴚ。Σ; Ⴚ.σ; [C1, P1, V6]; xn--ynd759e.xn--4xa; ; xn--ynd.xn--4xa; [P1, V6] #
Ⴚ.σ
+ⴚ。σ; ⴚ.σ; [C1]; xn--0ug262c.xn--4xa; ; xn--ilj.xn--4xa; [] # ⴚ.σ
+𞤃.𐹦; 𞤥.𐹦; [B1]; xn--de6h.xn--eo0d; ; ; # 𞤥.𐹦
+𞤃.𐹦; 𞤥.𐹦; [B1]; xn--de6h.xn--eo0d; ; ; # 𞤥.𐹦
+𞤥.𐹦; ; [B1]; xn--de6h.xn--eo0d; ; ; # 𞤥.𐹦
+xn--de6h.xn--eo0d; 𞤥.𐹦; [B1]; xn--de6h.xn--eo0d; ; ; # 𞤥.𐹦
+𞤥.𐹦; 𞤥.𐹦; [B1]; xn--de6h.xn--eo0d; ; ; # 𞤥.𐹦
+⾕。꥓̐ꡎ; 谷.꥓̐ꡎ; [C1, C2]; xn--1ug0273b.xn--0sa359l6n7g13a; ;
xn--6g3a.xn--0sa8175flwa; [V5] # 谷.꥓̐ꡎ
+⾕。꥓̐ꡎ; 谷.꥓̐ꡎ; [C1, C2]; xn--1ug0273b.xn--0sa359l6n7g13a; ;
xn--6g3a.xn--0sa8175flwa; [V5] # 谷.꥓̐ꡎ
+谷。꥓̐ꡎ; 谷.꥓̐ꡎ; [C1, C2]; xn--1ug0273b.xn--0sa359l6n7g13a; ;
xn--6g3a.xn--0sa8175flwa; [V5] # 谷.꥓̐ꡎ
+xn--6g3a.xn--0sa8175flwa; 谷.꥓̐ꡎ; [V5]; xn--6g3a.xn--0sa8175flwa; ; ; # 谷.꥓̐ꡎ
+xn--1ug0273b.xn--0sa359l6n7g13a; 谷.꥓̐ꡎ; [C1, C2];
xn--1ug0273b.xn--0sa359l6n7g13a; ; ; # 谷.꥓̐ꡎ
+ڪ-뉔.𞤐; ڪ-뉔.𞤲; [B2, B3, C1]; xn----guc3592k.xn--0ug7611p; ;
xn----guc3592k.xn--qe6h; [B2, B3] # ڪ-뉔.𞤲
+ڪ-뉔.𞤐; ڪ-뉔.𞤲; [B2, B3, C1]; xn----guc3592k.xn--0ug7611p; ;
xn----guc3592k.xn--qe6h; [B2, B3] # ڪ-뉔.𞤲
+ڪ-뉔.𞤐; ڪ-뉔.𞤲; [B2, B3, C1]; xn----guc3592k.xn--0ug7611p; ;
xn----guc3592k.xn--qe6h; [B2, B3] # ڪ-뉔.𞤲
+ڪ-뉔.𞤐; ڪ-뉔.𞤲; [B2, B3, C1]; xn----guc3592k.xn--0ug7611p; ;
xn----guc3592k.xn--qe6h; [B2, B3] # ڪ-뉔.𞤲
+ڪ-뉔.𞤲; ڪ-뉔.𞤲; [B2, B3, C1]; xn----guc3592k.xn--0ug7611p; ;
xn----guc3592k.xn--qe6h; [B2, B3] # ڪ-뉔.𞤲
+ڪ-뉔.𞤲; ; [B2, B3, C1]; xn----guc3592k.xn--0ug7611p; ;
xn----guc3592k.xn--qe6h; [B2, B3] # ڪ-뉔.𞤲
+xn----guc3592k.xn--qe6h; ڪ-뉔.𞤲; [B2, B3]; xn----guc3592k.xn--qe6h; ; ; # ڪ-뉔.𞤲
+xn----guc3592k.xn--0ug7611p; ڪ-뉔.𞤲; [B2, B3, C1];
xn----guc3592k.xn--0ug7611p; ; ; # ڪ-뉔.𞤲
+ڪ-뉔.𞤲; ڪ-뉔.𞤲; [B2, B3, C1]; xn----guc3592k.xn--0ug7611p; ;
xn----guc3592k.xn--qe6h; [B2, B3] # ڪ-뉔.𞤲
+ڪ-뉔.𞤲; ڪ-뉔.𞤲; [B2, B3, C1]; xn----guc3592k.xn--0ug7611p; ;
xn----guc3592k.xn--qe6h; [B2, B3] # ڪ-뉔.𞤲
+5ᦛς.꣄ݻܸ᳒; 5ᦛς.꣄ݻܸ᳒; [B1, P1, V5, V6]; xn--5-ymb298ng603j.xn--fob7kk44dl41k;
; xn--5-0mb988ng603j.xn--fob7kk44dl41k; # 5ᦛς.꣄ݻܸ᳒
+5ᦛς.꣄ݻܸ᳒; 5ᦛς.꣄ݻܸ᳒; [B1, P1, V5, V6]; xn--5-ymb298ng603j.xn--fob7kk44dl41k;
; xn--5-0mb988ng603j.xn--fob7kk44dl41k; # 5ᦛς.꣄ݻܸ᳒
+5ᦛς.꣄ݻܸ᳒; ; [B1, P1, V5, V6]; xn--5-ymb298ng603j.xn--fob7kk44dl41k; ;
xn--5-0mb988ng603j.xn--fob7kk44dl41k; # 5ᦛς.꣄ݻܸ᳒
+5ᦛΣ.꣄ݻܸ᳒; 5ᦛσ.꣄ݻܸ᳒; [B1, P1, V5, V6]; xn--5-0mb988ng603j.xn--fob7kk44dl41k;
; ; # 5ᦛσ.꣄ݻܸ᳒
+5ᦛσ.꣄ݻܸ᳒; ; [B1, P1, V5, V6]; xn--5-0mb988ng603j.xn--fob7kk44dl41k; ; ; #
5ᦛσ.꣄ݻܸ᳒
+xn--5-0mb988ng603j.xn--fob7kk44dl41k; 5ᦛσ.꣄ݻܸ᳒; [B1, V5, V6];
xn--5-0mb988ng603j.xn--fob7kk44dl41k; ; ; # 5ᦛσ.꣄ݻܸ᳒
+xn--5-ymb298ng603j.xn--fob7kk44dl41k; 5ᦛς.꣄ݻܸ᳒; [B1, V5, V6];
xn--5-ymb298ng603j.xn--fob7kk44dl41k; ; ; # 5ᦛς.꣄ݻܸ᳒
+5ᦛΣ.꣄ݻܸ᳒; 5ᦛσ.꣄ݻܸ᳒; [B1, P1, V5, V6]; xn--5-0mb988ng603j.xn--fob7kk44dl41k;
; ; # 5ᦛσ.꣄ݻܸ᳒
+5ᦛσ.꣄ݻܸ᳒; 5ᦛσ.꣄ݻܸ᳒; [B1, P1, V5, V6]; xn--5-0mb988ng603j.xn--fob7kk44dl41k;
; ; # 5ᦛσ.꣄ݻܸ᳒
+5ᦛΣ.꣄ݻܸ᳒; 5ᦛσ.꣄ݻܸ᳒; [B1, P1, V5, V6]; xn--5-0mb988ng603j.xn--fob7kk44dl41k;
; ; # 5ᦛσ.꣄ݻܸ᳒
+5ᦛσ.꣄ݻܸ᳒; 5ᦛσ.꣄ݻܸ᳒; [B1, P1, V5, V6]; xn--5-0mb988ng603j.xn--fob7kk44dl41k;
; ; # 5ᦛσ.꣄ݻܸ᳒
+淽。ᠾ; 淽.ᠾ; ; xn--34w.xn--x7e; ; ; # 淽.ᠾ
+xn--34w.xn--x7e; 淽.ᠾ; ; xn--34w.xn--x7e; ; ; # 淽.ᠾ
+淽.ᠾ; ; ; xn--34w.xn--x7e; ; ; # 淽.ᠾ
+𐹴𑘷。-; 𐹴𑘷.-; [B1, V3]; xn--so0do6k.-; ; ; # 𐹴𑘷.-
+xn--so0do6k.-; 𐹴𑘷.-; [B1, V3]; xn--so0do6k.-; ; ; # 𐹴𑘷.-
+Ⴓ❓。𑄨; Ⴓ❓.𑄨; [P1, V5, V6]; xn--rnd896i0j14q.xn--k80d; ; ; # Ⴓ❓.𑄨
+Ⴓ❓。𑄨; Ⴓ❓.𑄨; [P1, V5, V6]; xn--rnd896i0j14q.xn--k80d; ; ; # Ⴓ❓.𑄨
+ⴓ❓。𑄨; ⴓ❓.𑄨; [P1, V5, V6]; xn--8di78qvw32y.xn--k80d; ; ; # ⴓ❓.𑄨
+xn--8di78qvw32y.xn--k80d; ⴓ❓.𑄨; [V5, V6]; xn--8di78qvw32y.xn--k80d; ; ; #
ⴓ❓.𑄨
+xn--rnd896i0j14q.xn--k80d; Ⴓ❓.𑄨; [V5, V6]; xn--rnd896i0j14q.xn--k80d; ; ; #
Ⴓ❓.𑄨
+ⴓ❓。𑄨; ⴓ❓.𑄨; [P1, V5, V6]; xn--8di78qvw32y.xn--k80d; ; ; # ⴓ❓.𑄨
+𐹡𞤌Ⴇ。ßႣ; 𐹡𞤮Ⴇ.ßႣ; [B1, C1, P1, V6]; xn--fnd599eyj4pr50g.xn--zca681f; ;
xn--fnd1201kegrf.xn--ss-fek; [B1, P1, V6] # 𐹡𞤮Ⴇ.ßႣ
+𐹡𞤌Ⴇ。ßႣ; 𐹡𞤮Ⴇ.ßႣ; [B1, C1, P1, V6]; xn--fnd599eyj4pr50g.xn--zca681f; ;
xn--fnd1201kegrf.xn--ss-fek; [B1, P1, V6] # 𐹡𞤮Ⴇ.ßႣ
+𐹡𞤮ⴇ。ßⴃ; 𐹡𞤮ⴇ.ßⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--zca417t; ;
xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ßⴃ
+𐹡𞤌Ⴇ。SSႣ; 𐹡𞤮Ⴇ.ssႣ; [B1, C1, P1, V6]; xn--fnd599eyj4pr50g.xn--ss-fek; ;
xn--fnd1201kegrf.xn--ss-fek; [B1, P1, V6] # 𐹡𞤮Ⴇ.ssႣ
+𐹡𞤮ⴇ。ssⴃ; 𐹡𞤮ⴇ.ssⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--ss-151a; ;
xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ssⴃ
+𐹡𞤌ⴇ。Ssⴃ; 𐹡𞤮ⴇ.ssⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--ss-151a; ;
xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ssⴃ
+xn--ykj9323eegwf.xn--ss-151a; 𐹡𞤮ⴇ.ssⴃ; [B1]; xn--ykj9323eegwf.xn--ss-151a; ; ;
# 𐹡𞤮ⴇ.ssⴃ
+xn--0ug332c3q0pr56g.xn--ss-151a; 𐹡𞤮ⴇ.ssⴃ; [B1, C1];
xn--0ug332c3q0pr56g.xn--ss-151a; ; ; # 𐹡𞤮ⴇ.ssⴃ
+xn--fnd1201kegrf.xn--ss-fek; 𐹡𞤮Ⴇ.ssႣ; [B1, V6]; xn--fnd1201kegrf.xn--ss-fek; ;
; # 𐹡𞤮Ⴇ.ssႣ
+xn--fnd599eyj4pr50g.xn--ss-fek; 𐹡𞤮Ⴇ.ssႣ; [B1, C1, V6];
xn--fnd599eyj4pr50g.xn--ss-fek; ; ; # 𐹡𞤮Ⴇ.ssႣ
+xn--0ug332c3q0pr56g.xn--zca417t; 𐹡𞤮ⴇ.ßⴃ; [B1, C1];
xn--0ug332c3q0pr56g.xn--zca417t; ; ; # 𐹡𞤮ⴇ.ßⴃ
+xn--fnd599eyj4pr50g.xn--zca681f; 𐹡𞤮Ⴇ.ßႣ; [B1, C1, V6];
xn--fnd599eyj4pr50g.xn--zca681f; ; ; # 𐹡𞤮Ⴇ.ßႣ
+𐹡𞤮ⴇ。ßⴃ; 𐹡𞤮ⴇ.ßⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--zca417t; ;
xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ßⴃ
+𐹡𞤌Ⴇ。SSႣ; 𐹡𞤮Ⴇ.ssႣ; [B1, C1, P1, V6]; xn--fnd599eyj4pr50g.xn--ss-fek; ;
xn--fnd1201kegrf.xn--ss-fek; [B1, P1, V6] # 𐹡𞤮Ⴇ.ssႣ
+𐹡𞤮ⴇ。ssⴃ; 𐹡𞤮ⴇ.ssⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--ss-151a; ;
xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ssⴃ
+𐹡𞤌ⴇ。Ssⴃ; 𐹡𞤮ⴇ.ssⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--ss-151a; ;
xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ssⴃ
+𐹡𞤌ⴇ。ßⴃ; 𐹡𞤮ⴇ.ßⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--zca417t; ;
xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ßⴃ
+𐹡𞤌ⴇ。ssⴃ; 𐹡𞤮ⴇ.ssⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--ss-151a; ;
xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ssⴃ
+𐹡𞤌Ⴇ。Ssⴃ; 𐹡𞤮Ⴇ.ssⴃ; [B1, C1, P1, V6]; xn--fnd599eyj4pr50g.xn--ss-151a; ;
xn--fnd1201kegrf.xn--ss-151a; [B1, P1, V6] # 𐹡𞤮Ⴇ.ssⴃ
+xn--fnd1201kegrf.xn--ss-151a; 𐹡𞤮Ⴇ.ssⴃ; [B1, V6]; xn--fnd1201kegrf.xn--ss-151a;
; ; # 𐹡𞤮Ⴇ.ssⴃ
+xn--fnd599eyj4pr50g.xn--ss-151a; 𐹡𞤮Ⴇ.ssⴃ; [B1, C1, V6];
xn--fnd599eyj4pr50g.xn--ss-151a; ; ; # 𐹡𞤮Ⴇ.ssⴃ
+𐹡𞤌ⴇ。ßⴃ; 𐹡𞤮ⴇ.ßⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--zca417t; ;
xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ßⴃ
+𐹡𞤌ⴇ。ssⴃ; 𐹡𞤮ⴇ.ssⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--ss-151a; ;
xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ssⴃ
+𐹡𞤌Ⴇ。Ssⴃ; 𐹡𞤮Ⴇ.ssⴃ; [B1, C1, P1, V6]; xn--fnd599eyj4pr50g.xn--ss-151a; ;
xn--fnd1201kegrf.xn--ss-151a; [B1, P1, V6] # 𐹡𞤮Ⴇ.ssⴃ
+。; .; [P1, V6]; xn--45e.xn--et6h; ; ; # .
+。; .; [P1, V6]; xn--45e.xn--et6h; ; ; # .
+xn--45e.xn--et6h; .; [V6]; xn--45e.xn--et6h; ; ; # .
+ْ。್𑚳; ْ.್𑚳; [C2, V5]; xn--uhb882k.xn--8tc4527k; ; xn--uhb.xn--8tc4527k; [V5]
# ْ.್𑚳
+ْ。್𑚳; ْ.್𑚳; [C2, V5]; xn--uhb882k.xn--8tc4527k; ; xn--uhb.xn--8tc4527k; [V5]
# ْ.್𑚳
+xn--uhb.xn--8tc4527k; ْ.್𑚳; [V5]; xn--uhb.xn--8tc4527k; ; ; # ْ.್𑚳
+xn--uhb882k.xn--8tc4527k; ْ.್𑚳; [C2, V5]; xn--uhb882k.xn--8tc4527k; ; ; #
ْ.್𑚳
+-≠ᠻ.ݭ𞥃≮; -≠ᠻ.ݭ𞥃≮; [B1, B2, B3, P1, V3, V6];
xn----g6j886c.xn--xpb049kk353abj99f; ; ; # -≠ᠻ.ݭ𞥃≮
+-≠ᠻ.ݭ𞥃≮; -≠ᠻ.ݭ𞥃≮; [B1, B2, B3, P1, V3, V6];
xn----g6j886c.xn--xpb049kk353abj99f; ; ; # -≠ᠻ.ݭ𞥃≮
+-≠ᠻ.ݭ𞥃≮; ; [B1, B2, B3, P1, V3, V6]; xn----g6j886c.xn--xpb049kk353abj99f; ; ;
# -≠ᠻ.ݭ𞥃≮
+-≠ᠻ.ݭ𞥃≮; -≠ᠻ.ݭ𞥃≮; [B1, B2, B3, P1, V3, V6];
xn----g6j886c.xn--xpb049kk353abj99f; ; ; # -≠ᠻ.ݭ𞥃≮
+-≠ᠻ.ݭ𞤡≮; -≠ᠻ.ݭ𞥃≮; [B1, B2, B3, P1, V3, V6];
xn----g6j886c.xn--xpb049kk353abj99f; ; ; # -≠ᠻ.ݭ𞥃≮
+-≠ᠻ.ݭ𞤡≮; -≠ᠻ.ݭ𞥃≮; [B1, B2, B3, P1, V3, V6];
xn----g6j886c.xn--xpb049kk353abj99f; ; ; # -≠ᠻ.ݭ𞥃≮
+xn----g6j886c.xn--xpb049kk353abj99f; -≠ᠻ.ݭ𞥃≮; [B1, B2, B3, V3, V6];
xn----g6j886c.xn--xpb049kk353abj99f; ; ; # -≠ᠻ.ݭ𞥃≮
+-≠ᠻ.ݭ𞤡≮; -≠ᠻ.ݭ𞥃≮; [B1, B2, B3, P1, V3, V6];
xn----g6j886c.xn--xpb049kk353abj99f; ; ; # -≠ᠻ.ݭ𞥃≮
+-≠ᠻ.ݭ𞤡≮; -≠ᠻ.ݭ𞥃≮; [B1, B2, B3, P1, V3, V6];
xn----g6j886c.xn--xpb049kk353abj99f; ; ; # -≠ᠻ.ݭ𞥃≮
+≯.≮𑁆ࡌ; ≯.≮𑁆ࡌ; [B1, B5, B6, P1, V6];
xn--zrb797kdm1oes34i.xn--bwb394k8k2o25n6d; ; ; # ≯.≮𑁆ࡌ
+≯.≮𑁆ࡌ; ≯.≮𑁆ࡌ; [B1, B5, B6, P1, V6];
xn--zrb797kdm1oes34i.xn--bwb394k8k2o25n6d; ; ; # ≯.≮𑁆ࡌ
+≯.≮𑁆ࡌ; ; [B1, B5, B6, P1, V6]; xn--zrb797kdm1oes34i.xn--bwb394k8k2o25n6d;
; ; # ≯.≮𑁆ࡌ
+≯.≮𑁆ࡌ; ≯.≮𑁆ࡌ; [B1, B5, B6, P1, V6];
xn--zrb797kdm1oes34i.xn--bwb394k8k2o25n6d; ; ; # ≯.≮𑁆ࡌ
+xn--zrb797kdm1oes34i.xn--bwb394k8k2o25n6d; ≯.≮𑁆ࡌ; [B1, B5, B6, V6];
xn--zrb797kdm1oes34i.xn--bwb394k8k2o25n6d; ; ; # ≯.≮𑁆ࡌ
+≠.்-ڹ; ; [B1, P1, V6]; xn--1ch22084l.xn----qkc07co6n; ; ; # ≠.்-ڹ
+≠.்-ڹ; ≠.்-ڹ; [B1, P1, V6]; xn--1ch22084l.xn----qkc07co6n; ; ; # ≠.்-ڹ
+xn--1ch22084l.xn----qkc07co6n; ≠.்-ڹ; [B1, V6];
xn--1ch22084l.xn----qkc07co6n; ; ; # ≠.்-ڹ
+៝≠。𐹼𐋤; ៝≠.𐹼𐋤; [B1, P1, V5, V6]; xn--54e694cn389z.xn--787ct8r; ; ; # ៝≠.𐹼𐋤
+៝≠。𐹼𐋤; ៝≠.𐹼𐋤; [B1, P1, V5, V6]; xn--54e694cn389z.xn--787ct8r; ; ; # ៝≠.𐹼𐋤
+៝≠。𐹼𐋤; ៝≠.𐹼𐋤; [B1, P1, V5, V6]; xn--54e694cn389z.xn--787ct8r; ; ; # ៝≠.𐹼𐋤
+៝≠。𐹼𐋤; ៝≠.𐹼𐋤; [B1, P1, V5, V6]; xn--54e694cn389z.xn--787ct8r; ; ; # ៝≠.𐹼𐋤
+xn--54e694cn389z.xn--787ct8r; ៝≠.𐹼𐋤; [B1, V5, V6];
xn--54e694cn389z.xn--787ct8r; ; ; # ៝≠.𐹼𐋤
+ß𰀻。𝩨🕮ß; ß𰀻.𝩨🕮ß; [P1, V5, V6]; xn--zca20040bgrkh.xn--zca3653v86qa; ;
xn--ss-jl59biy67d.xn--ss-4d11aw87d; # ß𰀻.𝩨🕮ß
+ß𰀻。𝩨🕮ß; ß𰀻.𝩨🕮ß; [P1, V5, V6]; xn--zca20040bgrkh.xn--zca3653v86qa; ;
xn--ss-jl59biy67d.xn--ss-4d11aw87d; # ß𰀻.𝩨🕮ß
+SS𰀻。𝩨🕮SS; ss𰀻.𝩨🕮ss; [P1, V5, V6]; xn--ss-jl59biy67d.xn--ss-4d11aw87d; ; ; #
ss𰀻.𝩨🕮ss
+ss𰀻。𝩨🕮ss; ss𰀻.𝩨🕮ss; [P1, V5, V6]; xn--ss-jl59biy67d.xn--ss-4d11aw87d; ; ; #
ss𰀻.𝩨🕮ss
+Ss𰀻。𝩨🕮Ss; ss𰀻.𝩨🕮ss; [P1, V5, V6]; xn--ss-jl59biy67d.xn--ss-4d11aw87d; ; ; #
ss𰀻.𝩨🕮ss
+xn--ss-jl59biy67d.xn--ss-4d11aw87d; ss𰀻.𝩨🕮ss; [V5, V6];
xn--ss-jl59biy67d.xn--ss-4d11aw87d; ; ; # ss𰀻.𝩨🕮ss
+xn--zca20040bgrkh.xn--zca3653v86qa; ß𰀻.𝩨🕮ß; [V5, V6];
xn--zca20040bgrkh.xn--zca3653v86qa; ; ; # ß𰀻.𝩨🕮ß
+SS𰀻。𝩨🕮SS; ss𰀻.𝩨🕮ss; [P1, V5, V6]; xn--ss-jl59biy67d.xn--ss-4d11aw87d; ; ; #
ss𰀻.𝩨🕮ss
+ss𰀻。𝩨🕮ss; ss𰀻.𝩨🕮ss; [P1, V5, V6]; xn--ss-jl59biy67d.xn--ss-4d11aw87d; ; ; #
ss𰀻.𝩨🕮ss
+Ss𰀻。𝩨🕮Ss; ss𰀻.𝩨🕮ss; [P1, V5, V6]; xn--ss-jl59biy67d.xn--ss-4d11aw87d; ; ; #
ss𰀻.𝩨🕮ss
+。; .; [C1, C2]; xn--1ug.xn--0ug; ; .; [A4_2] # .
+xn--1ug.xn--0ug; .; [C1, C2]; xn--1ug.xn--0ug; ; ; # .
+҃𐭞.ឹ; ; [B1, C2, P1, V5, V6]; xn--m3a412lrr0o.xn--43e8670vmd79b; ;
xn--m3a6965k.xn--43e8670vmd79b; [B1, P1, V5, V6] # ҃𐭞.ឹ
+xn--m3a6965k.xn--43e8670vmd79b; ҃𐭞.ឹ; [B1, V5, V6];
xn--m3a6965k.xn--43e8670vmd79b; ; ; # ҃𐭞.ឹ
+xn--m3a412lrr0o.xn--43e8670vmd79b; ҃𐭞.ឹ; [B1, C2, V5, V6];
xn--m3a412lrr0o.xn--43e8670vmd79b; ; ; # ҃𐭞.ឹ
+𐠨临。ꡢⶏ𐹣; 𐠨临.ꡢⶏ𐹣; [B1, B5, B6, C1, P1, V6];
xn--0uga2656aop9k.xn--uojv340bk71c99u9f; ; xn--miq9646b.xn--uojv340bk71c99u9f;
[B2, B3, B5, B6, P1, V6] # 𐠨临.ꡢⶏ𐹣
+xn--miq9646b.xn--uojv340bk71c99u9f; 𐠨临.ꡢⶏ𐹣; [B2, B3, B5, B6, V6];
xn--miq9646b.xn--uojv340bk71c99u9f; ; ; # 𐠨临.ꡢⶏ𐹣
+xn--0uga2656aop9k.xn--uojv340bk71c99u9f; 𐠨临.ꡢⶏ𐹣; [B1, B5, B6, C1, V6];
xn--0uga2656aop9k.xn--uojv340bk71c99u9f; ; ; # 𐠨临.ꡢⶏ𐹣
+.󠄮; .; [P1, V6]; xn--s136e.; ; ; # .
+.󠄮; .; [P1, V6]; xn--s136e.; ; ; # .
+xn--s136e.; .; [V6]; xn--s136e.; ; ; # .
+𐫄്.꫶; 𐫄്.꫶; [B1, B3, B6, V5]; xn--wxc7880k.xn--2v9a; ; ; # 𐫄്.꫶
+𐫄്.꫶; ; [B1, B3, B6, V5]; xn--wxc7880k.xn--2v9a; ; ; # 𐫄്.꫶
+xn--wxc7880k.xn--2v9a; 𐫄്.꫶; [B1, B3, B6, V5]; xn--wxc7880k.xn--2v9a; ; ; #
𐫄്.꫶
+ꦷ멹。⒛; ꦷ멹.⒛; [P1, V5, V6]; xn--ym9av13acp85w.xn--dth22121k; ; ; # ꦷ멹.⒛
+ꦷ멹。⒛; ꦷ멹.⒛; [P1, V5, V6]; xn--ym9av13acp85w.xn--dth22121k; ; ; # ꦷ멹.⒛
+ꦷ멹。20.; ꦷ멹.20.; [P1, V5, V6]; xn--ym9av13acp85w.20.xn--d846e; ; ; # ꦷ멹.20.
+ꦷ멹。20.; ꦷ멹.20.; [P1, V5, V6]; xn--ym9av13acp85w.20.xn--d846e; ; ; #
ꦷ멹.20.
+xn--ym9av13acp85w.20.xn--d846e; ꦷ멹.20.; [V5, V6];
xn--ym9av13acp85w.20.xn--d846e; ; ; # ꦷ멹.20.
+xn--ym9av13acp85w.xn--dth22121k; ꦷ멹.⒛; [V5, V6];
xn--ym9av13acp85w.xn--dth22121k; ; ; # ꦷ멹.⒛
+Ⴅ릖.ݷ𐹳⒊; ; [B4, B6, P1, V6]; xn--dnd2167fnet0io02g.xn--7pb000mwm4n; ; ; #
Ⴅ릖.ݷ𐹳⒊
+Ⴅ릖.ݷ𐹳⒊; Ⴅ릖.ݷ𐹳⒊; [B4, B6, P1, V6]; xn--dnd2167fnet0io02g.xn--7pb000mwm4n;
; ; # Ⴅ릖.ݷ𐹳⒊
+Ⴅ릖.ݷ𐹳3.; ; [B4, B6, P1, V6]; xn--dnd2167fnet0io02g.xn--3-55c6803r.; ; ; #
Ⴅ릖.ݷ𐹳3.
+Ⴅ릖.ݷ𐹳3.; Ⴅ릖.ݷ𐹳3.; [B4, B6, P1, V6];
xn--dnd2167fnet0io02g.xn--3-55c6803r.; ; ; # Ⴅ릖.ݷ𐹳3.
+ⴅ릖.ݷ𐹳3.; ⴅ릖.ݷ𐹳3.; [B4, B6, P1, V6];
xn--wkj8016bne45io02g.xn--3-55c6803r.; ; ; # ⴅ릖.ݷ𐹳3.
+ⴅ릖.ݷ𐹳3.; ; [B4, B6, P1, V6]; xn--wkj8016bne45io02g.xn--3-55c6803r.; ; ; #
ⴅ릖.ݷ𐹳3.
+xn--wkj8016bne45io02g.xn--3-55c6803r.; ⴅ릖.ݷ𐹳3.; [B4, B6, V6];
xn--wkj8016bne45io02g.xn--3-55c6803r.; ; ; # ⴅ릖.ݷ𐹳3.
+xn--dnd2167fnet0io02g.xn--3-55c6803r.; Ⴅ릖.ݷ𐹳3.; [B4, B6, V6];
xn--dnd2167fnet0io02g.xn--3-55c6803r.; ; ; # Ⴅ릖.ݷ𐹳3.
+ⴅ릖.ݷ𐹳⒊; ⴅ릖.ݷ𐹳⒊; [B4, B6, P1, V6]; xn--wkj8016bne45io02g.xn--7pb000mwm4n;
; ; # ⴅ릖.ݷ𐹳⒊
+ⴅ릖.ݷ𐹳⒊; ; [B4, B6, P1, V6]; xn--wkj8016bne45io02g.xn--7pb000mwm4n; ; ; #
ⴅ릖.ݷ𐹳⒊
+xn--wkj8016bne45io02g.xn--7pb000mwm4n; ⴅ릖.ݷ𐹳⒊; [B4, B6, V6];
xn--wkj8016bne45io02g.xn--7pb000mwm4n; ; ; # ⴅ릖.ݷ𐹳⒊
+xn--dnd2167fnet0io02g.xn--7pb000mwm4n; Ⴅ릖.ݷ𐹳⒊; [B4, B6, V6];
xn--dnd2167fnet0io02g.xn--7pb000mwm4n; ; ; # Ⴅ릖.ݷ𐹳⒊
+。︒; .︒; [C1, P1, V6]; xn--0ug.xn--y86c; ; .xn--y86c; [P1, V6, A4_2] # .︒
+。。; ..; [C1, X4_2]; xn--0ug..; [C1, A4_2]; ..; [A4_2] # ..
+..; ; [X4_2]; ; [A4_2]; ; # ..
+xn--0ug..; ..; [C1, X4_2]; xn--0ug..; [C1, A4_2]; ; # ..
+.xn--y86c; .︒; [V6, X4_2]; .xn--y86c; [V6, A4_2]; ; # .︒
+xn--0ug.xn--y86c; .︒; [C1, V6]; xn--0ug.xn--y86c; ; ; # .︒
+≯ݭ.₄; ≯ݭ.4; [B1, P1, V6]; xn--xpb149k.4; ; ; # ≯ݭ.4
+≯ݭ.₄; ≯ݭ.4; [B1, P1, V6]; xn--xpb149k.4; ; ; # ≯ݭ.4
+≯ݭ.4; ; [B1, P1, V6]; xn--xpb149k.4; ; ; # ≯ݭ.4
+≯ݭ.4; ≯ݭ.4; [B1, P1, V6]; xn--xpb149k.4; ; ; # ≯ݭ.4
+xn--xpb149k.4; ≯ݭ.4; [B1, V6]; xn--xpb149k.4; ; ; # ≯ݭ.4
+ᡲ-𝟹.ß--; ᡲ-3.ß--; [C1, V3]; xn---3-p9o.xn-----fia9303a; ; xn---3-p9o.ss--;
[V2, V3] # ᡲ-3.ß--
+ᡲ-3.ß--; ; [C1, V3]; xn---3-p9o.xn-----fia9303a; ; xn---3-p9o.ss--; [V2, V3]
# ᡲ-3.ß--
+ᡲ-3.SS--; ᡲ-3.ss--; [C1, V3]; xn---3-p9o.xn--ss---276a; ; xn---3-p9o.ss--;
[V2, V3] # ᡲ-3.ss--
+ᡲ-3.ss--; ; [C1, V3]; xn---3-p9o.xn--ss---276a; ; xn---3-p9o.ss--; [V2, V3] #
ᡲ-3.ss--
+ᡲ-3.Ss--; ᡲ-3.ss--; [C1, V3]; xn---3-p9o.xn--ss---276a; ; xn---3-p9o.ss--;
[V2, V3] # ᡲ-3.ss--
+xn---3-p9o.ss--; ᡲ-3.ss--; [V2, V3]; xn---3-p9o.ss--; ; ; # ᡲ-3.ss--
+xn---3-p9o.xn--ss---276a; ᡲ-3.ss--; [C1, V3]; xn---3-p9o.xn--ss---276a; ; ;
# ᡲ-3.ss--
+xn---3-p9o.xn-----fia9303a; ᡲ-3.ß--; [C1, V3]; xn---3-p9o.xn-----fia9303a; ;
; # ᡲ-3.ß--
+ᡲ-𝟹.SS--; ᡲ-3.ss--; [C1, V3]; xn---3-p9o.xn--ss---276a; ; xn---3-p9o.ss--;
[V2, V3] # ᡲ-3.ss--
+ᡲ-𝟹.ss--; ᡲ-3.ss--; [C1, V3]; xn---3-p9o.xn--ss---276a; ; xn---3-p9o.ss--;
[V2, V3] # ᡲ-3.ss--
+ᡲ-𝟹.Ss--; ᡲ-3.ss--; [C1, V3]; xn---3-p9o.xn--ss---276a; ; xn---3-p9o.ss--;
[V2, V3] # ᡲ-3.ss--
+ﴈ𝟦ه。Ӏ; ضي4ه.Ӏ; [B2, B3, P1, V6]; xn--4-tnc6ck183523b.xn--d5a; ; ; # ضي4ه.Ӏ
+ضي4ه。Ӏ; ضي4ه.Ӏ; [B2, B3, P1, V6]; xn--4-tnc6ck183523b.xn--d5a; ; ; # ضي4ه.Ӏ
+ضي4ه。ӏ; ضي4ه.ӏ; [B2, B3, P1, V6]; xn--4-tnc6ck183523b.xn--s5a; ; ; # ضي4ه.ӏ
+xn--4-tnc6ck183523b.xn--s5a; ضي4ه.ӏ; [B2, B3, V6];
xn--4-tnc6ck183523b.xn--s5a; ; ; # ضي4ه.ӏ
+xn--4-tnc6ck183523b.xn--d5a; ضي4ه.Ӏ; [B2, B3, V6];
xn--4-tnc6ck183523b.xn--d5a; ; ; # ضي4ه.Ӏ
+ﴈ𝟦ه。ӏ; ضي4ه.ӏ; [B2, B3, P1, V6]; xn--4-tnc6ck183523b.xn--s5a; ; ; # ضي4ه.ӏ
+-.آ𑆾🐹; ; [B1, P1, V3, V6]; -.xn--kfb8dy983hgl7g; ; ; # -.آ𑆾🐹
+-.آ𑆾🐹; -.آ𑆾🐹; [B1, P1, V3, V6]; -.xn--kfb8dy983hgl7g; ; ; # -.آ𑆾🐹
+-.xn--kfb8dy983hgl7g; -.آ𑆾🐹; [B1, V3, V6]; -.xn--kfb8dy983hgl7g; ; ; # -.آ𑆾🐹
+ᢘ。᩿⺢; ᢘ.᩿⺢; [P1, V5, V6]; xn--ibf35138o.xn--fpfz94g; ; ; # ᢘ.᩿⺢
+xn--ibf35138o.xn--fpfz94g; ᢘ.᩿⺢; [V5, V6]; xn--ibf35138o.xn--fpfz94g; ; ; #
ᢘ.᩿⺢
+≠ႷᠤႫ。?͌س觴; ≠ႷᠤႫ.?͌س觴; [B1, P1, V6]; xn--jndx718cnnl.xn--?-7fb34t0u7s; ; ; #
≠ႷᠤႫ.?͌س觴
+≠ႷᠤႫ。?͌س觴; ≠ႷᠤႫ.?͌س觴; [B1, P1, V6]; xn--jndx718cnnl.xn--?-7fb34t0u7s; ; ; #
≠ႷᠤႫ.?͌س觴
+≠ႷᠤႫ。?͌س觴; ≠ႷᠤႫ.?͌س觴; [B1, P1, V6]; xn--jndx718cnnl.xn--?-7fb34t0u7s; ; ; #
≠ႷᠤႫ.?͌س觴
+≠ႷᠤႫ。?͌س觴; ≠ႷᠤႫ.?͌س觴; [B1, P1, V6]; xn--jndx718cnnl.xn--?-7fb34t0u7s; ; ; #
≠ႷᠤႫ.?͌س觴
+≠ⴗᠤⴋ。?͌س觴; ≠ⴗᠤⴋ.?͌س觴; [B1, P1, V6]; xn--66e353ce0ilb.xn--?-7fb34t0u7s; ; ; #
≠ⴗᠤⴋ.?͌س觴
+≠ⴗᠤⴋ。?͌س觴; ≠ⴗᠤⴋ.?͌س觴; [B1, P1, V6]; xn--66e353ce0ilb.xn--?-7fb34t0u7s; ; ; #
≠ⴗᠤⴋ.?͌س觴
+≠Ⴗᠤⴋ。?͌س觴; ≠Ⴗᠤⴋ.?͌س觴; [B1, P1, V6]; xn--vnd619as6ig6k.xn--?-7fb34t0u7s; ; ; #
≠Ⴗᠤⴋ.?͌س觴
+≠Ⴗᠤⴋ。?͌س觴; ≠Ⴗᠤⴋ.?͌س觴; [B1, P1, V6]; xn--vnd619as6ig6k.xn--?-7fb34t0u7s; ; ;
# ≠Ⴗᠤⴋ.?͌س觴
+xn--vnd619as6ig6k.xn--?-7fb34t0u7s; ≠Ⴗᠤⴋ.?͌س觴; [B1, P1, V6];
xn--vnd619as6ig6k.xn--?-7fb34t0u7s; ; ; # ≠Ⴗᠤⴋ.?͌س觴
+xn--66e353ce0ilb.xn--?-7fb34t0u7s; ≠ⴗᠤⴋ.?͌س觴; [B1, P1, V6];
xn--66e353ce0ilb.xn--?-7fb34t0u7s; ; ; # ≠ⴗᠤⴋ.?͌س觴
+xn--jndx718cnnl.xn--?-7fb34t0u7s; ≠ႷᠤႫ.?͌س觴; [B1, P1, V6];
xn--jndx718cnnl.xn--?-7fb34t0u7s; ; ; # ≠ႷᠤႫ.?͌س觴
+≠ⴗᠤⴋ。?͌س觴; ≠ⴗᠤⴋ.?͌س觴; [B1, P1, V6]; xn--66e353ce0ilb.xn--?-7fb34t0u7s; ; ; #
≠ⴗᠤⴋ.?͌س觴
+≠ⴗᠤⴋ。?͌س觴; ≠ⴗᠤⴋ.?͌س觴; [B1, P1, V6]; xn--66e353ce0ilb.xn--?-7fb34t0u7s; ; ; #
≠ⴗᠤⴋ.?͌س觴
+≠Ⴗᠤⴋ。?͌س觴; ≠Ⴗᠤⴋ.?͌س觴; [B1, P1, V6]; xn--vnd619as6ig6k.xn--?-7fb34t0u7s; ; ; #
≠Ⴗᠤⴋ.?͌س觴
+≠Ⴗᠤⴋ。?͌س觴; ≠Ⴗᠤⴋ.?͌س觴; [B1, P1, V6]; xn--vnd619as6ig6k.xn--?-7fb34t0u7s; ; ;
# ≠Ⴗᠤⴋ.?͌س觴
+xn--vnd619as6ig6k.?͌س觴; ≠Ⴗᠤⴋ.?͌س觴; [B1, P1, V6];
xn--vnd619as6ig6k.xn--?-7fb34t0u7s; ; ; # ≠Ⴗᠤⴋ.?͌س觴
+XN--VND619AS6IG6K.?͌س觴; ≠Ⴗᠤⴋ.?͌س觴; [B1, P1, V6];
xn--vnd619as6ig6k.xn--?-7fb34t0u7s; ; ; # ≠Ⴗᠤⴋ.?͌س觴
+Xn--Vnd619as6ig6k.?͌س觴; ≠Ⴗᠤⴋ.?͌س觴; [B1, P1, V6];
xn--vnd619as6ig6k.xn--?-7fb34t0u7s; ; ; # ≠Ⴗᠤⴋ.?͌س觴
+xn--66e353ce0ilb.?͌س觴; ≠ⴗᠤⴋ.?͌س觴; [B1, P1, V6];
xn--66e353ce0ilb.xn--?-7fb34t0u7s; ; ; # ≠ⴗᠤⴋ.?͌س觴
+XN--66E353CE0ILB.?͌س觴; ≠ⴗᠤⴋ.?͌س觴; [B1, P1, V6];
xn--66e353ce0ilb.xn--?-7fb34t0u7s; ; ; # ≠ⴗᠤⴋ.?͌س觴
+Xn--66e353ce0ilb.?͌س觴; ≠ⴗᠤⴋ.?͌س觴; [B1, P1, V6];
xn--66e353ce0ilb.xn--?-7fb34t0u7s; ; ; # ≠ⴗᠤⴋ.?͌س觴
+xn--jndx718cnnl.?͌س觴; ≠ႷᠤႫ.?͌س觴; [B1, P1, V6];
xn--jndx718cnnl.xn--?-7fb34t0u7s; ; ; # ≠ႷᠤႫ.?͌س觴
+XN--JNDX718CNNL.?͌س觴; ≠ႷᠤႫ.?͌س觴; [B1, P1, V6];
xn--jndx718cnnl.xn--?-7fb34t0u7s; ; ; # ≠ႷᠤႫ.?͌س觴
+Xn--Jndx718cnnl.?͌س觴; ≠ႷᠤႫ.?͌س觴; [B1, P1, V6];
xn--jndx718cnnl.xn--?-7fb34t0u7s; ; ; # ≠ႷᠤႫ.?͌س觴
+٧.; ; [B1, P1, V6]; xn--gib.xn--vm9c; ; ; # ٧.
+xn--gib.xn--vm9c; ٧.; [B1, V6]; xn--gib.xn--vm9c; ; ; # ٧.
+꧀𝟯。𐹪᯳; ꧀3.𐹪᯳; [B1, C2, P1, V5, V6]; xn--3-5z4e.xn--1zf96ony8ygd68c; ;
xn--3-5z4e.xn--1zfz754hncv8b; [B5, P1, V5, V6] # ꧀3.𐹪᯳
+꧀3。𐹪᯳; ꧀3.𐹪᯳; [B1, C2, P1, V5, V6]; xn--3-5z4e.xn--1zf96ony8ygd68c; ;
xn--3-5z4e.xn--1zfz754hncv8b; [B5, P1, V5, V6] # ꧀3.𐹪᯳
+xn--3-5z4e.xn--1zfz754hncv8b; ꧀3.𐹪᯳; [B5, V5, V6];
xn--3-5z4e.xn--1zfz754hncv8b; ; ; # ꧀3.𐹪᯳
+xn--3-5z4e.xn--1zf96ony8ygd68c; ꧀3.𐹪᯳; [B1, C2, V5, V6];
xn--3-5z4e.xn--1zf96ony8ygd68c; ; ; # ꧀3.𐹪᯳
+4.≯٤𑀾; ; [B1, P1, V6]; xn--4-fg85dl688i.xn--dib174li86ntdy0i; ; ; # 4.≯٤𑀾
+4.≯٤𑀾; 4.≯٤𑀾; [B1, P1, V6]; xn--4-fg85dl688i.xn--dib174li86ntdy0i; ; ;
# 4.≯٤𑀾
+xn--4-fg85dl688i.xn--dib174li86ntdy0i; 4.≯٤𑀾; [B1, V6];
xn--4-fg85dl688i.xn--dib174li86ntdy0i; ; ; # 4.≯٤𑀾
+𝟯。⒈᩶𝟚; 3.⒈᩶2; [P1, V6]; xn--3-rj42h.xn--2-13k746cq465x; ; ; # 3.⒈᩶2
+3。1.᩶2; 3.1.᩶2; [P1, V5, V6]; xn--3-rj42h.1.xn--2-13k96240l; ; ; # 3.1.᩶2
+xn--3-rj42h.1.xn--2-13k96240l; 3.1.᩶2; [V5, V6];
xn--3-rj42h.1.xn--2-13k96240l; ; ; # 3.1.᩶2
+xn--3-rj42h.xn--2-13k746cq465x; 3.⒈᩶2; [V6]; xn--3-rj42h.xn--2-13k746cq465x;
; ; # 3.⒈᩶2
+₅⒈。≯𝟴; 5⒈.≯8; [C2, P1, V6]; xn--5-tgnz5r.xn--8-ugn00i; ;
xn--5-ecp.xn--8-ogo; [P1, V6] # 5⒈.≯8
+₅⒈。≯𝟴; 5⒈.≯8; [C2, P1, V6]; xn--5-tgnz5r.xn--8-ugn00i; ;
xn--5-ecp.xn--8-ogo; [P1, V6] # 5⒈.≯8
+51.。≯8; 51..≯8; [C2, P1, V6, X4_2]; xn--51-l1t..xn--8-ugn00i; [C2, P1, V6,
A4_2]; 51..xn--8-ogo; [P1, V6, A4_2] # 51..≯8
+51.。≯8; 51..≯8; [C2, P1, V6, X4_2]; xn--51-l1t..xn--8-ugn00i; [C2, P1,
V6, A4_2]; 51..xn--8-ogo; [P1, V6, A4_2] # 51..≯8
+51..xn--8-ogo; 51..≯8; [V6, X4_2]; 51..xn--8-ogo; [V6, A4_2]; ; # 51..≯8
+xn--51-l1t..xn--8-ugn00i; 51..≯8; [C2, V6, X4_2]; xn--51-l1t..xn--8-ugn00i;
[C2, V6, A4_2]; ; # 51..≯8
+xn--5-ecp.xn--8-ogo; 5⒈.≯8; [V6]; xn--5-ecp.xn--8-ogo; ; ; # 5⒈.≯8
+xn--5-tgnz5r.xn--8-ugn00i; 5⒈.≯8; [C2, V6]; xn--5-tgnz5r.xn--8-ugn00i; ; ;
# 5⒈.≯8
+ꡰڗႆ.ܯ≠; ꡰڗႆ.ܯ≠; [B5, B6, C1, P1, V6];
xn--tjb002cn51k.xn--5nb448jcubcz547b; ; xn--tjb002cn51k.xn--5nb630lbj91q; [B5,
B6, P1, V6] # ꡰڗႆ.ܯ≠
+ꡰڗႆ.ܯ≠; ꡰڗႆ.ܯ≠; [B5, B6, C1, P1, V6];
xn--tjb002cn51k.xn--5nb448jcubcz547b; ; xn--tjb002cn51k.xn--5nb630lbj91q; [B5,
B6, P1, V6] # ꡰڗႆ.ܯ≠
+ꡰڗႆ.ܯ≠; ; [B5, B6, C1, P1, V6]; xn--tjb002cn51k.xn--5nb448jcubcz547b; ;
xn--tjb002cn51k.xn--5nb630lbj91q; [B5, B6, P1, V6] # ꡰڗႆ.ܯ≠
+ꡰڗႆ.ܯ≠; ꡰڗႆ.ܯ≠; [B5, B6, C1, P1, V6];
xn--tjb002cn51k.xn--5nb448jcubcz547b; ; xn--tjb002cn51k.xn--5nb630lbj91q; [B5,
B6, P1, V6] # ꡰڗႆ.ܯ≠
+xn--tjb002cn51k.xn--5nb630lbj91q; ꡰڗႆ.ܯ≠; [B5, B6, V6];
xn--tjb002cn51k.xn--5nb630lbj91q; ; ; # ꡰڗႆ.ܯ≠
+xn--tjb002cn51k.xn--5nb448jcubcz547b; ꡰڗႆ.ܯ≠; [B5, B6, C1, V6];
xn--tjb002cn51k.xn--5nb448jcubcz547b; ; ; # ꡰڗႆ.ܯ≠
+𑄱。𐹵; 𑄱.𐹵; [B1, B3, B5, B6, P1, V5, V6]; xn--t80d.xn--to0d14792b; ; ; # 𑄱.𐹵
+𑄱。𐹵; 𑄱.𐹵; [B1, B3, B5, B6, P1, V5, V6]; xn--t80d.xn--to0d14792b; ; ; # 𑄱.𐹵
+xn--t80d.xn--to0d14792b; 𑄱.𐹵; [B1, B3, B5, B6, V5, V6];
xn--t80d.xn--to0d14792b; ; ; # 𑄱.𐹵
+𝟥。ܽ; 3.ܽ; [B1, B3, B6, P1, V5, V6]; xn--3-rkc.xn--kob; ; ; # 3.ܽ
+3。ܽ; 3.ܽ; [B1, B3, B6, P1, V5, V6]; xn--3-rkc.xn--kob; ; ; # 3.ܽ
+xn--3-rkc.xn--kob; 3.ܽ; [B1, B3, B6, V5, V6]; xn--3-rkc.xn--kob; ; ; # 3.ܽ
+ط𐹣٦.ݭ긷; ; [B2, B3]; xn--2gb8gu829f.xn--xpb0156f; ; ; # ط𐹣٦.ݭ긷
+ط𐹣٦.ݭ긷; ط𐹣٦.ݭ긷; [B2, B3]; xn--2gb8gu829f.xn--xpb0156f; ; ; # ط𐹣٦.ݭ긷
+xn--2gb8gu829f.xn--xpb0156f; ط𐹣٦.ݭ긷; [B2, B3]; xn--2gb8gu829f.xn--xpb0156f; ;
; # ط𐹣٦.ݭ긷
+︒Ↄⷧ.Ⴗ; ︒Ↄⷧ.Ⴗ; [B1, B5, B6, P1, V6]; xn--q5g000c056n0226g.xn--vnd8618j; ; ;
# ︒Ↄⷧ.Ⴗ
+。Ↄⷧ.Ⴗ; .Ↄⷧ.Ⴗ; [B5, B6, P1, V6, X4_2]; .xn--q5g000cll06u.xn--vnd8618j; [B5,
B6, P1, V6, A4_2]; ; # .Ↄⷧ.Ⴗ
+。ↄⷧ.ⴗ; .ↄⷧ.ⴗ; [B5, B6, P1, V6, X4_2]; .xn--r5gy00cll06u.xn--flj4541e; [B5,
B6, P1, V6, A4_2]; ; # .ↄⷧ.ⴗ
+.xn--r5gy00cll06u.xn--flj4541e; .ↄⷧ.ⴗ; [B5, B6, V6, X4_2];
.xn--r5gy00cll06u.xn--flj4541e; [B5, B6, V6, A4_2]; ; # .ↄⷧ.ⴗ
+.xn--q5g000cll06u.xn--vnd8618j; .Ↄⷧ.Ⴗ; [B5, B6, V6, X4_2];
.xn--q5g000cll06u.xn--vnd8618j; [B5, B6, V6, A4_2]; ; # .Ↄⷧ.Ⴗ
+︒ↄⷧ.ⴗ; ︒ↄⷧ.ⴗ; [B1, B5, B6, P1, V6]; xn--r5gy00c056n0226g.xn--flj4541e; ; ;
# ︒ↄⷧ.ⴗ
+xn--r5gy00c056n0226g.xn--flj4541e; ︒ↄⷧ.ⴗ; [B1, B5, B6, V6];
xn--r5gy00c056n0226g.xn--flj4541e; ; ; # ︒ↄⷧ.ⴗ
+xn--q5g000c056n0226g.xn--vnd8618j; ︒Ↄⷧ.Ⴗ; [B1, B5, B6, V6];
xn--q5g000c056n0226g.xn--vnd8618j; ; ; # ︒Ↄⷧ.Ⴗ
+.ֱ; ; [B1, B3, B6, P1, V5, V6]; xn--ifb.xn--8cb; ; ; # .ֱ
+xn--ifb.xn--8cb; .ֱ; [B1, B3, B6, V5, V6]; xn--ifb.xn--8cb; ; ; # .ֱ
+ς≯。𐹽; ς≯.𐹽; [B1, B6, P1, V6]; xn--3xa028m.xn--1o0d; ; xn--4xa818m.xn--1o0d; #
ς≯.𐹽
+ς≯。𐹽; ς≯.𐹽; [B1, B6, P1, V6]; xn--3xa028m.xn--1o0d; ; xn--4xa818m.xn--1o0d;
# ς≯.𐹽
+ς≯。𐹽; ς≯.𐹽; [B1, B6, P1, V6]; xn--3xa028m.xn--1o0d; ; xn--4xa818m.xn--1o0d; #
ς≯.𐹽
+ς≯。𐹽; ς≯.𐹽; [B1, B6, P1, V6]; xn--3xa028m.xn--1o0d; ; xn--4xa818m.xn--1o0d;
# ς≯.𐹽
+Σ≯。𐹽; σ≯.𐹽; [B1, B6, P1, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+Σ≯。𐹽; σ≯.𐹽; [B1, B6, P1, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+σ≯。𐹽; σ≯.𐹽; [B1, B6, P1, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+σ≯。𐹽; σ≯.𐹽; [B1, B6, P1, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+xn--4xa818m.xn--1o0d; σ≯.𐹽; [B1, B6, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+xn--3xa028m.xn--1o0d; ς≯.𐹽; [B1, B6, V6]; xn--3xa028m.xn--1o0d; ; ; # ς≯.𐹽
+Σ≯。𐹽; σ≯.𐹽; [B1, B6, P1, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+Σ≯。𐹽; σ≯.𐹽; [B1, B6, P1, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+σ≯。𐹽; σ≯.𐹽; [B1, B6, P1, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+σ≯。𐹽; σ≯.𐹽; [B1, B6, P1, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+្ݟ。𐹶; ្ݟ.𐹶; [B1, V5]; xn--jpb535fv9f.xn--uo0d; ; xn--jpb535f.xn--uo0d; #
្ݟ.𐹶
+xn--jpb535f.xn--uo0d; ្ݟ.𐹶; [B1, V5]; xn--jpb535f.xn--uo0d; ; ; # ្ݟ.𐹶
+xn--jpb535fv9f.xn--uo0d; ្ݟ.𐹶; [B1, V5]; xn--jpb535fv9f.xn--uo0d; ; ; # ្ݟ.𐹶
+ੂႪ.≮; ; [P1, V6]; xn--nbc493aro75ggskb.xn--gdh; ; ; # ੂႪ.≮
+ੂႪ.≮; ੂႪ.≮; [P1, V6]; xn--nbc493aro75ggskb.xn--gdh; ; ; # ੂႪ.≮
+ੂⴊ.≮; ੂⴊ.≮; [P1, V6]; xn--nbc229o4y27dgskb.xn--gdh; ; ; # ੂⴊ.≮
+ੂⴊ.≮; ; [P1, V6]; xn--nbc229o4y27dgskb.xn--gdh; ; ; # ੂⴊ.≮
+xn--nbc229o4y27dgskb.xn--gdh; ੂⴊ.≮; [V6]; xn--nbc229o4y27dgskb.xn--gdh; ; ;
# ੂⴊ.≮
+xn--nbc493aro75ggskb.xn--gdh; ੂႪ.≮; [V6]; xn--nbc493aro75ggskb.xn--gdh; ; ;
# ੂႪ.≮
+ꡠ.۲; ꡠ.۲; ; xn--5c9a.xn--fmb; ; ; # ꡠ.۲
+ꡠ.۲; ; ; xn--5c9a.xn--fmb; ; ; # ꡠ.۲
+xn--5c9a.xn--fmb; ꡠ.۲; ; xn--5c9a.xn--fmb; ; ; # ꡠ.۲
+𐹣。ꡬ🄄; 𐹣.ꡬ🄄; [B1, P1, V6]; xn--bo0d0203l.xn--id9a4443d; ; ; # 𐹣.ꡬ🄄
+𐹣。ꡬ3,; 𐹣.ꡬ3,; [B1, B6, P1, V6]; xn--bo0d0203l.xn--3,-yj9h; ; ; # 𐹣.ꡬ3,
+xn--bo0d0203l.xn--3,-yj9h; 𐹣.ꡬ3,; [B1, B6, P1, V6];
xn--bo0d0203l.xn--3,-yj9h; ; ; # 𐹣.ꡬ3,
+xn--bo0d0203l.xn--id9a4443d; 𐹣.ꡬ🄄; [B1, V6]; xn--bo0d0203l.xn--id9a4443d; ; ;
# 𐹣.ꡬ🄄
+-్𑲓。്; -్𑲓.്; [B1, C2, P1, V3, V6]; xn----x6e0220sclug.xn--wxc317g; ;
xn----x6e0220sclug.xn--wxc; [B1, B3, B6, P1, V3, V5, V6] # -్𑲓.്
+-్𑲓。്; -్𑲓.്; [B1, C2, P1, V3, V6]; xn----x6e0220sclug.xn--wxc317g; ;
xn----x6e0220sclug.xn--wxc; [B1, B3, B6, P1, V3, V5, V6] # -్𑲓.്
+xn----x6e0220sclug.xn--wxc; -్𑲓.്; [B1, B3, B6, V3, V5, V6];
xn----x6e0220sclug.xn--wxc; ; ; # -్𑲓.്
+xn----x6e0220sclug.xn--wxc317g; -్𑲓.്; [B1, C2, V3, V6];
xn----x6e0220sclug.xn--wxc317g; ; ; # -్𑲓.്
+꙽霣🄆。𑁂ᬁ; ꙽霣🄆.𑁂ᬁ; [C1, P1, V5, V6]; xn--0ug4208b2vjuk63a.xn--4sf36u6u4w; ;
xn--2q5a751a653w.xn--4sf0725i; [P1, V5, V6] # ꙽霣🄆.𑁂ᬁ
+꙽霣🄆。𑁂ᬁ; ꙽霣🄆.𑁂ᬁ; [C1, P1, V5, V6]; xn--0ug4208b2vjuk63a.xn--4sf36u6u4w; ;
xn--2q5a751a653w.xn--4sf0725i; [P1, V5, V6] # ꙽霣🄆.𑁂ᬁ
+꙽霣5,。𑁂ᬁ; ꙽霣5,.𑁂ᬁ; [C1, P1, V5, V6]; xn--5,-i1tz135dnbqa.xn--4sf36u6u4w; ;
xn--5,-op8g373c.xn--4sf0725i; [P1, V5, V6] # ꙽霣5,.𑁂ᬁ
+xn--5,-op8g373c.xn--4sf0725i; ꙽霣5,.𑁂ᬁ; [P1, V5, V6];
xn--5,-op8g373c.xn--4sf0725i; ; ; # ꙽霣5,.𑁂ᬁ
+xn--5,-i1tz135dnbqa.xn--4sf36u6u4w; ꙽霣5,.𑁂ᬁ; [C1, P1, V5, V6];
xn--5,-i1tz135dnbqa.xn--4sf36u6u4w; ; ; # ꙽霣5,.𑁂ᬁ
+xn--2q5a751a653w.xn--4sf0725i; ꙽霣🄆.𑁂ᬁ; [V5, V6];
xn--2q5a751a653w.xn--4sf0725i; ; ; # ꙽霣🄆.𑁂ᬁ
+xn--0ug4208b2vjuk63a.xn--4sf36u6u4w; ꙽霣🄆.𑁂ᬁ; [C1, V5, V6];
xn--0ug4208b2vjuk63a.xn--4sf36u6u4w; ; ; # ꙽霣🄆.𑁂ᬁ
+兎。ᠼ𑚶𑰿; 兎.ᠼ𑚶𑰿; [P1, V6]; xn--b5q.xn--v7e6041kqqd4m251b; ; ; # 兎.ᠼ𑚶𑰿
+兎。ᠼ𑚶𑰿; 兎.ᠼ𑚶𑰿; [P1, V6]; xn--b5q.xn--v7e6041kqqd4m251b; ; ; # 兎.ᠼ𑚶𑰿
+xn--b5q.xn--v7e6041kqqd4m251b; 兎.ᠼ𑚶𑰿; [V6]; xn--b5q.xn--v7e6041kqqd4m251b; ;
; # 兎.ᠼ𑚶𑰿
+𝟙。𝟸⁷; 1.27; [C2]; 1.xn--27-l1tb; ; 1.27; [] # 1.27
+1。27; 1.27; [C2]; 1.xn--27-l1tb; ; 1.27; [] # 1.27
+1.27; ; ; ; ; ; # 1.27
+1.xn--27-l1tb; 1.27; [C2]; 1.xn--27-l1tb; ; ; # 1.27
+ᡨ-。𝟷; ᡨ-.1; [P1, V3, V6]; xn----z8j.xn--1-5671m; ; ; # ᡨ-.1
+ᡨ-。1; ᡨ-.1; [P1, V3, V6]; xn----z8j.xn--1-5671m; ; ; # ᡨ-.1
+xn----z8j.xn--1-5671m; ᡨ-.1; [V3, V6]; xn----z8j.xn--1-5671m; ; ; # ᡨ-.1
+𑰻𐫚.٨⁹; 𑰻𐫚.٨9; [B1, P1, V5, V6]; xn--gx9cr01aul57i.xn--9-oqc; ; ; # 𑰻𐫚.٨9
+𑰻𐫚.٨9; ; [B1, P1, V5, V6]; xn--gx9cr01aul57i.xn--9-oqc; ; ; # 𑰻𐫚.٨9
+xn--gx9cr01aul57i.xn--9-oqc; 𑰻𐫚.٨9; [B1, V5, V6];
xn--gx9cr01aul57i.xn--9-oqc; ; ; # 𑰻𐫚.٨9
+Ⴜྀ⾇。Ⴏ♀; Ⴜྀ舛.Ⴏ♀; [C1, P1, V6]; xn--zed54dz10wo343g.xn--nnd089ea464d; ;
xn--zed54dz10wo343g.xn--nnd651i; [P1, V6] # Ⴜྀ舛.Ⴏ♀
+Ⴜྀ舛。Ⴏ♀; Ⴜྀ舛.Ⴏ♀; [C1, P1, V6]; xn--zed54dz10wo343g.xn--nnd089ea464d; ;
xn--zed54dz10wo343g.xn--nnd651i; [P1, V6] # Ⴜྀ舛.Ⴏ♀
+ⴜྀ舛。ⴏ♀; ⴜྀ舛.ⴏ♀; [C1, P1, V6]; xn--zed372mdj2do3v4h.xn--0uga678bgyh; ;
xn--zed372mdj2do3v4h.xn--e5h11w; [P1, V6] # ⴜྀ舛.ⴏ♀
+xn--zed372mdj2do3v4h.xn--e5h11w; ⴜྀ舛.ⴏ♀; [V6];
xn--zed372mdj2do3v4h.xn--e5h11w; ; ; # ⴜྀ舛.ⴏ♀
+xn--zed372mdj2do3v4h.xn--0uga678bgyh; ⴜྀ舛.ⴏ♀; [C1, V6];
xn--zed372mdj2do3v4h.xn--0uga678bgyh; ; ; # ⴜྀ舛.ⴏ♀
+xn--zed54dz10wo343g.xn--nnd651i; Ⴜྀ舛.Ⴏ♀; [V6];
xn--zed54dz10wo343g.xn--nnd651i; ; ; # Ⴜྀ舛.Ⴏ♀
+xn--zed54dz10wo343g.xn--nnd089ea464d; Ⴜྀ舛.Ⴏ♀; [C1, V6];
xn--zed54dz10wo343g.xn--nnd089ea464d; ; ; # Ⴜྀ舛.Ⴏ♀
+ⴜྀ⾇。ⴏ♀; ⴜྀ舛.ⴏ♀; [C1, P1, V6]; xn--zed372mdj2do3v4h.xn--0uga678bgyh; ;
xn--zed372mdj2do3v4h.xn--e5h11w; [P1, V6] # ⴜྀ舛.ⴏ♀
+𑁆𝟰.; 𑁆4.; [C2, V5]; xn--4-xu7i.xn--1ug; ; xn--4-xu7i.; [V5] # 𑁆4.
+𑁆4.; ; [C2, V5]; xn--4-xu7i.xn--1ug; ; xn--4-xu7i.; [V5] # 𑁆4.
+xn--4-xu7i.; 𑁆4.; [V5]; xn--4-xu7i.; ; ; # 𑁆4.
+xn--4-xu7i.xn--1ug; 𑁆4.; [C2, V5]; xn--4-xu7i.xn--1ug; ; ; # 𑁆4.
+Ⴞ癀。𑘿붼; Ⴞ癀.𑘿붼; [C1, P1, V5, V6]; xn--2nd6803c7q37d.xn--0ugb6122js83c; ;
xn--2nd6803c7q37d.xn--et3bn23n; [P1, V5, V6] # Ⴞ癀.𑘿붼
+Ⴞ癀。𑘿붼; Ⴞ癀.𑘿붼; [C1, P1, V5, V6]; xn--2nd6803c7q37d.xn--0ugb6122js83c; ;
xn--2nd6803c7q37d.xn--et3bn23n; [P1, V5, V6] # Ⴞ癀.𑘿붼
+Ⴞ癀。𑘿붼; Ⴞ癀.𑘿붼; [C1, P1, V5, V6]; xn--2nd6803c7q37d.xn--0ugb6122js83c; ;
xn--2nd6803c7q37d.xn--et3bn23n; [P1, V5, V6] # Ⴞ癀.𑘿붼
+Ⴞ癀。𑘿붼; Ⴞ癀.𑘿붼; [C1, P1, V5, V6]; xn--2nd6803c7q37d.xn--0ugb6122js83c; ;
xn--2nd6803c7q37d.xn--et3bn23n; [P1, V5, V6] # Ⴞ癀.𑘿붼
+ⴞ癀。𑘿붼; ⴞ癀.𑘿붼; [C1, P1, V5, V6]; xn--mlju35u7qx2f.xn--0ugb6122js83c; ;
xn--mlju35u7qx2f.xn--et3bn23n; [P1, V5, V6] # ⴞ癀.𑘿붼
+ⴞ癀。𑘿붼; ⴞ癀.𑘿붼; [C1, P1, V5, V6]; xn--mlju35u7qx2f.xn--0ugb6122js83c; ;
xn--mlju35u7qx2f.xn--et3bn23n; [P1, V5, V6] # ⴞ癀.𑘿붼
+xn--mlju35u7qx2f.xn--et3bn23n; ⴞ癀.𑘿붼; [V5, V6];
xn--mlju35u7qx2f.xn--et3bn23n; ; ; # ⴞ癀.𑘿붼
+xn--mlju35u7qx2f.xn--0ugb6122js83c; ⴞ癀.𑘿붼; [C1, V5, V6];
xn--mlju35u7qx2f.xn--0ugb6122js83c; ; ; # ⴞ癀.𑘿붼
+xn--2nd6803c7q37d.xn--et3bn23n; Ⴞ癀.𑘿붼; [V5, V6];
xn--2nd6803c7q37d.xn--et3bn23n; ; ; # Ⴞ癀.𑘿붼
+xn--2nd6803c7q37d.xn--0ugb6122js83c; Ⴞ癀.𑘿붼; [C1, V5, V6];
xn--2nd6803c7q37d.xn--0ugb6122js83c; ; ; # Ⴞ癀.𑘿붼
+ⴞ癀。𑘿붼; ⴞ癀.𑘿붼; [C1, P1, V5, V6]; xn--mlju35u7qx2f.xn--0ugb6122js83c; ;
xn--mlju35u7qx2f.xn--et3bn23n; [P1, V5, V6] # ⴞ癀.𑘿붼
+ⴞ癀。𑘿붼; ⴞ癀.𑘿붼; [C1, P1, V5, V6]; xn--mlju35u7qx2f.xn--0ugb6122js83c; ;
xn--mlju35u7qx2f.xn--et3bn23n; [P1, V5, V6] # ⴞ癀.𑘿붼
+-்。ڹ; -்.ڹ; [B6, P1, V6]; xn----mze84808x.xn--skb; ; ; # -்.ڹ
+xn----mze84808x.xn--skb; -்.ڹ; [B6, V6]; xn----mze84808x.xn--skb; ; ; # -்.ڹ
+ᡃ𝟧≯ᠣ.氁ꁫ; ᡃ5≯ᠣ.氁ꁫ; [P1, V6]; xn--5-24jyf768b.xn--lqw213ime95g; ; ; # ᡃ5≯ᠣ.氁ꁫ
+ᡃ𝟧≯ᠣ.氁ꁫ; ᡃ5≯ᠣ.氁ꁫ; [P1, V6]; xn--5-24jyf768b.xn--lqw213ime95g; ; ; # ᡃ5≯ᠣ.氁ꁫ
+ᡃ5≯ᠣ.氁ꁫ; ; [P1, V6]; xn--5-24jyf768b.xn--lqw213ime95g; ; ; # ᡃ5≯ᠣ.氁ꁫ
+ᡃ5≯ᠣ.氁ꁫ; ᡃ5≯ᠣ.氁ꁫ; [P1, V6]; xn--5-24jyf768b.xn--lqw213ime95g; ; ; # ᡃ5≯ᠣ.氁ꁫ
+xn--5-24jyf768b.xn--lqw213ime95g; ᡃ5≯ᠣ.氁ꁫ; [V6];
xn--5-24jyf768b.xn--lqw213ime95g; ; ; # ᡃ5≯ᠣ.氁ꁫ
+𐹬𝩇.ྲྀ; 𐹬𝩇.ྲྀ; [B1, B3, B6, V5]; xn--ko0d8295a.xn--zed3h; ; ; # 𐹬𝩇.ྲྀ
+𐹬𝩇.ྲྀ; 𐹬𝩇.ྲྀ; [B1, B3, B6, V5]; xn--ko0d8295a.xn--zed3h; ; ; # 𐹬𝩇.ྲྀ
+𐹬𝩇.ྲྀ; ; [B1, B3, B6, V5]; xn--ko0d8295a.xn--zed3h; ; ; # 𐹬𝩇.ྲྀ
+xn--ko0d8295a.xn--zed3h; 𐹬𝩇.ྲྀ; [B1, B3, B6, V5]; xn--ko0d8295a.xn--zed3h; ; ;
# 𐹬𝩇.ྲྀ
+-𑈶⒏.⒎𰛢; -𑈶⒏.⒎𰛢; [P1, V3, V6]; xn----scp6252h.xn--zshy411yzpx2d; ; ; # -𑈶⒏.⒎𰛢
+-𑈶8..7.𰛢; ; [P1, V3, V6, X4_2]; xn---8-bv5o..7.xn--c35nf1622b; [P1, V3, V6,
A4_2]; ; # -𑈶8..7.𰛢
+xn---8-bv5o..7.xn--c35nf1622b; -𑈶8..7.𰛢; [V3, V6, X4_2];
xn---8-bv5o..7.xn--c35nf1622b; [V3, V6, A4_2]; ; # -𑈶8..7.𰛢
+xn----scp6252h.xn--zshy411yzpx2d; -𑈶⒏.⒎𰛢; [V3, V6];
xn----scp6252h.xn--zshy411yzpx2d; ; ; # -𑈶⒏.⒎𰛢
+Ⴁ畝.≮; Ⴁ畝.≮; [C1, C2, P1, V6]; xn--8md700fea3748f.xn--gdh; ;
xn--8md0962c.xn--gdh; [P1, V6] # Ⴁ畝.≮
+Ⴁ畝.≮; Ⴁ畝.≮; [C1, C2, P1, V6]; xn--8md700fea3748f.xn--gdh; ;
xn--8md0962c.xn--gdh; [P1, V6] # Ⴁ畝.≮
+Ⴁ畝.≮; ; [C1, C2, P1, V6]; xn--8md700fea3748f.xn--gdh; ;
xn--8md0962c.xn--gdh; [P1, V6] # Ⴁ畝.≮
+Ⴁ畝.≮; Ⴁ畝.≮; [C1, C2, P1, V6]; xn--8md700fea3748f.xn--gdh; ;
xn--8md0962c.xn--gdh; [P1, V6] # Ⴁ畝.≮
+ⴁ畝.≮; ⴁ畝.≮; [C1, C2, P1, V6]; xn--0ugc160hb36e.xn--gdh; ;
xn--skjy82u.xn--gdh; [P1, V6] # ⴁ畝.≮
+ⴁ畝.≮; ; [C1, C2, P1, V6]; xn--0ugc160hb36e.xn--gdh; ; xn--skjy82u.xn--gdh;
[P1, V6] # ⴁ畝.≮
+xn--skjy82u.xn--gdh; ⴁ畝.≮; [V6]; xn--skjy82u.xn--gdh; ; ; # ⴁ畝.≮
+xn--0ugc160hb36e.xn--gdh; ⴁ畝.≮; [C1, C2, V6]; xn--0ugc160hb36e.xn--gdh; ; ;
# ⴁ畝.≮
+xn--8md0962c.xn--gdh; Ⴁ畝.≮; [V6]; xn--8md0962c.xn--gdh; ; ; # Ⴁ畝.≮
+xn--8md700fea3748f.xn--gdh; Ⴁ畝.≮; [C1, C2, V6]; xn--8md700fea3748f.xn--gdh;
; ; # Ⴁ畝.≮
+ⴁ畝.≮; ⴁ畝.≮; [C1, C2, P1, V6]; xn--0ugc160hb36e.xn--gdh; ;
xn--skjy82u.xn--gdh; [P1, V6] # ⴁ畝.≮
+ⴁ畝.≮; ⴁ畝.≮; [C1, C2, P1, V6]; xn--0ugc160hb36e.xn--gdh; ;
xn--skjy82u.xn--gdh; [P1, V6] # ⴁ畝.≮
+歷。𐹻≯; 歷.𐹻≯; [B1, C2, P1, V6]; xn--nmw.xn--1ugx6gs128a1134j; ;
xn--nmw.xn--hdh7804gdms2h; [B1, P1, V6] # 歷.𐹻≯
+歷。𐹻≯; 歷.𐹻≯; [B1, C2, P1, V6]; xn--nmw.xn--1ugx6gs128a1134j; ;
xn--nmw.xn--hdh7804gdms2h; [B1, P1, V6] # 歷.𐹻≯
+歷。𐹻≯; 歷.𐹻≯; [B1, C2, P1, V6]; xn--nmw.xn--1ugx6gs128a1134j; ;
xn--nmw.xn--hdh7804gdms2h; [B1, P1, V6] # 歷.𐹻≯
+歷。𐹻≯; 歷.𐹻≯; [B1, C2, P1, V6]; xn--nmw.xn--1ugx6gs128a1134j; ;
xn--nmw.xn--hdh7804gdms2h; [B1, P1, V6] # 歷.𐹻≯
+xn--nmw.xn--hdh7804gdms2h; 歷.𐹻≯; [B1, V6]; xn--nmw.xn--hdh7804gdms2h; ; ; #
歷.𐹻≯
+xn--nmw.xn--1ugx6gs128a1134j; 歷.𐹻≯; [B1, C2, V6];
xn--nmw.xn--1ugx6gs128a1134j; ; ; # 歷.𐹻≯
+໋.鎁; ໋.鎁; [C2, P1, V5, V6]; xn--t8c059f.xn--iz4a43209d; ;
xn--t8c.xn--iz4a43209d; [P1, V5, V6] # ໋.鎁
+໋.鎁; ; [C2, P1, V5, V6]; xn--t8c059f.xn--iz4a43209d; ;
xn--t8c.xn--iz4a43209d; [P1, V5, V6] # ໋.鎁
+xn--t8c.xn--iz4a43209d; ໋.鎁; [V5, V6]; xn--t8c.xn--iz4a43209d; ; ; # ໋.鎁
+xn--t8c059f.xn--iz4a43209d; ໋.鎁; [C2, V5, V6]; xn--t8c059f.xn--iz4a43209d; ;
; # ໋.鎁
+𞤀。𱘅; 𞤢.𱘅; [B1, B5, B6, C1, C2, P1, V6]; xn--0ugb45126a.xn--wh0dj799f; ;
xn--9d6h.xn--wh0dj799f; [B5, B6, P1, V6] # 𞤢.
+𞤀。𱘅; 𞤢.𱘅; [B1, B5, B6, C1, C2, P1, V6]; xn--0ugb45126a.xn--wh0dj799f; ;
xn--9d6h.xn--wh0dj799f; [B5, B6, P1, V6] # 𞤢.
+𞤢。𱘅; 𞤢.𱘅; [B1, B5, B6, C1, C2, P1, V6]; xn--0ugb45126a.xn--wh0dj799f; ;
xn--9d6h.xn--wh0dj799f; [B5, B6, P1, V6] # 𞤢.
+xn--9d6h.xn--wh0dj799f; 𞤢.𱘅; [B5, B6, V6]; xn--9d6h.xn--wh0dj799f; ; ; # 𞤢.
+xn--0ugb45126a.xn--wh0dj799f; 𞤢.𱘅; [B1, B5, B6, C1, C2, V6];
xn--0ugb45126a.xn--wh0dj799f; ; ; # 𞤢.
+𞤢。𱘅; 𞤢.𱘅; [B1, B5, B6, C1, C2, P1, V6]; xn--0ugb45126a.xn--wh0dj799f; ;
xn--9d6h.xn--wh0dj799f; [B5, B6, P1, V6] # 𞤢.
+ب≠𝟫-.ς⒍𐹦≠; ب≠9-.ς⒍𐹦≠; [B3, B5, B6, P1, V3, V6];
xn--9--etd0100a.xn--3xa097mzpbzz04b; ; xn--9--etd0100a.xn--4xa887mzpbzz04b; #
ب≠9-.ς⒍𐹦≠
+ب≠𝟫-.ς⒍𐹦≠; ب≠9-.ς⒍𐹦≠; [B3, B5, B6, P1, V3, V6];
xn--9--etd0100a.xn--3xa097mzpbzz04b; ; xn--9--etd0100a.xn--4xa887mzpbzz04b; #
ب≠9-.ς⒍𐹦≠
+ب≠9-.ς6.𐹦≠; ; [B1, B3, P1, V3, V6]; xn--9--etd0100a.xn--6-xmb.xn--1ch8704g; ;
xn--9--etd0100a.xn--6-zmb.xn--1ch8704g; # ب≠9-.ς6.𐹦≠
+ب≠9-.ς6.𐹦≠; ب≠9-.ς6.𐹦≠; [B1, B3, P1, V3, V6];
xn--9--etd0100a.xn--6-xmb.xn--1ch8704g; ;
xn--9--etd0100a.xn--6-zmb.xn--1ch8704g; # ب≠9-.ς6.𐹦≠
+ب≠9-.Σ6.𐹦≠; ب≠9-.σ6.𐹦≠; [B1, B3, P1, V3, V6];
xn--9--etd0100a.xn--6-zmb.xn--1ch8704g; ; ; # ب≠9-.σ6.𐹦≠
+ب≠9-.Σ6.𐹦≠; ب≠9-.σ6.𐹦≠; [B1, B3, P1, V3, V6];
xn--9--etd0100a.xn--6-zmb.xn--1ch8704g; ; ; # ب≠9-.σ6.𐹦≠
+ب≠9-.σ6.𐹦≠; ; [B1, B3, P1, V3, V6]; xn--9--etd0100a.xn--6-zmb.xn--1ch8704g; ;
; # ب≠9-.σ6.𐹦≠
+ب≠9-.σ6.𐹦≠; ب≠9-.σ6.𐹦≠; [B1, B3, P1, V3, V6];
xn--9--etd0100a.xn--6-zmb.xn--1ch8704g; ; ; # ب≠9-.σ6.𐹦≠
+xn--9--etd0100a.xn--6-zmb.xn--1ch8704g; ب≠9-.σ6.𐹦≠; [B1, B3, V3, V6];
xn--9--etd0100a.xn--6-zmb.xn--1ch8704g; ; ; # ب≠9-.σ6.𐹦≠
+xn--9--etd0100a.xn--6-xmb.xn--1ch8704g; ب≠9-.ς6.𐹦≠; [B1, B3, V3, V6];
xn--9--etd0100a.xn--6-xmb.xn--1ch8704g; ; ; # ب≠9-.ς6.𐹦≠
+ب≠𝟫-.Σ⒍𐹦≠; ب≠9-.σ⒍𐹦≠; [B3, B5, B6, P1, V3, V6];
xn--9--etd0100a.xn--4xa887mzpbzz04b; ; ; # ب≠9-.σ⒍𐹦≠
+ب≠𝟫-.Σ⒍𐹦≠; ب≠9-.σ⒍𐹦≠; [B3, B5, B6, P1, V3, V6];
xn--9--etd0100a.xn--4xa887mzpbzz04b; ; ; # ب≠9-.σ⒍𐹦≠
+ب≠𝟫-.σ⒍𐹦≠; ب≠9-.σ⒍𐹦≠; [B3, B5, B6, P1, V3, V6];
xn--9--etd0100a.xn--4xa887mzpbzz04b; ; ; # ب≠9-.σ⒍𐹦≠
+ب≠𝟫-.σ⒍𐹦≠; ب≠9-.σ⒍𐹦≠; [B3, B5, B6, P1, V3, V6];
xn--9--etd0100a.xn--4xa887mzpbzz04b; ; ; # ب≠9-.σ⒍𐹦≠
+xn--9--etd0100a.xn--4xa887mzpbzz04b; ب≠9-.σ⒍𐹦≠; [B3, B5, B6, V3, V6];
xn--9--etd0100a.xn--4xa887mzpbzz04b; ; ; # ب≠9-.σ⒍𐹦≠
+xn--9--etd0100a.xn--3xa097mzpbzz04b; ب≠9-.ς⒍𐹦≠; [B3, B5, B6, V3, V6];
xn--9--etd0100a.xn--3xa097mzpbzz04b; ; ; # ب≠9-.ς⒍𐹦≠
+.-ᡢ֒𝨠; ; [P1, V3, V6]; xn--ep37b.xn----hec165lho83b; ; ; # .-ᡢ֒𝨠
+xn--ep37b.xn----hec165lho83b; .-ᡢ֒𝨠; [V3, V6]; xn--ep37b.xn----hec165lho83b;
; ; # .-ᡢ֒𝨠
+ۋ⒈ß󠄽。-; ۋ⒈ß.-; [B2, B3, B6, P1, V3, V6]; xn--zca541ato3a.xn----q001f; ;
xn--ss-d7d6651a.xn----q001f; # ۋ⒈ß.-
+ۋ1.ß󠄽。-; ۋ1.ß.-; [B6, P1, V3, V6]; xn--1-cwc.xn--zca.xn----q001f; ;
xn--1-cwc.ss.xn----q001f; # ۋ1.ß.-
+ۋ1.SS󠄽。-; ۋ1.ss.-; [B6, P1, V3, V6]; xn--1-cwc.ss.xn----q001f; ; ; # ۋ1.ss.-
+ۋ1.ss󠄽。-; ۋ1.ss.-; [B6, P1, V3, V6]; xn--1-cwc.ss.xn----q001f; ; ; # ۋ1.ss.-
+ۋ1.Ss󠄽。-; ۋ1.ss.-; [B6, P1, V3, V6]; xn--1-cwc.ss.xn----q001f; ; ; # ۋ1.ss.-
+xn--1-cwc.ss.xn----q001f; ۋ1.ss.-; [B6, V3, V6]; xn--1-cwc.ss.xn----q001f; ;
; # ۋ1.ss.-
+xn--1-cwc.xn--zca.xn----q001f; ۋ1.ß.-; [B6, V3, V6];
xn--1-cwc.xn--zca.xn----q001f; ; ; # ۋ1.ß.-
+ۋ⒈SS󠄽。-; ۋ⒈ss.-; [B2, B3, B6, P1, V3, V6]; xn--ss-d7d6651a.xn----q001f; ; ;
# ۋ⒈ss.-
+ۋ⒈ss󠄽。-; ۋ⒈ss.-; [B2, B3, B6, P1, V3, V6]; xn--ss-d7d6651a.xn----q001f; ; ;
# ۋ⒈ss.-
+ۋ⒈Ss󠄽。-; ۋ⒈ss.-; [B2, B3, B6, P1, V3, V6]; xn--ss-d7d6651a.xn----q001f; ; ;
# ۋ⒈ss.-
+xn--ss-d7d6651a.xn----q001f; ۋ⒈ss.-; [B2, B3, B6, V3, V6];
xn--ss-d7d6651a.xn----q001f; ; ; # ۋ⒈ss.-
+xn--zca541ato3a.xn----q001f; ۋ⒈ß.-; [B2, B3, B6, V3, V6];
xn--zca541ato3a.xn----q001f; ; ; # ۋ⒈ß.-
+.᮪ςႦ; .᮪ςႦ; [C2, P1, V5, V6]; xn--nu4s.xn--3xa417dxriome; ;
xn--nu4s.xn--4xa217dxri; [P1, V5, V6] # .᮪ςႦ
+.᮪ςႦ; ; [C2, P1, V5, V6]; xn--nu4s.xn--3xa417dxriome; ;
xn--nu4s.xn--4xa217dxri; [P1, V5, V6] # .᮪ςႦ
+.᮪ςⴆ; ; [C2, P1, V5, V6]; xn--nu4s.xn--3xa353jk8cs1q; ;
xn--nu4s.xn--4xa153j7im; [P1, V5, V6] # .᮪ςⴆ
+.᮪ΣႦ; .᮪σႦ; [C2, P1, V5, V6]; xn--nu4s.xn--4xa217dxriome; ;
xn--nu4s.xn--4xa217dxri; [P1, V5, V6] # .᮪σႦ
+.᮪σⴆ; ; [C2, P1, V5, V6]; xn--nu4s.xn--4xa153jk8cs1q; ;
xn--nu4s.xn--4xa153j7im; [P1, V5, V6] # .᮪σⴆ
+.᮪Σⴆ; .᮪σⴆ; [C2, P1, V5, V6]; xn--nu4s.xn--4xa153jk8cs1q; ;
xn--nu4s.xn--4xa153j7im; [P1, V5, V6] # .᮪σⴆ
+xn--nu4s.xn--4xa153j7im; .᮪σⴆ; [V5, V6]; xn--nu4s.xn--4xa153j7im; ; ; # .᮪σⴆ
+xn--nu4s.xn--4xa153jk8cs1q; .᮪σⴆ; [C2, V5, V6]; xn--nu4s.xn--4xa153jk8cs1q;
; ; # .᮪σⴆ
+xn--nu4s.xn--4xa217dxri; .᮪σႦ; [V5, V6]; xn--nu4s.xn--4xa217dxri; ; ; # .᮪σႦ
+xn--nu4s.xn--4xa217dxriome; .᮪σႦ; [C2, V5, V6]; xn--nu4s.xn--4xa217dxriome;
; ; # .᮪σႦ
+xn--nu4s.xn--3xa353jk8cs1q; .᮪ςⴆ; [C2, V5, V6]; xn--nu4s.xn--3xa353jk8cs1q;
; ; # .᮪ςⴆ
+xn--nu4s.xn--3xa417dxriome; .᮪ςႦ; [C2, V5, V6]; xn--nu4s.xn--3xa417dxriome;
; ; # .᮪ςႦ
+.᮪ςⴆ; .᮪ςⴆ; [C2, P1, V5, V6]; xn--nu4s.xn--3xa353jk8cs1q; ;
xn--nu4s.xn--4xa153j7im; [P1, V5, V6] # .᮪ςⴆ
+.᮪ΣႦ; .᮪σႦ; [C2, P1, V5, V6]; xn--nu4s.xn--4xa217dxriome; ;
xn--nu4s.xn--4xa217dxri; [P1, V5, V6] # .᮪σႦ
+.᮪σⴆ; .᮪σⴆ; [C2, P1, V5, V6]; xn--nu4s.xn--4xa153jk8cs1q; ;
xn--nu4s.xn--4xa153j7im; [P1, V5, V6] # .᮪σⴆ
+.᮪Σⴆ; .᮪σⴆ; [C2, P1, V5, V6]; xn--nu4s.xn--4xa153jk8cs1q; ;
xn--nu4s.xn--4xa153j7im; [P1, V5, V6] # .᮪σⴆ
+⾆.𝈴; 舌.𝈴; [B1, B5, B6, P1, V6]; xn--l0b9413d.xn--kl1h; ; ; # 舌.𝈴
+舌.𝈴; ; [B1, B5, B6, P1, V6]; xn--l0b9413d.xn--kl1h; ; ; # 舌.𝈴
+xn--l0b9413d.xn--kl1h; 舌.𝈴; [B1, B5, B6, V6]; xn--l0b9413d.xn--kl1h; ; ; #
舌.𝈴
+⫞𐹶𖫴。⭠⒈; ⫞𐹶𖫴.⭠⒈; [B1, P1, V6]; xn--53ix188et88b.xn--tsh52w; ; ; # ⫞𐹶𖫴.⭠⒈
+⫞𐹶𖫴。⭠1.; ⫞𐹶𖫴.⭠1.; [B1]; xn--53ix188et88b.xn--1-h6r.; ; ; # ⫞𐹶𖫴.⭠1.
+xn--53ix188et88b.xn--1-h6r.; ⫞𐹶𖫴.⭠1.; [B1]; xn--53ix188et88b.xn--1-h6r.; ; ;
# ⫞𐹶𖫴.⭠1.
+xn--53ix188et88b.xn--tsh52w; ⫞𐹶𖫴.⭠⒈; [B1, V6]; xn--53ix188et88b.xn--tsh52w; ;
; # ⫞𐹶𖫴.⭠⒈
+⒈ꫬ︒.્; ⒈ꫬ︒.્; [C1, P1, V5, V6]; xn--0ug78o720myr1c.xn--mfc; ;
xn--tsh0720cse8b.xn--mfc; [P1, V5, V6] # ⒈ꫬ︒.્
+1.ꫬ。.્; 1.ꫬ..્; [C1, V5, X4_2]; 1.xn--0ug7185c..xn--mfc; [C1, V5, A4_2];
1.xn--sv9a..xn--mfc; [V5, A4_2] # 1.ꫬ..્
+1.xn--sv9a..xn--mfc; 1.ꫬ..્; [V5, X4_2]; 1.xn--sv9a..xn--mfc; [V5, A4_2]; ; #
1.ꫬ..્
+1.xn--0ug7185c..xn--mfc; 1.ꫬ..્; [C1, V5, X4_2]; 1.xn--0ug7185c..xn--mfc;
[C1, V5, A4_2]; ; # 1.ꫬ..્
+xn--tsh0720cse8b.xn--mfc; ⒈ꫬ︒.્; [V5, V6]; xn--tsh0720cse8b.xn--mfc; ; ; #
⒈ꫬ︒.્
+xn--0ug78o720myr1c.xn--mfc; ⒈ꫬ︒.્; [C1, V5, V6]; xn--0ug78o720myr1c.xn--mfc;
; ; # ⒈ꫬ︒.્
+ె。䰀٨󠅼; ె.䰀٨; [B1, B3, B5, B6, P1, V5, V6]; xn--eqc.xn--hib5476aim6t; ; ; #
ె.䰀٨
+xn--eqc.xn--hib5476aim6t; ె.䰀٨; [B1, B3, B5, B6, V5, V6];
xn--eqc.xn--hib5476aim6t; ; ; # ె.䰀٨
+ß.᯲; ; [C2, P1, V5, V6]; xn--zca870n.xn--0zf22107b; ; ss.xn--0zf22107b; [P1,
V5, V6] # ß.᯲
+SS.᯲; ss.᯲; [C2, P1, V5, V6]; xn--ss-n1t.xn--0zf22107b; ;
ss.xn--0zf22107b; [P1, V5, V6] # ss.᯲
+ss.᯲; ; [C2, P1, V5, V6]; xn--ss-n1t.xn--0zf22107b; ; ss.xn--0zf22107b; [P1,
V5, V6] # ss.᯲
+Ss.᯲; ss.᯲; [C2, P1, V5, V6]; xn--ss-n1t.xn--0zf22107b; ;
ss.xn--0zf22107b; [P1, V5, V6] # ss.᯲
+ss.xn--0zf22107b; ss.᯲; [V5, V6]; ss.xn--0zf22107b; ; ; # ss.᯲
+xn--ss-n1t.xn--0zf22107b; ss.᯲; [C2, V5, V6]; xn--ss-n1t.xn--0zf22107b; ; ;
# ss.᯲
+xn--zca870n.xn--0zf22107b; ß.᯲; [C2, V5, V6]; xn--zca870n.xn--0zf22107b; ; ;
# ß.᯲
+𑓂≮.≮; ; [P1, V5, V6]; xn--0ugy6glz29a.xn--gdh; ; xn--gdhz656g.xn--gdh; # 𑓂≮.≮
+𑓂≮.≮; 𑓂≮.≮; [P1, V5, V6]; xn--0ugy6glz29a.xn--gdh; ; xn--gdhz656g.xn--gdh;
# 𑓂≮.≮
+xn--gdhz656g.xn--gdh; 𑓂≮.≮; [V5, V6]; xn--gdhz656g.xn--gdh; ; ; # 𑓂≮.≮
+xn--0ugy6glz29a.xn--gdh; 𑓂≮.≮; [V5, V6]; xn--0ugy6glz29a.xn--gdh; ; ; # 𑓂≮.≮
+🕼.ᅠ; 🕼.ᅠ; [P1, V6]; xn--my8h.xn--cl7c; ; ; # 🕼.
+🕼.ᅠ; ; [P1, V6]; xn--my8h.xn--psd; ; ; # 🕼.
+xn--my8h.xn--psd; 🕼.ᅠ; [V6]; xn--my8h.xn--psd; ; ; # 🕼.
+xn--my8h.xn--cl7c; 🕼.ᅠ; [V6]; xn--my8h.xn--cl7c; ; ; # 🕼.
+ᡔﶂ。; ᡔلحى.; [B5, B6, P1, V6]; xn--sgb9bq785p.xn--bc31b; ; ; # ᡔلحى.
+ᡔلحى。; ᡔلحى.; [B5, B6, P1, V6]; xn--sgb9bq785p.xn--bc31b; ; ; # ᡔلحى.
+xn--sgb9bq785p.xn--bc31b; ᡔلحى.; [B5, B6, V6]; xn--sgb9bq785p.xn--bc31b; ; ;
# ᡔلحى.
+爕.𝟰気; 爕.4気; [P1, V6]; xn--1zxq3199c.xn--4-678b; ; ; # 爕.4気
+爕.4気; ; [P1, V6]; xn--1zxq3199c.xn--4-678b; ; ; # 爕.4気
+xn--1zxq3199c.xn--4-678b; 爕.4気; [V6]; xn--1zxq3199c.xn--4-678b; ; ; # 爕.4気
+⒋𑍍Ⴝ-.්ֵ; ⒋𑍍Ⴝ-.්ֵ; [B1, P1, V3, V6]; xn----t1g323mnk9t.xn--ddb152b7y23b; ; ;
# ⒋𑍍Ⴝ-.්ֵ
+4.𑍍Ⴝ-.්ֵ; ; [B1, B6, P1, V3, V5, V6]; 4.xn----t1g9869q.xn--ddb152b7y23b; ; ;
# 4.𑍍Ⴝ-.්ֵ
+4.𑍍ⴝ-.්ֵ; ; [B1, B6, P1, V3, V5, V6]; 4.xn----wwsx259f.xn--ddb152b7y23b; ; ;
# 4.𑍍ⴝ-.්ֵ
+4.xn----wwsx259f.xn--ddb152b7y23b; 4.𑍍ⴝ-.්ֵ; [B1, B6, V3, V5, V6];
4.xn----wwsx259f.xn--ddb152b7y23b; ; ; # 4.𑍍ⴝ-.්ֵ
+4.xn----t1g9869q.xn--ddb152b7y23b; 4.𑍍Ⴝ-.්ֵ; [B1, B6, V3, V5, V6];
4.xn----t1g9869q.xn--ddb152b7y23b; ; ; # 4.𑍍Ⴝ-.්ֵ
+⒋𑍍ⴝ-.්ֵ; ⒋𑍍ⴝ-.්ֵ; [B1, P1, V3, V6]; xn----jcp487avl3w.xn--ddb152b7y23b; ; ;
# ⒋𑍍ⴝ-.්ֵ
+xn----jcp487avl3w.xn--ddb152b7y23b; ⒋𑍍ⴝ-.්ֵ; [B1, V3, V6];
xn----jcp487avl3w.xn--ddb152b7y23b; ; ; # ⒋𑍍ⴝ-.්ֵ
+xn----t1g323mnk9t.xn--ddb152b7y23b; ⒋𑍍Ⴝ-.්ֵ; [B1, V3, V6];
xn----t1g323mnk9t.xn--ddb152b7y23b; ; ; # ⒋𑍍Ⴝ-.්ֵ
+。--; .--; [P1, V2, V3, V6]; xn--2y75e.xn-----1l15eer88n; ; ; # .--
+xn--2y75e.xn-----1l15eer88n; .--; [V2, V3, V6];
xn--2y75e.xn-----1l15eer88n; ; ; # .--
+ߟ。꯭; ߟ.꯭; [B1, C1, C2]; xn--6sb394j.xn--0ug1126c; ; xn--6sb.xn--429a; [B1,
B3, B6, V5] # ߟ.꯭
+ߟ。꯭; ߟ.꯭; [B1, C1, C2]; xn--6sb394j.xn--0ug1126c; ; xn--6sb.xn--429a; [B1,
B3, B6, V5] # ߟ.꯭
+xn--6sb.xn--429a; ߟ.꯭; [B1, B3, B6, V5]; xn--6sb.xn--429a; ; ; # ߟ.꯭
+xn--6sb394j.xn--0ug1126c; ߟ.꯭; [B1, C1, C2]; xn--6sb394j.xn--0ug1126c; ; ;
# ߟ.꯭
+߿ࡎ。ᢍ𐫘; ߿ࡎ.ᢍ𐫘; [B5, B6, P1, V6]; xn--3tb2nz468k.xn--69e8615j5rn5d; ; ; #
߿ࡎ.ᢍ𐫘
+߿ࡎ。ᢍ𐫘; ߿ࡎ.ᢍ𐫘; [B5, B6, P1, V6]; xn--3tb2nz468k.xn--69e8615j5rn5d; ; ; #
߿ࡎ.ᢍ𐫘
+xn--3tb2nz468k.xn--69e8615j5rn5d; ߿ࡎ.ᢍ𐫘; [B5, B6, V6];
xn--3tb2nz468k.xn--69e8615j5rn5d; ; ; # ߿ࡎ.ᢍ𐫘
+ۭ𞺌𑄚᜔.ꡞࢷ; ۭم𑄚᜔.ꡞࢷ; [B1, B5, B6, V5]; xn--hhb94ag41b739u.xn--dzb5582f; ; ; #
ۭم𑄚᜔.ꡞࢷ
+ۭم𑄚᜔.ꡞࢷ; ; [B1, B5, B6, V5]; xn--hhb94ag41b739u.xn--dzb5582f; ; ; # ۭم𑄚᜔.ꡞࢷ
+xn--hhb94ag41b739u.xn--dzb5582f; ۭم𑄚᜔.ꡞࢷ; [B1, B5, B6, V5];
xn--hhb94ag41b739u.xn--dzb5582f; ; ; # ۭم𑄚᜔.ꡞࢷ
+킃𑘶ߜ。ςؼς; 킃𑘶ߜ.ςؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xaa51q; ;
xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.ςؼς
+킃𑘶ߜ。ςؼς; 킃𑘶ߜ.ςؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xaa51q; ;
xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.ςؼς
+킃𑘶ߜ。ςؼς; 킃𑘶ߜ.ςؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xaa51q; ;
xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.ςؼς
+킃𑘶ߜ。ςؼς; 킃𑘶ߜ.ςؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xaa51q; ;
xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.ςؼς
+킃𑘶ߜ。ΣؼΣ; 킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ;
# 킃𑘶ߜ.σؼσ
+킃𑘶ߜ。ΣؼΣ; 킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ;
# 킃𑘶ߜ.σؼσ
+킃𑘶ߜ。σؼσ; 킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ;
# 킃𑘶ߜ.σؼσ
+킃𑘶ߜ。σؼσ; 킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ;
# 킃𑘶ߜ.σؼσ
+킃𑘶ߜ。Σؼσ; 킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ;
# 킃𑘶ߜ.σؼσ
+킃𑘶ߜ。Σؼσ; 킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ;
# 킃𑘶ߜ.σؼσ
+xn--3sb7483hoyvbbe76g.xn--4xaa21q; 킃𑘶ߜ.σؼσ; [B5, B6, V6];
xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ; # 킃𑘶ߜ.σؼσ
+킃𑘶ߜ。Σؼς; 킃𑘶ߜ.σؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xab31q; ;
xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.σؼς
+킃𑘶ߜ。Σؼς; 킃𑘶ߜ.σؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xab31q; ;
xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.σؼς
+킃𑘶ߜ。σؼς; 킃𑘶ߜ.σؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xab31q; ;
xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.σؼς
+킃𑘶ߜ。σؼς; 킃𑘶ߜ.σؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xab31q; ;
xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.σؼς
+xn--3sb7483hoyvbbe76g.xn--3xab31q; 킃𑘶ߜ.σؼς; [B5, B6, V6];
xn--3sb7483hoyvbbe76g.xn--3xab31q; ; ; # 킃𑘶ߜ.σؼς
+xn--3sb7483hoyvbbe76g.xn--3xaa51q; 킃𑘶ߜ.ςؼς; [B5, B6, V6];
xn--3sb7483hoyvbbe76g.xn--3xaa51q; ; ; # 킃𑘶ߜ.ςؼς
+킃𑘶ߜ。ΣؼΣ; 킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ;
# 킃𑘶ߜ.σؼσ
+킃𑘶ߜ。ΣؼΣ; 킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ;
# 킃𑘶ߜ.σؼσ
+킃𑘶ߜ。σؼσ; 킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ;
# 킃𑘶ߜ.σؼσ
+킃𑘶ߜ。σؼσ; 킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ;
# 킃𑘶ߜ.σؼσ
+킃𑘶ߜ。Σؼσ; 킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ;
# 킃𑘶ߜ.σؼσ
+킃𑘶ߜ。Σؼσ; 킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ;
# 킃𑘶ߜ.σؼσ
+킃𑘶ߜ。Σؼς; 킃𑘶ߜ.σؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xab31q; ;
xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.σؼς
+킃𑘶ߜ。Σؼς; 킃𑘶ߜ.σؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xab31q; ;
xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.σؼς
+킃𑘶ߜ。σؼς; 킃𑘶ߜ.σؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xab31q; ;
xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.σؼς
+킃𑘶ߜ。σؼς; 킃𑘶ߜ.σؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xab31q; ;
xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.σؼς
+蔰。ࣝ-𑈵; 蔰.ࣝ-𑈵; [P1, V6]; xn--sz1a.xn----mrd9984r3dl0i; ; ; # 蔰.ࣝ-𑈵
+xn--sz1a.xn----mrd9984r3dl0i; 蔰.ࣝ-𑈵; [V6]; xn--sz1a.xn----mrd9984r3dl0i; ; ;
# 蔰.ࣝ-𑈵
+ςჅ。ݚ; ςჅ.ݚ; [P1, V6]; xn--3xa677d.xn--epb; ; xn--4xa477d.xn--epb; # ςჅ.ݚ
+ςⴥ。ݚ; ςⴥ.ݚ; ; xn--3xa403s.xn--epb; ; xn--4xa203s.xn--epb; # ςⴥ.ݚ
+ΣჅ。ݚ; σჅ.ݚ; [P1, V6]; xn--4xa477d.xn--epb; ; ; # σჅ.ݚ
+σⴥ。ݚ; σⴥ.ݚ; ; xn--4xa203s.xn--epb; ; ; # σⴥ.ݚ
+Σⴥ。ݚ; σⴥ.ݚ; ; xn--4xa203s.xn--epb; ; ; # σⴥ.ݚ
+xn--4xa203s.xn--epb; σⴥ.ݚ; ; xn--4xa203s.xn--epb; ; ; # σⴥ.ݚ
+σⴥ.ݚ; ; ; xn--4xa203s.xn--epb; ; ; # σⴥ.ݚ
+ΣჅ.ݚ; σჅ.ݚ; [P1, V6]; xn--4xa477d.xn--epb; ; ; # σჅ.ݚ
+Σⴥ.ݚ; σⴥ.ݚ; ; xn--4xa203s.xn--epb; ; ; # σⴥ.ݚ
+xn--4xa477d.xn--epb; σჅ.ݚ; [V6]; xn--4xa477d.xn--epb; ; ; # σჅ.ݚ
+xn--3xa403s.xn--epb; ςⴥ.ݚ; ; xn--3xa403s.xn--epb; ; ; # ςⴥ.ݚ
+ςⴥ.ݚ; ; ; xn--3xa403s.xn--epb; ; xn--4xa203s.xn--epb; # ςⴥ.ݚ
+xn--3xa677d.xn--epb; ςჅ.ݚ; [V6]; xn--3xa677d.xn--epb; ; ; # ςჅ.ݚ
+్Ⴉ.᭲; ్Ⴉ.᭲; [B1, B3, B6, P1, V5, V6]; xn--lqc64t7t26c.xn--dwf; ; ; # ్Ⴉ.᭲
+్Ⴉ.᭲; ; [B1, B3, B6, P1, V5, V6]; xn--lqc64t7t26c.xn--dwf; ; ; # ్Ⴉ.᭲
+్ⴉ.᭲; ; [B1, B3, B6, P1, V5, V6]; xn--lqc478nlr02a.xn--dwf; ; ; # ్ⴉ.᭲
+xn--lqc478nlr02a.xn--dwf; ్ⴉ.᭲; [B1, B3, B6, V5, V6];
xn--lqc478nlr02a.xn--dwf; ; ; # ్ⴉ.᭲
+xn--lqc64t7t26c.xn--dwf; ్Ⴉ.᭲; [B1, B3, B6, V5, V6]; xn--lqc64t7t26c.xn--dwf;
; ; # ్Ⴉ.᭲
+్ⴉ.᭲; ్ⴉ.᭲; [B1, B3, B6, P1, V5, V6]; xn--lqc478nlr02a.xn--dwf; ; ; # ్ⴉ.᭲
+⮷≮󠄟。𐠄; ⮷≮.𐠄; [B1, P1, V6]; xn--gdh877a3513h.xn--pc9c; ; ; # ⮷≮.𐠄
+⮷≮󠄟。𐠄; ⮷≮.𐠄; [B1, P1, V6]; xn--gdh877a3513h.xn--pc9c; ; ; # ⮷≮.𐠄
+xn--gdh877a3513h.xn--pc9c; ⮷≮.𐠄; [B1, V6]; xn--gdh877a3513h.xn--pc9c; ; ; #
⮷≮.𐠄
+ڼ。ẏᡤ; ڼ.ẏᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ; xn--vkb.xn--08e172a;
[] # ڼ.ẏᡤ
+ڼ。ẏᡤ; ڼ.ẏᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ;
xn--vkb.xn--08e172a; [] # ڼ.ẏᡤ
+ڼ。ẏᡤ; ڼ.ẏᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ; xn--vkb.xn--08e172a;
[] # ڼ.ẏᡤ
+ڼ。ẏᡤ; ڼ.ẏᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ;
xn--vkb.xn--08e172a; [] # ڼ.ẏᡤ
+ڼ。Ẏᡤ; ڼ.ẏᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ;
xn--vkb.xn--08e172a; [] # ڼ.ẏᡤ
+ڼ。Ẏᡤ; ڼ.ẏᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ; xn--vkb.xn--08e172a;
[] # ڼ.ẏᡤ
+xn--vkb.xn--08e172a; ڼ.ẏᡤ; ; xn--vkb.xn--08e172a; ; ; # ڼ.ẏᡤ
+ڼ.ẏᡤ; ; ; xn--vkb.xn--08e172a; ; ; # ڼ.ẏᡤ
+ڼ.ẏᡤ; ڼ.ẏᡤ; ; xn--vkb.xn--08e172a; ; ; # ڼ.ẏᡤ
+ڼ.Ẏᡤ; ڼ.ẏᡤ; ; xn--vkb.xn--08e172a; ; ; # ڼ.ẏᡤ
+ڼ.Ẏᡤ; ڼ.ẏᡤ; ; xn--vkb.xn--08e172a; ; ; # ڼ.ẏᡤ
+xn--vkb.xn--08e172ax6aca; ڼ.ẏᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ; ;
# ڼ.ẏᡤ
+ڼ。Ẏᡤ; ڼ.ẏᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ;
xn--vkb.xn--08e172a; [] # ڼ.ẏᡤ
+ڼ。Ẏᡤ; ڼ.ẏᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ; xn--vkb.xn--08e172a;
[] # ڼ.ẏᡤ
+𐹹𑲛。්; 𐹹𑲛.්; [B1, P1, V6]; xn--xo0dg5v.xn--h1c39876d; ; ; # 𐹹𑲛.්
+xn--xo0dg5v.xn--h1c39876d; 𐹹𑲛.්; [B1, V6]; xn--xo0dg5v.xn--h1c39876d; ; ; #
𐹹𑲛.්
+-≠𑈵。嵕ﻱ۴꥓; -≠𑈵.嵕ي۴꥓; [B1, B5, P1, V3, V6]; xn----ufo4749h.xn--mhb45a235sns3c; ;
; # -≠𑈵.嵕ي۴꥓
+-≠𑈵。嵕ﻱ۴꥓; -≠𑈵.嵕ي۴꥓; [B1, B5, P1, V3, V6]; xn----ufo4749h.xn--mhb45a235sns3c;
; ; # -≠𑈵.嵕ي۴꥓
+-≠𑈵。嵕ي۴꥓; -≠𑈵.嵕ي۴꥓; [B1, B5, P1, V3, V6]; xn----ufo4749h.xn--mhb45a235sns3c; ;
; # -≠𑈵.嵕ي۴꥓
+-≠𑈵。嵕ي۴꥓; -≠𑈵.嵕ي۴꥓; [B1, B5, P1, V3, V6]; xn----ufo4749h.xn--mhb45a235sns3c;
; ; # -≠𑈵.嵕ي۴꥓
+xn----ufo4749h.xn--mhb45a235sns3c; -≠𑈵.嵕ي۴꥓; [B1, B5, V3, V6];
xn----ufo4749h.xn--mhb45a235sns3c; ; ; # -≠𑈵.嵕ي۴꥓
+𐹶ݮ.ہ≯; 𐹶ݮ.ہ≯; [B1, B3, C1, C2, P1, V6];
xn--ypb717jrx2o7v94a.xn--0kb660ka35v; ; xn--ypb5875khz9y.xn--0kb682l; [B3, B5,
B6, P1, V6] # 𐹶ݮ.ہ≯
+𐹶ݮ.ہ≯; 𐹶ݮ.ہ≯; [B1, B3, C1, C2, P1, V6];
xn--ypb717jrx2o7v94a.xn--0kb660ka35v; ; xn--ypb5875khz9y.xn--0kb682l; [B3, B5,
B6, P1, V6] # 𐹶ݮ.ہ≯
+𐹶ݮ.ہ≯; ; [B1, B3, C1, C2, P1, V6]; xn--ypb717jrx2o7v94a.xn--0kb660ka35v; ;
xn--ypb5875khz9y.xn--0kb682l; [B3, B5, B6, P1, V6] # 𐹶ݮ.ہ≯
+𐹶ݮ.ہ≯; 𐹶ݮ.ہ≯; [B1, B3, C1, C2, P1, V6];
xn--ypb717jrx2o7v94a.xn--0kb660ka35v; ; xn--ypb5875khz9y.xn--0kb682l; [B3, B5,
B6, P1, V6] # 𐹶ݮ.ہ≯
+xn--ypb5875khz9y.xn--0kb682l; 𐹶ݮ.ہ≯; [B3, B5, B6, V6];
xn--ypb5875khz9y.xn--0kb682l; ; ; # 𐹶ݮ.ہ≯
+xn--ypb717jrx2o7v94a.xn--0kb660ka35v; 𐹶ݮ.ہ≯; [B1, B3, C1, C2, V6];
xn--ypb717jrx2o7v94a.xn--0kb660ka35v; ; ; # 𐹶ݮ.ہ≯
+≮.឵ࡕ𐫔; ≮.឵ࡕ𐫔; [B1, P1, V5, V6]; xn--gdh.xn--kwb589e217p; ; ; # ≮.ࡕ𐫔
+≮.឵ࡕ𐫔; ≮.឵ࡕ𐫔; [B1, P1, V5, V6]; xn--gdh.xn--kwb589e217p; ; ; # ≮.ࡕ𐫔
+≮.឵ࡕ𐫔; ; [B1, P1, V5, V6]; xn--gdh.xn--kwb589e217p; ; ; # ≮.ࡕ𐫔
+≮.឵ࡕ𐫔; ≮.឵ࡕ𐫔; [B1, P1, V5, V6]; xn--gdh.xn--kwb589e217p; ; ; # ≮.ࡕ𐫔
+xn--gdh.xn--kwb589e217p; ≮.឵ࡕ𐫔; [B1, V5, V6]; xn--gdh.xn--kwb589e217p; ; ; #
≮.ࡕ𐫔
+𐩗。ႩႵ; 𐩗.ႩႵ; [B3, C2, P1, V6]; xn--1ug4933g.xn--hndy; ; xn--pt9c.xn--hndy;
[P1, V6] # 𐩗.ႩႵ
+𐩗。ႩႵ; 𐩗.ႩႵ; [B3, C2, P1, V6]; xn--1ug4933g.xn--hndy; ; xn--pt9c.xn--hndy;
[P1, V6] # 𐩗.ႩႵ
+𐩗。ⴉⴕ; 𐩗.ⴉⴕ; [B3, C2]; xn--1ug4933g.xn--0kjya; ; xn--pt9c.xn--0kjya; [] # 𐩗.ⴉⴕ
+𐩗。Ⴉⴕ; 𐩗.Ⴉⴕ; [B3, C2, P1, V6]; xn--1ug4933g.xn--hnd666l; ;
xn--pt9c.xn--hnd666l; [P1, V6] # 𐩗.Ⴉⴕ
+xn--pt9c.xn--hnd666l; 𐩗.Ⴉⴕ; [V6]; xn--pt9c.xn--hnd666l; ; ; # 𐩗.Ⴉⴕ
+xn--1ug4933g.xn--hnd666l; 𐩗.Ⴉⴕ; [B3, C2, V6]; xn--1ug4933g.xn--hnd666l; ; ;
# 𐩗.Ⴉⴕ
+xn--pt9c.xn--0kjya; 𐩗.ⴉⴕ; ; xn--pt9c.xn--0kjya; ; ; # 𐩗.ⴉⴕ
+𐩗.ⴉⴕ; ; ; xn--pt9c.xn--0kjya; ; ; # 𐩗.ⴉⴕ
+𐩗.ႩႵ; ; [P1, V6]; xn--pt9c.xn--hndy; ; ; # 𐩗.ႩႵ
+𐩗.Ⴉⴕ; ; [P1, V6]; xn--pt9c.xn--hnd666l; ; ; # 𐩗.Ⴉⴕ
+xn--pt9c.xn--hndy; 𐩗.ႩႵ; [V6]; xn--pt9c.xn--hndy; ; ; # 𐩗.ႩႵ
+xn--1ug4933g.xn--0kjya; 𐩗.ⴉⴕ; [B3, C2]; xn--1ug4933g.xn--0kjya; ; ; # 𐩗.ⴉⴕ
+xn--1ug4933g.xn--hndy; 𐩗.ႩႵ; [B3, C2, V6]; xn--1ug4933g.xn--hndy; ; ; # 𐩗.ႩႵ
+𐩗。ⴉⴕ; 𐩗.ⴉⴕ; [B3, C2]; xn--1ug4933g.xn--0kjya; ; xn--pt9c.xn--0kjya; [] # 𐩗.ⴉⴕ
+𐩗。Ⴉⴕ; 𐩗.Ⴉⴕ; [B3, C2, P1, V6]; xn--1ug4933g.xn--hnd666l; ;
xn--pt9c.xn--hnd666l; [P1, V6] # 𐩗.Ⴉⴕ
+ㄤ.̮ূ; ㄤ.̮ূ; [C1, P1, V5, V6]; xn--0uga242k.xn--vta284a9o563a; ;
xn--1fk.xn--vta284a9o563a; [P1, V5, V6] # ㄤ.̮ূ
+ㄤ.̮ূ; ; [C1, P1, V5, V6]; xn--0uga242k.xn--vta284a9o563a; ;
xn--1fk.xn--vta284a9o563a; [P1, V5, V6] # ㄤ.̮ূ
+xn--1fk.xn--vta284a9o563a; ㄤ.̮ূ; [V5, V6]; xn--1fk.xn--vta284a9o563a; ; ; #
ㄤ.̮ূ
+xn--0uga242k.xn--vta284a9o563a; ㄤ.̮ূ; [C1, V5, V6];
xn--0uga242k.xn--vta284a9o563a; ; ; # ㄤ.̮ূ
+𐋻。-𐫄Ⴗ; 𐋻.-𐫄Ⴗ; [B1, C1, P1, V3, V6]; xn--v97c.xn----i1g888ih12u; ;
xn--v97c.xn----i1g2513q; [B1, P1, V3, V6] # 𐋻.-𐫄Ⴗ
+𐋻。-𐫄Ⴗ; 𐋻.-𐫄Ⴗ; [B1, C1, P1, V3, V6]; xn--v97c.xn----i1g888ih12u; ;
xn--v97c.xn----i1g2513q; [B1, P1, V3, V6] # 𐋻.-𐫄Ⴗ
+𐋻。-𐫄ⴗ; 𐋻.-𐫄ⴗ; [B1, C1, V3]; xn--v97c.xn----sgnv20du99s; ;
xn--v97c.xn----lws0526f; [B1, V3] # 𐋻.-𐫄ⴗ
+xn--v97c.xn----lws0526f; 𐋻.-𐫄ⴗ; [B1, V3]; xn--v97c.xn----lws0526f; ; ; # 𐋻.-𐫄ⴗ
+xn--v97c.xn----sgnv20du99s; 𐋻.-𐫄ⴗ; [B1, C1, V3]; xn--v97c.xn----sgnv20du99s;
; ; # 𐋻.-𐫄ⴗ
+xn--v97c.xn----i1g2513q; 𐋻.-𐫄Ⴗ; [B1, V3, V6]; xn--v97c.xn----i1g2513q; ; ; #
𐋻.-𐫄Ⴗ
+xn--v97c.xn----i1g888ih12u; 𐋻.-𐫄Ⴗ; [B1, C1, V3, V6];
xn--v97c.xn----i1g888ih12u; ; ; # 𐋻.-𐫄Ⴗ
+𐋻。-𐫄ⴗ; 𐋻.-𐫄ⴗ; [B1, C1, V3]; xn--v97c.xn----sgnv20du99s; ;
xn--v97c.xn----lws0526f; [B1, V3] # 𐋻.-𐫄ⴗ
+🙑.≠; 🙑.≠; [B1, C1, P1, V6]; xn--bl0dh970b.xn--0ug83g; ;
xn--bl0dh970b.xn--1ch; [B1, P1, V6] # 🙑.≠
+🙑.≠; 🙑.≠; [B1, C1, P1, V6]; xn--bl0dh970b.xn--0ug83g; ;
xn--bl0dh970b.xn--1ch; [B1, P1, V6] # 🙑.≠
+🙑.≠; ; [B1, C1, P1, V6]; xn--bl0dh970b.xn--0ug83g; ; xn--bl0dh970b.xn--1ch;
[B1, P1, V6] # 🙑.≠
+🙑.≠; 🙑.≠; [B1, C1, P1, V6]; xn--bl0dh970b.xn--0ug83g; ;
xn--bl0dh970b.xn--1ch; [B1, P1, V6] # 🙑.≠
+xn--bl0dh970b.xn--1ch; 🙑.≠; [B1, V6]; xn--bl0dh970b.xn--1ch; ; ; # 🙑.≠
+xn--bl0dh970b.xn--0ug83g; 🙑.≠; [B1, C1, V6]; xn--bl0dh970b.xn--0ug83g; ; ;
# 🙑.≠
+ٌ᳒。⵿⧎; ٌ᳒.⵿⧎; [B1, B3, B6, P1, V5, V6]; xn--ohb646i.xn--ewi38jf765c; ; ; #
ٌ᳒.⵿⧎
+ٌ᳒。⵿⧎; ٌ᳒.⵿⧎; [B1, B3, B6, P1, V5, V6]; xn--ohb646i.xn--ewi38jf765c; ; ; #
ٌ᳒.⵿⧎
+xn--ohb646i.xn--ewi38jf765c; ٌ᳒.⵿⧎; [B1, B3, B6, V5, V6];
xn--ohb646i.xn--ewi38jf765c; ; ; # ٌ᳒.⵿⧎
+Ⴔ𝨨₃.𝟳𑂹ஂ; Ⴔ𝨨3.7𑂹ஂ; [P1, V6]; xn--3-b1g83426a35t0g.xn--7-cve6271r; ; ; #
Ⴔ𝨨3.7𑂹ஂ
+Ⴔ𝨨3.7𑂹ஂ; ; [P1, V6]; xn--3-b1g83426a35t0g.xn--7-cve6271r; ; ; # Ⴔ𝨨3.7𑂹ஂ
+ⴔ𝨨3.7𑂹ஂ; ; [P1, V6]; xn--3-ews6985n35s3g.xn--7-cve6271r; ; ; # ⴔ𝨨3.7𑂹ஂ
+xn--3-ews6985n35s3g.xn--7-cve6271r; ⴔ𝨨3.7𑂹ஂ; [V6];
xn--3-ews6985n35s3g.xn--7-cve6271r; ; ; # ⴔ𝨨3.7𑂹ஂ
+xn--3-b1g83426a35t0g.xn--7-cve6271r; Ⴔ𝨨3.7𑂹ஂ; [V6];
xn--3-b1g83426a35t0g.xn--7-cve6271r; ; ; # Ⴔ𝨨3.7𑂹ஂ
+ⴔ𝨨₃.𝟳𑂹ஂ; ⴔ𝨨3.7𑂹ஂ; [P1, V6]; xn--3-ews6985n35s3g.xn--7-cve6271r; ; ; #
ⴔ𝨨3.7𑂹ஂ
+䏈。⒈; 䏈.⒈; [C1, P1, V6]; xn--0ug491l.xn--0ug88oot66q; ;
xn--eco.xn--tsh21126d; [P1, V6] # 䏈.⒈
+䏈。1.; 䏈.1.; [C1, P1, V6]; xn--0ug491l.xn--1-rgn.xn--ms39a; ;
xn--eco.1.xn--ms39a; [P1, V6] # 䏈.1.
+xn--eco.1.xn--ms39a; 䏈.1.; [V6]; xn--eco.1.xn--ms39a; ; ; # 䏈.1.
+xn--0ug491l.xn--1-rgn.xn--ms39a; 䏈.1.; [C1, V6];
xn--0ug491l.xn--1-rgn.xn--ms39a; ; ; # 䏈.1.
+xn--eco.xn--tsh21126d; 䏈.⒈; [V6]; xn--eco.xn--tsh21126d; ; ; # 䏈.⒈
+xn--0ug491l.xn--0ug88oot66q; 䏈.⒈; [C1, V6]; xn--0ug491l.xn--0ug88oot66q; ;
; # 䏈.⒈
+1꫶ß𑲥。ᷘ; 1꫶ß𑲥.ᷘ; [V5]; xn--1-qfa2471kdb0d.xn--weg; ; xn--1ss-ir6ln166b.xn--weg;
# 1꫶ß𑲥.ᷘ
+1꫶ß𑲥。ᷘ; 1꫶ß𑲥.ᷘ; [V5]; xn--1-qfa2471kdb0d.xn--weg; ; xn--1ss-ir6ln166b.xn--weg;
# 1꫶ß𑲥.ᷘ
+1꫶SS𑲥。ᷘ; 1꫶ss𑲥.ᷘ; [V5]; xn--1ss-ir6ln166b.xn--weg; ; ; # 1꫶ss𑲥.ᷘ
+1꫶ss𑲥。ᷘ; 1꫶ss𑲥.ᷘ; [V5]; xn--1ss-ir6ln166b.xn--weg; ; ; # 1꫶ss𑲥.ᷘ
+xn--1ss-ir6ln166b.xn--weg; 1꫶ss𑲥.ᷘ; [V5]; xn--1ss-ir6ln166b.xn--weg; ; ; #
1꫶ss𑲥.ᷘ
+xn--1-qfa2471kdb0d.xn--weg; 1꫶ß𑲥.ᷘ; [V5]; xn--1-qfa2471kdb0d.xn--weg; ; ; #
1꫶ß𑲥.ᷘ
+1꫶SS𑲥。ᷘ; 1꫶ss𑲥.ᷘ; [V5]; xn--1ss-ir6ln166b.xn--weg; ; ; # 1꫶ss𑲥.ᷘ
+1꫶ss𑲥。ᷘ; 1꫶ss𑲥.ᷘ; [V5]; xn--1ss-ir6ln166b.xn--weg; ; ; # 1꫶ss𑲥.ᷘ
+1꫶Ss𑲥。ᷘ; 1꫶ss𑲥.ᷘ; [V5]; xn--1ss-ir6ln166b.xn--weg; ; ; # 1꫶ss𑲥.ᷘ
+1꫶Ss𑲥。ᷘ; 1꫶ss𑲥.ᷘ; [V5]; xn--1ss-ir6ln166b.xn--weg; ; ; # 1꫶ss𑲥.ᷘ
+್。ݼ⒈; ್.ݼ⒈; [B1, C2, P1, V6]; xn--8tc969gzn94a4lm8a.xn--dqb689l; ;
xn--8tc9875v5is1a.xn--dqb689l; [B5, B6, P1, V6] # ್.ݼ⒈
+್。ݼ1.; ್.ݼ1.; [B1, C2, P1, V6]; xn--8tc969gzn94a4lm8a.xn--1-g6c.; ;
xn--8tc9875v5is1a.xn--1-g6c.; [B5, B6, P1, V6] # ್.ݼ1.
+xn--8tc9875v5is1a.xn--1-g6c.; ್.ݼ1.; [B5, B6, V6];
xn--8tc9875v5is1a.xn--1-g6c.; ; ; # ್.ݼ1.
+xn--8tc969gzn94a4lm8a.xn--1-g6c.; ್.ݼ1.; [B1, C2, V6];
xn--8tc969gzn94a4lm8a.xn--1-g6c.; ; ; # ್.ݼ1.
+xn--8tc9875v5is1a.xn--dqb689l; ್.ݼ⒈; [B5, B6, V6];
xn--8tc9875v5is1a.xn--dqb689l; ; ; # ್.ݼ⒈
+xn--8tc969gzn94a4lm8a.xn--dqb689l; ್.ݼ⒈; [B1, C2, V6];
xn--8tc969gzn94a4lm8a.xn--dqb689l; ; ; # ್.ݼ⒈
+᪶.𞤳ߗ; ᪶.𞤳ߗ; [B1, B2, B3, B6, P1, V5, V6]; xn--zqf.xn--ysb9657vuiz5bj0ep; ;
; # ᪶.𞤳ߗ
+᪶.𞤳ߗ; ; [B1, B2, B3, B6, P1, V5, V6]; xn--zqf.xn--ysb9657vuiz5bj0ep; ; ; #
᪶.𞤳ߗ
+᪶.𞤑ߗ; ᪶.𞤳ߗ; [B1, B2, B3, B6, P1, V5, V6]; xn--zqf.xn--ysb9657vuiz5bj0ep; ;
; # ᪶.𞤳ߗ
+xn--zqf.xn--ysb9657vuiz5bj0ep; ᪶.𞤳ߗ; [B1, B2, B3, B6, V5, V6];
xn--zqf.xn--ysb9657vuiz5bj0ep; ; ; # ᪶.𞤳ߗ
+᪶.𞤑ߗ; ᪶.𞤳ߗ; [B1, B2, B3, B6, P1, V5, V6]; xn--zqf.xn--ysb9657vuiz5bj0ep; ;
; # ᪶.𞤳ߗ
+ࡂ⒈.8ݰ; ࡂ⒈.8ݰ; [B1, P1, V6]; xn--0vb095ldg52a.xn--8-s5c22427ox454a; ; ;
# ࡂ⒈.8ݰ
+ࡂ1..8ݰ; ; [B1, P1, V6, X4_2]; xn--1-rid26318a..xn--8-s5c22427ox454a; [B1,
P1, V6, A4_2]; ; # ࡂ1..8ݰ
+xn--1-rid26318a..xn--8-s5c22427ox454a; ࡂ1..8ݰ; [B1, V6, X4_2];
xn--1-rid26318a..xn--8-s5c22427ox454a; [B1, V6, A4_2]; ; # ࡂ1..8ݰ
+xn--0vb095ldg52a.xn--8-s5c22427ox454a; ࡂ⒈.8ݰ; [B1, V6];
xn--0vb095ldg52a.xn--8-s5c22427ox454a; ; ; # ࡂ⒈.8ݰ
+͡𐫫ͩᡷ。-鞰; ͡𐫫ͩᡷ.-鞰; [B1, P1, V3, V5, V6]; xn--cvaq482npv5t.xn----yg7dt1332g; ;
; # ͡𐫫ͩᡷ.-鞰
+xn--cvaq482npv5t.xn----yg7dt1332g; ͡𐫫ͩᡷ.-鞰; [B1, V3, V5, V6];
xn--cvaq482npv5t.xn----yg7dt1332g; ; ; # ͡𐫫ͩᡷ.-鞰
+-.્剘ß𐫃; ; [B1, V3, V5]; -.xn--zca791c493duf8i; ; -.xn--ss-bqg4734erywk; #
-.્剘ß𐫃
+-.્剘SS𐫃; -.્剘ss𐫃; [B1, V3, V5]; -.xn--ss-bqg4734erywk; ; ; # -.્剘ss𐫃
+-.્剘ss𐫃; ; [B1, V3, V5]; -.xn--ss-bqg4734erywk; ; ; # -.્剘ss𐫃
+-.્剘Ss𐫃; -.્剘ss𐫃; [B1, V3, V5]; -.xn--ss-bqg4734erywk; ; ; # -.્剘ss𐫃
+-.xn--ss-bqg4734erywk; -.્剘ss𐫃; [B1, V3, V5]; -.xn--ss-bqg4734erywk; ; ; #
-.્剘ss𐫃
+-.xn--zca791c493duf8i; -.્剘ß𐫃; [B1, V3, V5]; -.xn--zca791c493duf8i; ; ; #
-.્剘ß𐫃
+ࣻ。-; ࣻ.-; [B1, P1, V3, V5, V6]; xn--b1b2719v.-; ; ; # ࣻ.-
+ࣻ。-; ࣻ.-; [B1, P1, V3, V5, V6]; xn--b1b2719v.-; ; ; # ࣻ.-
+xn--b1b2719v.-; ࣻ.-; [B1, V3, V5, V6]; xn--b1b2719v.-; ; ; # ࣻ.-
+⒈𐹲。≠𐹽; ⒈𐹲.≠𐹽; [B1, P1, V6]; xn--tshw766f1153g.xn--lfb536lb35n; ; ; # ⒈𐹲.≠𐹽
+⒈𐹲。≠𐹽; ⒈𐹲.≠𐹽; [B1, P1, V6]; xn--tshw766f1153g.xn--lfb536lb35n; ; ; #
⒈𐹲.≠𐹽
+1.𐹲。≠𐹽; 1.𐹲.≠𐹽; [B1, P1, V6]; 1.xn--qo0dl3077c.xn--lfb536lb35n; ; ; #
1.𐹲.≠𐹽
+1.𐹲。≠𐹽; 1.𐹲.≠𐹽; [B1, P1, V6]; 1.xn--qo0dl3077c.xn--lfb536lb35n; ; ; #
1.𐹲.≠𐹽
+1.xn--qo0dl3077c.xn--lfb536lb35n; 1.𐹲.≠𐹽; [B1, V6];
1.xn--qo0dl3077c.xn--lfb536lb35n; ; ; # 1.𐹲.≠𐹽
+xn--tshw766f1153g.xn--lfb536lb35n; ⒈𐹲.≠𐹽; [B1, V6];
xn--tshw766f1153g.xn--lfb536lb35n; ; ; # ⒈𐹲.≠𐹽
+𐹢Ⴎ.㖾𐹡; ; [B1, B5, B6, C1, P1, V6]; xn--mnd289ezj4pqxp0i.xn--pelu572d; ;
xn--mnd9001km0o0g.xn--pelu572d; [B1, B5, B6, P1, V6] # 𐹢Ⴎ.㖾𐹡
+𐹢ⴎ.㖾𐹡; ; [B1, B5, B6, C1, P1, V6]; xn--0ug342clq0pqxv4i.xn--pelu572d; ;
xn--5kjx323em053g.xn--pelu572d; [B1, B5, B6, P1, V6] # 𐹢ⴎ.㖾𐹡
+xn--5kjx323em053g.xn--pelu572d; 𐹢ⴎ.㖾𐹡; [B1, B5, B6, V6];
xn--5kjx323em053g.xn--pelu572d; ; ; # 𐹢ⴎ.㖾𐹡
+xn--0ug342clq0pqxv4i.xn--pelu572d; 𐹢ⴎ.㖾𐹡; [B1, B5, B6, C1, V6];
xn--0ug342clq0pqxv4i.xn--pelu572d; ; ; # 𐹢ⴎ.㖾𐹡
+xn--mnd9001km0o0g.xn--pelu572d; 𐹢Ⴎ.㖾𐹡; [B1, B5, B6, V6];
xn--mnd9001km0o0g.xn--pelu572d; ; ; # 𐹢Ⴎ.㖾𐹡
+xn--mnd289ezj4pqxp0i.xn--pelu572d; 𐹢Ⴎ.㖾𐹡; [B1, B5, B6, C1, V6];
xn--mnd289ezj4pqxp0i.xn--pelu572d; ; ; # 𐹢Ⴎ.㖾𐹡
+.߇ᡖႳႧ; .߇ᡖႳႧ; [B2, B3, P1, V6]; xn--te28c.xn--isb856b9a631d; ; ; # .߇ᡖႳႧ
+.߇ᡖႳႧ; ; [B2, B3, P1, V6]; xn--te28c.xn--isb856b9a631d; ; ; # .߇ᡖႳႧ
+.߇ᡖⴓⴇ; ; [B2, B3, P1, V6]; xn--te28c.xn--isb295fbtpmb; ; ; # .߇ᡖⴓⴇ
+xn--te28c.xn--isb295fbtpmb; .߇ᡖⴓⴇ; [B2, B3, V6]; xn--te28c.xn--isb295fbtpmb;
; ; # .߇ᡖⴓⴇ
+xn--te28c.xn--isb856b9a631d; .߇ᡖႳႧ; [B2, B3, V6];
xn--te28c.xn--isb856b9a631d; ; ; # .߇ᡖႳႧ
+.߇ᡖⴓⴇ; .߇ᡖⴓⴇ; [B2, B3, P1, V6]; xn--te28c.xn--isb295fbtpmb; ; ; # .߇ᡖⴓⴇ
+.߇ᡖႳⴇ; ; [B2, B3, P1, V6]; xn--te28c.xn--isb286btrgo7w; ; ; # .߇ᡖႳⴇ
+xn--te28c.xn--isb286btrgo7w; .߇ᡖႳⴇ; [B2, B3, V6];
xn--te28c.xn--isb286btrgo7w; ; ; # .߇ᡖႳⴇ
+.߇ᡖႳⴇ; .߇ᡖႳⴇ; [B2, B3, P1, V6]; xn--te28c.xn--isb286btrgo7w; ; ; # .߇ᡖႳⴇ
+.ڳݵ; ; [B1, C2, P1, V6]; xn--1ug39444n.xn--mkb20b; ; xn--3j78f.xn--mkb20b;
[P1, V6] # .ڳݵ
+xn--3j78f.xn--mkb20b; .ڳݵ; [V6]; xn--3j78f.xn--mkb20b; ; ; # .ڳݵ
+xn--1ug39444n.xn--mkb20b; .ڳݵ; [B1, C2, V6]; xn--1ug39444n.xn--mkb20b; ; ;
# .ڳݵ
+⒛⾳.ꡦ⒈; ⒛音.ꡦ⒈; [P1, V6]; xn--dth6033bzbvx.xn--tsh9439b; ; ; # ⒛音.ꡦ⒈
+20.音.ꡦ1.; ; [P1, V6]; xn--20-9802c.xn--0w5a.xn--1-eg4e.; ; ; # 20.音.ꡦ1.
+xn--20-9802c.xn--0w5a.xn--1-eg4e.; 20.音.ꡦ1.; [V6];
xn--20-9802c.xn--0w5a.xn--1-eg4e.; ; ; # 20.音.ꡦ1.
+xn--dth6033bzbvx.xn--tsh9439b; ⒛音.ꡦ⒈; [V6]; xn--dth6033bzbvx.xn--tsh9439b; ;
; # ⒛音.ꡦ⒈
+ߜ8-。𑁿𐩥্; ߜ8-.𑁿𐩥্; [B2, B3, B5, B6, P1, V3, V6];
xn--8--rve13079p.xn--b7b9842k42df776x; ; ; # ߜ8-.𑁿𐩥্
+ߜ8-。𑁿𐩥্; ߜ8-.𑁿𐩥্; [B2, B3, B5, B6, P1, V3, V6];
xn--8--rve13079p.xn--b7b9842k42df776x; ; ; # ߜ8-.𑁿𐩥্
+xn--8--rve13079p.xn--b7b9842k42df776x; ߜ8-.𑁿𐩥্; [B2, B3, B5, B6, V3, V6];
xn--8--rve13079p.xn--b7b9842k42df776x; ; ; # ߜ8-.𑁿𐩥্
+Ⴕ。۰≮ß݅; Ⴕ.۰≮ß݅; [P1, V6]; xn--tnd.xn--zca912alh227g; ;
xn--tnd.xn--ss-jbe65aw27i; # Ⴕ.۰≮ß݅
+Ⴕ。۰≮ß݅; Ⴕ.۰≮ß݅; [P1, V6]; xn--tnd.xn--zca912alh227g; ;
xn--tnd.xn--ss-jbe65aw27i; # Ⴕ.۰≮ß݅
+ⴕ。۰≮ß݅; ⴕ.۰≮ß݅; [P1, V6]; xn--dlj.xn--zca912alh227g; ;
xn--dlj.xn--ss-jbe65aw27i; # ⴕ.۰≮ß݅
+ⴕ。۰≮ß݅; ⴕ.۰≮ß݅; [P1, V6]; xn--dlj.xn--zca912alh227g; ;
xn--dlj.xn--ss-jbe65aw27i; # ⴕ.۰≮ß݅
+Ⴕ。۰≮SS݅; Ⴕ.۰≮ss݅; [P1, V6]; xn--tnd.xn--ss-jbe65aw27i; ; ; # Ⴕ.۰≮ss݅
+Ⴕ。۰≮SS݅; Ⴕ.۰≮ss݅; [P1, V6]; xn--tnd.xn--ss-jbe65aw27i; ; ; # Ⴕ.۰≮ss݅
+ⴕ。۰≮ss݅; ⴕ.۰≮ss݅; [P1, V6]; xn--dlj.xn--ss-jbe65aw27i; ; ; # ⴕ.۰≮ss݅
+ⴕ。۰≮ss݅; ⴕ.۰≮ss݅; [P1, V6]; xn--dlj.xn--ss-jbe65aw27i; ; ; # ⴕ.۰≮ss݅
+Ⴕ。۰≮Ss݅; Ⴕ.۰≮ss݅; [P1, V6]; xn--tnd.xn--ss-jbe65aw27i; ; ; # Ⴕ.۰≮ss݅
+Ⴕ。۰≮Ss݅; Ⴕ.۰≮ss݅; [P1, V6]; xn--tnd.xn--ss-jbe65aw27i; ; ; # Ⴕ.۰≮ss݅
+xn--tnd.xn--ss-jbe65aw27i; Ⴕ.۰≮ss݅; [V6]; xn--tnd.xn--ss-jbe65aw27i; ; ; #
Ⴕ.۰≮ss݅
+xn--dlj.xn--ss-jbe65aw27i; ⴕ.۰≮ss݅; [V6]; xn--dlj.xn--ss-jbe65aw27i; ; ; #
ⴕ.۰≮ss݅
+xn--dlj.xn--zca912alh227g; ⴕ.۰≮ß݅; [V6]; xn--dlj.xn--zca912alh227g; ; ; #
ⴕ.۰≮ß݅
+xn--tnd.xn--zca912alh227g; Ⴕ.۰≮ß݅; [V6]; xn--tnd.xn--zca912alh227g; ; ; #
Ⴕ.۰≮ß݅
+ߩ-.𝨗꒱᭲; ; [B1, B3, V3, V5]; xn----odd.xn--dwf8994dc8wj; ; ; # ߩ-.𝨗꒱᭲
+xn----odd.xn--dwf8994dc8wj; ߩ-.𝨗꒱᭲; [B1, B3, V3, V5];
xn----odd.xn--dwf8994dc8wj; ; ; # ߩ-.𝨗꒱᭲
+.≯䕵⫧; ; [B1, B3, C1, P1, V6]; xn--0ugx453p.xn--hdh754ax6w; ;
xn--sn7h.xn--hdh754ax6w; [B1, P1, V6] # .≯䕵⫧
+.≯䕵⫧; .≯䕵⫧; [B1, B3, C1, P1, V6]; xn--0ugx453p.xn--hdh754ax6w; ;
xn--sn7h.xn--hdh754ax6w; [B1, P1, V6] # .≯䕵⫧
+xn--sn7h.xn--hdh754ax6w; .≯䕵⫧; [B1, V6]; xn--sn7h.xn--hdh754ax6w; ; ; # .≯䕵⫧
+xn--0ugx453p.xn--hdh754ax6w; .≯䕵⫧; [B1, B3, C1, V6];
xn--0ugx453p.xn--hdh754ax6w; ; ; # .≯䕵⫧
+𐨅ßﱗ.ڬ۳︒; 𐨅ßيخ.ڬ۳︒; [B1, B3, P1, V5, V6]; xn--zca23yncs877j.xn--fkb6lp314e; ;
xn--ss-ytd5i7765l.xn--fkb6lp314e; # 𐨅ßيخ.ڬ۳︒
+𐨅ßيخ.ڬ۳。; 𐨅ßيخ.ڬ۳.; [B1, V5]; xn--zca23yncs877j.xn--fkb6l.; ;
xn--ss-ytd5i7765l.xn--fkb6l.; # 𐨅ßيخ.ڬ۳.
+𐨅SSيخ.ڬ۳。; 𐨅ssيخ.ڬ۳.; [B1, V5]; xn--ss-ytd5i7765l.xn--fkb6l.; ; ; # 𐨅ssيخ.ڬ۳.
+𐨅ssيخ.ڬ۳。; 𐨅ssيخ.ڬ۳.; [B1, V5]; xn--ss-ytd5i7765l.xn--fkb6l.; ; ; # 𐨅ssيخ.ڬ۳.
+𐨅Ssيخ.ڬ۳。; 𐨅ssيخ.ڬ۳.; [B1, V5]; xn--ss-ytd5i7765l.xn--fkb6l.; ; ; # 𐨅ssيخ.ڬ۳.
+xn--ss-ytd5i7765l.xn--fkb6l.; 𐨅ssيخ.ڬ۳.; [B1, V5];
xn--ss-ytd5i7765l.xn--fkb6l.; ; ; # 𐨅ssيخ.ڬ۳.
+xn--zca23yncs877j.xn--fkb6l.; 𐨅ßيخ.ڬ۳.; [B1, V5];
xn--zca23yncs877j.xn--fkb6l.; ; ; # 𐨅ßيخ.ڬ۳.
+𐨅SSﱗ.ڬ۳︒; 𐨅ssيخ.ڬ۳︒; [B1, B3, P1, V5, V6]; xn--ss-ytd5i7765l.xn--fkb6lp314e; ;
; # 𐨅ssيخ.ڬ۳︒
+𐨅ssﱗ.ڬ۳︒; 𐨅ssيخ.ڬ۳︒; [B1, B3, P1, V5, V6]; xn--ss-ytd5i7765l.xn--fkb6lp314e; ;
; # 𐨅ssيخ.ڬ۳︒
+𐨅Ssﱗ.ڬ۳︒; 𐨅ssيخ.ڬ۳︒; [B1, B3, P1, V5, V6]; xn--ss-ytd5i7765l.xn--fkb6lp314e; ;
; # 𐨅ssيخ.ڬ۳︒
+xn--ss-ytd5i7765l.xn--fkb6lp314e; 𐨅ssيخ.ڬ۳︒; [B1, B3, V5, V6];
xn--ss-ytd5i7765l.xn--fkb6lp314e; ; ; # 𐨅ssيخ.ڬ۳︒
+xn--zca23yncs877j.xn--fkb6lp314e; 𐨅ßيخ.ڬ۳︒; [B1, B3, V5, V6];
xn--zca23yncs877j.xn--fkb6lp314e; ; ; # 𐨅ßيخ.ڬ۳︒
+-≮🡒᳭.�Ⴁܔ; ; [B1, P1, V3, V6]; xn----44l04zxt68c.xn--enb300c1597h; ; ; #
-≮🡒᳭.Ⴁܔ
+-≮🡒᳭.�Ⴁܔ; -≮🡒᳭.�Ⴁܔ; [B1, P1, V3, V6]; xn----44l04zxt68c.xn--enb300c1597h; ; ;
# -≮🡒᳭.Ⴁܔ
+-≮🡒᳭.�ⴁܔ; -≮🡒᳭.�ⴁܔ; [B1, P1, V3, V6]; xn----44l04zxt68c.xn--enb135qf106f; ; ;
# -≮🡒᳭.ⴁܔ
+-≮🡒᳭.�ⴁܔ; ; [B1, P1, V3, V6]; xn----44l04zxt68c.xn--enb135qf106f; ; ; #
-≮🡒᳭.ⴁܔ
+xn----44l04zxt68c.xn--enb135qf106f; -≮🡒᳭.�ⴁܔ; [B1, V3, V6];
xn----44l04zxt68c.xn--enb135qf106f; ; ; # -≮🡒᳭.ⴁܔ
+xn----44l04zxt68c.xn--enb300c1597h; -≮🡒᳭.�Ⴁܔ; [B1, V3, V6];
xn----44l04zxt68c.xn--enb300c1597h; ; ; # -≮🡒᳭.Ⴁܔ
+𞤨。ꡏ; 𞤨.ꡏ; [B6, C1, C2]; xn--ge6h.xn--0ugb9575h; ; xn--ge6h.xn--oc9a; [] #
𞤨.ꡏ
+𞤨。ꡏ; 𞤨.ꡏ; [B6, C1, C2]; xn--ge6h.xn--0ugb9575h; ; xn--ge6h.xn--oc9a; [] #
𞤨.ꡏ
+𞤆。ꡏ; 𞤨.ꡏ; [B6, C1, C2]; xn--ge6h.xn--0ugb9575h; ; xn--ge6h.xn--oc9a; [] #
𞤨.ꡏ
+xn--ge6h.xn--oc9a; 𞤨.ꡏ; ; xn--ge6h.xn--oc9a; ; ; # 𞤨.ꡏ
+𞤨.ꡏ; ; ; xn--ge6h.xn--oc9a; ; ; # 𞤨.ꡏ
+𞤆.ꡏ; 𞤨.ꡏ; ; xn--ge6h.xn--oc9a; ; ; # 𞤨.ꡏ
+xn--ge6h.xn--0ugb9575h; 𞤨.ꡏ; [B6, C1, C2]; xn--ge6h.xn--0ugb9575h; ; ; # 𞤨.ꡏ
+𞤆。ꡏ; 𞤨.ꡏ; [B6, C1, C2]; xn--ge6h.xn--0ugb9575h; ; xn--ge6h.xn--oc9a; [] #
𞤨.ꡏ
+󠅹𑂶.ᢌ𑂹٩; 𑂶.ᢌ𑂹٩; [B1, B3, B5, B6, V5]; xn--b50d.xn--iib993gyp5p; ; ; # 𑂶.ᢌ𑂹٩
+󠅹𑂶.ᢌ𑂹٩; 𑂶.ᢌ𑂹٩; [B1, B3, B5, B6, V5]; xn--b50d.xn--iib993gyp5p; ; ; # 𑂶.ᢌ𑂹٩
+xn--b50d.xn--iib993gyp5p; 𑂶.ᢌ𑂹٩; [B1, B3, B5, B6, V5];
xn--b50d.xn--iib993gyp5p; ; ; # 𑂶.ᢌ𑂹٩
+Ⅎ󠅺。≯⾑; Ⅎ.≯襾; [P1, V6]; xn--f3g73398c.xn--hdhz171b; ; ; # Ⅎ.≯襾
+Ⅎ󠅺。≯⾑; Ⅎ.≯襾; [P1, V6]; xn--f3g73398c.xn--hdhz171b; ; ; # Ⅎ.≯襾
+Ⅎ󠅺。≯襾; Ⅎ.≯襾; [P1, V6]; xn--f3g73398c.xn--hdhz171b; ; ; # Ⅎ.≯襾
+Ⅎ󠅺。≯襾; Ⅎ.≯襾; [P1, V6]; xn--f3g73398c.xn--hdhz171b; ; ; # Ⅎ.≯襾
+ⅎ󠅺。≯襾; ⅎ.≯襾; [P1, V6]; xn--73g39298c.xn--hdhz171b; ; ; # ⅎ.≯襾
+ⅎ󠅺。≯襾; ⅎ.≯襾; [P1, V6]; xn--73g39298c.xn--hdhz171b; ; ; # ⅎ.≯襾
+xn--73g39298c.xn--hdhz171b; ⅎ.≯襾; [V6]; xn--73g39298c.xn--hdhz171b; ; ; #
ⅎ.≯襾
+xn--f3g73398c.xn--hdhz171b; Ⅎ.≯襾; [V6]; xn--f3g73398c.xn--hdhz171b; ; ; #
Ⅎ.≯襾
+ⅎ󠅺。≯⾑; ⅎ.≯襾; [P1, V6]; xn--73g39298c.xn--hdhz171b; ; ; # ⅎ.≯襾
+ⅎ󠅺。≯⾑; ⅎ.≯襾; [P1, V6]; xn--73g39298c.xn--hdhz171b; ; ; # ⅎ.≯襾
+ςු٠。-; ςු٠.-; [B1, B5, B6, C2, V3]; xn--3xa45ks2jenu.-; ; xn--4xa25ks2j.-;
[B1, B5, B6, V3] # ςු٠.-
+ςු٠。-; ςු٠.-; [B1, B5, B6, C2, V3]; xn--3xa45ks2jenu.-; ; xn--4xa25ks2j.-;
[B1, B5, B6, V3] # ςු٠.-
+Σු٠。-; σු٠.-; [B1, B5, B6, C2, V3]; xn--4xa25ks2jenu.-; ; xn--4xa25ks2j.-;
[B1, B5, B6, V3] # σු٠.-
+σු٠。-; σු٠.-; [B1, B5, B6, C2, V3]; xn--4xa25ks2jenu.-; ; xn--4xa25ks2j.-;
[B1, B5, B6, V3] # σු٠.-
+xn--4xa25ks2j.-; σු٠.-; [B1, B5, B6, V3]; xn--4xa25ks2j.-; ; ; # σු٠.-
+xn--4xa25ks2jenu.-; σු٠.-; [B1, B5, B6, C2, V3]; xn--4xa25ks2jenu.-; ; ; #
σු٠.-
+xn--3xa45ks2jenu.-; ςු٠.-; [B1, B5, B6, C2, V3]; xn--3xa45ks2jenu.-; ; ; #
ςු٠.-
+Σු٠。-; σු٠.-; [B1, B5, B6, C2, V3]; xn--4xa25ks2jenu.-; ; xn--4xa25ks2j.-;
[B1, B5, B6, V3] # σු٠.-
+σු٠。-; σු٠.-; [B1, B5, B6, C2, V3]; xn--4xa25ks2jenu.-; ; xn--4xa25ks2j.-;
[B1, B5, B6, V3] # σු٠.-
+.ßႩ-; ; [C1, P1, V3, V6]; xn--0ug.xn----pfa042j; ; .xn--ss--4rn; [P1, V3, V6,
A4_2] # .ßႩ-
+.ßⴉ-; ; [C1, V3]; xn--0ug.xn----pfa2305a; ; .xn--ss--bi1b; [V3, A4_2] # .ßⴉ-
+.SSႩ-; .ssႩ-; [C1, P1, V3, V6]; xn--0ug.xn--ss--4rn; ; .xn--ss--4rn; [P1,
V3, V6, A4_2] # .ssႩ-
+.ssⴉ-; ; [C1, V3]; xn--0ug.xn--ss--bi1b; ; .xn--ss--bi1b; [V3, A4_2] # .ssⴉ-
+.Ssⴉ-; .ssⴉ-; [C1, V3]; xn--0ug.xn--ss--bi1b; ; .xn--ss--bi1b; [V3, A4_2] #
.ssⴉ-
+.xn--ss--bi1b; .ssⴉ-; [V3, X4_2]; .xn--ss--bi1b; [V3, A4_2]; ; # .ssⴉ-
+xn--0ug.xn--ss--bi1b; .ssⴉ-; [C1, V3]; xn--0ug.xn--ss--bi1b; ; ; # .ssⴉ-
+.xn--ss--4rn; .ssႩ-; [V3, V6, X4_2]; .xn--ss--4rn; [V3, V6, A4_2]; ; # .ssႩ-
+xn--0ug.xn--ss--4rn; .ssႩ-; [C1, V3, V6]; xn--0ug.xn--ss--4rn; ; ; # .ssႩ-
+xn--0ug.xn----pfa2305a; .ßⴉ-; [C1, V3]; xn--0ug.xn----pfa2305a; ; ; # .ßⴉ-
+xn--0ug.xn----pfa042j; .ßႩ-; [C1, V3, V6]; xn--0ug.xn----pfa042j; ; ; # .ßႩ-
+𐫍㓱。⾑; 𐫍㓱.襾; [B5, P1, V6]; xn--u7kt691dlj09f.xn--9v2a; ; ; # 𐫍㓱.襾
+𐫍㓱。襾; 𐫍㓱.襾; [B5, P1, V6]; xn--u7kt691dlj09f.xn--9v2a; ; ; # 𐫍㓱.襾
+xn--u7kt691dlj09f.xn--9v2a; 𐫍㓱.襾; [B5, V6]; xn--u7kt691dlj09f.xn--9v2a; ; ;
# 𐫍㓱.襾
+ڠ𐮋𐹰≮。≯; ڠ𐮋𐹰≮.≯; [B1, B3, C2, P1, V6]; xn--2jb053lf13nyoc.xn--1ugx6gc8096c;
; xn--2jb053lf13nyoc.xn--hdh08821l; [B1, B3, P1, V6] # ڠ𐮋𐹰≮.≯
+ڠ𐮋𐹰≮。≯; ڠ𐮋𐹰≮.≯; [B1, B3, C2, P1, V6];
xn--2jb053lf13nyoc.xn--1ugx6gc8096c; ; xn--2jb053lf13nyoc.xn--hdh08821l; [B1,
B3, P1, V6] # ڠ𐮋𐹰≮.≯
+xn--2jb053lf13nyoc.xn--hdh08821l; ڠ𐮋𐹰≮.≯; [B1, B3, V6];
xn--2jb053lf13nyoc.xn--hdh08821l; ; ; # ڠ𐮋𐹰≮.≯
+xn--2jb053lf13nyoc.xn--1ugx6gc8096c; ڠ𐮋𐹰≮.≯; [B1, B3, C2, V6];
xn--2jb053lf13nyoc.xn--1ugx6gc8096c; ; ; # ڠ𐮋𐹰≮.≯
+𝟞。ݷࢰ⩋; 6.ݷࢰ⩋; [B1, B5, B6, P1, V6]; 6.xn--7pb04do15eq748f; ; ; # 6.ݷࢰ⩋
+6。ݷࢰ⩋; 6.ݷࢰ⩋; [B1, B5, B6, P1, V6]; 6.xn--7pb04do15eq748f; ; ; # 6.ݷࢰ⩋
+6.xn--7pb04do15eq748f; 6.ݷࢰ⩋; [B1, B5, B6, V6]; 6.xn--7pb04do15eq748f; ; ; #
6.ݷࢰ⩋
+-ﳽ。𑇀𑍴; -شى.𑇀𑍴; [B1, V3, V5]; xn----qnc7d.xn--wd1d62a; ; ; # -شى.𑇀𑍴
+-ﳽ。𑇀𑍴; -شى.𑇀𑍴; [B1, V3, V5]; xn----qnc7d.xn--wd1d62a; ; ; # -شى.𑇀𑍴
+-شى。𑇀𑍴; -شى.𑇀𑍴; [B1, V3, V5]; xn----qnc7d.xn--wd1d62a; ; ; # -شى.𑇀𑍴
+xn----qnc7d.xn--wd1d62a; -شى.𑇀𑍴; [B1, V3, V5]; xn----qnc7d.xn--wd1d62a; ; ; #
-شى.𑇀𑍴
+𝟏.ൃ𐹬; 1.ൃ𐹬; [B1, C1, P1, V5, V6];
xn--1-rgnu0071n.xn--mxc0872kcu37dnmem; ; xn--1-f521m.xn--mxc0872kcu37dnmem;
[B1, P1, V5, V6] # 1.ൃ𐹬
+1.ൃ𐹬; ; [B1, C1, P1, V5, V6]; xn--1-rgnu0071n.xn--mxc0872kcu37dnmem; ;
xn--1-f521m.xn--mxc0872kcu37dnmem; [B1, P1, V5, V6] # 1.ൃ𐹬
+xn--1-f521m.xn--mxc0872kcu37dnmem; 1.ൃ𐹬; [B1, V5, V6];
xn--1-f521m.xn--mxc0872kcu37dnmem; ; ; # 1.ൃ𐹬
+xn--1-rgnu0071n.xn--mxc0872kcu37dnmem; 1.ൃ𐹬; [B1, C1, V5, V6];
xn--1-rgnu0071n.xn--mxc0872kcu37dnmem; ; ; # 1.ൃ𐹬
+齙--𝟰.ß; 齙--4.ß; ; xn----4-p16k.xn--zca; ; xn----4-p16k.ss; # 齙--4.ß
+齙--4.ß; ; ; xn----4-p16k.xn--zca; ; xn----4-p16k.ss; # 齙--4.ß
+齙--4.SS; 齙--4.ss; ; xn----4-p16k.ss; ; ; # 齙--4.ss
+齙--4.ss; ; ; xn----4-p16k.ss; ; ; # 齙--4.ss
+齙--4.Ss; 齙--4.ss; ; xn----4-p16k.ss; ; ; # 齙--4.ss
+xn----4-p16k.ss; 齙--4.ss; ; xn----4-p16k.ss; ; ; # 齙--4.ss
+xn----4-p16k.xn--zca; 齙--4.ß; ; xn----4-p16k.xn--zca; ; ; # 齙--4.ß
+齙--𝟰.SS; 齙--4.ss; ; xn----4-p16k.ss; ; ; # 齙--4.ss
+齙--𝟰.ss; 齙--4.ss; ; xn----4-p16k.ss; ; ; # 齙--4.ss
+齙--𝟰.Ss; 齙--4.ss; ; xn----4-p16k.ss; ; ; # 齙--4.ss
+᯲.𐹢𞀖; ; [B1, C1, V5]; xn--0zf.xn--0ug9894grqqf; ; xn--0zf.xn--9n0d2296a; [B1,
V5] # ᯲.𐹢𞀖
+xn--0zf.xn--9n0d2296a; ᯲.𐹢𞀖; [B1, V5]; xn--0zf.xn--9n0d2296a; ; ; # ᯲.𐹢𞀖
+xn--0zf.xn--0ug9894grqqf; ᯲.𐹢𞀖; [B1, C1, V5]; xn--0zf.xn--0ug9894grqqf; ; ;
# ᯲.𐹢𞀖
+。?-; .?-; [C2, P1, V6]; xn--ct86d8w51a.xn--?--n1t; ; xn--ct86d8w51a.?-;
[P1, V3, V6] # .?-
+。?-; .?-; [C2, P1, V6]; xn--ct86d8w51a.xn--?--n1t; ; xn--ct86d8w51a.?-;
[P1, V3, V6] # .?-
+xn--ct86d8w51a.?-; .?-; [P1, V3, V6]; xn--ct86d8w51a.?-; ; ; # .?-
+xn--ct86d8w51a.xn--?--n1t; .?-; [C2, P1, V6]; xn--ct86d8w51a.xn--?--n1t; ;
; # .?-
+xn--ct86d8w51a.?-; .?-; [C2, P1, V6]; xn--ct86d8w51a.xn--?--n1t; ;
xn--ct86d8w51a.?-; [P1, V3, V6] # .?-
+XN--CT86D8W51A.?-; .?-; [C2, P1, V6]; xn--ct86d8w51a.xn--?--n1t; ;
xn--ct86d8w51a.?-; [P1, V3, V6] # .?-
+Xn--Ct86d8w51a.?-; .?-; [C2, P1, V6]; xn--ct86d8w51a.xn--?--n1t; ;
xn--ct86d8w51a.?-; [P1, V3, V6] # .?-
+᩠.-𝪩悎; ᩠.-𝪩悎; [B1, B2, B3, B6, P1, V5, V6]; xn--jof.xn----gf4bq282iezpa; ; ;
# ᩠.-𝪩悎
+᩠.-𝪩悎; ; [B1, B2, B3, B6, P1, V5, V6]; xn--jof.xn----gf4bq282iezpa; ; ; #
᩠.-𝪩悎
+xn--jof.xn----gf4bq282iezpa; ᩠.-𝪩悎; [B1, B2, B3, B6, V5, V6];
xn--jof.xn----gf4bq282iezpa; ; ; # ᩠.-𝪩悎
+.𞤳; .𞤳; [B2, B3, B6, P1, V6]; xn--xx5gy2741c.xn--re6hw266j; ; ; # .𞤳
+.𞤳; ; [B2, B3, B6, P1, V6]; xn--xx5gy2741c.xn--re6hw266j; ; ; # .𞤳
+.𞤑; .𞤳; [B2, B3, B6, P1, V6]; xn--xx5gy2741c.xn--re6hw266j; ; ; # .𞤳
+xn--xx5gy2741c.xn--re6hw266j; .𞤳; [B2, B3, B6, V6];
xn--xx5gy2741c.xn--re6hw266j; ; ; # .𞤳
+.𞤑; .𞤳; [B2, B3, B6, P1, V6]; xn--xx5gy2741c.xn--re6hw266j; ; ; # .𞤳
+ܜ𐫒خ.𐋲; ; [B1]; xn--tgb98b8643d.xn--m97c; ; ; # ܜ𐫒خ.𐋲
+xn--tgb98b8643d.xn--m97c; ܜ𐫒خ.𐋲; [B1]; xn--tgb98b8643d.xn--m97c; ; ; # ܜ𐫒خ.𐋲
+𐼑𞤓ط.?; 𐼑𞤵ط.?; [B1, P1, V6]; xn--2gb08k9w69agm0g.?; ; ; # 𐼑𞤵ط.?
+𐼑𞤵ط.?; ; [B1, P1, V6]; xn--2gb08k9w69agm0g.?; ; ; # 𐼑𞤵ط.?
+xn--2gb08k9w69agm0g.?; 𐼑𞤵ط.?; [B1, P1, V6]; xn--2gb08k9w69agm0g.?; ; ; #
𐼑𞤵ط.?
+Ↄ。᳔੍; Ↄ.᳔੍; [B1, P1, V5, V6]; xn--q5g.xn--ybc995g0835a; ; ; # Ↄ.᳔੍
+Ↄ。᳔੍; Ↄ.᳔੍; [B1, P1, V5, V6]; xn--q5g.xn--ybc995g0835a; ; ; # Ↄ.᳔੍
+ↄ。᳔੍; ↄ.᳔੍; [B1, P1, V5, V6]; xn--r5g.xn--ybc995g0835a; ; ; # ↄ.᳔੍
+xn--r5g.xn--ybc995g0835a; ↄ.᳔੍; [B1, V5, V6]; xn--r5g.xn--ybc995g0835a; ; ;
# ↄ.᳔੍
+xn--q5g.xn--ybc995g0835a; Ↄ.᳔੍; [B1, V5, V6]; xn--q5g.xn--ybc995g0835a; ; ;
# Ↄ.᳔੍
+ↄ。᳔੍; ↄ.᳔੍; [B1, P1, V5, V6]; xn--r5g.xn--ybc995g0835a; ; ; # ↄ.᳔੍
+-。≮𑜫; -.≮𑜫; [P1, V3, V6]; xn----bh61m.xn--gdhz157g0em1d; ; ; # -.≮𑜫
+-。≮𑜫; -.≮𑜫; [P1, V3, V6]; xn----bh61m.xn--gdhz157g0em1d; ; ; # -.≮𑜫
+xn----bh61m.xn--gdhz157g0em1d; -.≮𑜫; [V3, V6];
xn----bh61m.xn--gdhz157g0em1d; ; ; # -.≮𑜫
+。≮Ⴉ; .≮Ⴉ; [C1, C2, P1, V6]; xn--0ugc90904y.xn--hnd112gpz83n; ;
xn--3n36e.xn--hnd112gpz83n; [P1, V6] # .≮Ⴉ
+。≮Ⴉ; .≮Ⴉ; [C1, C2, P1, V6]; xn--0ugc90904y.xn--hnd112gpz83n; ;
xn--3n36e.xn--hnd112gpz83n; [P1, V6] # .≮Ⴉ
+。≮ⴉ; .≮ⴉ; [C1, C2, P1, V6]; xn--0ugc90904y.xn--gdh992byu01p; ;
xn--3n36e.xn--gdh992byu01p; [P1, V6] # .≮ⴉ
+。≮ⴉ; .≮ⴉ; [C1, C2, P1, V6]; xn--0ugc90904y.xn--gdh992byu01p; ;
xn--3n36e.xn--gdh992byu01p; [P1, V6] # .≮ⴉ
+xn--3n36e.xn--gdh992byu01p; .≮ⴉ; [V6]; xn--3n36e.xn--gdh992byu01p; ; ; # .≮ⴉ
+xn--0ugc90904y.xn--gdh992byu01p; .≮ⴉ; [C1, C2, V6];
xn--0ugc90904y.xn--gdh992byu01p; ; ; # .≮ⴉ
+xn--3n36e.xn--hnd112gpz83n; .≮Ⴉ; [V6]; xn--3n36e.xn--hnd112gpz83n; ; ; # .≮Ⴉ
+xn--0ugc90904y.xn--hnd112gpz83n; .≮Ⴉ; [C1, C2, V6];
xn--0ugc90904y.xn--hnd112gpz83n; ; ; # .≮Ⴉ
+𐹯-𑄴ࢼ。︒䖐⾆; 𐹯-𑄴ࢼ.︒䖐舌; [B1, P1, V6]; xn----rpd7902rclc.xn--fpo216mn07e; ; ; #
𐹯-𑄴ࢼ.︒䖐舌
+𐹯-𑄴ࢼ。。䖐舌; 𐹯-𑄴ࢼ..䖐舌; [B1, X4_2]; xn----rpd7902rclc..xn--fpo216m; [B1, A4_2]; ;
# 𐹯-𑄴ࢼ..䖐舌
+xn----rpd7902rclc..xn--fpo216m; 𐹯-𑄴ࢼ..䖐舌; [B1, X4_2];
xn----rpd7902rclc..xn--fpo216m; [B1, A4_2]; ; # 𐹯-𑄴ࢼ..䖐舌
+xn----rpd7902rclc.xn--fpo216mn07e; 𐹯-𑄴ࢼ.︒䖐舌; [B1, V6];
xn----rpd7902rclc.xn--fpo216mn07e; ; ; # 𐹯-𑄴ࢼ.︒䖐舌
+𝪞Ⴐ。쪡; 𝪞Ⴐ.쪡; [P1, V5, V6]; xn--ond3755u.xn--pi6b; ; ; # 𝪞Ⴐ.쪡
+𝪞Ⴐ。쪡; 𝪞Ⴐ.쪡; [P1, V5, V6]; xn--ond3755u.xn--pi6b; ; ; # 𝪞Ⴐ.쪡
+𝪞Ⴐ。쪡; 𝪞Ⴐ.쪡; [P1, V5, V6]; xn--ond3755u.xn--pi6b; ; ; # 𝪞Ⴐ.쪡
+𝪞Ⴐ。쪡; 𝪞Ⴐ.쪡; [P1, V5, V6]; xn--ond3755u.xn--pi6b; ; ; # 𝪞Ⴐ.쪡
+𝪞ⴐ。쪡; 𝪞ⴐ.쪡; [V5]; xn--7kj1858k.xn--pi6b; ; ; # 𝪞ⴐ.쪡
+𝪞ⴐ。쪡; 𝪞ⴐ.쪡; [V5]; xn--7kj1858k.xn--pi6b; ; ; # 𝪞ⴐ.쪡
+xn--7kj1858k.xn--pi6b; 𝪞ⴐ.쪡; [V5]; xn--7kj1858k.xn--pi6b; ; ; # 𝪞ⴐ.쪡
+xn--ond3755u.xn--pi6b; 𝪞Ⴐ.쪡; [V5, V6]; xn--ond3755u.xn--pi6b; ; ; # 𝪞Ⴐ.쪡
+𝪞ⴐ。쪡; 𝪞ⴐ.쪡; [V5]; xn--7kj1858k.xn--pi6b; ; ; # 𝪞ⴐ.쪡
+𝪞ⴐ。쪡; 𝪞ⴐ.쪡; [V5]; xn--7kj1858k.xn--pi6b; ; ; # 𝪞ⴐ.쪡
+ฺ쩁𐹬.; ; [B1, P1, V5, V6]; xn--o4c4837g2zvb.xn--5f70g; ; ; # ฺ쩁𐹬.
+ฺ쩁𐹬.; ฺ쩁𐹬.; [B1, P1, V5, V6]; xn--o4c4837g2zvb.xn--5f70g; ; ; # ฺ쩁𐹬.
+xn--o4c4837g2zvb.xn--5f70g; ฺ쩁𐹬.; [B1, V5, V6]; xn--o4c4837g2zvb.xn--5f70g; ;
; # ฺ쩁𐹬.
+ᡅ0。⎢; ᡅ0.⎢; [C1, P1, V6]; xn--0-z6jy93b.xn--8lh28773l; ;
xn--0-z6j.xn--8lh28773l; [P1, V6] # ᡅ0.⎢
+ᡅ0。⎢; ᡅ0.⎢; [C1, P1, V6]; xn--0-z6jy93b.xn--8lh28773l; ;
xn--0-z6j.xn--8lh28773l; [P1, V6] # ᡅ0.⎢
+xn--0-z6j.xn--8lh28773l; ᡅ0.⎢; [V6]; xn--0-z6j.xn--8lh28773l; ; ; # ᡅ0.⎢
+xn--0-z6jy93b.xn--8lh28773l; ᡅ0.⎢; [C1, V6]; xn--0-z6jy93b.xn--8lh28773l; ;
; # ᡅ0.⎢
+9ꍩ៓.ß; 9ꍩ៓.ß; [C2, P1, V6]; xn--9-i0j5967eg3qz.xn--zca770n; ;
xn--9-i0j5967eg3qz.ss; [P1, V6] # 9ꍩ៓.ß
+9ꍩ៓.ß; ; [C2, P1, V6]; xn--9-i0j5967eg3qz.xn--zca770n; ;
xn--9-i0j5967eg3qz.ss; [P1, V6] # 9ꍩ៓.ß
+9ꍩ៓.SS; 9ꍩ៓.ss; [C2, P1, V6]; xn--9-i0j5967eg3qz.xn--ss-l1t; ;
xn--9-i0j5967eg3qz.ss; [P1, V6] # 9ꍩ៓.ss
+9ꍩ៓.ss; ; [C2, P1, V6]; xn--9-i0j5967eg3qz.xn--ss-l1t; ;
xn--9-i0j5967eg3qz.ss; [P1, V6] # 9ꍩ៓.ss
+xn--9-i0j5967eg3qz.ss; 9ꍩ៓.ss; [V6]; xn--9-i0j5967eg3qz.ss; ; ; # 9ꍩ៓.ss
+xn--9-i0j5967eg3qz.xn--ss-l1t; 9ꍩ៓.ss; [C2, V6];
xn--9-i0j5967eg3qz.xn--ss-l1t; ; ; # 9ꍩ៓.ss
+xn--9-i0j5967eg3qz.xn--zca770n; 9ꍩ៓.ß; [C2, V6];
xn--9-i0j5967eg3qz.xn--zca770n; ; ; # 9ꍩ៓.ß
+9ꍩ៓.SS; 9ꍩ៓.ss; [C2, P1, V6]; xn--9-i0j5967eg3qz.xn--ss-l1t; ;
xn--9-i0j5967eg3qz.ss; [P1, V6] # 9ꍩ៓.ss
+9ꍩ៓.ss; 9ꍩ៓.ss; [C2, P1, V6]; xn--9-i0j5967eg3qz.xn--ss-l1t; ;
xn--9-i0j5967eg3qz.ss; [P1, V6] # 9ꍩ៓.ss
+9ꍩ៓.Ss; 9ꍩ៓.ss; [C2, P1, V6]; xn--9-i0j5967eg3qz.xn--ss-l1t; ;
xn--9-i0j5967eg3qz.ss; [P1, V6] # 9ꍩ៓.ss
+9ꍩ៓.Ss; 9ꍩ៓.ss; [C2, P1, V6]; xn--9-i0j5967eg3qz.xn--ss-l1t; ;
xn--9-i0j5967eg3qz.ss; [P1, V6] # 9ꍩ៓.ss
+ꗷ𑆀.ݝ𐩒; ; ; xn--ju8a625r.xn--hpb0073k; ; ; # ꗷ𑆀.ݝ𐩒
+xn--ju8a625r.xn--hpb0073k; ꗷ𑆀.ݝ𐩒; ; xn--ju8a625r.xn--hpb0073k; ; ; # ꗷ𑆀.ݝ𐩒
+⒐≯-。︒-; ⒐≯-.︒-; [P1, V3, V6]; xn----ogot9g.xn----n89hl0522az9u2a; ; ; #
⒐≯-.︒-
+⒐≯-。︒-; ⒐≯-.︒-; [P1, V3, V6]; xn----ogot9g.xn----n89hl0522az9u2a; ; ; #
⒐≯-.︒-
+9.≯-。。-; 9.≯-..-; [P1, V3, V6, X4_2]; 9.xn----ogo..xn----xj54d1s69k; [P1,
V3, V6, A4_2]; ; # 9.≯-..-
+9.≯-。。-; 9.≯-..-; [P1, V3, V6, X4_2]; 9.xn----ogo..xn----xj54d1s69k; [P1,
V3, V6, A4_2]; ; # 9.≯-..-
+9.xn----ogo..xn----xj54d1s69k; 9.≯-..-; [V3, V6, X4_2];
9.xn----ogo..xn----xj54d1s69k; [V3, V6, A4_2]; ; # 9.≯-..-
+xn----ogot9g.xn----n89hl0522az9u2a; ⒐≯-.︒-; [V3, V6];
xn----ogot9g.xn----n89hl0522az9u2a; ; ; # ⒐≯-.︒-
+ೣჁ.؝; ೣჁ.؝; [B6, P1, V6]; xn--vuc49qvu85xmju7a.xn--cgb; ; ; # ೣჁ.؝
+ೣჁ.؝; ; [B6, P1, V6]; xn--vuc49qvu85xmju7a.xn--cgb; ; ; # ೣჁ.؝
+ೣⴡ.؝; ; [B6, P1, V6]; xn--vuc226n8n28lmju7a.xn--cgb; ; ; # ೣⴡ.؝
+xn--vuc226n8n28lmju7a.xn--cgb; ೣⴡ.؝; [B6, V6];
xn--vuc226n8n28lmju7a.xn--cgb; ; ; # ೣⴡ.؝
+xn--vuc49qvu85xmju7a.xn--cgb; ೣჁ.؝; [B6, V6]; xn--vuc49qvu85xmju7a.xn--cgb;
; ; # ೣჁ.؝
+ೣⴡ.؝; ೣⴡ.؝; [B6, P1, V6]; xn--vuc226n8n28lmju7a.xn--cgb; ; ; # ೣⴡ.؝
+ᷫ。𐋩ظ-𐫮; ᷫ.𐋩ظ-𐫮; [B1, B3, B6, V5]; xn--gfg.xn----xnc0815qyyg; ; ; # ᷫ.𐋩ظ-𐫮
+xn--gfg.xn----xnc0815qyyg; ᷫ.𐋩ظ-𐫮; [B1, B3, B6, V5];
xn--gfg.xn----xnc0815qyyg; ; ; # ᷫ.𐋩ظ-𐫮
+싇。⾇𐳋Ⴝ; 싇.舛𐳋Ⴝ; [B5, P1, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; # 싇.舛𐳋Ⴝ
+싇。⾇𐳋Ⴝ; 싇.舛𐳋Ⴝ; [B5, P1, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; # 싇.舛𐳋Ⴝ
+싇。舛𐳋Ⴝ; 싇.舛𐳋Ⴝ; [B5, P1, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; # 싇.舛𐳋Ⴝ
+싇。舛𐳋Ⴝ; 싇.舛𐳋Ⴝ; [B5, P1, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; # 싇.舛𐳋Ⴝ
+싇。舛𐳋ⴝ; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+싇。舛𐳋ⴝ; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+싇。舛𐲋Ⴝ; 싇.舛𐳋Ⴝ; [B5, P1, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; # 싇.舛𐳋Ⴝ
+싇。舛𐲋Ⴝ; 싇.舛𐳋Ⴝ; [B5, P1, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; # 싇.舛𐳋Ⴝ
+싇。舛𐲋ⴝ; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+싇。舛𐲋ⴝ; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+xn--9u4b.xn--llj123yh74e; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+xn--9u4b.xn--1nd7519ch79d; 싇.舛𐳋Ⴝ; [B5, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; #
싇.舛𐳋Ⴝ
+싇。⾇𐳋ⴝ; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+싇。⾇𐳋ⴝ; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+싇。⾇𐲋Ⴝ; 싇.舛𐳋Ⴝ; [B5, P1, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; # 싇.舛𐳋Ⴝ
+싇。⾇𐲋Ⴝ; 싇.舛𐳋Ⴝ; [B5, P1, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; # 싇.舛𐳋Ⴝ
+싇。⾇𐲋ⴝ; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+싇。⾇𐲋ⴝ; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+𐹠ς。ڿჀ; 𐹠ς.ڿჀ; [B1, C1, P1, V6]; xn--3xa1267k.xn--ykb632cvxm; ;
xn--4xa9167k.xn--ykb632c; [B1, B2, B3, P1, V6] # 𐹠ς.ڿჀ
+𐹠ς。ڿⴠ; 𐹠ς.ڿⴠ; [B1, C1]; xn--3xa1267k.xn--ykb760k9hj; ;
xn--4xa9167k.xn--ykb467q; [B1, B2, B3] # 𐹠ς.ڿⴠ
+𐹠Σ。ڿჀ; 𐹠σ.ڿჀ; [B1, C1, P1, V6]; xn--4xa9167k.xn--ykb632cvxm; ;
xn--4xa9167k.xn--ykb632c; [B1, B2, B3, P1, V6] # 𐹠σ.ڿჀ
+𐹠σ。ڿⴠ; 𐹠σ.ڿⴠ; [B1, C1]; xn--4xa9167k.xn--ykb760k9hj; ;
xn--4xa9167k.xn--ykb467q; [B1, B2, B3] # 𐹠σ.ڿⴠ
+𐹠Σ。ڿⴠ; 𐹠σ.ڿⴠ; [B1, C1]; xn--4xa9167k.xn--ykb760k9hj; ;
xn--4xa9167k.xn--ykb467q; [B1, B2, B3] # 𐹠σ.ڿⴠ
+xn--4xa9167k.xn--ykb467q; 𐹠σ.ڿⴠ; [B1, B2, B3]; xn--4xa9167k.xn--ykb467q; ; ;
# 𐹠σ.ڿⴠ
+xn--4xa9167k.xn--ykb760k9hj; 𐹠σ.ڿⴠ; [B1, C1]; xn--4xa9167k.xn--ykb760k9hj; ;
; # 𐹠σ.ڿⴠ
+xn--4xa9167k.xn--ykb632c; 𐹠σ.ڿჀ; [B1, B2, B3, V6]; xn--4xa9167k.xn--ykb632c; ;
; # 𐹠σ.ڿჀ
+xn--4xa9167k.xn--ykb632cvxm; 𐹠σ.ڿჀ; [B1, C1, V6];
xn--4xa9167k.xn--ykb632cvxm; ; ; # 𐹠σ.ڿჀ
+xn--3xa1267k.xn--ykb760k9hj; 𐹠ς.ڿⴠ; [B1, C1]; xn--3xa1267k.xn--ykb760k9hj; ;
; # 𐹠ς.ڿⴠ
+xn--3xa1267k.xn--ykb632cvxm; 𐹠ς.ڿჀ; [B1, C1, V6];
xn--3xa1267k.xn--ykb632cvxm; ; ; # 𐹠ς.ڿჀ
+.ښ-ß; ; [B2, B3, B5, B6, C1, P1, V6]; xn--mfb144kqo32m.xn----qfa315b; ;
xn--mfb98261i.xn---ss-sdf; [B2, B3, B5, B6, P1, V6] # .ښ-ß
+.ښ-SS; .ښ-ss; [B2, B3, B5, B6, C1, P1, V6];
xn--mfb144kqo32m.xn---ss-sdf; ; xn--mfb98261i.xn---ss-sdf; [B2, B3, B5, B6, P1,
V6] # .ښ-ss
+.ښ-ss; ; [B2, B3, B5, B6, C1, P1, V6]; xn--mfb144kqo32m.xn---ss-sdf; ;
xn--mfb98261i.xn---ss-sdf; [B2, B3, B5, B6, P1, V6] # .ښ-ss
+.ښ-Ss; .ښ-ss; [B2, B3, B5, B6, C1, P1, V6];
xn--mfb144kqo32m.xn---ss-sdf; ; xn--mfb98261i.xn---ss-sdf; [B2, B3, B5, B6, P1,
V6] # .ښ-ss
+xn--mfb98261i.xn---ss-sdf; .ښ-ss; [B2, B3, B5, B6, V6];
xn--mfb98261i.xn---ss-sdf; ; ; # .ښ-ss
+xn--mfb144kqo32m.xn---ss-sdf; .ښ-ss; [B2, B3, B5, B6, C1, V6];
xn--mfb144kqo32m.xn---ss-sdf; ; ; # .ښ-ss
+xn--mfb144kqo32m.xn----qfa315b; .ښ-ß; [B2, B3, B5, B6, C1, V6];
xn--mfb144kqo32m.xn----qfa315b; ; ; # .ښ-ß
+឵ٺ.-ﮰ; ឵ٺ.-ۓ; [B1, C1, C2, P1, V3, V6];
xn--zib539f8igea.xn----twc1133r17r6g; ; xn--zib539f.xn----twc1133r17r6g; [B1,
P1, V3, V5, V6] # ٺ.-ۓ
+឵ٺ.-ۓ; ; [B1, C1, C2, P1, V3, V6]; xn--zib539f8igea.xn----twc1133r17r6g; ;
xn--zib539f.xn----twc1133r17r6g; [B1, P1, V3, V5, V6] # ٺ.-ۓ
+឵ٺ.-ۓ; ឵ٺ.-ۓ; [B1, C1, C2, P1, V3, V6];
xn--zib539f8igea.xn----twc1133r17r6g; ; xn--zib539f.xn----twc1133r17r6g; [B1,
P1, V3, V5, V6] # ٺ.-ۓ
+xn--zib539f.xn----twc1133r17r6g; ឵ٺ.-ۓ; [B1, V3, V5, V6];
xn--zib539f.xn----twc1133r17r6g; ; ; # ٺ.-ۓ
+xn--zib539f8igea.xn----twc1133r17r6g; ឵ٺ.-ۓ; [B1, C1, C2, V3, V6];
xn--zib539f8igea.xn----twc1133r17r6g; ; ; # ٺ.-ۓ
+。𐮬≠; .𐮬≠; [B3, P1, V6]; xn--dd55c.xn--1ch3003g; ; ; # .𐮬≠
+。𐮬≠; .𐮬≠; [B3, P1, V6]; xn--dd55c.xn--1ch3003g; ; ; # .𐮬≠
+。𐮬≠; .𐮬≠; [B3, P1, V6]; xn--dd55c.xn--1ch3003g; ; ; # .𐮬≠
+。𐮬≠; .𐮬≠; [B3, P1, V6]; xn--dd55c.xn--1ch3003g; ; ; # .𐮬≠
+xn--dd55c.xn--1ch3003g; .𐮬≠; [B3, V6]; xn--dd55c.xn--1ch3003g; ; ; # .𐮬≠
+ྲ。𐹮𐹷덝۵; ྲ.𐹮𐹷덝۵; [B1, P1, V5, V6]; xn--fgd0675v.xn--imb5839fidpcbba; ; ; #
ྲ.𐹮𐹷덝۵
+ྲ。𐹮𐹷덝۵; ྲ.𐹮𐹷덝۵; [B1, P1, V5, V6]; xn--fgd0675v.xn--imb5839fidpcbba; ; ; #
ྲ.𐹮𐹷덝۵
+ྲ。𐹮𐹷덝۵; ྲ.𐹮𐹷덝۵; [B1, P1, V5, V6]; xn--fgd0675v.xn--imb5839fidpcbba; ; ; #
ྲ.𐹮𐹷덝۵
+ྲ。𐹮𐹷덝۵; ྲ.𐹮𐹷덝۵; [B1, P1, V5, V6]; xn--fgd0675v.xn--imb5839fidpcbba; ; ; #
ྲ.𐹮𐹷덝۵
+xn--fgd0675v.xn--imb5839fidpcbba; ྲ.𐹮𐹷덝۵; [B1, V5, V6];
xn--fgd0675v.xn--imb5839fidpcbba; ; ; # ྲ.𐹮𐹷덝۵
+Ⴏ󠅋-.Ⴉ; Ⴏ-.Ⴉ; [C2, P1, V3, V6]; xn----00g.xn--hnd399e; ; xn----00g.xn--hnd;
[P1, V3, V6] # Ⴏ-.Ⴉ
+Ⴏ󠅋-.Ⴉ; Ⴏ-.Ⴉ; [C2, P1, V3, V6]; xn----00g.xn--hnd399e; ; xn----00g.xn--hnd;
[P1, V3, V6] # Ⴏ-.Ⴉ
+ⴏ󠅋-.ⴉ; ⴏ-.ⴉ; [C2, V3]; xn----3vs.xn--1ug532c; ; xn----3vs.xn--0kj; [V3] #
ⴏ-.ⴉ
+xn----3vs.xn--0kj; ⴏ-.ⴉ; [V3]; xn----3vs.xn--0kj; ; ; # ⴏ-.ⴉ
+xn----3vs.xn--1ug532c; ⴏ-.ⴉ; [C2, V3]; xn----3vs.xn--1ug532c; ; ; # ⴏ-.ⴉ
+xn----00g.xn--hnd; Ⴏ-.Ⴉ; [V3, V6]; xn----00g.xn--hnd; ; ; # Ⴏ-.Ⴉ
+xn----00g.xn--hnd399e; Ⴏ-.Ⴉ; [C2, V3, V6]; xn----00g.xn--hnd399e; ; ; # Ⴏ-.Ⴉ
+ⴏ󠅋-.ⴉ; ⴏ-.ⴉ; [C2, V3]; xn----3vs.xn--1ug532c; ; xn----3vs.xn--0kj; [V3] #
ⴏ-.ⴉ
+⇧𐨏。󠆉; ⇧𐨏.; [B1, P1, V6]; xn--l8g5552g64t4g46xf.xn--ifb08144p; ; ; #
⇧𐨏.
+xn--l8g5552g64t4g46xf.xn--ifb08144p; ⇧𐨏.; [B1, V6];
xn--l8g5552g64t4g46xf.xn--ifb08144p; ; ; # ⇧𐨏.
+≠𐮂.↑🄇⒈; ; [B1, P1, V6]; xn--1chy492g.xn--45gx9iuy44d; ; ; # ≠𐮂.↑🄇⒈
+≠𐮂.↑🄇⒈; ≠𐮂.↑🄇⒈; [B1, P1, V6]; xn--1chy492g.xn--45gx9iuy44d; ; ; # ≠𐮂.↑🄇⒈
+≠𐮂.↑6,1.; ; [B1, P1, V6]; xn--1chy492g.xn--6,1-pw1a.; ; ; # ≠𐮂.↑6,1.
+≠𐮂.↑6,1.; ≠𐮂.↑6,1.; [B1, P1, V6]; xn--1chy492g.xn--6,1-pw1a.; ; ; # ≠𐮂.↑6,1.
+xn--1chy492g.xn--6,1-pw1a.; ≠𐮂.↑6,1.; [B1, P1, V6];
xn--1chy492g.xn--6,1-pw1a.; ; ; # ≠𐮂.↑6,1.
+xn--1chy492g.xn--45gx9iuy44d; ≠𐮂.↑🄇⒈; [B1, V6]; xn--1chy492g.xn--45gx9iuy44d;
; ; # ≠𐮂.↑🄇⒈
+𝩏ß.ᢤ𐹫; ; [B1, B5, B6, C1, P1, V5, V6];
xn--zca3153vupz3e.xn--ubf609atw1tynn3d; ; xn--ss-zb11ap1427e.xn--ubf2596jbt61c;
[B1, B5, B6, P1, V5, V6] # 𝩏ß.ᢤ𐹫
+𝩏SS.ᢤ𐹫; 𝩏ss.ᢤ𐹫; [B1, B5, B6, C1, P1, V5, V6];
xn--ss-zb11ap1427e.xn--ubf609atw1tynn3d; ;
xn--ss-zb11ap1427e.xn--ubf2596jbt61c; [B1, B5, B6, P1, V5, V6] # 𝩏ss.ᢤ𐹫
+𝩏ss.ᢤ𐹫; ; [B1, B5, B6, C1, P1, V5, V6];
xn--ss-zb11ap1427e.xn--ubf609atw1tynn3d; ;
xn--ss-zb11ap1427e.xn--ubf2596jbt61c; [B1, B5, B6, P1, V5, V6] # 𝩏ss.ᢤ𐹫
+𝩏Ss.ᢤ𐹫; 𝩏ss.ᢤ𐹫; [B1, B5, B6, C1, P1, V5, V6];
xn--ss-zb11ap1427e.xn--ubf609atw1tynn3d; ;
xn--ss-zb11ap1427e.xn--ubf2596jbt61c; [B1, B5, B6, P1, V5, V6] # 𝩏ss.ᢤ𐹫
+xn--ss-zb11ap1427e.xn--ubf2596jbt61c; 𝩏ss.ᢤ𐹫; [B1, B5, B6, V5, V6];
xn--ss-zb11ap1427e.xn--ubf2596jbt61c; ; ; # 𝩏ss.ᢤ𐹫
+xn--ss-zb11ap1427e.xn--ubf609atw1tynn3d; 𝩏ss.ᢤ𐹫; [B1, B5, B6, C1, V5, V6];
xn--ss-zb11ap1427e.xn--ubf609atw1tynn3d; ; ; # 𝩏ss.ᢤ𐹫
+xn--zca3153vupz3e.xn--ubf609atw1tynn3d; 𝩏ß.ᢤ𐹫; [B1, B5, B6, C1, V5, V6];
xn--zca3153vupz3e.xn--ubf609atw1tynn3d; ; ; # 𝩏ß.ᢤ𐹫
+ßႧ。ꙺ; ßႧ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--zca491fci5qkn79a.xn--9x8a; ;
xn--ss-rek7420r4hs7b.xn--9x8a; # ßႧ.ꙺ
+ßႧ。ꙺ; ßႧ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--zca491fci5qkn79a.xn--9x8a; ;
xn--ss-rek7420r4hs7b.xn--9x8a; # ßႧ.ꙺ
+ßⴇ。ꙺ; ßⴇ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--zca227tpy4lkns1b.xn--9x8a; ;
xn--ss-e61ar955h4hs7b.xn--9x8a; # ßⴇ.ꙺ
+SSႧ。ꙺ; ssႧ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--ss-rek7420r4hs7b.xn--9x8a;
; ; # ssႧ.ꙺ
+ssⴇ。ꙺ; ssⴇ.ꙺ; [B1, B3, B5, B6, P1, V5, V6];
xn--ss-e61ar955h4hs7b.xn--9x8a; ; ; # ssⴇ.ꙺ
+SsႧ。ꙺ; ssႧ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--ss-rek7420r4hs7b.xn--9x8a;
; ; # ssႧ.ꙺ
+xn--ss-rek7420r4hs7b.xn--9x8a; ssႧ.ꙺ; [B1, B3, B5, B6, V5, V6];
xn--ss-rek7420r4hs7b.xn--9x8a; ; ; # ssႧ.ꙺ
+xn--ss-e61ar955h4hs7b.xn--9x8a; ssⴇ.ꙺ; [B1, B3, B5, B6, V5, V6];
xn--ss-e61ar955h4hs7b.xn--9x8a; ; ; # ssⴇ.ꙺ
+xn--zca227tpy4lkns1b.xn--9x8a; ßⴇ.ꙺ; [B1, B3, B5, B6, V5, V6];
xn--zca227tpy4lkns1b.xn--9x8a; ; ; # ßⴇ.ꙺ
+xn--zca491fci5qkn79a.xn--9x8a; ßႧ.ꙺ; [B1, B3, B5, B6, V5, V6];
xn--zca491fci5qkn79a.xn--9x8a; ; ; # ßႧ.ꙺ
+ßⴇ。ꙺ; ßⴇ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--zca227tpy4lkns1b.xn--9x8a; ;
xn--ss-e61ar955h4hs7b.xn--9x8a; # ßⴇ.ꙺ
+SSႧ。ꙺ; ssႧ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--ss-rek7420r4hs7b.xn--9x8a;
; ; # ssႧ.ꙺ
+ssⴇ。ꙺ; ssⴇ.ꙺ; [B1, B3, B5, B6, P1, V5, V6];
xn--ss-e61ar955h4hs7b.xn--9x8a; ; ; # ssⴇ.ꙺ
+SsႧ。ꙺ; ssႧ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--ss-rek7420r4hs7b.xn--9x8a;
; ; # ssႧ.ꙺ
+᜔。󠆣-𑋪; ᜔.-𑋪; [V3, V5]; xn--fze.xn----ly8i; ; ; # ᜔.-𑋪
+xn--fze.xn----ly8i; ᜔.-𑋪; [V3, V5]; xn--fze.xn----ly8i; ; ; # ᜔.-𑋪
+ꯨ-.ֽß; ꯨ-.ֽß; [P1, V3, V5, V6]; xn----pw5e.xn--zca50wfv060a; ;
xn----pw5e.xn--ss-7jd10716y; # ꯨ-.ֽß
+ꯨ-.ֽß; ; [P1, V3, V5, V6]; xn----pw5e.xn--zca50wfv060a; ;
xn----pw5e.xn--ss-7jd10716y; # ꯨ-.ֽß
+ꯨ-.ֽSS; ꯨ-.ֽss; [P1, V3, V5, V6]; xn----pw5e.xn--ss-7jd10716y; ; ; # ꯨ-.ֽss
+ꯨ-.ֽss; ; [P1, V3, V5, V6]; xn----pw5e.xn--ss-7jd10716y; ; ; # ꯨ-.ֽss
+ꯨ-.ֽSs; ꯨ-.ֽss; [P1, V3, V5, V6]; xn----pw5e.xn--ss-7jd10716y; ; ; # ꯨ-.ֽss
+xn----pw5e.xn--ss-7jd10716y; ꯨ-.ֽss; [V3, V5, V6];
xn----pw5e.xn--ss-7jd10716y; ; ; # ꯨ-.ֽss
+xn----pw5e.xn--zca50wfv060a; ꯨ-.ֽß; [V3, V5, V6];
xn----pw5e.xn--zca50wfv060a; ; ; # ꯨ-.ֽß
+ꯨ-.ֽSS; ꯨ-.ֽss; [P1, V3, V5, V6]; xn----pw5e.xn--ss-7jd10716y; ; ; # ꯨ-.ֽss
+ꯨ-.ֽss; ꯨ-.ֽss; [P1, V3, V5, V6]; xn----pw5e.xn--ss-7jd10716y; ; ; # ꯨ-.ֽss
+ꯨ-.ֽSs; ꯨ-.ֽss; [P1, V3, V5, V6]; xn----pw5e.xn--ss-7jd10716y; ; ; # ꯨ-.ֽss
+ᡓ-≮。٫󠅱ᡄ; ᡓ-≮.٫ᡄ; [B1, B6, P1, V6]; xn----s7j866c.xn--kib252g; ; ; # ᡓ-≮.٫ᡄ
+ᡓ-≮。٫󠅱ᡄ; ᡓ-≮.٫ᡄ; [B1, B6, P1, V6]; xn----s7j866c.xn--kib252g; ; ; # ᡓ-≮.٫ᡄ
+xn----s7j866c.xn--kib252g; ᡓ-≮.٫ᡄ; [B1, B6, V6]; xn----s7j866c.xn--kib252g; ;
; # ᡓ-≮.٫ᡄ
+𝟥♮𑜫࣭.្𑜫8󠆏; 3♮𑜫࣭.្𑜫8; [V5]; xn--3-ksd277tlo7s.xn--8-f0jx021l; ; ; # 3♮𑜫࣭.្𑜫8
+3♮𑜫࣭.្𑜫8󠆏; 3♮𑜫࣭.្𑜫8; [V5]; xn--3-ksd277tlo7s.xn--8-f0jx021l; ; ; # 3♮𑜫࣭.្𑜫8
+xn--3-ksd277tlo7s.xn--8-f0jx021l; 3♮𑜫࣭.្𑜫8; [V5];
xn--3-ksd277tlo7s.xn--8-f0jx021l; ; ; # 3♮𑜫࣭.្𑜫8
+-。❡; -.❡; [C2, P1, V3, V6]; -.xn--1ug800aq795s; ; -.xn--nei54421f; [P1,
V3, V6] # -.❡
+-。❡; -.❡; [C2, P1, V3, V6]; -.xn--1ug800aq795s; ; -.xn--nei54421f; [P1,
V3, V6] # -.❡
+-.xn--nei54421f; -.❡; [V3, V6]; -.xn--nei54421f; ; ; # -.❡
+-.xn--1ug800aq795s; -.❡; [C2, V3, V6]; -.xn--1ug800aq795s; ; ; # -.❡
+𝟓☱𝟐。𝪮; 5☱2.𝪮; [P1, V5, V6]; xn--52-dwx47758j.xn--kd3hk431k; ; ; # 5☱2.𝪮
+5☱2。𝪮; 5☱2.𝪮; [P1, V5, V6]; xn--52-dwx47758j.xn--kd3hk431k; ; ; # 5☱2.𝪮
+xn--52-dwx47758j.xn--kd3hk431k; 5☱2.𝪮; [V5, V6];
xn--52-dwx47758j.xn--kd3hk431k; ; ; # 5☱2.𝪮
+-.-├; ; [P1, V3, V6]; -.xn----ukp70432h; ; ; # -.-├
+-.xn----ukp70432h; -.-├; [V3, V6]; -.xn----ukp70432h; ; ; # -.-├
+֥ݭ。; ֥ݭ.; [B1, C2, P1, V5, V6]; xn--wcb62g.xn--1ugy8001l; ;
xn--wcb62g.xn--p526e; [B1, P1, V5, V6] # ֥ݭ.
+֥ݭ。; ֥ݭ.; [B1, C2, P1, V5, V6]; xn--wcb62g.xn--1ugy8001l; ;
xn--wcb62g.xn--p526e; [B1, P1, V5, V6] # ֥ݭ.
+xn--wcb62g.xn--p526e; ֥ݭ.; [B1, V5, V6]; xn--wcb62g.xn--p526e; ; ; # ֥ݭ.
+xn--wcb62g.xn--1ugy8001l; ֥ݭ.; [B1, C2, V5, V6]; xn--wcb62g.xn--1ugy8001l; ;
; # ֥ݭ.
+쥥Ⴎ.⒈⒈𐫒; 쥥Ⴎ.⒈⒈𐫒; [B1, C1, P1, V6]; xn--mnd7865gcy28g.xn--0ug88oa0396u; ;
xn--mnd7865gcy28g.xn--tsha6797o; [B1, P1, V6] # 쥥Ⴎ.⒈⒈𐫒
+쥥Ⴎ.⒈⒈𐫒; 쥥Ⴎ.⒈⒈𐫒; [B1, C1, P1, V6]; xn--mnd7865gcy28g.xn--0ug88oa0396u; ;
xn--mnd7865gcy28g.xn--tsha6797o; [B1, P1, V6] # 쥥Ⴎ.⒈⒈𐫒
+쥥Ⴎ.1.1.𐫒; ; [B1, C1, P1, V6]; xn--mnd7865gcy28g.xn--1-rgn.1.xn--7w9c; ;
xn--mnd7865gcy28g.1.1.xn--7w9c; [B1, P1, V6] # 쥥Ⴎ.1.1.𐫒
+쥥Ⴎ.1.1.𐫒; 쥥Ⴎ.1.1.𐫒; [B1, C1, P1, V6];
xn--mnd7865gcy28g.xn--1-rgn.1.xn--7w9c; ; xn--mnd7865gcy28g.1.1.xn--7w9c; [B1,
P1, V6] # 쥥Ⴎ.1.1.𐫒
+쥥ⴎ.1.1.𐫒; 쥥ⴎ.1.1.𐫒; [B1, C1, P1, V6];
xn--5kj3511ccyw3h.xn--1-rgn.1.xn--7w9c; ; xn--5kj3511ccyw3h.1.1.xn--7w9c; [B1,
P1, V6] # 쥥ⴎ.1.1.𐫒
+쥥ⴎ.1.1.𐫒; ; [B1, C1, P1, V6]; xn--5kj3511ccyw3h.xn--1-rgn.1.xn--7w9c; ;
xn--5kj3511ccyw3h.1.1.xn--7w9c; [B1, P1, V6] # 쥥ⴎ.1.1.𐫒
+xn--5kj3511ccyw3h.1.1.xn--7w9c; 쥥ⴎ.1.1.𐫒; [B1, V6];
xn--5kj3511ccyw3h.1.1.xn--7w9c; ; ; # 쥥ⴎ.1.1.𐫒
+xn--5kj3511ccyw3h.xn--1-rgn.1.xn--7w9c; 쥥ⴎ.1.1.𐫒; [B1, C1, V6];
xn--5kj3511ccyw3h.xn--1-rgn.1.xn--7w9c; ; ; # 쥥ⴎ.1.1.𐫒
+xn--mnd7865gcy28g.1.1.xn--7w9c; 쥥Ⴎ.1.1.𐫒; [B1, V6];
xn--mnd7865gcy28g.1.1.xn--7w9c; ; ; # 쥥Ⴎ.1.1.𐫒
+xn--mnd7865gcy28g.xn--1-rgn.1.xn--7w9c; 쥥Ⴎ.1.1.𐫒; [B1, C1, V6];
xn--mnd7865gcy28g.xn--1-rgn.1.xn--7w9c; ; ; # 쥥Ⴎ.1.1.𐫒
+쥥ⴎ.⒈⒈𐫒; 쥥ⴎ.⒈⒈𐫒; [B1, C1, P1, V6]; xn--5kj3511ccyw3h.xn--0ug88oa0396u; ;
xn--5kj3511ccyw3h.xn--tsha6797o; [B1, P1, V6] # 쥥ⴎ.⒈⒈𐫒
+쥥ⴎ.⒈⒈𐫒; 쥥ⴎ.⒈⒈𐫒; [B1, C1, P1, V6]; xn--5kj3511ccyw3h.xn--0ug88oa0396u; ;
xn--5kj3511ccyw3h.xn--tsha6797o; [B1, P1, V6] # 쥥ⴎ.⒈⒈𐫒
+xn--5kj3511ccyw3h.xn--tsha6797o; 쥥ⴎ.⒈⒈𐫒; [B1, V6];
xn--5kj3511ccyw3h.xn--tsha6797o; ; ; # 쥥ⴎ.⒈⒈𐫒
+xn--5kj3511ccyw3h.xn--0ug88oa0396u; 쥥ⴎ.⒈⒈𐫒; [B1, C1, V6];
xn--5kj3511ccyw3h.xn--0ug88oa0396u; ; ; # 쥥ⴎ.⒈⒈𐫒
+xn--mnd7865gcy28g.xn--tsha6797o; 쥥Ⴎ.⒈⒈𐫒; [B1, V6];
xn--mnd7865gcy28g.xn--tsha6797o; ; ; # 쥥Ⴎ.⒈⒈𐫒
+xn--mnd7865gcy28g.xn--0ug88oa0396u; 쥥Ⴎ.⒈⒈𐫒; [B1, C1, V6];
xn--mnd7865gcy28g.xn--0ug88oa0396u; ; ; # 쥥Ⴎ.⒈⒈𐫒
+ࠧ𝟶ڠ-。𑄳; ࠧ0ڠ-.𑄳; [B1, B3, B6, V3, V5]; xn--0--p3d67m.xn--v80d; ; ; # ࠧ0ڠ-.𑄳
+ࠧ0ڠ-。𑄳; ࠧ0ڠ-.𑄳; [B1, B3, B6, V3, V5]; xn--0--p3d67m.xn--v80d; ; ; # ࠧ0ڠ-.𑄳
+xn--0--p3d67m.xn--v80d; ࠧ0ڠ-.𑄳; [B1, B3, B6, V3, V5]; xn--0--p3d67m.xn--v80d;
; ; # ࠧ0ڠ-.𑄳
+ς.ﷁ🞛⒈; ς.فمي🞛⒈; [P1, V6]; xn--3xa.xn--dhbip2802atb20c; ;
xn--4xa.xn--dhbip2802atb20c; # ς.فمي🞛⒈
+ς.فمي🞛1.; ; ; xn--3xa.xn--1-gocmu97674d.; ; xn--4xa.xn--1-gocmu97674d.; #
ς.فمي🞛1.
+Σ.فمي🞛1.; σ.فمي🞛1.; ; xn--4xa.xn--1-gocmu97674d.; ; ; # σ.فمي🞛1.
+σ.فمي🞛1.; ; ; xn--4xa.xn--1-gocmu97674d.; ; ; # σ.فمي🞛1.
+xn--4xa.xn--1-gocmu97674d.; σ.فمي🞛1.; ; xn--4xa.xn--1-gocmu97674d.; ; ; #
σ.فمي🞛1.
+xn--3xa.xn--1-gocmu97674d.; ς.فمي🞛1.; ; xn--3xa.xn--1-gocmu97674d.; ; ; #
ς.فمي🞛1.
+Σ.ﷁ🞛⒈; σ.فمي🞛⒈; [P1, V6]; xn--4xa.xn--dhbip2802atb20c; ; ; # σ.فمي🞛⒈
+σ.ﷁ🞛⒈; σ.فمي🞛⒈; [P1, V6]; xn--4xa.xn--dhbip2802atb20c; ; ; # σ.فمي🞛⒈
+xn--4xa.xn--dhbip2802atb20c; σ.فمي🞛⒈; [V6]; xn--4xa.xn--dhbip2802atb20c; ; ;
# σ.فمي🞛⒈
+xn--3xa.xn--dhbip2802atb20c; ς.فمي🞛⒈; [V6]; xn--3xa.xn--dhbip2802atb20c; ; ;
# ς.فمي🞛⒈
+🗩-。𐹻; 🗩-.𐹻; [B1, P1, V3, V6]; xn----6t3s.xn--zo0d4811u6ru6a; ; ; # 🗩-.𐹻
+🗩-。𐹻; 🗩-.𐹻; [B1, P1, V3, V6]; xn----6t3s.xn--zo0d4811u6ru6a; ; ; # 🗩-.𐹻
+xn----6t3s.xn--zo0d4811u6ru6a; 🗩-.𐹻; [B1, V3, V6];
xn----6t3s.xn--zo0d4811u6ru6a; ; ; # 🗩-.𐹻
+𐡜-🔪。𝟻𐿀; 𐡜-🔪.5𐿀; [B1, B3, C1]; xn----5j4iv089c.xn--5-sgn7149h; ;
xn----5j4iv089c.xn--5-bn7i; [B1, B3] # 𐡜-🔪.5𐿀
+𐡜-🔪。5𐿀; 𐡜-🔪.5𐿀; [B1, B3, C1]; xn----5j4iv089c.xn--5-sgn7149h; ;
xn----5j4iv089c.xn--5-bn7i; [B1, B3] # 𐡜-🔪.5𐿀
+xn----5j4iv089c.xn--5-bn7i; 𐡜-🔪.5𐿀; [B1, B3]; xn----5j4iv089c.xn--5-bn7i; ; ;
# 𐡜-🔪.5𐿀
+xn----5j4iv089c.xn--5-sgn7149h; 𐡜-🔪.5𐿀; [B1, B3, C1];
xn----5j4iv089c.xn--5-sgn7149h; ; ; # 𐡜-🔪.5𐿀
+𐹣늿ß.ߏ0ּ; 𐹣늿ß.ߏ0ּ; [B1, C2]; xn--zca770n5s4hev6c.xn--0-vgc50n; ;
xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ß.ߏ0ּ
+𐹣늿ß.ߏ0ּ; 𐹣늿ß.ߏ0ּ; [B1, C2]; xn--zca770n5s4hev6c.xn--0-vgc50n; ;
xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ß.ߏ0ּ
+𐹣늿ß.ߏ0ּ; ; [B1, C2]; xn--zca770n5s4hev6c.xn--0-vgc50n; ;
xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ß.ߏ0ּ
+𐹣늿ß.ߏ0ּ; 𐹣늿ß.ߏ0ּ; [B1, C2]; xn--zca770n5s4hev6c.xn--0-vgc50n; ;
xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ß.ߏ0ּ
+𐹣늿SS.ߏ0ּ; 𐹣늿ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ;
xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿SS.ߏ0ּ; 𐹣늿ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ;
xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿ss.ߏ0ּ; ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ;
xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿ss.ߏ0ּ; 𐹣늿ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ;
xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+xn--ss-i05i7041a.xn--0-vgc50n; 𐹣늿ss.ߏ0ּ; [B1]; xn--ss-i05i7041a.xn--0-vgc50n;
; ; # 𐹣늿ss.ߏ0ּ
+xn--ss-l1tu910fo0xd.xn--0-vgc50n; 𐹣늿ss.ߏ0ּ; [B1, C2];
xn--ss-l1tu910fo0xd.xn--0-vgc50n; ; ; # 𐹣늿ss.ߏ0ּ
+𐹣늿Ss.ߏ0ּ; 𐹣늿ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ;
xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿Ss.ߏ0ּ; 𐹣늿ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ;
xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+xn--zca770n5s4hev6c.xn--0-vgc50n; 𐹣늿ß.ߏ0ּ; [B1, C2];
xn--zca770n5s4hev6c.xn--0-vgc50n; ; ; # 𐹣늿ß.ߏ0ּ
+𐹣늿SS.ߏ0ּ; 𐹣늿ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ;
xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿SS.ߏ0ּ; 𐹣늿ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ;
xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿ss.ߏ0ּ; 𐹣늿ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ;
xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿ss.ߏ0ּ; 𐹣늿ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ;
xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿Ss.ߏ0ּ; 𐹣늿ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ;
xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿Ss.ߏ0ּ; 𐹣늿ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ;
xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+9󠇥.ᢓ; 9.ᢓ; [P1, V6]; 9.xn--dbf91222q; ; ; # 9.ᢓ
+9󠇥.ᢓ; 9.ᢓ; [P1, V6]; 9.xn--dbf91222q; ; ; # 9.ᢓ
+9.xn--dbf91222q; 9.ᢓ; [V6]; 9.xn--dbf91222q; ; ; # 9.ᢓ
+ᅠ.𐫭🠗ß⽟; ᅠ.𐫭🠗ß玉; [B1, B2, B3, C1, P1, V6]; xn--0ug7719f.xn--zca2289c550e0iwi;
; xn--cl7c.xn--ss-je6eq954cp25j; [B2, B3, P1, V6] # .𐫭🠗ß玉
+ᅠ.𐫭🠗ß玉; ; [B1, B2, B3, C1, P1, V6]; xn--psd526e.xn--zca2289c550e0iwi; ;
xn--psd.xn--ss-je6eq954cp25j; [B2, B3, P1, V6] # .𐫭🠗ß玉
+ᅠ.𐫭🠗SS玉; ᅠ.𐫭🠗ss玉; [B1, B2, B3, C1, P1, V6];
xn--psd526e.xn--ss-je6eq954cp25j; ; xn--psd.xn--ss-je6eq954cp25j; [B2, B3, P1,
V6] # .𐫭🠗ss玉
+ᅠ.𐫭🠗ss玉; ; [B1, B2, B3, C1, P1, V6]; xn--psd526e.xn--ss-je6eq954cp25j; ;
xn--psd.xn--ss-je6eq954cp25j; [B2, B3, P1, V6] # .𐫭🠗ss玉
+ᅠ.𐫭🠗Ss玉; ᅠ.𐫭🠗ss玉; [B1, B2, B3, C1, P1, V6];
xn--psd526e.xn--ss-je6eq954cp25j; ; xn--psd.xn--ss-je6eq954cp25j; [B2, B3, P1,
V6] # .𐫭🠗ss玉
+xn--psd.xn--ss-je6eq954cp25j; ᅠ.𐫭🠗ss玉; [B2, B3, V6];
xn--psd.xn--ss-je6eq954cp25j; ; ; # .𐫭🠗ss玉
+xn--psd526e.xn--ss-je6eq954cp25j; ᅠ.𐫭🠗ss玉; [B1, B2, B3, C1, V6];
xn--psd526e.xn--ss-je6eq954cp25j; ; ; # .𐫭🠗ss玉
+xn--psd526e.xn--zca2289c550e0iwi; ᅠ.𐫭🠗ß玉; [B1, B2, B3, C1, V6];
xn--psd526e.xn--zca2289c550e0iwi; ; ; # .𐫭🠗ß玉
+ᅠ.𐫭🠗SS⽟; ᅠ.𐫭🠗ss玉; [B1, B2, B3, C1, P1, V6];
xn--0ug7719f.xn--ss-je6eq954cp25j; ; xn--cl7c.xn--ss-je6eq954cp25j; [B2, B3,
P1, V6] # .𐫭🠗ss玉
+ᅠ.𐫭🠗ss⽟; ᅠ.𐫭🠗ss玉; [B1, B2, B3, C1, P1, V6];
xn--0ug7719f.xn--ss-je6eq954cp25j; ; xn--cl7c.xn--ss-je6eq954cp25j; [B2, B3,
P1, V6] # .𐫭🠗ss玉
+ᅠ.𐫭🠗Ss⽟; ᅠ.𐫭🠗ss玉; [B1, B2, B3, C1, P1, V6];
xn--0ug7719f.xn--ss-je6eq954cp25j; ; xn--cl7c.xn--ss-je6eq954cp25j; [B2, B3,
P1, V6] # .𐫭🠗ss玉
+xn--cl7c.xn--ss-je6eq954cp25j; ᅠ.𐫭🠗ss玉; [B2, B3, V6];
xn--cl7c.xn--ss-je6eq954cp25j; ; ; # .𐫭🠗ss玉
+xn--0ug7719f.xn--ss-je6eq954cp25j; ᅠ.𐫭🠗ss玉; [B1, B2, B3, C1, V6];
xn--0ug7719f.xn--ss-je6eq954cp25j; ; ; # .𐫭🠗ss玉
+xn--0ug7719f.xn--zca2289c550e0iwi; ᅠ.𐫭🠗ß玉; [B1, B2, B3, C1, V6];
xn--0ug7719f.xn--zca2289c550e0iwi; ; ; # .𐫭🠗ß玉
+︒Ⴖͦ.; ︒Ⴖͦ.; [C1, P1, V6]; xn--hva929dl29p.xn--0ug; ; xn--hva929dl29p.; [P1,
V6] # ︒Ⴖͦ.
+。Ⴖͦ.; .Ⴖͦ.; [C1, P1, V6, X4_2]; .xn--hva929d.xn--0ug; [C1, P1, V6, A4_2];
.xn--hva929d.; [P1, V6, A4_2] # .Ⴖͦ.
+。ⴖͦ.; .ⴖͦ.; [C1, X4_2]; .xn--hva754s.xn--0ug; [C1, A4_2]; .xn--hva754s.;
[A4_2] # .ⴖͦ.
+.xn--hva754s.; .ⴖͦ.; [X4_2]; .xn--hva754s.; [A4_2]; ; # .ⴖͦ.
+.xn--hva754s.xn--0ug; .ⴖͦ.; [C1, X4_2]; .xn--hva754s.xn--0ug; [C1, A4_2]; ;
# .ⴖͦ.
+.xn--hva929d.; .Ⴖͦ.; [V6, X4_2]; .xn--hva929d.; [V6, A4_2]; ; # .Ⴖͦ.
+.xn--hva929d.xn--0ug; .Ⴖͦ.; [C1, V6, X4_2]; .xn--hva929d.xn--0ug; [C1, V6,
A4_2]; ; # .Ⴖͦ.
+︒ⴖͦ.; ︒ⴖͦ.; [C1, P1, V6]; xn--hva754sy94k.xn--0ug; ; xn--hva754sy94k.; [P1,
V6] # ︒ⴖͦ.
+xn--hva754sy94k.; ︒ⴖͦ.; [V6]; xn--hva754sy94k.; ; ; # ︒ⴖͦ.
+xn--hva754sy94k.xn--0ug; ︒ⴖͦ.; [C1, V6]; xn--hva754sy94k.xn--0ug; ; ; # ︒ⴖͦ.
+xn--hva929dl29p.; ︒Ⴖͦ.; [V6]; xn--hva929dl29p.; ; ; # ︒Ⴖͦ.
+xn--hva929dl29p.xn--0ug; ︒Ⴖͦ.; [C1, V6]; xn--hva929dl29p.xn--0ug; ; ; # ︒Ⴖͦ.
+xn--hva754s.; ⴖͦ.; ; xn--hva754s.; ; ; # ⴖͦ.
+ⴖͦ.; ; ; xn--hva754s.; ; ; # ⴖͦ.
+Ⴖͦ.; ; [P1, V6]; xn--hva929d.; ; ; # Ⴖͦ.
+xn--hva929d.; Ⴖͦ.; [V6]; xn--hva929d.; ; ; # Ⴖͦ.
+ࢻ.Ⴃ𞀒; ࢻ.Ⴃ𞀒; [B1, C1, P1, V6]; xn--hzb.xn--bnd300f7225a; ;
xn--hzb.xn--bnd2938u; [P1, V6] # ࢻ.Ⴃ𞀒
+ࢻ.Ⴃ𞀒; ; [B1, C1, P1, V6]; xn--hzb.xn--bnd300f7225a; ; xn--hzb.xn--bnd2938u;
[P1, V6] # ࢻ.Ⴃ𞀒
+ࢻ.ⴃ𞀒; ; [B1, C1]; xn--hzb.xn--0ug822cp045a; ; xn--hzb.xn--ukj4430l; [] # ࢻ.ⴃ𞀒
+xn--hzb.xn--ukj4430l; ࢻ.ⴃ𞀒; ; xn--hzb.xn--ukj4430l; ; ; # ࢻ.ⴃ𞀒
+ࢻ.ⴃ𞀒; ; ; xn--hzb.xn--ukj4430l; ; ; # ࢻ.ⴃ𞀒
+ࢻ.Ⴃ𞀒; ; [P1, V6]; xn--hzb.xn--bnd2938u; ; ; # ࢻ.Ⴃ𞀒
+xn--hzb.xn--bnd2938u; ࢻ.Ⴃ𞀒; [V6]; xn--hzb.xn--bnd2938u; ; ; # ࢻ.Ⴃ𞀒
+xn--hzb.xn--0ug822cp045a; ࢻ.ⴃ𞀒; [B1, C1]; xn--hzb.xn--0ug822cp045a; ; ; #
ࢻ.ⴃ𞀒
+xn--hzb.xn--bnd300f7225a; ࢻ.Ⴃ𞀒; [B1, C1, V6]; xn--hzb.xn--bnd300f7225a; ; ;
# ࢻ.Ⴃ𞀒
+ࢻ.ⴃ𞀒; ࢻ.ⴃ𞀒; [B1, C1]; xn--hzb.xn--0ug822cp045a; ; xn--hzb.xn--ukj4430l; [] #
ࢻ.ⴃ𞀒
+。2䫷; .2䫷; [C1, C2, P1, V6]; xn--0ugb.xn--2-me5ay1273i; ;
.xn--2-me5ay1273i; [P1, V6, A4_2] # .2䫷
+。2䫷; .2䫷; [C1, C2, P1, V6]; xn--0ugb.xn--2-me5ay1273i; ;
.xn--2-me5ay1273i; [P1, V6, A4_2] # .2䫷
+.xn--2-me5ay1273i; .2䫷; [V6, X4_2]; .xn--2-me5ay1273i; [V6, A4_2]; ; # .2䫷
+xn--0ugb.xn--2-me5ay1273i; .2䫷; [C1, C2, V6]; xn--0ugb.xn--2-me5ay1273i; ;
; # .2䫷
+-𞀤。; -𞀤.; [P1, V3, V6]; xn----rq4re4997d.xn--l707b; ; ; # -𞀤.
+xn----rq4re4997d.xn--l707b; -𞀤.; [V3, V6]; xn----rq4re4997d.xn--l707b; ; ;
# -𞀤.
+︒㟀.ؤ⒈; ︒㟀.ؤ⒈; [C1, P1, V6]; xn--0ug754gxl4ldlt0k.xn--jgb476m; ;
xn--etlt457ccrq7h.xn--jgb476m; [P1, V6] # ︒㟀.ؤ⒈
+︒㟀.ؤ⒈; ︒㟀.ؤ⒈; [C1, P1, V6]; xn--0ug754gxl4ldlt0k.xn--jgb476m; ;
xn--etlt457ccrq7h.xn--jgb476m; [P1, V6] # ︒㟀.ؤ⒈
+。㟀.ؤ1.; .㟀.ؤ1.; [B1, C1, P1, V6]; xn--z272f.xn--0ug754g.xn--1-smc.; ;
xn--z272f.xn--etl.xn--1-smc.; [P1, V6] # .㟀.ؤ1.
+。㟀.ؤ1.; .㟀.ؤ1.; [B1, C1, P1, V6]; xn--z272f.xn--0ug754g.xn--1-smc.; ;
xn--z272f.xn--etl.xn--1-smc.; [P1, V6] # .㟀.ؤ1.
+xn--z272f.xn--etl.xn--1-smc.; .㟀.ؤ1.; [V6]; xn--z272f.xn--etl.xn--1-smc.; ; ;
# .㟀.ؤ1.
+xn--z272f.xn--0ug754g.xn--1-smc.; .㟀.ؤ1.; [B1, C1, V6];
xn--z272f.xn--0ug754g.xn--1-smc.; ; ; # .㟀.ؤ1.
+xn--etlt457ccrq7h.xn--jgb476m; ︒㟀.ؤ⒈; [V6]; xn--etlt457ccrq7h.xn--jgb476m; ;
; # ︒㟀.ؤ⒈
+xn--0ug754gxl4ldlt0k.xn--jgb476m; ︒㟀.ؤ⒈; [C1, V6];
xn--0ug754gxl4ldlt0k.xn--jgb476m; ; ; # ︒㟀.ؤ⒈
+𑲜ߊ𝅼。-; 𑲜ߊ𝅼.-; [B1, C2, V3, V5]; xn--lsb5482l7nre.xn----ugn; ;
xn--lsb5482l7nre.-; [B1, V3, V5] # 𑲜ߊ𝅼.-
+xn--lsb5482l7nre.-; 𑲜ߊ𝅼.-; [B1, V3, V5]; xn--lsb5482l7nre.-; ; ; # 𑲜ߊ𝅼.-
+xn--lsb5482l7nre.xn----ugn; 𑲜ߊ𝅼.-; [B1, C2, V3, V5];
xn--lsb5482l7nre.xn----ugn; ; ; # 𑲜ߊ𝅼.-
+.Ⴉ≠𐫶; .Ⴉ≠𐫶; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--hnd481gv73o; ;
.xn--hnd481gv73o; [B5, B6, P1, V6, A4_2] # .Ⴉ≠𐫶
+.Ⴉ≠𐫶; .Ⴉ≠𐫶; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--hnd481gv73o; ;
.xn--hnd481gv73o; [B5, B6, P1, V6, A4_2] # .Ⴉ≠𐫶
+.Ⴉ≠𐫶; ; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--hnd481gv73o; ;
.xn--hnd481gv73o; [B5, B6, P1, V6, A4_2] # .Ⴉ≠𐫶
+.Ⴉ≠𐫶; .Ⴉ≠𐫶; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--hnd481gv73o; ;
.xn--hnd481gv73o; [B5, B6, P1, V6, A4_2] # .Ⴉ≠𐫶
+.ⴉ≠𐫶; .ⴉ≠𐫶; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--1chx23bzj4p; ;
.xn--1chx23bzj4p; [B5, B6, P1, V6, A4_2] # .ⴉ≠𐫶
+.ⴉ≠𐫶; ; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--1chx23bzj4p; ;
.xn--1chx23bzj4p; [B5, B6, P1, V6, A4_2] # .ⴉ≠𐫶
+.xn--1chx23bzj4p; .ⴉ≠𐫶; [B5, B6, V6, X4_2]; .xn--1chx23bzj4p; [B5, B6, V6,
A4_2]; ; # .ⴉ≠𐫶
+xn--0ug.xn--1chx23bzj4p; .ⴉ≠𐫶; [B1, B5, B6, C1, V6]; xn--0ug.xn--1chx23bzj4p;
; ; # .ⴉ≠𐫶
+.xn--hnd481gv73o; .Ⴉ≠𐫶; [B5, B6, V6, X4_2]; .xn--hnd481gv73o; [B5, B6, V6,
A4_2]; ; # .Ⴉ≠𐫶
+xn--0ug.xn--hnd481gv73o; .Ⴉ≠𐫶; [B1, B5, B6, C1, V6]; xn--0ug.xn--hnd481gv73o;
; ; # .Ⴉ≠𐫶
+.ⴉ≠𐫶; .ⴉ≠𐫶; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--1chx23bzj4p; ;
.xn--1chx23bzj4p; [B5, B6, P1, V6, A4_2] # .ⴉ≠𐫶
+.ⴉ≠𐫶; .ⴉ≠𐫶; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--1chx23bzj4p; ;
.xn--1chx23bzj4p; [B5, B6, P1, V6, A4_2] # .ⴉ≠𐫶
+ݐ。≯ς; ݐ.≯ς; [B1, P1, V6]; xn--3ob.xn--3xa918m; ; xn--3ob.xn--4xa718m; # ݐ.≯ς
+ݐ。≯ς; ݐ.≯ς; [B1, P1, V6]; xn--3ob.xn--3xa918m; ; xn--3ob.xn--4xa718m; # ݐ.≯ς
+ݐ。≯Σ; ݐ.≯σ; [B1, P1, V6]; xn--3ob.xn--4xa718m; ; ; # ݐ.≯σ
+ݐ。≯Σ; ݐ.≯σ; [B1, P1, V6]; xn--3ob.xn--4xa718m; ; ; # ݐ.≯σ
+ݐ。≯σ; ݐ.≯σ; [B1, P1, V6]; xn--3ob.xn--4xa718m; ; ; # ݐ.≯σ
+ݐ。≯σ; ݐ.≯σ; [B1, P1, V6]; xn--3ob.xn--4xa718m; ; ; # ݐ.≯σ
+xn--3ob.xn--4xa718m; ݐ.≯σ; [B1, V6]; xn--3ob.xn--4xa718m; ; ; # ݐ.≯σ
+xn--3ob.xn--3xa918m; ݐ.≯ς; [B1, V6]; xn--3ob.xn--3xa918m; ; ; # ݐ.≯ς
+.︒Ⴐ; ; [P1, V6]; xn--0tb8725k.xn--ond3562jt18a7py9c; ; ; # .︒Ⴐ
+.。Ⴐ; ..Ⴐ; [P1, V6]; xn--0tb8725k.xn--tu8d.xn--ond97931d; ; ; # ..Ⴐ
+.。ⴐ; ..ⴐ; [P1, V6]; xn--0tb8725k.xn--tu8d.xn--7kj73887a; ; ; # ..ⴐ
+xn--0tb8725k.xn--tu8d.xn--7kj73887a; ..ⴐ; [V6];
xn--0tb8725k.xn--tu8d.xn--7kj73887a; ; ; # ..ⴐ
+xn--0tb8725k.xn--tu8d.xn--ond97931d; ..Ⴐ; [V6];
xn--0tb8725k.xn--tu8d.xn--ond97931d; ; ; # ..Ⴐ
+.︒ⴐ; ; [P1, V6]; xn--0tb8725k.xn--7kj9008dt18a7py9c; ; ; # .︒ⴐ
+xn--0tb8725k.xn--7kj9008dt18a7py9c; .︒ⴐ; [V6];
xn--0tb8725k.xn--7kj9008dt18a7py9c; ; ; # .︒ⴐ
+xn--0tb8725k.xn--ond3562jt18a7py9c; .︒Ⴐ; [V6];
xn--0tb8725k.xn--ond3562jt18a7py9c; ; ; # .︒Ⴐ
+Ⴥ⚭⋃。𑌼; Ⴥ⚭⋃.𑌼; [P1, V5, V6]; xn--9nd623g4zc5z060c.xn--ro1d; ; ; # Ⴥ⚭⋃.𑌼
+Ⴥ⚭⋃。𑌼; Ⴥ⚭⋃.𑌼; [P1, V5, V6]; xn--9nd623g4zc5z060c.xn--ro1d; ; ; # Ⴥ⚭⋃.𑌼
+ⴥ⚭⋃。𑌼; ⴥ⚭⋃.𑌼; [P1, V5, V6]; xn--vfh16m67gx1162b.xn--ro1d; ; ; # ⴥ⚭⋃.𑌼
+xn--vfh16m67gx1162b.xn--ro1d; ⴥ⚭⋃.𑌼; [V5, V6]; xn--vfh16m67gx1162b.xn--ro1d;
; ; # ⴥ⚭⋃.𑌼
+xn--9nd623g4zc5z060c.xn--ro1d; Ⴥ⚭⋃.𑌼; [V5, V6];
xn--9nd623g4zc5z060c.xn--ro1d; ; ; # Ⴥ⚭⋃.𑌼
+ⴥ⚭⋃。𑌼; ⴥ⚭⋃.𑌼; [P1, V5, V6]; xn--vfh16m67gx1162b.xn--ro1d; ; ; # ⴥ⚭⋃.𑌼
+🄈。ࡄ; 🄈.ࡄ; [B1, P1, V6]; xn--107h.xn--2vb13094p; ; ; # 🄈.ࡄ
+7,。ࡄ; 7,.ࡄ; [B1, P1, V6]; 7,.xn--2vb13094p; ; ; # 7,.ࡄ
+7,.xn--2vb13094p; 7,.ࡄ; [B1, P1, V6]; 7,.xn--2vb13094p; ; ; # 7,.ࡄ
+xn--107h.xn--2vb13094p; 🄈.ࡄ; [B1, V6]; xn--107h.xn--2vb13094p; ; ; # 🄈.ࡄ
+≮ࡆ。섖쮖ß; ≮ࡆ.섖쮖ß; [B1, P1, V6]; xn--4vb505k.xn--zca7259goug; ;
xn--4vb505k.xn--ss-5z4j006a; # ≮ࡆ.섖쮖ß
+≮ࡆ。섖쮖ß; ≮ࡆ.섖쮖ß; [B1, P1, V6]; xn--4vb505k.xn--zca7259goug; ;
xn--4vb505k.xn--ss-5z4j006a; # ≮ࡆ.섖쮖ß
+≮ࡆ。섖쮖SS; ≮ࡆ.섖쮖ss; [B1, P1, V6]; xn--4vb505k.xn--ss-5z4j006a; ; ; #
≮ࡆ.섖쮖ss
+≮ࡆ。섖쮖SS; ≮ࡆ.섖쮖ss; [B1, P1, V6]; xn--4vb505k.xn--ss-5z4j006a; ; ; # ≮ࡆ.섖쮖ss
+≮ࡆ。섖쮖ss; ≮ࡆ.섖쮖ss; [B1, P1, V6]; xn--4vb505k.xn--ss-5z4j006a; ; ; # ≮ࡆ.섖쮖ss
+≮ࡆ。섖쮖ss; ≮ࡆ.섖쮖ss; [B1, P1, V6]; xn--4vb505k.xn--ss-5z4j006a; ; ; #
≮ࡆ.섖쮖ss
+xn--4vb505k.xn--ss-5z4j006a; ≮ࡆ.섖쮖ss; [B1, V6]; xn--4vb505k.xn--ss-5z4j006a; ;
; # ≮ࡆ.섖쮖ss
+≮ࡆ。섖쮖Ss; ≮ࡆ.섖쮖ss; [B1, P1, V6]; xn--4vb505k.xn--ss-5z4j006a; ; ; # ≮ࡆ.섖쮖ss
+≮ࡆ。섖쮖Ss; ≮ࡆ.섖쮖ss; [B1, P1, V6]; xn--4vb505k.xn--ss-5z4j006a; ; ; #
≮ࡆ.섖쮖ss
+xn--4vb505k.xn--zca7259goug; ≮ࡆ.섖쮖ß; [B1, V6]; xn--4vb505k.xn--zca7259goug; ;
; # ≮ࡆ.섖쮖ß
+󠆓⛏-。ꡒ; ⛏-.ꡒ; [V3]; xn----o9p.xn--rc9a; ; ; # ⛏-.ꡒ
+xn----o9p.xn--rc9a; ⛏-.ꡒ; [V3]; xn----o9p.xn--rc9a; ; ; # ⛏-.ꡒ
+𐹳ئ𑁆。ࢧڰᢒ; 𐹳ئ𑁆.ࢧڰᢒ; [B2, B3, P1, V6]; xn--lgb32f2753cosb.xn--jkb91hlz1azih;
; xn--lgb32f2753cosb.xn--jkb91hlz1a; # 𐹳ئ𑁆.ࢧڰᢒ
+𐹳ئ𑁆。ࢧڰᢒ; 𐹳ئ𑁆.ࢧڰᢒ; [B2, B3, P1, V6]; xn--lgb32f2753cosb.xn--jkb91hlz1azih;
; xn--lgb32f2753cosb.xn--jkb91hlz1a; # 𐹳ئ𑁆.ࢧڰᢒ
+xn--lgb32f2753cosb.xn--jkb91hlz1a; 𐹳ئ𑁆.ࢧڰᢒ; [B2, B3, V6];
xn--lgb32f2753cosb.xn--jkb91hlz1a; ; ; # 𐹳ئ𑁆.ࢧڰᢒ
+xn--lgb32f2753cosb.xn--jkb91hlz1azih; 𐹳ئ𑁆.ࢧڰᢒ; [B2, B3, V6];
xn--lgb32f2753cosb.xn--jkb91hlz1azih; ; ; # 𐹳ئ𑁆.ࢧڰᢒ
+ࠖ.𐨕; ; [B1, B2, B3, B6, P1, V5, V6]; xn--rub.xn--tr9c248x; ; ; # ࠖ.𐨕
+xn--rub.xn--tr9c248x; ࠖ.𐨕; [B1, B2, B3, B6, V5, V6]; xn--rub.xn--tr9c248x; ;
; # ࠖ.𐨕
+--。ݧ𐽋𞠬; --.ݧ𐽋𞠬; [B1, B5, B6, P1, V3, V6]; --.xn--rpb6226k77pfh58p; ; ; #
--.ݧ𐽋𞠬
+--.xn--rpb6226k77pfh58p; --.ݧ𐽋𞠬; [B1, B5, B6, V3, V6];
--.xn--rpb6226k77pfh58p; ; ; # --.ݧ𐽋𞠬
+𐋥.≯ࢰࢦ; ; [B1, P1, V6]; xn--887c2298i5mv6a.xn--vybt688qm8981a; ; ; # 𐋥.≯ࢰࢦ
+𐋥.≯ࢰࢦ; 𐋥.≯ࢰࢦ; [B1, P1, V6]; xn--887c2298i5mv6a.xn--vybt688qm8981a; ; ;
# 𐋥.≯ࢰࢦ
+xn--887c2298i5mv6a.xn--vybt688qm8981a; 𐋥.≯ࢰࢦ; [B1, V6];
xn--887c2298i5mv6a.xn--vybt688qm8981a; ; ; # 𐋥.≯ࢰࢦ
+䔛󠇒𐹧.-䤷; 䔛𐹧.-䤷; [B1, B5, B6, P1, V3, V6]; xn--2loy662coo60e.xn----0n4a; ; ;
# 䔛𐹧.-䤷
+䔛󠇒𐹧.-䤷; 䔛𐹧.-䤷; [B1, B5, B6, P1, V3, V6]; xn--2loy662coo60e.xn----0n4a; ; ;
# 䔛𐹧.-䤷
+xn--2loy662coo60e.xn----0n4a; 䔛𐹧.-䤷; [B1, B5, B6, V3, V6];
xn--2loy662coo60e.xn----0n4a; ; ; # 䔛𐹧.-䤷
+𐹩.-; 𐹩.-; [B1, C2, V3]; xn--ho0d.xn----tgn; ; xn--ho0d.-; [B1, V3] # 𐹩.-
+𐹩.-; ; [B1, C2, V3]; xn--ho0d.xn----tgn; ; xn--ho0d.-; [B1, V3] # 𐹩.-
+xn--ho0d.-; 𐹩.-; [B1, V3]; xn--ho0d.-; ; ; # 𐹩.-
+xn--ho0d.xn----tgn; 𐹩.-; [B1, C2, V3]; xn--ho0d.xn----tgn; ; ; # 𐹩.-
+帷。≯萺᷈-; 帷.≯萺᷈-; [P1, V3, V6]; xn--qutw175s.xn----mimu6tf67j; ; ; # 帷.≯萺᷈-
+帷。≯萺᷈-; 帷.≯萺᷈-; [P1, V3, V6]; xn--qutw175s.xn----mimu6tf67j; ; ; # 帷.≯萺᷈-
+帷。≯萺᷈-; 帷.≯萺᷈-; [P1, V3, V6]; xn--qutw175s.xn----mimu6tf67j; ; ; # 帷.≯萺᷈-
+帷。≯萺᷈-; 帷.≯萺᷈-; [P1, V3, V6]; xn--qutw175s.xn----mimu6tf67j; ; ; # 帷.≯萺᷈-
+xn--qutw175s.xn----mimu6tf67j; 帷.≯萺᷈-; [V3, V6];
xn--qutw175s.xn----mimu6tf67j; ; ; # 帷.≯萺᷈-
+攌꯭。ᢖ-Ⴘ; 攌꯭.ᢖ-Ⴘ; [C2, P1, V6]; xn--1ug592ykp6b.xn----k1g451d; ;
xn--p9ut19m.xn----k1g451d; [P1, V6] # 攌꯭.ᢖ-Ⴘ
+攌꯭。ᢖ-ⴘ; 攌꯭.ᢖ-ⴘ; [C2]; xn--1ug592ykp6b.xn----mck373i; ;
xn--p9ut19m.xn----mck373i; [] # 攌꯭.ᢖ-ⴘ
+xn--p9ut19m.xn----mck373i; 攌꯭.ᢖ-ⴘ; ; xn--p9ut19m.xn----mck373i; ; ; # 攌꯭.ᢖ-ⴘ
+攌꯭.ᢖ-ⴘ; ; ; xn--p9ut19m.xn----mck373i; ; ; # 攌꯭.ᢖ-ⴘ
+攌꯭.ᢖ-Ⴘ; ; [P1, V6]; xn--p9ut19m.xn----k1g451d; ; ; # 攌꯭.ᢖ-Ⴘ
+xn--p9ut19m.xn----k1g451d; 攌꯭.ᢖ-Ⴘ; [V6]; xn--p9ut19m.xn----k1g451d; ; ; #
攌꯭.ᢖ-Ⴘ
+xn--1ug592ykp6b.xn----mck373i; 攌꯭.ᢖ-ⴘ; [C2]; xn--1ug592ykp6b.xn----mck373i; ;
; # 攌꯭.ᢖ-ⴘ
+xn--1ug592ykp6b.xn----k1g451d; 攌꯭.ᢖ-Ⴘ; [C2, V6];
xn--1ug592ykp6b.xn----k1g451d; ; ; # 攌꯭.ᢖ-Ⴘ
+ꖨ.⒗3툒۳; ꖨ.⒗3툒۳; [C1, P1, V6]; xn--0ug2473c.xn--3-nyc678tu07m; ;
xn--9r8a.xn--3-nyc678tu07m; [P1, V6] # ꖨ.⒗3툒۳
+ꖨ.⒗3툒۳; ꖨ.⒗3툒۳; [C1, P1, V6]; xn--0ug2473c.xn--3-nyc678tu07m; ;
xn--9r8a.xn--3-nyc678tu07m; [P1, V6] # ꖨ.⒗3툒۳
+ꖨ.16.3툒۳; ; [C1]; xn--0ug2473c.16.xn--3-nyc0117m; ;
xn--9r8a.16.xn--3-nyc0117m; [] # ꖨ.16.3툒۳
+ꖨ.16.3툒۳; ꖨ.16.3툒۳; [C1]; xn--0ug2473c.16.xn--3-nyc0117m; ;
xn--9r8a.16.xn--3-nyc0117m; [] # ꖨ.16.3툒۳
+xn--9r8a.16.xn--3-nyc0117m; ꖨ.16.3툒۳; ; xn--9r8a.16.xn--3-nyc0117m; ; ; #
ꖨ.16.3툒۳
+ꖨ.16.3툒۳; ; ; xn--9r8a.16.xn--3-nyc0117m; ; ; # ꖨ.16.3툒۳
+ꖨ.16.3툒۳; ꖨ.16.3툒۳; ; xn--9r8a.16.xn--3-nyc0117m; ; ; # ꖨ.16.3툒۳
+xn--0ug2473c.16.xn--3-nyc0117m; ꖨ.16.3툒۳; [C1];
xn--0ug2473c.16.xn--3-nyc0117m; ; ; # ꖨ.16.3툒۳
+xn--9r8a.xn--3-nyc678tu07m; ꖨ.⒗3툒۳; [V6]; xn--9r8a.xn--3-nyc678tu07m; ; ; #
ꖨ.⒗3툒۳
+xn--0ug2473c.xn--3-nyc678tu07m; ꖨ.⒗3툒۳; [C1, V6];
xn--0ug2473c.xn--3-nyc678tu07m; ; ; # ꖨ.⒗3툒۳
+⒈걾6.𐱁ې; ; [B1, P1, V6]; xn--6-dcps419c.xn--glb1794k; ; ; # ⒈걾6.𐱁ې
+⒈걾6.𐱁ې; ⒈걾6.𐱁ې; [B1, P1, V6]; xn--6-dcps419c.xn--glb1794k; ; ; # ⒈걾6.𐱁ې
+1.걾6.𐱁ې; ; [B1]; 1.xn--6-945e.xn--glb1794k; ; ; # 1.걾6.𐱁ې
+1.걾6.𐱁ې; 1.걾6.𐱁ې; [B1]; 1.xn--6-945e.xn--glb1794k; ; ; # 1.걾6.𐱁ې
+1.xn--6-945e.xn--glb1794k; 1.걾6.𐱁ې; [B1]; 1.xn--6-945e.xn--glb1794k; ; ; #
1.걾6.𐱁ې
+xn--6-dcps419c.xn--glb1794k; ⒈걾6.𐱁ې; [B1, V6]; xn--6-dcps419c.xn--glb1794k; ;
; # ⒈걾6.𐱁ې
+𐲞𝟶≮≮.ع; 𐳞0≮≮.ع; [B1, B3, P1, V6]; xn--0-ngoa5711v.xn--4gb31034p; ; ; #
𐳞0≮≮.ع
+𐲞𝟶≮≮.ع; 𐳞0≮≮.ع; [B1, B3, P1, V6]; xn--0-ngoa5711v.xn--4gb31034p; ; ; #
𐳞0≮≮.ع
+𐲞0≮≮.ع; 𐳞0≮≮.ع; [B1, B3, P1, V6]; xn--0-ngoa5711v.xn--4gb31034p; ; ; #
𐳞0≮≮.ع
+𐲞0≮≮.ع; 𐳞0≮≮.ع; [B1, B3, P1, V6]; xn--0-ngoa5711v.xn--4gb31034p; ; ; #
𐳞0≮≮.ع
+𐳞0≮≮.ع; 𐳞0≮≮.ع; [B1, B3, P1, V6]; xn--0-ngoa5711v.xn--4gb31034p; ; ; #
𐳞0≮≮.ع
+𐳞0≮≮.ع; ; [B1, B3, P1, V6]; xn--0-ngoa5711v.xn--4gb31034p; ; ; # 𐳞0≮≮.ع
+xn--0-ngoa5711v.xn--4gb31034p; 𐳞0≮≮.ع; [B1, B3, V6];
xn--0-ngoa5711v.xn--4gb31034p; ; ; # 𐳞0≮≮.ع
+𐳞𝟶≮≮.ع; 𐳞0≮≮.ع; [B1, B3, P1, V6]; xn--0-ngoa5711v.xn--4gb31034p; ; ; #
𐳞0≮≮.ع
+𐳞𝟶≮≮.ع; 𐳞0≮≮.ع; [B1, B3, P1, V6]; xn--0-ngoa5711v.xn--4gb31034p; ; ; #
𐳞0≮≮.ع
+ૣ.𐹺ᅟ; ; [B1, B3, B6, P1, V5, V6]; xn--8fc.xn--osd3070k; ; ; # ૣ.𐹺
+xn--8fc.xn--osd3070k; ૣ.𐹺ᅟ; [B1, B3, B6, V5, V6]; xn--8fc.xn--osd3070k; ; ; #
ૣ.𐹺
+𝟏𝨙⸖.; 1𝨙⸖.; [C2]; xn--1-5bt6845n.xn--1ug; ; xn--1-5bt6845n.; [] # 1𝨙⸖.
+1𝨙⸖.; ; [C2]; xn--1-5bt6845n.xn--1ug; ; xn--1-5bt6845n.; [] # 1𝨙⸖.
+xn--1-5bt6845n.; 1𝨙⸖.; ; xn--1-5bt6845n.; ; ; # 1𝨙⸖.
+1𝨙⸖.; ; ; xn--1-5bt6845n.; ; ; # 1𝨙⸖.
+xn--1-5bt6845n.xn--1ug; 1𝨙⸖.; [C2]; xn--1-5bt6845n.xn--1ug; ; ; # 1𝨙⸖.
+𞤐≠ܦ᩠。-ߕ; 𞤲≠ܦ᩠.-ߕ; [B1, C1, P1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd017p; ;
xn--wnb859grzfzw60c.xn----kcd; [B1, P1, V3, V6] # 𞤲≠ܦ᩠.-ߕ
+𞤐≠ܦ᩠。-ߕ; 𞤲≠ܦ᩠.-ߕ; [B1, C1, P1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd017p;
; xn--wnb859grzfzw60c.xn----kcd; [B1, P1, V3, V6] # 𞤲≠ܦ᩠.-ߕ
+𞤐≠ܦ᩠。-ߕ; 𞤲≠ܦ᩠.-ߕ; [B1, C1, P1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd017p; ;
xn--wnb859grzfzw60c.xn----kcd; [B1, P1, V3, V6] # 𞤲≠ܦ᩠.-ߕ
+𞤐≠ܦ᩠。-ߕ; 𞤲≠ܦ᩠.-ߕ; [B1, C1, P1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd017p;
; xn--wnb859grzfzw60c.xn----kcd; [B1, P1, V3, V6] # 𞤲≠ܦ᩠.-ߕ
+𞤲≠ܦ᩠。-ߕ; 𞤲≠ܦ᩠.-ߕ; [B1, C1, P1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd017p;
; xn--wnb859grzfzw60c.xn----kcd; [B1, P1, V3, V6] # 𞤲≠ܦ᩠.-ߕ
+𞤲≠ܦ᩠。-ߕ; 𞤲≠ܦ᩠.-ߕ; [B1, C1, P1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd017p; ;
xn--wnb859grzfzw60c.xn----kcd; [B1, P1, V3, V6] # 𞤲≠ܦ᩠.-ߕ
+xn--wnb859grzfzw60c.xn----kcd; 𞤲≠ܦ᩠.-ߕ; [B1, V3, V6];
xn--wnb859grzfzw60c.xn----kcd; ; ; # 𞤲≠ܦ᩠.-ߕ
+xn--wnb859grzfzw60c.xn----kcd017p; 𞤲≠ܦ᩠.-ߕ; [B1, C1, V3, V6];
xn--wnb859grzfzw60c.xn----kcd017p; ; ; # 𞤲≠ܦ᩠.-ߕ
+𞤲≠ܦ᩠。-ߕ; 𞤲≠ܦ᩠.-ߕ; [B1, C1, P1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd017p;
; xn--wnb859grzfzw60c.xn----kcd; [B1, P1, V3, V6] # 𞤲≠ܦ᩠.-ߕ
+𞤲≠ܦ᩠。-ߕ; 𞤲≠ܦ᩠.-ߕ; [B1, C1, P1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd017p; ;
xn--wnb859grzfzw60c.xn----kcd; [B1, P1, V3, V6] # 𞤲≠ܦ᩠.-ߕ
+𐹰ͨ-ꡧ。ٵ; 𐹰ͨ-ꡧ.اٴ; [B1]; xn----shb2387jgkqd.xn--mgb8m; ; ; # 𐹰ͨ-ꡧ.اٴ
+𐹰ͨ-ꡧ。اٴ; 𐹰ͨ-ꡧ.اٴ; [B1]; xn----shb2387jgkqd.xn--mgb8m; ; ; # 𐹰ͨ-ꡧ.اٴ
+xn----shb2387jgkqd.xn--mgb8m; 𐹰ͨ-ꡧ.اٴ; [B1]; xn----shb2387jgkqd.xn--mgb8m; ; ;
# 𐹰ͨ-ꡧ.اٴ
+F󠅟。♚; f.♚; [P1, V6]; f.xn--45hz6953f; ; ; # f.♚
+F󠅟。♚; f.♚; [P1, V6]; f.xn--45hz6953f; ; ; # f.♚
+f󠅟。♚; f.♚; [P1, V6]; f.xn--45hz6953f; ; ; # f.♚
+f.xn--45hz6953f; f.♚; [V6]; f.xn--45hz6953f; ; ; # f.♚
+f󠅟。♚; f.♚; [P1, V6]; f.xn--45hz6953f; ; ; # f.♚
+୍𑄴ᷩ。𝟮Ⴘ𞀨; ୍𑄴ᷩ.2Ⴘ𞀨; [P1, V5, V6]; xn--9ic246gs21p.xn--2-k1g43076adrwq; ; ; #
୍𑄴ᷩ.2Ⴘ𞀨
+୍𑄴ᷩ。2Ⴘ𞀨; ୍𑄴ᷩ.2Ⴘ𞀨; [P1, V5, V6]; xn--9ic246gs21p.xn--2-k1g43076adrwq; ; ; #
୍𑄴ᷩ.2Ⴘ𞀨
+୍𑄴ᷩ。2ⴘ𞀨; ୍𑄴ᷩ.2ⴘ𞀨; [P1, V5, V6]; xn--9ic246gs21p.xn--2-nws2918ndrjr; ; ; #
୍𑄴ᷩ.2ⴘ𞀨
+xn--9ic246gs21p.xn--2-nws2918ndrjr; ୍𑄴ᷩ.2ⴘ𞀨; [V5, V6];
xn--9ic246gs21p.xn--2-nws2918ndrjr; ; ; # ୍𑄴ᷩ.2ⴘ𞀨
+xn--9ic246gs21p.xn--2-k1g43076adrwq; ୍𑄴ᷩ.2Ⴘ𞀨; [V5, V6];
xn--9ic246gs21p.xn--2-k1g43076adrwq; ; ; # ୍𑄴ᷩ.2Ⴘ𞀨
+୍𑄴ᷩ。𝟮ⴘ𞀨; ୍𑄴ᷩ.2ⴘ𞀨; [P1, V5, V6]; xn--9ic246gs21p.xn--2-nws2918ndrjr; ; ; #
୍𑄴ᷩ.2ⴘ𞀨
+⒈。勉𑁅; ⒈.勉𑁅; [C1, P1, V6]; xn--0uga855aez302a.xn--4grs325b; ;
xn--tsh11906f.xn--4grs325b; [P1, V6] # ⒈.勉𑁅
+1.。勉𑁅; 1..勉𑁅; [C1, P1, V6, X4_2]; xn--1-rgna61159u..xn--4grs325b; [C1,
P1, V6, A4_2]; xn--1-yi00h..xn--4grs325b; [P1, V6, A4_2] # 1..勉𑁅
+xn--1-yi00h..xn--4grs325b; 1..勉𑁅; [V6, X4_2]; xn--1-yi00h..xn--4grs325b; [V6,
A4_2]; ; # 1..勉𑁅
+xn--1-rgna61159u..xn--4grs325b; 1..勉𑁅; [C1, V6, X4_2];
xn--1-rgna61159u..xn--4grs325b; [C1, V6, A4_2]; ; # 1..勉𑁅
+xn--tsh11906f.xn--4grs325b; ⒈.勉𑁅; [V6]; xn--tsh11906f.xn--4grs325b; ; ; #
⒈.勉𑁅
+xn--0uga855aez302a.xn--4grs325b; ⒈.勉𑁅; [C1, V6];
xn--0uga855aez302a.xn--4grs325b; ; ; # ⒈.勉𑁅
+ᡃ.玿; ; [P1, V6]; xn--27e.xn--7cy81125a0yq4a; ; ; # ᡃ.玿
+xn--27e.xn--7cy81125a0yq4a; ᡃ.玿; [V6]; xn--27e.xn--7cy81125a0yq4a; ; ; # ᡃ.玿
+。⒈≯𝟵; .⒈≯9; [C1, P1, V6]; xn--0uga.xn--9-ogo37g; ; .xn--9-ogo37g; [P1, V6,
A4_2] # .⒈≯9
+。⒈≯𝟵; .⒈≯9; [C1, P1, V6]; xn--0uga.xn--9-ogo37g; ; .xn--9-ogo37g; [P1,
V6, A4_2] # .⒈≯9
+。1.≯9; .1.≯9; [C1, P1, V6]; xn--0uga.1.xn--9-ogo; ; .1.xn--9-ogo; [P1, V6,
A4_2] # .1.≯9
+。1.≯9; .1.≯9; [C1, P1, V6]; xn--0uga.1.xn--9-ogo; ; .1.xn--9-ogo; [P1,
V6, A4_2] # .1.≯9
+.1.xn--9-ogo; .1.≯9; [V6, X4_2]; .1.xn--9-ogo; [V6, A4_2]; ; # .1.≯9
+xn--0uga.1.xn--9-ogo; .1.≯9; [C1, V6]; xn--0uga.1.xn--9-ogo; ; ; # .1.≯9
+.xn--9-ogo37g; .⒈≯9; [V6, X4_2]; .xn--9-ogo37g; [V6, A4_2]; ; # .⒈≯9
+xn--0uga.xn--9-ogo37g; .⒈≯9; [C1, V6]; xn--0uga.xn--9-ogo37g; ; ; # .⒈≯9
+ᅟᷠ.≯𐮁; ; [B5, B6, P1, V6]; xn--osd615d5659o.xn--hdh5192gkm6r; ; ; # ᷠ.≯𐮁
+ᅟᷠ.≯𐮁; ᅟᷠ.≯𐮁; [B5, B6, P1, V6]; xn--osd615d5659o.xn--hdh5192gkm6r; ; ; #
ᷠ.≯𐮁
+xn--osd615d5659o.xn--hdh5192gkm6r; ᅟᷠ.≯𐮁; [B5, B6, V6];
xn--osd615d5659o.xn--hdh5192gkm6r; ; ; # ᷠ.≯𐮁
+󠄫𝩤ؾ.𝩩-ࠞ; 𝩤ؾ.𝩩-ࠞ; [B1, C2, P1, V5, V6];
xn--9gb723kg862a.xn----qgd52296avol4f; ; xn--9gb5080v.xn----qgd52296avol4f;
[B1, P1, V5, V6] # 𝩤ؾ.𝩩-ࠞ
+xn--9gb5080v.xn----qgd52296avol4f; 𝩤ؾ.𝩩-ࠞ; [B1, V5, V6];
xn--9gb5080v.xn----qgd52296avol4f; ; ; # 𝩤ؾ.𝩩-ࠞ
+xn--9gb723kg862a.xn----qgd52296avol4f; 𝩤ؾ.𝩩-ࠞ; [B1, C2, V5, V6];
xn--9gb723kg862a.xn----qgd52296avol4f; ; ; # 𝩤ؾ.𝩩-ࠞ
+⃚.𑘿-; ⃚.𑘿-; [V3, V5]; xn--w0g.xn----bd0j; ; ; # ⃚.𑘿-
+⃚.𑘿-; ; [V3, V5]; xn--w0g.xn----bd0j; ; ; # ⃚.𑘿-
+xn--w0g.xn----bd0j; ⃚.𑘿-; [V3, V5]; xn--w0g.xn----bd0j; ; ; # ⃚.𑘿-
+䮸ß.紙ࢨ; ; [B1, P1, V6]; xn--zca5349a.xn--xyb1370div70kpzba; ;
xn--ss-sf1c.xn--xyb1370div70kpzba; # 䮸ß.紙ࢨ
+䮸SS.紙ࢨ; 䮸ss.紙ࢨ; [B1, P1, V6]; xn--ss-sf1c.xn--xyb1370div70kpzba; ; ; #
䮸ss.紙ࢨ
+䮸ss.紙ࢨ; ; [B1, P1, V6]; xn--ss-sf1c.xn--xyb1370div70kpzba; ; ; # 䮸ss.紙ࢨ
+䮸Ss.紙ࢨ; 䮸ss.紙ࢨ; [B1, P1, V6]; xn--ss-sf1c.xn--xyb1370div70kpzba; ; ; #
䮸ss.紙ࢨ
+xn--ss-sf1c.xn--xyb1370div70kpzba; 䮸ss.紙ࢨ; [B1, V6];
xn--ss-sf1c.xn--xyb1370div70kpzba; ; ; # 䮸ss.紙ࢨ
+xn--zca5349a.xn--xyb1370div70kpzba; 䮸ß.紙ࢨ; [B1, V6];
xn--zca5349a.xn--xyb1370div70kpzba; ; ; # 䮸ß.紙ࢨ
+-Ⴞ.-𝩨⅔𐦕; -Ⴞ.-𝩨2⁄3𐦕; [B1, P1, V3, V6]; xn----w1g.xn---23-pt0a0433lk3jj; ; ; #
-Ⴞ.-𝩨2⁄3𐦕
+-Ⴞ.-𝩨2⁄3𐦕; ; [B1, P1, V3, V6]; xn----w1g.xn---23-pt0a0433lk3jj; ; ; #
-Ⴞ.-𝩨2⁄3𐦕
+-ⴞ.-𝩨2⁄3𐦕; ; [B1, V3]; xn----zws.xn---23-pt0a0433lk3jj; ; ; # -ⴞ.-𝩨2⁄3𐦕
+xn----zws.xn---23-pt0a0433lk3jj; -ⴞ.-𝩨2⁄3𐦕; [B1, V3];
xn----zws.xn---23-pt0a0433lk3jj; ; ; # -ⴞ.-𝩨2⁄3𐦕
+xn----w1g.xn---23-pt0a0433lk3jj; -Ⴞ.-𝩨2⁄3𐦕; [B1, V3, V6];
xn----w1g.xn---23-pt0a0433lk3jj; ; ; # -Ⴞ.-𝩨2⁄3𐦕
+-ⴞ.-𝩨⅔𐦕; -ⴞ.-𝩨2⁄3𐦕; [B1, V3]; xn----zws.xn---23-pt0a0433lk3jj; ; ; # -ⴞ.-𝩨2⁄3𐦕
+𐹯ૂ。𐮁ᡂ; 𐹯ૂ.𐮁ᡂ; [B5, B6, P1, V6]; xn--bfc7604kv8m3g.xn--17e5565jl7zw4h16a;
; ; # 𐹯ૂ.𐮁ᡂ
+𐹯ૂ。𐮁ᡂ; 𐹯ૂ.𐮁ᡂ; [B5, B6, P1, V6]; xn--bfc7604kv8m3g.xn--17e5565jl7zw4h16a;
; ; # 𐹯ૂ.𐮁ᡂ
+xn--bfc7604kv8m3g.xn--17e5565jl7zw4h16a; 𐹯ૂ.𐮁ᡂ; [B5, B6, V6];
xn--bfc7604kv8m3g.xn--17e5565jl7zw4h16a; ; ; # 𐹯ૂ.𐮁ᡂ
+ႂ-꣪.ꡊ; ႂ-꣪.ꡊ; [C2, P1, V5, V6]; xn----gyg250jio7k.xn--1ug8774cri56d; ;
xn----gyg3618i.xn--jc9ao4185a; [P1, V5, V6] # ႂ-꣪.ꡊ
+ႂ-꣪.ꡊ; ; [C2, P1, V5, V6]; xn----gyg250jio7k.xn--1ug8774cri56d; ;
xn----gyg3618i.xn--jc9ao4185a; [P1, V5, V6] # ႂ-꣪.ꡊ
+xn----gyg3618i.xn--jc9ao4185a; ႂ-꣪.ꡊ; [V5, V6];
xn----gyg3618i.xn--jc9ao4185a; ; ; # ႂ-꣪.ꡊ
+xn----gyg250jio7k.xn--1ug8774cri56d; ႂ-꣪.ꡊ; [C2, V5, V6];
xn----gyg250jio7k.xn--1ug8774cri56d; ; ; # ႂ-꣪.ꡊ
+۱。≠٨; ۱.≠٨; [B1, P1, V6]; xn--emb.xn--hib334l; ; ; # ۱.≠٨
+۱。≠٨; ۱.≠٨; [B1, P1, V6]; xn--emb.xn--hib334l; ; ; # ۱.≠٨
+xn--emb.xn--hib334l; ۱.≠٨; [B1, V6]; xn--emb.xn--hib334l; ; ; # ۱.≠٨
+𑈵廊.𐠍; ; [V5]; xn--xytw701b.xn--yc9c; ; ; # 𑈵廊.𐠍
+xn--xytw701b.xn--yc9c; 𑈵廊.𐠍; [V5]; xn--xytw701b.xn--yc9c; ; ; # 𑈵廊.𐠍
+͖-.-Ⴐ١; ͖-.-Ⴐ١; [B1, C2, P1, V3, V6]; xn----rgb661t.xn----bqc030f; ;
xn----rgb.xn----bqc030f; [B1, P1, V3, V5, V6] # ͖-.-Ⴐ١
+͖-.-Ⴐ١; ; [B1, C2, P1, V3, V6]; xn----rgb661t.xn----bqc030f; ;
xn----rgb.xn----bqc030f; [B1, P1, V3, V5, V6] # ͖-.-Ⴐ١
+͖-.-ⴐ١; ; [B1, C2, V3]; xn----rgb661t.xn----bqc2280a; ;
xn----rgb.xn----bqc2280a; [B1, V3, V5] # ͖-.-ⴐ١
+xn----rgb.xn----bqc2280a; ͖-.-ⴐ١; [B1, V3, V5]; xn----rgb.xn----bqc2280a; ; ;
# ͖-.-ⴐ١
+xn----rgb661t.xn----bqc2280a; ͖-.-ⴐ١; [B1, C2, V3];
xn----rgb661t.xn----bqc2280a; ; ; # ͖-.-ⴐ١
+xn----rgb.xn----bqc030f; ͖-.-Ⴐ١; [B1, V3, V5, V6]; xn----rgb.xn----bqc030f; ;
; # ͖-.-Ⴐ١
+xn----rgb661t.xn----bqc030f; ͖-.-Ⴐ١; [B1, C2, V3, V6];
xn----rgb661t.xn----bqc030f; ; ; # ͖-.-Ⴐ١
+͖-.-ⴐ١; ͖-.-ⴐ١; [B1, C2, V3]; xn----rgb661t.xn----bqc2280a; ;
xn----rgb.xn----bqc2280a; [B1, V3, V5] # ͖-.-ⴐ١
+غ١挏.-; ; [B1, B2, B3, P1, V3, V6]; xn--5gb2f4205aqi47p.-; ; ; # غ١挏.-
+xn--5gb2f4205aqi47p.-; غ١挏.-; [B1, B2, B3, V3, V6]; xn--5gb2f4205aqi47p.-; ;
; # غ١挏.-
+ۯ。𐹧𞤽; ۯ.𐹧𞤽; [B1]; xn--cmb.xn--fo0dy848a; ; ; # ۯ.𐹧𞤽
+ۯ。𐹧𞤽; ۯ.𐹧𞤽; [B1]; xn--cmb.xn--fo0dy848a; ; ; # ۯ.𐹧𞤽
+ۯ。𐹧𞤛; ۯ.𐹧𞤽; [B1]; xn--cmb.xn--fo0dy848a; ; ; # ۯ.𐹧𞤽
+xn--cmb.xn--fo0dy848a; ۯ.𐹧𞤽; [B1]; xn--cmb.xn--fo0dy848a; ; ; # ۯ.𐹧𞤽
+ۯ。𐹧𞤛; ۯ.𐹧𞤽; [B1]; xn--cmb.xn--fo0dy848a; ; ; # ۯ.𐹧𞤽
+Ⴞ.ᢗ릫; Ⴞ.ᢗ릫; [P1, V6]; xn--2nd8876sgl2j.xn--hbf6853f; ; ; # Ⴞ.ᢗ릫
+Ⴞ.ᢗ릫; Ⴞ.ᢗ릫; [P1, V6]; xn--2nd8876sgl2j.xn--hbf6853f; ; ; # Ⴞ.ᢗ릫
+Ⴞ.ᢗ릫; ; [P1, V6]; xn--2nd8876sgl2j.xn--hbf6853f; ; ; # Ⴞ.ᢗ릫
+Ⴞ.ᢗ릫; Ⴞ.ᢗ릫; [P1, V6]; xn--2nd8876sgl2j.xn--hbf6853f; ; ; # Ⴞ.ᢗ릫
+ⴞ.ᢗ릫; ⴞ.ᢗ릫; [P1, V6]; xn--mlj0486jgl2j.xn--hbf6853f; ; ; # ⴞ.ᢗ릫
+ⴞ.ᢗ릫; ; [P1, V6]; xn--mlj0486jgl2j.xn--hbf6853f; ; ; # ⴞ.ᢗ릫
+xn--mlj0486jgl2j.xn--hbf6853f; ⴞ.ᢗ릫; [V6]; xn--mlj0486jgl2j.xn--hbf6853f; ;
; # ⴞ.ᢗ릫
+xn--2nd8876sgl2j.xn--hbf6853f; Ⴞ.ᢗ릫; [V6]; xn--2nd8876sgl2j.xn--hbf6853f; ;
; # Ⴞ.ᢗ릫
+ⴞ.ᢗ릫; ⴞ.ᢗ릫; [P1, V6]; xn--mlj0486jgl2j.xn--hbf6853f; ; ; # ⴞ.ᢗ릫
+ⴞ.ᢗ릫; ⴞ.ᢗ릫; [P1, V6]; xn--mlj0486jgl2j.xn--hbf6853f; ; ; # ⴞ.ᢗ릫
+ڷ𐹷。≯᷾; ڷ𐹷.≯᷾; [B1, C1, P1, V6]; xn--qkb4516kbi06fg2id.xn--zfg59fm0c; ;
xn--qkb4516kbi06fg2id.xn--zfg31q; [B1, P1, V6] # ڷ𐹷.≯᷾
+ڷ𐹷。≯᷾; ڷ𐹷.≯᷾; [B1, C1, P1, V6]; xn--qkb4516kbi06fg2id.xn--zfg59fm0c; ;
xn--qkb4516kbi06fg2id.xn--zfg31q; [B1, P1, V6] # ڷ𐹷.≯᷾
+ڷ𐹷。≯᷾; ڷ𐹷.≯᷾; [B1, C1, P1, V6]; xn--qkb4516kbi06fg2id.xn--zfg59fm0c; ;
xn--qkb4516kbi06fg2id.xn--zfg31q; [B1, P1, V6] # ڷ𐹷.≯᷾
+ڷ𐹷。≯᷾; ڷ𐹷.≯᷾; [B1, C1, P1, V6]; xn--qkb4516kbi06fg2id.xn--zfg59fm0c; ;
xn--qkb4516kbi06fg2id.xn--zfg31q; [B1, P1, V6] # ڷ𐹷.≯᷾
+xn--qkb4516kbi06fg2id.xn--zfg31q; ڷ𐹷.≯᷾; [B1, V6];
xn--qkb4516kbi06fg2id.xn--zfg31q; ; ; # ڷ𐹷.≯᷾
+xn--qkb4516kbi06fg2id.xn--zfg59fm0c; ڷ𐹷.≯᷾; [B1, C1, V6];
xn--qkb4516kbi06fg2id.xn--zfg59fm0c; ; ; # ڷ𐹷.≯᷾
+ᛎ󠅍。𐹾𐹪-; ᛎ.𐹾𐹪-; [B1, B6, C2, P1, V3, V6];
xn--fxe848bq3411a.xn----q26i2bvu; ; xn--fxe63563p.xn----q26i2bvu; [B1, B6, P1,
V3, V6] # ᛎ.𐹾𐹪-
+ᛎ󠅍。𐹾𐹪-; ᛎ.𐹾𐹪-; [B1, B6, C2, P1, V3, V6];
xn--fxe848bq3411a.xn----q26i2bvu; ; xn--fxe63563p.xn----q26i2bvu; [B1, B6, P1,
V3, V6] # ᛎ.𐹾𐹪-
+xn--fxe63563p.xn----q26i2bvu; ᛎ.𐹾𐹪-; [B1, B6, V3, V6];
xn--fxe63563p.xn----q26i2bvu; ; ; # ᛎ.𐹾𐹪-
+xn--fxe848bq3411a.xn----q26i2bvu; ᛎ.𐹾𐹪-; [B1, B6, C2, V3, V6];
xn--fxe848bq3411a.xn----q26i2bvu; ; ; # ᛎ.𐹾𐹪-
+𐹶.𐫂; ; [B1]; xn--uo0d.xn--rw9c; ; ; # 𐹶.𐫂
+xn--uo0d.xn--rw9c; 𐹶.𐫂; [B1]; xn--uo0d.xn--rw9c; ; ; # 𐹶.𐫂
+ß်。⒈; ß်.⒈; [C2, P1, V6]; xn--zca679eh2l.xn--tsh; ; xn--ss-f4j.xn--tsh; [P1,
V6] # ß်.⒈
+ß်。1.; ß်.1.; [C2]; xn--zca679eh2l.1.; ; xn--ss-f4j.1.; [] # ß်.1.
+SS်。1.; ss်.1.; [C2]; xn--ss-f4j585j.1.; ; xn--ss-f4j.1.; [] # ss်.1.
+ss်。1.; ss်.1.; [C2]; xn--ss-f4j585j.1.; ; xn--ss-f4j.1.; [] # ss်.1.
+Ss်。1.; ss်.1.; [C2]; xn--ss-f4j585j.1.; ; xn--ss-f4j.1.; [] # ss်.1.
+xn--ss-f4j.1.; ss်.1.; ; xn--ss-f4j.1.; ; ; # ss်.1.
+ss်.1.; ; ; xn--ss-f4j.1.; ; ; # ss်.1.
+SS်.1.; ss်.1.; ; xn--ss-f4j.1.; ; ; # ss်.1.
+Ss်.1.; ss်.1.; ; xn--ss-f4j.1.; ; ; # ss်.1.
+xn--ss-f4j585j.1.; ss်.1.; [C2]; xn--ss-f4j585j.1.; ; ; # ss်.1.
+xn--zca679eh2l.1.; ß်.1.; [C2]; xn--zca679eh2l.1.; ; ; # ß်.1.
+SS်。⒈; ss်.⒈; [C2, P1, V6]; xn--ss-f4j585j.xn--tsh; ; xn--ss-f4j.xn--tsh;
[P1, V6] # ss်.⒈
+ss်。⒈; ss်.⒈; [C2, P1, V6]; xn--ss-f4j585j.xn--tsh; ; xn--ss-f4j.xn--tsh;
[P1, V6] # ss်.⒈
+Ss်。⒈; ss်.⒈; [C2, P1, V6]; xn--ss-f4j585j.xn--tsh; ; xn--ss-f4j.xn--tsh;
[P1, V6] # ss်.⒈
+xn--ss-f4j.xn--tsh; ss်.⒈; [V6]; xn--ss-f4j.xn--tsh; ; ; # ss်.⒈
+xn--ss-f4j585j.xn--tsh; ss်.⒈; [C2, V6]; xn--ss-f4j585j.xn--tsh; ; ; # ss်.⒈
+xn--zca679eh2l.xn--tsh; ß်.⒈; [C2, V6]; xn--zca679eh2l.xn--tsh; ; ; # ß်.⒈
+୍。; ୍.; [B1, C2, P1, V5, V6]; xn--9ic637hz82z32jc.xn--1ug; ;
xn--9ic6417rn4xb.; [B1, P1, V5, V6] # ୍.
+xn--9ic6417rn4xb.; ୍.; [B1, V5, V6]; xn--9ic6417rn4xb.; ; ; # ୍.
+xn--9ic637hz82z32jc.xn--1ug; ୍.; [B1, C2, V5, V6];
xn--9ic637hz82z32jc.xn--1ug; ; ; # ୍.
+𐮅。ڼ🁕; 𐮅.ڼ🁕; [B3]; xn--c29c.xn--vkb8871w; ; ; # 𐮅.ڼ🁕
+𐮅。ڼ🁕; 𐮅.ڼ🁕; [B3]; xn--c29c.xn--vkb8871w; ; ; # 𐮅.ڼ🁕
+xn--c29c.xn--vkb8871w; 𐮅.ڼ🁕; [B3]; xn--c29c.xn--vkb8871w; ; ; # 𐮅.ڼ🁕
+ؠ្。𐫔𑈵; ؠ្.𐫔𑈵; [B2, B3, C1, P1, V6]; xn--fgb471g.xn--0ug9853g7verp838a; ;
xn--fgb471g.xn--9w9c29jw3931a; [B2, B3, P1, V6] # ؠ្.𐫔𑈵
+xn--fgb471g.xn--9w9c29jw3931a; ؠ្.𐫔𑈵; [B2, B3, V6];
xn--fgb471g.xn--9w9c29jw3931a; ; ; # ؠ្.𐫔𑈵
+xn--fgb471g.xn--0ug9853g7verp838a; ؠ្.𐫔𑈵; [B2, B3, C1, V6];
xn--fgb471g.xn--0ug9853g7verp838a; ; ; # ؠ្.𐫔𑈵
+.𞣕𞤊; .𞣕𞤬; [B1, P1, V5, V6]; xn--tf5w.xn--2b6hof; ; ; # .𞣕𞤬
+.𞣕𞤬; ; [B1, P1, V5, V6]; xn--tf5w.xn--2b6hof; ; ; # .𞣕𞤬
+xn--tf5w.xn--2b6hof; .𞣕𞤬; [B1, V5, V6]; xn--tf5w.xn--2b6hof; ; ; # .𞣕𞤬
+ی𐨿.ß྄𑍬; ی𐨿.ß྄𑍬; ; xn--clb2593k.xn--zca216edt0r; ;
xn--clb2593k.xn--ss-toj6092t; # ی𐨿.ß྄𑍬
+ی𐨿.ß྄𑍬; ; ; xn--clb2593k.xn--zca216edt0r; ; xn--clb2593k.xn--ss-toj6092t; #
ی𐨿.ß྄𑍬
+ی𐨿.SS྄𑍬; ی𐨿.ss྄𑍬; ; xn--clb2593k.xn--ss-toj6092t; ; ; # ی𐨿.ss྄𑍬
+ی𐨿.ss྄𑍬; ; ; xn--clb2593k.xn--ss-toj6092t; ; ; # ی𐨿.ss྄𑍬
+xn--clb2593k.xn--ss-toj6092t; ی𐨿.ss྄𑍬; ; xn--clb2593k.xn--ss-toj6092t; ; ; #
ی𐨿.ss྄𑍬
+xn--clb2593k.xn--zca216edt0r; ی𐨿.ß྄𑍬; ; xn--clb2593k.xn--zca216edt0r; ; ; #
ی𐨿.ß྄𑍬
+ی𐨿.SS྄𑍬; ی𐨿.ss྄𑍬; ; xn--clb2593k.xn--ss-toj6092t; ; ; # ی𐨿.ss྄𑍬
+ی𐨿.ss྄𑍬; ی𐨿.ss྄𑍬; ; xn--clb2593k.xn--ss-toj6092t; ; ; # ی𐨿.ss྄𑍬
+ی𐨿.Ss྄𑍬; ی𐨿.ss྄𑍬; ; xn--clb2593k.xn--ss-toj6092t; ; ; # ی𐨿.ss྄𑍬
+ی𐨿.Ss྄𑍬; ی𐨿.ss྄𑍬; ; xn--clb2593k.xn--ss-toj6092t; ; ; # ی𐨿.ss྄𑍬
+𝟠≮。󠅱឴; 8≮.឴; [C1, P1, V5, V6]; xn--8-sgn10i.xn--z3e; ; xn--8-ngo.xn--z3e;
[P1, V5, V6] # 8≮.
+𝟠≮。󠅱឴; 8≮.឴; [C1, P1, V5, V6]; xn--8-sgn10i.xn--z3e; ; xn--8-ngo.xn--z3e;
[P1, V5, V6] # 8≮.
+8≮。󠅱឴; 8≮.឴; [C1, P1, V5, V6]; xn--8-sgn10i.xn--z3e; ; xn--8-ngo.xn--z3e;
[P1, V5, V6] # 8≮.
+8≮。󠅱឴; 8≮.឴; [C1, P1, V5, V6]; xn--8-sgn10i.xn--z3e; ; xn--8-ngo.xn--z3e;
[P1, V5, V6] # 8≮.
+xn--8-ngo.xn--z3e; 8≮.឴; [V5, V6]; xn--8-ngo.xn--z3e; ; ; # 8≮.
+xn--8-sgn10i.xn--z3e; 8≮.឴; [C1, V5, V6]; xn--8-sgn10i.xn--z3e; ; ; # 8≮.
+ᢕ≯︒.Ⴀ; ᢕ≯︒.Ⴀ; [P1, V6]; xn--fbf851cq98poxw1a.xn--7md; ; ; # ᢕ≯︒.Ⴀ
+ᢕ≯︒.Ⴀ; ᢕ≯︒.Ⴀ; [P1, V6]; xn--fbf851cq98poxw1a.xn--7md; ; ; # ᢕ≯︒.Ⴀ
+ᢕ≯。.Ⴀ; ᢕ≯..Ⴀ; [P1, V6]; xn--fbf851c.xn--ko1u.xn--7md; ; ; # ᢕ≯..Ⴀ
+ᢕ≯。.Ⴀ; ᢕ≯..Ⴀ; [P1, V6]; xn--fbf851c.xn--ko1u.xn--7md; ; ; # ᢕ≯..Ⴀ
+ᢕ≯。.ⴀ; ᢕ≯..ⴀ; [P1, V6]; xn--fbf851c.xn--ko1u.xn--rkj; ; ; # ᢕ≯..ⴀ
+ᢕ≯。.ⴀ; ᢕ≯..ⴀ; [P1, V6]; xn--fbf851c.xn--ko1u.xn--rkj; ; ; # ᢕ≯..ⴀ
+xn--fbf851c.xn--ko1u.xn--rkj; ᢕ≯..ⴀ; [V6]; xn--fbf851c.xn--ko1u.xn--rkj; ; ;
# ᢕ≯..ⴀ
+xn--fbf851c.xn--ko1u.xn--7md; ᢕ≯..Ⴀ; [V6]; xn--fbf851c.xn--ko1u.xn--7md; ; ;
# ᢕ≯..Ⴀ
+ᢕ≯︒.ⴀ; ᢕ≯︒.ⴀ; [P1, V6]; xn--fbf851cq98poxw1a.xn--rkj; ; ; # ᢕ≯︒.ⴀ
+ᢕ≯︒.ⴀ; ᢕ≯︒.ⴀ; [P1, V6]; xn--fbf851cq98poxw1a.xn--rkj; ; ; # ᢕ≯︒.ⴀ
+xn--fbf851cq98poxw1a.xn--rkj; ᢕ≯︒.ⴀ; [V6]; xn--fbf851cq98poxw1a.xn--rkj; ; ;
# ᢕ≯︒.ⴀ
+xn--fbf851cq98poxw1a.xn--7md; ᢕ≯︒.Ⴀ; [V6]; xn--fbf851cq98poxw1a.xn--7md; ; ;
# ᢕ≯︒.Ⴀ
+ྟ.-ࠪ; ྟ.-ࠪ; [V3, V5]; xn--vfd.xn----fhd; ; ; # ྟ.-ࠪ
+ྟ.-ࠪ; ; [V3, V5]; xn--vfd.xn----fhd; ; ; # ྟ.-ࠪ
+xn--vfd.xn----fhd; ྟ.-ࠪ; [V3, V5]; xn--vfd.xn----fhd; ; ; # ྟ.-ࠪ
+ᵬ󠆠.핒⒒⒈; ᵬ.핒⒒⒈; [P1, V6]; xn--tbg.xn--tsht7586kyts9l; ; ; # ᵬ.핒⒒⒈
+ᵬ󠆠.핒⒒⒈; ᵬ.핒⒒⒈; [P1, V6]; xn--tbg.xn--tsht7586kyts9l; ; ; # ᵬ.핒⒒⒈
+ᵬ󠆠.핒11.1.; ᵬ.핒11.1.; [P1, V6]; xn--tbg.xn--11-5o7k.1.xn--k469f; ; ; #
ᵬ.핒11.1.
+ᵬ󠆠.핒11.1.; ᵬ.핒11.1.; [P1, V6]; xn--tbg.xn--11-5o7k.1.xn--k469f; ; ; #
ᵬ.핒11.1.
+xn--tbg.xn--11-5o7k.1.xn--k469f; ᵬ.핒11.1.; [V6];
xn--tbg.xn--11-5o7k.1.xn--k469f; ; ; # ᵬ.핒11.1.
+xn--tbg.xn--tsht7586kyts9l; ᵬ.핒⒒⒈; [V6]; xn--tbg.xn--tsht7586kyts9l; ; ; #
ᵬ.핒⒒⒈
+ς𑓂𐋢.٨; ς𑓂𐋢.٨; [B1]; xn--3xa8371khhl.xn--hib; ; xn--4xa6371khhl.xn--hib; #
ς𑓂𐋢.٨
+ς𑓂𐋢.٨; ; [B1]; xn--3xa8371khhl.xn--hib; ; xn--4xa6371khhl.xn--hib; # ς𑓂𐋢.٨
+Σ𑓂𐋢.٨; σ𑓂𐋢.٨; [B1]; xn--4xa6371khhl.xn--hib; ; ; # σ𑓂𐋢.٨
+σ𑓂𐋢.٨; ; [B1]; xn--4xa6371khhl.xn--hib; ; ; # σ𑓂𐋢.٨
+xn--4xa6371khhl.xn--hib; σ𑓂𐋢.٨; [B1]; xn--4xa6371khhl.xn--hib; ; ; # σ𑓂𐋢.٨
+xn--3xa8371khhl.xn--hib; ς𑓂𐋢.٨; [B1]; xn--3xa8371khhl.xn--hib; ; ; # ς𑓂𐋢.٨
+Σ𑓂𐋢.٨; σ𑓂𐋢.٨; [B1]; xn--4xa6371khhl.xn--hib; ; ; # σ𑓂𐋢.٨
+σ𑓂𐋢.٨; σ𑓂𐋢.٨; [B1]; xn--4xa6371khhl.xn--hib; ; ; # σ𑓂𐋢.٨
+꥓𐋻.ⷸ𐹲; ; [B1, B6, C2, P1, V5, V6]; xn--0ugc8356he76c.xn--urju692efj0f; ;
xn--3j9a531o.xn--urju692efj0f; [B1, P1, V5, V6] # ꥓𐋻.ⷸ𐹲
+xn--3j9a531o.xn--urju692efj0f; ꥓𐋻.ⷸ𐹲; [B1, V5, V6];
xn--3j9a531o.xn--urju692efj0f; ; ; # ꥓𐋻.ⷸ𐹲
+xn--0ugc8356he76c.xn--urju692efj0f; ꥓𐋻.ⷸ𐹲; [B1, B6, C2, V5, V6];
xn--0ugc8356he76c.xn--urju692efj0f; ; ; # ꥓𐋻.ⷸ𐹲
+⊼。ڕ; ⊼.ڕ; [B1, B5, B6, P1, V6]; xn--ofh.xn--rjb13118f; ; ; # ⊼.ڕ
+xn--ofh.xn--rjb13118f; ⊼.ڕ; [B1, B5, B6, V6]; xn--ofh.xn--rjb13118f; ; ; #
⊼.ڕ
+。; .; [B2, B3, P1, V6]; xn--949co370q.xn--7g25e; ; ; # .
+xn--949co370q.xn--7g25e; .; [B2, B3, V6]; xn--949co370q.xn--7g25e; ; ; # .
+𑍧ߝ。ς🀞឵; 𑍧ߝ.ς🀞឵; [B1, B6, P1, V6]; xn--jfb66gt010c.xn--3xa823h9p95ars26d; ;
xn--jfb66gt010c.xn--4xa623h9p95ars26d; # 𑍧ߝ.ς🀞
+𑍧ߝ。Σ🀞឵; 𑍧ߝ.σ🀞឵; [B1, B6, P1, V6]; xn--jfb66gt010c.xn--4xa623h9p95ars26d; ;
; # 𑍧ߝ.σ🀞
+𑍧ߝ。σ🀞឵; 𑍧ߝ.σ🀞឵; [B1, B6, P1, V6]; xn--jfb66gt010c.xn--4xa623h9p95ars26d; ;
; # 𑍧ߝ.σ🀞
+xn--jfb66gt010c.xn--4xa623h9p95ars26d; 𑍧ߝ.σ🀞឵; [B1, B6, V6];
xn--jfb66gt010c.xn--4xa623h9p95ars26d; ; ; # 𑍧ߝ.σ🀞
+xn--jfb66gt010c.xn--3xa823h9p95ars26d; 𑍧ߝ.ς🀞឵; [B1, B6, V6];
xn--jfb66gt010c.xn--3xa823h9p95ars26d; ; ; # 𑍧ߝ.ς🀞
+-𐳲ن。꯭𝟥; -𐳲ن.꯭3; [B1, P1, V3, V5, V6]; xn----roc5482rek10i.xn--3-zw5e; ; ; #
-𐳲ن.꯭3
+-𐳲ن。꯭3; -𐳲ن.꯭3; [B1, P1, V3, V5, V6]; xn----roc5482rek10i.xn--3-zw5e; ; ; #
-𐳲ن.꯭3
+-𐲲ن。꯭3; -𐳲ن.꯭3; [B1, P1, V3, V5, V6]; xn----roc5482rek10i.xn--3-zw5e; ; ; #
-𐳲ن.꯭3
+xn----roc5482rek10i.xn--3-zw5e; -𐳲ن.꯭3; [B1, V3, V5, V6];
xn----roc5482rek10i.xn--3-zw5e; ; ; # -𐳲ن.꯭3
+-𐲲ن。꯭𝟥; -𐳲ن.꯭3; [B1, P1, V3, V5, V6]; xn----roc5482rek10i.xn--3-zw5e; ; ; #
-𐳲ن.꯭3
+。≮𐦜; .≮𐦜; [B1, B5, B6, C1, P1, V6]; xn--0ug22251l.xn--gdhz712gzlr6b; ;
xn--6v56e.xn--gdhz712gzlr6b; [B1, B5, B6, P1, V6] # .≮𐦜
+。≮𐦜; .≮𐦜; [B1, B5, B6, C1, P1, V6]; xn--0ug22251l.xn--gdhz712gzlr6b; ;
xn--6v56e.xn--gdhz712gzlr6b; [B1, B5, B6, P1, V6] # .≮𐦜
+。≮𐦜; .≮𐦜; [B1, B5, B6, C1, P1, V6]; xn--0ug22251l.xn--gdhz712gzlr6b; ;
xn--6v56e.xn--gdhz712gzlr6b; [B1, B5, B6, P1, V6] # .≮𐦜
+。≮𐦜; .≮𐦜; [B1, B5, B6, C1, P1, V6]; xn--0ug22251l.xn--gdhz712gzlr6b; ;
xn--6v56e.xn--gdhz712gzlr6b; [B1, B5, B6, P1, V6] # .≮𐦜
+xn--6v56e.xn--gdhz712gzlr6b; .≮𐦜; [B1, B5, B6, V6];
xn--6v56e.xn--gdhz712gzlr6b; ; ; # .≮𐦜
+xn--0ug22251l.xn--gdhz712gzlr6b; .≮𐦜; [B1, B5, B6, C1, V6];
xn--0ug22251l.xn--gdhz712gzlr6b; ; ; # .≮𐦜
+⒈✌.𝟡; ⒈✌.9; [P1, V6]; xn--tsh24g49550b.xn--9-o706d; ; ; # ⒈✌.9
+1.✌.9; ; [P1, V6]; 1.xn--7bi44996f.xn--9-o706d; ; ; # 1.✌.9
+1.xn--7bi44996f.xn--9-o706d; 1.✌.9; [V6]; 1.xn--7bi44996f.xn--9-o706d; ; ;
# 1.✌.9
+xn--tsh24g49550b.xn--9-o706d; ⒈✌.9; [V6]; xn--tsh24g49550b.xn--9-o706d; ; ;
# ⒈✌.9
+𑆾𞤬𐮆.٦ᷔ; ; [B1, V5]; xn--d29c79hf98r.xn--fib011j; ; ; # 𑆾𞤬𐮆.٦ᷔ
+𑆾𞤊𐮆.٦ᷔ; 𑆾𞤬𐮆.٦ᷔ; [B1, V5]; xn--d29c79hf98r.xn--fib011j; ; ; # 𑆾𞤬𐮆.٦ᷔ
+xn--d29c79hf98r.xn--fib011j; 𑆾𞤬𐮆.٦ᷔ; [B1, V5]; xn--d29c79hf98r.xn--fib011j; ;
; # 𑆾𞤬𐮆.٦ᷔ
+ς.꧀꣄; ς.꧀꣄; [V5]; xn--3xa.xn--0f9ars; ; xn--4xa.xn--0f9ars; # ς.꧀꣄
+ς.꧀꣄; ; [V5]; xn--3xa.xn--0f9ars; ; xn--4xa.xn--0f9ars; # ς.꧀꣄
+Σ.꧀꣄; σ.꧀꣄; [V5]; xn--4xa.xn--0f9ars; ; ; # σ.꧀꣄
+σ.꧀꣄; ; [V5]; xn--4xa.xn--0f9ars; ; ; # σ.꧀꣄
+xn--4xa.xn--0f9ars; σ.꧀꣄; [V5]; xn--4xa.xn--0f9ars; ; ; # σ.꧀꣄
+xn--3xa.xn--0f9ars; ς.꧀꣄; [V5]; xn--3xa.xn--0f9ars; ; ; # ς.꧀꣄
+Σ.꧀꣄; σ.꧀꣄; [V5]; xn--4xa.xn--0f9ars; ; ; # σ.꧀꣄
+σ.꧀꣄; σ.꧀꣄; [V5]; xn--4xa.xn--0f9ars; ; ; # σ.꧀꣄
+𑰶≯𐳐.࡛; 𑰶≯𐳐.࡛; [B1, B3, B6, C1, P1, V5, V6]; xn--0ug06g7697ap4ma.xn--qwb; ;
xn--hdhz343g3wj.xn--qwb; [B1, B3, B6, P1, V5, V6] # 𑰶≯𐳐.࡛
+𑰶≯𐳐.࡛; 𑰶≯𐳐.࡛; [B1, B3, B6, C1, P1, V5, V6]; xn--0ug06g7697ap4ma.xn--qwb; ;
xn--hdhz343g3wj.xn--qwb; [B1, B3, B6, P1, V5, V6] # 𑰶≯𐳐.࡛
+𑰶≯𐳐.࡛; ; [B1, B3, B6, C1, P1, V5, V6]; xn--0ug06g7697ap4ma.xn--qwb; ;
xn--hdhz343g3wj.xn--qwb; [B1, B3, B6, P1, V5, V6] # 𑰶≯𐳐.࡛
+𑰶≯𐳐.࡛; 𑰶≯𐳐.࡛; [B1, B3, B6, C1, P1, V5, V6]; xn--0ug06g7697ap4ma.xn--qwb; ;
xn--hdhz343g3wj.xn--qwb; [B1, B3, B6, P1, V5, V6] # 𑰶≯𐳐.࡛
+𑰶≯𐲐.࡛; 𑰶≯𐳐.࡛; [B1, B3, B6, C1, P1, V5, V6]; xn--0ug06g7697ap4ma.xn--qwb; ;
xn--hdhz343g3wj.xn--qwb; [B1, B3, B6, P1, V5, V6] # 𑰶≯𐳐.࡛
+𑰶≯𐲐.࡛; 𑰶≯𐳐.࡛; [B1, B3, B6, C1, P1, V5, V6]; xn--0ug06g7697ap4ma.xn--qwb; ;
xn--hdhz343g3wj.xn--qwb; [B1, B3, B6, P1, V5, V6] # 𑰶≯𐳐.࡛
+xn--hdhz343g3wj.xn--qwb; 𑰶≯𐳐.࡛; [B1, B3, B6, V5, V6]; xn--hdhz343g3wj.xn--qwb;
; ; # 𑰶≯𐳐.࡛
+xn--0ug06g7697ap4ma.xn--qwb; 𑰶≯𐳐.࡛; [B1, B3, B6, C1, V5, V6];
xn--0ug06g7697ap4ma.xn--qwb; ; ; # 𑰶≯𐳐.࡛
+𑰶≯𐲐.࡛; 𑰶≯𐳐.࡛; [B1, B3, B6, C1, P1, V5, V6]; xn--0ug06g7697ap4ma.xn--qwb; ;
xn--hdhz343g3wj.xn--qwb; [B1, B3, B6, P1, V5, V6] # 𑰶≯𐳐.࡛
+𑰶≯𐲐.࡛; 𑰶≯𐳐.࡛; [B1, B3, B6, C1, P1, V5, V6]; xn--0ug06g7697ap4ma.xn--qwb; ;
xn--hdhz343g3wj.xn--qwb; [B1, B3, B6, P1, V5, V6] # 𑰶≯𐳐.࡛
+羚。≯; 羚.≯; [P1, V6]; xn--xt0a.xn--hdh; ; ; # 羚.≯
+羚。≯; 羚.≯; [P1, V6]; xn--xt0a.xn--hdh; ; ; # 羚.≯
+羚。≯; 羚.≯; [P1, V6]; xn--xt0a.xn--hdh; ; ; # 羚.≯
+羚。≯; 羚.≯; [P1, V6]; xn--xt0a.xn--hdh; ; ; # 羚.≯
+xn--xt0a.xn--hdh; 羚.≯; [V6]; xn--xt0a.xn--hdh; ; ; # 羚.≯
+𑓂.ࢨ; 𑓂.ࢨ; [B1, P1, V5, V6]; xn--e1e9580k.xn--xyb; ; ; # 𑓂.ࢨ
+𑓂.ࢨ; ; [B1, P1, V5, V6]; xn--e1e9580k.xn--xyb; ; ; # 𑓂.ࢨ
+xn--e1e9580k.xn--xyb; 𑓂.ࢨ; [B1, V5, V6]; xn--e1e9580k.xn--xyb; ; ; # 𑓂.ࢨ
+󠇀。٣ҠჀ𝟑; .٣ҡჀ3; [B1, B6, C2, P1, V6]; xn--1ug89936l.xn--3-ozb36kixu; ;
xn--1r19e.xn--3-ozb36kixu; [B1, P1, V6] # .٣ҡჀ3
+󠇀。٣ҠჀ3; .٣ҡჀ3; [B1, B6, C2, P1, V6]; xn--1ug89936l.xn--3-ozb36kixu; ;
xn--1r19e.xn--3-ozb36kixu; [B1, P1, V6] # .٣ҡჀ3
+󠇀。٣ҡⴠ3; .٣ҡⴠ3; [B1, B6, C2, P1, V6]; xn--1ug89936l.xn--3-ozb36ko13f; ;
xn--1r19e.xn--3-ozb36ko13f; [B1, P1, V6] # .٣ҡⴠ3
+xn--1r19e.xn--3-ozb36ko13f; .٣ҡⴠ3; [B1, V6]; xn--1r19e.xn--3-ozb36ko13f; ; ;
# .٣ҡⴠ3
+xn--1ug89936l.xn--3-ozb36ko13f; .٣ҡⴠ3; [B1, B6, C2, V6];
xn--1ug89936l.xn--3-ozb36ko13f; ; ; # .٣ҡⴠ3
+xn--1r19e.xn--3-ozb36kixu; .٣ҡჀ3; [B1, V6]; xn--1r19e.xn--3-ozb36kixu; ; ; #
.٣ҡჀ3
+xn--1ug89936l.xn--3-ozb36kixu; .٣ҡჀ3; [B1, B6, C2, V6];
xn--1ug89936l.xn--3-ozb36kixu; ; ; # .٣ҡჀ3
+󠇀。٣ҡⴠ𝟑; .٣ҡⴠ3; [B1, B6, C2, P1, V6]; xn--1ug89936l.xn--3-ozb36ko13f; ;
xn--1r19e.xn--3-ozb36ko13f; [B1, P1, V6] # .٣ҡⴠ3
+󠇀。٣Ҡⴠ3; .٣ҡⴠ3; [B1, B6, C2, P1, V6]; xn--1ug89936l.xn--3-ozb36ko13f; ;
xn--1r19e.xn--3-ozb36ko13f; [B1, P1, V6] # .٣ҡⴠ3
+󠇀。٣Ҡⴠ𝟑; .٣ҡⴠ3; [B1, B6, C2, P1, V6]; xn--1ug89936l.xn--3-ozb36ko13f; ;
xn--1r19e.xn--3-ozb36ko13f; [B1, P1, V6] # .٣ҡⴠ3
+ᡷ。𐹢࣠; ᡷ.𐹢࣠; [B1]; xn--k9e.xn--j0b5005k; ; ; # ᡷ.𐹢࣠
+xn--k9e.xn--j0b5005k; ᡷ.𐹢࣠; [B1]; xn--k9e.xn--j0b5005k; ; ; # ᡷ.𐹢࣠
+᯳。٦្ß; ᯳.٦្ß; [B1, P1, V6]; xn--1zf58212h.xn--zca34zk4qx711k; ;
xn--1zf58212h.xn--ss-pyd459o3258m; # ᯳.٦្ß
+᯳。٦្ß; ᯳.٦្ß; [B1, P1, V6]; xn--1zf58212h.xn--zca34zk4qx711k; ;
xn--1zf58212h.xn--ss-pyd459o3258m; # ᯳.٦្ß
+᯳。٦្SS; ᯳.٦្ss; [B1, P1, V6]; xn--1zf58212h.xn--ss-pyd459o3258m; ; ; #
᯳.٦្ss
+᯳。٦្ss; ᯳.٦្ss; [B1, P1, V6]; xn--1zf58212h.xn--ss-pyd459o3258m; ; ; #
᯳.٦្ss
+᯳。٦្Ss; ᯳.٦្ss; [B1, P1, V6]; xn--1zf58212h.xn--ss-pyd459o3258m; ; ; #
᯳.٦្ss
+xn--1zf58212h.xn--ss-pyd459o3258m; ᯳.٦្ss; [B1, V6];
xn--1zf58212h.xn--ss-pyd459o3258m; ; ; # ᯳.٦្ss
+xn--1zf58212h.xn--zca34zk4qx711k; ᯳.٦្ß; [B1, V6];
xn--1zf58212h.xn--zca34zk4qx711k; ; ; # ᯳.٦្ß
+᯳。٦្SS; ᯳.٦្ss; [B1, P1, V6]; xn--1zf58212h.xn--ss-pyd459o3258m; ; ; #
᯳.٦្ss
+᯳。٦្ss; ᯳.٦្ss; [B1, P1, V6]; xn--1zf58212h.xn--ss-pyd459o3258m; ; ; #
᯳.٦្ss
+᯳。٦្Ss; ᯳.٦្ss; [B1, P1, V6]; xn--1zf58212h.xn--ss-pyd459o3258m; ; ; #
᯳.٦្ss
+٤𑲛.︒≠; ; [B1, P1, V6]; xn--dib0653l2i02d.xn--1ch7467f14u4g; ; ; # ٤𑲛.︒≠
+٤𑲛.︒≠; ٤𑲛.︒≠; [B1, P1, V6]; xn--dib0653l2i02d.xn--1ch7467f14u4g; ; ; #
٤𑲛.︒≠
+٤𑲛.。≠; ٤𑲛..≠; [B1, P1, V6]; xn--dib0653l2i02d.xn--k736e.xn--1ch; ; ; #
٤𑲛..≠
+٤𑲛.。≠; ٤𑲛..≠; [B1, P1, V6]; xn--dib0653l2i02d.xn--k736e.xn--1ch; ; ; #
٤𑲛..≠
+xn--dib0653l2i02d.xn--k736e.xn--1ch; ٤𑲛..≠; [B1, V6];
xn--dib0653l2i02d.xn--k736e.xn--1ch; ; ; # ٤𑲛..≠
+xn--dib0653l2i02d.xn--1ch7467f14u4g; ٤𑲛.︒≠; [B1, V6];
xn--dib0653l2i02d.xn--1ch7467f14u4g; ; ; # ٤𑲛.︒≠
+➆ỗ⒈.࡛𝟫; ➆ỗ⒈.࡛9; [P1, V6]; xn--6lg26tvvc6v99z.xn--9-6jd87310jtcqs; ; ; #
➆ỗ⒈.࡛9
+➆ỗ⒈.࡛𝟫; ➆ỗ⒈.࡛9; [P1, V6]; xn--6lg26tvvc6v99z.xn--9-6jd87310jtcqs; ; ;
# ➆ỗ⒈.࡛9
+➆ỗ1..࡛9; ; [P1, V6, X4_2]; xn--1-3xm292b6044r..xn--9-6jd87310jtcqs; [P1,
V6, A4_2]; ; # ➆ỗ1..࡛9
+➆ỗ1..࡛9; ➆ỗ1..࡛9; [P1, V6, X4_2];
xn--1-3xm292b6044r..xn--9-6jd87310jtcqs; [P1, V6, A4_2]; ; # ➆ỗ1..࡛9
+➆Ỗ1..࡛9; ➆ỗ1..࡛9; [P1, V6, X4_2];
xn--1-3xm292b6044r..xn--9-6jd87310jtcqs; [P1, V6, A4_2]; ; # ➆ỗ1..࡛9
+➆Ỗ1..࡛9; ➆ỗ1..࡛9; [P1, V6, X4_2];
xn--1-3xm292b6044r..xn--9-6jd87310jtcqs; [P1, V6, A4_2]; ; # ➆ỗ1..࡛9
+xn--1-3xm292b6044r..xn--9-6jd87310jtcqs; ➆ỗ1..࡛9; [V6, X4_2];
xn--1-3xm292b6044r..xn--9-6jd87310jtcqs; [V6, A4_2]; ; # ➆ỗ1..࡛9
+➆Ỗ⒈.࡛𝟫; ➆ỗ⒈.࡛9; [P1, V6]; xn--6lg26tvvc6v99z.xn--9-6jd87310jtcqs; ; ;
# ➆ỗ⒈.࡛9
+➆Ỗ⒈.࡛𝟫; ➆ỗ⒈.࡛9; [P1, V6]; xn--6lg26tvvc6v99z.xn--9-6jd87310jtcqs; ; ; #
➆ỗ⒈.࡛9
+xn--6lg26tvvc6v99z.xn--9-6jd87310jtcqs; ➆ỗ⒈.࡛9; [V6];
xn--6lg26tvvc6v99z.xn--9-6jd87310jtcqs; ; ; # ➆ỗ⒈.࡛9
+。𞤘; .𞤺; [B1, C2]; xn--1ug.xn--ye6h; ; .xn--ye6h; [A4_2] # .𞤺
+。𞤘; .𞤺; [B1, C2]; xn--1ug.xn--ye6h; ; .xn--ye6h; [A4_2] # .𞤺
+。𞤺; .𞤺; [B1, C2]; xn--1ug.xn--ye6h; ; .xn--ye6h; [A4_2] # .𞤺
+.xn--ye6h; .𞤺; [X4_2]; .xn--ye6h; [A4_2]; ; # .𞤺
+xn--1ug.xn--ye6h; .𞤺; [B1, C2]; xn--1ug.xn--ye6h; ; ; # .𞤺
+。𞤺; .𞤺; [B1, C2]; xn--1ug.xn--ye6h; ; .xn--ye6h; [A4_2] # .𞤺
+xn--ye6h; 𞤺; ; xn--ye6h; ; ; # 𞤺
+𞤺; ; ; xn--ye6h; ; ; # 𞤺
+𞤘; 𞤺; ; xn--ye6h; ; ; # 𞤺
+ࠩܤ.ᢣ; ; [B1, V5]; xn--unb53c.xn--tbf; ; ; # ࠩܤ.ᢣ
+xn--unb53c.xn--tbf; ࠩܤ.ᢣ; [B1, V5]; xn--unb53c.xn--tbf; ; ; # ࠩܤ.ᢣ
+ܼ-。ß; ܼ-.ß; [C1, P1, V3, V5, V6]; xn----s2c071q.xn--zca7848m; ;
xn----s2c.xn--ss-066q; [P1, V3, V5, V6] # ܼ-.ß
+ܼ-。SS; ܼ-.ss; [C1, P1, V3, V5, V6]; xn----s2c071q.xn--ss-066q; ;
xn----s2c.xn--ss-066q; [P1, V3, V5, V6] # ܼ-.ss
+ܼ-。ss; ܼ-.ss; [C1, P1, V3, V5, V6]; xn----s2c071q.xn--ss-066q; ;
xn----s2c.xn--ss-066q; [P1, V3, V5, V6] # ܼ-.ss
+ܼ-。Ss; ܼ-.ss; [C1, P1, V3, V5, V6]; xn----s2c071q.xn--ss-066q; ;
xn----s2c.xn--ss-066q; [P1, V3, V5, V6] # ܼ-.ss
+xn----s2c.xn--ss-066q; ܼ-.ss; [V3, V5, V6]; xn----s2c.xn--ss-066q; ; ; #
ܼ-.ss
+xn----s2c071q.xn--ss-066q; ܼ-.ss; [C1, V3, V5, V6];
xn----s2c071q.xn--ss-066q; ; ; # ܼ-.ss
+xn----s2c071q.xn--zca7848m; ܼ-.ß; [C1, V3, V5, V6];
xn----s2c071q.xn--zca7848m; ; ; # ܼ-.ß
+ς🃡⒗.ೆ仧ݖ; ; [B1, B5, B6, C1, P1, V5, V6]; xn--3xa795lz9czy52d.xn--9ob79ycx2e;
; xn--4xa229nbu92a.xn--9ob79ycx2e; [B5, B6, P1, V5, V6] # ς🃡⒗.ೆ仧ݖ
+ς🃡16..ೆ仧ݖ; ; [B1, B5, B6, C1, V5, X4_2];
xn--16-rbc1800avy99b..xn--9ob79ycx2e; [B1, B5, B6, C1, V5, A4_2];
xn--16-ubc66061c..xn--9ob79ycx2e; [B5, B6, V5, A4_2] # ς🃡16..ೆ仧ݖ
+Σ🃡16..ೆ仧ݖ; σ🃡16..ೆ仧ݖ; [B1, B5, B6, C1, V5, X4_2];
xn--16-ubc7700avy99b..xn--9ob79ycx2e; [B1, B5, B6, C1, V5, A4_2];
xn--16-ubc66061c..xn--9ob79ycx2e; [B5, B6, V5, A4_2] # σ🃡16..ೆ仧ݖ
+σ🃡16..ೆ仧ݖ; ; [B1, B5, B6, C1, V5, X4_2];
xn--16-ubc7700avy99b..xn--9ob79ycx2e; [B1, B5, B6, C1, V5, A4_2];
xn--16-ubc66061c..xn--9ob79ycx2e; [B5, B6, V5, A4_2] # σ🃡16..ೆ仧ݖ
+xn--16-ubc66061c..xn--9ob79ycx2e; σ🃡16..ೆ仧ݖ; [B5, B6, V5, X4_2];
xn--16-ubc66061c..xn--9ob79ycx2e; [B5, B6, V5, A4_2]; ; # σ🃡16..ೆ仧ݖ
+xn--16-ubc7700avy99b..xn--9ob79ycx2e; σ🃡16..ೆ仧ݖ; [B1, B5, B6, C1, V5, X4_2];
xn--16-ubc7700avy99b..xn--9ob79ycx2e; [B1, B5, B6, C1, V5, A4_2]; ; # σ🃡16..ೆ仧ݖ
+xn--16-rbc1800avy99b..xn--9ob79ycx2e; ς🃡16..ೆ仧ݖ; [B1, B5, B6, C1, V5, X4_2];
xn--16-rbc1800avy99b..xn--9ob79ycx2e; [B1, B5, B6, C1, V5, A4_2]; ; # ς🃡16..ೆ仧ݖ
+Σ🃡⒗.ೆ仧ݖ; σ🃡⒗.ೆ仧ݖ; [B1, B5, B6, C1, P1, V5, V6];
xn--4xa595lz9czy52d.xn--9ob79ycx2e; ; xn--4xa229nbu92a.xn--9ob79ycx2e; [B5, B6,
P1, V5, V6] # σ🃡⒗.ೆ仧ݖ
+σ🃡⒗.ೆ仧ݖ; ; [B1, B5, B6, C1, P1, V5, V6]; xn--4xa595lz9czy52d.xn--9ob79ycx2e;
; xn--4xa229nbu92a.xn--9ob79ycx2e; [B5, B6, P1, V5, V6] # σ🃡⒗.ೆ仧ݖ
+xn--4xa229nbu92a.xn--9ob79ycx2e; σ🃡⒗.ೆ仧ݖ; [B5, B6, V5, V6];
xn--4xa229nbu92a.xn--9ob79ycx2e; ; ; # σ🃡⒗.ೆ仧ݖ
+xn--4xa595lz9czy52d.xn--9ob79ycx2e; σ🃡⒗.ೆ仧ݖ; [B1, B5, B6, C1, V5, V6];
xn--4xa595lz9czy52d.xn--9ob79ycx2e; ; ; # σ🃡⒗.ೆ仧ݖ
+xn--3xa795lz9czy52d.xn--9ob79ycx2e; ς🃡⒗.ೆ仧ݖ; [B1, B5, B6, C1, V5, V6];
xn--3xa795lz9czy52d.xn--9ob79ycx2e; ; ; # ς🃡⒗.ೆ仧ݖ
+-.𞸚; -.ظ; [B1, V3]; -.xn--3gb; ; ; # -.ظ
+-.ظ; ; [B1, V3]; -.xn--3gb; ; ; # -.ظ
+-.xn--3gb; -.ظ; [B1, V3]; -.xn--3gb; ; ; # -.ظ
+ڃ.ཾش; ; [B1, B5, B6, P1, V5, V6]; xn--8ib92728i.xn--zgb968b; ; ; # ڃ.ཾش
+xn--8ib92728i.xn--zgb968b; ڃ.ཾش; [B1, B5, B6, V5, V6];
xn--8ib92728i.xn--zgb968b; ; ; # ڃ.ཾش
+ࡃ.𐮏; ; [B5, P1, V6]; xn--1vb320b5m04p.xn--m29c; ; ; # ࡃ.𐮏
+xn--1vb320b5m04p.xn--m29c; ࡃ.𐮏; [B5, V6]; xn--1vb320b5m04p.xn--m29c; ; ; #
ࡃ.𐮏
+2ߋß。ᠽ; 2ߋß.ᠽ; [B1, P1, V6]; xn--2-qfa924cez02l.xn--w7e; ;
xn--2ss-odg83511n.xn--w7e; # 2ߋß.ᠽ
+2ߋSS。ᠽ; 2ߋss.ᠽ; [B1, P1, V6]; xn--2ss-odg83511n.xn--w7e; ; ; # 2ߋss.ᠽ
+2ߋss。ᠽ; 2ߋss.ᠽ; [B1, P1, V6]; xn--2ss-odg83511n.xn--w7e; ; ; # 2ߋss.ᠽ
+xn--2ss-odg83511n.xn--w7e; 2ߋss.ᠽ; [B1, V6]; xn--2ss-odg83511n.xn--w7e; ; ;
# 2ߋss.ᠽ
+xn--2-qfa924cez02l.xn--w7e; 2ߋß.ᠽ; [B1, V6]; xn--2-qfa924cez02l.xn--w7e; ; ;
# 2ߋß.ᠽ
+2ߋSs。ᠽ; 2ߋss.ᠽ; [B1, P1, V6]; xn--2ss-odg83511n.xn--w7e; ; ; # 2ߋss.ᠽ
+㸳ߊ≮.ێß-; 㸳ߊ≮.ێß-; [B2, B3, B5, B6, C2, P1, V6];
xn--lsb457kkut.xn----pfa076bys4a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5,
B6, P1, V3, V6] # 㸳ߊ≮.ێß-
+㸳ߊ≮.ێß-; 㸳ߊ≮.ێß-; [B2, B3, B5, B6, C2, P1, V6];
xn--lsb457kkut.xn----pfa076bys4a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5,
B6, P1, V3, V6] # 㸳ߊ≮.ێß-
+㸳ߊ≮.ێß-; ; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn----pfa076bys4a; ;
xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێß-
+㸳ߊ≮.ێß-; 㸳ߊ≮.ێß-; [B2, B3, B5, B6, C2, P1, V6];
xn--lsb457kkut.xn----pfa076bys4a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5,
B6, P1, V3, V6] # 㸳ߊ≮.ێß-
+㸳ߊ≮.ێSS-; 㸳ߊ≮.ێss-; [B2, B3, B5, B6, C2, P1, V6];
xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6,
P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێSS-; 㸳ߊ≮.ێss-; [B2, B3, B5, B6, C2, P1, V6];
xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6,
P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێss-; ; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn--ss--qjf2343a; ;
xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێss-; 㸳ߊ≮.ێss-; [B2, B3, B5, B6, C2, P1, V6];
xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6,
P1, V3, V6] # 㸳ߊ≮.ێss-
+xn--lsb457kkut.xn--ss--qjf; 㸳ߊ≮.ێss-; [B2, B3, B5, B6, V3, V6];
xn--lsb457kkut.xn--ss--qjf; ; ; # 㸳ߊ≮.ێss-
+xn--lsb457kkut.xn--ss--qjf2343a; 㸳ߊ≮.ێss-; [B2, B3, B5, B6, C2, V6];
xn--lsb457kkut.xn--ss--qjf2343a; ; ; # 㸳ߊ≮.ێss-
+xn--lsb457kkut.xn----pfa076bys4a; 㸳ߊ≮.ێß-; [B2, B3, B5, B6, C2, V6];
xn--lsb457kkut.xn----pfa076bys4a; ; ; # 㸳ߊ≮.ێß-
+㸳ߊ≮.ێSS-; 㸳ߊ≮.ێss-; [B2, B3, B5, B6, C2, P1, V6];
xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6,
P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێSS-; 㸳ߊ≮.ێss-; [B2, B3, B5, B6, C2, P1, V6];
xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6,
P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێss-; 㸳ߊ≮.ێss-; [B2, B3, B5, B6, C2, P1, V6];
xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6,
P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێss-; 㸳ߊ≮.ێss-; [B2, B3, B5, B6, C2, P1, V6];
xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6,
P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێSs-; 㸳ߊ≮.ێss-; [B2, B3, B5, B6, C2, P1, V6];
xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6,
P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێSs-; 㸳ߊ≮.ێss-; [B2, B3, B5, B6, C2, P1, V6];
xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6,
P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێSs-; 㸳ߊ≮.ێss-; [B2, B3, B5, B6, C2, P1, V6];
xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6,
P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێSs-; 㸳ߊ≮.ێss-; [B2, B3, B5, B6, C2, P1, V6];
xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6,
P1, V3, V6] # 㸳ߊ≮.ێss-
+-፞𑜧.ᷫ-︒; ; [P1, V3, V5, V6]; xn----b5h1837n2ok9f.xn----mkmw278h; ; ; #
-፞𑜧.ᷫ-︒
+-፞𑜧.ᷫ-。; -፞𑜧.ᷫ-.; [P1, V3, V5, V6]; xn----b5h1837n2ok9f.xn----mkm.; ; ; #
-፞𑜧.ᷫ-.
+xn----b5h1837n2ok9f.xn----mkm.; -፞𑜧.ᷫ-.; [V3, V5, V6];
xn----b5h1837n2ok9f.xn----mkm.; ; ; # -፞𑜧.ᷫ-.
+xn----b5h1837n2ok9f.xn----mkmw278h; -፞𑜧.ᷫ-︒; [V3, V5, V6];
xn----b5h1837n2ok9f.xn----mkmw278h; ; ; # -፞𑜧.ᷫ-︒
+︒.ᩙ; ; [P1, V6]; xn--y86c.xn--cof61594i; ; ; # ︒.ᩙ
+。.ᩙ; ..ᩙ; [P1, V6, X4_2]; ..xn--cof61594i; [P1, V6, A4_2]; ; # ..ᩙ
+..xn--cof61594i; ..ᩙ; [V6, X4_2]; ..xn--cof61594i; [V6, A4_2]; ; # ..ᩙ
+xn--y86c.xn--cof61594i; ︒.ᩙ; [V6]; xn--y86c.xn--cof61594i; ; ; # ︒.ᩙ
+̣ⷡ。⓾ڹ; ̣ⷡ.⓾ڹ; [B1, B3, B6, C1, V5]; xn--kta899s.xn--skb970ka771c; ;
xn--kta899s.xn--skb116m; [B1, B3, B6, V5] # ̣ⷡ.⓾ڹ
+xn--kta899s.xn--skb116m; ̣ⷡ.⓾ڹ; [B1, B3, B6, V5]; xn--kta899s.xn--skb116m; ; ;
# ̣ⷡ.⓾ڹ
+xn--kta899s.xn--skb970ka771c; ̣ⷡ.⓾ڹ; [B1, B3, B6, C1, V5];
xn--kta899s.xn--skb970ka771c; ; ; # ̣ⷡ.⓾ڹ
+𞠶ᠴ。ၴ𞤵󠅦; 𞠶ᠴ.ၴ𞤵; [B1, B2, P1, V5, V6]; xn--tlb199fwl35a.xn--yld4613v; ; ; #
𞠶ᠴ.ၴ𞤵
+𞠶ᠴ。ၴ𞤵󠅦; 𞠶ᠴ.ၴ𞤵; [B1, B2, P1, V5, V6]; xn--tlb199fwl35a.xn--yld4613v; ; ; #
𞠶ᠴ.ၴ𞤵
+𞠶ᠴ。ၴ𞤓󠅦; 𞠶ᠴ.ၴ𞤵; [B1, B2, P1, V5, V6]; xn--tlb199fwl35a.xn--yld4613v; ; ; #
𞠶ᠴ.ၴ𞤵
+xn--tlb199fwl35a.xn--yld4613v; 𞠶ᠴ.ၴ𞤵; [B1, B2, V5, V6];
xn--tlb199fwl35a.xn--yld4613v; ; ; # 𞠶ᠴ.ၴ𞤵
+𞠶ᠴ。ၴ𞤓󠅦; 𞠶ᠴ.ၴ𞤵; [B1, B2, P1, V5, V6]; xn--tlb199fwl35a.xn--yld4613v; ; ; #
𞠶ᠴ.ၴ𞤵
+𑰺.-; ; [P1, V3, V5, V6]; xn--jk3d.xn----iz68g; ; ; # 𑰺.-
+xn--jk3d.xn----iz68g; 𑰺.-; [V3, V5, V6]; xn--jk3d.xn----iz68g; ; ; # 𑰺.-
+.赏; .赏; [P1, V6]; xn--2856e.xn--6o3a; ; ; # .赏
+.赏; ; [P1, V6]; xn--2856e.xn--6o3a; ; ; # .赏
+xn--2856e.xn--6o3a; .赏; [V6]; xn--2856e.xn--6o3a; ; ; # .赏
+ڰᠡ。Ⴁ; ڰᠡ.Ⴁ; [B2, B3, P1, V6]; xn--jkb440g.xn--8md; ; ; # ڰᠡ.Ⴁ
+ڰᠡ。Ⴁ; ڰᠡ.Ⴁ; [B2, B3, P1, V6]; xn--jkb440g.xn--8md; ; ; # ڰᠡ.Ⴁ
+ڰᠡ。ⴁ; ڰᠡ.ⴁ; [B2, B3]; xn--jkb440g.xn--skj; ; ; # ڰᠡ.ⴁ
+xn--jkb440g.xn--skj; ڰᠡ.ⴁ; [B2, B3]; xn--jkb440g.xn--skj; ; ; # ڰᠡ.ⴁ
+xn--jkb440g.xn--8md; ڰᠡ.Ⴁ; [B2, B3, V6]; xn--jkb440g.xn--8md; ; ; # ڰᠡ.Ⴁ
+ڰᠡ。ⴁ; ڰᠡ.ⴁ; [B2, B3]; xn--jkb440g.xn--skj; ; ; # ڰᠡ.ⴁ
+⃞Ⴊڻς。-; ⃞Ⴊڻς.-; [B1, P1, V3, V5, V6]; xn--3xa53m7zmb0q.-; ;
xn--4xa33m7zmb0q.-; # ⃞Ⴊڻς.-
+⃞Ⴊڻς。-; ⃞Ⴊڻς.-; [B1, P1, V3, V5, V6]; xn--3xa53m7zmb0q.-; ;
xn--4xa33m7zmb0q.-; # ⃞Ⴊڻς.-
+⃞ⴊڻς。-; ⃞ⴊڻς.-; [B1, V3, V5]; xn--3xa53mr38aeel.-; ; xn--4xa33mr38aeel.-; #
⃞ⴊڻς.-
+⃞ႪڻΣ。-; ⃞Ⴊڻσ.-; [B1, P1, V3, V5, V6]; xn--4xa33m7zmb0q.-; ; ; # ⃞Ⴊڻσ.-
+⃞ⴊڻσ。-; ⃞ⴊڻσ.-; [B1, V3, V5]; xn--4xa33mr38aeel.-; ; ; # ⃞ⴊڻσ.-
+⃞Ⴊڻσ。-; ⃞Ⴊڻσ.-; [B1, P1, V3, V5, V6]; xn--4xa33m7zmb0q.-; ; ; # ⃞Ⴊڻσ.-
+xn--4xa33m7zmb0q.-; ⃞Ⴊڻσ.-; [B1, V3, V5, V6]; xn--4xa33m7zmb0q.-; ; ; # ⃞Ⴊڻσ.-
+xn--4xa33mr38aeel.-; ⃞ⴊڻσ.-; [B1, V3, V5]; xn--4xa33mr38aeel.-; ; ; # ⃞ⴊڻσ.-
+xn--3xa53mr38aeel.-; ⃞ⴊڻς.-; [B1, V3, V5]; xn--3xa53mr38aeel.-; ; ; # ⃞ⴊڻς.-
+xn--3xa53m7zmb0q.-; ⃞Ⴊڻς.-; [B1, V3, V5, V6]; xn--3xa53m7zmb0q.-; ; ; # ⃞Ⴊڻς.-
+⃞ⴊڻς。-; ⃞ⴊڻς.-; [B1, V3, V5]; xn--3xa53mr38aeel.-; ; xn--4xa33mr38aeel.-; #
⃞ⴊڻς.-
+⃞ႪڻΣ。-; ⃞Ⴊڻσ.-; [B1, P1, V3, V5, V6]; xn--4xa33m7zmb0q.-; ; ; # ⃞Ⴊڻσ.-
+⃞ⴊڻσ。-; ⃞ⴊڻσ.-; [B1, V3, V5]; xn--4xa33mr38aeel.-; ; ; # ⃞ⴊڻσ.-
+⃞Ⴊڻσ。-; ⃞Ⴊڻσ.-; [B1, P1, V3, V5, V6]; xn--4xa33m7zmb0q.-; ; ; # ⃞Ⴊڻσ.-
+Ⴍ.; Ⴍ.; [C1, P1, V6]; xn--lnd.xn--0ug56448b; ; xn--lnd.xn--p01x; [P1, V6]
# Ⴍ.
+Ⴍ.; ; [C1, P1, V6]; xn--lnd.xn--0ug56448b; ; xn--lnd.xn--p01x; [P1, V6] # Ⴍ.
+ⴍ.; ; [C1, P1, V6]; xn--4kj.xn--0ug56448b; ; xn--4kj.xn--p01x; [P1, V6] # ⴍ.
+xn--4kj.xn--p01x; ⴍ.; [V6]; xn--4kj.xn--p01x; ; ; # ⴍ.
+xn--4kj.xn--0ug56448b; ⴍ.; [C1, V6]; xn--4kj.xn--0ug56448b; ; ; # ⴍ.
+xn--lnd.xn--p01x; Ⴍ.; [V6]; xn--lnd.xn--p01x; ; ; # Ⴍ.
+xn--lnd.xn--0ug56448b; Ⴍ.; [C1, V6]; xn--lnd.xn--0ug56448b; ; ; # Ⴍ.
+ⴍ.; ⴍ.; [C1, P1, V6]; xn--4kj.xn--0ug56448b; ; xn--4kj.xn--p01x; [P1, V6]
# ⴍ.
+.𐫫᩠᭄; ; [B2, B3, B6, P1, V6]; xn--9u37blu98h.xn--jof13bt568cork1j; ; ; #
.𐫫᩠᭄
+xn--9u37blu98h.xn--jof13bt568cork1j; .𐫫᩠᭄; [B2, B3, B6, V6];
xn--9u37blu98h.xn--jof13bt568cork1j; ; ; # .𐫫᩠᭄
+≯❊ᠯ。𐹱⺨; ≯❊ᠯ.𐹱⺨; [B1, P1, V6]; xn--i7e163ct2d.xn--vwj7372e; ; ; # ≯❊ᠯ.𐹱⺨
+≯❊ᠯ。𐹱⺨; ≯❊ᠯ.𐹱⺨; [B1, P1, V6]; xn--i7e163ct2d.xn--vwj7372e; ; ; # ≯❊ᠯ.𐹱⺨
+≯❊ᠯ。𐹱⺨; ≯❊ᠯ.𐹱⺨; [B1, P1, V6]; xn--i7e163ct2d.xn--vwj7372e; ; ; # ≯❊ᠯ.𐹱⺨
+≯❊ᠯ。𐹱⺨; ≯❊ᠯ.𐹱⺨; [B1, P1, V6]; xn--i7e163ct2d.xn--vwj7372e; ; ; # ≯❊ᠯ.𐹱⺨
+xn--i7e163ct2d.xn--vwj7372e; ≯❊ᠯ.𐹱⺨; [B1, V6]; xn--i7e163ct2d.xn--vwj7372e; ;
; # ≯❊ᠯ.𐹱⺨
+𐹧𐹩。Ⴈ𐫮Ⴏ; 𐹧𐹩.Ⴈ𐫮Ⴏ; [B5, B6, P1, V6]; xn--fo0de1270ope54j.xn--gndo2033q; ; ;
# 𐹧𐹩.Ⴈ𐫮Ⴏ
+𐹧𐹩。ⴈ𐫮ⴏ; 𐹧𐹩.ⴈ𐫮ⴏ; [B5, B6, P1, V6]; xn--fo0de1270ope54j.xn--zkjo0151o; ; ;
# 𐹧𐹩.ⴈ𐫮ⴏ
+xn--fo0de1270ope54j.xn--zkjo0151o; 𐹧𐹩.ⴈ𐫮ⴏ; [B5, B6, V6];
xn--fo0de1270ope54j.xn--zkjo0151o; ; ; # 𐹧𐹩.ⴈ𐫮ⴏ
+xn--fo0de1270ope54j.xn--gndo2033q; 𐹧𐹩.Ⴈ𐫮Ⴏ; [B5, B6, V6];
xn--fo0de1270ope54j.xn--gndo2033q; ; ; # 𐹧𐹩.Ⴈ𐫮Ⴏ
+𞠂。ꤦ; 𞠂.ꤦ; [B1, B3, B6, V5]; xn--145h.xn--ti9a; ; ; # 𞠂.ꤦ
+xn--145h.xn--ti9a; 𞠂.ꤦ; [B1, B3, B6, V5]; xn--145h.xn--ti9a; ; ; # 𞠂.ꤦ
+𝟔𐹫.့ܳ9ꡇ; 6𐹫.့ܳ9ꡇ; [B1, V5]; xn--6-t26i.xn--9-91c730e8u8n; ; ; # 6𐹫.့ܳ9ꡇ
+𝟔𐹫.့ܳ9ꡇ; 6𐹫.့ܳ9ꡇ; [B1, V5]; xn--6-t26i.xn--9-91c730e8u8n; ; ; # 6𐹫.့ܳ9ꡇ
+6𐹫.့ܳ9ꡇ; ; [B1, V5]; xn--6-t26i.xn--9-91c730e8u8n; ; ; # 6𐹫.့ܳ9ꡇ
+xn--6-t26i.xn--9-91c730e8u8n; 6𐹫.့ܳ9ꡇ; [B1, V5]; xn--6-t26i.xn--9-91c730e8u8n;
; ; # 6𐹫.့ܳ9ꡇ
+ܤ.ۘ; ܤ.ۘ; [B1, B3, B6, P1, V5, V6]; xn--lfb19ct414i.xn--olb; ; ; # ܤ.ۘ
+ܤ.ۘ; ; [B1, B3, B6, P1, V5, V6]; xn--lfb19ct414i.xn--olb; ; ; # ܤ.ۘ
+xn--lfb19ct414i.xn--olb; ܤ.ۘ; [B1, B3, B6, V5, V6]; xn--lfb19ct414i.xn--olb;
; ; # ܤ.ۘ
+✆ꡋ.ز; ✆ꡋ.ز; [B1, C2, P1, V6]; xn--1biv525bcix0d.xn--xgb253k0m73a; ;
xn--1biv525bcix0d.xn--xgb6828v; [B1, P1, V6] # ✆ꡋ.ز
+✆ꡋ.ز; ; [B1, C2, P1, V6]; xn--1biv525bcix0d.xn--xgb253k0m73a; ;
xn--1biv525bcix0d.xn--xgb6828v; [B1, P1, V6] # ✆ꡋ.ز
+xn--1biv525bcix0d.xn--xgb6828v; ✆ꡋ.ز; [B1, V6];
xn--1biv525bcix0d.xn--xgb6828v; ; ; # ✆ꡋ.ز
+xn--1biv525bcix0d.xn--xgb253k0m73a; ✆ꡋ.ز; [B1, C2, V6];
xn--1biv525bcix0d.xn--xgb253k0m73a; ; ; # ✆ꡋ.ز
+ࡅ𞸍-.≠𑋪; ࡅن-.≠𑋪; [B1, B2, B3, P1, V3, V6];
xn----qoc64my971s.xn--1ch7585g76o3c; ; ; # ࡅن-.≠𑋪
+ࡅ𞸍-.≠𑋪; ࡅن-.≠𑋪; [B1, B2, B3, P1, V3, V6];
xn----qoc64my971s.xn--1ch7585g76o3c; ; ; # ࡅن-.≠𑋪
+ࡅن-.≠𑋪; ; [B1, B2, B3, P1, V3, V6]; xn----qoc64my971s.xn--1ch7585g76o3c; ; ;
# ࡅن-.≠𑋪
+ࡅن-.≠𑋪; ࡅن-.≠𑋪; [B1, B2, B3, P1, V3, V6];
xn----qoc64my971s.xn--1ch7585g76o3c; ; ; # ࡅن-.≠𑋪
+xn----qoc64my971s.xn--1ch7585g76o3c; ࡅن-.≠𑋪; [B1, B2, B3, V3, V6];
xn----qoc64my971s.xn--1ch7585g76o3c; ; ; # ࡅن-.≠𑋪
+𝟛.笠; 3.笠; ; 3.xn--6vz; ; ; # 3.笠
+𝟛.笠; 3.笠; ; 3.xn--6vz; ; ; # 3.笠
+3.笠; ; ; 3.xn--6vz; ; ; # 3.笠
+3.xn--6vz; 3.笠; ; 3.xn--6vz; ; ; # 3.笠
+-.Ⴞ𐋷; ; [C2, P1, V3, V6]; xn----ugn.xn--2nd2315j; ; -.xn--2nd2315j; [P1, V3,
V6] # -.Ⴞ𐋷
+-.ⴞ𐋷; ; [C2, V3]; xn----ugn.xn--mlj8559d; ; -.xn--mlj8559d; [V3] # -.ⴞ𐋷
+-.xn--mlj8559d; -.ⴞ𐋷; [V3]; -.xn--mlj8559d; ; ; # -.ⴞ𐋷
+xn----ugn.xn--mlj8559d; -.ⴞ𐋷; [C2, V3]; xn----ugn.xn--mlj8559d; ; ; # -.ⴞ𐋷
+-.xn--2nd2315j; -.Ⴞ𐋷; [V3, V6]; -.xn--2nd2315j; ; ; # -.Ⴞ𐋷
+xn----ugn.xn--2nd2315j; -.Ⴞ𐋷; [C2, V3, V6]; xn----ugn.xn--2nd2315j; ; ; #
-.Ⴞ𐋷
+ςßܱ.்; ςßܱ.்; [C2, V5]; xn--zca19ln1di19a.xn--xmc; ; xn--ss-ubc826a.xn--xmc;
[V5] # ςßܱ.்
+ςßܱ.்; ; [C2, V5]; xn--zca19ln1di19a.xn--xmc; ; xn--ss-ubc826a.xn--xmc; [V5]
# ςßܱ.்
+ΣSSܱ.்; σssܱ.்; [C2, V5]; xn--ss-ubc826ab34b.xn--xmc; ;
xn--ss-ubc826a.xn--xmc; [V5] # σssܱ.்
+σssܱ.்; ; [C2, V5]; xn--ss-ubc826ab34b.xn--xmc; ; xn--ss-ubc826a.xn--xmc;
[V5] # σssܱ.்
+Σssܱ.்; σssܱ.்; [C2, V5]; xn--ss-ubc826ab34b.xn--xmc; ;
xn--ss-ubc826a.xn--xmc; [V5] # σssܱ.்
+xn--ss-ubc826a.xn--xmc; σssܱ.்; [V5]; xn--ss-ubc826a.xn--xmc; ; ; # σssܱ.்
+xn--ss-ubc826ab34b.xn--xmc; σssܱ.்; [C2, V5]; xn--ss-ubc826ab34b.xn--xmc; ; ;
# σssܱ.்
+Σßܱ.்; σßܱ.்; [C2, V5]; xn--zca39lk1di19a.xn--xmc; ; xn--ss-ubc826a.xn--xmc;
[V5] # σßܱ.்
+σßܱ.்; ; [C2, V5]; xn--zca39lk1di19a.xn--xmc; ; xn--ss-ubc826a.xn--xmc; [V5]
# σßܱ.்
+xn--zca39lk1di19a.xn--xmc; σßܱ.்; [C2, V5]; xn--zca39lk1di19a.xn--xmc; ; ; #
σßܱ.்
+xn--zca19ln1di19a.xn--xmc; ςßܱ.்; [C2, V5]; xn--zca19ln1di19a.xn--xmc; ; ; #
ςßܱ.்
+ΣSSܱ.்; σssܱ.்; [C2, V5]; xn--ss-ubc826ab34b.xn--xmc; ;
xn--ss-ubc826a.xn--xmc; [V5] # σssܱ.்
+σssܱ.்; σssܱ.்; [C2, V5]; xn--ss-ubc826ab34b.xn--xmc; ;
xn--ss-ubc826a.xn--xmc; [V5] # σssܱ.்
+Σssܱ.்; σssܱ.்; [C2, V5]; xn--ss-ubc826ab34b.xn--xmc; ;
xn--ss-ubc826a.xn--xmc; [V5] # σssܱ.்
+Σßܱ.்; σßܱ.்; [C2, V5]; xn--zca39lk1di19a.xn--xmc; ; xn--ss-ubc826a.xn--xmc;
[V5] # σßܱ.்
+σßܱ.்; σßܱ.்; [C2, V5]; xn--zca39lk1di19a.xn--xmc; ; xn--ss-ubc826a.xn--xmc;
[V5] # σßܱ.்
+≠.; ≠.; [C2, P1, V6]; xn--1ch.xn--1ug; ; xn--1ch.; [P1, V6] # ≠.
+≠.; ≠.; [C2, P1, V6]; xn--1ch.xn--1ug; ; xn--1ch.; [P1, V6] # ≠.
+≠.; ; [C2, P1, V6]; xn--1ch.xn--1ug; ; xn--1ch.; [P1, V6] # ≠.
+≠.; ≠.; [C2, P1, V6]; xn--1ch.xn--1ug; ; xn--1ch.; [P1, V6] # ≠.
+xn--1ch.; ≠.; [V6]; xn--1ch.; ; ; # ≠.
+xn--1ch.xn--1ug; ≠.; [C2, V6]; xn--1ch.xn--1ug; ; ; # ≠.
+ﰁ。ಁᠼ▗; ئح.ಁᠼ▗; [B1, P1, V5, V6]; xn--lgbo.xn--2rc021dcxkrx55t; ; ; # ئح.ಁᠼ▗
+ئح。ಁᠼ▗; ئح.ಁᠼ▗; [B1, P1, V5, V6]; xn--lgbo.xn--2rc021dcxkrx55t; ; ; # ئح.ಁᠼ▗
+ئح。ಁᠼ▗; ئح.ಁᠼ▗; [B1, P1, V5, V6]; xn--lgbo.xn--2rc021dcxkrx55t; ; ; #
ئح.ಁᠼ▗
+xn--lgbo.xn--2rc021dcxkrx55t; ئح.ಁᠼ▗; [B1, V5, V6];
xn--lgbo.xn--2rc021dcxkrx55t; ; ; # ئح.ಁᠼ▗
+্ς.ς𐨿; ্ς.ς𐨿; [P1, V6]; xn--3xa702av8297a.xn--3xa8055k; ;
xn--4xa502av8297a.xn--4xa6055k; # ্ς.ς𐨿
+্ς.ς𐨿; ; [P1, V6]; xn--3xa702av8297a.xn--3xa8055k; ;
xn--4xa502av8297a.xn--4xa6055k; # ্ς.ς𐨿
+্Σ.Σ𐨿; ্σ.σ𐨿; [P1, V6]; xn--4xa502av8297a.xn--4xa6055k; ; ; # ্σ.σ𐨿
+্σ.ς𐨿; ; [P1, V6]; xn--4xa502av8297a.xn--3xa8055k; ;
xn--4xa502av8297a.xn--4xa6055k; # ্σ.ς𐨿
+্σ.σ𐨿; ; [P1, V6]; xn--4xa502av8297a.xn--4xa6055k; ; ; # ্σ.σ𐨿
+্Σ.σ𐨿; ্σ.σ𐨿; [P1, V6]; xn--4xa502av8297a.xn--4xa6055k; ; ; # ্σ.σ𐨿
+xn--4xa502av8297a.xn--4xa6055k; ্σ.σ𐨿; [V6]; xn--4xa502av8297a.xn--4xa6055k;
; ; # ্σ.σ𐨿
+্Σ.ς𐨿; ্σ.ς𐨿; [P1, V6]; xn--4xa502av8297a.xn--3xa8055k; ;
xn--4xa502av8297a.xn--4xa6055k; # ্σ.ς𐨿
+xn--4xa502av8297a.xn--3xa8055k; ্σ.ς𐨿; [V6]; xn--4xa502av8297a.xn--3xa8055k;
; ; # ্σ.ς𐨿
+xn--3xa702av8297a.xn--3xa8055k; ্ς.ς𐨿; [V6]; xn--3xa702av8297a.xn--3xa8055k;
; ; # ্ς.ς𐨿
+্Σ.Σ𐨿; ্σ.σ𐨿; [P1, V6]; xn--4xa502av8297a.xn--4xa6055k; ; ; # ্σ.σ𐨿
+্σ.ς𐨿; ্σ.ς𐨿; [P1, V6]; xn--4xa502av8297a.xn--3xa8055k; ;
xn--4xa502av8297a.xn--4xa6055k; # ্σ.ς𐨿
+্σ.σ𐨿; ্σ.σ𐨿; [P1, V6]; xn--4xa502av8297a.xn--4xa6055k; ; ; # ্σ.σ𐨿
+্Σ.σ𐨿; ্σ.σ𐨿; [P1, V6]; xn--4xa502av8297a.xn--4xa6055k; ; ; # ্σ.σ𐨿
+্Σ.ς𐨿; ্σ.ς𐨿; [P1, V6]; xn--4xa502av8297a.xn--3xa8055k; ;
xn--4xa502av8297a.xn--4xa6055k; # ্σ.ς𐨿
+𐫓ߘ牅ࣸ。ᨗႹ; 𐫓ߘ牅ࣸ.ᨗႹ; [B2, B3, P1, V6];
xn--zsb09cu46vjs6f.xn--xnd909bv540bm5k9d; ; ; # 𐫓ߘ牅ࣸ.ᨗႹ
+𐫓ߘ牅ࣸ。ᨗႹ; 𐫓ߘ牅ࣸ.ᨗႹ; [B2, B3, P1, V6];
xn--zsb09cu46vjs6f.xn--xnd909bv540bm5k9d; ; ; # 𐫓ߘ牅ࣸ.ᨗႹ
+𐫓ߘ牅ࣸ。ᨗⴙ; 𐫓ߘ牅ࣸ.ᨗⴙ; [B2, B3, P1, V6];
xn--zsb09cu46vjs6f.xn--gmf469fr883am5r1e; ; ; # 𐫓ߘ牅ࣸ.ᨗⴙ
+xn--zsb09cu46vjs6f.xn--gmf469fr883am5r1e; 𐫓ߘ牅ࣸ.ᨗⴙ; [B2, B3, V6];
xn--zsb09cu46vjs6f.xn--gmf469fr883am5r1e; ; ; # 𐫓ߘ牅ࣸ.ᨗⴙ
+xn--zsb09cu46vjs6f.xn--xnd909bv540bm5k9d; 𐫓ߘ牅ࣸ.ᨗႹ; [B2, B3, V6];
xn--zsb09cu46vjs6f.xn--xnd909bv540bm5k9d; ; ; # 𐫓ߘ牅ࣸ.ᨗႹ
+𐫓ߘ牅ࣸ。ᨗⴙ; 𐫓ߘ牅ࣸ.ᨗⴙ; [B2, B3, P1, V6];
xn--zsb09cu46vjs6f.xn--gmf469fr883am5r1e; ; ; # 𐫓ߘ牅ࣸ.ᨗⴙ
+。륧; .륧; [P1, V6]; xn--s264a.xn--pw2b; ; ; # .륧
+。륧; .륧; [P1, V6]; xn--s264a.xn--pw2b; ; ; # .륧
+。륧; .륧; [P1, V6]; xn--s264a.xn--pw2b; ; ; # .륧
+。륧; .륧; [P1, V6]; xn--s264a.xn--pw2b; ; ; # .륧
+xn--s264a.xn--pw2b; .륧; [V6]; xn--s264a.xn--pw2b; ; ; # .륧
+𐹷。; 𐹷.; [B1, C2, P1, V6]; xn--1ugx205g.xn--8088d; ; xn--vo0d.xn--8088d;
[B1, P1, V6] # 𐹷.
+xn--vo0d.xn--8088d; 𐹷.; [B1, V6]; xn--vo0d.xn--8088d; ; ; # 𐹷.
+xn--1ugx205g.xn--8088d; 𐹷.; [B1, C2, V6]; xn--1ugx205g.xn--8088d; ; ; # 𐹷.
+Ⴘۂ𑲭。-; Ⴘۂ𑲭.-; [B1, B5, B6, P1, V3, V6]; xn--1kb312c139t.-; ; ; # Ⴘۂ𑲭.-
+Ⴘۂ𑲭。-; Ⴘۂ𑲭.-; [B1, B5, B6, P1, V3, V6]; xn--1kb312c139t.-; ; ; # Ⴘۂ𑲭.-
+Ⴘۂ𑲭。-; Ⴘۂ𑲭.-; [B1, B5, B6, P1, V3, V6]; xn--1kb312c139t.-; ; ; # Ⴘۂ𑲭.-
+Ⴘۂ𑲭。-; Ⴘۂ𑲭.-; [B1, B5, B6, P1, V3, V6]; xn--1kb312c139t.-; ; ; # Ⴘۂ𑲭.-
+ⴘۂ𑲭。-; ⴘۂ𑲭.-; [B1, B5, B6, V3]; xn--1kb147qfk3n.-; ; ; # ⴘۂ𑲭.-
+ⴘۂ𑲭。-; ⴘۂ𑲭.-; [B1, B5, B6, V3]; xn--1kb147qfk3n.-; ; ; # ⴘۂ𑲭.-
+xn--1kb147qfk3n.-; ⴘۂ𑲭.-; [B1, B5, B6, V3]; xn--1kb147qfk3n.-; ; ; # ⴘۂ𑲭.-
+xn--1kb312c139t.-; Ⴘۂ𑲭.-; [B1, B5, B6, V3, V6]; xn--1kb312c139t.-; ; ; # Ⴘۂ𑲭.-
+ⴘۂ𑲭。-; ⴘۂ𑲭.-; [B1, B5, B6, V3]; xn--1kb147qfk3n.-; ; ; # ⴘۂ𑲭.-
+ⴘۂ𑲭。-; ⴘۂ𑲭.-; [B1, B5, B6, V3]; xn--1kb147qfk3n.-; ; ; # ⴘۂ𑲭.-
+꠆ٻ₆ᡐ。🛇ﳝ; ꠆ٻ6ᡐ.🛇يم; [B1, V5]; xn--6-rrc018krt9k.xn--hhbj61429a; ; ; # ꠆ٻ6ᡐ.🛇يم
+꠆ٻ6ᡐ。🛇يم; ꠆ٻ6ᡐ.🛇يم; [B1, V5]; xn--6-rrc018krt9k.xn--hhbj61429a; ; ; # ꠆ٻ6ᡐ.🛇يم
+xn--6-rrc018krt9k.xn--hhbj61429a; ꠆ٻ6ᡐ.🛇يم; [B1, V5];
xn--6-rrc018krt9k.xn--hhbj61429a; ; ; # ꠆ٻ6ᡐ.🛇يم
+.㇄ᡟ𐫂آ; ; [B1, P1, V6]; xn--p292d.xn--hgb154ghrsvm2r; ; ; # .㇄ᡟ𐫂آ
+.㇄ᡟ𐫂آ; .㇄ᡟ𐫂آ; [B1, P1, V6]; xn--p292d.xn--hgb154ghrsvm2r; ; ; # .㇄ᡟ𐫂آ
+xn--p292d.xn--hgb154ghrsvm2r; .㇄ᡟ𐫂آ; [B1, V6]; xn--p292d.xn--hgb154ghrsvm2r;
; ; # .㇄ᡟ𐫂آ
+ߟ。-ߩ; ߟ.-ߩ; [B1, B2, B3, P1, V3, V6]; xn--6sb88139l.xn----pdd; ; ; # ߟ.-ߩ
+xn--6sb88139l.xn----pdd; ߟ.-ߩ; [B1, B2, B3, V3, V6]; xn--6sb88139l.xn----pdd;
; ; # ߟ.-ߩ
+ςك⾑.ᢟ⒈; ςك襾.ᢟ⒈; [B1, B5, C1, P1, V6]; xn--3xa69jux8r.xn--pbf519aba607b; ;
xn--4xa49jux8r.xn--pbf212d; [B5, P1, V6] # ςك襾.ᢟ⒈
+ςك襾.ᢟ1.; ; [B1, B5, C1]; xn--3xa69jux8r.xn--1-4ck691bba.; ;
xn--4xa49jux8r.xn--1-4ck.; [B5] # ςك襾.ᢟ1.
+Σك襾.ᢟ1.; σك襾.ᢟ1.; [B1, B5, C1]; xn--4xa49jux8r.xn--1-4ck691bba.; ;
xn--4xa49jux8r.xn--1-4ck.; [B5] # σك襾.ᢟ1.
+σك襾.ᢟ1.; ; [B1, B5, C1]; xn--4xa49jux8r.xn--1-4ck691bba.; ;
xn--4xa49jux8r.xn--1-4ck.; [B5] # σك襾.ᢟ1.
+xn--4xa49jux8r.xn--1-4ck.; σك襾.ᢟ1.; [B5]; xn--4xa49jux8r.xn--1-4ck.; ; ; #
σك襾.ᢟ1.
+xn--4xa49jux8r.xn--1-4ck691bba.; σك襾.ᢟ1.; [B1, B5, C1];
xn--4xa49jux8r.xn--1-4ck691bba.; ; ; # σك襾.ᢟ1.
+xn--3xa69jux8r.xn--1-4ck691bba.; ςك襾.ᢟ1.; [B1, B5, C1];
xn--3xa69jux8r.xn--1-4ck691bba.; ; ; # ςك襾.ᢟ1.
+Σك⾑.ᢟ⒈; σك襾.ᢟ⒈; [B1, B5, C1, P1, V6]; xn--4xa49jux8r.xn--pbf519aba607b; ;
xn--4xa49jux8r.xn--pbf212d; [B5, P1, V6] # σك襾.ᢟ⒈
+σك⾑.ᢟ⒈; σك襾.ᢟ⒈; [B1, B5, C1, P1, V6]; xn--4xa49jux8r.xn--pbf519aba607b; ;
xn--4xa49jux8r.xn--pbf212d; [B5, P1, V6] # σك襾.ᢟ⒈
+xn--4xa49jux8r.xn--pbf212d; σك襾.ᢟ⒈; [B5, V6]; xn--4xa49jux8r.xn--pbf212d; ; ;
# σك襾.ᢟ⒈
+xn--4xa49jux8r.xn--pbf519aba607b; σك襾.ᢟ⒈; [B1, B5, C1, V6];
xn--4xa49jux8r.xn--pbf519aba607b; ; ; # σك襾.ᢟ⒈
+xn--3xa69jux8r.xn--pbf519aba607b; ςك襾.ᢟ⒈; [B1, B5, C1, V6];
xn--3xa69jux8r.xn--pbf519aba607b; ; ; # ςك襾.ᢟ⒈
+ᡆ.; ᡆ.; [P1, V6]; xn--57e0440k.xn--k86h; ; ; # ᡆ.
+ᡆ.; ; [P1, V6]; xn--57e0440k.xn--k86h; ; ; # ᡆ.
+xn--57e0440k.xn--k86h; ᡆ.; [V6]; xn--57e0440k.xn--k86h; ; ; # ᡆ.
+੍𦍓ᷮ。ࢽ; ੍𦍓ᷮ.ࢽ; [B1, C1, P1, V5, V6]; xn--ybc461hph93b.xn--jzb740j1y45h; ;
xn--ybc461hph93b.xn--jzb29857e; [B1, B2, B3, P1, V5, V6] # ੍𦍓ᷮ.ࢽ
+੍𦍓ᷮ。ࢽ; ੍𦍓ᷮ.ࢽ; [B1, C1, P1, V5, V6]; xn--ybc461hph93b.xn--jzb740j1y45h; ;
xn--ybc461hph93b.xn--jzb29857e; [B1, B2, B3, P1, V5, V6] # ੍𦍓ᷮ.ࢽ
+xn--ybc461hph93b.xn--jzb29857e; ੍𦍓ᷮ.ࢽ; [B1, B2, B3, V5, V6];
xn--ybc461hph93b.xn--jzb29857e; ; ; # ੍𦍓ᷮ.ࢽ
+xn--ybc461hph93b.xn--jzb740j1y45h; ੍𦍓ᷮ.ࢽ; [B1, C1, V5, V6];
xn--ybc461hph93b.xn--jzb740j1y45h; ; ; # ੍𦍓ᷮ.ࢽ
+خ݈-.먿; خ݈-.먿; [B1, B2, B3, C1, P1, V3, V6];
xn----dnc06f42153a.xn--0ug1581d; ; xn----dnc06f42153a.xn--v22b; [B2, B3, P1,
V3, V6] # خ݈-.먿
+خ݈-.먿; خ݈-.먿; [B1, B2, B3, C1, P1, V3, V6];
xn----dnc06f42153a.xn--0ug1581d; ; xn----dnc06f42153a.xn--v22b; [B2, B3, P1,
V3, V6] # خ݈-.먿
+خ݈-.먿; ; [B1, B2, B3, C1, P1, V3, V6]; xn----dnc06f42153a.xn--0ug1581d; ;
xn----dnc06f42153a.xn--v22b; [B2, B3, P1, V3, V6] # خ݈-.먿
+خ݈-.먿; خ݈-.먿; [B1, B2, B3, C1, P1, V3, V6];
xn----dnc06f42153a.xn--0ug1581d; ; xn----dnc06f42153a.xn--v22b; [B2, B3, P1,
V3, V6] # خ݈-.먿
+xn----dnc06f42153a.xn--v22b; خ݈-.먿; [B2, B3, V3, V6];
xn----dnc06f42153a.xn--v22b; ; ; # خ݈-.먿
+xn----dnc06f42153a.xn--0ug1581d; خ݈-.먿; [B1, B2, B3, C1, V3, V6];
xn----dnc06f42153a.xn--0ug1581d; ; ; # خ݈-.먿
+。ᠽ; .ᠽ; [P1, V6]; xn--j890g.xn--w7e; ; ; # .ᠽ
+。ᠽ; .ᠽ; [P1, V6]; xn--j890g.xn--w7e; ; ; # .ᠽ
+xn--j890g.xn--w7e; .ᠽ; [V6]; xn--j890g.xn--w7e; ; ; # .ᠽ
+嬃𝍌.ୄ; 嬃𝍌.ୄ; [C2]; xn--b6s0078f.xn--0ic557h; ; xn--b6s0078f.xn--0ic; [V5] #
嬃𝍌.ୄ
+嬃𝍌.ୄ; ; [C2]; xn--b6s0078f.xn--0ic557h; ; xn--b6s0078f.xn--0ic; [V5] # 嬃𝍌.ୄ
+xn--b6s0078f.xn--0ic; 嬃𝍌.ୄ; [V5]; xn--b6s0078f.xn--0ic; ; ; # 嬃𝍌.ୄ
+xn--b6s0078f.xn--0ic557h; 嬃𝍌.ୄ; [C2]; xn--b6s0078f.xn--0ic557h; ; ; # 嬃𝍌.ୄ
+𝌪≯.; 𝌪≯.; [B1, P1, V6]; xn--kfb866llx01a.xn--wp1gm3570b; ; ; # 𝌪≯.
+𝌪≯.; 𝌪≯.; [B1, P1, V6]; xn--kfb866llx01a.xn--wp1gm3570b; ; ; # 𝌪≯.
+𝌪≯.; ; [B1, P1, V6]; xn--kfb866llx01a.xn--wp1gm3570b; ; ; # 𝌪≯.
+𝌪≯.; 𝌪≯.; [B1, P1, V6]; xn--kfb866llx01a.xn--wp1gm3570b; ; ; # 𝌪≯.
+xn--kfb866llx01a.xn--wp1gm3570b; 𝌪≯.; [B1, V6];
xn--kfb866llx01a.xn--wp1gm3570b; ; ; # 𝌪≯.
+ࢷ៌꧀.; ; [B5, P1, V6]; xn--dzb638ewm4i1iy1h.xn--3m7h; ; ; # ࢷ៌꧀.
+xn--dzb638ewm4i1iy1h.xn--3m7h; ࢷ៌꧀.; [B5, V6];
xn--dzb638ewm4i1iy1h.xn--3m7h; ; ; # ࢷ៌꧀.
+.; ; [C1, P1, V6]; xn--0ug.xn--q823a; ; .xn--q823a; [P1, V6, A4_2] # .
+.xn--q823a; .; [V6, X4_2]; .xn--q823a; [V6, A4_2]; ; # .
+xn--0ug.xn--q823a; .; [C1, V6]; xn--0ug.xn--q823a; ; ; # .
+Ⴃ䠅.; Ⴃ䠅.; [P1, V6]; xn--bnd074zr557n.xn--yl0d; ; ; # Ⴃ䠅.
+Ⴃ䠅.; ; [P1, V6]; xn--bnd074zr557n.xn--yl0d; ; ; # Ⴃ䠅.
+ⴃ䠅.; ; [P1, V6]; xn--ukju77frl47r.xn--yl0d; ; ; # ⴃ䠅.
+xn--ukju77frl47r.xn--yl0d; ⴃ䠅.; [V6]; xn--ukju77frl47r.xn--yl0d; ; ; # ⴃ䠅.
+xn--bnd074zr557n.xn--yl0d; Ⴃ䠅.; [V6]; xn--bnd074zr557n.xn--yl0d; ; ; # Ⴃ䠅.
+ⴃ䠅.; ⴃ䠅.; [P1, V6]; xn--ukju77frl47r.xn--yl0d; ; ; # ⴃ䠅.
+ᯱ𐹳𐹵𞤚。𝟨Ⴅ; ᯱ𐹳𐹵𞤼.6Ⴅ; [B1, P1, V5, V6]; xn--zzfy954hga2415t.xn--6-h0g; ; ; #
ᯱ𐹳𐹵𞤼.6Ⴅ
+ᯱ𐹳𐹵𞤚。6Ⴅ; ᯱ𐹳𐹵𞤼.6Ⴅ; [B1, P1, V5, V6]; xn--zzfy954hga2415t.xn--6-h0g; ; ; #
ᯱ𐹳𐹵𞤼.6Ⴅ
+ᯱ𐹳𐹵𞤼。6ⴅ; ᯱ𐹳𐹵𞤼.6ⴅ; [B1, V5]; xn--zzfy954hga2415t.xn--6-kvs; ; ; # ᯱ𐹳𐹵𞤼.6ⴅ
+ᯱ𐹳𐹵𞤚。6ⴅ; ᯱ𐹳𐹵𞤼.6ⴅ; [B1, V5]; xn--zzfy954hga2415t.xn--6-kvs; ; ; # ᯱ𐹳𐹵𞤼.6ⴅ
+xn--zzfy954hga2415t.xn--6-kvs; ᯱ𐹳𐹵𞤼.6ⴅ; [B1, V5];
xn--zzfy954hga2415t.xn--6-kvs; ; ; # ᯱ𐹳𐹵𞤼.6ⴅ
+xn--zzfy954hga2415t.xn--6-h0g; ᯱ𐹳𐹵𞤼.6Ⴅ; [B1, V5, V6];
xn--zzfy954hga2415t.xn--6-h0g; ; ; # ᯱ𐹳𐹵𞤼.6Ⴅ
+ᯱ𐹳𐹵𞤼。𝟨ⴅ; ᯱ𐹳𐹵𞤼.6ⴅ; [B1, V5]; xn--zzfy954hga2415t.xn--6-kvs; ; ; # ᯱ𐹳𐹵𞤼.6ⴅ
+ᯱ𐹳𐹵𞤚。𝟨ⴅ; ᯱ𐹳𐹵𞤼.6ⴅ; [B1, V5]; xn--zzfy954hga2415t.xn--6-kvs; ; ; # ᯱ𐹳𐹵𞤼.6ⴅ
+-。︒; -.︒; [P1, V3, V6]; -.xn--y86c; ; ; # -.︒
+-。。; -..; [V3, X4_2]; ; [V3, A4_2]; ; # -..
+-..; ; [V3, X4_2]; ; [V3, A4_2]; ; # -..
+-.xn--y86c; -.︒; [V3, V6]; -.xn--y86c; ; ; # -.︒
+ߛჀ。-⁵--; ߛჀ.-5--; [B1, B2, B3, P1, V2, V3, V6]; xn--2sb866b.-5--; ; ; #
ߛჀ.-5--
+ߛჀ。-5--; ߛჀ.-5--; [B1, B2, B3, P1, V2, V3, V6]; xn--2sb866b.-5--; ; ; #
ߛჀ.-5--
+ߛⴠ。-5--; ߛⴠ.-5--; [B1, B2, B3, V2, V3]; xn--2sb691q.-5--; ; ; # ߛⴠ.-5--
+xn--2sb691q.-5--; ߛⴠ.-5--; [B1, B2, B3, V2, V3]; xn--2sb691q.-5--; ; ; #
ߛⴠ.-5--
+xn--2sb866b.-5--; ߛჀ.-5--; [B1, B2, B3, V2, V3, V6]; xn--2sb866b.-5--; ; ; #
ߛჀ.-5--
+ߛⴠ。-⁵--; ߛⴠ.-5--; [B1, B2, B3, V2, V3]; xn--2sb691q.-5--; ; ; # ߛⴠ.-5--
+≯?。𐹷𐹻≯; ≯?.𐹷𐹻≯; [B1, P1, V6]; xn--?-ogo25661n.xn--hdh8283gdoaqa; ; ; #
≯?.𐹷𐹻≯
+≯?。𐹷𐹻≯; ≯?.𐹷𐹻≯; [B1, P1, V6]; xn--?-ogo25661n.xn--hdh8283gdoaqa; ; ; #
≯?.𐹷𐹻≯
+≯?。𐹷𐹻≯; ≯?.𐹷𐹻≯; [B1, P1, V6]; xn--?-ogo25661n.xn--hdh8283gdoaqa; ; ; #
≯?.𐹷𐹻≯
+≯?。𐹷𐹻≯; ≯?.𐹷𐹻≯; [B1, P1, V6]; xn--?-ogo25661n.xn--hdh8283gdoaqa; ; ; #
≯?.𐹷𐹻≯
+xn--?-ogo25661n.xn--hdh8283gdoaqa; ≯?.𐹷𐹻≯; [B1, P1, V6];
xn--?-ogo25661n.xn--hdh8283gdoaqa; ; ; # ≯?.𐹷𐹻≯
+≯?.xn--hdh8283gdoaqa; ≯?.𐹷𐹻≯; [B1, P1, V6];
xn--?-ogo25661n.xn--hdh8283gdoaqa; ; ; # ≯?.𐹷𐹻≯
+≯?.xn--hdh8283gdoaqa; ≯?.𐹷𐹻≯; [B1, P1, V6];
xn--?-ogo25661n.xn--hdh8283gdoaqa; ; ; # ≯?.𐹷𐹻≯
+≯?.XN--HDH8283GDOAQA; ≯?.𐹷𐹻≯; [B1, P1, V6];
xn--?-ogo25661n.xn--hdh8283gdoaqa; ; ; # ≯?.𐹷𐹻≯
+≯?.XN--HDH8283GDOAQA; ≯?.𐹷𐹻≯; [B1, P1, V6];
xn--?-ogo25661n.xn--hdh8283gdoaqa; ; ; # ≯?.𐹷𐹻≯
+≯?.Xn--Hdh8283gdoaqa; ≯?.𐹷𐹻≯; [B1, P1, V6];
xn--?-ogo25661n.xn--hdh8283gdoaqa; ; ; # ≯?.𐹷𐹻≯
+≯?.Xn--Hdh8283gdoaqa; ≯?.𐹷𐹻≯; [B1, P1, V6];
xn--?-ogo25661n.xn--hdh8283gdoaqa; ; ; # ≯?.𐹷𐹻≯
+㍔ࣦݼ。͆; ルーブルࣦݼ.͆; [B1, B5, B6, C2, P1, V5, V6];
xn--dqb73ec22c9kp8cb1j.xn--kua81ls548d3608b; ;
xn--dqb73el09fncab4h.xn--kua81ls548d3608b; [B1, B5, B6, P1, V5, V6] # ルーブルࣦݼ.͆
+ルーブルࣦݼ。͆; ルーブルࣦݼ.͆; [B1, B5, B6, C2, P1, V5, V6];
xn--dqb73ec22c9kp8cb1j.xn--kua81ls548d3608b; ;
xn--dqb73el09fncab4h.xn--kua81ls548d3608b; [B1, B5, B6, P1, V5, V6] # ルーブルࣦݼ.͆
+ルーブルࣦݼ。͆; ルーブルࣦݼ.͆; [B1, B5, B6, C2, P1, V5, V6];
xn--dqb73ec22c9kp8cb1j.xn--kua81ls548d3608b; ;
xn--dqb73el09fncab4h.xn--kua81ls548d3608b; [B1, B5, B6, P1, V5, V6] # ルーブルࣦݼ.͆
+xn--dqb73el09fncab4h.xn--kua81ls548d3608b; ルーブルࣦݼ.͆; [B1, B5, B6, V5, V6];
xn--dqb73el09fncab4h.xn--kua81ls548d3608b; ; ; # ルーブルࣦݼ.͆
+xn--dqb73ec22c9kp8cb1j.xn--kua81ls548d3608b; ルーブルࣦݼ.͆; [B1, B5, B6, C2,
V5, V6]; xn--dqb73ec22c9kp8cb1j.xn--kua81ls548d3608b; ; ; # ルーブルࣦݼ.͆
+.F; .f; [C2]; xn--1ug.f; ; .f; [A4_2] # .f
+.f; ; [C2]; xn--1ug.f; ; .f; [A4_2] # .f
+.f; ; [X4_2]; ; [A4_2]; ; # .f
+xn--1ug.f; .f; [C2]; xn--1ug.f; ; ; # .f
+f; ; ; ; ; ; # f
+㨲。ß; 㨲.ß; [C2]; xn--1ug914h.xn--zca; ; xn--9bm.ss; [] # 㨲.ß
+㨲。ß; 㨲.ß; [C2]; xn--1ug914h.xn--zca; ; xn--9bm.ss; [] # 㨲.ß
+㨲。SS; 㨲.ss; [C2]; xn--1ug914h.ss; ; xn--9bm.ss; [] # 㨲.ss
+㨲。ss; 㨲.ss; [C2]; xn--1ug914h.ss; ; xn--9bm.ss; [] # 㨲.ss
+㨲。Ss; 㨲.ss; [C2]; xn--1ug914h.ss; ; xn--9bm.ss; [] # 㨲.ss
+xn--9bm.ss; 㨲.ss; ; xn--9bm.ss; ; ; # 㨲.ss
+㨲.ss; ; ; xn--9bm.ss; ; ; # 㨲.ss
+㨲.SS; 㨲.ss; ; xn--9bm.ss; ; ; # 㨲.ss
+㨲.Ss; 㨲.ss; ; xn--9bm.ss; ; ; # 㨲.ss
+xn--1ug914h.ss; 㨲.ss; [C2]; xn--1ug914h.ss; ; ; # 㨲.ss
+xn--1ug914h.xn--zca; 㨲.ß; [C2]; xn--1ug914h.xn--zca; ; ; # 㨲.ß
+㨲。SS; 㨲.ss; [C2]; xn--1ug914h.ss; ; xn--9bm.ss; [] # 㨲.ss
+㨲。ss; 㨲.ss; [C2]; xn--1ug914h.ss; ; xn--9bm.ss; [] # 㨲.ss
+㨲。Ss; 㨲.ss; [C2]; xn--1ug914h.ss; ; xn--9bm.ss; [] # 㨲.ss
+پ。ࢨ; پ.ࢨ; [B1, P1, V6]; xn--nfb6v.xn--xyb; ; ; # پ.ࢨ
+پ。ࢨ; پ.ࢨ; [B1, P1, V6]; xn--nfb6v.xn--xyb; ; ; # پ.ࢨ
+xn--nfb6v.xn--xyb; پ.ࢨ; [B1, V6]; xn--nfb6v.xn--xyb; ; ; # پ.ࢨ
+⾑ݓ𞤁。𐹵ڂ; 襾ݓ𞤣.𐹵ڂ; [B1, B5, B6]; xn--6ob9577deqwl.xn--7ib5526k; ; ; # 襾ݓ𞤣.𐹵ڂ
+襾ݓ𞤁。𐹵ڂ; 襾ݓ𞤣.𐹵ڂ; [B1, B5, B6]; xn--6ob9577deqwl.xn--7ib5526k; ; ; # 襾ݓ𞤣.𐹵ڂ
+襾ݓ𞤣。𐹵ڂ; 襾ݓ𞤣.𐹵ڂ; [B1, B5, B6]; xn--6ob9577deqwl.xn--7ib5526k; ; ; # 襾ݓ𞤣.𐹵ڂ
+xn--6ob9577deqwl.xn--7ib5526k; 襾ݓ𞤣.𐹵ڂ; [B1, B5, B6];
xn--6ob9577deqwl.xn--7ib5526k; ; ; # 襾ݓ𞤣.𐹵ڂ
+⾑ݓ𞤣。𐹵ڂ; 襾ݓ𞤣.𐹵ڂ; [B1, B5, B6]; xn--6ob9577deqwl.xn--7ib5526k; ; ; # 襾ݓ𞤣.𐹵ڂ
+ς-⃫。ݔ-ꡛ; ς-⃫.ݔ-ꡛ; [B2, B3, B6, P1, V6]; xn----xmb015tuo34l.xn----53c4874j; ;
xn----zmb705tuo34l.xn----53c4874j; # ς-⃫.ݔ-ꡛ
+ς-⃫。ݔ-ꡛ; ς-⃫.ݔ-ꡛ; [B2, B3, B6, P1, V6]; xn----xmb015tuo34l.xn----53c4874j; ;
xn----zmb705tuo34l.xn----53c4874j; # ς-⃫.ݔ-ꡛ
+Σ-⃫。ݔ-ꡛ; σ-⃫.ݔ-ꡛ; [B2, B3, B6, P1, V6]; xn----zmb705tuo34l.xn----53c4874j; ;
; # σ-⃫.ݔ-ꡛ
+σ-⃫。ݔ-ꡛ; σ-⃫.ݔ-ꡛ; [B2, B3, B6, P1, V6]; xn----zmb705tuo34l.xn----53c4874j; ;
; # σ-⃫.ݔ-ꡛ
+xn----zmb705tuo34l.xn----53c4874j; σ-⃫.ݔ-ꡛ; [B2, B3, B6, V6];
xn----zmb705tuo34l.xn----53c4874j; ; ; # σ-⃫.ݔ-ꡛ
+xn----xmb015tuo34l.xn----53c4874j; ς-⃫.ݔ-ꡛ; [B2, B3, B6, V6];
xn----xmb015tuo34l.xn----53c4874j; ; ; # ς-⃫.ݔ-ꡛ
+Σ-⃫。ݔ-ꡛ; σ-⃫.ݔ-ꡛ; [B2, B3, B6, P1, V6]; xn----zmb705tuo34l.xn----53c4874j; ;
; # σ-⃫.ݔ-ꡛ
+σ-⃫。ݔ-ꡛ; σ-⃫.ݔ-ꡛ; [B2, B3, B6, P1, V6]; xn----zmb705tuo34l.xn----53c4874j; ;
; # σ-⃫.ݔ-ꡛ
+.; .; [C2, P1, V6]; xn--1ug.xn--h327f; ; .xn--h327f; [P1, V6, A4_2] # .
+.; ; [C2, P1, V6]; xn--1ug.xn--h327f; ; .xn--h327f; [P1, V6, A4_2] # .
+.xn--h327f; .; [V6, X4_2]; .xn--h327f; [V6, A4_2]; ; # .
+xn--1ug.xn--h327f; .; [C2, V6]; xn--1ug.xn--h327f; ; ; # .
+。≠𝟲; .≠6; [P1, V6]; xn--h79w4z99a.xn--6-tfo; ; ; # .≠6
+。≠𝟲; .≠6; [P1, V6]; xn--h79w4z99a.xn--6-tfo; ; ; # .≠6
+。≠6; .≠6; [P1, V6]; xn--h79w4z99a.xn--6-tfo; ; ; # .≠6
+。≠6; .≠6; [P1, V6]; xn--h79w4z99a.xn--6-tfo; ; ; # .≠6
+xn--h79w4z99a.xn--6-tfo; .≠6; [V6]; xn--h79w4z99a.xn--6-tfo; ; ; # .≠6
+󠅊ᡭ.; ᡭ.; [B6, C2, P1, V6]; xn--98e810b.xn--om9c; ; xn--98e.xn--om9c; [P1,
V6] # ᡭ.
+xn--98e.xn--om9c; ᡭ.; [V6]; xn--98e.xn--om9c; ; ; # ᡭ.
+xn--98e810b.xn--om9c; ᡭ.; [B6, C2, V6]; xn--98e810b.xn--om9c; ; ; # ᡭ.
+ీࡕ𑄴.; ీࡕ𑄴.; [B1, P1, V5, V6]; xn--kwb91r5112avtg.xn--o580f; ; ; # ీࡕ𑄴.
+ీࡕ𑄴.; ; [B1, P1, V5, V6]; xn--kwb91r5112avtg.xn--o580f; ; ; # ీࡕ𑄴.
+xn--kwb91r5112avtg.xn--o580f; ీࡕ𑄴.; [B1, V5, V6];
xn--kwb91r5112avtg.xn--o580f; ; ; # ీࡕ𑄴.
+𞤮。𑇊≯᳦; 𞤮.𑇊≯᳦; [B1, C1, P1, V5, V6]; xn--me6h.xn--z6f16kn9b2642b; ;
xn--me6h.xn--z6fz8ueq2v; [B1, P1, V5, V6] # 𞤮.𑇊≯᳦
+𞤮。𑇊≯᳦; 𞤮.𑇊≯᳦; [B1, C1, P1, V5, V6]; xn--me6h.xn--z6f16kn9b2642b; ;
xn--me6h.xn--z6fz8ueq2v; [B1, P1, V5, V6] # 𞤮.𑇊≯᳦
+𞤌。𑇊≯᳦; 𞤮.𑇊≯᳦; [B1, C1, P1, V5, V6]; xn--me6h.xn--z6f16kn9b2642b; ;
xn--me6h.xn--z6fz8ueq2v; [B1, P1, V5, V6] # 𞤮.𑇊≯᳦
+𞤌。𑇊≯᳦; 𞤮.𑇊≯᳦; [B1, C1, P1, V5, V6]; xn--me6h.xn--z6f16kn9b2642b; ;
xn--me6h.xn--z6fz8ueq2v; [B1, P1, V5, V6] # 𞤮.𑇊≯᳦
+xn--me6h.xn--z6fz8ueq2v; 𞤮.𑇊≯᳦; [B1, V5, V6]; xn--me6h.xn--z6fz8ueq2v; ; ; #
𞤮.𑇊≯᳦
+xn--me6h.xn--z6f16kn9b2642b; 𞤮.𑇊≯᳦; [B1, C1, V5, V6];
xn--me6h.xn--z6f16kn9b2642b; ; ; # 𞤮.𑇊≯᳦
+󠄀𝟕.𞤌Ⴉ; 7.𞤮Ⴉ; [B1, B2, B3, P1, V6]; 7.xn--hnd3403vv1vv; ; ; # 7.𞤮Ⴉ
+󠄀7.𞤌Ⴉ; 7.𞤮Ⴉ; [B1, B2, B3, P1, V6]; 7.xn--hnd3403vv1vv; ; ; # 7.𞤮Ⴉ
+󠄀7.𞤮ⴉ; 7.𞤮ⴉ; [B1, B2, B3, P1, V6]; 7.xn--0kjz523lv1vv; ; ; # 7.𞤮ⴉ
+7.xn--0kjz523lv1vv; 7.𞤮ⴉ; [B1, B2, B3, V6]; 7.xn--0kjz523lv1vv; ; ; # 7.𞤮ⴉ
+7.xn--hnd3403vv1vv; 7.𞤮Ⴉ; [B1, B2, B3, V6]; 7.xn--hnd3403vv1vv; ; ; # 7.𞤮Ⴉ
+󠄀𝟕.𞤮ⴉ; 7.𞤮ⴉ; [B1, B2, B3, P1, V6]; 7.xn--0kjz523lv1vv; ; ; # 7.𞤮ⴉ
+󠄀7.𞤌ⴉ; 7.𞤮ⴉ; [B1, B2, B3, P1, V6]; 7.xn--0kjz523lv1vv; ; ; # 7.𞤮ⴉ
+󠄀𝟕.𞤌ⴉ; 7.𞤮ⴉ; [B1, B2, B3, P1, V6]; 7.xn--0kjz523lv1vv; ; ; # 7.𞤮ⴉ
+閃9𝩍。Ↄ٩ࢱ୍; 閃9𝩍.Ↄ٩ࢱ୍; [B5, B6, P1, V6]; xn--9-3j6dk517f.xn--iib28ij3c0t9a; ; ;
# 閃9𝩍.Ↄ٩ࢱ୍
+閃9𝩍。ↄ٩ࢱ୍; 閃9𝩍.ↄ٩ࢱ୍; [B5, B6]; xn--9-3j6dk517f.xn--iib28ij3c4t9a; ; ; #
閃9𝩍.ↄ٩ࢱ୍
+xn--9-3j6dk517f.xn--iib28ij3c4t9a; 閃9𝩍.ↄ٩ࢱ୍; [B5, B6];
xn--9-3j6dk517f.xn--iib28ij3c4t9a; ; ; # 閃9𝩍.ↄ٩ࢱ୍
+xn--9-3j6dk517f.xn--iib28ij3c0t9a; 閃9𝩍.Ↄ٩ࢱ୍; [B5, B6, V6];
xn--9-3j6dk517f.xn--iib28ij3c0t9a; ; ; # 閃9𝩍.Ↄ٩ࢱ୍
+꫶ᢏฺ2.𐋢݅ྟ︒; ꫶ᢏฺ2.𐋢݅ྟ︒; [P1, V5, V6]; xn--2-2zf840fk16m.xn--sob093bj62sz9d; ; ;
# ꫶ᢏฺ2.𐋢݅ྟ︒
+꫶ᢏฺ2.𐋢݅ྟ。; ꫶ᢏฺ2.𐋢݅ྟ.; [V5]; xn--2-2zf840fk16m.xn--sob093b2m7s.; ; ; #
꫶ᢏฺ2.𐋢݅ྟ.
+xn--2-2zf840fk16m.xn--sob093b2m7s.; ꫶ᢏฺ2.𐋢݅ྟ.; [V5];
xn--2-2zf840fk16m.xn--sob093b2m7s.; ; ; # ꫶ᢏฺ2.𐋢݅ྟ.
+xn--2-2zf840fk16m.xn--sob093bj62sz9d; ꫶ᢏฺ2.𐋢݅ྟ︒; [V5, V6];
xn--2-2zf840fk16m.xn--sob093bj62sz9d; ; ; # ꫶ᢏฺ2.𐋢݅ྟ︒
+。≠-⾛; .≠-走; [P1, V6]; xn--gm57d.xn----tfo4949b3664m; ; ; # .≠-走
+。≠-⾛; .≠-走; [P1, V6]; xn--gm57d.xn----tfo4949b3664m; ; ; # .≠-走
+。≠-走; .≠-走; [P1, V6]; xn--gm57d.xn----tfo4949b3664m; ; ; # .≠-走
+。≠-走; .≠-走; [P1, V6]; xn--gm57d.xn----tfo4949b3664m; ; ; # .≠-走
+xn--gm57d.xn----tfo4949b3664m; .≠-走; [V6]; xn--gm57d.xn----tfo4949b3664m; ;
; # .≠-走
+ݮႪ。-≠ᅠ; ݮႪ.-≠ᅠ; [B1, B2, B3, P1, V3, V6]; xn--mfb73ex6r.xn----5bh589i; ; ;
# ݮႪ.-≠
+ݮႪ。-≠ᅠ; ݮႪ.-≠ᅠ; [B1, B2, B3, P1, V3, V6]; xn--mfb73ex6r.xn----5bh589i; ; ;
# ݮႪ.-≠
+ݮⴊ。-≠ᅠ; ݮⴊ.-≠ᅠ; [B1, B2, B3, P1, V3, V6]; xn--mfb73ek93f.xn----5bh589i; ; ;
# ݮⴊ.-≠
+ݮⴊ。-≠ᅠ; ݮⴊ.-≠ᅠ; [B1, B2, B3, P1, V3, V6]; xn--mfb73ek93f.xn----5bh589i; ; ;
# ݮⴊ.-≠
+xn--mfb73ek93f.xn----5bh589i; ݮⴊ.-≠ᅠ; [B1, B2, B3, V3, V6];
xn--mfb73ek93f.xn----5bh589i; ; ; # ݮⴊ.-≠
+xn--mfb73ex6r.xn----5bh589i; ݮႪ.-≠ᅠ; [B1, B2, B3, V3, V6];
xn--mfb73ex6r.xn----5bh589i; ; ; # ݮႪ.-≠
+ﭏ𐹧𝟒≯。; אל𐹧4≯.; [B1, B3, B4, C1, P1, V6]; xn--4-zhc0by36txt0w.xn--0ug; ;
xn--4-zhc0by36txt0w.; [B3, B4, P1, V6] # אל𐹧4≯.
+ﭏ𐹧𝟒≯。; אל𐹧4≯.; [B1, B3, B4, C1, P1, V6]; xn--4-zhc0by36txt0w.xn--0ug; ;
xn--4-zhc0by36txt0w.; [B3, B4, P1, V6] # אל𐹧4≯.
+אל𐹧4≯。; אל𐹧4≯.; [B1, B3, B4, C1, P1, V6]; xn--4-zhc0by36txt0w.xn--0ug; ;
xn--4-zhc0by36txt0w.; [B3, B4, P1, V6] # אל𐹧4≯.
+אל𐹧4≯。; אל𐹧4≯.; [B1, B3, B4, C1, P1, V6]; xn--4-zhc0by36txt0w.xn--0ug; ;
xn--4-zhc0by36txt0w.; [B3, B4, P1, V6] # אל𐹧4≯.
+xn--4-zhc0by36txt0w.; אל𐹧4≯.; [B3, B4, V6]; xn--4-zhc0by36txt0w.; ; ; # אל𐹧4≯.
+xn--4-zhc0by36txt0w.xn--0ug; אל𐹧4≯.; [B1, B3, B4, C1, V6];
xn--4-zhc0by36txt0w.xn--0ug; ; ; # אל𐹧4≯.
+𝟎。甯; 0.甯; ; 0.xn--qny; ; ; # 0.甯
+0。甯; 0.甯; ; 0.xn--qny; ; ; # 0.甯
+0.xn--qny; 0.甯; ; 0.xn--qny; ; ; # 0.甯
+0.甯; ; ; 0.xn--qny; ; ; # 0.甯
+-⾆.꫶; -舌.꫶; [V3, V5]; xn----ef8c.xn--2v9a; ; ; # -舌.꫶
+-舌.꫶; ; [V3, V5]; xn----ef8c.xn--2v9a; ; ; # -舌.꫶
+xn----ef8c.xn--2v9a; -舌.꫶; [V3, V5]; xn----ef8c.xn--2v9a; ; ; # -舌.꫶
+-。ᢘ; -.ᢘ; [V3]; -.xn--ibf; ; ; # -.ᢘ
+-。ᢘ; -.ᢘ; [V3]; -.xn--ibf; ; ; # -.ᢘ
+-.xn--ibf; -.ᢘ; [V3]; -.xn--ibf; ; ; # -.ᢘ
+🂴Ⴋ.≮; ; [P1, V6]; xn--jnd1986v.xn--gdh; ; ; # 🂴Ⴋ.≮
+🂴Ⴋ.≮; 🂴Ⴋ.≮; [P1, V6]; xn--jnd1986v.xn--gdh; ; ; # 🂴Ⴋ.≮
+🂴ⴋ.≮; 🂴ⴋ.≮; [P1, V6]; xn--2kj7565l.xn--gdh; ; ; # 🂴ⴋ.≮
+🂴ⴋ.≮; ; [P1, V6]; xn--2kj7565l.xn--gdh; ; ; # 🂴ⴋ.≮
+xn--2kj7565l.xn--gdh; 🂴ⴋ.≮; [V6]; xn--2kj7565l.xn--gdh; ; ; # 🂴ⴋ.≮
+xn--jnd1986v.xn--gdh; 🂴Ⴋ.≮; [V6]; xn--jnd1986v.xn--gdh; ; ; # 🂴Ⴋ.≮
+璼𝨭。󠇟; 璼𝨭.; [C1]; xn--gky8837e.xn--0ug; ; xn--gky8837e.; [] # 璼𝨭.
+璼𝨭。󠇟; 璼𝨭.; [C1]; xn--gky8837e.xn--0ug; ; xn--gky8837e.; [] # 璼𝨭.
+xn--gky8837e.; 璼𝨭.; ; xn--gky8837e.; ; ; # 璼𝨭.
+璼𝨭.; ; ; xn--gky8837e.; ; ; # 璼𝨭.
+xn--gky8837e.xn--0ug; 璼𝨭.; [C1]; xn--gky8837e.xn--0ug; ; ; # 璼𝨭.
+٩8。-5🞥; ٩8.-5🞥; [B1, P1, V3, V6]; xn--8-qqc97891f.xn---5-rp92a; ; ; # ٩8.-5🞥
+٩8。-5🞥; ٩8.-5🞥; [B1, P1, V3, V6]; xn--8-qqc97891f.xn---5-rp92a; ; ; # ٩8.-5🞥
+xn--8-qqc97891f.xn---5-rp92a; ٩8.-5🞥; [B1, V3, V6];
xn--8-qqc97891f.xn---5-rp92a; ; ; # ٩8.-5🞥
+.; ; [C1]; xn--0ug.xn--0ug; ; .; [A4_2] # .
+xn--0ug.xn--0ug; .; [C1]; xn--0ug.xn--0ug; ; ; # .
+튛.ܖ; ; [B1, C2]; xn--1ug4441e.xn--gnb; ; xn--157b.xn--gnb; [] # 튛.ܖ
+튛.ܖ; 튛.ܖ; [B1, C2]; xn--1ug4441e.xn--gnb; ; xn--157b.xn--gnb; [] # 튛.ܖ
+xn--157b.xn--gnb; 튛.ܖ; ; xn--157b.xn--gnb; ; ; # 튛.ܖ
+튛.ܖ; ; ; xn--157b.xn--gnb; ; ; # 튛.ܖ
+튛.ܖ; 튛.ܖ; ; xn--157b.xn--gnb; ; ; # 튛.ܖ
+xn--1ug4441e.xn--gnb; 튛.ܖ; [B1, C2]; xn--1ug4441e.xn--gnb; ; ; # 튛.ܖ
+ᡋ𐹰.ݹⴞ; ; [B2, B3, B5, B6, P1, V6]; xn--b8e0417jocvf.xn--9pb883q; ; ; # ᡋ𐹰.ݹⴞ
+ᡋ𐹰.ݹႾ; ; [B2, B3, B5, B6, P1, V6]; xn--b8e0417jocvf.xn--9pb068b; ; ; # ᡋ𐹰.ݹႾ
+xn--b8e0417jocvf.xn--9pb068b; ᡋ𐹰.ݹႾ; [B2, B3, B5, B6, V6];
xn--b8e0417jocvf.xn--9pb068b; ; ; # ᡋ𐹰.ݹႾ
+xn--b8e0417jocvf.xn--9pb883q; ᡋ𐹰.ݹⴞ; [B2, B3, B5, B6, V6];
xn--b8e0417jocvf.xn--9pb883q; ; ; # ᡋ𐹰.ݹⴞ
+٢𝅻𝟧.𐹮𐹬Ⴇ; ٢𝅻5.𐹮𐹬Ⴇ; [B1, B4, P1, V6]; xn--5-cqc8833rhv7f.xn--fnd3401kfa; ; ;
# ٢𝅻5.𐹮𐹬Ⴇ
+٢𝅻5.𐹮𐹬Ⴇ; ; [B1, B4, P1, V6]; xn--5-cqc8833rhv7f.xn--fnd3401kfa; ; ; # ٢𝅻5.𐹮𐹬Ⴇ
+٢𝅻5.𐹮𐹬ⴇ; ; [B1, B4, P1, V6]; xn--5-cqc8833rhv7f.xn--ykjz523efa; ; ; # ٢𝅻5.𐹮𐹬ⴇ
+xn--5-cqc8833rhv7f.xn--ykjz523efa; ٢𝅻5.𐹮𐹬ⴇ; [B1, B4, V6];
xn--5-cqc8833rhv7f.xn--ykjz523efa; ; ; # ٢𝅻5.𐹮𐹬ⴇ
+xn--5-cqc8833rhv7f.xn--fnd3401kfa; ٢𝅻5.𐹮𐹬Ⴇ; [B1, B4, V6];
xn--5-cqc8833rhv7f.xn--fnd3401kfa; ; ; # ٢𝅻5.𐹮𐹬Ⴇ
+٢𝅻𝟧.𐹮𐹬ⴇ; ٢𝅻5.𐹮𐹬ⴇ; [B1, B4, P1, V6]; xn--5-cqc8833rhv7f.xn--ykjz523efa; ; ;
# ٢𝅻5.𐹮𐹬ⴇ
+Ⴗ.𑄴ׂꦷ; Ⴗ.𑄴ׂꦷ; [P1, V5, V6]; xn--vnd.xn--qdb0605f14ycrms3c; ; ; # Ⴗ.𑄴ׂꦷ
+Ⴗ.𑄴ׂꦷ; Ⴗ.𑄴ׂꦷ; [P1, V5, V6]; xn--vnd.xn--qdb0605f14ycrms3c; ; ; # Ⴗ.𑄴ׂꦷ
+Ⴗ.𑄴ׂꦷ; ; [P1, V5, V6]; xn--vnd.xn--qdb0605f14ycrms3c; ; ; # Ⴗ.𑄴ׂꦷ
+ⴗ.𑄴ׂꦷ; ; [P1, V5, V6]; xn--flj.xn--qdb0605f14ycrms3c; ; ; # ⴗ.𑄴ׂꦷ
+xn--flj.xn--qdb0605f14ycrms3c; ⴗ.𑄴ׂꦷ; [V5, V6];
xn--flj.xn--qdb0605f14ycrms3c; ; ; # ⴗ.𑄴ׂꦷ
+xn--vnd.xn--qdb0605f14ycrms3c; Ⴗ.𑄴ׂꦷ; [V5, V6];
xn--vnd.xn--qdb0605f14ycrms3c; ; ; # Ⴗ.𑄴ׂꦷ
+ⴗ.𑄴ׂꦷ; ⴗ.𑄴ׂꦷ; [P1, V5, V6]; xn--flj.xn--qdb0605f14ycrms3c; ; ; # ⴗ.𑄴ׂꦷ
+ⴗ.𑄴ׂꦷ; ⴗ.𑄴ׂꦷ; [P1, V5, V6]; xn--flj.xn--qdb0605f14ycrms3c; ; ; # ⴗ.𑄴ׂꦷ
+𝟾.٬; 8.٬; [B1, B5, B6, P1, V6]; xn--8-kh23b.xn--lib78461i; ; ; # 8.٬
+8.٬; ; [B1, B5, B6, P1, V6]; xn--8-kh23b.xn--lib78461i; ; ; # 8.٬
+xn--8-kh23b.xn--lib78461i; 8.٬; [B1, B5, B6, V6]; xn--8-kh23b.xn--lib78461i;
; ; # 8.٬
+⒈酫︒。ࣖ; ⒈酫︒.ࣖ; [P1, V5, V6]; xn--tsh4490bfe8c.xn--8zb; ; ; # ⒈酫︒.ࣖ
+1.酫。。ࣖ; 1.酫..ࣖ; [V5, X4_2]; 1.xn--8j4a..xn--8zb; [V5, A4_2]; ; # 1.酫..ࣖ
+1.xn--8j4a..xn--8zb; 1.酫..ࣖ; [V5, X4_2]; 1.xn--8j4a..xn--8zb; [V5, A4_2]; ; #
1.酫..ࣖ
+xn--tsh4490bfe8c.xn--8zb; ⒈酫︒.ࣖ; [V5, V6]; xn--tsh4490bfe8c.xn--8zb; ; ; #
⒈酫︒.ࣖ
+ⷣ≮ᩫ.ฺ; ; [C1, P1, V5, V6]; xn--uof63xk4bf3s.xn--o4c732g; ;
xn--uof548an0j.xn--o4c; [P1, V5, V6] # ⷣ≮ᩫ.ฺ
+ⷣ≮ᩫ.ฺ; ⷣ≮ᩫ.ฺ; [C1, P1, V5, V6]; xn--uof63xk4bf3s.xn--o4c732g; ;
xn--uof548an0j.xn--o4c; [P1, V5, V6] # ⷣ≮ᩫ.ฺ
+xn--uof548an0j.xn--o4c; ⷣ≮ᩫ.ฺ; [V5, V6]; xn--uof548an0j.xn--o4c; ; ; # ⷣ≮ᩫ.ฺ
+xn--uof63xk4bf3s.xn--o4c732g; ⷣ≮ᩫ.ฺ; [C1, V5, V6];
xn--uof63xk4bf3s.xn--o4c732g; ; ; # ⷣ≮ᩫ.ฺ
+。ႷႽ¹; .ႷႽ1; [B6, C2, P1, V6]; xn--co6h.xn--1-h1gs597m; ;
xn--co6h.xn--1-h1gs; [P1, V6] # .ႷႽ1
+。ႷႽ1; .ႷႽ1; [B6, C2, P1, V6]; xn--co6h.xn--1-h1gs597m; ;
xn--co6h.xn--1-h1gs; [P1, V6] # .ႷႽ1
+。ⴗⴝ1; .ⴗⴝ1; [B6, C2, P1, V6]; xn--co6h.xn--1-ugn710dya; ;
xn--co6h.xn--1-kwssa; [P1, V6] # .ⴗⴝ1
+。Ⴗⴝ1; .Ⴗⴝ1; [B6, C2, P1, V6]; xn--co6h.xn--1-h1g398iewm; ;
xn--co6h.xn--1-h1g429s; [P1, V6] # .Ⴗⴝ1
+xn--co6h.xn--1-h1g429s; .Ⴗⴝ1; [V6]; xn--co6h.xn--1-h1g429s; ; ; # .Ⴗⴝ1
+xn--co6h.xn--1-h1g398iewm; .Ⴗⴝ1; [B6, C2, V6]; xn--co6h.xn--1-h1g398iewm; ;
; # .Ⴗⴝ1
+xn--co6h.xn--1-kwssa; .ⴗⴝ1; [V6]; xn--co6h.xn--1-kwssa; ; ; # .ⴗⴝ1
+xn--co6h.xn--1-ugn710dya; .ⴗⴝ1; [B6, C2, V6]; xn--co6h.xn--1-ugn710dya; ; ;
# .ⴗⴝ1
+xn--co6h.xn--1-h1gs; .ႷႽ1; [V6]; xn--co6h.xn--1-h1gs; ; ; # .ႷႽ1
+xn--co6h.xn--1-h1gs597m; .ႷႽ1; [B6, C2, V6]; xn--co6h.xn--1-h1gs597m; ; ; #
.ႷႽ1
+。ⴗⴝ¹; .ⴗⴝ1; [B6, C2, P1, V6]; xn--co6h.xn--1-ugn710dya; ;
xn--co6h.xn--1-kwssa; [P1, V6] # .ⴗⴝ1
+。Ⴗⴝ¹; .Ⴗⴝ1; [B6, C2, P1, V6]; xn--co6h.xn--1-h1g398iewm; ;
xn--co6h.xn--1-h1g429s; [P1, V6] # .Ⴗⴝ1
+𑄴𑄳2.-; ; [B1, B3, P1, V3, V5, V6]; xn--2-h87ic.xn----s39r33498d; ; ; # 𑄴𑄳2.-
+xn--2-h87ic.xn----s39r33498d; 𑄴𑄳2.-; [B1, B3, V3, V5, V6];
xn--2-h87ic.xn----s39r33498d; ; ; # 𑄴𑄳2.-
+٥。𑄳𞤃ܐ; ٥.𑄳𞤥ܐ; [B1, B5, B6, P1, V6];
xn--eib57614py3ea.xn--9mb5737kqnpfzkwr; ; ; # ٥.𑄳𞤥ܐ
+٥。𑄳𞤃ܐ; ٥.𑄳𞤥ܐ; [B1, B5, B6, P1, V6];
xn--eib57614py3ea.xn--9mb5737kqnpfzkwr; ; ; # ٥.𑄳𞤥ܐ
+٥。𑄳𞤥ܐ; ٥.𑄳𞤥ܐ; [B1, B5, B6, P1, V6];
xn--eib57614py3ea.xn--9mb5737kqnpfzkwr; ; ; # ٥.𑄳𞤥ܐ
+xn--eib57614py3ea.xn--9mb5737kqnpfzkwr; ٥.𑄳𞤥ܐ; [B1, B5, B6, V6];
xn--eib57614py3ea.xn--9mb5737kqnpfzkwr; ; ; # ٥.𑄳𞤥ܐ
+٥。𑄳𞤥ܐ; ٥.𑄳𞤥ܐ; [B1, B5, B6, P1, V6];
xn--eib57614py3ea.xn--9mb5737kqnpfzkwr; ; ; # ٥.𑄳𞤥ܐ
+ܠ𐹢ុ。ςᢈ🝭; ܠ𐹢ុ.ςᢈ🝭; [B2, B6, C1, P1, V6];
xn--qnb616fis0qzt36f.xn--3xa057h6ofgl44c; ;
xn--qnb616fis0qzt36f.xn--4xa847hli46a; [B2, B6, P1, V6] # ܠ𐹢ុ.ςᢈ🝭
+ܠ𐹢ុ。ςᢈ🝭; ܠ𐹢ុ.ςᢈ🝭; [B2, B6, C1, P1, V6];
xn--qnb616fis0qzt36f.xn--3xa057h6ofgl44c; ;
xn--qnb616fis0qzt36f.xn--4xa847hli46a; [B2, B6, P1, V6] # ܠ𐹢ុ.ςᢈ🝭
+ܠ𐹢ុ。Σᢈ🝭; ܠ𐹢ុ.σᢈ🝭; [B2, B6, C1, P1, V6];
xn--qnb616fis0qzt36f.xn--4xa847h6ofgl44c; ;
xn--qnb616fis0qzt36f.xn--4xa847hli46a; [B2, B6, P1, V6] # ܠ𐹢ុ.σᢈ🝭
+ܠ𐹢ុ。σᢈ🝭; ܠ𐹢ុ.σᢈ🝭; [B2, B6, C1, P1, V6];
xn--qnb616fis0qzt36f.xn--4xa847h6ofgl44c; ;
xn--qnb616fis0qzt36f.xn--4xa847hli46a; [B2, B6, P1, V6] # ܠ𐹢ុ.σᢈ🝭
+xn--qnb616fis0qzt36f.xn--4xa847hli46a; ܠ𐹢ុ.σᢈ🝭; [B2, B6, V6];
xn--qnb616fis0qzt36f.xn--4xa847hli46a; ; ; # ܠ𐹢ុ.σᢈ🝭
+xn--qnb616fis0qzt36f.xn--4xa847h6ofgl44c; ܠ𐹢ុ.σᢈ🝭; [B2, B6, C1, V6];
xn--qnb616fis0qzt36f.xn--4xa847h6ofgl44c; ; ; # ܠ𐹢ុ.σᢈ🝭
+xn--qnb616fis0qzt36f.xn--3xa057h6ofgl44c; ܠ𐹢ុ.ςᢈ🝭; [B2, B6, C1, V6];
xn--qnb616fis0qzt36f.xn--3xa057h6ofgl44c; ; ; # ܠ𐹢ុ.ςᢈ🝭
+ܠ𐹢ុ。Σᢈ🝭; ܠ𐹢ុ.σᢈ🝭; [B2, B6, C1, P1, V6];
xn--qnb616fis0qzt36f.xn--4xa847h6ofgl44c; ;
xn--qnb616fis0qzt36f.xn--4xa847hli46a; [B2, B6, P1, V6] # ܠ𐹢ុ.σᢈ🝭
+ܠ𐹢ុ。σᢈ🝭; ܠ𐹢ុ.σᢈ🝭; [B2, B6, C1, P1, V6];
xn--qnb616fis0qzt36f.xn--4xa847h6ofgl44c; ;
xn--qnb616fis0qzt36f.xn--4xa847hli46a; [B2, B6, P1, V6] # ܠ𐹢ុ.σᢈ🝭
+--≮。𐹧; --≮.𐹧; [B1, C2, P1, V6]; xn-----l1tz1k.xn--fo0d; ;
xn-----ujv.xn--fo0d; [B1, P1, V3, V6] # --≮.𐹧
+--≮。𐹧; --≮.𐹧; [B1, C2, P1, V6]; xn-----l1tz1k.xn--fo0d; ;
xn-----ujv.xn--fo0d; [B1, P1, V3, V6] # --≮.𐹧
+xn-----ujv.xn--fo0d; --≮.𐹧; [B1, V3, V6]; xn-----ujv.xn--fo0d; ; ; # --≮.𐹧
+xn-----l1tz1k.xn--fo0d; --≮.𐹧; [B1, C2, V6]; xn-----l1tz1k.xn--fo0d; ; ; #
--≮.𐹧
+꠆。ྰ⒕; ꠆.ྰ⒕; [P1, V5, V6]; xn--l98a.xn--dgd218hhp28d; ; ; # ꠆.ྰ⒕
+꠆。ྰ14.; ꠆.ྰ14.; [P1, V5, V6]; xn--l98a.xn--14-jsj57880f.; ; ; # ꠆.ྰ14.
+xn--l98a.xn--14-jsj57880f.; ꠆.ྰ14.; [V5, V6]; xn--l98a.xn--14-jsj57880f.; ; ;
# ꠆.ྰ14.
+xn--l98a.xn--dgd218hhp28d; ꠆.ྰ⒕; [V5, V6]; xn--l98a.xn--dgd218hhp28d; ; ; #
꠆.ྰ⒕
+ڼ.𑆺٩; ڼ.𑆺٩; [B1, B5, B6, P1, V5, V6]; xn--vkb92243l.xn--iib9797k; ; ; # ڼ.𑆺٩
+ڼ.𑆺٩; ; [B1, B5, B6, P1, V5, V6]; xn--vkb92243l.xn--iib9797k; ; ; # ڼ.𑆺٩
+xn--vkb92243l.xn--iib9797k; ڼ.𑆺٩; [B1, B5, B6, V5, V6];
xn--vkb92243l.xn--iib9797k; ; ; # ڼ.𑆺٩
+ې-。𞤴; ې-.𞤴; [B1, P1, V3, V6]; xn----mwc72685y.xn--se6h; ; ; # ې-.𞤴
+ې-。𞤒; ې-.𞤴; [B1, P1, V3, V6]; xn----mwc72685y.xn--se6h; ; ; # ې-.𞤴
+xn----mwc72685y.xn--se6h; ې-.𞤴; [B1, V3, V6]; xn----mwc72685y.xn--se6h; ; ;
# ې-.𞤴
+𝟠4󠇗𝈻.𐋵⛧; 84𝈻.𐋵⛧; [C2]; xn--84-s850a.xn--1uga573cfq1w; ;
xn--84-s850a.xn--59h6326e; [] # 84𝈻.𐋵⛧
+84󠇗𝈻.𐋵⛧; 84𝈻.𐋵⛧; [C2]; xn--84-s850a.xn--1uga573cfq1w; ;
xn--84-s850a.xn--59h6326e; [] # 84𝈻.𐋵⛧
+xn--84-s850a.xn--59h6326e; 84𝈻.𐋵⛧; ; xn--84-s850a.xn--59h6326e; ; ; # 84𝈻.𐋵⛧
+84𝈻.𐋵⛧; ; ; xn--84-s850a.xn--59h6326e; ; ; # 84𝈻.𐋵⛧
+xn--84-s850a.xn--1uga573cfq1w; 84𝈻.𐋵⛧; [C2]; xn--84-s850a.xn--1uga573cfq1w;
; ; # 84𝈻.𐋵⛧
+-。ᡪ; -.ᡪ; [B1, P1, V3, V6]; xn----tkc.xn--68e; ; ; # -.ᡪ
+-。ᡪ; -.ᡪ; [B1, P1, V3, V6]; xn----tkc.xn--68e; ; ; # -.ᡪ
+xn----tkc.xn--68e; -.ᡪ; [B1, V3, V6]; xn----tkc.xn--68e; ; ; # -.ᡪ
+≮𝟕.謖ß≯; ≮7.謖ß≯; [P1, V6]; xn--7-mgo.xn--zca892oly5e; ;
xn--7-mgo.xn--ss-xjvv174c; # ≮7.謖ß≯
+≮𝟕.謖ß≯; ≮7.謖ß≯; [P1, V6]; xn--7-mgo.xn--zca892oly5e; ;
xn--7-mgo.xn--ss-xjvv174c; # ≮7.謖ß≯
+≮7.謖ß≯; ; [P1, V6]; xn--7-mgo.xn--zca892oly5e; ; xn--7-mgo.xn--ss-xjvv174c; #
≮7.謖ß≯
+≮7.謖ß≯; ≮7.謖ß≯; [P1, V6]; xn--7-mgo.xn--zca892oly5e; ;
xn--7-mgo.xn--ss-xjvv174c; # ≮7.謖ß≯
+≮7.謖SS≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮7.謖SS≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮7.謖ss≯; ; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮7.謖ss≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮7.謖Ss≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮7.謖Ss≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+xn--7-mgo.xn--ss-xjvv174c; ≮7.謖ss≯; [V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; #
≮7.謖ss≯
+xn--7-mgo.xn--zca892oly5e; ≮7.謖ß≯; [V6]; xn--7-mgo.xn--zca892oly5e; ; ; #
≮7.謖ß≯
+≮𝟕.謖SS≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮𝟕.謖SS≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮𝟕.謖ss≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮𝟕.謖ss≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮𝟕.謖Ss≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮𝟕.謖Ss≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+朶Ⴉ.𝨽ࠥ📻-; ; [B1, B5, B6, P1, V3, V5, V6];
xn--hnd7245bd56p.xn----3gd37096apmwa; ; ; # 朶Ⴉ.𝨽ࠥ📻-
+朶ⴉ.𝨽ࠥ📻-; ; [B1, B5, B6, P1, V3, V5, V6]; xn--0kjz47pd57t.xn----3gd37096apmwa;
; ; # 朶ⴉ.𝨽ࠥ📻-
+xn--0kjz47pd57t.xn----3gd37096apmwa; 朶ⴉ.𝨽ࠥ📻-; [B1, B5, B6, V3, V5, V6];
xn--0kjz47pd57t.xn----3gd37096apmwa; ; ; # 朶ⴉ.𝨽ࠥ📻-
+xn--hnd7245bd56p.xn----3gd37096apmwa; 朶Ⴉ.𝨽ࠥ📻-; [B1, B5, B6, V3, V5, V6];
xn--hnd7245bd56p.xn----3gd37096apmwa; ; ; # 朶Ⴉ.𝨽ࠥ📻-
+𐤎。≮; 𐤎.≮; [B6, C1, C2, P1, V6]; xn--bk9c.xn--0ugc04p2u638c; ;
xn--bk9c.xn--gdhx6802k; [B6, P1, V6] # 𐤎.≮
+𐤎。≮; 𐤎.≮; [B6, C1, C2, P1, V6]; xn--bk9c.xn--0ugc04p2u638c; ;
xn--bk9c.xn--gdhx6802k; [B6, P1, V6] # 𐤎.≮
+xn--bk9c.xn--gdhx6802k; 𐤎.≮; [B6, V6]; xn--bk9c.xn--gdhx6802k; ; ; # 𐤎.≮
+xn--bk9c.xn--0ugc04p2u638c; 𐤎.≮; [B6, C1, C2, V6];
xn--bk9c.xn--0ugc04p2u638c; ; ; # 𐤎.≮
+⒈。𝟤; ⒈.2; [C1, P1, V6]; xn--tsh94183d.xn--2-rgn; ; xn--tsh94183d.2; [P1,
V6] # ⒈.2
+1.。2; 1..2; [C1, P1, V6, X4_2]; xn--1-ex54e..xn--2-rgn; [C1, P1, V6,
A4_2]; xn--1-ex54e..2; [P1, V6, A4_2] # 1..2
+xn--1-ex54e..2; 1..2; [V6, X4_2]; xn--1-ex54e..2; [V6, A4_2]; ; # 1..2
+xn--1-ex54e..xn--2-rgn; 1..2; [C1, V6, X4_2]; xn--1-ex54e..xn--2-rgn; [C1,
V6, A4_2]; ; # 1..2
+xn--tsh94183d.2; ⒈.2; [V6]; xn--tsh94183d.2; ; ; # ⒈.2
+xn--tsh94183d.xn--2-rgn; ⒈.2; [C1, V6]; xn--tsh94183d.xn--2-rgn; ; ; # ⒈.2
+𐹤.𐹳𐹶; 𐹤.𐹳𐹶; [B1, C2, P1, V6]; xn--1ugy994g7k93g.xn--ro0dga22807v; ;
xn--co0d98977c.xn--ro0dga22807v; [B1, P1, V6] # 𐹤.𐹳𐹶
+𐹤.𐹳𐹶; ; [B1, C2, P1, V6]; xn--1ugy994g7k93g.xn--ro0dga22807v; ;
xn--co0d98977c.xn--ro0dga22807v; [B1, P1, V6] # 𐹤.𐹳𐹶
+xn--co0d98977c.xn--ro0dga22807v; 𐹤.𐹳𐹶; [B1, V6];
xn--co0d98977c.xn--ro0dga22807v; ; ; # 𐹤.𐹳𐹶
+xn--1ugy994g7k93g.xn--ro0dga22807v; 𐹤.𐹳𐹶; [B1, C2, V6];
xn--1ugy994g7k93g.xn--ro0dga22807v; ; ; # 𐹤.𐹳𐹶
+𞤴𐹻𑓂𐭝.्︇; 𞤴𐹻𑓂𐭝.्; [B1, P1, V5, V6]; xn--609c96c09grp2w.xn--n3b28708s; ; ; #
𞤴𐹻𑓂𐭝.्
+𞤴𐹻𑓂𐭝.्︇; 𞤴𐹻𑓂𐭝.्; [B1, P1, V5, V6]; xn--609c96c09grp2w.xn--n3b28708s; ; ; #
𞤴𐹻𑓂𐭝.्
+𞤒𐹻𑓂𐭝.्︇; 𞤴𐹻𑓂𐭝.्; [B1, P1, V5, V6]; xn--609c96c09grp2w.xn--n3b28708s; ; ; #
𞤴𐹻𑓂𐭝.्
+xn--609c96c09grp2w.xn--n3b28708s; 𞤴𐹻𑓂𐭝.्; [B1, V5, V6];
xn--609c96c09grp2w.xn--n3b28708s; ; ; # 𞤴𐹻𑓂𐭝.्
+𞤒𐹻𑓂𐭝.्︇; 𞤴𐹻𑓂𐭝.्; [B1, P1, V5, V6]; xn--609c96c09grp2w.xn--n3b28708s; ; ; #
𞤴𐹻𑓂𐭝.्
+٨。𐹠𐹽; ٨.𐹠𐹽; [B1, P1, V6]; xn--hib.xn--7n0d2bu9196b; ; ; # ٨.𐹠𐹽
+٨。𐹠𐹽; ٨.𐹠𐹽; [B1, P1, V6]; xn--hib.xn--7n0d2bu9196b; ; ; # ٨.𐹠𐹽
+xn--hib.xn--7n0d2bu9196b; ٨.𐹠𐹽; [B1, V6]; xn--hib.xn--7n0d2bu9196b; ; ; #
٨.𐹠𐹽
+ᅠ.8ڜ; ; [B1, P1, V6]; xn--psd85033d.xn--8-otc61545t; ; ; # .8ڜ
+xn--psd85033d.xn--8-otc61545t; ᅠ.8ڜ; [B1, V6];
xn--psd85033d.xn--8-otc61545t; ; ; # .8ڜ
+󠆪。ß𑓃; .ß𑓃; [C1, C2]; xn--0ugb.xn--zca0732l; ; .xn--ss-bh7o; [A4_2] # .ß𑓃
+󠆪。ß𑓃; .ß𑓃; [C1, C2]; xn--0ugb.xn--zca0732l; ; .xn--ss-bh7o; [A4_2] # .ß𑓃
+󠆪。SS𑓃; .ss𑓃; [C1, C2]; xn--0ugb.xn--ss-bh7o; ; .xn--ss-bh7o; [A4_2] # .ss𑓃
+󠆪。ss𑓃; .ss𑓃; [C1, C2]; xn--0ugb.xn--ss-bh7o; ; .xn--ss-bh7o; [A4_2] # .ss𑓃
+󠆪。Ss𑓃; .ss𑓃; [C1, C2]; xn--0ugb.xn--ss-bh7o; ; .xn--ss-bh7o; [A4_2] # .ss𑓃
+.xn--ss-bh7o; .ss𑓃; [X4_2]; .xn--ss-bh7o; [A4_2]; ; # .ss𑓃
+xn--0ugb.xn--ss-bh7o; .ss𑓃; [C1, C2]; xn--0ugb.xn--ss-bh7o; ; ; # .ss𑓃
+xn--0ugb.xn--zca0732l; .ß𑓃; [C1, C2]; xn--0ugb.xn--zca0732l; ; ; # .ß𑓃
+󠆪。SS𑓃; .ss𑓃; [C1, C2]; xn--0ugb.xn--ss-bh7o; ; .xn--ss-bh7o; [A4_2] # .ss𑓃
+󠆪。ss𑓃; .ss𑓃; [C1, C2]; xn--0ugb.xn--ss-bh7o; ; .xn--ss-bh7o; [A4_2] # .ss𑓃
+󠆪。Ss𑓃; .ss𑓃; [C1, C2]; xn--0ugb.xn--ss-bh7o; ; .xn--ss-bh7o; [A4_2] # .ss𑓃
+xn--ss-bh7o; ss𑓃; ; xn--ss-bh7o; ; ; # ss𑓃
+ss𑓃; ; ; xn--ss-bh7o; ; ; # ss𑓃
+SS𑓃; ss𑓃; ; xn--ss-bh7o; ; ; # ss𑓃
+Ss𑓃; ss𑓃; ; xn--ss-bh7o; ; ; # ss𑓃
+︒ヶ䒩.ꡪ; ; [C1, P1, V6]; xn--0ug287dj0or48o.xn--gd9a; ;
xn--qekw60dns9k.xn--gd9a; [P1, V6] # ︒ヶ䒩.ꡪ
+。ヶ䒩.ꡪ; .ヶ䒩.ꡪ; [C1, X4_2]; .xn--0ug287dj0o.xn--gd9a; [C1, A4_2];
.xn--qekw60d.xn--gd9a; [A4_2] # .ヶ䒩.ꡪ
+.xn--qekw60d.xn--gd9a; .ヶ䒩.ꡪ; [X4_2]; .xn--qekw60d.xn--gd9a; [A4_2]; ; # .ヶ䒩.ꡪ
+.xn--0ug287dj0o.xn--gd9a; .ヶ䒩.ꡪ; [C1, X4_2]; .xn--0ug287dj0o.xn--gd9a; [C1,
A4_2]; ; # .ヶ䒩.ꡪ
+xn--qekw60dns9k.xn--gd9a; ︒ヶ䒩.ꡪ; [V6]; xn--qekw60dns9k.xn--gd9a; ; ; # ︒ヶ䒩.ꡪ
+xn--0ug287dj0or48o.xn--gd9a; ︒ヶ䒩.ꡪ; [C1, V6]; xn--0ug287dj0or48o.xn--gd9a; ;
; # ︒ヶ䒩.ꡪ
+xn--qekw60d.xn--gd9a; ヶ䒩.ꡪ; ; xn--qekw60d.xn--gd9a; ; ; # ヶ䒩.ꡪ
+ヶ䒩.ꡪ; ; ; xn--qekw60d.xn--gd9a; ; ; # ヶ䒩.ꡪ
+⒈𤮍.᩠; ; [C1, P1, V6]; xn--0ug88o7471d.xn--jof45148n; ;
xn--tshw462r.xn--jof45148n; [P1, V6] # ⒈𤮍.᩠
+1.𤮍.᩠; ; [C1, P1, V6]; xn--1-rgn.xn--4x6j.xn--jof45148n; ;
1.xn--4x6j.xn--jof45148n; [P1, V6] # 1.𤮍.᩠
+1.xn--4x6j.xn--jof45148n; 1.𤮍.᩠; [V6]; 1.xn--4x6j.xn--jof45148n; ; ; # 1.𤮍.᩠
+xn--1-rgn.xn--4x6j.xn--jof45148n; 1.𤮍.᩠; [C1, V6];
xn--1-rgn.xn--4x6j.xn--jof45148n; ; ; # 1.𤮍.᩠
+xn--tshw462r.xn--jof45148n; ⒈𤮍.᩠; [V6]; xn--tshw462r.xn--jof45148n; ; ; #
⒈𤮍.᩠
+xn--0ug88o7471d.xn--jof45148n; ⒈𤮍.᩠; [C1, V6];
xn--0ug88o7471d.xn--jof45148n; ; ; # ⒈𤮍.᩠
+⒈𐫓。᩠; ⒈𐫓.᩠; [B1, C1, C2, P1, V5, V6];
xn--0ug78ol75wzcx4i.xn--jof95xex98m; ; xn--tsh4435fk263g.xn--jofz5294e; [B1,
P1, V5, V6] # ⒈𐫓.᩠
+1.𐫓。᩠; 1.𐫓.᩠; [B1, C1, C2, P1, V5, V6];
1.xn--0ug8853gk263g.xn--jof95xex98m; ; 1.xn--8w9c40377c.xn--jofz5294e; [B1, B3,
P1, V5, V6] # 1.𐫓.᩠
+1.xn--8w9c40377c.xn--jofz5294e; 1.𐫓.᩠; [B1, B3, V5, V6];
1.xn--8w9c40377c.xn--jofz5294e; ; ; # 1.𐫓.᩠
+1.xn--0ug8853gk263g.xn--jof95xex98m; 1.𐫓.᩠; [B1, C1, C2, V5, V6];
1.xn--0ug8853gk263g.xn--jof95xex98m; ; ; # 1.𐫓.᩠
+xn--tsh4435fk263g.xn--jofz5294e; ⒈𐫓.᩠; [B1, V5, V6];
xn--tsh4435fk263g.xn--jofz5294e; ; ; # ⒈𐫓.᩠
+xn--0ug78ol75wzcx4i.xn--jof95xex98m; ⒈𐫓.᩠; [B1, C1, C2, V5, V6];
xn--0ug78ol75wzcx4i.xn--jof95xex98m; ; ; # ⒈𐫓.᩠
+。𝟫𞀈䬺⒈; .9𞀈䬺⒈; [P1, V6]; xn--3f1h.xn--9-ecp936non25a; ; ; # .9𞀈䬺⒈
+。9𞀈䬺1.; .9𞀈䬺1.; [P1, V6]; xn--3f1h.xn--91-030c1650n.; ; ; # .9𞀈䬺1.
+xn--3f1h.xn--91-030c1650n.; .9𞀈䬺1.; [V6]; xn--3f1h.xn--91-030c1650n.; ; ; #
.9𞀈䬺1.
+xn--3f1h.xn--9-ecp936non25a; .9𞀈䬺⒈; [V6]; xn--3f1h.xn--9-ecp936non25a; ; ; #
.9𞀈䬺⒈
+≯。盚ص; ≯.盚ص; [B5, B6, P1, V6]; xn--hdh30181h.xn--0gb7878c; ; ; # ≯.盚ص
+≯。盚ص; ≯.盚ص; [B5, B6, P1, V6]; xn--hdh30181h.xn--0gb7878c; ; ; # ≯.盚ص
+xn--hdh30181h.xn--0gb7878c; ≯.盚ص; [B5, B6, V6]; xn--hdh30181h.xn--0gb7878c; ;
; # ≯.盚ص
+-ִ。-≯; -ִ.-≯; [B1, P1, V3, V6]; xn----fgc06667m.xn----pgoy615he5y4i; ; ;
# -ִ.-≯
+-ִ。-≯; -ִ.-≯; [B1, P1, V3, V6]; xn----fgc06667m.xn----pgoy615he5y4i; ;
; # -ִ.-≯
+xn----fgc06667m.xn----pgoy615he5y4i; -ִ.-≯; [B1, V3, V6];
xn----fgc06667m.xn----pgoy615he5y4i; ; ; # -ִ.-≯
+᭄੍.𐭛; ᭄੍.𐭛; [B2, B3, B6, P1, V6]; xn--ybc997f6rd2n772c.xn--409c6100y; ;
xn--ybc997fb5881a.xn--409c6100y; [B2, B3, P1, V6] # ᭄੍.𐭛
+᭄੍.𐭛; ; [B2, B3, B6, P1, V6]; xn--ybc997f6rd2n772c.xn--409c6100y; ;
xn--ybc997fb5881a.xn--409c6100y; [B2, B3, P1, V6] # ᭄੍.𐭛
+xn--ybc997fb5881a.xn--409c6100y; ᭄੍.𐭛; [B2, B3, V6];
xn--ybc997fb5881a.xn--409c6100y; ; ; # ᭄੍.𐭛
+xn--ybc997f6rd2n772c.xn--409c6100y; ᭄੍.𐭛; [B2, B3, B6, V6];
xn--ybc997f6rd2n772c.xn--409c6100y; ; ; # ᭄੍.𐭛
+⾇.ٽ𞤴ڻ; 舛.ٽ𞤴ڻ; [B3, C2]; xn--8c1a.xn--2ib8jv19e6413b; ;
xn--8c1a.xn--2ib8jn539l; [] # 舛.ٽ𞤴ڻ
+舛.ٽ𞤴ڻ; ; [B3, C2]; xn--8c1a.xn--2ib8jv19e6413b; ; xn--8c1a.xn--2ib8jn539l; []
# 舛.ٽ𞤴ڻ
+舛.ٽ𞤒ڻ; 舛.ٽ𞤴ڻ; [B3, C2]; xn--8c1a.xn--2ib8jv19e6413b; ;
xn--8c1a.xn--2ib8jn539l; [] # 舛.ٽ𞤴ڻ
+xn--8c1a.xn--2ib8jn539l; 舛.ٽ𞤴ڻ; ; xn--8c1a.xn--2ib8jn539l; ; ; # 舛.ٽ𞤴ڻ
+舛.ٽ𞤴ڻ; ; ; xn--8c1a.xn--2ib8jn539l; ; ; # 舛.ٽ𞤴ڻ
+舛.ٽ𞤒ڻ; 舛.ٽ𞤴ڻ; ; xn--8c1a.xn--2ib8jn539l; ; ; # 舛.ٽ𞤴ڻ
+xn--8c1a.xn--2ib8jv19e6413b; 舛.ٽ𞤴ڻ; [B3, C2]; xn--8c1a.xn--2ib8jv19e6413b; ;
; # 舛.ٽ𞤴ڻ
+⾇.ٽ𞤒ڻ; 舛.ٽ𞤴ڻ; [B3, C2]; xn--8c1a.xn--2ib8jv19e6413b; ;
xn--8c1a.xn--2ib8jn539l; [] # 舛.ٽ𞤴ڻ
+4。ݧ≯; 4.ݧ≯; [B1, B3, P1, V6]; xn--4-xn17i.xn--rpb459k; ; ; # 4.ݧ≯
+4。ݧ≯; 4.ݧ≯; [B1, B3, P1, V6]; xn--4-xn17i.xn--rpb459k; ; ; # 4.ݧ≯
+xn--4-xn17i.xn--rpb459k; 4.ݧ≯; [B1, B3, V6]; xn--4-xn17i.xn--rpb459k; ; ; #
4.ݧ≯
+硲.ڭ; 硲.ڭ; [B5, P1, V6]; xn--lcz1610fn78gk609a.xn--gkb; ; ; # 硲.ڭ
+硲.ڭ; ; [B5, P1, V6]; xn--lcz1610fn78gk609a.xn--gkb; ; ; # 硲.ڭ
+xn--lcz1610fn78gk609a.xn--gkb; 硲.ڭ; [B5, V6];
xn--lcz1610fn78gk609a.xn--gkb; ; ; # 硲.ڭ
+.︈٦Ⴆ℮; .٦Ⴆ℮; [B1, C1, P1, V6]; xn--0ug.xn--fib263c0yn; ; .xn--fib263c0yn;
[B1, P1, V6, A4_2] # .٦Ⴆ℮
+.︈٦ⴆ℮; .٦ⴆ℮; [B1, C1]; xn--0ug.xn--fib628k4li; ; .xn--fib628k4li; [B1, A4_2]
# .٦ⴆ℮
+.xn--fib628k4li; .٦ⴆ℮; [B1, X4_2]; .xn--fib628k4li; [B1, A4_2]; ; # .٦ⴆ℮
+xn--0ug.xn--fib628k4li; .٦ⴆ℮; [B1, C1]; xn--0ug.xn--fib628k4li; ; ; # .٦ⴆ℮
+.xn--fib263c0yn; .٦Ⴆ℮; [B1, V6, X4_2]; .xn--fib263c0yn; [B1, V6, A4_2]; ; #
.٦Ⴆ℮
+xn--0ug.xn--fib263c0yn; .٦Ⴆ℮; [B1, C1, V6]; xn--0ug.xn--fib263c0yn; ; ; #
.٦Ⴆ℮
+ڣ.്Ϟ; ڣ.്ϟ; [B1, V5]; xn--5jb.xn--xya149bpvp; ; xn--5jb.xn--xya149b; # ڣ.്ϟ
+ڣ.്Ϟ; ڣ.്ϟ; [B1, V5]; xn--5jb.xn--xya149bpvp; ; xn--5jb.xn--xya149b; # ڣ.്ϟ
+ڣ.്ϟ; ; [B1, V5]; xn--5jb.xn--xya149bpvp; ; xn--5jb.xn--xya149b; # ڣ.്ϟ
+xn--5jb.xn--xya149b; ڣ.്ϟ; [B1, V5]; xn--5jb.xn--xya149b; ; ; # ڣ.്ϟ
+xn--5jb.xn--xya149bpvp; ڣ.്ϟ; [B1, V5]; xn--5jb.xn--xya149bpvp; ; ; # ڣ.്ϟ
+ڣ.്ϟ; ڣ.്ϟ; [B1, V5]; xn--5jb.xn--xya149bpvp; ; xn--5jb.xn--xya149b; # ڣ.്ϟ
+𞸇𑘿。أ𐮂-腍; ح𑘿.أ𐮂-腍; [B1, B2, B3, C1]; xn--sgb953kmi8o.xn----qmc5075grs9e; ;
xn--sgb4140l.xn----qmc5075grs9e; [B2, B3] # ح𑘿.أ𐮂-腍
+𞸇𑘿。أ𐮂-腍; ح𑘿.أ𐮂-腍; [B1, B2, B3, C1]; xn--sgb953kmi8o.xn----qmc5075grs9e; ;
xn--sgb4140l.xn----qmc5075grs9e; [B2, B3] # ح𑘿.أ𐮂-腍
+ح𑘿。أ𐮂-腍; ح𑘿.أ𐮂-腍; [B1, B2, B3, C1]; xn--sgb953kmi8o.xn----qmc5075grs9e; ;
xn--sgb4140l.xn----qmc5075grs9e; [B2, B3] # ح𑘿.أ𐮂-腍
+ح𑘿。أ𐮂-腍; ح𑘿.أ𐮂-腍; [B1, B2, B3, C1]; xn--sgb953kmi8o.xn----qmc5075grs9e; ;
xn--sgb4140l.xn----qmc5075grs9e; [B2, B3] # ح𑘿.أ𐮂-腍
+xn--sgb4140l.xn----qmc5075grs9e; ح𑘿.أ𐮂-腍; [B2, B3];
xn--sgb4140l.xn----qmc5075grs9e; ; ; # ح𑘿.أ𐮂-腍
+xn--sgb953kmi8o.xn----qmc5075grs9e; ح𑘿.أ𐮂-腍; [B1, B2, B3, C1];
xn--sgb953kmi8o.xn----qmc5075grs9e; ; ; # ح𑘿.أ𐮂-腍
+-٫纛。𝟛🄅; -٫纛.3🄅; [B1, P1, V3, V6]; xn----vqc8143g0tt4i.xn--3-os1sn476y; ; ;
# -٫纛.3🄅
+-٫纛。34,; -٫纛.34,; [B1, P1, V3, V6]; xn----vqc8143g0tt4i.xn--34,-8787l; ; ;
# -٫纛.34,
+xn----vqc8143g0tt4i.xn--34,-8787l; -٫纛.34,; [B1, P1, V3, V6];
xn----vqc8143g0tt4i.xn--34,-8787l; ; ; # -٫纛.34,
+xn----vqc8143g0tt4i.xn--3-os1sn476y; -٫纛.3🄅; [B1, V3, V6];
xn----vqc8143g0tt4i.xn--3-os1sn476y; ; ; # -٫纛.3🄅
+🔔.Ⴂߌ்𐋮; 🔔.Ⴂߌ்𐋮; [B1, B5, P1, V6]; xn--nv8h.xn--nsb46r83e8112a; ; ; # 🔔.Ⴂߌ்𐋮
+🔔.Ⴂߌ்𐋮; ; [B1, B5, P1, V6]; xn--nv8h.xn--nsb46r83e8112a; ; ; # 🔔.Ⴂߌ்𐋮
+🔔.ⴂߌ்𐋮; ; [B1, B5]; xn--nv8h.xn--nsb46rvz1b222p; ; ; # 🔔.ⴂߌ்𐋮
+xn--nv8h.xn--nsb46rvz1b222p; 🔔.ⴂߌ்𐋮; [B1, B5]; xn--nv8h.xn--nsb46rvz1b222p; ;
; # 🔔.ⴂߌ்𐋮
+xn--nv8h.xn--nsb46r83e8112a; 🔔.Ⴂߌ்𐋮; [B1, B5, V6];
xn--nv8h.xn--nsb46r83e8112a; ; ; # 🔔.Ⴂߌ்𐋮
+🔔.ⴂߌ்𐋮; 🔔.ⴂߌ்𐋮; [B1, B5]; xn--nv8h.xn--nsb46rvz1b222p; ; ; # 🔔.ⴂߌ்𐋮
+軥ڳ.-𖬵; ; [B1, B5, B6, V3]; xn--mkb5480e.xn----6u5m; ; ; # 軥ڳ.-𖬵
+xn--mkb5480e.xn----6u5m; 軥ڳ.-𖬵; [B1, B5, B6, V3]; xn--mkb5480e.xn----6u5m; ; ;
# 軥ڳ.-𖬵
+𐹤ߊڶ.𐨂-; ; [B1, V3, V5]; xn--pkb56cn614d.xn----974i; ; ; # 𐹤ߊڶ.𐨂-
+xn--pkb56cn614d.xn----974i; 𐹤ߊڶ.𐨂-; [B1, V3, V5]; xn--pkb56cn614d.xn----974i;
; ; # 𐹤ߊڶ.𐨂-
+-󠅱0。៏᷽톇십; -0.៏᷽톇십; [V3, V5]; -0.xn--r4e872ah77nghm; ; ; # -0.៏᷽톇십
+-󠅱0。៏᷽톇십; -0.៏᷽톇십; [V3, V5]; -0.xn--r4e872ah77nghm; ; ; # -0.៏᷽톇십
+-󠅱0。៏᷽톇십; -0.៏᷽톇십; [V3, V5]; -0.xn--r4e872ah77nghm; ; ; # -0.៏᷽톇십
+-󠅱0。៏᷽톇십; -0.៏᷽톇십; [V3, V5]; -0.xn--r4e872ah77nghm; ; ; # -0.៏᷽톇십
+-0.xn--r4e872ah77nghm; -0.៏᷽톇십; [V3, V5]; -0.xn--r4e872ah77nghm; ; ; # -0.៏᷽톇십
+ꡰ︒--。៌靈𐹢; ꡰ︒--.៌靈𐹢; [B1, B6, P1, V2, V3, V5, V6];
xn-----bk9hu24z.xn--o4e6836dpxudz0v1c; ; ; # ꡰ︒--.៌靈𐹢
+ꡰ。--。៌靈𐹢; ꡰ.--.៌靈𐹢; [B1, P1, V3, V5, V6]; xn--md9a.--.xn--o4e6836dpxudz0v1c;
; ; # ꡰ.--.៌靈𐹢
+xn--md9a.--.xn--o4e6836dpxudz0v1c; ꡰ.--.៌靈𐹢; [B1, V3, V5, V6];
xn--md9a.--.xn--o4e6836dpxudz0v1c; ; ; # ꡰ.--.៌靈𐹢
+xn-----bk9hu24z.xn--o4e6836dpxudz0v1c; ꡰ︒--.៌靈𐹢; [B1, B6, V2, V3, V5, V6];
xn-----bk9hu24z.xn--o4e6836dpxudz0v1c; ; ; # ꡰ︒--.៌靈𐹢
+ᅟႿႵრ。୍; ᅟႿႵრ.୍; [P1, V5, V6]; xn--tndt4hvw.xn--9ic; ; ; # ႿႵრ.୍
+ᅟႿႵრ。୍; ᅟႿႵრ.୍; [P1, V5, V6]; xn--tndt4hvw.xn--9ic; ; ; # ႿႵრ.୍
+ᅟⴟⴕრ。୍; ᅟⴟⴕრ.୍; [P1, V5, V6]; xn--1od7wz74eeb.xn--9ic; ; ; # ⴟⴕრ.୍
+ᅟႿႵᲠ。୍; ᅟႿႵრ.୍; [P1, V5, V6]; xn--tndt4hvw.xn--9ic; ; ; # ႿႵრ.୍
+xn--tndt4hvw.xn--9ic; ᅟႿႵრ.୍; [V5, V6]; xn--tndt4hvw.xn--9ic; ; ; # ႿႵრ.୍
+xn--1od7wz74eeb.xn--9ic; ᅟⴟⴕრ.୍; [V5, V6]; xn--1od7wz74eeb.xn--9ic; ; ; #
ⴟⴕრ.୍
+ᅟⴟⴕრ。୍; ᅟⴟⴕრ.୍; [P1, V5, V6]; xn--1od7wz74eeb.xn--9ic; ; ; # ⴟⴕრ.୍
+ᅟႿႵᲠ。୍; ᅟႿႵრ.୍; [P1, V5, V6]; xn--tndt4hvw.xn--9ic; ; ; # ႿႵრ.୍
+ᅟႿⴕრ。୍; ᅟႿⴕრ.୍; [P1, V5, V6]; xn--3nd0etsm92g.xn--9ic; ; ; # Ⴟⴕრ.୍
+xn--3nd0etsm92g.xn--9ic; ᅟႿⴕრ.୍; [V5, V6]; xn--3nd0etsm92g.xn--9ic; ; ; #
Ⴟⴕრ.୍
+ᅟႿⴕრ。୍; ᅟႿⴕრ.୍; [P1, V5, V6]; xn--3nd0etsm92g.xn--9ic; ; ; # Ⴟⴕრ.୍
+🄃𐹠.٤󠅇; 🄃𐹠.٤; [B1, P1, V6]; xn--7n0d1189a.xn--dib; ; ; # 🄃𐹠.٤
+2,𐹠.٤󠅇; 2,𐹠.٤; [B1, P1, V6]; xn--2,-5g3o.xn--dib; ; ; # 2,𐹠.٤
+xn--2,-5g3o.xn--dib; 2,𐹠.٤; [B1, P1, V6]; xn--2,-5g3o.xn--dib; ; ; # 2,𐹠.٤
+xn--7n0d1189a.xn--dib; 🄃𐹠.٤; [B1, V6]; xn--7n0d1189a.xn--dib; ; ; # 🄃𐹠.٤
+ﱛ.ߒࡈ᯳; ذٰ.ߒࡈ᯳; [B2, B3, B5, B6, C1, P1, V6];
xn--vgb2kq00fl213y.xn--tsb0vz43c; ; xn--vgb2kp1223g.xn--tsb0vz43c; [B2, B3, B5,
B6, P1, V6] # ذٰ.ߒࡈ᯳
+ذٰ.ߒࡈ᯳; ; [B2, B3, B5, B6, C1, P1, V6]; xn--vgb2kq00fl213y.xn--tsb0vz43c; ;
xn--vgb2kp1223g.xn--tsb0vz43c; [B2, B3, B5, B6, P1, V6] # ذٰ.ߒࡈ᯳
+xn--vgb2kp1223g.xn--tsb0vz43c; ذٰ.ߒࡈ᯳; [B2, B3, B5, B6, V6];
xn--vgb2kp1223g.xn--tsb0vz43c; ; ; # ذٰ.ߒࡈ᯳
+xn--vgb2kq00fl213y.xn--tsb0vz43c; ذٰ.ߒࡈ᯳; [B2, B3, B5, B6, C1, V6];
xn--vgb2kq00fl213y.xn--tsb0vz43c; ; ; # ذٰ.ߒࡈ᯳
+。ᡘ𑲭឵; .ᡘ𑲭឵; [B1, C1, C2, P1, V6]; xn--0ugba05538b.xn--03e93aq365d; ;
xn--l96h.xn--03e93aq365d; [P1, V6] # .ᡘ𑲭
+xn--l96h.xn--03e93aq365d; .ᡘ𑲭឵; [V6]; xn--l96h.xn--03e93aq365d; ; ; # .ᡘ𑲭
+xn--0ugba05538b.xn--03e93aq365d; .ᡘ𑲭឵; [B1, C1, C2, V6];
xn--0ugba05538b.xn--03e93aq365d; ; ; # .ᡘ𑲭
+。⚄𑁿; .⚄𑁿; [B1, P1, V6]; xn--qe7h.xn--c7h2966f7so4a; ; ; # .⚄𑁿
+xn--qe7h.xn--c7h2966f7so4a; .⚄𑁿; [B1, V6]; xn--qe7h.xn--c7h2966f7so4a; ; ;
# .⚄𑁿
+꣄≠.𞠨٧; ꣄≠.𞠨٧; [B1, P1, V5, V6]; xn--1chy504c.xn--gib1777v; ; ; # ꣄≠.𞠨٧
+꣄≠.𞠨٧; ꣄≠.𞠨٧; [B1, P1, V5, V6]; xn--1chy504c.xn--gib1777v; ; ; # ꣄≠.𞠨٧
+꣄≠.𞠨٧; ; [B1, P1, V5, V6]; xn--1chy504c.xn--gib1777v; ; ; # ꣄≠.𞠨٧
+꣄≠.𞠨٧; ꣄≠.𞠨٧; [B1, P1, V5, V6]; xn--1chy504c.xn--gib1777v; ; ; # ꣄≠.𞠨٧
+xn--1chy504c.xn--gib1777v; ꣄≠.𞠨٧; [B1, V5, V6]; xn--1chy504c.xn--gib1777v; ; ;
# ꣄≠.𞠨٧
+𝟛꣄𝆪。꣪-; 3꣄𝆪.꣪-; [V3, V5]; xn--3-sl4eu679e.xn----xn4e; ; ; # 3꣄𝆪.꣪-
+𝟛꣄𝆪。꣪-; 3꣄𝆪.꣪-; [V3, V5]; xn--3-sl4eu679e.xn----xn4e; ; ; # 3꣄𝆪.꣪-
+3꣄𝆪。꣪-; 3꣄𝆪.꣪-; [V3, V5]; xn--3-sl4eu679e.xn----xn4e; ; ; # 3꣄𝆪.꣪-
+xn--3-sl4eu679e.xn----xn4e; 3꣄𝆪.꣪-; [V3, V5]; xn--3-sl4eu679e.xn----xn4e; ; ;
# 3꣄𝆪.꣪-
+ݟᮢ်Ⴇ.4; ; [B1, B2, B3, P1, V6]; xn--jpb846bmjw88a.4; ; ; # ݟᮢ်Ⴇ.4
+ݟᮢ်ⴇ.4; ; [B1, B2, B3]; xn--jpb846bjzj7pr.4; ; ; # ݟᮢ်ⴇ.4
+xn--jpb846bjzj7pr.4; ݟᮢ်ⴇ.4; [B1, B2, B3]; xn--jpb846bjzj7pr.4; ; ; # ݟᮢ်ⴇ.4
+xn--jpb846bmjw88a.4; ݟᮢ်Ⴇ.4; [B1, B2, B3, V6]; xn--jpb846bmjw88a.4; ; ; #
ݟᮢ်Ⴇ.4
+ᄹ。໊󠄞; ᄹ.໊; [P1, V5, V6]; xn--lrd.xn--s8c05302k; ; ; # ᄹ.໊
+ᄹ。໊󠄞; ᄹ.໊; [P1, V5, V6]; xn--lrd.xn--s8c05302k; ; ; # ᄹ.໊
+xn--lrd.xn--s8c05302k; ᄹ.໊; [V5, V6]; xn--lrd.xn--s8c05302k; ; ; # ᄹ.໊
+Ⴆ.󠆡︉𞤍; Ⴆ.𞤯; [P1, V6]; xn--end82983m.xn--ne6h; ; ; # Ⴆ.𞤯
+Ⴆ.󠆡︉𞤍; Ⴆ.𞤯; [P1, V6]; xn--end82983m.xn--ne6h; ; ; # Ⴆ.𞤯
+ⴆ.󠆡︉𞤯; ⴆ.𞤯; [P1, V6]; xn--xkjw3965g.xn--ne6h; ; ; # ⴆ.𞤯
+xn--xkjw3965g.xn--ne6h; ⴆ.𞤯; [V6]; xn--xkjw3965g.xn--ne6h; ; ; # ⴆ.𞤯
+xn--end82983m.xn--ne6h; Ⴆ.𞤯; [V6]; xn--end82983m.xn--ne6h; ; ; # Ⴆ.𞤯
+ⴆ.󠆡︉𞤯; ⴆ.𞤯; [P1, V6]; xn--xkjw3965g.xn--ne6h; ; ; # ⴆ.𞤯
+ⴆ.󠆡︉𞤍; ⴆ.𞤯; [P1, V6]; xn--xkjw3965g.xn--ne6h; ; ; # ⴆ.𞤯
+ⴆ.󠆡︉𞤍; ⴆ.𞤯; [P1, V6]; xn--xkjw3965g.xn--ne6h; ; ; # ⴆ.𞤯
+ßࠋ︒ٻ.帼F∬; ßࠋ︒ٻ.帼f∫∫; [B5, B6, C1, P1, V6];
xn--zca68zj8ac956c.xn--f-sgn48ga6997e; ; xn--ss-k0d31nu121d.xn--f-tcoa9162d;
[B5, B6, P1, V6] # ßࠋ︒ٻ.帼f∫∫
+ßࠋ。ٻ.帼F∫∫; ßࠋ.ٻ.帼f∫∫; [B5, B6, C1]; xn--zca687a.xn--0ib.xn--f-sgn48ga6997e;
; xn--ss-uze.xn--0ib.xn--f-tcoa9162d; [B5, B6] # ßࠋ.ٻ.帼f∫∫
+ßࠋ。ٻ.帼f∫∫; ßࠋ.ٻ.帼f∫∫; [B5, B6, C1]; xn--zca687a.xn--0ib.xn--f-sgn48ga6997e;
; xn--ss-uze.xn--0ib.xn--f-tcoa9162d; [B5, B6] # ßࠋ.ٻ.帼f∫∫
+SSࠋ。ٻ.帼F∫∫; ssࠋ.ٻ.帼f∫∫; [B5, B6, C1]; xn--ss-uze.xn--0ib.xn--f-sgn48ga6997e;
; xn--ss-uze.xn--0ib.xn--f-tcoa9162d; [B5, B6] # ssࠋ.ٻ.帼f∫∫
+ssࠋ。ٻ.帼f∫∫; ssࠋ.ٻ.帼f∫∫; [B5, B6, C1]; xn--ss-uze.xn--0ib.xn--f-sgn48ga6997e;
; xn--ss-uze.xn--0ib.xn--f-tcoa9162d; [B5, B6] # ssࠋ.ٻ.帼f∫∫
+Ssࠋ。ٻ.帼F∫∫; ssࠋ.ٻ.帼f∫∫; [B5, B6, C1]; xn--ss-uze.xn--0ib.xn--f-sgn48ga6997e;
; xn--ss-uze.xn--0ib.xn--f-tcoa9162d; [B5, B6] # ssࠋ.ٻ.帼f∫∫
+xn--ss-uze.xn--0ib.xn--f-tcoa9162d; ssࠋ.ٻ.帼f∫∫; [B5, B6];
xn--ss-uze.xn--0ib.xn--f-tcoa9162d; ; ; # ssࠋ.ٻ.帼f∫∫
+xn--ss-uze.xn--0ib.xn--f-sgn48ga6997e; ssࠋ.ٻ.帼f∫∫; [B5, B6, C1];
xn--ss-uze.xn--0ib.xn--f-sgn48ga6997e; ; ; # ssࠋ.ٻ.帼f∫∫
+xn--zca687a.xn--0ib.xn--f-sgn48ga6997e; ßࠋ.ٻ.帼f∫∫; [B5, B6, C1];
xn--zca687a.xn--0ib.xn--f-sgn48ga6997e; ; ; # ßࠋ.ٻ.帼f∫∫
+ßࠋ︒ٻ.帼f∬; ßࠋ︒ٻ.帼f∫∫; [B5, B6, C1, P1, V6];
xn--zca68zj8ac956c.xn--f-sgn48ga6997e; ; xn--ss-k0d31nu121d.xn--f-tcoa9162d;
[B5, B6, P1, V6] # ßࠋ︒ٻ.帼f∫∫
+SSࠋ︒ٻ.帼F∬; ssࠋ︒ٻ.帼f∫∫; [B5, B6, C1, P1, V6];
xn--ss-k0d31nu121d.xn--f-sgn48ga6997e; ; xn--ss-k0d31nu121d.xn--f-tcoa9162d;
[B5, B6, P1, V6] # ssࠋ︒ٻ.帼f∫∫
+ssࠋ︒ٻ.帼f∬; ssࠋ︒ٻ.帼f∫∫; [B5, B6, C1, P1, V6];
xn--ss-k0d31nu121d.xn--f-sgn48ga6997e; ; xn--ss-k0d31nu121d.xn--f-tcoa9162d;
[B5, B6, P1, V6] # ssࠋ︒ٻ.帼f∫∫
+Ssࠋ︒ٻ.帼F∬; ssࠋ︒ٻ.帼f∫∫; [B5, B6, C1, P1, V6];
xn--ss-k0d31nu121d.xn--f-sgn48ga6997e; ; xn--ss-k0d31nu121d.xn--f-tcoa9162d;
[B5, B6, P1, V6] # ssࠋ︒ٻ.帼f∫∫
+xn--ss-k0d31nu121d.xn--f-tcoa9162d; ssࠋ︒ٻ.帼f∫∫; [B5, B6, V6];
xn--ss-k0d31nu121d.xn--f-tcoa9162d; ; ; # ssࠋ︒ٻ.帼f∫∫
+xn--ss-k0d31nu121d.xn--f-sgn48ga6997e; ssࠋ︒ٻ.帼f∫∫; [B5, B6, C1, V6];
xn--ss-k0d31nu121d.xn--f-sgn48ga6997e; ; ; # ssࠋ︒ٻ.帼f∫∫
+xn--zca68zj8ac956c.xn--f-sgn48ga6997e; ßࠋ︒ٻ.帼f∫∫; [B5, B6, C1, V6];
xn--zca68zj8ac956c.xn--f-sgn48ga6997e; ; ; # ßࠋ︒ٻ.帼f∫∫
+。𐹴; .𐹴; [B1, C2, P1, V6]; xn--8l83e.xn--1ug4105gsxwf; ;
xn--8l83e.xn--so0dw168a; [B1, P1, V6] # .𐹴
+。𐹴; .𐹴; [B1, C2, P1, V6]; xn--8l83e.xn--1ug4105gsxwf; ;
xn--8l83e.xn--so0dw168a; [B1, P1, V6] # .𐹴
+xn--8l83e.xn--so0dw168a; .𐹴; [B1, V6]; xn--8l83e.xn--so0dw168a; ; ; # .𐹴
+xn--8l83e.xn--1ug4105gsxwf; .𐹴; [B1, C2, V6]; xn--8l83e.xn--1ug4105gsxwf; ;
; # .𐹴
+.𝟨꣄; .6꣄; [P1, V6]; xn--mi60a.xn--6-sl4es8023c; ; ; # .6꣄
+.6꣄; ; [P1, V6]; xn--mi60a.xn--6-sl4es8023c; ; ; # .6꣄
+xn--mi60a.xn--6-sl4es8023c; .6꣄; [V6]; xn--mi60a.xn--6-sl4es8023c; ; ; # .6꣄
+᪲ﶎ。-۹ႱႨ; ᪲مخج.-۹ႱႨ; [B1, P1, V3, V5, V6]; xn--rgbd2e831i.xn----zyc155e9a; ; ;
# ᪲مخج.-۹ႱႨ
+᪲مخج。-۹ႱႨ; ᪲مخج.-۹ႱႨ; [B1, P1, V3, V5, V6]; xn--rgbd2e831i.xn----zyc155e9a; ;
; # ᪲مخج.-۹ႱႨ
+᪲مخج。-۹ⴑⴈ; ᪲مخج.-۹ⴑⴈ; [B1, V3, V5]; xn--rgbd2e831i.xn----zyc3430a9a; ; ; #
᪲مخج.-۹ⴑⴈ
+xn--rgbd2e831i.xn----zyc3430a9a; ᪲مخج.-۹ⴑⴈ; [B1, V3, V5];
xn--rgbd2e831i.xn----zyc3430a9a; ; ; # ᪲مخج.-۹ⴑⴈ
+xn--rgbd2e831i.xn----zyc155e9a; ᪲مخج.-۹ႱႨ; [B1, V3, V5, V6];
xn--rgbd2e831i.xn----zyc155e9a; ; ; # ᪲مخج.-۹ႱႨ
+᪲ﶎ。-۹ⴑⴈ; ᪲مخج.-۹ⴑⴈ; [B1, V3, V5]; xn--rgbd2e831i.xn----zyc3430a9a; ; ; #
᪲مخج.-۹ⴑⴈ
+᪲مخج。-۹Ⴑⴈ; ᪲مخج.-۹Ⴑⴈ; [B1, P1, V3, V5, V6]; xn--rgbd2e831i.xn----zyc875efr3a;
; ; # ᪲مخج.-۹Ⴑⴈ
+xn--rgbd2e831i.xn----zyc875efr3a; ᪲مخج.-۹Ⴑⴈ; [B1, V3, V5, V6];
xn--rgbd2e831i.xn----zyc875efr3a; ; ; # ᪲مخج.-۹Ⴑⴈ
+᪲ﶎ。-۹Ⴑⴈ; ᪲مخج.-۹Ⴑⴈ; [B1, P1, V3, V5, V6]; xn--rgbd2e831i.xn----zyc875efr3a; ;
; # ᪲مخج.-۹Ⴑⴈ
+𞤤.-ࢣ︒; 𞤤.-ࢣ︒; [B1, P1, V3, V6]; xn--ce6h.xn----cod7069p; ; ; # 𞤤.-ࢣ︒
+𞤤.-ࢣ。; 𞤤.-ࢣ.; [B1, V3]; xn--ce6h.xn----cod.; ; ; # 𞤤.-ࢣ.
+𞤂.-ࢣ。; 𞤤.-ࢣ.; [B1, V3]; xn--ce6h.xn----cod.; ; ; # 𞤤.-ࢣ.
+xn--ce6h.xn----cod.; 𞤤.-ࢣ.; [B1, V3]; xn--ce6h.xn----cod.; ; ; # 𞤤.-ࢣ.
+𞤂.-ࢣ︒; 𞤤.-ࢣ︒; [B1, P1, V3, V6]; xn--ce6h.xn----cod7069p; ; ; # 𞤤.-ࢣ︒
+xn--ce6h.xn----cod7069p; 𞤤.-ࢣ︒; [B1, V3, V6]; xn--ce6h.xn----cod7069p; ; ; #
𞤤.-ࢣ︒
+𐺨.࡙--; ; [B1, C1, V3, V5]; xn--0ug7905g.xn-----h6e; ; xn--9p0d.xn-----h6e;
[B1, V3, V5] # 𐺨.࡙--
+xn--9p0d.xn-----h6e; 𐺨.࡙--; [B1, V3, V5]; xn--9p0d.xn-----h6e; ; ; # 𐺨.࡙--
+xn--0ug7905g.xn-----h6e; 𐺨.࡙--; [B1, C1, V3, V5]; xn--0ug7905g.xn-----h6e; ;
; # 𐺨.࡙--
+𐋸Ⴢ.Ⴁ; ; [P1, V6]; xn--6nd5215jr2u0h.xn--8md; ; ; # 𐋸Ⴢ.Ⴁ
+𐋸ⴢ.ⴁ; ; [P1, V6]; xn--qlj1559dr224h.xn--skj; ; ; # 𐋸ⴢ.ⴁ
+𐋸Ⴢ.ⴁ; ; [P1, V6]; xn--6nd5215jr2u0h.xn--skj; ; ; # 𐋸Ⴢ.ⴁ
+xn--6nd5215jr2u0h.xn--skj; 𐋸Ⴢ.ⴁ; [V6]; xn--6nd5215jr2u0h.xn--skj; ; ; # 𐋸Ⴢ.ⴁ
+xn--qlj1559dr224h.xn--skj; 𐋸ⴢ.ⴁ; [V6]; xn--qlj1559dr224h.xn--skj; ; ; # 𐋸ⴢ.ⴁ
+xn--6nd5215jr2u0h.xn--8md; 𐋸Ⴢ.Ⴁ; [V6]; xn--6nd5215jr2u0h.xn--8md; ; ; # 𐋸Ⴢ.Ⴁ
+꠆₄。ς; ꠆4.ς; [P1, V6]; xn--4-w93ej7463a9io5a.xn--3xa51142bk3f0d; ;
xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d; # ꠆4.ς
+꠆4。ς; ꠆4.ς; [P1, V6]; xn--4-w93ej7463a9io5a.xn--3xa51142bk3f0d; ;
xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d; # ꠆4.ς
+꠆4。Σ; ꠆4.σ; [P1, V6]; xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d; ; ; #
꠆4.σ
+꠆4。σ; ꠆4.σ; [P1, V6]; xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d; ; ; #
꠆4.σ
+xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d; ꠆4.σ; [V6];
xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d; ; ; # ꠆4.σ
+xn--4-w93ej7463a9io5a.xn--3xa51142bk3f0d; ꠆4.ς; [V6];
xn--4-w93ej7463a9io5a.xn--3xa51142bk3f0d; ; ; # ꠆4.ς
+꠆₄。Σ; ꠆4.σ; [P1, V6]; xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d; ; ; #
꠆4.σ
+꠆₄。σ; ꠆4.σ; [P1, V6]; xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d; ; ; #
꠆4.σ
+󠆀ܣ。ᷴݵ; ܣ.ᷴݵ; [B1, V5]; xn--tnb.xn--5pb136i; ; ; # ܣ.ᷴݵ
+xn--tnb.xn--5pb136i; ܣ.ᷴݵ; [B1, V5]; xn--tnb.xn--5pb136i; ; ; # ܣ.ᷴݵ
+𐹱ࡂ𝪨。𬼖Ⴑ; 𐹱ࡂ𝪨.𬼖Ⴑ; [B1, B6, C2, P1, V6]; xn--0vb1535kdb6e.xn--pnd879eqy33c; ;
xn--0vb1535kdb6e.xn--pnd93707a; [B1, P1, V6] # 𐹱ࡂ𝪨.𬼖Ⴑ
+𐹱ࡂ𝪨。𬼖Ⴑ; 𐹱ࡂ𝪨.𬼖Ⴑ; [B1, B6, C2, P1, V6]; xn--0vb1535kdb6e.xn--pnd879eqy33c; ;
xn--0vb1535kdb6e.xn--pnd93707a; [B1, P1, V6] # 𐹱ࡂ𝪨.𬼖Ⴑ
+𐹱ࡂ𝪨。𬼖ⴑ; 𐹱ࡂ𝪨.𬼖ⴑ; [B1, B6, C2]; xn--0vb1535kdb6e.xn--1ug742c5714c; ;
xn--0vb1535kdb6e.xn--8kjz186s; [B1] # 𐹱ࡂ𝪨.𬼖ⴑ
+xn--0vb1535kdb6e.xn--8kjz186s; 𐹱ࡂ𝪨.𬼖ⴑ; [B1]; xn--0vb1535kdb6e.xn--8kjz186s; ;
; # 𐹱ࡂ𝪨.𬼖ⴑ
+xn--0vb1535kdb6e.xn--1ug742c5714c; 𐹱ࡂ𝪨.𬼖ⴑ; [B1, B6, C2];
xn--0vb1535kdb6e.xn--1ug742c5714c; ; ; # 𐹱ࡂ𝪨.𬼖ⴑ
+xn--0vb1535kdb6e.xn--pnd93707a; 𐹱ࡂ𝪨.𬼖Ⴑ; [B1, V6];
xn--0vb1535kdb6e.xn--pnd93707a; ; ; # 𐹱ࡂ𝪨.𬼖Ⴑ
+xn--0vb1535kdb6e.xn--pnd879eqy33c; 𐹱ࡂ𝪨.𬼖Ⴑ; [B1, B6, C2, V6];
xn--0vb1535kdb6e.xn--pnd879eqy33c; ; ; # 𐹱ࡂ𝪨.𬼖Ⴑ
+𐹱ࡂ𝪨。𬼖ⴑ; 𐹱ࡂ𝪨.𬼖ⴑ; [B1, B6, C2]; xn--0vb1535kdb6e.xn--1ug742c5714c; ;
xn--0vb1535kdb6e.xn--8kjz186s; [B1] # 𐹱ࡂ𝪨.𬼖ⴑ
+᜔𐭪。-𐹴; ᜔𐭪.-𐹴; [B1, C2, P1, V3, V5, V6]; xn--fze807bso0spy14i.xn----c36i; ;
xn--fze4126jujt0g.xn----c36i; [B1, P1, V3, V5, V6] # ᜔𐭪.-𐹴
+᜔𐭪。-𐹴; ᜔𐭪.-𐹴; [B1, C2, P1, V3, V5, V6]; xn--fze807bso0spy14i.xn----c36i; ;
xn--fze4126jujt0g.xn----c36i; [B1, P1, V3, V5, V6] # ᜔𐭪.-𐹴
+xn--fze4126jujt0g.xn----c36i; ᜔𐭪.-𐹴; [B1, V3, V5, V6];
xn--fze4126jujt0g.xn----c36i; ; ; # ᜔𐭪.-𐹴
+xn--fze807bso0spy14i.xn----c36i; ᜔𐭪.-𐹴; [B1, C2, V3, V5, V6];
xn--fze807bso0spy14i.xn----c36i; ; ; # ᜔𐭪.-𐹴
+。ܩ︒쯙𝟧; .ܩ︒쯙5; [B2, P1, V6]; xn--t92s.xn--5-p1c0712mm8rb; ; ; # .ܩ︒쯙5
+。ܩ︒쯙𝟧; .ܩ︒쯙5; [B2, P1, V6]; xn--t92s.xn--5-p1c0712mm8rb; ; ; # .ܩ︒쯙5
+。ܩ。쯙5; .ܩ.쯙5; [P1, V6]; xn--t92s.xn--znb.xn--5-y88f; ; ; # .ܩ.쯙5
+。ܩ。쯙5; .ܩ.쯙5; [P1, V6]; xn--t92s.xn--znb.xn--5-y88f; ; ; # .ܩ.쯙5
+xn--t92s.xn--znb.xn--5-y88f; .ܩ.쯙5; [V6]; xn--t92s.xn--znb.xn--5-y88f; ; ; #
.ܩ.쯙5
+xn--t92s.xn--5-p1c0712mm8rb; .ܩ︒쯙5; [B2, V6]; xn--t92s.xn--5-p1c0712mm8rb; ;
; # .ܩ︒쯙5
+𞤟-。ݢ≮뻐; 𞥁-.ݢ≮뻐; [B2, B3, P1, V3, V6]; xn----1j8r.xn--mpb269krv4i; ; ; # 𞥁-.ݢ≮뻐
+𞤟-。ݢ≮뻐; 𞥁-.ݢ≮뻐; [B2, B3, P1, V3, V6]; xn----1j8r.xn--mpb269krv4i; ; ; #
𞥁-.ݢ≮뻐
+𞥁-。ݢ≮뻐; 𞥁-.ݢ≮뻐; [B2, B3, P1, V3, V6]; xn----1j8r.xn--mpb269krv4i; ; ; #
𞥁-.ݢ≮뻐
+𞥁-。ݢ≮뻐; 𞥁-.ݢ≮뻐; [B2, B3, P1, V3, V6]; xn----1j8r.xn--mpb269krv4i; ; ; # 𞥁-.ݢ≮뻐
+xn----1j8r.xn--mpb269krv4i; 𞥁-.ݢ≮뻐; [B2, B3, V3, V6];
xn----1j8r.xn--mpb269krv4i; ; ; # 𞥁-.ݢ≮뻐
+-.ࢴ≠; -.ࢴ≠; [B2, B3, P1, V6]; xn----cm8rp3609a.xn--9yb852k; ; ; # -.ࢴ≠
+-.ࢴ≠; -.ࢴ≠; [B2, B3, P1, V6]; xn----cm8rp3609a.xn--9yb852k; ; ; # -.ࢴ≠
+-.ࢴ≠; ; [B2, B3, P1, V6]; xn----cm8rp3609a.xn--9yb852k; ; ; # -.ࢴ≠
+-.ࢴ≠; -.ࢴ≠; [B2, B3, P1, V6]; xn----cm8rp3609a.xn--9yb852k; ; ; # -.ࢴ≠
+xn----cm8rp3609a.xn--9yb852k; -.ࢴ≠; [B2, B3, V6];
xn----cm8rp3609a.xn--9yb852k; ; ; # -.ࢴ≠
+-ςႼ.١; -ςႼ.١; [B1, P1, V3, V6]; xn----ymb080hun11i.xn--9hb; ;
xn----0mb770hun11i.xn--9hb; # -ςႼ.١
+-ςႼ.١; ; [B1, P1, V3, V6]; xn----ymb080hun11i.xn--9hb; ;
xn----0mb770hun11i.xn--9hb; # -ςႼ.١
+-ςⴜ.١; ; [B1, P1, V3, V6]; xn----ymb2782aov12f.xn--9hb; ;
xn----0mb9682aov12f.xn--9hb; # -ςⴜ.١
+-ΣႼ.١; -σႼ.١; [B1, P1, V3, V6]; xn----0mb770hun11i.xn--9hb; ; ; # -σႼ.١
+-σⴜ.١; ; [B1, P1, V3, V6]; xn----0mb9682aov12f.xn--9hb; ; ; # -σⴜ.١
+-Σⴜ.١; -σⴜ.١; [B1, P1, V3, V6]; xn----0mb9682aov12f.xn--9hb; ; ; # -σⴜ.١
+xn----0mb9682aov12f.xn--9hb; -σⴜ.١; [B1, V3, V6];
xn----0mb9682aov12f.xn--9hb; ; ; # -σⴜ.١
+xn----0mb770hun11i.xn--9hb; -σႼ.١; [B1, V3, V6]; xn----0mb770hun11i.xn--9hb;
; ; # -σႼ.١
+xn----ymb2782aov12f.xn--9hb; -ςⴜ.١; [B1, V3, V6];
xn----ymb2782aov12f.xn--9hb; ; ; # -ςⴜ.١
+xn----ymb080hun11i.xn--9hb; -ςႼ.١; [B1, V3, V6]; xn----ymb080hun11i.xn--9hb;
; ; # -ςႼ.١
+-ςⴜ.١; -ςⴜ.١; [B1, P1, V3, V6]; xn----ymb2782aov12f.xn--9hb; ;
xn----0mb9682aov12f.xn--9hb; # -ςⴜ.١
+-ΣႼ.١; -σႼ.١; [B1, P1, V3, V6]; xn----0mb770hun11i.xn--9hb; ; ; # -σႼ.١
+-σⴜ.١; -σⴜ.١; [B1, P1, V3, V6]; xn----0mb9682aov12f.xn--9hb; ; ; # -σⴜ.١
+-Σⴜ.١; -σⴜ.١; [B1, P1, V3, V6]; xn----0mb9682aov12f.xn--9hb; ; ; # -σⴜ.١
+៊.𝟮𑀿; ៊.2𑀿; [C2, V5]; xn--m4e.xn--2-tgnv469h; ; xn--m4e.xn--2-ku7i; [V5] #
៊.2𑀿
+៊.2𑀿; ; [C2, V5]; xn--m4e.xn--2-tgnv469h; ; xn--m4e.xn--2-ku7i; [V5] # ៊.2𑀿
+xn--m4e.xn--2-ku7i; ៊.2𑀿; [V5]; xn--m4e.xn--2-ku7i; ; ; # ៊.2𑀿
+xn--m4e.xn--2-tgnv469h; ៊.2𑀿; [C2, V5]; xn--m4e.xn--2-tgnv469h; ; ; # ៊.2𑀿
+≯𝟖。᩠𐫓; ≯8.᩠𐫓; [B1, P1, V5, V6]; xn--8-ogo.xn--jof5303iv1z5d; ; ; # ≯8.᩠𐫓
+≯𝟖。᩠𐫓; ≯8.᩠𐫓; [B1, P1, V5, V6]; xn--8-ogo.xn--jof5303iv1z5d; ; ; # ≯8.᩠𐫓
+≯8。᩠𐫓; ≯8.᩠𐫓; [B1, P1, V5, V6]; xn--8-ogo.xn--jof5303iv1z5d; ; ; # ≯8.᩠𐫓
+≯8。᩠𐫓; ≯8.᩠𐫓; [B1, P1, V5, V6]; xn--8-ogo.xn--jof5303iv1z5d; ; ; # ≯8.᩠𐫓
+xn--8-ogo.xn--jof5303iv1z5d; ≯8.᩠𐫓; [B1, V5, V6];
xn--8-ogo.xn--jof5303iv1z5d; ; ; # ≯8.᩠𐫓
+𑲫Ↄ٤。; 𑲫Ↄ٤.; [B1, C1, P1, V5, V6]; xn--dib999kcy1p.xn--0ug; ;
xn--dib999kcy1p.; [B1, P1, V5, V6] # 𑲫Ↄ٤.
+𑲫Ↄ٤。; 𑲫Ↄ٤.; [B1, C1, P1, V5, V6]; xn--dib999kcy1p.xn--0ug; ;
xn--dib999kcy1p.; [B1, P1, V5, V6] # 𑲫Ↄ٤.
+𑲫ↄ٤。; 𑲫ↄ٤.; [B1, C1, V5]; xn--dib100l8x1p.xn--0ug; ; xn--dib100l8x1p.; [B1,
V5] # 𑲫ↄ٤.
+xn--dib100l8x1p.; 𑲫ↄ٤.; [B1, V5]; xn--dib100l8x1p.; ; ; # 𑲫ↄ٤.
+xn--dib100l8x1p.xn--0ug; 𑲫ↄ٤.; [B1, C1, V5]; xn--dib100l8x1p.xn--0ug; ; ; #
𑲫ↄ٤.
+xn--dib999kcy1p.; 𑲫Ↄ٤.; [B1, V5, V6]; xn--dib999kcy1p.; ; ; # 𑲫Ↄ٤.
+xn--dib999kcy1p.xn--0ug; 𑲫Ↄ٤.; [B1, C1, V5, V6]; xn--dib999kcy1p.xn--0ug; ; ;
# 𑲫Ↄ٤.
+𑲫ↄ٤。; 𑲫ↄ٤.; [B1, C1, V5]; xn--dib100l8x1p.xn--0ug; ; xn--dib100l8x1p.; [B1,
V5] # 𑲫ↄ٤.
+ఀ𝟵ﲝ.ݐ⒈; ఀ9بح.ݐ⒈; [B1, C2, P1, V5, V6]; xn--9-1mcp570dl51a.xn--3ob977jmfd;
; xn--9-1mcp570d.xn--3ob470m; [B1, P1, V5, V6] # ఀ9بح.ݐ⒈
+ఀ9بح.ݐ1.; ; [B1, C2, V5]; xn--9-1mcp570dl51a.xn--1-x3c211q.; ;
xn--9-1mcp570d.xn--1-x3c.; [B1, V5] # ఀ9بح.ݐ1.
+xn--9-1mcp570d.xn--1-x3c.; ఀ9بح.ݐ1.; [B1, V5]; xn--9-1mcp570d.xn--1-x3c.; ; ;
# ఀ9بح.ݐ1.
+xn--9-1mcp570dl51a.xn--1-x3c211q.; ఀ9بح.ݐ1.; [B1, C2, V5];
xn--9-1mcp570dl51a.xn--1-x3c211q.; ; ; # ఀ9بح.ݐ1.
+xn--9-1mcp570d.xn--3ob470m; ఀ9بح.ݐ⒈; [B1, V5, V6]; xn--9-1mcp570d.xn--3ob470m;
; ; # ఀ9بح.ݐ⒈
+xn--9-1mcp570dl51a.xn--3ob977jmfd; ఀ9بح.ݐ⒈; [B1, C2, V5, V6];
xn--9-1mcp570dl51a.xn--3ob977jmfd; ; ; # ఀ9بح.ݐ⒈
+꫶。嬶ß葽; ꫶.嬶ß葽; [V5]; xn--2v9a.xn--zca7637b14za; ; xn--2v9a.xn--ss-q40dp97m; #
꫶.嬶ß葽
+꫶。嬶SS葽; ꫶.嬶ss葽; [V5]; xn--2v9a.xn--ss-q40dp97m; ; ; # ꫶.嬶ss葽
+꫶。嬶ss葽; ꫶.嬶ss葽; [V5]; xn--2v9a.xn--ss-q40dp97m; ; ; # ꫶.嬶ss葽
+꫶。嬶Ss葽; ꫶.嬶ss葽; [V5]; xn--2v9a.xn--ss-q40dp97m; ; ; # ꫶.嬶ss葽
+xn--2v9a.xn--ss-q40dp97m; ꫶.嬶ss葽; [V5]; xn--2v9a.xn--ss-q40dp97m; ; ; # ꫶.嬶ss葽
+xn--2v9a.xn--zca7637b14za; ꫶.嬶ß葽; [V5]; xn--2v9a.xn--zca7637b14za; ; ; # ꫶.嬶ß葽
+𑚶⒈。𐹺; 𑚶⒈.𐹺; [B5, B6, P1, V5, V6]; xn--tshz969f.xn--yo0d5914s; ; ; # 𑚶⒈.𐹺
+𑚶1.。𐹺; 𑚶1..𐹺; [B5, B6, P1, V5, V6, X4_2]; xn--1-3j0j..xn--yo0d5914s; [B5,
B6, P1, V5, V6, A4_2]; ; # 𑚶1..𐹺
+xn--1-3j0j..xn--yo0d5914s; 𑚶1..𐹺; [B5, B6, V5, V6, X4_2];
xn--1-3j0j..xn--yo0d5914s; [B5, B6, V5, V6, A4_2]; ; # 𑚶1..𐹺
+xn--tshz969f.xn--yo0d5914s; 𑚶⒈.𐹺; [B5, B6, V5, V6];
xn--tshz969f.xn--yo0d5914s; ; ; # 𑚶⒈.𐹺
+𑜤︒≮.ט; 𑜤︒≮.ט; [B1, B5, B6, P1, V5, V6]; xn--gdh5267fdzpa.xn--deb0091w5q9u;
; ; # 𑜤︒≮.ט
+𑜤︒≮.ט; 𑜤︒≮.ט; [B1, B5, B6, P1, V5, V6];
xn--gdh5267fdzpa.xn--deb0091w5q9u; ; ; # 𑜤︒≮.ט
+𑜤。≮.ט; 𑜤.≮.ט; [B1, B3, B5, B6, P1, V5, V6];
xn--ci2d.xn--gdh.xn--deb0091w5q9u; ; ; # 𑜤.≮.ט
+𑜤。≮.ט; 𑜤.≮.ט; [B1, B3, B5, B6, P1, V5, V6];
xn--ci2d.xn--gdh.xn--deb0091w5q9u; ; ; # 𑜤.≮.ט
+xn--ci2d.xn--gdh.xn--deb0091w5q9u; 𑜤.≮.ט; [B1, B3, B5, B6, V5, V6];
xn--ci2d.xn--gdh.xn--deb0091w5q9u; ; ; # 𑜤.≮.ט
+xn--gdh5267fdzpa.xn--deb0091w5q9u; 𑜤︒≮.ט; [B1, B5, B6, V5, V6];
xn--gdh5267fdzpa.xn--deb0091w5q9u; ; ; # 𑜤︒≮.ט
+󠆋.⇁ς; .⇁ς; [B1, P1, V6]; xn--lfb04106d.xn--3xa174mxv16m8moq; ;
xn--lfb04106d.xn--4xa964mxv16m8moq; # .⇁ς
+󠆋.⇁Σ; .⇁σ; [B1, P1, V6]; xn--lfb04106d.xn--4xa964mxv16m8moq; ; ; # .⇁σ
+󠆋.⇁σ; .⇁σ; [B1, P1, V6]; xn--lfb04106d.xn--4xa964mxv16m8moq; ; ; # .⇁σ
+xn--lfb04106d.xn--4xa964mxv16m8moq; .⇁σ; [B1, V6];
xn--lfb04106d.xn--4xa964mxv16m8moq; ; ; # .⇁σ
+xn--lfb04106d.xn--3xa174mxv16m8moq; .⇁ς; [B1, V6];
xn--lfb04106d.xn--3xa174mxv16m8moq; ; ; # .⇁ς
+ς𑐽𑜫。𐫄; ς𑐽𑜫.𐫄; [C1, P1, V6]; xn--3xa4260lk3b8z15g.xn--0ug4653g2xzf; ;
xn--4xa2260lk3b8z15g.xn--tw9ct349a; [P1, V6] # ς𑐽𑜫.𐫄
+ς𑐽𑜫。𐫄; ς𑐽𑜫.𐫄; [C1, P1, V6]; xn--3xa4260lk3b8z15g.xn--0ug4653g2xzf; ;
xn--4xa2260lk3b8z15g.xn--tw9ct349a; [P1, V6] # ς𑐽𑜫.𐫄
+Σ𑐽𑜫。𐫄; σ𑐽𑜫.𐫄; [C1, P1, V6]; xn--4xa2260lk3b8z15g.xn--0ug4653g2xzf; ;
xn--4xa2260lk3b8z15g.xn--tw9ct349a; [P1, V6] # σ𑐽𑜫.𐫄
+σ𑐽𑜫。𐫄; σ𑐽𑜫.𐫄; [C1, P1, V6]; xn--4xa2260lk3b8z15g.xn--0ug4653g2xzf; ;
xn--4xa2260lk3b8z15g.xn--tw9ct349a; [P1, V6] # σ𑐽𑜫.𐫄
+xn--4xa2260lk3b8z15g.xn--tw9ct349a; σ𑐽𑜫.𐫄; [V6];
xn--4xa2260lk3b8z15g.xn--tw9ct349a; ; ; # σ𑐽𑜫.𐫄
+xn--4xa2260lk3b8z15g.xn--0ug4653g2xzf; σ𑐽𑜫.𐫄; [C1, V6];
xn--4xa2260lk3b8z15g.xn--0ug4653g2xzf; ; ; # σ𑐽𑜫.𐫄
+xn--3xa4260lk3b8z15g.xn--0ug4653g2xzf; ς𑐽𑜫.𐫄; [C1, V6];
xn--3xa4260lk3b8z15g.xn--0ug4653g2xzf; ; ; # ς𑐽𑜫.𐫄
+Σ𑐽𑜫。𐫄; σ𑐽𑜫.𐫄; [C1, P1, V6]; xn--4xa2260lk3b8z15g.xn--0ug4653g2xzf; ;
xn--4xa2260lk3b8z15g.xn--tw9ct349a; [P1, V6] # σ𑐽𑜫.𐫄
+σ𑐽𑜫。𐫄; σ𑐽𑜫.𐫄; [C1, P1, V6]; xn--4xa2260lk3b8z15g.xn--0ug4653g2xzf; ;
xn--4xa2260lk3b8z15g.xn--tw9ct349a; [P1, V6] # σ𑐽𑜫.𐫄
+-。-ﱌݛ; -.-نحݛ; [B1, P1, V3, V6]; xn----o452j.xn----cnc8e38c; ; ; # -.-نحݛ
+-。-نحݛ; -.-نحݛ; [B1, P1, V3, V6]; xn----o452j.xn----cnc8e38c; ; ; # -.-نحݛ
+xn----o452j.xn----cnc8e38c; -.-نحݛ; [B1, V3, V6]; xn----o452j.xn----cnc8e38c;
; ; # -.-نحݛ
+⺢𝟤。🚷; ⺢2.🚷; [C2, P1, V6]; xn--2-4jtr4282f.xn--1ugz946p; ;
xn--2-4jtr4282f.xn--m78h; [P1, V6] # ⺢2.🚷
+⺢2。🚷; ⺢2.🚷; [C2, P1, V6]; xn--2-4jtr4282f.xn--1ugz946p; ;
xn--2-4jtr4282f.xn--m78h; [P1, V6] # ⺢2.🚷
+xn--2-4jtr4282f.xn--m78h; ⺢2.🚷; [V6]; xn--2-4jtr4282f.xn--m78h; ; ; # ⺢2.🚷
+xn--2-4jtr4282f.xn--1ugz946p; ⺢2.🚷; [C2, V6]; xn--2-4jtr4282f.xn--1ugz946p;
; ; # ⺢2.🚷
+ⷾ𐹲。; ⷾ𐹲.; [B5, B6, C2, P1, V6]; xn--hvc488g69j402t.xn--3e36c; ;
xn--hvc220of37m.xn--3e36c; [B5, B6, P1, V6] # ⷾ𐹲.
+ⷾ𐹲。; ⷾ𐹲.; [B5, B6, C2, P1, V6]; xn--hvc488g69j402t.xn--3e36c; ;
xn--hvc220of37m.xn--3e36c; [B5, B6, P1, V6] # ⷾ𐹲.
+xn--hvc220of37m.xn--3e36c; ⷾ𐹲.; [B5, B6, V6]; xn--hvc220of37m.xn--3e36c; ; ;
# ⷾ𐹲.
+xn--hvc488g69j402t.xn--3e36c; ⷾ𐹲.; [B5, B6, C2, V6];
xn--hvc488g69j402t.xn--3e36c; ; ; # ⷾ𐹲.
+𐹢.Ⴍ₉⁸; 𐹢.Ⴍ98; [B1, P1, V6]; xn--9n0d.xn--98-7ek; ; ; # 𐹢.Ⴍ98
+𐹢.Ⴍ98; ; [B1, P1, V6]; xn--9n0d.xn--98-7ek; ; ; # 𐹢.Ⴍ98
+𐹢.ⴍ98; ; [B1]; xn--9n0d.xn--98-u61a; ; ; # 𐹢.ⴍ98
+xn--9n0d.xn--98-u61a; 𐹢.ⴍ98; [B1]; xn--9n0d.xn--98-u61a; ; ; # 𐹢.ⴍ98
+xn--9n0d.xn--98-7ek; 𐹢.Ⴍ98; [B1, V6]; xn--9n0d.xn--98-7ek; ; ; # 𐹢.Ⴍ98
+𐹢.ⴍ₉⁸; 𐹢.ⴍ98; [B1]; xn--9n0d.xn--98-u61a; ; ; # 𐹢.ⴍ98
+͏。ß⒚≯; .ß⒚≯; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--zca612bx9vo5b; ;
.xn--ss-9if872xjjc; [B5, B6, P1, V6, A4_2] # .ß⒚≯
+͏。ß⒚≯; .ß⒚≯; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--zca612bx9vo5b; ;
.xn--ss-9if872xjjc; [B5, B6, P1, V6, A4_2] # .ß⒚≯
+͏。ß19.≯; .ß19.≯; [B1, B5, C1, P1, V6]; xn--0ug.xn--19-fia813f.xn--hdh; ;
.xn--ss19-w0i.xn--hdh; [B1, B5, P1, V6, A4_2] # .ß19.≯
+͏。ß19.≯; .ß19.≯; [B1, B5, C1, P1, V6]; xn--0ug.xn--19-fia813f.xn--hdh; ;
.xn--ss19-w0i.xn--hdh; [B1, B5, P1, V6, A4_2] # .ß19.≯
+͏。SS19.≯; .ss19.≯; [B1, B5, C1, P1, V6]; xn--0ug.xn--ss19-w0i.xn--hdh; ;
.xn--ss19-w0i.xn--hdh; [B1, B5, P1, V6, A4_2] # .ss19.≯
+͏。SS19.≯; .ss19.≯; [B1, B5, C1, P1, V6]; xn--0ug.xn--ss19-w0i.xn--hdh; ;
.xn--ss19-w0i.xn--hdh; [B1, B5, P1, V6, A4_2] # .ss19.≯
+͏。ss19.≯; .ss19.≯; [B1, B5, C1, P1, V6]; xn--0ug.xn--ss19-w0i.xn--hdh; ;
.xn--ss19-w0i.xn--hdh; [B1, B5, P1, V6, A4_2] # .ss19.≯
+͏。ss19.≯; .ss19.≯; [B1, B5, C1, P1, V6]; xn--0ug.xn--ss19-w0i.xn--hdh; ;
.xn--ss19-w0i.xn--hdh; [B1, B5, P1, V6, A4_2] # .ss19.≯
+͏。Ss19.≯; .ss19.≯; [B1, B5, C1, P1, V6]; xn--0ug.xn--ss19-w0i.xn--hdh; ;
.xn--ss19-w0i.xn--hdh; [B1, B5, P1, V6, A4_2] # .ss19.≯
+͏。Ss19.≯; .ss19.≯; [B1, B5, C1, P1, V6]; xn--0ug.xn--ss19-w0i.xn--hdh; ;
.xn--ss19-w0i.xn--hdh; [B1, B5, P1, V6, A4_2] # .ss19.≯
+.xn--ss19-w0i.xn--hdh; .ss19.≯; [B1, B5, V6, X4_2]; .xn--ss19-w0i.xn--hdh;
[B1, B5, V6, A4_2]; ; # .ss19.≯
+xn--0ug.xn--ss19-w0i.xn--hdh; .ss19.≯; [B1, B5, C1, V6];
xn--0ug.xn--ss19-w0i.xn--hdh; ; ; # .ss19.≯
+xn--0ug.xn--19-fia813f.xn--hdh; .ß19.≯; [B1, B5, C1, V6];
xn--0ug.xn--19-fia813f.xn--hdh; ; ; # .ß19.≯
+͏。SS⒚≯; .ss⒚≯; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--ss-9if872xjjc; ;
.xn--ss-9if872xjjc; [B5, B6, P1, V6, A4_2] # .ss⒚≯
+͏。SS⒚≯; .ss⒚≯; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--ss-9if872xjjc; ;
.xn--ss-9if872xjjc; [B5, B6, P1, V6, A4_2] # .ss⒚≯
+͏。ss⒚≯; .ss⒚≯; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--ss-9if872xjjc; ;
.xn--ss-9if872xjjc; [B5, B6, P1, V6, A4_2] # .ss⒚≯
+͏。ss⒚≯; .ss⒚≯; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--ss-9if872xjjc; ;
.xn--ss-9if872xjjc; [B5, B6, P1, V6, A4_2] # .ss⒚≯
+͏。Ss⒚≯; .ss⒚≯; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--ss-9if872xjjc; ;
.xn--ss-9if872xjjc; [B5, B6, P1, V6, A4_2] # .ss⒚≯
+͏。Ss⒚≯; .ss⒚≯; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--ss-9if872xjjc; ;
.xn--ss-9if872xjjc; [B5, B6, P1, V6, A4_2] # .ss⒚≯
+.xn--ss-9if872xjjc; .ss⒚≯; [B5, B6, V6, X4_2]; .xn--ss-9if872xjjc; [B5, B6,
V6, A4_2]; ; # .ss⒚≯
+xn--0ug.xn--ss-9if872xjjc; .ss⒚≯; [B1, B5, B6, C1, V6];
xn--0ug.xn--ss-9if872xjjc; ; ; # .ss⒚≯
+xn--0ug.xn--zca612bx9vo5b; .ß⒚≯; [B1, B5, B6, C1, V6];
xn--0ug.xn--zca612bx9vo5b; ; ; # .ß⒚≯
+ᡌ.𣃔; ᡌ.𣃔; [B1, C1, P1, V6]; xn--c8e180bqz13b.xn--od1j; ;
xn--c8e5919u.xn--od1j; [B2, B3, P1, V6] # ᡌ.𣃔
+ᡌ.𣃔; ; [B1, C1, P1, V6]; xn--c8e180bqz13b.xn--od1j; ; xn--c8e5919u.xn--od1j;
[B2, B3, P1, V6] # ᡌ.𣃔
+xn--c8e5919u.xn--od1j; ᡌ.𣃔; [B2, B3, V6]; xn--c8e5919u.xn--od1j; ; ; # ᡌ.𣃔
+xn--c8e180bqz13b.xn--od1j; ᡌ.𣃔; [B1, C1, V6]; xn--c8e180bqz13b.xn--od1j; ; ;
# ᡌ.𣃔
+ߐ-。ྠႻ𝆬; ߐ-.ྠႻ𝆬; [B1, B2, B3, P1, V5, V6];
xn----8bd11730jefvw.xn--wfd08cd265hgsxa; ; ; # ߐ-.ྠႻ𝆬
+ߐ-。ྠⴛ𝆬; ߐ-.ྠⴛ𝆬; [B1, B2, B3, P1, V5, V6];
xn----8bd11730jefvw.xn--wfd802mpm20agsxa; ; ; # ߐ-.ྠⴛ𝆬
+xn----8bd11730jefvw.xn--wfd802mpm20agsxa; ߐ-.ྠⴛ𝆬; [B1, B2, B3, V5, V6];
xn----8bd11730jefvw.xn--wfd802mpm20agsxa; ; ; # ߐ-.ྠⴛ𝆬
+xn----8bd11730jefvw.xn--wfd08cd265hgsxa; ߐ-.ྠႻ𝆬; [B1, B2, B3, V5, V6];
xn----8bd11730jefvw.xn--wfd08cd265hgsxa; ; ; # ߐ-.ྠႻ𝆬
+𝨥。⫟𑈾; 𝨥.⫟𑈾; [V5]; xn--n82h.xn--63iw010f; ; ; # 𝨥.⫟𑈾
+xn--n82h.xn--63iw010f; 𝨥.⫟𑈾; [V5]; xn--n82h.xn--63iw010f; ; ; # 𝨥.⫟𑈾
+⾛ݓ.Ⴕ𞠬; 走ݓ.Ⴕ𞠬; [B5, B6, C2, P1, V6]; xn--6ob9779d.xn--mfb785czmm0y85b; ;
xn--6ob9779d.xn--mfb785ck569a; [B5, B6, P1, V6] # 走ݓ.Ⴕ𞠬
+走ݓ.Ⴕ𞠬; ; [B5, B6, C2, P1, V6]; xn--6ob9779d.xn--mfb785czmm0y85b; ;
xn--6ob9779d.xn--mfb785ck569a; [B5, B6, P1, V6] # 走ݓ.Ⴕ𞠬
+走ݓ.ⴕ𞠬; ; [B5, B6, C2, P1, V6]; xn--6ob9779d.xn--mfb444k5gjt754b; ;
xn--6ob9779d.xn--mfb511rxu80a; [B5, B6, P1, V6] # 走ݓ.ⴕ𞠬
+xn--6ob9779d.xn--mfb511rxu80a; 走ݓ.ⴕ𞠬; [B5, B6, V6];
xn--6ob9779d.xn--mfb511rxu80a; ; ; # 走ݓ.ⴕ𞠬
+xn--6ob9779d.xn--mfb444k5gjt754b; 走ݓ.ⴕ𞠬; [B5, B6, C2, V6];
xn--6ob9779d.xn--mfb444k5gjt754b; ; ; # 走ݓ.ⴕ𞠬
+xn--6ob9779d.xn--mfb785ck569a; 走ݓ.Ⴕ𞠬; [B5, B6, V6];
xn--6ob9779d.xn--mfb785ck569a; ; ; # 走ݓ.Ⴕ𞠬
+xn--6ob9779d.xn--mfb785czmm0y85b; 走ݓ.Ⴕ𞠬; [B5, B6, C2, V6];
xn--6ob9779d.xn--mfb785czmm0y85b; ; ; # 走ݓ.Ⴕ𞠬
+⾛ݓ.ⴕ𞠬; 走ݓ.ⴕ𞠬; [B5, B6, C2, P1, V6]; xn--6ob9779d.xn--mfb444k5gjt754b; ;
xn--6ob9779d.xn--mfb511rxu80a; [B5, B6, P1, V6] # 走ݓ.ⴕ𞠬
+-ᢗ🄄.𑜢; ; [C1, P1, V3, V5, V6]; xn----pck312bx563c.xn--9h2d; ;
xn----pck1820x.xn--9h2d; [P1, V3, V5, V6] # -ᢗ🄄.𑜢
+-ᢗ3,.𑜢; ; [C1, P1, V3, V5, V6]; xn---3,-3eu051c.xn--9h2d; ;
xn---3,-3eu.xn--9h2d; [P1, V3, V5, V6] # -ᢗ3,.𑜢
+xn---3,-3eu.xn--9h2d; -ᢗ3,.𑜢; [P1, V3, V5, V6]; xn---3,-3eu.xn--9h2d; ; ; #
-ᢗ3,.𑜢
+xn---3,-3eu051c.xn--9h2d; -ᢗ3,.𑜢; [C1, P1, V3, V5, V6];
xn---3,-3eu051c.xn--9h2d; ; ; # -ᢗ3,.𑜢
+xn----pck1820x.xn--9h2d; -ᢗ🄄.𑜢; [V3, V5, V6]; xn----pck1820x.xn--9h2d; ; ; #
-ᢗ🄄.𑜢
+xn----pck312bx563c.xn--9h2d; -ᢗ🄄.𑜢; [C1, V3, V5, V6];
xn----pck312bx563c.xn--9h2d; ; ; # -ᢗ🄄.𑜢
+≠.Ⴚ; ; [B1, C1, P1, V6]; xn--0ug83gn618a21ov.xn--ynd49496l; ;
xn--1ch2293gv3nr.xn--ynd49496l; [B1, P1, V6] # ≠.Ⴚ
+≠.Ⴚ; ≠.Ⴚ; [B1, C1, P1, V6]; xn--0ug83gn618a21ov.xn--ynd49496l; ;
xn--1ch2293gv3nr.xn--ynd49496l; [B1, P1, V6] # ≠.Ⴚ
+≠.ⴚ; ≠.ⴚ; [B1, C1, P1, V6]; xn--0ug83gn618a21ov.xn--ilj23531g; ;
xn--1ch2293gv3nr.xn--ilj23531g; [B1, P1, V6] # ≠.ⴚ
+≠.ⴚ; ; [B1, C1, P1, V6]; xn--0ug83gn618a21ov.xn--ilj23531g; ;
xn--1ch2293gv3nr.xn--ilj23531g; [B1, P1, V6] # ≠.ⴚ
+xn--1ch2293gv3nr.xn--ilj23531g; ≠.ⴚ; [B1, V6];
xn--1ch2293gv3nr.xn--ilj23531g; ; ; # ≠.ⴚ
+xn--0ug83gn618a21ov.xn--ilj23531g; ≠.ⴚ; [B1, C1, V6];
xn--0ug83gn618a21ov.xn--ilj23531g; ; ; # ≠.ⴚ
+xn--1ch2293gv3nr.xn--ynd49496l; ≠.Ⴚ; [B1, V6];
xn--1ch2293gv3nr.xn--ynd49496l; ; ; # ≠.Ⴚ
+xn--0ug83gn618a21ov.xn--ynd49496l; ≠.Ⴚ; [B1, C1, V6];
xn--0ug83gn618a21ov.xn--ynd49496l; ; ; # ≠.Ⴚ
+٩。󠇀𑇊; ٩.𑇊; [B1, B3, B6, V5]; xn--iib.xn--6d1d; ; ; # ٩.𑇊
+٩。󠇀𑇊; ٩.𑇊; [B1, B3, B6, V5]; xn--iib.xn--6d1d; ; ; # ٩.𑇊
+xn--iib.xn--6d1d; ٩.𑇊; [B1, B3, B6, V5]; xn--iib.xn--6d1d; ; ; # ٩.𑇊
+ႆ≯⒍。-; ႆ≯⒍.-; [B1, P1, V3, V5, V6]; xn--hmd482gqqb8730g.-; ; ; # ႆ≯⒍.-
+ႆ≯⒍。-; ႆ≯⒍.-; [B1, P1, V3, V5, V6]; xn--hmd482gqqb8730g.-; ; ; # ႆ≯⒍.-
+ႆ≯6.。-; ႆ≯6..-; [B1, P1, V3, V5, V6, X4_2]; xn--6-oyg968k7h74b..-; [B1, P1,
V3, V5, V6, A4_2]; ; # ႆ≯6..-
+ႆ≯6.。-; ႆ≯6..-; [B1, P1, V3, V5, V6, X4_2]; xn--6-oyg968k7h74b..-; [B1, P1,
V3, V5, V6, A4_2]; ; # ႆ≯6..-
+xn--6-oyg968k7h74b..-; ႆ≯6..-; [B1, V3, V5, V6, X4_2]; xn--6-oyg968k7h74b..-;
[B1, V3, V5, V6, A4_2]; ; # ႆ≯6..-
+xn--hmd482gqqb8730g.-; ႆ≯⒍.-; [B1, V3, V5, V6]; xn--hmd482gqqb8730g.-; ; ; #
ႆ≯⒍.-
+឴.쮇-; ; [P1, V3, V5, V6]; xn--z3e.xn----938f; ; ; # .쮇-
+឴.쮇-; ឴.쮇-; [P1, V3, V5, V6]; xn--z3e.xn----938f; ; ; # .쮇-
+xn--z3e.xn----938f; ឴.쮇-; [V3, V5, V6]; xn--z3e.xn----938f; ; ; # .쮇-
+𑓂。⒈-; 𑓂.⒈-; [C1, P1, V6]; xn--0ugy057g.xn----dcp29674o; ;
xn--wz1d.xn----dcp29674o; [P1, V5, V6] # 𑓂.⒈-
+𑓂。1.-; 𑓂.1.-; [C1, P1, V3, V6]; xn--0ugy057g.1.xn----rg03o; ;
xn--wz1d.1.xn----rg03o; [P1, V3, V5, V6] # 𑓂.1.-
+xn--wz1d.1.xn----rg03o; 𑓂.1.-; [V3, V5, V6]; xn--wz1d.1.xn----rg03o; ; ; #
𑓂.1.-
+xn--0ugy057g.1.xn----rg03o; 𑓂.1.-; [C1, V3, V6]; xn--0ugy057g.1.xn----rg03o;
; ; # 𑓂.1.-
+xn--wz1d.xn----dcp29674o; 𑓂.⒈-; [V5, V6]; xn--wz1d.xn----dcp29674o; ; ; #
𑓂.⒈-
+xn--0ugy057g.xn----dcp29674o; 𑓂.⒈-; [C1, V6]; xn--0ugy057g.xn----dcp29674o;
; ; # 𑓂.⒈-
+⒈ﺮ。⃩🖞𖬴; ⒈ر.⃩🖞𖬴; [B1, C1, P1, V5, V6]; xn--wgb253kmfd.xn--0ugz6a8040fty5d;
; xn--wgb746m.xn--c1g6021kg18c; [B1, P1, V5, V6] # ⒈ر.⃩🖞𖬴
+1.ر。⃩🖞𖬴; 1.ر.⃩🖞𖬴; [B1, B3, C1, V5]; 1.xn--wgb253k.xn--0ugz6a8040fty5d; ;
1.xn--wgb.xn--c1g6021kg18c; [B1, V5] # 1.ر.⃩🖞𖬴
+1.xn--wgb.xn--c1g6021kg18c; 1.ر.⃩🖞𖬴; [B1, V5]; 1.xn--wgb.xn--c1g6021kg18c; ; ;
# 1.ر.⃩🖞𖬴
+1.xn--wgb253k.xn--0ugz6a8040fty5d; 1.ر.⃩🖞𖬴; [B1, B3, C1, V5];
1.xn--wgb253k.xn--0ugz6a8040fty5d; ; ; # 1.ر.⃩🖞𖬴
+xn--wgb746m.xn--c1g6021kg18c; ⒈ر.⃩🖞𖬴; [B1, V5, V6];
xn--wgb746m.xn--c1g6021kg18c; ; ; # ⒈ر.⃩🖞𖬴
+xn--wgb253kmfd.xn--0ugz6a8040fty5d; ⒈ر.⃩🖞𖬴; [B1, C1, V5, V6];
xn--wgb253kmfd.xn--0ugz6a8040fty5d; ; ; # ⒈ر.⃩🖞𖬴
+。𝟐ᮨߔ; .2ᮨߔ; [B1, P1, V6]; xn--xm89d.xn--2-icd143m; ; ; # .2ᮨߔ
+。2ᮨߔ; .2ᮨߔ; [B1, P1, V6]; xn--xm89d.xn--2-icd143m; ; ; # .2ᮨߔ
+xn--xm89d.xn--2-icd143m; .2ᮨߔ; [B1, V6]; xn--xm89d.xn--2-icd143m; ; ; # .2ᮨߔ
+ﶏ.ς𐹷; مخم.ς𐹷; [B2, B3, B5, B6, C2, P1, V6];
xn--tgb9bb64691z.xn--3xa006lrp7n; ; xn--tgb9bb64691z.xn--4xa6667k; [B2, B3, B5,
B6, P1, V6] # مخم.ς𐹷
+مخم.ς𐹷; ; [B2, B3, B5, B6, C2, P1, V6]; xn--tgb9bb64691z.xn--3xa006lrp7n; ;
xn--tgb9bb64691z.xn--4xa6667k; [B2, B3, B5, B6, P1, V6] # مخم.ς𐹷
+مخم.Σ𐹷; مخم.σ𐹷; [B2, B3, B5, B6, C2, P1, V6];
xn--tgb9bb64691z.xn--4xa895lrp7n; ; xn--tgb9bb64691z.xn--4xa6667k; [B2, B3, B5,
B6, P1, V6] # مخم.σ𐹷
+مخم.σ𐹷; ; [B2, B3, B5, B6, C2, P1, V6]; xn--tgb9bb64691z.xn--4xa895lrp7n; ;
xn--tgb9bb64691z.xn--4xa6667k; [B2, B3, B5, B6, P1, V6] # مخم.σ𐹷
+xn--tgb9bb64691z.xn--4xa6667k; مخم.σ𐹷; [B2, B3, B5, B6, V6];
xn--tgb9bb64691z.xn--4xa6667k; ; ; # مخم.σ𐹷
+xn--tgb9bb64691z.xn--4xa895lrp7n; مخم.σ𐹷; [B2, B3, B5, B6, C2, V6];
xn--tgb9bb64691z.xn--4xa895lrp7n; ; ; # مخم.σ𐹷
+xn--tgb9bb64691z.xn--3xa006lrp7n; مخم.ς𐹷; [B2, B3, B5, B6, C2, V6];
xn--tgb9bb64691z.xn--3xa006lrp7n; ; ; # مخم.ς𐹷
+ﶏ.Σ𐹷; مخم.σ𐹷; [B2, B3, B5, B6, C2, P1, V6];
xn--tgb9bb64691z.xn--4xa895lrp7n; ; xn--tgb9bb64691z.xn--4xa6667k; [B2, B3, B5,
B6, P1, V6] # مخم.σ𐹷
+ﶏ.σ𐹷; مخم.σ𐹷; [B2, B3, B5, B6, C2, P1, V6];
xn--tgb9bb64691z.xn--4xa895lrp7n; ; xn--tgb9bb64691z.xn--4xa6667k; [B2, B3, B5,
B6, P1, V6] # مخم.σ𐹷
+⒎ہ。꫶۵𐇽; ⒎ہ.꫶۵𐇽; [B1, P1, V5, V6]; xn--nfb98ai25e.xn--imb3805fxt8b; ; ; #
⒎ہ.꫶۵𐇽
+7.ہ。꫶۵𐇽; 7.ہ.꫶۵𐇽; [B1, P1, V5, V6]; 7.xn--nfb98a.xn--imb3805fxt8b; ; ; #
7.ہ.꫶۵𐇽
+7.xn--nfb98a.xn--imb3805fxt8b; 7.ہ.꫶۵𐇽; [B1, V5, V6];
7.xn--nfb98a.xn--imb3805fxt8b; ; ; # 7.ہ.꫶۵𐇽
+xn--nfb98ai25e.xn--imb3805fxt8b; ⒎ہ.꫶۵𐇽; [B1, V5, V6];
xn--nfb98ai25e.xn--imb3805fxt8b; ; ; # ⒎ہ.꫶۵𐇽
+-ᡥ᠆。ᩝ𐹡; -ᡥ᠆.ᩝ𐹡; [B1, P1, V3, V6]; xn----f3j6s87156i.xn--nfb035hoo2p; ; ;
# -ᡥ᠆.ᩝ𐹡
+xn----f3j6s87156i.xn--nfb035hoo2p; -ᡥ᠆.ᩝ𐹡; [B1, V3, V6];
xn----f3j6s87156i.xn--nfb035hoo2p; ; ; # -ᡥ᠆.ᩝ𐹡
+.ڽ٣֖; ; [B1, C2]; xn--1ug.xn--hcb32bni; ; .xn--hcb32bni; [A4_2] # .ڽ٣֖
+.xn--hcb32bni; .ڽ٣֖; [X4_2]; .xn--hcb32bni; [A4_2]; ; # .ڽ٣֖
+xn--1ug.xn--hcb32bni; .ڽ٣֖; [B1, C2]; xn--1ug.xn--hcb32bni; ; ; # .ڽ٣֖
+xn--hcb32bni; ڽ٣֖; ; xn--hcb32bni; ; ; # ڽ٣֖
+ڽ٣֖; ; ; xn--hcb32bni; ; ; # ڽ٣֖
+㒧۱.Ⴚٸ; 㒧۱.Ⴚيٴ; [B5, B6, C2, P1, V6]; xn--emb715u.xn--mhb8f817ao2p; ;
xn--emb715u.xn--mhb8f817a; [B5, B6, P1, V6] # 㒧۱.Ⴚيٴ
+㒧۱.Ⴚيٴ; ; [B5, B6, C2, P1, V6]; xn--emb715u.xn--mhb8f817ao2p; ;
xn--emb715u.xn--mhb8f817a; [B5, B6, P1, V6] # 㒧۱.Ⴚيٴ
+㒧۱.ⴚيٴ; ; [B5, B6, C2]; xn--emb715u.xn--mhb8f960g03l; ;
xn--emb715u.xn--mhb8fy26k; [B5, B6] # 㒧۱.ⴚيٴ
+xn--emb715u.xn--mhb8fy26k; 㒧۱.ⴚيٴ; [B5, B6]; xn--emb715u.xn--mhb8fy26k; ; ; #
㒧۱.ⴚيٴ
+xn--emb715u.xn--mhb8f960g03l; 㒧۱.ⴚيٴ; [B5, B6, C2];
xn--emb715u.xn--mhb8f960g03l; ; ; # 㒧۱.ⴚيٴ
+xn--emb715u.xn--mhb8f817a; 㒧۱.Ⴚيٴ; [B5, B6, V6]; xn--emb715u.xn--mhb8f817a; ;
; # 㒧۱.Ⴚيٴ
+xn--emb715u.xn--mhb8f817ao2p; 㒧۱.Ⴚيٴ; [B5, B6, C2, V6];
xn--emb715u.xn--mhb8f817ao2p; ; ; # 㒧۱.Ⴚيٴ
+㒧۱.ⴚٸ; 㒧۱.ⴚيٴ; [B5, B6, C2]; xn--emb715u.xn--mhb8f960g03l; ;
xn--emb715u.xn--mhb8fy26k; [B5, B6] # 㒧۱.ⴚيٴ
+ྔꡋ-.-𖬴; ྔꡋ-.-𖬴; [V3, V5]; xn----ukg9938i.xn----4u5m; ; ; # ྔꡋ-.-𖬴
+ྔꡋ-.-𖬴; ; [V3, V5]; xn----ukg9938i.xn----4u5m; ; ; # ྔꡋ-.-𖬴
+xn----ukg9938i.xn----4u5m; ྔꡋ-.-𖬴; [V3, V5]; xn----ukg9938i.xn----4u5m; ; ; #
ྔꡋ-.-𖬴
+-⋢.标-; -⋢.标-; [C1, P1, V3, V6]; xn----sgn90kn5663a.xn----qj7b; ;
xn----9mo67451g.xn----qj7b; [P1, V3, V6] # -⋢.标-
+-⋢.标-; -⋢.标-; [C1, P1, V3, V6]; xn----sgn90kn5663a.xn----qj7b; ;
xn----9mo67451g.xn----qj7b; [P1, V3, V6] # -⋢.标-
+-⋢.标-; ; [C1, P1, V3, V6]; xn----sgn90kn5663a.xn----qj7b; ;
xn----9mo67451g.xn----qj7b; [P1, V3, V6] # -⋢.标-
+-⋢.标-; -⋢.标-; [C1, P1, V3, V6]; xn----sgn90kn5663a.xn----qj7b; ;
xn----9mo67451g.xn----qj7b; [P1, V3, V6] # -⋢.标-
+xn----9mo67451g.xn----qj7b; -⋢.标-; [V3, V6]; xn----9mo67451g.xn----qj7b; ; ;
# -⋢.标-
+xn----sgn90kn5663a.xn----qj7b; -⋢.标-; [C1, V3, V6];
xn----sgn90kn5663a.xn----qj7b; ; ; # -⋢.标-
+ٱ.ςߜ; ٱ.ςߜ; [B5, B6]; xn--qib.xn--3xa41s; ; xn--qib.xn--4xa21s; # ٱ.ςߜ
+ٱ.ςߜ; ; [B5, B6]; xn--qib.xn--3xa41s; ; xn--qib.xn--4xa21s; # ٱ.ςߜ
+ٱ.Σߜ; ٱ.σߜ; [B5, B6]; xn--qib.xn--4xa21s; ; ; # ٱ.σߜ
+ٱ.σߜ; ; [B5, B6]; xn--qib.xn--4xa21s; ; ; # ٱ.σߜ
+xn--qib.xn--4xa21s; ٱ.σߜ; [B5, B6]; xn--qib.xn--4xa21s; ; ; # ٱ.σߜ
+xn--qib.xn--3xa41s; ٱ.ςߜ; [B5, B6]; xn--qib.xn--3xa41s; ; ; # ٱ.ςߜ
+ٱ.Σߜ; ٱ.σߜ; [B5, B6]; xn--qib.xn--4xa21s; ; ; # ٱ.σߜ
+ٱ.σߜ; ٱ.σߜ; [B5, B6]; xn--qib.xn--4xa21s; ; ; # ٱ.σߜ
+.ࣁ𑑂𱼱; .ࣁ𑑂𱼱; [B2, B3, B5, B6, C2, P1, V6];
xn--nfb17942h.xn--nzb240jv06otevq; ; xn--nfb17942h.xn--nzb6708kx3pn; [B2, B3,
B5, B6, P1, V6] # .ࣁ𑑂
+.ࣁ𑑂𱼱; ; [B2, B3, B5, B6, C2, P1, V6]; xn--nfb17942h.xn--nzb240jv06otevq; ;
xn--nfb17942h.xn--nzb6708kx3pn; [B2, B3, B5, B6, P1, V6] # .ࣁ𑑂
+xn--nfb17942h.xn--nzb6708kx3pn; .ࣁ𑑂𱼱; [B2, B3, B5, B6, V6];
xn--nfb17942h.xn--nzb6708kx3pn; ; ; # .ࣁ𑑂
+xn--nfb17942h.xn--nzb240jv06otevq; .ࣁ𑑂𱼱; [B2, B3, B5, B6, C2, V6];
xn--nfb17942h.xn--nzb240jv06otevq; ; ; # .ࣁ𑑂
+𐹾𐋩。᯲; 𐹾𐋩.᯲; [B1, P1, V5, V6]; xn--d97cn8rn44p.xn--0zf; ; ; # 𐹾𐋩.᯲
+𐹾𐋩。᯲; 𐹾𐋩.᯲; [B1, P1, V5, V6]; xn--d97cn8rn44p.xn--0zf; ; ; # 𐹾𐋩.᯲
+xn--d97cn8rn44p.xn--0zf; 𐹾𐋩.᯲; [B1, V5, V6]; xn--d97cn8rn44p.xn--0zf; ; ; #
𐹾𐋩.᯲
+6ᅠᰳ.锰ܬς; ; [B1, B5, P1, V6]; xn--6-5bh476ewr517a.xn--3xa16ohw6pk078g; ;
xn--6-5bh476ewr517a.xn--4xa95ohw6pk078g; # 6ᰳ.锰ܬς
+6ᅠᰳ.锰ܬΣ; 6ᅠᰳ.锰ܬσ; [B1, B5, P1, V6];
xn--6-5bh476ewr517a.xn--4xa95ohw6pk078g; ; ; # 6ᰳ.锰ܬσ
+6ᅠᰳ.锰ܬσ; ; [B1, B5, P1, V6]; xn--6-5bh476ewr517a.xn--4xa95ohw6pk078g; ; ; #
6ᰳ.锰ܬσ
+xn--6-5bh476ewr517a.xn--4xa95ohw6pk078g; 6ᅠᰳ.锰ܬσ; [B1, B5, V6];
xn--6-5bh476ewr517a.xn--4xa95ohw6pk078g; ; ; # 6ᰳ.锰ܬσ
+xn--6-5bh476ewr517a.xn--3xa16ohw6pk078g; 6ᅠᰳ.锰ܬς; [B1, B5, V6];
xn--6-5bh476ewr517a.xn--3xa16ohw6pk078g; ; ; # 6ᰳ.锰ܬς
+ڳ︄𝟽。𐹽; ڳ7.𐹽; [B1, B2, P1, V6]; xn--7-yuc34665f.xn--1o0d; ; ; # ڳ7.𐹽
+ڳ︄7。𐹽; ڳ7.𐹽; [B1, B2, P1, V6]; xn--7-yuc34665f.xn--1o0d; ; ; # ڳ7.𐹽
+xn--7-yuc34665f.xn--1o0d; ڳ7.𐹽; [B1, B2, V6]; xn--7-yuc34665f.xn--1o0d; ; ;
# ڳ7.𐹽
+.⫞; .⫞; [B1, C1, P1, V6]; xn--pw6h.xn--0ug283b; ; xn--pw6h.xn--53i; [B1,
P1, V6] # .⫞
+.⫞; ; [B1, C1, P1, V6]; xn--pw6h.xn--0ug283b; ; xn--pw6h.xn--53i; [B1, P1,
V6] # .⫞
+xn--pw6h.xn--53i; .⫞; [B1, V6]; xn--pw6h.xn--53i; ; ; # .⫞
+xn--pw6h.xn--0ug283b; .⫞; [B1, C1, V6]; xn--pw6h.xn--0ug283b; ; ; # .⫞
+-.۠ᢚ-; ; [P1, V3, V5, V6]; xn----qi38c.xn----jxc827k; ; ; # -.۠ᢚ-
+xn----qi38c.xn----jxc827k; -.۠ᢚ-; [V3, V5, V6]; xn----qi38c.xn----jxc827k; ;
; # -.۠ᢚ-
+⌁𑄴.𝟩٬; ⌁𑄴.7٬; [B1, C1, C2]; xn--1ug38i2093a.xn--7-xqc297q; ;
xn--nhh5394g.xn--7-xqc; [B1] # ⌁𑄴.7٬
+⌁𑄴.7٬; ; [B1, C1, C2]; xn--1ug38i2093a.xn--7-xqc297q; ;
xn--nhh5394g.xn--7-xqc; [B1] # ⌁𑄴.7٬
+xn--nhh5394g.xn--7-xqc; ⌁𑄴.7٬; [B1]; xn--nhh5394g.xn--7-xqc; ; ; # ⌁𑄴.7٬
+xn--1ug38i2093a.xn--7-xqc297q; ⌁𑄴.7٬; [B1, C1, C2];
xn--1ug38i2093a.xn--7-xqc297q; ; ; # ⌁𑄴.7٬
+︒ﴅืﻼ。岓᯲ᡂ; ︒صىืلا.岓᯲ᡂ; [B1, P1, V6];
xn--mgb1a7bt462hf267a.xn--17e10qe61f9r71s; ; ; # ︒صىืلا.岓᯲ᡂ
+。صىืلا。岓᯲ᡂ; .صىืلا.岓᯲ᡂ; [P1, V6, X4_2];
.xn--mgb1a7bt462h.xn--17e10qe61f9r71s; [P1, V6, A4_2]; ; # .صىืلا.岓᯲ᡂ
+.xn--mgb1a7bt462h.xn--17e10qe61f9r71s; .صىืلا.岓᯲ᡂ; [V6, X4_2];
.xn--mgb1a7bt462h.xn--17e10qe61f9r71s; [V6, A4_2]; ; # .صىืلا.岓᯲ᡂ
+xn--mgb1a7bt462hf267a.xn--17e10qe61f9r71s; ︒صىืلا.岓᯲ᡂ; [B1, V6];
xn--mgb1a7bt462hf267a.xn--17e10qe61f9r71s; ; ; # ︒صىืلا.岓᯲ᡂ
+𐹨。8𑁆; 𐹨.8𑁆; [B1]; xn--go0d.xn--8-yu7i; ; ; # 𐹨.8𑁆
+xn--go0d.xn--8-yu7i; 𐹨.8𑁆; [B1]; xn--go0d.xn--8-yu7i; ; ; # 𐹨.8𑁆
+𞀕ൃ.ꡚࣺ𐹰ൄ; 𞀕ൃ.ꡚࣺ𐹰ൄ; [B1, B3, B5, B6, V5]; xn--mxc5210v.xn--90b01t8u2p1ltd; ; ;
# 𞀕ൃ.ꡚࣺ𐹰ൄ
+𞀕ൃ.ꡚࣺ𐹰ൄ; ; [B1, B3, B5, B6, V5]; xn--mxc5210v.xn--90b01t8u2p1ltd; ; ; #
𞀕ൃ.ꡚࣺ𐹰ൄ
+xn--mxc5210v.xn--90b01t8u2p1ltd; 𞀕ൃ.ꡚࣺ𐹰ൄ; [B1, B3, B5, B6, V5];
xn--mxc5210v.xn--90b01t8u2p1ltd; ; ; # 𞀕ൃ.ꡚࣺ𐹰ൄ
+̃。; ̃.; [B1, B5, B6, P1, V6]; xn--nsa1265kp9z9e.xn--xt36e; ; ; # ̃.
+̃。; ̃.; [B1, B5, B6, P1, V6]; xn--nsa1265kp9z9e.xn--xt36e; ; ; # ̃.
+xn--nsa1265kp9z9e.xn--xt36e; ̃.; [B1, B5, B6, V6];
xn--nsa1265kp9z9e.xn--xt36e; ; ; # ̃.
+ᢌ.-࡚; ᢌ.-࡚; [V3]; xn--59e.xn----5jd; ; ; # ᢌ.-࡚
+ᢌ.-࡚; ; [V3]; xn--59e.xn----5jd; ; ; # ᢌ.-࡚
+xn--59e.xn----5jd; ᢌ.-࡚; [V3]; xn--59e.xn----5jd; ; ; # ᢌ.-࡚
+𥛛𑘶。𐹬்; 𥛛𑘶.𐹬்; [B1, P1, V6]; xn--jb2dj685c.xn--xmc5562kmcb; ; ; # 𥛛𑘶.𐹬்
+𥛛𑘶。𐹬்; 𥛛𑘶.𐹬்; [B1, P1, V6]; xn--jb2dj685c.xn--xmc5562kmcb; ; ; # 𥛛𑘶.𐹬்
+xn--jb2dj685c.xn--xmc5562kmcb; 𥛛𑘶.𐹬்; [B1, V6];
xn--jb2dj685c.xn--xmc5562kmcb; ; ; # 𥛛𑘶.𐹬்
+Ⴐݿ.; Ⴐݿ.; [B1, B5, B6, C1, P1, V6]; xn--gqb918b.xn--0ug; ; xn--gqb918b.;
[B5, B6, P1, V6] # Ⴐݿ.
+Ⴐݿ.; ; [B1, B5, B6, C1, P1, V6]; xn--gqb918b.xn--0ug; ; xn--gqb918b.; [B5,
B6, P1, V6] # Ⴐݿ.
+ⴐݿ.; ; [B1, B5, B6, C1]; xn--gqb743q.xn--0ug; ; xn--gqb743q.; [B5, B6] # ⴐݿ.
+xn--gqb743q.; ⴐݿ.; [B5, B6]; xn--gqb743q.; ; ; # ⴐݿ.
+xn--gqb743q.xn--0ug; ⴐݿ.; [B1, B5, B6, C1]; xn--gqb743q.xn--0ug; ; ; # ⴐݿ.
+xn--gqb918b.; Ⴐݿ.; [B5, B6, V6]; xn--gqb918b.; ; ; # Ⴐݿ.
+xn--gqb918b.xn--0ug; Ⴐݿ.; [B1, B5, B6, C1, V6]; xn--gqb918b.xn--0ug; ; ; #
Ⴐݿ.
+ⴐݿ.; ⴐݿ.; [B1, B5, B6, C1]; xn--gqb743q.xn--0ug; ; xn--gqb743q.; [B5, B6] #
ⴐݿ.
+🄅𑲞-⒈。ᠩڥ; 🄅𑲞-⒈.ᠩڥ; [B1, C2, P1, V6]; xn----ecp8796hjtvg.xn--7jb180gexf; ;
xn----ecp8796hjtvg.xn--7jb180g; [B1, B5, B6, P1, V6] # 🄅𑲞-⒈.ᠩڥ
+4,𑲞-1.。ᠩڥ; 4,𑲞-1..ᠩڥ; [B1, C2, P1, V6, X4_2];
xn--4,-1-w401a..xn--7jb180gexf; [B1, C2, P1, V6, A4_2];
xn--4,-1-w401a..xn--7jb180g; [B1, B5, B6, P1, V6, A4_2] # 4,𑲞-1..ᠩڥ
+xn--4,-1-w401a..xn--7jb180g; 4,𑲞-1..ᠩڥ; [B1, B5, B6, P1, V6, X4_2];
xn--4,-1-w401a..xn--7jb180g; [B1, B5, B6, P1, V6, A4_2]; ; # 4,𑲞-1..ᠩڥ
+xn--4,-1-w401a..xn--7jb180gexf; 4,𑲞-1..ᠩڥ; [B1, C2, P1, V6, X4_2];
xn--4,-1-w401a..xn--7jb180gexf; [B1, C2, P1, V6, A4_2]; ; # 4,𑲞-1..ᠩڥ
+xn----ecp8796hjtvg.xn--7jb180g; 🄅𑲞-⒈.ᠩڥ; [B1, B5, B6, V6];
xn----ecp8796hjtvg.xn--7jb180g; ; ; # 🄅𑲞-⒈.ᠩڥ
+xn----ecp8796hjtvg.xn--7jb180gexf; 🄅𑲞-⒈.ᠩڥ; [B1, C2, V6];
xn----ecp8796hjtvg.xn--7jb180gexf; ; ; # 🄅𑲞-⒈.ᠩڥ
+。𞤪; .𞤪; [B2, B3, P1, V6]; xn--4240a.xn--ie6h83808a; ; ; # .𞤪
+。𞤈; .𞤪; [B2, B3, P1, V6]; xn--4240a.xn--ie6h83808a; ; ; # .𞤪
+xn--4240a.xn--ie6h83808a; .𞤪; [B2, B3, V6]; xn--4240a.xn--ie6h83808a; ; ; #
.𞤪
+ׁ۲。𐮊٬𝨊鄨; ׁ۲.𐮊٬𝨊鄨; [B1, B2, B3, V5]; xn--pdb42d.xn--lib6412enztdwv6h; ; ; #
ׁ۲.𐮊٬𝨊鄨
+ׁ۲。𐮊٬𝨊鄨; ׁ۲.𐮊٬𝨊鄨; [B1, B2, B3, V5]; xn--pdb42d.xn--lib6412enztdwv6h; ; ; #
ׁ۲.𐮊٬𝨊鄨
+xn--pdb42d.xn--lib6412enztdwv6h; ׁ۲.𐮊٬𝨊鄨; [B1, B2, B3, V5];
xn--pdb42d.xn--lib6412enztdwv6h; ; ; # ׁ۲.𐮊٬𝨊鄨
+-ꡁ。ᩩ்-; -ꡁ.ᩩ்-; [B1, B2, B3, P1, V3, V5, V6]; xn----be4e4276f.xn----lze333i;
; ; # -ꡁ.ᩩ்-
+xn----be4e4276f.xn----lze333i; -ꡁ.ᩩ்-; [B1, B2, B3, V3, V5, V6];
xn----be4e4276f.xn----lze333i; ; ; # -ꡁ.ᩩ்-
+္-🞢.ß; ္-🞢.ß; [P1, V5, V6]; xn----9tg11172akr8b.xn--zca; ;
xn----9tg11172akr8b.ss; # ္-🞢.ß
+္-🞢.ß; ; [P1, V5, V6]; xn----9tg11172akr8b.xn--zca; ; xn----9tg11172akr8b.ss;
# ္-🞢.ß
+္-🞢.SS; ္-🞢.ss; [P1, V5, V6]; xn----9tg11172akr8b.ss; ; ; # ္-🞢.ss
+္-🞢.ss; ; [P1, V5, V6]; xn----9tg11172akr8b.ss; ; ; # ္-🞢.ss
+္-🞢.Ss; ္-🞢.ss; [P1, V5, V6]; xn----9tg11172akr8b.ss; ; ; # ္-🞢.ss
+xn----9tg11172akr8b.ss; ္-🞢.ss; [V5, V6]; xn----9tg11172akr8b.ss; ; ; #
္-🞢.ss
+xn----9tg11172akr8b.xn--zca; ္-🞢.ß; [V5, V6]; xn----9tg11172akr8b.xn--zca; ;
; # ္-🞢.ß
+္-🞢.SS; ္-🞢.ss; [P1, V5, V6]; xn----9tg11172akr8b.ss; ; ; # ္-🞢.ss
+္-🞢.ss; ္-🞢.ss; [P1, V5, V6]; xn----9tg11172akr8b.ss; ; ; # ္-🞢.ss
+္-🞢.Ss; ္-🞢.ss; [P1, V5, V6]; xn----9tg11172akr8b.ss; ; ; # ္-🞢.ss
+ﳲ-。Ⴟ␣; ـَّ-.Ⴟ␣; [B3, B6, C1, P1, V6]; xn----eoc6bm0504a.xn--3nd849e05c; ;
xn----eoc6bm.xn--3nd240h; [B3, B6, P1, V3, V6] # ـَّ-.Ⴟ␣
+ـَّ-。Ⴟ␣; ـَّ-.Ⴟ␣; [B3, B6, C1, P1, V6]; xn----eoc6bm0504a.xn--3nd849e05c;
; xn----eoc6bm.xn--3nd240h; [B3, B6, P1, V3, V6] # ـَّ-.Ⴟ␣
+ـَّ-。ⴟ␣; ـَّ-.ⴟ␣; [B3, B6, C1]; xn----eoc6bm0504a.xn--0ug13nd0j; ;
xn----eoc6bm.xn--xph904a; [B3, B6, V3] # ـَّ-.ⴟ␣
+xn----eoc6bm.xn--xph904a; ـَّ-.ⴟ␣; [B3, B6, V3]; xn----eoc6bm.xn--xph904a; ; ;
# ـَّ-.ⴟ␣
+xn----eoc6bm0504a.xn--0ug13nd0j; ـَّ-.ⴟ␣; [B3, B6, C1];
xn----eoc6bm0504a.xn--0ug13nd0j; ; ; # ـَّ-.ⴟ␣
+xn----eoc6bm.xn--3nd240h; ـَّ-.Ⴟ␣; [B3, B6, V3, V6]; xn----eoc6bm.xn--3nd240h;
; ; # ـَّ-.Ⴟ␣
+xn----eoc6bm0504a.xn--3nd849e05c; ـَّ-.Ⴟ␣; [B3, B6, C1, V6];
xn----eoc6bm0504a.xn--3nd849e05c; ; ; # ـَّ-.Ⴟ␣
+ﳲ-。ⴟ␣; ـَّ-.ⴟ␣; [B3, B6, C1]; xn----eoc6bm0504a.xn--0ug13nd0j; ;
xn----eoc6bm.xn--xph904a; [B3, B6, V3] # ـَّ-.ⴟ␣
+്-。₅≠; ്-.5≠; [C1, C2, P1, V5, V6]; xn----jmf215lda.xn--5-ufo50192e; ;
xn----jmf.xn--5-ufo50192e; [P1, V3, V5, V6] # ്-.5≠
+്-。₅≠; ്-.5≠; [C1, C2, P1, V5, V6]; xn----jmf215lda.xn--5-ufo50192e; ;
xn----jmf.xn--5-ufo50192e; [P1, V3, V5, V6] # ്-.5≠
+്-。5≠; ്-.5≠; [C1, C2, P1, V5, V6]; xn----jmf215lda.xn--5-ufo50192e; ;
xn----jmf.xn--5-ufo50192e; [P1, V3, V5, V6] # ്-.5≠
+്-。5≠; ്-.5≠; [C1, C2, P1, V5, V6]; xn----jmf215lda.xn--5-ufo50192e; ;
xn----jmf.xn--5-ufo50192e; [P1, V3, V5, V6] # ്-.5≠
+xn----jmf.xn--5-ufo50192e; ്-.5≠; [V3, V5, V6]; xn----jmf.xn--5-ufo50192e; ;
; # ്-.5≠
+xn----jmf215lda.xn--5-ufo50192e; ്-.5≠; [C1, C2, V5, V6];
xn----jmf215lda.xn--5-ufo50192e; ; ; # ്-.5≠
+锣。੍; 锣.੍; [P1, V5, V6]; xn--gc5a.xn--ybc83044ppga; ; ; # 锣.੍
+xn--gc5a.xn--ybc83044ppga; 锣.੍; [V5, V6]; xn--gc5a.xn--ybc83044ppga; ; ; #
锣.੍
+ؽ𑈾.ى꤫; ؽ𑈾.ى꤫; [B3, C2]; xn--8gb2338k.xn--lhb603k060h; ;
xn--8gb2338k.xn--lhb0154f; [] # ؽ𑈾.ى꤫
+ؽ𑈾.ى꤫; ; [B3, C2]; xn--8gb2338k.xn--lhb603k060h; ; xn--8gb2338k.xn--lhb0154f;
[] # ؽ𑈾.ى꤫
+xn--8gb2338k.xn--lhb0154f; ؽ𑈾.ى꤫; ; xn--8gb2338k.xn--lhb0154f; ; ; # ؽ𑈾.ى꤫
+ؽ𑈾.ى꤫; ; ; xn--8gb2338k.xn--lhb0154f; ; ; # ؽ𑈾.ى꤫
+xn--8gb2338k.xn--lhb603k060h; ؽ𑈾.ى꤫; [B3, C2]; xn--8gb2338k.xn--lhb603k060h;
; ; # ؽ𑈾.ى꤫
+٦⁴Ⴅ.ࢽ; ٦4Ⴅ.ࢽ; [B1, B3, C1, P1, V6]; xn--4-kqc489e.xn--jzb840j; ;
xn--4-kqc489e.xn--jzb; [B1, P1, V6] # ٦4Ⴅ.ࢽ
+٦4Ⴅ.ࢽ; ; [B1, B3, C1, P1, V6]; xn--4-kqc489e.xn--jzb840j; ;
xn--4-kqc489e.xn--jzb; [B1, P1, V6] # ٦4Ⴅ.ࢽ
+٦4ⴅ.ࢽ; ; [B1, B3, C1]; xn--4-kqc6770a.xn--jzb840j; ; xn--4-kqc6770a.xn--jzb;
[B1] # ٦4ⴅ.ࢽ
+xn--4-kqc6770a.xn--jzb; ٦4ⴅ.ࢽ; [B1]; xn--4-kqc6770a.xn--jzb; ; ; # ٦4ⴅ.ࢽ
+xn--4-kqc6770a.xn--jzb840j; ٦4ⴅ.ࢽ; [B1, B3, C1]; xn--4-kqc6770a.xn--jzb840j;
; ; # ٦4ⴅ.ࢽ
+xn--4-kqc489e.xn--jzb; ٦4Ⴅ.ࢽ; [B1, V6]; xn--4-kqc489e.xn--jzb; ; ; # ٦4Ⴅ.ࢽ
+xn--4-kqc489e.xn--jzb840j; ٦4Ⴅ.ࢽ; [B1, B3, C1, V6];
xn--4-kqc489e.xn--jzb840j; ; ; # ٦4Ⴅ.ࢽ
+٦⁴ⴅ.ࢽ; ٦4ⴅ.ࢽ; [B1, B3, C1]; xn--4-kqc6770a.xn--jzb840j; ;
xn--4-kqc6770a.xn--jzb; [B1] # ٦4ⴅ.ࢽ
+ჁႱ6̘。ßᬃ; ჁႱ6̘.ßᬃ; [P1, V6]; xn--6-8cb555h2b.xn--zca894k; ;
xn--6-8cb555h2b.xn--ss-2vq; # ჁႱ6̘.ßᬃ
+ⴡⴑ6̘。ßᬃ; ⴡⴑ6̘.ßᬃ; ; xn--6-8cb7433a2ba.xn--zca894k; ;
xn--6-8cb7433a2ba.xn--ss-2vq; # ⴡⴑ6̘.ßᬃ
+ჁႱ6̘。SSᬃ; ჁႱ6̘.ssᬃ; [P1, V6]; xn--6-8cb555h2b.xn--ss-2vq; ; ; # ჁႱ6̘.ssᬃ
+ⴡⴑ6̘。ssᬃ; ⴡⴑ6̘.ssᬃ; ; xn--6-8cb7433a2ba.xn--ss-2vq; ; ; # ⴡⴑ6̘.ssᬃ
+Ⴡⴑ6̘。Ssᬃ; Ⴡⴑ6̘.ssᬃ; [P1, V6]; xn--6-8cb306hms1a.xn--ss-2vq; ; ; # Ⴡⴑ6̘.ssᬃ
+xn--6-8cb306hms1a.xn--ss-2vq; Ⴡⴑ6̘.ssᬃ; [V6]; xn--6-8cb306hms1a.xn--ss-2vq; ;
; # Ⴡⴑ6̘.ssᬃ
+xn--6-8cb7433a2ba.xn--ss-2vq; ⴡⴑ6̘.ssᬃ; ; xn--6-8cb7433a2ba.xn--ss-2vq; ; ; #
ⴡⴑ6̘.ssᬃ
+ⴡⴑ6̘.ssᬃ; ; ; xn--6-8cb7433a2ba.xn--ss-2vq; ; ; # ⴡⴑ6̘.ssᬃ
+ჁႱ6̘.SSᬃ; ჁႱ6̘.ssᬃ; [P1, V6]; xn--6-8cb555h2b.xn--ss-2vq; ; ; # ჁႱ6̘.ssᬃ
+Ⴡⴑ6̘.Ssᬃ; Ⴡⴑ6̘.ssᬃ; [P1, V6]; xn--6-8cb306hms1a.xn--ss-2vq; ; ; # Ⴡⴑ6̘.ssᬃ
+xn--6-8cb555h2b.xn--ss-2vq; ჁႱ6̘.ssᬃ; [V6]; xn--6-8cb555h2b.xn--ss-2vq; ; ; #
ჁႱ6̘.ssᬃ
+xn--6-8cb7433a2ba.xn--zca894k; ⴡⴑ6̘.ßᬃ; ; xn--6-8cb7433a2ba.xn--zca894k; ; ;
# ⴡⴑ6̘.ßᬃ
+ⴡⴑ6̘.ßᬃ; ; ; xn--6-8cb7433a2ba.xn--zca894k; ; xn--6-8cb7433a2ba.xn--ss-2vq; #
ⴡⴑ6̘.ßᬃ
+xn--6-8cb555h2b.xn--zca894k; ჁႱ6̘.ßᬃ; [V6]; xn--6-8cb555h2b.xn--zca894k; ; ;
# ჁႱ6̘.ßᬃ
+。≯𑋪; .≯𑋪; [P1, V6]; xn--eo08b.xn--hdh3385g; ; ; # .≯𑋪
+。≯𑋪; .≯𑋪; [P1, V6]; xn--eo08b.xn--hdh3385g; ; ; # .≯𑋪
+。≯𑋪; .≯𑋪; [P1, V6]; xn--eo08b.xn--hdh3385g; ; ; # .≯𑋪
+。≯𑋪; .≯𑋪; [P1, V6]; xn--eo08b.xn--hdh3385g; ; ; # .≯𑋪
+xn--eo08b.xn--hdh3385g; .≯𑋪; [V6]; xn--eo08b.xn--hdh3385g; ; ; # .≯𑋪
+ٚ۲。-᯳; ٚ۲.-᯳; [B1, C1, P1, V5, V6]; xn--2hb81a.xn----xrd657l30d; ;
xn--2hb81a.xn----xrd657l; [B1, P1, V3, V5, V6] # ٚ۲.-᯳
+xn--2hb81a.xn----xrd657l; ٚ۲.-᯳; [B1, V3, V5, V6]; xn--2hb81a.xn----xrd657l;
; ; # ٚ۲.-᯳
+xn--2hb81a.xn----xrd657l30d; ٚ۲.-᯳; [B1, C1, V5, V6];
xn--2hb81a.xn----xrd657l30d; ; ; # ٚ۲.-᯳
+󠄏𖬴。ᅠ; 𖬴.ᅠ; [P1, V5, V6]; xn--619ep9154c.xn--cl7c; ; ; # 𖬴.
+󠄏𖬴。ᅠ; 𖬴.ᅠ; [P1, V5, V6]; xn--619ep9154c.xn--psd; ; ; # 𖬴.
+xn--619ep9154c.xn--psd; 𖬴.ᅠ; [V5, V6]; xn--619ep9154c.xn--psd; ; ; # 𖬴.
+xn--619ep9154c.xn--cl7c; 𖬴.ᅠ; [V5, V6]; xn--619ep9154c.xn--cl7c; ; ; # 𖬴.
+ß⒈ݠ.󠅄; ß⒈ݠ.; [B5, P1, V6]; xn--zca444a0s1ao12n.xn--nfb09923ifkyyb; ;
xn--ss-6ke9690a0g1q.xn--nfb09923ifkyyb; # ß⒈ݠ.
+ß1.ݠ.󠅄; ß1.ݠ.; [B2, B3, B5, P1, V6];
xn--1-pfa.xn--kpb6677h.xn--nfb09923ifkyyb; ;
ss1.xn--kpb6677h.xn--nfb09923ifkyyb; # ß1.ݠ.
+SS1.ݠ.󠅄; ss1.ݠ.; [B2, B3, B5, P1, V6];
ss1.xn--kpb6677h.xn--nfb09923ifkyyb; ; ; # ss1.ݠ.
+ss1.ݠ.󠅄; ss1.ݠ.; [B2, B3, B5, P1, V6];
ss1.xn--kpb6677h.xn--nfb09923ifkyyb; ; ; # ss1.ݠ.
+Ss1.ݠ.󠅄; ss1.ݠ.; [B2, B3, B5, P1, V6];
ss1.xn--kpb6677h.xn--nfb09923ifkyyb; ; ; # ss1.ݠ.
+ss1.xn--kpb6677h.xn--nfb09923ifkyyb; ss1.ݠ.; [B2, B3, B5, V6];
ss1.xn--kpb6677h.xn--nfb09923ifkyyb; ; ; # ss1.ݠ.
+xn--1-pfa.xn--kpb6677h.xn--nfb09923ifkyyb; ß1.ݠ.; [B2, B3, B5, V6];
xn--1-pfa.xn--kpb6677h.xn--nfb09923ifkyyb; ; ; # ß1.ݠ.
+SS⒈ݠ.󠅄; ss⒈ݠ.; [B5, P1, V6]; xn--ss-6ke9690a0g1q.xn--nfb09923ifkyyb; ;
; # ss⒈ݠ.
+ss⒈ݠ.󠅄; ss⒈ݠ.; [B5, P1, V6]; xn--ss-6ke9690a0g1q.xn--nfb09923ifkyyb; ;
; # ss⒈ݠ.
+Ss⒈ݠ.󠅄; ss⒈ݠ.; [B5, P1, V6]; xn--ss-6ke9690a0g1q.xn--nfb09923ifkyyb; ;
; # ss⒈ݠ.
+xn--ss-6ke9690a0g1q.xn--nfb09923ifkyyb; ss⒈ݠ.; [B5, V6];
xn--ss-6ke9690a0g1q.xn--nfb09923ifkyyb; ; ; # ss⒈ݠ.
+xn--zca444a0s1ao12n.xn--nfb09923ifkyyb; ß⒈ݠ.; [B5, V6];
xn--zca444a0s1ao12n.xn--nfb09923ifkyyb; ; ; # ß⒈ݠ.
+.𐋱₂; .𐋱2; [P1, V6]; xn--vi56e.xn--2-w91i; ; ; # .𐋱2
+.𐋱2; ; [P1, V6]; xn--vi56e.xn--2-w91i; ; ; # .𐋱2
+xn--vi56e.xn--2-w91i; .𐋱2; [V6]; xn--vi56e.xn--2-w91i; ; ; # .𐋱2
+ܖे。-ßڥ; ܖे.-ßڥ; [B1, C1, V3]; xn--gnb63i.xn----qfa845bhx4a; ;
xn--gnb63i.xn---ss-4ef; [B1, V3] # ܖे.-ßڥ
+ܖे。-SSڥ; ܖे.-ssڥ; [B1, C1, V3]; xn--gnb63i.xn---ss-4ef9263a; ;
xn--gnb63i.xn---ss-4ef; [B1, V3] # ܖे.-ssڥ
+ܖे。-ssڥ; ܖे.-ssڥ; [B1, C1, V3]; xn--gnb63i.xn---ss-4ef9263a; ;
xn--gnb63i.xn---ss-4ef; [B1, V3] # ܖे.-ssڥ
+ܖे。-Ssڥ; ܖे.-ssڥ; [B1, C1, V3]; xn--gnb63i.xn---ss-4ef9263a; ;
xn--gnb63i.xn---ss-4ef; [B1, V3] # ܖे.-ssڥ
+xn--gnb63i.xn---ss-4ef; ܖे.-ssڥ; [B1, V3]; xn--gnb63i.xn---ss-4ef; ; ; #
ܖे.-ssڥ
+xn--gnb63i.xn---ss-4ef9263a; ܖे.-ssڥ; [B1, C1, V3];
xn--gnb63i.xn---ss-4ef9263a; ; ; # ܖे.-ssڥ
+xn--gnb63i.xn----qfa845bhx4a; ܖे.-ßڥ; [B1, C1, V3];
xn--gnb63i.xn----qfa845bhx4a; ; ; # ܖे.-ßڥ
+ᮩت.᳕䷉Ⴡ; ᮩت.᳕䷉Ⴡ; [B1, C2, P1, V5, V6]; xn--pgb911imgdrw34r.xn--5nd792dgv3b;
; xn--pgb911izv33i.xn--5nd792dgv3b; [B1, P1, V5, V6] # ᮩت.᳕䷉Ⴡ
+ᮩت.᳕䷉Ⴡ; ; [B1, C2, P1, V5, V6]; xn--pgb911imgdrw34r.xn--5nd792dgv3b; ;
xn--pgb911izv33i.xn--5nd792dgv3b; [B1, P1, V5, V6] # ᮩت.᳕䷉Ⴡ
+ᮩت.᳕䷉ⴡ; ; [B1, C2, P1, V5, V6]; xn--pgb911imgdrw34r.xn--i6f270etuy; ;
xn--pgb911izv33i.xn--i6f270etuy; [B1, P1, V5, V6] # ᮩت.᳕䷉ⴡ
+xn--pgb911izv33i.xn--i6f270etuy; ᮩت.᳕䷉ⴡ; [B1, V5, V6];
xn--pgb911izv33i.xn--i6f270etuy; ; ; # ᮩت.᳕䷉ⴡ
+xn--pgb911imgdrw34r.xn--i6f270etuy; ᮩت.᳕䷉ⴡ; [B1, C2, V5, V6];
xn--pgb911imgdrw34r.xn--i6f270etuy; ; ; # ᮩت.᳕䷉ⴡ
+xn--pgb911izv33i.xn--5nd792dgv3b; ᮩت.᳕䷉Ⴡ; [B1, V5, V6];
xn--pgb911izv33i.xn--5nd792dgv3b; ; ; # ᮩت.᳕䷉Ⴡ
+xn--pgb911imgdrw34r.xn--5nd792dgv3b; ᮩت.᳕䷉Ⴡ; [B1, C2, V5, V6];
xn--pgb911imgdrw34r.xn--5nd792dgv3b; ; ; # ᮩت.᳕䷉Ⴡ
+ᮩت.᳕䷉ⴡ; ᮩت.᳕䷉ⴡ; [B1, C2, P1, V5, V6]; xn--pgb911imgdrw34r.xn--i6f270etuy;
; xn--pgb911izv33i.xn--i6f270etuy; [B1, P1, V5, V6] # ᮩت.᳕䷉ⴡ
+.ß; ; [C2, P1, V6]; xn--7pj.xn--zca870n; ; xn--7pj.ss; [P1, V6] # .ß
+.SS; .ss; [C2, P1, V6]; xn--7pj.xn--ss-n1t; ; xn--7pj.ss; [P1, V6] # .ss
+.ss; ; [C2, P1, V6]; xn--7pj.xn--ss-n1t; ; xn--7pj.ss; [P1, V6] # .ss
+.Ss; .ss; [C2, P1, V6]; xn--7pj.xn--ss-n1t; ; xn--7pj.ss; [P1, V6] # .ss
+xn--7pj.ss; .ss; [V6]; xn--7pj.ss; ; ; # .ss
+xn--7pj.xn--ss-n1t; .ss; [C2, V6]; xn--7pj.xn--ss-n1t; ; ; # .ss
+xn--7pj.xn--zca870n; .ß; [C2, V6]; xn--7pj.xn--zca870n; ; ; # .ß
+᯳︒.ت≯ꡂ; ; [B2, B3, B6, P1, V5, V6]; xn--1zf8957g.xn--pgb885lry5g; ; ; # ᯳︒.ت≯ꡂ
+᯳︒.ت≯ꡂ; ᯳︒.ت≯ꡂ; [B2, B3, B6, P1, V5, V6]; xn--1zf8957g.xn--pgb885lry5g; ; ;
# ᯳︒.ت≯ꡂ
+᯳。.ت≯ꡂ; ᯳..ت≯ꡂ; [B2, B3, P1, V5, V6, X4_2]; xn--1zf..xn--pgb885lry5g; [B2, B3,
P1, V5, V6, A4_2]; ; # ᯳..ت≯ꡂ
+᯳。.ت≯ꡂ; ᯳..ت≯ꡂ; [B2, B3, P1, V5, V6, X4_2]; xn--1zf..xn--pgb885lry5g; [B2,
B3, P1, V5, V6, A4_2]; ; # ᯳..ت≯ꡂ
+xn--1zf..xn--pgb885lry5g; ᯳..ت≯ꡂ; [B2, B3, V5, V6, X4_2];
xn--1zf..xn--pgb885lry5g; [B2, B3, V5, V6, A4_2]; ; # ᯳..ت≯ꡂ
+xn--1zf8957g.xn--pgb885lry5g; ᯳︒.ت≯ꡂ; [B2, B3, B6, V5, V6];
xn--1zf8957g.xn--pgb885lry5g; ; ; # ᯳︒.ت≯ꡂ
+≮≠。-𫠆ڷ𐹪; ≮≠.-𫠆ڷ𐹪; [B1, P1, V3, V6]; xn--1ch1a29470f.xn----7uc5363rc1rn; ; ;
# ≮≠.-𫠆ڷ𐹪
+≮≠。-𫠆ڷ𐹪; ≮≠.-𫠆ڷ𐹪; [B1, P1, V3, V6]; xn--1ch1a29470f.xn----7uc5363rc1rn; ;
; # ≮≠.-𫠆ڷ𐹪
+≮≠。-𫠆ڷ𐹪; ≮≠.-𫠆ڷ𐹪; [B1, P1, V3, V6]; xn--1ch1a29470f.xn----7uc5363rc1rn; ; ;
# ≮≠.-𫠆ڷ𐹪
+≮≠。-𫠆ڷ𐹪; ≮≠.-𫠆ڷ𐹪; [B1, P1, V3, V6]; xn--1ch1a29470f.xn----7uc5363rc1rn; ;
; # ≮≠.-𫠆ڷ𐹪
+xn--1ch1a29470f.xn----7uc5363rc1rn; ≮≠.-𫠆ڷ𐹪; [B1, V3, V6];
xn--1ch1a29470f.xn----7uc5363rc1rn; ; ; # ≮≠.-𫠆ڷ𐹪
+𐹡ݷ。ꡂ; 𐹡ݷ.ꡂ; [B1]; xn--7pb5275k.xn--bc9a; ; ; # 𐹡ݷ.ꡂ
+xn--7pb5275k.xn--bc9a; 𐹡ݷ.ꡂ; [B1]; xn--7pb5275k.xn--bc9a; ; ; # 𐹡ݷ.ꡂ
+Ⴉؙ𝆅.ß𐧦𐹳ݵ; ; [B5, B6, P1, V6]; xn--7fb125cjv87a7xvz.xn--zca684a699vf2d; ;
xn--7fb125cjv87a7xvz.xn--ss-zme7575xp0e; # Ⴉؙ𝆅.ß𐧦𐹳ݵ
+ⴉؙ𝆅.ß𐧦𐹳ݵ; ; [B5, B6, P1, V6]; xn--7fb940rwt3z7xvz.xn--zca684a699vf2d; ;
xn--7fb940rwt3z7xvz.xn--ss-zme7575xp0e; # ⴉؙ𝆅.ß𐧦𐹳ݵ
+Ⴉؙ𝆅.SS𐧦𐹳ݵ; Ⴉؙ𝆅.ss𐧦𐹳ݵ; [B5, B6, P1, V6];
xn--7fb125cjv87a7xvz.xn--ss-zme7575xp0e; ; ; # Ⴉؙ𝆅.ss𐧦𐹳ݵ
+ⴉؙ𝆅.ss𐧦𐹳ݵ; ; [B5, B6, P1, V6]; xn--7fb940rwt3z7xvz.xn--ss-zme7575xp0e; ; ; #
ⴉؙ𝆅.ss𐧦𐹳ݵ
+Ⴉؙ𝆅.Ss𐧦𐹳ݵ; Ⴉؙ𝆅.ss𐧦𐹳ݵ; [B5, B6, P1, V6];
xn--7fb125cjv87a7xvz.xn--ss-zme7575xp0e; ; ; # Ⴉؙ𝆅.ss𐧦𐹳ݵ
+xn--7fb125cjv87a7xvz.xn--ss-zme7575xp0e; Ⴉؙ𝆅.ss𐧦𐹳ݵ; [B5, B6, V6];
xn--7fb125cjv87a7xvz.xn--ss-zme7575xp0e; ; ; # Ⴉؙ𝆅.ss𐧦𐹳ݵ
+xn--7fb940rwt3z7xvz.xn--ss-zme7575xp0e; ⴉؙ𝆅.ss𐧦𐹳ݵ; [B5, B6, V6];
xn--7fb940rwt3z7xvz.xn--ss-zme7575xp0e; ; ; # ⴉؙ𝆅.ss𐧦𐹳ݵ
+xn--7fb940rwt3z7xvz.xn--zca684a699vf2d; ⴉؙ𝆅.ß𐧦𐹳ݵ; [B5, B6, V6];
xn--7fb940rwt3z7xvz.xn--zca684a699vf2d; ; ; # ⴉؙ𝆅.ß𐧦𐹳ݵ
+xn--7fb125cjv87a7xvz.xn--zca684a699vf2d; Ⴉؙ𝆅.ß𐧦𐹳ݵ; [B5, B6, V6];
xn--7fb125cjv87a7xvz.xn--zca684a699vf2d; ; ; # Ⴉؙ𝆅.ß𐧦𐹳ݵ
+ك𐧾↙.; ; [B1, C2, P1, V6]; xn--fhb713k87ag053c.xn--7s4w; ;
xn--fhb011lnp8n.xn--7s4w; [B3, P1, V6] # ك𐧾↙.
+xn--fhb011lnp8n.xn--7s4w; ك𐧾↙.; [B3, V6]; xn--fhb011lnp8n.xn--7s4w; ; ; #
ك𐧾↙.
+xn--fhb713k87ag053c.xn--7s4w; ك𐧾↙.; [B1, C2, V6];
xn--fhb713k87ag053c.xn--7s4w; ; ; # ك𐧾↙.
+梉。; 梉.; [C1]; xn--7zv.xn--0ug; ; xn--7zv.; [] # 梉.
+xn--7zv.; 梉.; ; xn--7zv.; ; ; # 梉.
+梉.; ; ; xn--7zv.; ; ; # 梉.
+xn--7zv.xn--0ug; 梉.; [C1]; xn--7zv.xn--0ug; ; ; # 梉.
+ꡣ-≠.𞤗𐅢Ↄ; ꡣ-≠.𞤹𐅢Ↄ; [B1, B6, C2, P1, V6]; xn----ufo9661d.xn--1ug79cm620c71sh;
; xn----ufo9661d.xn--q5g0929fhm4f; [B2, B3, B6, P1, V6] # ꡣ-≠.𞤹𐅢Ↄ
+ꡣ-≠.𞤗𐅢Ↄ; ꡣ-≠.𞤹𐅢Ↄ; [B1, B6, C2, P1, V6]; xn----ufo9661d.xn--1ug79cm620c71sh;
; xn----ufo9661d.xn--q5g0929fhm4f; [B2, B3, B6, P1, V6] # ꡣ-≠.𞤹𐅢Ↄ
+ꡣ-≠.𞤹𐅢ↄ; ꡣ-≠.𞤹𐅢ↄ; [B1, B6, C2, P1, V6]; xn----ufo9661d.xn--1ug99cj620c71sh;
; xn----ufo9661d.xn--r5gy929fhm4f; [B2, B3, B6, P1, V6] # ꡣ-≠.𞤹𐅢ↄ
+ꡣ-≠.𞤹𐅢ↄ; ; [B1, B6, C2, P1, V6]; xn----ufo9661d.xn--1ug99cj620c71sh; ;
xn----ufo9661d.xn--r5gy929fhm4f; [B2, B3, B6, P1, V6] # ꡣ-≠.𞤹𐅢ↄ
+ꡣ-≠.𞤗𐅢ↄ; ꡣ-≠.𞤹𐅢ↄ; [B1, B6, C2, P1, V6]; xn----ufo9661d.xn--1ug99cj620c71sh;
; xn----ufo9661d.xn--r5gy929fhm4f; [B2, B3, B6, P1, V6] # ꡣ-≠.𞤹𐅢ↄ
+ꡣ-≠.𞤗𐅢ↄ; ꡣ-≠.𞤹𐅢ↄ; [B1, B6, C2, P1, V6]; xn----ufo9661d.xn--1ug99cj620c71sh;
; xn----ufo9661d.xn--r5gy929fhm4f; [B2, B3, B6, P1, V6] # ꡣ-≠.𞤹𐅢ↄ
+xn----ufo9661d.xn--r5gy929fhm4f; ꡣ-≠.𞤹𐅢ↄ; [B2, B3, B6, V6];
xn----ufo9661d.xn--r5gy929fhm4f; ; ; # ꡣ-≠.𞤹𐅢ↄ
+xn----ufo9661d.xn--1ug99cj620c71sh; ꡣ-≠.𞤹𐅢ↄ; [B1, B6, C2, V6];
xn----ufo9661d.xn--1ug99cj620c71sh; ; ; # ꡣ-≠.𞤹𐅢ↄ
+xn----ufo9661d.xn--q5g0929fhm4f; ꡣ-≠.𞤹𐅢Ↄ; [B2, B3, B6, V6];
xn----ufo9661d.xn--q5g0929fhm4f; ; ; # ꡣ-≠.𞤹𐅢Ↄ
+xn----ufo9661d.xn--1ug79cm620c71sh; ꡣ-≠.𞤹𐅢Ↄ; [B1, B6, C2, V6];
xn----ufo9661d.xn--1ug79cm620c71sh; ; ; # ꡣ-≠.𞤹𐅢Ↄ
+ς⒐𝆫⸵。🄊𝟳; ς⒐𝆫⸵.🄊7; [B6, P1, V6]; xn--3xa019nwtghi25b.xn--7-075iy877c; ;
xn--4xa809nwtghi25b.xn--7-075iy877c; # ς⒐𝆫⸵.🄊7
+ς9.𝆫⸵。9,7; ς9.𝆫⸵.9,7; [B1, P1, V5, V6]; xn--9-xmb.xn--ltj1535k.xn--9,7-r67t;
; xn--9-zmb.xn--ltj1535k.xn--9,7-r67t; # ς9.𝆫⸵.9,7
+Σ9.𝆫⸵。9,7; σ9.𝆫⸵.9,7; [B1, P1, V5, V6]; xn--9-zmb.xn--ltj1535k.xn--9,7-r67t;
; ; # σ9.𝆫⸵.9,7
+σ9.𝆫⸵。9,7; σ9.𝆫⸵.9,7; [B1, P1, V5, V6]; xn--9-zmb.xn--ltj1535k.xn--9,7-r67t;
; ; # σ9.𝆫⸵.9,7
+xn--9-zmb.xn--ltj1535k.xn--9,7-r67t; σ9.𝆫⸵.9,7; [B1, P1, V5, V6];
xn--9-zmb.xn--ltj1535k.xn--9,7-r67t; ; ; # σ9.𝆫⸵.9,7
+xn--9-xmb.xn--ltj1535k.xn--9,7-r67t; ς9.𝆫⸵.9,7; [B1, P1, V5, V6];
xn--9-xmb.xn--ltj1535k.xn--9,7-r67t; ; ; # ς9.𝆫⸵.9,7
+Σ⒐𝆫⸵。🄊𝟳; σ⒐𝆫⸵.🄊7; [B6, P1, V6]; xn--4xa809nwtghi25b.xn--7-075iy877c; ; ; #
σ⒐𝆫⸵.🄊7
+σ⒐𝆫⸵。🄊𝟳; σ⒐𝆫⸵.🄊7; [B6, P1, V6]; xn--4xa809nwtghi25b.xn--7-075iy877c; ; ; #
σ⒐𝆫⸵.🄊7
+xn--4xa809nwtghi25b.xn--7-075iy877c; σ⒐𝆫⸵.🄊7; [B6, V6];
xn--4xa809nwtghi25b.xn--7-075iy877c; ; ; # σ⒐𝆫⸵.🄊7
+xn--3xa019nwtghi25b.xn--7-075iy877c; ς⒐𝆫⸵.🄊7; [B6, V6];
xn--3xa019nwtghi25b.xn--7-075iy877c; ; ; # ς⒐𝆫⸵.🄊7
+ࡓ.ß; ࡓ.ß; [B1, C1]; xn--iwb.xn--zca570n; ; xn--iwb.ss; [] # ࡓ.ß
+ࡓ.ß; ; [B1, C1]; xn--iwb.xn--zca570n; ; xn--iwb.ss; [] # ࡓ.ß
+ࡓ.SS; ࡓ.ss; [B1, C1]; xn--iwb.xn--ss-i1t; ; xn--iwb.ss; [] # ࡓ.ss
+ࡓ.ss; ; [B1, C1]; xn--iwb.xn--ss-i1t; ; xn--iwb.ss; [] # ࡓ.ss
+xn--iwb.ss; ࡓ.ss; ; xn--iwb.ss; ; ; # ࡓ.ss
+ࡓ.ss; ; ; xn--iwb.ss; ; ; # ࡓ.ss
+ࡓ.SS; ࡓ.ss; ; xn--iwb.ss; ; ; # ࡓ.ss
+xn--iwb.xn--ss-i1t; ࡓ.ss; [B1, C1]; xn--iwb.xn--ss-i1t; ; ; # ࡓ.ss
+xn--iwb.xn--zca570n; ࡓ.ß; [B1, C1]; xn--iwb.xn--zca570n; ; ; # ࡓ.ß
+ࡓ.SS; ࡓ.ss; [B1, C1]; xn--iwb.xn--ss-i1t; ; xn--iwb.ss; [] # ࡓ.ss
+ࡓ.ss; ࡓ.ss; [B1, C1]; xn--iwb.xn--ss-i1t; ; xn--iwb.ss; [] # ࡓ.ss
+ࡓ.Ss; ࡓ.ss; [B1, C1]; xn--iwb.xn--ss-i1t; ; xn--iwb.ss; [] # ࡓ.ss
+ࡓ.Ss; ࡓ.ss; [B1, C1]; xn--iwb.xn--ss-i1t; ; xn--iwb.ss; [] # ࡓ.ss
+-.ݎꥍ; ; [B1, B6, C2, P1, V3, V6]; xn----s116e.xn--1ob387jy90hq459k; ;
xn----s116e.xn--1ob6504fmf40i; [B3, B6, P1, V3, V6] # -.ݎꥍ
+xn----s116e.xn--1ob6504fmf40i; -.ݎꥍ; [B3, B6, V3, V6];
xn----s116e.xn--1ob6504fmf40i; ; ; # -.ݎꥍ
+xn----s116e.xn--1ob387jy90hq459k; -.ݎꥍ; [B1, B6, C2, V3, V6];
xn----s116e.xn--1ob387jy90hq459k; ; ; # -.ݎꥍ
+䃚蟥-。-⒈; 䃚蟥-.-⒈; [P1, V3, V6]; xn----n50a258u.xn----ecp33805f; ; ; # 䃚蟥-.-⒈
+䃚蟥-。-1.; 䃚蟥-.-1.; [P1, V3, V6]; xn----n50a258u.xn---1-up07j.; ; ; # 䃚蟥-.-1.
+xn----n50a258u.xn---1-up07j.; 䃚蟥-.-1.; [V3, V6];
xn----n50a258u.xn---1-up07j.; ; ; # 䃚蟥-.-1.
+xn----n50a258u.xn----ecp33805f; 䃚蟥-.-⒈; [V3, V6];
xn----n50a258u.xn----ecp33805f; ; ; # 䃚蟥-.-⒈
+𐹸䚵-ꡡ。⺇; 𐹸䚵-ꡡ.⺇; [B1]; xn----bm3an932a1l5d.xn--xvj; ; ; # 𐹸䚵-ꡡ.⺇
+xn----bm3an932a1l5d.xn--xvj; 𐹸䚵-ꡡ.⺇; [B1]; xn----bm3an932a1l5d.xn--xvj; ; ; #
𐹸䚵-ꡡ.⺇
+𑄳。𐹻; 𑄳.𐹻; [B1, B3, B5, B6, P1, V5, V6]; xn--v80d.xn--2rf1154i; ; ; # 𑄳.𐹻
+xn--v80d.xn--2rf1154i; 𑄳.𐹻; [B1, B3, B5, B6, V5, V6]; xn--v80d.xn--2rf1154i;
; ; # 𑄳.𐹻
+≮𐹻.⒎𑂵ں; ; [B1, P1, V6]; xn--gdhx904g.xn--kfb18a325efm3s; ; ; # ≮𐹻.⒎𑂵ں
+≮𐹻.⒎𑂵ں; ≮𐹻.⒎𑂵ں; [B1, P1, V6]; xn--gdhx904g.xn--kfb18a325efm3s; ; ; # ≮𐹻.⒎𑂵ں
+≮𐹻.7.𑂵ں; ; [B1, P1, V5, V6]; xn--gdhx904g.7.xn--kfb18an307d; ; ; # ≮𐹻.7.𑂵ں
+≮𐹻.7.𑂵ں; ≮𐹻.7.𑂵ں; [B1, P1, V5, V6]; xn--gdhx904g.7.xn--kfb18an307d; ; ; #
≮𐹻.7.𑂵ں
+xn--gdhx904g.7.xn--kfb18an307d; ≮𐹻.7.𑂵ں; [B1, V5, V6];
xn--gdhx904g.7.xn--kfb18an307d; ; ; # ≮𐹻.7.𑂵ں
+xn--gdhx904g.xn--kfb18a325efm3s; ≮𐹻.⒎𑂵ں; [B1, V6];
xn--gdhx904g.xn--kfb18a325efm3s; ; ; # ≮𐹻.⒎𑂵ں
+ᢔ≠.𐋢; ; [C2, P1, V6]; xn--ebf031cf7196a.xn--1ug9540g; ;
xn--ebf031cf7196a.xn--587c; [P1, V6] # ᢔ≠.𐋢
+ᢔ≠.𐋢; ᢔ≠.𐋢; [C2, P1, V6]; xn--ebf031cf7196a.xn--1ug9540g; ;
xn--ebf031cf7196a.xn--587c; [P1, V6] # ᢔ≠.𐋢
+xn--ebf031cf7196a.xn--587c; ᢔ≠.𐋢; [V6]; xn--ebf031cf7196a.xn--587c; ; ; #
ᢔ≠.𐋢
+xn--ebf031cf7196a.xn--1ug9540g; ᢔ≠.𐋢; [C2, V6];
xn--ebf031cf7196a.xn--1ug9540g; ; ; # ᢔ≠.𐋢
+𐩁≮≯.٬⳿; 𐩁≮≯.٬⳿; [B1, B2, B3, P1, V6]; xn--gdhc0519o0y27b.xn--lib468q0d21a;
; ; # 𐩁≮≯.٬⳿
+𐩁≮≯.٬⳿; 𐩁≮≯.٬⳿; [B1, B2, B3, P1, V6];
xn--gdhc0519o0y27b.xn--lib468q0d21a; ; ; # 𐩁≮≯.٬⳿
+𐩁≮≯.٬⳿; ; [B1, B2, B3, P1, V6]; xn--gdhc0519o0y27b.xn--lib468q0d21a; ; ; #
𐩁≮≯.٬⳿
+𐩁≮≯.٬⳿; 𐩁≮≯.٬⳿; [B1, B2, B3, P1, V6];
xn--gdhc0519o0y27b.xn--lib468q0d21a; ; ; # 𐩁≮≯.٬⳿
+xn--gdhc0519o0y27b.xn--lib468q0d21a; 𐩁≮≯.٬⳿; [B1, B2, B3, V6];
xn--gdhc0519o0y27b.xn--lib468q0d21a; ; ; # 𐩁≮≯.٬⳿
+-。⺐; -.⺐; [V3]; -.xn--6vj; ; ; # -.⺐
+-。⺐; -.⺐; [V3]; -.xn--6vj; ; ; # -.⺐
+-.xn--6vj; -.⺐; [V3]; -.xn--6vj; ; ; # -.⺐
+𑲬.ٜ; 𑲬.ٜ; [P1, V5, V6]; xn--sn3d59267c.xn--4hb; ; ; # 𑲬.ٜ
+𑲬.ٜ; ; [P1, V5, V6]; xn--sn3d59267c.xn--4hb; ; ; # 𑲬.ٜ
+xn--sn3d59267c.xn--4hb; 𑲬.ٜ; [V5, V6]; xn--sn3d59267c.xn--4hb; ; ; # 𑲬.ٜ
+𐍺.; ; [C1, P1, V5, V6]; xn--ie8c.xn--0ug03366c; ; xn--ie8c.xn--2g51a; [P1,
V5, V6] # 𐍺.
+xn--ie8c.xn--2g51a; 𐍺.; [V5, V6]; xn--ie8c.xn--2g51a; ; ; # 𐍺.
+xn--ie8c.xn--0ug03366c; 𐍺.; [C1, V5, V6]; xn--ie8c.xn--0ug03366c; ; ; # 𐍺.
+ؽۣ.𐨎; ; [B1, B3, B6, V5]; xn--8gb64a.xn--mr9c; ; ; # ؽۣ.𐨎
+xn--8gb64a.xn--mr9c; ؽۣ.𐨎; [B1, B3, B6, V5]; xn--8gb64a.xn--mr9c; ; ; # ؽۣ.𐨎
+漦Ⴙς.𐴄; ; [B5, B6, P1, V6]; xn--3xa157d717e.xn--9d0d3162t; ;
xn--4xa947d717e.xn--9d0d3162t; # 漦Ⴙς.𐴄
+漦ⴙς.𐴄; ; [B5, B6, P1, V6]; xn--3xa972sl47b.xn--9d0d3162t; ;
xn--4xa772sl47b.xn--9d0d3162t; # 漦ⴙς.𐴄
+漦ႹΣ.𐴄; 漦Ⴙσ.𐴄; [B5, B6, P1, V6]; xn--4xa947d717e.xn--9d0d3162t; ; ; # 漦Ⴙσ.𐴄
+漦ⴙσ.𐴄; ; [B5, B6, P1, V6]; xn--4xa772sl47b.xn--9d0d3162t; ; ; # 漦ⴙσ.𐴄
+漦Ⴙσ.𐴄; ; [B5, B6, P1, V6]; xn--4xa947d717e.xn--9d0d3162t; ; ; # 漦Ⴙσ.𐴄
+xn--4xa947d717e.xn--9d0d3162t; 漦Ⴙσ.𐴄; [B5, B6, V6];
xn--4xa947d717e.xn--9d0d3162t; ; ; # 漦Ⴙσ.𐴄
+xn--4xa772sl47b.xn--9d0d3162t; 漦ⴙσ.𐴄; [B5, B6, V6];
xn--4xa772sl47b.xn--9d0d3162t; ; ; # 漦ⴙσ.𐴄
+xn--3xa972sl47b.xn--9d0d3162t; 漦ⴙς.𐴄; [B5, B6, V6];
xn--3xa972sl47b.xn--9d0d3162t; ; ; # 漦ⴙς.𐴄
+xn--3xa157d717e.xn--9d0d3162t; 漦Ⴙς.𐴄; [B5, B6, V6];
xn--3xa157d717e.xn--9d0d3162t; ; ; # 漦Ⴙς.𐴄
+𐹫踧್.⒈𝨤; ; [B1, P1, V6]; xn--8tc1437dro0d6q06h.xn--tsh2611ncu71e; ; ; #
𐹫踧್.⒈𝨤
+𐹫踧್.1.𝨤; ; [B1, B3, B6, P1, V5, V6];
xn--8tc1437dro0d6q06h.xn--1-p948l.xn--m82h; ; ; # 𐹫踧್.1.𝨤
+xn--8tc1437dro0d6q06h.xn--1-p948l.xn--m82h; 𐹫踧್.1.𝨤; [B1, B3, B6, V5, V6];
xn--8tc1437dro0d6q06h.xn--1-p948l.xn--m82h; ; ; # 𐹫踧್.1.𝨤
+xn--8tc1437dro0d6q06h.xn--tsh2611ncu71e; 𐹫踧್.⒈𝨤; [B1, V6];
xn--8tc1437dro0d6q06h.xn--tsh2611ncu71e; ; ; # 𐹫踧್.⒈𝨤
+≮.-; ≮.-; [C2, P1, V3, V6]; xn--1ug95g.xn----cr99a1w710b; ;
xn--gdh.xn----cr99a1w710b; [P1, V3, V6] # ≮.-
+≮.-; ≮.-; [C2, P1, V3, V6]; xn--1ug95g.xn----cr99a1w710b; ;
xn--gdh.xn----cr99a1w710b; [P1, V3, V6] # ≮.-
+≮.-; ; [C2, P1, V3, V6]; xn--1ug95g.xn----cr99a1w710b; ;
xn--gdh.xn----cr99a1w710b; [P1, V3, V6] # ≮.-
+≮.-; ≮.-; [C2, P1, V3, V6]; xn--1ug95g.xn----cr99a1w710b; ;
xn--gdh.xn----cr99a1w710b; [P1, V3, V6] # ≮.-
+xn--gdh.xn----cr99a1w710b; ≮.-; [V3, V6]; xn--gdh.xn----cr99a1w710b; ; ; #
≮.-
+xn--1ug95g.xn----cr99a1w710b; ≮.-; [C2, V3, V6];
xn--1ug95g.xn----cr99a1w710b; ; ; # ≮.-
+襔。Ⴜ5ꡮ; 襔.Ⴜ5ꡮ; [C2, P1, V6]; xn--1uga7691f.xn--5-r1g7167ipfw8d; ;
xn--2u2a.xn--5-r1g7167ipfw8d; [P1, V6] # 襔.Ⴜ5ꡮ
+襔。ⴜ5ꡮ; 襔.ⴜ5ꡮ; [C2, P1, V6]; xn--1uga7691f.xn--5-uws5848bpf44e; ;
xn--2u2a.xn--5-uws5848bpf44e; [P1, V6] # 襔.ⴜ5ꡮ
+xn--2u2a.xn--5-uws5848bpf44e; 襔.ⴜ5ꡮ; [V6]; xn--2u2a.xn--5-uws5848bpf44e; ; ;
# 襔.ⴜ5ꡮ
+xn--1uga7691f.xn--5-uws5848bpf44e; 襔.ⴜ5ꡮ; [C2, V6];
xn--1uga7691f.xn--5-uws5848bpf44e; ; ; # 襔.ⴜ5ꡮ
+xn--2u2a.xn--5-r1g7167ipfw8d; 襔.Ⴜ5ꡮ; [V6]; xn--2u2a.xn--5-r1g7167ipfw8d; ; ;
# 襔.Ⴜ5ꡮ
+xn--1uga7691f.xn--5-r1g7167ipfw8d; 襔.Ⴜ5ꡮ; [C2, V6];
xn--1uga7691f.xn--5-r1g7167ipfw8d; ; ; # 襔.Ⴜ5ꡮ
+𐫜𑌼.婀; 𐫜𑌼.婀; [B3, C2]; xn--1ugx063g1if.xn--q0s; ; xn--ix9c26l.xn--q0s; [] #
𐫜𑌼.婀
+𐫜𑌼.婀; ; [B3, C2]; xn--1ugx063g1if.xn--q0s; ; xn--ix9c26l.xn--q0s; [] # 𐫜𑌼.婀
+xn--ix9c26l.xn--q0s; 𐫜𑌼.婀; ; xn--ix9c26l.xn--q0s; ; ; # 𐫜𑌼.婀
+𐫜𑌼.婀; ; ; xn--ix9c26l.xn--q0s; ; ; # 𐫜𑌼.婀
+xn--1ugx063g1if.xn--q0s; 𐫜𑌼.婀; [B3, C2]; xn--1ugx063g1if.xn--q0s; ; ; # 𐫜𑌼.婀
+󠅽︒︒𐹯。⬳᩸; ︒︒𐹯.⬳᩸; [B1, P1, V6]; xn--y86ca186j.xn--7of309e; ; ; # ︒︒𐹯.⬳᩸
+󠅽。。𐹯。⬳᩸; ..𐹯.⬳᩸; [B1, X4_2]; ..xn--no0d.xn--7of309e; [B1, A4_2]; ; # ..𐹯.⬳᩸
+..xn--no0d.xn--7of309e; ..𐹯.⬳᩸; [B1, X4_2]; ..xn--no0d.xn--7of309e; [B1,
A4_2]; ; # ..𐹯.⬳᩸
+xn--y86ca186j.xn--7of309e; ︒︒𐹯.⬳᩸; [B1, V6]; xn--y86ca186j.xn--7of309e; ; ; #
︒︒𐹯.⬳᩸
+𝟖ß.󠄐-?Ⴏ; 8ß.-?Ⴏ; [P1, V3, V6]; xn--8-qfa.xn---?-gfk; ; 8ss.xn---?-gfk; #
8ß.-?Ⴏ
+8ß.󠄐-?Ⴏ; 8ß.-?Ⴏ; [P1, V3, V6]; xn--8-qfa.xn---?-gfk; ; 8ss.xn---?-gfk; #
8ß.-?Ⴏ
+8ß.󠄐-?ⴏ; 8ß.-?ⴏ; [P1, V3, V6]; xn--8-qfa.xn---?-261a; ; 8ss.xn---?-261a; #
8ß.-?ⴏ
+8SS.󠄐-?Ⴏ; 8ss.-?Ⴏ; [P1, V3, V6]; 8ss.xn---?-gfk; ; ; # 8ss.-?Ⴏ
+8ss.󠄐-?ⴏ; 8ss.-?ⴏ; [P1, V3, V6]; 8ss.xn---?-261a; ; ; # 8ss.-?ⴏ
+8ss.󠄐-?Ⴏ; 8ss.-?Ⴏ; [P1, V3, V6]; 8ss.xn---?-gfk; ; ; # 8ss.-?Ⴏ
+8ss.xn---?-gfk; 8ss.-?Ⴏ; [P1, V3, V6]; 8ss.xn---?-gfk; ; ; # 8ss.-?Ⴏ
+8ss.xn---?-261a; 8ss.-?ⴏ; [P1, V3, V6]; 8ss.xn---?-261a; ; ; # 8ss.-?ⴏ
+xn--8-qfa.xn---?-261a; 8ß.-?ⴏ; [P1, V3, V6]; xn--8-qfa.xn---?-261a; ; ; #
8ß.-?ⴏ
+xn--8-qfa.xn---?-gfk; 8ß.-?Ⴏ; [P1, V3, V6]; xn--8-qfa.xn---?-gfk; ; ; # 8ß.-?Ⴏ
+𝟖ß.󠄐-?ⴏ; 8ß.-?ⴏ; [P1, V3, V6]; xn--8-qfa.xn---?-261a; ; 8ss.xn---?-261a; #
8ß.-?ⴏ
+𝟖SS.󠄐-?Ⴏ; 8ss.-?Ⴏ; [P1, V3, V6]; 8ss.xn---?-gfk; ; ; # 8ss.-?Ⴏ
+𝟖ss.󠄐-?ⴏ; 8ss.-?ⴏ; [P1, V3, V6]; 8ss.xn---?-261a; ; ; # 8ss.-?ⴏ
+𝟖ss.󠄐-?Ⴏ; 8ss.-?Ⴏ; [P1, V3, V6]; 8ss.xn---?-gfk; ; ; # 8ss.-?Ⴏ
+8ss.-?Ⴏ; ; [P1, V3, V6]; 8ss.xn---?-gfk; ; ; # 8ss.-?Ⴏ
+8ss.-?ⴏ; ; [P1, V3, V6]; 8ss.xn---?-261a; ; ; # 8ss.-?ⴏ
+8SS.-?Ⴏ; 8ss.-?Ⴏ; [P1, V3, V6]; 8ss.xn---?-gfk; ; ; # 8ss.-?Ⴏ
+xn--8-qfa.-?ⴏ; 8ß.-?ⴏ; [P1, V3, V6]; xn--8-qfa.xn---?-261a; ; ; # 8ß.-?ⴏ
+XN--8-QFA.-?Ⴏ; 8ß.-?Ⴏ; [P1, V3, V6]; xn--8-qfa.xn---?-gfk; ; ; # 8ß.-?Ⴏ
+Xn--8-Qfa.-?Ⴏ; 8ß.-?Ⴏ; [P1, V3, V6]; xn--8-qfa.xn---?-gfk; ; ; # 8ß.-?Ⴏ
+xn--8-qfa.-?Ⴏ; 8ß.-?Ⴏ; [P1, V3, V6]; xn--8-qfa.xn---?-gfk; ; ; # 8ß.-?Ⴏ
+𝟖Ss.󠄐-?Ⴏ; 8ss.-?Ⴏ; [P1, V3, V6]; 8ss.xn---?-gfk; ; ; # 8ss.-?Ⴏ
+8Ss.󠄐-?Ⴏ; 8ss.-?Ⴏ; [P1, V3, V6]; 8ss.xn---?-gfk; ; ; # 8ss.-?Ⴏ
+-.𐹣Ⴅ; ; [B1, C1, C2, P1, V3, V6]; xn----ugnv7071n.xn--dnd999e4j4p; ;
xn----s721m.xn--dnd9201k; [B1, P1, V3, V6] # -.𐹣Ⴅ
+-.𐹣ⴅ; ; [B1, C1, C2, P1, V3, V6]; xn----ugnv7071n.xn--0ugz32cgr0p; ;
xn----s721m.xn--wkj1423e; [B1, P1, V3, V6] # -.𐹣ⴅ
+xn----s721m.xn--wkj1423e; -.𐹣ⴅ; [B1, V3, V6]; xn----s721m.xn--wkj1423e; ; ;
# -.𐹣ⴅ
+xn----ugnv7071n.xn--0ugz32cgr0p; -.𐹣ⴅ; [B1, C1, C2, V3, V6];
xn----ugnv7071n.xn--0ugz32cgr0p; ; ; # -.𐹣ⴅ
+xn----s721m.xn--dnd9201k; -.𐹣Ⴅ; [B1, V3, V6]; xn----s721m.xn--dnd9201k; ; ;
# -.𐹣Ⴅ
+xn----ugnv7071n.xn--dnd999e4j4p; -.𐹣Ⴅ; [B1, C1, C2, V3, V6];
xn----ugnv7071n.xn--dnd999e4j4p; ; ; # -.𐹣Ⴅ
+ꦹ큷。₂; ꦹ큷.2; [C2, P1, V5, V6]; xn--1ug1435cfkyaoi04d.2; ;
xn--0m9as84e2e21c.2; [P1, V5, V6] # ꦹ큷.2
+ꦹ큷。₂; ꦹ큷.2; [C2, P1, V5, V6]; xn--1ug1435cfkyaoi04d.2; ;
xn--0m9as84e2e21c.2; [P1, V5, V6] # ꦹ큷.2
+ꦹ큷。2; ꦹ큷.2; [C2, P1, V5, V6]; xn--1ug1435cfkyaoi04d.2; ;
xn--0m9as84e2e21c.2; [P1, V5, V6] # ꦹ큷.2
+ꦹ큷。2; ꦹ큷.2; [C2, P1, V5, V6]; xn--1ug1435cfkyaoi04d.2; ;
xn--0m9as84e2e21c.2; [P1, V5, V6] # ꦹ큷.2
+xn--0m9as84e2e21c.2; ꦹ큷.2; [V5, V6]; xn--0m9as84e2e21c.2; ; ; # ꦹ큷.2
+xn--1ug1435cfkyaoi04d.2; ꦹ큷.2; [C2, V5, V6]; xn--1ug1435cfkyaoi04d.2; ; ; #
ꦹ큷.2
+?.🄄; ; [B1, P1, V6]; ?.xn--3x6hx6f; ; ; # ?.🄄
+?.3,; ; [B1, P1, V6]; ?.xn--3,-tb22a; ; ; # ?.3,
+?.xn--3,-tb22a; ?.3,; [B1, P1, V6]; ?.xn--3,-tb22a; ; ; # ?.3,
+?.xn--3x6hx6f; ?.🄄; [B1, P1, V6]; ?.xn--3x6hx6f; ; ; # ?.🄄
+𝨖。ꣅ⒈; 𝨖.ꣅ⒈; [B1, P1, V5, V6]; xn--rt9cl956a.xn--tlb403mxv4g06s9i; ; ; #
𝨖.ꣅ⒈
+𝨖。ꣅ1.; 𝨖.ꣅ1.; [B1, P1, V5, V6]; xn--rt9cl956a.xn--1-dxc8545j0693i.; ; ;
# 𝨖.ꣅ1.
+xn--rt9cl956a.xn--1-dxc8545j0693i.; 𝨖.ꣅ1.; [B1, V5, V6];
xn--rt9cl956a.xn--1-dxc8545j0693i.; ; ; # 𝨖.ꣅ1.
+xn--rt9cl956a.xn--tlb403mxv4g06s9i; 𝨖.ꣅ⒈; [B1, V5, V6];
xn--rt9cl956a.xn--tlb403mxv4g06s9i; ; ; # 𝨖.ꣅ⒈
+סڸ。Ⴈ; סڸ.Ⴈ; [B5, B6, C2, P1, V6]; xn--meb44b57607c.xn--gnd699e; ;
xn--meb44b57607c.xn--gnd; [B5, B6, P1, V6] # סڸ.Ⴈ
+סڸ。ⴈ; סڸ.ⴈ; [B5, B6, C2, P1, V6]; xn--meb44b57607c.xn--1ug232c; ;
xn--meb44b57607c.xn--zkj; [B5, B6, P1, V6] # סڸ.ⴈ
+xn--meb44b57607c.xn--zkj; סڸ.ⴈ; [B5, B6, V6]; xn--meb44b57607c.xn--zkj; ; ;
# סڸ.ⴈ
+xn--meb44b57607c.xn--1ug232c; סڸ.ⴈ; [B5, B6, C2, V6];
xn--meb44b57607c.xn--1ug232c; ; ; # סڸ.ⴈ
+xn--meb44b57607c.xn--gnd; סڸ.Ⴈ; [B5, B6, V6]; xn--meb44b57607c.xn--gnd; ; ;
# סڸ.Ⴈ
+xn--meb44b57607c.xn--gnd699e; סڸ.Ⴈ; [B5, B6, C2, V6];
xn--meb44b57607c.xn--gnd699e; ; ; # סڸ.Ⴈ
+𝨱ߦ⒈.𑗝髯; 𝨱ߦ⒈.𑗝髯; [B1, B5, C1, P1, V5, V6];
xn--etb477lq931a1f58e.xn--0ugx259bocxd; ; xn--etb477lq931a1f58e.xn--uj6at43v;
[B1, B5, P1, V5, V6] # 𝨱ߦ⒈.𑗝髯
+𝨱ߦ1..𑗝髯; ; [B1, B5, C1, P1, V5, V6, X4_2];
xn--1-idd62296a1fr6e..xn--0ugx259bocxd; [B1, B5, C1, P1, V5, V6, A4_2];
xn--1-idd62296a1fr6e..xn--uj6at43v; [B1, B5, P1, V5, V6, A4_2] # 𝨱ߦ1..𑗝髯
+xn--1-idd62296a1fr6e..xn--uj6at43v; 𝨱ߦ1..𑗝髯; [B1, B5, V5, V6, X4_2];
xn--1-idd62296a1fr6e..xn--uj6at43v; [B1, B5, V5, V6, A4_2]; ; # 𝨱ߦ1..𑗝髯
+xn--1-idd62296a1fr6e..xn--0ugx259bocxd; 𝨱ߦ1..𑗝髯; [B1, B5, C1, V5, V6, X4_2];
xn--1-idd62296a1fr6e..xn--0ugx259bocxd; [B1, B5, C1, V5, V6, A4_2]; ; # 𝨱ߦ1..𑗝髯
+xn--etb477lq931a1f58e.xn--uj6at43v; 𝨱ߦ⒈.𑗝髯; [B1, B5, V5, V6];
xn--etb477lq931a1f58e.xn--uj6at43v; ; ; # 𝨱ߦ⒈.𑗝髯
+xn--etb477lq931a1f58e.xn--0ugx259bocxd; 𝨱ߦ⒈.𑗝髯; [B1, B5, C1, V5, V6];
xn--etb477lq931a1f58e.xn--0ugx259bocxd; ; ; # 𝨱ߦ⒈.𑗝髯
+𐫀.ډ𑌀; 𐫀.ډ𑌀; ; xn--pw9c.xn--fjb8658k; ; ; # 𐫀.ډ𑌀
+𐫀.ډ𑌀; ; ; xn--pw9c.xn--fjb8658k; ; ; # 𐫀.ډ𑌀
+xn--pw9c.xn--fjb8658k; 𐫀.ډ𑌀; ; xn--pw9c.xn--fjb8658k; ; ; # 𐫀.ډ𑌀
+𑋪.𐳝; 𑋪.𐳝; [B1, B3, B6, V5]; xn--fm1d.xn--5c0d; ; ; # 𑋪.𐳝
+𑋪.𐳝; ; [B1, B3, B6, V5]; xn--fm1d.xn--5c0d; ; ; # 𑋪.𐳝
+𑋪.𐲝; 𑋪.𐳝; [B1, B3, B6, V5]; xn--fm1d.xn--5c0d; ; ; # 𑋪.𐳝
+xn--fm1d.xn--5c0d; 𑋪.𐳝; [B1, B3, B6, V5]; xn--fm1d.xn--5c0d; ; ; # 𑋪.𐳝
+𑋪.𐲝; 𑋪.𐳝; [B1, B3, B6, V5]; xn--fm1d.xn--5c0d; ; ; # 𑋪.𐳝
+≠膣。ྃ; ≠膣.ྃ; [P1, V5, V6]; xn--1chy468a.xn--2ed; ; ; # ≠膣.ྃ
+≠膣。ྃ; ≠膣.ྃ; [P1, V5, V6]; xn--1chy468a.xn--2ed; ; ; # ≠膣.ྃ
+xn--1chy468a.xn--2ed; ≠膣.ྃ; [V5, V6]; xn--1chy468a.xn--2ed; ; ; # ≠膣.ྃ
+-ݽ。ß; -ݽ.ß; [B5, B6, P1, V6]; xn----j6c95618k.xn--zca; ; xn----j6c95618k.ss;
# -ݽ.ß
+-ݽ。ß; -ݽ.ß; [B5, B6, P1, V6]; xn----j6c95618k.xn--zca; ; xn----j6c95618k.ss;
# -ݽ.ß
+-ݽ。SS; -ݽ.ss; [B5, B6, P1, V6]; xn----j6c95618k.ss; ; ; # -ݽ.ss
+-ݽ。ss; -ݽ.ss; [B5, B6, P1, V6]; xn----j6c95618k.ss; ; ; # -ݽ.ss
+-ݽ。Ss; -ݽ.ss; [B5, B6, P1, V6]; xn----j6c95618k.ss; ; ; # -ݽ.ss
+xn----j6c95618k.ss; -ݽ.ss; [B5, B6, V6]; xn----j6c95618k.ss; ; ; # -ݽ.ss
+xn----j6c95618k.xn--zca; -ݽ.ß; [B5, B6, V6]; xn----j6c95618k.xn--zca; ; ; #
-ݽ.ß
+-ݽ。SS; -ݽ.ss; [B5, B6, P1, V6]; xn----j6c95618k.ss; ; ; # -ݽ.ss
+-ݽ。ss; -ݽ.ss; [B5, B6, P1, V6]; xn----j6c95618k.ss; ; ; # -ݽ.ss
+-ݽ。Ss; -ݽ.ss; [B5, B6, P1, V6]; xn----j6c95618k.ss; ; ; # -ݽ.ss
+ς𐹠ᡚ𑄳.⾭𐹽𐫜; ς𐹠ᡚ𑄳.靑𐹽𐫜; [B5, B6, P1, V6];
xn--3xa856hp23pxmc.xn--es5a888tvjc2u15h; ;
xn--4xa656hp23pxmc.xn--es5a888tvjc2u15h; # ς𐹠ᡚ𑄳.靑𐹽𐫜
+ς𐹠ᡚ𑄳.靑𐹽𐫜; ; [B5, B6, P1, V6]; xn--3xa856hp23pxmc.xn--es5a888tvjc2u15h; ;
xn--4xa656hp23pxmc.xn--es5a888tvjc2u15h; # ς𐹠ᡚ𑄳.靑𐹽𐫜
+Σ𐹠ᡚ𑄳.靑𐹽𐫜; σ𐹠ᡚ𑄳.靑𐹽𐫜; [B5, B6, P1, V6];
xn--4xa656hp23pxmc.xn--es5a888tvjc2u15h; ; ; # σ𐹠ᡚ𑄳.靑𐹽𐫜
+σ𐹠ᡚ𑄳.靑𐹽𐫜; ; [B5, B6, P1, V6]; xn--4xa656hp23pxmc.xn--es5a888tvjc2u15h; ; ; #
σ𐹠ᡚ𑄳.靑𐹽𐫜
+xn--4xa656hp23pxmc.xn--es5a888tvjc2u15h; σ𐹠ᡚ𑄳.靑𐹽𐫜; [B5, B6, V6];
xn--4xa656hp23pxmc.xn--es5a888tvjc2u15h; ; ; # σ𐹠ᡚ𑄳.靑𐹽𐫜
+xn--3xa856hp23pxmc.xn--es5a888tvjc2u15h; ς𐹠ᡚ𑄳.靑𐹽𐫜; [B5, B6, V6];
xn--3xa856hp23pxmc.xn--es5a888tvjc2u15h; ; ; # ς𐹠ᡚ𑄳.靑𐹽𐫜
+Σ𐹠ᡚ𑄳.⾭𐹽𐫜; σ𐹠ᡚ𑄳.靑𐹽𐫜; [B5, B6, P1, V6];
xn--4xa656hp23pxmc.xn--es5a888tvjc2u15h; ; ; # σ𐹠ᡚ𑄳.靑𐹽𐫜
+σ𐹠ᡚ𑄳.⾭𐹽𐫜; σ𐹠ᡚ𑄳.靑𐹽𐫜; [B5, B6, P1, V6];
xn--4xa656hp23pxmc.xn--es5a888tvjc2u15h; ; ; # σ𐹠ᡚ𑄳.靑𐹽𐫜
+𐋷。; 𐋷.; [C2]; xn--r97c.xn--1ug; ; xn--r97c.; [] # 𐋷.
+xn--r97c.; 𐋷.; ; xn--r97c.; ; ; # 𐋷.
+𐋷.; ; ; xn--r97c.; ; ; # 𐋷.
+xn--r97c.xn--1ug; 𐋷.; [C2]; xn--r97c.xn--1ug; ; ; # 𐋷.
+𑰳𑈯。⥪; 𑰳𑈯.⥪; [V5]; xn--2g1d14o.xn--jti; ; ; # 𑰳𑈯.⥪
+xn--2g1d14o.xn--jti; 𑰳𑈯.⥪; [V5]; xn--2g1d14o.xn--jti; ; ; # 𑰳𑈯.⥪
+𑆀䁴.Ⴕ𝟜͈; 𑆀䁴.Ⴕ4͈; [C1, P1, V5, V6]; xn--1mnx647cg3x1b.xn--4-zfb324h32o; ;
xn--1mnx647cg3x1b.xn--4-zfb324h; [P1, V5, V6] # 𑆀䁴.Ⴕ4͈
+𑆀䁴.Ⴕ4͈; ; [C1, P1, V5, V6]; xn--1mnx647cg3x1b.xn--4-zfb324h32o; ;
xn--1mnx647cg3x1b.xn--4-zfb324h; [P1, V5, V6] # 𑆀䁴.Ⴕ4͈
+𑆀䁴.ⴕ4͈; ; [C1, P1, V5, V6]; xn--1mnx647cg3x1b.xn--4-zfb502tlsl; ;
xn--1mnx647cg3x1b.xn--4-zfb5123a; [P1, V5, V6] # 𑆀䁴.ⴕ4͈
+xn--1mnx647cg3x1b.xn--4-zfb5123a; 𑆀䁴.ⴕ4͈; [V5, V6];
xn--1mnx647cg3x1b.xn--4-zfb5123a; ; ; # 𑆀䁴.ⴕ4͈
+xn--1mnx647cg3x1b.xn--4-zfb502tlsl; 𑆀䁴.ⴕ4͈; [C1, V5, V6];
xn--1mnx647cg3x1b.xn--4-zfb502tlsl; ; ; # 𑆀䁴.ⴕ4͈
+xn--1mnx647cg3x1b.xn--4-zfb324h; 𑆀䁴.Ⴕ4͈; [V5, V6];
xn--1mnx647cg3x1b.xn--4-zfb324h; ; ; # 𑆀䁴.Ⴕ4͈
+xn--1mnx647cg3x1b.xn--4-zfb324h32o; 𑆀䁴.Ⴕ4͈; [C1, V5, V6];
xn--1mnx647cg3x1b.xn--4-zfb324h32o; ; ; # 𑆀䁴.Ⴕ4͈
+𑆀䁴.ⴕ𝟜͈; 𑆀䁴.ⴕ4͈; [C1, P1, V5, V6]; xn--1mnx647cg3x1b.xn--4-zfb502tlsl; ;
xn--1mnx647cg3x1b.xn--4-zfb5123a; [P1, V5, V6] # 𑆀䁴.ⴕ4͈
+憡?Ⴔ.𐋮≠; ; [C1, C2, P1, V6]; xn--?-c1g798iy27d.xn--1ug73gl146a; ;
xn--?-c1g3623d.xn--1chz659f; [P1, V6] # 憡?Ⴔ.𐋮≠
+憡?Ⴔ.𐋮≠; 憡?Ⴔ.𐋮≠; [C1, C2, P1, V6]; xn--?-c1g798iy27d.xn--1ug73gl146a; ;
xn--?-c1g3623d.xn--1chz659f; [P1, V6] # 憡?Ⴔ.𐋮≠
+憡?ⴔ.𐋮≠; 憡?ⴔ.𐋮≠; [C1, C2, P1, V6]; xn--?-sgn310doh5c.xn--1ug73gl146a; ;
xn--?-fwsr13r.xn--1chz659f; [P1, V6] # 憡?ⴔ.𐋮≠
+憡?ⴔ.𐋮≠; ; [C1, C2, P1, V6]; xn--?-sgn310doh5c.xn--1ug73gl146a; ;
xn--?-fwsr13r.xn--1chz659f; [P1, V6] # 憡?ⴔ.𐋮≠
+xn--?-fwsr13r.xn--1chz659f; 憡?ⴔ.𐋮≠; [P1, V6]; xn--?-fwsr13r.xn--1chz659f; ; ;
# 憡?ⴔ.𐋮≠
+xn--?-sgn310doh5c.xn--1ug73gl146a; 憡?ⴔ.𐋮≠; [C1, C2, P1, V6];
xn--?-sgn310doh5c.xn--1ug73gl146a; ; ; # 憡?ⴔ.𐋮≠
+xn--?-c1g3623d.xn--1chz659f; 憡?Ⴔ.𐋮≠; [P1, V6]; xn--?-c1g3623d.xn--1chz659f; ;
; # 憡?Ⴔ.𐋮≠
+xn--?-c1g798iy27d.xn--1ug73gl146a; 憡?Ⴔ.𐋮≠; [C1, C2, P1, V6];
xn--?-c1g798iy27d.xn--1ug73gl146a; ; ; # 憡?Ⴔ.𐋮≠
+憡?ⴔ.xn--1chz659f; 憡?ⴔ.𐋮≠; [P1, V6]; xn--?-fwsr13r.xn--1chz659f; ; ; # 憡?ⴔ.𐋮≠
+憡?Ⴔ.XN--1CHZ659F; 憡?Ⴔ.𐋮≠; [P1, V6]; xn--?-c1g3623d.xn--1chz659f; ; ; # 憡?Ⴔ.𐋮≠
+憡?Ⴔ.xn--1chz659f; 憡?Ⴔ.𐋮≠; [P1, V6]; xn--?-c1g3623d.xn--1chz659f; ; ; # 憡?Ⴔ.𐋮≠
+憡?ⴔ.xn--1ug73gl146a; 憡?ⴔ.𐋮≠; [C1, C2, P1, V6];
xn--?-sgn310doh5c.xn--1ug73gl146a; ; xn--?-fwsr13r.xn--1ug73gl146a; [C2, P1,
V6] # 憡?ⴔ.𐋮≠
+憡?Ⴔ.XN--1UG73GL146A; 憡?Ⴔ.𐋮≠; [C1, C2, P1, V6];
xn--?-c1g798iy27d.xn--1ug73gl146a; ; xn--?-c1g3623d.xn--1ug73gl146a; [C2, P1,
V6] # 憡?Ⴔ.𐋮≠
+憡?Ⴔ.xn--1ug73gl146a; 憡?Ⴔ.𐋮≠; [C1, C2, P1, V6];
xn--?-c1g798iy27d.xn--1ug73gl146a; ; xn--?-c1g3623d.xn--1ug73gl146a; [C2, P1,
V6] # 憡?Ⴔ.𐋮≠
+xn--?-c1g3623d.xn--1ug73gl146a; 憡?Ⴔ.𐋮≠; [C2, P1, V6];
xn--?-c1g3623d.xn--1ug73gl146a; ; ; # 憡?Ⴔ.𐋮≠
+xn--?-fwsr13r.xn--1ug73gl146a; 憡?ⴔ.𐋮≠; [C2, P1, V6];
xn--?-fwsr13r.xn--1ug73gl146a; ; ; # 憡?ⴔ.𐋮≠
+憡?Ⴔ.xn--1ug73gl146a; 憡?Ⴔ.𐋮≠; [C2, P1, V6]; xn--?-c1g3623d.xn--1ug73gl146a; ;
; # 憡?Ⴔ.𐋮≠
+憡?ⴔ.xn--1ug73gl146a; 憡?ⴔ.𐋮≠; [C2, P1, V6]; xn--?-fwsr13r.xn--1ug73gl146a; ; ;
# 憡?ⴔ.𐋮≠
+憡?Ⴔ.XN--1UG73GL146A; 憡?Ⴔ.𐋮≠; [C2, P1, V6]; xn--?-c1g3623d.xn--1ug73gl146a; ;
; # 憡?Ⴔ.𐋮≠
diff --git a/test/lisp/net/puny-tests.el b/test/lisp/net/puny-tests.el
index c6f9474f65..1b0cf56895 100644
--- a/test/lisp/net/puny-tests.el
+++ b/test/lisp/net/puny-tests.el
@@ -68,4 +68,10 @@
"xn--b.com-gra"))
(should (equal (puny-encode-string "Bä.com") "xn--b.com-gra")))
+;;; TODO!
+;; puny-resources/IdnaTestV2.txt has a bunch of tests, and they should
+;; be implemented. However, the puny encoding does not fully
+;; implement https://www.unicode.org/reports/tr46/#Conformance yet, so
+;; it'll fail.
+
;;; puny-tests.el ends here
diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el
index ea0ff3c760..01fe7355f4 100644
--- a/test/lisp/net/tramp-tests.el
+++ b/test/lisp/net/tramp-tests.el
@@ -796,8 +796,7 @@ Also see `ignore'."
(string-equal
(file-remote-p
"/method1:user1@host1|method2:user2@host2:/path/to/file")
- (format "/%s:%s@%s|%s:%s@%s:"
- "method1" "user1" "host1" "method2" "user2" "host2")))
+ "/method2:user2@host2:"))
(should
(string-equal
(file-remote-p
@@ -833,10 +832,7 @@ Also see `ignore'."
"/method1:user1@host1"
"|method2:user2@host2"
"|method3:user3@host3:/path/to/file"))
- (format "/%s:%s@%s|%s:%s@%s|%s:%s@%s:"
- "method1" "user1" "host1"
- "method2" "user2" "host2"
- "method3" "user3" "host3")))
+ "/method3:user3@host3:"))
(should
(string-equal
(file-remote-p
@@ -895,10 +891,7 @@ Also see `ignore'."
"/-:user1@host1"
"|-:user2@host2"
"|-:user3@host3:/path/to/file"))
- (format "/%s:%s@%s|%s:%s@%s|%s:%s@%s:"
- "method1" "user1" "host1"
- "method2" "user2" "host2"
- "method3" "user3" "host3")))
+ "/method3:user3@host3:"))
;; Expand `tramp-default-user-alist'.
(add-to-list 'tramp-default-user-alist '("method1" "host1" "user1"))
@@ -911,10 +904,7 @@ Also see `ignore'."
"/method1:host1"
"|method2:host2"
"|method3:host3:/path/to/file"))
- (format "/%s:%s@%s|%s:%s@%s|%s:%s@%s:"
- "method1" "user1" "host1"
- "method2" "user2" "host2"
- "method3" "user3" "host3")))
+ "/method3:user3@host3:"))
;; Expand `tramp-default-host-alist'.
(add-to-list 'tramp-default-host-alist '("method1" "user1" "host1"))
@@ -927,10 +917,7 @@ Also see `ignore'."
"/method1:user1@"
"|method2:user2@"
"|method3:user3@:/path/to/file"))
- (format "/%s:%s@%s|%s:%s@%s|%s:%s@%s:"
- "method1" "user1" "host1"
- "method2" "user2" "host2"
- "method3" "user3" "host3")))
+ "/method3:user3@host3:"))
;; Ad-hoc user name and host name expansion.
(setq tramp-default-method-alist nil
@@ -943,10 +930,7 @@ Also see `ignore'."
"/method1:user1@host1"
"|method2:user2@"
"|method3:user3@:/path/to/file"))
- (format "/%s:%s@%s|%s:%s@%s|%s:%s@%s:"
- "method1" "user1" "host1"
- "method2" "user2" "host1"
- "method3" "user3" "host1")))
+ "/method3:user3@host1:"))
(should
(string-equal
(file-remote-p
@@ -955,11 +939,7 @@ Also see `ignore'."
"|method2:user2@host2"
"|method3:%u@%h"
"|method4:user4%domain4@host4#1234:/path/to/file"))
- (format "/%s:%s@%s|%s:%s@%s|%s:%s@%s|%s:%s@%s:"
- "method1" "user2" "host2"
- "method2" "user2" "host2"
- "method3" "user4" "host4"
- "method4" "user4%domain4" "host4#1234"))))
+ "/method4:user4%domain4@host4#1234:")))
;; Exit.
(tramp-change-syntax syntax))))
@@ -1147,7 +1127,7 @@ Also see `ignore'."
(should
(string-equal
(file-remote-p "/user1@host1|user2@host2:/path/to/file")
- (format "/%s@%s|%s@%s:" "user1" "host1" "user2" "host2")))
+ "/user2@host2:"))
(should
(string-equal
(file-remote-p
@@ -1181,10 +1161,7 @@ Also see `ignore'."
"/user1@host1"
"|user2@host2"
"|user3@host3:/path/to/file"))
- (format "/%s@%s|%s@%s|%s@%s:"
- "user1" "host1"
- "user2" "host2"
- "user3" "host3")))
+ "/user3@host3:"))
(should
(string-equal
(file-remote-p
@@ -1243,10 +1220,7 @@ Also see `ignore'."
"/host1"
"|host2"
"|host3:/path/to/file"))
- (format "/%s@%s|%s@%s|%s@%s:"
- "user1" "host1"
- "user2" "host2"
- "user3" "host3")))
+ "/user3@host3:"))
;; Expand `tramp-default-host-alist'.
(add-to-list 'tramp-default-host-alist '(nil "user1" "host1"))
@@ -1259,10 +1233,7 @@ Also see `ignore'."
"/user1@"
"|user2@"
"|user3@:/path/to/file"))
- (format "/%s@%s|%s@%s|%s@%s:"
- "user1" "host1"
- "user2" "host2"
- "user3" "host3")))
+ "/user3@host3:"))
;; Ad-hoc user name and host name expansion.
(setq tramp-default-user-alist nil
@@ -1274,10 +1245,7 @@ Also see `ignore'."
"/user1@host1"
"|user2@"
"|user3@:/path/to/file"))
- (format "/%s@%s|%s@%s|%s@%s:"
- "user1" "host1"
- "user2" "host1"
- "user3" "host1")))
+ "/user3@host1:"))
(should
(string-equal
(file-remote-p
@@ -1286,11 +1254,7 @@ Also see `ignore'."
"|user2@host2"
"|%u@%h"
"|user4%domain4@host4#1234:/path/to/file"))
- (format "/%s@%s|%s@%s|%s@%s|%s@%s:"
- "user2" "host2"
- "user2" "host2"
- "user4" "host4"
- "user4%domain4" "host4#1234"))))
+ "/user4%domain4@host4#1234:")))
;; Exit.
(tramp-change-syntax syntax))))
@@ -1786,8 +1750,7 @@ Also see `ignore'."
(string-equal
(file-remote-p
"/[method1/user1@host1|method2/user2@host2]/path/to/file")
- (format "/[%s/%s@%s|%s/%s@%s]"
- "method1" "user1" "host1" "method2" "user2" "host2")))
+ "/[method2/user2@host2]"))
(should
(string-equal
(file-remote-p
@@ -1823,10 +1786,7 @@ Also see `ignore'."
"/[method1/user1@host1"
"|method2/user2@host2"
"|method3/user3@host3]/path/to/file"))
- (format "/[%s/%s@%s|%s/%s@%s|%s/%s@%s]"
- "method1" "user1" "host1"
- "method2" "user2" "host2"
- "method3" "user3" "host3")))
+ "/[method3/user3@host3]"))
(should
(string-equal
(file-remote-p
@@ -1885,10 +1845,7 @@ Also see `ignore'."
"/[/user1@host1"
"|/user2@host2"
"|/user3@host3]/path/to/file"))
- (format "/[%s/%s@%s|%s/%s@%s|%s/%s@%s]"
- "method1" "user1" "host1"
- "method2" "user2" "host2"
- "method3" "user3" "host3")))
+ "/[method3/user3@host3]"))
;; Expand `tramp-default-user-alist'.
(add-to-list 'tramp-default-user-alist '("method1" "host1" "user1"))
@@ -1901,10 +1858,7 @@ Also see `ignore'."
"/[method1/host1"
"|method2/host2"
"|method3/host3]/path/to/file"))
- (format "/[%s/%s@%s|%s/%s@%s|%s/%s@%s]"
- "method1" "user1" "host1"
- "method2" "user2" "host2"
- "method3" "user3" "host3")))
+ "/[method3/user3@host3]"))
;; Expand `tramp-default-host-alist'.
(add-to-list 'tramp-default-host-alist '("method1" "user1" "host1"))
@@ -1917,10 +1871,7 @@ Also see `ignore'."
"/[method1/user1@"
"|method2/user2@"
"|method3/user3@]/path/to/file"))
- (format "/[%s/%s@%s|%s/%s@%s|%s/%s@%s]"
- "method1" "user1" "host1"
- "method2" "user2" "host2"
- "method3" "user3" "host3")))
+ "/[method3/user3@host3]"))
;; Ad-hoc user name and host name expansion.
(setq tramp-default-method-alist nil
@@ -1933,10 +1884,7 @@ Also see `ignore'."
"/[method1/user1@host1"
"|method2/user2@"
"|method3/user3@]/path/to/file"))
- (format "/[%s/%s@%s|%s/%s@%s|%s/%s@%s]"
- "method1" "user1" "host1"
- "method2" "user2" "host1"
- "method3" "user3" "host1")))
+ "/[method3/user3@host1]"))
(should
(string-equal
(file-remote-p
@@ -1945,11 +1893,7 @@ Also see `ignore'."
"|method2/user2@host2"
"|method3/%u@%h"
"|method4/user4%domain4@host4#1234]/path/to/file"))
- (format "/[%s/%s@%s|%s/%s@%s|%s/%s@%s|%s/%s@%s]"
- "method1" "user2" "host2"
- "method2" "user2" "host2"
- "method3" "user4" "host4"
- "method4" "user4%domain4" "host4#1234"))))
+ "/[method4/user4%domain4@host4#1234]")))
;; Exit.
(tramp-change-syntax syntax))))
@@ -2286,17 +2230,20 @@ This checks also `file-name-as-directory',
`file-name-directory',
(skip-unless (not (tramp--test-ange-ftp-p)))
(let* ((remote-host (file-remote-p tramp-test-temporary-file-directory))
+ (remote-host-nohop
+ (tramp-make-tramp-file-name (tramp-dissect-file-name remote-host)))
;; Not all methods can expand "~".
- (home-dir (ignore-errors (expand-file-name (concat remote-host
"~")))))
+ (home-dir (ignore-errors (expand-file-name (concat remote-host "~"))))
+ home-dir-nohop)
(skip-unless home-dir)
;; Check home-dir abbreviation.
(unless (string-suffix-p "~" home-dir)
(should (equal (abbreviate-file-name (concat home-dir "/foo/bar"))
- (concat remote-host "~/foo/bar")))
+ (concat remote-host-nohop "~/foo/bar")))
(should (equal (abbreviate-file-name
(concat remote-host "/nowhere/special"))
- (concat remote-host "/nowhere/special"))))
+ (concat remote-host-nohop "/nowhere/special"))))
;; Check `directory-abbrev-alist' abbreviation.
(let ((directory-abbrev-alist
@@ -2305,18 +2252,20 @@ This checks also `file-name-as-directory',
`file-name-directory',
(,(concat "\\`" (regexp-quote remote-host) "/nowhere")
. ,(concat remote-host "/nw")))))
(should (equal (abbreviate-file-name (concat home-dir "/foo/bar"))
- (concat remote-host "~/f/bar")))
+ (concat remote-host-nohop "~/f/bar")))
(should (equal (abbreviate-file-name
(concat remote-host "/nowhere/special"))
- (concat remote-host "/nw/special"))))
+ (concat remote-host-nohop "/nw/special"))))
;; Check that home-dir abbreviation doesn't occur when home-dir is just
"/".
- (setq home-dir (concat remote-host "/"))
+ (setq home-dir (concat remote-host "/")
+ home-dir-nohop
+ (tramp-make-tramp-file-name (tramp-dissect-file-name home-dir)))
;; The remote home directory is kept in the connection property
;; "home-directory". We fake this setting.
(tramp-set-connection-property tramp-test-vec "home-directory" home-dir)
- (should (equal (concat home-dir "foo/bar")
- (abbreviate-file-name (concat home-dir "foo/bar"))))
+ (should (equal (abbreviate-file-name (concat home-dir "foo/bar"))
+ (concat home-dir-nohop "foo/bar")))
(tramp-flush-connection-property tramp-test-vec "home-directory")))
(ert-deftest tramp-test07-file-exists-p ()
@@ -4504,7 +4453,19 @@ This tests also `make-symbolic-link', `file-truename'
and `add-name-to-file'."
(should
(string-equal (format "%s\n%s\n" fnnd fnnd) (buffer-string)))
;; A non-nil DISPLAY must not raise the buffer.
- (should-not (get-buffer-window (current-buffer) t))))
+ (should-not (get-buffer-window (current-buffer) t))
+ (delete-file tmp-name))
+
+ ;; Check remote and local INFILE.
+ (dolist (local '(nil t))
+ (with-temp-buffer
+ (setq tmp-name (tramp--test-make-temp-name local quoted))
+ (write-region "foo" nil tmp-name)
+ (should (file-exists-p tmp-name))
+ (should (zerop (process-file "cat" tmp-name t)))
+ (should (string-equal "foo" (buffer-string)))
+ (should-not (get-buffer-window (current-buffer) t)))
+ (delete-file tmp-name)))
;; Cleanup.
(ignore-errors (delete-file tmp-name))))))
@@ -6511,7 +6472,7 @@ This requires restrictions of file name syntax."
(unless (or (tramp--test-ftp-p)
(tramp--test-gvfs-p)
(tramp--test-windows-nt-or-smb-p))
- "*foo*bar*baz*")
+ "*foo+bar*baz+")
(if (or (tramp--test-gvfs-p) (tramp--test-windows-nt-or-smb-p))
"'foo'bar'baz'"
"'foo\"bar'baz\"")
diff --git a/test/lisp/progmodes/ruby-mode-tests.el
b/test/lisp/progmodes/ruby-mode-tests.el
index 23e13b94e6..33fded5a59 100644
--- a/test/lisp/progmodes/ruby-mode-tests.el
+++ b/test/lisp/progmodes/ruby-mode-tests.el
@@ -407,6 +407,13 @@ VALUES-PLIST is a list with alternating index and value
elements."
(ruby-toggle-block)
(should (string= "foo { \"#{bar}\" }" (buffer-string)))))
+(ert-deftest ruby-toggle-block-to-brace-no-space ()
+ (ruby-with-temp-buffer "foo do |b|\n b + 2\nend"
+ (beginning-of-line)
+ (let (ruby-toggle-block-space-before-parameters)
+ (ruby-toggle-block))
+ (should (string= "foo {|b| b + 2 }" (buffer-string)))))
+
(ert-deftest ruby-recognize-symbols-starting-with-at-character ()
(ruby-assert-face ":@abc" 3 font-lock-constant-face))
diff --git a/test/lisp/so-long-tests/spelling-tests.el
b/test/lisp/so-long-tests/spelling-tests.el
index 317513e9a9..ce4b0844c9 100644
--- a/test/lisp/so-long-tests/spelling-tests.el
+++ b/test/lisp/so-long-tests/spelling-tests.el
@@ -36,12 +36,11 @@
;; make lisp/so-long-tests/spelling-tests SELECTOR=t
;; Only define the test if spell-checking is possible.
-(when (and ispell-program-name
- (executable-find ispell-program-name)
- (condition-case ()
- (progn (ispell-check-version) t)
- (error nil))
- (member "british" (ispell-valid-dictionary-list)))
+(when (ignore-errors
+ (and ispell-program-name
+ (executable-find ispell-program-name)
+ (progn (ispell-check-version) t)
+ (member "british" (ispell-valid-dictionary-list))))
(ert-deftest so-long-spelling ()
"Check the spelling in the source code."
:tags '(:unstable) ;; It works for me, but I'm not sure about others.
@@ -51,8 +50,9 @@
;; The Emacs test Makefile's use of HOME=/nonexistent triggers an error
;; when starting the inferior ispell process, so we set HOME to a valid
;; (but empty) temporary directory for this test.
- (ert-with-temp-file tmpdir
- :suffix "so-long.ispell"
+ (ert-with-temp-directory tmpdir
+ :prefix "so-long."
+ :suffix ".ispell"
(let* ((process-environment (cons (format "HOME=%s" tmpdir)
process-environment))
(find-spelling-mistake
diff --git a/test/lisp/subr-tests.el b/test/lisp/subr-tests.el
index 9be7511bdc..e027c68d0b 100644
--- a/test/lisp/subr-tests.el
+++ b/test/lisp/subr-tests.el
@@ -1007,5 +1007,26 @@ final or penultimate step during initialization."))
(should (equal (ensure-list :foo) '(:foo)))
(should (equal (ensure-list '(1 2 3)) '(1 2 3))))
+(ert-deftest test-alias-p ()
+ (should-not (function-alias-p 1))
+
+ (defun subr-tests--fun ())
+ (should-not (function-alias-p 'subr-tests--fun))
+
+ (defalias 'subr-tests--a 'subr-tests--b)
+ (defalias 'subr-tests--b 'subr-tests--c)
+ (should (equal (function-alias-p 'subr-tests--a)
+ '(subr-tests--b subr-tests--c)))
+
+ (defalias 'subr-tests--d 'subr-tests--e)
+ (defalias 'subr-tests--e 'subr-tests--d)
+ (should-error (function-alias-p 'subr-tests--d))
+ (should (equal (function-alias-p 'subr-tests--d t)
+ '(subr-tests--e))))
+
+(ert-deftest test-readablep ()
+ (should (readablep "foo"))
+ (should-not (readablep (list (make-marker)))))
+
(provide 'subr-tests)
;;; subr-tests.el ends here
diff --git a/test/lisp/textmodes/fill-tests.el
b/test/lisp/textmodes/fill-tests.el
index a3265e2445..b730de5a69 100644
--- a/test/lisp/textmodes/fill-tests.el
+++ b/test/lisp/textmodes/fill-tests.el
@@ -45,6 +45,8 @@
(should (string= (buffer-string) "Abc\nd efg\n(h ijk)."))))
(ert-deftest fill-test-unbreakable-paragraph ()
+ ;; See bug#45720 and bug#53537.
+ :expected-result :failed
(with-temp-buffer
(let ((string "aaa = baaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"))
(insert string)
@@ -98,6 +100,27 @@
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eius. Foo")))
+(ert-deftest test-fill-haskell ()
+ (should
+ (equal
+ (with-temp-buffer
+ (asm-mode)
+ (dolist (line '(" ;; a b c"
+ " ;; d e f"
+ " ;; x y z"
+ " ;; w"))
+ (insert line "\n"))
+ (goto-char (point-min))
+ (end-of-line)
+ (setf fill-column 10)
+ (fill-paragraph nil)
+ (buffer-string))
+ " ;; a b c
+ ;; d e f
+ ;; x y z
+ ;; w
+")))
+
(provide 'fill-tests)
;;; fill-tests.el ends here
diff --git a/test/lisp/vc/vc-tests.el b/test/lisp/vc/vc-tests.el
index 7bf5ae6bc1..dc4d3af699 100644
--- a/test/lisp/vc/vc-tests.el
+++ b/test/lisp/vc/vc-tests.el
@@ -153,7 +153,7 @@ For backends which dont support it, it is emulated."
(delete-directory "module" 'recursive)
;; We must cleanup the "remote" CVS repo as well.
(add-hook 'vc-test--cleanup-hook
- `(lambda () (delete-directory ,tmp-dir 'recursive)))))
+ (lambda () (delete-directory tmp-dir 'recursive)))))
((eq backend 'Arch)
(let ((archive-name (format "%s--%s" user-mail-address (random))))
@@ -196,7 +196,8 @@ For backends which dont support it, it is emulated."
;; Cleanup.
(add-hook
'vc-test--cleanup-hook
- `(lambda () (delete-directory ,default-directory 'recursive)))
+ (let ((dir default-directory))
+ (lambda () (delete-directory dir 'recursive))))
;; Check the revision granularity.
(should (memq (vc-test--revision-granularity-function backend)
@@ -249,7 +250,8 @@ This checks also `vc-backend' and `vc-responsible-backend'."
;; Cleanup.
(add-hook
'vc-test--cleanup-hook
- `(lambda () (delete-directory ,default-directory 'recursive)))
+ (let ((dir default-directory))
+ (lambda () (delete-directory dir 'recursive))))
;; Create empty repository.
(make-directory default-directory)
@@ -329,7 +331,8 @@ This checks also `vc-backend' and `vc-responsible-backend'."
;; Cleanup.
(add-hook
'vc-test--cleanup-hook
- `(lambda () (delete-directory ,default-directory 'recursive)))
+ (let ((dir default-directory))
+ (lambda () (delete-directory dir 'recursive))))
;; Create empty repository.
(make-directory default-directory)
@@ -394,7 +397,8 @@ This checks also `vc-backend' and `vc-responsible-backend'."
;; Cleanup.
(add-hook
'vc-test--cleanup-hook
- `(lambda () (delete-directory ,default-directory 'recursive)))
+ (let ((dir default-directory))
+ (lambda () (delete-directory dir 'recursive))))
;; Create empty repository. Check working revision of
;; repository, should be nil.
@@ -471,7 +475,8 @@ This checks also `vc-backend' and `vc-responsible-backend'."
;; Cleanup.
(add-hook
'vc-test--cleanup-hook
- `(lambda () (delete-directory ,default-directory 'recursive)))
+ (let ((dir default-directory))
+ (lambda () (delete-directory dir 'recursive))))
;; Create empty repository. Check repository checkout model.
(make-directory default-directory)
@@ -553,7 +558,8 @@ This checks also `vc-backend' and `vc-responsible-backend'."
;; Cleanup.
(add-hook
'vc-test--cleanup-hook
- `(lambda () (delete-directory ,default-directory 'recursive)))
+ (let ((dir default-directory))
+ (lambda () (delete-directory dir 'recursive))))
;; Create empty repository.
(make-directory default-directory)
@@ -613,7 +619,8 @@ This checks also `vc-backend' and `vc-responsible-backend'."
;; Cleanup.
(add-hook
'vc-test--cleanup-hook
- `(lambda () (delete-directory ,default-directory 'recursive)))
+ (let ((dir default-directory))
+ (lambda () (delete-directory dir 'recursive))))
;; Create empty repository. Check repository checkout model.
(make-directory default-directory)
@@ -771,8 +778,9 @@ This checks also `vc-backend' and `vc-responsible-backend'."
',(intern
(format "vc-test-%s01-register" backend-string))))))
;; CVS calls vc-delete-file, which insists on prompting
- ;; "Really want to delete ...?"
- (skip-unless (not (eq 'CVS ',backend)))
+ ;; "Really want to delete ...?", and `vc-mtn.el' does not implement
+ ;; `delete-file' at all.
+ (skip-unless (not (memq ',backend '(CVS Mtn))))
(vc-test--rename-file ',backend))
(ert-deftest
@@ -785,6 +793,9 @@ This checks also `vc-backend' and `vc-responsible-backend'."
(ert-get-test
',(intern
(format "vc-test-%s01-register" backend-string))))))
+ ;; `vc-mtn.el' gives me:
+ ;; "Failed (status 1): mtn commit -m Testing vc-version-diff\n\n foo"
+ (skip-unless (not (memq ',backend '(Mtn))))
(vc-test--version-diff ',backend))
))))
diff --git a/test/src/comp-resources/comp-test-45603.el
b/test/src/comp-resources/comp-test-45603.el
index f1c0dafb68..65147ee015 100644
--- a/test/src/comp-resources/comp-test-45603.el
+++ b/test/src/comp-resources/comp-test-45603.el
@@ -7,7 +7,7 @@
(defvar comp-test-45603-directory)
(defvar comp-test-45603-marked-candidates)
-(defun comp-test-45603--call-marked (action)
+(defun comp-test-45603--call-marked (_action)
(let* ((prefix-len (length comp-test-45603-mark-prefix))
(marked-candidates
(mapcar
@@ -17,7 +17,8 @@
(expand-file-name cand comp-test-45603-directory)
cand)))
comp-test-45603-marked-candidates))
- (multi-action (comp-test-45603--get-multi-action
comp-test-45603-last)))))
+ (_multi-action (comp-test-45603--get-multi-action
comp-test-45603-last)))
+ marked-candidates))
(defalias 'comp-test-45603--file-local-name
(if (fboundp 'file-local-name)
diff --git a/test/src/comp-resources/comp-test-funcs.el
b/test/src/comp-resources/comp-test-funcs.el
index d740a5f810..0a60f4d6cc 100644
--- a/test/src/comp-resources/comp-test-funcs.el
+++ b/test/src/comp-resources/comp-test-funcs.el
@@ -189,7 +189,7 @@
;; Bnumberp
(numberp x))
-(defun comp-tests-discardn-f (x)
+(defun comp-tests-discardn-f (_x)
;; BdiscardN
(1+ (let ((a 1)
(_b)
@@ -297,8 +297,8 @@
;; potentially use all registers and that is modifying local
;; variables inside condition-case.
(let ((str-len (length str))
- (str-width 14)
- (ellipsis-width 3)
+ (_str-width 14)
+ (_ellipsis-width 3)
(idx 0)
(column 0)
(head-padding "") (tail-padding "")
@@ -489,7 +489,7 @@
(cl-defun comp-test-46824-1-f ()
(let ((next-repos '(1)))
(while t
- (let ((recipe (car next-repos)))
+ (let ((_recipe (car next-repos)))
(cl-block loop
(while t
(let ((err
@@ -640,7 +640,7 @@
(2 2))
3))))
-(defun comp-test-silly-frame2 (token)
+(defun comp-test-silly-frame2 (_token)
;; Check robustness against dead code.
(while c
(cl-case c
@@ -677,7 +677,7 @@
(progn
(if (and noninteractive (not byte-compile-verbose))
(message "Compiling %s..." filename))
- (byte-compile-file filename load))
+ (byte-compile-file filename))
(when load
(load (if (file-exists-p dest) dest filename)))
'no-byte-compile)))
diff --git a/test/src/fns-tests.el b/test/src/fns-tests.el
index f74e925d3b..723ef4c710 100644
--- a/test/src/fns-tests.el
+++ b/test/src/fns-tests.el
@@ -1192,4 +1192,74 @@
(should-error (line-number-at-pos -1))
(should-error (line-number-at-pos 100))))
+(defun fns-tests-concat (&rest args)
+ ;; Dodge the byte-compiler's partial evaluation of `concat' with
+ ;; constant arguments.
+ (apply #'concat args))
+
+(ert-deftest fns-concat ()
+ (should (equal (fns-tests-concat) ""))
+ (should (equal (fns-tests-concat "") ""))
+ (should (equal (fns-tests-concat nil) ""))
+ (should (equal (fns-tests-concat []) ""))
+ (should (equal (fns-tests-concat [97 98]) "ab"))
+ (should (equal (fns-tests-concat '(97 98)) "ab"))
+ (should (equal (fns-tests-concat "ab" '(99 100) nil [101 102] "gh")
+ "abcdefgh"))
+ (should (equal (fns-tests-concat "Ab" "\200" "cd") "Ab\200cd"))
+ (should (equal (fns-tests-concat "aB" "\200" "çd") "aB\200çd"))
+ (should (equal (fns-tests-concat "AB" (string-to-multibyte "\200") "cd")
+ (string-to-multibyte "AB\200cd")))
+ (should (equal (fns-tests-concat "ab" '(#xe5) [255] "cd") "abåÿcd"))
+ (should (equal (fns-tests-concat '(#x3fffff) [#x3fff80] "xy") "\377\200xy"))
+ (should (equal (fns-tests-concat '(#x3fffff) [#x3fff80] "xy§")
"\377\200xy§"))
+ (should (equal-including-properties
+ (fns-tests-concat #("abc" 0 3 (a 1)) #("de" 0 2 (a 1)))
+ #("abcde" 0 5 (a 1))))
+ (should (equal-including-properties
+ (fns-tests-concat #("abc" 0 3 (a 1)) "§ü" #("çå" 0 2 (b 2)))
+ #("abc§üçå" 0 3 (a 1) 5 7 (b 2))))
+ (should-error (fns-tests-concat "a" '(98 . 99))
+ :type 'wrong-type-argument)
+ (let ((loop (list 66 67)))
+ (setcdr (cdr loop) loop)
+ (should-error (fns-tests-concat "A" loop)
+ :type 'circular-list)))
+
+(ert-deftest fns-vconcat ()
+ (should (equal (vconcat) []))
+ (should (equal (vconcat nil) []))
+ (should (equal (vconcat "") []))
+ (should (equal (vconcat [1 2 3]) [1 2 3]))
+ (should (equal (vconcat '(1 2 3)) [1 2 3]))
+ (should (equal (vconcat "ABC") [65 66 67]))
+ (should (equal (vconcat "ü§") [252 167]))
+ (should (equal (vconcat [1 2 3] nil '(4 5) "AB" "å"
+ "\377" (string-to-multibyte "\377")
+ (bool-vector t nil nil t nil))
+ [1 2 3 4 5 65 66 #xe5 255 #x3fffff t nil nil t nil]))
+ (should-error (vconcat [1] '(2 . 3))
+ :type 'wrong-type-argument)
+ (let ((loop (list 1 2)))
+ (setcdr (cdr loop) loop)
+ (should-error (vconcat [1] loop)
+ :type 'circular-list)))
+
+(ert-deftest fns-append ()
+ (should (equal (append) nil))
+ (should (equal (append 'tail) 'tail))
+ (should (equal (append [1 2 3] nil '(4 5) "AB" "å"
+ "\377" (string-to-multibyte "\377")
+ (bool-vector t nil nil t nil)
+ '(9 10))
+ '(1 2 3 4 5 65 66 #xe5 255 #x3fffff t nil nil t nil 9 10)))
+ (should (equal (append '(1 2) '(3 4) 'tail)
+ '(1 2 3 4 . tail)))
+ (should-error (append '(1 . 2) '(3))
+ :type 'wrong-type-argument)
+ (let ((loop (list 1 2)))
+ (setcdr (cdr loop) loop)
+ (should-error (append loop '(end))
+ :type 'circular-list)))
+
;;; fns-tests.el ends here
diff --git a/test/src/print-tests.el b/test/src/print-tests.el
index 4c7b339e0c..1ef0caf1a4 100644
--- a/test/src/print-tests.el
+++ b/test/src/print-tests.el
@@ -406,5 +406,16 @@ otherwise, use a different charset."
(should (equal printed-nonprints
"(55296 57343 778 65535 8194 8204)"))))
+(ert-deftest test-unreadable ()
+ (should (equal (prin1-to-string (make-marker)) "#<marker in no buffer>"))
+ (let ((print-unreadable-function
+ (lambda (_object _escape)
+ "hello")))
+ (should (equal (prin1-to-string (make-marker)) "hello")))
+ (let ((print-unreadable-function
+ (lambda (_object _escape)
+ t)))
+ (should (equal (prin1-to-string (make-marker)) ""))))
+
(provide 'print-tests)
;;; print-tests.el ends here
diff --git a/test/src/syntax-tests.el b/test/src/syntax-tests.el
index 3b9f21cde3..751a900a23 100644
--- a/test/src/syntax-tests.el
+++ b/test/src/syntax-tests.el
@@ -506,4 +506,19 @@ the `parse-partial-sexp's are expected to stop. See
(should (parse-partial-sexp 1 1))
(should-error (parse-partial-sexp 2 1))))
+(ert-deftest syntax-char-syntax ()
+ ;; Verify that char-syntax behaves identically in interpreted and
+ ;; byte-compiled code (bug#53260).
+ (let ((cs (byte-compile (lambda (x) (char-syntax x)))))
+ ;; Use a unibyte buffer with a syntax table using symbol syntax
+ ;; for raw byte 128.
+ (with-temp-buffer
+ (set-buffer-multibyte nil)
+ (let ((st (make-syntax-table)))
+ (modify-syntax-entry (unibyte-char-to-multibyte 128) "_" st)
+ (set-syntax-table st)
+ (should (equal (eval '(char-syntax 128) t) ?_))
+ (should (equal (funcall cs 128) ?_))))
+ (list (char-syntax 128) (funcall cs 128))))
+
;;; syntax-tests.el ends here