diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-06 03:01:46 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-06 03:01:46 +0000 |
commit | f8fe689a81f906d1b91bb3220acde2a4ecb14c5b (patch) | |
tree | 26484e9d7e2c67806c2d1760196ff01aaa858e8c /src/VBox/Runtime/common/string | |
parent | Initial commit. (diff) | |
download | virtualbox-upstream.tar.xz virtualbox-upstream.zip |
Adding upstream version 6.0.4-dfsg.upstream/6.0.4-dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/VBox/Runtime/common/string')
106 files changed, 74739 insertions, 0 deletions
diff --git a/src/VBox/Runtime/common/string/Makefile.kup b/src/VBox/Runtime/common/string/Makefile.kup new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/VBox/Runtime/common/string/Makefile.kup diff --git a/src/VBox/Runtime/common/string/RTStrCat.cpp b/src/VBox/Runtime/common/string/RTStrCat.cpp new file mode 100644 index 00000000..27f44cc7 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrCat.cpp @@ -0,0 +1,58 @@ +/* $Id: RTStrCat.cpp $ */ +/** @file + * IPRT - RTStrCat. + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/errcore.h> + + +RTDECL(int) RTStrCat(char *pszDst, size_t cbDst, const char *pszSrc) +{ + char *pszDst2 = RTStrEnd(pszDst, cbDst); + AssertReturn(pszDst2, VERR_INVALID_PARAMETER); + cbDst -= pszDst2 - pszDst; + + size_t cchSrc = strlen(pszSrc); + if (RT_LIKELY(cchSrc < cbDst)) + { + memcpy(pszDst2, pszSrc, cchSrc + 1); + return VINF_SUCCESS; + } + + if (cbDst != 0) + { + memcpy(pszDst2, pszSrc, cbDst - 1); + pszDst2[cbDst - 1] = '\0'; + } + return VERR_BUFFER_OVERFLOW; +} +RT_EXPORT_SYMBOL(RTStrCat); + diff --git a/src/VBox/Runtime/common/string/RTStrCatEx.cpp b/src/VBox/Runtime/common/string/RTStrCatEx.cpp new file mode 100644 index 00000000..9ff828dd --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrCatEx.cpp @@ -0,0 +1,60 @@ +/* $Id: RTStrCatEx.cpp $ */ +/** @file + * IPRT - RTStrCatEx + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/errcore.h> + + +RTDECL(int) RTStrCatEx(char *pszDst, size_t cbDst, const char *pszSrc, size_t cchMaxSrc) +{ + char *pszDst2 = RTStrEnd(pszDst, cbDst); + AssertReturn(pszDst2, VERR_INVALID_PARAMETER); + cbDst -= pszDst2 - pszDst; + + const char *pszSrcEol = RTStrEnd(pszSrc, cchMaxSrc); + size_t cchSrc = pszSrcEol ? (size_t)(pszSrcEol - pszSrc) : cchMaxSrc; + if (RT_LIKELY(cchSrc < cbDst)) + { + memcpy(pszDst2, pszSrc, cchSrc); + pszDst2[cchSrc] = '\0'; + return VINF_SUCCESS; + } + + if (cbDst != 0) + { + memcpy(pszDst2, pszSrc, cbDst - 1); + pszDst2[cbDst - 1] = '\0'; + } + return VERR_BUFFER_OVERFLOW; +} +RT_EXPORT_SYMBOL(RTStrCatEx); + diff --git a/src/VBox/Runtime/common/string/RTStrCatP.cpp b/src/VBox/Runtime/common/string/RTStrCatP.cpp new file mode 100644 index 00000000..28e570c3 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrCatP.cpp @@ -0,0 +1,53 @@ +/* $Id: RTStrCatP.cpp $ */ +/** @file + * IPRT - RTStrCat. + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/errcore.h> + + +RTDECL(int) RTStrCatP(char **ppszDst, size_t *pcbDst, const char *pszSrc) +{ + /* + * Advance past the current string in the output buffer and turn this into + * a copy operation. + */ + char *pszDstOrg = *ppszDst; + size_t cbDst = *pcbDst; + char *pszDst = RTStrEnd(pszDstOrg, cbDst); + AssertReturn(pszDst, VERR_INVALID_PARAMETER); + *ppszDst = pszDst; + *pcbDst = cbDst - (pszDst - pszDstOrg); + + return RTStrCopyP(ppszDst, pcbDst, pszSrc); +} +RT_EXPORT_SYMBOL(RTStrCatP); + diff --git a/src/VBox/Runtime/common/string/RTStrCatPEx.cpp b/src/VBox/Runtime/common/string/RTStrCatPEx.cpp new file mode 100644 index 00000000..d33fb3f4 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrCatPEx.cpp @@ -0,0 +1,52 @@ +/* $Id: RTStrCatPEx.cpp $ */ +/** @file + * IPRT - RTStrCatPEx + */ + +/* + * Copyright (C) 2011-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/errcore.h> + + +RTDECL(int) RTStrCatPEx(char **ppszDst, size_t *pcbDst, const char *pszSrc, size_t cchMaxSrc) +{ + /* + * Advance past the current string in the output buffer and turn this into + * a copy operation. + */ + size_t cbDst = *pcbDst; + char *pszDst = RTStrEnd(*ppszDst, cbDst); + AssertReturn(pszDst, VERR_INVALID_PARAMETER); + *pcbDst -= pszDst - *ppszDst; + *ppszDst = pszDst; + + return RTStrCopyPEx(ppszDst, pcbDst, pszSrc, cchMaxSrc); +} +RT_EXPORT_SYMBOL(RTStrCatPEx); + diff --git a/src/VBox/Runtime/common/string/RTStrCmp.cpp b/src/VBox/Runtime/common/string/RTStrCmp.cpp new file mode 100644 index 00000000..50988895 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrCmp.cpp @@ -0,0 +1,60 @@ +/* $Id: RTStrCmp.cpp $ */ +/** @file + * IPRT - RTStrCmp. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + + +/** + * Performs a case sensitive string compare between two UTF-8 strings. + * + * Encoding errors are ignored by the current implementation. So, the only + * difference between this and the CRT strcmp function is the handling of + * NULL arguments. + * + * @returns < 0 if the first string less than the second string. + * @returns 0 if the first string identical to the second string. + * @returns > 0 if the first string greater than the second string. + * @param psz1 First UTF-8 string. Null is allowed. + * @param psz2 Second UTF-8 string. Null is allowed. + */ +RTDECL(int) RTStrCmp(const char *psz1, const char *psz2) +{ + if (psz1 == psz2) + return 0; + if (!psz1) + return -1; + if (!psz2) + return 1; + + return strcmp(psz1, psz2); +} +RT_EXPORT_SYMBOL(RTStrCmp); + diff --git a/src/VBox/Runtime/common/string/RTStrCopy.cpp b/src/VBox/Runtime/common/string/RTStrCopy.cpp new file mode 100644 index 00000000..2437c18b --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrCopy.cpp @@ -0,0 +1,54 @@ +/* $Id: RTStrCopy.cpp $ */ +/** @file + * IPRT - RTStrCopy. + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/errcore.h> + + +RTDECL(int) RTStrCopy(char *pszDst, size_t cbDst, const char *pszSrc) +{ + size_t cchSrc = strlen(pszSrc); + if (RT_LIKELY(cchSrc < cbDst)) + { + memcpy(pszDst, pszSrc, cchSrc + 1); + return VINF_SUCCESS; + } + + if (cbDst != 0) + { + memcpy(pszDst, pszSrc, cbDst - 1); + pszDst[cbDst - 1] = '\0'; + } + return VERR_BUFFER_OVERFLOW; +} +RT_EXPORT_SYMBOL(RTStrCopy); + diff --git a/src/VBox/Runtime/common/string/RTStrCopyEx.cpp b/src/VBox/Runtime/common/string/RTStrCopyEx.cpp new file mode 100644 index 00000000..9b83f188 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrCopyEx.cpp @@ -0,0 +1,56 @@ +/* $Id: RTStrCopyEx.cpp $ */ +/** @file + * IPRT - RTStrCopyEx. + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/errcore.h> + + +RTDECL(int) RTStrCopyEx(char *pszDst, size_t cbDst, const char *pszSrc, size_t cchMaxSrc) +{ + const char *pszSrcEol = RTStrEnd(pszSrc, cchMaxSrc); + size_t cchSrc = pszSrcEol ? (size_t)(pszSrcEol - pszSrc) : cchMaxSrc; + if (RT_LIKELY(cchSrc < cbDst)) + { + memcpy(pszDst, pszSrc, cchSrc); + pszDst[cchSrc] = '\0'; + return VINF_SUCCESS; + } + + if (cbDst != 0) + { + memcpy(pszDst, pszSrc, cbDst - 1); + pszDst[cbDst - 1] = '\0'; + } + return VERR_BUFFER_OVERFLOW; +} +RT_EXPORT_SYMBOL(RTStrCopyEx); + diff --git a/src/VBox/Runtime/common/string/RTStrCopyP.cpp b/src/VBox/Runtime/common/string/RTStrCopyP.cpp new file mode 100644 index 00000000..3541cd88 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrCopyP.cpp @@ -0,0 +1,60 @@ +/* $Id: RTStrCopyP.cpp $ */ +/** @file + * IPRT - RTStrCopyP. + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/errcore.h> + + +RTDECL(int) RTStrCopyP(char **ppszDst, size_t *pcbDst, const char *pszSrc) +{ + size_t const cchSrc = strlen(pszSrc); + size_t const cbDst = *pcbDst; + char *pszDst = *ppszDst; + if (RT_LIKELY(cchSrc < cbDst)) + { + memcpy(pszDst, pszSrc, cchSrc + 1); + *ppszDst = pszDst += cchSrc; + *pcbDst -= cchSrc; + return VINF_SUCCESS; + } + + if (cbDst != 0) + { + memcpy(*ppszDst, pszSrc, cbDst - 1); + *ppszDst = pszDst += cbDst - 1; + *pszDst = '\0'; + *pcbDst = 1; + } + return VERR_BUFFER_OVERFLOW; +} +RT_EXPORT_SYMBOL(RTStrCopyP); + diff --git a/src/VBox/Runtime/common/string/RTStrCopyPEx.cpp b/src/VBox/Runtime/common/string/RTStrCopyPEx.cpp new file mode 100644 index 00000000..65d98346 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrCopyPEx.cpp @@ -0,0 +1,62 @@ +/* $Id: RTStrCopyPEx.cpp $ */ +/** @file + * IPRT - RTStrCopyPEx. + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/errcore.h> + + +RTDECL(int) RTStrCopyPEx(char **ppszDst, size_t *pcbDst, const char *pszSrc, size_t cchMaxSrc) +{ + const char *pszSrcEol = RTStrEnd(pszSrc, cchMaxSrc); + size_t cchSrc = pszSrcEol ? (size_t)(pszSrcEol - pszSrc) : cchMaxSrc; + size_t const cbDst = *pcbDst; + char *pszDst = *ppszDst; + if (RT_LIKELY(cchSrc < cbDst)) + { + memcpy(pszDst, pszSrc, cchSrc); + *ppszDst = pszDst += cchSrc; + *pszDst = '\0'; + *pcbDst -= cchSrc; + return VINF_SUCCESS; + } + + if (cbDst != 0) + { + memcpy(*ppszDst, pszSrc, cbDst - 1); + *ppszDst = pszDst += cbDst - 1; + *pszDst = '\0'; + *pcbDst = 1; + } + return VERR_BUFFER_OVERFLOW; +} +RT_EXPORT_SYMBOL(RTStrCopyPEx); + diff --git a/src/VBox/Runtime/common/string/RTStrICmpAscii.cpp b/src/VBox/Runtime/common/string/RTStrICmpAscii.cpp new file mode 100644 index 00000000..d4954bc2 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrICmpAscii.cpp @@ -0,0 +1,78 @@ +/* $Id: RTStrICmpAscii.cpp $ */ +/** @file + * IPRT - RTStrICmpAscii. + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> +#include <iprt/ctype.h> + + +RTDECL(int) RTStrICmpAscii(const char *psz1, const char *psz2) +{ + if (psz1 == psz2) + return 0; + if (!psz1) + return -1; + if (!psz2) + return 1; + + for (;;) + { + RTUNICP uc1; + int rc = RTStrGetCpEx(&psz1, &uc1); + if (RT_SUCCESS(rc)) + { + unsigned char uch2 = *psz2++; Assert(uch2 < 0x80); + + /* compare */ + int iDiff = uc1 - uch2; + if (iDiff) + { + if (uc1 >= 0x80) + return 1; + + iDiff = RT_C_TO_LOWER(uc1) - RT_C_TO_LOWER(uch2); /* Return lower cased diff! */ + if (iDiff) + return iDiff; + } + + if (uch2) + { /* likely */ } + else + return 0; + } + /* Hit some bad encoding, continue in case sensitive mode. */ + else + return RTStrCmp(psz1 - 1, psz2); + } +} +RT_EXPORT_SYMBOL(RTStrICmpAscii); + diff --git a/src/VBox/Runtime/common/string/RTStrIStartsWith.cpp b/src/VBox/Runtime/common/string/RTStrIStartsWith.cpp new file mode 100644 index 00000000..a84c589d --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrIStartsWith.cpp @@ -0,0 +1,49 @@ +/* $Id: RTStrIStartsWith.cpp $ */ +/** @file + * IPRT - String starts with predicate, case insensitive. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#define LOG_GROUP RTLOGGROUP_STRING +#include <iprt/string.h> +#include "internal/iprt.h" + + +RTDECL(int) RTStrIStartsWith(const char *pszString, const char *pszStart) +{ + if (pszString) + { + if (*pszString == *pszStart) + { + size_t cchStart = strlen(pszStart); + if (RTStrNICmp(pszString, pszStart, cchStart) == 0) + return true; + } + } + return false; +} + diff --git a/src/VBox/Runtime/common/string/RTStrNCmp.cpp b/src/VBox/Runtime/common/string/RTStrNCmp.cpp new file mode 100644 index 00000000..c74ddf72 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrNCmp.cpp @@ -0,0 +1,62 @@ +/* $Id: RTStrNCmp.cpp $ */ +/** @file + * IPRT - RTStrNCmp. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + + +RTDECL(int) RTStrNCmp(const char *psz1, const char *psz2, size_t cchMax) +{ + if (psz1 == psz2) + return 0; + if (!psz1) + return -1; + if (!psz2) + return 1; + +#ifdef RT_OS_SOLARIS + /* Solaris: tstUtf8 found to fail for some RTSTR_MAX on testboxsh1: + solaris.amd64 v5.10 (Generic_142901-12 (Assembled 30 March 2009)). */ + while (cchMax-- > 0) + { + char ch1 = *psz1++; + char ch2 = *psz2++; + if (ch1 != ch2) + return ch1 > ch2 ? 1 : -1; + else if (ch1 == 0) + break; + } + return 0; +#else + return strncmp(psz1, psz2, cchMax); +#endif +} +RT_EXPORT_SYMBOL(RTStrNCmp); + diff --git a/src/VBox/Runtime/common/string/RTStrNICmpAscii.cpp b/src/VBox/Runtime/common/string/RTStrNICmpAscii.cpp new file mode 100644 index 00000000..c07e39bd --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrNICmpAscii.cpp @@ -0,0 +1,80 @@ +/* $Id: RTStrNICmpAscii.cpp $ */ +/** @file + * IPRT - RTStrNICmpAscii. + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> +#include <iprt/ctype.h> + + +RTDECL(int) RTStrNICmpAscii(const char *psz1, const char *psz2, size_t cchMax) +{ + if (cchMax == 0) + return 0; + if (psz1 == psz2) + return 0; + if (!psz1) + return -1; + if (!psz2) + return 1; + + for (;;) + { + RTUNICP uc1; + int rc = RTStrGetCpNEx(&psz1, &cchMax, &uc1); + if (RT_SUCCESS(rc)) + { + unsigned char uch2 = *psz2++; Assert(uch2 < 0x80); + + /* compare */ + int iDiff = uc1 - uch2; + if (iDiff) + { + if (uc1 >= 0x80) + return 1; + + iDiff = RT_C_TO_LOWER(uc1) - RT_C_TO_LOWER(uch2); /* Return lower cased diff! */ + if (iDiff) + return iDiff; + } + + if (uch2 && cchMax) + { /* likely */ } + else + return 0; + } + /* Hit some bad encoding, continue in case sensitive mode. */ + else + return RTStrNCmp(psz1 - 1, psz2, cchMax + 1); + } +} +RT_EXPORT_SYMBOL(RTStrNICmpAscii); + diff --git a/src/VBox/Runtime/common/string/RTStrNLen.cpp b/src/VBox/Runtime/common/string/RTStrNLen.cpp new file mode 100644 index 00000000..572f889a --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrNLen.cpp @@ -0,0 +1,41 @@ +/* $Id: RTStrNLen.cpp $ */ +/** @file + * IPRT - RTStrNLen. + */ + +/* + * Copyright (C) 2008-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + + +RTDECL(size_t) RTStrNLen(const char *pszString, size_t cchMax) +{ + const char *pchEnd = RTStrEnd(pszString, cchMax); + return pchEnd ? pchEnd - pszString : cchMax; +} +RT_EXPORT_SYMBOL(RTStrNLen); + diff --git a/src/VBox/Runtime/common/string/RTStrNLenEx.cpp b/src/VBox/Runtime/common/string/RTStrNLenEx.cpp new file mode 100644 index 00000000..c2082fae --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrNLenEx.cpp @@ -0,0 +1,49 @@ +/* $Id: RTStrNLenEx.cpp $ */ +/** @file + * IPRT - RTStrNLenEx. + */ + +/* + * Copyright (C) 2008-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/errcore.h> + + +RTDECL(int) RTStrNLenEx(const char *pszString, size_t cchMax, size_t *pcch) +{ + const char *pchEnd = RTStrEnd(pszString, cchMax); + if (!pchEnd) + { + *pcch = cchMax; + return VERR_BUFFER_OVERFLOW; + } + *pcch = pchEnd - pszString; + return VINF_SUCCESS; +} +RT_EXPORT_SYMBOL(RTStrNLenEx); + diff --git a/src/VBox/Runtime/common/string/RTStrPrintHexBytes.cpp b/src/VBox/Runtime/common/string/RTStrPrintHexBytes.cpp new file mode 100644 index 00000000..2920f7e9 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrPrintHexBytes.cpp @@ -0,0 +1,85 @@ +/* $Id: RTStrPrintHexBytes.cpp $ */ +/** @file + * IPRT - RTStrPrintHexBytes. + */ + +/* + * Copyright (C) 2009-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include "internal/iprt.h" +#include <iprt/string.h> + +#include <iprt/assert.h> +#include <iprt/errcore.h> + + +RTDECL(int) RTStrPrintHexBytes(char *pszBuf, size_t cbBuf, void const *pv, size_t cb, uint32_t fFlags) +{ + AssertReturn( !(fFlags & ~(RTSTRPRINTHEXBYTES_F_UPPER | RTSTRPRINTHEXBYTES_F_SEP_SPACE | RTSTRPRINTHEXBYTES_F_SEP_COLON)) + && (fFlags & (RTSTRPRINTHEXBYTES_F_SEP_SPACE | RTSTRPRINTHEXBYTES_F_SEP_COLON)) + != (RTSTRPRINTHEXBYTES_F_SEP_SPACE | RTSTRPRINTHEXBYTES_F_SEP_COLON), + VERR_INVALID_FLAGS); + AssertPtrReturn(pszBuf, VERR_INVALID_POINTER); + AssertReturn(cb * 2 >= cb, VERR_BUFFER_OVERFLOW); + char const chSep = fFlags & RTSTRPRINTHEXBYTES_F_SEP_SPACE ? ' ' + : fFlags & RTSTRPRINTHEXBYTES_F_SEP_COLON ? ':' : '\0'; + AssertReturn(cbBuf >= cb * (2 + (chSep != '\0')) - (chSep != '\0') + 1, VERR_BUFFER_OVERFLOW); + if (cb) + AssertPtrReturn(pv, VERR_INVALID_POINTER); + + static char const s_szHexDigitsLower[17] = "0123456789abcdef"; + static char const s_szHexDigitsUpper[17] = "0123456789ABCDEF"; + const char *pszHexDigits = !(fFlags & RTSTRPRINTHEXBYTES_F_UPPER) ? s_szHexDigitsLower : s_szHexDigitsUpper; + + uint8_t const *pb = (uint8_t const *)pv; + + if (!chSep) + { + while (cb-- > 0) + { + uint8_t b = *pb++; + *pszBuf++ = pszHexDigits[b >> 4]; + *pszBuf++ = pszHexDigits[b & 0xf]; + } + } + else if (cb-- > 0) + { + uint8_t b = *pb++; + *pszBuf++ = pszHexDigits[b >> 4]; + *pszBuf++ = pszHexDigits[b & 0xf]; + + while (cb-- > 0) + { + b = *pb++; + *pszBuf++ = chSep; + *pszBuf++ = pszHexDigits[b >> 4]; + *pszBuf++ = pszHexDigits[b & 0xf]; + } + } + + *pszBuf = '\0'; + return VINF_SUCCESS; +} + diff --git a/src/VBox/Runtime/common/string/RTStrStartsWith.cpp b/src/VBox/Runtime/common/string/RTStrStartsWith.cpp new file mode 100644 index 00000000..04be14c5 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrStartsWith.cpp @@ -0,0 +1,49 @@ +/* $Id: RTStrStartsWith.cpp $ */ +/** @file + * IPRT - String starts with predicate. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#define LOG_GROUP RTLOGGROUP_STRING +#include <iprt/string.h> +#include "internal/iprt.h" + + +RTDECL(int) RTStrStartsWith(const char *pszString, const char *pszStart) +{ + if (pszString) + { + if (*pszString == *pszStart) + { + size_t cchStart = strlen(pszStart); + if (strncmp(pszString, pszStart, cchStart) == 0) + return true; + } + } + return false; +} + diff --git a/src/VBox/Runtime/common/string/RTStrStr.cpp b/src/VBox/Runtime/common/string/RTStrStr.cpp new file mode 100644 index 00000000..9898c123 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTStrStr.cpp @@ -0,0 +1,47 @@ +/* $Id: RTStrStr.cpp $ */ +/** @file + * IPRT - RTStrStr. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + + +RTDECL(char *) RTStrStr(const char *pszHaystack, const char *pszNeedle) +{ + /* Any NULL strings means NULL return. (In the RTStrCmp tradition.) */ + if (!pszHaystack) + return NULL; + if (!pszNeedle) + return NULL; + + /* The rest is CRT. */ + return (char *)strstr(pszHaystack, pszNeedle); +} +RT_EXPORT_SYMBOL(RTStrStr); + diff --git a/src/VBox/Runtime/common/string/RTUtf16Cat.cpp b/src/VBox/Runtime/common/string/RTUtf16Cat.cpp new file mode 100644 index 00000000..8805e0cc --- /dev/null +++ b/src/VBox/Runtime/common/string/RTUtf16Cat.cpp @@ -0,0 +1,44 @@ +/* $Id: RTUtf16Cat.cpp $ */ +/** @file + * IPRT - RTUtf16Cat. + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/utf16.h> +#include "internal/iprt.h" + +#include <iprt/errcore.h> + + +RTDECL(int) RTUtf16Cat(PRTUTF16 pwszDst, size_t cwcDst, PCRTUTF16 pwszSrc) +{ + PRTUTF16 pwszDst2 = (PRTUTF16)RTUtf16End(pwszDst, cwcDst); + AssertReturn(pwszDst2, VERR_INVALID_PARAMETER); + return RTUtf16Copy(pwszDst2, cwcDst - (pwszDst2 - pwszDst), pwszSrc); +} +RT_EXPORT_SYMBOL(RTUtf16Cat); + diff --git a/src/VBox/Runtime/common/string/RTUtf16CatAscii.cpp b/src/VBox/Runtime/common/string/RTUtf16CatAscii.cpp new file mode 100644 index 00000000..bcf10196 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTUtf16CatAscii.cpp @@ -0,0 +1,44 @@ +/* $Id: RTUtf16CatAscii.cpp $ */ +/** @file + * IPRT - RTUtf16CatAscii. + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/utf16.h> +#include "internal/iprt.h" + +#include <iprt/errcore.h> + + +RTDECL(int) RTUtf16CatAscii(PRTUTF16 pwszDst, size_t cwcDst, const char *pszSrc) +{ + PRTUTF16 pwszDst2 = (PRTUTF16)RTUtf16End(pwszDst, cwcDst); + AssertReturn(pwszDst2, VERR_INVALID_PARAMETER); + return RTUtf16CopyAscii(pwszDst2, cwcDst - (pwszDst2 - pwszDst), pszSrc); +} +RT_EXPORT_SYMBOL(RTUtf16CatAscii); + diff --git a/src/VBox/Runtime/common/string/RTUtf16Chr.cpp b/src/VBox/Runtime/common/string/RTUtf16Chr.cpp new file mode 100644 index 00000000..21528503 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTUtf16Chr.cpp @@ -0,0 +1,52 @@ +/* $Id: RTUtf16Chr.cpp $ */ +/** @file + * IPRT - RTUtf16Chr. + */ + +/* + * Copyright (C) 2014-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/utf16.h> +#include "internal/iprt.h" + + +RTDECL(PRTUTF16) RTUtf16Chr(PCRTUTF16 pwszString, RTUTF16 wc) +{ + for (;;) + { + RTUTF16 wcSrc = *pwszString; + if (wcSrc != wc) + { + if (wcSrc != '\0') + pwszString++; + else + return NULL; + } + else + return (PRTUTF16)pwszString; + } +} +RT_EXPORT_SYMBOL(RTUtf16Chr); + diff --git a/src/VBox/Runtime/common/string/RTUtf16CmpAscii.cpp b/src/VBox/Runtime/common/string/RTUtf16CmpAscii.cpp new file mode 100644 index 00000000..3684312a --- /dev/null +++ b/src/VBox/Runtime/common/string/RTUtf16CmpAscii.cpp @@ -0,0 +1,50 @@ +/* $Id: RTUtf16CmpAscii.cpp $ */ +/** @file + * IPRT - RTUtf16CmpAscii. + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/utf16.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> + + +RTDECL(int) RTUtf16CmpAscii(PCRTUTF16 pwsz1, const char *psz2) +{ + for (;;) + { + RTUTF16 wc1 = *pwsz1++; + unsigned char uch2 = *psz2++; Assert(uch2 < 0x80); + if (wc1 != uch2) + return wc1 < uch2 ? -1 : 1; + if (!uch2) + return 0; + } +} +RT_EXPORT_SYMBOL(RTUtf16ICmpAscii); + diff --git a/src/VBox/Runtime/common/string/RTUtf16Copy.cpp b/src/VBox/Runtime/common/string/RTUtf16Copy.cpp new file mode 100644 index 00000000..d108c6dd --- /dev/null +++ b/src/VBox/Runtime/common/string/RTUtf16Copy.cpp @@ -0,0 +1,54 @@ +/* $Id: RTUtf16Copy.cpp $ */ +/** @file + * IPRT - RTUtf16Copy. + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/utf16.h> +#include "internal/iprt.h" + +#include <iprt/errcore.h> + + +RTDECL(int) RTUtf16Copy(PRTUTF16 pwszDst, size_t cwcDst, PCRTUTF16 pwszSrc) +{ + size_t wcwSrc = RTUtf16Len(pwszSrc); + if (RT_LIKELY(wcwSrc < cwcDst)) + { + memcpy(pwszDst, pwszSrc, (wcwSrc + 1) * sizeof(RTUTF16)); + return VINF_SUCCESS; + } + + if (cwcDst != 0) + { + memcpy(pwszDst, pwszSrc, (cwcDst - 1) * sizeof(RTUTF16)); + pwszDst[cwcDst - 1] = '\0'; + } + return VERR_BUFFER_OVERFLOW; +} +RT_EXPORT_SYMBOL(RTUtf16Copy); + diff --git a/src/VBox/Runtime/common/string/RTUtf16CopyAscii.cpp b/src/VBox/Runtime/common/string/RTUtf16CopyAscii.cpp new file mode 100644 index 00000000..e285c508 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTUtf16CopyAscii.cpp @@ -0,0 +1,72 @@ +/* $Id: RTUtf16CopyAscii.cpp $ */ +/** @file + * IPRT - RTUtf16CopyAscii. + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/utf16.h> +#include "internal/iprt.h" + +#include <iprt/errcore.h> + + +RTDECL(int) RTUtf16CopyAscii(PRTUTF16 pwszDst, size_t cwcDst, const char *pszSrc) +{ + int rc; + size_t cchSrc = strlen(pszSrc); + size_t cchCopy; + if (RT_LIKELY(cchSrc < cwcDst)) + { + rc = VINF_SUCCESS; + cchCopy = cchSrc; + } + else if (cwcDst != 0) + { + rc = VERR_BUFFER_OVERFLOW; + cchCopy = cwcDst - 1; + } + else + return VERR_BUFFER_OVERFLOW; + + pwszDst[cchCopy] = '\0'; + while (cchCopy-- > 0) + { + unsigned char ch = pszSrc[cchCopy]; + if (RT_LIKELY(ch < 0x80)) + pwszDst[cchCopy] = ch; + else + { + AssertMsgFailed(("ch=%#x\n", ch)); + pwszDst[cchCopy] = 0x7f; + if (rc == VINF_SUCCESS) + rc = VERR_OUT_OF_RANGE; + } + } + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16CopyAscii); + diff --git a/src/VBox/Runtime/common/string/RTUtf16End.cpp b/src/VBox/Runtime/common/string/RTUtf16End.cpp new file mode 100644 index 00000000..0b8b0cdb --- /dev/null +++ b/src/VBox/Runtime/common/string/RTUtf16End.cpp @@ -0,0 +1,46 @@ +/* $Id: RTUtf16End.cpp $ */ +/** @file + * IPRT - RTUtf16End. + */ + +/* + * Copyright (C) 2014-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/utf16.h> +#include "internal/iprt.h" + + +RTDECL(PCRTUTF16) RTUtf16End(PCRTUTF16 pwszString, size_t cwcMax) +{ + while (cwcMax-- > 0) + { + if (!*pwszString) + return pwszString; + pwszString++; + } + return NULL; +} +RT_EXPORT_SYMBOL(RTUtf16End); + diff --git a/src/VBox/Runtime/common/string/RTUtf16ICmpAscii.cpp b/src/VBox/Runtime/common/string/RTUtf16ICmpAscii.cpp new file mode 100644 index 00000000..4dfec39e --- /dev/null +++ b/src/VBox/Runtime/common/string/RTUtf16ICmpAscii.cpp @@ -0,0 +1,56 @@ +/* $Id: RTUtf16ICmpAscii.cpp $ */ +/** @file + * IPRT - RTUtf16ICmpAscii. + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/utf16.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> +#include <iprt/ctype.h> + + +RTDECL(int) RTUtf16ICmpAscii(PCRTUTF16 pwsz1, const char *psz2) +{ + for (;;) + { + RTUTF16 wc1 = *pwsz1++; + unsigned char uch2 = *psz2++; Assert(uch2 < 0x80); + if (wc1 != uch2) + { + if (wc1 >= 0x80) + return 1; + if (RT_C_TO_LOWER(wc1) != RT_C_TO_LOWER(uch2)) + return wc1 < uch2 ? -1 : 1; + } + if (!uch2) + return 0; + } +} +RT_EXPORT_SYMBOL(RTUtf16ICmpAscii); + diff --git a/src/VBox/Runtime/common/string/RTUtf16NCmpAscii.cpp b/src/VBox/Runtime/common/string/RTUtf16NCmpAscii.cpp new file mode 100644 index 00000000..21bfbb2d --- /dev/null +++ b/src/VBox/Runtime/common/string/RTUtf16NCmpAscii.cpp @@ -0,0 +1,51 @@ +/* $Id: RTUtf16NCmpAscii.cpp $ */ +/** @file + * IPRT - RTUtf16CmpAscii. + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/utf16.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> + + +RTDECL(int) RTUtf16NCmpAscii(PCRTUTF16 pwsz1, const char *psz2, size_t cwcMax) +{ + while (cwcMax-- > 0) + { + RTUTF16 wc1 = *pwsz1++; + unsigned char uch2 = *psz2++; Assert(uch2 < 0x80); + if (wc1 != uch2) + return wc1 < uch2 ? -1 : 1; + if (!uch2) + break; + } + return 0; +} +RT_EXPORT_SYMBOL(RTUtf16NCmpAscii); + diff --git a/src/VBox/Runtime/common/string/RTUtf16NICmpAscii.cpp b/src/VBox/Runtime/common/string/RTUtf16NICmpAscii.cpp new file mode 100644 index 00000000..533619d5 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTUtf16NICmpAscii.cpp @@ -0,0 +1,61 @@ +/* $Id: RTUtf16NICmpAscii.cpp $ */ +/** @file + * IPRT - RTUtf16ICmpAscii. + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/utf16.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> +#include <iprt/ctype.h> + + +RTDECL(int) RTUtf16NICmpAscii(PCRTUTF16 pwsz1, const char *psz2, size_t cwcMax) +{ + for (;;) + { + if (cwcMax == 0) + return 0; + + RTUTF16 wc1 = *pwsz1++; + unsigned char uch2 = *psz2++; Assert(uch2 < 0x80); + if (wc1 != uch2) + { + if (wc1 >= 0x80) + return 1; + if (RT_C_TO_LOWER(wc1) != RT_C_TO_LOWER(uch2)) + return wc1 < uch2 ? -1 : 1; + } + + if (!uch2) + return 0; + cwcMax--; + } +} +RT_EXPORT_SYMBOL(RTUtf16NICmpAscii); + diff --git a/src/VBox/Runtime/common/string/RTUtf16NLen.cpp b/src/VBox/Runtime/common/string/RTUtf16NLen.cpp new file mode 100644 index 00000000..c54f3507 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTUtf16NLen.cpp @@ -0,0 +1,43 @@ +/* $Id: RTUtf16NLen.cpp $ */ +/** @file + * IPRT - RTUtf16NLen. + */ + +/* + * Copyright (C) 2008-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/utf16.h> +#include "internal/iprt.h" + + +RTDECL(size_t) RTUtf16NLen(PCRTUTF16 pwszString, size_t cwcMax) +{ + PCRTUTF16 pwszStart = pwszString; + while (cwcMax-- > 0 && *pwszString != '\0') + pwszString++; + return pwszString - pwszStart; +} +RT_EXPORT_SYMBOL(RTUtf16NLen); + diff --git a/src/VBox/Runtime/common/string/RTUtf16NLenEx.cpp b/src/VBox/Runtime/common/string/RTUtf16NLenEx.cpp new file mode 100644 index 00000000..499b86c4 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTUtf16NLenEx.cpp @@ -0,0 +1,49 @@ +/* $Id: RTUtf16NLenEx.cpp $ */ +/** @file + * IPRT - RTUtf16NLenEx. + */ + +/* + * Copyright (C) 2008-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/utf16.h> +#include "internal/iprt.h" + +#include <iprt/errcore.h> + + +RTDECL(int) RTUtf16NLenEx(PCRTUTF16 pwszString, size_t cwcMax, size_t *pcwc) +{ + PCRTUTF16 pwcEnd = RTUtf16End(pwszString, cwcMax); + if (!pwcEnd) + { + *pcwc = cwcMax; + return VERR_BUFFER_OVERFLOW; + } + *pcwc = pwcEnd - pwszString; + return VINF_SUCCESS; +} +RT_EXPORT_SYMBOL(RTUtf16NLenEx); + diff --git a/src/VBox/Runtime/common/string/RTUtf16PrintHexBytes.cpp b/src/VBox/Runtime/common/string/RTUtf16PrintHexBytes.cpp new file mode 100644 index 00000000..213e3717 --- /dev/null +++ b/src/VBox/Runtime/common/string/RTUtf16PrintHexBytes.cpp @@ -0,0 +1,61 @@ +/* $Id: RTUtf16PrintHexBytes.cpp $ */ +/** @file + * IPRT - RTUtf16PrintHexBytes. + */ + +/* + * Copyright (C) 2009-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/utf16.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> +#include <iprt/errcore.h> + + +RTDECL(int) RTUtf16PrintHexBytes(PRTUTF16 pwszBuf, size_t cwcBuf, void const *pv, size_t cb, uint32_t fFlags) +{ + AssertReturn(!(fFlags & ~RTSTRPRINTHEXBYTES_F_UPPER), VERR_INVALID_PARAMETER); + AssertPtrReturn(pwszBuf, VERR_INVALID_POINTER); + AssertReturn(cb * 2 >= cb, VERR_BUFFER_OVERFLOW); + AssertReturn(cwcBuf >= cb * 2 + 1, VERR_BUFFER_OVERFLOW); + if (cb) + AssertPtrReturn(pv, VERR_INVALID_POINTER); + + static char const s_szHexDigitsLower[17] = "0123456789abcdef"; + static char const s_szHexDigitsUpper[17] = "0123456789ABCDEF"; + const char *pszHexDigits = !(fFlags & RTSTRPRINTHEXBYTES_F_UPPER) ? s_szHexDigitsLower : s_szHexDigitsUpper; + + uint8_t const *pb = (uint8_t const *)pv; + while (cb-- > 0) + { + uint8_t b = *pb++; + *pwszBuf++ = pszHexDigits[b >> 4]; + *pwszBuf++ = pszHexDigits[b & 0xf]; + } + *pwszBuf = '\0'; + return VINF_SUCCESS; +} + diff --git a/src/VBox/Runtime/common/string/base64.cpp b/src/VBox/Runtime/common/string/base64.cpp new file mode 100644 index 00000000..d3d17f24 --- /dev/null +++ b/src/VBox/Runtime/common/string/base64.cpp @@ -0,0 +1,567 @@ +/* $Id: base64.cpp $ */ +/** @file + * IPRT - Base64, MIME content transfer encoding. + */ + +/* + * Copyright (C) 2009-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/base64.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> +#include <iprt/err.h> +#include <iprt/ctype.h> +#include <iprt/string.h> +#ifdef RT_STRICT +# include <iprt/asm.h> +#endif + + +/********************************************************************************************************************************* +* Defined Constants And Macros * +*********************************************************************************************************************************/ +/** The line length used for encoding. */ +#define RTBASE64_LINE_LEN 64 + +/** @name Special g_au8CharToVal values + * @{ */ +#define BASE64_SPACE 0xc0 +#define BASE64_PAD 0xe0 +#define BASE64_INVALID 0xff +/** @} */ + + +/********************************************************************************************************************************* +* Global Variables * +*********************************************************************************************************************************/ +/** Base64 character to value. (RFC 2045) + * ASSUMES ASCII / UTF-8. */ +static const uint8_t g_au8CharToVal[256] = +{ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, /* 0x00..0x0f */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x10..0x1f */ + 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 62, 0xff, 0xff, 0xff, 63, /* 0x20..0x2f */ + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, /* 0x30..0x3f */ + 0xff, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, /* 0x40..0x4f */ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x50..0x5f */ + 0xff, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, /* 0x60..0x6f */ + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x70..0x7f */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x80..0x8f */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x90..0x9f */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xa0..0xaf */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xb0..0xbf */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xc0..0xcf */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xd0..0xdf */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xe0..0xef */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff /* 0xf0..0xff */ +}; + +/** Value to Base64 character. (RFC 2045) */ +static const char g_szValToChar[64+1] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + + +#ifdef RT_STRICT +/** + * Perform table sanity checks on the first call. + */ +static void rtBase64Sanity(void) +{ + static bool s_fSane = false; + if (RT_UNLIKELY(!s_fSane)) + { + for (unsigned i = 0; i < 64; i++) + { + unsigned ch = g_szValToChar[i]; + Assert(ch); + Assert(g_au8CharToVal[ch] == i); + } + + for (unsigned i = 0; i < 256; i++) + { + uint8_t u8 = g_au8CharToVal[i]; + Assert( ( u8 == BASE64_INVALID + && !RT_C_IS_ALNUM(i) + && !RT_C_IS_SPACE(i)) + || ( u8 == BASE64_PAD + && i == '=') + || ( u8 == BASE64_SPACE + && RT_C_IS_SPACE(i)) + || ( u8 < 64 + && (unsigned)g_szValToChar[u8] == i)); + } + ASMAtomicWriteBool(&s_fSane, true); + } +} +#endif /* RT_STRICT */ + + +RTDECL(ssize_t) RTBase64DecodedSizeEx(const char *pszString, size_t cchStringMax, char **ppszEnd) +{ +#ifdef RT_STRICT + rtBase64Sanity(); +#endif + + /* + * Walk the string until a non-encoded or non-space character is encountered. + */ + uint32_t c6Bits = 0; + uint8_t u8 = BASE64_INVALID; + unsigned ch = 0; + AssertCompile(sizeof(char) == sizeof(uint8_t)); + + while (cchStringMax > 0 && (ch = *pszString)) + { + u8 = g_au8CharToVal[ch]; + if (u8 < 64) + c6Bits++; + else if (RT_UNLIKELY(u8 != BASE64_SPACE)) + break; + + /* advance */ + pszString++; + cchStringMax--; + } + + /* + * Padding can only be found at the end and there is + * only 1 or 2 padding chars. Deal with it first. + */ + unsigned cbPad = 0; + if (u8 == BASE64_PAD) + { + cbPad = 1; + c6Bits++; + pszString++; + cchStringMax--; + while (cchStringMax > 0 && (ch = *pszString)) + { + u8 = g_au8CharToVal[ch]; + if (u8 != BASE64_SPACE) + { + if (u8 != BASE64_PAD) + break; + c6Bits++; + cbPad++; + } + pszString++; + cchStringMax--; + } + if (cbPad >= 3) + return -1; + } + + /* + * Invalid char and no where to indicate where the + * Base64 text ends? Return failure. + */ + if ( u8 == BASE64_INVALID + && !ppszEnd + && ch) + return -1; + + /* + * Recalc 6-bit to 8-bit and adjust for padding. + */ + size_t cb; + if (c6Bits * 3 / 3 == c6Bits) + { + if ((c6Bits * 3 % 4) != 0) + return -1; + cb = c6Bits * 3 / 4; + } + else + { + if ((c6Bits * (uint64_t)3 % 4) != 0) + return -1; + cb = c6Bits * (uint64_t)3 / 4; + } + + if (cb < cbPad) + return -1; + cb -= cbPad; + + if (ppszEnd) + *ppszEnd = (char *)pszString; + return cb; +} +RT_EXPORT_SYMBOL(RTBase64DecodedSizeEx); + + +RTDECL(ssize_t) RTBase64DecodedSize(const char *pszString, char **ppszEnd) +{ + return RTBase64DecodedSizeEx(pszString, RTSTR_MAX, ppszEnd); +} +RT_EXPORT_SYMBOL(RTBase64DecodedSize); + + +RTDECL(int) RTBase64DecodeEx(const char *pszString, size_t cchStringMax, void *pvData, size_t cbData, + size_t *pcbActual, char **ppszEnd) +{ +#ifdef RT_STRICT + rtBase64Sanity(); +#endif + + /* + * Process input in groups of 4 input / 3 output chars. + */ + uint8_t u8Trio[3] = { 0, 0, 0 }; /* shuts up gcc */ + uint8_t *pbData = (uint8_t *)pvData; + unsigned ch; + uint8_t u8; + unsigned c6Bits = 0; + AssertCompile(sizeof(char) == sizeof(uint8_t)); + + for (;;) + { + /* The first 6-bit group. */ + while ((u8 = g_au8CharToVal[ch = cchStringMax > 0 ? (uint8_t)*pszString : 0]) == BASE64_SPACE) + pszString++, cchStringMax--; + if (u8 >= 64) + { + c6Bits = 0; + break; + } + u8Trio[0] = u8 << 2; + pszString++; + cchStringMax--; + + /* The second 6-bit group. */ + while ((u8 = g_au8CharToVal[ch = cchStringMax > 0 ? (uint8_t)*pszString : 0]) == BASE64_SPACE) + pszString++, cchStringMax--; + if (u8 >= 64) + { + c6Bits = 1; + break; + } + u8Trio[0] |= u8 >> 4; + u8Trio[1] = u8 << 4; + pszString++; + cchStringMax--; + + /* The third 6-bit group. */ + u8 = BASE64_INVALID; + while ((u8 = g_au8CharToVal[ch = cchStringMax > 0 ? (uint8_t)*pszString : 0]) == BASE64_SPACE) + pszString++, cchStringMax--; + if (u8 >= 64) + { + c6Bits = 2; + break; + } + u8Trio[1] |= u8 >> 2; + u8Trio[2] = u8 << 6; + pszString++; + cchStringMax--; + + /* The fourth 6-bit group. */ + u8 = BASE64_INVALID; + while ((u8 = g_au8CharToVal[ch = cchStringMax > 0 ? (uint8_t)*pszString : 0]) == BASE64_SPACE) + pszString++, cchStringMax--; + if (u8 >= 64) + { + c6Bits = 3; + break; + } + u8Trio[2] |= u8; + pszString++; + cchStringMax--; + + /* flush the trio */ + if (cbData < 3) + return VERR_BUFFER_OVERFLOW; + cbData -= 3; + pbData[0] = u8Trio[0]; + pbData[1] = u8Trio[1]; + pbData[2] = u8Trio[2]; + pbData += 3; + } + + /* + * Padding can only be found at the end and there is + * only 1 or 2 padding chars. Deal with it first. + */ + unsigned cbPad = 0; + if (u8 == BASE64_PAD) + { + cbPad = 1; + pszString++; + cchStringMax--; + while (cchStringMax > 0 && (ch = (uint8_t)*pszString)) + { + u8 = g_au8CharToVal[ch]; + if (u8 != BASE64_SPACE) + { + if (u8 != BASE64_PAD) + break; + cbPad++; + } + pszString++; + cchStringMax--; + } + if (cbPad >= 3) + return VERR_INVALID_BASE64_ENCODING; + } + + /* + * Invalid char and no where to indicate where the + * Base64 text ends? Return failure. + */ + if ( u8 == BASE64_INVALID + && !ppszEnd + && ch != '\0') + return VERR_INVALID_BASE64_ENCODING; + + /* + * Check padding vs. pending sextets, if anything left to do finish it off. + */ + if (c6Bits || cbPad) + { + if (c6Bits + cbPad != 4) + return VERR_INVALID_BASE64_ENCODING; + + switch (c6Bits) + { + case 1: + u8Trio[1] = u8Trio[2] = 0; + break; + case 2: + u8Trio[2] = 0; + break; + case 3: + default: + break; + } + switch (3 - cbPad) + { + case 1: + if (cbData < 1) + return VERR_BUFFER_OVERFLOW; + cbData--; + pbData[0] = u8Trio[0]; + pbData++; + break; + + case 2: + if (cbData < 2) + return VERR_BUFFER_OVERFLOW; + cbData -= 2; + pbData[0] = u8Trio[0]; + pbData[1] = u8Trio[1]; + pbData += 2; + break; + + default: + break; + } + } + + /* + * Set optional return values and return successfully. + */ + if (ppszEnd) + *ppszEnd = (char *)pszString; + if (pcbActual) + *pcbActual = pbData - (uint8_t *)pvData; + return VINF_SUCCESS; +} +RT_EXPORT_SYMBOL(RTBase64DecodeEx); + + +RTDECL(int) RTBase64Decode(const char *pszString, void *pvData, size_t cbData, size_t *pcbActual, char **ppszEnd) +{ + return RTBase64DecodeEx(pszString, RTSTR_MAX, pvData, cbData, pcbActual, ppszEnd); +} +RT_EXPORT_SYMBOL(RTBase64Decode); + + +/** + * Calculates the length of the Base64 encoding of a given number of bytes of + * data produced by RTBase64Encode(). + * + * @returns The Base64 string length. + * @param cbData The number of bytes to encode. + */ +RTDECL(size_t) RTBase64EncodedLength(size_t cbData) +{ + return RTBase64EncodedLengthEx(cbData, 0); +} +RT_EXPORT_SYMBOL(RTBase64EncodedLength); + + +/** + * Calculates the length of the Base64 encoding of a given number of bytes of + * data produced by RTBase64EncodeEx() with the same @a fFlags. + * + * @returns The Base64 string length. + * @param cbData The number of bytes to encode. + * @param fFlags Flags, any combination of the RTBASE64_FLAGS \#defines. + */ +RTDECL(size_t) RTBase64EncodedLengthEx(size_t cbData, uint32_t fFlags) +{ + if (cbData * 8 / 8 != cbData) + { + AssertReturn(sizeof(size_t) == sizeof(uint64_t), ~(size_t)0); + uint64_t cch = cbData * (uint64_t)8; + while (cch % 24) + cch += 8; + cch /= 6; + + if ((fFlags & RTBASE64_FLAGS_NO_LINE_BREAKS) == 0) /* add EOLs? */ + cch += ((cch - 1) / RTBASE64_LINE_LEN) * RTBASE64_EOL_SIZE; + return cch; + } + + size_t cch = cbData * 8; + while (cch % 24) + cch += 8; + cch /= 6; + + if ((fFlags & RTBASE64_FLAGS_NO_LINE_BREAKS) == 0) /* add EOLs? */ + cch += ((cch - 1) / RTBASE64_LINE_LEN) * RTBASE64_EOL_SIZE; + return cch; +} +RT_EXPORT_SYMBOL(RTBase64EncodedLengthEx); + + +/** + * Encodes the specifed data into a Base64 string, the caller supplies the + * output buffer. + * + * This is equivalent to calling RTBase64EncodeEx() with no flags. + * + * @returns IRPT status code. + * @retval VERR_BUFFER_OVERFLOW if the output buffer is too small. The buffer + * may contain an invalid Base64 string. + * + * @param pvData The data to encode. + * @param cbData The number of bytes to encode. + * @param pszBuf Where to put the Base64 string. + * @param cbBuf The size of the output buffer, including the terminator. + * @param pcchActual The actual number of characters returned. + */ +RTDECL(int) RTBase64Encode(const void *pvData, size_t cbData, char *pszBuf, size_t cbBuf, size_t *pcchActual) +{ + return RTBase64EncodeEx(pvData, cbData, 0, pszBuf, cbBuf, pcchActual); +} +RT_EXPORT_SYMBOL(RTBase64Encode); + + +/** + * Encodes the specifed data into a Base64 string, the caller supplies the + * output buffer. + * + * @returns IRPT status code. + * @retval VERR_BUFFER_OVERFLOW if the output buffer is too small. The buffer + * may contain an invalid Base64 string. + * + * @param pvData The data to encode. + * @param cbData The number of bytes to encode. + * @param pszBuf Where to put the Base64 string. + * @param cbBuf The size of the output buffer, including the terminator. + * @param pcchActual The actual number of characters returned. + */ +RTDECL(int) RTBase64EncodeEx(const void *pvData, size_t cbData, uint32_t fFlags, + char *pszBuf, size_t cbBuf, size_t *pcchActual) +{ + /* + * Process whole "trios" of input data. + */ + uint8_t u8A; + uint8_t u8B; + uint8_t u8C; + size_t cbLineFeed = cbBuf - RTBASE64_LINE_LEN; + const uint8_t *pbSrc = (const uint8_t *)pvData; + char *pchDst = pszBuf; + while (cbData >= 3) + { + if (cbBuf < 4 + 1) + return VERR_BUFFER_OVERFLOW; + + /* encode */ + u8A = pbSrc[0]; + pchDst[0] = g_szValToChar[u8A >> 2]; + u8B = pbSrc[1]; + pchDst[1] = g_szValToChar[((u8A << 4) & 0x3f) | (u8B >> 4)]; + u8C = pbSrc[2]; + pchDst[2] = g_szValToChar[((u8B << 2) & 0x3f) | (u8C >> 6)]; + pchDst[3] = g_szValToChar[u8C & 0x3f]; + + /* advance */ + cbBuf -= 4; + pchDst += 4; + cbData -= 3; + pbSrc += 3; + + if ((fFlags & RTBASE64_FLAGS_NO_LINE_BREAKS) == 0) /* add EOLs? */ + { + /* deal out end-of-line */ + if (cbBuf == cbLineFeed && cbData) + { + if (cbBuf < RTBASE64_EOL_SIZE + 1) + return VERR_BUFFER_OVERFLOW; + cbBuf -= RTBASE64_EOL_SIZE; + if (RTBASE64_EOL_SIZE == 2) + *pchDst++ = '\r'; + *pchDst++ = '\n'; + cbLineFeed = cbBuf - RTBASE64_LINE_LEN; + } + } + } + + /* + * Deal with the odd bytes and string termination. + */ + if (cbData) + { + if (cbBuf < 4 + 1) + return VERR_BUFFER_OVERFLOW; + switch (cbData) + { + case 1: + u8A = pbSrc[0]; + pchDst[0] = g_szValToChar[u8A >> 2]; + pchDst[1] = g_szValToChar[(u8A << 4) & 0x3f]; + pchDst[2] = '='; + pchDst[3] = '='; + break; + case 2: + u8A = pbSrc[0]; + pchDst[0] = g_szValToChar[u8A >> 2]; + u8B = pbSrc[1]; + pchDst[1] = g_szValToChar[((u8A << 4) & 0x3f) | (u8B >> 4)]; + pchDst[2] = g_szValToChar[(u8B << 2) & 0x3f]; + pchDst[3] = '='; + break; + } + pchDst += 4; + } + + *pchDst = '\0'; + + if (pcchActual) + *pcchActual = pchDst - pszBuf; + return VINF_SUCCESS; +} +RT_EXPORT_SYMBOL(RTBase64EncodeEx); diff --git a/src/VBox/Runtime/common/string/bzero.asm b/src/VBox/Runtime/common/string/bzero.asm new file mode 100644 index 00000000..75423ee5 --- /dev/null +++ b/src/VBox/Runtime/common/string/bzero.asm @@ -0,0 +1,127 @@ +; $Id: bzero.asm $ +;; @file +; IPRT - No-CRT bzero - AMD64 & X86. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; @param pvDst gcc: rdi msc: rcx x86:[esp+4] wcall:eax +; @param cb gcc: rsi msc: rdx x86:[esp+8] wcall:edx +RT_NOCRT_BEGINPROC bzero +%ifdef RT_OS_DARWIN +GLOBALNAME __bzero +%endif + cld +%ifdef RT_ARCH_AMD64 + xor eax, eax + %ifdef ASM_CALL64_MSC + mov r9, rdi ; save rdi in r9 + mov rdi, rcx + + ; todo: alignment? + mov rcx, rdx + shr rcx, 3 + rep stosq + + and rdx, 7 + mov rcx, rdx + rep stosb + + mov rdi, r9 ; restore rdi + + %else ; GCC + ; todo: alignment? + mov rcx, rsi + shr rcx, 3 + rep stosq + + and rsi, 7 + mov rcx, rsi + rep stosb + + %endif ; GCC + +%elif ARCH_BITS == 32 + push ebp + mov ebp, esp + push edi + + %ifdef ASM_CALL32_WATCOM + mov ecx, edx + mov edi, eax + %else + mov ecx, [ebp + 0ch] + mov edi, [ebp + 08h] + %endif + xor eax, eax + + mov edx, ecx + shr ecx, 2 + rep stosd + + and edx, 3 + mov ecx, edx + rep stosb + + pop edi + leave + +%elif ARCH_BITS == 16 + push bp + mov bp, sp + push di + + mov cx, [bp + 0ch] + mov di, [bp + 08h] + xor ax, ax + + ; align di. + test di, 1 + jz .aligned + jcxz .done + stosb + dec cx + jz .done + +.aligned: + mov dx, cx + shr cx, 1 + rep stosw + + test dl, 1 + jz .done + stosb + +.done: + pop di + pop bp +%else + %error ARCH_BITS +%endif ; X86 + ret +ENDPROC RT_NOCRT(bzero) + diff --git a/src/VBox/Runtime/common/string/memchr.asm b/src/VBox/Runtime/common/string/memchr.asm new file mode 100644 index 00000000..4ac293a1 --- /dev/null +++ b/src/VBox/Runtime/common/string/memchr.asm @@ -0,0 +1,93 @@ +; $Id: memchr.asm $ +;; @file +; IPRT - No-CRT memchr - AMD64 & X86. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; @param pv gcc: rdi msc: ecx x86:[esp+4] wcall: eax +; @param ch gcc: esi msc: edx x86:[esp+8] wcall: edx +; @param cb gcc: rdx msc: r8 x86:[esp+0ch] wcall: ebx +RT_NOCRT_BEGINPROC memchr + cld +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + or r8, r8 + jz .not_found_early + + mov r9, rdi ; save rdi + mov eax, edx + mov rdi, rcx + mov rcx, r8 + %else + mov rcx, rdx + jrcxz .not_found_early + + mov eax, esi + %endif + +%else + %ifdef ASM_CALL32_WATCOM + mov ecx, ebx + jecxz .not_found_early + xchg eax, edx + xchg edi, edx ; load and save edi. + %else + mov ecx, [esp + 0ch] + jecxz .not_found_early + mov edx, edi ; save edi + mov eax, [esp + 8] + mov edi, [esp + 4] + %endif +%endif + + ; do the search + repne scasb + jne .not_found + + ; found it + lea xAX, [xDI - 1] +%ifdef ASM_CALL64_MSC + mov rdi, r9 +%endif +%ifdef RT_ARCH_X86 + mov edi, edx +%endif + ret + +.not_found: +%ifdef ASM_CALL64_MSC + mov rdi, r9 +%endif +%ifdef RT_ARCH_X86 + mov edi, edx +%endif +.not_found_early: + xor eax, eax + ret +ENDPROC RT_NOCRT(memchr) + diff --git a/src/VBox/Runtime/common/string/memchr.cpp b/src/VBox/Runtime/common/string/memchr.cpp new file mode 100644 index 00000000..551253ea --- /dev/null +++ b/src/VBox/Runtime/common/string/memchr.cpp @@ -0,0 +1,63 @@ +/* $Id: memchr.cpp $ */ +/** @file + * IPRT - CRT Strings, memcpy(). + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> + + +/** + * Search a memory block for a character. + * + * @returns Pointer to the first instance of ch in pv. + * @returns NULL if ch wasn't found. + * @param pv Pointer to the block to search. + * @param ch The character to search for. + * @param cb The size of the block. + */ +#ifdef _MSC_VER /* Silly 'safeness' from MS. */ +# if _MSC_VER >= 1400 +_CRTIMP __checkReturn _CONST_RETURN void * __cdecl memchr( __in_bcount_opt(_MaxCount) const void * pv, __in int ch, __in size_t cb) +# else +void *memchr(const void *pv, int ch, size_t cb) +# endif +#else +void *memchr(const void *pv, int ch, size_t cb) +#endif +{ + register uint8_t const *pu8 = (uint8_t const *)pv; + register size_t cb2 = cb; + while (cb2-- > 0) + { + if (*pu8 == ch) + return (void *)pu8; + pu8++; + } + return NULL; +} + diff --git a/src/VBox/Runtime/common/string/memchr_alias.c b/src/VBox/Runtime/common/string/memchr_alias.c new file mode 100644 index 00000000..5711efdc --- /dev/null +++ b/src/VBox/Runtime/common/string/memchr_alias.c @@ -0,0 +1,53 @@ +/* $Id: memchr_alias.c $ */ +/** @file + * IPRT - No-CRT memchr() alias for gcc. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/nocrt/string.h> +#undef memchr + +#if defined(RT_OS_DARWIN) || defined(RT_OS_WINDOWS) +# ifndef __MINGW32__ +# pragma weak memchr +# endif + +/* No alias support here (yet in the ming case). */ +extern void *(memchr)(const void *pv, int ch, size_t cb) +{ + return RT_NOCRT(memchr)(pv, ch, cb); +} + +#elif __GNUC__ >= 4 +/* create a weak alias. */ +__asm__(".weak memchr\t\n" + " .set memchr," RT_NOCRT_STR(memchr) "\t\n"); +#else +/* create a weak alias. */ +extern __typeof(RT_NOCRT(memchr)) memchr __attribute__((weak, alias(RT_NOCRT_STR(memchr)))); +#endif + diff --git a/src/VBox/Runtime/common/string/memcmp.asm b/src/VBox/Runtime/common/string/memcmp.asm new file mode 100644 index 00000000..93e1a64a --- /dev/null +++ b/src/VBox/Runtime/common/string/memcmp.asm @@ -0,0 +1,145 @@ +; $Id: memcmp.asm $ +;; @file +; IPRT - No-CRT memcmp - AMD64 & X86. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; @param pv1 gcc: rdi msc: rcx x86:[esp+4] wcall: eax +; @param pv2 gcc: rsi msc: rdx x86:[esp+8] wcall: edx +; @param cb gcc: rdx msc: r8 x86:[esp+0ch] wcall: ebx +RT_NOCRT_BEGINPROC memcmp + cld + + ; Do the bulk of the work. +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + mov r10, rdi ; save + mov r11, rsi ; save + mov rdi, rcx + mov rsi, rdx + mov rcx, r8 + mov rdx, r8 + %else + mov rcx, rdx + %endif + shr rcx, 3 + xor eax, eax + repe cmpsq + jne .not_equal_qword +%else + push edi + push esi + + %ifdef ASM_CALL32_WATCOM + mov edi, eax + mov esi, edx + mov ecx, ebx + mov edx, ebx + %else + mov ecx, [esp + 0ch + 8] + mov edi, [esp + 04h + 8] + mov esi, [esp + 08h + 8] + mov edx, ecx + %endif + jecxz .done + shr ecx, 2 + xor eax, eax + repe cmpsd + jne .not_equal_dword +%endif + + ; The remaining bytes. +%ifdef RT_ARCH_AMD64 + test dl, 4 + jz .dont_cmp_dword + cmpsd + jne .not_equal_dword +%endif +.dont_cmp_dword: + test dl, 2 + jz .dont_cmp_word + cmpsw + jne .not_equal_word +.dont_cmp_word: + test dl, 1 + jz .dont_cmp_byte + cmpsb + jne .not_equal_byte +.dont_cmp_byte: + +.done: +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + mov rdi, r10 + mov rsi, r11 + %endif +%else + pop esi + pop edi +%endif + ret + +; +; Mismatches. +; +%ifdef RT_ARCH_AMD64 +.not_equal_qword: + mov ecx, 8 + sub rsi, 8 + sub rdi, 8 + repe cmpsb +.not_equal_byte: + mov al, [xDI-1] + movzx ecx, byte [xSI-1] + sub eax, ecx + jmp .done +%endif + +.not_equal_dword: + mov ecx, 4 + sub xSI, 4 + sub xDI, 4 + repe cmpsb +%ifdef RT_ARCH_AMD64 + jmp .not_equal_byte +%else +.not_equal_byte: + mov al, [xDI-1] + movzx ecx, byte [xSI-1] + sub eax, ecx + jmp .done +%endif + +.not_equal_word: + mov ecx, 2 + sub xSI, 2 + sub xDI, 2 + repe cmpsb + jmp .not_equal_byte +ENDPROC RT_NOCRT(memcmp) + diff --git a/src/VBox/Runtime/common/string/memcmp.cpp b/src/VBox/Runtime/common/string/memcmp.cpp new file mode 100644 index 00000000..87c515c1 --- /dev/null +++ b/src/VBox/Runtime/common/string/memcmp.cpp @@ -0,0 +1,86 @@ +/* $Id: memcmp.cpp $ */ +/** @file + * IPRT - CRT Strings, memcmp(). + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include <iprt/types.h> + + +/** + * Copies a memory. + * + * @returns 0 if pvDst and pvSrc are equal + * @returns <0 if pvDst is 'smaller' than pvSrc. + * @returns >0 if pvDst is 'larger' than pvSrc. + * + * @param pvDst Pointer to the target block. + * @param pvSrc Pointer to the source block. + * @param cb The size of the block. + */ +#ifdef _MSC_VER +# if _MSC_VER >= 1400 +__checkReturn int __cdecl memcmp(__in_bcount_opt(_Size) const void * pvDst, __in_bcount_opt(_Size) const void * pvSrc, __in size_t cb) +# else +int __cdecl memcmp(const void *pvDst, const void *pvSrc, size_t cb) +# endif +#else +int memcmp(const void *pvDst, const void *pvSrc, size_t cb) +#endif +{ + register union + { + uint8_t const *pu8; + uint32_t const *pu32; + void const *pv; + } uDst, uSrc; + uDst.pv = pvDst; + uSrc.pv = pvSrc; + + /* 32-bit word compare. */ + register size_t c = cb >> 2; + while (c-- > 0) + { + /* ASSUMES int is at least 32-bit! */ + register int32_t iDiff = *uDst.pu32++ - *uSrc.pu32++; + if (iDiff) + return iDiff; + } + + /* Remaining byte moves. */ + c = cb & 3; + while (c-- > 0) + { + register int8_t iDiff = *uDst.pu8++ - *uSrc.pu8++; + if (iDiff) + return iDiff; + } + + return 0; +} + diff --git a/src/VBox/Runtime/common/string/memcmp_alias.c b/src/VBox/Runtime/common/string/memcmp_alias.c new file mode 100644 index 00000000..5a6917bf --- /dev/null +++ b/src/VBox/Runtime/common/string/memcmp_alias.c @@ -0,0 +1,53 @@ +/* $Id: memcmp_alias.c $ */ +/** @file + * IPRT - No-CRT memcmp() alias for gcc. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/nocrt/string.h> +#undef memcmp + +#if defined(RT_OS_DARWIN) || defined(RT_OS_WINDOWS) +# ifndef __MINGW32__ +# pragma weak memcmp +# endif + +/* No alias support here (yet in the ming case). */ +extern int (memcmp)(const void *pv1, const void *pv2, size_t cb) +{ + return RT_NOCRT(memcmp)(pv1, pv2, cb); +} + +#elif __GNUC__ >= 4 +/* create a weak alias. */ +__asm__(".weak memcmp\t\n" + " .set memcmp," RT_NOCRT_STR(memcmp) "\t\n"); +#else +/* create a weak alias. */ +extern __typeof(RT_NOCRT(memcmp)) memcmp __attribute__((weak, alias(RT_NOCRT_STR(memcmp)))); +#endif + diff --git a/src/VBox/Runtime/common/string/memcpy.asm b/src/VBox/Runtime/common/string/memcpy.asm new file mode 100644 index 00000000..a09e7a27 --- /dev/null +++ b/src/VBox/Runtime/common/string/memcpy.asm @@ -0,0 +1,100 @@ +; $Id: memcpy.asm $ +;; @file +; IPRT - No-CRT memcpy - AMD64 & X86. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; @param pvDst gcc: rdi msc: rcx x86:[esp+4] wcall: eax +; @param pvSrc gcc: rsi msc: rdx x86:[esp+8] wcall: edx +; @param cb gcc: rdx msc: r8 x86:[esp+0ch] wcall: ebx +RT_NOCRT_BEGINPROC memcpy + cld + + ; Do the bulk of the work. +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + mov r10, rdi ; save + mov r11, rsi ; save + mov rdi, rcx + mov rsi, rdx + mov rcx, r8 + mov rdx, r8 + %else + mov rcx, rdx + %endif + mov rax, rdi ; save the return value + shr rcx, 3 + rep movsq +%else + push edi + push esi + + %ifdef ASM_CALL32_WATCOM + mov edi, eax + mov esi, edx + mov ecx, ebx + mov edx, ebx + %else + mov ecx, [esp + 0ch + 8] + mov edi, [esp + 04h + 8] + mov esi, [esp + 08h + 8] + mov edx, ecx + mov eax, edi ; save the return value + %endif + shr ecx, 2 + rep movsd +%endif + + ; The remaining bytes. +%ifdef RT_ARCH_AMD64 + test dl, 4 + jz .dont_move_dword + movsd +%endif +.dont_move_dword: + test dl, 2 + jz .dont_move_word + movsw +.dont_move_word: + test dl, 1 + jz .dont_move_byte + movsb +.dont_move_byte: + +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + mov rdi, r10 + mov rsi, r11 + %endif +%else + pop esi + pop edi +%endif + ret +ENDPROC RT_NOCRT(memcpy) + diff --git a/src/VBox/Runtime/common/string/memcpy.cpp b/src/VBox/Runtime/common/string/memcpy.cpp new file mode 100644 index 00000000..eea33b58 --- /dev/null +++ b/src/VBox/Runtime/common/string/memcpy.cpp @@ -0,0 +1,80 @@ +/* $Id: memcpy.cpp $ */ +/** @file + * IPRT - CRT Strings, memcpy(). + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> + + +/** + * Copies a memory. + * + * @returns pvDst. + * @param pvDst Pointer to the target block. + * @param pvSrc Pointer to the source block. + * @param cb The size of the block. + */ +#ifdef _MSC_VER +# if _MSC_VER >= 1400 +_CRT_INSECURE_DEPRECATE_MEMORY(memcpy_s) void * __cdecl memcpy(__out_bcount_full_opt(_Size) void * pvDst, __in_bcount_opt(_Size) const void * pvSrc, __in size_t cb) +# else +void *memcpy(void *pvDst, const void *pvSrc, size_t cb) +# endif +#else +void *memcpy(void *pvDst, const void *pvSrc, size_t cb) +#endif +{ + register union + { + uint8_t *pu8; + uint32_t *pu32; + void *pv; + } uTrg; + uTrg.pv = pvDst; + + register union + { + uint8_t const *pu8; + uint32_t const *pu32; + void const *pv; + } uSrc; + uSrc.pv = pvSrc; + + /* 32-bit word moves. */ + register size_t c = cb >> 2; + while (c-- > 0) + *uTrg.pu32++ = *uSrc.pu32++; + + /* Remaining byte moves. */ + c = cb & 3; + while (c-- > 0) + *uTrg.pu8++ = *uSrc.pu8++; + + return pvDst; +} + diff --git a/src/VBox/Runtime/common/string/memcpy_alias.c b/src/VBox/Runtime/common/string/memcpy_alias.c new file mode 100644 index 00000000..f7fae6a0 --- /dev/null +++ b/src/VBox/Runtime/common/string/memcpy_alias.c @@ -0,0 +1,53 @@ +/* $Id: memcpy_alias.c $ */ +/** @file + * IPRT - No-CRT memcpy() alias for gcc. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/nocrt/string.h> +#undef memcpy + +#if defined(RT_OS_DARWIN) || defined(RT_OS_WINDOWS) +# ifndef __MINGW32__ +# pragma weak memcpy +# endif + +/* No alias support here (yet in the ming case). */ +extern void *(memcpy)(void *pvDst, const void *pvSrc, size_t cb) +{ + return RT_NOCRT(memcpy)(pvDst, pvSrc, cb); +} + +#elif __GNUC__ >= 4 +/* create a weak alias. */ +__asm__(".weak memcpy\t\n" + " .set memcpy," RT_NOCRT_STR(memcpy) "\t\n"); +#else +/* create a weak alias. */ +extern __typeof(RT_NOCRT(memcpy)) memcpy __attribute__((weak, alias(RT_NOCRT_STR(memcpy)))); +#endif + diff --git a/src/VBox/Runtime/common/string/memmove.asm b/src/VBox/Runtime/common/string/memmove.asm new file mode 100644 index 00000000..c8e53416 --- /dev/null +++ b/src/VBox/Runtime/common/string/memmove.asm @@ -0,0 +1,145 @@ +; $Id: memmove.asm $ +;; @file +; IPRT - No-CRT memmove - AMD64 & X86. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; @param pvDst gcc: rdi msc: rcx x86:[esp+4] wcall: eax +; @param pvSrc gcc: rsi msc: rdx x86:[esp+8] wcall: edx +; @param cb gcc: rdx msc: r8 x86:[esp+0ch] wcall: ebx +RT_NOCRT_BEGINPROC memmove + ; Prolog. +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + mov r10, rdi ; save + mov r11, rsi ; save + mov rdi, rcx + mov rsi, rdx + mov rcx, r8 + mov rdx, r8 + %else + mov rcx, rdx + %endif + mov rax, rdi ; save the return value +%else + push edi + push esi + %ifdef ASM_CALL32_WATCOM + mov edi, eax + mov esi, edx + mov ecx, ebx + mov edx, ebx + %else + mov edi, [esp + 04h + 8] + mov esi, [esp + 08h + 8] + mov ecx, [esp + 0ch + 8] + mov edx, ecx + mov eax, edi ; save the return value + %endif +%endif + + ; + ; Decide which direction to perform the copy in. + ; +%if 1 ; keep it simple for now. + cmp xDI, xSI + jnb .backward + + ; + ; Slow/simple forward copy. + ; + cld + rep movsb + jmp .epilog + +%else ; disabled - it seems to work, but play safe for now. + ;sub xAX, xSI + ;jnb .backward + cmp xDI, xSI + jnb .backward + + ; + ; Fast forward copy. + ; +.fast_forward: + cld +%ifdef RT_ARCH_AMD64 + shr rcx, 3 + rep movsq +%else + shr ecx, 2 + rep movsd +%endif + + ; The remaining bytes. +%ifdef RT_ARCH_AMD64 + test dl, 4 + jz .forward_dont_move_dword + movsd +%endif +.forward_dont_move_dword: + test dl, 2 + jz .forward_dont_move_word + movsw +.forward_dont_move_word: + test dl, 1 + jz .forward_dont_move_byte + movsb +.forward_dont_move_byte: + +%endif ; disabled + + ; + ; The epilog. + ; +.epilog: +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + mov rdi, r10 + mov rsi, r11 + %endif +%else + pop esi + pop edi +%endif + ret + + ; + ; Slow/simple backward copy. + ; +ALIGNCODE(16) +.backward: + ;; @todo check if they overlap. + lea xDI, [xDI + xCX - 1] + lea xSI, [xSI + xCX - 1] + std + rep movsb + cld + jmp .epilog +ENDPROC RT_NOCRT(memmove) + diff --git a/src/VBox/Runtime/common/string/memmove_alias.c b/src/VBox/Runtime/common/string/memmove_alias.c new file mode 100644 index 00000000..b2eec7e0 --- /dev/null +++ b/src/VBox/Runtime/common/string/memmove_alias.c @@ -0,0 +1,53 @@ +/* $Id: memmove_alias.c $ */ +/** @file + * IPRT - No-CRT memmove() alias for gcc. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/nocrt/string.h> +#undef memmove + +#if defined(RT_OS_DARWIN) || defined(RT_OS_WINDOWS) +# ifndef __MINGW32__ +# pragma weak memmove +# endif + +/* No alias support here (yet in the ming case). */ +extern void *(memmove)(void *pvDst, const void *pvSrc, size_t cb) +{ + return RT_NOCRT(memmove)(pvDst, pvSrc, cb); +} + +#elif __GNUC__ >= 4 +/* create a weak alias. */ +__asm__(".weak memmove\t\n" + " .set memmove," RT_NOCRT_STR(memmove) "\t\n"); +#else +/* create a weak alias. */ +extern __typeof(RT_NOCRT(memmove)) memmove __attribute__((weak, alias(RT_NOCRT_STR(memmove)))); +#endif + diff --git a/src/VBox/Runtime/common/string/mempcpy.asm b/src/VBox/Runtime/common/string/mempcpy.asm new file mode 100644 index 00000000..f244381d --- /dev/null +++ b/src/VBox/Runtime/common/string/mempcpy.asm @@ -0,0 +1,100 @@ +; $Id: mempcpy.asm $ +;; @file +; IPRT - No-CRT mempcpy - AMD64 & X86. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; @param pvDst gcc: rdi msc: rcx x86:[esp+4] wcall: eax +; @param pvSrc gcc: rsi msc: rdx x86:[esp+8] wcall: edx +; @param cb gcc: rdx msc: r8 x86:[esp+0ch] wcall: ebx +RT_NOCRT_BEGINPROC mempcpy + cld ; paranoia + + ; Do the bulk of the work. +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + mov r10, rdi ; save + mov r11, rsi ; save + mov rdi, rcx + mov rsi, rdx + mov rcx, r8 + mov rdx, r8 + %else + mov rcx, rdx + %endif + shr rcx, 3 + rep movsq +%else + %ifdef ASM_CALL32_WATCOM + xchg eax, edi ; saving edi in eax and loading it + push esi + mov esi, edx + mov ecx, ebx + mov edx, ebx + %else + mov eax, edi ; saving edi in eax + push esi + mov ecx, [esp + 0ch + 4] + mov edi, [esp + 04h + 4] + mov esi, [esp + 08h + 4] + mov edx, ecx + %endif + shr ecx, 2 + rep movsd +%endif + + ; The remaining bytes. +%ifdef RT_ARCH_AMD64 + test dl, 4 + jz .dont_move_dword + movsd +%endif +.dont_move_dword: + test dl, 2 + jz .dont_move_word + movsw +.dont_move_word: + test dl, 1 + jz .dont_move_byte + movsb +.dont_move_byte: + + ; restore & return +%ifdef RT_ARCH_AMD64 + mov rax, rdi + %ifdef ASM_CALL64_MSC + mov rsi, r11 + mov rdi, r10 + %endif +%else + pop esi + xchg eax, edi +%endif + ret +ENDPROC RT_NOCRT(mempcpy) + diff --git a/src/VBox/Runtime/common/string/memrchr.asm b/src/VBox/Runtime/common/string/memrchr.asm new file mode 100644 index 00000000..39af08f1 --- /dev/null +++ b/src/VBox/Runtime/common/string/memrchr.asm @@ -0,0 +1,97 @@ +; $Id: memrchr.asm $ +;; @file +; IPRT - No-CRT memrchr - AMD64 & X86. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; @param pv gcc: rdi msc: ecx x86:[esp+4] wcall: eax +; @param ch gcc: esi msc: edx x86:[esp+8] wcall: edx +; @param cb gcc: rdx msc: r8 x86:[esp+0ch] wcall: ebx +RT_NOCRT_BEGINPROC memrchr + std +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + or r8, r8 + jz .not_found_early + + mov r9, rdi ; save rdi + mov eax, edx + lea rdi, [rcx + r8 - 1] + mov rcx, r8 + %else + mov rcx, rdx + jrcxz .not_found_early + + mov eax, esi + lea rdi, [rdi + rcx - 1] + %endif + +%else + %ifdef ASM_CALL32_WATCOM + mov ecx, ebx + jecxz .not_found_early + xchg eax, edx + xchg edi, edx ; load + save edi + %else + mov ecx, [esp + 0ch] + jecxz .not_found_early + mov edx, edi ; save edi + mov eax, [esp + 8] + mov edi, [esp + 4] + %endif + lea edi, [edi + ecx - 1] +%endif + + ; do the search + repne scasb + jne .not_found + + ; found it + lea xAX, [xDI + 1] +%ifdef ASM_CALL64_MSC + mov rdi, r9 +%endif +%ifdef RT_ARCH_X86 + mov edi, edx +%endif + cld + ret + +.not_found: +%ifdef ASM_CALL64_MSC + mov rdi, r9 +%endif +%ifdef RT_ARCH_X86 + mov edi, edx +%endif +.not_found_early: + xor eax, eax + cld + ret +ENDPROC RT_NOCRT(memrchr) + diff --git a/src/VBox/Runtime/common/string/memrchr.cpp b/src/VBox/Runtime/common/string/memrchr.cpp new file mode 100644 index 00000000..69f08a58 --- /dev/null +++ b/src/VBox/Runtime/common/string/memrchr.cpp @@ -0,0 +1,59 @@ +/* $Id: memrchr.cpp $ */ +/** @file + * IPRT - CRT Strings, memrchr(). + */ + +/* + * Copyright (C) 2018-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> + + +/** + * Search for a given byte starting at the end of the block. + * + * @returns Pointer on a match or NULL otherwise. + * @param pb Pointer to the block. + * @param ch The char to search for. + * @param cb The size of the block. + */ +void *memrchr(const char *pb, int ch, size_t cb) +{ + if (cb) + { + const char *pbCur = pb + cb - 1; + + while (cb) + { + if (*pbCur == ch) + return (void *)pbCur; + pbCur--; + cb--; + } + } + + return NULL; +} + diff --git a/src/VBox/Runtime/common/string/memset.asm b/src/VBox/Runtime/common/string/memset.asm new file mode 100644 index 00000000..97447d38 --- /dev/null +++ b/src/VBox/Runtime/common/string/memset.asm @@ -0,0 +1,131 @@ +; $Id: memset.asm $ +;; @file +; IPRT - No-CRT memset - AMD64 & X86. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; @param pvDst gcc: rdi msc: ecx x86:[esp+4] wcall: eax +; @param ch gcc: esi msc: edx x86:[esp+8] wcall: edx +; @param cb gcc: rdx msc: r8 x86:[esp+0ch] wcall: ebx +RT_NOCRT_BEGINPROC memset + cld +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + mov r9, rdi ; save rdi in r9 + mov rdi, rcx + mov r10, rcx ; the return value. + movzx eax, dl + cmp r8, 32 + jb .dobytes + + ; eax = (al << 24) | (al << 16) | (al << 8) | al; + ; rdx = (eax << 32) | eax + movzx edx, dl + mov rax, qword 0101010101010101h + imul rax, rdx + + ; todo: alignment. + mov rcx, r8 + shr rcx, 3 + rep stosq + + and r8, 7 +.dobytes: + mov rcx, r8 + rep stosb + + mov rdi, r9 ; restore rdi + mov rax, r10 + + %else ; GCC + mov r10, rdi ; the return value. + movzx eax, sil + cmp rdx, 32 + jb .dobytes + + ; eax = (al << 24) | (al << 16) | (al << 8) | al; + ; rdx = (eax << 32) | eax + movzx esi, sil + mov rax, qword 0101010101010101h + imul rax, rsi + + ; todo: alignment. + mov rcx, rdx + shr rcx, 3 + rep stosq + + and rdx, 7 +.dobytes: + mov rcx, rdx + rep stosb + + mov rax, r10 + %endif ; GCC + +%else ; X86 + push edi + + %ifdef ASM_CALL32_WATCOM + push eax + mov edi, eax + mov ecx, ebx + movzx eax, dl + %else + mov ecx, [esp + 0ch + 4] + movzx eax, byte [esp + 08h + 4] + mov edi, [esp + 04h + 4] + %endif + cmp ecx, 12 + jb .dobytes + + ; eax = (al << 24) | (al << 16) | (al << 8) | al; + mov ah, al + mov edx, eax + shl edx, 16 + or eax, edx + + mov edx, ecx + shr ecx, 2 + rep stosd + + and edx, 3 + mov ecx, edx +.dobytes: + rep stosb + + %ifdef ASM_CALL32_WATCOM + pop eax + pop edi + %else + pop edi + mov eax, [esp + 4] + %endif +%endif ; X86 + ret +ENDPROC RT_NOCRT(memset) + diff --git a/src/VBox/Runtime/common/string/memset.cpp b/src/VBox/Runtime/common/string/memset.cpp new file mode 100644 index 00000000..4cc7e16e --- /dev/null +++ b/src/VBox/Runtime/common/string/memset.cpp @@ -0,0 +1,74 @@ +/* $Id: memset.cpp $ */ +/** @file + * IPRT - CRT Strings, memset(). + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> + + +/** + * Fill a memory block with specific byte. + * + * @returns pvDst. + * @param pvDst Pointer to the block. + * @param ch The filler char. + * @param cb The size of the block. + */ +#ifdef _MSC_VER +# if _MSC_VER >= 1400 +void * __cdecl memset(__out_bcount_full_opt(_Size) void *pvDst, __in int ch, __in size_t cb) +# else +void *memset(void *pvDst, int ch, size_t cb) +# endif +#else +void *memset(void *pvDst, int ch, size_t cb) +#endif +{ + register union + { + uint8_t *pu8; + uint32_t *pu32; + void *pvDst; + } u; + u.pvDst = pvDst; + + /* 32-bit word moves. */ + register uint32_t u32 = ch | (ch << 8); + u32 |= u32 << 16; + register size_t c = cb >> 2; + while (c-- > 0) + *u.pu32++ = u32; + + /* Remaining byte moves. */ + c = cb & 3; + while (c-- > 0) + *u.pu8++ = (uint8_t)u32; + + return pvDst; +} + diff --git a/src/VBox/Runtime/common/string/memset_alias.c b/src/VBox/Runtime/common/string/memset_alias.c new file mode 100644 index 00000000..ce07eed2 --- /dev/null +++ b/src/VBox/Runtime/common/string/memset_alias.c @@ -0,0 +1,53 @@ +/* $Id: memset_alias.c $ */ +/** @file + * IPRT - No-CRT memset() alias for gcc. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/nocrt/string.h> +#undef memset + +#if defined(RT_OS_DARWIN) || defined(RT_OS_WINDOWS) +# ifndef __MINGW32__ +# pragma weak memset +# endif + +/* No alias support here (yet in the ming case). */ +extern void *(memset)(void *pvDst, int ch, size_t cb) +{ + return RT_NOCRT(memset)(pvDst, ch, cb); +} + +#elif __GNUC__ >= 4 +/* create a weak alias. */ +__asm__(".weak memset\t\n" + " .set memset," RT_NOCRT_STR(memset) "\t\n"); +#else +/* create a weak alias. */ +extern __typeof(RT_NOCRT(memset)) memset __attribute__((weak, alias(RT_NOCRT_STR(memset)))); +#endif + diff --git a/src/VBox/Runtime/common/string/ministring.cpp b/src/VBox/Runtime/common/string/ministring.cpp new file mode 100644 index 00000000..dcd37697 --- /dev/null +++ b/src/VBox/Runtime/common/string/ministring.cpp @@ -0,0 +1,1140 @@ +/* $Id: ministring.cpp $ */ +/** @file + * IPRT - Mini C++ string class. + * + * This is a base for both Utf8Str and other places where IPRT may want to use + * a lean C++ string class. + */ + +/* + * Copyright (C) 2007-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/cpp/ministring.h> +#include "internal/iprt.h" + +#include <iprt/ctype.h> +#include <iprt/uni.h> +#include <iprt/err.h> + + + +/********************************************************************************************************************************* +* Global Variables * +*********************************************************************************************************************************/ +const size_t RTCString::npos = ~(size_t)0; + + +/********************************************************************************************************************************* +* Defined Constants And Macros * +*********************************************************************************************************************************/ +/** Allocation block alignment used when appending bytes to a string. */ +#define IPRT_MINISTRING_APPEND_ALIGNMENT 64 + + +RTCString &RTCString::assign(const RTCString &a_rSrc) +{ + size_t const cchSrc = a_rSrc.length(); + if (cchSrc > 0) + { + reserve(cchSrc + 1); + memcpy(m_psz, a_rSrc.c_str(), cchSrc); + m_psz[cchSrc] = '\0'; + m_cch = cchSrc; + return *this; + } + setNull(); + return *this; + +} + +int RTCString::assignNoThrow(const RTCString &a_rSrc) RT_NOEXCEPT +{ + AssertReturn(&a_rSrc != this, VINF_SUCCESS); + size_t const cchSrc = a_rSrc.length(); + if (cchSrc > 0) + { + int rc = reserveNoThrow(cchSrc + 1); + if (RT_SUCCESS(rc)) + { + memcpy(m_psz, a_rSrc.c_str(), cchSrc); + m_psz[cchSrc] = '\0'; + m_cch = cchSrc; + return VINF_SUCCESS; + } + return rc; + } + setNull(); + return VINF_SUCCESS; + +} + +RTCString &RTCString::assign(const char *a_pszSrc) +{ + if (a_pszSrc) + { + size_t cchSrc = strlen(a_pszSrc); + if (cchSrc) + { + reserve(cchSrc + 1); + memcpy(m_psz, a_pszSrc, cchSrc); + m_psz[cchSrc] = '\0'; + m_cch = cchSrc; + return *this; + } + } + setNull(); + return *this; +} + +int RTCString::assignNoThrow(const char *a_pszSrc) RT_NOEXCEPT +{ + if (a_pszSrc) + { + size_t cchSrc = strlen(a_pszSrc); + if (cchSrc) + { + int rc = reserveNoThrow(cchSrc + 1); + if (RT_SUCCESS(rc)) + { + memcpy(m_psz, a_pszSrc, cchSrc); + m_psz[cchSrc] = '\0'; + m_cch = cchSrc; + return VINF_SUCCESS; + } + return rc; + } + } + setNull(); + return VINF_SUCCESS; +} + +RTCString &RTCString::assign(const RTCString &a_rSrc, size_t a_offSrc, size_t a_cchSrc /*= npos*/) +{ + AssertReturn(&a_rSrc != this, *this); + if (a_offSrc < a_rSrc.length()) + { + size_t cchMax = a_rSrc.length() - a_offSrc; + if (a_cchSrc > cchMax) + a_cchSrc = cchMax; + reserve(a_cchSrc + 1); + memcpy(m_psz, a_rSrc.c_str() + a_offSrc, a_cchSrc); + m_psz[a_cchSrc] = '\0'; + m_cch = a_cchSrc; + } + else + setNull(); + return *this; +} + +int RTCString::assignNoThrow(const RTCString &a_rSrc, size_t a_offSrc, size_t a_cchSrc /*= npos*/) RT_NOEXCEPT +{ + AssertReturn(&a_rSrc != this, VINF_SUCCESS); + if (a_offSrc < a_rSrc.length()) + { + size_t cchMax = a_rSrc.length() - a_offSrc; + if (a_cchSrc > cchMax) + a_cchSrc = cchMax; + int rc = reserveNoThrow(a_cchSrc + 1); + if (RT_SUCCESS(rc)) + { + memcpy(m_psz, a_rSrc.c_str() + a_offSrc, a_cchSrc); + m_psz[a_cchSrc] = '\0'; + m_cch = a_cchSrc; + return VINF_SUCCESS; + } + return rc; + } + setNull(); + return VINF_SUCCESS; +} + +RTCString &RTCString::assign(const char *a_pszSrc, size_t a_cchSrc) +{ + if (a_cchSrc) + { + a_cchSrc = RTStrNLen(a_pszSrc, a_cchSrc); + reserve(a_cchSrc + 1); + memcpy(m_psz, a_pszSrc, a_cchSrc); + m_psz[a_cchSrc] = '\0'; + m_cch = a_cchSrc; + } + else + setNull(); + return *this; +} + +int RTCString::assignNoThrow(const char *a_pszSrc, size_t a_cchSrc) RT_NOEXCEPT +{ + if (a_cchSrc) + { + a_cchSrc = RTStrNLen(a_pszSrc, a_cchSrc); + int rc = reserveNoThrow(a_cchSrc + 1); + if (RT_SUCCESS(rc)) + { + memcpy(m_psz, a_pszSrc, a_cchSrc); + m_psz[a_cchSrc] = '\0'; + m_cch = a_cchSrc; + return VINF_SUCCESS; + } + return rc; + } + setNull(); + return VINF_SUCCESS; +} + +RTCString &RTCString::assign(size_t a_cTimes, char a_ch) +{ + reserve(a_cTimes + 1); + memset(m_psz, a_ch, a_cTimes); + m_psz[a_cTimes] = '\0'; + m_cch = a_cTimes; + return *this; +} + + +int RTCString::assignNoThrow(size_t a_cTimes, char a_ch) RT_NOEXCEPT +{ + int rc = reserveNoThrow(a_cTimes + 1); + if (RT_SUCCESS(rc)) + { + memset(m_psz, a_ch, a_cTimes); + m_psz[a_cTimes] = '\0'; + m_cch = a_cTimes; + return VINF_SUCCESS; + } + return rc; +} + + +RTCString &RTCString::printf(const char *pszFormat, ...) +{ + va_list va; + va_start(va, pszFormat); + printfV(pszFormat, va); + va_end(va); + return *this; +} + +int RTCString::printfNoThrow(const char *pszFormat, ...) RT_NOEXCEPT +{ + va_list va; + va_start(va, pszFormat); + int rc = printfVNoThrow(pszFormat, va); + va_end(va); + return rc; +} + +/** + * Callback used with RTStrFormatV by RTCString::printfV. + * + * @returns The number of bytes added (not used). + * + * @param pvArg The string object. + * @param pachChars The characters to append. + * @param cbChars The number of characters. 0 on the final callback. + */ +/*static*/ DECLCALLBACK(size_t) +RTCString::printfOutputCallback(void *pvArg, const char *pachChars, size_t cbChars) +{ + RTCString *pThis = (RTCString *)pvArg; + if (cbChars) + { + size_t const cchBoth = pThis->m_cch + cbChars; + if (cchBoth >= pThis->m_cbAllocated) + { + /* Double the buffer size, if it's less that _4M. Align sizes like + for append. */ + size_t cbAlloc = RT_ALIGN_Z(pThis->m_cbAllocated, IPRT_MINISTRING_APPEND_ALIGNMENT); + cbAlloc += RT_MIN(cbAlloc, _4M); + if (cbAlloc <= cchBoth) + cbAlloc = RT_ALIGN_Z(cchBoth + 1, IPRT_MINISTRING_APPEND_ALIGNMENT); + pThis->reserve(cbAlloc); +#ifndef RT_EXCEPTIONS_ENABLED + AssertReleaseReturn(pThis->capacity() > cchBoth, 0); +#endif + } + + memcpy(&pThis->m_psz[pThis->m_cch], pachChars, cbChars); + pThis->m_cch = cchBoth; + pThis->m_psz[cchBoth] = '\0'; + } + return cbChars; +} + +RTCString &RTCString::printfV(const char *pszFormat, va_list va) +{ + cleanup(); + RTStrFormatV(printfOutputCallback, this, NULL, NULL, pszFormat, va); + return *this; +} + +RTCString &RTCString::appendPrintfV(const char *pszFormat, va_list va) +{ + RTStrFormatV(printfOutputCallback, this, NULL, NULL, pszFormat, va); + return *this; +} + +struct RTCSTRINGOTHROW +{ + RTCString *pThis; + int rc; +}; + +/** + * Callback used with RTStrFormatV by RTCString::printfVNoThrow. + * + * @returns The number of bytes added (not used). + * + * @param pvArg Pointer to a RTCSTRINGOTHROW structure. + * @param pachChars The characters to append. + * @param cbChars The number of characters. 0 on the final callback. + */ +/*static*/ DECLCALLBACK(size_t) +RTCString::printfOutputCallbackNoThrow(void *pvArg, const char *pachChars, size_t cbChars) RT_NOEXCEPT +{ + RTCString *pThis = ((RTCSTRINGOTHROW *)pvArg)->pThis; + if (cbChars) + { + size_t const cchBoth = pThis->m_cch + cbChars; + if (cchBoth >= pThis->m_cbAllocated) + { + /* Double the buffer size, if it's less that _4M. Align sizes like + for append. */ + size_t cbAlloc = RT_ALIGN_Z(pThis->m_cbAllocated, IPRT_MINISTRING_APPEND_ALIGNMENT); + cbAlloc += RT_MIN(cbAlloc, _4M); + if (cbAlloc <= cchBoth) + cbAlloc = RT_ALIGN_Z(cchBoth + 1, IPRT_MINISTRING_APPEND_ALIGNMENT); + int rc = pThis->reserveNoThrow(cbAlloc); + if (RT_SUCCESS(rc)) + { /* likely */ } + else + { + ((RTCSTRINGOTHROW *)pvArg)->rc = rc; + return cbChars; + } + } + + memcpy(&pThis->m_psz[pThis->m_cch], pachChars, cbChars); + pThis->m_cch = cchBoth; + pThis->m_psz[cchBoth] = '\0'; + } + return cbChars; +} + +int RTCString::printfVNoThrow(const char *pszFormat, va_list va) RT_NOEXCEPT +{ + cleanup(); + RTCSTRINGOTHROW Args = { this, VINF_SUCCESS }; + RTStrFormatV(printfOutputCallbackNoThrow, &Args, NULL, NULL, pszFormat, va); + return Args.rc; +} + +int RTCString::appendPrintfVNoThrow(const char *pszFormat, va_list va) RT_NOEXCEPT +{ + RTCSTRINGOTHROW Args = { this, VINF_SUCCESS }; + RTStrFormatV(printfOutputCallbackNoThrow, &Args, NULL, NULL, pszFormat, va); + return Args.rc; +} + +RTCString &RTCString::appendPrintf(const char *pszFormat, ...) +{ + va_list va; + va_start(va, pszFormat); + appendPrintfV(pszFormat, va); + va_end(va); + return *this; +} + +int RTCString::appendPrintfNoThrow(const char *pszFormat, ...) RT_NOEXCEPT +{ + va_list va; + va_start(va, pszFormat); + int rc = appendPrintfVNoThrow(pszFormat, va); + va_end(va); + return rc; +} + +RTCString &RTCString::append(const RTCString &that) +{ + Assert(&that != this); + return appendWorker(that.c_str(), that.length()); +} + +int RTCString::appendNoThrow(const RTCString &that) RT_NOEXCEPT +{ + Assert(&that != this); + return appendWorkerNoThrow(that.c_str(), that.length()); +} + +RTCString &RTCString::append(const char *pszThat) +{ + return appendWorker(pszThat, strlen(pszThat)); +} + +int RTCString::appendNoThrow(const char *pszThat) RT_NOEXCEPT +{ + return appendWorkerNoThrow(pszThat, strlen(pszThat)); +} + +RTCString &RTCString::append(const RTCString &rThat, size_t offStart, size_t cchMax /*= RTSTR_MAX*/) +{ + if (offStart < rThat.length()) + { + size_t cchLeft = rThat.length() - offStart; + return appendWorker(rThat.c_str() + offStart, RT_MIN(cchLeft, cchMax)); + } + return *this; +} + +int RTCString::appendNoThrow(const RTCString &rThat, size_t offStart, size_t cchMax /*= RTSTR_MAX*/) RT_NOEXCEPT +{ + if (offStart < rThat.length()) + { + size_t cchLeft = rThat.length() - offStart; + return appendWorkerNoThrow(rThat.c_str() + offStart, RT_MIN(cchLeft, cchMax)); + } + return VINF_SUCCESS; +} + +RTCString &RTCString::append(const char *pszThat, size_t cchMax) +{ + return appendWorker(pszThat, RTStrNLen(pszThat, cchMax)); +} + +int RTCString::appendNoThrow(const char *pszThat, size_t cchMax) RT_NOEXCEPT +{ + return appendWorkerNoThrow(pszThat, RTStrNLen(pszThat, cchMax)); +} + +RTCString &RTCString::appendWorker(const char *pszSrc, size_t cchSrc) +{ + if (cchSrc) + { + size_t cchThis = length(); + size_t cchBoth = cchThis + cchSrc; + + if (cchBoth >= m_cbAllocated) + { + reserve(RT_ALIGN_Z(cchBoth + 1, IPRT_MINISTRING_APPEND_ALIGNMENT)); + // calls realloc(cchBoth + 1) and sets m_cbAllocated; may throw bad_alloc. +#ifndef RT_EXCEPTIONS_ENABLED + AssertRelease(capacity() > cchBoth); +#endif + } + + memcpy(&m_psz[cchThis], pszSrc, cchSrc); + m_psz[cchBoth] = '\0'; + m_cch = cchBoth; + } + return *this; +} + +int RTCString::appendWorkerNoThrow(const char *pszSrc, size_t cchSrc) RT_NOEXCEPT +{ + if (cchSrc) + { + size_t cchThis = length(); + size_t cchBoth = cchThis + cchSrc; + + if (cchBoth >= m_cbAllocated) + { + int rc = reserveNoThrow(RT_ALIGN_Z(cchBoth + 1, IPRT_MINISTRING_APPEND_ALIGNMENT)); + if (RT_SUCCESS(rc)) + { /* likely */ } + else + return rc; + } + + memcpy(&m_psz[cchThis], pszSrc, cchSrc); + m_psz[cchBoth] = '\0'; + m_cch = cchBoth; + } + return VINF_SUCCESS; +} + +RTCString &RTCString::append(char ch) +{ + Assert((unsigned char)ch < 0x80); /* Don't create invalid UTF-8. */ + if (ch) + { + // allocate in chunks of 20 in case this gets called several times + if (m_cch + 1 >= m_cbAllocated) + { + reserve(RT_ALIGN_Z(m_cch + 2, IPRT_MINISTRING_APPEND_ALIGNMENT)); + // calls realloc(cbBoth) and sets m_cbAllocated; may throw bad_alloc. +#ifndef RT_EXCEPTIONS_ENABLED + AssertRelease(capacity() > m_cch + 1); +#endif + } + + m_psz[m_cch] = ch; + m_psz[++m_cch] = '\0'; + } + return *this; +} + +int RTCString::appendNoThrow(char ch) RT_NOEXCEPT +{ + Assert((unsigned char)ch < 0x80); /* Don't create invalid UTF-8. */ + if (ch) + { + // allocate in chunks of 20 in case this gets called several times + if (m_cch + 1 >= m_cbAllocated) + { + int rc = reserveNoThrow(RT_ALIGN_Z(m_cch + 2, IPRT_MINISTRING_APPEND_ALIGNMENT)); + if (RT_SUCCESS(rc)) + { /* likely */ } + else + return rc; + } + + m_psz[m_cch] = ch; + m_psz[++m_cch] = '\0'; + } + return VINF_SUCCESS; +} + +RTCString &RTCString::appendCodePoint(RTUNICP uc) +{ + /* + * Single byte encoding. + */ + if (uc < 0x80) + return RTCString::append((char)uc); + + /* + * Multibyte encoding. + * Assume max encoding length when resizing the string, that's simpler. + */ + AssertReturn(uc <= UINT32_C(0x7fffffff), *this); + + if (m_cch + 6 >= m_cbAllocated) + { + reserve(RT_ALIGN_Z(m_cch + 6 + 1, IPRT_MINISTRING_APPEND_ALIGNMENT)); + // calls realloc(cbBoth) and sets m_cbAllocated; may throw bad_alloc. +#ifndef RT_EXCEPTIONS_ENABLED + AssertRelease(capacity() > m_cch + 6); +#endif + } + + char *pszNext = RTStrPutCp(&m_psz[m_cch], uc); + m_cch = pszNext - m_psz; + *pszNext = '\0'; + + return *this; +} + +int RTCString::appendCodePointNoThrow(RTUNICP uc) RT_NOEXCEPT +{ + /* + * Single byte encoding. + */ + if (uc < 0x80) + return RTCString::appendNoThrow((char)uc); + + /* + * Multibyte encoding. + * Assume max encoding length when resizing the string, that's simpler. + */ + AssertReturn(uc <= UINT32_C(0x7fffffff), VERR_INVALID_UTF8_ENCODING); + + if (m_cch + 6 >= m_cbAllocated) + { + int rc = reserveNoThrow(RT_ALIGN_Z(m_cch + 6 + 1, IPRT_MINISTRING_APPEND_ALIGNMENT)); + if (RT_SUCCESS(rc)) + { /* likely */ } + else + return rc; + } + + char *pszNext = RTStrPutCp(&m_psz[m_cch], uc); + m_cch = pszNext - m_psz; + *pszNext = '\0'; + + return VINF_SUCCESS; +} + +RTCString &RTCString::erase(size_t offStart /*= 0*/, size_t cchLength /*= npos*/) RT_NOEXCEPT +{ + size_t cch = length(); + if (offStart < cch) + { + if (cchLength >= cch - offStart) + { + /* Trail removal, nothing to move. */ + m_cch = offStart; + m_psz[offStart] = '\0'; + } + else if (cchLength > 0) + { + /* Pull up the tail to offStart. */ + size_t cchAfter = cch - offStart - cchLength; + memmove(&m_psz[offStart], &m_psz[offStart + cchLength], cchAfter); + m_cch = cch -= cchLength; + m_psz[cch] = '\0'; + } + } + return *this; +} + +RTCString &RTCString::replace(size_t offStart, size_t cchLength, const RTCString &rStrReplacement) +{ + return replaceWorker(offStart, cchLength, rStrReplacement.c_str(), rStrReplacement.length()); +} + +int RTCString::replaceNoThrow(size_t offStart, size_t cchLength, const RTCString &rStrReplacement) RT_NOEXCEPT +{ + return replaceWorkerNoThrow(offStart, cchLength, rStrReplacement.c_str(), rStrReplacement.length()); +} + +RTCString &RTCString::replace(size_t offStart, size_t cchLength, const RTCString &rStrReplacement, + size_t offReplacement, size_t cchReplacement) +{ + Assert(this != &rStrReplacement); + if (cchReplacement > 0) + { + if (offReplacement < rStrReplacement.length()) + { + size_t cchMaxReplacement = rStrReplacement.length() - offReplacement; + return replaceWorker(offStart, cchLength, rStrReplacement.c_str() + offReplacement, + RT_MIN(cchReplacement, cchMaxReplacement)); + } + /* Our non-standard handling of out_of_range situations. */ + AssertMsgFailed(("offReplacement=%zu (cchReplacement=%zu) rStrReplacement.length()=%zu\n", + offReplacement, cchReplacement, rStrReplacement.length())); + } + return replaceWorker(offStart, cchLength, "", 0); +} + +int RTCString::replaceNoThrow(size_t offStart, size_t cchLength, const RTCString &rStrReplacement, + size_t offReplacement, size_t cchReplacement) RT_NOEXCEPT +{ + Assert(this != &rStrReplacement); + if (cchReplacement > 0) + { + if (offReplacement < rStrReplacement.length()) + { + size_t cchMaxReplacement = rStrReplacement.length() - offReplacement; + return replaceWorkerNoThrow(offStart, cchLength, rStrReplacement.c_str() + offReplacement, + RT_MIN(cchReplacement, cchMaxReplacement)); + } + return VERR_OUT_OF_RANGE; + } + return replaceWorkerNoThrow(offStart, cchLength, "", 0); +} + +RTCString &RTCString::replace(size_t offStart, size_t cchLength, const char *pszReplacement) +{ + return replaceWorker(offStart, cchLength, pszReplacement, strlen(pszReplacement)); +} + +int RTCString::replaceNoThrow(size_t offStart, size_t cchLength, const char *pszReplacement) RT_NOEXCEPT +{ + return replaceWorkerNoThrow(offStart, cchLength, pszReplacement, strlen(pszReplacement)); +} + +RTCString &RTCString::replace(size_t offStart, size_t cchLength, const char *pszReplacement, size_t cchReplacement) +{ + return replaceWorker(offStart, cchLength, pszReplacement, RTStrNLen(pszReplacement, cchReplacement)); +} + +int RTCString::replaceNoThrow(size_t offStart, size_t cchLength, const char *pszReplacement, size_t cchReplacement) RT_NOEXCEPT +{ + return replaceWorkerNoThrow(offStart, cchLength, pszReplacement, RTStrNLen(pszReplacement, cchReplacement)); +} + +RTCString &RTCString::replaceWorker(size_t offStart, size_t cchLength, const char *pszSrc, size_t cchSrc) +{ + /* + * Our non-standard handling of out_of_range situations. + */ + size_t const cchOldLength = length(); + AssertMsgReturn(offStart < cchOldLength, ("offStart=%zu (cchLength=%zu); length()=%zu\n", offStart, cchLength, cchOldLength), + *this); + + /* + * Correct the length parameter. + */ + size_t cchMaxLength = cchOldLength - offStart; + if (cchMaxLength < cchLength) + cchLength = cchMaxLength; + + /* + * Adjust string allocation if necessary. + */ + size_t cchNew = cchOldLength - cchLength + cchSrc; + if (cchNew >= m_cbAllocated) + { + reserve(RT_ALIGN_Z(cchNew + 1, IPRT_MINISTRING_APPEND_ALIGNMENT)); + // calls realloc(cchBoth + 1) and sets m_cbAllocated; may throw bad_alloc. +#ifndef RT_EXCEPTIONS_ENABLED + AssertRelease(capacity() > cchNew); +#endif + } + + /* + * Make the change. + */ + size_t cchAfter = cchOldLength - offStart - cchLength; + if (cchAfter > 0) + memmove(&m_psz[offStart + cchSrc], &m_psz[offStart + cchLength], cchAfter); + memcpy(&m_psz[offStart], pszSrc, cchSrc); + m_psz[cchNew] = '\0'; + m_cch = cchNew; + + return *this; +} + +int RTCString::replaceWorkerNoThrow(size_t offStart, size_t cchLength, const char *pszSrc, size_t cchSrc) RT_NOEXCEPT +{ + /* + * Our non-standard handling of out_of_range situations. + */ + size_t const cchOldLength = length(); + AssertMsgReturn(offStart < cchOldLength, ("offStart=%zu (cchLength=%zu); length()=%zu\n", offStart, cchLength, cchOldLength), + VERR_OUT_OF_RANGE); + + /* + * Correct the length parameter. + */ + size_t cchMaxLength = cchOldLength - offStart; + if (cchMaxLength < cchLength) + cchLength = cchMaxLength; + + /* + * Adjust string allocation if necessary. + */ + size_t cchNew = cchOldLength - cchLength + cchSrc; + if (cchNew >= m_cbAllocated) + { + int rc = reserveNoThrow(RT_ALIGN_Z(cchNew + 1, IPRT_MINISTRING_APPEND_ALIGNMENT)); + if (RT_SUCCESS(rc)) + { /* likely */ } + else + return rc; + } + + /* + * Make the change. + */ + size_t cchAfter = cchOldLength - offStart - cchLength; + if (cchAfter > 0) + memmove(&m_psz[offStart + cchSrc], &m_psz[offStart + cchLength], cchAfter); + memcpy(&m_psz[offStart], pszSrc, cchSrc); + m_psz[cchNew] = '\0'; + m_cch = cchNew; + + return VINF_SUCCESS; +} + + +size_t RTCString::find(const char *pszNeedle, size_t offStart /*= 0*/) const RT_NOEXCEPT +{ + if (offStart < length()) + { + const char *pszThis = c_str(); + if (pszThis) + { + if (pszNeedle && *pszNeedle != '\0') + { + const char *pszHit = strstr(pszThis + offStart, pszNeedle); + if (pszHit) + return pszHit - pszThis; + } + } + } + + return npos; +} + +size_t RTCString::find(const RTCString *pStrNeedle, size_t offStart /*= 0*/) const RT_NOEXCEPT +{ + if (offStart < length()) + { + const char *pszThis = c_str(); + if (pszThis) + { + if (pStrNeedle) + { + const char *pszNeedle = pStrNeedle->c_str(); + if (pszNeedle && *pszNeedle != '\0') + { + const char *pszHit = strstr(pszThis + offStart, pszNeedle); + if (pszHit) + return pszHit - pszThis; + } + } + } + } + + return npos; +} + + +size_t RTCString::find(const RTCString &rStrNeedle, size_t offStart /*= 0*/) const RT_NOEXCEPT +{ + return find(&rStrNeedle, offStart); +} + + +size_t RTCString::find(const char chNeedle, size_t offStart /*= 0*/) const RT_NOEXCEPT +{ + Assert((unsigned int)chNeedle < 128U); + if (offStart < length()) + { + const char *pszThis = c_str(); + if (pszThis) + { + const char *pszHit = (const char *)memchr(&pszThis[offStart], chNeedle, length() - offStart); + if (pszHit) + return pszHit - pszThis; + } + } + return npos; +} + + +void RTCString::findReplace(char chFind, char chReplace) RT_NOEXCEPT +{ + Assert((unsigned int)chFind < 128U); + Assert((unsigned int)chReplace < 128U); + + for (size_t i = 0; i < length(); ++i) + { + char *p = &m_psz[i]; + if (*p == chFind) + *p = chReplace; + } +} + +size_t RTCString::count(char ch) const RT_NOEXCEPT +{ + Assert((unsigned int)ch < 128U); + + size_t c = 0; + const char *psz = m_psz; + if (psz) + { + char chCur; + while ((chCur = *psz++) != '\0') + if (chCur == ch) + c++; + } + return c; +} + +#if 0 /** @todo implement these when needed. */ +size_t RTCString::count(const char *psz, CaseSensitivity cs = CaseSensitive) const RT_NOEXCEPT +{ +} + +size_t RTCString::count(const RTCString *pStr, CaseSensitivity cs = CaseSensitive) const RT_NOEXCEPT +{ + +} +#endif + + +RTCString &RTCString::strip() RT_NOEXCEPT +{ + stripRight(); + return stripLeft(); +} + + +RTCString &RTCString::stripLeft() RT_NOEXCEPT +{ + char *psz = m_psz; + size_t const cch = m_cch; + size_t off = 0; + while (off < cch && RT_C_IS_SPACE(psz[off])) + off++; + if (off > 0) + { + if (off != cch) + { + memmove(psz, &psz[off], cch - off + 1); + m_cch = cch - off; + } + else + setNull(); + } + return *this; +} + + +RTCString &RTCString::stripRight() RT_NOEXCEPT +{ + char *psz = m_psz; + size_t cch = m_cch; + while (cch > 0 && RT_C_IS_SPACE(psz[cch - 1])) + cch--; + if (m_cch != cch) + { + m_cch = cch; + psz[cch] = '\0'; + } + return *this; +} + + + +RTCString RTCString::substrCP(size_t pos /*= 0*/, size_t n /*= npos*/) const +{ + RTCString ret; + + if (n) + { + const char *psz; + + if ((psz = c_str())) + { + RTUNICP cp; + + // walk the UTF-8 characters until where the caller wants to start + size_t i = pos; + while (*psz && i--) + if (RT_FAILURE(RTStrGetCpEx(&psz, &cp))) + return ret; // return empty string on bad encoding + + const char *pFirst = psz; + + if (n == npos) + // all the rest: + ret = pFirst; + else + { + i = n; + while (*psz && i--) + if (RT_FAILURE(RTStrGetCpEx(&psz, &cp))) + return ret; // return empty string on bad encoding + + size_t cbCopy = psz - pFirst; + if (cbCopy) + { + ret.reserve(cbCopy + 1); // may throw bad_alloc +#ifndef RT_EXCEPTIONS_ENABLED + AssertRelease(capacity() >= cbCopy + 1); +#endif + memcpy(ret.m_psz, pFirst, cbCopy); + ret.m_cch = cbCopy; + ret.m_psz[cbCopy] = '\0'; + } + } + } + } + + return ret; +} + +bool RTCString::endsWith(const RTCString &that, CaseSensitivity cs /*= CaseSensitive*/) const RT_NOEXCEPT +{ + size_t l1 = length(); + if (l1 == 0) + return false; + + size_t l2 = that.length(); + if (l1 < l2) + return false; + /** @todo r=bird: If l2 is 0, then m_psz can be NULL and we will crash. See + * also handling of l2 == in startsWith. */ + + size_t l = l1 - l2; + if (cs == CaseSensitive) + return ::RTStrCmp(&m_psz[l], that.m_psz) == 0; + return ::RTStrICmp(&m_psz[l], that.m_psz) == 0; +} + +bool RTCString::startsWith(const RTCString &that, CaseSensitivity cs /*= CaseSensitive*/) const RT_NOEXCEPT +{ + size_t l1 = length(); + size_t l2 = that.length(); + if (l1 == 0 || l2 == 0) /** @todo r=bird: this differs from endsWith, and I think other IPRT code. If l2 == 0, it matches anything. */ + return false; + + if (l1 < l2) + return false; + + if (cs == CaseSensitive) + return ::RTStrNCmp(m_psz, that.m_psz, l2) == 0; + return ::RTStrNICmp(m_psz, that.m_psz, l2) == 0; +} + +bool RTCString::startsWithWord(const char *pszWord, CaseSensitivity enmCase /*= CaseSensitive*/) const RT_NOEXCEPT +{ + const char *pszSrc = RTStrStripL(c_str()); /** @todo RTStrStripL doesn't use RTUniCpIsSpace (nbsp) */ + size_t cchWord = strlen(pszWord); + if ( enmCase == CaseSensitive + ? RTStrNCmp(pszSrc, pszWord, cchWord) == 0 + : RTStrNICmp(pszSrc, pszWord, cchWord) == 0) + { + if ( pszSrc[cchWord] == '\0' + || RT_C_IS_SPACE(pszSrc[cchWord]) + || RT_C_IS_PUNCT(pszSrc[cchWord]) ) + return true; + RTUNICP uc = RTStrGetCp(&pszSrc[cchWord]); + if (RTUniCpIsSpace(uc)) + return true; + } + return false; +} + +bool RTCString::startsWithWord(const RTCString &rThat, CaseSensitivity enmCase /*= CaseSensitive*/) const RT_NOEXCEPT +{ + return startsWithWord(rThat.c_str(), enmCase); +} + +bool RTCString::contains(const RTCString &that, CaseSensitivity cs /*= CaseSensitive*/) const RT_NOEXCEPT +{ + /** @todo r-bird: Not checking for NULL strings like startsWith does (and + * endsWith only does half way). */ + if (cs == CaseSensitive) + return ::RTStrStr(m_psz, that.m_psz) != NULL; + return ::RTStrIStr(m_psz, that.m_psz) != NULL; +} + +bool RTCString::contains(const char *pszNeedle, CaseSensitivity cs /*= CaseSensitive*/) const RT_NOEXCEPT +{ + /** @todo r-bird: Not checking for NULL strings like startsWith does (and + * endsWith only does half way). */ + if (cs == CaseSensitive) + return ::RTStrStr(m_psz, pszNeedle) != NULL; + return ::RTStrIStr(m_psz, pszNeedle) != NULL; +} + +int RTCString::toInt(uint64_t &i) const RT_NOEXCEPT +{ + if (!m_psz) + return VERR_NO_DIGITS; + return RTStrToUInt64Ex(m_psz, NULL, 0, &i); +} + +int RTCString::toInt(uint32_t &i) const RT_NOEXCEPT +{ + if (!m_psz) + return VERR_NO_DIGITS; + return RTStrToUInt32Ex(m_psz, NULL, 0, &i); +} + +RTCList<RTCString, RTCString *> +RTCString::split(const RTCString &a_rstrSep, SplitMode mode /* = RemoveEmptyParts */) const +{ + RTCList<RTCString> strRet; + if (!m_psz) + return strRet; + if (a_rstrSep.isEmpty()) + { + strRet.append(RTCString(m_psz)); + return strRet; + } + + size_t cch = m_cch; + char const *pszTmp = m_psz; + while (cch > 0) + { + char const *pszNext = strstr(pszTmp, a_rstrSep.c_str()); + if (!pszNext) + { + strRet.append(RTCString(pszTmp, cch)); + break; + } + size_t cchNext = pszNext - pszTmp; + if ( cchNext > 0 + || mode == KeepEmptyParts) + strRet.append(RTCString(pszTmp, cchNext)); + pszTmp += cchNext + a_rstrSep.length(); + cch -= cchNext + a_rstrSep.length(); + } + + return strRet; +} + +/* static */ +RTCString +RTCString::joinEx(const RTCList<RTCString, RTCString *> &a_rList, + const RTCString &a_rstrPrefix /* = "" */, + const RTCString &a_rstrSep /* = "" */) +{ + RTCString strRet; + if (a_rList.size() > 1) + { + /* calc the required size */ + size_t cbNeeded = a_rstrSep.length() * (a_rList.size() - 1) + 1; + cbNeeded += a_rstrPrefix.length() * (a_rList.size() - 1) + 1; + for (size_t i = 0; i < a_rList.size(); ++i) + cbNeeded += a_rList.at(i).length(); + strRet.reserve(cbNeeded); + + /* do the appending. */ + for (size_t i = 0; i < a_rList.size() - 1; ++i) + { + if (a_rstrPrefix.isNotEmpty()) + strRet.append(a_rstrPrefix); + strRet.append(a_rList.at(i)); + strRet.append(a_rstrSep); + } + strRet.append(a_rList.last()); + } + /* special case: one list item. */ + else if (a_rList.size() > 0) + { + if (a_rstrPrefix.isNotEmpty()) + strRet.append(a_rstrPrefix); + strRet.append(a_rList.last()); + } + + return strRet; +} + +/* static */ +RTCString +RTCString::join(const RTCList<RTCString, RTCString *> &a_rList, + const RTCString &a_rstrSep /* = "" */) +{ + return RTCString::joinEx(a_rList, + "" /* a_rstrPrefix */, a_rstrSep); +} + +const RTCString operator+(const RTCString &a_rStr1, const RTCString &a_rStr2) +{ + RTCString strRet(a_rStr1); + strRet += a_rStr2; + return strRet; +} + +const RTCString operator+(const RTCString &a_rStr1, const char *a_pszStr2) +{ + RTCString strRet(a_rStr1); + strRet += a_pszStr2; + return strRet; +} + +const RTCString operator+(const char *a_psz1, const RTCString &a_rStr2) +{ + RTCString strRet(a_psz1); + strRet += a_rStr2; + return strRet; +} + diff --git a/src/VBox/Runtime/common/string/simplepattern.cpp b/src/VBox/Runtime/common/string/simplepattern.cpp new file mode 100644 index 00000000..956f8aca --- /dev/null +++ b/src/VBox/Runtime/common/string/simplepattern.cpp @@ -0,0 +1,194 @@ +/* $Id: simplepattern.cpp $ */ +/** @file + * IPRT - RTStrSimplePattern. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> + + +RTDECL(bool) RTStrSimplePatternMatch(const char *pszPattern, const char *pszString) +{ +#if 0 + return RTStrSimplePatternNMatch(pszPattern, RTSTR_MAX, pszString, RTSTR_MAX); +#else + /* ASSUMES ASCII / UTF-8 */ + for (;;) + { + char chPat = *pszPattern; + switch (chPat) + { + default: + if (*pszString != chPat) + return false; + break; + + case '*': + { + /* collapse '*' and '?', they are superfluous */ + while ((chPat = *++pszPattern) == '*' || chPat == '?') + /* nothing */; + + /* if no more pattern, we're done now. */ + if (!chPat) + return true; + + /* find chPat in the string and try get a match on the remaining pattern. */ + for (;;) + { + char chStr = *pszString++; + if ( chStr == chPat + && RTStrSimplePatternMatch(pszPattern + 1, pszString)) + return true; + if (!chStr) + return false; + } + /* won't ever get here */ + break; + } + + case '?': + if (!*pszString) + return false; + break; + + case '\0': + return !*pszString; + } + pszString++; + pszPattern++; + } +#endif +} +RT_EXPORT_SYMBOL(RTStrSimplePatternMatch); + + +RTDECL(bool) RTStrSimplePatternNMatch(const char *pszPattern, size_t cchPattern, + const char *pszString, size_t cchString) +{ + /* ASSUMES ASCII / UTF-8 */ + for (;;) + { + char chPat = cchPattern ? *pszPattern : '\0'; + switch (chPat) + { + default: + { + char chStr = cchString ? *pszString : '\0'; + if (chStr != chPat) + return false; + break; + } + + case '*': + { + /* Collapse '*' and '?', they are superfluous. End of the pattern == match. */ + do + { + if (!--cchPattern) + return true; + chPat = *++pszPattern; + } while (chPat == '*' || chPat == '?'); + if (!chPat) + return true; + + /* Find chPat in the string and try get a match on the remaining pattern. */ + for (;;) + { + if (!cchString--) + return false; + char chStr = *pszString++; + if ( chStr == chPat + && RTStrSimplePatternNMatch(pszPattern + 1, cchPattern - 1, pszString, cchString)) + return true; + if (!chStr) + return false; + } + /* won't ever get here */ + break; + } + + case '?': + if (!cchString || !*pszString) + return false; + break; + + case '\0': + return cchString == 0 || !*pszString; + } + + /* advance */ + pszString++; + cchString--; + pszPattern++; + cchPattern--; + } +} +RT_EXPORT_SYMBOL(RTStrSimplePatternNMatch); + + +RTDECL(bool) RTStrSimplePatternMultiMatch(const char *pszPatterns, size_t cchPatterns, + const char *pszString, size_t cchString, + size_t *poffMatchingPattern) +{ + const char *pszCur = pszPatterns; + while (*pszCur && cchPatterns) + { + /* + * Find the end of the current pattern. + */ + unsigned char ch = '\0'; + const char *pszEnd = pszCur; + while (cchPatterns && (ch = *pszEnd) != '\0' && ch != '|') + cchPatterns--, pszEnd++; + + /* + * Try match it. + */ + if (RTStrSimplePatternNMatch(pszCur, pszEnd - pszCur, pszString, cchString)) + { + if (poffMatchingPattern) + *poffMatchingPattern = pszCur - pszPatterns; + return true; + } + + /* advance */ + if (!ch || !cchPatterns) + break; + cchPatterns--; + pszCur = pszEnd + 1; + } + + if (poffMatchingPattern) + *poffMatchingPattern = RTSTR_MAX; + return false; +} +RT_EXPORT_SYMBOL(RTStrSimplePatternMultiMatch); + diff --git a/src/VBox/Runtime/common/string/straprintf.cpp b/src/VBox/Runtime/common/string/straprintf.cpp new file mode 100644 index 00000000..360282da --- /dev/null +++ b/src/VBox/Runtime/common/string/straprintf.cpp @@ -0,0 +1,197 @@ +/* $Id: straprintf.cpp $ */ +/** @file + * IPRT - Allocating String Formatters. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> +#include <iprt/alloc.h> + + +/********************************************************************************************************************************* +* Structures and Typedefs * +*********************************************************************************************************************************/ +/** strallocoutput() argument structure. */ +typedef struct STRALLOCARG +{ + /** Pointer to current buffer position. */ + char *psz; + /** Number of bytes left in the buffer - not including the trailing zero. */ + size_t cch; + /** Pointer to the start of the buffer. */ + char *pszBuffer; + /** The number of bytes in the buffer. */ + size_t cchBuffer; + /** Set if the buffer was allocated using RTMemRealloc(). If clear + * pszBuffer points to the initial stack buffer. */ + bool fAllocated; + /** Allocation tag used for statistics and such. */ + const char *pszTag; +} STRALLOCARG; +/** Pointer to a strallocoutput() argument structure. */ +typedef STRALLOCARG *PSTRALLOCARG; + + +/********************************************************************************************************************************* +* Internal Functions * +*********************************************************************************************************************************/ +static DECLCALLBACK(size_t) strallocoutput(void *pvArg, const char *pachChars, size_t cbChars); + + +/** + * Output callback. + * + * @returns number of bytes written. + * @param pvArg Pointer to a STRBUFARG structure. + * @param pachChars Pointer to an array of utf-8 characters. + * @param cbChars Number of bytes in the character array pointed to by pachChars. + */ +static DECLCALLBACK(size_t) strallocoutput(void *pvArg, const char *pachChars, size_t cbChars) +{ + PSTRALLOCARG pArg = (PSTRALLOCARG)pvArg; + if (pArg->psz) + { + /* + * The fast path + */ + if (cbChars <= pArg->cch) + { + if (cbChars) + { + memcpy(pArg->psz, pachChars, cbChars); + pArg->cch -= cbChars; + pArg->psz += cbChars; + } + *pArg->psz = '\0'; + return cbChars; + } + + /* + * Need to (re)allocate the buffer. + */ + size_t cbAdded = RT_MIN(pArg->cchBuffer, _1M); + if (cbAdded <= cbChars) + cbAdded = RT_ALIGN_Z(cbChars, _4K); + if (cbAdded <= _1G) + { + char *pszBuffer = (char *)RTMemReallocTag(pArg->fAllocated ? pArg->pszBuffer : NULL, + cbAdded + pArg->cchBuffer, pArg->pszTag); + if (pszBuffer) + { + size_t off = pArg->psz - pArg->pszBuffer; + if (!pArg->fAllocated) + { + memcpy(pszBuffer, pArg->pszBuffer, off); + pArg->fAllocated = true; + } + + pArg->pszBuffer = pszBuffer; + pArg->cchBuffer += cbAdded; + pArg->psz = pszBuffer + off; + pArg->cch += cbAdded; + + if (cbChars) + { + memcpy(pArg->psz, pachChars, cbChars); + pArg->cch -= cbChars; + pArg->psz += cbChars; + } + *pArg->psz = '\0'; + return cbChars; + } + /* else allocation failure */ + } + /* else wrap around */ + + /* failure */ + pArg->psz = NULL; + } + return 0; +} + + +RTDECL(int) RTStrAPrintfVTag(char **ppszBuffer, const char *pszFormat, va_list args, const char *pszTag) +{ +#ifdef IN_RING3 + char szBuf[2048]; +#else + char szBuf[256]; +#endif + STRALLOCARG Arg; + Arg.fAllocated = false; + Arg.cchBuffer = sizeof(szBuf); + Arg.pszBuffer = szBuf; + Arg.cch = sizeof(szBuf) - 1; + Arg.psz = szBuf; + Arg.pszTag = pszTag; + szBuf[0] = '\0'; + int cbRet = (int)RTStrFormatV(strallocoutput, &Arg, NULL, NULL, pszFormat, args); + if (Arg.psz) + { + if (!Arg.fAllocated) + { + /* duplicate the string in szBuf */ + Assert(Arg.pszBuffer == szBuf); + char *psz = (char *)RTMemAllocTag(cbRet + 1, pszTag); + if (psz) + memcpy(psz, szBuf, cbRet + 1); + *ppszBuffer = psz; + } + else + { + /* adjust the allocated buffer */ + char *psz = (char *)RTMemReallocTag(Arg.pszBuffer, cbRet + 1, pszTag); + *ppszBuffer = psz ? psz : Arg.pszBuffer; + } + } + else + { + /* allocation error */ + *ppszBuffer = NULL; + cbRet = -1; + + /* free any allocated buffer */ + if (Arg.fAllocated) + RTMemFree(Arg.pszBuffer); + } + + return cbRet; +} +RT_EXPORT_SYMBOL(RTStrAPrintfVTag); + + +RTDECL(char *) RTStrAPrintf2VTag(const char *pszFormat, va_list args, const char *pszTag) +{ + char *pszBuffer; + RTStrAPrintfVTag(&pszBuffer, pszFormat, args, pszTag); + return pszBuffer; +} +RT_EXPORT_SYMBOL(RTStrAPrintf2VTag); + diff --git a/src/VBox/Runtime/common/string/strcache.cpp b/src/VBox/Runtime/common/string/strcache.cpp new file mode 100644 index 00000000..451b7986 --- /dev/null +++ b/src/VBox/Runtime/common/string/strcache.cpp @@ -0,0 +1,1229 @@ +/* $Id: strcache.cpp $ */ +/** @file + * IPRT - String Cache. + */ + +/* + * Copyright (C) 2009-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/strcache.h> +#include "internal/iprt.h" + +#include <iprt/alloca.h> +#include <iprt/asm.h> +#include <iprt/assert.h> +#include <iprt/critsect.h> +#include <iprt/errcore.h> +#include <iprt/list.h> +#include <iprt/mem.h> +#include <iprt/once.h> +#include <iprt/param.h> +#include <iprt/string.h> + +#include "internal/strhash.h" +#include "internal/magics.h" + + +/********************************************************************************************************************************* +* Defined Constants And Macros * +*********************************************************************************************************************************/ +/** Special NIL pointer for the hash table. It differs from NULL in that it is + * a valid hash table entry when doing a lookup. */ +#define PRTSTRCACHEENTRY_NIL ((PRTSTRCACHEENTRY)~(uintptr_t)1) + +/** Calcuates the increment when handling a collision. + * The current formula makes sure it's always odd so we cannot possibly end + * up a cyclic loop with an even sized table. It also takes more bits from + * the length part. */ +#define RTSTRCACHE_COLLISION_INCR(uHashLen) ( ((uHashLen >> 8) | 1) ) + +/** The initial hash table size. Must be power of two. */ +#define RTSTRCACHE_INITIAL_HASH_SIZE 512 +/** The hash table growth factor. */ +#define RTSTRCACHE_HASH_GROW_FACTOR 4 + +/** + * The RTSTRCACHEENTRY size threshold at which we stop using our own allocator + * and switch to the application heap, expressed as a power of two. + * + * Using a 1KB as a reasonable limit here. + */ +#ifdef RTSTRCACHE_WITH_MERGED_ALLOCATOR +# define RTSTRCACHE_HEAP_THRESHOLD_BIT 10 +#else +# define RTSTRCACHE_HEAP_THRESHOLD_BIT 9 +#endif +/** The RTSTRCACHE_HEAP_THRESHOLD_BIT as a byte limit. */ +#define RTSTRCACHE_HEAP_THRESHOLD RT_BIT_32(RTSTRCACHE_HEAP_THRESHOLD_BIT) +/** Big (heap) entry size alignment. */ +#define RTSTRCACHE_HEAP_ENTRY_SIZE_ALIGN 16 + +#ifdef RTSTRCACHE_WITH_MERGED_ALLOCATOR +/** + * The RTSTRCACHEENTRY size threshold at which we start using the merge free + * list for allocations, expressed as a power of two. + */ +# define RTSTRCACHE_MERGED_THRESHOLD_BIT 6 + +/** The number of bytes (power of two) that the merged allocation lists should + * be grown by. Must be much greater than RTSTRCACHE_MERGED_THRESHOLD. */ +# define RTSTRCACHE_MERGED_GROW_SIZE _32K +#endif + +/** The number of bytes (power of two) that the fixed allocation lists should + * be grown by. */ +#define RTSTRCACHE_FIXED_GROW_SIZE _32K + +/** The number of fixed sized lists. */ +#define RTSTRCACHE_NUM_OF_FIXED_SIZES 12 + + +/** Validates a string cache handle, translating RTSTRCACHE_DEFAULT when found, + * and returns rc if not valid. */ +#define RTSTRCACHE_VALID_RETURN_RC(pStrCache, rc) \ + do { \ + if ((pStrCache) == RTSTRCACHE_DEFAULT) \ + { \ + int rcOnce = RTOnce(&g_rtStrCacheOnce, rtStrCacheInitDefault, NULL); \ + if (RT_FAILURE(rcOnce)) \ + return (rc); \ + (pStrCache) = g_hrtStrCacheDefault; \ + } \ + else \ + { \ + AssertPtrReturn((pStrCache), (rc)); \ + AssertReturn((pStrCache)->u32Magic == RTSTRCACHE_MAGIC, (rc)); \ + } \ + } while (0) + + + +/********************************************************************************************************************************* +* Structures and Typedefs * +*********************************************************************************************************************************/ +/** + * String cache entry. + */ +typedef struct RTSTRCACHEENTRY +{ + /** The number of references. */ + uint32_t volatile cRefs; + /** The lower 16-bit hash value. */ + uint16_t uHash; + /** The string length (excluding the terminator). + * If this is set to RTSTRCACHEENTRY_BIG_LEN, this is a BIG entry + * (RTSTRCACHEBIGENTRY). */ + uint16_t cchString; + /** The string. */ + char szString[8]; +} RTSTRCACHEENTRY; +AssertCompileSize(RTSTRCACHEENTRY, 16); +/** Pointer to a string cache entry. */ +typedef RTSTRCACHEENTRY *PRTSTRCACHEENTRY; +/** Pointer to a const string cache entry. */ +typedef RTSTRCACHEENTRY *PCRTSTRCACHEENTRY; + +/** RTSTCACHEENTRY::cchString value for big cache entries. */ +#define RTSTRCACHEENTRY_BIG_LEN UINT16_MAX + +/** + * Big string cache entry. + * + * These are allocated individually from the application heap. + */ +typedef struct RTSTRCACHEBIGENTRY +{ + /** List entry. */ + RTLISTNODE ListEntry; + /** The string length. */ + uint32_t cchString; + /** The full hash value / padding. */ + uint32_t uHash; + /** The core entry. */ + RTSTRCACHEENTRY Core; +} RTSTRCACHEBIGENTRY; +AssertCompileSize(RTSTRCACHEENTRY, 16); +/** Pointer to a big string cache entry. */ +typedef RTSTRCACHEBIGENTRY *PRTSTRCACHEBIGENTRY; +/** Pointer to a const big string cache entry. */ +typedef RTSTRCACHEBIGENTRY *PCRTSTRCACHEBIGENTRY; + + +/** + * A free string cache entry. + */ +typedef struct RTSTRCACHEFREE +{ + /** Zero value indicating that it's a free entry (no refs, no hash). */ + uint32_t uZero; + /** Number of free bytes. Only used for > 32 byte allocations. */ + uint32_t cbFree; + /** Pointer to the next free item. */ + struct RTSTRCACHEFREE *pNext; +} RTSTRCACHEFREE; +AssertCompileSize(RTSTRCACHEENTRY, 16); +AssertCompileMembersAtSameOffset(RTSTRCACHEENTRY, cRefs, RTSTRCACHEFREE, uZero); +AssertCompileMembersAtSameOffset(RTSTRCACHEENTRY, szString, RTSTRCACHEFREE, pNext); +/** Pointer to a free string cache entry. */ +typedef RTSTRCACHEFREE *PRTSTRCACHEFREE; + +#ifdef RTSTRCACHE_WITH_MERGED_ALLOCATOR + +/** + * A free string cache entry with merging. + * + * This differs from RTSTRCACHEFREE only in having a back pointer for more + * efficient list management (doubly vs. singly linked lists). + */ +typedef struct RTSTRCACHEFREEMERGE +{ + /** Marker that indicates what kind of entry this is, either . */ + uint32_t uMarker; + /** Number of free bytes. Only used for > 32 byte allocations. */ + uint32_t cbFree; + /** Pointer to the main node. NULL for main nodes. */ + struct RTSTRCACHEFREEMERGE *pMain; + /** The free list entry. */ + RTLISTNODE ListEntry; + /** Pads the size up to the minimum allocation unit for the merge list. + * This both defines the minimum allocation unit and simplifies pointer + * manipulation during merging and splitting. */ + uint8_t abPadding[ARCH_BITS == 32 ? 44 : 32]; +} RTSTRCACHEFREEMERGE; +AssertCompileSize(RTSTRCACHEFREEMERGE, RT_BIT_32(RTSTRCACHE_MERGED_THRESHOLD_BIT)); +/** Pointer to a free cache string in the merge list. */ +typedef RTSTRCACHEFREEMERGE *PRTSTRCACHEFREEMERGE; + +/** RTSTRCACHEFREEMERGE::uMarker value indicating that it's the real free chunk + * header. Must be something that's invalid UTF-8 for both little and big + * endian system. */ +# define RTSTRCACHEFREEMERGE_MAIN UINT32_C(0xfffffff1) +/** RTSTRCACHEFREEMERGE::uMarker value indicating that it's part of a larger + * chunk of free memory. Must be something that's invalid UTF-8 for both little + * and big endian system. */ +# define RTSTRCACHEFREEMERGE_PART UINT32_C(0xfffffff2) + +#endif /* RTSTRCACHE_WITH_MERGED_ALLOCATOR */ + +/** + * Tracking structure chunk of memory used by the 16 byte or 32 byte + * allocations. + * + * This occupies the first entry in the chunk. + */ +typedef struct RTSTRCACHECHUNK +{ + /** The size of the chunk. */ + size_t cb; + /** Pointer to the next chunk. */ + struct RTSTRCACHECHUNK *pNext; +} RTSTRCACHECHUNK; +AssertCompile(sizeof(RTSTRCACHECHUNK) <= sizeof(RTSTRCACHEENTRY)); +/** Pointer to the chunk tracking structure. */ +typedef RTSTRCACHECHUNK *PRTSTRCACHECHUNK; + + +/** + * Cache instance data. + */ +typedef struct RTSTRCACHEINT +{ + /** The string cache magic (RTSTRCACHE_MAGIC). */ + uint32_t u32Magic; + /** Ref counter for the cache handle. */ + uint32_t volatile cRefs; + /** The number of strings currently entered in the cache. */ + uint32_t cStrings; + /** The size of the hash table. */ + uint32_t cHashTab; + /** Pointer to the hash table. */ + PRTSTRCACHEENTRY *papHashTab; + /** Free list for allocations of the sizes defined by g_acbFixedLists. */ + PRTSTRCACHEFREE apFreeLists[RTSTRCACHE_NUM_OF_FIXED_SIZES]; +#ifdef RTSTRCACHE_WITH_MERGED_ALLOCATOR + /** Free lists based on */ + RTLISTANCHOR aMergedFreeLists[RTSTRCACHE_HEAP_THRESHOLD_BIT - RTSTRCACHE_MERGED_THRESHOLD_BIT + 1]; +#endif + /** List of allocated memory chunks. */ + PRTSTRCACHECHUNK pChunkList; + /** List of big cache entries. */ + RTLISTANCHOR BigEntryList; + + /** @name Statistics + * @{ */ + /** The total size of all chunks. */ + size_t cbChunks; + /** The total length of all the strings, terminators included. */ + size_t cbStrings; + /** The total size of all the big entries. */ + size_t cbBigEntries; + /** Hash collisions. */ + uint32_t cHashCollisions; + /** Secondary hash collisions. */ + uint32_t cHashCollisions2; + /** The number of inserts to compare cHashCollisions to. */ + uint32_t cHashInserts; + /** The number of rehashes. */ + uint32_t cRehashes; + /** @} */ + + /** Critical section protecting the cache structures. */ + RTCRITSECT CritSect; +} RTSTRCACHEINT; +/** Pointer to a cache instance. */ +typedef RTSTRCACHEINT *PRTSTRCACHEINT; + + + +/********************************************************************************************************************************* +* Global Variables * +*********************************************************************************************************************************/ +/** The entry sizes of the fixed lists (RTSTRCACHEINT::apFreeLists). */ +static const uint32_t g_acbFixedLists[RTSTRCACHE_NUM_OF_FIXED_SIZES] = +{ + 16, 32, 48, 64, 96, 128, 192, 256, 320, 384, 448, 512 +}; + +/** Init once for the default string cache. */ +static RTONCE g_rtStrCacheOnce = RTONCE_INITIALIZER; +/** The default string cache. */ +static RTSTRCACHE g_hrtStrCacheDefault = NIL_RTSTRCACHE; + + +/** @callback_method_impl{FNRTONCE, Initializes g_hrtStrCacheDefault} */ +static DECLCALLBACK(int) rtStrCacheInitDefault(void *pvUser) +{ + NOREF(pvUser); + return RTStrCacheCreate(&g_hrtStrCacheDefault, "Default"); +} + + +RTDECL(int) RTStrCacheCreate(PRTSTRCACHE phStrCache, const char *pszName) +{ + int rc = VERR_NO_MEMORY; + PRTSTRCACHEINT pThis = (PRTSTRCACHEINT)RTMemAllocZ(sizeof(*pThis)); + if (pThis) + { + pThis->cHashTab = RTSTRCACHE_INITIAL_HASH_SIZE; + pThis->papHashTab = (PRTSTRCACHEENTRY*)RTMemAllocZ(sizeof(pThis->papHashTab[0]) * pThis->cHashTab); + if (pThis->papHashTab) + { + rc = RTCritSectInit(&pThis->CritSect); + if (RT_SUCCESS(rc)) + { + RTListInit(&pThis->BigEntryList); +#ifdef RTSTRCACHE_WITH_MERGED_ALLOCATOR + for (uint32_t i = 0; i < RT_ELEMENTS(pThis->aMergedFreeLists); i++) + RTListInit(&pThis->aMergedFreeLists[i]); +#endif + pThis->cRefs = 1; + pThis->u32Magic = RTSTRCACHE_MAGIC; + + *phStrCache = pThis; + return VINF_SUCCESS; + } + RTMemFree(pThis->papHashTab); + } + RTMemFree(pThis); + } + + RT_NOREF_PV(pszName); + return rc; +} +RT_EXPORT_SYMBOL(RTStrCacheCreate); + + +RTDECL(int) RTStrCacheDestroy(RTSTRCACHE hStrCache) +{ + if ( hStrCache == NIL_RTSTRCACHE + || hStrCache == RTSTRCACHE_DEFAULT) + return VINF_SUCCESS; + + PRTSTRCACHEINT pThis = hStrCache; + RTSTRCACHE_VALID_RETURN_RC(pThis, VERR_INVALID_HANDLE); + + /* + * Invalidate it. Enter the crit sect just to be on the safe side. + */ + AssertReturn(ASMAtomicCmpXchgU32(&pThis->u32Magic, RTSTRCACHE_MAGIC_DEAD, RTSTRCACHE_MAGIC), VERR_INVALID_HANDLE); + RTCritSectEnter(&pThis->CritSect); + Assert(pThis->cRefs == 1); + + PRTSTRCACHECHUNK pChunk; + while ((pChunk = pThis->pChunkList) != NULL) + { + pThis->pChunkList = pChunk->pNext; + RTMemPageFree(pChunk, pChunk->cb); + } + + RTMemFree(pThis->papHashTab); + pThis->papHashTab = NULL; + pThis->cHashTab = 0; + + PRTSTRCACHEBIGENTRY pCur, pNext; + RTListForEachSafe(&pThis->BigEntryList, pCur, pNext, RTSTRCACHEBIGENTRY, ListEntry) + { + RTMemFree(pCur); + } + + RTCritSectLeave(&pThis->CritSect); + RTCritSectDelete(&pThis->CritSect); + + RTMemFree(pThis); + return VINF_SUCCESS; +} +RT_EXPORT_SYMBOL(RTStrCacheDestroy); + + +/** + * Selects the fixed free list index for a given minimum entry size. + * + * @returns Free list index. + * @param cbMin Minimum entry size. + */ +DECLINLINE(uint32_t) rtStrCacheSelectFixedList(uint32_t cbMin) +{ + Assert(cbMin <= g_acbFixedLists[RT_ELEMENTS(g_acbFixedLists) - 1]); + unsigned i = 0; + while (cbMin > g_acbFixedLists[i]) + i++; + return i; +} + + +#ifdef RT_STRICT +# define RTSTRCACHE_CHECK(a_pThis) do { rtStrCacheCheck(pThis); } while (0) +/** + * Internal cache check. + */ +static void rtStrCacheCheck(PRTSTRCACHEINT pThis) +{ +# ifdef RTSTRCACHE_WITH_MERGED_ALLOCATOR + for (uint32_t i = 0; i < RT_ELEMENTS(pThis->aMergedFreeLists); i++) + { + PRTSTRCACHEFREEMERGE pFree; + RTListForEach(&pThis->aMergedFreeLists[i], pFree, RTSTRCACHEFREEMERGE, ListEntry) + { + Assert(pFree->uMarker == RTSTRCACHEFREEMERGE_MAIN); + Assert(pFree->cbFree > 0); + Assert(RT_ALIGN_32(pFree->cbFree, sizeof(*pFree)) == pFree->cbFree); + } + } +# endif + RT_NOREF_PV(pThis); +} +#else +# define RTSTRCACHE_CHECK(a_pThis) do { } while (0) +#endif + + +/** + * Finds the first empty hash table entry given a hash+length value. + * + * ASSUMES that the hash table isn't full. + * + * @returns Hash table index. + * @param pThis The string cache instance. + * @param uHashLen The hash + length (not RTSTRCACHEENTRY_BIG_LEN). + */ +static uint32_t rtStrCacheFindEmptyHashTabEntry(PRTSTRCACHEINT pThis, uint32_t uHashLen) +{ + uint32_t iHash = uHashLen % pThis->cHashTab; + for (;;) + { + PRTSTRCACHEENTRY pEntry = pThis->papHashTab[iHash]; + if (pEntry == NULL || pEntry == PRTSTRCACHEENTRY_NIL) + return iHash; + + /* Advance. */ + iHash += RTSTRCACHE_COLLISION_INCR(uHashLen); + iHash %= pThis->cHashTab; + } +} + +/** + * Grows the hash table. + * + * @returns vINF_SUCCESS or VERR_NO_MEMORY. + * @param pThis The string cache instance. + */ +static int rtStrCacheGrowHashTab(PRTSTRCACHEINT pThis) +{ + /* + * Allocate a new hash table two times the size of the old one. + */ + uint32_t cNew = pThis->cHashTab * RTSTRCACHE_HASH_GROW_FACTOR; + PRTSTRCACHEENTRY *papNew = (PRTSTRCACHEENTRY *)RTMemAllocZ(sizeof(papNew[0]) * cNew); + if (papNew == NULL) + return VERR_NO_MEMORY; + + /* + * Install the new table and move the items from the old table and into the new one. + */ + PRTSTRCACHEENTRY *papOld = pThis->papHashTab; + uint32_t iOld = pThis->cHashTab; + + pThis->papHashTab = papNew; + pThis->cHashTab = cNew; + pThis->cRehashes++; + + while (iOld-- > 0) + { + PRTSTRCACHEENTRY pEntry = papOld[iOld]; + if (pEntry != NULL && pEntry != PRTSTRCACHEENTRY_NIL) + { + uint32_t cchString = pEntry->cchString; + if (cchString == RTSTRCACHEENTRY_BIG_LEN) + cchString = RT_FROM_MEMBER(pEntry, RTSTRCACHEBIGENTRY, Core)->cchString; + + uint32_t iHash = rtStrCacheFindEmptyHashTabEntry(pThis, RT_MAKE_U32(pEntry->uHash, cchString)); + pThis->papHashTab[iHash] = pEntry; + } + } + + /* + * Free the old hash table. + */ + RTMemFree(papOld); + return VINF_SUCCESS; +} + +#ifdef RTSTRCACHE_WITH_MERGED_ALLOCATOR + +/** + * Link/Relink into the free right list. + * + * @param pThis The string cache instance. + * @param pFree The free string entry. + */ +static void rtStrCacheRelinkMerged(PRTSTRCACHEINT pThis, PRTSTRCACHEFREEMERGE pFree) +{ + Assert(pFree->uMarker == RTSTRCACHEFREEMERGE_MAIN); + Assert(pFree->cbFree > 0); + Assert(RT_ALIGN_32(pFree->cbFree, sizeof(*pFree)) == pFree->cbFree); + + if (!RTListIsEmpty(&pFree->ListEntry)) + RTListNodeRemove(&pFree->ListEntry); + + uint32_t iList = (ASMBitLastSetU32(pFree->cbFree) - 1) - RTSTRCACHE_MERGED_THRESHOLD_BIT; + if (iList >= RT_ELEMENTS(pThis->aMergedFreeLists)) + iList = RT_ELEMENTS(pThis->aMergedFreeLists) - 1; + + RTListPrepend(&pThis->aMergedFreeLists[iList], &pFree->ListEntry); +} + + +/** + * Allocate a cache entry from the merged free lists. + * + * @returns Pointer to the cache entry on success, NULL on allocation error. + * @param pThis The string cache instance. + * @param uHash The full hash of the string. + * @param pchString The string. + * @param cchString The string length. + * @param cbEntry The required entry size. + */ +static PRTSTRCACHEENTRY rtStrCacheAllocMergedEntry(PRTSTRCACHEINT pThis, uint32_t uHash, + const char *pchString, uint32_t cchString, uint32_t cbEntry) +{ + cbEntry = RT_ALIGN_32(cbEntry, sizeof(RTSTRCACHEFREEMERGE)); + Assert(cbEntry > cchString); + + /* + * Search the list heads first. + */ + PRTSTRCACHEFREEMERGE pFree = NULL; + + uint32_t iList = ASMBitLastSetU32(cbEntry) - 1; + if (!RT_IS_POWER_OF_TWO(cbEntry)) + iList++; + iList -= RTSTRCACHE_MERGED_THRESHOLD_BIT; + + while (iList < RT_ELEMENTS(pThis->aMergedFreeLists)) + { + pFree = RTListGetFirst(&pThis->aMergedFreeLists[iList], RTSTRCACHEFREEMERGE, ListEntry); + if (pFree) + { + /* + * Found something. Should we we split it? We split from the end + * to avoid having to update all the sub entries. + */ + Assert(pFree->uMarker == RTSTRCACHEFREEMERGE_MAIN); + Assert(pFree->cbFree >= cbEntry); + Assert(RT_ALIGN_32(pFree->cbFree, sizeof(*pFree)) == pFree->cbFree); + + if (pFree->cbFree == cbEntry) + RTListNodeRemove(&pFree->ListEntry); + else + { + uint32_t cRemainder = (pFree->cbFree - cbEntry) / sizeof(*pFree); + PRTSTRCACHEFREEMERGE pRemainder = pFree; + pFree += cRemainder; + + Assert((pRemainder->cbFree - cbEntry) == cRemainder * sizeof(*pFree)); + pRemainder->cbFree = cRemainder * sizeof(*pFree); + + rtStrCacheRelinkMerged(pThis, pRemainder); + } + break; + } + iList++; + } + if (!pFree) + { + /* + * Allocate a new block. (We could search the list below in some + * cases, but it's too much effort to write and execute). + */ + size_t const cbChunk = RTSTRCACHE_MERGED_GROW_SIZE; AssertReturn(cbChunk > cbEntry * 2, NULL); + PRTSTRCACHECHUNK pChunk = (PRTSTRCACHECHUNK)RTMemPageAlloc(cbChunk); + if (!pChunk) + return NULL; + pChunk->cb = cbChunk; + pChunk->pNext = pThis->pChunkList; + pThis->pChunkList = pChunk; + pThis->cbChunks += cbChunk; + AssertCompile(sizeof(*pChunk) <= sizeof(*pFree)); + + /* + * Get one node for the allocation at hand. + */ + pFree = (PRTSTRCACHEFREEMERGE)((uintptr_t)pChunk + sizeof(*pFree)); + + /* + * Create a free block out of the remainder (always a reminder). + */ + PRTSTRCACHEFREEMERGE pNewFree = (PRTSTRCACHEFREEMERGE)((uintptr_t)pFree + cbEntry); + pNewFree->uMarker = RTSTRCACHEFREEMERGE_MAIN; + pNewFree->cbFree = cbChunk - sizeof(*pNewFree) - cbEntry; Assert(pNewFree->cbFree < cbChunk && pNewFree->cbFree > 0); + pNewFree->pMain = NULL; + RTListInit(&pNewFree->ListEntry); + + uint32_t iInternalBlock = pNewFree->cbFree / sizeof(*pNewFree); + while (iInternalBlock-- > 1) + { + pNewFree[iInternalBlock].uMarker = RTSTRCACHEFREEMERGE_PART; + pNewFree[iInternalBlock].cbFree = 0; + pNewFree[iInternalBlock].pMain = pNewFree; + } + + rtStrCacheRelinkMerged(pThis, pNewFree); + } + + /* + * Initialize the entry. We zero all bytes we don't use so they cannot + * accidentally be mistaken for a free entry. + */ + ASMCompilerBarrier(); + PRTSTRCACHEENTRY pEntry = (PRTSTRCACHEENTRY)pFree; + pEntry->cRefs = 1; + pEntry->uHash = (uint16_t)uHash; + pEntry->cchString = (uint16_t)cchString; + memcpy(pEntry->szString, pchString, cchString); + RT_BZERO(&pEntry->szString[cchString], cbEntry - RT_UOFFSETOF(RTSTRCACHEENTRY, szString) - cchString); + + RTSTRCACHE_CHECK(pThis); + + return pEntry; +} + +#endif /* RTSTRCACHE_WITH_MERGED_ALLOCATOR */ + +/** + * Allocate a cache entry from the heap. + * + * @returns Pointer to the cache entry on success, NULL on allocation error. + * @param pThis The string cache instance. + * @param uHash The full hash of the string. + * @param pchString The string. + * @param cchString The string length. + */ +static PRTSTRCACHEENTRY rtStrCacheAllocHeapEntry(PRTSTRCACHEINT pThis, uint32_t uHash, + const char *pchString, uint32_t cchString) +{ + /* + * Allocate a heap block for storing the string. We do some size aligning + * here to encourage the heap to give us optimal alignment. + */ + size_t cbEntry = RT_UOFFSETOF_DYN(RTSTRCACHEBIGENTRY, Core.szString[cchString + 1]); + PRTSTRCACHEBIGENTRY pBigEntry = (PRTSTRCACHEBIGENTRY)RTMemAlloc(RT_ALIGN_Z(cbEntry, RTSTRCACHE_HEAP_ENTRY_SIZE_ALIGN)); + if (!pBigEntry) + return NULL; + + /* + * Initialize the block. + */ + RTListAppend(&pThis->BigEntryList, &pBigEntry->ListEntry); + pThis->cbBigEntries += cbEntry; + pBigEntry->cchString = cchString; + pBigEntry->uHash = uHash; + pBigEntry->Core.cRefs = 1; + pBigEntry->Core.uHash = (uint16_t)uHash; + pBigEntry->Core.cchString = RTSTRCACHEENTRY_BIG_LEN; + /* The following is to try avoid gcc warnings/errors regarding array bounds: */ + char *pszDst = (char *)memcpy(pBigEntry->Core.szString, pchString, cchString); + pszDst[cchString] = '\0'; + ASMCompilerBarrier(); + + return &pBigEntry->Core; +} + + +/** + * Allocate a cache entry from a fixed size free list. + * + * @returns Pointer to the cache entry on success, NULL on allocation error. + * @param pThis The string cache instance. + * @param uHash The full hash of the string. + * @param pchString The string. + * @param cchString The string length. + * @param iFreeList Which free list. + */ +static PRTSTRCACHEENTRY rtStrCacheAllocFixedEntry(PRTSTRCACHEINT pThis, uint32_t uHash, + const char *pchString, uint32_t cchString, uint32_t iFreeList) +{ + /* + * Get an entry from the free list. If empty, allocate another chunk of + * memory and split it up into free entries of the desired size. + */ + PRTSTRCACHEFREE pFree = pThis->apFreeLists[iFreeList]; + if (!pFree) + { + PRTSTRCACHECHUNK pChunk = (PRTSTRCACHECHUNK)RTMemPageAlloc(RTSTRCACHE_FIXED_GROW_SIZE); + if (!pChunk) + return NULL; + pChunk->cb = RTSTRCACHE_FIXED_GROW_SIZE; + pChunk->pNext = pThis->pChunkList; + pThis->pChunkList = pChunk; + pThis->cbChunks += RTSTRCACHE_FIXED_GROW_SIZE; + + PRTSTRCACHEFREE pPrev = NULL; + uint32_t const cbEntry = g_acbFixedLists[iFreeList]; + uint32_t cLeft = RTSTRCACHE_FIXED_GROW_SIZE / cbEntry - 1; + pFree = (PRTSTRCACHEFREE)((uintptr_t)pChunk + cbEntry); + + Assert(sizeof(*pChunk) <= cbEntry); + Assert(sizeof(*pFree) <= cbEntry); + Assert(cbEntry < RTSTRCACHE_FIXED_GROW_SIZE / 16); + + while (cLeft-- > 0) + { + pFree->uZero = 0; + pFree->cbFree = cbEntry; + pFree->pNext = pPrev; + pPrev = pFree; + pFree = (PRTSTRCACHEFREE)((uintptr_t)pFree + cbEntry); + } + + Assert(pPrev); + pThis->apFreeLists[iFreeList] = pFree = pPrev; + } + + /* + * Unlink it. + */ + pThis->apFreeLists[iFreeList] = pFree->pNext; + ASMCompilerBarrier(); + + /* + * Initialize the entry. + */ + PRTSTRCACHEENTRY pEntry = (PRTSTRCACHEENTRY)pFree; + pEntry->cRefs = 1; + pEntry->uHash = (uint16_t)uHash; + pEntry->cchString = (uint16_t)cchString; + memcpy(pEntry->szString, pchString, cchString); + pEntry->szString[cchString] = '\0'; + + return pEntry; +} + + +/** + * Looks up a string in the hash table. + * + * @returns Pointer to the string cache entry, NULL + piFreeHashTabEntry if not + * found. + * @param pThis The string cache instance. + * @param uHashLen The hash + length (not RTSTRCACHEENTRY_BIG_LEN). + * @param cchString The real length. + * @param pchString The string. + * @param piFreeHashTabEntry Where to store the index insertion index if NULL + * is returned (same as what + * rtStrCacheFindEmptyHashTabEntry would return). + * @param pcCollisions Where to return a collision counter. + */ +static PRTSTRCACHEENTRY rtStrCacheLookUp(PRTSTRCACHEINT pThis, uint32_t uHashLen, uint32_t cchString, const char *pchString, + uint32_t *piFreeHashTabEntry, uint32_t *pcCollisions) +{ + *piFreeHashTabEntry = UINT32_MAX; + *pcCollisions = 0; + + uint16_t cchStringFirst = RT_UOFFSETOF_DYN(RTSTRCACHEENTRY, szString[cchString + 1]) < RTSTRCACHE_HEAP_THRESHOLD + ? (uint16_t)cchString : RTSTRCACHEENTRY_BIG_LEN; + uint32_t iHash = uHashLen % pThis->cHashTab; + for (;;) + { + PRTSTRCACHEENTRY pEntry = pThis->papHashTab[iHash]; + + /* Give up if NULL, but record the index for insertion. */ + if (pEntry == NULL) + { + if (*piFreeHashTabEntry == UINT32_MAX) + *piFreeHashTabEntry = iHash; + return NULL; + } + + if (pEntry != PRTSTRCACHEENTRY_NIL) + { + /* Compare. */ + if ( pEntry->uHash == (uint16_t)uHashLen + && pEntry->cchString == cchStringFirst) + { + if (pEntry->cchString != RTSTRCACHEENTRY_BIG_LEN) + { + if ( !memcmp(pEntry->szString, pchString, cchString) + && pEntry->szString[cchString] == '\0') + return pEntry; + } + else + { + PRTSTRCACHEBIGENTRY pBigEntry = RT_FROM_MEMBER(pEntry, RTSTRCACHEBIGENTRY, Core); + if ( pBigEntry->cchString == cchString + && !memcmp(pBigEntry->Core.szString, pchString, cchString)) + return &pBigEntry->Core; + } + } + + if (*piFreeHashTabEntry == UINT32_MAX) + *pcCollisions += 1; + } + /* Record the first NIL index for insertion in case we don't get a hit. */ + else if (*piFreeHashTabEntry == UINT32_MAX) + *piFreeHashTabEntry = iHash; + + /* Advance. */ + iHash += RTSTRCACHE_COLLISION_INCR(uHashLen); + iHash %= pThis->cHashTab; + } +} + + +RTDECL(const char *) RTStrCacheEnterN(RTSTRCACHE hStrCache, const char *pchString, size_t cchString) +{ + PRTSTRCACHEINT pThis = hStrCache; + RTSTRCACHE_VALID_RETURN_RC(pThis, NULL); + + + /* + * Calculate the hash and figure the exact string length, then look for an existing entry. + */ + uint32_t const uHash = sdbmN(pchString, cchString, &cchString); + uint32_t const uHashLen = RT_MAKE_U32(uHash, cchString); + AssertReturn(cchString < _1G, NULL); + uint32_t const cchString32 = (uint32_t)cchString; + + RTCritSectEnter(&pThis->CritSect); + RTSTRCACHE_CHECK(pThis); + + uint32_t cCollisions; + uint32_t iFreeHashTabEntry; + PRTSTRCACHEENTRY pEntry = rtStrCacheLookUp(pThis, uHashLen, cchString32, pchString, &iFreeHashTabEntry, &cCollisions); + if (pEntry) + { + uint32_t cRefs = ASMAtomicIncU32(&pEntry->cRefs); + Assert(cRefs < UINT32_MAX / 2); NOREF(cRefs); + } + else + { + /* + * Allocate a new entry. + */ + uint32_t cbEntry = cchString32 + 1U + RT_UOFFSETOF(RTSTRCACHEENTRY, szString); + if (cbEntry >= RTSTRCACHE_HEAP_THRESHOLD) + pEntry = rtStrCacheAllocHeapEntry(pThis, uHash, pchString, cchString32); +#ifdef RTSTRCACHE_WITH_MERGED_ALLOCATOR + else if (cbEntry >= RTSTRCACHE_MERGED_THRESHOLD_BIT) + pEntry = rtStrCacheAllocMergedEntry(pThis, uHash, pchString, cchString32, cbEntry); +#endif + else + pEntry = rtStrCacheAllocFixedEntry(pThis, uHash, pchString, cchString32, + rtStrCacheSelectFixedList(cbEntry)); + if (!pEntry) + { + RTSTRCACHE_CHECK(pThis); + RTCritSectLeave(&pThis->CritSect); + return NULL; + } + + /* + * Insert it into the hash table. + */ + if (pThis->cHashTab - pThis->cStrings < pThis->cHashTab / 2) + { + int rc = rtStrCacheGrowHashTab(pThis); + if (RT_SUCCESS(rc)) + iFreeHashTabEntry = rtStrCacheFindEmptyHashTabEntry(pThis, uHashLen); + else if (pThis->cHashTab - pThis->cStrings <= pThis->cHashTab / 8) /* 12.5% full => error */ + { + pThis->papHashTab[iFreeHashTabEntry] = pEntry; + pThis->cStrings++; + pThis->cHashInserts++; + pThis->cHashCollisions += cCollisions > 0; + pThis->cHashCollisions2 += cCollisions > 1; + pThis->cbStrings += cchString32 + 1; + RTStrCacheRelease(hStrCache, pEntry->szString); + + RTSTRCACHE_CHECK(pThis); + RTCritSectLeave(&pThis->CritSect); + return NULL; + } + } + + pThis->papHashTab[iFreeHashTabEntry] = pEntry; + pThis->cStrings++; + pThis->cHashInserts++; + pThis->cHashCollisions += cCollisions > 0; + pThis->cHashCollisions2 += cCollisions > 1; + pThis->cbStrings += cchString32 + 1; + Assert(pThis->cStrings < pThis->cHashTab && pThis->cStrings > 0); + } + + RTSTRCACHE_CHECK(pThis); + RTCritSectLeave(&pThis->CritSect); + return pEntry->szString; +} +RT_EXPORT_SYMBOL(RTStrCacheEnterN); + + +RTDECL(const char *) RTStrCacheEnter(RTSTRCACHE hStrCache, const char *psz) +{ + return RTStrCacheEnterN(hStrCache, psz, strlen(psz)); +} +RT_EXPORT_SYMBOL(RTStrCacheEnter); + + +static const char *rtStrCacheEnterLowerWorker(PRTSTRCACHEINT pThis, const char *pchString, size_t cchString) +{ + /* + * Try use a dynamic heap buffer first. + */ + if (cchString < 512) + { + char *pszStackBuf = (char *)alloca(cchString + 1); + if (pszStackBuf) + { + memcpy(pszStackBuf, pchString, cchString); + pszStackBuf[cchString] = '\0'; + RTStrToLower(pszStackBuf); + return RTStrCacheEnterN(pThis, pszStackBuf, cchString); + } + } + + /* + * Fall back on heap. + */ + char *pszHeapBuf = (char *)RTMemTmpAlloc(cchString + 1); + if (!pszHeapBuf) + return NULL; + memcpy(pszHeapBuf, pchString, cchString); + pszHeapBuf[cchString] = '\0'; + RTStrToLower(pszHeapBuf); + const char *pszRet = RTStrCacheEnterN(pThis, pszHeapBuf, cchString); + RTMemTmpFree(pszHeapBuf); + return pszRet; +} + +RTDECL(const char *) RTStrCacheEnterLowerN(RTSTRCACHE hStrCache, const char *pchString, size_t cchString) +{ + PRTSTRCACHEINT pThis = hStrCache; + RTSTRCACHE_VALID_RETURN_RC(pThis, NULL); + return rtStrCacheEnterLowerWorker(pThis, pchString, RTStrNLen(pchString, cchString)); +} +RT_EXPORT_SYMBOL(RTStrCacheEnterLowerN); + + +RTDECL(const char *) RTStrCacheEnterLower(RTSTRCACHE hStrCache, const char *psz) +{ + PRTSTRCACHEINT pThis = hStrCache; + RTSTRCACHE_VALID_RETURN_RC(pThis, NULL); + return rtStrCacheEnterLowerWorker(pThis, psz, strlen(psz)); +} +RT_EXPORT_SYMBOL(RTStrCacheEnterLower); + + +RTDECL(uint32_t) RTStrCacheRetain(const char *psz) +{ + AssertPtr(psz); + + PRTSTRCACHEENTRY pStr = RT_FROM_MEMBER(psz, RTSTRCACHEENTRY, szString); + Assert(!((uintptr_t)pStr & 15) || pStr->cchString == RTSTRCACHEENTRY_BIG_LEN); + + uint32_t cRefs = ASMAtomicIncU32(&pStr->cRefs); + Assert(cRefs > 1); + Assert(cRefs < UINT32_MAX / 2); + + return cRefs; +} +RT_EXPORT_SYMBOL(RTStrCacheRetain); + + +static uint32_t rtStrCacheFreeEntry(PRTSTRCACHEINT pThis, PRTSTRCACHEENTRY pStr) +{ + RTCritSectEnter(&pThis->CritSect); + RTSTRCACHE_CHECK(pThis); + + /* Remove it from the hash table. */ + uint32_t cchString = pStr->cchString == RTSTRCACHEENTRY_BIG_LEN + ? RT_FROM_MEMBER(pStr, RTSTRCACHEBIGENTRY, Core)->cchString + : pStr->cchString; + uint32_t uHashLen = RT_MAKE_U32(pStr->uHash, cchString); + uint32_t iHash = uHashLen % pThis->cHashTab; + if (pThis->papHashTab[iHash] == pStr) + pThis->papHashTab[iHash] = PRTSTRCACHEENTRY_NIL; + else + { + do + { + AssertBreak(pThis->papHashTab[iHash] != NULL); + iHash += RTSTRCACHE_COLLISION_INCR(uHashLen); + iHash %= pThis->cHashTab; + } while (pThis->papHashTab[iHash] != pStr); + if (RT_LIKELY(pThis->papHashTab[iHash] == pStr)) + pThis->papHashTab[iHash] = PRTSTRCACHEENTRY_NIL; + else + { + AssertFailed(); + iHash = pThis->cHashTab; + while (iHash-- > 0) + if (pThis->papHashTab[iHash] == pStr) + break; + AssertMsgFailed(("iHash=%u cHashTab=%u\n", iHash, pThis->cHashTab)); + } + } + + pThis->cStrings--; + pThis->cbStrings -= cchString; + Assert(pThis->cStrings < pThis->cHashTab); + + /* Free it. */ + if (pStr->cchString != RTSTRCACHEENTRY_BIG_LEN) + { + uint32_t const cbMin = pStr->cchString + 1U + RT_UOFFSETOF(RTSTRCACHEENTRY, szString); +#ifdef RTSTRCACHE_WITH_MERGED_ALLOCATOR + if (cbMin <= RTSTRCACHE_MAX_FIXED) +#endif + { + /* + * No merging, just add it to the list. + */ + uint32_t const iFreeList = rtStrCacheSelectFixedList(cbMin); + ASMCompilerBarrier(); + PRTSTRCACHEFREE pFreeStr = (PRTSTRCACHEFREE)pStr; + pFreeStr->cbFree = cbMin; + pFreeStr->uZero = 0; + pFreeStr->pNext = pThis->apFreeLists[iFreeList]; + pThis->apFreeLists[iFreeList] = pFreeStr; + } +#ifdef RTSTRCACHE_WITH_MERGED_ALLOCATOR + else + { + /* + * Complicated mode, we merge with adjecent nodes. + */ + ASMCompilerBarrier(); + PRTSTRCACHEFREEMERGE pFreeStr = (PRTSTRCACHEFREEMERGE)pStr; + pFreeStr->cbFree = RT_ALIGN_32(cbMin, sizeof(*pFreeStr)); + pFreeStr->uMarker = RTSTRCACHEFREEMERGE_MAIN; + pFreeStr->pMain = NULL; + RTListInit(&pFreeStr->ListEntry); + + /* + * Merge with previous? + * (Reading one block back is safe because there is always the + * RTSTRCACHECHUNK structure at the head of each memory chunk.) + */ + uint32_t cInternalBlocks = pFreeStr->cbFree / sizeof(*pFreeStr); + PRTSTRCACHEFREEMERGE pMain = pFreeStr - 1; + if ( pMain->uMarker == RTSTRCACHEFREEMERGE_MAIN + || pMain->uMarker == RTSTRCACHEFREEMERGE_PART) + { + while (pMain->uMarker != RTSTRCACHEFREEMERGE_MAIN) + pMain--; + pMain->cbFree += pFreeStr->cbFree; + } + else + { + pMain = pFreeStr; + pFreeStr++; + cInternalBlocks--; + } + + /* + * Mark internal blocks in the string we're freeing. + */ + while (cInternalBlocks-- > 0) + { + pFreeStr->uMarker = RTSTRCACHEFREEMERGE_PART; + pFreeStr->cbFree = 0; + pFreeStr->pMain = pMain; + RTListInit(&pFreeStr->ListEntry); + pFreeStr++; + } + + /* + * Merge with next? Limitation: We won't try cross page boundraries. + * (pFreeStr points to the next first free enter after the string now.) + */ + if ( PAGE_ADDRESS(pFreeStr) == PAGE_ADDRESS(&pFreeStr[-1]) + && pFreeStr->uMarker == RTSTRCACHEFREEMERGE_MAIN) + { + pMain->cbFree += pFreeStr->cbFree; + cInternalBlocks = pFreeStr->cbFree / sizeof(*pFreeStr); + Assert(cInternalBlocks > 0); + + /* Update the main block we merge with. */ + pFreeStr->cbFree = 0; + pFreeStr->uMarker = RTSTRCACHEFREEMERGE_PART; + RTListNodeRemove(&pFreeStr->ListEntry); + RTListInit(&pFreeStr->ListEntry); + + /* Change the internal blocks we merged in. */ + cInternalBlocks--; + while (cInternalBlocks-- > 0) + { + pFreeStr++; + pFreeStr->pMain = pMain; + Assert(pFreeStr->uMarker == RTSTRCACHEFREEMERGE_PART); + Assert(!pFreeStr->cbFree); + } + } + + /* + * Add/relink into the appropriate free list. + */ + rtStrCacheRelinkMerged(pThis, pMain); + } +#endif /* RTSTRCACHE_WITH_MERGED_ALLOCATOR */ + RTSTRCACHE_CHECK(pThis); + RTCritSectLeave(&pThis->CritSect); + } + else + { + /* Big string. */ + PRTSTRCACHEBIGENTRY pBigStr = RT_FROM_MEMBER(pStr, RTSTRCACHEBIGENTRY, Core); + RTListNodeRemove(&pBigStr->ListEntry); + pThis->cbBigEntries -= RT_ALIGN_32(RT_UOFFSETOF_DYN(RTSTRCACHEBIGENTRY, Core.szString[cchString + 1]), + RTSTRCACHE_HEAP_ENTRY_SIZE_ALIGN); + + RTSTRCACHE_CHECK(pThis); + RTCritSectLeave(&pThis->CritSect); + + RTMemFree(pBigStr); + } + + return 0; +} + +RTDECL(uint32_t) RTStrCacheRelease(RTSTRCACHE hStrCache, const char *psz) +{ + if (!psz) + return 0; + + PRTSTRCACHEINT pThis = hStrCache; + RTSTRCACHE_VALID_RETURN_RC(pThis, UINT32_MAX); + + AssertPtr(psz); + PRTSTRCACHEENTRY pStr = RT_FROM_MEMBER(psz, RTSTRCACHEENTRY, szString); + Assert(!((uintptr_t)pStr & 15) || pStr->cchString == RTSTRCACHEENTRY_BIG_LEN); + + /* + * Drop a reference and maybe free the entry. + */ + uint32_t cRefs = ASMAtomicDecU32(&pStr->cRefs); + Assert(cRefs < UINT32_MAX / 2); + if (!cRefs) + return rtStrCacheFreeEntry(pThis, pStr); + + return cRefs; +} +RT_EXPORT_SYMBOL(RTStrCacheRelease); + + +RTDECL(size_t) RTStrCacheLength(const char *psz) +{ + if (!psz) + return 0; + + AssertPtr(psz); + PRTSTRCACHEENTRY pStr = RT_FROM_MEMBER(psz, RTSTRCACHEENTRY, szString); + if (pStr->cchString == RTSTRCACHEENTRY_BIG_LEN) + { + PRTSTRCACHEBIGENTRY pBigStr = RT_FROM_MEMBER(psz, RTSTRCACHEBIGENTRY, Core.szString); + return pBigStr->cchString; + } + Assert(!((uintptr_t)pStr & 15)); + return pStr->cchString; +} +RT_EXPORT_SYMBOL(RTStrCacheLength); + + +RTDECL(bool) RTStrCacheIsRealImpl(void) +{ + return true; +} +RT_EXPORT_SYMBOL(RTStrCacheIsRealImpl); + + +RTDECL(uint32_t) RTStrCacheGetStats(RTSTRCACHE hStrCache, size_t *pcbStrings, size_t *pcbChunks, size_t *pcbBigEntries, + uint32_t *pcHashCollisions, uint32_t *pcHashCollisions2, uint32_t *pcHashInserts, + uint32_t *pcRehashes) +{ + PRTSTRCACHEINT pThis = hStrCache; + RTSTRCACHE_VALID_RETURN_RC(pThis, UINT32_MAX); + + RTCritSectEnter(&pThis->CritSect); + + if (pcbStrings) + *pcbStrings = pThis->cbStrings; + if (pcbChunks) + *pcbChunks = pThis->cbChunks; + if (pcbBigEntries) + *pcbBigEntries = pThis->cbBigEntries; + if (pcHashCollisions) + *pcHashCollisions = pThis->cHashCollisions; + if (pcHashCollisions2) + *pcHashCollisions2 = pThis->cHashCollisions2; + if (pcHashInserts) + *pcHashInserts = pThis->cHashInserts; + if (pcRehashes) + *pcRehashes = pThis->cRehashes; + uint32_t cStrings = pThis->cStrings; + + RTCritSectLeave(&pThis->CritSect); + return cStrings; +} +RT_EXPORT_SYMBOL(RTStrCacheRelease); + diff --git a/src/VBox/Runtime/common/string/strchr.asm b/src/VBox/Runtime/common/string/strchr.asm new file mode 100644 index 00000000..1568349e --- /dev/null +++ b/src/VBox/Runtime/common/string/strchr.asm @@ -0,0 +1,142 @@ +; $Id: strchr.asm $ +;; @file +; IPRT - No-CRT strchr - AMD64 & X86. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; @param psz gcc: rdi msc: rcx x86:[esp+4] wcall: eax +; @param ch gcc: esi msc: edx x86:[esp+8] wcall: edx +RT_NOCRT_BEGINPROC strchr + cld + + ; check for ch == 0 and setup normal strchr. +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + or dl, dl + jz near .strlen + mov r9, rsi ; save rsi + mov rsi, rcx + %else + or sil, sil + jz near .strlen + mov edx, esi + mov rsi, rdi + %endif +%else + %ifndef ASM_CALL32_WATCOM + mov edx, [esp + 8] + %endif + or dl, dl + jz near .strlen + mov ecx, esi ; save esi + %ifdef ASM_CALL32_WATCOM + mov esi, eax + %else + mov esi, [esp + 4] + %endif +%endif + + ; do the search +.next: + lodsb + cmp al, dl + je .found + test al, al + jz .not_found + + lodsb + cmp al, dl + je .found + test al, al + jz .not_found + + lodsb + cmp al, dl + je .found + test al, al + jz .not_found + + lodsb + cmp al, dl + je .found + test al, al + jz .not_found + jmp .next + +.found: + lea xAX, [xSI - 1] +%ifdef ASM_CALL64_MSC + mov rsi, r9 +%endif +%ifdef RT_ARCH_X86 + mov esi, ecx +%endif + ret + +.not_found: +%ifdef ASM_CALL64_MSC + mov rsi, r9 +%endif +%ifdef RT_ARCH_X86 + mov esi, ecx +%endif + xor eax, eax + ret + +; +; Special case: strchr(str, '\0'); +; +align 16 +.strlen: +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + mov r9, rdi ; save rdi + mov rdi, rcx + %endif +%else + mov edx, edi ; save edi + %ifdef ASM_CALL32_WATCOM + mov edi, eax + %else + mov edi, [esp + 4] + %endif +%endif + mov xCX, -1 + xor eax, eax + repne scasb + + lea xAX, [xDI - 1] +%ifdef ASM_CALL64_MSC + mov rdi, r9 +%endif +%ifdef RT_ARCH_X86 + mov edi, edx +%endif + ret +ENDPROC RT_NOCRT(strchr) + diff --git a/src/VBox/Runtime/common/string/strchr_alias.c b/src/VBox/Runtime/common/string/strchr_alias.c new file mode 100644 index 00000000..74e127b5 --- /dev/null +++ b/src/VBox/Runtime/common/string/strchr_alias.c @@ -0,0 +1,53 @@ +/* $Id: strchr_alias.c $ */ +/** @file + * IPRT - No-CRT strchr() alias for gcc. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/nocrt/string.h> +#undef strchr + +#if defined(RT_OS_DARWIN) || defined(RT_OS_WINDOWS) +# ifndef __MINGW32__ +# pragma weak strchr +# endif + +/* No alias support here (yet in the ming case). */ +extern char *(strchr)(const char *psz, int ch) +{ + return RT_NOCRT(strchr)(psz, ch); +} + +#elif __GNUC__ >= 4 +/* create a weak alias. */ +__asm__(".weak strchr\t\n" + " .set strchr," RT_NOCRT_STR(strchr) "\t\n"); +#else +/* create a weak alias. */ +extern __typeof(RT_NOCRT(strchr)) strchr __attribute__((weak, alias(RT_NOCRT_STR(strchr)))); +#endif + diff --git a/src/VBox/Runtime/common/string/strcmp.asm b/src/VBox/Runtime/common/string/strcmp.asm new file mode 100644 index 00000000..2d1f82fa --- /dev/null +++ b/src/VBox/Runtime/common/string/strcmp.asm @@ -0,0 +1,101 @@ +; $Id: strcmp.asm $ +;; @file +; IPRT - No-CRT strcmp - AMD64 & X86. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; @param psz1 gcc: rdi msc: rcx x86:[esp+4] wcall: eax +; @param psz2 gcc: rsi msc: rdx x86:[esp+8] wcall: edx +RT_NOCRT_BEGINPROC strcmp + ; input +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + %define psz1 rcx + %define psz2 rdx + %else + %define psz1 rdi + %define psz2 rsi + %endif +%else + %ifdef ASM_CALL32_WATCOM + mov ecx, eax + %else + mov ecx, [esp + 4] + mov edx, [esp + 8] + %endif + %define psz1 ecx + %define psz2 edx +%endif + + ; + ; The loop. + ; +.next: + mov al, [psz1] + mov ah, [psz2] + cmp al, ah + jne .not_equal + test al, al + jz .equal + + mov al, [psz1 + 1] + mov ah, [psz2 + 1] + cmp al, ah + jne .not_equal + test al, al + jz .equal + + mov al, [psz1 + 2] + mov ah, [psz2 + 2] + cmp al, ah + jne .not_equal + test al, al + jz .equal + + mov al, [psz1 + 3] + mov ah, [psz2 + 3] + cmp al, ah + jne .not_equal + test al, al + jz .equal + + add psz1, 4 + add psz2, 4 + jmp .next + +.equal: + xor eax, eax + ret + +.not_equal: + movzx ecx, ah + and eax, 0ffh + sub eax, ecx + ret +ENDPROC RT_NOCRT(strcmp) + diff --git a/src/VBox/Runtime/common/string/strcmp_alias.c b/src/VBox/Runtime/common/string/strcmp_alias.c new file mode 100644 index 00000000..5a83c9aa --- /dev/null +++ b/src/VBox/Runtime/common/string/strcmp_alias.c @@ -0,0 +1,53 @@ +/* $Id: strcmp_alias.c $ */ +/** @file + * IPRT - No-CRT strcmp() alias for gcc. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/nocrt/string.h> +#undef strcmp + +#if defined(RT_OS_DARWIN) || defined(RT_OS_WINDOWS) +# ifndef __MINGW32__ +# pragma weak strcmp +# endif + +/* No alias support here (yet in the ming case). */ +extern int (strcmp)(const char *psz1, const char *psz2) +{ + return RT_NOCRT(strcmp)(psz1, psz2); +} + +#elif __GNUC__ >= 4 +/* create a weak alias. */ +__asm__(".weak strcmp\t\n" + " .set strcmp," RT_NOCRT_STR(strcmp) "\t\n"); +#else +/* create a weak alias. */ +extern __typeof(RT_NOCRT(strcmp)) strcmp __attribute__((weak, alias(RT_NOCRT_STR(strcmp)))); +#endif + diff --git a/src/VBox/Runtime/common/string/strcpy.asm b/src/VBox/Runtime/common/string/strcpy.asm new file mode 100644 index 00000000..9a8324cb --- /dev/null +++ b/src/VBox/Runtime/common/string/strcpy.asm @@ -0,0 +1,93 @@ +; $Id: strcpy.asm $ +;; @file +; IPRT - No-CRT strcpy - AMD64 & X86. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; @param pszDst gcc: rdi msc: rcx x86:[esp+4] wcall:eax +; @param pszSrc gcc: rsi msc: rdx x86:[esp+8] wcall:edx +RT_NOCRT_BEGINPROC strcpy + ; input +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + %define pszDst rcx + %define pszSrc rdx + %else + %define pszDst rdi + %define pszSrc rsi + %endif + mov r8, pszDst +%else + %ifdef ASM_CALL32_WATCOM + mov ecx, eax + %else + mov ecx, [esp + 4] + mov edx, [esp + 8] + %endif + %define pszDst ecx + %define pszSrc edx + push pszDst +%endif + + ; + ; The loop. + ; +.next: + mov al, [pszSrc] + mov [pszDst], al + test al, al + jz .done + + mov al, [pszSrc + 1] + mov [pszDst + 1], al + test al, al + jz .done + + mov al, [pszSrc + 2] + mov [pszDst + 2], al + test al, al + jz .done + + mov al, [pszSrc + 3] + mov [pszDst + 3], al + test al, al + jz .done + + add pszDst, 4 + add pszSrc, 4 + jmp .next + +.done: +%ifdef RT_ARCH_AMD64 + mov rax, r8 +%else + pop eax +%endif + ret +ENDPROC RT_NOCRT(strcpy) + diff --git a/src/VBox/Runtime/common/string/strcpy.cpp b/src/VBox/Runtime/common/string/strcpy.cpp new file mode 100644 index 00000000..58eb3157 --- /dev/null +++ b/src/VBox/Runtime/common/string/strcpy.cpp @@ -0,0 +1,48 @@ +/* $Id: strcpy.cpp $ */ +/** @file + * IPRT - CRT Strings, strcpy(). + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> + + +/** + * Copy a string + * + * @returns Pointer to destination string + * @param pszDst Will contain a copy of pszSrc. + * @param pszSrc Zero terminated string. + */ +char* strcpy(char *pszDst, register const char *pszSrc) +{ + register char *psz = pszDst; + while ((*psz++ = *pszSrc++)) + ; + + return pszDst; +} diff --git a/src/VBox/Runtime/common/string/strcpy_alias.c b/src/VBox/Runtime/common/string/strcpy_alias.c new file mode 100644 index 00000000..9c3a036d --- /dev/null +++ b/src/VBox/Runtime/common/string/strcpy_alias.c @@ -0,0 +1,55 @@ +/* $Id: strcpy_alias.c $ */ +/** @file + * IPRT - No-CRT strcpy() alias for gcc. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/nocrt/string.h> +#undef strcpy + +#if defined(RT_OS_DARWIN) || defined(RT_OS_WINDOWS) +# ifndef __MINGW32__ +# pragma weak strcpy +# endif + +/* No alias support here (yet in the ming case). */ +extern char * (strcpy)(char *psz1, const char *psz2) +{ + return RT_NOCRT(strcpy)(psz1, psz2); +} + +#elif __GNUC__ >= 4 +/* create a weak alias. */ +__asm__(".weak strcpy\t\n" + " .set strcpy," RT_NOCRT_STR(strcpy) "\t\n" + ".global strcpy\t\n" + ); +#else +/* create a weak alias. */ +extern __typeof(RT_NOCRT(strcpy)) strcpy __attribute__((weak, alias(RT_NOCRT_STR(strcpy)))); +#endif + diff --git a/src/VBox/Runtime/common/string/strformat.cpp b/src/VBox/Runtime/common/string/strformat.cpp new file mode 100644 index 00000000..08b67e7a --- /dev/null +++ b/src/VBox/Runtime/common/string/strformat.cpp @@ -0,0 +1,831 @@ +/* $Id: strformat.cpp $ */ +/** @file + * IPRT - String Formatter. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#define LOG_GROUP RTLOGGROUP_STRING +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> +#ifdef IN_RING3 +# include <iprt/alloc.h> +# include <iprt/errcore.h> +# include <iprt/uni.h> +# include <iprt/utf16.h> +#endif +#include <iprt/ctype.h> +#include <iprt/string.h> +#include <iprt/stdarg.h> +#include "internal/string.h" + + + +/** + * Finds the length of a string up to cchMax. + * @returns Length. + * @param psz Pointer to string. + * @param cchMax Max length. + */ +static unsigned _strnlen(const char *psz, unsigned cchMax) +{ + const char *pszC = psz; + + while (cchMax-- > 0 && *psz != '\0') + psz++; + + return (unsigned)(psz - pszC); +} + + +/** + * Finds the length of a string up to cchMax. + * @returns Length. + * @param pwsz Pointer to string. + * @param cchMax Max length. + */ +static unsigned _strnlenUtf16(PCRTUTF16 pwsz, unsigned cchMax) +{ +#ifdef IN_RING3 + unsigned cwc = 0; + while (cchMax-- > 0) + { + RTUNICP cp; + int rc = RTUtf16GetCpEx(&pwsz, &cp); + AssertRC(rc); + if (RT_FAILURE(rc) || !cp) + break; + cwc++; + } + return cwc; +#else /* !IN_RING3 */ + PCRTUTF16 pwszC = pwsz; + + while (cchMax-- > 0 && *pwsz != '\0') + pwsz++; + + return (unsigned)(pwsz - pwszC); +#endif /* !IN_RING3 */ +} + + +/** + * Finds the length of a string up to cchMax. + * @returns Length. + * @param pusz Pointer to string. + * @param cchMax Max length. + */ +static unsigned _strnlenUni(PCRTUNICP pusz, unsigned cchMax) +{ + PCRTUNICP puszC = pusz; + + while (cchMax-- > 0 && *pusz != '\0') + pusz++; + + return (unsigned)(pusz - puszC); +} + + +/** + * Formats an integer number according to the parameters. + * + * @returns Length of the number. + * @param psz Pointer to output string. + * @param u64Value Value. + * @param uiBase Number representation base. + * @param cchWidth Width + * @param cchPrecision Precision. + * @param fFlags Flags (NTFS_*). + */ +RTDECL(int) RTStrFormatNumber(char *psz, uint64_t u64Value, unsigned int uiBase, signed int cchWidth, signed int cchPrecision, + unsigned int fFlags) +{ + const char *pachDigits = "0123456789abcdef"; + char *pszStart = psz; + int cchMax; + int cchValue; + int i; + int j; + char chSign; + + /* + * Validate and adjust input... + */ + Assert(uiBase >= 2 && uiBase <= 16); + if (fFlags & RTSTR_F_CAPITAL) + pachDigits = "0123456789ABCDEF"; + if (fFlags & RTSTR_F_LEFT) + fFlags &= ~RTSTR_F_ZEROPAD; + if ( (fFlags & RTSTR_F_THOUSAND_SEP) + && ( uiBase != 10 + || (fFlags & RTSTR_F_ZEROPAD))) /** @todo implement RTSTR_F_ZEROPAD + RTSTR_F_THOUSAND_SEP. */ + fFlags &= ~RTSTR_F_THOUSAND_SEP; + + /* + * Determine value length and sign. Converts the u64Value to unsigned. + */ + cchValue = 0; + chSign = '\0'; + if ((fFlags & RTSTR_F_64BIT) || (u64Value & UINT64_C(0xffffffff00000000))) + { + uint64_t u64; + if (!(fFlags & RTSTR_F_VALSIGNED) || !(u64Value & RT_BIT_64(63))) + u64 = u64Value; + else if (u64Value != RT_BIT_64(63)) + { + chSign = '-'; + u64 = u64Value = -(int64_t)u64Value; + } + else + { + chSign = '-'; + u64 = u64Value = RT_BIT_64(63); + } + do + { + cchValue++; + u64 /= uiBase; + } while (u64); + } + else + { + uint32_t u32 = (uint32_t)u64Value; + if (!(fFlags & RTSTR_F_VALSIGNED) || !(u32 & UINT32_C(0x80000000))) + { /* likley */ } + else if (u32 != UINT32_C(0x80000000)) + { + chSign = '-'; + u64Value = u32 = -(int32_t)u32; + } + else + { + chSign = '-'; + u64Value = u32 = UINT32_C(0x80000000); + } + do + { + cchValue++; + u32 /= uiBase; + } while (u32); + } + if (fFlags & RTSTR_F_THOUSAND_SEP) + { + if (cchValue <= 3) + fFlags &= ~RTSTR_F_THOUSAND_SEP; + else + cchValue += cchValue / 3 - (cchValue % 3 == 0); + } + + /* + * Sign (+/-). + */ + i = 0; + if (fFlags & RTSTR_F_VALSIGNED) + { + if (chSign != '\0') + psz[i++] = chSign; + else if (fFlags & (RTSTR_F_PLUS | RTSTR_F_BLANK)) + psz[i++] = (char)(fFlags & RTSTR_F_PLUS ? '+' : ' '); + } + + /* + * Special (0/0x). + */ + if ((fFlags & RTSTR_F_SPECIAL) && (uiBase % 8) == 0) + { + psz[i++] = '0'; + if (uiBase == 16) + psz[i++] = (char)(fFlags & RTSTR_F_CAPITAL ? 'X' : 'x'); + } + + /* + * width - only if ZEROPAD + */ + cchMax = 64 - (cchValue + i + 1); /* HACK! 64 bytes seems to be the usual buffer size... */ + cchWidth -= i + cchValue; + if (fFlags & RTSTR_F_ZEROPAD) + while (--cchWidth >= 0 && i < cchMax) + { + AssertBreak(i < cchMax); + psz[i++] = '0'; + cchPrecision--; + } + else if (!(fFlags & RTSTR_F_LEFT) && cchWidth > 0) + { + AssertStmt(cchWidth < cchMax, cchWidth = cchMax - 1); + for (j = i - 1; j >= 0; j--) + psz[cchWidth + j] = psz[j]; + for (j = 0; j < cchWidth; j++) + psz[j] = ' '; + i += cchWidth; + } + + /* + * precision + */ + while (--cchPrecision >= cchValue) + { + AssertBreak(i < cchMax); + psz[i++] = '0'; + } + + psz += i; + + /* + * write number - not good enough but it works + */ + psz += cchValue; + i = -1; + if ((fFlags & RTSTR_F_64BIT) || (u64Value & UINT64_C(0xffffffff00000000))) + { + uint64_t u64 = u64Value; + if (fFlags & RTSTR_F_THOUSAND_SEP) + { + do + { + if ((-i - 1) % 4 == 3) + psz[i--] = ' '; + psz[i--] = pachDigits[u64 % uiBase]; + u64 /= uiBase; + } while (u64); + } + else + { + do + { + psz[i--] = pachDigits[u64 % uiBase]; + u64 /= uiBase; + } while (u64); + } + } + else + { + uint32_t u32 = (uint32_t)u64Value; + if (fFlags & RTSTR_F_THOUSAND_SEP) + { + do + { + if ((-i - 1) % 4 == 3) + psz[i--] = ' '; + psz[i--] = pachDigits[u32 % uiBase]; + u32 /= uiBase; + } while (u32); + } + else + { + do + { + psz[i--] = pachDigits[u32 % uiBase]; + u32 /= uiBase; + } while (u32); + } + } + + /* + * width if RTSTR_F_LEFT + */ + if (fFlags & RTSTR_F_LEFT) + while (--cchWidth >= 0) + *psz++ = ' '; + + *psz = '\0'; + return (unsigned)(psz - pszStart); +} +RT_EXPORT_SYMBOL(RTStrFormatNumber); + + +/** + * Partial implementation of a printf like formatter. + * It doesn't do everything correct, and there is no floating point support. + * However, it supports custom formats by the means of a format callback. + * + * @returns number of bytes formatted. + * @param pfnOutput Output worker. + * Called in two ways. Normally with a string an it's length. + * For termination, it's called with NULL for string, 0 for length. + * @param pvArgOutput Argument to the output worker. + * @param pfnFormat Custom format worker. + * @param pvArgFormat Argument to the format worker. + * @param pszFormat Format string. + * @param InArgs Argument list. + */ +RTDECL(size_t) RTStrFormatV(PFNRTSTROUTPUT pfnOutput, void *pvArgOutput, PFNSTRFORMAT pfnFormat, void *pvArgFormat, + const char *pszFormat, va_list InArgs) +{ + char szTmp[64]; /* Worker functions assumes 64 byte buffer! Ugly but faster. */ + va_list args; + size_t cch = 0; + const char *pszStartOutput = pszFormat; + + va_copy(args, InArgs); /* make a copy so we can reference it (AMD64 / gcc). */ + + while (*pszFormat != '\0') + { + if (*pszFormat == '%') + { + /* output pending string. */ + if (pszStartOutput != pszFormat) + cch += pfnOutput(pvArgOutput, pszStartOutput, pszFormat - pszStartOutput); + + /* skip '%' */ + pszFormat++; + if (*pszFormat == '%') /* '%%'-> '%' */ + pszStartOutput = pszFormat++; + else + { + unsigned int fFlags = 0; + int cchWidth = -1; + int cchPrecision = -1; + unsigned int uBase = 10; + char chArgSize; + + /* flags */ + for (;;) + { + switch (*pszFormat++) + { + case '#': fFlags |= RTSTR_F_SPECIAL; continue; + case '-': fFlags |= RTSTR_F_LEFT; continue; + case '+': fFlags |= RTSTR_F_PLUS; continue; + case ' ': fFlags |= RTSTR_F_BLANK; continue; + case '0': fFlags |= RTSTR_F_ZEROPAD; continue; + case '\'': fFlags |= RTSTR_F_THOUSAND_SEP; continue; + } + pszFormat--; + break; + } + + /* width */ + if (RT_C_IS_DIGIT(*pszFormat)) + { + for (cchWidth = 0; RT_C_IS_DIGIT(*pszFormat); pszFormat++) + { + cchWidth *= 10; + cchWidth += *pszFormat - '0'; + } + fFlags |= RTSTR_F_WIDTH; + } + else if (*pszFormat == '*') + { + pszFormat++; + cchWidth = va_arg(args, int); + if (cchWidth < 0) + { + cchWidth = -cchWidth; + fFlags |= RTSTR_F_LEFT; + } + fFlags |= RTSTR_F_WIDTH; + } + + /* precision */ + if (*pszFormat == '.') + { + pszFormat++; + if (RT_C_IS_DIGIT(*pszFormat)) + { + for (cchPrecision = 0; RT_C_IS_DIGIT(*pszFormat); pszFormat++) + { + cchPrecision *= 10; + cchPrecision += *pszFormat - '0'; + } + + } + else if (*pszFormat == '*') + { + pszFormat++; + cchPrecision = va_arg(args, int); + } + if (cchPrecision < 0) + cchPrecision = 0; + fFlags |= RTSTR_F_PRECISION; + } + + /* + * Argument size. + */ + chArgSize = *pszFormat; + switch (chArgSize) + { + default: + chArgSize = 0; + break; + + case 'z': + case 'L': + case 'j': + case 't': + pszFormat++; + break; + + case 'l': + pszFormat++; + if (*pszFormat == 'l') + { + chArgSize = 'L'; + pszFormat++; + } + break; + + case 'h': + pszFormat++; + if (*pszFormat == 'h') + { + chArgSize = 'H'; + pszFormat++; + } + break; + + case 'I': /* Used by Win32/64 compilers. */ + if ( pszFormat[1] == '6' + && pszFormat[2] == '4') + { + pszFormat += 3; + chArgSize = 'L'; + } + else if ( pszFormat[1] == '3' + && pszFormat[2] == '2') + { + pszFormat += 3; + chArgSize = 0; + } + else + { + pszFormat += 1; + chArgSize = 'j'; + } + break; + + case 'q': /* Used on BSD platforms. */ + pszFormat++; + chArgSize = 'L'; + break; + } + + /* + * The type. + */ + switch (*pszFormat++) + { + /* char */ + case 'c': + { + if (!(fFlags & RTSTR_F_LEFT)) + while (--cchWidth > 0) + cch += pfnOutput(pvArgOutput, " ", 1); + + szTmp[0] = (char)va_arg(args, int); + szTmp[1] = '\0'; /* Some output functions wants terminated strings. */ + cch += pfnOutput(pvArgOutput, &szTmp[0], 1); + + while (--cchWidth > 0) + cch += pfnOutput(pvArgOutput, " ", 1); + break; + } + + case 'S': /* Legacy, conversion done by streams now. */ + case 's': + { + if (chArgSize == 'l') + { + /* utf-16 -> utf-8 */ + int cchStr; + PCRTUTF16 pwszStr = va_arg(args, PRTUTF16); + + if (!VALID_PTR(pwszStr)) + { + static RTUTF16 s_wszNull[] = {'<', 'N', 'U', 'L', 'L', '>', '\0' }; + pwszStr = s_wszNull; + } + cchStr = _strnlenUtf16(pwszStr, (unsigned)cchPrecision); + if (!(fFlags & RTSTR_F_LEFT)) + while (--cchWidth >= cchStr) + cch += pfnOutput(pvArgOutput, " ", 1); + cchWidth -= cchStr; + while (cchStr-- > 0) + { +/** @todo \#ifndef IN_RC*/ +#ifdef IN_RING3 + RTUNICP Cp; + RTUtf16GetCpEx(&pwszStr, &Cp); + char *pszEnd = RTStrPutCp(szTmp, Cp); + *pszEnd = '\0'; + cch += pfnOutput(pvArgOutput, szTmp, pszEnd - szTmp); +#else + char ch = (char)*pwszStr++; + cch += pfnOutput(pvArgOutput, &ch, 1); +#endif + } + while (--cchWidth >= 0) + cch += pfnOutput(pvArgOutput, " ", 1); + } + else if (chArgSize == 'L') + { + /* unicp -> utf8 */ + int cchStr; + PCRTUNICP puszStr = va_arg(args, PCRTUNICP); + + if (!VALID_PTR(puszStr)) + { + static RTUNICP s_uszNull[] = {'<', 'N', 'U', 'L', 'L', '>', '\0' }; + puszStr = s_uszNull; + } + cchStr = _strnlenUni(puszStr, (unsigned)cchPrecision); + if (!(fFlags & RTSTR_F_LEFT)) + while (--cchWidth >= cchStr) + cch += pfnOutput(pvArgOutput, " ", 1); + + cchWidth -= cchStr; + while (cchStr-- > 0) + { +/** @todo \#ifndef IN_RC*/ +#ifdef IN_RING3 + char *pszEnd = RTStrPutCp(szTmp, *puszStr++); + cch += pfnOutput(pvArgOutput, szTmp, pszEnd - szTmp); +#else + char ch = (char)*puszStr++; + cch += pfnOutput(pvArgOutput, &ch, 1); +#endif + } + while (--cchWidth >= 0) + cch += pfnOutput(pvArgOutput, " ", 1); + } + else + { + int cchStr; + const char *pszStr = va_arg(args, char*); + + if (!VALID_PTR(pszStr)) + pszStr = "<NULL>"; + cchStr = _strnlen(pszStr, (unsigned)cchPrecision); + if (!(fFlags & RTSTR_F_LEFT)) + while (--cchWidth >= cchStr) + cch += pfnOutput(pvArgOutput, " ", 1); + + cch += pfnOutput(pvArgOutput, pszStr, cchStr); + + while (--cchWidth >= cchStr) + cch += pfnOutput(pvArgOutput, " ", 1); + } + break; + } + + /*-----------------*/ + /* integer/pointer */ + /*-----------------*/ + case 'd': + case 'i': + case 'o': + case 'p': + case 'u': + case 'x': + case 'X': + { + int cchNum; + uint64_t u64Value; + + switch (pszFormat[-1]) + { + case 'd': /* signed decimal integer */ + case 'i': + fFlags |= RTSTR_F_VALSIGNED; + break; + + case 'o': + uBase = 8; + break; + + case 'p': + fFlags |= RTSTR_F_ZEROPAD; /* Note not standard behaviour (but I like it this way!) */ + uBase = 16; + if (cchWidth < 0) + cchWidth = sizeof(char *) * 2; + break; + + case 'u': + uBase = 10; + break; + + case 'X': + fFlags |= RTSTR_F_CAPITAL; + RT_FALL_THRU(); + case 'x': + uBase = 16; + break; + } + + if (pszFormat[-1] == 'p') + u64Value = va_arg(args, uintptr_t); + else if (fFlags & RTSTR_F_VALSIGNED) + { + if (chArgSize == 'L') + { + u64Value = va_arg(args, int64_t); + fFlags |= RTSTR_F_64BIT; + } + else if (chArgSize == 'l') + { + u64Value = va_arg(args, signed long); + fFlags |= RTSTR_GET_BIT_FLAG(unsigned long); + } + else if (chArgSize == 'h') + { + u64Value = va_arg(args, /* signed short */ int); + fFlags |= RTSTR_GET_BIT_FLAG(signed short); + } + else if (chArgSize == 'H') + { + u64Value = va_arg(args, /* int8_t */ int); + fFlags |= RTSTR_GET_BIT_FLAG(int8_t); + } + else if (chArgSize == 'j') + { + u64Value = va_arg(args, /*intmax_t*/ int64_t); + fFlags |= RTSTR_F_64BIT; + } + else if (chArgSize == 'z') + { + u64Value = va_arg(args, size_t); + fFlags |= RTSTR_GET_BIT_FLAG(size_t); + } + else if (chArgSize == 't') + { + u64Value = va_arg(args, ptrdiff_t); + fFlags |= RTSTR_GET_BIT_FLAG(ptrdiff_t); + } + else + { + u64Value = va_arg(args, signed int); + fFlags |= RTSTR_GET_BIT_FLAG(signed int); + } + } + else + { + if (chArgSize == 'L') + { + u64Value = va_arg(args, uint64_t); + fFlags |= RTSTR_F_64BIT; + } + else if (chArgSize == 'l') + { + u64Value = va_arg(args, unsigned long); + fFlags |= RTSTR_GET_BIT_FLAG(unsigned long); + } + else if (chArgSize == 'h') + { + u64Value = va_arg(args, /* unsigned short */ int); + fFlags |= RTSTR_GET_BIT_FLAG(unsigned short); + } + else if (chArgSize == 'H') + { + u64Value = va_arg(args, /* uint8_t */ int); + fFlags |= RTSTR_GET_BIT_FLAG(uint8_t); + } + else if (chArgSize == 'j') + { + u64Value = va_arg(args, /*uintmax_t*/ int64_t); + fFlags |= RTSTR_F_64BIT; + } + else if (chArgSize == 'z') + { + u64Value = va_arg(args, size_t); + fFlags |= RTSTR_GET_BIT_FLAG(size_t); + } + else if (chArgSize == 't') + { + u64Value = va_arg(args, ptrdiff_t); + fFlags |= RTSTR_GET_BIT_FLAG(ptrdiff_t); + } + else + { + u64Value = va_arg(args, unsigned int); + fFlags |= RTSTR_GET_BIT_FLAG(unsigned int); + } + } + cchNum = RTStrFormatNumber((char *)&szTmp, u64Value, uBase, cchWidth, cchPrecision, fFlags); + cch += pfnOutput(pvArgOutput, (char *)&szTmp, cchNum); + break; + } + + /* + * Nested extensions. + */ + case 'M': /* replace the format string (not stacked yet). */ + { + pszStartOutput = pszFormat = va_arg(args, const char *); + AssertPtr(pszStartOutput); + break; + } + + case 'N': /* real nesting. */ + { + const char *pszFormatNested = va_arg(args, const char *); + va_list *pArgsNested = va_arg(args, va_list *); + va_list ArgsNested; + va_copy(ArgsNested, *pArgsNested); + Assert(pszFormatNested); + cch += RTStrFormatV(pfnOutput, pvArgOutput, pfnFormat, pvArgFormat, pszFormatNested, ArgsNested); + va_end(ArgsNested); + break; + } + + /* + * IPRT Extensions. + */ + case 'R': + { + if (*pszFormat != '[') + { + pszFormat--; + cch += rtstrFormatRt(pfnOutput, pvArgOutput, &pszFormat, &args, cchWidth, cchPrecision, fFlags, chArgSize); + } + else + { + pszFormat--; + cch += rtstrFormatType(pfnOutput, pvArgOutput, &pszFormat, &args, cchWidth, cchPrecision, fFlags, chArgSize); + } + break; + } + + /* + * Custom format. + */ + default: + { + if (pfnFormat) + { + pszFormat--; + cch += pfnFormat(pvArgFormat, pfnOutput, pvArgOutput, &pszFormat, &args, cchWidth, cchPrecision, fFlags, chArgSize); + } + break; + } + } + pszStartOutput = pszFormat; + } + } + else + pszFormat++; + } + + /* output pending string. */ + if (pszStartOutput != pszFormat) + cch += pfnOutput(pvArgOutput, pszStartOutput, pszFormat - pszStartOutput); + + /* terminate the output */ + pfnOutput(pvArgOutput, NULL, 0); + + return cch; +} +RT_EXPORT_SYMBOL(RTStrFormatV); + + +/** + * Partial implementation of a printf like formatter. + * It doesn't do everything correct, and there is no floating point support. + * However, it supports custom formats by the means of a format callback. + * + * @returns number of bytes formatted. + * @param pfnOutput Output worker. + * Called in two ways. Normally with a string an it's length. + * For termination, it's called with NULL for string, 0 for length. + * @param pvArgOutput Argument to the output worker. + * @param pfnFormat Custom format worker. + * @param pvArgFormat Argument to the format worker. + * @param pszFormat Format string. + * @param ... Argument list. + */ +RTDECL(size_t) RTStrFormat(PFNRTSTROUTPUT pfnOutput, void *pvArgOutput, PFNSTRFORMAT pfnFormat, void *pvArgFormat, const char *pszFormat, ...) +{ + size_t cch; + va_list args; + va_start(args, pszFormat); + cch = RTStrFormatV(pfnOutput, pvArgOutput, pfnFormat, pvArgFormat, pszFormat, args); + va_end(args); + return cch; +} +RT_EXPORT_SYMBOL(RTStrFormat); + diff --git a/src/VBox/Runtime/common/string/strformatnum.cpp b/src/VBox/Runtime/common/string/strformatnum.cpp new file mode 100644 index 00000000..6d9c03c2 --- /dev/null +++ b/src/VBox/Runtime/common/string/strformatnum.cpp @@ -0,0 +1,351 @@ +/* $Id: strformatnum.cpp $ */ +/** @file + * IPRT - String Formatter, Single Numbers. + */ + +/* + * Copyright (C) 2010-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#define LOG_GROUP RTLOGGROUP_STRING +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> +#include <iprt/errcore.h> +#include "internal/string.h" + + +RTDECL(ssize_t) RTStrFormatU8(char *pszBuf, size_t cbBuf, uint8_t u8Value, unsigned int uiBase, + signed int cchWidth, signed int cchPrecision, uint32_t fFlags) +{ + fFlags &= ~RTSTR_F_BIT_MASK; + fFlags |= RTSTR_F_8BIT; + + ssize_t cchRet; + if (cbBuf >= 64) + cchRet = RTStrFormatNumber(pszBuf, u8Value, uiBase, cchWidth, cchPrecision, fFlags); + else + { + char szTmp[64]; + cchRet = RTStrFormatNumber(szTmp, u8Value, uiBase, cchWidth, cchPrecision, fFlags); + if ((size_t)cchRet < cbBuf) + memcpy(pszBuf, szTmp, cchRet + 1); + else + { + if (cbBuf) + { + memcpy(pszBuf, szTmp, cbBuf - 1); + pszBuf[cbBuf - 1] = '\0'; + } + cchRet = VERR_BUFFER_OVERFLOW; + } + } + return cchRet; +} + + +RTDECL(ssize_t) RTStrFormatU16(char *pszBuf, size_t cbBuf, uint16_t u16Value, unsigned int uiBase, + signed int cchWidth, signed int cchPrecision, uint32_t fFlags) +{ + fFlags &= ~RTSTR_F_BIT_MASK; + fFlags |= RTSTR_F_16BIT; + + ssize_t cchRet; + if (cbBuf >= 64) + cchRet = RTStrFormatNumber(pszBuf, u16Value, uiBase, cchWidth, cchPrecision, fFlags); + else + { + char szTmp[64]; + cchRet = RTStrFormatNumber(szTmp, u16Value, uiBase, cchWidth, cchPrecision, fFlags); + if ((size_t)cchRet <= cbBuf) + memcpy(pszBuf, szTmp, cchRet + 1); + else + { + if (cbBuf) + { + memcpy(pszBuf, szTmp, cbBuf - 1); + pszBuf[cbBuf - 1] = '\0'; + } + cchRet = VERR_BUFFER_OVERFLOW; + } + } + return cchRet; +} + + +RTDECL(ssize_t) RTStrFormatU32(char *pszBuf, size_t cbBuf, uint32_t u32Value, unsigned int uiBase, + signed int cchWidth, signed int cchPrecision, uint32_t fFlags) +{ + fFlags &= ~RTSTR_F_BIT_MASK; + fFlags |= RTSTR_F_32BIT; + + ssize_t cchRet; + if (cbBuf >= 64) + cchRet = RTStrFormatNumber(pszBuf, u32Value, uiBase, cchWidth, cchPrecision, fFlags); + else + { + char szTmp[64]; + cchRet = RTStrFormatNumber(szTmp, u32Value, uiBase, cchWidth, cchPrecision, fFlags); + if ((size_t)cchRet <= cbBuf) + memcpy(pszBuf, szTmp, cchRet + 1); + else + { + if (cbBuf) + { + memcpy(pszBuf, szTmp, cbBuf - 1); + pszBuf[cbBuf - 1] = '\0'; + } + cchRet = VERR_BUFFER_OVERFLOW; + } + } + return cchRet; +} + + +RTDECL(ssize_t) RTStrFormatU64(char *pszBuf, size_t cbBuf, uint64_t u64Value, unsigned int uiBase, + signed int cchWidth, signed int cchPrecision, uint32_t fFlags) +{ + fFlags &= ~RTSTR_F_BIT_MASK; + fFlags |= RTSTR_F_64BIT; + + ssize_t cchRet; + if (cbBuf >= 64) + cchRet = RTStrFormatNumber(pszBuf, u64Value, uiBase, cchWidth, cchPrecision, fFlags); + else + { + char szTmp[64]; + cchRet = RTStrFormatNumber(szTmp, u64Value, uiBase, cchWidth, cchPrecision, fFlags); + if ((size_t)cchRet <= cbBuf) + memcpy(pszBuf, szTmp, cchRet + 1); + else + { + if (cbBuf) + { + memcpy(pszBuf, szTmp, cbBuf - 1); + pszBuf[cbBuf - 1] = '\0'; + } + cchRet = VERR_BUFFER_OVERFLOW; + } + } + return cchRet; +} + + +RTDECL(ssize_t) RTStrFormatU128(char *pszBuf, size_t cbBuf, PCRTUINT128U pu128, unsigned int uiBase, + signed int cchWidth, signed int cchPrecision, uint32_t fFlags) +{ + NOREF(cchWidth); NOREF(cchPrecision); + if (uiBase != 16) + fFlags |= RTSTR_F_SPECIAL; + fFlags &= ~RTSTR_F_BIT_MASK; + + char szTmp[64+32+32+32]; + char *pszTmp = cbBuf >= sizeof(szTmp) ? pszBuf : szTmp; + size_t cchResult = RTStrFormatNumber(pszTmp, pu128->QWords.qw1, 16, 0, 0, fFlags | RTSTR_F_64BIT); + cchResult += RTStrFormatNumber(&pszTmp[cchResult], pu128->QWords.qw0, 16, 8, 0, + (fFlags | RTSTR_F_64BIT | RTSTR_F_ZEROPAD) & ~RTSTR_F_SPECIAL); + if (pszTmp == pszBuf) + return cchResult; + int rc = RTStrCopy(pszBuf, cbBuf, pszTmp); + if (RT_SUCCESS(rc)) + return cchResult; + return rc; +} + + +RTDECL(ssize_t) RTStrFormatU256(char *pszBuf, size_t cbBuf, PCRTUINT256U pu256, unsigned int uiBase, + signed int cchWidth, signed int cchPrecision, uint32_t fFlags) +{ + NOREF(cchWidth); NOREF(cchPrecision); + if (uiBase != 16) + fFlags |= RTSTR_F_SPECIAL; + fFlags &= ~RTSTR_F_BIT_MASK; + + char szTmp[64+32+32+32]; + char *pszTmp = cbBuf >= sizeof(szTmp) ? pszBuf : szTmp; + size_t cchResult = RTStrFormatNumber(pszTmp, pu256->QWords.qw3, 16, 0, 0, fFlags | RTSTR_F_64BIT); + cchResult += RTStrFormatNumber(&pszTmp[cchResult], pu256->QWords.qw2, 16, 8, 0, + (fFlags | RTSTR_F_64BIT | RTSTR_F_ZEROPAD) & ~RTSTR_F_SPECIAL); + cchResult += RTStrFormatNumber(&pszTmp[cchResult], pu256->QWords.qw1, 16, 8, 0, + (fFlags | RTSTR_F_64BIT | RTSTR_F_ZEROPAD) & ~RTSTR_F_SPECIAL); + cchResult += RTStrFormatNumber(&pszTmp[cchResult], pu256->QWords.qw0, 16, 8, 0, + (fFlags | RTSTR_F_64BIT | RTSTR_F_ZEROPAD) & ~RTSTR_F_SPECIAL); + if (pszTmp == pszBuf) + return cchResult; + int rc = RTStrCopy(pszBuf, cbBuf, pszTmp); + if (RT_SUCCESS(rc)) + return cchResult; + return rc; +} + + +RTDECL(ssize_t) RTStrFormatU512(char *pszBuf, size_t cbBuf, PCRTUINT512U pu512, unsigned int uiBase, + signed int cchWidth, signed int cchPrecision, uint32_t fFlags) +{ + NOREF(cchWidth); NOREF(cchPrecision); + if (uiBase != 16) + fFlags |= RTSTR_F_SPECIAL; + fFlags &= ~RTSTR_F_BIT_MASK; + + char szTmp[64+32+32+32 + 32+32+32+32]; + char *pszTmp = cbBuf >= sizeof(szTmp) ? pszBuf : szTmp; + size_t cchResult = RTStrFormatNumber(pszTmp, pu512->QWords.qw7, 16, 0, 0, fFlags | RTSTR_F_64BIT); + cchResult += RTStrFormatNumber(&pszTmp[cchResult], pu512->QWords.qw6, 16, 8, 0, + (fFlags | RTSTR_F_64BIT | RTSTR_F_ZEROPAD) & ~RTSTR_F_SPECIAL); + cchResult += RTStrFormatNumber(&pszTmp[cchResult], pu512->QWords.qw5, 16, 8, 0, + (fFlags | RTSTR_F_64BIT | RTSTR_F_ZEROPAD) & ~RTSTR_F_SPECIAL); + cchResult += RTStrFormatNumber(&pszTmp[cchResult], pu512->QWords.qw4, 16, 8, 0, + (fFlags | RTSTR_F_64BIT | RTSTR_F_ZEROPAD) & ~RTSTR_F_SPECIAL); + cchResult += RTStrFormatNumber(&pszTmp[cchResult], pu512->QWords.qw3, 16, 8, 0, + (fFlags | RTSTR_F_64BIT | RTSTR_F_ZEROPAD) & ~RTSTR_F_SPECIAL); + cchResult += RTStrFormatNumber(&pszTmp[cchResult], pu512->QWords.qw2, 16, 8, 0, + (fFlags | RTSTR_F_64BIT | RTSTR_F_ZEROPAD) & ~RTSTR_F_SPECIAL); + cchResult += RTStrFormatNumber(&pszTmp[cchResult], pu512->QWords.qw1, 16, 8, 0, + (fFlags | RTSTR_F_64BIT | RTSTR_F_ZEROPAD) & ~RTSTR_F_SPECIAL); + cchResult += RTStrFormatNumber(&pszTmp[cchResult], pu512->QWords.qw0, 16, 8, 0, + (fFlags | RTSTR_F_64BIT | RTSTR_F_ZEROPAD) & ~RTSTR_F_SPECIAL); + if (pszTmp == pszBuf) + return cchResult; + int rc = RTStrCopy(pszBuf, cbBuf, pszTmp); + if (RT_SUCCESS(rc)) + return cchResult; + return rc; +} + + +RTDECL(ssize_t) RTStrFormatR80u2(char *pszBuf, size_t cbBuf, PCRTFLOAT80U2 pr80Value, signed int cchWidth, + signed int cchPrecision, uint32_t fFlags) +{ + NOREF(cchWidth); NOREF(cchPrecision); NOREF(fFlags); + char szTmp[160]; + + char *pszTmp = szTmp; + if (pr80Value->s.fSign) + *pszTmp++ = '-'; + else + *pszTmp++ = '+'; + + if (pr80Value->s.uExponent == 0) + { +#ifdef RT_COMPILER_GROKS_64BIT_BITFIELDS + if ( !pr80Value->sj64.u63Fraction + && pr80Value->sj64.fInteger) +#else + if ( !pr80Value->sj.u32FractionLow + && !pr80Value->sj.u31FractionHigh + && pr80Value->sj.fInteger) +#endif + *pszTmp++ = '0'; + /* else: Denormal, handled way below. */ + } +#ifdef RT_COMPILER_GROKS_64BIT_BITFIELDS + else if (pr80Value->sj64.uExponent == UINT16_C(0x7fff)) +#else + else if (pr80Value->sj.uExponent == UINT16_C(0x7fff)) +#endif + { + /** @todo Figure out Pseudo inf/nan... */ +#ifdef RT_COMPILER_GROKS_64BIT_BITFIELDS + if (pr80Value->sj64.fInteger) +#else + if (pr80Value->sj.fInteger) +#endif + *pszTmp++ = 'P'; +#ifdef RT_COMPILER_GROKS_64BIT_BITFIELDS + if (pr80Value->sj64.u63Fraction == 0) +#else + if ( pr80Value->sj.u32FractionLow == 0 + && pr80Value->sj.u31FractionHigh == 0) +#endif + { + *pszTmp++ = 'I'; + *pszTmp++ = 'n'; + *pszTmp++ = 'f'; + } + else + { + *pszTmp++ = 'N'; + *pszTmp++ = 'a'; + *pszTmp++ = 'N'; + } + } + if (pszTmp != &szTmp[1]) + *pszTmp = '\0'; + else + { +#ifdef RT_COMPILER_GROKS_64BIT_BITFIELDS + *pszTmp++ = pr80Value->sj64.fInteger ? '1' : '0'; +#else + *pszTmp++ = pr80Value->sj.fInteger ? '1' : '0'; +#endif + *pszTmp++ = 'm'; +#ifdef RT_COMPILER_GROKS_64BIT_BITFIELDS + pszTmp += RTStrFormatNumber(pszTmp, pr80Value->sj64.u63Fraction, 16, 2+16, 0, + RTSTR_F_SPECIAL | RTSTR_F_ZEROPAD | RTSTR_F_64BIT); +#else + pszTmp += RTStrFormatNumber(pszTmp, RT_MAKE_U64(pr80Value->sj.u32FractionLow, pr80Value->sj.u31FractionHigh), 16, 2+16, 0, + RTSTR_F_SPECIAL | RTSTR_F_ZEROPAD | RTSTR_F_64BIT); +#endif + + *pszTmp++ = 'e'; +#ifdef RT_COMPILER_GROKS_64BIT_BITFIELDS + pszTmp += RTStrFormatNumber(pszTmp, (int32_t)pr80Value->sj64.uExponent - 16383, 10, 0, 0, + RTSTR_F_ZEROPAD | RTSTR_F_32BIT | RTSTR_F_VALSIGNED); +#else + pszTmp += RTStrFormatNumber(pszTmp, (int32_t)pr80Value->sj.uExponent - 16383, 10, 0, 0, + RTSTR_F_ZEROPAD | RTSTR_F_32BIT | RTSTR_F_VALSIGNED); +#endif + } + + /* + * Copy out the result. + */ + ssize_t cchRet = pszTmp - &szTmp[0]; + if ((size_t)cchRet <= cbBuf) + memcpy(pszBuf, szTmp, cchRet + 1); + else + { + if (cbBuf) + { + memcpy(pszBuf, szTmp, cbBuf - 1); + pszBuf[cbBuf - 1] = '\0'; + } + cchRet = VERR_BUFFER_OVERFLOW; + } + return cchRet; +} + + +RTDECL(ssize_t) RTStrFormatR80(char *pszBuf, size_t cbBuf, PCRTFLOAT80U pr80Value, signed int cchWidth, + signed int cchPrecision, uint32_t fFlags) +{ + RTFLOAT80U2 r80ValueU2; + RT_ZERO(r80ValueU2); + r80ValueU2.s.fSign = pr80Value->s.fSign; + r80ValueU2.s.uExponent = pr80Value->s.uExponent; + r80ValueU2.s.u64Mantissa = pr80Value->s.u64Mantissa; + return RTStrFormatR80u2(pszBuf, cbBuf, &r80ValueU2, cchWidth, cchPrecision, fFlags); +} + diff --git a/src/VBox/Runtime/common/string/strformatrt.cpp b/src/VBox/Runtime/common/string/strformatrt.cpp new file mode 100644 index 00000000..a23da826 --- /dev/null +++ b/src/VBox/Runtime/common/string/strformatrt.cpp @@ -0,0 +1,1647 @@ +/* $Id: strformatrt.cpp $ */ +/** @file + * IPRT - IPRT String Formatter Extensions. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#define LOG_GROUP RTLOGGROUP_STRING +#include <iprt/string.h> +#ifndef RT_NO_EXPORT_SYMBOL +# define RT_NO_EXPORT_SYMBOL /* don't slurp <linux/module.h> which then again + slurps arch-specific headers defining symbols */ +#endif +#include "internal/iprt.h" + +#include <iprt/log.h> +#include <iprt/assert.h> +#include <iprt/string.h> +#include <iprt/stdarg.h> +#ifdef IN_RING3 +# include <iprt/errcore.h> +# include <iprt/thread.h> +# include <iprt/utf16.h> +#endif +#include <iprt/ctype.h> +#include <iprt/time.h> +#include <iprt/net.h> +#include <iprt/path.h> +#include <iprt/asm.h> +#define STRFORMAT_WITH_X86 +#ifdef STRFORMAT_WITH_X86 +# include <iprt/x86.h> +#endif +#include "internal/string.h" + + +/********************************************************************************************************************************* +* Global Variables * +*********************************************************************************************************************************/ +static char g_szHexDigits[17] = "0123456789abcdef"; +#ifdef IN_RING3 +static char g_szHexDigitsUpper[17] = "0123456789ABCDEF"; +#endif + + +/** + * Helper that formats a 16-bit hex word in a IPv6 address. + * + * @returns Length in chars. + * @param pszDst The output buffer. Written from the start. + * @param uWord The word to format as hex. + */ +static size_t rtstrFormatIPv6HexWord(char *pszDst, uint16_t uWord) +{ + size_t off; + uint16_t cDigits; + + if (uWord & UINT16_C(0xff00)) + cDigits = uWord & UINT16_C(0xf000) ? 4 : 3; + else + cDigits = uWord & UINT16_C(0x00f0) ? 2 : 1; + + off = 0; + switch (cDigits) + { + case 4: pszDst[off++] = g_szHexDigits[(uWord >> 12) & 0xf]; RT_FALL_THRU(); + case 3: pszDst[off++] = g_szHexDigits[(uWord >> 8) & 0xf]; RT_FALL_THRU(); + case 2: pszDst[off++] = g_szHexDigits[(uWord >> 4) & 0xf]; RT_FALL_THRU(); + case 1: pszDst[off++] = g_szHexDigits[(uWord >> 0) & 0xf]; + break; + } + pszDst[off] = '\0'; + return off; +} + + +/** + * Helper function to format IPv6 address according to RFC 5952. + * + * @returns The number of bytes formatted. + * @param pfnOutput Pointer to output function. + * @param pvArgOutput Argument for the output function. + * @param pIpv6Addr IPv6 address + */ +static size_t rtstrFormatIPv6(PFNRTSTROUTPUT pfnOutput, void *pvArgOutput, PCRTNETADDRIPV6 pIpv6Addr) +{ + size_t cch; /* result */ + bool fEmbeddedIpv4; + size_t cwHexPart; + size_t cwLongestZeroRun; + size_t iLongestZeroStart; + size_t idx; + char szHexWord[8]; + + Assert(pIpv6Addr != NULL); + + /* + * Check for embedded IPv4 address. + * + * IPv4-compatible - ::11.22.33.44 (obsolete) + * IPv4-mapped - ::ffff:11.22.33.44 + * IPv4-translated - ::ffff:0:11.22.33.44 (RFC 2765) + */ + fEmbeddedIpv4 = false; + cwHexPart = RT_ELEMENTS(pIpv6Addr->au16); + if ( pIpv6Addr->au64[0] == 0 + && ( ( pIpv6Addr->au32[2] == 0 + && pIpv6Addr->au32[3] != 0 + && pIpv6Addr->au32[3] != RT_H2BE_U32_C(1) ) + || pIpv6Addr->au32[2] == RT_H2BE_U32_C(0x0000ffff) + || pIpv6Addr->au32[2] == RT_H2BE_U32_C(0xffff0000) ) ) + { + fEmbeddedIpv4 = true; + cwHexPart -= 2; + } + + /* + * Find the longest sequences of two or more zero words. + */ + cwLongestZeroRun = 0; + iLongestZeroStart = 0; + for (idx = 0; idx < cwHexPart; idx++) + if (pIpv6Addr->au16[idx] == 0) + { + size_t iZeroStart = idx; + size_t cwZeroRun; + do + idx++; + while (idx < cwHexPart && pIpv6Addr->au16[idx] == 0); + cwZeroRun = idx - iZeroStart; + if (cwZeroRun > 1 && cwZeroRun > cwLongestZeroRun) + { + cwLongestZeroRun = cwZeroRun; + iLongestZeroStart = iZeroStart; + if (cwZeroRun >= cwHexPart - idx) + break; + } + } + + /* + * Do the formatting. + */ + cch = 0; + if (cwLongestZeroRun == 0) + { + for (idx = 0; idx < cwHexPart; ++idx) + { + if (idx > 0) + cch += pfnOutput(pvArgOutput, ":", 1); + cch += pfnOutput(pvArgOutput, szHexWord, rtstrFormatIPv6HexWord(szHexWord, RT_BE2H_U16(pIpv6Addr->au16[idx]))); + } + + if (fEmbeddedIpv4) + cch += pfnOutput(pvArgOutput, ":", 1); + } + else + { + const size_t iLongestZeroEnd = iLongestZeroStart + cwLongestZeroRun; + + if (iLongestZeroStart == 0) + cch += pfnOutput(pvArgOutput, ":", 1); + else + for (idx = 0; idx < iLongestZeroStart; ++idx) + { + cch += pfnOutput(pvArgOutput, szHexWord, rtstrFormatIPv6HexWord(szHexWord, RT_BE2H_U16(pIpv6Addr->au16[idx]))); + cch += pfnOutput(pvArgOutput, ":", 1); + } + + if (iLongestZeroEnd == cwHexPart) + cch += pfnOutput(pvArgOutput, ":", 1); + else + { + for (idx = iLongestZeroEnd; idx < cwHexPart; ++idx) + { + cch += pfnOutput(pvArgOutput, ":", 1); + cch += pfnOutput(pvArgOutput, szHexWord, rtstrFormatIPv6HexWord(szHexWord, RT_BE2H_U16(pIpv6Addr->au16[idx]))); + } + + if (fEmbeddedIpv4) + cch += pfnOutput(pvArgOutput, ":", 1); + } + } + + if (fEmbeddedIpv4) + cch += RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, + "%u.%u.%u.%u", + pIpv6Addr->au8[12], + pIpv6Addr->au8[13], + pIpv6Addr->au8[14], + pIpv6Addr->au8[15]); + + return cch; +} + + +/** + * Callback to format iprt formatting extentions. + * See @ref pg_rt_str_format for a reference on the format types. + * + * @returns The number of bytes formatted. + * @param pfnOutput Pointer to output function. + * @param pvArgOutput Argument for the output function. + * @param ppszFormat Pointer to the format string pointer. Advance this till the char + * after the format specifier. + * @param pArgs Pointer to the argument list. Use this to fetch the arguments. + * @param cchWidth Format Width. -1 if not specified. + * @param cchPrecision Format Precision. -1 if not specified. + * @param fFlags Flags (RTSTR_NTFS_*). + * @param chArgSize The argument size specifier, 'l' or 'L'. + */ +DECLHIDDEN(size_t) rtstrFormatRt(PFNRTSTROUTPUT pfnOutput, void *pvArgOutput, const char **ppszFormat, va_list *pArgs, + int cchWidth, int cchPrecision, unsigned fFlags, char chArgSize) +{ + const char *pszFormatOrg = *ppszFormat; + char ch = *(*ppszFormat)++; + size_t cch; + char szBuf[80]; + + if (ch == 'R') + { + ch = *(*ppszFormat)++; + switch (ch) + { + /* + * Groups 1 and 2. + */ + case 'T': + case 'G': + case 'H': + case 'R': + case 'C': + case 'I': + case 'X': + case 'U': + case 'K': + { + /* + * Interpret the type. + */ + typedef enum + { + RTSF_INT, + RTSF_INTW, + RTSF_BOOL, + RTSF_FP16, + RTSF_FP32, + RTSF_FP64, + RTSF_IPV4, + RTSF_IPV6, + RTSF_MAC, + RTSF_NETADDR, + RTSF_UUID + } RTSF; + static const struct + { + uint8_t cch; /**< the length of the string. */ + char sz[10]; /**< the part following 'R'. */ + uint8_t cb; /**< the size of the type. */ + uint8_t u8Base; /**< the size of the type. */ + RTSF enmFormat; /**< The way to format it. */ + uint16_t fFlags; /**< additional RTSTR_F_* flags. */ + } + /** Sorted array of types, looked up using binary search! */ + s_aTypes[] = + { +#define STRMEM(str) sizeof(str) - 1, str + { STRMEM("Ci"), sizeof(RTINT), 10, RTSF_INT, RTSTR_F_VALSIGNED }, + { STRMEM("Cp"), sizeof(RTCCPHYS), 16, RTSF_INTW, 0 }, + { STRMEM("Cr"), sizeof(RTCCUINTREG), 16, RTSF_INTW, 0 }, + { STRMEM("Cu"), sizeof(RTUINT), 10, RTSF_INT, 0 }, + { STRMEM("Cv"), sizeof(void *), 16, RTSF_INTW, 0 }, + { STRMEM("Cx"), sizeof(RTUINT), 16, RTSF_INT, 0 }, + { STRMEM("Gi"), sizeof(RTGCINT), 10, RTSF_INT, RTSTR_F_VALSIGNED }, + { STRMEM("Gp"), sizeof(RTGCPHYS), 16, RTSF_INTW, 0 }, + { STRMEM("Gr"), sizeof(RTGCUINTREG), 16, RTSF_INTW, 0 }, + { STRMEM("Gu"), sizeof(RTGCUINT), 10, RTSF_INT, 0 }, + { STRMEM("Gv"), sizeof(RTGCPTR), 16, RTSF_INTW, 0 }, + { STRMEM("Gx"), sizeof(RTGCUINT), 16, RTSF_INT, 0 }, + { STRMEM("Hi"), sizeof(RTHCINT), 10, RTSF_INT, RTSTR_F_VALSIGNED }, + { STRMEM("Hp"), sizeof(RTHCPHYS), 16, RTSF_INTW, 0 }, + { STRMEM("Hr"), sizeof(RTHCUINTREG), 16, RTSF_INTW, 0 }, + { STRMEM("Hu"), sizeof(RTHCUINT), 10, RTSF_INT, 0 }, + { STRMEM("Hv"), sizeof(RTHCPTR), 16, RTSF_INTW, 0 }, + { STRMEM("Hx"), sizeof(RTHCUINT), 16, RTSF_INT, 0 }, + { STRMEM("I16"), sizeof(int16_t), 10, RTSF_INT, RTSTR_F_VALSIGNED }, + { STRMEM("I32"), sizeof(int32_t), 10, RTSF_INT, RTSTR_F_VALSIGNED }, + { STRMEM("I64"), sizeof(int64_t), 10, RTSF_INT, RTSTR_F_VALSIGNED }, + { STRMEM("I8"), sizeof(int8_t), 10, RTSF_INT, RTSTR_F_VALSIGNED }, + { STRMEM("Kv"), sizeof(RTHCPTR), 16, RTSF_INT, RTSTR_F_OBFUSCATE_PTR }, + { STRMEM("Rv"), sizeof(RTRCPTR), 16, RTSF_INTW, 0 }, + { STRMEM("Tbool"), sizeof(bool), 10, RTSF_BOOL, 0 }, + { STRMEM("Tfile"), sizeof(RTFILE), 10, RTSF_INT, 0 }, + { STRMEM("Tfmode"), sizeof(RTFMODE), 16, RTSF_INTW, 0 }, + { STRMEM("Tfoff"), sizeof(RTFOFF), 10, RTSF_INT, RTSTR_F_VALSIGNED }, + { STRMEM("Tfp16"), sizeof(RTFAR16), 16, RTSF_FP16, RTSTR_F_ZEROPAD }, + { STRMEM("Tfp32"), sizeof(RTFAR32), 16, RTSF_FP32, RTSTR_F_ZEROPAD }, + { STRMEM("Tfp64"), sizeof(RTFAR64), 16, RTSF_FP64, RTSTR_F_ZEROPAD }, + { STRMEM("Tgid"), sizeof(RTGID), 10, RTSF_INT, RTSTR_F_VALSIGNED }, + { STRMEM("Tino"), sizeof(RTINODE), 16, RTSF_INTW, 0 }, + { STRMEM("Tint"), sizeof(RTINT), 10, RTSF_INT, RTSTR_F_VALSIGNED }, + { STRMEM("Tiop"), sizeof(RTIOPORT), 16, RTSF_INTW, 0 }, + { STRMEM("Tldrm"), sizeof(RTLDRMOD), 16, RTSF_INTW, 0 }, + { STRMEM("Tmac"), sizeof(PCRTMAC), 16, RTSF_MAC, 0 }, + { STRMEM("Tnaddr"), sizeof(PCRTNETADDR), 10, RTSF_NETADDR,0 }, + { STRMEM("Tnaipv4"), sizeof(RTNETADDRIPV4), 10, RTSF_IPV4, 0 }, + { STRMEM("Tnaipv6"), sizeof(PCRTNETADDRIPV6),16, RTSF_IPV6, 0 }, + { STRMEM("Tnthrd"), sizeof(RTNATIVETHREAD), 16, RTSF_INTW, 0 }, + { STRMEM("Tproc"), sizeof(RTPROCESS), 16, RTSF_INTW, 0 }, + { STRMEM("Tptr"), sizeof(RTUINTPTR), 16, RTSF_INTW, 0 }, + { STRMEM("Treg"), sizeof(RTCCUINTREG), 16, RTSF_INTW, 0 }, + { STRMEM("Tsel"), sizeof(RTSEL), 16, RTSF_INTW, 0 }, + { STRMEM("Tsem"), sizeof(RTSEMEVENT), 16, RTSF_INTW, 0 }, + { STRMEM("Tsock"), sizeof(RTSOCKET), 10, RTSF_INT, 0 }, + { STRMEM("Tthrd"), sizeof(RTTHREAD), 16, RTSF_INTW, 0 }, + { STRMEM("Tuid"), sizeof(RTUID), 10, RTSF_INT, RTSTR_F_VALSIGNED }, + { STRMEM("Tuint"), sizeof(RTUINT), 10, RTSF_INT, 0 }, + { STRMEM("Tunicp"), sizeof(RTUNICP), 16, RTSF_INTW, RTSTR_F_ZEROPAD }, + { STRMEM("Tutf16"), sizeof(RTUTF16), 16, RTSF_INTW, RTSTR_F_ZEROPAD }, + { STRMEM("Tuuid"), sizeof(PCRTUUID), 16, RTSF_UUID, 0 }, + { STRMEM("Txint"), sizeof(RTUINT), 16, RTSF_INT, 0 }, + { STRMEM("U16"), sizeof(uint16_t), 10, RTSF_INT, 0 }, + { STRMEM("U32"), sizeof(uint32_t), 10, RTSF_INT, 0 }, + { STRMEM("U64"), sizeof(uint64_t), 10, RTSF_INT, 0 }, + { STRMEM("U8"), sizeof(uint8_t), 10, RTSF_INT, 0 }, + { STRMEM("X16"), sizeof(uint16_t), 16, RTSF_INT, 0 }, + { STRMEM("X32"), sizeof(uint32_t), 16, RTSF_INT, 0 }, + { STRMEM("X64"), sizeof(uint64_t), 16, RTSF_INT, 0 }, + { STRMEM("X8"), sizeof(uint8_t), 16, RTSF_INT, 0 }, +#undef STRMEM + }; + static const char s_szNull[] = "<NULL>"; + + const char *pszType = *ppszFormat - 1; + int iStart = 0; + int iEnd = RT_ELEMENTS(s_aTypes) - 1; + int i = RT_ELEMENTS(s_aTypes) / 2; + + union + { + uint8_t u8; + uint16_t u16; + uint32_t u32; + uint64_t u64; + int8_t i8; + int16_t i16; + int32_t i32; + int64_t i64; + RTR0INTPTR uR0Ptr; + RTFAR16 fp16; + RTFAR32 fp32; + RTFAR64 fp64; + bool fBool; + PCRTMAC pMac; + RTNETADDRIPV4 Ipv4Addr; + PCRTNETADDRIPV6 pIpv6Addr; + PCRTNETADDR pNetAddr; + PCRTUUID pUuid; + } u; + + AssertMsg(!chArgSize, ("Not argument size '%c' for RT types! '%.10s'\n", chArgSize, pszFormatOrg)); + RT_NOREF_PV(chArgSize); + + /* + * Lookup the type - binary search. + */ + for (;;) + { + int iDiff = strncmp(pszType, s_aTypes[i].sz, s_aTypes[i].cch); + if (!iDiff) + break; + if (iEnd == iStart) + { + AssertMsgFailed(("Invalid format type '%.10s'!\n", pszFormatOrg)); + return 0; + } + if (iDiff < 0) + iEnd = i - 1; + else + iStart = i + 1; + if (iEnd < iStart) + { + AssertMsgFailed(("Invalid format type '%.10s'!\n", pszFormatOrg)); + return 0; + } + i = iStart + (iEnd - iStart) / 2; + } + + /* + * Advance the format string and merge flags. + */ + *ppszFormat += s_aTypes[i].cch - 1; + fFlags |= s_aTypes[i].fFlags; + + /* + * Fetch the argument. + * It's important that a signed value gets sign-extended up to 64-bit. + */ + RT_ZERO(u); + if (fFlags & RTSTR_F_VALSIGNED) + { + switch (s_aTypes[i].cb) + { + case sizeof(int8_t): + u.i64 = va_arg(*pArgs, /*int8_t*/int); + fFlags |= RTSTR_F_8BIT; + break; + case sizeof(int16_t): + u.i64 = va_arg(*pArgs, /*int16_t*/int); + fFlags |= RTSTR_F_16BIT; + break; + case sizeof(int32_t): + u.i64 = va_arg(*pArgs, int32_t); + fFlags |= RTSTR_F_32BIT; + break; + case sizeof(int64_t): + u.i64 = va_arg(*pArgs, int64_t); + fFlags |= RTSTR_F_64BIT; + break; + default: + AssertMsgFailed(("Invalid format error, size %d'!\n", s_aTypes[i].cb)); + break; + } + } + else + { + switch (s_aTypes[i].cb) + { + case sizeof(uint8_t): + u.u8 = va_arg(*pArgs, /*uint8_t*/unsigned); + fFlags |= RTSTR_F_8BIT; + break; + case sizeof(uint16_t): + u.u16 = va_arg(*pArgs, /*uint16_t*/unsigned); + fFlags |= RTSTR_F_16BIT; + break; + case sizeof(uint32_t): + u.u32 = va_arg(*pArgs, uint32_t); + fFlags |= RTSTR_F_32BIT; + break; + case sizeof(uint64_t): + u.u64 = va_arg(*pArgs, uint64_t); + fFlags |= RTSTR_F_64BIT; + break; + case sizeof(RTFAR32): + u.fp32 = va_arg(*pArgs, RTFAR32); + break; + case sizeof(RTFAR64): + u.fp64 = va_arg(*pArgs, RTFAR64); + break; + default: + AssertMsgFailed(("Invalid format error, size %d'!\n", s_aTypes[i].cb)); + break; + } + } + +#ifndef DEBUG + /* + * For now don't show the address. + */ + if (fFlags & RTSTR_F_OBFUSCATE_PTR) + { + cch = rtStrFormatKernelAddress(szBuf, sizeof(szBuf), u.uR0Ptr, cchWidth, cchPrecision, fFlags); + return pfnOutput(pvArgOutput, szBuf, cch); + } +#endif + + /* + * Format the output. + */ + switch (s_aTypes[i].enmFormat) + { + case RTSF_INT: + { + cch = RTStrFormatNumber(szBuf, u.u64, s_aTypes[i].u8Base, cchWidth, cchPrecision, fFlags); + break; + } + + /* hex which defaults to max width. */ + case RTSF_INTW: + { + Assert(s_aTypes[i].u8Base == 16); + if (cchWidth < 0) + { + cchWidth = s_aTypes[i].cb * 2 + (fFlags & RTSTR_F_SPECIAL ? 2 : 0); + fFlags |= RTSTR_F_ZEROPAD; + } + cch = RTStrFormatNumber(szBuf, u.u64, s_aTypes[i].u8Base, cchWidth, cchPrecision, fFlags); + break; + } + + case RTSF_BOOL: + { + static const char s_szTrue[] = "true "; + static const char s_szFalse[] = "false"; + if (u.u64 == 1) + return pfnOutput(pvArgOutput, s_szTrue, sizeof(s_szTrue) - 1); + if (u.u64 == 0) + return pfnOutput(pvArgOutput, s_szFalse, sizeof(s_szFalse) - 1); + /* invalid boolean value */ + return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "!%lld!", u.u64); + } + + case RTSF_FP16: + { + fFlags &= ~(RTSTR_F_VALSIGNED | RTSTR_F_BIT_MASK | RTSTR_F_WIDTH | RTSTR_F_PRECISION | RTSTR_F_THOUSAND_SEP); + cch = RTStrFormatNumber(&szBuf[0], u.fp16.sel, 16, 4, -1, fFlags | RTSTR_F_16BIT); + Assert(cch == 4); + szBuf[4] = ':'; + cch = RTStrFormatNumber(&szBuf[5], u.fp16.off, 16, 4, -1, fFlags | RTSTR_F_16BIT); + Assert(cch == 4); + cch = 4 + 1 + 4; + break; + } + case RTSF_FP32: + { + fFlags &= ~(RTSTR_F_VALSIGNED | RTSTR_F_BIT_MASK | RTSTR_F_WIDTH | RTSTR_F_PRECISION | RTSTR_F_THOUSAND_SEP); + cch = RTStrFormatNumber(&szBuf[0], u.fp32.sel, 16, 4, -1, fFlags | RTSTR_F_16BIT); + Assert(cch == 4); + szBuf[4] = ':'; + cch = RTStrFormatNumber(&szBuf[5], u.fp32.off, 16, 8, -1, fFlags | RTSTR_F_32BIT); + Assert(cch == 8); + cch = 4 + 1 + 8; + break; + } + case RTSF_FP64: + { + fFlags &= ~(RTSTR_F_VALSIGNED | RTSTR_F_BIT_MASK | RTSTR_F_WIDTH | RTSTR_F_PRECISION | RTSTR_F_THOUSAND_SEP); + cch = RTStrFormatNumber(&szBuf[0], u.fp64.sel, 16, 4, -1, fFlags | RTSTR_F_16BIT); + Assert(cch == 4); + szBuf[4] = ':'; + cch = RTStrFormatNumber(&szBuf[5], u.fp64.off, 16, 16, -1, fFlags | RTSTR_F_64BIT); + Assert(cch == 16); + cch = 4 + 1 + 16; + break; + } + + case RTSF_IPV4: + return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, + "%u.%u.%u.%u", + u.Ipv4Addr.au8[0], + u.Ipv4Addr.au8[1], + u.Ipv4Addr.au8[2], + u.Ipv4Addr.au8[3]); + + case RTSF_IPV6: + { + if (VALID_PTR(u.pIpv6Addr)) + return rtstrFormatIPv6(pfnOutput, pvArgOutput, u.pIpv6Addr); + return pfnOutput(pvArgOutput, s_szNull, sizeof(s_szNull) - 1); + } + + case RTSF_MAC: + { + if (VALID_PTR(u.pMac)) + return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, + "%02x:%02x:%02x:%02x:%02x:%02x", + u.pMac->au8[0], + u.pMac->au8[1], + u.pMac->au8[2], + u.pMac->au8[3], + u.pMac->au8[4], + u.pMac->au8[5]); + return pfnOutput(pvArgOutput, s_szNull, sizeof(s_szNull) - 1); + } + + case RTSF_NETADDR: + { + if (VALID_PTR(u.pNetAddr)) + { + switch (u.pNetAddr->enmType) + { + case RTNETADDRTYPE_IPV4: + if (u.pNetAddr->uPort == RTNETADDR_PORT_NA) + return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, + "%u.%u.%u.%u", + u.pNetAddr->uAddr.IPv4.au8[0], + u.pNetAddr->uAddr.IPv4.au8[1], + u.pNetAddr->uAddr.IPv4.au8[2], + u.pNetAddr->uAddr.IPv4.au8[3]); + return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, + "%u.%u.%u.%u:%u", + u.pNetAddr->uAddr.IPv4.au8[0], + u.pNetAddr->uAddr.IPv4.au8[1], + u.pNetAddr->uAddr.IPv4.au8[2], + u.pNetAddr->uAddr.IPv4.au8[3], + u.pNetAddr->uPort); + + case RTNETADDRTYPE_IPV6: + if (u.pNetAddr->uPort == RTNETADDR_PORT_NA) + return rtstrFormatIPv6(pfnOutput, pvArgOutput, &u.pNetAddr->uAddr.IPv6); + + return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, + "[%RTnaipv6]:%u", + &u.pNetAddr->uAddr.IPv6, + u.pNetAddr->uPort); + + case RTNETADDRTYPE_MAC: + return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, + "%02x:%02x:%02x:%02x:%02x:%02x", + u.pNetAddr->uAddr.Mac.au8[0], + u.pNetAddr->uAddr.Mac.au8[1], + u.pNetAddr->uAddr.Mac.au8[2], + u.pNetAddr->uAddr.Mac.au8[3], + u.pNetAddr->uAddr.Mac.au8[4], + u.pNetAddr->uAddr.Mac.au8[5]); + + default: + return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, + "unsupported-netaddr-type=%u", u.pNetAddr->enmType); + + } + } + return pfnOutput(pvArgOutput, s_szNull, sizeof(s_szNull) - 1); + } + + case RTSF_UUID: + { + if (VALID_PTR(u.pUuid)) + { + /* cannot call RTUuidToStr because of GC/R0. */ + return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, + "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", + RT_H2LE_U32(u.pUuid->Gen.u32TimeLow), + RT_H2LE_U16(u.pUuid->Gen.u16TimeMid), + RT_H2LE_U16(u.pUuid->Gen.u16TimeHiAndVersion), + u.pUuid->Gen.u8ClockSeqHiAndReserved, + u.pUuid->Gen.u8ClockSeqLow, + u.pUuid->Gen.au8Node[0], + u.pUuid->Gen.au8Node[1], + u.pUuid->Gen.au8Node[2], + u.pUuid->Gen.au8Node[3], + u.pUuid->Gen.au8Node[4], + u.pUuid->Gen.au8Node[5]); + } + return pfnOutput(pvArgOutput, s_szNull, sizeof(s_szNull) - 1); + } + + default: + AssertMsgFailed(("Internal error %d\n", s_aTypes[i].enmFormat)); + return 0; + } + + /* + * Finally, output the formatted string and return. + */ + return pfnOutput(pvArgOutput, szBuf, cch); + } + + + /* Group 3 */ + + /* + * Base name printing, big endian UTF-16. + */ + case 'b': + { + switch (*(*ppszFormat)++) + { + case 'n': + { + const char *pszLastSep; + const char *psz = pszLastSep = va_arg(*pArgs, const char *); + if (!VALID_PTR(psz)) + return pfnOutput(pvArgOutput, RT_STR_TUPLE("<null>")); + + while ((ch = *psz) != '\0') + { + if (RTPATH_IS_SEP(ch)) + { + do + psz++; + while ((ch = *psz) != '\0' && RTPATH_IS_SEP(ch)); + if (!ch) + break; + pszLastSep = psz; + } + psz++; + } + + return pfnOutput(pvArgOutput, pszLastSep, psz - pszLastSep); + } + + /* %lRbs */ + case 's': + if (chArgSize == 'l') + { + /* utf-16BE -> utf-8 */ + int cchStr; + PCRTUTF16 pwszStr = va_arg(*pArgs, PRTUTF16); + + if (RT_VALID_PTR(pwszStr)) + { + cchStr = 0; + while (cchStr < cchPrecision && pwszStr[cchStr] != '\0') + cchStr++; + } + else + { + static RTUTF16 s_wszBigNull[] = + { + RT_H2BE_U16_C((uint16_t)'<'), RT_H2BE_U16_C((uint16_t)'N'), RT_H2BE_U16_C((uint16_t)'U'), + RT_H2BE_U16_C((uint16_t)'L'), RT_H2BE_U16_C((uint16_t)'L'), RT_H2BE_U16_C((uint16_t)'>'), '\0' + }; + pwszStr = s_wszBigNull; + cchStr = RT_ELEMENTS(s_wszBigNull) - 1; + } + + cch = 0; + if (!(fFlags & RTSTR_F_LEFT)) + while (--cchWidth >= cchStr) + cch += pfnOutput(pvArgOutput, " ", 1); + cchWidth -= cchStr; + while (cchStr-- > 0) + { +/** @todo \#ifndef IN_RC*/ +#ifdef IN_RING3 + RTUNICP Cp = 0; + RTUtf16BigGetCpEx(&pwszStr, &Cp); + char *pszEnd = RTStrPutCp(szBuf, Cp); + *pszEnd = '\0'; + cch += pfnOutput(pvArgOutput, szBuf, pszEnd - szBuf); +#else + szBuf[0] = (char)(*pwszStr++ >> 8); + cch += pfnOutput(pvArgOutput, szBuf, 1); +#endif + } + while (--cchWidth >= 0) + cch += pfnOutput(pvArgOutput, " ", 1); + return cch; + } + RT_FALL_THRU(); + + default: + AssertMsgFailed(("Invalid status code format type '%.10s'!\n", pszFormatOrg)); + break; + } + break; + } + + + /* + * Pretty function / method name printing. + */ + case 'f': + { + switch (*(*ppszFormat)++) + { + /* + * Pretty function / method name printing. + * This isn't 100% right (see classic signal prototype) and it assumes + * standardized names, but it'll do for today. + */ + case 'n': + { + const char *pszStart; + const char *psz = pszStart = va_arg(*pArgs, const char *); + int cAngle = 0; + + if (!VALID_PTR(psz)) + return pfnOutput(pvArgOutput, RT_STR_TUPLE("<null>")); + + while ((ch = *psz) != '\0' && ch != '(') + { + if (RT_C_IS_BLANK(ch)) + { + psz++; + while ((ch = *psz) != '\0' && (RT_C_IS_BLANK(ch) || ch == '(')) + psz++; + if (ch && cAngle == 0) + pszStart = psz; + } + else if (ch == '(') + break; + else if (ch == '<') + { + cAngle++; + psz++; + } + else if (ch == '>') + { + cAngle--; + psz++; + } + else + psz++; + } + + return pfnOutput(pvArgOutput, pszStart, psz - pszStart); + } + + default: + AssertMsgFailed(("Invalid status code format type '%.10s'!\n", pszFormatOrg)); + break; + } + break; + } + + + /* + * hex dumping, COM/XPCOM, human readable sizes. + */ + case 'h': + { + ch = *(*ppszFormat)++; + switch (ch) + { + /* + * Hex stuff. + */ + case 'x': + { + uint8_t *pu8 = va_arg(*pArgs, uint8_t *); + if (cchPrecision < 0) + cchPrecision = 16; + if (pu8) + { + switch (*(*ppszFormat)++) + { + /* + * Regular hex dump. + */ + case 'd': + { + int off = 0; + cch = 0; + + if (cchWidth <= 0) + cchWidth = 16; + + while (off < cchPrecision) + { + int i; + cch += RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, + "%s%0*p %04x:", off ? "\n" : "", sizeof(pu8) * 2, (uintptr_t)pu8, off); + for (i = 0; i < cchWidth && off + i < cchPrecision ; i++) + cch += RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, + off + i < cchPrecision ? !(i & 7) && i ? "-%02x" : " %02x" : " ", + pu8[i]); + while (i++ < cchWidth) + cch += pfnOutput(pvArgOutput, " ", 3); + + cch += pfnOutput(pvArgOutput, " ", 1); + + for (i = 0; i < cchWidth && off + i < cchPrecision; i++) + { + uint8_t u8 = pu8[i]; + cch += pfnOutput(pvArgOutput, u8 < 127 && u8 >= 32 ? (const char *)&u8 : ".", 1); + } + + /* next */ + pu8 += cchWidth; + off += cchWidth; + } + return cch; + } + + /* + * Regular hex dump with dittoing. + */ + case 'D': + { + int offEndDupCheck; + int cDuplicates = 0; + int off = 0; + cch = 0; + + if (cchWidth <= 0) + cchWidth = 16; + offEndDupCheck = cchPrecision - cchWidth; + + while (off < cchPrecision) + { + int i; + if ( off >= offEndDupCheck + || off <= 0 + || memcmp(pu8, pu8 - cchWidth, cchWidth) != 0 + || ( cDuplicates == 0 + && ( off + cchWidth >= offEndDupCheck + || memcmp(pu8 + cchWidth, pu8, cchWidth) != 0)) ) + { + if (cDuplicates > 0) + { + cch += RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, + "\n%.*s **** <ditto x %u>", + sizeof(pu8) * 2, "****************", cDuplicates); + cDuplicates = 0; + } + + cch += RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, + "%s%0*p %04x:", off ? "\n" : "", sizeof(pu8) * 2, (uintptr_t)pu8, off); + for (i = 0; i < cchWidth && off + i < cchPrecision ; i++) + cch += RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, + off + i < cchPrecision ? !(i & 7) && i + ? "-%02x" : " %02x" : " ", + pu8[i]); + while (i++ < cchWidth) + cch += pfnOutput(pvArgOutput, " ", 3); + + cch += pfnOutput(pvArgOutput, " ", 1); + + for (i = 0; i < cchWidth && off + i < cchPrecision; i++) + { + uint8_t u8 = pu8[i]; + cch += pfnOutput(pvArgOutput, u8 < 127 && u8 >= 32 ? (const char *)&u8 : ".", 1); + } + } + else + cDuplicates++; + + /* next */ + pu8 += cchWidth; + off += cchWidth; + } + return cch; + } + + /* + * Hex string. + */ + case 's': + { + if (cchPrecision-- > 0) + { + cch = RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "%02x", *pu8++); + for (; cchPrecision > 0; cchPrecision--, pu8++) + cch += RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, " %02x", *pu8); + return cch; + } + break; + } + + default: + AssertMsgFailed(("Invalid status code format type '%.10s'!\n", pszFormatOrg)); + break; + } + } + else + return pfnOutput(pvArgOutput, RT_STR_TUPLE("<null>")); + break; + } + + +#ifdef IN_RING3 + /* + * XPCOM / COM status code: %Rhrc, %Rhrf, %Rhra + * ASSUMES: If Windows Then COM else XPCOM. + */ + case 'r': + { + uint32_t hrc = va_arg(*pArgs, uint32_t); + PCRTCOMERRMSG pMsg = RTErrCOMGet(hrc); + switch (*(*ppszFormat)++) + { + case 'c': + return pfnOutput(pvArgOutput, pMsg->pszDefine, strlen(pMsg->pszDefine)); + case 'f': + return pfnOutput(pvArgOutput, pMsg->pszMsgFull,strlen(pMsg->pszMsgFull)); + case 'a': + return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "%s (0x%08X) - %s", pMsg->pszDefine, hrc, pMsg->pszMsgFull); + default: + AssertMsgFailed(("Invalid status code format type '%.10s'!\n", pszFormatOrg)); + return 0; + } + break; + } +#endif /* IN_RING3 */ + + case 'c': + case 'u': + { + unsigned i; + ssize_t cchBuf; + uint64_t uValue; + uint64_t uFraction = 0; + const char *pszPrefix = NULL; + unsigned cchFixedPart; + char ch2 = *(*ppszFormat)++; + AssertMsgReturn(ch2 == 'b' || ch2 == 'i', ("invalid type '%.10s'!\n", pszFormatOrg), 0); + uValue = va_arg(*pArgs, uint64_t); + + if (!(fFlags & RTSTR_F_PRECISION)) + cchPrecision = 1; + else if (cchPrecision > 3) + cchPrecision = 3; + else if (cchPrecision < 0) + cchPrecision = 0; + + cchFixedPart = cchPrecision + (cchPrecision != 0) + (ch == 'c'); + + if (ch2 == 'b') + { + static const struct + { + const char *pszPrefix; + uint8_t cShift; + uint64_t cbMin; + uint64_t cbMinZeroPrecision; + } s_aUnits[] = + { + { "Ei", 60, _1E, _1E*2 }, + { "Pi", 50, _1P, _1P*2 }, + { "Ti", 40, _1T, _1T*2 }, + { "Gi", 30, _1G, _1G64*2 }, + { "Mi", 20, _1M, _1M*2 }, + { "Ki", 10, _1K, _1K*2 }, + }; + for (i = 0; i < RT_ELEMENTS(s_aUnits); i++) + if ( uValue >= s_aUnits[i].cbMin + && (cchPrecision > 0 || uValue >= s_aUnits[i].cbMinZeroPrecision)) + { + if (cchPrecision != 0) + { + uFraction = uValue & (RT_BIT_64(s_aUnits[i].cShift) - 1); + uFraction *= cchPrecision == 1 ? 10 : cchPrecision == 2 ? 100 : 1000; + uFraction >>= s_aUnits[i].cShift; + } + uValue >>= s_aUnits[i].cShift; + pszPrefix = s_aUnits[i].pszPrefix; + cchFixedPart += 2; + break; + } + } + else + { + static const struct + { + const char *pszPrefix; + uint64_t cbFactor; + uint64_t cbMinZeroPrecision; + } s_aUnits[] = + { + { "E", UINT64_C(1000000000000000000), UINT64_C(1010000000000000000), }, + { "P", UINT64_C(1000000000000000), UINT64_C(1010000000000000), }, + { "T", UINT64_C(1000000000000), UINT64_C(1010000000000), }, + { "G", UINT64_C(1000000000), UINT64_C(1010000000), }, + { "M", UINT64_C(1000000), UINT64_C(1010000), }, + { "k", UINT64_C(1000), UINT64_C(1010), }, + }; + for (i = 0; i < RT_ELEMENTS(s_aUnits); i++) + if ( uValue >= s_aUnits[i].cbFactor + && (cchPrecision > 0 || uValue >= s_aUnits[i].cbMinZeroPrecision)) + { + if (cchPrecision == 0) + uValue /= s_aUnits[i].cbFactor; + else + { + uFraction = uValue % s_aUnits[i].cbFactor; + uValue = uValue / s_aUnits[i].cbFactor; + uFraction *= cchPrecision == 1 ? 10 : cchPrecision == 2 ? 100 : 1000; + uFraction += s_aUnits[i].cbFactor >> 1; + uFraction /= s_aUnits[i].cbFactor; + } + pszPrefix = s_aUnits[i].pszPrefix; + cchFixedPart += 1; + break; + } + } + + cchBuf = RTStrFormatU64(szBuf, sizeof(szBuf), uValue, 10, 0, 0, 0); + if (pszPrefix) + { + if (cchPrecision) + { + szBuf[cchBuf++] = '.'; + cchBuf += RTStrFormatU64(&szBuf[cchBuf], sizeof(szBuf) - cchBuf, uFraction, 10, cchPrecision, 0, + RTSTR_F_ZEROPAD | RTSTR_F_WIDTH); + } + szBuf[cchBuf++] = *pszPrefix++; + if (*pszPrefix) + szBuf[cchBuf++] = *pszPrefix; + } + if (ch == 'c') + szBuf[cchBuf++] = 'B'; + szBuf[cchBuf] = '\0'; + + cch = 0; + if ((fFlags & RTSTR_F_WIDTH) && !(fFlags & RTSTR_F_LEFT)) + while (cchBuf < cchWidth) + { + cch += pfnOutput(pvArgOutput, fFlags & RTSTR_F_ZEROPAD ? "0" : " ", 1); + cchWidth--; + } + cch += pfnOutput(pvArgOutput, szBuf, cchBuf); + return cch; + } + + default: + AssertMsgFailed(("Invalid status code format type '%.10s'!\n", pszFormatOrg)); + return 0; + + } + break; + } + + /* + * iprt status code: %Rrc, %Rrs, %Rrf, %Rra. + */ + case 'r': + { + int rc = va_arg(*pArgs, int); +#ifdef IN_RING3 /* we don't want this anywhere else yet. */ + PCRTSTATUSMSG pMsg = RTErrGet(rc); + switch (*(*ppszFormat)++) + { + case 'c': + return pfnOutput(pvArgOutput, pMsg->pszDefine, strlen(pMsg->pszDefine)); + case 's': + return pfnOutput(pvArgOutput, pMsg->pszMsgShort, strlen(pMsg->pszMsgShort)); + case 'f': + return pfnOutput(pvArgOutput, pMsg->pszMsgFull, strlen(pMsg->pszMsgFull)); + case 'a': + return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "%s (%d) - %s", pMsg->pszDefine, rc, pMsg->pszMsgFull); + default: + AssertMsgFailed(("Invalid status code format type '%.10s'!\n", pszFormatOrg)); + return 0; + } +#else /* !IN_RING3 */ + switch (*(*ppszFormat)++) + { + case 'c': + case 's': + case 'f': + case 'a': + return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "%d", rc); + default: + AssertMsgFailed(("Invalid status code format type '%.10s'!\n", pszFormatOrg)); + return 0; + } +#endif /* !IN_RING3 */ + break; + } + +#if defined(IN_RING3) + /* + * Windows status code: %Rwc, %Rwf, %Rwa + */ + case 'w': + { + long rc = va_arg(*pArgs, long); +# if defined(RT_OS_WINDOWS) + PCRTWINERRMSG pMsg = RTErrWinGet(rc); +# endif + switch (*(*ppszFormat)++) + { +# if defined(RT_OS_WINDOWS) + case 'c': + return pfnOutput(pvArgOutput, pMsg->pszDefine, strlen(pMsg->pszDefine)); + case 'f': + return pfnOutput(pvArgOutput, pMsg->pszMsgFull,strlen(pMsg->pszMsgFull)); + case 'a': + return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "%s (0x%08X) - %s", pMsg->pszDefine, rc, pMsg->pszMsgFull); +# else + case 'c': + case 'f': + case 'a': + return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "0x%08X", rc); +# endif + default: + AssertMsgFailed(("Invalid status code format type '%.10s'!\n", pszFormatOrg)); + return 0; + } + break; + } +#endif /* IN_RING3 */ + + /* + * Group 4, structure dumpers. + */ + case 'D': + { + /* + * Interpret the type. + */ + typedef enum + { + RTST_TIMESPEC + } RTST; +/** Set if it's a pointer */ +#define RTST_FLAGS_POINTER RT_BIT(0) + static const struct + { + uint8_t cch; /**< the length of the string. */ + char sz[16-2]; /**< the part following 'R'. */ + uint8_t cb; /**< the size of the argument. */ + uint8_t fFlags; /**< RTST_FLAGS_* */ + RTST enmType; /**< The structure type. */ + } + /** Sorted array of types, looked up using binary search! */ + s_aTypes[] = + { +#define STRMEM(str) sizeof(str) - 1, str + { STRMEM("Dtimespec"), sizeof(PCRTTIMESPEC), RTST_FLAGS_POINTER, RTST_TIMESPEC}, +#undef STRMEM + }; + const char *pszType = *ppszFormat - 1; + int iStart = 0; + int iEnd = RT_ELEMENTS(s_aTypes) - 1; + int i = RT_ELEMENTS(s_aTypes) / 2; + + union + { + const void *pv; + uint64_t u64; + PCRTTIMESPEC pTimeSpec; + } u; + + AssertMsg(!chArgSize, ("Not argument size '%c' for RT types! '%.10s'\n", chArgSize, pszFormatOrg)); + + /* + * Lookup the type - binary search. + */ + for (;;) + { + int iDiff = strncmp(pszType, s_aTypes[i].sz, s_aTypes[i].cch); + if (!iDiff) + break; + if (iEnd == iStart) + { + AssertMsgFailed(("Invalid format type '%.10s'!\n", pszFormatOrg)); + return 0; + } + if (iDiff < 0) + iEnd = i - 1; + else + iStart = i + 1; + if (iEnd < iStart) + { + AssertMsgFailed(("Invalid format type '%.10s'!\n", pszFormatOrg)); + return 0; + } + i = iStart + (iEnd - iStart) / 2; + } + *ppszFormat += s_aTypes[i].cch - 1; + + /* + * Fetch the argument. + */ + u.u64 = 0; + switch (s_aTypes[i].cb) + { + case sizeof(const void *): + u.pv = va_arg(*pArgs, const void *); + break; + default: + AssertMsgFailed(("Invalid format error, size %d'!\n", s_aTypes[i].cb)); + break; + } + + /* + * If it's a pointer, we'll check if it's valid before going on. + */ + if ((s_aTypes[i].fFlags & RTST_FLAGS_POINTER) && !VALID_PTR(u.pv)) + return pfnOutput(pvArgOutput, RT_STR_TUPLE("<null>")); + + /* + * Format the output. + */ + switch (s_aTypes[i].enmType) + { + case RTST_TIMESPEC: + return RTStrFormat(pfnOutput, pvArgOutput, NULL, NULL, "%'lld ns", RTTimeSpecGetNano(u.pTimeSpec)); + + default: + AssertMsgFailed(("Invalid/unhandled enmType=%d\n", s_aTypes[i].enmType)); + break; + } + break; + } + +#ifdef IN_RING3 + + /* + * Group 5, XML / HTML, JSON and URI escapers. + */ + case 'M': + { + char chWhat = (*ppszFormat)[0]; + if (chWhat == 'a' || chWhat == 'e') + { + /* XML attributes and element values. */ + bool fAttr = chWhat == 'a'; + char chType = (*ppszFormat)[1]; + *ppszFormat += 2; + switch (chType) + { + case 's': + { + static const char s_szElemEscape[] = "<>&\"'"; + static const char s_szAttrEscape[] = "<>&\"\n\r"; /* more? */ + const char * const pszEscape = fAttr ? s_szAttrEscape : s_szElemEscape; + size_t const cchEscape = (fAttr ? RT_ELEMENTS(s_szAttrEscape) : RT_ELEMENTS(s_szElemEscape)) - 1; + size_t cchOutput = 0; + const char *pszStr = va_arg(*pArgs, char *); + ssize_t cchStr; + ssize_t offCur; + ssize_t offLast; + + if (!VALID_PTR(pszStr)) + pszStr = "<NULL>"; + cchStr = RTStrNLen(pszStr, (unsigned)cchPrecision); + + if (fAttr) + cchOutput += pfnOutput(pvArgOutput, "\"", 1); + if (!(fFlags & RTSTR_F_LEFT)) + while (--cchWidth >= cchStr) + cchOutput += pfnOutput(pvArgOutput, " ", 1); + + offLast = offCur = 0; + while (offCur < cchStr) + { + if (memchr(pszEscape, pszStr[offCur], cchEscape)) + { + if (offLast < offCur) + cchOutput += pfnOutput(pvArgOutput, &pszStr[offLast], offCur - offLast); + switch (pszStr[offCur]) + { + case '<': cchOutput += pfnOutput(pvArgOutput, "<", 4); break; + case '>': cchOutput += pfnOutput(pvArgOutput, ">", 4); break; + case '&': cchOutput += pfnOutput(pvArgOutput, "&", 5); break; + case '\'': cchOutput += pfnOutput(pvArgOutput, "'", 6); break; + case '"': cchOutput += pfnOutput(pvArgOutput, """, 6); break; + case '\n': cchOutput += pfnOutput(pvArgOutput, "
", 5); break; + case '\r': cchOutput += pfnOutput(pvArgOutput, "
", 5); break; + default: + AssertFailed(); + } + offLast = offCur + 1; + } + offCur++; + } + if (offLast < offCur) + cchOutput += pfnOutput(pvArgOutput, &pszStr[offLast], offCur - offLast); + + while (--cchWidth >= cchStr) + cchOutput += pfnOutput(pvArgOutput, " ", 1); + if (fAttr) + cchOutput += pfnOutput(pvArgOutput, "\"", 1); + return cchOutput; + } + + default: + AssertMsgFailed(("Invalid IPRT format type '%.10s'!\n", pszFormatOrg)); + } + } + else if (chWhat == 'j') + { + /* JSON string escaping. */ + char const chType = (*ppszFormat)[1]; + *ppszFormat += 2; + switch (chType) + { + case 's': + { + const char *pszStr = va_arg(*pArgs, char *); + size_t cchOutput; + ssize_t cchStr; + ssize_t offCur; + ssize_t offLast; + + if (!VALID_PTR(pszStr)) + pszStr = "<NULL>"; + cchStr = RTStrNLen(pszStr, (unsigned)cchPrecision); + + cchOutput = pfnOutput(pvArgOutput, "\"", 1); + if (!(fFlags & RTSTR_F_LEFT)) + while (--cchWidth >= cchStr) + cchOutput += pfnOutput(pvArgOutput, " ", 1); + + offLast = offCur = 0; + while (offCur < cchStr) + { + unsigned int const uch = pszStr[offCur]; + if ( uch >= 0x5d + || (uch >= 0x20 && uch != 0x22 && uch != 0x5c)) + offCur++; + else + { + if (offLast < offCur) + cchOutput += pfnOutput(pvArgOutput, &pszStr[offLast], offCur - offLast); + switch ((char)uch) + { + case '"': cchOutput += pfnOutput(pvArgOutput, "\\\"", 2); break; + case '\\': cchOutput += pfnOutput(pvArgOutput, "\\\\", 2); break; + case '/': cchOutput += pfnOutput(pvArgOutput, "\\/", 2); break; + case '\b': cchOutput += pfnOutput(pvArgOutput, "\\b", 2); break; + case '\f': cchOutput += pfnOutput(pvArgOutput, "\\f", 2); break; + case '\n': cchOutput += pfnOutput(pvArgOutput, "\\n", 2); break; + case '\t': cchOutput += pfnOutput(pvArgOutput, "\\t", 2); break; + default: + { + RTUNICP uc = 0xfffd; /* replacement character */ + const char *pszCur = &pszStr[offCur]; + int rc = RTStrGetCpEx(&pszCur, &uc); + if (RT_SUCCESS(rc)) + offCur += pszCur - &pszStr[offCur] - 1; + if (uc >= 0xfffe) + uc = 0xfffd; /* replacement character */ + szBuf[0] = '\\'; + szBuf[1] = 'u'; + szBuf[2] = g_szHexDigits[(uc >> 12) & 0xf]; + szBuf[3] = g_szHexDigits[(uc >> 8) & 0xf]; + szBuf[4] = g_szHexDigits[(uc >> 4) & 0xf]; + szBuf[5] = g_szHexDigits[ uc & 0xf]; + szBuf[6] = '\0'; + cchOutput += pfnOutput(pvArgOutput, szBuf, 6); + break; + } + } + offLast = ++offCur; + } + } + if (offLast < offCur) + cchOutput += pfnOutput(pvArgOutput, &pszStr[offLast], offCur - offLast); + + while (--cchWidth >= cchStr) + cchOutput += pfnOutput(pvArgOutput, " ", 1); + cchOutput += pfnOutput(pvArgOutput, "\"", 1); + return cchOutput; + } + + default: + AssertMsgFailed(("Invalid IPRT format type '%.10s'!\n", pszFormatOrg)); + } + } + else if (chWhat == 'p') + { + /* Percent encoded string (RTC-3986). */ + char const chVariant = (*ppszFormat)[1]; + char const chAddSafe = chVariant == 'p' ? '/' + : chVariant == 'q' ? '+' /* '+' in queries is problematic, so no escape. */ + : '~' /* whatever */; + size_t cchOutput = 0; + const char *pszStr = va_arg(*pArgs, char *); + ssize_t cchStr; + ssize_t offCur; + ssize_t offLast; + + *ppszFormat += 2; + AssertMsgBreak(chVariant == 'a' || chVariant == 'p' || chVariant == 'q' || chVariant == 'f', + ("Invalid IPRT format type '%.10s'!\n", pszFormatOrg)); + + if (!VALID_PTR(pszStr)) + pszStr = "<NULL>"; + cchStr = RTStrNLen(pszStr, (unsigned)cchPrecision); + + if (!(fFlags & RTSTR_F_LEFT)) + while (--cchWidth >= cchStr) + cchOutput += pfnOutput(pvArgOutput, "%20", 3); + + offLast = offCur = 0; + while (offCur < cchStr) + { + ch = pszStr[offCur]; + if ( RT_C_IS_ALPHA(ch) + || RT_C_IS_DIGIT(ch) + || ch == '-' + || ch == '.' + || ch == '_' + || ch == '~' + || ch == chAddSafe) + offCur++; + else + { + if (offLast < offCur) + cchOutput += pfnOutput(pvArgOutput, &pszStr[offLast], offCur - offLast); + if (ch != ' ' || chVariant != 'f') + { + szBuf[0] = '%'; + szBuf[1] = g_szHexDigitsUpper[((uint8_t)ch >> 4) & 0xf]; + szBuf[2] = g_szHexDigitsUpper[(uint8_t)ch & 0xf]; + szBuf[3] = '\0'; + cchOutput += pfnOutput(pvArgOutput, szBuf, 3); + } + else + cchOutput += pfnOutput(pvArgOutput, "+", 1); + offLast = ++offCur; + } + } + if (offLast < offCur) + cchOutput += pfnOutput(pvArgOutput, &pszStr[offLast], offCur - offLast); + + while (--cchWidth >= cchStr) + cchOutput += pfnOutput(pvArgOutput, "%20", 3); + } + else + AssertMsgFailed(("Invalid IPRT format type '%.10s'!\n", pszFormatOrg)); + break; + } + +#endif /* IN_RING3 */ + + /* + * Groups 6 - CPU Architecture Register Formatters. + * "%RAarch[reg]" + */ + case 'A': + { + char const * const pszArch = *ppszFormat; + const char *pszReg = pszArch; + size_t cchOutput = 0; + int cPrinted = 0; + size_t cchReg; + + /* Parse out the */ + while ((ch = *pszReg++) && ch != '[') + { /* nothing */ } + AssertMsgBreak(ch == '[', ("Malformed IPRT architecture register format type '%.10s'!\n", pszFormatOrg)); + + cchReg = 0; + while ((ch = pszReg[cchReg]) && ch != ']') + cchReg++; + AssertMsgBreak(ch == ']', ("Malformed IPRT architecture register format type '%.10s'!\n", pszFormatOrg)); + + *ppszFormat = &pszReg[cchReg + 1]; + + +#define REG_EQUALS(a_szReg) (sizeof(a_szReg) - 1 == cchReg && !strncmp(a_szReg, pszReg, sizeof(a_szReg) - 1)) +#define REG_OUT_BIT(a_uVal, a_fBitMask, a_szName) \ + do { \ + if ((a_uVal) & (a_fBitMask)) \ + { \ + if (!cPrinted++) \ + cchOutput += pfnOutput(pvArgOutput, "{" a_szName, sizeof(a_szName)); \ + else \ + cchOutput += pfnOutput(pvArgOutput, "," a_szName, sizeof(a_szName)); \ + (a_uVal) &= ~(a_fBitMask); \ + } \ + } while (0) +#define REG_OUT_CLOSE(a_uVal) \ + do { \ + if ((a_uVal)) \ + { \ + cchOutput += pfnOutput(pvArgOutput, !cPrinted ? "{unkn=" : ",unkn=", 6); \ + cch = RTStrFormatNumber(&szBuf[0], (a_uVal), 16, 1, -1, fFlags); \ + cchOutput += pfnOutput(pvArgOutput, szBuf, cch); \ + cPrinted++; \ + } \ + if (cPrinted) \ + cchOutput += pfnOutput(pvArgOutput, "}", 1); \ + } while (0) + + + if (0) + { /* dummy */ } +#ifdef STRFORMAT_WITH_X86 + /* + * X86 & AMD64. + */ + else if ( pszReg - pszArch == 3 + 1 + && pszArch[0] == 'x' + && pszArch[1] == '8' + && pszArch[2] == '6') + { + if (REG_EQUALS("cr0")) + { + uint64_t cr0 = va_arg(*pArgs, uint64_t); + fFlags |= RTSTR_F_64BIT; + cch = RTStrFormatNumber(&szBuf[0], cr0, 16, 8, -1, fFlags | RTSTR_F_ZEROPAD); + cchOutput += pfnOutput(pvArgOutput, szBuf, cch); + REG_OUT_BIT(cr0, X86_CR0_PE, "PE"); + REG_OUT_BIT(cr0, X86_CR0_MP, "MP"); + REG_OUT_BIT(cr0, X86_CR0_EM, "EM"); + REG_OUT_BIT(cr0, X86_CR0_TS, "DE"); + REG_OUT_BIT(cr0, X86_CR0_ET, "ET"); + REG_OUT_BIT(cr0, X86_CR0_NE, "NE"); + REG_OUT_BIT(cr0, X86_CR0_WP, "WP"); + REG_OUT_BIT(cr0, X86_CR0_AM, "AM"); + REG_OUT_BIT(cr0, X86_CR0_NW, "NW"); + REG_OUT_BIT(cr0, X86_CR0_CD, "CD"); + REG_OUT_BIT(cr0, X86_CR0_PG, "PG"); + REG_OUT_CLOSE(cr0); + } + else if (REG_EQUALS("cr4")) + { + uint64_t cr4 = va_arg(*pArgs, uint64_t); + fFlags |= RTSTR_F_64BIT; + cch = RTStrFormatNumber(&szBuf[0], cr4, 16, 8, -1, fFlags | RTSTR_F_ZEROPAD); + cchOutput += pfnOutput(pvArgOutput, szBuf, cch); + REG_OUT_BIT(cr4, X86_CR4_VME, "VME"); + REG_OUT_BIT(cr4, X86_CR4_PVI, "PVI"); + REG_OUT_BIT(cr4, X86_CR4_TSD, "TSD"); + REG_OUT_BIT(cr4, X86_CR4_DE, "DE"); + REG_OUT_BIT(cr4, X86_CR4_PSE, "PSE"); + REG_OUT_BIT(cr4, X86_CR4_PAE, "PAE"); + REG_OUT_BIT(cr4, X86_CR4_MCE, "MCE"); + REG_OUT_BIT(cr4, X86_CR4_PGE, "PGE"); + REG_OUT_BIT(cr4, X86_CR4_PCE, "PCE"); + REG_OUT_BIT(cr4, X86_CR4_OSFXSR, "OSFXSR"); + REG_OUT_BIT(cr4, X86_CR4_OSXMMEEXCPT, "OSXMMEEXCPT"); + REG_OUT_BIT(cr4, X86_CR4_VMXE, "VMXE"); + REG_OUT_BIT(cr4, X86_CR4_SMXE, "SMXE"); + REG_OUT_BIT(cr4, X86_CR4_PCIDE, "PCIDE"); + REG_OUT_BIT(cr4, X86_CR4_OSXSAVE, "OSXSAVE"); + REG_OUT_BIT(cr4, X86_CR4_SMEP, "SMEP"); + REG_OUT_BIT(cr4, X86_CR4_SMAP, "SMAP"); + REG_OUT_CLOSE(cr4); + } + else + AssertMsgFailed(("Unknown x86 register specified in '%.10s'!\n", pszFormatOrg)); + } +#endif + else + AssertMsgFailed(("Unknown architecture specified in '%.10s'!\n", pszFormatOrg)); +#undef REG_OUT_BIT +#undef REG_OUT_CLOSE +#undef REG_EQUALS + return cchOutput; + } + + /* + * Invalid/Unknown. Bitch about it. + */ + default: + AssertMsgFailed(("Invalid IPRT format type '%.10s'!\n", pszFormatOrg)); + break; + } + } + else + AssertMsgFailed(("Invalid IPRT format type '%.10s'!\n", pszFormatOrg)); + + NOREF(pszFormatOrg); + return 0; +} + diff --git a/src/VBox/Runtime/common/string/strformattype.cpp b/src/VBox/Runtime/common/string/strformattype.cpp new file mode 100644 index 00000000..3206d4df --- /dev/null +++ b/src/VBox/Runtime/common/string/strformattype.cpp @@ -0,0 +1,477 @@ +/* $Id: strformattype.cpp $ */ +/** @file + * IPRT - IPRT String Formatter Extensions, Dynamic Types. + */ + +/* + * Copyright (C) 2008-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Global Variables * +*********************************************************************************************************************************/ +#define LOG_GROUP RTLOGGROUP_STRING +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/asm.h> +#include <iprt/assert.h> +#include <iprt/err.h> +#include <iprt/stdarg.h> +#include "internal/string.h" + + +/********************************************************************************************************************************* +* Defined Constants And Macros * +*********************************************************************************************************************************/ +#ifdef RT_STRICT +# define RTSTRFORMATTYPE_WITH_LOCKING +#endif +#ifdef RTSTRFORMATTYPE_WITH_LOCKING +# define RTSTRFORMATTYPE_LOCK_OFFSET 0x7fff0000 +#endif + + +/********************************************************************************************************************************* +* Structures and Typedefs * +*********************************************************************************************************************************/ +/** + * Description of a registered formatting type. + * + * In GC we'll be using offsets instead of pointers just to try avoid having to + * do the bothersome relocating. This of course assumes that all the relevant + * code stays within the same mapping. + */ +typedef struct RTSTRDYNFMT +{ + /** The length of the type. */ + uint8_t cchType; + /** The type name. */ + char szType[47]; + /** The handler function. + * In GC the offset is relative to g_aTypes[0], so that &g_aTypes[0] + offHandler + * gives the actual address. */ +#ifdef IN_RC + int32_t offHandler; +#else + PFNRTSTRFORMATTYPE pfnHandler; +#endif + /** Callback argument. */ + void * volatile pvUser; +#if ARCH_BITS == 32 + /** Size alignment padding. */ + char abPadding[8]; +#endif +} RTSTRDYNFMT; +AssertCompileSizeAlignment(RTSTRDYNFMT, 32); +typedef RTSTRDYNFMT *PRTSTRDYNFMT; +typedef RTSTRDYNFMT const *PCRTSTRDYNFMT; + + +/********************************************************************************************************************************* +* Global Variables * +*********************************************************************************************************************************/ +/** The registered types, sorted for binary lookup. + * We use a static array here because it avoids RTMemAlloc dependencies+leaks. */ +static RTSTRDYNFMT g_aTypes[64]; +/** The number of registered types. */ +static uint32_t g_cTypes = 0; +#ifdef RTSTRFORMATTYPE_WITH_LOCKING +/** This is just a thing we assert/spin on. + * Zero == unlocked, negative == write locked, positive == read locked. + * + * The user should do all the serialization and we'll smack his fingers in + * strict builds if he doesn't. */ +static int32_t volatile g_i32Spinlock = 0; +#endif + + +/** + * Locks the stuff for updating. + * + * Mostly for check that the caller is doing his job. + */ +DECLINLINE(void) rtstrFormatTypeWriteLock(void) +{ +#if defined(RTSTRFORMATTYPE_WITH_LOCKING) + if (RT_UNLIKELY(!ASMAtomicCmpXchgS32(&g_i32Spinlock, -RTSTRFORMATTYPE_LOCK_OFFSET, 0))) + { + unsigned volatile i; + + AssertFailed(); + for (i = 0;; i++) + if ( !g_i32Spinlock + && ASMAtomicCmpXchgS32(&g_i32Spinlock, -RTSTRFORMATTYPE_LOCK_OFFSET, 0)) + break; + } +#endif +} + + +/** + * Undoing rtstrFormatTypeWriteLock. + */ +DECLINLINE(void) rtstrFormatTypeWriteUnlock(void) +{ +#if defined(RTSTRFORMATTYPE_WITH_LOCKING) + Assert(g_i32Spinlock < 0); + ASMAtomicAddS32(&g_i32Spinlock, RTSTRFORMATTYPE_LOCK_OFFSET); +#endif +} + + +/** + * Locks the stuff for reading. + * + * This is just cheap stuff to make sure the caller is doing the right thing. + */ +DECLINLINE(void) rtstrFormatTypeReadLock(void) +{ +#if defined(RTSTRFORMATTYPE_WITH_LOCKING) + if (RT_UNLIKELY(ASMAtomicIncS32(&g_i32Spinlock) < 0)) + { + unsigned volatile i; + + AssertFailed(); + for (i = 0;; i++) + if (ASMAtomicUoReadS32(&g_i32Spinlock) > 0) + break; + } +#endif +} + + +/** + * Undoing rtstrFormatTypeReadLock. + */ +DECLINLINE(void) rtstrFormatTypeReadUnlock(void) +{ +#if defined(RTSTRFORMATTYPE_WITH_LOCKING) + Assert(g_i32Spinlock > 0); + ASMAtomicDecS32(&g_i32Spinlock); +#endif +} + + +/** + * Compares a type string with a type entry, the string doesn't need to be terminated. + * + * @returns Same as memcmp. + * @param pszType The type string, doesn't need to be terminated. + * @param cchType The number of chars in @a pszType to compare. + * @param pType The type entry to compare with. + */ +DECLINLINE(int) rtstrFormatTypeCompare(const char *pszType, size_t cchType, PCRTSTRDYNFMT pType) +{ + size_t cch = RT_MIN(cchType, pType->cchType); + int iDiff = memcmp(pszType, pType->szType, cch); + if (!iDiff) + { + if (cchType == pType->cchType) + return 0; + iDiff = cchType < pType->cchType ? -1 : 1; + } + return iDiff; +} + + +/** + * Looks up a type entry. + * + * @returns The type index, -1 on failure. + * @param pszType The type to look up. This doesn't have to be terminated. + * @param cchType The length of the type. + */ +DECLINLINE(int32_t) rtstrFormatTypeLookup(const char *pszType, size_t cchType) +{ + /* + * Lookup the type - binary search. + */ + int32_t iStart = 0; + int32_t iEnd = g_cTypes - 1; + int32_t i = iEnd / 2; + for (;;) + { + int iDiff = rtstrFormatTypeCompare(pszType, cchType, &g_aTypes[i]); + if (!iDiff) + return i; + if (iEnd == iStart) + break; + if (iDiff < 0) + iEnd = i - 1; + else + iStart = i + 1; + if (iEnd < iStart) + break; + i = iStart + (iEnd - iStart) / 2; + } + return -1; +} + + +/** + * Register a format handler for a type. + * + * The format handler is used to handle '%R[type]' format types, where the argument + * in the vector is a pointer value (a bit restrictive, but keeps it simple). + * + * The caller must ensure that no other thread will be making use of any of + * the dynamic formatting type facilities simultaneously with this call. + * + * @returns IPRT status code. + * @retval VINF_SUCCESS on success. + * @retval VERR_ALREADY_EXISTS if the type has already been registered. + * @retval VERR_TOO_MANY_OPEN_FILES if all the type slots has been allocated already. + * + * @param pszType The type name. + * @param pfnHandler The handler address. See FNRTSTRFORMATTYPE for details. + * @param pvUser The user argument to pass to the handler. See RTStrFormatTypeSetUser + * for how to update this later. + */ +RTDECL(int) RTStrFormatTypeRegister(const char *pszType, PFNRTSTRFORMATTYPE pfnHandler, void *pvUser) +{ + int rc; + size_t cchType; + uint32_t cTypes; + + /* + * Validate input. + */ + AssertPtr(pfnHandler); + AssertPtr(pszType); + cchType = strlen(pszType); + AssertReturn(cchType < RT_SIZEOFMEMB(RTSTRDYNFMT, szType), VERR_INVALID_PARAMETER); + + /* + * Try add it. + */ + rtstrFormatTypeWriteLock(); + + /* check that there are empty slots. */ + cTypes = g_cTypes; + if (cTypes < RT_ELEMENTS(g_aTypes)) + { + /* find where to insert it. */ + uint32_t i = 0; + rc = VINF_SUCCESS; + while (i < cTypes) + { + int iDiff = rtstrFormatTypeCompare(pszType, cchType, &g_aTypes[i]); + if (!iDiff) + { + rc = VERR_ALREADY_EXISTS; + break; + } + if (iDiff < 0) + break; + i++; + } + if (RT_SUCCESS(rc)) + { + /* make room. */ + uint32_t cToMove = cTypes - i; + if (cToMove) + memmove(&g_aTypes[i + 1], &g_aTypes[i], cToMove * sizeof(g_aTypes[i])); + + /* insert the new entry. */ + memset(&g_aTypes[i], 0, sizeof(g_aTypes[i])); + memcpy(&g_aTypes[i].szType[0], pszType, cchType + 1); + g_aTypes[i].cchType = (uint8_t)cchType; + g_aTypes[i].pvUser = pvUser; +#ifdef IN_RC + g_aTypes[i].offHandler = (intptr_t)pfnHandler - (intptr_t)&g_aTypes[0]; +#else + g_aTypes[i].pfnHandler = pfnHandler; +#endif + ASMAtomicIncU32(&g_cTypes); + rc = VINF_SUCCESS; + } + } + else + rc = VERR_TOO_MANY_OPEN_FILES; /** @todo fix error code */ + + rtstrFormatTypeWriteUnlock(); + + return rc; +} +RT_EXPORT_SYMBOL(RTStrFormatTypeRegister); + + +/** + * Deregisters a format type. + * + * The caller must ensure that no other thread will be making use of any of + * the dynamic formatting type facilities simultaneously with this call. + * + * @returns IPRT status code. + * @retval VINF_SUCCESS on success. + * @retval VERR_FILE_NOT_FOUND if not found. + * + * @param pszType The type to deregister. + */ +RTDECL(int) RTStrFormatTypeDeregister(const char *pszType) +{ + int32_t i; + + /* + * Validate input. + */ + AssertPtr(pszType); + + /* + * Locate the entry and remove it. + */ + rtstrFormatTypeWriteLock(); + i = rtstrFormatTypeLookup(pszType, strlen(pszType)); + if (i >= 0) + { + const uint32_t cTypes = g_cTypes; + int32_t cToMove = cTypes - i - 1; + if (cToMove > 0) + memmove(&g_aTypes[i], &g_aTypes[i + 1], cToMove * sizeof(g_aTypes[i])); + memset(&g_aTypes[cTypes - 1], 0, sizeof(g_aTypes[0])); + ASMAtomicDecU32(&g_cTypes); + } + rtstrFormatTypeWriteUnlock(); + + Assert(i >= 0); + return i >= 0 + ? VINF_SUCCESS + : VERR_FILE_NOT_FOUND; /** @todo fix status code */ +} +RT_EXPORT_SYMBOL(RTStrFormatTypeDeregister); + + +/** + * Sets the user argument for a type. + * + * This can be used if a user argument needs relocating in GC. + * + * @returns IPRT status code. + * @retval VINF_SUCCESS on success. + * @retval VERR_FILE_NOT_FOUND if not found. + * + * @param pszType The type to update. + * @param pvUser The new user argument value. + */ +RTDECL(int) RTStrFormatTypeSetUser(const char *pszType, void *pvUser) +{ + int32_t i; + + /* + * Validate input. + */ + AssertPtr(pszType); + + /* + * Locate the entry and update it. + */ + rtstrFormatTypeReadLock(); + + i = rtstrFormatTypeLookup(pszType, strlen(pszType)); + if (i >= 0) + ASMAtomicWritePtr(&g_aTypes[i].pvUser, pvUser); + + rtstrFormatTypeReadUnlock(); + + Assert(i >= 0); + return i >= 0 + ? VINF_SUCCESS + : VERR_FILE_NOT_FOUND; /** @todo fix status code */ +} +RT_EXPORT_SYMBOL(RTStrFormatTypeSetUser); + + +/** + * Formats a type using a registered callback handler. + * + * This will handle %R[type]. + * + * @returns The number of bytes formatted. + * @param pfnOutput Pointer to output function. + * @param pvArgOutput Argument for the output function. + * @param ppszFormat Pointer to the format string pointer. Advance this till the char + * after the format specifier. + * @param pArgs Pointer to the argument list. Use this to fetch the arguments. + * @param cchWidth Format Width. -1 if not specified. + * @param cchPrecision Format Precision. -1 if not specified. + * @param fFlags Flags (RTSTR_NTFS_*). + * @param chArgSize The argument size specifier, 'l' or 'L'. + */ +DECLHIDDEN(size_t) rtstrFormatType(PFNRTSTROUTPUT pfnOutput, void *pvArgOutput, const char **ppszFormat, + va_list *pArgs, int cchWidth, int cchPrecision, unsigned fFlags, char chArgSize) +{ + size_t cch; + int32_t i; + char const *pszTypeEnd; + char const *pszType; + char ch; + void *pvValue = va_arg(*pArgs, void *); + NOREF(chArgSize); + + /* + * Parse out the type. + */ + pszType = *ppszFormat + 2; + *ppszFormat = pszType; + Assert(pszType[-1] == '['); + Assert(pszType[-2] == 'R'); + pszTypeEnd = pszType; + while ((ch = *pszTypeEnd) != ']') + { + AssertReturn(ch != '\0', 0); + AssertReturn(ch != '%', 0); + AssertReturn(ch != '[', 0); + pszTypeEnd++; + } + *ppszFormat = pszTypeEnd + 1; + + /* + * Locate the entry and call the handler. + */ + rtstrFormatTypeReadLock(); + + i = rtstrFormatTypeLookup(pszType, pszTypeEnd - pszType); + if (RT_LIKELY(i >= 0)) + { +#ifdef IN_RC + PFNRTSTRFORMATTYPE pfnHandler = (PFNRTSTRFORMATTYPE)((intptr_t)&g_aTypes[0] + g_aTypes[i].offHandler); +#else + PFNRTSTRFORMATTYPE pfnHandler = g_aTypes[i].pfnHandler; +#endif + void *pvUser = ASMAtomicReadPtr(&g_aTypes[i].pvUser); + + rtstrFormatTypeReadUnlock(); + + cch = pfnHandler(pfnOutput, pvArgOutput, g_aTypes[i].szType, pvValue, cchWidth, cchPrecision, fFlags, pvUser); + } + else + { + rtstrFormatTypeReadUnlock(); + + cch = pfnOutput(pvArgOutput, RT_STR_TUPLE("<missing:%R[")); + cch += pfnOutput(pvArgOutput, pszType, pszTypeEnd - pszType); + cch += pfnOutput(pvArgOutput, RT_STR_TUPLE("]>")); + } + + return cch; +} + diff --git a/src/VBox/Runtime/common/string/strhash1.cpp b/src/VBox/Runtime/common/string/strhash1.cpp new file mode 100644 index 00000000..cdec08d4 --- /dev/null +++ b/src/VBox/Runtime/common/string/strhash1.cpp @@ -0,0 +1,72 @@ +/* $Id: strhash1.cpp $ */ +/** @file + * IPRT - String Hashing by Algorithm \#1. + */ + +/* + * Copyright (C) 2012-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include "internal/iprt.h" +#include <iprt/string.h> + +#include "internal/strhash.h" + + +RTDECL(uint32_t) RTStrHash1(const char *pszString) +{ + size_t cchIgnored; + return sdbm(pszString, &cchIgnored); +} + + +RTDECL(uint32_t) RTStrHash1N(const char *pszString, size_t cchString) +{ + size_t cchIgnored; + return sdbmN(pszString, cchString, &cchIgnored); +} + + +RTDECL(uint32_t) RTStrHash1ExN(size_t cPairs, ...) +{ + va_list va; + va_start(va, cPairs); + uint32_t uHash = RTStrHash1ExNV(cPairs, va); + va_end(va); + return uHash; +} + + +RTDECL(uint32_t) RTStrHash1ExNV(size_t cPairs, va_list va) +{ + uint32_t uHash = 0; + for (uint32_t i = 0; i < cPairs; i++) + { + const char *psz = va_arg(va, const char *); + size_t cch = va_arg(va, size_t); + uHash += sdbmIncN(psz, cch, uHash); + } + return uHash; +} + diff --git a/src/VBox/Runtime/common/string/stringalloc.cpp b/src/VBox/Runtime/common/string/stringalloc.cpp new file mode 100644 index 00000000..befb9f89 --- /dev/null +++ b/src/VBox/Runtime/common/string/stringalloc.cpp @@ -0,0 +1,288 @@ +/* $Id: stringalloc.cpp $ */ +/** @file + * IPRT - String Manipulation. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#ifndef IN_RING0 +# include <iprt/alloca.h> +#endif +#include <iprt/assert.h> +#include <iprt/mem.h> +#include <iprt/err.h> +#include "internal/string.h" + + + +RTDECL(char *) RTStrAllocTag(size_t cb, const char *pszTag) +{ + char *psz = (char *)RTMemAllocTag(RT_MAX(cb, 1), pszTag); + if (psz) + *psz = '\0'; + return psz; +} +RT_EXPORT_SYMBOL(RTStrAllocTag); + + +RTDECL(int) RTStrAllocExTag(char **ppsz, size_t cb, const char *pszTag) +{ + char *psz = *ppsz = (char *)RTMemAllocTag(RT_MAX(cb, 1), pszTag); + if (psz) + { + *psz = '\0'; + return VINF_SUCCESS; + } + return VERR_NO_STR_MEMORY; +} +RT_EXPORT_SYMBOL(RTStrAllocExTag); + + +RTDECL(int) RTStrReallocTag(char **ppsz, size_t cbNew, const char *pszTag) +{ + char *pszOld = *ppsz; + if (!cbNew) + { + RTMemFree(pszOld); + *ppsz = NULL; + } + else if (pszOld) + { + char *pszNew = (char *)RTMemReallocTag(pszOld, cbNew, pszTag); + if (!pszNew) + return VERR_NO_STR_MEMORY; + pszNew[cbNew - 1] = '\0'; + *ppsz = pszNew; + } + else + { + char *pszNew = (char *)RTMemAllocTag(cbNew, pszTag); + if (!pszNew) + return VERR_NO_STR_MEMORY; + pszNew[0] = '\0'; + pszNew[cbNew - 1] = '\0'; + *ppsz = pszNew; + } + return VINF_SUCCESS; +} +RT_EXPORT_SYMBOL(RTStrReallocTag); + +RTDECL(void) RTStrFree(char *pszString) +{ + if (pszString) + RTMemTmpFree(pszString); +} +RT_EXPORT_SYMBOL(RTStrFree); + + +RTDECL(char *) RTStrDupTag(const char *pszString, const char *pszTag) +{ +#if defined(__cplusplus) + AssertPtr(pszString); +#endif + size_t cch = strlen(pszString) + 1; + char *psz = (char *)RTMemAllocTag(cch, pszTag); + if (psz) + memcpy(psz, pszString, cch); + return psz; +} +RT_EXPORT_SYMBOL(RTStrDupTag); + + +RTDECL(int) RTStrDupExTag(char **ppszString, const char *pszString, const char *pszTag) +{ +#if defined(__cplusplus) + AssertPtr(ppszString); + AssertPtr(pszString); +#endif + + size_t cch = strlen(pszString) + 1; + char *psz = (char *)RTMemAllocTag(cch, pszTag); + if (psz) + { + memcpy(psz, pszString, cch); + *ppszString = psz; + return VINF_SUCCESS; + } + return VERR_NO_MEMORY; +} +RT_EXPORT_SYMBOL(RTStrDupExTag); + + +RTDECL(char *) RTStrDupNTag(const char *pszString, size_t cchMax, const char *pszTag) +{ +#if defined(__cplusplus) + AssertPtr(pszString); +#endif + char const *pszEnd = RTStrEnd(pszString, cchMax); + size_t cch = pszEnd ? (uintptr_t)pszEnd - (uintptr_t)pszString : cchMax; + char *pszDst = (char *)RTMemAllocTag(cch + 1, pszTag); + if (pszDst) + { + memcpy(pszDst, pszString, cch); + pszDst[cch] = '\0'; + } + return pszDst; +} +RT_EXPORT_SYMBOL(RTStrDupNTag); + + +RTDECL(int) RTStrAAppendTag(char **ppsz, const char *pszAppend, const char *pszTag) +{ + if (!pszAppend) + return VINF_SUCCESS; + return RTStrAAppendNTag(ppsz, pszAppend, RTSTR_MAX, pszTag); +} + + +RTDECL(int) RTStrAAppendNTag(char **ppsz, const char *pszAppend, size_t cchAppend, const char *pszTag) +{ + size_t cchOrg; + char *pszNew; + + if (!cchAppend) + return VINF_SUCCESS; + if (cchAppend == RTSTR_MAX) + cchAppend = strlen(pszAppend); + else + Assert(cchAppend == RTStrNLen(pszAppend, cchAppend)); + + cchOrg = *ppsz ? strlen(*ppsz) : 0; + pszNew = (char *)RTMemReallocTag(*ppsz, cchOrg + cchAppend + 1, pszTag); + if (!pszNew) + return VERR_NO_STR_MEMORY; + + memcpy(&pszNew[cchOrg], pszAppend, cchAppend); + pszNew[cchOrg + cchAppend] = '\0'; + + *ppsz = pszNew; + return VINF_SUCCESS; +} + + +#ifndef IN_RING0 + +/* XXX Currently not needed anywhere. alloca() induces some linker problems for ring 0 code + * with newer versions of VCC */ + +RTDECL(int) RTStrAAppendExNVTag(char **ppsz, size_t cPairs, va_list va, const char *pszTag) +{ + AssertPtr(ppsz); + if (!cPairs) + return VINF_SUCCESS; + + /* + * Determine the length of each string and calc the new total. + */ + struct RTStrAAppendExNVStruct + { + const char *psz; + size_t cch; + } *paPairs = (struct RTStrAAppendExNVStruct *)alloca(cPairs * sizeof(*paPairs)); + AssertReturn(paPairs, VERR_NO_STR_MEMORY); + + size_t cchOrg = *ppsz ? strlen(*ppsz) : 0; + size_t cchNewTotal = cchOrg; + for (size_t i = 0; i < cPairs; i++) + { + const char *psz = va_arg(va, const char *); + size_t cch = va_arg(va, size_t); + AssertPtrNull(psz); + Assert(cch == RTSTR_MAX || cch == RTStrNLen(psz, cch)); + + if (cch == RTSTR_MAX) + cch = psz ? strlen(psz) : 0; + cchNewTotal += cch; + + paPairs[i].cch = cch; + paPairs[i].psz = psz; + } + cchNewTotal++; /* '\0' */ + + /* + * Try reallocate the string. + */ + char *pszNew = (char *)RTMemReallocTag(*ppsz, cchNewTotal, pszTag); + if (!pszNew) + return VERR_NO_STR_MEMORY; + + /* + * Do the appending. + */ + size_t off = cchOrg; + for (size_t i = 0; i < cPairs; i++) + { + memcpy(&pszNew[off], paPairs[i].psz, paPairs[i].cch); + off += paPairs[i].cch; + } + Assert(off + 1 == cchNewTotal); + pszNew[off] = '\0'; + + /* done */ + *ppsz = pszNew; + return VINF_SUCCESS; +} +RT_EXPORT_SYMBOL(RTStrAAppendExNVTag); + +#endif + + +RTDECL(int) RTStrATruncateTag(char **ppsz, size_t cchNew, const char *pszTag) +{ + char *pszNew; + char *pszOld = *ppsz; + if (!cchNew) + { + if (pszOld && *pszOld) + { + *pszOld = '\0'; + pszNew = (char *)RTMemReallocTag(pszOld, 1, pszTag); + if (pszNew) + *ppsz = pszNew; + } + } + else + { + char *pszZero; + AssertPtrReturn(pszOld, VERR_OUT_OF_RANGE); + AssertReturn(cchNew < ~(size_t)64, VERR_OUT_OF_RANGE); + pszZero = RTStrEnd(pszOld, cchNew + 63); + AssertReturn(!pszZero || (size_t)(pszZero - pszOld) >= cchNew, VERR_OUT_OF_RANGE); + pszOld[cchNew] = '\0'; + if (!pszZero) + { + pszNew = (char *)RTMemReallocTag(pszOld, cchNew + 1, pszTag); + if (pszNew) + *ppsz = pszNew; + } + } + return VINF_SUCCESS; +} +RT_EXPORT_SYMBOL(RTStrATruncateTag); + diff --git a/src/VBox/Runtime/common/string/strlen.asm b/src/VBox/Runtime/common/string/strlen.asm new file mode 100644 index 00000000..4789c841 --- /dev/null +++ b/src/VBox/Runtime/common/string/strlen.asm @@ -0,0 +1,65 @@ +; $Id: strlen.asm $ +;; @file +; IPRT - No-CRT strlen - AMD64 & X86. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; @param psz gcc: rdi msc: rcx x86: [esp+4] wcall: eax +RT_NOCRT_BEGINPROC strlen + cld +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + mov r9, rdi ; save rdi + mov rdi, rcx + %endif +%else + mov edx, edi ; save edi + %ifdef ASM_CALL32_WATCOM + mov edi, eax + %else + mov edi, [esp + 4] + %endif +%endif + + ; do the search + mov xCX, -1 + xor eax, eax + repne scasb + + ; found it + neg xCX + lea xAX, [xCX - 2] +%ifdef ASM_CALL64_MSC + mov rdi, r9 +%endif +%ifdef RT_ARCH_X86 + mov edi, edx +%endif + ret +ENDPROC RT_NOCRT(strlen) + diff --git a/src/VBox/Runtime/common/string/strlen.cpp b/src/VBox/Runtime/common/string/strlen.cpp new file mode 100644 index 00000000..6f90c362 --- /dev/null +++ b/src/VBox/Runtime/common/string/strlen.cpp @@ -0,0 +1,55 @@ +/* $Id: strlen.cpp $ */ +/** @file + * IPRT - CRT Strings, strlen(). + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> + + +/** + * Find the length of a zeroterminated byte string. + * + * @returns String length in bytes. + * @param pszString Zero terminated string. + */ +#ifdef _MSC_VER +# if _MSC_VER >= 1400 +__checkReturn size_t __cdecl strlen(__in_z const char *pszString) +# else +size_t strlen(const char *pszString) +# endif +#else +size_t strlen(const char *pszString) +#endif +{ + register const char *psz = pszString; + while (*psz) + psz++; + return psz - pszString; +} + diff --git a/src/VBox/Runtime/common/string/strlen_alias.c b/src/VBox/Runtime/common/string/strlen_alias.c new file mode 100644 index 00000000..bd1504c9 --- /dev/null +++ b/src/VBox/Runtime/common/string/strlen_alias.c @@ -0,0 +1,53 @@ +/* $Id: strlen_alias.c $ */ +/** @file + * IPRT - No-CRT strlen() alias for gcc. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/nocrt/string.h> +#undef strlen + +#if defined(RT_OS_DARWIN) || defined(RT_OS_WINDOWS) +# ifndef __MINGW32__ +# pragma weak strlen +# endif + +/* No alias support here (yet in the ming case). */ +extern size_t (strlen)(const char *psz) +{ + return RT_NOCRT(strlen)(psz); +} + +#elif __GNUC__ >= 4 +/* create a weak alias. */ +__asm__(".weak strlen\t\n" + " .set strlen," RT_NOCRT_STR(strlen) "\t\n"); +#else +/* create a weak alias. */ +extern __typeof(RT_NOCRT(strlen)) strlen __attribute__((weak, alias(RT_NOCRT_STR(strlen)))); +#endif + diff --git a/src/VBox/Runtime/common/string/strncmp.asm b/src/VBox/Runtime/common/string/strncmp.asm new file mode 100644 index 00000000..c138723b --- /dev/null +++ b/src/VBox/Runtime/common/string/strncmp.asm @@ -0,0 +1,131 @@ +; $Id: strncmp.asm $ +;; @file +; IPRT - No-CRT strncmp - AMD64 & X86. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; @param psz1 gcc: rdi msc: rcx x86:[esp+4] wcall: eax +; @param psz2 gcc: rsi msc: rdx x86:[esp+8] wcall: edx +; @param cch gcc: rdx msc: r8 x86:[esp+12] wcall: ebx +RT_NOCRT_BEGINPROC strncmp + ; input +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + %define psz1 rcx + %define psz2 rdx + %define cch r8 + %else + %define psz1 rdi + %define psz2 rsi + %define cch rdx + %endif +%elifdef ASM_CALL32_WATCOM + mov ecx, eax + %define psz1 ecx + %define psz2 edx + %define cch ebx + +%elifdef RT_ARCH_X86 + mov ecx, [esp + 4] + mov edx, [esp + 8] + push ebx + mov ebx, [esp + 12+4] + %define psz1 ecx + %define psz2 edx + %define cch ebx +%else + %error "Unknown arch" +%endif + + ; + ; The loop. + ; + test cch, cch + jz .equal +.next: + mov al, [psz1] + mov ah, [psz2] + cmp al, ah + jne .not_equal + test al, al + jz .equal + dec cch + jz .equal + + mov al, [psz1 + 1] + mov ah, [psz2 + 1] + cmp al, ah + jne .not_equal + test al, al + jz .equal + dec cch + jz .equal + + mov al, [psz1 + 2] + mov ah, [psz2 + 2] + cmp al, ah + jne .not_equal + test al, al + jz .equal + dec cch + jz .equal + + mov al, [psz1 + 3] + mov ah, [psz2 + 3] + cmp al, ah + jne .not_equal + test al, al + jz .equal + dec cch + jz .equal + + add psz1, 4 + add psz2, 4 + jmp .next + +.equal: + xor eax, eax +%ifndef ASM_CALL32_WATCOM + %ifdef RT_ARCH_X86 + pop ebx + %endif +%endif + ret + +.not_equal: + movzx ecx, ah + and eax, 0ffh + sub eax, ecx +%ifndef ASM_CALL32_WATCOM + %ifdef RT_ARCH_X86 + pop ebx + %endif +%endif + ret +ENDPROC RT_NOCRT(strncmp) + diff --git a/src/VBox/Runtime/common/string/strncmp.cpp b/src/VBox/Runtime/common/string/strncmp.cpp new file mode 100644 index 00000000..beb377d6 --- /dev/null +++ b/src/VBox/Runtime/common/string/strncmp.cpp @@ -0,0 +1,52 @@ +/* $Id: strncmp.cpp $ */ +/** @file + * IPRT - CRT Strings, strncmp(). + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#include <iprt/string.h> + +#ifdef _MSC_VER +_CRTIMP int __cdecl strncmp +#elif defined(__WATCOMC__) +_WCRTLINK int std::strncmp +#else +int strncmp +#endif + (const char *pszStr1, const char *pszStr2, size_t cb) +#if defined(__THROW) && !defined(RT_OS_WINDOWS) && !defined(RT_OS_OS2) + __THROW +#endif +{ + const char* fini = pszStr1+cb; + while (pszStr1 < fini) + { + int res=*pszStr1-*pszStr2; + if (res) + return res; + if (!*pszStr1) + return 0; + ++pszStr1; ++pszStr2; + } + return 0; +} diff --git a/src/VBox/Runtime/common/string/strncpy.asm b/src/VBox/Runtime/common/string/strncpy.asm new file mode 100644 index 00000000..4e8533df --- /dev/null +++ b/src/VBox/Runtime/common/string/strncpy.asm @@ -0,0 +1,129 @@ +; $Id: strncpy.asm $ +;; @file +; IPRT - No-CRT strncpy - AMD64 & X86. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +BEGINCODE + +;; +; @param pszDst gcc: rdi msc: rcx x86:[esp+4] wcall: eax +; @param pszSrc gcc: rsi msc: rdx x86:[esp+8] wcall: edx +; @param cbMax gcc: rdx msc: r8 x86:[esp+12] wcall: ebx +RT_NOCRT_BEGINPROC strncpy + ; input +%ifdef RT_ARCH_AMD64 + %ifdef ASM_CALL64_MSC + %define pszDst rcx + %define pszSrc rdx + %define cbMax r8 + %else + %define pszDst rdi + %define pszSrc rsi + %define cbMax rdx + %endif + mov r9, pszDst +%else + %ifdef ASM_CALL32_WATCOM + mov ecx, eax + %define pszDst ecx + %define pszSrc edx + %define cbMax ebx + %else + mov ecx, [esp + 4] + mov edx, [esp + 8] + push ebx + mov ebx, [esp + 12 + 4] + %define pszDst ecx + %define pszSrc edx + %define cbMax ebx + %endif + push pszDst +%endif + + ; + ; The rolled out loop. + ; +.next: + cmp cbMax, 4 + jb .simple_intro + + mov al, [pszSrc] + mov [pszDst], al + test al, al + jz .done + + mov al, [pszSrc + 1] + mov [pszDst + 1], al + test al, al + jz .done + + mov al, [pszSrc + 2] + mov [pszDst + 2], al + test al, al + jz .done + + mov al, [pszSrc + 3] + mov [pszDst + 3], al + test al, al + jz .done + + add pszDst, 4 + add pszSrc, 4 + sub cbMax, 4 + jmp .next + + ; + ; Char by char. + ; +.simple_intro: + test cbMax, cbMax + jz .done + +.simple_next: + mov al, [pszSrc] + mov [pszDst], al + test al, al + jz .done + + dec cbMax + jz .done + + inc pszSrc + inc pszDst + jmp .simple_next + +.done: +%ifdef RT_ARCH_AMD64 + mov rax, r9 +%else + %ifndef ASM_CALL32_WATCOM + pop ebx + %endif + pop eax +%endif + ret +ENDPROC RT_NOCRT(strncpy) + diff --git a/src/VBox/Runtime/common/string/strpbrk.cpp b/src/VBox/Runtime/common/string/strpbrk.cpp new file mode 100644 index 00000000..f116b39b --- /dev/null +++ b/src/VBox/Runtime/common/string/strpbrk.cpp @@ -0,0 +1,66 @@ +/* $Id: strpbrk.cpp $ */ +/** @file + * IPRT - strpbrk(). + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> + + +/** + * Find the first occurrence of a character in pszChars in pszStr. + * + * @returns + */ +#ifdef _MSC_VER +# if _MSC_VER >= 1400 +_CRTIMP __checkReturn _CONST_RETURN char * __cdecl strpbrk(__in_z const char *pszStr, __in_z const char *pszChars) +# else +_CRTIMP char * __cdecl strpbrk(const char *pszStr, const char *pszChars) +# endif +#elif defined(__WATCOMC__) +_WCRTLINK char *std::strpbrk(const char *pszStr, const char *pszChars) +#else +char *strpbrk(const char *pszStr, const char *pszChars) +# if defined(__THROW) && !defined(RT_OS_WINDOWS) && !defined(RT_OS_OS2) + __THROW +# endif +#endif +{ + int chCur; + while ((chCur = *pszStr++) != '\0') + { + int ch; + const char *psz = pszChars; + while ((ch = *psz++) != '\0') + if (ch == chCur) + return (char *)(pszStr - 1); + + } + return NULL; +} + diff --git a/src/VBox/Runtime/common/string/strprintf.cpp b/src/VBox/Runtime/common/string/strprintf.cpp new file mode 100644 index 00000000..df56ada9 --- /dev/null +++ b/src/VBox/Runtime/common/string/strprintf.cpp @@ -0,0 +1,149 @@ +/* $Id: strprintf.cpp $ */ +/** @file + * IPRT - String Formatters. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> + + +/********************************************************************************************************************************* +* Structures and Typedefs * +*********************************************************************************************************************************/ +/** strbufoutput() argument structure. */ +typedef struct STRBUFARG +{ + /** Pointer to current buffer position. */ + char *psz; + /** Number of bytes left in the buffer - not including the trailing zero. */ + size_t cch; +} STRBUFARG; +/** Pointer to a strbufoutput() argument structure. */ +typedef STRBUFARG *PSTRBUFARG; + + +/********************************************************************************************************************************* +* Internal Functions * +*********************************************************************************************************************************/ +static DECLCALLBACK(size_t) strbufoutput(void *pvArg, const char *pachChars, size_t cbChars); + + +/** + * Output callback. + * + * @returns number of bytes written. + * @param pvArg Pointer to a STRBUFARG structure. + * @param pachChars Pointer to an array of utf-8 characters. + * @param cbChars Number of bytes in the character array pointed to by pachChars. + */ +static DECLCALLBACK(size_t) strbufoutput(void *pvArg, const char *pachChars, size_t cbChars) +{ + PSTRBUFARG pArg = (PSTRBUFARG)pvArg; + char *pszCur = pArg->psz; /* We actually have to spell this out for VS2010, or it will load for each case. */ + + cbChars = RT_MIN(pArg->cch, cbChars); + if (cbChars) + { + pArg->cch -= cbChars; + + /* Note! For VS2010/64 we need at least 7 case statements before it generates a jump table. */ + switch (cbChars) + { + default: + memcpy(pszCur, pachChars, cbChars); + break; + case 8: pszCur[7] = pachChars[7]; RT_FALL_THRU(); + case 7: pszCur[6] = pachChars[6]; RT_FALL_THRU(); + case 6: pszCur[5] = pachChars[5]; RT_FALL_THRU(); + case 5: pszCur[4] = pachChars[4]; RT_FALL_THRU(); + case 4: pszCur[3] = pachChars[3]; RT_FALL_THRU(); + case 3: pszCur[2] = pachChars[2]; RT_FALL_THRU(); + case 2: pszCur[1] = pachChars[1]; RT_FALL_THRU(); + case 1: pszCur[0] = pachChars[0]; RT_FALL_THRU(); + case 0: + break; + } + pArg->psz = pszCur += cbChars; + } + *pszCur = '\0'; + + return cbChars; +} + + +RTDECL(size_t) RTStrPrintf(char *pszBuffer, size_t cchBuffer, const char *pszFormat, ...) +{ + /* Explicitly inline RTStrPrintfV + RTStrPrintfExV here because this is a frequently use API. */ + STRBUFARG Arg; + va_list args; + size_t cbRet; + + AssertMsgReturn(cchBuffer, ("Excellent idea! Format a string with no space for the output!\n"), 0); + Arg.psz = pszBuffer; + Arg.cch = cchBuffer - 1; + + va_start(args, pszFormat); + cbRet = RTStrFormatV(strbufoutput, &Arg, NULL, NULL, pszFormat, args); + va_end(args); + + return cbRet; +} +RT_EXPORT_SYMBOL(RTStrPrintf); + + +RTDECL(size_t) RTStrPrintfExV(PFNSTRFORMAT pfnFormat, void *pvArg, char *pszBuffer, size_t cchBuffer, const char *pszFormat, va_list args) +{ + STRBUFARG Arg; + AssertMsgReturn(cchBuffer, ("Excellent idea! Format a string with no space for the output!\n"), 0); + Arg.psz = pszBuffer; + Arg.cch = cchBuffer - 1; + return RTStrFormatV(strbufoutput, &Arg, pfnFormat, pvArg, pszFormat, args); +} +RT_EXPORT_SYMBOL(RTStrPrintfExV); + + +RTDECL(size_t) RTStrPrintfV(char *pszBuffer, size_t cchBuffer, const char *pszFormat, va_list args) +{ + return RTStrPrintfExV(NULL, NULL, pszBuffer, cchBuffer, pszFormat, args); +} +RT_EXPORT_SYMBOL(RTStrPrintfV); + + +RTDECL(size_t) RTStrPrintfEx(PFNSTRFORMAT pfnFormat, void *pvArg, char *pszBuffer, size_t cchBuffer, const char *pszFormat, ...) +{ + va_list args; + size_t cbRet; + va_start(args, pszFormat); + cbRet = RTStrPrintfExV(pfnFormat, pvArg, pszBuffer, cchBuffer, pszFormat, args); + va_end(args); + return cbRet; +} +RT_EXPORT_SYMBOL(RTStrPrintfEx); + diff --git a/src/VBox/Runtime/common/string/strprintf2.cpp b/src/VBox/Runtime/common/string/strprintf2.cpp new file mode 100644 index 00000000..11f0983c --- /dev/null +++ b/src/VBox/Runtime/common/string/strprintf2.cpp @@ -0,0 +1,163 @@ +/* $Id: strprintf2.cpp $ */ +/** @file + * IPRT - String Formatters, alternative. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> + + +/********************************************************************************************************************************* +* Structures and Typedefs * +*********************************************************************************************************************************/ +/** rtStrPrintf2Output() argument structure. */ +typedef struct STRPRINTF2OUTPUTARGS +{ + /** Pointer to current buffer position. */ + char *pszCur; + /** Number of bytes left in the buffer (including the trailing zero). */ + size_t cbLeft; + /** Set if we overflowed. */ + bool fOverflowed; +} STRPRINTF2OUTPUTARGS; +/** Pointer to a rtStrPrintf2Output() argument structure. */ +typedef STRPRINTF2OUTPUTARGS *PSTRPRINTF2OUTPUTARGS; + + +/** + * Output callback. + * + * @returns cbChars + * + * @param pvArg Pointer to a STRBUFARG structure. + * @param pachChars Pointer to an array of utf-8 characters. + * @param cbChars Number of bytes in the character array pointed to by pachChars. + */ +static DECLCALLBACK(size_t) rtStrPrintf2Output(void *pvArg, const char *pachChars, size_t cbChars) +{ + PSTRPRINTF2OUTPUTARGS pArgs = (PSTRPRINTF2OUTPUTARGS)pvArg; + char *pszCur = pArgs->pszCur; /* We actually have to spell this out for VS2010, or it will load it for each case. */ + + if (cbChars < pArgs->cbLeft) + { + pArgs->cbLeft -= cbChars; + + /* Note! For VS2010/64 we need at least 7 case statements before it generates a jump table. */ + switch (cbChars) + { + default: + memcpy(pszCur, pachChars, cbChars); + break; + case 8: pszCur[7] = pachChars[7]; RT_FALL_THRU(); + case 7: pszCur[6] = pachChars[6]; RT_FALL_THRU(); + case 6: pszCur[5] = pachChars[5]; RT_FALL_THRU(); + case 5: pszCur[4] = pachChars[4]; RT_FALL_THRU(); + case 4: pszCur[3] = pachChars[3]; RT_FALL_THRU(); + case 3: pszCur[2] = pachChars[2]; RT_FALL_THRU(); + case 2: pszCur[1] = pachChars[1]; RT_FALL_THRU(); + case 1: pszCur[0] = pachChars[0]; RT_FALL_THRU(); + case 0: + break; + } + pArgs->pszCur = pszCur += cbChars; + *pszCur = '\0'; + } + else + { + size_t cbLeft = pArgs->cbLeft; + if (cbLeft-- > 1) + { + memcpy(pszCur, pachChars, cbLeft); + pArgs->pszCur = pszCur += cbLeft; + *pszCur = '\0'; + pArgs->cbLeft = 1; + } + pArgs->fOverflowed = true; + } + + return cbChars; +} + + +RTDECL(ssize_t) RTStrPrintf2(char *pszBuffer, size_t cchBuffer, const char *pszFormat, ...) +{ + /* Explicitly inline RTStrPrintf2V + RTStrPrintf2ExV here because this is a frequently use API. */ + STRPRINTF2OUTPUTARGS Args; + size_t cchRet; + va_list args; + AssertMsg(cchBuffer > 0, ("Excellent idea! Format a string with no space for the output!\n")); + + Args.pszCur = pszBuffer; + Args.cbLeft = cchBuffer; + Args.fOverflowed = false; + + va_start(args, pszFormat); + cchRet = RTStrFormatV(rtStrPrintf2Output, &Args, NULL, NULL, pszFormat, args); + va_end(args); + + return !Args.fOverflowed ? (ssize_t)cchRet : -(ssize_t)cchRet - 1; +} +RT_EXPORT_SYMBOL(RTStrPrintf2); + + +RTDECL(ssize_t) RTStrPrintf2ExV(PFNSTRFORMAT pfnFormat, void *pvArg, char *pszBuffer, size_t cchBuffer, + const char *pszFormat, va_list args) +{ + STRPRINTF2OUTPUTARGS Args; + size_t cchRet; + AssertMsg(cchBuffer > 0, ("Excellent idea! Format a string with no space for the output!\n")); + + Args.pszCur = pszBuffer; + Args.cbLeft = cchBuffer; + Args.fOverflowed = false; + cchRet = RTStrFormatV(rtStrPrintf2Output, &Args, pfnFormat, pvArg, pszFormat, args); + return !Args.fOverflowed ? (ssize_t)cchRet : -(ssize_t)cchRet - 1; +} +RT_EXPORT_SYMBOL(RTStrPrintf2ExV); + + +RTDECL(ssize_t) RTStrPrintf2V(char *pszBuffer, size_t cchBuffer, const char *pszFormat, va_list args) +{ + return RTStrPrintf2ExV(NULL, NULL, pszBuffer, cchBuffer, pszFormat, args); +} +RT_EXPORT_SYMBOL(RTStrPrintf2V); + + +RTDECL(ssize_t) RTStrPrintf2Ex(PFNSTRFORMAT pfnFormat, void *pvArg, char *pszBuffer, size_t cchBuffer, const char *pszFormat, ...) +{ + va_list args; + ssize_t cbRet; + va_start(args, pszFormat); + cbRet = RTStrPrintf2ExV(pfnFormat, pvArg, pszBuffer, cchBuffer, pszFormat, args); + va_end(args); + return cbRet; +} +RT_EXPORT_SYMBOL(RTStrPrintf2Ex); + diff --git a/src/VBox/Runtime/common/string/strspace.cpp b/src/VBox/Runtime/common/string/strspace.cpp new file mode 100644 index 00000000..1ede87cb --- /dev/null +++ b/src/VBox/Runtime/common/string/strspace.cpp @@ -0,0 +1,242 @@ +/* $Id: strspace.cpp $ */ +/** @file + * IPRT - Unique String Spaces. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> +#include "internal/strhash.h" + + +/********************************************************************************************************************************* +* Defined Constants And Macros * +*********************************************************************************************************************************/ +/* + * AVL configuration. + */ +#define KAVL_DECL(a_Type) static a_Type +#define KAVL_FN(a) rtstrspace##a +#define KAVL_MAX_STACK 27 /* Up to 2^24 nodes. */ +#define KAVL_EQUAL_ALLOWED 1 +#define KAVLNODECORE RTSTRSPACECORE +#define PKAVLNODECORE PRTSTRSPACECORE +#define PPKAVLNODECORE PPRTSTRSPACECORE +#define KAVLKEY uint32_t +#define PKAVLKEY uint32_t * + +#define PKAVLCALLBACK PFNRTSTRSPACECALLBACK + +/* + * AVL Compare macros + */ +#define KAVL_G(key1, key2) (key1 > key2) +#define KAVL_E(key1, key2) (key1 == key2) +#define KAVL_NE(key1, key2) (key1 != key2) + + +/* + * Include the code. + */ +#define SSToDS(ptr) ptr +#define KMAX RT_MAX +#define kASSERT Assert +#include "../table/avl_Base.cpp.h" +#include "../table/avl_Get.cpp.h" +#include "../table/avl_DoWithAll.cpp.h" +#include "../table/avl_Destroy.cpp.h" + + + +/** + * Inserts a string into a unique string space. + * + * @returns true on success. + * @returns false if the string collided with an existing string. + * @param pStrSpace The space to insert it into. + * @param pStr The string node. + */ +RTDECL(bool) RTStrSpaceInsert(PRTSTRSPACE pStrSpace, PRTSTRSPACECORE pStr) +{ + pStr->Key = sdbm(pStr->pszString, &pStr->cchString); + PRTSTRSPACECORE pMatch = KAVL_FN(Get)(pStrSpace, pStr->Key); + if (!pMatch) + return KAVL_FN(Insert)(pStrSpace, pStr); + + /* Check for clashes. */ + for (PRTSTRSPACECORE pCur = pMatch; pCur; pCur = pCur->pList) + if ( pCur->cchString == pStr->cchString + && !memcmp(pCur->pszString, pStr->pszString, pStr->cchString)) + return false; + pStr->pList = pMatch->pList; + pMatch->pList = pStr; + return true; +} +RT_EXPORT_SYMBOL(RTStrSpaceInsert); + + +/** + * Removes a string from a unique string space. + * + * @returns Pointer to the removed string node. + * @returns NULL if the string was not found in the string space. + * @param pStrSpace The space to insert it into. + * @param pszString The string to remove. + */ +RTDECL(PRTSTRSPACECORE) RTStrSpaceRemove(PRTSTRSPACE pStrSpace, const char *pszString) +{ + size_t cchString; + KAVLKEY Key = sdbm(pszString, &cchString); + PRTSTRSPACECORE pCur = KAVL_FN(Get)(pStrSpace, Key); + if (!pCur) + return NULL; + + /* find the right one. */ + PRTSTRSPACECORE pPrev = NULL; + for (; pCur; pPrev = pCur, pCur = pCur->pList) + if ( pCur->cchString == cchString + && !memcmp(pCur->pszString, pszString, cchString)) + break; + if (pCur) + { + if (pPrev) + /* simple, it's in the linked list. */ + pPrev->pList = pCur->pList; + else + { + /* in the tree. remove and reinsert list head. */ + PRTSTRSPACECORE pInsert = pCur->pList; + pCur->pList = NULL; + pCur = KAVL_FN(Remove)(pStrSpace, Key); + Assert(pCur); + if (pInsert) + { + PRTSTRSPACECORE pList = pInsert->pList; + bool fRc = KAVL_FN(Insert)(pStrSpace, pInsert); + Assert(fRc); NOREF(fRc); + pInsert->pList = pList; + } + } + } + + return pCur; +} +RT_EXPORT_SYMBOL(RTStrSpaceRemove); + + +/** + * Gets a string from a unique string space. + * + * @returns Pointer to the string node. + * @returns NULL if the string was not found in the string space. + * @param pStrSpace The space to insert it into. + * @param pszString The string to get. + */ +RTDECL(PRTSTRSPACECORE) RTStrSpaceGet(PRTSTRSPACE pStrSpace, const char *pszString) +{ + size_t cchString; + KAVLKEY Key = sdbm(pszString, &cchString); + PRTSTRSPACECORE pCur = KAVL_FN(Get)(pStrSpace, Key); + if (!pCur) + return NULL; + + /* Linear search. */ + for (; pCur; pCur = pCur->pList) + if ( pCur->cchString == cchString + && !memcmp(pCur->pszString, pszString, cchString)) + return pCur; + return NULL; +} +RT_EXPORT_SYMBOL(RTStrSpaceGet); + + +/** + * Gets a string from a unique string space. + * + * @returns Pointer to the string node. + * @returns NULL if the string was not found in the string space. + * @param pStrSpace The space to insert it into. + * @param pszString The string to get. + * @param cchMax The max string length to evaluate. Passing + * RTSTR_MAX is ok and makes it behave just like + * RTStrSpaceGet. + */ +RTDECL(PRTSTRSPACECORE) RTStrSpaceGetN(PRTSTRSPACE pStrSpace, const char *pszString, size_t cchMax) +{ + size_t cchString; + KAVLKEY Key = sdbmN(pszString, cchMax, &cchString); + PRTSTRSPACECORE pCur = KAVL_FN(Get)(pStrSpace, Key); + if (!pCur) + return NULL; + + /* Linear search. */ + for (; pCur; pCur = pCur->pList) + if ( pCur->cchString == cchString + && !memcmp(pCur->pszString, pszString, cchString)) + return pCur; + return NULL; +} +RT_EXPORT_SYMBOL(RTStrSpaceGetN); + + +/** + * Enumerates the string space. + * The caller supplies a callback which will be called for each of + * the string nodes. + * + * @returns 0 or what ever non-zero return value pfnCallback returned + * when aborting the destruction. + * @param pStrSpace The space to insert it into. + * @param pfnCallback The callback. + * @param pvUser The user argument. + */ +RTDECL(int) RTStrSpaceEnumerate(PRTSTRSPACE pStrSpace, PFNRTSTRSPACECALLBACK pfnCallback, void *pvUser) +{ + return KAVL_FN(DoWithAll)(pStrSpace, true, pfnCallback, pvUser); +} +RT_EXPORT_SYMBOL(RTStrSpaceEnumerate); + + +/** + * Destroys the string space. + * The caller supplies a callback which will be called for each of + * the string nodes in for freeing their memory and other resources. + * + * @returns 0 or what ever non-zero return value pfnCallback returned + * when aborting the destruction. + * @param pStrSpace The space to insert it into. + * @param pfnCallback The callback. + * @param pvUser The user argument. + */ +RTDECL(int) RTStrSpaceDestroy(PRTSTRSPACE pStrSpace, PFNRTSTRSPACECALLBACK pfnCallback, void *pvUser) +{ + return KAVL_FN(Destroy)(pStrSpace, pfnCallback, pvUser); +} +RT_EXPORT_SYMBOL(RTStrSpaceDestroy); + diff --git a/src/VBox/Runtime/common/string/strstrip.cpp b/src/VBox/Runtime/common/string/strstrip.cpp new file mode 100644 index 00000000..766610cd --- /dev/null +++ b/src/VBox/Runtime/common/string/strstrip.cpp @@ -0,0 +1,93 @@ +/* $Id: strstrip.cpp $ */ +/** @file + * IPRT - String Stripping and Trimming. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/ctype.h> +#include <iprt/string.h> + + +/** + * Strips blankspaces from both ends of the string. + * + * @returns Pointer to first non-blank char in the string. + * @param psz The string to strip. + */ +RTDECL(char *) RTStrStrip(char *psz) +{ + /* left */ + while (RT_C_IS_SPACE(*psz)) + psz++; + + /* right */ + char *pszEnd = strchr(psz, '\0'); + while (--pszEnd > psz && RT_C_IS_SPACE(*pszEnd)) + *pszEnd = '\0'; + + return psz; +} +RT_EXPORT_SYMBOL(RTStrStrip); + + +/** + * Strips blankspaces from the start of the string. + * + * @returns Pointer to first non-blank char in the string. + * @param psz The string to strip. + */ +RTDECL(char *) RTStrStripL(const char *psz) +{ + /* left */ + while (RT_C_IS_SPACE(*psz)) + psz++; + + return (char *)psz; +} +RT_EXPORT_SYMBOL(RTStrStripL); + + +/** + * Strips blankspaces from the end of the string. + * + * @returns psz. + * @param psz The string to strip. + */ +RTDECL(char *) RTStrStripR(char *psz) +{ + /* right */ + char *pszEnd = strchr(psz, '\0'); + while (--pszEnd > psz && RT_C_IS_SPACE(*pszEnd)) + *pszEnd = '\0'; + + return psz; +} +RT_EXPORT_SYMBOL(RTStrStripR); + diff --git a/src/VBox/Runtime/common/string/strtonum.cpp b/src/VBox/Runtime/common/string/strtonum.cpp new file mode 100644 index 00000000..3e75e4b7 --- /dev/null +++ b/src/VBox/Runtime/common/string/strtonum.cpp @@ -0,0 +1,1016 @@ +/* $Id: strtonum.cpp $ */ +/** @file + * IPRT - String To Number Conversion. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> +#include <iprt/ctype.h> /* needed for RT_C_IS_DIGIT */ +#include <iprt/err.h> + + +/********************************************************************************************************************************* +* Global Variables * +*********************************************************************************************************************************/ +/** 8-bit char -> digit. */ +static const unsigned char g_auchDigits[256] = +{ + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,255,255,255,255,255,255, + 255, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,255,255,255,255,255, + 255, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 +}; +/** Approximated overflow shift checks. */ +static const char g_auchShift[36] = +{ + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 */ + 64, 64, 63, 63, 62, 62, 62, 62, 61, 61, 61, 61, 61, 61, 61, 61, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 59, 59, 59, 59 +}; + +/* +#include <stdio.h> +int main() +{ + int i; + printf("static const unsigned char g_auchDigits[256] =\n" + "{"); + for (i = 0; i < 256; i++) + { + int ch = 255; + if (i >= '0' && i <= '9') + ch = i - '0'; + else if (i >= 'a' && i <= 'z') + ch = i - 'a' + 10; + else if (i >= 'A' && i <= 'Z') + ch = i - 'A' + 10; + if (i == 0) + printf("\n %3d", ch); + else if ((i % 32) == 0) + printf(",\n %3d", ch); + else + printf(",%3d", ch); + } + printf("\n" + "};\n"); + return 0; +} +*/ + + +/** + * Converts a string representation of a number to a 64-bit unsigned number. + * + * @returns iprt status code. + * Warnings are used to indicate conversion problems. + * @retval VWRN_NUMBER_TOO_BIG + * @retval VWRN_NEGATIVE_UNSIGNED + * @retval VWRN_TRAILING_CHARS + * @retval VWRN_TRAILING_SPACES + * @retval VINF_SUCCESS + * @retval VERR_NO_DIGITS + * + * @param pszValue Pointer to the string value. + * @param ppszNext Where to store the pointer to the first char following the number. (Optional) + * @param uBase The base of the representation used. + * If the function will look for known prefixes before defaulting to 10. + * @param pu64 Where to store the converted number. (optional) + */ +RTDECL(int) RTStrToUInt64Ex(const char *pszValue, char **ppszNext, unsigned uBase, uint64_t *pu64) +{ + const char *psz = pszValue; + int iShift; + int rc; + uint64_t u64; + unsigned char uch; + + /* + * Positive/Negative stuff. + */ + bool fPositive = true; + for (;; psz++) + { + if (*psz == '+') + fPositive = true; + else if (*psz == '-') + fPositive = !fPositive; + else + break; + } + + /* + * Check for hex prefix. + */ + if (!uBase) + { + if ( psz[0] == '0' + && (psz[1] == 'x' || psz[1] == 'X') + && g_auchDigits[(unsigned char)psz[2]] < 16) + { + uBase = 16; + psz += 2; + } + else if ( psz[0] == '0' + && g_auchDigits[(unsigned char)psz[1]] < 8) + { + uBase = 8; + psz++; + } + else + uBase = 10; + } + else if ( uBase == 16 + && psz[0] == '0' + && (psz[1] == 'x' || psz[1] == 'X') + && g_auchDigits[(unsigned char)psz[2]] < 16) + psz += 2; + + /* + * Interpret the value. + * Note: We only support ascii digits at this time... :-) + */ + iShift = g_auchShift[uBase]; + pszValue = psz; /* (Prefix and sign doesn't count in the digit counting.) */ + rc = VINF_SUCCESS; + u64 = 0; + while ((uch = (unsigned char)*psz) != 0) + { + unsigned char chDigit = g_auchDigits[uch]; + uint64_t u64Prev; + + if (chDigit >= uBase) + break; + + u64Prev = u64; + u64 *= uBase; + u64 += chDigit; + if (u64Prev > u64 || (u64Prev >> iShift)) + rc = VWRN_NUMBER_TOO_BIG; + psz++; + } + + if (!fPositive) + { + if (rc == VINF_SUCCESS) + rc = VWRN_NEGATIVE_UNSIGNED; + u64 = -(int64_t)u64; + } + + if (pu64) + *pu64 = u64; + + if (psz == pszValue) + rc = VERR_NO_DIGITS; + + if (ppszNext) + *ppszNext = (char *)psz; + + /* + * Warn about trailing chars/spaces. + */ + if ( rc == VINF_SUCCESS + && *psz) + { + while (*psz == ' ' || *psz == '\t') + psz++; + rc = *psz ? VWRN_TRAILING_CHARS : VWRN_TRAILING_SPACES; + } + + return rc; +} +RT_EXPORT_SYMBOL(RTStrToUInt64Ex); + + +/** + * Converts a string representation of a number to a 64-bit unsigned number, + * making sure the full string is converted. + * + * @returns iprt status code. + * Warnings are used to indicate conversion problems. + * @retval VWRN_NUMBER_TOO_BIG + * @retval VWRN_NEGATIVE_UNSIGNED + * @retval VINF_SUCCESS + * @retval VERR_NO_DIGITS + * @retval VERR_TRAILING_SPACES + * @retval VERR_TRAILING_CHARS + * + * @param pszValue Pointer to the string value. + * @param uBase The base of the representation used. + * If the function will look for known prefixes before defaulting to 10. + * @param pu64 Where to store the converted number. (optional) + */ +RTDECL(int) RTStrToUInt64Full(const char *pszValue, unsigned uBase, uint64_t *pu64) +{ + char *psz; + int rc = RTStrToUInt64Ex(pszValue, &psz, uBase, pu64); + if (RT_SUCCESS(rc) && *psz) + { + if (rc == VWRN_TRAILING_CHARS || rc == VWRN_TRAILING_SPACES) + rc = -rc; + else + { + while (*psz == ' ' || *psz == '\t') + psz++; + rc = *psz ? VERR_TRAILING_CHARS : VERR_TRAILING_SPACES; + } + } + return rc; +} +RT_EXPORT_SYMBOL(RTStrToUInt64Full); + + +/** + * Converts a string representation of a number to a 64-bit unsigned number. + * The base is guessed. + * + * @returns 64-bit unsigned number on success. + * @returns 0 on failure. + * @param pszValue Pointer to the string value. + */ +RTDECL(uint64_t) RTStrToUInt64(const char *pszValue) +{ + uint64_t u64; + int rc = RTStrToUInt64Ex(pszValue, NULL, 0, &u64); + if (RT_SUCCESS(rc)) + return u64; + return 0; +} +RT_EXPORT_SYMBOL(RTStrToUInt64); + + +/** + * Converts a string representation of a number to a 32-bit unsigned number. + * + * @returns iprt status code. + * Warnings are used to indicate conversion problems. + * @retval VWRN_NUMBER_TOO_BIG + * @retval VWRN_NEGATIVE_UNSIGNED + * @retval VWRN_TRAILING_CHARS + * @retval VWRN_TRAILING_SPACES + * @retval VINF_SUCCESS + * @retval VERR_NO_DIGITS + * + * @param pszValue Pointer to the string value. + * @param ppszNext Where to store the pointer to the first char following the number. (Optional) + * @param uBase The base of the representation used. + * If the function will look for known prefixes before defaulting to 10. + * @param pu32 Where to store the converted number. (optional) + */ +RTDECL(int) RTStrToUInt32Ex(const char *pszValue, char **ppszNext, unsigned uBase, uint32_t *pu32) +{ + uint64_t u64; + int rc = RTStrToUInt64Ex(pszValue, ppszNext, uBase, &u64); + if (RT_SUCCESS(rc)) + { + if (u64 & ~0xffffffffULL) + rc = VWRN_NUMBER_TOO_BIG; + } + if (pu32) + *pu32 = (uint32_t)u64; + return rc; +} +RT_EXPORT_SYMBOL(RTStrToUInt32Ex); + + +/** + * Converts a string representation of a number to a 32-bit unsigned number, + * making sure the full string is converted. + * + * @returns iprt status code. + * Warnings are used to indicate conversion problems. + * @retval VWRN_NUMBER_TOO_BIG + * @retval VWRN_NEGATIVE_UNSIGNED + * @retval VINF_SUCCESS + * @retval VERR_NO_DIGITS + * @retval VERR_TRAILING_SPACES + * @retval VERR_TRAILING_CHARS + * + * @param pszValue Pointer to the string value. + * @param uBase The base of the representation used. + * If the function will look for known prefixes before defaulting to 10. + * @param pu32 Where to store the converted number. (optional) + */ +RTDECL(int) RTStrToUInt32Full(const char *pszValue, unsigned uBase, uint32_t *pu32) +{ + uint64_t u64; + int rc = RTStrToUInt64Full(pszValue, uBase, &u64); + if (RT_SUCCESS(rc)) + { + if (u64 & ~0xffffffffULL) + rc = VWRN_NUMBER_TOO_BIG; + } + if (pu32) + *pu32 = (uint32_t)u64; + return rc; +} +RT_EXPORT_SYMBOL(RTStrToUInt32Full); + + +/** + * Converts a string representation of a number to a 64-bit unsigned number. + * The base is guessed. + * + * @returns 32-bit unsigned number on success. + * @returns 0 on failure. + * @param pszValue Pointer to the string value. + */ +RTDECL(uint32_t) RTStrToUInt32(const char *pszValue) +{ + uint32_t u32; + int rc = RTStrToUInt32Ex(pszValue, NULL, 0, &u32); + if (RT_SUCCESS(rc)) + return u32; + return 0; +} +RT_EXPORT_SYMBOL(RTStrToUInt32); + + +/** + * Converts a string representation of a number to a 16-bit unsigned number. + * + * @returns iprt status code. + * Warnings are used to indicate conversion problems. + * @retval VWRN_NUMBER_TOO_BIG + * @retval VWRN_NEGATIVE_UNSIGNED + * @retval VWRN_TRAILING_CHARS + * @retval VWRN_TRAILING_SPACES + * @retval VINF_SUCCESS + * @retval VERR_NO_DIGITS + * + * @param pszValue Pointer to the string value. + * @param ppszNext Where to store the pointer to the first char following the number. (Optional) + * @param uBase The base of the representation used. + * If the function will look for known prefixes before defaulting to 10. + * @param pu16 Where to store the converted number. (optional) + */ +RTDECL(int) RTStrToUInt16Ex(const char *pszValue, char **ppszNext, unsigned uBase, uint16_t *pu16) +{ + uint64_t u64; + int rc = RTStrToUInt64Ex(pszValue, ppszNext, uBase, &u64); + if (RT_SUCCESS(rc)) + { + if (u64 & ~0xffffULL) + rc = VWRN_NUMBER_TOO_BIG; + } + if (pu16) + *pu16 = (uint16_t)u64; + return rc; +} +RT_EXPORT_SYMBOL(RTStrToUInt16Ex); + + +/** + * Converts a string representation of a number to a 16-bit unsigned number, + * making sure the full string is converted. + * + * @returns iprt status code. + * Warnings are used to indicate conversion problems. + * @retval VWRN_NUMBER_TOO_BIG + * @retval VWRN_NEGATIVE_UNSIGNED + * @retval VINF_SUCCESS + * @retval VERR_NO_DIGITS + * @retval VERR_TRAILING_SPACES + * @retval VERR_TRAILING_CHARS + * + * @param pszValue Pointer to the string value. + * @param uBase The base of the representation used. + * If the function will look for known prefixes before defaulting to 10. + * @param pu16 Where to store the converted number. (optional) + */ +RTDECL(int) RTStrToUInt16Full(const char *pszValue, unsigned uBase, uint16_t *pu16) +{ + uint64_t u64; + int rc = RTStrToUInt64Full(pszValue, uBase, &u64); + if (RT_SUCCESS(rc)) + { + if (u64 & ~0xffffULL) + rc = VWRN_NUMBER_TOO_BIG; + } + if (pu16) + *pu16 = (uint16_t)u64; + return rc; +} +RT_EXPORT_SYMBOL(RTStrToUInt16Full); + + +/** + * Converts a string representation of a number to a 16-bit unsigned number. + * The base is guessed. + * + * @returns 16-bit unsigned number on success. + * @returns 0 on failure. + * @param pszValue Pointer to the string value. + */ +RTDECL(uint16_t) RTStrToUInt16(const char *pszValue) +{ + uint16_t u16; + int rc = RTStrToUInt16Ex(pszValue, NULL, 0, &u16); + if (RT_SUCCESS(rc)) + return u16; + return 0; +} +RT_EXPORT_SYMBOL(RTStrToUInt16); + + +/** + * Converts a string representation of a number to a 8-bit unsigned number. + * + * @returns iprt status code. + * Warnings are used to indicate conversion problems. + * @retval VWRN_NUMBER_TOO_BIG + * @retval VWRN_NEGATIVE_UNSIGNED + * @retval VWRN_TRAILING_CHARS + * @retval VWRN_TRAILING_SPACES + * @retval VINF_SUCCESS + * @retval VERR_NO_DIGITS + * + * @param pszValue Pointer to the string value. + * @param ppszNext Where to store the pointer to the first char following the number. (Optional) + * @param uBase The base of the representation used. + * If the function will look for known prefixes before defaulting to 10. + * @param pu8 Where to store the converted number. (optional) + */ +RTDECL(int) RTStrToUInt8Ex(const char *pszValue, char **ppszNext, unsigned uBase, uint8_t *pu8) +{ + uint64_t u64; + int rc = RTStrToUInt64Ex(pszValue, ppszNext, uBase, &u64); + if (RT_SUCCESS(rc)) + { + if (u64 & ~0xffULL) + rc = VWRN_NUMBER_TOO_BIG; + } + if (pu8) + *pu8 = (uint8_t)u64; + return rc; +} +RT_EXPORT_SYMBOL(RTStrToUInt8Ex); + + +/** + * Converts a string representation of a number to a 8-bit unsigned number, + * making sure the full string is converted. + * + * @returns iprt status code. + * Warnings are used to indicate conversion problems. + * @retval VWRN_NUMBER_TOO_BIG + * @retval VWRN_NEGATIVE_UNSIGNED + * @retval VINF_SUCCESS + * @retval VERR_NO_DIGITS + * @retval VERR_TRAILING_SPACES + * @retval VERR_TRAILING_CHARS + * + * @param pszValue Pointer to the string value. + * @param uBase The base of the representation used. + * If the function will look for known prefixes before defaulting to 10. + * @param pu8 Where to store the converted number. (optional) + */ +RTDECL(int) RTStrToUInt8Full(const char *pszValue, unsigned uBase, uint8_t *pu8) +{ + uint64_t u64; + int rc = RTStrToUInt64Full(pszValue, uBase, &u64); + if (RT_SUCCESS(rc)) + { + if (u64 & ~0xffULL) + rc = VWRN_NUMBER_TOO_BIG; + } + if (pu8) + *pu8 = (uint8_t)u64; + return rc; +} +RT_EXPORT_SYMBOL(RTStrToUInt8Full); + + +/** + * Converts a string representation of a number to a 8-bit unsigned number. + * The base is guessed. + * + * @returns 8-bit unsigned number on success. + * @returns 0 on failure. + * @param pszValue Pointer to the string value. + */ +RTDECL(uint8_t) RTStrToUInt8(const char *pszValue) +{ + uint8_t u8; + int rc = RTStrToUInt8Ex(pszValue, NULL, 0, &u8); + if (RT_SUCCESS(rc)) + return u8; + return 0; +} +RT_EXPORT_SYMBOL(RTStrToUInt8); + + + + + + + +/** + * Converts a string representation of a number to a 64-bit signed number. + * + * @returns iprt status code. + * Warnings are used to indicate conversion problems. + * @retval VWRN_NUMBER_TOO_BIG + * @retval VWRN_TRAILING_CHARS + * @retval VWRN_TRAILING_SPACES + * @retval VINF_SUCCESS + * @retval VERR_NO_DIGITS + * + * @param pszValue Pointer to the string value. + * @param ppszNext Where to store the pointer to the first char following the number. (Optional) + * @param uBase The base of the representation used. + * If the function will look for known prefixes before defaulting to 10. + * @param pi64 Where to store the converted number. (optional) + */ +RTDECL(int) RTStrToInt64Ex(const char *pszValue, char **ppszNext, unsigned uBase, int64_t *pi64) +{ + const char *psz = pszValue; + int iShift; + int rc; + uint64_t u64; + unsigned char uch; + + /* + * Positive/Negative stuff. + */ + bool fPositive = true; + for (;; psz++) + { + if (*psz == '+') + fPositive = true; + else if (*psz == '-') + fPositive = !fPositive; + else + break; + } + + /* + * Check for hex prefix. + */ + if (!uBase) + { + if ( *psz == '0' + && (psz[1] == 'x' || psz[1] == 'X') + && g_auchDigits[(unsigned char)psz[2]] < 16) + { + uBase = 16; + psz += 2; + } + else if ( *psz == '0' + && g_auchDigits[(unsigned char)psz[1]] < 8) + { + uBase = 8; + psz++; + } + else + uBase = 10; + } + else if ( uBase == 16 + && *psz == '0' + && (psz[1] == 'x' || psz[1] == 'X') + && g_auchDigits[(unsigned char)psz[2]] < 16) + psz += 2; + + /* + * Interpret the value. + * Note: We only support ascii digits at this time... :-) + */ + iShift = g_auchShift[uBase]; + pszValue = psz; /* (Prefix and sign doesn't count in the digit counting.) */ + rc = VINF_SUCCESS; + u64 = 0; + while ((uch = (unsigned char)*psz) != 0) + { + unsigned char chDigit = g_auchDigits[uch]; + uint64_t u64Prev; + + if (chDigit >= uBase) + break; + + u64Prev = u64; + u64 *= uBase; + u64 += chDigit; + if (u64Prev > u64 || (u64Prev >> iShift)) + rc = VWRN_NUMBER_TOO_BIG; + psz++; + } + + if ( !(u64 & RT_BIT_64(63)) + || (!fPositive && u64 == RT_BIT_64(63)) ) + { /* likely */ } + else + rc = VWRN_NUMBER_TOO_BIG; + + if (pi64) + *pi64 = fPositive ? u64 : -(int64_t)u64; + + if (psz == pszValue) + rc = VERR_NO_DIGITS; + + if (ppszNext) + *ppszNext = (char *)psz; + + /* + * Warn about trailing chars/spaces. + */ + if ( rc == VINF_SUCCESS + && *psz) + { + while (*psz == ' ' || *psz == '\t') + psz++; + rc = *psz ? VWRN_TRAILING_CHARS : VWRN_TRAILING_SPACES; + } + + return rc; +} +RT_EXPORT_SYMBOL(RTStrToInt64Ex); + + +/** + * Converts a string representation of a number to a 64-bit signed number, + * making sure the full string is converted. + * + * @returns iprt status code. + * Warnings are used to indicate conversion problems. + * @retval VWRN_NUMBER_TOO_BIG + * @retval VINF_SUCCESS + * @retval VERR_TRAILING_CHARS + * @retval VERR_TRAILING_SPACES + * @retval VERR_NO_DIGITS + * + * @param pszValue Pointer to the string value. + * @param uBase The base of the representation used. + * If the function will look for known prefixes before defaulting to 10. + * @param pi64 Where to store the converted number. (optional) + */ +RTDECL(int) RTStrToInt64Full(const char *pszValue, unsigned uBase, int64_t *pi64) +{ + char *psz; + int rc = RTStrToInt64Ex(pszValue, &psz, uBase, pi64); + if (RT_SUCCESS(rc) && *psz) + { + if (rc == VWRN_TRAILING_CHARS || rc == VWRN_TRAILING_SPACES) + rc = -rc; + else + { + while (*psz == ' ' || *psz == '\t') + psz++; + rc = *psz ? VERR_TRAILING_CHARS : VERR_TRAILING_SPACES; + } + } + return rc; +} +RT_EXPORT_SYMBOL(RTStrToInt64Full); + + +/** + * Converts a string representation of a number to a 64-bit signed number. + * The base is guessed. + * + * @returns 64-bit signed number on success. + * @returns 0 on failure. + * @param pszValue Pointer to the string value. + */ +RTDECL(int64_t) RTStrToInt64(const char *pszValue) +{ + int64_t i64; + int rc = RTStrToInt64Ex(pszValue, NULL, 0, &i64); + if (RT_SUCCESS(rc)) + return i64; + return 0; +} +RT_EXPORT_SYMBOL(RTStrToInt64); + + +/** + * Converts a string representation of a number to a 32-bit signed number. + * + * @returns iprt status code. + * Warnings are used to indicate conversion problems. + * @retval VWRN_NUMBER_TOO_BIG + * @retval VWRN_TRAILING_CHARS + * @retval VWRN_TRAILING_SPACES + * @retval VINF_SUCCESS + * @retval VERR_NO_DIGITS + * + * @param pszValue Pointer to the string value. + * @param ppszNext Where to store the pointer to the first char following the number. (Optional) + * @param uBase The base of the representation used. + * If the function will look for known prefixes before defaulting to 10. + * @param pi32 Where to store the converted number. (optional) + */ +RTDECL(int) RTStrToInt32Ex(const char *pszValue, char **ppszNext, unsigned uBase, int32_t *pi32) +{ + int64_t i64; + int rc = RTStrToInt64Ex(pszValue, ppszNext, uBase, &i64); + if (RT_SUCCESS(rc)) + { + int32_t i32 = (int32_t)i64; + if (i64 != (int64_t)i32) + rc = VWRN_NUMBER_TOO_BIG; + } + if (pi32) + *pi32 = (int32_t)i64; + return rc; +} +RT_EXPORT_SYMBOL(RTStrToInt32Ex); + + +/** + * Converts a string representation of a number to a 32-bit signed number, + * making sure the full string is converted. + * + * @returns iprt status code. + * Warnings are used to indicate conversion problems. + * @retval VWRN_NUMBER_TOO_BIG + * @retval VINF_SUCCESS + * @retval VERR_TRAILING_CHARS + * @retval VERR_TRAILING_SPACES + * @retval VERR_NO_DIGITS + * + * @param pszValue Pointer to the string value. + * @param uBase The base of the representation used. + * If the function will look for known prefixes before defaulting to 10. + * @param pi32 Where to store the converted number. (optional) + */ +RTDECL(int) RTStrToInt32Full(const char *pszValue, unsigned uBase, int32_t *pi32) +{ + int64_t i64; + int rc = RTStrToInt64Full(pszValue, uBase, &i64); + if (RT_SUCCESS(rc)) + { + int32_t i32 = (int32_t)i64; + if (i64 != (int64_t)i32) + rc = VWRN_NUMBER_TOO_BIG; + } + if (pi32) + *pi32 = (int32_t)i64; + return rc; +} +RT_EXPORT_SYMBOL(RTStrToInt32Full); + + +/** + * Converts a string representation of a number to a 32-bit signed number. + * The base is guessed. + * + * @returns 32-bit signed number on success. + * @returns 0 on failure. + * @param pszValue Pointer to the string value. + */ +RTDECL(int32_t) RTStrToInt32(const char *pszValue) +{ + int32_t i32; + int rc = RTStrToInt32Ex(pszValue, NULL, 0, &i32); + if (RT_SUCCESS(rc)) + return i32; + return 0; +} +RT_EXPORT_SYMBOL(RTStrToInt32); + + +/** + * Converts a string representation of a number to a 16-bit signed number. + * + * @returns iprt status code. + * Warnings are used to indicate conversion problems. + * @retval VWRN_NUMBER_TOO_BIG + * @retval VWRN_TRAILING_CHARS + * @retval VWRN_TRAILING_SPACES + * @retval VINF_SUCCESS + * @retval VERR_NO_DIGITS + * + * @param pszValue Pointer to the string value. + * @param ppszNext Where to store the pointer to the first char following the number. (Optional) + * @param uBase The base of the representation used. + * If the function will look for known prefixes before defaulting to 10. + * @param pi16 Where to store the converted number. (optional) + */ +RTDECL(int) RTStrToInt16Ex(const char *pszValue, char **ppszNext, unsigned uBase, int16_t *pi16) +{ + int64_t i64; + int rc = RTStrToInt64Ex(pszValue, ppszNext, uBase, &i64); + if (RT_SUCCESS(rc)) + { + int16_t i16 = (int16_t)i64; + if (i64 != (int64_t)i16) + rc = VWRN_NUMBER_TOO_BIG; + } + if (pi16) + *pi16 = (int16_t)i64; + return rc; +} +RT_EXPORT_SYMBOL(RTStrToInt16Ex); + + +/** + * Converts a string representation of a number to a 16-bit signed number, + * making sure the full string is converted. + * + * @returns iprt status code. + * Warnings are used to indicate conversion problems. + * @retval VWRN_NUMBER_TOO_BIG + * @retval VINF_SUCCESS + * @retval VERR_TRAILING_CHARS + * @retval VERR_TRAILING_SPACES + * @retval VERR_NO_DIGITS + * + * @param pszValue Pointer to the string value. + * @param uBase The base of the representation used. + * If the function will look for known prefixes before defaulting to 10. + * @param pi16 Where to store the converted number. (optional) + */ +RTDECL(int) RTStrToInt16Full(const char *pszValue, unsigned uBase, int16_t *pi16) +{ + int64_t i64; + int rc = RTStrToInt64Full(pszValue, uBase, &i64); + if (RT_SUCCESS(rc)) + { + int16_t i16 = (int16_t)i64; + if (i64 != (int64_t)i16) + rc = VWRN_NUMBER_TOO_BIG; + } + if (pi16) + *pi16 = (int16_t)i64; + return rc; +} +RT_EXPORT_SYMBOL(RTStrToInt16Full); + + +/** + * Converts a string representation of a number to a 16-bit signed number. + * The base is guessed. + * + * @returns 16-bit signed number on success. + * @returns 0 on failure. + * @param pszValue Pointer to the string value. + */ +RTDECL(int16_t) RTStrToInt16(const char *pszValue) +{ + int16_t i16; + int rc = RTStrToInt16Ex(pszValue, NULL, 0, &i16); + if (RT_SUCCESS(rc)) + return i16; + return 0; +} +RT_EXPORT_SYMBOL(RTStrToInt16); + + +/** + * Converts a string representation of a number to a 8-bit signed number. + * + * @returns iprt status code. + * Warnings are used to indicate conversion problems. + * @retval VWRN_NUMBER_TOO_BIG + * @retval VWRN_TRAILING_CHARS + * @retval VWRN_TRAILING_SPACES + * @retval VINF_SUCCESS + * @retval VERR_NO_DIGITS + * + * @param pszValue Pointer to the string value. + * @param ppszNext Where to store the pointer to the first char following the number. (Optional) + * @param uBase The base of the representation used. + * If the function will look for known prefixes before defaulting to 10. + * @param pi8 Where to store the converted number. (optional) + */ +RTDECL(int) RTStrToInt8Ex(const char *pszValue, char **ppszNext, unsigned uBase, int8_t *pi8) +{ + int64_t i64; + int rc = RTStrToInt64Ex(pszValue, ppszNext, uBase, &i64); + if (RT_SUCCESS(rc)) + { + int8_t i8 = (int8_t)i64; + if (i64 != (int64_t)i8) + rc = VWRN_NUMBER_TOO_BIG; + } + if (pi8) + *pi8 = (int8_t)i64; + return rc; +} +RT_EXPORT_SYMBOL(RTStrToInt8Ex); + + +/** + * Converts a string representation of a number to a 8-bit signed number, + * making sure the full string is converted. + * + * @returns iprt status code. + * Warnings are used to indicate conversion problems. + * @retval VWRN_NUMBER_TOO_BIG + * @retval VINF_SUCCESS + * @retval VERR_TRAILING_CHARS + * @retval VERR_TRAILING_SPACES + * @retval VERR_NO_DIGITS + * + * @param pszValue Pointer to the string value. + * @param uBase The base of the representation used. + * If the function will look for known prefixes before defaulting to 10. + * @param pi8 Where to store the converted number. (optional) + */ +RTDECL(int) RTStrToInt8Full(const char *pszValue, unsigned uBase, int8_t *pi8) +{ + int64_t i64; + int rc = RTStrToInt64Full(pszValue, uBase, &i64); + if (RT_SUCCESS(rc)) + { + int8_t i8 = (int8_t)i64; + if (i64 != (int64_t)i8) + rc = VWRN_NUMBER_TOO_BIG; + } + if (pi8) + *pi8 = (int8_t)i64; + return rc; +} +RT_EXPORT_SYMBOL(RTStrToInt8Full); + + +/** + * Converts a string representation of a number to a 8-bit signed number. + * The base is guessed. + * + * @returns 8-bit signed number on success. + * @returns 0 on failure. + * @param pszValue Pointer to the string value. + */ +RTDECL(int8_t) RTStrToInt8(const char *pszValue) +{ + int8_t i8; + int rc = RTStrToInt8Ex(pszValue, NULL, 0, &i8); + if (RT_SUCCESS(rc)) + return i8; + return 0; +} +RT_EXPORT_SYMBOL(RTStrToInt8); + + +RTDECL(int) RTStrConvertHexBytes(char const *pszHex, void *pv, size_t cb, uint32_t fFlags) +{ + size_t cbDst; + uint8_t *pbDst; + const char *pszSrc; + + AssertPtrReturn(pszHex, VERR_INVALID_POINTER); + AssertReturn(!fFlags, VERR_INVALID_PARAMETER); + + cbDst = cb; + pbDst = (uint8_t *)pv; + pszSrc = pszHex; + for (;;) + { + /* Pick the next two digit from the string. */ + char ch = *pszSrc++; + unsigned char uchDigit1 = g_auchDigits[(unsigned char)ch]; + unsigned char uchDigit2; + if (uchDigit1 >= 16) + { + if (!ch) + return cbDst == 0 ? VINF_SUCCESS : VERR_BUFFER_UNDERFLOW; + + while (ch == ' ' || ch == '\t') + ch = *pszSrc++; + return ch ? VWRN_TRAILING_CHARS : VWRN_TRAILING_SPACES; + } + + ch = *pszSrc++; + uchDigit2 = g_auchDigits[(unsigned char)ch]; + if (uchDigit2 >= 16) + return VERR_UNEVEN_INPUT; + + /* Add the byte to the output buffer. */ + if (!cbDst) + return VERR_BUFFER_OVERFLOW; + cbDst--; + *pbDst++ = (uchDigit1 << 4) | uchDigit2; + } +} +RT_EXPORT_SYMBOL(RTStrConvertHexBytes); + diff --git a/src/VBox/Runtime/common/string/strversion.cpp b/src/VBox/Runtime/common/string/strversion.cpp new file mode 100644 index 00000000..78159ad0 --- /dev/null +++ b/src/VBox/Runtime/common/string/strversion.cpp @@ -0,0 +1,225 @@ +/* $Id: strversion.cpp $ */ +/** @file + * IPRT - Version String Parsing. + */ + +/* + * Copyright (C) 2009-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> +#include <iprt/ctype.h> +#include <iprt/errcore.h> + + +/********************************************************************************************************************************* +* Defined Constants And Macros * +*********************************************************************************************************************************/ +#define RTSTRVER_IS_PUNCTUACTION(ch) \ + ( (ch) == '_' || (ch) == '-' || (ch) == '+' || RT_C_IS_PUNCT(ch) ) + + +/** + * Parses a out the next block from a version string. + * + * @returns true if numeric, false if not. + * @param ppszVer The string cursor, IN/OUT. + * @param pi32Value Where to return the value if numeric. + * @param pcchBlock Where to return the block length. + */ +static bool rtStrVersionParseBlock(const char **ppszVer, int32_t *pi32Value, size_t *pcchBlock) +{ + const char *psz = *ppszVer; + + /* + * Check for end-of-string. + */ + if (!*psz) + { + *pi32Value = 0; + *pcchBlock = 0; + return false; + } + + /* + * Try convert the block to a number the simple way. + */ + char ch; + bool fNumeric = RT_C_IS_DIGIT(*psz); + if (fNumeric) + { + do + ch = *++psz; + while (ch && RT_C_IS_DIGIT(ch)); + + int rc = RTStrToInt32Ex(*ppszVer, NULL, 10, pi32Value); + if (RT_FAILURE(rc) || rc == VWRN_NUMBER_TOO_BIG) + { + AssertRC(rc); + fNumeric = false; + *pi32Value = 0; + } + } + else + { + /* + * Find the end of the current string. Make a special case for SVN + * revision numbers that immediately follows a release tag string. + */ + do + ch = *++psz; + while ( ch + && !RT_C_IS_DIGIT(ch) + && !RTSTRVER_IS_PUNCTUACTION(ch)); + + size_t cchBlock = psz - *ppszVer; + if ( cchBlock > 1 + && psz[-1] == 'r' + && RT_C_IS_DIGIT(*psz)) + { + psz--; + cchBlock--; + } + + + /* + * Translate standard pre release terms to negative values. + */ + static const struct + { + size_t cch; + const char *psz; + int32_t iValue; + } s_aTerms[] = + { + { 2, "RC", -100000 }, + { 3, "PRE", -200000 }, + { 5, "GAMMA", -300000 }, + { 4, "BETA", -400000 }, + { 5, "ALPHA", -500000 } + }; + + int32_t iVal1 = 0; + for (unsigned i = 0; i < RT_ELEMENTS(s_aTerms); i++) + if ( cchBlock == s_aTerms[i].cch + && !RTStrNCmp(s_aTerms[i].psz, *ppszVer, cchBlock)) + { + iVal1 = s_aTerms[i].iValue; + break; + } + if (iVal1 != 0) + { + /* + * Does the prelease term have a trailing number? + * Add it assuming BETA == BETA1. + */ + if (RT_C_IS_DIGIT(*psz)) + { + const char *psz2 = psz; + do + ch = *++psz; + while ( ch + && RT_C_IS_DIGIT(ch) + && !RTSTRVER_IS_PUNCTUACTION(ch)); + + int rc = RTStrToInt32Ex(psz2, NULL, 10, pi32Value); + if (RT_SUCCESS(rc) && rc != VWRN_NUMBER_TOO_BIG && *pi32Value) + iVal1 += *pi32Value - 1; + else + { + AssertRC(rc); + psz = psz2; + } + } + fNumeric = true; + } + *pi32Value = iVal1; + } + *pcchBlock = psz - *ppszVer; + + /* + * Skip trailing punctuation. + */ + if (RTSTRVER_IS_PUNCTUACTION(*psz)) + psz++; + *ppszVer = psz; + + return fNumeric; +} + + +RTDECL(int) RTStrVersionCompare(const char *pszVer1, const char *pszVer2) +{ + AssertPtr(pszVer1); + AssertPtr(pszVer2); + + /* + * Do a parallel parse of the strings. + */ + while (*pszVer1 || *pszVer2) + { + const char *pszBlock1 = pszVer1; + size_t cchBlock1; + int32_t iVal1; + bool fNumeric1 = rtStrVersionParseBlock(&pszVer1, &iVal1, &cchBlock1); + + const char *pszBlock2 = pszVer2; + size_t cchBlock2; + int32_t iVal2; + bool fNumeric2 = rtStrVersionParseBlock(&pszVer2, &iVal2, &cchBlock2); + + if (fNumeric1 && fNumeric2) + { + if (iVal1 != iVal2) + return iVal1 < iVal2 ? -1 : 1; + } + else if ( fNumeric1 != fNumeric2 + && ( fNumeric1 + ? iVal1 == 0 && cchBlock2 == 0 + : iVal2 == 0 && cchBlock1 == 0) + ) + { + /*else: 1.0 == 1.0.0.0.0. */; + } + else if ( fNumeric1 != fNumeric2 + && (fNumeric1 ? iVal1 : iVal2) < 0) + { + /* Pre-release indicators are smaller than all other strings. */ + return fNumeric1 ? -1 : 1; + } + else + { + int iDiff = RTStrNICmp(pszBlock1, pszBlock2, RT_MIN(cchBlock1, cchBlock2)); + if (!iDiff && cchBlock1 != cchBlock2) + iDiff = cchBlock1 < cchBlock2 ? -1 : 1; + if (iDiff) + return iDiff < 0 ? -1 : 1; + } + } + return 0; +} +RT_EXPORT_SYMBOL(RTStrVersionCompare); diff --git a/src/VBox/Runtime/common/string/uni.cpp b/src/VBox/Runtime/common/string/uni.cpp new file mode 100644 index 00000000..0aacd860 --- /dev/null +++ b/src/VBox/Runtime/common/string/uni.cpp @@ -0,0 +1,43 @@ +/* $Id: uni.cpp $ */ +/** @file + * IPRT - Unicode. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/uni.h> +#include "internal/iprt.h" + +#include <iprt/alloc.h> + + +RTDECL(void) RTUniFree(PRTUNICP pusz) +{ + if (pusz) + RTMemFree(pusz); +} +RT_EXPORT_SYMBOL(RTUniFree); + diff --git a/src/VBox/Runtime/common/string/unidata-flags.cpp b/src/VBox/Runtime/common/string/unidata-flags.cpp new file mode 100644 index 00000000..c8fbbf7f --- /dev/null +++ b/src/VBox/Runtime/common/string/unidata-flags.cpp @@ -0,0 +1,47007 @@ +/* $Id: unidata-flags.cpp $ */ +/** @file + * IPRT - Unicode Tables. + * + * Automatically Generated from d:\src\unicode\6.3.0\ + * by ..\..\..\..\..\out\win.amd64\debug\obj\uniread\uniread.exe (May 22 2014 19:07:40) + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#include <iprt/uni.h> + +static const uint8_t g_afRTUniFlags0x000000[] = +{ + 0, /* U+000000: <control>*/ + 0, /* U+000001: <control>*/ + 0, /* U+000002: <control>*/ + 0, /* U+000003: <control>*/ + 0, /* U+000004: <control>*/ + 0, /* U+000005: <control>*/ + 0, /* U+000006: <control>*/ + 0, /* U+000007: <control>*/ + 0, /* U+000008: <control>*/ + RTUNI_WSPACE, /* U+000009: <control>*/ + RTUNI_WSPACE, /* U+00000a: <control>*/ + RTUNI_WSPACE, /* U+00000b: <control>*/ + RTUNI_WSPACE, /* U+00000c: <control>*/ + RTUNI_WSPACE, /* U+00000d: <control>*/ + 0, /* U+00000e: <control>*/ + 0, /* U+00000f: <control>*/ + 0, /* U+000010: <control>*/ + 0, /* U+000011: <control>*/ + 0, /* U+000012: <control>*/ + 0, /* U+000013: <control>*/ + 0, /* U+000014: <control>*/ + 0, /* U+000015: <control>*/ + 0, /* U+000016: <control>*/ + 0, /* U+000017: <control>*/ + 0, /* U+000018: <control>*/ + 0, /* U+000019: <control>*/ + 0, /* U+00001a: <control>*/ + 0, /* U+00001b: <control>*/ + 0, /* U+00001c: <control>*/ + 0, /* U+00001d: <control>*/ + 0, /* U+00001e: <control>*/ + 0, /* U+00001f: <control>*/ + RTUNI_WSPACE, /* U+000020: SPACE*/ + 0, /* U+000021: EXCLAMATION MARK*/ + 0, /* U+000022: QUOTATION MARK*/ + 0, /* U+000023: NUMBER SIGN*/ + 0, /* U+000024: DOLLAR SIGN*/ + 0, /* U+000025: PERCENT SIGN*/ + 0, /* U+000026: AMPERSAND*/ + 0, /* U+000027: APOSTROPHE*/ + 0, /* U+000028: LEFT PARENTHESIS*/ + 0, /* U+000029: RIGHT PARENTHESIS*/ + 0, /* U+00002a: ASTERISK*/ + 0, /* U+00002b: PLUS SIGN*/ + 0, /* U+00002c: COMMA*/ + 0, /* U+00002d: HYPHEN-MINUS*/ + 0, /* U+00002e: FULL STOP*/ + 0, /* U+00002f: SOLIDUS*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000030: DIGIT ZERO*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000031: DIGIT ONE*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000032: DIGIT TWO*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000033: DIGIT THREE*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000034: DIGIT FOUR*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000035: DIGIT FIVE*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000036: DIGIT SIX*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000037: DIGIT SEVEN*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000038: DIGIT EIGHT*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+000039: DIGIT NINE*/ + 0, /* U+00003a: COLON*/ + 0, /* U+00003b: SEMICOLON*/ + 0, /* U+00003c: LESS-THAN SIGN*/ + 0, /* U+00003d: EQUALS SIGN*/ + 0, /* U+00003e: GREATER-THAN SIGN*/ + 0, /* U+00003f: QUESTION MARK*/ + 0, /* U+000040: COMMERCIAL AT*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000041: LATIN CAPITAL LETTER A*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000042: LATIN CAPITAL LETTER B*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000043: LATIN CAPITAL LETTER C*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000044: LATIN CAPITAL LETTER D*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000045: LATIN CAPITAL LETTER E*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+000046: LATIN CAPITAL LETTER F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000047: LATIN CAPITAL LETTER G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000048: LATIN CAPITAL LETTER H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000049: LATIN CAPITAL LETTER I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00004a: LATIN CAPITAL LETTER J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00004b: LATIN CAPITAL LETTER K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00004c: LATIN CAPITAL LETTER L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00004d: LATIN CAPITAL LETTER M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00004e: LATIN CAPITAL LETTER N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00004f: LATIN CAPITAL LETTER O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000050: LATIN CAPITAL LETTER P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000051: LATIN CAPITAL LETTER Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000052: LATIN CAPITAL LETTER R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000053: LATIN CAPITAL LETTER S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000054: LATIN CAPITAL LETTER T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000055: LATIN CAPITAL LETTER U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000056: LATIN CAPITAL LETTER V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000057: LATIN CAPITAL LETTER W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000058: LATIN CAPITAL LETTER X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000059: LATIN CAPITAL LETTER Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00005a: LATIN CAPITAL LETTER Z*/ + 0, /* U+00005b: LEFT SQUARE BRACKET*/ + 0, /* U+00005c: REVERSE SOLIDUS*/ + 0, /* U+00005d: RIGHT SQUARE BRACKET*/ + 0, /* U+00005e: CIRCUMFLEX ACCENT*/ + 0, /* U+00005f: LOW LINE*/ + 0, /* U+000060: GRAVE ACCENT*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000061: LATIN SMALL LETTER A*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000062: LATIN SMALL LETTER B*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000063: LATIN SMALL LETTER C*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000064: LATIN SMALL LETTER D*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000065: LATIN SMALL LETTER E*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+000066: LATIN SMALL LETTER F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000067: LATIN SMALL LETTER G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000068: LATIN SMALL LETTER H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000069: LATIN SMALL LETTER I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00006a: LATIN SMALL LETTER J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00006b: LATIN SMALL LETTER K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00006c: LATIN SMALL LETTER L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00006d: LATIN SMALL LETTER M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00006e: LATIN SMALL LETTER N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00006f: LATIN SMALL LETTER O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000070: LATIN SMALL LETTER P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000071: LATIN SMALL LETTER Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000072: LATIN SMALL LETTER R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000073: LATIN SMALL LETTER S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000074: LATIN SMALL LETTER T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000075: LATIN SMALL LETTER U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000076: LATIN SMALL LETTER V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000077: LATIN SMALL LETTER W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000078: LATIN SMALL LETTER X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000079: LATIN SMALL LETTER Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00007a: LATIN SMALL LETTER Z*/ + 0, /* U+00007b: LEFT CURLY BRACKET*/ + 0, /* U+00007c: VERTICAL LINE*/ + 0, /* U+00007d: RIGHT CURLY BRACKET*/ + 0, /* U+00007e: TILDE*/ + 0, /* U+00007f: <control>*/ + 0, /* U+000080: <control>*/ + 0, /* U+000081: <control>*/ + 0, /* U+000082: <control>*/ + 0, /* U+000083: <control>*/ + 0, /* U+000084: <control>*/ + RTUNI_WSPACE, /* U+000085: <control>*/ + 0, /* U+000086: <control>*/ + 0, /* U+000087: <control>*/ + 0, /* U+000088: <control>*/ + 0, /* U+000089: <control>*/ + 0, /* U+00008a: <control>*/ + 0, /* U+00008b: <control>*/ + 0, /* U+00008c: <control>*/ + 0, /* U+00008d: <control>*/ + 0, /* U+00008e: <control>*/ + 0, /* U+00008f: <control>*/ + 0, /* U+000090: <control>*/ + 0, /* U+000091: <control>*/ + 0, /* U+000092: <control>*/ + 0, /* U+000093: <control>*/ + 0, /* U+000094: <control>*/ + 0, /* U+000095: <control>*/ + 0, /* U+000096: <control>*/ + 0, /* U+000097: <control>*/ + 0, /* U+000098: <control>*/ + 0, /* U+000099: <control>*/ + 0, /* U+00009a: <control>*/ + 0, /* U+00009b: <control>*/ + 0, /* U+00009c: <control>*/ + 0, /* U+00009d: <control>*/ + 0, /* U+00009e: <control>*/ + 0, /* U+00009f: <control>*/ + RTUNI_WSPACE, /* U+0000a0: NO-BREAK SPACE*/ + 0, /* U+0000a1: INVERTED EXCLAMATION MARK*/ + 0, /* U+0000a2: CENT SIGN*/ + 0, /* U+0000a3: POUND SIGN*/ + 0, /* U+0000a4: CURRENCY SIGN*/ + 0, /* U+0000a5: YEN SIGN*/ + 0, /* U+0000a6: BROKEN BAR*/ + 0, /* U+0000a7: SECTION SIGN*/ + 0, /* U+0000a8: DIAERESIS*/ + 0, /* U+0000a9: COPYRIGHT SIGN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000aa: FEMININE ORDINAL INDICATOR*/ + 0, /* U+0000ab: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK*/ + 0, /* U+0000ac: NOT SIGN*/ + 0, /* U+0000ad: SOFT HYPHEN*/ + 0, /* U+0000ae: REGISTERED SIGN*/ + 0, /* U+0000af: MACRON*/ + 0, /* U+0000b0: DEGREE SIGN*/ + 0, /* U+0000b1: PLUS-MINUS SIGN*/ + 0, /* U+0000b2: SUPERSCRIPT TWO*/ + 0, /* U+0000b3: SUPERSCRIPT THREE*/ + 0, /* U+0000b4: ACUTE ACCENT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000b5: MICRO SIGN*/ + 0, /* U+0000b6: PILCROW SIGN*/ + 0, /* U+0000b7: MIDDLE DOT*/ + 0, /* U+0000b8: CEDILLA*/ + 0, /* U+0000b9: SUPERSCRIPT ONE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ba: MASCULINE ORDINAL INDICATOR*/ + 0, /* U+0000bb: RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK*/ + 0, /* U+0000bc: VULGAR FRACTION ONE QUARTER*/ + 0, /* U+0000bd: VULGAR FRACTION ONE HALF*/ + 0, /* U+0000be: VULGAR FRACTION THREE QUARTERS*/ + 0, /* U+0000bf: INVERTED QUESTION MARK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c0: LATIN CAPITAL LETTER A WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c1: LATIN CAPITAL LETTER A WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c2: LATIN CAPITAL LETTER A WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c3: LATIN CAPITAL LETTER A WITH TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c4: LATIN CAPITAL LETTER A WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c5: LATIN CAPITAL LETTER A WITH RING ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c6: LATIN CAPITAL LETTER AE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c7: LATIN CAPITAL LETTER C WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c8: LATIN CAPITAL LETTER E WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000c9: LATIN CAPITAL LETTER E WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000ca: LATIN CAPITAL LETTER E WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000cb: LATIN CAPITAL LETTER E WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000cc: LATIN CAPITAL LETTER I WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000cd: LATIN CAPITAL LETTER I WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000ce: LATIN CAPITAL LETTER I WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000cf: LATIN CAPITAL LETTER I WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d0: LATIN CAPITAL LETTER ETH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d1: LATIN CAPITAL LETTER N WITH TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d2: LATIN CAPITAL LETTER O WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d3: LATIN CAPITAL LETTER O WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d5: LATIN CAPITAL LETTER O WITH TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d6: LATIN CAPITAL LETTER O WITH DIAERESIS*/ + 0, /* U+0000d7: MULTIPLICATION SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d8: LATIN CAPITAL LETTER O WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000d9: LATIN CAPITAL LETTER U WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000da: LATIN CAPITAL LETTER U WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000db: LATIN CAPITAL LETTER U WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000dc: LATIN CAPITAL LETTER U WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000dd: LATIN CAPITAL LETTER Y WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0000de: LATIN CAPITAL LETTER THORN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000df: LATIN SMALL LETTER SHARP S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e0: LATIN SMALL LETTER A WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e1: LATIN SMALL LETTER A WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e2: LATIN SMALL LETTER A WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e3: LATIN SMALL LETTER A WITH TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e4: LATIN SMALL LETTER A WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e5: LATIN SMALL LETTER A WITH RING ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e6: LATIN SMALL LETTER AE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e7: LATIN SMALL LETTER C WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e8: LATIN SMALL LETTER E WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000e9: LATIN SMALL LETTER E WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ea: LATIN SMALL LETTER E WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000eb: LATIN SMALL LETTER E WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ec: LATIN SMALL LETTER I WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ed: LATIN SMALL LETTER I WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ee: LATIN SMALL LETTER I WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ef: LATIN SMALL LETTER I WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f0: LATIN SMALL LETTER ETH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f1: LATIN SMALL LETTER N WITH TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f2: LATIN SMALL LETTER O WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f3: LATIN SMALL LETTER O WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f4: LATIN SMALL LETTER O WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f5: LATIN SMALL LETTER O WITH TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f6: LATIN SMALL LETTER O WITH DIAERESIS*/ + 0, /* U+0000f7: DIVISION SIGN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f8: LATIN SMALL LETTER O WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000f9: LATIN SMALL LETTER U WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000fa: LATIN SMALL LETTER U WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000fb: LATIN SMALL LETTER U WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000fc: LATIN SMALL LETTER U WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000fd: LATIN SMALL LETTER Y WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000fe: LATIN SMALL LETTER THORN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0000ff: LATIN SMALL LETTER Y WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000100: LATIN CAPITAL LETTER A WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000101: LATIN SMALL LETTER A WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000102: LATIN CAPITAL LETTER A WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000103: LATIN SMALL LETTER A WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000104: LATIN CAPITAL LETTER A WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000105: LATIN SMALL LETTER A WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000106: LATIN CAPITAL LETTER C WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000107: LATIN SMALL LETTER C WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000108: LATIN CAPITAL LETTER C WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000109: LATIN SMALL LETTER C WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00010a: LATIN CAPITAL LETTER C WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00010b: LATIN SMALL LETTER C WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00010c: LATIN CAPITAL LETTER C WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00010d: LATIN SMALL LETTER C WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00010e: LATIN CAPITAL LETTER D WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00010f: LATIN SMALL LETTER D WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000110: LATIN CAPITAL LETTER D WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000111: LATIN SMALL LETTER D WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000112: LATIN CAPITAL LETTER E WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000113: LATIN SMALL LETTER E WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000114: LATIN CAPITAL LETTER E WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000115: LATIN SMALL LETTER E WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000116: LATIN CAPITAL LETTER E WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000117: LATIN SMALL LETTER E WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000118: LATIN CAPITAL LETTER E WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000119: LATIN SMALL LETTER E WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00011a: LATIN CAPITAL LETTER E WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00011b: LATIN SMALL LETTER E WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00011c: LATIN CAPITAL LETTER G WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00011d: LATIN SMALL LETTER G WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00011e: LATIN CAPITAL LETTER G WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00011f: LATIN SMALL LETTER G WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000120: LATIN CAPITAL LETTER G WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000121: LATIN SMALL LETTER G WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000122: LATIN CAPITAL LETTER G WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000123: LATIN SMALL LETTER G WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000124: LATIN CAPITAL LETTER H WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000125: LATIN SMALL LETTER H WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000126: LATIN CAPITAL LETTER H WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000127: LATIN SMALL LETTER H WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000128: LATIN CAPITAL LETTER I WITH TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000129: LATIN SMALL LETTER I WITH TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00012a: LATIN CAPITAL LETTER I WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00012b: LATIN SMALL LETTER I WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00012c: LATIN CAPITAL LETTER I WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00012d: LATIN SMALL LETTER I WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00012e: LATIN CAPITAL LETTER I WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00012f: LATIN SMALL LETTER I WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000130: LATIN CAPITAL LETTER I WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000131: LATIN SMALL LETTER DOTLESS I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000132: LATIN CAPITAL LIGATURE IJ*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000133: LATIN SMALL LIGATURE IJ*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000134: LATIN CAPITAL LETTER J WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000135: LATIN SMALL LETTER J WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000136: LATIN CAPITAL LETTER K WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000137: LATIN SMALL LETTER K WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000138: LATIN SMALL LETTER KRA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000139: LATIN CAPITAL LETTER L WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00013a: LATIN SMALL LETTER L WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00013b: LATIN CAPITAL LETTER L WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00013c: LATIN SMALL LETTER L WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00013d: LATIN CAPITAL LETTER L WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00013e: LATIN SMALL LETTER L WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00013f: LATIN CAPITAL LETTER L WITH MIDDLE DOT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000140: LATIN SMALL LETTER L WITH MIDDLE DOT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000141: LATIN CAPITAL LETTER L WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000142: LATIN SMALL LETTER L WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000143: LATIN CAPITAL LETTER N WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000144: LATIN SMALL LETTER N WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000145: LATIN CAPITAL LETTER N WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000146: LATIN SMALL LETTER N WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000147: LATIN CAPITAL LETTER N WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000148: LATIN SMALL LETTER N WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000149: LATIN SMALL LETTER N PRECEDED BY APOSTROPHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00014a: LATIN CAPITAL LETTER ENG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00014b: LATIN SMALL LETTER ENG*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00014c: LATIN CAPITAL LETTER O WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00014d: LATIN SMALL LETTER O WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00014e: LATIN CAPITAL LETTER O WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00014f: LATIN SMALL LETTER O WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000150: LATIN CAPITAL LETTER O WITH DOUBLE ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000151: LATIN SMALL LETTER O WITH DOUBLE ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000152: LATIN CAPITAL LIGATURE OE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000153: LATIN SMALL LIGATURE OE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000154: LATIN CAPITAL LETTER R WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000155: LATIN SMALL LETTER R WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000156: LATIN CAPITAL LETTER R WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000157: LATIN SMALL LETTER R WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000158: LATIN CAPITAL LETTER R WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000159: LATIN SMALL LETTER R WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00015a: LATIN CAPITAL LETTER S WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00015b: LATIN SMALL LETTER S WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00015c: LATIN CAPITAL LETTER S WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00015d: LATIN SMALL LETTER S WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00015e: LATIN CAPITAL LETTER S WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00015f: LATIN SMALL LETTER S WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000160: LATIN CAPITAL LETTER S WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000161: LATIN SMALL LETTER S WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000162: LATIN CAPITAL LETTER T WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000163: LATIN SMALL LETTER T WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000164: LATIN CAPITAL LETTER T WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000165: LATIN SMALL LETTER T WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000166: LATIN CAPITAL LETTER T WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000167: LATIN SMALL LETTER T WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000168: LATIN CAPITAL LETTER U WITH TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000169: LATIN SMALL LETTER U WITH TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00016a: LATIN CAPITAL LETTER U WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00016b: LATIN SMALL LETTER U WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00016c: LATIN CAPITAL LETTER U WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00016d: LATIN SMALL LETTER U WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00016e: LATIN CAPITAL LETTER U WITH RING ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00016f: LATIN SMALL LETTER U WITH RING ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000170: LATIN CAPITAL LETTER U WITH DOUBLE ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000171: LATIN SMALL LETTER U WITH DOUBLE ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000172: LATIN CAPITAL LETTER U WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000173: LATIN SMALL LETTER U WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000174: LATIN CAPITAL LETTER W WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000175: LATIN SMALL LETTER W WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000176: LATIN CAPITAL LETTER Y WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000177: LATIN SMALL LETTER Y WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000178: LATIN CAPITAL LETTER Y WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000179: LATIN CAPITAL LETTER Z WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00017a: LATIN SMALL LETTER Z WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00017b: LATIN CAPITAL LETTER Z WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00017c: LATIN SMALL LETTER Z WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00017d: LATIN CAPITAL LETTER Z WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00017e: LATIN SMALL LETTER Z WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00017f: LATIN SMALL LETTER LONG S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000180: LATIN SMALL LETTER B WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000181: LATIN CAPITAL LETTER B WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000182: LATIN CAPITAL LETTER B WITH TOPBAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000183: LATIN SMALL LETTER B WITH TOPBAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000184: LATIN CAPITAL LETTER TONE SIX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000185: LATIN SMALL LETTER TONE SIX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000186: LATIN CAPITAL LETTER OPEN O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000187: LATIN CAPITAL LETTER C WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000188: LATIN SMALL LETTER C WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000189: LATIN CAPITAL LETTER AFRICAN D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00018a: LATIN CAPITAL LETTER D WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00018b: LATIN CAPITAL LETTER D WITH TOPBAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00018c: LATIN SMALL LETTER D WITH TOPBAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00018d: LATIN SMALL LETTER TURNED DELTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00018e: LATIN CAPITAL LETTER REVERSED E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00018f: LATIN CAPITAL LETTER SCHWA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000190: LATIN CAPITAL LETTER OPEN E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000191: LATIN CAPITAL LETTER F WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000192: LATIN SMALL LETTER F WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000193: LATIN CAPITAL LETTER G WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000194: LATIN CAPITAL LETTER GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000195: LATIN SMALL LETTER HV*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000196: LATIN CAPITAL LETTER IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000197: LATIN CAPITAL LETTER I WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000198: LATIN CAPITAL LETTER K WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000199: LATIN SMALL LETTER K WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00019a: LATIN SMALL LETTER L WITH BAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00019b: LATIN SMALL LETTER LAMBDA WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00019c: LATIN CAPITAL LETTER TURNED M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00019d: LATIN CAPITAL LETTER N WITH LEFT HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00019e: LATIN SMALL LETTER N WITH LONG RIGHT LEG*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00019f: LATIN CAPITAL LETTER O WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a0: LATIN CAPITAL LETTER O WITH HORN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001a1: LATIN SMALL LETTER O WITH HORN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a2: LATIN CAPITAL LETTER OI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001a3: LATIN SMALL LETTER OI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a4: LATIN CAPITAL LETTER P WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001a5: LATIN SMALL LETTER P WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a6: LATIN LETTER YR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a7: LATIN CAPITAL LETTER TONE TWO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001a8: LATIN SMALL LETTER TONE TWO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001a9: LATIN CAPITAL LETTER ESH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001aa: LATIN LETTER REVERSED ESH LOOP*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ab: LATIN SMALL LETTER T WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ac: LATIN CAPITAL LETTER T WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ad: LATIN SMALL LETTER T WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ae: LATIN CAPITAL LETTER T WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001af: LATIN CAPITAL LETTER U WITH HORN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001b0: LATIN SMALL LETTER U WITH HORN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b1: LATIN CAPITAL LETTER UPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b2: LATIN CAPITAL LETTER V WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b3: LATIN CAPITAL LETTER Y WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001b4: LATIN SMALL LETTER Y WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b5: LATIN CAPITAL LETTER Z WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001b6: LATIN SMALL LETTER Z WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b7: LATIN CAPITAL LETTER EZH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001b8: LATIN CAPITAL LETTER EZH REVERSED*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001b9: LATIN SMALL LETTER EZH REVERSED*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ba: LATIN SMALL LETTER EZH WITH TAIL*/ + RTUNI_ALPHA, /* U+0001bb: LATIN LETTER TWO WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001bc: LATIN CAPITAL LETTER TONE FIVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001bd: LATIN SMALL LETTER TONE FIVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001be: LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001bf: LATIN LETTER WYNN*/ + RTUNI_ALPHA, /* U+0001c0: LATIN LETTER DENTAL CLICK*/ + RTUNI_ALPHA, /* U+0001c1: LATIN LETTER LATERAL CLICK*/ + RTUNI_ALPHA, /* U+0001c2: LATIN LETTER ALVEOLAR CLICK*/ + RTUNI_ALPHA, /* U+0001c3: LATIN LETTER RETROFLEX CLICK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001c4: LATIN CAPITAL LETTER DZ WITH CARON*/ + RTUNI_ALPHA, /* U+0001c5: LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001c6: LATIN SMALL LETTER DZ WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001c7: LATIN CAPITAL LETTER LJ*/ + RTUNI_ALPHA, /* U+0001c8: LATIN CAPITAL LETTER L WITH SMALL LETTER J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001c9: LATIN SMALL LETTER LJ*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ca: LATIN CAPITAL LETTER NJ*/ + RTUNI_ALPHA, /* U+0001cb: LATIN CAPITAL LETTER N WITH SMALL LETTER J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001cc: LATIN SMALL LETTER NJ*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001cd: LATIN CAPITAL LETTER A WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ce: LATIN SMALL LETTER A WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001cf: LATIN CAPITAL LETTER I WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001d0: LATIN SMALL LETTER I WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001d1: LATIN CAPITAL LETTER O WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001d2: LATIN SMALL LETTER O WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001d3: LATIN CAPITAL LETTER U WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001d4: LATIN SMALL LETTER U WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001d5: LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001d6: LATIN SMALL LETTER U WITH DIAERESIS AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001d7: LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001d8: LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001d9: LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001da: LATIN SMALL LETTER U WITH DIAERESIS AND CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001db: LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001dc: LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001dd: LATIN SMALL LETTER TURNED E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001de: LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001df: LATIN SMALL LETTER A WITH DIAERESIS AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001e0: LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001e1: LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001e2: LATIN CAPITAL LETTER AE WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001e3: LATIN SMALL LETTER AE WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001e4: LATIN CAPITAL LETTER G WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001e5: LATIN SMALL LETTER G WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001e6: LATIN CAPITAL LETTER G WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001e7: LATIN SMALL LETTER G WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001e8: LATIN CAPITAL LETTER K WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001e9: LATIN SMALL LETTER K WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ea: LATIN CAPITAL LETTER O WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001eb: LATIN SMALL LETTER O WITH OGONEK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ec: LATIN CAPITAL LETTER O WITH OGONEK AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ed: LATIN SMALL LETTER O WITH OGONEK AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001ee: LATIN CAPITAL LETTER EZH WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ef: LATIN SMALL LETTER EZH WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001f0: LATIN SMALL LETTER J WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001f1: LATIN CAPITAL LETTER DZ*/ + RTUNI_ALPHA, /* U+0001f2: LATIN CAPITAL LETTER D WITH SMALL LETTER Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001f3: LATIN SMALL LETTER DZ*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001f4: LATIN CAPITAL LETTER G WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001f5: LATIN SMALL LETTER G WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001f6: LATIN CAPITAL LETTER HWAIR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001f7: LATIN CAPITAL LETTER WYNN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001f8: LATIN CAPITAL LETTER N WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001f9: LATIN SMALL LETTER N WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001fa: LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001fb: LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001fc: LATIN CAPITAL LETTER AE WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001fd: LATIN SMALL LETTER AE WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0001fe: LATIN CAPITAL LETTER O WITH STROKE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0001ff: LATIN SMALL LETTER O WITH STROKE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000200: LATIN CAPITAL LETTER A WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000201: LATIN SMALL LETTER A WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000202: LATIN CAPITAL LETTER A WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000203: LATIN SMALL LETTER A WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000204: LATIN CAPITAL LETTER E WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000205: LATIN SMALL LETTER E WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000206: LATIN CAPITAL LETTER E WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000207: LATIN SMALL LETTER E WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000208: LATIN CAPITAL LETTER I WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000209: LATIN SMALL LETTER I WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00020a: LATIN CAPITAL LETTER I WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00020b: LATIN SMALL LETTER I WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00020c: LATIN CAPITAL LETTER O WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00020d: LATIN SMALL LETTER O WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00020e: LATIN CAPITAL LETTER O WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00020f: LATIN SMALL LETTER O WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000210: LATIN CAPITAL LETTER R WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000211: LATIN SMALL LETTER R WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000212: LATIN CAPITAL LETTER R WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000213: LATIN SMALL LETTER R WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000214: LATIN CAPITAL LETTER U WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000215: LATIN SMALL LETTER U WITH DOUBLE GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000216: LATIN CAPITAL LETTER U WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000217: LATIN SMALL LETTER U WITH INVERTED BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000218: LATIN CAPITAL LETTER S WITH COMMA BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000219: LATIN SMALL LETTER S WITH COMMA BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00021a: LATIN CAPITAL LETTER T WITH COMMA BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00021b: LATIN SMALL LETTER T WITH COMMA BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00021c: LATIN CAPITAL LETTER YOGH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00021d: LATIN SMALL LETTER YOGH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00021e: LATIN CAPITAL LETTER H WITH CARON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00021f: LATIN SMALL LETTER H WITH CARON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000220: LATIN CAPITAL LETTER N WITH LONG RIGHT LEG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000221: LATIN SMALL LETTER D WITH CURL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000222: LATIN CAPITAL LETTER OU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000223: LATIN SMALL LETTER OU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000224: LATIN CAPITAL LETTER Z WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000225: LATIN SMALL LETTER Z WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000226: LATIN CAPITAL LETTER A WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000227: LATIN SMALL LETTER A WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000228: LATIN CAPITAL LETTER E WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000229: LATIN SMALL LETTER E WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00022a: LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00022b: LATIN SMALL LETTER O WITH DIAERESIS AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00022c: LATIN CAPITAL LETTER O WITH TILDE AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00022d: LATIN SMALL LETTER O WITH TILDE AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00022e: LATIN CAPITAL LETTER O WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00022f: LATIN SMALL LETTER O WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000230: LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000231: LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000232: LATIN CAPITAL LETTER Y WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000233: LATIN SMALL LETTER Y WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000234: LATIN SMALL LETTER L WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000235: LATIN SMALL LETTER N WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000236: LATIN SMALL LETTER T WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000237: LATIN SMALL LETTER DOTLESS J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000238: LATIN SMALL LETTER DB DIGRAPH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000239: LATIN SMALL LETTER QP DIGRAPH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00023a: LATIN CAPITAL LETTER A WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00023b: LATIN CAPITAL LETTER C WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00023c: LATIN SMALL LETTER C WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00023d: LATIN CAPITAL LETTER L WITH BAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00023e: LATIN CAPITAL LETTER T WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00023f: LATIN SMALL LETTER S WITH SWASH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000240: LATIN SMALL LETTER Z WITH SWASH TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000241: LATIN CAPITAL LETTER GLOTTAL STOP*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000242: LATIN SMALL LETTER GLOTTAL STOP*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000243: LATIN CAPITAL LETTER B WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000244: LATIN CAPITAL LETTER U BAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000245: LATIN CAPITAL LETTER TURNED V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000246: LATIN CAPITAL LETTER E WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000247: LATIN SMALL LETTER E WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000248: LATIN CAPITAL LETTER J WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000249: LATIN SMALL LETTER J WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00024a: LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00024b: LATIN SMALL LETTER Q WITH HOOK TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00024c: LATIN CAPITAL LETTER R WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00024d: LATIN SMALL LETTER R WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00024e: LATIN CAPITAL LETTER Y WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00024f: LATIN SMALL LETTER Y WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000250: LATIN SMALL LETTER TURNED A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000251: LATIN SMALL LETTER ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000252: LATIN SMALL LETTER TURNED ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000253: LATIN SMALL LETTER B WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000254: LATIN SMALL LETTER OPEN O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000255: LATIN SMALL LETTER C WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000256: LATIN SMALL LETTER D WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000257: LATIN SMALL LETTER D WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000258: LATIN SMALL LETTER REVERSED E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000259: LATIN SMALL LETTER SCHWA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00025a: LATIN SMALL LETTER SCHWA WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00025b: LATIN SMALL LETTER OPEN E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00025c: LATIN SMALL LETTER REVERSED OPEN E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00025d: LATIN SMALL LETTER REVERSED OPEN E WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00025e: LATIN SMALL LETTER CLOSED REVERSED OPEN E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00025f: LATIN SMALL LETTER DOTLESS J WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000260: LATIN SMALL LETTER G WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000261: LATIN SMALL LETTER SCRIPT G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000262: LATIN LETTER SMALL CAPITAL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000263: LATIN SMALL LETTER GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000264: LATIN SMALL LETTER RAMS HORN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000265: LATIN SMALL LETTER TURNED H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000266: LATIN SMALL LETTER H WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000267: LATIN SMALL LETTER HENG WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000268: LATIN SMALL LETTER I WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000269: LATIN SMALL LETTER IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00026a: LATIN LETTER SMALL CAPITAL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00026b: LATIN SMALL LETTER L WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00026c: LATIN SMALL LETTER L WITH BELT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00026d: LATIN SMALL LETTER L WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00026e: LATIN SMALL LETTER LEZH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00026f: LATIN SMALL LETTER TURNED M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000270: LATIN SMALL LETTER TURNED M WITH LONG LEG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000271: LATIN SMALL LETTER M WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000272: LATIN SMALL LETTER N WITH LEFT HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000273: LATIN SMALL LETTER N WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000274: LATIN LETTER SMALL CAPITAL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000275: LATIN SMALL LETTER BARRED O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000276: LATIN LETTER SMALL CAPITAL OE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000277: LATIN SMALL LETTER CLOSED OMEGA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000278: LATIN SMALL LETTER PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000279: LATIN SMALL LETTER TURNED R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00027a: LATIN SMALL LETTER TURNED R WITH LONG LEG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00027b: LATIN SMALL LETTER TURNED R WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00027c: LATIN SMALL LETTER R WITH LONG LEG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00027d: LATIN SMALL LETTER R WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00027e: LATIN SMALL LETTER R WITH FISHHOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00027f: LATIN SMALL LETTER REVERSED R WITH FISHHOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000280: LATIN LETTER SMALL CAPITAL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000281: LATIN LETTER SMALL CAPITAL INVERTED R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000282: LATIN SMALL LETTER S WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000283: LATIN SMALL LETTER ESH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000284: LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000285: LATIN SMALL LETTER SQUAT REVERSED ESH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000286: LATIN SMALL LETTER ESH WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000287: LATIN SMALL LETTER TURNED T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000288: LATIN SMALL LETTER T WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000289: LATIN SMALL LETTER U BAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00028a: LATIN SMALL LETTER UPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00028b: LATIN SMALL LETTER V WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00028c: LATIN SMALL LETTER TURNED V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00028d: LATIN SMALL LETTER TURNED W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00028e: LATIN SMALL LETTER TURNED Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00028f: LATIN LETTER SMALL CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000290: LATIN SMALL LETTER Z WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000291: LATIN SMALL LETTER Z WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000292: LATIN SMALL LETTER EZH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000293: LATIN SMALL LETTER EZH WITH CURL*/ + RTUNI_ALPHA, /* U+000294: LATIN LETTER GLOTTAL STOP*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000295: LATIN LETTER PHARYNGEAL VOICED FRICATIVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000296: LATIN LETTER INVERTED GLOTTAL STOP*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000297: LATIN LETTER STRETCHED C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000298: LATIN LETTER BILABIAL CLICK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000299: LATIN LETTER SMALL CAPITAL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00029a: LATIN SMALL LETTER CLOSED OPEN E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00029b: LATIN LETTER SMALL CAPITAL G WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00029c: LATIN LETTER SMALL CAPITAL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00029d: LATIN SMALL LETTER J WITH CROSSED-TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00029e: LATIN SMALL LETTER TURNED K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00029f: LATIN LETTER SMALL CAPITAL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a0: LATIN SMALL LETTER Q WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a1: LATIN LETTER GLOTTAL STOP WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a2: LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a3: LATIN SMALL LETTER DZ DIGRAPH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a4: LATIN SMALL LETTER DEZH DIGRAPH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a5: LATIN SMALL LETTER DZ DIGRAPH WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a6: LATIN SMALL LETTER TS DIGRAPH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a7: LATIN SMALL LETTER TESH DIGRAPH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a8: LATIN SMALL LETTER TC DIGRAPH WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002a9: LATIN SMALL LETTER FENG DIGRAPH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002aa: LATIN SMALL LETTER LS DIGRAPH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002ab: LATIN SMALL LETTER LZ DIGRAPH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002ac: LATIN LETTER BILABIAL PERCUSSIVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002ad: LATIN LETTER BIDENTAL PERCUSSIVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002ae: LATIN SMALL LETTER TURNED H WITH FISHHOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002af: LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b0: MODIFIER LETTER SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b1: MODIFIER LETTER SMALL H WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b2: MODIFIER LETTER SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b3: MODIFIER LETTER SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b4: MODIFIER LETTER SMALL TURNED R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b5: MODIFIER LETTER SMALL TURNED R WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b6: MODIFIER LETTER SMALL CAPITAL INVERTED R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b7: MODIFIER LETTER SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002b8: MODIFIER LETTER SMALL Y*/ + RTUNI_ALPHA, /* U+0002b9: MODIFIER LETTER PRIME*/ + RTUNI_ALPHA, /* U+0002ba: MODIFIER LETTER DOUBLE PRIME*/ + RTUNI_ALPHA, /* U+0002bb: MODIFIER LETTER TURNED COMMA*/ + RTUNI_ALPHA, /* U+0002bc: MODIFIER LETTER APOSTROPHE*/ + RTUNI_ALPHA, /* U+0002bd: MODIFIER LETTER REVERSED COMMA*/ + RTUNI_ALPHA, /* U+0002be: MODIFIER LETTER RIGHT HALF RING*/ + RTUNI_ALPHA, /* U+0002bf: MODIFIER LETTER LEFT HALF RING*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002c0: MODIFIER LETTER GLOTTAL STOP*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002c1: MODIFIER LETTER REVERSED GLOTTAL STOP*/ + 0, /* U+0002c2: MODIFIER LETTER LEFT ARROWHEAD*/ + 0, /* U+0002c3: MODIFIER LETTER RIGHT ARROWHEAD*/ + 0, /* U+0002c4: MODIFIER LETTER UP ARROWHEAD*/ + 0, /* U+0002c5: MODIFIER LETTER DOWN ARROWHEAD*/ + RTUNI_ALPHA, /* U+0002c6: MODIFIER LETTER CIRCUMFLEX ACCENT*/ + RTUNI_ALPHA, /* U+0002c7: CARON*/ + RTUNI_ALPHA, /* U+0002c8: MODIFIER LETTER VERTICAL LINE*/ + RTUNI_ALPHA, /* U+0002c9: MODIFIER LETTER MACRON*/ + RTUNI_ALPHA, /* U+0002ca: MODIFIER LETTER ACUTE ACCENT*/ + RTUNI_ALPHA, /* U+0002cb: MODIFIER LETTER GRAVE ACCENT*/ + RTUNI_ALPHA, /* U+0002cc: MODIFIER LETTER LOW VERTICAL LINE*/ + RTUNI_ALPHA, /* U+0002cd: MODIFIER LETTER LOW MACRON*/ + RTUNI_ALPHA, /* U+0002ce: MODIFIER LETTER LOW GRAVE ACCENT*/ + RTUNI_ALPHA, /* U+0002cf: MODIFIER LETTER LOW ACUTE ACCENT*/ + RTUNI_ALPHA, /* U+0002d0: MODIFIER LETTER TRIANGULAR COLON*/ + RTUNI_ALPHA, /* U+0002d1: MODIFIER LETTER HALF TRIANGULAR COLON*/ + 0, /* U+0002d2: MODIFIER LETTER CENTRED RIGHT HALF RING*/ + 0, /* U+0002d3: MODIFIER LETTER CENTRED LEFT HALF RING*/ + 0, /* U+0002d4: MODIFIER LETTER UP TACK*/ + 0, /* U+0002d5: MODIFIER LETTER DOWN TACK*/ + 0, /* U+0002d6: MODIFIER LETTER PLUS SIGN*/ + 0, /* U+0002d7: MODIFIER LETTER MINUS SIGN*/ + 0, /* U+0002d8: BREVE*/ + 0, /* U+0002d9: DOT ABOVE*/ + 0, /* U+0002da: RING ABOVE*/ + 0, /* U+0002db: OGONEK*/ + 0, /* U+0002dc: SMALL TILDE*/ + 0, /* U+0002dd: DOUBLE ACUTE ACCENT*/ + 0, /* U+0002de: MODIFIER LETTER RHOTIC HOOK*/ + 0, /* U+0002df: MODIFIER LETTER CROSS ACCENT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002e0: MODIFIER LETTER SMALL GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002e1: MODIFIER LETTER SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002e2: MODIFIER LETTER SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002e3: MODIFIER LETTER SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0002e4: MODIFIER LETTER SMALL REVERSED GLOTTAL STOP*/ + 0, /* U+0002e5: MODIFIER LETTER EXTRA-HIGH TONE BAR*/ + 0, /* U+0002e6: MODIFIER LETTER HIGH TONE BAR*/ + 0, /* U+0002e7: MODIFIER LETTER MID TONE BAR*/ + 0, /* U+0002e8: MODIFIER LETTER LOW TONE BAR*/ + 0, /* U+0002e9: MODIFIER LETTER EXTRA-LOW TONE BAR*/ + 0, /* U+0002ea: MODIFIER LETTER YIN DEPARTING TONE MARK*/ + 0, /* U+0002eb: MODIFIER LETTER YANG DEPARTING TONE MARK*/ + RTUNI_ALPHA, /* U+0002ec: MODIFIER LETTER VOICING*/ + 0, /* U+0002ed: MODIFIER LETTER UNASPIRATED*/ + RTUNI_ALPHA, /* U+0002ee: MODIFIER LETTER DOUBLE APOSTROPHE*/ + 0, /* U+0002ef: MODIFIER LETTER LOW DOWN ARROWHEAD*/ + 0, /* U+0002f0: MODIFIER LETTER LOW UP ARROWHEAD*/ + 0, /* U+0002f1: MODIFIER LETTER LOW LEFT ARROWHEAD*/ + 0, /* U+0002f2: MODIFIER LETTER LOW RIGHT ARROWHEAD*/ + 0, /* U+0002f3: MODIFIER LETTER LOW RING*/ + 0, /* U+0002f4: MODIFIER LETTER MIDDLE GRAVE ACCENT*/ + 0, /* U+0002f5: MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT*/ + 0, /* U+0002f6: MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT*/ + 0, /* U+0002f7: MODIFIER LETTER LOW TILDE*/ + 0, /* U+0002f8: MODIFIER LETTER RAISED COLON*/ + 0, /* U+0002f9: MODIFIER LETTER BEGIN HIGH TONE*/ + 0, /* U+0002fa: MODIFIER LETTER END HIGH TONE*/ + 0, /* U+0002fb: MODIFIER LETTER BEGIN LOW TONE*/ + 0, /* U+0002fc: MODIFIER LETTER END LOW TONE*/ + 0, /* U+0002fd: MODIFIER LETTER SHELF*/ + 0, /* U+0002fe: MODIFIER LETTER OPEN SHELF*/ + 0, /* U+0002ff: MODIFIER LETTER LOW LEFT ARROW*/ + 0, /* U+000300: COMBINING GRAVE ACCENT*/ + 0, /* U+000301: COMBINING ACUTE ACCENT*/ + 0, /* U+000302: COMBINING CIRCUMFLEX ACCENT*/ + 0, /* U+000303: COMBINING TILDE*/ + 0, /* U+000304: COMBINING MACRON*/ + 0, /* U+000305: COMBINING OVERLINE*/ + 0, /* U+000306: COMBINING BREVE*/ + 0, /* U+000307: COMBINING DOT ABOVE*/ + 0, /* U+000308: COMBINING DIAERESIS*/ + 0, /* U+000309: COMBINING HOOK ABOVE*/ + 0, /* U+00030a: COMBINING RING ABOVE*/ + 0, /* U+00030b: COMBINING DOUBLE ACUTE ACCENT*/ + 0, /* U+00030c: COMBINING CARON*/ + 0, /* U+00030d: COMBINING VERTICAL LINE ABOVE*/ + 0, /* U+00030e: COMBINING DOUBLE VERTICAL LINE ABOVE*/ + 0, /* U+00030f: COMBINING DOUBLE GRAVE ACCENT*/ + 0, /* U+000310: COMBINING CANDRABINDU*/ + 0, /* U+000311: COMBINING INVERTED BREVE*/ + 0, /* U+000312: COMBINING TURNED COMMA ABOVE*/ + 0, /* U+000313: COMBINING COMMA ABOVE*/ + 0, /* U+000314: COMBINING REVERSED COMMA ABOVE*/ + 0, /* U+000315: COMBINING COMMA ABOVE RIGHT*/ + 0, /* U+000316: COMBINING GRAVE ACCENT BELOW*/ + 0, /* U+000317: COMBINING ACUTE ACCENT BELOW*/ + 0, /* U+000318: COMBINING LEFT TACK BELOW*/ + 0, /* U+000319: COMBINING RIGHT TACK BELOW*/ + 0, /* U+00031a: COMBINING LEFT ANGLE ABOVE*/ + 0, /* U+00031b: COMBINING HORN*/ + 0, /* U+00031c: COMBINING LEFT HALF RING BELOW*/ + 0, /* U+00031d: COMBINING UP TACK BELOW*/ + 0, /* U+00031e: COMBINING DOWN TACK BELOW*/ + 0, /* U+00031f: COMBINING PLUS SIGN BELOW*/ + 0, /* U+000320: COMBINING MINUS SIGN BELOW*/ + 0, /* U+000321: COMBINING PALATALIZED HOOK BELOW*/ + 0, /* U+000322: COMBINING RETROFLEX HOOK BELOW*/ + 0, /* U+000323: COMBINING DOT BELOW*/ + 0, /* U+000324: COMBINING DIAERESIS BELOW*/ + 0, /* U+000325: COMBINING RING BELOW*/ + 0, /* U+000326: COMBINING COMMA BELOW*/ + 0, /* U+000327: COMBINING CEDILLA*/ + 0, /* U+000328: COMBINING OGONEK*/ + 0, /* U+000329: COMBINING VERTICAL LINE BELOW*/ + 0, /* U+00032a: COMBINING BRIDGE BELOW*/ + 0, /* U+00032b: COMBINING INVERTED DOUBLE ARCH BELOW*/ + 0, /* U+00032c: COMBINING CARON BELOW*/ + 0, /* U+00032d: COMBINING CIRCUMFLEX ACCENT BELOW*/ + 0, /* U+00032e: COMBINING BREVE BELOW*/ + 0, /* U+00032f: COMBINING INVERTED BREVE BELOW*/ + 0, /* U+000330: COMBINING TILDE BELOW*/ + 0, /* U+000331: COMBINING MACRON BELOW*/ + 0, /* U+000332: COMBINING LOW LINE*/ + 0, /* U+000333: COMBINING DOUBLE LOW LINE*/ + 0, /* U+000334: COMBINING TILDE OVERLAY*/ + 0, /* U+000335: COMBINING SHORT STROKE OVERLAY*/ + 0, /* U+000336: COMBINING LONG STROKE OVERLAY*/ + 0, /* U+000337: COMBINING SHORT SOLIDUS OVERLAY*/ + 0, /* U+000338: COMBINING LONG SOLIDUS OVERLAY*/ + 0, /* U+000339: COMBINING RIGHT HALF RING BELOW*/ + 0, /* U+00033a: COMBINING INVERTED BRIDGE BELOW*/ + 0, /* U+00033b: COMBINING SQUARE BELOW*/ + 0, /* U+00033c: COMBINING SEAGULL BELOW*/ + 0, /* U+00033d: COMBINING X ABOVE*/ + 0, /* U+00033e: COMBINING VERTICAL TILDE*/ + 0, /* U+00033f: COMBINING DOUBLE OVERLINE*/ + 0, /* U+000340: COMBINING GRAVE TONE MARK*/ + 0, /* U+000341: COMBINING ACUTE TONE MARK*/ + 0, /* U+000342: COMBINING GREEK PERISPOMENI*/ + 0, /* U+000343: COMBINING GREEK KORONIS*/ + 0, /* U+000344: COMBINING GREEK DIALYTIKA TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000345: COMBINING GREEK YPOGEGRAMMENI*/ + 0, /* U+000346: COMBINING BRIDGE ABOVE*/ + 0, /* U+000347: COMBINING EQUALS SIGN BELOW*/ + 0, /* U+000348: COMBINING DOUBLE VERTICAL LINE BELOW*/ + 0, /* U+000349: COMBINING LEFT ANGLE BELOW*/ + 0, /* U+00034a: COMBINING NOT TILDE ABOVE*/ + 0, /* U+00034b: COMBINING HOMOTHETIC ABOVE*/ + 0, /* U+00034c: COMBINING ALMOST EQUAL TO ABOVE*/ + 0, /* U+00034d: COMBINING LEFT RIGHT ARROW BELOW*/ + 0, /* U+00034e: COMBINING UPWARDS ARROW BELOW*/ + 0, /* U+00034f: COMBINING GRAPHEME JOINER*/ + 0, /* U+000350: COMBINING RIGHT ARROWHEAD ABOVE*/ + 0, /* U+000351: COMBINING LEFT HALF RING ABOVE*/ + 0, /* U+000352: COMBINING FERMATA*/ + 0, /* U+000353: COMBINING X BELOW*/ + 0, /* U+000354: COMBINING LEFT ARROWHEAD BELOW*/ + 0, /* U+000355: COMBINING RIGHT ARROWHEAD BELOW*/ + 0, /* U+000356: COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW*/ + 0, /* U+000357: COMBINING RIGHT HALF RING ABOVE*/ + 0, /* U+000358: COMBINING DOT ABOVE RIGHT*/ + 0, /* U+000359: COMBINING ASTERISK BELOW*/ + 0, /* U+00035a: COMBINING DOUBLE RING BELOW*/ + 0, /* U+00035b: COMBINING ZIGZAG ABOVE*/ + 0, /* U+00035c: COMBINING DOUBLE BREVE BELOW*/ + 0, /* U+00035d: COMBINING DOUBLE BREVE*/ + 0, /* U+00035e: COMBINING DOUBLE MACRON*/ + 0, /* U+00035f: COMBINING DOUBLE MACRON BELOW*/ + 0, /* U+000360: COMBINING DOUBLE TILDE*/ + 0, /* U+000361: COMBINING DOUBLE INVERTED BREVE*/ + 0, /* U+000362: COMBINING DOUBLE RIGHTWARDS ARROW BELOW*/ + 0, /* U+000363: COMBINING LATIN SMALL LETTER A*/ + 0, /* U+000364: COMBINING LATIN SMALL LETTER E*/ + 0, /* U+000365: COMBINING LATIN SMALL LETTER I*/ + 0, /* U+000366: COMBINING LATIN SMALL LETTER O*/ + 0, /* U+000367: COMBINING LATIN SMALL LETTER U*/ + 0, /* U+000368: COMBINING LATIN SMALL LETTER C*/ + 0, /* U+000369: COMBINING LATIN SMALL LETTER D*/ + 0, /* U+00036a: COMBINING LATIN SMALL LETTER H*/ + 0, /* U+00036b: COMBINING LATIN SMALL LETTER M*/ + 0, /* U+00036c: COMBINING LATIN SMALL LETTER R*/ + 0, /* U+00036d: COMBINING LATIN SMALL LETTER T*/ + 0, /* U+00036e: COMBINING LATIN SMALL LETTER V*/ + 0, /* U+00036f: COMBINING LATIN SMALL LETTER X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000370: GREEK CAPITAL LETTER HETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000371: GREEK SMALL LETTER HETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000372: GREEK CAPITAL LETTER ARCHAIC SAMPI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000373: GREEK SMALL LETTER ARCHAIC SAMPI*/ + RTUNI_ALPHA, /* U+000374: GREEK NUMERAL SIGN*/ + 0, /* U+000375: GREEK LOWER NUMERAL SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000376: GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000377: GREEK SMALL LETTER PAMPHYLIAN DIGAMMA*/ + 0, /* U+000378: */ + 0, /* U+000379: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00037a: GREEK YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00037b: GREEK SMALL REVERSED LUNATE SIGMA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00037c: GREEK SMALL DOTTED LUNATE SIGMA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00037d: GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL*/ + 0, /* U+00037e: GREEK QUESTION MARK*/ + 0, /* U+00037f: */ + 0, /* U+000380: */ + 0, /* U+000381: */ + 0, /* U+000382: */ + 0, /* U+000383: */ + 0, /* U+000384: GREEK TONOS*/ + 0, /* U+000385: GREEK DIALYTIKA TONOS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000386: GREEK CAPITAL LETTER ALPHA WITH TONOS*/ + 0, /* U+000387: GREEK ANO TELEIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000388: GREEK CAPITAL LETTER EPSILON WITH TONOS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000389: GREEK CAPITAL LETTER ETA WITH TONOS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00038a: GREEK CAPITAL LETTER IOTA WITH TONOS*/ + 0, /* U+00038b: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00038c: GREEK CAPITAL LETTER OMICRON WITH TONOS*/ + 0, /* U+00038d: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00038e: GREEK CAPITAL LETTER UPSILON WITH TONOS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00038f: GREEK CAPITAL LETTER OMEGA WITH TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000390: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000391: GREEK CAPITAL LETTER ALPHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000392: GREEK CAPITAL LETTER BETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000393: GREEK CAPITAL LETTER GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000394: GREEK CAPITAL LETTER DELTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000395: GREEK CAPITAL LETTER EPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000396: GREEK CAPITAL LETTER ZETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000397: GREEK CAPITAL LETTER ETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000398: GREEK CAPITAL LETTER THETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000399: GREEK CAPITAL LETTER IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00039a: GREEK CAPITAL LETTER KAPPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00039b: GREEK CAPITAL LETTER LAMDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00039c: GREEK CAPITAL LETTER MU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00039d: GREEK CAPITAL LETTER NU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00039e: GREEK CAPITAL LETTER XI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00039f: GREEK CAPITAL LETTER OMICRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a0: GREEK CAPITAL LETTER PI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a1: GREEK CAPITAL LETTER RHO*/ + 0, /* U+0003a2: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a3: GREEK CAPITAL LETTER SIGMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a4: GREEK CAPITAL LETTER TAU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a5: GREEK CAPITAL LETTER UPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a6: GREEK CAPITAL LETTER PHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a7: GREEK CAPITAL LETTER CHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a8: GREEK CAPITAL LETTER PSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003a9: GREEK CAPITAL LETTER OMEGA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003aa: GREEK CAPITAL LETTER IOTA WITH DIALYTIKA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003ab: GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ac: GREEK SMALL LETTER ALPHA WITH TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ad: GREEK SMALL LETTER EPSILON WITH TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ae: GREEK SMALL LETTER ETA WITH TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003af: GREEK SMALL LETTER IOTA WITH TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b0: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b1: GREEK SMALL LETTER ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b2: GREEK SMALL LETTER BETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b3: GREEK SMALL LETTER GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b4: GREEK SMALL LETTER DELTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b5: GREEK SMALL LETTER EPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b6: GREEK SMALL LETTER ZETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b7: GREEK SMALL LETTER ETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b8: GREEK SMALL LETTER THETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003b9: GREEK SMALL LETTER IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ba: GREEK SMALL LETTER KAPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003bb: GREEK SMALL LETTER LAMDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003bc: GREEK SMALL LETTER MU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003bd: GREEK SMALL LETTER NU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003be: GREEK SMALL LETTER XI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003bf: GREEK SMALL LETTER OMICRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c0: GREEK SMALL LETTER PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c1: GREEK SMALL LETTER RHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c2: GREEK SMALL LETTER FINAL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c3: GREEK SMALL LETTER SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c4: GREEK SMALL LETTER TAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c5: GREEK SMALL LETTER UPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c6: GREEK SMALL LETTER PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c7: GREEK SMALL LETTER CHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c8: GREEK SMALL LETTER PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003c9: GREEK SMALL LETTER OMEGA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ca: GREEK SMALL LETTER IOTA WITH DIALYTIKA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003cb: GREEK SMALL LETTER UPSILON WITH DIALYTIKA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003cc: GREEK SMALL LETTER OMICRON WITH TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003cd: GREEK SMALL LETTER UPSILON WITH TONOS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ce: GREEK SMALL LETTER OMEGA WITH TONOS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003cf: GREEK CAPITAL KAI SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d0: GREEK BETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d1: GREEK THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003d2: GREEK UPSILON WITH HOOK SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003d3: GREEK UPSILON WITH ACUTE AND HOOK SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003d4: GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d5: GREEK PHI SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d6: GREEK PI SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d7: GREEK KAI SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003d8: GREEK LETTER ARCHAIC KOPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003d9: GREEK SMALL LETTER ARCHAIC KOPPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003da: GREEK LETTER STIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003db: GREEK SMALL LETTER STIGMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003dc: GREEK LETTER DIGAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003dd: GREEK SMALL LETTER DIGAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003de: GREEK LETTER KOPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003df: GREEK SMALL LETTER KOPPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003e0: GREEK LETTER SAMPI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003e1: GREEK SMALL LETTER SAMPI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003e2: COPTIC CAPITAL LETTER SHEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003e3: COPTIC SMALL LETTER SHEI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003e4: COPTIC CAPITAL LETTER FEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003e5: COPTIC SMALL LETTER FEI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003e6: COPTIC CAPITAL LETTER KHEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003e7: COPTIC SMALL LETTER KHEI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003e8: COPTIC CAPITAL LETTER HORI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003e9: COPTIC SMALL LETTER HORI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003ea: COPTIC CAPITAL LETTER GANGIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003eb: COPTIC SMALL LETTER GANGIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003ec: COPTIC CAPITAL LETTER SHIMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ed: COPTIC SMALL LETTER SHIMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003ee: COPTIC CAPITAL LETTER DEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003ef: COPTIC SMALL LETTER DEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f0: GREEK KAPPA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f1: GREEK RHO SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f2: GREEK LUNATE SIGMA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f3: GREEK LETTER YOT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003f4: GREEK CAPITAL THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f5: GREEK LUNATE EPSILON SYMBOL*/ + 0, /* U+0003f6: GREEK REVERSED LUNATE EPSILON SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003f7: GREEK CAPITAL LETTER SHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003f8: GREEK SMALL LETTER SHO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003f9: GREEK CAPITAL LUNATE SIGMA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003fa: GREEK CAPITAL LETTER SAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003fb: GREEK SMALL LETTER SAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0003fc: GREEK RHO WITH STROKE SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003fd: GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003fe: GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0003ff: GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000400: CYRILLIC CAPITAL LETTER IE WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000401: CYRILLIC CAPITAL LETTER IO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000402: CYRILLIC CAPITAL LETTER DJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000403: CYRILLIC CAPITAL LETTER GJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000404: CYRILLIC CAPITAL LETTER UKRAINIAN IE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000405: CYRILLIC CAPITAL LETTER DZE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000406: CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000407: CYRILLIC CAPITAL LETTER YI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000408: CYRILLIC CAPITAL LETTER JE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000409: CYRILLIC CAPITAL LETTER LJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00040a: CYRILLIC CAPITAL LETTER NJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00040b: CYRILLIC CAPITAL LETTER TSHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00040c: CYRILLIC CAPITAL LETTER KJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00040d: CYRILLIC CAPITAL LETTER I WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00040e: CYRILLIC CAPITAL LETTER SHORT U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00040f: CYRILLIC CAPITAL LETTER DZHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000410: CYRILLIC CAPITAL LETTER A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000411: CYRILLIC CAPITAL LETTER BE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000412: CYRILLIC CAPITAL LETTER VE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000413: CYRILLIC CAPITAL LETTER GHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000414: CYRILLIC CAPITAL LETTER DE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000415: CYRILLIC CAPITAL LETTER IE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000416: CYRILLIC CAPITAL LETTER ZHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000417: CYRILLIC CAPITAL LETTER ZE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000418: CYRILLIC CAPITAL LETTER I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000419: CYRILLIC CAPITAL LETTER SHORT I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00041a: CYRILLIC CAPITAL LETTER KA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00041b: CYRILLIC CAPITAL LETTER EL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00041c: CYRILLIC CAPITAL LETTER EM*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00041d: CYRILLIC CAPITAL LETTER EN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00041e: CYRILLIC CAPITAL LETTER O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00041f: CYRILLIC CAPITAL LETTER PE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000420: CYRILLIC CAPITAL LETTER ER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000421: CYRILLIC CAPITAL LETTER ES*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000422: CYRILLIC CAPITAL LETTER TE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000423: CYRILLIC CAPITAL LETTER U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000424: CYRILLIC CAPITAL LETTER EF*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000425: CYRILLIC CAPITAL LETTER HA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000426: CYRILLIC CAPITAL LETTER TSE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000427: CYRILLIC CAPITAL LETTER CHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000428: CYRILLIC CAPITAL LETTER SHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000429: CYRILLIC CAPITAL LETTER SHCHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00042a: CYRILLIC CAPITAL LETTER HARD SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00042b: CYRILLIC CAPITAL LETTER YERU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00042c: CYRILLIC CAPITAL LETTER SOFT SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00042d: CYRILLIC CAPITAL LETTER E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00042e: CYRILLIC CAPITAL LETTER YU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00042f: CYRILLIC CAPITAL LETTER YA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000430: CYRILLIC SMALL LETTER A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000431: CYRILLIC SMALL LETTER BE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000432: CYRILLIC SMALL LETTER VE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000433: CYRILLIC SMALL LETTER GHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000434: CYRILLIC SMALL LETTER DE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000435: CYRILLIC SMALL LETTER IE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000436: CYRILLIC SMALL LETTER ZHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000437: CYRILLIC SMALL LETTER ZE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000438: CYRILLIC SMALL LETTER I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000439: CYRILLIC SMALL LETTER SHORT I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00043a: CYRILLIC SMALL LETTER KA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00043b: CYRILLIC SMALL LETTER EL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00043c: CYRILLIC SMALL LETTER EM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00043d: CYRILLIC SMALL LETTER EN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00043e: CYRILLIC SMALL LETTER O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00043f: CYRILLIC SMALL LETTER PE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000440: CYRILLIC SMALL LETTER ER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000441: CYRILLIC SMALL LETTER ES*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000442: CYRILLIC SMALL LETTER TE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000443: CYRILLIC SMALL LETTER U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000444: CYRILLIC SMALL LETTER EF*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000445: CYRILLIC SMALL LETTER HA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000446: CYRILLIC SMALL LETTER TSE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000447: CYRILLIC SMALL LETTER CHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000448: CYRILLIC SMALL LETTER SHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000449: CYRILLIC SMALL LETTER SHCHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00044a: CYRILLIC SMALL LETTER HARD SIGN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00044b: CYRILLIC SMALL LETTER YERU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00044c: CYRILLIC SMALL LETTER SOFT SIGN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00044d: CYRILLIC SMALL LETTER E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00044e: CYRILLIC SMALL LETTER YU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00044f: CYRILLIC SMALL LETTER YA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000450: CYRILLIC SMALL LETTER IE WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000451: CYRILLIC SMALL LETTER IO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000452: CYRILLIC SMALL LETTER DJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000453: CYRILLIC SMALL LETTER GJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000454: CYRILLIC SMALL LETTER UKRAINIAN IE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000455: CYRILLIC SMALL LETTER DZE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000456: CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000457: CYRILLIC SMALL LETTER YI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000458: CYRILLIC SMALL LETTER JE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000459: CYRILLIC SMALL LETTER LJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00045a: CYRILLIC SMALL LETTER NJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00045b: CYRILLIC SMALL LETTER TSHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00045c: CYRILLIC SMALL LETTER KJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00045d: CYRILLIC SMALL LETTER I WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00045e: CYRILLIC SMALL LETTER SHORT U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00045f: CYRILLIC SMALL LETTER DZHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000460: CYRILLIC CAPITAL LETTER OMEGA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000461: CYRILLIC SMALL LETTER OMEGA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000462: CYRILLIC CAPITAL LETTER YAT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000463: CYRILLIC SMALL LETTER YAT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000464: CYRILLIC CAPITAL LETTER IOTIFIED E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000465: CYRILLIC SMALL LETTER IOTIFIED E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000466: CYRILLIC CAPITAL LETTER LITTLE YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000467: CYRILLIC SMALL LETTER LITTLE YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000468: CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000469: CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00046a: CYRILLIC CAPITAL LETTER BIG YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00046b: CYRILLIC SMALL LETTER BIG YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00046c: CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00046d: CYRILLIC SMALL LETTER IOTIFIED BIG YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00046e: CYRILLIC CAPITAL LETTER KSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00046f: CYRILLIC SMALL LETTER KSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000470: CYRILLIC CAPITAL LETTER PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000471: CYRILLIC SMALL LETTER PSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000472: CYRILLIC CAPITAL LETTER FITA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000473: CYRILLIC SMALL LETTER FITA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000474: CYRILLIC CAPITAL LETTER IZHITSA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000475: CYRILLIC SMALL LETTER IZHITSA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000476: CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000477: CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000478: CYRILLIC CAPITAL LETTER UK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000479: CYRILLIC SMALL LETTER UK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00047a: CYRILLIC CAPITAL LETTER ROUND OMEGA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00047b: CYRILLIC SMALL LETTER ROUND OMEGA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00047c: CYRILLIC CAPITAL LETTER OMEGA WITH TITLO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00047d: CYRILLIC SMALL LETTER OMEGA WITH TITLO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00047e: CYRILLIC CAPITAL LETTER OT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00047f: CYRILLIC SMALL LETTER OT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000480: CYRILLIC CAPITAL LETTER KOPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000481: CYRILLIC SMALL LETTER KOPPA*/ + 0, /* U+000482: CYRILLIC THOUSANDS SIGN*/ + 0, /* U+000483: COMBINING CYRILLIC TITLO*/ + 0, /* U+000484: COMBINING CYRILLIC PALATALIZATION*/ + 0, /* U+000485: COMBINING CYRILLIC DASIA PNEUMATA*/ + 0, /* U+000486: COMBINING CYRILLIC PSILI PNEUMATA*/ + 0, /* U+000487: COMBINING CYRILLIC POKRYTIE*/ + 0, /* U+000488: COMBINING CYRILLIC HUNDRED THOUSANDS SIGN*/ + 0, /* U+000489: COMBINING CYRILLIC MILLIONS SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00048a: CYRILLIC CAPITAL LETTER SHORT I WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00048b: CYRILLIC SMALL LETTER SHORT I WITH TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00048c: CYRILLIC CAPITAL LETTER SEMISOFT SIGN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00048d: CYRILLIC SMALL LETTER SEMISOFT SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00048e: CYRILLIC CAPITAL LETTER ER WITH TICK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00048f: CYRILLIC SMALL LETTER ER WITH TICK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000490: CYRILLIC CAPITAL LETTER GHE WITH UPTURN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000491: CYRILLIC SMALL LETTER GHE WITH UPTURN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000492: CYRILLIC CAPITAL LETTER GHE WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000493: CYRILLIC SMALL LETTER GHE WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000494: CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000495: CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000496: CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000497: CYRILLIC SMALL LETTER ZHE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000498: CYRILLIC CAPITAL LETTER ZE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000499: CYRILLIC SMALL LETTER ZE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00049a: CYRILLIC CAPITAL LETTER KA WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00049b: CYRILLIC SMALL LETTER KA WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00049c: CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00049d: CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00049e: CYRILLIC CAPITAL LETTER KA WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00049f: CYRILLIC SMALL LETTER KA WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004a0: CYRILLIC CAPITAL LETTER BASHKIR KA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004a1: CYRILLIC SMALL LETTER BASHKIR KA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004a2: CYRILLIC CAPITAL LETTER EN WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004a3: CYRILLIC SMALL LETTER EN WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004a4: CYRILLIC CAPITAL LIGATURE EN GHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004a5: CYRILLIC SMALL LIGATURE EN GHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004a6: CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004a7: CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004a8: CYRILLIC CAPITAL LETTER ABKHASIAN HA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004a9: CYRILLIC SMALL LETTER ABKHASIAN HA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004aa: CYRILLIC CAPITAL LETTER ES WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ab: CYRILLIC SMALL LETTER ES WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ac: CYRILLIC CAPITAL LETTER TE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ad: CYRILLIC SMALL LETTER TE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ae: CYRILLIC CAPITAL LETTER STRAIGHT U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004af: CYRILLIC SMALL LETTER STRAIGHT U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004b0: CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004b1: CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004b2: CYRILLIC CAPITAL LETTER HA WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004b3: CYRILLIC SMALL LETTER HA WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004b4: CYRILLIC CAPITAL LIGATURE TE TSE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004b5: CYRILLIC SMALL LIGATURE TE TSE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004b6: CYRILLIC CAPITAL LETTER CHE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004b7: CYRILLIC SMALL LETTER CHE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004b8: CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004b9: CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ba: CYRILLIC CAPITAL LETTER SHHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004bb: CYRILLIC SMALL LETTER SHHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004bc: CYRILLIC CAPITAL LETTER ABKHASIAN CHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004bd: CYRILLIC SMALL LETTER ABKHASIAN CHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004be: CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004bf: CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c0: CYRILLIC LETTER PALOCHKA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c1: CYRILLIC CAPITAL LETTER ZHE WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004c2: CYRILLIC SMALL LETTER ZHE WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c3: CYRILLIC CAPITAL LETTER KA WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004c4: CYRILLIC SMALL LETTER KA WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c5: CYRILLIC CAPITAL LETTER EL WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004c6: CYRILLIC SMALL LETTER EL WITH TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c7: CYRILLIC CAPITAL LETTER EN WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004c8: CYRILLIC SMALL LETTER EN WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004c9: CYRILLIC CAPITAL LETTER EN WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ca: CYRILLIC SMALL LETTER EN WITH TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004cb: CYRILLIC CAPITAL LETTER KHAKASSIAN CHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004cc: CYRILLIC SMALL LETTER KHAKASSIAN CHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004cd: CYRILLIC CAPITAL LETTER EM WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ce: CYRILLIC SMALL LETTER EM WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004cf: CYRILLIC SMALL LETTER PALOCHKA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004d0: CYRILLIC CAPITAL LETTER A WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004d1: CYRILLIC SMALL LETTER A WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004d2: CYRILLIC CAPITAL LETTER A WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004d3: CYRILLIC SMALL LETTER A WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004d4: CYRILLIC CAPITAL LIGATURE A IE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004d5: CYRILLIC SMALL LIGATURE A IE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004d6: CYRILLIC CAPITAL LETTER IE WITH BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004d7: CYRILLIC SMALL LETTER IE WITH BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004d8: CYRILLIC CAPITAL LETTER SCHWA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004d9: CYRILLIC SMALL LETTER SCHWA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004da: CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004db: CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004dc: CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004dd: CYRILLIC SMALL LETTER ZHE WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004de: CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004df: CYRILLIC SMALL LETTER ZE WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004e0: CYRILLIC CAPITAL LETTER ABKHASIAN DZE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004e1: CYRILLIC SMALL LETTER ABKHASIAN DZE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004e2: CYRILLIC CAPITAL LETTER I WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004e3: CYRILLIC SMALL LETTER I WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004e4: CYRILLIC CAPITAL LETTER I WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004e5: CYRILLIC SMALL LETTER I WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004e6: CYRILLIC CAPITAL LETTER O WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004e7: CYRILLIC SMALL LETTER O WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004e8: CYRILLIC CAPITAL LETTER BARRED O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004e9: CYRILLIC SMALL LETTER BARRED O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ea: CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004eb: CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ec: CYRILLIC CAPITAL LETTER E WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ed: CYRILLIC SMALL LETTER E WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004ee: CYRILLIC CAPITAL LETTER U WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ef: CYRILLIC SMALL LETTER U WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004f0: CYRILLIC CAPITAL LETTER U WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004f1: CYRILLIC SMALL LETTER U WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004f2: CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004f3: CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004f4: CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004f5: CYRILLIC SMALL LETTER CHE WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004f6: CYRILLIC CAPITAL LETTER GHE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004f7: CYRILLIC SMALL LETTER GHE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004f8: CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004f9: CYRILLIC SMALL LETTER YERU WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004fa: CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004fb: CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004fc: CYRILLIC CAPITAL LETTER HA WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004fd: CYRILLIC SMALL LETTER HA WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0004fe: CYRILLIC CAPITAL LETTER HA WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0004ff: CYRILLIC SMALL LETTER HA WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000500: CYRILLIC CAPITAL LETTER KOMI DE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000501: CYRILLIC SMALL LETTER KOMI DE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000502: CYRILLIC CAPITAL LETTER KOMI DJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000503: CYRILLIC SMALL LETTER KOMI DJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000504: CYRILLIC CAPITAL LETTER KOMI ZJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000505: CYRILLIC SMALL LETTER KOMI ZJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000506: CYRILLIC CAPITAL LETTER KOMI DZJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000507: CYRILLIC SMALL LETTER KOMI DZJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000508: CYRILLIC CAPITAL LETTER KOMI LJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000509: CYRILLIC SMALL LETTER KOMI LJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00050a: CYRILLIC CAPITAL LETTER KOMI NJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00050b: CYRILLIC SMALL LETTER KOMI NJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00050c: CYRILLIC CAPITAL LETTER KOMI SJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00050d: CYRILLIC SMALL LETTER KOMI SJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00050e: CYRILLIC CAPITAL LETTER KOMI TJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00050f: CYRILLIC SMALL LETTER KOMI TJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000510: CYRILLIC CAPITAL LETTER REVERSED ZE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000511: CYRILLIC SMALL LETTER REVERSED ZE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000512: CYRILLIC CAPITAL LETTER EL WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000513: CYRILLIC SMALL LETTER EL WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000514: CYRILLIC CAPITAL LETTER LHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000515: CYRILLIC SMALL LETTER LHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000516: CYRILLIC CAPITAL LETTER RHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000517: CYRILLIC SMALL LETTER RHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000518: CYRILLIC CAPITAL LETTER YAE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000519: CYRILLIC SMALL LETTER YAE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00051a: CYRILLIC CAPITAL LETTER QA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00051b: CYRILLIC SMALL LETTER QA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00051c: CYRILLIC CAPITAL LETTER WE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00051d: CYRILLIC SMALL LETTER WE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00051e: CYRILLIC CAPITAL LETTER ALEUT KA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00051f: CYRILLIC SMALL LETTER ALEUT KA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000520: CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000521: CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000522: CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000523: CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000524: CYRILLIC CAPITAL LETTER PE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000525: CYRILLIC SMALL LETTER PE WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000526: CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000527: CYRILLIC SMALL LETTER SHHA WITH DESCENDER*/ + 0, /* U+000528: */ + 0, /* U+000529: */ + 0, /* U+00052a: */ + 0, /* U+00052b: */ + 0, /* U+00052c: */ + 0, /* U+00052d: */ + 0, /* U+00052e: */ + 0, /* U+00052f: */ + 0, /* U+000530: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000531: ARMENIAN CAPITAL LETTER AYB*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000532: ARMENIAN CAPITAL LETTER BEN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000533: ARMENIAN CAPITAL LETTER GIM*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000534: ARMENIAN CAPITAL LETTER DA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000535: ARMENIAN CAPITAL LETTER ECH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000536: ARMENIAN CAPITAL LETTER ZA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000537: ARMENIAN CAPITAL LETTER EH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000538: ARMENIAN CAPITAL LETTER ET*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000539: ARMENIAN CAPITAL LETTER TO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00053a: ARMENIAN CAPITAL LETTER ZHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00053b: ARMENIAN CAPITAL LETTER INI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00053c: ARMENIAN CAPITAL LETTER LIWN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00053d: ARMENIAN CAPITAL LETTER XEH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00053e: ARMENIAN CAPITAL LETTER CA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00053f: ARMENIAN CAPITAL LETTER KEN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000540: ARMENIAN CAPITAL LETTER HO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000541: ARMENIAN CAPITAL LETTER JA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000542: ARMENIAN CAPITAL LETTER GHAD*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000543: ARMENIAN CAPITAL LETTER CHEH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000544: ARMENIAN CAPITAL LETTER MEN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000545: ARMENIAN CAPITAL LETTER YI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000546: ARMENIAN CAPITAL LETTER NOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000547: ARMENIAN CAPITAL LETTER SHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000548: ARMENIAN CAPITAL LETTER VO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000549: ARMENIAN CAPITAL LETTER CHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00054a: ARMENIAN CAPITAL LETTER PEH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00054b: ARMENIAN CAPITAL LETTER JHEH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00054c: ARMENIAN CAPITAL LETTER RA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00054d: ARMENIAN CAPITAL LETTER SEH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00054e: ARMENIAN CAPITAL LETTER VEW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00054f: ARMENIAN CAPITAL LETTER TIWN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000550: ARMENIAN CAPITAL LETTER REH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000551: ARMENIAN CAPITAL LETTER CO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000552: ARMENIAN CAPITAL LETTER YIWN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000553: ARMENIAN CAPITAL LETTER PIWR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000554: ARMENIAN CAPITAL LETTER KEH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000555: ARMENIAN CAPITAL LETTER OH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+000556: ARMENIAN CAPITAL LETTER FEH*/ + 0, /* U+000557: */ + 0, /* U+000558: */ + RTUNI_ALPHA, /* U+000559: ARMENIAN MODIFIER LETTER LEFT HALF RING*/ + 0, /* U+00055a: ARMENIAN APOSTROPHE*/ + 0, /* U+00055b: ARMENIAN EMPHASIS MARK*/ + 0, /* U+00055c: ARMENIAN EXCLAMATION MARK*/ + 0, /* U+00055d: ARMENIAN COMMA*/ + 0, /* U+00055e: ARMENIAN QUESTION MARK*/ + 0, /* U+00055f: ARMENIAN ABBREVIATION MARK*/ + 0, /* U+000560: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000561: ARMENIAN SMALL LETTER AYB*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000562: ARMENIAN SMALL LETTER BEN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000563: ARMENIAN SMALL LETTER GIM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000564: ARMENIAN SMALL LETTER DA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000565: ARMENIAN SMALL LETTER ECH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000566: ARMENIAN SMALL LETTER ZA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000567: ARMENIAN SMALL LETTER EH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000568: ARMENIAN SMALL LETTER ET*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000569: ARMENIAN SMALL LETTER TO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00056a: ARMENIAN SMALL LETTER ZHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00056b: ARMENIAN SMALL LETTER INI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00056c: ARMENIAN SMALL LETTER LIWN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00056d: ARMENIAN SMALL LETTER XEH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00056e: ARMENIAN SMALL LETTER CA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00056f: ARMENIAN SMALL LETTER KEN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000570: ARMENIAN SMALL LETTER HO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000571: ARMENIAN SMALL LETTER JA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000572: ARMENIAN SMALL LETTER GHAD*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000573: ARMENIAN SMALL LETTER CHEH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000574: ARMENIAN SMALL LETTER MEN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000575: ARMENIAN SMALL LETTER YI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000576: ARMENIAN SMALL LETTER NOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000577: ARMENIAN SMALL LETTER SHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000578: ARMENIAN SMALL LETTER VO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000579: ARMENIAN SMALL LETTER CHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00057a: ARMENIAN SMALL LETTER PEH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00057b: ARMENIAN SMALL LETTER JHEH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00057c: ARMENIAN SMALL LETTER RA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00057d: ARMENIAN SMALL LETTER SEH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00057e: ARMENIAN SMALL LETTER VEW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00057f: ARMENIAN SMALL LETTER TIWN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000580: ARMENIAN SMALL LETTER REH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000581: ARMENIAN SMALL LETTER CO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000582: ARMENIAN SMALL LETTER YIWN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000583: ARMENIAN SMALL LETTER PIWR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000584: ARMENIAN SMALL LETTER KEH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000585: ARMENIAN SMALL LETTER OH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000586: ARMENIAN SMALL LETTER FEH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+000587: ARMENIAN SMALL LIGATURE ECH YIWN*/ + 0, /* U+000588: */ + 0, /* U+000589: ARMENIAN FULL STOP*/ + 0, /* U+00058a: ARMENIAN HYPHEN*/ + 0, /* U+00058b: */ + 0, /* U+00058c: */ + 0, /* U+00058d: */ + 0, /* U+00058e: */ + 0, /* U+00058f: ARMENIAN DRAM SIGN*/ + 0, /* U+000590: */ + 0, /* U+000591: HEBREW ACCENT ETNAHTA*/ + 0, /* U+000592: HEBREW ACCENT SEGOL*/ + 0, /* U+000593: HEBREW ACCENT SHALSHELET*/ + 0, /* U+000594: HEBREW ACCENT ZAQEF QATAN*/ + 0, /* U+000595: HEBREW ACCENT ZAQEF GADOL*/ + 0, /* U+000596: HEBREW ACCENT TIPEHA*/ + 0, /* U+000597: HEBREW ACCENT REVIA*/ + 0, /* U+000598: HEBREW ACCENT ZARQA*/ + 0, /* U+000599: HEBREW ACCENT PASHTA*/ + 0, /* U+00059a: HEBREW ACCENT YETIV*/ + 0, /* U+00059b: HEBREW ACCENT TEVIR*/ + 0, /* U+00059c: HEBREW ACCENT GERESH*/ + 0, /* U+00059d: HEBREW ACCENT GERESH MUQDAM*/ + 0, /* U+00059e: HEBREW ACCENT GERSHAYIM*/ + 0, /* U+00059f: HEBREW ACCENT QARNEY PARA*/ + 0, /* U+0005a0: HEBREW ACCENT TELISHA GEDOLA*/ + 0, /* U+0005a1: HEBREW ACCENT PAZER*/ + 0, /* U+0005a2: HEBREW ACCENT ATNAH HAFUKH*/ + 0, /* U+0005a3: HEBREW ACCENT MUNAH*/ + 0, /* U+0005a4: HEBREW ACCENT MAHAPAKH*/ + 0, /* U+0005a5: HEBREW ACCENT MERKHA*/ + 0, /* U+0005a6: HEBREW ACCENT MERKHA KEFULA*/ + 0, /* U+0005a7: HEBREW ACCENT DARGA*/ + 0, /* U+0005a8: HEBREW ACCENT QADMA*/ + 0, /* U+0005a9: HEBREW ACCENT TELISHA QETANA*/ + 0, /* U+0005aa: HEBREW ACCENT YERAH BEN YOMO*/ + 0, /* U+0005ab: HEBREW ACCENT OLE*/ + 0, /* U+0005ac: HEBREW ACCENT ILUY*/ + 0, /* U+0005ad: HEBREW ACCENT DEHI*/ + 0, /* U+0005ae: HEBREW ACCENT ZINOR*/ + 0, /* U+0005af: HEBREW MARK MASORA CIRCLE*/ + RTUNI_ALPHA, /* U+0005b0: HEBREW POINT SHEVA*/ + RTUNI_ALPHA, /* U+0005b1: HEBREW POINT HATAF SEGOL*/ + RTUNI_ALPHA, /* U+0005b2: HEBREW POINT HATAF PATAH*/ + RTUNI_ALPHA, /* U+0005b3: HEBREW POINT HATAF QAMATS*/ + RTUNI_ALPHA, /* U+0005b4: HEBREW POINT HIRIQ*/ + RTUNI_ALPHA, /* U+0005b5: HEBREW POINT TSERE*/ + RTUNI_ALPHA, /* U+0005b6: HEBREW POINT SEGOL*/ + RTUNI_ALPHA, /* U+0005b7: HEBREW POINT PATAH*/ + RTUNI_ALPHA, /* U+0005b8: HEBREW POINT QAMATS*/ + RTUNI_ALPHA, /* U+0005b9: HEBREW POINT HOLAM*/ + RTUNI_ALPHA, /* U+0005ba: HEBREW POINT HOLAM HASER FOR VAV*/ + RTUNI_ALPHA, /* U+0005bb: HEBREW POINT QUBUTS*/ + RTUNI_ALPHA, /* U+0005bc: HEBREW POINT DAGESH OR MAPIQ*/ + RTUNI_ALPHA, /* U+0005bd: HEBREW POINT METEG*/ + 0, /* U+0005be: HEBREW PUNCTUATION MAQAF*/ + RTUNI_ALPHA, /* U+0005bf: HEBREW POINT RAFE*/ + 0, /* U+0005c0: HEBREW PUNCTUATION PASEQ*/ + RTUNI_ALPHA, /* U+0005c1: HEBREW POINT SHIN DOT*/ + RTUNI_ALPHA, /* U+0005c2: HEBREW POINT SIN DOT*/ + 0, /* U+0005c3: HEBREW PUNCTUATION SOF PASUQ*/ + RTUNI_ALPHA, /* U+0005c4: HEBREW MARK UPPER DOT*/ + RTUNI_ALPHA, /* U+0005c5: HEBREW MARK LOWER DOT*/ + 0, /* U+0005c6: HEBREW PUNCTUATION NUN HAFUKHA*/ + RTUNI_ALPHA, /* U+0005c7: HEBREW POINT QAMATS QATAN*/ + 0, /* U+0005c8: */ + 0, /* U+0005c9: */ + 0, /* U+0005ca: */ + 0, /* U+0005cb: */ + 0, /* U+0005cc: */ + 0, /* U+0005cd: */ + 0, /* U+0005ce: */ + 0, /* U+0005cf: */ + RTUNI_ALPHA, /* U+0005d0: HEBREW LETTER ALEF*/ + RTUNI_ALPHA, /* U+0005d1: HEBREW LETTER BET*/ + RTUNI_ALPHA, /* U+0005d2: HEBREW LETTER GIMEL*/ + RTUNI_ALPHA, /* U+0005d3: HEBREW LETTER DALET*/ + RTUNI_ALPHA, /* U+0005d4: HEBREW LETTER HE*/ + RTUNI_ALPHA, /* U+0005d5: HEBREW LETTER VAV*/ + RTUNI_ALPHA, /* U+0005d6: HEBREW LETTER ZAYIN*/ + RTUNI_ALPHA, /* U+0005d7: HEBREW LETTER HET*/ + RTUNI_ALPHA, /* U+0005d8: HEBREW LETTER TET*/ + RTUNI_ALPHA, /* U+0005d9: HEBREW LETTER YOD*/ + RTUNI_ALPHA, /* U+0005da: HEBREW LETTER FINAL KAF*/ + RTUNI_ALPHA, /* U+0005db: HEBREW LETTER KAF*/ + RTUNI_ALPHA, /* U+0005dc: HEBREW LETTER LAMED*/ + RTUNI_ALPHA, /* U+0005dd: HEBREW LETTER FINAL MEM*/ + RTUNI_ALPHA, /* U+0005de: HEBREW LETTER MEM*/ + RTUNI_ALPHA, /* U+0005df: HEBREW LETTER FINAL NUN*/ + RTUNI_ALPHA, /* U+0005e0: HEBREW LETTER NUN*/ + RTUNI_ALPHA, /* U+0005e1: HEBREW LETTER SAMEKH*/ + RTUNI_ALPHA, /* U+0005e2: HEBREW LETTER AYIN*/ + RTUNI_ALPHA, /* U+0005e3: HEBREW LETTER FINAL PE*/ + RTUNI_ALPHA, /* U+0005e4: HEBREW LETTER PE*/ + RTUNI_ALPHA, /* U+0005e5: HEBREW LETTER FINAL TSADI*/ + RTUNI_ALPHA, /* U+0005e6: HEBREW LETTER TSADI*/ + RTUNI_ALPHA, /* U+0005e7: HEBREW LETTER QOF*/ + RTUNI_ALPHA, /* U+0005e8: HEBREW LETTER RESH*/ + RTUNI_ALPHA, /* U+0005e9: HEBREW LETTER SHIN*/ + RTUNI_ALPHA, /* U+0005ea: HEBREW LETTER TAV*/ + 0, /* U+0005eb: */ + 0, /* U+0005ec: */ + 0, /* U+0005ed: */ + 0, /* U+0005ee: */ + 0, /* U+0005ef: */ + RTUNI_ALPHA, /* U+0005f0: HEBREW LIGATURE YIDDISH DOUBLE VAV*/ + RTUNI_ALPHA, /* U+0005f1: HEBREW LIGATURE YIDDISH VAV YOD*/ + RTUNI_ALPHA, /* U+0005f2: HEBREW LIGATURE YIDDISH DOUBLE YOD*/ + 0, /* U+0005f3: HEBREW PUNCTUATION GERESH*/ + 0, /* U+0005f4: HEBREW PUNCTUATION GERSHAYIM*/ + 0, /* U+0005f5: */ + 0, /* U+0005f6: */ + 0, /* U+0005f7: */ + 0, /* U+0005f8: */ + 0, /* U+0005f9: */ + 0, /* U+0005fa: */ + 0, /* U+0005fb: */ + 0, /* U+0005fc: */ + 0, /* U+0005fd: */ + 0, /* U+0005fe: */ + 0, /* U+0005ff: */ + 0, /* U+000600: ARABIC NUMBER SIGN*/ + 0, /* U+000601: ARABIC SIGN SANAH*/ + 0, /* U+000602: ARABIC FOOTNOTE MARKER*/ + 0, /* U+000603: ARABIC SIGN SAFHA*/ + 0, /* U+000604: ARABIC SIGN SAMVAT*/ + 0, /* U+000605: */ + 0, /* U+000606: ARABIC-INDIC CUBE ROOT*/ + 0, /* U+000607: ARABIC-INDIC FOURTH ROOT*/ + 0, /* U+000608: ARABIC RAY*/ + 0, /* U+000609: ARABIC-INDIC PER MILLE SIGN*/ + 0, /* U+00060a: ARABIC-INDIC PER TEN THOUSAND SIGN*/ + 0, /* U+00060b: AFGHANI SIGN*/ + 0, /* U+00060c: ARABIC COMMA*/ + 0, /* U+00060d: ARABIC DATE SEPARATOR*/ + 0, /* U+00060e: ARABIC POETIC VERSE SIGN*/ + 0, /* U+00060f: ARABIC SIGN MISRA*/ + RTUNI_ALPHA, /* U+000610: ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM*/ + RTUNI_ALPHA, /* U+000611: ARABIC SIGN ALAYHE ASSALLAM*/ + RTUNI_ALPHA, /* U+000612: ARABIC SIGN RAHMATULLAH ALAYHE*/ + RTUNI_ALPHA, /* U+000613: ARABIC SIGN RADI ALLAHOU ANHU*/ + RTUNI_ALPHA, /* U+000614: ARABIC SIGN TAKHALLUS*/ + RTUNI_ALPHA, /* U+000615: ARABIC SMALL HIGH TAH*/ + RTUNI_ALPHA, /* U+000616: ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH*/ + RTUNI_ALPHA, /* U+000617: ARABIC SMALL HIGH ZAIN*/ + RTUNI_ALPHA, /* U+000618: ARABIC SMALL FATHA*/ + RTUNI_ALPHA, /* U+000619: ARABIC SMALL DAMMA*/ + RTUNI_ALPHA, /* U+00061a: ARABIC SMALL KASRA*/ + 0, /* U+00061b: ARABIC SEMICOLON*/ + 0, /* U+00061c: ARABIC LETTER MARK*/ + 0, /* U+00061d: */ + 0, /* U+00061e: ARABIC TRIPLE DOT PUNCTUATION MARK*/ + 0, /* U+00061f: ARABIC QUESTION MARK*/ + RTUNI_ALPHA, /* U+000620: ARABIC LETTER KASHMIRI YEH*/ + RTUNI_ALPHA, /* U+000621: ARABIC LETTER HAMZA*/ + RTUNI_ALPHA, /* U+000622: ARABIC LETTER ALEF WITH MADDA ABOVE*/ + RTUNI_ALPHA, /* U+000623: ARABIC LETTER ALEF WITH HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+000624: ARABIC LETTER WAW WITH HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+000625: ARABIC LETTER ALEF WITH HAMZA BELOW*/ + RTUNI_ALPHA, /* U+000626: ARABIC LETTER YEH WITH HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+000627: ARABIC LETTER ALEF*/ + RTUNI_ALPHA, /* U+000628: ARABIC LETTER BEH*/ + RTUNI_ALPHA, /* U+000629: ARABIC LETTER TEH MARBUTA*/ + RTUNI_ALPHA, /* U+00062a: ARABIC LETTER TEH*/ + RTUNI_ALPHA, /* U+00062b: ARABIC LETTER THEH*/ + RTUNI_ALPHA, /* U+00062c: ARABIC LETTER JEEM*/ + RTUNI_ALPHA, /* U+00062d: ARABIC LETTER HAH*/ + RTUNI_ALPHA, /* U+00062e: ARABIC LETTER KHAH*/ + RTUNI_ALPHA, /* U+00062f: ARABIC LETTER DAL*/ + RTUNI_ALPHA, /* U+000630: ARABIC LETTER THAL*/ + RTUNI_ALPHA, /* U+000631: ARABIC LETTER REH*/ + RTUNI_ALPHA, /* U+000632: ARABIC LETTER ZAIN*/ + RTUNI_ALPHA, /* U+000633: ARABIC LETTER SEEN*/ + RTUNI_ALPHA, /* U+000634: ARABIC LETTER SHEEN*/ + RTUNI_ALPHA, /* U+000635: ARABIC LETTER SAD*/ + RTUNI_ALPHA, /* U+000636: ARABIC LETTER DAD*/ + RTUNI_ALPHA, /* U+000637: ARABIC LETTER TAH*/ + RTUNI_ALPHA, /* U+000638: ARABIC LETTER ZAH*/ + RTUNI_ALPHA, /* U+000639: ARABIC LETTER AIN*/ + RTUNI_ALPHA, /* U+00063a: ARABIC LETTER GHAIN*/ + RTUNI_ALPHA, /* U+00063b: ARABIC LETTER KEHEH WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+00063c: ARABIC LETTER KEHEH WITH THREE DOTS BELOW*/ + RTUNI_ALPHA, /* U+00063d: ARABIC LETTER FARSI YEH WITH INVERTED V*/ + RTUNI_ALPHA, /* U+00063e: ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+00063f: ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000640: ARABIC TATWEEL*/ + RTUNI_ALPHA, /* U+000641: ARABIC LETTER FEH*/ + RTUNI_ALPHA, /* U+000642: ARABIC LETTER QAF*/ + RTUNI_ALPHA, /* U+000643: ARABIC LETTER KAF*/ + RTUNI_ALPHA, /* U+000644: ARABIC LETTER LAM*/ + RTUNI_ALPHA, /* U+000645: ARABIC LETTER MEEM*/ + RTUNI_ALPHA, /* U+000646: ARABIC LETTER NOON*/ + RTUNI_ALPHA, /* U+000647: ARABIC LETTER HEH*/ + RTUNI_ALPHA, /* U+000648: ARABIC LETTER WAW*/ + RTUNI_ALPHA, /* U+000649: ARABIC LETTER ALEF MAKSURA*/ + RTUNI_ALPHA, /* U+00064a: ARABIC LETTER YEH*/ + RTUNI_ALPHA, /* U+00064b: ARABIC FATHATAN*/ + RTUNI_ALPHA, /* U+00064c: ARABIC DAMMATAN*/ + RTUNI_ALPHA, /* U+00064d: ARABIC KASRATAN*/ + RTUNI_ALPHA, /* U+00064e: ARABIC FATHA*/ + RTUNI_ALPHA, /* U+00064f: ARABIC DAMMA*/ + RTUNI_ALPHA, /* U+000650: ARABIC KASRA*/ + RTUNI_ALPHA, /* U+000651: ARABIC SHADDA*/ + RTUNI_ALPHA, /* U+000652: ARABIC SUKUN*/ + RTUNI_ALPHA, /* U+000653: ARABIC MADDAH ABOVE*/ + RTUNI_ALPHA, /* U+000654: ARABIC HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+000655: ARABIC HAMZA BELOW*/ + RTUNI_ALPHA, /* U+000656: ARABIC SUBSCRIPT ALEF*/ + RTUNI_ALPHA, /* U+000657: ARABIC INVERTED DAMMA*/ + 0, /* U+000658: ARABIC MARK NOON GHUNNA*/ + RTUNI_ALPHA, /* U+000659: ARABIC ZWARAKAY*/ + RTUNI_ALPHA, /* U+00065a: ARABIC VOWEL SIGN SMALL V ABOVE*/ + RTUNI_ALPHA, /* U+00065b: ARABIC VOWEL SIGN INVERTED SMALL V ABOVE*/ + RTUNI_ALPHA, /* U+00065c: ARABIC VOWEL SIGN DOT BELOW*/ + RTUNI_ALPHA, /* U+00065d: ARABIC REVERSED DAMMA*/ + RTUNI_ALPHA, /* U+00065e: ARABIC FATHA WITH TWO DOTS*/ + RTUNI_ALPHA, /* U+00065f: ARABIC WAVY HAMZA BELOW*/ + RTUNI_DDIGIT, /* U+000660: ARABIC-INDIC DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000661: ARABIC-INDIC DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000662: ARABIC-INDIC DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000663: ARABIC-INDIC DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000664: ARABIC-INDIC DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000665: ARABIC-INDIC DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000666: ARABIC-INDIC DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000667: ARABIC-INDIC DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000668: ARABIC-INDIC DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000669: ARABIC-INDIC DIGIT NINE*/ + 0, /* U+00066a: ARABIC PERCENT SIGN*/ + 0, /* U+00066b: ARABIC DECIMAL SEPARATOR*/ + 0, /* U+00066c: ARABIC THOUSANDS SEPARATOR*/ + 0, /* U+00066d: ARABIC FIVE POINTED STAR*/ + RTUNI_ALPHA, /* U+00066e: ARABIC LETTER DOTLESS BEH*/ + RTUNI_ALPHA, /* U+00066f: ARABIC LETTER DOTLESS QAF*/ + RTUNI_ALPHA, /* U+000670: ARABIC LETTER SUPERSCRIPT ALEF*/ + RTUNI_ALPHA, /* U+000671: ARABIC LETTER ALEF WASLA*/ + RTUNI_ALPHA, /* U+000672: ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+000673: ARABIC LETTER ALEF WITH WAVY HAMZA BELOW*/ + RTUNI_ALPHA, /* U+000674: ARABIC LETTER HIGH HAMZA*/ + RTUNI_ALPHA, /* U+000675: ARABIC LETTER HIGH HAMZA ALEF*/ + RTUNI_ALPHA, /* U+000676: ARABIC LETTER HIGH HAMZA WAW*/ + RTUNI_ALPHA, /* U+000677: ARABIC LETTER U WITH HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+000678: ARABIC LETTER HIGH HAMZA YEH*/ + RTUNI_ALPHA, /* U+000679: ARABIC LETTER TTEH*/ + RTUNI_ALPHA, /* U+00067a: ARABIC LETTER TTEHEH*/ + RTUNI_ALPHA, /* U+00067b: ARABIC LETTER BEEH*/ + RTUNI_ALPHA, /* U+00067c: ARABIC LETTER TEH WITH RING*/ + RTUNI_ALPHA, /* U+00067d: ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS*/ + RTUNI_ALPHA, /* U+00067e: ARABIC LETTER PEH*/ + RTUNI_ALPHA, /* U+00067f: ARABIC LETTER TEHEH*/ + RTUNI_ALPHA, /* U+000680: ARABIC LETTER BEHEH*/ + RTUNI_ALPHA, /* U+000681: ARABIC LETTER HAH WITH HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+000682: ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE*/ + RTUNI_ALPHA, /* U+000683: ARABIC LETTER NYEH*/ + RTUNI_ALPHA, /* U+000684: ARABIC LETTER DYEH*/ + RTUNI_ALPHA, /* U+000685: ARABIC LETTER HAH WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000686: ARABIC LETTER TCHEH*/ + RTUNI_ALPHA, /* U+000687: ARABIC LETTER TCHEHEH*/ + RTUNI_ALPHA, /* U+000688: ARABIC LETTER DDAL*/ + RTUNI_ALPHA, /* U+000689: ARABIC LETTER DAL WITH RING*/ + RTUNI_ALPHA, /* U+00068a: ARABIC LETTER DAL WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+00068b: ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH*/ + RTUNI_ALPHA, /* U+00068c: ARABIC LETTER DAHAL*/ + RTUNI_ALPHA, /* U+00068d: ARABIC LETTER DDAHAL*/ + RTUNI_ALPHA, /* U+00068e: ARABIC LETTER DUL*/ + RTUNI_ALPHA, /* U+00068f: ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS*/ + RTUNI_ALPHA, /* U+000690: ARABIC LETTER DAL WITH FOUR DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000691: ARABIC LETTER RREH*/ + RTUNI_ALPHA, /* U+000692: ARABIC LETTER REH WITH SMALL V*/ + RTUNI_ALPHA, /* U+000693: ARABIC LETTER REH WITH RING*/ + RTUNI_ALPHA, /* U+000694: ARABIC LETTER REH WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+000695: ARABIC LETTER REH WITH SMALL V BELOW*/ + RTUNI_ALPHA, /* U+000696: ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE*/ + RTUNI_ALPHA, /* U+000697: ARABIC LETTER REH WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000698: ARABIC LETTER JEH*/ + RTUNI_ALPHA, /* U+000699: ARABIC LETTER REH WITH FOUR DOTS ABOVE*/ + RTUNI_ALPHA, /* U+00069a: ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE*/ + RTUNI_ALPHA, /* U+00069b: ARABIC LETTER SEEN WITH THREE DOTS BELOW*/ + RTUNI_ALPHA, /* U+00069c: ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+00069d: ARABIC LETTER SAD WITH TWO DOTS BELOW*/ + RTUNI_ALPHA, /* U+00069e: ARABIC LETTER SAD WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+00069f: ARABIC LETTER TAH WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0006a0: ARABIC LETTER AIN WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0006a1: ARABIC LETTER DOTLESS FEH*/ + RTUNI_ALPHA, /* U+0006a2: ARABIC LETTER FEH WITH DOT MOVED BELOW*/ + RTUNI_ALPHA, /* U+0006a3: ARABIC LETTER FEH WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+0006a4: ARABIC LETTER VEH*/ + RTUNI_ALPHA, /* U+0006a5: ARABIC LETTER FEH WITH THREE DOTS BELOW*/ + RTUNI_ALPHA, /* U+0006a6: ARABIC LETTER PEHEH*/ + RTUNI_ALPHA, /* U+0006a7: ARABIC LETTER QAF WITH DOT ABOVE*/ + RTUNI_ALPHA, /* U+0006a8: ARABIC LETTER QAF WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0006a9: ARABIC LETTER KEHEH*/ + RTUNI_ALPHA, /* U+0006aa: ARABIC LETTER SWASH KAF*/ + RTUNI_ALPHA, /* U+0006ab: ARABIC LETTER KAF WITH RING*/ + RTUNI_ALPHA, /* U+0006ac: ARABIC LETTER KAF WITH DOT ABOVE*/ + RTUNI_ALPHA, /* U+0006ad: ARABIC LETTER NG*/ + RTUNI_ALPHA, /* U+0006ae: ARABIC LETTER KAF WITH THREE DOTS BELOW*/ + RTUNI_ALPHA, /* U+0006af: ARABIC LETTER GAF*/ + RTUNI_ALPHA, /* U+0006b0: ARABIC LETTER GAF WITH RING*/ + RTUNI_ALPHA, /* U+0006b1: ARABIC LETTER NGOEH*/ + RTUNI_ALPHA, /* U+0006b2: ARABIC LETTER GAF WITH TWO DOTS BELOW*/ + RTUNI_ALPHA, /* U+0006b3: ARABIC LETTER GUEH*/ + RTUNI_ALPHA, /* U+0006b4: ARABIC LETTER GAF WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0006b5: ARABIC LETTER LAM WITH SMALL V*/ + RTUNI_ALPHA, /* U+0006b6: ARABIC LETTER LAM WITH DOT ABOVE*/ + RTUNI_ALPHA, /* U+0006b7: ARABIC LETTER LAM WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0006b8: ARABIC LETTER LAM WITH THREE DOTS BELOW*/ + RTUNI_ALPHA, /* U+0006b9: ARABIC LETTER NOON WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+0006ba: ARABIC LETTER NOON GHUNNA*/ + RTUNI_ALPHA, /* U+0006bb: ARABIC LETTER RNOON*/ + RTUNI_ALPHA, /* U+0006bc: ARABIC LETTER NOON WITH RING*/ + RTUNI_ALPHA, /* U+0006bd: ARABIC LETTER NOON WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0006be: ARABIC LETTER HEH DOACHASHMEE*/ + RTUNI_ALPHA, /* U+0006bf: ARABIC LETTER TCHEH WITH DOT ABOVE*/ + RTUNI_ALPHA, /* U+0006c0: ARABIC LETTER HEH WITH YEH ABOVE*/ + RTUNI_ALPHA, /* U+0006c1: ARABIC LETTER HEH GOAL*/ + RTUNI_ALPHA, /* U+0006c2: ARABIC LETTER HEH GOAL WITH HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+0006c3: ARABIC LETTER TEH MARBUTA GOAL*/ + RTUNI_ALPHA, /* U+0006c4: ARABIC LETTER WAW WITH RING*/ + RTUNI_ALPHA, /* U+0006c5: ARABIC LETTER KIRGHIZ OE*/ + RTUNI_ALPHA, /* U+0006c6: ARABIC LETTER OE*/ + RTUNI_ALPHA, /* U+0006c7: ARABIC LETTER U*/ + RTUNI_ALPHA, /* U+0006c8: ARABIC LETTER YU*/ + RTUNI_ALPHA, /* U+0006c9: ARABIC LETTER KIRGHIZ YU*/ + RTUNI_ALPHA, /* U+0006ca: ARABIC LETTER WAW WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0006cb: ARABIC LETTER VE*/ + RTUNI_ALPHA, /* U+0006cc: ARABIC LETTER FARSI YEH*/ + RTUNI_ALPHA, /* U+0006cd: ARABIC LETTER YEH WITH TAIL*/ + RTUNI_ALPHA, /* U+0006ce: ARABIC LETTER YEH WITH SMALL V*/ + RTUNI_ALPHA, /* U+0006cf: ARABIC LETTER WAW WITH DOT ABOVE*/ + RTUNI_ALPHA, /* U+0006d0: ARABIC LETTER E*/ + RTUNI_ALPHA, /* U+0006d1: ARABIC LETTER YEH WITH THREE DOTS BELOW*/ + RTUNI_ALPHA, /* U+0006d2: ARABIC LETTER YEH BARREE*/ + RTUNI_ALPHA, /* U+0006d3: ARABIC LETTER YEH BARREE WITH HAMZA ABOVE*/ + 0, /* U+0006d4: ARABIC FULL STOP*/ + RTUNI_ALPHA, /* U+0006d5: ARABIC LETTER AE*/ + RTUNI_ALPHA, /* U+0006d6: ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA*/ + RTUNI_ALPHA, /* U+0006d7: ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA*/ + RTUNI_ALPHA, /* U+0006d8: ARABIC SMALL HIGH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+0006d9: ARABIC SMALL HIGH LAM ALEF*/ + RTUNI_ALPHA, /* U+0006da: ARABIC SMALL HIGH JEEM*/ + RTUNI_ALPHA, /* U+0006db: ARABIC SMALL HIGH THREE DOTS*/ + RTUNI_ALPHA, /* U+0006dc: ARABIC SMALL HIGH SEEN*/ + 0, /* U+0006dd: ARABIC END OF AYAH*/ + 0, /* U+0006de: ARABIC START OF RUB EL HIZB*/ + 0, /* U+0006df: ARABIC SMALL HIGH ROUNDED ZERO*/ + 0, /* U+0006e0: ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO*/ + RTUNI_ALPHA, /* U+0006e1: ARABIC SMALL HIGH DOTLESS HEAD OF KHAH*/ + RTUNI_ALPHA, /* U+0006e2: ARABIC SMALL HIGH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+0006e3: ARABIC SMALL LOW SEEN*/ + RTUNI_ALPHA, /* U+0006e4: ARABIC SMALL HIGH MADDA*/ + RTUNI_ALPHA, /* U+0006e5: ARABIC SMALL WAW*/ + RTUNI_ALPHA, /* U+0006e6: ARABIC SMALL YEH*/ + RTUNI_ALPHA, /* U+0006e7: ARABIC SMALL HIGH YEH*/ + RTUNI_ALPHA, /* U+0006e8: ARABIC SMALL HIGH NOON*/ + 0, /* U+0006e9: ARABIC PLACE OF SAJDAH*/ + 0, /* U+0006ea: ARABIC EMPTY CENTRE LOW STOP*/ + 0, /* U+0006eb: ARABIC EMPTY CENTRE HIGH STOP*/ + 0, /* U+0006ec: ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE*/ + RTUNI_ALPHA, /* U+0006ed: ARABIC SMALL LOW MEEM*/ + RTUNI_ALPHA, /* U+0006ee: ARABIC LETTER DAL WITH INVERTED V*/ + RTUNI_ALPHA, /* U+0006ef: ARABIC LETTER REH WITH INVERTED V*/ + RTUNI_DDIGIT, /* U+0006f0: EXTENDED ARABIC-INDIC DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0006f1: EXTENDED ARABIC-INDIC DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0006f2: EXTENDED ARABIC-INDIC DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0006f3: EXTENDED ARABIC-INDIC DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0006f4: EXTENDED ARABIC-INDIC DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0006f5: EXTENDED ARABIC-INDIC DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0006f6: EXTENDED ARABIC-INDIC DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0006f7: EXTENDED ARABIC-INDIC DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0006f8: EXTENDED ARABIC-INDIC DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0006f9: EXTENDED ARABIC-INDIC DIGIT NINE*/ + RTUNI_ALPHA, /* U+0006fa: ARABIC LETTER SHEEN WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+0006fb: ARABIC LETTER DAD WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+0006fc: ARABIC LETTER GHAIN WITH DOT BELOW*/ + 0, /* U+0006fd: ARABIC SIGN SINDHI AMPERSAND*/ + 0, /* U+0006fe: ARABIC SIGN SINDHI POSTPOSITION MEN*/ + RTUNI_ALPHA, /* U+0006ff: ARABIC LETTER HEH WITH INVERTED V*/ + 0, /* U+000700: SYRIAC END OF PARAGRAPH*/ + 0, /* U+000701: SYRIAC SUPRALINEAR FULL STOP*/ + 0, /* U+000702: SYRIAC SUBLINEAR FULL STOP*/ + 0, /* U+000703: SYRIAC SUPRALINEAR COLON*/ + 0, /* U+000704: SYRIAC SUBLINEAR COLON*/ + 0, /* U+000705: SYRIAC HORIZONTAL COLON*/ + 0, /* U+000706: SYRIAC COLON SKEWED LEFT*/ + 0, /* U+000707: SYRIAC COLON SKEWED RIGHT*/ + 0, /* U+000708: SYRIAC SUPRALINEAR COLON SKEWED LEFT*/ + 0, /* U+000709: SYRIAC SUBLINEAR COLON SKEWED RIGHT*/ + 0, /* U+00070a: SYRIAC CONTRACTION*/ + 0, /* U+00070b: SYRIAC HARKLEAN OBELUS*/ + 0, /* U+00070c: SYRIAC HARKLEAN METOBELUS*/ + 0, /* U+00070d: SYRIAC HARKLEAN ASTERISCUS*/ + 0, /* U+00070e: */ + 0, /* U+00070f: SYRIAC ABBREVIATION MARK*/ + RTUNI_ALPHA, /* U+000710: SYRIAC LETTER ALAPH*/ + RTUNI_ALPHA, /* U+000711: SYRIAC LETTER SUPERSCRIPT ALAPH*/ + RTUNI_ALPHA, /* U+000712: SYRIAC LETTER BETH*/ + RTUNI_ALPHA, /* U+000713: SYRIAC LETTER GAMAL*/ + RTUNI_ALPHA, /* U+000714: SYRIAC LETTER GAMAL GARSHUNI*/ + RTUNI_ALPHA, /* U+000715: SYRIAC LETTER DALATH*/ + RTUNI_ALPHA, /* U+000716: SYRIAC LETTER DOTLESS DALATH RISH*/ + RTUNI_ALPHA, /* U+000717: SYRIAC LETTER HE*/ + RTUNI_ALPHA, /* U+000718: SYRIAC LETTER WAW*/ + RTUNI_ALPHA, /* U+000719: SYRIAC LETTER ZAIN*/ + RTUNI_ALPHA, /* U+00071a: SYRIAC LETTER HETH*/ + RTUNI_ALPHA, /* U+00071b: SYRIAC LETTER TETH*/ + RTUNI_ALPHA, /* U+00071c: SYRIAC LETTER TETH GARSHUNI*/ + RTUNI_ALPHA, /* U+00071d: SYRIAC LETTER YUDH*/ + RTUNI_ALPHA, /* U+00071e: SYRIAC LETTER YUDH HE*/ + RTUNI_ALPHA, /* U+00071f: SYRIAC LETTER KAPH*/ + RTUNI_ALPHA, /* U+000720: SYRIAC LETTER LAMADH*/ + RTUNI_ALPHA, /* U+000721: SYRIAC LETTER MIM*/ + RTUNI_ALPHA, /* U+000722: SYRIAC LETTER NUN*/ + RTUNI_ALPHA, /* U+000723: SYRIAC LETTER SEMKATH*/ + RTUNI_ALPHA, /* U+000724: SYRIAC LETTER FINAL SEMKATH*/ + RTUNI_ALPHA, /* U+000725: SYRIAC LETTER E*/ + RTUNI_ALPHA, /* U+000726: SYRIAC LETTER PE*/ + RTUNI_ALPHA, /* U+000727: SYRIAC LETTER REVERSED PE*/ + RTUNI_ALPHA, /* U+000728: SYRIAC LETTER SADHE*/ + RTUNI_ALPHA, /* U+000729: SYRIAC LETTER QAPH*/ + RTUNI_ALPHA, /* U+00072a: SYRIAC LETTER RISH*/ + RTUNI_ALPHA, /* U+00072b: SYRIAC LETTER SHIN*/ + RTUNI_ALPHA, /* U+00072c: SYRIAC LETTER TAW*/ + RTUNI_ALPHA, /* U+00072d: SYRIAC LETTER PERSIAN BHETH*/ + RTUNI_ALPHA, /* U+00072e: SYRIAC LETTER PERSIAN GHAMAL*/ + RTUNI_ALPHA, /* U+00072f: SYRIAC LETTER PERSIAN DHALATH*/ + RTUNI_ALPHA, /* U+000730: SYRIAC PTHAHA ABOVE*/ + RTUNI_ALPHA, /* U+000731: SYRIAC PTHAHA BELOW*/ + RTUNI_ALPHA, /* U+000732: SYRIAC PTHAHA DOTTED*/ + RTUNI_ALPHA, /* U+000733: SYRIAC ZQAPHA ABOVE*/ + RTUNI_ALPHA, /* U+000734: SYRIAC ZQAPHA BELOW*/ + RTUNI_ALPHA, /* U+000735: SYRIAC ZQAPHA DOTTED*/ + RTUNI_ALPHA, /* U+000736: SYRIAC RBASA ABOVE*/ + RTUNI_ALPHA, /* U+000737: SYRIAC RBASA BELOW*/ + RTUNI_ALPHA, /* U+000738: SYRIAC DOTTED ZLAMA HORIZONTAL*/ + RTUNI_ALPHA, /* U+000739: SYRIAC DOTTED ZLAMA ANGULAR*/ + RTUNI_ALPHA, /* U+00073a: SYRIAC HBASA ABOVE*/ + RTUNI_ALPHA, /* U+00073b: SYRIAC HBASA BELOW*/ + RTUNI_ALPHA, /* U+00073c: SYRIAC HBASA-ESASA DOTTED*/ + RTUNI_ALPHA, /* U+00073d: SYRIAC ESASA ABOVE*/ + RTUNI_ALPHA, /* U+00073e: SYRIAC ESASA BELOW*/ + RTUNI_ALPHA, /* U+00073f: SYRIAC RWAHA*/ + 0, /* U+000740: SYRIAC FEMININE DOT*/ + 0, /* U+000741: SYRIAC QUSHSHAYA*/ + 0, /* U+000742: SYRIAC RUKKAKHA*/ + 0, /* U+000743: SYRIAC TWO VERTICAL DOTS ABOVE*/ + 0, /* U+000744: SYRIAC TWO VERTICAL DOTS BELOW*/ + 0, /* U+000745: SYRIAC THREE DOTS ABOVE*/ + 0, /* U+000746: SYRIAC THREE DOTS BELOW*/ + 0, /* U+000747: SYRIAC OBLIQUE LINE ABOVE*/ + 0, /* U+000748: SYRIAC OBLIQUE LINE BELOW*/ + 0, /* U+000749: SYRIAC MUSIC*/ + 0, /* U+00074a: SYRIAC BARREKH*/ + 0, /* U+00074b: */ + 0, /* U+00074c: */ + RTUNI_ALPHA, /* U+00074d: SYRIAC LETTER SOGDIAN ZHAIN*/ + RTUNI_ALPHA, /* U+00074e: SYRIAC LETTER SOGDIAN KHAPH*/ + RTUNI_ALPHA, /* U+00074f: SYRIAC LETTER SOGDIAN FE*/ + RTUNI_ALPHA, /* U+000750: ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW*/ + RTUNI_ALPHA, /* U+000751: ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000752: ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW*/ + RTUNI_ALPHA, /* U+000753: ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000754: ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE*/ + RTUNI_ALPHA, /* U+000755: ARABIC LETTER BEH WITH INVERTED SMALL V BELOW*/ + RTUNI_ALPHA, /* U+000756: ARABIC LETTER BEH WITH SMALL V*/ + RTUNI_ALPHA, /* U+000757: ARABIC LETTER HAH WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000758: ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW*/ + RTUNI_ALPHA, /* U+000759: ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH*/ + RTUNI_ALPHA, /* U+00075a: ARABIC LETTER DAL WITH INVERTED SMALL V BELOW*/ + RTUNI_ALPHA, /* U+00075b: ARABIC LETTER REH WITH STROKE*/ + RTUNI_ALPHA, /* U+00075c: ARABIC LETTER SEEN WITH FOUR DOTS ABOVE*/ + RTUNI_ALPHA, /* U+00075d: ARABIC LETTER AIN WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+00075e: ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE*/ + RTUNI_ALPHA, /* U+00075f: ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE*/ + RTUNI_ALPHA, /* U+000760: ARABIC LETTER FEH WITH TWO DOTS BELOW*/ + RTUNI_ALPHA, /* U+000761: ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW*/ + RTUNI_ALPHA, /* U+000762: ARABIC LETTER KEHEH WITH DOT ABOVE*/ + RTUNI_ALPHA, /* U+000763: ARABIC LETTER KEHEH WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000764: ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW*/ + RTUNI_ALPHA, /* U+000765: ARABIC LETTER MEEM WITH DOT ABOVE*/ + RTUNI_ALPHA, /* U+000766: ARABIC LETTER MEEM WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+000767: ARABIC LETTER NOON WITH TWO DOTS BELOW*/ + RTUNI_ALPHA, /* U+000768: ARABIC LETTER NOON WITH SMALL TAH*/ + RTUNI_ALPHA, /* U+000769: ARABIC LETTER NOON WITH SMALL V*/ + RTUNI_ALPHA, /* U+00076a: ARABIC LETTER LAM WITH BAR*/ + RTUNI_ALPHA, /* U+00076b: ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE*/ + RTUNI_ALPHA, /* U+00076c: ARABIC LETTER REH WITH HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+00076d: ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE*/ + RTUNI_ALPHA, /* U+00076e: ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW*/ + RTUNI_ALPHA, /* U+00076f: ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS*/ + RTUNI_ALPHA, /* U+000770: ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS*/ + RTUNI_ALPHA, /* U+000771: ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS*/ + RTUNI_ALPHA, /* U+000772: ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE*/ + RTUNI_ALPHA, /* U+000773: ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE*/ + RTUNI_ALPHA, /* U+000774: ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE*/ + RTUNI_ALPHA, /* U+000775: ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE*/ + RTUNI_ALPHA, /* U+000776: ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE*/ + RTUNI_ALPHA, /* U+000777: ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW*/ + RTUNI_ALPHA, /* U+000778: ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE*/ + RTUNI_ALPHA, /* U+000779: ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE*/ + RTUNI_ALPHA, /* U+00077a: ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE*/ + RTUNI_ALPHA, /* U+00077b: ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE*/ + RTUNI_ALPHA, /* U+00077c: ARABIC LETTER HAH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW*/ + RTUNI_ALPHA, /* U+00077d: ARABIC LETTER SEEN WITH EXTENDED ARABIC-INDIC DIGIT FOUR ABOVE*/ + RTUNI_ALPHA, /* U+00077e: ARABIC LETTER SEEN WITH INVERTED V*/ + RTUNI_ALPHA, /* U+00077f: ARABIC LETTER KAF WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+000780: THAANA LETTER HAA*/ + RTUNI_ALPHA, /* U+000781: THAANA LETTER SHAVIYANI*/ + RTUNI_ALPHA, /* U+000782: THAANA LETTER NOONU*/ + RTUNI_ALPHA, /* U+000783: THAANA LETTER RAA*/ + RTUNI_ALPHA, /* U+000784: THAANA LETTER BAA*/ + RTUNI_ALPHA, /* U+000785: THAANA LETTER LHAVIYANI*/ + RTUNI_ALPHA, /* U+000786: THAANA LETTER KAAFU*/ + RTUNI_ALPHA, /* U+000787: THAANA LETTER ALIFU*/ + RTUNI_ALPHA, /* U+000788: THAANA LETTER VAAVU*/ + RTUNI_ALPHA, /* U+000789: THAANA LETTER MEEMU*/ + RTUNI_ALPHA, /* U+00078a: THAANA LETTER FAAFU*/ + RTUNI_ALPHA, /* U+00078b: THAANA LETTER DHAALU*/ + RTUNI_ALPHA, /* U+00078c: THAANA LETTER THAA*/ + RTUNI_ALPHA, /* U+00078d: THAANA LETTER LAAMU*/ + RTUNI_ALPHA, /* U+00078e: THAANA LETTER GAAFU*/ + RTUNI_ALPHA, /* U+00078f: THAANA LETTER GNAVIYANI*/ + RTUNI_ALPHA, /* U+000790: THAANA LETTER SEENU*/ + RTUNI_ALPHA, /* U+000791: THAANA LETTER DAVIYANI*/ + RTUNI_ALPHA, /* U+000792: THAANA LETTER ZAVIYANI*/ + RTUNI_ALPHA, /* U+000793: THAANA LETTER TAVIYANI*/ + RTUNI_ALPHA, /* U+000794: THAANA LETTER YAA*/ + RTUNI_ALPHA, /* U+000795: THAANA LETTER PAVIYANI*/ + RTUNI_ALPHA, /* U+000796: THAANA LETTER JAVIYANI*/ + RTUNI_ALPHA, /* U+000797: THAANA LETTER CHAVIYANI*/ + RTUNI_ALPHA, /* U+000798: THAANA LETTER TTAA*/ + RTUNI_ALPHA, /* U+000799: THAANA LETTER HHAA*/ + RTUNI_ALPHA, /* U+00079a: THAANA LETTER KHAA*/ + RTUNI_ALPHA, /* U+00079b: THAANA LETTER THAALU*/ + RTUNI_ALPHA, /* U+00079c: THAANA LETTER ZAA*/ + RTUNI_ALPHA, /* U+00079d: THAANA LETTER SHEENU*/ + RTUNI_ALPHA, /* U+00079e: THAANA LETTER SAADHU*/ + RTUNI_ALPHA, /* U+00079f: THAANA LETTER DAADHU*/ + RTUNI_ALPHA, /* U+0007a0: THAANA LETTER TO*/ + RTUNI_ALPHA, /* U+0007a1: THAANA LETTER ZO*/ + RTUNI_ALPHA, /* U+0007a2: THAANA LETTER AINU*/ + RTUNI_ALPHA, /* U+0007a3: THAANA LETTER GHAINU*/ + RTUNI_ALPHA, /* U+0007a4: THAANA LETTER QAAFU*/ + RTUNI_ALPHA, /* U+0007a5: THAANA LETTER WAAVU*/ + RTUNI_ALPHA, /* U+0007a6: THAANA ABAFILI*/ + RTUNI_ALPHA, /* U+0007a7: THAANA AABAAFILI*/ + RTUNI_ALPHA, /* U+0007a8: THAANA IBIFILI*/ + RTUNI_ALPHA, /* U+0007a9: THAANA EEBEEFILI*/ + RTUNI_ALPHA, /* U+0007aa: THAANA UBUFILI*/ + RTUNI_ALPHA, /* U+0007ab: THAANA OOBOOFILI*/ + RTUNI_ALPHA, /* U+0007ac: THAANA EBEFILI*/ + RTUNI_ALPHA, /* U+0007ad: THAANA EYBEYFILI*/ + RTUNI_ALPHA, /* U+0007ae: THAANA OBOFILI*/ + RTUNI_ALPHA, /* U+0007af: THAANA OABOAFILI*/ + RTUNI_ALPHA, /* U+0007b0: THAANA SUKUN*/ + RTUNI_ALPHA, /* U+0007b1: THAANA LETTER NAA*/ + 0, /* U+0007b2: */ + 0, /* U+0007b3: */ + 0, /* U+0007b4: */ + 0, /* U+0007b5: */ + 0, /* U+0007b6: */ + 0, /* U+0007b7: */ + 0, /* U+0007b8: */ + 0, /* U+0007b9: */ + 0, /* U+0007ba: */ + 0, /* U+0007bb: */ + 0, /* U+0007bc: */ + 0, /* U+0007bd: */ + 0, /* U+0007be: */ + 0, /* U+0007bf: */ + RTUNI_DDIGIT, /* U+0007c0: NKO DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0007c1: NKO DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0007c2: NKO DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0007c3: NKO DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0007c4: NKO DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0007c5: NKO DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0007c6: NKO DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0007c7: NKO DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0007c8: NKO DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0007c9: NKO DIGIT NINE*/ + RTUNI_ALPHA, /* U+0007ca: NKO LETTER A*/ + RTUNI_ALPHA, /* U+0007cb: NKO LETTER EE*/ + RTUNI_ALPHA, /* U+0007cc: NKO LETTER I*/ + RTUNI_ALPHA, /* U+0007cd: NKO LETTER E*/ + RTUNI_ALPHA, /* U+0007ce: NKO LETTER U*/ + RTUNI_ALPHA, /* U+0007cf: NKO LETTER OO*/ + RTUNI_ALPHA, /* U+0007d0: NKO LETTER O*/ + RTUNI_ALPHA, /* U+0007d1: NKO LETTER DAGBASINNA*/ + RTUNI_ALPHA, /* U+0007d2: NKO LETTER N*/ + RTUNI_ALPHA, /* U+0007d3: NKO LETTER BA*/ + RTUNI_ALPHA, /* U+0007d4: NKO LETTER PA*/ + RTUNI_ALPHA, /* U+0007d5: NKO LETTER TA*/ + RTUNI_ALPHA, /* U+0007d6: NKO LETTER JA*/ + RTUNI_ALPHA, /* U+0007d7: NKO LETTER CHA*/ + RTUNI_ALPHA, /* U+0007d8: NKO LETTER DA*/ + RTUNI_ALPHA, /* U+0007d9: NKO LETTER RA*/ + RTUNI_ALPHA, /* U+0007da: NKO LETTER RRA*/ + RTUNI_ALPHA, /* U+0007db: NKO LETTER SA*/ + RTUNI_ALPHA, /* U+0007dc: NKO LETTER GBA*/ + RTUNI_ALPHA, /* U+0007dd: NKO LETTER FA*/ + RTUNI_ALPHA, /* U+0007de: NKO LETTER KA*/ + RTUNI_ALPHA, /* U+0007df: NKO LETTER LA*/ + RTUNI_ALPHA, /* U+0007e0: NKO LETTER NA WOLOSO*/ + RTUNI_ALPHA, /* U+0007e1: NKO LETTER MA*/ + RTUNI_ALPHA, /* U+0007e2: NKO LETTER NYA*/ + RTUNI_ALPHA, /* U+0007e3: NKO LETTER NA*/ + RTUNI_ALPHA, /* U+0007e4: NKO LETTER HA*/ + RTUNI_ALPHA, /* U+0007e5: NKO LETTER WA*/ + RTUNI_ALPHA, /* U+0007e6: NKO LETTER YA*/ + RTUNI_ALPHA, /* U+0007e7: NKO LETTER NYA WOLOSO*/ + RTUNI_ALPHA, /* U+0007e8: NKO LETTER JONA JA*/ + RTUNI_ALPHA, /* U+0007e9: NKO LETTER JONA CHA*/ + RTUNI_ALPHA, /* U+0007ea: NKO LETTER JONA RA*/ + 0, /* U+0007eb: NKO COMBINING SHORT HIGH TONE*/ + 0, /* U+0007ec: NKO COMBINING SHORT LOW TONE*/ + 0, /* U+0007ed: NKO COMBINING SHORT RISING TONE*/ + 0, /* U+0007ee: NKO COMBINING LONG DESCENDING TONE*/ + 0, /* U+0007ef: NKO COMBINING LONG HIGH TONE*/ + 0, /* U+0007f0: NKO COMBINING LONG LOW TONE*/ + 0, /* U+0007f1: NKO COMBINING LONG RISING TONE*/ + 0, /* U+0007f2: NKO COMBINING NASALIZATION MARK*/ + 0, /* U+0007f3: NKO COMBINING DOUBLE DOT ABOVE*/ + RTUNI_ALPHA, /* U+0007f4: NKO HIGH TONE APOSTROPHE*/ + RTUNI_ALPHA, /* U+0007f5: NKO LOW TONE APOSTROPHE*/ + 0, /* U+0007f6: NKO SYMBOL OO DENNEN*/ + 0, /* U+0007f7: NKO SYMBOL GBAKURUNEN*/ + 0, /* U+0007f8: NKO COMMA*/ + 0, /* U+0007f9: NKO EXCLAMATION MARK*/ + RTUNI_ALPHA, /* U+0007fa: NKO LAJANYALAN*/ + 0, /* U+0007fb: */ + 0, /* U+0007fc: */ + 0, /* U+0007fd: */ + 0, /* U+0007fe: */ + 0, /* U+0007ff: */ + RTUNI_ALPHA, /* U+000800: SAMARITAN LETTER ALAF*/ + RTUNI_ALPHA, /* U+000801: SAMARITAN LETTER BIT*/ + RTUNI_ALPHA, /* U+000802: SAMARITAN LETTER GAMAN*/ + RTUNI_ALPHA, /* U+000803: SAMARITAN LETTER DALAT*/ + RTUNI_ALPHA, /* U+000804: SAMARITAN LETTER IY*/ + RTUNI_ALPHA, /* U+000805: SAMARITAN LETTER BAA*/ + RTUNI_ALPHA, /* U+000806: SAMARITAN LETTER ZEN*/ + RTUNI_ALPHA, /* U+000807: SAMARITAN LETTER IT*/ + RTUNI_ALPHA, /* U+000808: SAMARITAN LETTER TIT*/ + RTUNI_ALPHA, /* U+000809: SAMARITAN LETTER YUT*/ + RTUNI_ALPHA, /* U+00080a: SAMARITAN LETTER KAAF*/ + RTUNI_ALPHA, /* U+00080b: SAMARITAN LETTER LABAT*/ + RTUNI_ALPHA, /* U+00080c: SAMARITAN LETTER MIM*/ + RTUNI_ALPHA, /* U+00080d: SAMARITAN LETTER NUN*/ + RTUNI_ALPHA, /* U+00080e: SAMARITAN LETTER SINGAAT*/ + RTUNI_ALPHA, /* U+00080f: SAMARITAN LETTER IN*/ + RTUNI_ALPHA, /* U+000810: SAMARITAN LETTER FI*/ + RTUNI_ALPHA, /* U+000811: SAMARITAN LETTER TSAADIY*/ + RTUNI_ALPHA, /* U+000812: SAMARITAN LETTER QUF*/ + RTUNI_ALPHA, /* U+000813: SAMARITAN LETTER RISH*/ + RTUNI_ALPHA, /* U+000814: SAMARITAN LETTER SHAN*/ + RTUNI_ALPHA, /* U+000815: SAMARITAN LETTER TAAF*/ + RTUNI_ALPHA, /* U+000816: SAMARITAN MARK IN*/ + RTUNI_ALPHA, /* U+000817: SAMARITAN MARK IN-ALAF*/ + 0, /* U+000818: SAMARITAN MARK OCCLUSION*/ + 0, /* U+000819: SAMARITAN MARK DAGESH*/ + RTUNI_ALPHA, /* U+00081a: SAMARITAN MODIFIER LETTER EPENTHETIC YUT*/ + RTUNI_ALPHA, /* U+00081b: SAMARITAN MARK EPENTHETIC YUT*/ + RTUNI_ALPHA, /* U+00081c: SAMARITAN VOWEL SIGN LONG E*/ + RTUNI_ALPHA, /* U+00081d: SAMARITAN VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+00081e: SAMARITAN VOWEL SIGN OVERLONG AA*/ + RTUNI_ALPHA, /* U+00081f: SAMARITAN VOWEL SIGN LONG AA*/ + RTUNI_ALPHA, /* U+000820: SAMARITAN VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000821: SAMARITAN VOWEL SIGN OVERLONG A*/ + RTUNI_ALPHA, /* U+000822: SAMARITAN VOWEL SIGN LONG A*/ + RTUNI_ALPHA, /* U+000823: SAMARITAN VOWEL SIGN A*/ + RTUNI_ALPHA, /* U+000824: SAMARITAN MODIFIER LETTER SHORT A*/ + RTUNI_ALPHA, /* U+000825: SAMARITAN VOWEL SIGN SHORT A*/ + RTUNI_ALPHA, /* U+000826: SAMARITAN VOWEL SIGN LONG U*/ + RTUNI_ALPHA, /* U+000827: SAMARITAN VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000828: SAMARITAN MODIFIER LETTER I*/ + RTUNI_ALPHA, /* U+000829: SAMARITAN VOWEL SIGN LONG I*/ + RTUNI_ALPHA, /* U+00082a: SAMARITAN VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+00082b: SAMARITAN VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+00082c: SAMARITAN VOWEL SIGN SUKUN*/ + 0, /* U+00082d: SAMARITAN MARK NEQUDAA*/ + 0, /* U+00082e: */ + 0, /* U+00082f: */ + 0, /* U+000830: SAMARITAN PUNCTUATION NEQUDAA*/ + 0, /* U+000831: SAMARITAN PUNCTUATION AFSAAQ*/ + 0, /* U+000832: SAMARITAN PUNCTUATION ANGED*/ + 0, /* U+000833: SAMARITAN PUNCTUATION BAU*/ + 0, /* U+000834: SAMARITAN PUNCTUATION ATMAAU*/ + 0, /* U+000835: SAMARITAN PUNCTUATION SHIYYAALAA*/ + 0, /* U+000836: SAMARITAN ABBREVIATION MARK*/ + 0, /* U+000837: SAMARITAN PUNCTUATION MELODIC QITSA*/ + 0, /* U+000838: SAMARITAN PUNCTUATION ZIQAA*/ + 0, /* U+000839: SAMARITAN PUNCTUATION QITSA*/ + 0, /* U+00083a: SAMARITAN PUNCTUATION ZAEF*/ + 0, /* U+00083b: SAMARITAN PUNCTUATION TURU*/ + 0, /* U+00083c: SAMARITAN PUNCTUATION ARKAANU*/ + 0, /* U+00083d: SAMARITAN PUNCTUATION SOF MASHFAAT*/ + 0, /* U+00083e: SAMARITAN PUNCTUATION ANNAAU*/ + 0, /* U+00083f: */ + RTUNI_ALPHA, /* U+000840: MANDAIC LETTER HALQA*/ + RTUNI_ALPHA, /* U+000841: MANDAIC LETTER AB*/ + RTUNI_ALPHA, /* U+000842: MANDAIC LETTER AG*/ + RTUNI_ALPHA, /* U+000843: MANDAIC LETTER AD*/ + RTUNI_ALPHA, /* U+000844: MANDAIC LETTER AH*/ + RTUNI_ALPHA, /* U+000845: MANDAIC LETTER USHENNA*/ + RTUNI_ALPHA, /* U+000846: MANDAIC LETTER AZ*/ + RTUNI_ALPHA, /* U+000847: MANDAIC LETTER IT*/ + RTUNI_ALPHA, /* U+000848: MANDAIC LETTER ATT*/ + RTUNI_ALPHA, /* U+000849: MANDAIC LETTER AKSA*/ + RTUNI_ALPHA, /* U+00084a: MANDAIC LETTER AK*/ + RTUNI_ALPHA, /* U+00084b: MANDAIC LETTER AL*/ + RTUNI_ALPHA, /* U+00084c: MANDAIC LETTER AM*/ + RTUNI_ALPHA, /* U+00084d: MANDAIC LETTER AN*/ + RTUNI_ALPHA, /* U+00084e: MANDAIC LETTER AS*/ + RTUNI_ALPHA, /* U+00084f: MANDAIC LETTER IN*/ + RTUNI_ALPHA, /* U+000850: MANDAIC LETTER AP*/ + RTUNI_ALPHA, /* U+000851: MANDAIC LETTER ASZ*/ + RTUNI_ALPHA, /* U+000852: MANDAIC LETTER AQ*/ + RTUNI_ALPHA, /* U+000853: MANDAIC LETTER AR*/ + RTUNI_ALPHA, /* U+000854: MANDAIC LETTER ASH*/ + RTUNI_ALPHA, /* U+000855: MANDAIC LETTER AT*/ + RTUNI_ALPHA, /* U+000856: MANDAIC LETTER DUSHENNA*/ + RTUNI_ALPHA, /* U+000857: MANDAIC LETTER KAD*/ + RTUNI_ALPHA, /* U+000858: MANDAIC LETTER AIN*/ + 0, /* U+000859: MANDAIC AFFRICATION MARK*/ + 0, /* U+00085a: MANDAIC VOCALIZATION MARK*/ + 0, /* U+00085b: MANDAIC GEMINATION MARK*/ + 0, /* U+00085c: */ + 0, /* U+00085d: */ + 0, /* U+00085e: MANDAIC PUNCTUATION*/ + 0, /* U+00085f: */ + 0, /* U+000860: */ + 0, /* U+000861: */ + 0, /* U+000862: */ + 0, /* U+000863: */ + 0, /* U+000864: */ + 0, /* U+000865: */ + 0, /* U+000866: */ + 0, /* U+000867: */ + 0, /* U+000868: */ + 0, /* U+000869: */ + 0, /* U+00086a: */ + 0, /* U+00086b: */ + 0, /* U+00086c: */ + 0, /* U+00086d: */ + 0, /* U+00086e: */ + 0, /* U+00086f: */ + 0, /* U+000870: */ + 0, /* U+000871: */ + 0, /* U+000872: */ + 0, /* U+000873: */ + 0, /* U+000874: */ + 0, /* U+000875: */ + 0, /* U+000876: */ + 0, /* U+000877: */ + 0, /* U+000878: */ + 0, /* U+000879: */ + 0, /* U+00087a: */ + 0, /* U+00087b: */ + 0, /* U+00087c: */ + 0, /* U+00087d: */ + 0, /* U+00087e: */ + 0, /* U+00087f: */ + 0, /* U+000880: */ + 0, /* U+000881: */ + 0, /* U+000882: */ + 0, /* U+000883: */ + 0, /* U+000884: */ + 0, /* U+000885: */ + 0, /* U+000886: */ + 0, /* U+000887: */ + 0, /* U+000888: */ + 0, /* U+000889: */ + 0, /* U+00088a: */ + 0, /* U+00088b: */ + 0, /* U+00088c: */ + 0, /* U+00088d: */ + 0, /* U+00088e: */ + 0, /* U+00088f: */ + 0, /* U+000890: */ + 0, /* U+000891: */ + 0, /* U+000892: */ + 0, /* U+000893: */ + 0, /* U+000894: */ + 0, /* U+000895: */ + 0, /* U+000896: */ + 0, /* U+000897: */ + 0, /* U+000898: */ + 0, /* U+000899: */ + 0, /* U+00089a: */ + 0, /* U+00089b: */ + 0, /* U+00089c: */ + 0, /* U+00089d: */ + 0, /* U+00089e: */ + 0, /* U+00089f: */ + RTUNI_ALPHA, /* U+0008a0: ARABIC LETTER BEH WITH SMALL V BELOW*/ + 0, /* U+0008a1: */ + RTUNI_ALPHA, /* U+0008a2: ARABIC LETTER JEEM WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0008a3: ARABIC LETTER TAH WITH TWO DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0008a4: ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0008a5: ARABIC LETTER QAF WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+0008a6: ARABIC LETTER LAM WITH DOUBLE BAR*/ + RTUNI_ALPHA, /* U+0008a7: ARABIC LETTER MEEM WITH THREE DOTS ABOVE*/ + RTUNI_ALPHA, /* U+0008a8: ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE*/ + RTUNI_ALPHA, /* U+0008a9: ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE*/ + RTUNI_ALPHA, /* U+0008aa: ARABIC LETTER REH WITH LOOP*/ + RTUNI_ALPHA, /* U+0008ab: ARABIC LETTER WAW WITH DOT WITHIN*/ + RTUNI_ALPHA, /* U+0008ac: ARABIC LETTER ROHINGYA YEH*/ + 0, /* U+0008ad: */ + 0, /* U+0008ae: */ + 0, /* U+0008af: */ + 0, /* U+0008b0: */ + 0, /* U+0008b1: */ + 0, /* U+0008b2: */ + 0, /* U+0008b3: */ + 0, /* U+0008b4: */ + 0, /* U+0008b5: */ + 0, /* U+0008b6: */ + 0, /* U+0008b7: */ + 0, /* U+0008b8: */ + 0, /* U+0008b9: */ + 0, /* U+0008ba: */ + 0, /* U+0008bb: */ + 0, /* U+0008bc: */ + 0, /* U+0008bd: */ + 0, /* U+0008be: */ + 0, /* U+0008bf: */ + 0, /* U+0008c0: */ + 0, /* U+0008c1: */ + 0, /* U+0008c2: */ + 0, /* U+0008c3: */ + 0, /* U+0008c4: */ + 0, /* U+0008c5: */ + 0, /* U+0008c6: */ + 0, /* U+0008c7: */ + 0, /* U+0008c8: */ + 0, /* U+0008c9: */ + 0, /* U+0008ca: */ + 0, /* U+0008cb: */ + 0, /* U+0008cc: */ + 0, /* U+0008cd: */ + 0, /* U+0008ce: */ + 0, /* U+0008cf: */ + 0, /* U+0008d0: */ + 0, /* U+0008d1: */ + 0, /* U+0008d2: */ + 0, /* U+0008d3: */ + 0, /* U+0008d4: */ + 0, /* U+0008d5: */ + 0, /* U+0008d6: */ + 0, /* U+0008d7: */ + 0, /* U+0008d8: */ + 0, /* U+0008d9: */ + 0, /* U+0008da: */ + 0, /* U+0008db: */ + 0, /* U+0008dc: */ + 0, /* U+0008dd: */ + 0, /* U+0008de: */ + 0, /* U+0008df: */ + 0, /* U+0008e0: */ + 0, /* U+0008e1: */ + 0, /* U+0008e2: */ + 0, /* U+0008e3: */ + RTUNI_ALPHA, /* U+0008e4: ARABIC CURLY FATHA*/ + RTUNI_ALPHA, /* U+0008e5: ARABIC CURLY DAMMA*/ + RTUNI_ALPHA, /* U+0008e6: ARABIC CURLY KASRA*/ + RTUNI_ALPHA, /* U+0008e7: ARABIC CURLY FATHATAN*/ + RTUNI_ALPHA, /* U+0008e8: ARABIC CURLY DAMMATAN*/ + RTUNI_ALPHA, /* U+0008e9: ARABIC CURLY KASRATAN*/ + 0, /* U+0008ea: ARABIC TONE ONE DOT ABOVE*/ + 0, /* U+0008eb: ARABIC TONE TWO DOTS ABOVE*/ + 0, /* U+0008ec: ARABIC TONE LOOP ABOVE*/ + 0, /* U+0008ed: ARABIC TONE ONE DOT BELOW*/ + 0, /* U+0008ee: ARABIC TONE TWO DOTS BELOW*/ + 0, /* U+0008ef: ARABIC TONE LOOP BELOW*/ + RTUNI_ALPHA, /* U+0008f0: ARABIC OPEN FATHATAN*/ + RTUNI_ALPHA, /* U+0008f1: ARABIC OPEN DAMMATAN*/ + RTUNI_ALPHA, /* U+0008f2: ARABIC OPEN KASRATAN*/ + RTUNI_ALPHA, /* U+0008f3: ARABIC SMALL HIGH WAW*/ + RTUNI_ALPHA, /* U+0008f4: ARABIC FATHA WITH RING*/ + RTUNI_ALPHA, /* U+0008f5: ARABIC FATHA WITH DOT ABOVE*/ + RTUNI_ALPHA, /* U+0008f6: ARABIC KASRA WITH DOT BELOW*/ + RTUNI_ALPHA, /* U+0008f7: ARABIC LEFT ARROWHEAD ABOVE*/ + RTUNI_ALPHA, /* U+0008f8: ARABIC RIGHT ARROWHEAD ABOVE*/ + RTUNI_ALPHA, /* U+0008f9: ARABIC LEFT ARROWHEAD BELOW*/ + RTUNI_ALPHA, /* U+0008fa: ARABIC RIGHT ARROWHEAD BELOW*/ + RTUNI_ALPHA, /* U+0008fb: ARABIC DOUBLE RIGHT ARROWHEAD ABOVE*/ + RTUNI_ALPHA, /* U+0008fc: ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT*/ + RTUNI_ALPHA, /* U+0008fd: ARABIC RIGHT ARROWHEAD ABOVE WITH DOT*/ + RTUNI_ALPHA, /* U+0008fe: ARABIC DAMMA WITH DOT*/ + 0, /* U+0008ff: */ + RTUNI_ALPHA, /* U+000900: DEVANAGARI SIGN INVERTED CANDRABINDU*/ + RTUNI_ALPHA, /* U+000901: DEVANAGARI SIGN CANDRABINDU*/ + RTUNI_ALPHA, /* U+000902: DEVANAGARI SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+000903: DEVANAGARI SIGN VISARGA*/ + RTUNI_ALPHA, /* U+000904: DEVANAGARI LETTER SHORT A*/ + RTUNI_ALPHA, /* U+000905: DEVANAGARI LETTER A*/ + RTUNI_ALPHA, /* U+000906: DEVANAGARI LETTER AA*/ + RTUNI_ALPHA, /* U+000907: DEVANAGARI LETTER I*/ + RTUNI_ALPHA, /* U+000908: DEVANAGARI LETTER II*/ + RTUNI_ALPHA, /* U+000909: DEVANAGARI LETTER U*/ + RTUNI_ALPHA, /* U+00090a: DEVANAGARI LETTER UU*/ + RTUNI_ALPHA, /* U+00090b: DEVANAGARI LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+00090c: DEVANAGARI LETTER VOCALIC L*/ + RTUNI_ALPHA, /* U+00090d: DEVANAGARI LETTER CANDRA E*/ + RTUNI_ALPHA, /* U+00090e: DEVANAGARI LETTER SHORT E*/ + RTUNI_ALPHA, /* U+00090f: DEVANAGARI LETTER E*/ + RTUNI_ALPHA, /* U+000910: DEVANAGARI LETTER AI*/ + RTUNI_ALPHA, /* U+000911: DEVANAGARI LETTER CANDRA O*/ + RTUNI_ALPHA, /* U+000912: DEVANAGARI LETTER SHORT O*/ + RTUNI_ALPHA, /* U+000913: DEVANAGARI LETTER O*/ + RTUNI_ALPHA, /* U+000914: DEVANAGARI LETTER AU*/ + RTUNI_ALPHA, /* U+000915: DEVANAGARI LETTER KA*/ + RTUNI_ALPHA, /* U+000916: DEVANAGARI LETTER KHA*/ + RTUNI_ALPHA, /* U+000917: DEVANAGARI LETTER GA*/ + RTUNI_ALPHA, /* U+000918: DEVANAGARI LETTER GHA*/ + RTUNI_ALPHA, /* U+000919: DEVANAGARI LETTER NGA*/ + RTUNI_ALPHA, /* U+00091a: DEVANAGARI LETTER CA*/ + RTUNI_ALPHA, /* U+00091b: DEVANAGARI LETTER CHA*/ + RTUNI_ALPHA, /* U+00091c: DEVANAGARI LETTER JA*/ + RTUNI_ALPHA, /* U+00091d: DEVANAGARI LETTER JHA*/ + RTUNI_ALPHA, /* U+00091e: DEVANAGARI LETTER NYA*/ + RTUNI_ALPHA, /* U+00091f: DEVANAGARI LETTER TTA*/ + RTUNI_ALPHA, /* U+000920: DEVANAGARI LETTER TTHA*/ + RTUNI_ALPHA, /* U+000921: DEVANAGARI LETTER DDA*/ + RTUNI_ALPHA, /* U+000922: DEVANAGARI LETTER DDHA*/ + RTUNI_ALPHA, /* U+000923: DEVANAGARI LETTER NNA*/ + RTUNI_ALPHA, /* U+000924: DEVANAGARI LETTER TA*/ + RTUNI_ALPHA, /* U+000925: DEVANAGARI LETTER THA*/ + RTUNI_ALPHA, /* U+000926: DEVANAGARI LETTER DA*/ + RTUNI_ALPHA, /* U+000927: DEVANAGARI LETTER DHA*/ + RTUNI_ALPHA, /* U+000928: DEVANAGARI LETTER NA*/ + RTUNI_ALPHA, /* U+000929: DEVANAGARI LETTER NNNA*/ + RTUNI_ALPHA, /* U+00092a: DEVANAGARI LETTER PA*/ + RTUNI_ALPHA, /* U+00092b: DEVANAGARI LETTER PHA*/ + RTUNI_ALPHA, /* U+00092c: DEVANAGARI LETTER BA*/ + RTUNI_ALPHA, /* U+00092d: DEVANAGARI LETTER BHA*/ + RTUNI_ALPHA, /* U+00092e: DEVANAGARI LETTER MA*/ + RTUNI_ALPHA, /* U+00092f: DEVANAGARI LETTER YA*/ + RTUNI_ALPHA, /* U+000930: DEVANAGARI LETTER RA*/ + RTUNI_ALPHA, /* U+000931: DEVANAGARI LETTER RRA*/ + RTUNI_ALPHA, /* U+000932: DEVANAGARI LETTER LA*/ + RTUNI_ALPHA, /* U+000933: DEVANAGARI LETTER LLA*/ + RTUNI_ALPHA, /* U+000934: DEVANAGARI LETTER LLLA*/ + RTUNI_ALPHA, /* U+000935: DEVANAGARI LETTER VA*/ + RTUNI_ALPHA, /* U+000936: DEVANAGARI LETTER SHA*/ + RTUNI_ALPHA, /* U+000937: DEVANAGARI LETTER SSA*/ + RTUNI_ALPHA, /* U+000938: DEVANAGARI LETTER SA*/ + RTUNI_ALPHA, /* U+000939: DEVANAGARI LETTER HA*/ + RTUNI_ALPHA, /* U+00093a: DEVANAGARI VOWEL SIGN OE*/ + RTUNI_ALPHA, /* U+00093b: DEVANAGARI VOWEL SIGN OOE*/ + 0, /* U+00093c: DEVANAGARI SIGN NUKTA*/ + RTUNI_ALPHA, /* U+00093d: DEVANAGARI SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+00093e: DEVANAGARI VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+00093f: DEVANAGARI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000940: DEVANAGARI VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000941: DEVANAGARI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000942: DEVANAGARI VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+000943: DEVANAGARI VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+000944: DEVANAGARI VOWEL SIGN VOCALIC RR*/ + RTUNI_ALPHA, /* U+000945: DEVANAGARI VOWEL SIGN CANDRA E*/ + RTUNI_ALPHA, /* U+000946: DEVANAGARI VOWEL SIGN SHORT E*/ + RTUNI_ALPHA, /* U+000947: DEVANAGARI VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000948: DEVANAGARI VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+000949: DEVANAGARI VOWEL SIGN CANDRA O*/ + RTUNI_ALPHA, /* U+00094a: DEVANAGARI VOWEL SIGN SHORT O*/ + RTUNI_ALPHA, /* U+00094b: DEVANAGARI VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+00094c: DEVANAGARI VOWEL SIGN AU*/ + 0, /* U+00094d: DEVANAGARI SIGN VIRAMA*/ + RTUNI_ALPHA, /* U+00094e: DEVANAGARI VOWEL SIGN PRISHTHAMATRA E*/ + RTUNI_ALPHA, /* U+00094f: DEVANAGARI VOWEL SIGN AW*/ + RTUNI_ALPHA, /* U+000950: DEVANAGARI OM*/ + 0, /* U+000951: DEVANAGARI STRESS SIGN UDATTA*/ + 0, /* U+000952: DEVANAGARI STRESS SIGN ANUDATTA*/ + 0, /* U+000953: DEVANAGARI GRAVE ACCENT*/ + 0, /* U+000954: DEVANAGARI ACUTE ACCENT*/ + RTUNI_ALPHA, /* U+000955: DEVANAGARI VOWEL SIGN CANDRA LONG E*/ + RTUNI_ALPHA, /* U+000956: DEVANAGARI VOWEL SIGN UE*/ + RTUNI_ALPHA, /* U+000957: DEVANAGARI VOWEL SIGN UUE*/ + RTUNI_ALPHA, /* U+000958: DEVANAGARI LETTER QA*/ + RTUNI_ALPHA, /* U+000959: DEVANAGARI LETTER KHHA*/ + RTUNI_ALPHA, /* U+00095a: DEVANAGARI LETTER GHHA*/ + RTUNI_ALPHA, /* U+00095b: DEVANAGARI LETTER ZA*/ + RTUNI_ALPHA, /* U+00095c: DEVANAGARI LETTER DDDHA*/ + RTUNI_ALPHA, /* U+00095d: DEVANAGARI LETTER RHA*/ + RTUNI_ALPHA, /* U+00095e: DEVANAGARI LETTER FA*/ + RTUNI_ALPHA, /* U+00095f: DEVANAGARI LETTER YYA*/ + RTUNI_ALPHA, /* U+000960: DEVANAGARI LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+000961: DEVANAGARI LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+000962: DEVANAGARI VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+000963: DEVANAGARI VOWEL SIGN VOCALIC LL*/ + 0, /* U+000964: DEVANAGARI DANDA*/ + 0, /* U+000965: DEVANAGARI DOUBLE DANDA*/ + RTUNI_DDIGIT, /* U+000966: DEVANAGARI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000967: DEVANAGARI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000968: DEVANAGARI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000969: DEVANAGARI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+00096a: DEVANAGARI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+00096b: DEVANAGARI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+00096c: DEVANAGARI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+00096d: DEVANAGARI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+00096e: DEVANAGARI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+00096f: DEVANAGARI DIGIT NINE*/ + 0, /* U+000970: DEVANAGARI ABBREVIATION SIGN*/ + RTUNI_ALPHA, /* U+000971: DEVANAGARI SIGN HIGH SPACING DOT*/ + RTUNI_ALPHA, /* U+000972: DEVANAGARI LETTER CANDRA A*/ + RTUNI_ALPHA, /* U+000973: DEVANAGARI LETTER OE*/ + RTUNI_ALPHA, /* U+000974: DEVANAGARI LETTER OOE*/ + RTUNI_ALPHA, /* U+000975: DEVANAGARI LETTER AW*/ + RTUNI_ALPHA, /* U+000976: DEVANAGARI LETTER UE*/ + RTUNI_ALPHA, /* U+000977: DEVANAGARI LETTER UUE*/ + 0, /* U+000978: */ + RTUNI_ALPHA, /* U+000979: DEVANAGARI LETTER ZHA*/ + RTUNI_ALPHA, /* U+00097a: DEVANAGARI LETTER HEAVY YA*/ + RTUNI_ALPHA, /* U+00097b: DEVANAGARI LETTER GGA*/ + RTUNI_ALPHA, /* U+00097c: DEVANAGARI LETTER JJA*/ + RTUNI_ALPHA, /* U+00097d: DEVANAGARI LETTER GLOTTAL STOP*/ + RTUNI_ALPHA, /* U+00097e: DEVANAGARI LETTER DDDA*/ + RTUNI_ALPHA, /* U+00097f: DEVANAGARI LETTER BBA*/ + 0, /* U+000980: */ + RTUNI_ALPHA, /* U+000981: BENGALI SIGN CANDRABINDU*/ + RTUNI_ALPHA, /* U+000982: BENGALI SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+000983: BENGALI SIGN VISARGA*/ + 0, /* U+000984: */ + RTUNI_ALPHA, /* U+000985: BENGALI LETTER A*/ + RTUNI_ALPHA, /* U+000986: BENGALI LETTER AA*/ + RTUNI_ALPHA, /* U+000987: BENGALI LETTER I*/ + RTUNI_ALPHA, /* U+000988: BENGALI LETTER II*/ + RTUNI_ALPHA, /* U+000989: BENGALI LETTER U*/ + RTUNI_ALPHA, /* U+00098a: BENGALI LETTER UU*/ + RTUNI_ALPHA, /* U+00098b: BENGALI LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+00098c: BENGALI LETTER VOCALIC L*/ + 0, /* U+00098d: */ + 0, /* U+00098e: */ + RTUNI_ALPHA, /* U+00098f: BENGALI LETTER E*/ + RTUNI_ALPHA, /* U+000990: BENGALI LETTER AI*/ + 0, /* U+000991: */ + 0, /* U+000992: */ + RTUNI_ALPHA, /* U+000993: BENGALI LETTER O*/ + RTUNI_ALPHA, /* U+000994: BENGALI LETTER AU*/ + RTUNI_ALPHA, /* U+000995: BENGALI LETTER KA*/ + RTUNI_ALPHA, /* U+000996: BENGALI LETTER KHA*/ + RTUNI_ALPHA, /* U+000997: BENGALI LETTER GA*/ + RTUNI_ALPHA, /* U+000998: BENGALI LETTER GHA*/ + RTUNI_ALPHA, /* U+000999: BENGALI LETTER NGA*/ + RTUNI_ALPHA, /* U+00099a: BENGALI LETTER CA*/ + RTUNI_ALPHA, /* U+00099b: BENGALI LETTER CHA*/ + RTUNI_ALPHA, /* U+00099c: BENGALI LETTER JA*/ + RTUNI_ALPHA, /* U+00099d: BENGALI LETTER JHA*/ + RTUNI_ALPHA, /* U+00099e: BENGALI LETTER NYA*/ + RTUNI_ALPHA, /* U+00099f: BENGALI LETTER TTA*/ + RTUNI_ALPHA, /* U+0009a0: BENGALI LETTER TTHA*/ + RTUNI_ALPHA, /* U+0009a1: BENGALI LETTER DDA*/ + RTUNI_ALPHA, /* U+0009a2: BENGALI LETTER DDHA*/ + RTUNI_ALPHA, /* U+0009a3: BENGALI LETTER NNA*/ + RTUNI_ALPHA, /* U+0009a4: BENGALI LETTER TA*/ + RTUNI_ALPHA, /* U+0009a5: BENGALI LETTER THA*/ + RTUNI_ALPHA, /* U+0009a6: BENGALI LETTER DA*/ + RTUNI_ALPHA, /* U+0009a7: BENGALI LETTER DHA*/ + RTUNI_ALPHA, /* U+0009a8: BENGALI LETTER NA*/ + 0, /* U+0009a9: */ + RTUNI_ALPHA, /* U+0009aa: BENGALI LETTER PA*/ + RTUNI_ALPHA, /* U+0009ab: BENGALI LETTER PHA*/ + RTUNI_ALPHA, /* U+0009ac: BENGALI LETTER BA*/ + RTUNI_ALPHA, /* U+0009ad: BENGALI LETTER BHA*/ + RTUNI_ALPHA, /* U+0009ae: BENGALI LETTER MA*/ + RTUNI_ALPHA, /* U+0009af: BENGALI LETTER YA*/ + RTUNI_ALPHA, /* U+0009b0: BENGALI LETTER RA*/ + 0, /* U+0009b1: */ + RTUNI_ALPHA, /* U+0009b2: BENGALI LETTER LA*/ + 0, /* U+0009b3: */ + 0, /* U+0009b4: */ + 0, /* U+0009b5: */ + RTUNI_ALPHA, /* U+0009b6: BENGALI LETTER SHA*/ + RTUNI_ALPHA, /* U+0009b7: BENGALI LETTER SSA*/ + RTUNI_ALPHA, /* U+0009b8: BENGALI LETTER SA*/ + RTUNI_ALPHA, /* U+0009b9: BENGALI LETTER HA*/ + 0, /* U+0009ba: */ + 0, /* U+0009bb: */ + 0, /* U+0009bc: BENGALI SIGN NUKTA*/ + RTUNI_ALPHA, /* U+0009bd: BENGALI SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+0009be: BENGALI VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+0009bf: BENGALI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+0009c0: BENGALI VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+0009c1: BENGALI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+0009c2: BENGALI VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+0009c3: BENGALI VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+0009c4: BENGALI VOWEL SIGN VOCALIC RR*/ + 0, /* U+0009c5: */ + 0, /* U+0009c6: */ + RTUNI_ALPHA, /* U+0009c7: BENGALI VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+0009c8: BENGALI VOWEL SIGN AI*/ + 0, /* U+0009c9: */ + 0, /* U+0009ca: */ + RTUNI_ALPHA, /* U+0009cb: BENGALI VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+0009cc: BENGALI VOWEL SIGN AU*/ + 0, /* U+0009cd: BENGALI SIGN VIRAMA*/ + RTUNI_ALPHA, /* U+0009ce: BENGALI LETTER KHANDA TA*/ + 0, /* U+0009cf: */ + 0, /* U+0009d0: */ + 0, /* U+0009d1: */ + 0, /* U+0009d2: */ + 0, /* U+0009d3: */ + 0, /* U+0009d4: */ + 0, /* U+0009d5: */ + 0, /* U+0009d6: */ + RTUNI_ALPHA, /* U+0009d7: BENGALI AU LENGTH MARK*/ + 0, /* U+0009d8: */ + 0, /* U+0009d9: */ + 0, /* U+0009da: */ + 0, /* U+0009db: */ + RTUNI_ALPHA, /* U+0009dc: BENGALI LETTER RRA*/ + RTUNI_ALPHA, /* U+0009dd: BENGALI LETTER RHA*/ + 0, /* U+0009de: */ + RTUNI_ALPHA, /* U+0009df: BENGALI LETTER YYA*/ + RTUNI_ALPHA, /* U+0009e0: BENGALI LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+0009e1: BENGALI LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+0009e2: BENGALI VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+0009e3: BENGALI VOWEL SIGN VOCALIC LL*/ + 0, /* U+0009e4: */ + 0, /* U+0009e5: */ + RTUNI_DDIGIT, /* U+0009e6: BENGALI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0009e7: BENGALI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0009e8: BENGALI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0009e9: BENGALI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0009ea: BENGALI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0009eb: BENGALI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0009ec: BENGALI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0009ed: BENGALI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0009ee: BENGALI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0009ef: BENGALI DIGIT NINE*/ + RTUNI_ALPHA, /* U+0009f0: BENGALI LETTER RA WITH MIDDLE DIAGONAL*/ + RTUNI_ALPHA, /* U+0009f1: BENGALI LETTER RA WITH LOWER DIAGONAL*/ + 0, /* U+0009f2: BENGALI RUPEE MARK*/ + 0, /* U+0009f3: BENGALI RUPEE SIGN*/ + 0, /* U+0009f4: BENGALI CURRENCY NUMERATOR ONE*/ + 0, /* U+0009f5: BENGALI CURRENCY NUMERATOR TWO*/ + 0, /* U+0009f6: BENGALI CURRENCY NUMERATOR THREE*/ + 0, /* U+0009f7: BENGALI CURRENCY NUMERATOR FOUR*/ + 0, /* U+0009f8: BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR*/ + 0, /* U+0009f9: BENGALI CURRENCY DENOMINATOR SIXTEEN*/ + 0, /* U+0009fa: BENGALI ISSHAR*/ + 0, /* U+0009fb: BENGALI GANDA MARK*/ + 0, /* U+0009fc: */ + 0, /* U+0009fd: */ + 0, /* U+0009fe: */ + 0, /* U+0009ff: */ + 0, /* U+000a00: */ + RTUNI_ALPHA, /* U+000a01: GURMUKHI SIGN ADAK BINDI*/ + RTUNI_ALPHA, /* U+000a02: GURMUKHI SIGN BINDI*/ + RTUNI_ALPHA, /* U+000a03: GURMUKHI SIGN VISARGA*/ + 0, /* U+000a04: */ + RTUNI_ALPHA, /* U+000a05: GURMUKHI LETTER A*/ + RTUNI_ALPHA, /* U+000a06: GURMUKHI LETTER AA*/ + RTUNI_ALPHA, /* U+000a07: GURMUKHI LETTER I*/ + RTUNI_ALPHA, /* U+000a08: GURMUKHI LETTER II*/ + RTUNI_ALPHA, /* U+000a09: GURMUKHI LETTER U*/ + RTUNI_ALPHA, /* U+000a0a: GURMUKHI LETTER UU*/ + 0, /* U+000a0b: */ + 0, /* U+000a0c: */ + 0, /* U+000a0d: */ + 0, /* U+000a0e: */ + RTUNI_ALPHA, /* U+000a0f: GURMUKHI LETTER EE*/ + RTUNI_ALPHA, /* U+000a10: GURMUKHI LETTER AI*/ + 0, /* U+000a11: */ + 0, /* U+000a12: */ + RTUNI_ALPHA, /* U+000a13: GURMUKHI LETTER OO*/ + RTUNI_ALPHA, /* U+000a14: GURMUKHI LETTER AU*/ + RTUNI_ALPHA, /* U+000a15: GURMUKHI LETTER KA*/ + RTUNI_ALPHA, /* U+000a16: GURMUKHI LETTER KHA*/ + RTUNI_ALPHA, /* U+000a17: GURMUKHI LETTER GA*/ + RTUNI_ALPHA, /* U+000a18: GURMUKHI LETTER GHA*/ + RTUNI_ALPHA, /* U+000a19: GURMUKHI LETTER NGA*/ + RTUNI_ALPHA, /* U+000a1a: GURMUKHI LETTER CA*/ + RTUNI_ALPHA, /* U+000a1b: GURMUKHI LETTER CHA*/ + RTUNI_ALPHA, /* U+000a1c: GURMUKHI LETTER JA*/ + RTUNI_ALPHA, /* U+000a1d: GURMUKHI LETTER JHA*/ + RTUNI_ALPHA, /* U+000a1e: GURMUKHI LETTER NYA*/ + RTUNI_ALPHA, /* U+000a1f: GURMUKHI LETTER TTA*/ + RTUNI_ALPHA, /* U+000a20: GURMUKHI LETTER TTHA*/ + RTUNI_ALPHA, /* U+000a21: GURMUKHI LETTER DDA*/ + RTUNI_ALPHA, /* U+000a22: GURMUKHI LETTER DDHA*/ + RTUNI_ALPHA, /* U+000a23: GURMUKHI LETTER NNA*/ + RTUNI_ALPHA, /* U+000a24: GURMUKHI LETTER TA*/ + RTUNI_ALPHA, /* U+000a25: GURMUKHI LETTER THA*/ + RTUNI_ALPHA, /* U+000a26: GURMUKHI LETTER DA*/ + RTUNI_ALPHA, /* U+000a27: GURMUKHI LETTER DHA*/ + RTUNI_ALPHA, /* U+000a28: GURMUKHI LETTER NA*/ + 0, /* U+000a29: */ + RTUNI_ALPHA, /* U+000a2a: GURMUKHI LETTER PA*/ + RTUNI_ALPHA, /* U+000a2b: GURMUKHI LETTER PHA*/ + RTUNI_ALPHA, /* U+000a2c: GURMUKHI LETTER BA*/ + RTUNI_ALPHA, /* U+000a2d: GURMUKHI LETTER BHA*/ + RTUNI_ALPHA, /* U+000a2e: GURMUKHI LETTER MA*/ + RTUNI_ALPHA, /* U+000a2f: GURMUKHI LETTER YA*/ + RTUNI_ALPHA, /* U+000a30: GURMUKHI LETTER RA*/ + 0, /* U+000a31: */ + RTUNI_ALPHA, /* U+000a32: GURMUKHI LETTER LA*/ + RTUNI_ALPHA, /* U+000a33: GURMUKHI LETTER LLA*/ + 0, /* U+000a34: */ + RTUNI_ALPHA, /* U+000a35: GURMUKHI LETTER VA*/ + RTUNI_ALPHA, /* U+000a36: GURMUKHI LETTER SHA*/ + 0, /* U+000a37: */ + RTUNI_ALPHA, /* U+000a38: GURMUKHI LETTER SA*/ + RTUNI_ALPHA, /* U+000a39: GURMUKHI LETTER HA*/ + 0, /* U+000a3a: */ + 0, /* U+000a3b: */ + 0, /* U+000a3c: GURMUKHI SIGN NUKTA*/ + 0, /* U+000a3d: */ + RTUNI_ALPHA, /* U+000a3e: GURMUKHI VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000a3f: GURMUKHI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000a40: GURMUKHI VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000a41: GURMUKHI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000a42: GURMUKHI VOWEL SIGN UU*/ + 0, /* U+000a43: */ + 0, /* U+000a44: */ + 0, /* U+000a45: */ + 0, /* U+000a46: */ + RTUNI_ALPHA, /* U+000a47: GURMUKHI VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+000a48: GURMUKHI VOWEL SIGN AI*/ + 0, /* U+000a49: */ + 0, /* U+000a4a: */ + RTUNI_ALPHA, /* U+000a4b: GURMUKHI VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+000a4c: GURMUKHI VOWEL SIGN AU*/ + 0, /* U+000a4d: GURMUKHI SIGN VIRAMA*/ + 0, /* U+000a4e: */ + 0, /* U+000a4f: */ + 0, /* U+000a50: */ + RTUNI_ALPHA, /* U+000a51: GURMUKHI SIGN UDAAT*/ + 0, /* U+000a52: */ + 0, /* U+000a53: */ + 0, /* U+000a54: */ + 0, /* U+000a55: */ + 0, /* U+000a56: */ + 0, /* U+000a57: */ + 0, /* U+000a58: */ + RTUNI_ALPHA, /* U+000a59: GURMUKHI LETTER KHHA*/ + RTUNI_ALPHA, /* U+000a5a: GURMUKHI LETTER GHHA*/ + RTUNI_ALPHA, /* U+000a5b: GURMUKHI LETTER ZA*/ + RTUNI_ALPHA, /* U+000a5c: GURMUKHI LETTER RRA*/ + 0, /* U+000a5d: */ + RTUNI_ALPHA, /* U+000a5e: GURMUKHI LETTER FA*/ + 0, /* U+000a5f: */ + 0, /* U+000a60: */ + 0, /* U+000a61: */ + 0, /* U+000a62: */ + 0, /* U+000a63: */ + 0, /* U+000a64: */ + 0, /* U+000a65: */ + RTUNI_DDIGIT, /* U+000a66: GURMUKHI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000a67: GURMUKHI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000a68: GURMUKHI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000a69: GURMUKHI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000a6a: GURMUKHI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000a6b: GURMUKHI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000a6c: GURMUKHI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000a6d: GURMUKHI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000a6e: GURMUKHI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000a6f: GURMUKHI DIGIT NINE*/ + RTUNI_ALPHA, /* U+000a70: GURMUKHI TIPPI*/ + RTUNI_ALPHA, /* U+000a71: GURMUKHI ADDAK*/ + RTUNI_ALPHA, /* U+000a72: GURMUKHI IRI*/ + RTUNI_ALPHA, /* U+000a73: GURMUKHI URA*/ + RTUNI_ALPHA, /* U+000a74: GURMUKHI EK ONKAR*/ + RTUNI_ALPHA, /* U+000a75: GURMUKHI SIGN YAKASH*/ + 0, /* U+000a76: */ + 0, /* U+000a77: */ + 0, /* U+000a78: */ + 0, /* U+000a79: */ + 0, /* U+000a7a: */ + 0, /* U+000a7b: */ + 0, /* U+000a7c: */ + 0, /* U+000a7d: */ + 0, /* U+000a7e: */ + 0, /* U+000a7f: */ + 0, /* U+000a80: */ + RTUNI_ALPHA, /* U+000a81: GUJARATI SIGN CANDRABINDU*/ + RTUNI_ALPHA, /* U+000a82: GUJARATI SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+000a83: GUJARATI SIGN VISARGA*/ + 0, /* U+000a84: */ + RTUNI_ALPHA, /* U+000a85: GUJARATI LETTER A*/ + RTUNI_ALPHA, /* U+000a86: GUJARATI LETTER AA*/ + RTUNI_ALPHA, /* U+000a87: GUJARATI LETTER I*/ + RTUNI_ALPHA, /* U+000a88: GUJARATI LETTER II*/ + RTUNI_ALPHA, /* U+000a89: GUJARATI LETTER U*/ + RTUNI_ALPHA, /* U+000a8a: GUJARATI LETTER UU*/ + RTUNI_ALPHA, /* U+000a8b: GUJARATI LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+000a8c: GUJARATI LETTER VOCALIC L*/ + RTUNI_ALPHA, /* U+000a8d: GUJARATI VOWEL CANDRA E*/ + 0, /* U+000a8e: */ + RTUNI_ALPHA, /* U+000a8f: GUJARATI LETTER E*/ + RTUNI_ALPHA, /* U+000a90: GUJARATI LETTER AI*/ + RTUNI_ALPHA, /* U+000a91: GUJARATI VOWEL CANDRA O*/ + 0, /* U+000a92: */ + RTUNI_ALPHA, /* U+000a93: GUJARATI LETTER O*/ + RTUNI_ALPHA, /* U+000a94: GUJARATI LETTER AU*/ + RTUNI_ALPHA, /* U+000a95: GUJARATI LETTER KA*/ + RTUNI_ALPHA, /* U+000a96: GUJARATI LETTER KHA*/ + RTUNI_ALPHA, /* U+000a97: GUJARATI LETTER GA*/ + RTUNI_ALPHA, /* U+000a98: GUJARATI LETTER GHA*/ + RTUNI_ALPHA, /* U+000a99: GUJARATI LETTER NGA*/ + RTUNI_ALPHA, /* U+000a9a: GUJARATI LETTER CA*/ + RTUNI_ALPHA, /* U+000a9b: GUJARATI LETTER CHA*/ + RTUNI_ALPHA, /* U+000a9c: GUJARATI LETTER JA*/ + RTUNI_ALPHA, /* U+000a9d: GUJARATI LETTER JHA*/ + RTUNI_ALPHA, /* U+000a9e: GUJARATI LETTER NYA*/ + RTUNI_ALPHA, /* U+000a9f: GUJARATI LETTER TTA*/ + RTUNI_ALPHA, /* U+000aa0: GUJARATI LETTER TTHA*/ + RTUNI_ALPHA, /* U+000aa1: GUJARATI LETTER DDA*/ + RTUNI_ALPHA, /* U+000aa2: GUJARATI LETTER DDHA*/ + RTUNI_ALPHA, /* U+000aa3: GUJARATI LETTER NNA*/ + RTUNI_ALPHA, /* U+000aa4: GUJARATI LETTER TA*/ + RTUNI_ALPHA, /* U+000aa5: GUJARATI LETTER THA*/ + RTUNI_ALPHA, /* U+000aa6: GUJARATI LETTER DA*/ + RTUNI_ALPHA, /* U+000aa7: GUJARATI LETTER DHA*/ + RTUNI_ALPHA, /* U+000aa8: GUJARATI LETTER NA*/ + 0, /* U+000aa9: */ + RTUNI_ALPHA, /* U+000aaa: GUJARATI LETTER PA*/ + RTUNI_ALPHA, /* U+000aab: GUJARATI LETTER PHA*/ + RTUNI_ALPHA, /* U+000aac: GUJARATI LETTER BA*/ + RTUNI_ALPHA, /* U+000aad: GUJARATI LETTER BHA*/ + RTUNI_ALPHA, /* U+000aae: GUJARATI LETTER MA*/ + RTUNI_ALPHA, /* U+000aaf: GUJARATI LETTER YA*/ + RTUNI_ALPHA, /* U+000ab0: GUJARATI LETTER RA*/ + 0, /* U+000ab1: */ + RTUNI_ALPHA, /* U+000ab2: GUJARATI LETTER LA*/ + RTUNI_ALPHA, /* U+000ab3: GUJARATI LETTER LLA*/ + 0, /* U+000ab4: */ + RTUNI_ALPHA, /* U+000ab5: GUJARATI LETTER VA*/ + RTUNI_ALPHA, /* U+000ab6: GUJARATI LETTER SHA*/ + RTUNI_ALPHA, /* U+000ab7: GUJARATI LETTER SSA*/ + RTUNI_ALPHA, /* U+000ab8: GUJARATI LETTER SA*/ + RTUNI_ALPHA, /* U+000ab9: GUJARATI LETTER HA*/ + 0, /* U+000aba: */ + 0, /* U+000abb: */ + 0, /* U+000abc: GUJARATI SIGN NUKTA*/ + RTUNI_ALPHA, /* U+000abd: GUJARATI SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+000abe: GUJARATI VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000abf: GUJARATI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000ac0: GUJARATI VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000ac1: GUJARATI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000ac2: GUJARATI VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+000ac3: GUJARATI VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+000ac4: GUJARATI VOWEL SIGN VOCALIC RR*/ + RTUNI_ALPHA, /* U+000ac5: GUJARATI VOWEL SIGN CANDRA E*/ + 0, /* U+000ac6: */ + RTUNI_ALPHA, /* U+000ac7: GUJARATI VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000ac8: GUJARATI VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+000ac9: GUJARATI VOWEL SIGN CANDRA O*/ + 0, /* U+000aca: */ + RTUNI_ALPHA, /* U+000acb: GUJARATI VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+000acc: GUJARATI VOWEL SIGN AU*/ + 0, /* U+000acd: GUJARATI SIGN VIRAMA*/ + 0, /* U+000ace: */ + 0, /* U+000acf: */ + RTUNI_ALPHA, /* U+000ad0: GUJARATI OM*/ + 0, /* U+000ad1: */ + 0, /* U+000ad2: */ + 0, /* U+000ad3: */ + 0, /* U+000ad4: */ + 0, /* U+000ad5: */ + 0, /* U+000ad6: */ + 0, /* U+000ad7: */ + 0, /* U+000ad8: */ + 0, /* U+000ad9: */ + 0, /* U+000ada: */ + 0, /* U+000adb: */ + 0, /* U+000adc: */ + 0, /* U+000add: */ + 0, /* U+000ade: */ + 0, /* U+000adf: */ + RTUNI_ALPHA, /* U+000ae0: GUJARATI LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+000ae1: GUJARATI LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+000ae2: GUJARATI VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+000ae3: GUJARATI VOWEL SIGN VOCALIC LL*/ + 0, /* U+000ae4: */ + 0, /* U+000ae5: */ + RTUNI_DDIGIT, /* U+000ae6: GUJARATI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000ae7: GUJARATI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000ae8: GUJARATI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000ae9: GUJARATI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000aea: GUJARATI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000aeb: GUJARATI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000aec: GUJARATI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000aed: GUJARATI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000aee: GUJARATI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000aef: GUJARATI DIGIT NINE*/ + 0, /* U+000af0: GUJARATI ABBREVIATION SIGN*/ + 0, /* U+000af1: GUJARATI RUPEE SIGN*/ + 0, /* U+000af2: */ + 0, /* U+000af3: */ + 0, /* U+000af4: */ + 0, /* U+000af5: */ + 0, /* U+000af6: */ + 0, /* U+000af7: */ + 0, /* U+000af8: */ + 0, /* U+000af9: */ + 0, /* U+000afa: */ + 0, /* U+000afb: */ + 0, /* U+000afc: */ + 0, /* U+000afd: */ + 0, /* U+000afe: */ + 0, /* U+000aff: */ + 0, /* U+000b00: */ + RTUNI_ALPHA, /* U+000b01: ORIYA SIGN CANDRABINDU*/ + RTUNI_ALPHA, /* U+000b02: ORIYA SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+000b03: ORIYA SIGN VISARGA*/ + 0, /* U+000b04: */ + RTUNI_ALPHA, /* U+000b05: ORIYA LETTER A*/ + RTUNI_ALPHA, /* U+000b06: ORIYA LETTER AA*/ + RTUNI_ALPHA, /* U+000b07: ORIYA LETTER I*/ + RTUNI_ALPHA, /* U+000b08: ORIYA LETTER II*/ + RTUNI_ALPHA, /* U+000b09: ORIYA LETTER U*/ + RTUNI_ALPHA, /* U+000b0a: ORIYA LETTER UU*/ + RTUNI_ALPHA, /* U+000b0b: ORIYA LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+000b0c: ORIYA LETTER VOCALIC L*/ + 0, /* U+000b0d: */ + 0, /* U+000b0e: */ + RTUNI_ALPHA, /* U+000b0f: ORIYA LETTER E*/ + RTUNI_ALPHA, /* U+000b10: ORIYA LETTER AI*/ + 0, /* U+000b11: */ + 0, /* U+000b12: */ + RTUNI_ALPHA, /* U+000b13: ORIYA LETTER O*/ + RTUNI_ALPHA, /* U+000b14: ORIYA LETTER AU*/ + RTUNI_ALPHA, /* U+000b15: ORIYA LETTER KA*/ + RTUNI_ALPHA, /* U+000b16: ORIYA LETTER KHA*/ + RTUNI_ALPHA, /* U+000b17: ORIYA LETTER GA*/ + RTUNI_ALPHA, /* U+000b18: ORIYA LETTER GHA*/ + RTUNI_ALPHA, /* U+000b19: ORIYA LETTER NGA*/ + RTUNI_ALPHA, /* U+000b1a: ORIYA LETTER CA*/ + RTUNI_ALPHA, /* U+000b1b: ORIYA LETTER CHA*/ + RTUNI_ALPHA, /* U+000b1c: ORIYA LETTER JA*/ + RTUNI_ALPHA, /* U+000b1d: ORIYA LETTER JHA*/ + RTUNI_ALPHA, /* U+000b1e: ORIYA LETTER NYA*/ + RTUNI_ALPHA, /* U+000b1f: ORIYA LETTER TTA*/ + RTUNI_ALPHA, /* U+000b20: ORIYA LETTER TTHA*/ + RTUNI_ALPHA, /* U+000b21: ORIYA LETTER DDA*/ + RTUNI_ALPHA, /* U+000b22: ORIYA LETTER DDHA*/ + RTUNI_ALPHA, /* U+000b23: ORIYA LETTER NNA*/ + RTUNI_ALPHA, /* U+000b24: ORIYA LETTER TA*/ + RTUNI_ALPHA, /* U+000b25: ORIYA LETTER THA*/ + RTUNI_ALPHA, /* U+000b26: ORIYA LETTER DA*/ + RTUNI_ALPHA, /* U+000b27: ORIYA LETTER DHA*/ + RTUNI_ALPHA, /* U+000b28: ORIYA LETTER NA*/ + 0, /* U+000b29: */ + RTUNI_ALPHA, /* U+000b2a: ORIYA LETTER PA*/ + RTUNI_ALPHA, /* U+000b2b: ORIYA LETTER PHA*/ + RTUNI_ALPHA, /* U+000b2c: ORIYA LETTER BA*/ + RTUNI_ALPHA, /* U+000b2d: ORIYA LETTER BHA*/ + RTUNI_ALPHA, /* U+000b2e: ORIYA LETTER MA*/ + RTUNI_ALPHA, /* U+000b2f: ORIYA LETTER YA*/ + RTUNI_ALPHA, /* U+000b30: ORIYA LETTER RA*/ + 0, /* U+000b31: */ + RTUNI_ALPHA, /* U+000b32: ORIYA LETTER LA*/ + RTUNI_ALPHA, /* U+000b33: ORIYA LETTER LLA*/ + 0, /* U+000b34: */ + RTUNI_ALPHA, /* U+000b35: ORIYA LETTER VA*/ + RTUNI_ALPHA, /* U+000b36: ORIYA LETTER SHA*/ + RTUNI_ALPHA, /* U+000b37: ORIYA LETTER SSA*/ + RTUNI_ALPHA, /* U+000b38: ORIYA LETTER SA*/ + RTUNI_ALPHA, /* U+000b39: ORIYA LETTER HA*/ + 0, /* U+000b3a: */ + 0, /* U+000b3b: */ + 0, /* U+000b3c: ORIYA SIGN NUKTA*/ + RTUNI_ALPHA, /* U+000b3d: ORIYA SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+000b3e: ORIYA VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000b3f: ORIYA VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000b40: ORIYA VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000b41: ORIYA VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000b42: ORIYA VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+000b43: ORIYA VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+000b44: ORIYA VOWEL SIGN VOCALIC RR*/ + 0, /* U+000b45: */ + 0, /* U+000b46: */ + RTUNI_ALPHA, /* U+000b47: ORIYA VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000b48: ORIYA VOWEL SIGN AI*/ + 0, /* U+000b49: */ + 0, /* U+000b4a: */ + RTUNI_ALPHA, /* U+000b4b: ORIYA VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+000b4c: ORIYA VOWEL SIGN AU*/ + 0, /* U+000b4d: ORIYA SIGN VIRAMA*/ + 0, /* U+000b4e: */ + 0, /* U+000b4f: */ + 0, /* U+000b50: */ + 0, /* U+000b51: */ + 0, /* U+000b52: */ + 0, /* U+000b53: */ + 0, /* U+000b54: */ + 0, /* U+000b55: */ + RTUNI_ALPHA, /* U+000b56: ORIYA AI LENGTH MARK*/ + RTUNI_ALPHA, /* U+000b57: ORIYA AU LENGTH MARK*/ + 0, /* U+000b58: */ + 0, /* U+000b59: */ + 0, /* U+000b5a: */ + 0, /* U+000b5b: */ + RTUNI_ALPHA, /* U+000b5c: ORIYA LETTER RRA*/ + RTUNI_ALPHA, /* U+000b5d: ORIYA LETTER RHA*/ + 0, /* U+000b5e: */ + RTUNI_ALPHA, /* U+000b5f: ORIYA LETTER YYA*/ + RTUNI_ALPHA, /* U+000b60: ORIYA LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+000b61: ORIYA LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+000b62: ORIYA VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+000b63: ORIYA VOWEL SIGN VOCALIC LL*/ + 0, /* U+000b64: */ + 0, /* U+000b65: */ + RTUNI_DDIGIT, /* U+000b66: ORIYA DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000b67: ORIYA DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000b68: ORIYA DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000b69: ORIYA DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000b6a: ORIYA DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000b6b: ORIYA DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000b6c: ORIYA DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000b6d: ORIYA DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000b6e: ORIYA DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000b6f: ORIYA DIGIT NINE*/ + 0, /* U+000b70: ORIYA ISSHAR*/ + RTUNI_ALPHA, /* U+000b71: ORIYA LETTER WA*/ + 0, /* U+000b72: ORIYA FRACTION ONE QUARTER*/ + 0, /* U+000b73: ORIYA FRACTION ONE HALF*/ + 0, /* U+000b74: ORIYA FRACTION THREE QUARTERS*/ + 0, /* U+000b75: ORIYA FRACTION ONE SIXTEENTH*/ + 0, /* U+000b76: ORIYA FRACTION ONE EIGHTH*/ + 0, /* U+000b77: ORIYA FRACTION THREE SIXTEENTHS*/ + 0, /* U+000b78: */ + 0, /* U+000b79: */ + 0, /* U+000b7a: */ + 0, /* U+000b7b: */ + 0, /* U+000b7c: */ + 0, /* U+000b7d: */ + 0, /* U+000b7e: */ + 0, /* U+000b7f: */ + 0, /* U+000b80: */ + 0, /* U+000b81: */ + RTUNI_ALPHA, /* U+000b82: TAMIL SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+000b83: TAMIL SIGN VISARGA*/ + 0, /* U+000b84: */ + RTUNI_ALPHA, /* U+000b85: TAMIL LETTER A*/ + RTUNI_ALPHA, /* U+000b86: TAMIL LETTER AA*/ + RTUNI_ALPHA, /* U+000b87: TAMIL LETTER I*/ + RTUNI_ALPHA, /* U+000b88: TAMIL LETTER II*/ + RTUNI_ALPHA, /* U+000b89: TAMIL LETTER U*/ + RTUNI_ALPHA, /* U+000b8a: TAMIL LETTER UU*/ + 0, /* U+000b8b: */ + 0, /* U+000b8c: */ + 0, /* U+000b8d: */ + RTUNI_ALPHA, /* U+000b8e: TAMIL LETTER E*/ + RTUNI_ALPHA, /* U+000b8f: TAMIL LETTER EE*/ + RTUNI_ALPHA, /* U+000b90: TAMIL LETTER AI*/ + 0, /* U+000b91: */ + RTUNI_ALPHA, /* U+000b92: TAMIL LETTER O*/ + RTUNI_ALPHA, /* U+000b93: TAMIL LETTER OO*/ + RTUNI_ALPHA, /* U+000b94: TAMIL LETTER AU*/ + RTUNI_ALPHA, /* U+000b95: TAMIL LETTER KA*/ + 0, /* U+000b96: */ + 0, /* U+000b97: */ + 0, /* U+000b98: */ + RTUNI_ALPHA, /* U+000b99: TAMIL LETTER NGA*/ + RTUNI_ALPHA, /* U+000b9a: TAMIL LETTER CA*/ + 0, /* U+000b9b: */ + RTUNI_ALPHA, /* U+000b9c: TAMIL LETTER JA*/ + 0, /* U+000b9d: */ + RTUNI_ALPHA, /* U+000b9e: TAMIL LETTER NYA*/ + RTUNI_ALPHA, /* U+000b9f: TAMIL LETTER TTA*/ + 0, /* U+000ba0: */ + 0, /* U+000ba1: */ + 0, /* U+000ba2: */ + RTUNI_ALPHA, /* U+000ba3: TAMIL LETTER NNA*/ + RTUNI_ALPHA, /* U+000ba4: TAMIL LETTER TA*/ + 0, /* U+000ba5: */ + 0, /* U+000ba6: */ + 0, /* U+000ba7: */ + RTUNI_ALPHA, /* U+000ba8: TAMIL LETTER NA*/ + RTUNI_ALPHA, /* U+000ba9: TAMIL LETTER NNNA*/ + RTUNI_ALPHA, /* U+000baa: TAMIL LETTER PA*/ + 0, /* U+000bab: */ + 0, /* U+000bac: */ + 0, /* U+000bad: */ + RTUNI_ALPHA, /* U+000bae: TAMIL LETTER MA*/ + RTUNI_ALPHA, /* U+000baf: TAMIL LETTER YA*/ + RTUNI_ALPHA, /* U+000bb0: TAMIL LETTER RA*/ + RTUNI_ALPHA, /* U+000bb1: TAMIL LETTER RRA*/ + RTUNI_ALPHA, /* U+000bb2: TAMIL LETTER LA*/ + RTUNI_ALPHA, /* U+000bb3: TAMIL LETTER LLA*/ + RTUNI_ALPHA, /* U+000bb4: TAMIL LETTER LLLA*/ + RTUNI_ALPHA, /* U+000bb5: TAMIL LETTER VA*/ + RTUNI_ALPHA, /* U+000bb6: TAMIL LETTER SHA*/ + RTUNI_ALPHA, /* U+000bb7: TAMIL LETTER SSA*/ + RTUNI_ALPHA, /* U+000bb8: TAMIL LETTER SA*/ + RTUNI_ALPHA, /* U+000bb9: TAMIL LETTER HA*/ + 0, /* U+000bba: */ + 0, /* U+000bbb: */ + 0, /* U+000bbc: */ + 0, /* U+000bbd: */ + RTUNI_ALPHA, /* U+000bbe: TAMIL VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000bbf: TAMIL VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000bc0: TAMIL VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000bc1: TAMIL VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000bc2: TAMIL VOWEL SIGN UU*/ + 0, /* U+000bc3: */ + 0, /* U+000bc4: */ + 0, /* U+000bc5: */ + RTUNI_ALPHA, /* U+000bc6: TAMIL VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000bc7: TAMIL VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+000bc8: TAMIL VOWEL SIGN AI*/ + 0, /* U+000bc9: */ + RTUNI_ALPHA, /* U+000bca: TAMIL VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+000bcb: TAMIL VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+000bcc: TAMIL VOWEL SIGN AU*/ + 0, /* U+000bcd: TAMIL SIGN VIRAMA*/ + 0, /* U+000bce: */ + 0, /* U+000bcf: */ + RTUNI_ALPHA, /* U+000bd0: TAMIL OM*/ + 0, /* U+000bd1: */ + 0, /* U+000bd2: */ + 0, /* U+000bd3: */ + 0, /* U+000bd4: */ + 0, /* U+000bd5: */ + 0, /* U+000bd6: */ + RTUNI_ALPHA, /* U+000bd7: TAMIL AU LENGTH MARK*/ + 0, /* U+000bd8: */ + 0, /* U+000bd9: */ + 0, /* U+000bda: */ + 0, /* U+000bdb: */ + 0, /* U+000bdc: */ + 0, /* U+000bdd: */ + 0, /* U+000bde: */ + 0, /* U+000bdf: */ + 0, /* U+000be0: */ + 0, /* U+000be1: */ + 0, /* U+000be2: */ + 0, /* U+000be3: */ + 0, /* U+000be4: */ + 0, /* U+000be5: */ + RTUNI_DDIGIT, /* U+000be6: TAMIL DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000be7: TAMIL DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000be8: TAMIL DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000be9: TAMIL DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000bea: TAMIL DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000beb: TAMIL DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000bec: TAMIL DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000bed: TAMIL DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000bee: TAMIL DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000bef: TAMIL DIGIT NINE*/ + 0, /* U+000bf0: TAMIL NUMBER TEN*/ + 0, /* U+000bf1: TAMIL NUMBER ONE HUNDRED*/ + 0, /* U+000bf2: TAMIL NUMBER ONE THOUSAND*/ + 0, /* U+000bf3: TAMIL DAY SIGN*/ + 0, /* U+000bf4: TAMIL MONTH SIGN*/ + 0, /* U+000bf5: TAMIL YEAR SIGN*/ + 0, /* U+000bf6: TAMIL DEBIT SIGN*/ + 0, /* U+000bf7: TAMIL CREDIT SIGN*/ + 0, /* U+000bf8: TAMIL AS ABOVE SIGN*/ + 0, /* U+000bf9: TAMIL RUPEE SIGN*/ + 0, /* U+000bfa: TAMIL NUMBER SIGN*/ + 0, /* U+000bfb: */ + 0, /* U+000bfc: */ + 0, /* U+000bfd: */ + 0, /* U+000bfe: */ + 0, /* U+000bff: */ + 0, /* U+000c00: */ + RTUNI_ALPHA, /* U+000c01: TELUGU SIGN CANDRABINDU*/ + RTUNI_ALPHA, /* U+000c02: TELUGU SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+000c03: TELUGU SIGN VISARGA*/ + 0, /* U+000c04: */ + RTUNI_ALPHA, /* U+000c05: TELUGU LETTER A*/ + RTUNI_ALPHA, /* U+000c06: TELUGU LETTER AA*/ + RTUNI_ALPHA, /* U+000c07: TELUGU LETTER I*/ + RTUNI_ALPHA, /* U+000c08: TELUGU LETTER II*/ + RTUNI_ALPHA, /* U+000c09: TELUGU LETTER U*/ + RTUNI_ALPHA, /* U+000c0a: TELUGU LETTER UU*/ + RTUNI_ALPHA, /* U+000c0b: TELUGU LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+000c0c: TELUGU LETTER VOCALIC L*/ + 0, /* U+000c0d: */ + RTUNI_ALPHA, /* U+000c0e: TELUGU LETTER E*/ + RTUNI_ALPHA, /* U+000c0f: TELUGU LETTER EE*/ + RTUNI_ALPHA, /* U+000c10: TELUGU LETTER AI*/ + 0, /* U+000c11: */ + RTUNI_ALPHA, /* U+000c12: TELUGU LETTER O*/ + RTUNI_ALPHA, /* U+000c13: TELUGU LETTER OO*/ + RTUNI_ALPHA, /* U+000c14: TELUGU LETTER AU*/ + RTUNI_ALPHA, /* U+000c15: TELUGU LETTER KA*/ + RTUNI_ALPHA, /* U+000c16: TELUGU LETTER KHA*/ + RTUNI_ALPHA, /* U+000c17: TELUGU LETTER GA*/ + RTUNI_ALPHA, /* U+000c18: TELUGU LETTER GHA*/ + RTUNI_ALPHA, /* U+000c19: TELUGU LETTER NGA*/ + RTUNI_ALPHA, /* U+000c1a: TELUGU LETTER CA*/ + RTUNI_ALPHA, /* U+000c1b: TELUGU LETTER CHA*/ + RTUNI_ALPHA, /* U+000c1c: TELUGU LETTER JA*/ + RTUNI_ALPHA, /* U+000c1d: TELUGU LETTER JHA*/ + RTUNI_ALPHA, /* U+000c1e: TELUGU LETTER NYA*/ + RTUNI_ALPHA, /* U+000c1f: TELUGU LETTER TTA*/ + RTUNI_ALPHA, /* U+000c20: TELUGU LETTER TTHA*/ + RTUNI_ALPHA, /* U+000c21: TELUGU LETTER DDA*/ + RTUNI_ALPHA, /* U+000c22: TELUGU LETTER DDHA*/ + RTUNI_ALPHA, /* U+000c23: TELUGU LETTER NNA*/ + RTUNI_ALPHA, /* U+000c24: TELUGU LETTER TA*/ + RTUNI_ALPHA, /* U+000c25: TELUGU LETTER THA*/ + RTUNI_ALPHA, /* U+000c26: TELUGU LETTER DA*/ + RTUNI_ALPHA, /* U+000c27: TELUGU LETTER DHA*/ + RTUNI_ALPHA, /* U+000c28: TELUGU LETTER NA*/ + 0, /* U+000c29: */ + RTUNI_ALPHA, /* U+000c2a: TELUGU LETTER PA*/ + RTUNI_ALPHA, /* U+000c2b: TELUGU LETTER PHA*/ + RTUNI_ALPHA, /* U+000c2c: TELUGU LETTER BA*/ + RTUNI_ALPHA, /* U+000c2d: TELUGU LETTER BHA*/ + RTUNI_ALPHA, /* U+000c2e: TELUGU LETTER MA*/ + RTUNI_ALPHA, /* U+000c2f: TELUGU LETTER YA*/ + RTUNI_ALPHA, /* U+000c30: TELUGU LETTER RA*/ + RTUNI_ALPHA, /* U+000c31: TELUGU LETTER RRA*/ + RTUNI_ALPHA, /* U+000c32: TELUGU LETTER LA*/ + RTUNI_ALPHA, /* U+000c33: TELUGU LETTER LLA*/ + 0, /* U+000c34: */ + RTUNI_ALPHA, /* U+000c35: TELUGU LETTER VA*/ + RTUNI_ALPHA, /* U+000c36: TELUGU LETTER SHA*/ + RTUNI_ALPHA, /* U+000c37: TELUGU LETTER SSA*/ + RTUNI_ALPHA, /* U+000c38: TELUGU LETTER SA*/ + RTUNI_ALPHA, /* U+000c39: TELUGU LETTER HA*/ + 0, /* U+000c3a: */ + 0, /* U+000c3b: */ + 0, /* U+000c3c: */ + RTUNI_ALPHA, /* U+000c3d: TELUGU SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+000c3e: TELUGU VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000c3f: TELUGU VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000c40: TELUGU VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000c41: TELUGU VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000c42: TELUGU VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+000c43: TELUGU VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+000c44: TELUGU VOWEL SIGN VOCALIC RR*/ + 0, /* U+000c45: */ + RTUNI_ALPHA, /* U+000c46: TELUGU VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000c47: TELUGU VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+000c48: TELUGU VOWEL SIGN AI*/ + 0, /* U+000c49: */ + RTUNI_ALPHA, /* U+000c4a: TELUGU VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+000c4b: TELUGU VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+000c4c: TELUGU VOWEL SIGN AU*/ + 0, /* U+000c4d: TELUGU SIGN VIRAMA*/ + 0, /* U+000c4e: */ + 0, /* U+000c4f: */ + 0, /* U+000c50: */ + 0, /* U+000c51: */ + 0, /* U+000c52: */ + 0, /* U+000c53: */ + 0, /* U+000c54: */ + RTUNI_ALPHA, /* U+000c55: TELUGU LENGTH MARK*/ + RTUNI_ALPHA, /* U+000c56: TELUGU AI LENGTH MARK*/ + 0, /* U+000c57: */ + RTUNI_ALPHA, /* U+000c58: TELUGU LETTER TSA*/ + RTUNI_ALPHA, /* U+000c59: TELUGU LETTER DZA*/ + 0, /* U+000c5a: */ + 0, /* U+000c5b: */ + 0, /* U+000c5c: */ + 0, /* U+000c5d: */ + 0, /* U+000c5e: */ + 0, /* U+000c5f: */ + RTUNI_ALPHA, /* U+000c60: TELUGU LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+000c61: TELUGU LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+000c62: TELUGU VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+000c63: TELUGU VOWEL SIGN VOCALIC LL*/ + 0, /* U+000c64: */ + 0, /* U+000c65: */ + RTUNI_DDIGIT, /* U+000c66: TELUGU DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000c67: TELUGU DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000c68: TELUGU DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000c69: TELUGU DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000c6a: TELUGU DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000c6b: TELUGU DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000c6c: TELUGU DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000c6d: TELUGU DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000c6e: TELUGU DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000c6f: TELUGU DIGIT NINE*/ + 0, /* U+000c70: */ + 0, /* U+000c71: */ + 0, /* U+000c72: */ + 0, /* U+000c73: */ + 0, /* U+000c74: */ + 0, /* U+000c75: */ + 0, /* U+000c76: */ + 0, /* U+000c77: */ + 0, /* U+000c78: TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR*/ + 0, /* U+000c79: TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR*/ + 0, /* U+000c7a: TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR*/ + 0, /* U+000c7b: TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR*/ + 0, /* U+000c7c: TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR*/ + 0, /* U+000c7d: TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR*/ + 0, /* U+000c7e: TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR*/ + 0, /* U+000c7f: TELUGU SIGN TUUMU*/ + 0, /* U+000c80: */ + 0, /* U+000c81: */ + RTUNI_ALPHA, /* U+000c82: KANNADA SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+000c83: KANNADA SIGN VISARGA*/ + 0, /* U+000c84: */ + RTUNI_ALPHA, /* U+000c85: KANNADA LETTER A*/ + RTUNI_ALPHA, /* U+000c86: KANNADA LETTER AA*/ + RTUNI_ALPHA, /* U+000c87: KANNADA LETTER I*/ + RTUNI_ALPHA, /* U+000c88: KANNADA LETTER II*/ + RTUNI_ALPHA, /* U+000c89: KANNADA LETTER U*/ + RTUNI_ALPHA, /* U+000c8a: KANNADA LETTER UU*/ + RTUNI_ALPHA, /* U+000c8b: KANNADA LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+000c8c: KANNADA LETTER VOCALIC L*/ + 0, /* U+000c8d: */ + RTUNI_ALPHA, /* U+000c8e: KANNADA LETTER E*/ + RTUNI_ALPHA, /* U+000c8f: KANNADA LETTER EE*/ + RTUNI_ALPHA, /* U+000c90: KANNADA LETTER AI*/ + 0, /* U+000c91: */ + RTUNI_ALPHA, /* U+000c92: KANNADA LETTER O*/ + RTUNI_ALPHA, /* U+000c93: KANNADA LETTER OO*/ + RTUNI_ALPHA, /* U+000c94: KANNADA LETTER AU*/ + RTUNI_ALPHA, /* U+000c95: KANNADA LETTER KA*/ + RTUNI_ALPHA, /* U+000c96: KANNADA LETTER KHA*/ + RTUNI_ALPHA, /* U+000c97: KANNADA LETTER GA*/ + RTUNI_ALPHA, /* U+000c98: KANNADA LETTER GHA*/ + RTUNI_ALPHA, /* U+000c99: KANNADA LETTER NGA*/ + RTUNI_ALPHA, /* U+000c9a: KANNADA LETTER CA*/ + RTUNI_ALPHA, /* U+000c9b: KANNADA LETTER CHA*/ + RTUNI_ALPHA, /* U+000c9c: KANNADA LETTER JA*/ + RTUNI_ALPHA, /* U+000c9d: KANNADA LETTER JHA*/ + RTUNI_ALPHA, /* U+000c9e: KANNADA LETTER NYA*/ + RTUNI_ALPHA, /* U+000c9f: KANNADA LETTER TTA*/ + RTUNI_ALPHA, /* U+000ca0: KANNADA LETTER TTHA*/ + RTUNI_ALPHA, /* U+000ca1: KANNADA LETTER DDA*/ + RTUNI_ALPHA, /* U+000ca2: KANNADA LETTER DDHA*/ + RTUNI_ALPHA, /* U+000ca3: KANNADA LETTER NNA*/ + RTUNI_ALPHA, /* U+000ca4: KANNADA LETTER TA*/ + RTUNI_ALPHA, /* U+000ca5: KANNADA LETTER THA*/ + RTUNI_ALPHA, /* U+000ca6: KANNADA LETTER DA*/ + RTUNI_ALPHA, /* U+000ca7: KANNADA LETTER DHA*/ + RTUNI_ALPHA, /* U+000ca8: KANNADA LETTER NA*/ + 0, /* U+000ca9: */ + RTUNI_ALPHA, /* U+000caa: KANNADA LETTER PA*/ + RTUNI_ALPHA, /* U+000cab: KANNADA LETTER PHA*/ + RTUNI_ALPHA, /* U+000cac: KANNADA LETTER BA*/ + RTUNI_ALPHA, /* U+000cad: KANNADA LETTER BHA*/ + RTUNI_ALPHA, /* U+000cae: KANNADA LETTER MA*/ + RTUNI_ALPHA, /* U+000caf: KANNADA LETTER YA*/ + RTUNI_ALPHA, /* U+000cb0: KANNADA LETTER RA*/ + RTUNI_ALPHA, /* U+000cb1: KANNADA LETTER RRA*/ + RTUNI_ALPHA, /* U+000cb2: KANNADA LETTER LA*/ + RTUNI_ALPHA, /* U+000cb3: KANNADA LETTER LLA*/ + 0, /* U+000cb4: */ + RTUNI_ALPHA, /* U+000cb5: KANNADA LETTER VA*/ + RTUNI_ALPHA, /* U+000cb6: KANNADA LETTER SHA*/ + RTUNI_ALPHA, /* U+000cb7: KANNADA LETTER SSA*/ + RTUNI_ALPHA, /* U+000cb8: KANNADA LETTER SA*/ + RTUNI_ALPHA, /* U+000cb9: KANNADA LETTER HA*/ + 0, /* U+000cba: */ + 0, /* U+000cbb: */ + 0, /* U+000cbc: KANNADA SIGN NUKTA*/ + RTUNI_ALPHA, /* U+000cbd: KANNADA SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+000cbe: KANNADA VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000cbf: KANNADA VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000cc0: KANNADA VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000cc1: KANNADA VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000cc2: KANNADA VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+000cc3: KANNADA VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+000cc4: KANNADA VOWEL SIGN VOCALIC RR*/ + 0, /* U+000cc5: */ + RTUNI_ALPHA, /* U+000cc6: KANNADA VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000cc7: KANNADA VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+000cc8: KANNADA VOWEL SIGN AI*/ + 0, /* U+000cc9: */ + RTUNI_ALPHA, /* U+000cca: KANNADA VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+000ccb: KANNADA VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+000ccc: KANNADA VOWEL SIGN AU*/ + 0, /* U+000ccd: KANNADA SIGN VIRAMA*/ + 0, /* U+000cce: */ + 0, /* U+000ccf: */ + 0, /* U+000cd0: */ + 0, /* U+000cd1: */ + 0, /* U+000cd2: */ + 0, /* U+000cd3: */ + 0, /* U+000cd4: */ + RTUNI_ALPHA, /* U+000cd5: KANNADA LENGTH MARK*/ + RTUNI_ALPHA, /* U+000cd6: KANNADA AI LENGTH MARK*/ + 0, /* U+000cd7: */ + 0, /* U+000cd8: */ + 0, /* U+000cd9: */ + 0, /* U+000cda: */ + 0, /* U+000cdb: */ + 0, /* U+000cdc: */ + 0, /* U+000cdd: */ + RTUNI_ALPHA, /* U+000cde: KANNADA LETTER FA*/ + 0, /* U+000cdf: */ + RTUNI_ALPHA, /* U+000ce0: KANNADA LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+000ce1: KANNADA LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+000ce2: KANNADA VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+000ce3: KANNADA VOWEL SIGN VOCALIC LL*/ + 0, /* U+000ce4: */ + 0, /* U+000ce5: */ + RTUNI_DDIGIT, /* U+000ce6: KANNADA DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000ce7: KANNADA DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000ce8: KANNADA DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000ce9: KANNADA DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000cea: KANNADA DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000ceb: KANNADA DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000cec: KANNADA DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000ced: KANNADA DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000cee: KANNADA DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000cef: KANNADA DIGIT NINE*/ + 0, /* U+000cf0: */ + RTUNI_ALPHA, /* U+000cf1: KANNADA SIGN JIHVAMULIYA*/ + RTUNI_ALPHA, /* U+000cf2: KANNADA SIGN UPADHMANIYA*/ + 0, /* U+000cf3: */ + 0, /* U+000cf4: */ + 0, /* U+000cf5: */ + 0, /* U+000cf6: */ + 0, /* U+000cf7: */ + 0, /* U+000cf8: */ + 0, /* U+000cf9: */ + 0, /* U+000cfa: */ + 0, /* U+000cfb: */ + 0, /* U+000cfc: */ + 0, /* U+000cfd: */ + 0, /* U+000cfe: */ + 0, /* U+000cff: */ + 0, /* U+000d00: */ + 0, /* U+000d01: */ + RTUNI_ALPHA, /* U+000d02: MALAYALAM SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+000d03: MALAYALAM SIGN VISARGA*/ + 0, /* U+000d04: */ + RTUNI_ALPHA, /* U+000d05: MALAYALAM LETTER A*/ + RTUNI_ALPHA, /* U+000d06: MALAYALAM LETTER AA*/ + RTUNI_ALPHA, /* U+000d07: MALAYALAM LETTER I*/ + RTUNI_ALPHA, /* U+000d08: MALAYALAM LETTER II*/ + RTUNI_ALPHA, /* U+000d09: MALAYALAM LETTER U*/ + RTUNI_ALPHA, /* U+000d0a: MALAYALAM LETTER UU*/ + RTUNI_ALPHA, /* U+000d0b: MALAYALAM LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+000d0c: MALAYALAM LETTER VOCALIC L*/ + 0, /* U+000d0d: */ + RTUNI_ALPHA, /* U+000d0e: MALAYALAM LETTER E*/ + RTUNI_ALPHA, /* U+000d0f: MALAYALAM LETTER EE*/ + RTUNI_ALPHA, /* U+000d10: MALAYALAM LETTER AI*/ + 0, /* U+000d11: */ + RTUNI_ALPHA, /* U+000d12: MALAYALAM LETTER O*/ + RTUNI_ALPHA, /* U+000d13: MALAYALAM LETTER OO*/ + RTUNI_ALPHA, /* U+000d14: MALAYALAM LETTER AU*/ + RTUNI_ALPHA, /* U+000d15: MALAYALAM LETTER KA*/ + RTUNI_ALPHA, /* U+000d16: MALAYALAM LETTER KHA*/ + RTUNI_ALPHA, /* U+000d17: MALAYALAM LETTER GA*/ + RTUNI_ALPHA, /* U+000d18: MALAYALAM LETTER GHA*/ + RTUNI_ALPHA, /* U+000d19: MALAYALAM LETTER NGA*/ + RTUNI_ALPHA, /* U+000d1a: MALAYALAM LETTER CA*/ + RTUNI_ALPHA, /* U+000d1b: MALAYALAM LETTER CHA*/ + RTUNI_ALPHA, /* U+000d1c: MALAYALAM LETTER JA*/ + RTUNI_ALPHA, /* U+000d1d: MALAYALAM LETTER JHA*/ + RTUNI_ALPHA, /* U+000d1e: MALAYALAM LETTER NYA*/ + RTUNI_ALPHA, /* U+000d1f: MALAYALAM LETTER TTA*/ + RTUNI_ALPHA, /* U+000d20: MALAYALAM LETTER TTHA*/ + RTUNI_ALPHA, /* U+000d21: MALAYALAM LETTER DDA*/ + RTUNI_ALPHA, /* U+000d22: MALAYALAM LETTER DDHA*/ + RTUNI_ALPHA, /* U+000d23: MALAYALAM LETTER NNA*/ + RTUNI_ALPHA, /* U+000d24: MALAYALAM LETTER TA*/ + RTUNI_ALPHA, /* U+000d25: MALAYALAM LETTER THA*/ + RTUNI_ALPHA, /* U+000d26: MALAYALAM LETTER DA*/ + RTUNI_ALPHA, /* U+000d27: MALAYALAM LETTER DHA*/ + RTUNI_ALPHA, /* U+000d28: MALAYALAM LETTER NA*/ + RTUNI_ALPHA, /* U+000d29: MALAYALAM LETTER NNNA*/ + RTUNI_ALPHA, /* U+000d2a: MALAYALAM LETTER PA*/ + RTUNI_ALPHA, /* U+000d2b: MALAYALAM LETTER PHA*/ + RTUNI_ALPHA, /* U+000d2c: MALAYALAM LETTER BA*/ + RTUNI_ALPHA, /* U+000d2d: MALAYALAM LETTER BHA*/ + RTUNI_ALPHA, /* U+000d2e: MALAYALAM LETTER MA*/ + RTUNI_ALPHA, /* U+000d2f: MALAYALAM LETTER YA*/ + RTUNI_ALPHA, /* U+000d30: MALAYALAM LETTER RA*/ + RTUNI_ALPHA, /* U+000d31: MALAYALAM LETTER RRA*/ + RTUNI_ALPHA, /* U+000d32: MALAYALAM LETTER LA*/ + RTUNI_ALPHA, /* U+000d33: MALAYALAM LETTER LLA*/ + RTUNI_ALPHA, /* U+000d34: MALAYALAM LETTER LLLA*/ + RTUNI_ALPHA, /* U+000d35: MALAYALAM LETTER VA*/ + RTUNI_ALPHA, /* U+000d36: MALAYALAM LETTER SHA*/ + RTUNI_ALPHA, /* U+000d37: MALAYALAM LETTER SSA*/ + RTUNI_ALPHA, /* U+000d38: MALAYALAM LETTER SA*/ + RTUNI_ALPHA, /* U+000d39: MALAYALAM LETTER HA*/ + RTUNI_ALPHA, /* U+000d3a: MALAYALAM LETTER TTTA*/ + 0, /* U+000d3b: */ + 0, /* U+000d3c: */ + RTUNI_ALPHA, /* U+000d3d: MALAYALAM SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+000d3e: MALAYALAM VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000d3f: MALAYALAM VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000d40: MALAYALAM VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000d41: MALAYALAM VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000d42: MALAYALAM VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+000d43: MALAYALAM VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+000d44: MALAYALAM VOWEL SIGN VOCALIC RR*/ + 0, /* U+000d45: */ + RTUNI_ALPHA, /* U+000d46: MALAYALAM VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000d47: MALAYALAM VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+000d48: MALAYALAM VOWEL SIGN AI*/ + 0, /* U+000d49: */ + RTUNI_ALPHA, /* U+000d4a: MALAYALAM VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+000d4b: MALAYALAM VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+000d4c: MALAYALAM VOWEL SIGN AU*/ + 0, /* U+000d4d: MALAYALAM SIGN VIRAMA*/ + RTUNI_ALPHA, /* U+000d4e: MALAYALAM LETTER DOT REPH*/ + 0, /* U+000d4f: */ + 0, /* U+000d50: */ + 0, /* U+000d51: */ + 0, /* U+000d52: */ + 0, /* U+000d53: */ + 0, /* U+000d54: */ + 0, /* U+000d55: */ + 0, /* U+000d56: */ + RTUNI_ALPHA, /* U+000d57: MALAYALAM AU LENGTH MARK*/ + 0, /* U+000d58: */ + 0, /* U+000d59: */ + 0, /* U+000d5a: */ + 0, /* U+000d5b: */ + 0, /* U+000d5c: */ + 0, /* U+000d5d: */ + 0, /* U+000d5e: */ + 0, /* U+000d5f: */ + RTUNI_ALPHA, /* U+000d60: MALAYALAM LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+000d61: MALAYALAM LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+000d62: MALAYALAM VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+000d63: MALAYALAM VOWEL SIGN VOCALIC LL*/ + 0, /* U+000d64: */ + 0, /* U+000d65: */ + RTUNI_DDIGIT, /* U+000d66: MALAYALAM DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000d67: MALAYALAM DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000d68: MALAYALAM DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000d69: MALAYALAM DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000d6a: MALAYALAM DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000d6b: MALAYALAM DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000d6c: MALAYALAM DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000d6d: MALAYALAM DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000d6e: MALAYALAM DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000d6f: MALAYALAM DIGIT NINE*/ + 0, /* U+000d70: MALAYALAM NUMBER TEN*/ + 0, /* U+000d71: MALAYALAM NUMBER ONE HUNDRED*/ + 0, /* U+000d72: MALAYALAM NUMBER ONE THOUSAND*/ + 0, /* U+000d73: MALAYALAM FRACTION ONE QUARTER*/ + 0, /* U+000d74: MALAYALAM FRACTION ONE HALF*/ + 0, /* U+000d75: MALAYALAM FRACTION THREE QUARTERS*/ + 0, /* U+000d76: */ + 0, /* U+000d77: */ + 0, /* U+000d78: */ + 0, /* U+000d79: MALAYALAM DATE MARK*/ + RTUNI_ALPHA, /* U+000d7a: MALAYALAM LETTER CHILLU NN*/ + RTUNI_ALPHA, /* U+000d7b: MALAYALAM LETTER CHILLU N*/ + RTUNI_ALPHA, /* U+000d7c: MALAYALAM LETTER CHILLU RR*/ + RTUNI_ALPHA, /* U+000d7d: MALAYALAM LETTER CHILLU L*/ + RTUNI_ALPHA, /* U+000d7e: MALAYALAM LETTER CHILLU LL*/ + RTUNI_ALPHA, /* U+000d7f: MALAYALAM LETTER CHILLU K*/ + 0, /* U+000d80: */ + 0, /* U+000d81: */ + RTUNI_ALPHA, /* U+000d82: SINHALA SIGN ANUSVARAYA*/ + RTUNI_ALPHA, /* U+000d83: SINHALA SIGN VISARGAYA*/ + 0, /* U+000d84: */ + RTUNI_ALPHA, /* U+000d85: SINHALA LETTER AYANNA*/ + RTUNI_ALPHA, /* U+000d86: SINHALA LETTER AAYANNA*/ + RTUNI_ALPHA, /* U+000d87: SINHALA LETTER AEYANNA*/ + RTUNI_ALPHA, /* U+000d88: SINHALA LETTER AEEYANNA*/ + RTUNI_ALPHA, /* U+000d89: SINHALA LETTER IYANNA*/ + RTUNI_ALPHA, /* U+000d8a: SINHALA LETTER IIYANNA*/ + RTUNI_ALPHA, /* U+000d8b: SINHALA LETTER UYANNA*/ + RTUNI_ALPHA, /* U+000d8c: SINHALA LETTER UUYANNA*/ + RTUNI_ALPHA, /* U+000d8d: SINHALA LETTER IRUYANNA*/ + RTUNI_ALPHA, /* U+000d8e: SINHALA LETTER IRUUYANNA*/ + RTUNI_ALPHA, /* U+000d8f: SINHALA LETTER ILUYANNA*/ + RTUNI_ALPHA, /* U+000d90: SINHALA LETTER ILUUYANNA*/ + RTUNI_ALPHA, /* U+000d91: SINHALA LETTER EYANNA*/ + RTUNI_ALPHA, /* U+000d92: SINHALA LETTER EEYANNA*/ + RTUNI_ALPHA, /* U+000d93: SINHALA LETTER AIYANNA*/ + RTUNI_ALPHA, /* U+000d94: SINHALA LETTER OYANNA*/ + RTUNI_ALPHA, /* U+000d95: SINHALA LETTER OOYANNA*/ + RTUNI_ALPHA, /* U+000d96: SINHALA LETTER AUYANNA*/ + 0, /* U+000d97: */ + 0, /* U+000d98: */ + 0, /* U+000d99: */ + RTUNI_ALPHA, /* U+000d9a: SINHALA LETTER ALPAPRAANA KAYANNA*/ + RTUNI_ALPHA, /* U+000d9b: SINHALA LETTER MAHAAPRAANA KAYANNA*/ + RTUNI_ALPHA, /* U+000d9c: SINHALA LETTER ALPAPRAANA GAYANNA*/ + RTUNI_ALPHA, /* U+000d9d: SINHALA LETTER MAHAAPRAANA GAYANNA*/ + RTUNI_ALPHA, /* U+000d9e: SINHALA LETTER KANTAJA NAASIKYAYA*/ + RTUNI_ALPHA, /* U+000d9f: SINHALA LETTER SANYAKA GAYANNA*/ + RTUNI_ALPHA, /* U+000da0: SINHALA LETTER ALPAPRAANA CAYANNA*/ + RTUNI_ALPHA, /* U+000da1: SINHALA LETTER MAHAAPRAANA CAYANNA*/ + RTUNI_ALPHA, /* U+000da2: SINHALA LETTER ALPAPRAANA JAYANNA*/ + RTUNI_ALPHA, /* U+000da3: SINHALA LETTER MAHAAPRAANA JAYANNA*/ + RTUNI_ALPHA, /* U+000da4: SINHALA LETTER TAALUJA NAASIKYAYA*/ + RTUNI_ALPHA, /* U+000da5: SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA*/ + RTUNI_ALPHA, /* U+000da6: SINHALA LETTER SANYAKA JAYANNA*/ + RTUNI_ALPHA, /* U+000da7: SINHALA LETTER ALPAPRAANA TTAYANNA*/ + RTUNI_ALPHA, /* U+000da8: SINHALA LETTER MAHAAPRAANA TTAYANNA*/ + RTUNI_ALPHA, /* U+000da9: SINHALA LETTER ALPAPRAANA DDAYANNA*/ + RTUNI_ALPHA, /* U+000daa: SINHALA LETTER MAHAAPRAANA DDAYANNA*/ + RTUNI_ALPHA, /* U+000dab: SINHALA LETTER MUURDHAJA NAYANNA*/ + RTUNI_ALPHA, /* U+000dac: SINHALA LETTER SANYAKA DDAYANNA*/ + RTUNI_ALPHA, /* U+000dad: SINHALA LETTER ALPAPRAANA TAYANNA*/ + RTUNI_ALPHA, /* U+000dae: SINHALA LETTER MAHAAPRAANA TAYANNA*/ + RTUNI_ALPHA, /* U+000daf: SINHALA LETTER ALPAPRAANA DAYANNA*/ + RTUNI_ALPHA, /* U+000db0: SINHALA LETTER MAHAAPRAANA DAYANNA*/ + RTUNI_ALPHA, /* U+000db1: SINHALA LETTER DANTAJA NAYANNA*/ + 0, /* U+000db2: */ + RTUNI_ALPHA, /* U+000db3: SINHALA LETTER SANYAKA DAYANNA*/ + RTUNI_ALPHA, /* U+000db4: SINHALA LETTER ALPAPRAANA PAYANNA*/ + RTUNI_ALPHA, /* U+000db5: SINHALA LETTER MAHAAPRAANA PAYANNA*/ + RTUNI_ALPHA, /* U+000db6: SINHALA LETTER ALPAPRAANA BAYANNA*/ + RTUNI_ALPHA, /* U+000db7: SINHALA LETTER MAHAAPRAANA BAYANNA*/ + RTUNI_ALPHA, /* U+000db8: SINHALA LETTER MAYANNA*/ + RTUNI_ALPHA, /* U+000db9: SINHALA LETTER AMBA BAYANNA*/ + RTUNI_ALPHA, /* U+000dba: SINHALA LETTER YAYANNA*/ + RTUNI_ALPHA, /* U+000dbb: SINHALA LETTER RAYANNA*/ + 0, /* U+000dbc: */ + RTUNI_ALPHA, /* U+000dbd: SINHALA LETTER DANTAJA LAYANNA*/ + 0, /* U+000dbe: */ + 0, /* U+000dbf: */ + RTUNI_ALPHA, /* U+000dc0: SINHALA LETTER VAYANNA*/ + RTUNI_ALPHA, /* U+000dc1: SINHALA LETTER TAALUJA SAYANNA*/ + RTUNI_ALPHA, /* U+000dc2: SINHALA LETTER MUURDHAJA SAYANNA*/ + RTUNI_ALPHA, /* U+000dc3: SINHALA LETTER DANTAJA SAYANNA*/ + RTUNI_ALPHA, /* U+000dc4: SINHALA LETTER HAYANNA*/ + RTUNI_ALPHA, /* U+000dc5: SINHALA LETTER MUURDHAJA LAYANNA*/ + RTUNI_ALPHA, /* U+000dc6: SINHALA LETTER FAYANNA*/ + 0, /* U+000dc7: */ + 0, /* U+000dc8: */ + 0, /* U+000dc9: */ + 0, /* U+000dca: SINHALA SIGN AL-LAKUNA*/ + 0, /* U+000dcb: */ + 0, /* U+000dcc: */ + 0, /* U+000dcd: */ + 0, /* U+000dce: */ + RTUNI_ALPHA, /* U+000dcf: SINHALA VOWEL SIGN AELA-PILLA*/ + RTUNI_ALPHA, /* U+000dd0: SINHALA VOWEL SIGN KETTI AEDA-PILLA*/ + RTUNI_ALPHA, /* U+000dd1: SINHALA VOWEL SIGN DIGA AEDA-PILLA*/ + RTUNI_ALPHA, /* U+000dd2: SINHALA VOWEL SIGN KETTI IS-PILLA*/ + RTUNI_ALPHA, /* U+000dd3: SINHALA VOWEL SIGN DIGA IS-PILLA*/ + RTUNI_ALPHA, /* U+000dd4: SINHALA VOWEL SIGN KETTI PAA-PILLA*/ + 0, /* U+000dd5: */ + RTUNI_ALPHA, /* U+000dd6: SINHALA VOWEL SIGN DIGA PAA-PILLA*/ + 0, /* U+000dd7: */ + RTUNI_ALPHA, /* U+000dd8: SINHALA VOWEL SIGN GAETTA-PILLA*/ + RTUNI_ALPHA, /* U+000dd9: SINHALA VOWEL SIGN KOMBUVA*/ + RTUNI_ALPHA, /* U+000dda: SINHALA VOWEL SIGN DIGA KOMBUVA*/ + RTUNI_ALPHA, /* U+000ddb: SINHALA VOWEL SIGN KOMBU DEKA*/ + RTUNI_ALPHA, /* U+000ddc: SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA*/ + RTUNI_ALPHA, /* U+000ddd: SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA*/ + RTUNI_ALPHA, /* U+000dde: SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA*/ + RTUNI_ALPHA, /* U+000ddf: SINHALA VOWEL SIGN GAYANUKITTA*/ + 0, /* U+000de0: */ + 0, /* U+000de1: */ + 0, /* U+000de2: */ + 0, /* U+000de3: */ + 0, /* U+000de4: */ + 0, /* U+000de5: */ + 0, /* U+000de6: */ + 0, /* U+000de7: */ + 0, /* U+000de8: */ + 0, /* U+000de9: */ + 0, /* U+000dea: */ + 0, /* U+000deb: */ + 0, /* U+000dec: */ + 0, /* U+000ded: */ + 0, /* U+000dee: */ + 0, /* U+000def: */ + 0, /* U+000df0: */ + 0, /* U+000df1: */ + RTUNI_ALPHA, /* U+000df2: SINHALA VOWEL SIGN DIGA GAETTA-PILLA*/ + RTUNI_ALPHA, /* U+000df3: SINHALA VOWEL SIGN DIGA GAYANUKITTA*/ + 0, /* U+000df4: SINHALA PUNCTUATION KUNDDALIYA*/ + 0, /* U+000df5: */ + 0, /* U+000df6: */ + 0, /* U+000df7: */ + 0, /* U+000df8: */ + 0, /* U+000df9: */ + 0, /* U+000dfa: */ + 0, /* U+000dfb: */ + 0, /* U+000dfc: */ + 0, /* U+000dfd: */ + 0, /* U+000dfe: */ + 0, /* U+000dff: */ + 0, /* U+000e00: */ + RTUNI_ALPHA, /* U+000e01: THAI CHARACTER KO KAI*/ + RTUNI_ALPHA, /* U+000e02: THAI CHARACTER KHO KHAI*/ + RTUNI_ALPHA, /* U+000e03: THAI CHARACTER KHO KHUAT*/ + RTUNI_ALPHA, /* U+000e04: THAI CHARACTER KHO KHWAI*/ + RTUNI_ALPHA, /* U+000e05: THAI CHARACTER KHO KHON*/ + RTUNI_ALPHA, /* U+000e06: THAI CHARACTER KHO RAKHANG*/ + RTUNI_ALPHA, /* U+000e07: THAI CHARACTER NGO NGU*/ + RTUNI_ALPHA, /* U+000e08: THAI CHARACTER CHO CHAN*/ + RTUNI_ALPHA, /* U+000e09: THAI CHARACTER CHO CHING*/ + RTUNI_ALPHA, /* U+000e0a: THAI CHARACTER CHO CHANG*/ + RTUNI_ALPHA, /* U+000e0b: THAI CHARACTER SO SO*/ + RTUNI_ALPHA, /* U+000e0c: THAI CHARACTER CHO CHOE*/ + RTUNI_ALPHA, /* U+000e0d: THAI CHARACTER YO YING*/ + RTUNI_ALPHA, /* U+000e0e: THAI CHARACTER DO CHADA*/ + RTUNI_ALPHA, /* U+000e0f: THAI CHARACTER TO PATAK*/ + RTUNI_ALPHA, /* U+000e10: THAI CHARACTER THO THAN*/ + RTUNI_ALPHA, /* U+000e11: THAI CHARACTER THO NANGMONTHO*/ + RTUNI_ALPHA, /* U+000e12: THAI CHARACTER THO PHUTHAO*/ + RTUNI_ALPHA, /* U+000e13: THAI CHARACTER NO NEN*/ + RTUNI_ALPHA, /* U+000e14: THAI CHARACTER DO DEK*/ + RTUNI_ALPHA, /* U+000e15: THAI CHARACTER TO TAO*/ + RTUNI_ALPHA, /* U+000e16: THAI CHARACTER THO THUNG*/ + RTUNI_ALPHA, /* U+000e17: THAI CHARACTER THO THAHAN*/ + RTUNI_ALPHA, /* U+000e18: THAI CHARACTER THO THONG*/ + RTUNI_ALPHA, /* U+000e19: THAI CHARACTER NO NU*/ + RTUNI_ALPHA, /* U+000e1a: THAI CHARACTER BO BAIMAI*/ + RTUNI_ALPHA, /* U+000e1b: THAI CHARACTER PO PLA*/ + RTUNI_ALPHA, /* U+000e1c: THAI CHARACTER PHO PHUNG*/ + RTUNI_ALPHA, /* U+000e1d: THAI CHARACTER FO FA*/ + RTUNI_ALPHA, /* U+000e1e: THAI CHARACTER PHO PHAN*/ + RTUNI_ALPHA, /* U+000e1f: THAI CHARACTER FO FAN*/ + RTUNI_ALPHA, /* U+000e20: THAI CHARACTER PHO SAMPHAO*/ + RTUNI_ALPHA, /* U+000e21: THAI CHARACTER MO MA*/ + RTUNI_ALPHA, /* U+000e22: THAI CHARACTER YO YAK*/ + RTUNI_ALPHA, /* U+000e23: THAI CHARACTER RO RUA*/ + RTUNI_ALPHA, /* U+000e24: THAI CHARACTER RU*/ + RTUNI_ALPHA, /* U+000e25: THAI CHARACTER LO LING*/ + RTUNI_ALPHA, /* U+000e26: THAI CHARACTER LU*/ + RTUNI_ALPHA, /* U+000e27: THAI CHARACTER WO WAEN*/ + RTUNI_ALPHA, /* U+000e28: THAI CHARACTER SO SALA*/ + RTUNI_ALPHA, /* U+000e29: THAI CHARACTER SO RUSI*/ + RTUNI_ALPHA, /* U+000e2a: THAI CHARACTER SO SUA*/ + RTUNI_ALPHA, /* U+000e2b: THAI CHARACTER HO HIP*/ + RTUNI_ALPHA, /* U+000e2c: THAI CHARACTER LO CHULA*/ + RTUNI_ALPHA, /* U+000e2d: THAI CHARACTER O ANG*/ + RTUNI_ALPHA, /* U+000e2e: THAI CHARACTER HO NOKHUK*/ + RTUNI_ALPHA, /* U+000e2f: THAI CHARACTER PAIYANNOI*/ + RTUNI_ALPHA, /* U+000e30: THAI CHARACTER SARA A*/ + RTUNI_ALPHA, /* U+000e31: THAI CHARACTER MAI HAN-AKAT*/ + RTUNI_ALPHA, /* U+000e32: THAI CHARACTER SARA AA*/ + RTUNI_ALPHA, /* U+000e33: THAI CHARACTER SARA AM*/ + RTUNI_ALPHA, /* U+000e34: THAI CHARACTER SARA I*/ + RTUNI_ALPHA, /* U+000e35: THAI CHARACTER SARA II*/ + RTUNI_ALPHA, /* U+000e36: THAI CHARACTER SARA UE*/ + RTUNI_ALPHA, /* U+000e37: THAI CHARACTER SARA UEE*/ + RTUNI_ALPHA, /* U+000e38: THAI CHARACTER SARA U*/ + RTUNI_ALPHA, /* U+000e39: THAI CHARACTER SARA UU*/ + RTUNI_ALPHA, /* U+000e3a: THAI CHARACTER PHINTHU*/ + 0, /* U+000e3b: */ + 0, /* U+000e3c: */ + 0, /* U+000e3d: */ + 0, /* U+000e3e: */ + 0, /* U+000e3f: THAI CURRENCY SYMBOL BAHT*/ + RTUNI_ALPHA, /* U+000e40: THAI CHARACTER SARA E*/ + RTUNI_ALPHA, /* U+000e41: THAI CHARACTER SARA AE*/ + RTUNI_ALPHA, /* U+000e42: THAI CHARACTER SARA O*/ + RTUNI_ALPHA, /* U+000e43: THAI CHARACTER SARA AI MAIMUAN*/ + RTUNI_ALPHA, /* U+000e44: THAI CHARACTER SARA AI MAIMALAI*/ + RTUNI_ALPHA, /* U+000e45: THAI CHARACTER LAKKHANGYAO*/ + RTUNI_ALPHA, /* U+000e46: THAI CHARACTER MAIYAMOK*/ + 0, /* U+000e47: THAI CHARACTER MAITAIKHU*/ + 0, /* U+000e48: THAI CHARACTER MAI EK*/ + 0, /* U+000e49: THAI CHARACTER MAI THO*/ + 0, /* U+000e4a: THAI CHARACTER MAI TRI*/ + 0, /* U+000e4b: THAI CHARACTER MAI CHATTAWA*/ + 0, /* U+000e4c: THAI CHARACTER THANTHAKHAT*/ + RTUNI_ALPHA, /* U+000e4d: THAI CHARACTER NIKHAHIT*/ + 0, /* U+000e4e: THAI CHARACTER YAMAKKAN*/ + 0, /* U+000e4f: THAI CHARACTER FONGMAN*/ + RTUNI_DDIGIT, /* U+000e50: THAI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000e51: THAI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000e52: THAI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000e53: THAI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000e54: THAI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000e55: THAI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000e56: THAI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000e57: THAI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000e58: THAI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000e59: THAI DIGIT NINE*/ + 0, /* U+000e5a: THAI CHARACTER ANGKHANKHU*/ + 0, /* U+000e5b: THAI CHARACTER KHOMUT*/ + 0, /* U+000e5c: */ + 0, /* U+000e5d: */ + 0, /* U+000e5e: */ + 0, /* U+000e5f: */ + 0, /* U+000e60: */ + 0, /* U+000e61: */ + 0, /* U+000e62: */ + 0, /* U+000e63: */ + 0, /* U+000e64: */ + 0, /* U+000e65: */ + 0, /* U+000e66: */ + 0, /* U+000e67: */ + 0, /* U+000e68: */ + 0, /* U+000e69: */ + 0, /* U+000e6a: */ + 0, /* U+000e6b: */ + 0, /* U+000e6c: */ + 0, /* U+000e6d: */ + 0, /* U+000e6e: */ + 0, /* U+000e6f: */ + 0, /* U+000e70: */ + 0, /* U+000e71: */ + 0, /* U+000e72: */ + 0, /* U+000e73: */ + 0, /* U+000e74: */ + 0, /* U+000e75: */ + 0, /* U+000e76: */ + 0, /* U+000e77: */ + 0, /* U+000e78: */ + 0, /* U+000e79: */ + 0, /* U+000e7a: */ + 0, /* U+000e7b: */ + 0, /* U+000e7c: */ + 0, /* U+000e7d: */ + 0, /* U+000e7e: */ + 0, /* U+000e7f: */ + 0, /* U+000e80: */ + RTUNI_ALPHA, /* U+000e81: LAO LETTER KO*/ + RTUNI_ALPHA, /* U+000e82: LAO LETTER KHO SUNG*/ + 0, /* U+000e83: */ + RTUNI_ALPHA, /* U+000e84: LAO LETTER KHO TAM*/ + 0, /* U+000e85: */ + 0, /* U+000e86: */ + RTUNI_ALPHA, /* U+000e87: LAO LETTER NGO*/ + RTUNI_ALPHA, /* U+000e88: LAO LETTER CO*/ + 0, /* U+000e89: */ + RTUNI_ALPHA, /* U+000e8a: LAO LETTER SO TAM*/ + 0, /* U+000e8b: */ + 0, /* U+000e8c: */ + RTUNI_ALPHA, /* U+000e8d: LAO LETTER NYO*/ + 0, /* U+000e8e: */ + 0, /* U+000e8f: */ + 0, /* U+000e90: */ + 0, /* U+000e91: */ + 0, /* U+000e92: */ + 0, /* U+000e93: */ + RTUNI_ALPHA, /* U+000e94: LAO LETTER DO*/ + RTUNI_ALPHA, /* U+000e95: LAO LETTER TO*/ + RTUNI_ALPHA, /* U+000e96: LAO LETTER THO SUNG*/ + RTUNI_ALPHA, /* U+000e97: LAO LETTER THO TAM*/ + 0, /* U+000e98: */ + RTUNI_ALPHA, /* U+000e99: LAO LETTER NO*/ + RTUNI_ALPHA, /* U+000e9a: LAO LETTER BO*/ + RTUNI_ALPHA, /* U+000e9b: LAO LETTER PO*/ + RTUNI_ALPHA, /* U+000e9c: LAO LETTER PHO SUNG*/ + RTUNI_ALPHA, /* U+000e9d: LAO LETTER FO TAM*/ + RTUNI_ALPHA, /* U+000e9e: LAO LETTER PHO TAM*/ + RTUNI_ALPHA, /* U+000e9f: LAO LETTER FO SUNG*/ + 0, /* U+000ea0: */ + RTUNI_ALPHA, /* U+000ea1: LAO LETTER MO*/ + RTUNI_ALPHA, /* U+000ea2: LAO LETTER YO*/ + RTUNI_ALPHA, /* U+000ea3: LAO LETTER LO LING*/ + 0, /* U+000ea4: */ + RTUNI_ALPHA, /* U+000ea5: LAO LETTER LO LOOT*/ + 0, /* U+000ea6: */ + RTUNI_ALPHA, /* U+000ea7: LAO LETTER WO*/ + 0, /* U+000ea8: */ + 0, /* U+000ea9: */ + RTUNI_ALPHA, /* U+000eaa: LAO LETTER SO SUNG*/ + RTUNI_ALPHA, /* U+000eab: LAO LETTER HO SUNG*/ + 0, /* U+000eac: */ + RTUNI_ALPHA, /* U+000ead: LAO LETTER O*/ + RTUNI_ALPHA, /* U+000eae: LAO LETTER HO TAM*/ + RTUNI_ALPHA, /* U+000eaf: LAO ELLIPSIS*/ + RTUNI_ALPHA, /* U+000eb0: LAO VOWEL SIGN A*/ + RTUNI_ALPHA, /* U+000eb1: LAO VOWEL SIGN MAI KAN*/ + RTUNI_ALPHA, /* U+000eb2: LAO VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000eb3: LAO VOWEL SIGN AM*/ + RTUNI_ALPHA, /* U+000eb4: LAO VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000eb5: LAO VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000eb6: LAO VOWEL SIGN Y*/ + RTUNI_ALPHA, /* U+000eb7: LAO VOWEL SIGN YY*/ + RTUNI_ALPHA, /* U+000eb8: LAO VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000eb9: LAO VOWEL SIGN UU*/ + 0, /* U+000eba: */ + RTUNI_ALPHA, /* U+000ebb: LAO VOWEL SIGN MAI KON*/ + RTUNI_ALPHA, /* U+000ebc: LAO SEMIVOWEL SIGN LO*/ + RTUNI_ALPHA, /* U+000ebd: LAO SEMIVOWEL SIGN NYO*/ + 0, /* U+000ebe: */ + 0, /* U+000ebf: */ + RTUNI_ALPHA, /* U+000ec0: LAO VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000ec1: LAO VOWEL SIGN EI*/ + RTUNI_ALPHA, /* U+000ec2: LAO VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+000ec3: LAO VOWEL SIGN AY*/ + RTUNI_ALPHA, /* U+000ec4: LAO VOWEL SIGN AI*/ + 0, /* U+000ec5: */ + RTUNI_ALPHA, /* U+000ec6: LAO KO LA*/ + 0, /* U+000ec7: */ + 0, /* U+000ec8: LAO TONE MAI EK*/ + 0, /* U+000ec9: LAO TONE MAI THO*/ + 0, /* U+000eca: LAO TONE MAI TI*/ + 0, /* U+000ecb: LAO TONE MAI CATAWA*/ + 0, /* U+000ecc: LAO CANCELLATION MARK*/ + RTUNI_ALPHA, /* U+000ecd: LAO NIGGAHITA*/ + 0, /* U+000ece: */ + 0, /* U+000ecf: */ + RTUNI_DDIGIT, /* U+000ed0: LAO DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000ed1: LAO DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000ed2: LAO DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000ed3: LAO DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000ed4: LAO DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000ed5: LAO DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000ed6: LAO DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000ed7: LAO DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000ed8: LAO DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000ed9: LAO DIGIT NINE*/ + 0, /* U+000eda: */ + 0, /* U+000edb: */ + RTUNI_ALPHA, /* U+000edc: LAO HO NO*/ + RTUNI_ALPHA, /* U+000edd: LAO HO MO*/ + RTUNI_ALPHA, /* U+000ede: LAO LETTER KHMU GO*/ + RTUNI_ALPHA, /* U+000edf: LAO LETTER KHMU NYO*/ + 0, /* U+000ee0: */ + 0, /* U+000ee1: */ + 0, /* U+000ee2: */ + 0, /* U+000ee3: */ + 0, /* U+000ee4: */ + 0, /* U+000ee5: */ + 0, /* U+000ee6: */ + 0, /* U+000ee7: */ + 0, /* U+000ee8: */ + 0, /* U+000ee9: */ + 0, /* U+000eea: */ + 0, /* U+000eeb: */ + 0, /* U+000eec: */ + 0, /* U+000eed: */ + 0, /* U+000eee: */ + 0, /* U+000eef: */ + 0, /* U+000ef0: */ + 0, /* U+000ef1: */ + 0, /* U+000ef2: */ + 0, /* U+000ef3: */ + 0, /* U+000ef4: */ + 0, /* U+000ef5: */ + 0, /* U+000ef6: */ + 0, /* U+000ef7: */ + 0, /* U+000ef8: */ + 0, /* U+000ef9: */ + 0, /* U+000efa: */ + 0, /* U+000efb: */ + 0, /* U+000efc: */ + 0, /* U+000efd: */ + 0, /* U+000efe: */ + 0, /* U+000eff: */ + RTUNI_ALPHA, /* U+000f00: TIBETAN SYLLABLE OM*/ + 0, /* U+000f01: TIBETAN MARK GTER YIG MGO TRUNCATED A*/ + 0, /* U+000f02: TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA*/ + 0, /* U+000f03: TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA*/ + 0, /* U+000f04: TIBETAN MARK INITIAL YIG MGO MDUN MA*/ + 0, /* U+000f05: TIBETAN MARK CLOSING YIG MGO SGAB MA*/ + 0, /* U+000f06: TIBETAN MARK CARET YIG MGO PHUR SHAD MA*/ + 0, /* U+000f07: TIBETAN MARK YIG MGO TSHEG SHAD MA*/ + 0, /* U+000f08: TIBETAN MARK SBRUL SHAD*/ + 0, /* U+000f09: TIBETAN MARK BSKUR YIG MGO*/ + 0, /* U+000f0a: TIBETAN MARK BKA- SHOG YIG MGO*/ + 0, /* U+000f0b: TIBETAN MARK INTERSYLLABIC TSHEG*/ + 0, /* U+000f0c: TIBETAN MARK DELIMITER TSHEG BSTAR*/ + 0, /* U+000f0d: TIBETAN MARK SHAD*/ + 0, /* U+000f0e: TIBETAN MARK NYIS SHAD*/ + 0, /* U+000f0f: TIBETAN MARK TSHEG SHAD*/ + 0, /* U+000f10: TIBETAN MARK NYIS TSHEG SHAD*/ + 0, /* U+000f11: TIBETAN MARK RIN CHEN SPUNGS SHAD*/ + 0, /* U+000f12: TIBETAN MARK RGYA GRAM SHAD*/ + 0, /* U+000f13: TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN*/ + 0, /* U+000f14: TIBETAN MARK GTER TSHEG*/ + 0, /* U+000f15: TIBETAN LOGOTYPE SIGN CHAD RTAGS*/ + 0, /* U+000f16: TIBETAN LOGOTYPE SIGN LHAG RTAGS*/ + 0, /* U+000f17: TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS*/ + 0, /* U+000f18: TIBETAN ASTROLOGICAL SIGN -KHYUD PA*/ + 0, /* U+000f19: TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS*/ + 0, /* U+000f1a: TIBETAN SIGN RDEL DKAR GCIG*/ + 0, /* U+000f1b: TIBETAN SIGN RDEL DKAR GNYIS*/ + 0, /* U+000f1c: TIBETAN SIGN RDEL DKAR GSUM*/ + 0, /* U+000f1d: TIBETAN SIGN RDEL NAG GCIG*/ + 0, /* U+000f1e: TIBETAN SIGN RDEL NAG GNYIS*/ + 0, /* U+000f1f: TIBETAN SIGN RDEL DKAR RDEL NAG*/ + RTUNI_DDIGIT, /* U+000f20: TIBETAN DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+000f21: TIBETAN DIGIT ONE*/ + RTUNI_DDIGIT, /* U+000f22: TIBETAN DIGIT TWO*/ + RTUNI_DDIGIT, /* U+000f23: TIBETAN DIGIT THREE*/ + RTUNI_DDIGIT, /* U+000f24: TIBETAN DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+000f25: TIBETAN DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+000f26: TIBETAN DIGIT SIX*/ + RTUNI_DDIGIT, /* U+000f27: TIBETAN DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+000f28: TIBETAN DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+000f29: TIBETAN DIGIT NINE*/ + 0, /* U+000f2a: TIBETAN DIGIT HALF ONE*/ + 0, /* U+000f2b: TIBETAN DIGIT HALF TWO*/ + 0, /* U+000f2c: TIBETAN DIGIT HALF THREE*/ + 0, /* U+000f2d: TIBETAN DIGIT HALF FOUR*/ + 0, /* U+000f2e: TIBETAN DIGIT HALF FIVE*/ + 0, /* U+000f2f: TIBETAN DIGIT HALF SIX*/ + 0, /* U+000f30: TIBETAN DIGIT HALF SEVEN*/ + 0, /* U+000f31: TIBETAN DIGIT HALF EIGHT*/ + 0, /* U+000f32: TIBETAN DIGIT HALF NINE*/ + 0, /* U+000f33: TIBETAN DIGIT HALF ZERO*/ + 0, /* U+000f34: TIBETAN MARK BSDUS RTAGS*/ + 0, /* U+000f35: TIBETAN MARK NGAS BZUNG NYI ZLA*/ + 0, /* U+000f36: TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN*/ + 0, /* U+000f37: TIBETAN MARK NGAS BZUNG SGOR RTAGS*/ + 0, /* U+000f38: TIBETAN MARK CHE MGO*/ + 0, /* U+000f39: TIBETAN MARK TSA -PHRU*/ + 0, /* U+000f3a: TIBETAN MARK GUG RTAGS GYON*/ + 0, /* U+000f3b: TIBETAN MARK GUG RTAGS GYAS*/ + 0, /* U+000f3c: TIBETAN MARK ANG KHANG GYON*/ + 0, /* U+000f3d: TIBETAN MARK ANG KHANG GYAS*/ + 0, /* U+000f3e: TIBETAN SIGN YAR TSHES*/ + 0, /* U+000f3f: TIBETAN SIGN MAR TSHES*/ + RTUNI_ALPHA, /* U+000f40: TIBETAN LETTER KA*/ + RTUNI_ALPHA, /* U+000f41: TIBETAN LETTER KHA*/ + RTUNI_ALPHA, /* U+000f42: TIBETAN LETTER GA*/ + RTUNI_ALPHA, /* U+000f43: TIBETAN LETTER GHA*/ + RTUNI_ALPHA, /* U+000f44: TIBETAN LETTER NGA*/ + RTUNI_ALPHA, /* U+000f45: TIBETAN LETTER CA*/ + RTUNI_ALPHA, /* U+000f46: TIBETAN LETTER CHA*/ + RTUNI_ALPHA, /* U+000f47: TIBETAN LETTER JA*/ + 0, /* U+000f48: */ + RTUNI_ALPHA, /* U+000f49: TIBETAN LETTER NYA*/ + RTUNI_ALPHA, /* U+000f4a: TIBETAN LETTER TTA*/ + RTUNI_ALPHA, /* U+000f4b: TIBETAN LETTER TTHA*/ + RTUNI_ALPHA, /* U+000f4c: TIBETAN LETTER DDA*/ + RTUNI_ALPHA, /* U+000f4d: TIBETAN LETTER DDHA*/ + RTUNI_ALPHA, /* U+000f4e: TIBETAN LETTER NNA*/ + RTUNI_ALPHA, /* U+000f4f: TIBETAN LETTER TA*/ + RTUNI_ALPHA, /* U+000f50: TIBETAN LETTER THA*/ + RTUNI_ALPHA, /* U+000f51: TIBETAN LETTER DA*/ + RTUNI_ALPHA, /* U+000f52: TIBETAN LETTER DHA*/ + RTUNI_ALPHA, /* U+000f53: TIBETAN LETTER NA*/ + RTUNI_ALPHA, /* U+000f54: TIBETAN LETTER PA*/ + RTUNI_ALPHA, /* U+000f55: TIBETAN LETTER PHA*/ + RTUNI_ALPHA, /* U+000f56: TIBETAN LETTER BA*/ + RTUNI_ALPHA, /* U+000f57: TIBETAN LETTER BHA*/ + RTUNI_ALPHA, /* U+000f58: TIBETAN LETTER MA*/ + RTUNI_ALPHA, /* U+000f59: TIBETAN LETTER TSA*/ + RTUNI_ALPHA, /* U+000f5a: TIBETAN LETTER TSHA*/ + RTUNI_ALPHA, /* U+000f5b: TIBETAN LETTER DZA*/ + RTUNI_ALPHA, /* U+000f5c: TIBETAN LETTER DZHA*/ + RTUNI_ALPHA, /* U+000f5d: TIBETAN LETTER WA*/ + RTUNI_ALPHA, /* U+000f5e: TIBETAN LETTER ZHA*/ + RTUNI_ALPHA, /* U+000f5f: TIBETAN LETTER ZA*/ + RTUNI_ALPHA, /* U+000f60: TIBETAN LETTER -A*/ + RTUNI_ALPHA, /* U+000f61: TIBETAN LETTER YA*/ + RTUNI_ALPHA, /* U+000f62: TIBETAN LETTER RA*/ + RTUNI_ALPHA, /* U+000f63: TIBETAN LETTER LA*/ + RTUNI_ALPHA, /* U+000f64: TIBETAN LETTER SHA*/ + RTUNI_ALPHA, /* U+000f65: TIBETAN LETTER SSA*/ + RTUNI_ALPHA, /* U+000f66: TIBETAN LETTER SA*/ + RTUNI_ALPHA, /* U+000f67: TIBETAN LETTER HA*/ + RTUNI_ALPHA, /* U+000f68: TIBETAN LETTER A*/ + RTUNI_ALPHA, /* U+000f69: TIBETAN LETTER KSSA*/ + RTUNI_ALPHA, /* U+000f6a: TIBETAN LETTER FIXED-FORM RA*/ + RTUNI_ALPHA, /* U+000f6b: TIBETAN LETTER KKA*/ + RTUNI_ALPHA, /* U+000f6c: TIBETAN LETTER RRA*/ + 0, /* U+000f6d: */ + 0, /* U+000f6e: */ + 0, /* U+000f6f: */ + 0, /* U+000f70: */ + RTUNI_ALPHA, /* U+000f71: TIBETAN VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+000f72: TIBETAN VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+000f73: TIBETAN VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+000f74: TIBETAN VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+000f75: TIBETAN VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+000f76: TIBETAN VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+000f77: TIBETAN VOWEL SIGN VOCALIC RR*/ + RTUNI_ALPHA, /* U+000f78: TIBETAN VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+000f79: TIBETAN VOWEL SIGN VOCALIC LL*/ + RTUNI_ALPHA, /* U+000f7a: TIBETAN VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+000f7b: TIBETAN VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+000f7c: TIBETAN VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+000f7d: TIBETAN VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+000f7e: TIBETAN SIGN RJES SU NGA RO*/ + RTUNI_ALPHA, /* U+000f7f: TIBETAN SIGN RNAM BCAD*/ + RTUNI_ALPHA, /* U+000f80: TIBETAN VOWEL SIGN REVERSED I*/ + RTUNI_ALPHA, /* U+000f81: TIBETAN VOWEL SIGN REVERSED II*/ + 0, /* U+000f82: TIBETAN SIGN NYI ZLA NAA DA*/ + 0, /* U+000f83: TIBETAN SIGN SNA LDAN*/ + 0, /* U+000f84: TIBETAN MARK HALANTA*/ + 0, /* U+000f85: TIBETAN MARK PALUTA*/ + 0, /* U+000f86: TIBETAN SIGN LCI RTAGS*/ + 0, /* U+000f87: TIBETAN SIGN YANG RTAGS*/ + RTUNI_ALPHA, /* U+000f88: TIBETAN SIGN LCE TSA CAN*/ + RTUNI_ALPHA, /* U+000f89: TIBETAN SIGN MCHU CAN*/ + RTUNI_ALPHA, /* U+000f8a: TIBETAN SIGN GRU CAN RGYINGS*/ + RTUNI_ALPHA, /* U+000f8b: TIBETAN SIGN GRU MED RGYINGS*/ + RTUNI_ALPHA, /* U+000f8c: TIBETAN SIGN INVERTED MCHU CAN*/ + RTUNI_ALPHA, /* U+000f8d: TIBETAN SUBJOINED SIGN LCE TSA CAN*/ + RTUNI_ALPHA, /* U+000f8e: TIBETAN SUBJOINED SIGN MCHU CAN*/ + RTUNI_ALPHA, /* U+000f8f: TIBETAN SUBJOINED SIGN INVERTED MCHU CAN*/ + RTUNI_ALPHA, /* U+000f90: TIBETAN SUBJOINED LETTER KA*/ + RTUNI_ALPHA, /* U+000f91: TIBETAN SUBJOINED LETTER KHA*/ + RTUNI_ALPHA, /* U+000f92: TIBETAN SUBJOINED LETTER GA*/ + RTUNI_ALPHA, /* U+000f93: TIBETAN SUBJOINED LETTER GHA*/ + RTUNI_ALPHA, /* U+000f94: TIBETAN SUBJOINED LETTER NGA*/ + RTUNI_ALPHA, /* U+000f95: TIBETAN SUBJOINED LETTER CA*/ + RTUNI_ALPHA, /* U+000f96: TIBETAN SUBJOINED LETTER CHA*/ + RTUNI_ALPHA, /* U+000f97: TIBETAN SUBJOINED LETTER JA*/ + 0, /* U+000f98: */ + RTUNI_ALPHA, /* U+000f99: TIBETAN SUBJOINED LETTER NYA*/ + RTUNI_ALPHA, /* U+000f9a: TIBETAN SUBJOINED LETTER TTA*/ + RTUNI_ALPHA, /* U+000f9b: TIBETAN SUBJOINED LETTER TTHA*/ + RTUNI_ALPHA, /* U+000f9c: TIBETAN SUBJOINED LETTER DDA*/ + RTUNI_ALPHA, /* U+000f9d: TIBETAN SUBJOINED LETTER DDHA*/ + RTUNI_ALPHA, /* U+000f9e: TIBETAN SUBJOINED LETTER NNA*/ + RTUNI_ALPHA, /* U+000f9f: TIBETAN SUBJOINED LETTER TA*/ + RTUNI_ALPHA, /* U+000fa0: TIBETAN SUBJOINED LETTER THA*/ + RTUNI_ALPHA, /* U+000fa1: TIBETAN SUBJOINED LETTER DA*/ + RTUNI_ALPHA, /* U+000fa2: TIBETAN SUBJOINED LETTER DHA*/ + RTUNI_ALPHA, /* U+000fa3: TIBETAN SUBJOINED LETTER NA*/ + RTUNI_ALPHA, /* U+000fa4: TIBETAN SUBJOINED LETTER PA*/ + RTUNI_ALPHA, /* U+000fa5: TIBETAN SUBJOINED LETTER PHA*/ + RTUNI_ALPHA, /* U+000fa6: TIBETAN SUBJOINED LETTER BA*/ + RTUNI_ALPHA, /* U+000fa7: TIBETAN SUBJOINED LETTER BHA*/ + RTUNI_ALPHA, /* U+000fa8: TIBETAN SUBJOINED LETTER MA*/ + RTUNI_ALPHA, /* U+000fa9: TIBETAN SUBJOINED LETTER TSA*/ + RTUNI_ALPHA, /* U+000faa: TIBETAN SUBJOINED LETTER TSHA*/ + RTUNI_ALPHA, /* U+000fab: TIBETAN SUBJOINED LETTER DZA*/ + RTUNI_ALPHA, /* U+000fac: TIBETAN SUBJOINED LETTER DZHA*/ + RTUNI_ALPHA, /* U+000fad: TIBETAN SUBJOINED LETTER WA*/ + RTUNI_ALPHA, /* U+000fae: TIBETAN SUBJOINED LETTER ZHA*/ + RTUNI_ALPHA, /* U+000faf: TIBETAN SUBJOINED LETTER ZA*/ + RTUNI_ALPHA, /* U+000fb0: TIBETAN SUBJOINED LETTER -A*/ + RTUNI_ALPHA, /* U+000fb1: TIBETAN SUBJOINED LETTER YA*/ + RTUNI_ALPHA, /* U+000fb2: TIBETAN SUBJOINED LETTER RA*/ + RTUNI_ALPHA, /* U+000fb3: TIBETAN SUBJOINED LETTER LA*/ + RTUNI_ALPHA, /* U+000fb4: TIBETAN SUBJOINED LETTER SHA*/ + RTUNI_ALPHA, /* U+000fb5: TIBETAN SUBJOINED LETTER SSA*/ + RTUNI_ALPHA, /* U+000fb6: TIBETAN SUBJOINED LETTER SA*/ + RTUNI_ALPHA, /* U+000fb7: TIBETAN SUBJOINED LETTER HA*/ + RTUNI_ALPHA, /* U+000fb8: TIBETAN SUBJOINED LETTER A*/ + RTUNI_ALPHA, /* U+000fb9: TIBETAN SUBJOINED LETTER KSSA*/ + RTUNI_ALPHA, /* U+000fba: TIBETAN SUBJOINED LETTER FIXED-FORM WA*/ + RTUNI_ALPHA, /* U+000fbb: TIBETAN SUBJOINED LETTER FIXED-FORM YA*/ + RTUNI_ALPHA, /* U+000fbc: TIBETAN SUBJOINED LETTER FIXED-FORM RA*/ + 0, /* U+000fbd: */ + 0, /* U+000fbe: TIBETAN KU RU KHA*/ + 0, /* U+000fbf: TIBETAN KU RU KHA BZHI MIG CAN*/ + 0, /* U+000fc0: TIBETAN CANTILLATION SIGN HEAVY BEAT*/ + 0, /* U+000fc1: TIBETAN CANTILLATION SIGN LIGHT BEAT*/ + 0, /* U+000fc2: TIBETAN CANTILLATION SIGN CANG TE-U*/ + 0, /* U+000fc3: TIBETAN CANTILLATION SIGN SBUB -CHAL*/ + 0, /* U+000fc4: TIBETAN SYMBOL DRIL BU*/ + 0, /* U+000fc5: TIBETAN SYMBOL RDO RJE*/ + 0, /* U+000fc6: TIBETAN SYMBOL PADMA GDAN*/ + 0, /* U+000fc7: TIBETAN SYMBOL RDO RJE RGYA GRAM*/ + 0, /* U+000fc8: TIBETAN SYMBOL PHUR PA*/ + 0, /* U+000fc9: TIBETAN SYMBOL NOR BU*/ + 0, /* U+000fca: TIBETAN SYMBOL NOR BU NYIS -KHYIL*/ + 0, /* U+000fcb: TIBETAN SYMBOL NOR BU GSUM -KHYIL*/ + 0, /* U+000fcc: TIBETAN SYMBOL NOR BU BZHI -KHYIL*/ + 0, /* U+000fcd: */ + 0, /* U+000fce: TIBETAN SIGN RDEL NAG RDEL DKAR*/ + 0, /* U+000fcf: TIBETAN SIGN RDEL NAG GSUM*/ + 0, /* U+000fd0: TIBETAN MARK BSKA- SHOG GI MGO RGYAN*/ + 0, /* U+000fd1: TIBETAN MARK MNYAM YIG GI MGO RGYAN*/ + 0, /* U+000fd2: TIBETAN MARK NYIS TSHEG*/ + 0, /* U+000fd3: TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA*/ + 0, /* U+000fd4: TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA*/ + 0, /* U+000fd5: RIGHT-FACING SVASTI SIGN*/ + 0, /* U+000fd6: LEFT-FACING SVASTI SIGN*/ + 0, /* U+000fd7: RIGHT-FACING SVASTI SIGN WITH DOTS*/ + 0, /* U+000fd8: LEFT-FACING SVASTI SIGN WITH DOTS*/ + 0, /* U+000fd9: TIBETAN MARK LEADING MCHAN RTAGS*/ + 0, /* U+000fda: TIBETAN MARK TRAILING MCHAN RTAGS*/ + 0, /* U+000fdb: */ + 0, /* U+000fdc: */ + 0, /* U+000fdd: */ + 0, /* U+000fde: */ + 0, /* U+000fdf: */ + 0, /* U+000fe0: */ + 0, /* U+000fe1: */ + 0, /* U+000fe2: */ + 0, /* U+000fe3: */ + 0, /* U+000fe4: */ + 0, /* U+000fe5: */ + 0, /* U+000fe6: */ + 0, /* U+000fe7: */ + 0, /* U+000fe8: */ + 0, /* U+000fe9: */ + 0, /* U+000fea: */ + 0, /* U+000feb: */ + 0, /* U+000fec: */ + 0, /* U+000fed: */ + 0, /* U+000fee: */ + 0, /* U+000fef: */ + 0, /* U+000ff0: */ + 0, /* U+000ff1: */ + 0, /* U+000ff2: */ + 0, /* U+000ff3: */ + 0, /* U+000ff4: */ + 0, /* U+000ff5: */ + 0, /* U+000ff6: */ + 0, /* U+000ff7: */ + 0, /* U+000ff8: */ + 0, /* U+000ff9: */ + 0, /* U+000ffa: */ + 0, /* U+000ffb: */ + 0, /* U+000ffc: */ + 0, /* U+000ffd: */ + 0, /* U+000ffe: */ + 0, /* U+000fff: */ + RTUNI_ALPHA, /* U+001000: MYANMAR LETTER KA*/ + RTUNI_ALPHA, /* U+001001: MYANMAR LETTER KHA*/ + RTUNI_ALPHA, /* U+001002: MYANMAR LETTER GA*/ + RTUNI_ALPHA, /* U+001003: MYANMAR LETTER GHA*/ + RTUNI_ALPHA, /* U+001004: MYANMAR LETTER NGA*/ + RTUNI_ALPHA, /* U+001005: MYANMAR LETTER CA*/ + RTUNI_ALPHA, /* U+001006: MYANMAR LETTER CHA*/ + RTUNI_ALPHA, /* U+001007: MYANMAR LETTER JA*/ + RTUNI_ALPHA, /* U+001008: MYANMAR LETTER JHA*/ + RTUNI_ALPHA, /* U+001009: MYANMAR LETTER NYA*/ + RTUNI_ALPHA, /* U+00100a: MYANMAR LETTER NNYA*/ + RTUNI_ALPHA, /* U+00100b: MYANMAR LETTER TTA*/ + RTUNI_ALPHA, /* U+00100c: MYANMAR LETTER TTHA*/ + RTUNI_ALPHA, /* U+00100d: MYANMAR LETTER DDA*/ + RTUNI_ALPHA, /* U+00100e: MYANMAR LETTER DDHA*/ + RTUNI_ALPHA, /* U+00100f: MYANMAR LETTER NNA*/ + RTUNI_ALPHA, /* U+001010: MYANMAR LETTER TA*/ + RTUNI_ALPHA, /* U+001011: MYANMAR LETTER THA*/ + RTUNI_ALPHA, /* U+001012: MYANMAR LETTER DA*/ + RTUNI_ALPHA, /* U+001013: MYANMAR LETTER DHA*/ + RTUNI_ALPHA, /* U+001014: MYANMAR LETTER NA*/ + RTUNI_ALPHA, /* U+001015: MYANMAR LETTER PA*/ + RTUNI_ALPHA, /* U+001016: MYANMAR LETTER PHA*/ + RTUNI_ALPHA, /* U+001017: MYANMAR LETTER BA*/ + RTUNI_ALPHA, /* U+001018: MYANMAR LETTER BHA*/ + RTUNI_ALPHA, /* U+001019: MYANMAR LETTER MA*/ + RTUNI_ALPHA, /* U+00101a: MYANMAR LETTER YA*/ + RTUNI_ALPHA, /* U+00101b: MYANMAR LETTER RA*/ + RTUNI_ALPHA, /* U+00101c: MYANMAR LETTER LA*/ + RTUNI_ALPHA, /* U+00101d: MYANMAR LETTER WA*/ + RTUNI_ALPHA, /* U+00101e: MYANMAR LETTER SA*/ + RTUNI_ALPHA, /* U+00101f: MYANMAR LETTER HA*/ + RTUNI_ALPHA, /* U+001020: MYANMAR LETTER LLA*/ + RTUNI_ALPHA, /* U+001021: MYANMAR LETTER A*/ + RTUNI_ALPHA, /* U+001022: MYANMAR LETTER SHAN A*/ + RTUNI_ALPHA, /* U+001023: MYANMAR LETTER I*/ + RTUNI_ALPHA, /* U+001024: MYANMAR LETTER II*/ + RTUNI_ALPHA, /* U+001025: MYANMAR LETTER U*/ + RTUNI_ALPHA, /* U+001026: MYANMAR LETTER UU*/ + RTUNI_ALPHA, /* U+001027: MYANMAR LETTER E*/ + RTUNI_ALPHA, /* U+001028: MYANMAR LETTER MON E*/ + RTUNI_ALPHA, /* U+001029: MYANMAR LETTER O*/ + RTUNI_ALPHA, /* U+00102a: MYANMAR LETTER AU*/ + RTUNI_ALPHA, /* U+00102b: MYANMAR VOWEL SIGN TALL AA*/ + RTUNI_ALPHA, /* U+00102c: MYANMAR VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+00102d: MYANMAR VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+00102e: MYANMAR VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+00102f: MYANMAR VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+001030: MYANMAR VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+001031: MYANMAR VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+001032: MYANMAR VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+001033: MYANMAR VOWEL SIGN MON II*/ + RTUNI_ALPHA, /* U+001034: MYANMAR VOWEL SIGN MON O*/ + RTUNI_ALPHA, /* U+001035: MYANMAR VOWEL SIGN E ABOVE*/ + RTUNI_ALPHA, /* U+001036: MYANMAR SIGN ANUSVARA*/ + 0, /* U+001037: MYANMAR SIGN DOT BELOW*/ + RTUNI_ALPHA, /* U+001038: MYANMAR SIGN VISARGA*/ + 0, /* U+001039: MYANMAR SIGN VIRAMA*/ + 0, /* U+00103a: MYANMAR SIGN ASAT*/ + RTUNI_ALPHA, /* U+00103b: MYANMAR CONSONANT SIGN MEDIAL YA*/ + RTUNI_ALPHA, /* U+00103c: MYANMAR CONSONANT SIGN MEDIAL RA*/ + RTUNI_ALPHA, /* U+00103d: MYANMAR CONSONANT SIGN MEDIAL WA*/ + RTUNI_ALPHA, /* U+00103e: MYANMAR CONSONANT SIGN MEDIAL HA*/ + RTUNI_ALPHA, /* U+00103f: MYANMAR LETTER GREAT SA*/ + RTUNI_DDIGIT, /* U+001040: MYANMAR DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001041: MYANMAR DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001042: MYANMAR DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001043: MYANMAR DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001044: MYANMAR DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001045: MYANMAR DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001046: MYANMAR DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001047: MYANMAR DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001048: MYANMAR DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001049: MYANMAR DIGIT NINE*/ + 0, /* U+00104a: MYANMAR SIGN LITTLE SECTION*/ + 0, /* U+00104b: MYANMAR SIGN SECTION*/ + 0, /* U+00104c: MYANMAR SYMBOL LOCATIVE*/ + 0, /* U+00104d: MYANMAR SYMBOL COMPLETED*/ + 0, /* U+00104e: MYANMAR SYMBOL AFOREMENTIONED*/ + 0, /* U+00104f: MYANMAR SYMBOL GENITIVE*/ + RTUNI_ALPHA, /* U+001050: MYANMAR LETTER SHA*/ + RTUNI_ALPHA, /* U+001051: MYANMAR LETTER SSA*/ + RTUNI_ALPHA, /* U+001052: MYANMAR LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+001053: MYANMAR LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+001054: MYANMAR LETTER VOCALIC L*/ + RTUNI_ALPHA, /* U+001055: MYANMAR LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+001056: MYANMAR VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+001057: MYANMAR VOWEL SIGN VOCALIC RR*/ + RTUNI_ALPHA, /* U+001058: MYANMAR VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+001059: MYANMAR VOWEL SIGN VOCALIC LL*/ + RTUNI_ALPHA, /* U+00105a: MYANMAR LETTER MON NGA*/ + RTUNI_ALPHA, /* U+00105b: MYANMAR LETTER MON JHA*/ + RTUNI_ALPHA, /* U+00105c: MYANMAR LETTER MON BBA*/ + RTUNI_ALPHA, /* U+00105d: MYANMAR LETTER MON BBE*/ + RTUNI_ALPHA, /* U+00105e: MYANMAR CONSONANT SIGN MON MEDIAL NA*/ + RTUNI_ALPHA, /* U+00105f: MYANMAR CONSONANT SIGN MON MEDIAL MA*/ + RTUNI_ALPHA, /* U+001060: MYANMAR CONSONANT SIGN MON MEDIAL LA*/ + RTUNI_ALPHA, /* U+001061: MYANMAR LETTER SGAW KAREN SHA*/ + RTUNI_ALPHA, /* U+001062: MYANMAR VOWEL SIGN SGAW KAREN EU*/ + 0, /* U+001063: MYANMAR TONE MARK SGAW KAREN HATHI*/ + 0, /* U+001064: MYANMAR TONE MARK SGAW KAREN KE PHO*/ + RTUNI_ALPHA, /* U+001065: MYANMAR LETTER WESTERN PWO KAREN THA*/ + RTUNI_ALPHA, /* U+001066: MYANMAR LETTER WESTERN PWO KAREN PWA*/ + RTUNI_ALPHA, /* U+001067: MYANMAR VOWEL SIGN WESTERN PWO KAREN EU*/ + RTUNI_ALPHA, /* U+001068: MYANMAR VOWEL SIGN WESTERN PWO KAREN UE*/ + 0, /* U+001069: MYANMAR SIGN WESTERN PWO KAREN TONE-1*/ + 0, /* U+00106a: MYANMAR SIGN WESTERN PWO KAREN TONE-2*/ + 0, /* U+00106b: MYANMAR SIGN WESTERN PWO KAREN TONE-3*/ + 0, /* U+00106c: MYANMAR SIGN WESTERN PWO KAREN TONE-4*/ + 0, /* U+00106d: MYANMAR SIGN WESTERN PWO KAREN TONE-5*/ + RTUNI_ALPHA, /* U+00106e: MYANMAR LETTER EASTERN PWO KAREN NNA*/ + RTUNI_ALPHA, /* U+00106f: MYANMAR LETTER EASTERN PWO KAREN YWA*/ + RTUNI_ALPHA, /* U+001070: MYANMAR LETTER EASTERN PWO KAREN GHWA*/ + RTUNI_ALPHA, /* U+001071: MYANMAR VOWEL SIGN GEBA KAREN I*/ + RTUNI_ALPHA, /* U+001072: MYANMAR VOWEL SIGN KAYAH OE*/ + RTUNI_ALPHA, /* U+001073: MYANMAR VOWEL SIGN KAYAH U*/ + RTUNI_ALPHA, /* U+001074: MYANMAR VOWEL SIGN KAYAH EE*/ + RTUNI_ALPHA, /* U+001075: MYANMAR LETTER SHAN KA*/ + RTUNI_ALPHA, /* U+001076: MYANMAR LETTER SHAN KHA*/ + RTUNI_ALPHA, /* U+001077: MYANMAR LETTER SHAN GA*/ + RTUNI_ALPHA, /* U+001078: MYANMAR LETTER SHAN CA*/ + RTUNI_ALPHA, /* U+001079: MYANMAR LETTER SHAN ZA*/ + RTUNI_ALPHA, /* U+00107a: MYANMAR LETTER SHAN NYA*/ + RTUNI_ALPHA, /* U+00107b: MYANMAR LETTER SHAN DA*/ + RTUNI_ALPHA, /* U+00107c: MYANMAR LETTER SHAN NA*/ + RTUNI_ALPHA, /* U+00107d: MYANMAR LETTER SHAN PHA*/ + RTUNI_ALPHA, /* U+00107e: MYANMAR LETTER SHAN FA*/ + RTUNI_ALPHA, /* U+00107f: MYANMAR LETTER SHAN BA*/ + RTUNI_ALPHA, /* U+001080: MYANMAR LETTER SHAN THA*/ + RTUNI_ALPHA, /* U+001081: MYANMAR LETTER SHAN HA*/ + RTUNI_ALPHA, /* U+001082: MYANMAR CONSONANT SIGN SHAN MEDIAL WA*/ + RTUNI_ALPHA, /* U+001083: MYANMAR VOWEL SIGN SHAN AA*/ + RTUNI_ALPHA, /* U+001084: MYANMAR VOWEL SIGN SHAN E*/ + RTUNI_ALPHA, /* U+001085: MYANMAR VOWEL SIGN SHAN E ABOVE*/ + RTUNI_ALPHA, /* U+001086: MYANMAR VOWEL SIGN SHAN FINAL Y*/ + 0, /* U+001087: MYANMAR SIGN SHAN TONE-2*/ + 0, /* U+001088: MYANMAR SIGN SHAN TONE-3*/ + 0, /* U+001089: MYANMAR SIGN SHAN TONE-5*/ + 0, /* U+00108a: MYANMAR SIGN SHAN TONE-6*/ + 0, /* U+00108b: MYANMAR SIGN SHAN COUNCIL TONE-2*/ + 0, /* U+00108c: MYANMAR SIGN SHAN COUNCIL TONE-3*/ + 0, /* U+00108d: MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE*/ + RTUNI_ALPHA, /* U+00108e: MYANMAR LETTER RUMAI PALAUNG FA*/ + 0, /* U+00108f: MYANMAR SIGN RUMAI PALAUNG TONE-5*/ + RTUNI_DDIGIT, /* U+001090: MYANMAR SHAN DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001091: MYANMAR SHAN DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001092: MYANMAR SHAN DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001093: MYANMAR SHAN DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001094: MYANMAR SHAN DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001095: MYANMAR SHAN DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001096: MYANMAR SHAN DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001097: MYANMAR SHAN DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001098: MYANMAR SHAN DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001099: MYANMAR SHAN DIGIT NINE*/ + 0, /* U+00109a: MYANMAR SIGN KHAMTI TONE-1*/ + 0, /* U+00109b: MYANMAR SIGN KHAMTI TONE-3*/ + RTUNI_ALPHA, /* U+00109c: MYANMAR VOWEL SIGN AITON A*/ + RTUNI_ALPHA, /* U+00109d: MYANMAR VOWEL SIGN AITON AI*/ + 0, /* U+00109e: MYANMAR SYMBOL SHAN ONE*/ + 0, /* U+00109f: MYANMAR SYMBOL SHAN EXCLAMATION*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a0: GEORGIAN CAPITAL LETTER AN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a1: GEORGIAN CAPITAL LETTER BAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a2: GEORGIAN CAPITAL LETTER GAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a3: GEORGIAN CAPITAL LETTER DON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a4: GEORGIAN CAPITAL LETTER EN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a5: GEORGIAN CAPITAL LETTER VIN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a6: GEORGIAN CAPITAL LETTER ZEN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a7: GEORGIAN CAPITAL LETTER TAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a8: GEORGIAN CAPITAL LETTER IN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010a9: GEORGIAN CAPITAL LETTER KAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010aa: GEORGIAN CAPITAL LETTER LAS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010ab: GEORGIAN CAPITAL LETTER MAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010ac: GEORGIAN CAPITAL LETTER NAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010ad: GEORGIAN CAPITAL LETTER ON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010ae: GEORGIAN CAPITAL LETTER PAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010af: GEORGIAN CAPITAL LETTER ZHAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b0: GEORGIAN CAPITAL LETTER RAE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b1: GEORGIAN CAPITAL LETTER SAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b2: GEORGIAN CAPITAL LETTER TAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b3: GEORGIAN CAPITAL LETTER UN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b4: GEORGIAN CAPITAL LETTER PHAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b5: GEORGIAN CAPITAL LETTER KHAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b6: GEORGIAN CAPITAL LETTER GHAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b7: GEORGIAN CAPITAL LETTER QAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b8: GEORGIAN CAPITAL LETTER SHIN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010b9: GEORGIAN CAPITAL LETTER CHIN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010ba: GEORGIAN CAPITAL LETTER CAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010bb: GEORGIAN CAPITAL LETTER JIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010bc: GEORGIAN CAPITAL LETTER CIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010bd: GEORGIAN CAPITAL LETTER CHAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010be: GEORGIAN CAPITAL LETTER XAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010bf: GEORGIAN CAPITAL LETTER JHAN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c0: GEORGIAN CAPITAL LETTER HAE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c1: GEORGIAN CAPITAL LETTER HE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c2: GEORGIAN CAPITAL LETTER HIE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c3: GEORGIAN CAPITAL LETTER WE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c4: GEORGIAN CAPITAL LETTER HAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c5: GEORGIAN CAPITAL LETTER HOE*/ + 0, /* U+0010c6: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010c7: GEORGIAN CAPITAL LETTER YN*/ + 0, /* U+0010c8: */ + 0, /* U+0010c9: */ + 0, /* U+0010ca: */ + 0, /* U+0010cb: */ + 0, /* U+0010cc: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0010cd: GEORGIAN CAPITAL LETTER AEN*/ + 0, /* U+0010ce: */ + 0, /* U+0010cf: */ + RTUNI_ALPHA, /* U+0010d0: GEORGIAN LETTER AN*/ + RTUNI_ALPHA, /* U+0010d1: GEORGIAN LETTER BAN*/ + RTUNI_ALPHA, /* U+0010d2: GEORGIAN LETTER GAN*/ + RTUNI_ALPHA, /* U+0010d3: GEORGIAN LETTER DON*/ + RTUNI_ALPHA, /* U+0010d4: GEORGIAN LETTER EN*/ + RTUNI_ALPHA, /* U+0010d5: GEORGIAN LETTER VIN*/ + RTUNI_ALPHA, /* U+0010d6: GEORGIAN LETTER ZEN*/ + RTUNI_ALPHA, /* U+0010d7: GEORGIAN LETTER TAN*/ + RTUNI_ALPHA, /* U+0010d8: GEORGIAN LETTER IN*/ + RTUNI_ALPHA, /* U+0010d9: GEORGIAN LETTER KAN*/ + RTUNI_ALPHA, /* U+0010da: GEORGIAN LETTER LAS*/ + RTUNI_ALPHA, /* U+0010db: GEORGIAN LETTER MAN*/ + RTUNI_ALPHA, /* U+0010dc: GEORGIAN LETTER NAR*/ + RTUNI_ALPHA, /* U+0010dd: GEORGIAN LETTER ON*/ + RTUNI_ALPHA, /* U+0010de: GEORGIAN LETTER PAR*/ + RTUNI_ALPHA, /* U+0010df: GEORGIAN LETTER ZHAR*/ + RTUNI_ALPHA, /* U+0010e0: GEORGIAN LETTER RAE*/ + RTUNI_ALPHA, /* U+0010e1: GEORGIAN LETTER SAN*/ + RTUNI_ALPHA, /* U+0010e2: GEORGIAN LETTER TAR*/ + RTUNI_ALPHA, /* U+0010e3: GEORGIAN LETTER UN*/ + RTUNI_ALPHA, /* U+0010e4: GEORGIAN LETTER PHAR*/ + RTUNI_ALPHA, /* U+0010e5: GEORGIAN LETTER KHAR*/ + RTUNI_ALPHA, /* U+0010e6: GEORGIAN LETTER GHAN*/ + RTUNI_ALPHA, /* U+0010e7: GEORGIAN LETTER QAR*/ + RTUNI_ALPHA, /* U+0010e8: GEORGIAN LETTER SHIN*/ + RTUNI_ALPHA, /* U+0010e9: GEORGIAN LETTER CHIN*/ + RTUNI_ALPHA, /* U+0010ea: GEORGIAN LETTER CAN*/ + RTUNI_ALPHA, /* U+0010eb: GEORGIAN LETTER JIL*/ + RTUNI_ALPHA, /* U+0010ec: GEORGIAN LETTER CIL*/ + RTUNI_ALPHA, /* U+0010ed: GEORGIAN LETTER CHAR*/ + RTUNI_ALPHA, /* U+0010ee: GEORGIAN LETTER XAN*/ + RTUNI_ALPHA, /* U+0010ef: GEORGIAN LETTER JHAN*/ + RTUNI_ALPHA, /* U+0010f0: GEORGIAN LETTER HAE*/ + RTUNI_ALPHA, /* U+0010f1: GEORGIAN LETTER HE*/ + RTUNI_ALPHA, /* U+0010f2: GEORGIAN LETTER HIE*/ + RTUNI_ALPHA, /* U+0010f3: GEORGIAN LETTER WE*/ + RTUNI_ALPHA, /* U+0010f4: GEORGIAN LETTER HAR*/ + RTUNI_ALPHA, /* U+0010f5: GEORGIAN LETTER HOE*/ + RTUNI_ALPHA, /* U+0010f6: GEORGIAN LETTER FI*/ + RTUNI_ALPHA, /* U+0010f7: GEORGIAN LETTER YN*/ + RTUNI_ALPHA, /* U+0010f8: GEORGIAN LETTER ELIFI*/ + RTUNI_ALPHA, /* U+0010f9: GEORGIAN LETTER TURNED GAN*/ + RTUNI_ALPHA, /* U+0010fa: GEORGIAN LETTER AIN*/ + 0, /* U+0010fb: GEORGIAN PARAGRAPH SEPARATOR*/ + RTUNI_ALPHA, /* U+0010fc: MODIFIER LETTER GEORGIAN NAR*/ + RTUNI_ALPHA, /* U+0010fd: GEORGIAN LETTER AEN*/ + RTUNI_ALPHA, /* U+0010fe: GEORGIAN LETTER HARD SIGN*/ + RTUNI_ALPHA, /* U+0010ff: GEORGIAN LETTER LABIAL SIGN*/ + RTUNI_ALPHA, /* U+001100: HANGUL CHOSEONG KIYEOK*/ + RTUNI_ALPHA, /* U+001101: HANGUL CHOSEONG SSANGKIYEOK*/ + RTUNI_ALPHA, /* U+001102: HANGUL CHOSEONG NIEUN*/ + RTUNI_ALPHA, /* U+001103: HANGUL CHOSEONG TIKEUT*/ + RTUNI_ALPHA, /* U+001104: HANGUL CHOSEONG SSANGTIKEUT*/ + RTUNI_ALPHA, /* U+001105: HANGUL CHOSEONG RIEUL*/ + RTUNI_ALPHA, /* U+001106: HANGUL CHOSEONG MIEUM*/ + RTUNI_ALPHA, /* U+001107: HANGUL CHOSEONG PIEUP*/ + RTUNI_ALPHA, /* U+001108: HANGUL CHOSEONG SSANGPIEUP*/ + RTUNI_ALPHA, /* U+001109: HANGUL CHOSEONG SIOS*/ + RTUNI_ALPHA, /* U+00110a: HANGUL CHOSEONG SSANGSIOS*/ + RTUNI_ALPHA, /* U+00110b: HANGUL CHOSEONG IEUNG*/ + RTUNI_ALPHA, /* U+00110c: HANGUL CHOSEONG CIEUC*/ + RTUNI_ALPHA, /* U+00110d: HANGUL CHOSEONG SSANGCIEUC*/ + RTUNI_ALPHA, /* U+00110e: HANGUL CHOSEONG CHIEUCH*/ + RTUNI_ALPHA, /* U+00110f: HANGUL CHOSEONG KHIEUKH*/ + RTUNI_ALPHA, /* U+001110: HANGUL CHOSEONG THIEUTH*/ + RTUNI_ALPHA, /* U+001111: HANGUL CHOSEONG PHIEUPH*/ + RTUNI_ALPHA, /* U+001112: HANGUL CHOSEONG HIEUH*/ + RTUNI_ALPHA, /* U+001113: HANGUL CHOSEONG NIEUN-KIYEOK*/ + RTUNI_ALPHA, /* U+001114: HANGUL CHOSEONG SSANGNIEUN*/ + RTUNI_ALPHA, /* U+001115: HANGUL CHOSEONG NIEUN-TIKEUT*/ + RTUNI_ALPHA, /* U+001116: HANGUL CHOSEONG NIEUN-PIEUP*/ + RTUNI_ALPHA, /* U+001117: HANGUL CHOSEONG TIKEUT-KIYEOK*/ + RTUNI_ALPHA, /* U+001118: HANGUL CHOSEONG RIEUL-NIEUN*/ + RTUNI_ALPHA, /* U+001119: HANGUL CHOSEONG SSANGRIEUL*/ + RTUNI_ALPHA, /* U+00111a: HANGUL CHOSEONG RIEUL-HIEUH*/ + RTUNI_ALPHA, /* U+00111b: HANGUL CHOSEONG KAPYEOUNRIEUL*/ + RTUNI_ALPHA, /* U+00111c: HANGUL CHOSEONG MIEUM-PIEUP*/ + RTUNI_ALPHA, /* U+00111d: HANGUL CHOSEONG KAPYEOUNMIEUM*/ + RTUNI_ALPHA, /* U+00111e: HANGUL CHOSEONG PIEUP-KIYEOK*/ + RTUNI_ALPHA, /* U+00111f: HANGUL CHOSEONG PIEUP-NIEUN*/ + RTUNI_ALPHA, /* U+001120: HANGUL CHOSEONG PIEUP-TIKEUT*/ + RTUNI_ALPHA, /* U+001121: HANGUL CHOSEONG PIEUP-SIOS*/ + RTUNI_ALPHA, /* U+001122: HANGUL CHOSEONG PIEUP-SIOS-KIYEOK*/ + RTUNI_ALPHA, /* U+001123: HANGUL CHOSEONG PIEUP-SIOS-TIKEUT*/ + RTUNI_ALPHA, /* U+001124: HANGUL CHOSEONG PIEUP-SIOS-PIEUP*/ + RTUNI_ALPHA, /* U+001125: HANGUL CHOSEONG PIEUP-SSANGSIOS*/ + RTUNI_ALPHA, /* U+001126: HANGUL CHOSEONG PIEUP-SIOS-CIEUC*/ + RTUNI_ALPHA, /* U+001127: HANGUL CHOSEONG PIEUP-CIEUC*/ + RTUNI_ALPHA, /* U+001128: HANGUL CHOSEONG PIEUP-CHIEUCH*/ + RTUNI_ALPHA, /* U+001129: HANGUL CHOSEONG PIEUP-THIEUTH*/ + RTUNI_ALPHA, /* U+00112a: HANGUL CHOSEONG PIEUP-PHIEUPH*/ + RTUNI_ALPHA, /* U+00112b: HANGUL CHOSEONG KAPYEOUNPIEUP*/ + RTUNI_ALPHA, /* U+00112c: HANGUL CHOSEONG KAPYEOUNSSANGPIEUP*/ + RTUNI_ALPHA, /* U+00112d: HANGUL CHOSEONG SIOS-KIYEOK*/ + RTUNI_ALPHA, /* U+00112e: HANGUL CHOSEONG SIOS-NIEUN*/ + RTUNI_ALPHA, /* U+00112f: HANGUL CHOSEONG SIOS-TIKEUT*/ + RTUNI_ALPHA, /* U+001130: HANGUL CHOSEONG SIOS-RIEUL*/ + RTUNI_ALPHA, /* U+001131: HANGUL CHOSEONG SIOS-MIEUM*/ + RTUNI_ALPHA, /* U+001132: HANGUL CHOSEONG SIOS-PIEUP*/ + RTUNI_ALPHA, /* U+001133: HANGUL CHOSEONG SIOS-PIEUP-KIYEOK*/ + RTUNI_ALPHA, /* U+001134: HANGUL CHOSEONG SIOS-SSANGSIOS*/ + RTUNI_ALPHA, /* U+001135: HANGUL CHOSEONG SIOS-IEUNG*/ + RTUNI_ALPHA, /* U+001136: HANGUL CHOSEONG SIOS-CIEUC*/ + RTUNI_ALPHA, /* U+001137: HANGUL CHOSEONG SIOS-CHIEUCH*/ + RTUNI_ALPHA, /* U+001138: HANGUL CHOSEONG SIOS-KHIEUKH*/ + RTUNI_ALPHA, /* U+001139: HANGUL CHOSEONG SIOS-THIEUTH*/ + RTUNI_ALPHA, /* U+00113a: HANGUL CHOSEONG SIOS-PHIEUPH*/ + RTUNI_ALPHA, /* U+00113b: HANGUL CHOSEONG SIOS-HIEUH*/ + RTUNI_ALPHA, /* U+00113c: HANGUL CHOSEONG CHITUEUMSIOS*/ + RTUNI_ALPHA, /* U+00113d: HANGUL CHOSEONG CHITUEUMSSANGSIOS*/ + RTUNI_ALPHA, /* U+00113e: HANGUL CHOSEONG CEONGCHIEUMSIOS*/ + RTUNI_ALPHA, /* U+00113f: HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS*/ + RTUNI_ALPHA, /* U+001140: HANGUL CHOSEONG PANSIOS*/ + RTUNI_ALPHA, /* U+001141: HANGUL CHOSEONG IEUNG-KIYEOK*/ + RTUNI_ALPHA, /* U+001142: HANGUL CHOSEONG IEUNG-TIKEUT*/ + RTUNI_ALPHA, /* U+001143: HANGUL CHOSEONG IEUNG-MIEUM*/ + RTUNI_ALPHA, /* U+001144: HANGUL CHOSEONG IEUNG-PIEUP*/ + RTUNI_ALPHA, /* U+001145: HANGUL CHOSEONG IEUNG-SIOS*/ + RTUNI_ALPHA, /* U+001146: HANGUL CHOSEONG IEUNG-PANSIOS*/ + RTUNI_ALPHA, /* U+001147: HANGUL CHOSEONG SSANGIEUNG*/ + RTUNI_ALPHA, /* U+001148: HANGUL CHOSEONG IEUNG-CIEUC*/ + RTUNI_ALPHA, /* U+001149: HANGUL CHOSEONG IEUNG-CHIEUCH*/ + RTUNI_ALPHA, /* U+00114a: HANGUL CHOSEONG IEUNG-THIEUTH*/ + RTUNI_ALPHA, /* U+00114b: HANGUL CHOSEONG IEUNG-PHIEUPH*/ + RTUNI_ALPHA, /* U+00114c: HANGUL CHOSEONG YESIEUNG*/ + RTUNI_ALPHA, /* U+00114d: HANGUL CHOSEONG CIEUC-IEUNG*/ + RTUNI_ALPHA, /* U+00114e: HANGUL CHOSEONG CHITUEUMCIEUC*/ + RTUNI_ALPHA, /* U+00114f: HANGUL CHOSEONG CHITUEUMSSANGCIEUC*/ + RTUNI_ALPHA, /* U+001150: HANGUL CHOSEONG CEONGCHIEUMCIEUC*/ + RTUNI_ALPHA, /* U+001151: HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC*/ + RTUNI_ALPHA, /* U+001152: HANGUL CHOSEONG CHIEUCH-KHIEUKH*/ + RTUNI_ALPHA, /* U+001153: HANGUL CHOSEONG CHIEUCH-HIEUH*/ + RTUNI_ALPHA, /* U+001154: HANGUL CHOSEONG CHITUEUMCHIEUCH*/ + RTUNI_ALPHA, /* U+001155: HANGUL CHOSEONG CEONGCHIEUMCHIEUCH*/ + RTUNI_ALPHA, /* U+001156: HANGUL CHOSEONG PHIEUPH-PIEUP*/ + RTUNI_ALPHA, /* U+001157: HANGUL CHOSEONG KAPYEOUNPHIEUPH*/ + RTUNI_ALPHA, /* U+001158: HANGUL CHOSEONG SSANGHIEUH*/ + RTUNI_ALPHA, /* U+001159: HANGUL CHOSEONG YEORINHIEUH*/ + RTUNI_ALPHA, /* U+00115a: HANGUL CHOSEONG KIYEOK-TIKEUT*/ + RTUNI_ALPHA, /* U+00115b: HANGUL CHOSEONG NIEUN-SIOS*/ + RTUNI_ALPHA, /* U+00115c: HANGUL CHOSEONG NIEUN-CIEUC*/ + RTUNI_ALPHA, /* U+00115d: HANGUL CHOSEONG NIEUN-HIEUH*/ + RTUNI_ALPHA, /* U+00115e: HANGUL CHOSEONG TIKEUT-RIEUL*/ + RTUNI_ALPHA, /* U+00115f: HANGUL CHOSEONG FILLER*/ + RTUNI_ALPHA, /* U+001160: HANGUL JUNGSEONG FILLER*/ + RTUNI_ALPHA, /* U+001161: HANGUL JUNGSEONG A*/ + RTUNI_ALPHA, /* U+001162: HANGUL JUNGSEONG AE*/ + RTUNI_ALPHA, /* U+001163: HANGUL JUNGSEONG YA*/ + RTUNI_ALPHA, /* U+001164: HANGUL JUNGSEONG YAE*/ + RTUNI_ALPHA, /* U+001165: HANGUL JUNGSEONG EO*/ + RTUNI_ALPHA, /* U+001166: HANGUL JUNGSEONG E*/ + RTUNI_ALPHA, /* U+001167: HANGUL JUNGSEONG YEO*/ + RTUNI_ALPHA, /* U+001168: HANGUL JUNGSEONG YE*/ + RTUNI_ALPHA, /* U+001169: HANGUL JUNGSEONG O*/ + RTUNI_ALPHA, /* U+00116a: HANGUL JUNGSEONG WA*/ + RTUNI_ALPHA, /* U+00116b: HANGUL JUNGSEONG WAE*/ + RTUNI_ALPHA, /* U+00116c: HANGUL JUNGSEONG OE*/ + RTUNI_ALPHA, /* U+00116d: HANGUL JUNGSEONG YO*/ + RTUNI_ALPHA, /* U+00116e: HANGUL JUNGSEONG U*/ + RTUNI_ALPHA, /* U+00116f: HANGUL JUNGSEONG WEO*/ + RTUNI_ALPHA, /* U+001170: HANGUL JUNGSEONG WE*/ + RTUNI_ALPHA, /* U+001171: HANGUL JUNGSEONG WI*/ + RTUNI_ALPHA, /* U+001172: HANGUL JUNGSEONG YU*/ + RTUNI_ALPHA, /* U+001173: HANGUL JUNGSEONG EU*/ + RTUNI_ALPHA, /* U+001174: HANGUL JUNGSEONG YI*/ + RTUNI_ALPHA, /* U+001175: HANGUL JUNGSEONG I*/ + RTUNI_ALPHA, /* U+001176: HANGUL JUNGSEONG A-O*/ + RTUNI_ALPHA, /* U+001177: HANGUL JUNGSEONG A-U*/ + RTUNI_ALPHA, /* U+001178: HANGUL JUNGSEONG YA-O*/ + RTUNI_ALPHA, /* U+001179: HANGUL JUNGSEONG YA-YO*/ + RTUNI_ALPHA, /* U+00117a: HANGUL JUNGSEONG EO-O*/ + RTUNI_ALPHA, /* U+00117b: HANGUL JUNGSEONG EO-U*/ + RTUNI_ALPHA, /* U+00117c: HANGUL JUNGSEONG EO-EU*/ + RTUNI_ALPHA, /* U+00117d: HANGUL JUNGSEONG YEO-O*/ + RTUNI_ALPHA, /* U+00117e: HANGUL JUNGSEONG YEO-U*/ + RTUNI_ALPHA, /* U+00117f: HANGUL JUNGSEONG O-EO*/ + RTUNI_ALPHA, /* U+001180: HANGUL JUNGSEONG O-E*/ + RTUNI_ALPHA, /* U+001181: HANGUL JUNGSEONG O-YE*/ + RTUNI_ALPHA, /* U+001182: HANGUL JUNGSEONG O-O*/ + RTUNI_ALPHA, /* U+001183: HANGUL JUNGSEONG O-U*/ + RTUNI_ALPHA, /* U+001184: HANGUL JUNGSEONG YO-YA*/ + RTUNI_ALPHA, /* U+001185: HANGUL JUNGSEONG YO-YAE*/ + RTUNI_ALPHA, /* U+001186: HANGUL JUNGSEONG YO-YEO*/ + RTUNI_ALPHA, /* U+001187: HANGUL JUNGSEONG YO-O*/ + RTUNI_ALPHA, /* U+001188: HANGUL JUNGSEONG YO-I*/ + RTUNI_ALPHA, /* U+001189: HANGUL JUNGSEONG U-A*/ + RTUNI_ALPHA, /* U+00118a: HANGUL JUNGSEONG U-AE*/ + RTUNI_ALPHA, /* U+00118b: HANGUL JUNGSEONG U-EO-EU*/ + RTUNI_ALPHA, /* U+00118c: HANGUL JUNGSEONG U-YE*/ + RTUNI_ALPHA, /* U+00118d: HANGUL JUNGSEONG U-U*/ + RTUNI_ALPHA, /* U+00118e: HANGUL JUNGSEONG YU-A*/ + RTUNI_ALPHA, /* U+00118f: HANGUL JUNGSEONG YU-EO*/ + RTUNI_ALPHA, /* U+001190: HANGUL JUNGSEONG YU-E*/ + RTUNI_ALPHA, /* U+001191: HANGUL JUNGSEONG YU-YEO*/ + RTUNI_ALPHA, /* U+001192: HANGUL JUNGSEONG YU-YE*/ + RTUNI_ALPHA, /* U+001193: HANGUL JUNGSEONG YU-U*/ + RTUNI_ALPHA, /* U+001194: HANGUL JUNGSEONG YU-I*/ + RTUNI_ALPHA, /* U+001195: HANGUL JUNGSEONG EU-U*/ + RTUNI_ALPHA, /* U+001196: HANGUL JUNGSEONG EU-EU*/ + RTUNI_ALPHA, /* U+001197: HANGUL JUNGSEONG YI-U*/ + RTUNI_ALPHA, /* U+001198: HANGUL JUNGSEONG I-A*/ + RTUNI_ALPHA, /* U+001199: HANGUL JUNGSEONG I-YA*/ + RTUNI_ALPHA, /* U+00119a: HANGUL JUNGSEONG I-O*/ + RTUNI_ALPHA, /* U+00119b: HANGUL JUNGSEONG I-U*/ + RTUNI_ALPHA, /* U+00119c: HANGUL JUNGSEONG I-EU*/ + RTUNI_ALPHA, /* U+00119d: HANGUL JUNGSEONG I-ARAEA*/ + RTUNI_ALPHA, /* U+00119e: HANGUL JUNGSEONG ARAEA*/ + RTUNI_ALPHA, /* U+00119f: HANGUL JUNGSEONG ARAEA-EO*/ + RTUNI_ALPHA, /* U+0011a0: HANGUL JUNGSEONG ARAEA-U*/ + RTUNI_ALPHA, /* U+0011a1: HANGUL JUNGSEONG ARAEA-I*/ + RTUNI_ALPHA, /* U+0011a2: HANGUL JUNGSEONG SSANGARAEA*/ + RTUNI_ALPHA, /* U+0011a3: HANGUL JUNGSEONG A-EU*/ + RTUNI_ALPHA, /* U+0011a4: HANGUL JUNGSEONG YA-U*/ + RTUNI_ALPHA, /* U+0011a5: HANGUL JUNGSEONG YEO-YA*/ + RTUNI_ALPHA, /* U+0011a6: HANGUL JUNGSEONG O-YA*/ + RTUNI_ALPHA, /* U+0011a7: HANGUL JUNGSEONG O-YAE*/ + RTUNI_ALPHA, /* U+0011a8: HANGUL JONGSEONG KIYEOK*/ + RTUNI_ALPHA, /* U+0011a9: HANGUL JONGSEONG SSANGKIYEOK*/ + RTUNI_ALPHA, /* U+0011aa: HANGUL JONGSEONG KIYEOK-SIOS*/ + RTUNI_ALPHA, /* U+0011ab: HANGUL JONGSEONG NIEUN*/ + RTUNI_ALPHA, /* U+0011ac: HANGUL JONGSEONG NIEUN-CIEUC*/ + RTUNI_ALPHA, /* U+0011ad: HANGUL JONGSEONG NIEUN-HIEUH*/ + RTUNI_ALPHA, /* U+0011ae: HANGUL JONGSEONG TIKEUT*/ + RTUNI_ALPHA, /* U+0011af: HANGUL JONGSEONG RIEUL*/ + RTUNI_ALPHA, /* U+0011b0: HANGUL JONGSEONG RIEUL-KIYEOK*/ + RTUNI_ALPHA, /* U+0011b1: HANGUL JONGSEONG RIEUL-MIEUM*/ + RTUNI_ALPHA, /* U+0011b2: HANGUL JONGSEONG RIEUL-PIEUP*/ + RTUNI_ALPHA, /* U+0011b3: HANGUL JONGSEONG RIEUL-SIOS*/ + RTUNI_ALPHA, /* U+0011b4: HANGUL JONGSEONG RIEUL-THIEUTH*/ + RTUNI_ALPHA, /* U+0011b5: HANGUL JONGSEONG RIEUL-PHIEUPH*/ + RTUNI_ALPHA, /* U+0011b6: HANGUL JONGSEONG RIEUL-HIEUH*/ + RTUNI_ALPHA, /* U+0011b7: HANGUL JONGSEONG MIEUM*/ + RTUNI_ALPHA, /* U+0011b8: HANGUL JONGSEONG PIEUP*/ + RTUNI_ALPHA, /* U+0011b9: HANGUL JONGSEONG PIEUP-SIOS*/ + RTUNI_ALPHA, /* U+0011ba: HANGUL JONGSEONG SIOS*/ + RTUNI_ALPHA, /* U+0011bb: HANGUL JONGSEONG SSANGSIOS*/ + RTUNI_ALPHA, /* U+0011bc: HANGUL JONGSEONG IEUNG*/ + RTUNI_ALPHA, /* U+0011bd: HANGUL JONGSEONG CIEUC*/ + RTUNI_ALPHA, /* U+0011be: HANGUL JONGSEONG CHIEUCH*/ + RTUNI_ALPHA, /* U+0011bf: HANGUL JONGSEONG KHIEUKH*/ + RTUNI_ALPHA, /* U+0011c0: HANGUL JONGSEONG THIEUTH*/ + RTUNI_ALPHA, /* U+0011c1: HANGUL JONGSEONG PHIEUPH*/ + RTUNI_ALPHA, /* U+0011c2: HANGUL JONGSEONG HIEUH*/ + RTUNI_ALPHA, /* U+0011c3: HANGUL JONGSEONG KIYEOK-RIEUL*/ + RTUNI_ALPHA, /* U+0011c4: HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK*/ + RTUNI_ALPHA, /* U+0011c5: HANGUL JONGSEONG NIEUN-KIYEOK*/ + RTUNI_ALPHA, /* U+0011c6: HANGUL JONGSEONG NIEUN-TIKEUT*/ + RTUNI_ALPHA, /* U+0011c7: HANGUL JONGSEONG NIEUN-SIOS*/ + RTUNI_ALPHA, /* U+0011c8: HANGUL JONGSEONG NIEUN-PANSIOS*/ + RTUNI_ALPHA, /* U+0011c9: HANGUL JONGSEONG NIEUN-THIEUTH*/ + RTUNI_ALPHA, /* U+0011ca: HANGUL JONGSEONG TIKEUT-KIYEOK*/ + RTUNI_ALPHA, /* U+0011cb: HANGUL JONGSEONG TIKEUT-RIEUL*/ + RTUNI_ALPHA, /* U+0011cc: HANGUL JONGSEONG RIEUL-KIYEOK-SIOS*/ + RTUNI_ALPHA, /* U+0011cd: HANGUL JONGSEONG RIEUL-NIEUN*/ + RTUNI_ALPHA, /* U+0011ce: HANGUL JONGSEONG RIEUL-TIKEUT*/ + RTUNI_ALPHA, /* U+0011cf: HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH*/ + RTUNI_ALPHA, /* U+0011d0: HANGUL JONGSEONG SSANGRIEUL*/ + RTUNI_ALPHA, /* U+0011d1: HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK*/ + RTUNI_ALPHA, /* U+0011d2: HANGUL JONGSEONG RIEUL-MIEUM-SIOS*/ + RTUNI_ALPHA, /* U+0011d3: HANGUL JONGSEONG RIEUL-PIEUP-SIOS*/ + RTUNI_ALPHA, /* U+0011d4: HANGUL JONGSEONG RIEUL-PIEUP-HIEUH*/ + RTUNI_ALPHA, /* U+0011d5: HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP*/ + RTUNI_ALPHA, /* U+0011d6: HANGUL JONGSEONG RIEUL-SSANGSIOS*/ + RTUNI_ALPHA, /* U+0011d7: HANGUL JONGSEONG RIEUL-PANSIOS*/ + RTUNI_ALPHA, /* U+0011d8: HANGUL JONGSEONG RIEUL-KHIEUKH*/ + RTUNI_ALPHA, /* U+0011d9: HANGUL JONGSEONG RIEUL-YEORINHIEUH*/ + RTUNI_ALPHA, /* U+0011da: HANGUL JONGSEONG MIEUM-KIYEOK*/ + RTUNI_ALPHA, /* U+0011db: HANGUL JONGSEONG MIEUM-RIEUL*/ + RTUNI_ALPHA, /* U+0011dc: HANGUL JONGSEONG MIEUM-PIEUP*/ + RTUNI_ALPHA, /* U+0011dd: HANGUL JONGSEONG MIEUM-SIOS*/ + RTUNI_ALPHA, /* U+0011de: HANGUL JONGSEONG MIEUM-SSANGSIOS*/ + RTUNI_ALPHA, /* U+0011df: HANGUL JONGSEONG MIEUM-PANSIOS*/ + RTUNI_ALPHA, /* U+0011e0: HANGUL JONGSEONG MIEUM-CHIEUCH*/ + RTUNI_ALPHA, /* U+0011e1: HANGUL JONGSEONG MIEUM-HIEUH*/ + RTUNI_ALPHA, /* U+0011e2: HANGUL JONGSEONG KAPYEOUNMIEUM*/ + RTUNI_ALPHA, /* U+0011e3: HANGUL JONGSEONG PIEUP-RIEUL*/ + RTUNI_ALPHA, /* U+0011e4: HANGUL JONGSEONG PIEUP-PHIEUPH*/ + RTUNI_ALPHA, /* U+0011e5: HANGUL JONGSEONG PIEUP-HIEUH*/ + RTUNI_ALPHA, /* U+0011e6: HANGUL JONGSEONG KAPYEOUNPIEUP*/ + RTUNI_ALPHA, /* U+0011e7: HANGUL JONGSEONG SIOS-KIYEOK*/ + RTUNI_ALPHA, /* U+0011e8: HANGUL JONGSEONG SIOS-TIKEUT*/ + RTUNI_ALPHA, /* U+0011e9: HANGUL JONGSEONG SIOS-RIEUL*/ + RTUNI_ALPHA, /* U+0011ea: HANGUL JONGSEONG SIOS-PIEUP*/ + RTUNI_ALPHA, /* U+0011eb: HANGUL JONGSEONG PANSIOS*/ + RTUNI_ALPHA, /* U+0011ec: HANGUL JONGSEONG IEUNG-KIYEOK*/ + RTUNI_ALPHA, /* U+0011ed: HANGUL JONGSEONG IEUNG-SSANGKIYEOK*/ + RTUNI_ALPHA, /* U+0011ee: HANGUL JONGSEONG SSANGIEUNG*/ + RTUNI_ALPHA, /* U+0011ef: HANGUL JONGSEONG IEUNG-KHIEUKH*/ + RTUNI_ALPHA, /* U+0011f0: HANGUL JONGSEONG YESIEUNG*/ + RTUNI_ALPHA, /* U+0011f1: HANGUL JONGSEONG YESIEUNG-SIOS*/ + RTUNI_ALPHA, /* U+0011f2: HANGUL JONGSEONG YESIEUNG-PANSIOS*/ + RTUNI_ALPHA, /* U+0011f3: HANGUL JONGSEONG PHIEUPH-PIEUP*/ + RTUNI_ALPHA, /* U+0011f4: HANGUL JONGSEONG KAPYEOUNPHIEUPH*/ + RTUNI_ALPHA, /* U+0011f5: HANGUL JONGSEONG HIEUH-NIEUN*/ + RTUNI_ALPHA, /* U+0011f6: HANGUL JONGSEONG HIEUH-RIEUL*/ + RTUNI_ALPHA, /* U+0011f7: HANGUL JONGSEONG HIEUH-MIEUM*/ + RTUNI_ALPHA, /* U+0011f8: HANGUL JONGSEONG HIEUH-PIEUP*/ + RTUNI_ALPHA, /* U+0011f9: HANGUL JONGSEONG YEORINHIEUH*/ + RTUNI_ALPHA, /* U+0011fa: HANGUL JONGSEONG KIYEOK-NIEUN*/ + RTUNI_ALPHA, /* U+0011fb: HANGUL JONGSEONG KIYEOK-PIEUP*/ + RTUNI_ALPHA, /* U+0011fc: HANGUL JONGSEONG KIYEOK-CHIEUCH*/ + RTUNI_ALPHA, /* U+0011fd: HANGUL JONGSEONG KIYEOK-KHIEUKH*/ + RTUNI_ALPHA, /* U+0011fe: HANGUL JONGSEONG KIYEOK-HIEUH*/ + RTUNI_ALPHA, /* U+0011ff: HANGUL JONGSEONG SSANGNIEUN*/ + RTUNI_ALPHA, /* U+001200: ETHIOPIC SYLLABLE HA*/ + RTUNI_ALPHA, /* U+001201: ETHIOPIC SYLLABLE HU*/ + RTUNI_ALPHA, /* U+001202: ETHIOPIC SYLLABLE HI*/ + RTUNI_ALPHA, /* U+001203: ETHIOPIC SYLLABLE HAA*/ + RTUNI_ALPHA, /* U+001204: ETHIOPIC SYLLABLE HEE*/ + RTUNI_ALPHA, /* U+001205: ETHIOPIC SYLLABLE HE*/ + RTUNI_ALPHA, /* U+001206: ETHIOPIC SYLLABLE HO*/ + RTUNI_ALPHA, /* U+001207: ETHIOPIC SYLLABLE HOA*/ + RTUNI_ALPHA, /* U+001208: ETHIOPIC SYLLABLE LA*/ + RTUNI_ALPHA, /* U+001209: ETHIOPIC SYLLABLE LU*/ + RTUNI_ALPHA, /* U+00120a: ETHIOPIC SYLLABLE LI*/ + RTUNI_ALPHA, /* U+00120b: ETHIOPIC SYLLABLE LAA*/ + RTUNI_ALPHA, /* U+00120c: ETHIOPIC SYLLABLE LEE*/ + RTUNI_ALPHA, /* U+00120d: ETHIOPIC SYLLABLE LE*/ + RTUNI_ALPHA, /* U+00120e: ETHIOPIC SYLLABLE LO*/ + RTUNI_ALPHA, /* U+00120f: ETHIOPIC SYLLABLE LWA*/ + RTUNI_ALPHA, /* U+001210: ETHIOPIC SYLLABLE HHA*/ + RTUNI_ALPHA, /* U+001211: ETHIOPIC SYLLABLE HHU*/ + RTUNI_ALPHA, /* U+001212: ETHIOPIC SYLLABLE HHI*/ + RTUNI_ALPHA, /* U+001213: ETHIOPIC SYLLABLE HHAA*/ + RTUNI_ALPHA, /* U+001214: ETHIOPIC SYLLABLE HHEE*/ + RTUNI_ALPHA, /* U+001215: ETHIOPIC SYLLABLE HHE*/ + RTUNI_ALPHA, /* U+001216: ETHIOPIC SYLLABLE HHO*/ + RTUNI_ALPHA, /* U+001217: ETHIOPIC SYLLABLE HHWA*/ + RTUNI_ALPHA, /* U+001218: ETHIOPIC SYLLABLE MA*/ + RTUNI_ALPHA, /* U+001219: ETHIOPIC SYLLABLE MU*/ + RTUNI_ALPHA, /* U+00121a: ETHIOPIC SYLLABLE MI*/ + RTUNI_ALPHA, /* U+00121b: ETHIOPIC SYLLABLE MAA*/ + RTUNI_ALPHA, /* U+00121c: ETHIOPIC SYLLABLE MEE*/ + RTUNI_ALPHA, /* U+00121d: ETHIOPIC SYLLABLE ME*/ + RTUNI_ALPHA, /* U+00121e: ETHIOPIC SYLLABLE MO*/ + RTUNI_ALPHA, /* U+00121f: ETHIOPIC SYLLABLE MWA*/ + RTUNI_ALPHA, /* U+001220: ETHIOPIC SYLLABLE SZA*/ + RTUNI_ALPHA, /* U+001221: ETHIOPIC SYLLABLE SZU*/ + RTUNI_ALPHA, /* U+001222: ETHIOPIC SYLLABLE SZI*/ + RTUNI_ALPHA, /* U+001223: ETHIOPIC SYLLABLE SZAA*/ + RTUNI_ALPHA, /* U+001224: ETHIOPIC SYLLABLE SZEE*/ + RTUNI_ALPHA, /* U+001225: ETHIOPIC SYLLABLE SZE*/ + RTUNI_ALPHA, /* U+001226: ETHIOPIC SYLLABLE SZO*/ + RTUNI_ALPHA, /* U+001227: ETHIOPIC SYLLABLE SZWA*/ + RTUNI_ALPHA, /* U+001228: ETHIOPIC SYLLABLE RA*/ + RTUNI_ALPHA, /* U+001229: ETHIOPIC SYLLABLE RU*/ + RTUNI_ALPHA, /* U+00122a: ETHIOPIC SYLLABLE RI*/ + RTUNI_ALPHA, /* U+00122b: ETHIOPIC SYLLABLE RAA*/ + RTUNI_ALPHA, /* U+00122c: ETHIOPIC SYLLABLE REE*/ + RTUNI_ALPHA, /* U+00122d: ETHIOPIC SYLLABLE RE*/ + RTUNI_ALPHA, /* U+00122e: ETHIOPIC SYLLABLE RO*/ + RTUNI_ALPHA, /* U+00122f: ETHIOPIC SYLLABLE RWA*/ + RTUNI_ALPHA, /* U+001230: ETHIOPIC SYLLABLE SA*/ + RTUNI_ALPHA, /* U+001231: ETHIOPIC SYLLABLE SU*/ + RTUNI_ALPHA, /* U+001232: ETHIOPIC SYLLABLE SI*/ + RTUNI_ALPHA, /* U+001233: ETHIOPIC SYLLABLE SAA*/ + RTUNI_ALPHA, /* U+001234: ETHIOPIC SYLLABLE SEE*/ + RTUNI_ALPHA, /* U+001235: ETHIOPIC SYLLABLE SE*/ + RTUNI_ALPHA, /* U+001236: ETHIOPIC SYLLABLE SO*/ + RTUNI_ALPHA, /* U+001237: ETHIOPIC SYLLABLE SWA*/ + RTUNI_ALPHA, /* U+001238: ETHIOPIC SYLLABLE SHA*/ + RTUNI_ALPHA, /* U+001239: ETHIOPIC SYLLABLE SHU*/ + RTUNI_ALPHA, /* U+00123a: ETHIOPIC SYLLABLE SHI*/ + RTUNI_ALPHA, /* U+00123b: ETHIOPIC SYLLABLE SHAA*/ + RTUNI_ALPHA, /* U+00123c: ETHIOPIC SYLLABLE SHEE*/ + RTUNI_ALPHA, /* U+00123d: ETHIOPIC SYLLABLE SHE*/ + RTUNI_ALPHA, /* U+00123e: ETHIOPIC SYLLABLE SHO*/ + RTUNI_ALPHA, /* U+00123f: ETHIOPIC SYLLABLE SHWA*/ + RTUNI_ALPHA, /* U+001240: ETHIOPIC SYLLABLE QA*/ + RTUNI_ALPHA, /* U+001241: ETHIOPIC SYLLABLE QU*/ + RTUNI_ALPHA, /* U+001242: ETHIOPIC SYLLABLE QI*/ + RTUNI_ALPHA, /* U+001243: ETHIOPIC SYLLABLE QAA*/ + RTUNI_ALPHA, /* U+001244: ETHIOPIC SYLLABLE QEE*/ + RTUNI_ALPHA, /* U+001245: ETHIOPIC SYLLABLE QE*/ + RTUNI_ALPHA, /* U+001246: ETHIOPIC SYLLABLE QO*/ + RTUNI_ALPHA, /* U+001247: ETHIOPIC SYLLABLE QOA*/ + RTUNI_ALPHA, /* U+001248: ETHIOPIC SYLLABLE QWA*/ + 0, /* U+001249: */ + RTUNI_ALPHA, /* U+00124a: ETHIOPIC SYLLABLE QWI*/ + RTUNI_ALPHA, /* U+00124b: ETHIOPIC SYLLABLE QWAA*/ + RTUNI_ALPHA, /* U+00124c: ETHIOPIC SYLLABLE QWEE*/ + RTUNI_ALPHA, /* U+00124d: ETHIOPIC SYLLABLE QWE*/ + 0, /* U+00124e: */ + 0, /* U+00124f: */ + RTUNI_ALPHA, /* U+001250: ETHIOPIC SYLLABLE QHA*/ + RTUNI_ALPHA, /* U+001251: ETHIOPIC SYLLABLE QHU*/ + RTUNI_ALPHA, /* U+001252: ETHIOPIC SYLLABLE QHI*/ + RTUNI_ALPHA, /* U+001253: ETHIOPIC SYLLABLE QHAA*/ + RTUNI_ALPHA, /* U+001254: ETHIOPIC SYLLABLE QHEE*/ + RTUNI_ALPHA, /* U+001255: ETHIOPIC SYLLABLE QHE*/ + RTUNI_ALPHA, /* U+001256: ETHIOPIC SYLLABLE QHO*/ + 0, /* U+001257: */ + RTUNI_ALPHA, /* U+001258: ETHIOPIC SYLLABLE QHWA*/ + 0, /* U+001259: */ + RTUNI_ALPHA, /* U+00125a: ETHIOPIC SYLLABLE QHWI*/ + RTUNI_ALPHA, /* U+00125b: ETHIOPIC SYLLABLE QHWAA*/ + RTUNI_ALPHA, /* U+00125c: ETHIOPIC SYLLABLE QHWEE*/ + RTUNI_ALPHA, /* U+00125d: ETHIOPIC SYLLABLE QHWE*/ + 0, /* U+00125e: */ + 0, /* U+00125f: */ + RTUNI_ALPHA, /* U+001260: ETHIOPIC SYLLABLE BA*/ + RTUNI_ALPHA, /* U+001261: ETHIOPIC SYLLABLE BU*/ + RTUNI_ALPHA, /* U+001262: ETHIOPIC SYLLABLE BI*/ + RTUNI_ALPHA, /* U+001263: ETHIOPIC SYLLABLE BAA*/ + RTUNI_ALPHA, /* U+001264: ETHIOPIC SYLLABLE BEE*/ + RTUNI_ALPHA, /* U+001265: ETHIOPIC SYLLABLE BE*/ + RTUNI_ALPHA, /* U+001266: ETHIOPIC SYLLABLE BO*/ + RTUNI_ALPHA, /* U+001267: ETHIOPIC SYLLABLE BWA*/ + RTUNI_ALPHA, /* U+001268: ETHIOPIC SYLLABLE VA*/ + RTUNI_ALPHA, /* U+001269: ETHIOPIC SYLLABLE VU*/ + RTUNI_ALPHA, /* U+00126a: ETHIOPIC SYLLABLE VI*/ + RTUNI_ALPHA, /* U+00126b: ETHIOPIC SYLLABLE VAA*/ + RTUNI_ALPHA, /* U+00126c: ETHIOPIC SYLLABLE VEE*/ + RTUNI_ALPHA, /* U+00126d: ETHIOPIC SYLLABLE VE*/ + RTUNI_ALPHA, /* U+00126e: ETHIOPIC SYLLABLE VO*/ + RTUNI_ALPHA, /* U+00126f: ETHIOPIC SYLLABLE VWA*/ + RTUNI_ALPHA, /* U+001270: ETHIOPIC SYLLABLE TA*/ + RTUNI_ALPHA, /* U+001271: ETHIOPIC SYLLABLE TU*/ + RTUNI_ALPHA, /* U+001272: ETHIOPIC SYLLABLE TI*/ + RTUNI_ALPHA, /* U+001273: ETHIOPIC SYLLABLE TAA*/ + RTUNI_ALPHA, /* U+001274: ETHIOPIC SYLLABLE TEE*/ + RTUNI_ALPHA, /* U+001275: ETHIOPIC SYLLABLE TE*/ + RTUNI_ALPHA, /* U+001276: ETHIOPIC SYLLABLE TO*/ + RTUNI_ALPHA, /* U+001277: ETHIOPIC SYLLABLE TWA*/ + RTUNI_ALPHA, /* U+001278: ETHIOPIC SYLLABLE CA*/ + RTUNI_ALPHA, /* U+001279: ETHIOPIC SYLLABLE CU*/ + RTUNI_ALPHA, /* U+00127a: ETHIOPIC SYLLABLE CI*/ + RTUNI_ALPHA, /* U+00127b: ETHIOPIC SYLLABLE CAA*/ + RTUNI_ALPHA, /* U+00127c: ETHIOPIC SYLLABLE CEE*/ + RTUNI_ALPHA, /* U+00127d: ETHIOPIC SYLLABLE CE*/ + RTUNI_ALPHA, /* U+00127e: ETHIOPIC SYLLABLE CO*/ + RTUNI_ALPHA, /* U+00127f: ETHIOPIC SYLLABLE CWA*/ + RTUNI_ALPHA, /* U+001280: ETHIOPIC SYLLABLE XA*/ + RTUNI_ALPHA, /* U+001281: ETHIOPIC SYLLABLE XU*/ + RTUNI_ALPHA, /* U+001282: ETHIOPIC SYLLABLE XI*/ + RTUNI_ALPHA, /* U+001283: ETHIOPIC SYLLABLE XAA*/ + RTUNI_ALPHA, /* U+001284: ETHIOPIC SYLLABLE XEE*/ + RTUNI_ALPHA, /* U+001285: ETHIOPIC SYLLABLE XE*/ + RTUNI_ALPHA, /* U+001286: ETHIOPIC SYLLABLE XO*/ + RTUNI_ALPHA, /* U+001287: ETHIOPIC SYLLABLE XOA*/ + RTUNI_ALPHA, /* U+001288: ETHIOPIC SYLLABLE XWA*/ + 0, /* U+001289: */ + RTUNI_ALPHA, /* U+00128a: ETHIOPIC SYLLABLE XWI*/ + RTUNI_ALPHA, /* U+00128b: ETHIOPIC SYLLABLE XWAA*/ + RTUNI_ALPHA, /* U+00128c: ETHIOPIC SYLLABLE XWEE*/ + RTUNI_ALPHA, /* U+00128d: ETHIOPIC SYLLABLE XWE*/ + 0, /* U+00128e: */ + 0, /* U+00128f: */ + RTUNI_ALPHA, /* U+001290: ETHIOPIC SYLLABLE NA*/ + RTUNI_ALPHA, /* U+001291: ETHIOPIC SYLLABLE NU*/ + RTUNI_ALPHA, /* U+001292: ETHIOPIC SYLLABLE NI*/ + RTUNI_ALPHA, /* U+001293: ETHIOPIC SYLLABLE NAA*/ + RTUNI_ALPHA, /* U+001294: ETHIOPIC SYLLABLE NEE*/ + RTUNI_ALPHA, /* U+001295: ETHIOPIC SYLLABLE NE*/ + RTUNI_ALPHA, /* U+001296: ETHIOPIC SYLLABLE NO*/ + RTUNI_ALPHA, /* U+001297: ETHIOPIC SYLLABLE NWA*/ + RTUNI_ALPHA, /* U+001298: ETHIOPIC SYLLABLE NYA*/ + RTUNI_ALPHA, /* U+001299: ETHIOPIC SYLLABLE NYU*/ + RTUNI_ALPHA, /* U+00129a: ETHIOPIC SYLLABLE NYI*/ + RTUNI_ALPHA, /* U+00129b: ETHIOPIC SYLLABLE NYAA*/ + RTUNI_ALPHA, /* U+00129c: ETHIOPIC SYLLABLE NYEE*/ + RTUNI_ALPHA, /* U+00129d: ETHIOPIC SYLLABLE NYE*/ + RTUNI_ALPHA, /* U+00129e: ETHIOPIC SYLLABLE NYO*/ + RTUNI_ALPHA, /* U+00129f: ETHIOPIC SYLLABLE NYWA*/ + RTUNI_ALPHA, /* U+0012a0: ETHIOPIC SYLLABLE GLOTTAL A*/ + RTUNI_ALPHA, /* U+0012a1: ETHIOPIC SYLLABLE GLOTTAL U*/ + RTUNI_ALPHA, /* U+0012a2: ETHIOPIC SYLLABLE GLOTTAL I*/ + RTUNI_ALPHA, /* U+0012a3: ETHIOPIC SYLLABLE GLOTTAL AA*/ + RTUNI_ALPHA, /* U+0012a4: ETHIOPIC SYLLABLE GLOTTAL EE*/ + RTUNI_ALPHA, /* U+0012a5: ETHIOPIC SYLLABLE GLOTTAL E*/ + RTUNI_ALPHA, /* U+0012a6: ETHIOPIC SYLLABLE GLOTTAL O*/ + RTUNI_ALPHA, /* U+0012a7: ETHIOPIC SYLLABLE GLOTTAL WA*/ + RTUNI_ALPHA, /* U+0012a8: ETHIOPIC SYLLABLE KA*/ + RTUNI_ALPHA, /* U+0012a9: ETHIOPIC SYLLABLE KU*/ + RTUNI_ALPHA, /* U+0012aa: ETHIOPIC SYLLABLE KI*/ + RTUNI_ALPHA, /* U+0012ab: ETHIOPIC SYLLABLE KAA*/ + RTUNI_ALPHA, /* U+0012ac: ETHIOPIC SYLLABLE KEE*/ + RTUNI_ALPHA, /* U+0012ad: ETHIOPIC SYLLABLE KE*/ + RTUNI_ALPHA, /* U+0012ae: ETHIOPIC SYLLABLE KO*/ + RTUNI_ALPHA, /* U+0012af: ETHIOPIC SYLLABLE KOA*/ + RTUNI_ALPHA, /* U+0012b0: ETHIOPIC SYLLABLE KWA*/ + 0, /* U+0012b1: */ + RTUNI_ALPHA, /* U+0012b2: ETHIOPIC SYLLABLE KWI*/ + RTUNI_ALPHA, /* U+0012b3: ETHIOPIC SYLLABLE KWAA*/ + RTUNI_ALPHA, /* U+0012b4: ETHIOPIC SYLLABLE KWEE*/ + RTUNI_ALPHA, /* U+0012b5: ETHIOPIC SYLLABLE KWE*/ + 0, /* U+0012b6: */ + 0, /* U+0012b7: */ + RTUNI_ALPHA, /* U+0012b8: ETHIOPIC SYLLABLE KXA*/ + RTUNI_ALPHA, /* U+0012b9: ETHIOPIC SYLLABLE KXU*/ + RTUNI_ALPHA, /* U+0012ba: ETHIOPIC SYLLABLE KXI*/ + RTUNI_ALPHA, /* U+0012bb: ETHIOPIC SYLLABLE KXAA*/ + RTUNI_ALPHA, /* U+0012bc: ETHIOPIC SYLLABLE KXEE*/ + RTUNI_ALPHA, /* U+0012bd: ETHIOPIC SYLLABLE KXE*/ + RTUNI_ALPHA, /* U+0012be: ETHIOPIC SYLLABLE KXO*/ + 0, /* U+0012bf: */ + RTUNI_ALPHA, /* U+0012c0: ETHIOPIC SYLLABLE KXWA*/ + 0, /* U+0012c1: */ + RTUNI_ALPHA, /* U+0012c2: ETHIOPIC SYLLABLE KXWI*/ + RTUNI_ALPHA, /* U+0012c3: ETHIOPIC SYLLABLE KXWAA*/ + RTUNI_ALPHA, /* U+0012c4: ETHIOPIC SYLLABLE KXWEE*/ + RTUNI_ALPHA, /* U+0012c5: ETHIOPIC SYLLABLE KXWE*/ + 0, /* U+0012c6: */ + 0, /* U+0012c7: */ + RTUNI_ALPHA, /* U+0012c8: ETHIOPIC SYLLABLE WA*/ + RTUNI_ALPHA, /* U+0012c9: ETHIOPIC SYLLABLE WU*/ + RTUNI_ALPHA, /* U+0012ca: ETHIOPIC SYLLABLE WI*/ + RTUNI_ALPHA, /* U+0012cb: ETHIOPIC SYLLABLE WAA*/ + RTUNI_ALPHA, /* U+0012cc: ETHIOPIC SYLLABLE WEE*/ + RTUNI_ALPHA, /* U+0012cd: ETHIOPIC SYLLABLE WE*/ + RTUNI_ALPHA, /* U+0012ce: ETHIOPIC SYLLABLE WO*/ + RTUNI_ALPHA, /* U+0012cf: ETHIOPIC SYLLABLE WOA*/ + RTUNI_ALPHA, /* U+0012d0: ETHIOPIC SYLLABLE PHARYNGEAL A*/ + RTUNI_ALPHA, /* U+0012d1: ETHIOPIC SYLLABLE PHARYNGEAL U*/ + RTUNI_ALPHA, /* U+0012d2: ETHIOPIC SYLLABLE PHARYNGEAL I*/ + RTUNI_ALPHA, /* U+0012d3: ETHIOPIC SYLLABLE PHARYNGEAL AA*/ + RTUNI_ALPHA, /* U+0012d4: ETHIOPIC SYLLABLE PHARYNGEAL EE*/ + RTUNI_ALPHA, /* U+0012d5: ETHIOPIC SYLLABLE PHARYNGEAL E*/ + RTUNI_ALPHA, /* U+0012d6: ETHIOPIC SYLLABLE PHARYNGEAL O*/ + 0, /* U+0012d7: */ + RTUNI_ALPHA, /* U+0012d8: ETHIOPIC SYLLABLE ZA*/ + RTUNI_ALPHA, /* U+0012d9: ETHIOPIC SYLLABLE ZU*/ + RTUNI_ALPHA, /* U+0012da: ETHIOPIC SYLLABLE ZI*/ + RTUNI_ALPHA, /* U+0012db: ETHIOPIC SYLLABLE ZAA*/ + RTUNI_ALPHA, /* U+0012dc: ETHIOPIC SYLLABLE ZEE*/ + RTUNI_ALPHA, /* U+0012dd: ETHIOPIC SYLLABLE ZE*/ + RTUNI_ALPHA, /* U+0012de: ETHIOPIC SYLLABLE ZO*/ + RTUNI_ALPHA, /* U+0012df: ETHIOPIC SYLLABLE ZWA*/ + RTUNI_ALPHA, /* U+0012e0: ETHIOPIC SYLLABLE ZHA*/ + RTUNI_ALPHA, /* U+0012e1: ETHIOPIC SYLLABLE ZHU*/ + RTUNI_ALPHA, /* U+0012e2: ETHIOPIC SYLLABLE ZHI*/ + RTUNI_ALPHA, /* U+0012e3: ETHIOPIC SYLLABLE ZHAA*/ + RTUNI_ALPHA, /* U+0012e4: ETHIOPIC SYLLABLE ZHEE*/ + RTUNI_ALPHA, /* U+0012e5: ETHIOPIC SYLLABLE ZHE*/ + RTUNI_ALPHA, /* U+0012e6: ETHIOPIC SYLLABLE ZHO*/ + RTUNI_ALPHA, /* U+0012e7: ETHIOPIC SYLLABLE ZHWA*/ + RTUNI_ALPHA, /* U+0012e8: ETHIOPIC SYLLABLE YA*/ + RTUNI_ALPHA, /* U+0012e9: ETHIOPIC SYLLABLE YU*/ + RTUNI_ALPHA, /* U+0012ea: ETHIOPIC SYLLABLE YI*/ + RTUNI_ALPHA, /* U+0012eb: ETHIOPIC SYLLABLE YAA*/ + RTUNI_ALPHA, /* U+0012ec: ETHIOPIC SYLLABLE YEE*/ + RTUNI_ALPHA, /* U+0012ed: ETHIOPIC SYLLABLE YE*/ + RTUNI_ALPHA, /* U+0012ee: ETHIOPIC SYLLABLE YO*/ + RTUNI_ALPHA, /* U+0012ef: ETHIOPIC SYLLABLE YOA*/ + RTUNI_ALPHA, /* U+0012f0: ETHIOPIC SYLLABLE DA*/ + RTUNI_ALPHA, /* U+0012f1: ETHIOPIC SYLLABLE DU*/ + RTUNI_ALPHA, /* U+0012f2: ETHIOPIC SYLLABLE DI*/ + RTUNI_ALPHA, /* U+0012f3: ETHIOPIC SYLLABLE DAA*/ + RTUNI_ALPHA, /* U+0012f4: ETHIOPIC SYLLABLE DEE*/ + RTUNI_ALPHA, /* U+0012f5: ETHIOPIC SYLLABLE DE*/ + RTUNI_ALPHA, /* U+0012f6: ETHIOPIC SYLLABLE DO*/ + RTUNI_ALPHA, /* U+0012f7: ETHIOPIC SYLLABLE DWA*/ + RTUNI_ALPHA, /* U+0012f8: ETHIOPIC SYLLABLE DDA*/ + RTUNI_ALPHA, /* U+0012f9: ETHIOPIC SYLLABLE DDU*/ + RTUNI_ALPHA, /* U+0012fa: ETHIOPIC SYLLABLE DDI*/ + RTUNI_ALPHA, /* U+0012fb: ETHIOPIC SYLLABLE DDAA*/ + RTUNI_ALPHA, /* U+0012fc: ETHIOPIC SYLLABLE DDEE*/ + RTUNI_ALPHA, /* U+0012fd: ETHIOPIC SYLLABLE DDE*/ + RTUNI_ALPHA, /* U+0012fe: ETHIOPIC SYLLABLE DDO*/ + RTUNI_ALPHA, /* U+0012ff: ETHIOPIC SYLLABLE DDWA*/ + RTUNI_ALPHA, /* U+001300: ETHIOPIC SYLLABLE JA*/ + RTUNI_ALPHA, /* U+001301: ETHIOPIC SYLLABLE JU*/ + RTUNI_ALPHA, /* U+001302: ETHIOPIC SYLLABLE JI*/ + RTUNI_ALPHA, /* U+001303: ETHIOPIC SYLLABLE JAA*/ + RTUNI_ALPHA, /* U+001304: ETHIOPIC SYLLABLE JEE*/ + RTUNI_ALPHA, /* U+001305: ETHIOPIC SYLLABLE JE*/ + RTUNI_ALPHA, /* U+001306: ETHIOPIC SYLLABLE JO*/ + RTUNI_ALPHA, /* U+001307: ETHIOPIC SYLLABLE JWA*/ + RTUNI_ALPHA, /* U+001308: ETHIOPIC SYLLABLE GA*/ + RTUNI_ALPHA, /* U+001309: ETHIOPIC SYLLABLE GU*/ + RTUNI_ALPHA, /* U+00130a: ETHIOPIC SYLLABLE GI*/ + RTUNI_ALPHA, /* U+00130b: ETHIOPIC SYLLABLE GAA*/ + RTUNI_ALPHA, /* U+00130c: ETHIOPIC SYLLABLE GEE*/ + RTUNI_ALPHA, /* U+00130d: ETHIOPIC SYLLABLE GE*/ + RTUNI_ALPHA, /* U+00130e: ETHIOPIC SYLLABLE GO*/ + RTUNI_ALPHA, /* U+00130f: ETHIOPIC SYLLABLE GOA*/ + RTUNI_ALPHA, /* U+001310: ETHIOPIC SYLLABLE GWA*/ + 0, /* U+001311: */ + RTUNI_ALPHA, /* U+001312: ETHIOPIC SYLLABLE GWI*/ + RTUNI_ALPHA, /* U+001313: ETHIOPIC SYLLABLE GWAA*/ + RTUNI_ALPHA, /* U+001314: ETHIOPIC SYLLABLE GWEE*/ + RTUNI_ALPHA, /* U+001315: ETHIOPIC SYLLABLE GWE*/ + 0, /* U+001316: */ + 0, /* U+001317: */ + RTUNI_ALPHA, /* U+001318: ETHIOPIC SYLLABLE GGA*/ + RTUNI_ALPHA, /* U+001319: ETHIOPIC SYLLABLE GGU*/ + RTUNI_ALPHA, /* U+00131a: ETHIOPIC SYLLABLE GGI*/ + RTUNI_ALPHA, /* U+00131b: ETHIOPIC SYLLABLE GGAA*/ + RTUNI_ALPHA, /* U+00131c: ETHIOPIC SYLLABLE GGEE*/ + RTUNI_ALPHA, /* U+00131d: ETHIOPIC SYLLABLE GGE*/ + RTUNI_ALPHA, /* U+00131e: ETHIOPIC SYLLABLE GGO*/ + RTUNI_ALPHA, /* U+00131f: ETHIOPIC SYLLABLE GGWAA*/ + RTUNI_ALPHA, /* U+001320: ETHIOPIC SYLLABLE THA*/ + RTUNI_ALPHA, /* U+001321: ETHIOPIC SYLLABLE THU*/ + RTUNI_ALPHA, /* U+001322: ETHIOPIC SYLLABLE THI*/ + RTUNI_ALPHA, /* U+001323: ETHIOPIC SYLLABLE THAA*/ + RTUNI_ALPHA, /* U+001324: ETHIOPIC SYLLABLE THEE*/ + RTUNI_ALPHA, /* U+001325: ETHIOPIC SYLLABLE THE*/ + RTUNI_ALPHA, /* U+001326: ETHIOPIC SYLLABLE THO*/ + RTUNI_ALPHA, /* U+001327: ETHIOPIC SYLLABLE THWA*/ + RTUNI_ALPHA, /* U+001328: ETHIOPIC SYLLABLE CHA*/ + RTUNI_ALPHA, /* U+001329: ETHIOPIC SYLLABLE CHU*/ + RTUNI_ALPHA, /* U+00132a: ETHIOPIC SYLLABLE CHI*/ + RTUNI_ALPHA, /* U+00132b: ETHIOPIC SYLLABLE CHAA*/ + RTUNI_ALPHA, /* U+00132c: ETHIOPIC SYLLABLE CHEE*/ + RTUNI_ALPHA, /* U+00132d: ETHIOPIC SYLLABLE CHE*/ + RTUNI_ALPHA, /* U+00132e: ETHIOPIC SYLLABLE CHO*/ + RTUNI_ALPHA, /* U+00132f: ETHIOPIC SYLLABLE CHWA*/ + RTUNI_ALPHA, /* U+001330: ETHIOPIC SYLLABLE PHA*/ + RTUNI_ALPHA, /* U+001331: ETHIOPIC SYLLABLE PHU*/ + RTUNI_ALPHA, /* U+001332: ETHIOPIC SYLLABLE PHI*/ + RTUNI_ALPHA, /* U+001333: ETHIOPIC SYLLABLE PHAA*/ + RTUNI_ALPHA, /* U+001334: ETHIOPIC SYLLABLE PHEE*/ + RTUNI_ALPHA, /* U+001335: ETHIOPIC SYLLABLE PHE*/ + RTUNI_ALPHA, /* U+001336: ETHIOPIC SYLLABLE PHO*/ + RTUNI_ALPHA, /* U+001337: ETHIOPIC SYLLABLE PHWA*/ + RTUNI_ALPHA, /* U+001338: ETHIOPIC SYLLABLE TSA*/ + RTUNI_ALPHA, /* U+001339: ETHIOPIC SYLLABLE TSU*/ + RTUNI_ALPHA, /* U+00133a: ETHIOPIC SYLLABLE TSI*/ + RTUNI_ALPHA, /* U+00133b: ETHIOPIC SYLLABLE TSAA*/ + RTUNI_ALPHA, /* U+00133c: ETHIOPIC SYLLABLE TSEE*/ + RTUNI_ALPHA, /* U+00133d: ETHIOPIC SYLLABLE TSE*/ + RTUNI_ALPHA, /* U+00133e: ETHIOPIC SYLLABLE TSO*/ + RTUNI_ALPHA, /* U+00133f: ETHIOPIC SYLLABLE TSWA*/ + RTUNI_ALPHA, /* U+001340: ETHIOPIC SYLLABLE TZA*/ + RTUNI_ALPHA, /* U+001341: ETHIOPIC SYLLABLE TZU*/ + RTUNI_ALPHA, /* U+001342: ETHIOPIC SYLLABLE TZI*/ + RTUNI_ALPHA, /* U+001343: ETHIOPIC SYLLABLE TZAA*/ + RTUNI_ALPHA, /* U+001344: ETHIOPIC SYLLABLE TZEE*/ + RTUNI_ALPHA, /* U+001345: ETHIOPIC SYLLABLE TZE*/ + RTUNI_ALPHA, /* U+001346: ETHIOPIC SYLLABLE TZO*/ + RTUNI_ALPHA, /* U+001347: ETHIOPIC SYLLABLE TZOA*/ + RTUNI_ALPHA, /* U+001348: ETHIOPIC SYLLABLE FA*/ + RTUNI_ALPHA, /* U+001349: ETHIOPIC SYLLABLE FU*/ + RTUNI_ALPHA, /* U+00134a: ETHIOPIC SYLLABLE FI*/ + RTUNI_ALPHA, /* U+00134b: ETHIOPIC SYLLABLE FAA*/ + RTUNI_ALPHA, /* U+00134c: ETHIOPIC SYLLABLE FEE*/ + RTUNI_ALPHA, /* U+00134d: ETHIOPIC SYLLABLE FE*/ + RTUNI_ALPHA, /* U+00134e: ETHIOPIC SYLLABLE FO*/ + RTUNI_ALPHA, /* U+00134f: ETHIOPIC SYLLABLE FWA*/ + RTUNI_ALPHA, /* U+001350: ETHIOPIC SYLLABLE PA*/ + RTUNI_ALPHA, /* U+001351: ETHIOPIC SYLLABLE PU*/ + RTUNI_ALPHA, /* U+001352: ETHIOPIC SYLLABLE PI*/ + RTUNI_ALPHA, /* U+001353: ETHIOPIC SYLLABLE PAA*/ + RTUNI_ALPHA, /* U+001354: ETHIOPIC SYLLABLE PEE*/ + RTUNI_ALPHA, /* U+001355: ETHIOPIC SYLLABLE PE*/ + RTUNI_ALPHA, /* U+001356: ETHIOPIC SYLLABLE PO*/ + RTUNI_ALPHA, /* U+001357: ETHIOPIC SYLLABLE PWA*/ + RTUNI_ALPHA, /* U+001358: ETHIOPIC SYLLABLE RYA*/ + RTUNI_ALPHA, /* U+001359: ETHIOPIC SYLLABLE MYA*/ + RTUNI_ALPHA, /* U+00135a: ETHIOPIC SYLLABLE FYA*/ + 0, /* U+00135b: */ + 0, /* U+00135c: */ + 0, /* U+00135d: ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK*/ + 0, /* U+00135e: ETHIOPIC COMBINING VOWEL LENGTH MARK*/ + RTUNI_ALPHA, /* U+00135f: ETHIOPIC COMBINING GEMINATION MARK*/ + 0, /* U+001360: ETHIOPIC SECTION MARK*/ + 0, /* U+001361: ETHIOPIC WORDSPACE*/ + 0, /* U+001362: ETHIOPIC FULL STOP*/ + 0, /* U+001363: ETHIOPIC COMMA*/ + 0, /* U+001364: ETHIOPIC SEMICOLON*/ + 0, /* U+001365: ETHIOPIC COLON*/ + 0, /* U+001366: ETHIOPIC PREFACE COLON*/ + 0, /* U+001367: ETHIOPIC QUESTION MARK*/ + 0, /* U+001368: ETHIOPIC PARAGRAPH SEPARATOR*/ + 0, /* U+001369: ETHIOPIC DIGIT ONE*/ + 0, /* U+00136a: ETHIOPIC DIGIT TWO*/ + 0, /* U+00136b: ETHIOPIC DIGIT THREE*/ + 0, /* U+00136c: ETHIOPIC DIGIT FOUR*/ + 0, /* U+00136d: ETHIOPIC DIGIT FIVE*/ + 0, /* U+00136e: ETHIOPIC DIGIT SIX*/ + 0, /* U+00136f: ETHIOPIC DIGIT SEVEN*/ + 0, /* U+001370: ETHIOPIC DIGIT EIGHT*/ + 0, /* U+001371: ETHIOPIC DIGIT NINE*/ + 0, /* U+001372: ETHIOPIC NUMBER TEN*/ + 0, /* U+001373: ETHIOPIC NUMBER TWENTY*/ + 0, /* U+001374: ETHIOPIC NUMBER THIRTY*/ + 0, /* U+001375: ETHIOPIC NUMBER FORTY*/ + 0, /* U+001376: ETHIOPIC NUMBER FIFTY*/ + 0, /* U+001377: ETHIOPIC NUMBER SIXTY*/ + 0, /* U+001378: ETHIOPIC NUMBER SEVENTY*/ + 0, /* U+001379: ETHIOPIC NUMBER EIGHTY*/ + 0, /* U+00137a: ETHIOPIC NUMBER NINETY*/ + 0, /* U+00137b: ETHIOPIC NUMBER HUNDRED*/ + 0, /* U+00137c: ETHIOPIC NUMBER TEN THOUSAND*/ + 0, /* U+00137d: */ + 0, /* U+00137e: */ + 0, /* U+00137f: */ + RTUNI_ALPHA, /* U+001380: ETHIOPIC SYLLABLE SEBATBEIT MWA*/ + RTUNI_ALPHA, /* U+001381: ETHIOPIC SYLLABLE MWI*/ + RTUNI_ALPHA, /* U+001382: ETHIOPIC SYLLABLE MWEE*/ + RTUNI_ALPHA, /* U+001383: ETHIOPIC SYLLABLE MWE*/ + RTUNI_ALPHA, /* U+001384: ETHIOPIC SYLLABLE SEBATBEIT BWA*/ + RTUNI_ALPHA, /* U+001385: ETHIOPIC SYLLABLE BWI*/ + RTUNI_ALPHA, /* U+001386: ETHIOPIC SYLLABLE BWEE*/ + RTUNI_ALPHA, /* U+001387: ETHIOPIC SYLLABLE BWE*/ + RTUNI_ALPHA, /* U+001388: ETHIOPIC SYLLABLE SEBATBEIT FWA*/ + RTUNI_ALPHA, /* U+001389: ETHIOPIC SYLLABLE FWI*/ + RTUNI_ALPHA, /* U+00138a: ETHIOPIC SYLLABLE FWEE*/ + RTUNI_ALPHA, /* U+00138b: ETHIOPIC SYLLABLE FWE*/ + RTUNI_ALPHA, /* U+00138c: ETHIOPIC SYLLABLE SEBATBEIT PWA*/ + RTUNI_ALPHA, /* U+00138d: ETHIOPIC SYLLABLE PWI*/ + RTUNI_ALPHA, /* U+00138e: ETHIOPIC SYLLABLE PWEE*/ + RTUNI_ALPHA, /* U+00138f: ETHIOPIC SYLLABLE PWE*/ + 0, /* U+001390: ETHIOPIC TONAL MARK YIZET*/ + 0, /* U+001391: ETHIOPIC TONAL MARK DERET*/ + 0, /* U+001392: ETHIOPIC TONAL MARK RIKRIK*/ + 0, /* U+001393: ETHIOPIC TONAL MARK SHORT RIKRIK*/ + 0, /* U+001394: ETHIOPIC TONAL MARK DIFAT*/ + 0, /* U+001395: ETHIOPIC TONAL MARK KENAT*/ + 0, /* U+001396: ETHIOPIC TONAL MARK CHIRET*/ + 0, /* U+001397: ETHIOPIC TONAL MARK HIDET*/ + 0, /* U+001398: ETHIOPIC TONAL MARK DERET-HIDET*/ + 0, /* U+001399: ETHIOPIC TONAL MARK KURT*/ + 0, /* U+00139a: */ + 0, /* U+00139b: */ + 0, /* U+00139c: */ + 0, /* U+00139d: */ + 0, /* U+00139e: */ + 0, /* U+00139f: */ + RTUNI_ALPHA, /* U+0013a0: CHEROKEE LETTER A*/ + RTUNI_ALPHA, /* U+0013a1: CHEROKEE LETTER E*/ + RTUNI_ALPHA, /* U+0013a2: CHEROKEE LETTER I*/ + RTUNI_ALPHA, /* U+0013a3: CHEROKEE LETTER O*/ + RTUNI_ALPHA, /* U+0013a4: CHEROKEE LETTER U*/ + RTUNI_ALPHA, /* U+0013a5: CHEROKEE LETTER V*/ + RTUNI_ALPHA, /* U+0013a6: CHEROKEE LETTER GA*/ + RTUNI_ALPHA, /* U+0013a7: CHEROKEE LETTER KA*/ + RTUNI_ALPHA, /* U+0013a8: CHEROKEE LETTER GE*/ + RTUNI_ALPHA, /* U+0013a9: CHEROKEE LETTER GI*/ + RTUNI_ALPHA, /* U+0013aa: CHEROKEE LETTER GO*/ + RTUNI_ALPHA, /* U+0013ab: CHEROKEE LETTER GU*/ + RTUNI_ALPHA, /* U+0013ac: CHEROKEE LETTER GV*/ + RTUNI_ALPHA, /* U+0013ad: CHEROKEE LETTER HA*/ + RTUNI_ALPHA, /* U+0013ae: CHEROKEE LETTER HE*/ + RTUNI_ALPHA, /* U+0013af: CHEROKEE LETTER HI*/ + RTUNI_ALPHA, /* U+0013b0: CHEROKEE LETTER HO*/ + RTUNI_ALPHA, /* U+0013b1: CHEROKEE LETTER HU*/ + RTUNI_ALPHA, /* U+0013b2: CHEROKEE LETTER HV*/ + RTUNI_ALPHA, /* U+0013b3: CHEROKEE LETTER LA*/ + RTUNI_ALPHA, /* U+0013b4: CHEROKEE LETTER LE*/ + RTUNI_ALPHA, /* U+0013b5: CHEROKEE LETTER LI*/ + RTUNI_ALPHA, /* U+0013b6: CHEROKEE LETTER LO*/ + RTUNI_ALPHA, /* U+0013b7: CHEROKEE LETTER LU*/ + RTUNI_ALPHA, /* U+0013b8: CHEROKEE LETTER LV*/ + RTUNI_ALPHA, /* U+0013b9: CHEROKEE LETTER MA*/ + RTUNI_ALPHA, /* U+0013ba: CHEROKEE LETTER ME*/ + RTUNI_ALPHA, /* U+0013bb: CHEROKEE LETTER MI*/ + RTUNI_ALPHA, /* U+0013bc: CHEROKEE LETTER MO*/ + RTUNI_ALPHA, /* U+0013bd: CHEROKEE LETTER MU*/ + RTUNI_ALPHA, /* U+0013be: CHEROKEE LETTER NA*/ + RTUNI_ALPHA, /* U+0013bf: CHEROKEE LETTER HNA*/ + RTUNI_ALPHA, /* U+0013c0: CHEROKEE LETTER NAH*/ + RTUNI_ALPHA, /* U+0013c1: CHEROKEE LETTER NE*/ + RTUNI_ALPHA, /* U+0013c2: CHEROKEE LETTER NI*/ + RTUNI_ALPHA, /* U+0013c3: CHEROKEE LETTER NO*/ + RTUNI_ALPHA, /* U+0013c4: CHEROKEE LETTER NU*/ + RTUNI_ALPHA, /* U+0013c5: CHEROKEE LETTER NV*/ + RTUNI_ALPHA, /* U+0013c6: CHEROKEE LETTER QUA*/ + RTUNI_ALPHA, /* U+0013c7: CHEROKEE LETTER QUE*/ + RTUNI_ALPHA, /* U+0013c8: CHEROKEE LETTER QUI*/ + RTUNI_ALPHA, /* U+0013c9: CHEROKEE LETTER QUO*/ + RTUNI_ALPHA, /* U+0013ca: CHEROKEE LETTER QUU*/ + RTUNI_ALPHA, /* U+0013cb: CHEROKEE LETTER QUV*/ + RTUNI_ALPHA, /* U+0013cc: CHEROKEE LETTER SA*/ + RTUNI_ALPHA, /* U+0013cd: CHEROKEE LETTER S*/ + RTUNI_ALPHA, /* U+0013ce: CHEROKEE LETTER SE*/ + RTUNI_ALPHA, /* U+0013cf: CHEROKEE LETTER SI*/ + RTUNI_ALPHA, /* U+0013d0: CHEROKEE LETTER SO*/ + RTUNI_ALPHA, /* U+0013d1: CHEROKEE LETTER SU*/ + RTUNI_ALPHA, /* U+0013d2: CHEROKEE LETTER SV*/ + RTUNI_ALPHA, /* U+0013d3: CHEROKEE LETTER DA*/ + RTUNI_ALPHA, /* U+0013d4: CHEROKEE LETTER TA*/ + RTUNI_ALPHA, /* U+0013d5: CHEROKEE LETTER DE*/ + RTUNI_ALPHA, /* U+0013d6: CHEROKEE LETTER TE*/ + RTUNI_ALPHA, /* U+0013d7: CHEROKEE LETTER DI*/ + RTUNI_ALPHA, /* U+0013d8: CHEROKEE LETTER TI*/ + RTUNI_ALPHA, /* U+0013d9: CHEROKEE LETTER DO*/ + RTUNI_ALPHA, /* U+0013da: CHEROKEE LETTER DU*/ + RTUNI_ALPHA, /* U+0013db: CHEROKEE LETTER DV*/ + RTUNI_ALPHA, /* U+0013dc: CHEROKEE LETTER DLA*/ + RTUNI_ALPHA, /* U+0013dd: CHEROKEE LETTER TLA*/ + RTUNI_ALPHA, /* U+0013de: CHEROKEE LETTER TLE*/ + RTUNI_ALPHA, /* U+0013df: CHEROKEE LETTER TLI*/ + RTUNI_ALPHA, /* U+0013e0: CHEROKEE LETTER TLO*/ + RTUNI_ALPHA, /* U+0013e1: CHEROKEE LETTER TLU*/ + RTUNI_ALPHA, /* U+0013e2: CHEROKEE LETTER TLV*/ + RTUNI_ALPHA, /* U+0013e3: CHEROKEE LETTER TSA*/ + RTUNI_ALPHA, /* U+0013e4: CHEROKEE LETTER TSE*/ + RTUNI_ALPHA, /* U+0013e5: CHEROKEE LETTER TSI*/ + RTUNI_ALPHA, /* U+0013e6: CHEROKEE LETTER TSO*/ + RTUNI_ALPHA, /* U+0013e7: CHEROKEE LETTER TSU*/ + RTUNI_ALPHA, /* U+0013e8: CHEROKEE LETTER TSV*/ + RTUNI_ALPHA, /* U+0013e9: CHEROKEE LETTER WA*/ + RTUNI_ALPHA, /* U+0013ea: CHEROKEE LETTER WE*/ + RTUNI_ALPHA, /* U+0013eb: CHEROKEE LETTER WI*/ + RTUNI_ALPHA, /* U+0013ec: CHEROKEE LETTER WO*/ + RTUNI_ALPHA, /* U+0013ed: CHEROKEE LETTER WU*/ + RTUNI_ALPHA, /* U+0013ee: CHEROKEE LETTER WV*/ + RTUNI_ALPHA, /* U+0013ef: CHEROKEE LETTER YA*/ + RTUNI_ALPHA, /* U+0013f0: CHEROKEE LETTER YE*/ + RTUNI_ALPHA, /* U+0013f1: CHEROKEE LETTER YI*/ + RTUNI_ALPHA, /* U+0013f2: CHEROKEE LETTER YO*/ + RTUNI_ALPHA, /* U+0013f3: CHEROKEE LETTER YU*/ + RTUNI_ALPHA, /* U+0013f4: CHEROKEE LETTER YV*/ + 0, /* U+0013f5: */ + 0, /* U+0013f6: */ + 0, /* U+0013f7: */ + 0, /* U+0013f8: */ + 0, /* U+0013f9: */ + 0, /* U+0013fa: */ + 0, /* U+0013fb: */ + 0, /* U+0013fc: */ + 0, /* U+0013fd: */ + 0, /* U+0013fe: */ + 0, /* U+0013ff: */ + 0, /* U+001400: CANADIAN SYLLABICS HYPHEN*/ + RTUNI_ALPHA, /* U+001401: CANADIAN SYLLABICS E*/ + RTUNI_ALPHA, /* U+001402: CANADIAN SYLLABICS AAI*/ + RTUNI_ALPHA, /* U+001403: CANADIAN SYLLABICS I*/ + RTUNI_ALPHA, /* U+001404: CANADIAN SYLLABICS II*/ + RTUNI_ALPHA, /* U+001405: CANADIAN SYLLABICS O*/ + RTUNI_ALPHA, /* U+001406: CANADIAN SYLLABICS OO*/ + RTUNI_ALPHA, /* U+001407: CANADIAN SYLLABICS Y-CREE OO*/ + RTUNI_ALPHA, /* U+001408: CANADIAN SYLLABICS CARRIER EE*/ + RTUNI_ALPHA, /* U+001409: CANADIAN SYLLABICS CARRIER I*/ + RTUNI_ALPHA, /* U+00140a: CANADIAN SYLLABICS A*/ + RTUNI_ALPHA, /* U+00140b: CANADIAN SYLLABICS AA*/ + RTUNI_ALPHA, /* U+00140c: CANADIAN SYLLABICS WE*/ + RTUNI_ALPHA, /* U+00140d: CANADIAN SYLLABICS WEST-CREE WE*/ + RTUNI_ALPHA, /* U+00140e: CANADIAN SYLLABICS WI*/ + RTUNI_ALPHA, /* U+00140f: CANADIAN SYLLABICS WEST-CREE WI*/ + RTUNI_ALPHA, /* U+001410: CANADIAN SYLLABICS WII*/ + RTUNI_ALPHA, /* U+001411: CANADIAN SYLLABICS WEST-CREE WII*/ + RTUNI_ALPHA, /* U+001412: CANADIAN SYLLABICS WO*/ + RTUNI_ALPHA, /* U+001413: CANADIAN SYLLABICS WEST-CREE WO*/ + RTUNI_ALPHA, /* U+001414: CANADIAN SYLLABICS WOO*/ + RTUNI_ALPHA, /* U+001415: CANADIAN SYLLABICS WEST-CREE WOO*/ + RTUNI_ALPHA, /* U+001416: CANADIAN SYLLABICS NASKAPI WOO*/ + RTUNI_ALPHA, /* U+001417: CANADIAN SYLLABICS WA*/ + RTUNI_ALPHA, /* U+001418: CANADIAN SYLLABICS WEST-CREE WA*/ + RTUNI_ALPHA, /* U+001419: CANADIAN SYLLABICS WAA*/ + RTUNI_ALPHA, /* U+00141a: CANADIAN SYLLABICS WEST-CREE WAA*/ + RTUNI_ALPHA, /* U+00141b: CANADIAN SYLLABICS NASKAPI WAA*/ + RTUNI_ALPHA, /* U+00141c: CANADIAN SYLLABICS AI*/ + RTUNI_ALPHA, /* U+00141d: CANADIAN SYLLABICS Y-CREE W*/ + RTUNI_ALPHA, /* U+00141e: CANADIAN SYLLABICS GLOTTAL STOP*/ + RTUNI_ALPHA, /* U+00141f: CANADIAN SYLLABICS FINAL ACUTE*/ + RTUNI_ALPHA, /* U+001420: CANADIAN SYLLABICS FINAL GRAVE*/ + RTUNI_ALPHA, /* U+001421: CANADIAN SYLLABICS FINAL BOTTOM HALF RING*/ + RTUNI_ALPHA, /* U+001422: CANADIAN SYLLABICS FINAL TOP HALF RING*/ + RTUNI_ALPHA, /* U+001423: CANADIAN SYLLABICS FINAL RIGHT HALF RING*/ + RTUNI_ALPHA, /* U+001424: CANADIAN SYLLABICS FINAL RING*/ + RTUNI_ALPHA, /* U+001425: CANADIAN SYLLABICS FINAL DOUBLE ACUTE*/ + RTUNI_ALPHA, /* U+001426: CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES*/ + RTUNI_ALPHA, /* U+001427: CANADIAN SYLLABICS FINAL MIDDLE DOT*/ + RTUNI_ALPHA, /* U+001428: CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE*/ + RTUNI_ALPHA, /* U+001429: CANADIAN SYLLABICS FINAL PLUS*/ + RTUNI_ALPHA, /* U+00142a: CANADIAN SYLLABICS FINAL DOWN TACK*/ + RTUNI_ALPHA, /* U+00142b: CANADIAN SYLLABICS EN*/ + RTUNI_ALPHA, /* U+00142c: CANADIAN SYLLABICS IN*/ + RTUNI_ALPHA, /* U+00142d: CANADIAN SYLLABICS ON*/ + RTUNI_ALPHA, /* U+00142e: CANADIAN SYLLABICS AN*/ + RTUNI_ALPHA, /* U+00142f: CANADIAN SYLLABICS PE*/ + RTUNI_ALPHA, /* U+001430: CANADIAN SYLLABICS PAAI*/ + RTUNI_ALPHA, /* U+001431: CANADIAN SYLLABICS PI*/ + RTUNI_ALPHA, /* U+001432: CANADIAN SYLLABICS PII*/ + RTUNI_ALPHA, /* U+001433: CANADIAN SYLLABICS PO*/ + RTUNI_ALPHA, /* U+001434: CANADIAN SYLLABICS POO*/ + RTUNI_ALPHA, /* U+001435: CANADIAN SYLLABICS Y-CREE POO*/ + RTUNI_ALPHA, /* U+001436: CANADIAN SYLLABICS CARRIER HEE*/ + RTUNI_ALPHA, /* U+001437: CANADIAN SYLLABICS CARRIER HI*/ + RTUNI_ALPHA, /* U+001438: CANADIAN SYLLABICS PA*/ + RTUNI_ALPHA, /* U+001439: CANADIAN SYLLABICS PAA*/ + RTUNI_ALPHA, /* U+00143a: CANADIAN SYLLABICS PWE*/ + RTUNI_ALPHA, /* U+00143b: CANADIAN SYLLABICS WEST-CREE PWE*/ + RTUNI_ALPHA, /* U+00143c: CANADIAN SYLLABICS PWI*/ + RTUNI_ALPHA, /* U+00143d: CANADIAN SYLLABICS WEST-CREE PWI*/ + RTUNI_ALPHA, /* U+00143e: CANADIAN SYLLABICS PWII*/ + RTUNI_ALPHA, /* U+00143f: CANADIAN SYLLABICS WEST-CREE PWII*/ + RTUNI_ALPHA, /* U+001440: CANADIAN SYLLABICS PWO*/ + RTUNI_ALPHA, /* U+001441: CANADIAN SYLLABICS WEST-CREE PWO*/ + RTUNI_ALPHA, /* U+001442: CANADIAN SYLLABICS PWOO*/ + RTUNI_ALPHA, /* U+001443: CANADIAN SYLLABICS WEST-CREE PWOO*/ + RTUNI_ALPHA, /* U+001444: CANADIAN SYLLABICS PWA*/ + RTUNI_ALPHA, /* U+001445: CANADIAN SYLLABICS WEST-CREE PWA*/ + RTUNI_ALPHA, /* U+001446: CANADIAN SYLLABICS PWAA*/ + RTUNI_ALPHA, /* U+001447: CANADIAN SYLLABICS WEST-CREE PWAA*/ + RTUNI_ALPHA, /* U+001448: CANADIAN SYLLABICS Y-CREE PWAA*/ + RTUNI_ALPHA, /* U+001449: CANADIAN SYLLABICS P*/ + RTUNI_ALPHA, /* U+00144a: CANADIAN SYLLABICS WEST-CREE P*/ + RTUNI_ALPHA, /* U+00144b: CANADIAN SYLLABICS CARRIER H*/ + RTUNI_ALPHA, /* U+00144c: CANADIAN SYLLABICS TE*/ + RTUNI_ALPHA, /* U+00144d: CANADIAN SYLLABICS TAAI*/ + RTUNI_ALPHA, /* U+00144e: CANADIAN SYLLABICS TI*/ + RTUNI_ALPHA, /* U+00144f: CANADIAN SYLLABICS TII*/ + RTUNI_ALPHA, /* U+001450: CANADIAN SYLLABICS TO*/ + RTUNI_ALPHA, /* U+001451: CANADIAN SYLLABICS TOO*/ + RTUNI_ALPHA, /* U+001452: CANADIAN SYLLABICS Y-CREE TOO*/ + RTUNI_ALPHA, /* U+001453: CANADIAN SYLLABICS CARRIER DEE*/ + RTUNI_ALPHA, /* U+001454: CANADIAN SYLLABICS CARRIER DI*/ + RTUNI_ALPHA, /* U+001455: CANADIAN SYLLABICS TA*/ + RTUNI_ALPHA, /* U+001456: CANADIAN SYLLABICS TAA*/ + RTUNI_ALPHA, /* U+001457: CANADIAN SYLLABICS TWE*/ + RTUNI_ALPHA, /* U+001458: CANADIAN SYLLABICS WEST-CREE TWE*/ + RTUNI_ALPHA, /* U+001459: CANADIAN SYLLABICS TWI*/ + RTUNI_ALPHA, /* U+00145a: CANADIAN SYLLABICS WEST-CREE TWI*/ + RTUNI_ALPHA, /* U+00145b: CANADIAN SYLLABICS TWII*/ + RTUNI_ALPHA, /* U+00145c: CANADIAN SYLLABICS WEST-CREE TWII*/ + RTUNI_ALPHA, /* U+00145d: CANADIAN SYLLABICS TWO*/ + RTUNI_ALPHA, /* U+00145e: CANADIAN SYLLABICS WEST-CREE TWO*/ + RTUNI_ALPHA, /* U+00145f: CANADIAN SYLLABICS TWOO*/ + RTUNI_ALPHA, /* U+001460: CANADIAN SYLLABICS WEST-CREE TWOO*/ + RTUNI_ALPHA, /* U+001461: CANADIAN SYLLABICS TWA*/ + RTUNI_ALPHA, /* U+001462: CANADIAN SYLLABICS WEST-CREE TWA*/ + RTUNI_ALPHA, /* U+001463: CANADIAN SYLLABICS TWAA*/ + RTUNI_ALPHA, /* U+001464: CANADIAN SYLLABICS WEST-CREE TWAA*/ + RTUNI_ALPHA, /* U+001465: CANADIAN SYLLABICS NASKAPI TWAA*/ + RTUNI_ALPHA, /* U+001466: CANADIAN SYLLABICS T*/ + RTUNI_ALPHA, /* U+001467: CANADIAN SYLLABICS TTE*/ + RTUNI_ALPHA, /* U+001468: CANADIAN SYLLABICS TTI*/ + RTUNI_ALPHA, /* U+001469: CANADIAN SYLLABICS TTO*/ + RTUNI_ALPHA, /* U+00146a: CANADIAN SYLLABICS TTA*/ + RTUNI_ALPHA, /* U+00146b: CANADIAN SYLLABICS KE*/ + RTUNI_ALPHA, /* U+00146c: CANADIAN SYLLABICS KAAI*/ + RTUNI_ALPHA, /* U+00146d: CANADIAN SYLLABICS KI*/ + RTUNI_ALPHA, /* U+00146e: CANADIAN SYLLABICS KII*/ + RTUNI_ALPHA, /* U+00146f: CANADIAN SYLLABICS KO*/ + RTUNI_ALPHA, /* U+001470: CANADIAN SYLLABICS KOO*/ + RTUNI_ALPHA, /* U+001471: CANADIAN SYLLABICS Y-CREE KOO*/ + RTUNI_ALPHA, /* U+001472: CANADIAN SYLLABICS KA*/ + RTUNI_ALPHA, /* U+001473: CANADIAN SYLLABICS KAA*/ + RTUNI_ALPHA, /* U+001474: CANADIAN SYLLABICS KWE*/ + RTUNI_ALPHA, /* U+001475: CANADIAN SYLLABICS WEST-CREE KWE*/ + RTUNI_ALPHA, /* U+001476: CANADIAN SYLLABICS KWI*/ + RTUNI_ALPHA, /* U+001477: CANADIAN SYLLABICS WEST-CREE KWI*/ + RTUNI_ALPHA, /* U+001478: CANADIAN SYLLABICS KWII*/ + RTUNI_ALPHA, /* U+001479: CANADIAN SYLLABICS WEST-CREE KWII*/ + RTUNI_ALPHA, /* U+00147a: CANADIAN SYLLABICS KWO*/ + RTUNI_ALPHA, /* U+00147b: CANADIAN SYLLABICS WEST-CREE KWO*/ + RTUNI_ALPHA, /* U+00147c: CANADIAN SYLLABICS KWOO*/ + RTUNI_ALPHA, /* U+00147d: CANADIAN SYLLABICS WEST-CREE KWOO*/ + RTUNI_ALPHA, /* U+00147e: CANADIAN SYLLABICS KWA*/ + RTUNI_ALPHA, /* U+00147f: CANADIAN SYLLABICS WEST-CREE KWA*/ + RTUNI_ALPHA, /* U+001480: CANADIAN SYLLABICS KWAA*/ + RTUNI_ALPHA, /* U+001481: CANADIAN SYLLABICS WEST-CREE KWAA*/ + RTUNI_ALPHA, /* U+001482: CANADIAN SYLLABICS NASKAPI KWAA*/ + RTUNI_ALPHA, /* U+001483: CANADIAN SYLLABICS K*/ + RTUNI_ALPHA, /* U+001484: CANADIAN SYLLABICS KW*/ + RTUNI_ALPHA, /* U+001485: CANADIAN SYLLABICS SOUTH-SLAVEY KEH*/ + RTUNI_ALPHA, /* U+001486: CANADIAN SYLLABICS SOUTH-SLAVEY KIH*/ + RTUNI_ALPHA, /* U+001487: CANADIAN SYLLABICS SOUTH-SLAVEY KOH*/ + RTUNI_ALPHA, /* U+001488: CANADIAN SYLLABICS SOUTH-SLAVEY KAH*/ + RTUNI_ALPHA, /* U+001489: CANADIAN SYLLABICS CE*/ + RTUNI_ALPHA, /* U+00148a: CANADIAN SYLLABICS CAAI*/ + RTUNI_ALPHA, /* U+00148b: CANADIAN SYLLABICS CI*/ + RTUNI_ALPHA, /* U+00148c: CANADIAN SYLLABICS CII*/ + RTUNI_ALPHA, /* U+00148d: CANADIAN SYLLABICS CO*/ + RTUNI_ALPHA, /* U+00148e: CANADIAN SYLLABICS COO*/ + RTUNI_ALPHA, /* U+00148f: CANADIAN SYLLABICS Y-CREE COO*/ + RTUNI_ALPHA, /* U+001490: CANADIAN SYLLABICS CA*/ + RTUNI_ALPHA, /* U+001491: CANADIAN SYLLABICS CAA*/ + RTUNI_ALPHA, /* U+001492: CANADIAN SYLLABICS CWE*/ + RTUNI_ALPHA, /* U+001493: CANADIAN SYLLABICS WEST-CREE CWE*/ + RTUNI_ALPHA, /* U+001494: CANADIAN SYLLABICS CWI*/ + RTUNI_ALPHA, /* U+001495: CANADIAN SYLLABICS WEST-CREE CWI*/ + RTUNI_ALPHA, /* U+001496: CANADIAN SYLLABICS CWII*/ + RTUNI_ALPHA, /* U+001497: CANADIAN SYLLABICS WEST-CREE CWII*/ + RTUNI_ALPHA, /* U+001498: CANADIAN SYLLABICS CWO*/ + RTUNI_ALPHA, /* U+001499: CANADIAN SYLLABICS WEST-CREE CWO*/ + RTUNI_ALPHA, /* U+00149a: CANADIAN SYLLABICS CWOO*/ + RTUNI_ALPHA, /* U+00149b: CANADIAN SYLLABICS WEST-CREE CWOO*/ + RTUNI_ALPHA, /* U+00149c: CANADIAN SYLLABICS CWA*/ + RTUNI_ALPHA, /* U+00149d: CANADIAN SYLLABICS WEST-CREE CWA*/ + RTUNI_ALPHA, /* U+00149e: CANADIAN SYLLABICS CWAA*/ + RTUNI_ALPHA, /* U+00149f: CANADIAN SYLLABICS WEST-CREE CWAA*/ + RTUNI_ALPHA, /* U+0014a0: CANADIAN SYLLABICS NASKAPI CWAA*/ + RTUNI_ALPHA, /* U+0014a1: CANADIAN SYLLABICS C*/ + RTUNI_ALPHA, /* U+0014a2: CANADIAN SYLLABICS SAYISI TH*/ + RTUNI_ALPHA, /* U+0014a3: CANADIAN SYLLABICS ME*/ + RTUNI_ALPHA, /* U+0014a4: CANADIAN SYLLABICS MAAI*/ + RTUNI_ALPHA, /* U+0014a5: CANADIAN SYLLABICS MI*/ + RTUNI_ALPHA, /* U+0014a6: CANADIAN SYLLABICS MII*/ + RTUNI_ALPHA, /* U+0014a7: CANADIAN SYLLABICS MO*/ + RTUNI_ALPHA, /* U+0014a8: CANADIAN SYLLABICS MOO*/ + RTUNI_ALPHA, /* U+0014a9: CANADIAN SYLLABICS Y-CREE MOO*/ + RTUNI_ALPHA, /* U+0014aa: CANADIAN SYLLABICS MA*/ + RTUNI_ALPHA, /* U+0014ab: CANADIAN SYLLABICS MAA*/ + RTUNI_ALPHA, /* U+0014ac: CANADIAN SYLLABICS MWE*/ + RTUNI_ALPHA, /* U+0014ad: CANADIAN SYLLABICS WEST-CREE MWE*/ + RTUNI_ALPHA, /* U+0014ae: CANADIAN SYLLABICS MWI*/ + RTUNI_ALPHA, /* U+0014af: CANADIAN SYLLABICS WEST-CREE MWI*/ + RTUNI_ALPHA, /* U+0014b0: CANADIAN SYLLABICS MWII*/ + RTUNI_ALPHA, /* U+0014b1: CANADIAN SYLLABICS WEST-CREE MWII*/ + RTUNI_ALPHA, /* U+0014b2: CANADIAN SYLLABICS MWO*/ + RTUNI_ALPHA, /* U+0014b3: CANADIAN SYLLABICS WEST-CREE MWO*/ + RTUNI_ALPHA, /* U+0014b4: CANADIAN SYLLABICS MWOO*/ + RTUNI_ALPHA, /* U+0014b5: CANADIAN SYLLABICS WEST-CREE MWOO*/ + RTUNI_ALPHA, /* U+0014b6: CANADIAN SYLLABICS MWA*/ + RTUNI_ALPHA, /* U+0014b7: CANADIAN SYLLABICS WEST-CREE MWA*/ + RTUNI_ALPHA, /* U+0014b8: CANADIAN SYLLABICS MWAA*/ + RTUNI_ALPHA, /* U+0014b9: CANADIAN SYLLABICS WEST-CREE MWAA*/ + RTUNI_ALPHA, /* U+0014ba: CANADIAN SYLLABICS NASKAPI MWAA*/ + RTUNI_ALPHA, /* U+0014bb: CANADIAN SYLLABICS M*/ + RTUNI_ALPHA, /* U+0014bc: CANADIAN SYLLABICS WEST-CREE M*/ + RTUNI_ALPHA, /* U+0014bd: CANADIAN SYLLABICS MH*/ + RTUNI_ALPHA, /* U+0014be: CANADIAN SYLLABICS ATHAPASCAN M*/ + RTUNI_ALPHA, /* U+0014bf: CANADIAN SYLLABICS SAYISI M*/ + RTUNI_ALPHA, /* U+0014c0: CANADIAN SYLLABICS NE*/ + RTUNI_ALPHA, /* U+0014c1: CANADIAN SYLLABICS NAAI*/ + RTUNI_ALPHA, /* U+0014c2: CANADIAN SYLLABICS NI*/ + RTUNI_ALPHA, /* U+0014c3: CANADIAN SYLLABICS NII*/ + RTUNI_ALPHA, /* U+0014c4: CANADIAN SYLLABICS NO*/ + RTUNI_ALPHA, /* U+0014c5: CANADIAN SYLLABICS NOO*/ + RTUNI_ALPHA, /* U+0014c6: CANADIAN SYLLABICS Y-CREE NOO*/ + RTUNI_ALPHA, /* U+0014c7: CANADIAN SYLLABICS NA*/ + RTUNI_ALPHA, /* U+0014c8: CANADIAN SYLLABICS NAA*/ + RTUNI_ALPHA, /* U+0014c9: CANADIAN SYLLABICS NWE*/ + RTUNI_ALPHA, /* U+0014ca: CANADIAN SYLLABICS WEST-CREE NWE*/ + RTUNI_ALPHA, /* U+0014cb: CANADIAN SYLLABICS NWA*/ + RTUNI_ALPHA, /* U+0014cc: CANADIAN SYLLABICS WEST-CREE NWA*/ + RTUNI_ALPHA, /* U+0014cd: CANADIAN SYLLABICS NWAA*/ + RTUNI_ALPHA, /* U+0014ce: CANADIAN SYLLABICS WEST-CREE NWAA*/ + RTUNI_ALPHA, /* U+0014cf: CANADIAN SYLLABICS NASKAPI NWAA*/ + RTUNI_ALPHA, /* U+0014d0: CANADIAN SYLLABICS N*/ + RTUNI_ALPHA, /* U+0014d1: CANADIAN SYLLABICS CARRIER NG*/ + RTUNI_ALPHA, /* U+0014d2: CANADIAN SYLLABICS NH*/ + RTUNI_ALPHA, /* U+0014d3: CANADIAN SYLLABICS LE*/ + RTUNI_ALPHA, /* U+0014d4: CANADIAN SYLLABICS LAAI*/ + RTUNI_ALPHA, /* U+0014d5: CANADIAN SYLLABICS LI*/ + RTUNI_ALPHA, /* U+0014d6: CANADIAN SYLLABICS LII*/ + RTUNI_ALPHA, /* U+0014d7: CANADIAN SYLLABICS LO*/ + RTUNI_ALPHA, /* U+0014d8: CANADIAN SYLLABICS LOO*/ + RTUNI_ALPHA, /* U+0014d9: CANADIAN SYLLABICS Y-CREE LOO*/ + RTUNI_ALPHA, /* U+0014da: CANADIAN SYLLABICS LA*/ + RTUNI_ALPHA, /* U+0014db: CANADIAN SYLLABICS LAA*/ + RTUNI_ALPHA, /* U+0014dc: CANADIAN SYLLABICS LWE*/ + RTUNI_ALPHA, /* U+0014dd: CANADIAN SYLLABICS WEST-CREE LWE*/ + RTUNI_ALPHA, /* U+0014de: CANADIAN SYLLABICS LWI*/ + RTUNI_ALPHA, /* U+0014df: CANADIAN SYLLABICS WEST-CREE LWI*/ + RTUNI_ALPHA, /* U+0014e0: CANADIAN SYLLABICS LWII*/ + RTUNI_ALPHA, /* U+0014e1: CANADIAN SYLLABICS WEST-CREE LWII*/ + RTUNI_ALPHA, /* U+0014e2: CANADIAN SYLLABICS LWO*/ + RTUNI_ALPHA, /* U+0014e3: CANADIAN SYLLABICS WEST-CREE LWO*/ + RTUNI_ALPHA, /* U+0014e4: CANADIAN SYLLABICS LWOO*/ + RTUNI_ALPHA, /* U+0014e5: CANADIAN SYLLABICS WEST-CREE LWOO*/ + RTUNI_ALPHA, /* U+0014e6: CANADIAN SYLLABICS LWA*/ + RTUNI_ALPHA, /* U+0014e7: CANADIAN SYLLABICS WEST-CREE LWA*/ + RTUNI_ALPHA, /* U+0014e8: CANADIAN SYLLABICS LWAA*/ + RTUNI_ALPHA, /* U+0014e9: CANADIAN SYLLABICS WEST-CREE LWAA*/ + RTUNI_ALPHA, /* U+0014ea: CANADIAN SYLLABICS L*/ + RTUNI_ALPHA, /* U+0014eb: CANADIAN SYLLABICS WEST-CREE L*/ + RTUNI_ALPHA, /* U+0014ec: CANADIAN SYLLABICS MEDIAL L*/ + RTUNI_ALPHA, /* U+0014ed: CANADIAN SYLLABICS SE*/ + RTUNI_ALPHA, /* U+0014ee: CANADIAN SYLLABICS SAAI*/ + RTUNI_ALPHA, /* U+0014ef: CANADIAN SYLLABICS SI*/ + RTUNI_ALPHA, /* U+0014f0: CANADIAN SYLLABICS SII*/ + RTUNI_ALPHA, /* U+0014f1: CANADIAN SYLLABICS SO*/ + RTUNI_ALPHA, /* U+0014f2: CANADIAN SYLLABICS SOO*/ + RTUNI_ALPHA, /* U+0014f3: CANADIAN SYLLABICS Y-CREE SOO*/ + RTUNI_ALPHA, /* U+0014f4: CANADIAN SYLLABICS SA*/ + RTUNI_ALPHA, /* U+0014f5: CANADIAN SYLLABICS SAA*/ + RTUNI_ALPHA, /* U+0014f6: CANADIAN SYLLABICS SWE*/ + RTUNI_ALPHA, /* U+0014f7: CANADIAN SYLLABICS WEST-CREE SWE*/ + RTUNI_ALPHA, /* U+0014f8: CANADIAN SYLLABICS SWI*/ + RTUNI_ALPHA, /* U+0014f9: CANADIAN SYLLABICS WEST-CREE SWI*/ + RTUNI_ALPHA, /* U+0014fa: CANADIAN SYLLABICS SWII*/ + RTUNI_ALPHA, /* U+0014fb: CANADIAN SYLLABICS WEST-CREE SWII*/ + RTUNI_ALPHA, /* U+0014fc: CANADIAN SYLLABICS SWO*/ + RTUNI_ALPHA, /* U+0014fd: CANADIAN SYLLABICS WEST-CREE SWO*/ + RTUNI_ALPHA, /* U+0014fe: CANADIAN SYLLABICS SWOO*/ + RTUNI_ALPHA, /* U+0014ff: CANADIAN SYLLABICS WEST-CREE SWOO*/ + RTUNI_ALPHA, /* U+001500: CANADIAN SYLLABICS SWA*/ + RTUNI_ALPHA, /* U+001501: CANADIAN SYLLABICS WEST-CREE SWA*/ + RTUNI_ALPHA, /* U+001502: CANADIAN SYLLABICS SWAA*/ + RTUNI_ALPHA, /* U+001503: CANADIAN SYLLABICS WEST-CREE SWAA*/ + RTUNI_ALPHA, /* U+001504: CANADIAN SYLLABICS NASKAPI SWAA*/ + RTUNI_ALPHA, /* U+001505: CANADIAN SYLLABICS S*/ + RTUNI_ALPHA, /* U+001506: CANADIAN SYLLABICS ATHAPASCAN S*/ + RTUNI_ALPHA, /* U+001507: CANADIAN SYLLABICS SW*/ + RTUNI_ALPHA, /* U+001508: CANADIAN SYLLABICS BLACKFOOT S*/ + RTUNI_ALPHA, /* U+001509: CANADIAN SYLLABICS MOOSE-CREE SK*/ + RTUNI_ALPHA, /* U+00150a: CANADIAN SYLLABICS NASKAPI SKW*/ + RTUNI_ALPHA, /* U+00150b: CANADIAN SYLLABICS NASKAPI S-W*/ + RTUNI_ALPHA, /* U+00150c: CANADIAN SYLLABICS NASKAPI SPWA*/ + RTUNI_ALPHA, /* U+00150d: CANADIAN SYLLABICS NASKAPI STWA*/ + RTUNI_ALPHA, /* U+00150e: CANADIAN SYLLABICS NASKAPI SKWA*/ + RTUNI_ALPHA, /* U+00150f: CANADIAN SYLLABICS NASKAPI SCWA*/ + RTUNI_ALPHA, /* U+001510: CANADIAN SYLLABICS SHE*/ + RTUNI_ALPHA, /* U+001511: CANADIAN SYLLABICS SHI*/ + RTUNI_ALPHA, /* U+001512: CANADIAN SYLLABICS SHII*/ + RTUNI_ALPHA, /* U+001513: CANADIAN SYLLABICS SHO*/ + RTUNI_ALPHA, /* U+001514: CANADIAN SYLLABICS SHOO*/ + RTUNI_ALPHA, /* U+001515: CANADIAN SYLLABICS SHA*/ + RTUNI_ALPHA, /* U+001516: CANADIAN SYLLABICS SHAA*/ + RTUNI_ALPHA, /* U+001517: CANADIAN SYLLABICS SHWE*/ + RTUNI_ALPHA, /* U+001518: CANADIAN SYLLABICS WEST-CREE SHWE*/ + RTUNI_ALPHA, /* U+001519: CANADIAN SYLLABICS SHWI*/ + RTUNI_ALPHA, /* U+00151a: CANADIAN SYLLABICS WEST-CREE SHWI*/ + RTUNI_ALPHA, /* U+00151b: CANADIAN SYLLABICS SHWII*/ + RTUNI_ALPHA, /* U+00151c: CANADIAN SYLLABICS WEST-CREE SHWII*/ + RTUNI_ALPHA, /* U+00151d: CANADIAN SYLLABICS SHWO*/ + RTUNI_ALPHA, /* U+00151e: CANADIAN SYLLABICS WEST-CREE SHWO*/ + RTUNI_ALPHA, /* U+00151f: CANADIAN SYLLABICS SHWOO*/ + RTUNI_ALPHA, /* U+001520: CANADIAN SYLLABICS WEST-CREE SHWOO*/ + RTUNI_ALPHA, /* U+001521: CANADIAN SYLLABICS SHWA*/ + RTUNI_ALPHA, /* U+001522: CANADIAN SYLLABICS WEST-CREE SHWA*/ + RTUNI_ALPHA, /* U+001523: CANADIAN SYLLABICS SHWAA*/ + RTUNI_ALPHA, /* U+001524: CANADIAN SYLLABICS WEST-CREE SHWAA*/ + RTUNI_ALPHA, /* U+001525: CANADIAN SYLLABICS SH*/ + RTUNI_ALPHA, /* U+001526: CANADIAN SYLLABICS YE*/ + RTUNI_ALPHA, /* U+001527: CANADIAN SYLLABICS YAAI*/ + RTUNI_ALPHA, /* U+001528: CANADIAN SYLLABICS YI*/ + RTUNI_ALPHA, /* U+001529: CANADIAN SYLLABICS YII*/ + RTUNI_ALPHA, /* U+00152a: CANADIAN SYLLABICS YO*/ + RTUNI_ALPHA, /* U+00152b: CANADIAN SYLLABICS YOO*/ + RTUNI_ALPHA, /* U+00152c: CANADIAN SYLLABICS Y-CREE YOO*/ + RTUNI_ALPHA, /* U+00152d: CANADIAN SYLLABICS YA*/ + RTUNI_ALPHA, /* U+00152e: CANADIAN SYLLABICS YAA*/ + RTUNI_ALPHA, /* U+00152f: CANADIAN SYLLABICS YWE*/ + RTUNI_ALPHA, /* U+001530: CANADIAN SYLLABICS WEST-CREE YWE*/ + RTUNI_ALPHA, /* U+001531: CANADIAN SYLLABICS YWI*/ + RTUNI_ALPHA, /* U+001532: CANADIAN SYLLABICS WEST-CREE YWI*/ + RTUNI_ALPHA, /* U+001533: CANADIAN SYLLABICS YWII*/ + RTUNI_ALPHA, /* U+001534: CANADIAN SYLLABICS WEST-CREE YWII*/ + RTUNI_ALPHA, /* U+001535: CANADIAN SYLLABICS YWO*/ + RTUNI_ALPHA, /* U+001536: CANADIAN SYLLABICS WEST-CREE YWO*/ + RTUNI_ALPHA, /* U+001537: CANADIAN SYLLABICS YWOO*/ + RTUNI_ALPHA, /* U+001538: CANADIAN SYLLABICS WEST-CREE YWOO*/ + RTUNI_ALPHA, /* U+001539: CANADIAN SYLLABICS YWA*/ + RTUNI_ALPHA, /* U+00153a: CANADIAN SYLLABICS WEST-CREE YWA*/ + RTUNI_ALPHA, /* U+00153b: CANADIAN SYLLABICS YWAA*/ + RTUNI_ALPHA, /* U+00153c: CANADIAN SYLLABICS WEST-CREE YWAA*/ + RTUNI_ALPHA, /* U+00153d: CANADIAN SYLLABICS NASKAPI YWAA*/ + RTUNI_ALPHA, /* U+00153e: CANADIAN SYLLABICS Y*/ + RTUNI_ALPHA, /* U+00153f: CANADIAN SYLLABICS BIBLE-CREE Y*/ + RTUNI_ALPHA, /* U+001540: CANADIAN SYLLABICS WEST-CREE Y*/ + RTUNI_ALPHA, /* U+001541: CANADIAN SYLLABICS SAYISI YI*/ + RTUNI_ALPHA, /* U+001542: CANADIAN SYLLABICS RE*/ + RTUNI_ALPHA, /* U+001543: CANADIAN SYLLABICS R-CREE RE*/ + RTUNI_ALPHA, /* U+001544: CANADIAN SYLLABICS WEST-CREE LE*/ + RTUNI_ALPHA, /* U+001545: CANADIAN SYLLABICS RAAI*/ + RTUNI_ALPHA, /* U+001546: CANADIAN SYLLABICS RI*/ + RTUNI_ALPHA, /* U+001547: CANADIAN SYLLABICS RII*/ + RTUNI_ALPHA, /* U+001548: CANADIAN SYLLABICS RO*/ + RTUNI_ALPHA, /* U+001549: CANADIAN SYLLABICS ROO*/ + RTUNI_ALPHA, /* U+00154a: CANADIAN SYLLABICS WEST-CREE LO*/ + RTUNI_ALPHA, /* U+00154b: CANADIAN SYLLABICS RA*/ + RTUNI_ALPHA, /* U+00154c: CANADIAN SYLLABICS RAA*/ + RTUNI_ALPHA, /* U+00154d: CANADIAN SYLLABICS WEST-CREE LA*/ + RTUNI_ALPHA, /* U+00154e: CANADIAN SYLLABICS RWAA*/ + RTUNI_ALPHA, /* U+00154f: CANADIAN SYLLABICS WEST-CREE RWAA*/ + RTUNI_ALPHA, /* U+001550: CANADIAN SYLLABICS R*/ + RTUNI_ALPHA, /* U+001551: CANADIAN SYLLABICS WEST-CREE R*/ + RTUNI_ALPHA, /* U+001552: CANADIAN SYLLABICS MEDIAL R*/ + RTUNI_ALPHA, /* U+001553: CANADIAN SYLLABICS FE*/ + RTUNI_ALPHA, /* U+001554: CANADIAN SYLLABICS FAAI*/ + RTUNI_ALPHA, /* U+001555: CANADIAN SYLLABICS FI*/ + RTUNI_ALPHA, /* U+001556: CANADIAN SYLLABICS FII*/ + RTUNI_ALPHA, /* U+001557: CANADIAN SYLLABICS FO*/ + RTUNI_ALPHA, /* U+001558: CANADIAN SYLLABICS FOO*/ + RTUNI_ALPHA, /* U+001559: CANADIAN SYLLABICS FA*/ + RTUNI_ALPHA, /* U+00155a: CANADIAN SYLLABICS FAA*/ + RTUNI_ALPHA, /* U+00155b: CANADIAN SYLLABICS FWAA*/ + RTUNI_ALPHA, /* U+00155c: CANADIAN SYLLABICS WEST-CREE FWAA*/ + RTUNI_ALPHA, /* U+00155d: CANADIAN SYLLABICS F*/ + RTUNI_ALPHA, /* U+00155e: CANADIAN SYLLABICS THE*/ + RTUNI_ALPHA, /* U+00155f: CANADIAN SYLLABICS N-CREE THE*/ + RTUNI_ALPHA, /* U+001560: CANADIAN SYLLABICS THI*/ + RTUNI_ALPHA, /* U+001561: CANADIAN SYLLABICS N-CREE THI*/ + RTUNI_ALPHA, /* U+001562: CANADIAN SYLLABICS THII*/ + RTUNI_ALPHA, /* U+001563: CANADIAN SYLLABICS N-CREE THII*/ + RTUNI_ALPHA, /* U+001564: CANADIAN SYLLABICS THO*/ + RTUNI_ALPHA, /* U+001565: CANADIAN SYLLABICS THOO*/ + RTUNI_ALPHA, /* U+001566: CANADIAN SYLLABICS THA*/ + RTUNI_ALPHA, /* U+001567: CANADIAN SYLLABICS THAA*/ + RTUNI_ALPHA, /* U+001568: CANADIAN SYLLABICS THWAA*/ + RTUNI_ALPHA, /* U+001569: CANADIAN SYLLABICS WEST-CREE THWAA*/ + RTUNI_ALPHA, /* U+00156a: CANADIAN SYLLABICS TH*/ + RTUNI_ALPHA, /* U+00156b: CANADIAN SYLLABICS TTHE*/ + RTUNI_ALPHA, /* U+00156c: CANADIAN SYLLABICS TTHI*/ + RTUNI_ALPHA, /* U+00156d: CANADIAN SYLLABICS TTHO*/ + RTUNI_ALPHA, /* U+00156e: CANADIAN SYLLABICS TTHA*/ + RTUNI_ALPHA, /* U+00156f: CANADIAN SYLLABICS TTH*/ + RTUNI_ALPHA, /* U+001570: CANADIAN SYLLABICS TYE*/ + RTUNI_ALPHA, /* U+001571: CANADIAN SYLLABICS TYI*/ + RTUNI_ALPHA, /* U+001572: CANADIAN SYLLABICS TYO*/ + RTUNI_ALPHA, /* U+001573: CANADIAN SYLLABICS TYA*/ + RTUNI_ALPHA, /* U+001574: CANADIAN SYLLABICS NUNAVIK HE*/ + RTUNI_ALPHA, /* U+001575: CANADIAN SYLLABICS NUNAVIK HI*/ + RTUNI_ALPHA, /* U+001576: CANADIAN SYLLABICS NUNAVIK HII*/ + RTUNI_ALPHA, /* U+001577: CANADIAN SYLLABICS NUNAVIK HO*/ + RTUNI_ALPHA, /* U+001578: CANADIAN SYLLABICS NUNAVIK HOO*/ + RTUNI_ALPHA, /* U+001579: CANADIAN SYLLABICS NUNAVIK HA*/ + RTUNI_ALPHA, /* U+00157a: CANADIAN SYLLABICS NUNAVIK HAA*/ + RTUNI_ALPHA, /* U+00157b: CANADIAN SYLLABICS NUNAVIK H*/ + RTUNI_ALPHA, /* U+00157c: CANADIAN SYLLABICS NUNAVUT H*/ + RTUNI_ALPHA, /* U+00157d: CANADIAN SYLLABICS HK*/ + RTUNI_ALPHA, /* U+00157e: CANADIAN SYLLABICS QAAI*/ + RTUNI_ALPHA, /* U+00157f: CANADIAN SYLLABICS QI*/ + RTUNI_ALPHA, /* U+001580: CANADIAN SYLLABICS QII*/ + RTUNI_ALPHA, /* U+001581: CANADIAN SYLLABICS QO*/ + RTUNI_ALPHA, /* U+001582: CANADIAN SYLLABICS QOO*/ + RTUNI_ALPHA, /* U+001583: CANADIAN SYLLABICS QA*/ + RTUNI_ALPHA, /* U+001584: CANADIAN SYLLABICS QAA*/ + RTUNI_ALPHA, /* U+001585: CANADIAN SYLLABICS Q*/ + RTUNI_ALPHA, /* U+001586: CANADIAN SYLLABICS TLHE*/ + RTUNI_ALPHA, /* U+001587: CANADIAN SYLLABICS TLHI*/ + RTUNI_ALPHA, /* U+001588: CANADIAN SYLLABICS TLHO*/ + RTUNI_ALPHA, /* U+001589: CANADIAN SYLLABICS TLHA*/ + RTUNI_ALPHA, /* U+00158a: CANADIAN SYLLABICS WEST-CREE RE*/ + RTUNI_ALPHA, /* U+00158b: CANADIAN SYLLABICS WEST-CREE RI*/ + RTUNI_ALPHA, /* U+00158c: CANADIAN SYLLABICS WEST-CREE RO*/ + RTUNI_ALPHA, /* U+00158d: CANADIAN SYLLABICS WEST-CREE RA*/ + RTUNI_ALPHA, /* U+00158e: CANADIAN SYLLABICS NGAAI*/ + RTUNI_ALPHA, /* U+00158f: CANADIAN SYLLABICS NGI*/ + RTUNI_ALPHA, /* U+001590: CANADIAN SYLLABICS NGII*/ + RTUNI_ALPHA, /* U+001591: CANADIAN SYLLABICS NGO*/ + RTUNI_ALPHA, /* U+001592: CANADIAN SYLLABICS NGOO*/ + RTUNI_ALPHA, /* U+001593: CANADIAN SYLLABICS NGA*/ + RTUNI_ALPHA, /* U+001594: CANADIAN SYLLABICS NGAA*/ + RTUNI_ALPHA, /* U+001595: CANADIAN SYLLABICS NG*/ + RTUNI_ALPHA, /* U+001596: CANADIAN SYLLABICS NNG*/ + RTUNI_ALPHA, /* U+001597: CANADIAN SYLLABICS SAYISI SHE*/ + RTUNI_ALPHA, /* U+001598: CANADIAN SYLLABICS SAYISI SHI*/ + RTUNI_ALPHA, /* U+001599: CANADIAN SYLLABICS SAYISI SHO*/ + RTUNI_ALPHA, /* U+00159a: CANADIAN SYLLABICS SAYISI SHA*/ + RTUNI_ALPHA, /* U+00159b: CANADIAN SYLLABICS WOODS-CREE THE*/ + RTUNI_ALPHA, /* U+00159c: CANADIAN SYLLABICS WOODS-CREE THI*/ + RTUNI_ALPHA, /* U+00159d: CANADIAN SYLLABICS WOODS-CREE THO*/ + RTUNI_ALPHA, /* U+00159e: CANADIAN SYLLABICS WOODS-CREE THA*/ + RTUNI_ALPHA, /* U+00159f: CANADIAN SYLLABICS WOODS-CREE TH*/ + RTUNI_ALPHA, /* U+0015a0: CANADIAN SYLLABICS LHI*/ + RTUNI_ALPHA, /* U+0015a1: CANADIAN SYLLABICS LHII*/ + RTUNI_ALPHA, /* U+0015a2: CANADIAN SYLLABICS LHO*/ + RTUNI_ALPHA, /* U+0015a3: CANADIAN SYLLABICS LHOO*/ + RTUNI_ALPHA, /* U+0015a4: CANADIAN SYLLABICS LHA*/ + RTUNI_ALPHA, /* U+0015a5: CANADIAN SYLLABICS LHAA*/ + RTUNI_ALPHA, /* U+0015a6: CANADIAN SYLLABICS LH*/ + RTUNI_ALPHA, /* U+0015a7: CANADIAN SYLLABICS TH-CREE THE*/ + RTUNI_ALPHA, /* U+0015a8: CANADIAN SYLLABICS TH-CREE THI*/ + RTUNI_ALPHA, /* U+0015a9: CANADIAN SYLLABICS TH-CREE THII*/ + RTUNI_ALPHA, /* U+0015aa: CANADIAN SYLLABICS TH-CREE THO*/ + RTUNI_ALPHA, /* U+0015ab: CANADIAN SYLLABICS TH-CREE THOO*/ + RTUNI_ALPHA, /* U+0015ac: CANADIAN SYLLABICS TH-CREE THA*/ + RTUNI_ALPHA, /* U+0015ad: CANADIAN SYLLABICS TH-CREE THAA*/ + RTUNI_ALPHA, /* U+0015ae: CANADIAN SYLLABICS TH-CREE TH*/ + RTUNI_ALPHA, /* U+0015af: CANADIAN SYLLABICS AIVILIK B*/ + RTUNI_ALPHA, /* U+0015b0: CANADIAN SYLLABICS BLACKFOOT E*/ + RTUNI_ALPHA, /* U+0015b1: CANADIAN SYLLABICS BLACKFOOT I*/ + RTUNI_ALPHA, /* U+0015b2: CANADIAN SYLLABICS BLACKFOOT O*/ + RTUNI_ALPHA, /* U+0015b3: CANADIAN SYLLABICS BLACKFOOT A*/ + RTUNI_ALPHA, /* U+0015b4: CANADIAN SYLLABICS BLACKFOOT WE*/ + RTUNI_ALPHA, /* U+0015b5: CANADIAN SYLLABICS BLACKFOOT WI*/ + RTUNI_ALPHA, /* U+0015b6: CANADIAN SYLLABICS BLACKFOOT WO*/ + RTUNI_ALPHA, /* U+0015b7: CANADIAN SYLLABICS BLACKFOOT WA*/ + RTUNI_ALPHA, /* U+0015b8: CANADIAN SYLLABICS BLACKFOOT NE*/ + RTUNI_ALPHA, /* U+0015b9: CANADIAN SYLLABICS BLACKFOOT NI*/ + RTUNI_ALPHA, /* U+0015ba: CANADIAN SYLLABICS BLACKFOOT NO*/ + RTUNI_ALPHA, /* U+0015bb: CANADIAN SYLLABICS BLACKFOOT NA*/ + RTUNI_ALPHA, /* U+0015bc: CANADIAN SYLLABICS BLACKFOOT KE*/ + RTUNI_ALPHA, /* U+0015bd: CANADIAN SYLLABICS BLACKFOOT KI*/ + RTUNI_ALPHA, /* U+0015be: CANADIAN SYLLABICS BLACKFOOT KO*/ + RTUNI_ALPHA, /* U+0015bf: CANADIAN SYLLABICS BLACKFOOT KA*/ + RTUNI_ALPHA, /* U+0015c0: CANADIAN SYLLABICS SAYISI HE*/ + RTUNI_ALPHA, /* U+0015c1: CANADIAN SYLLABICS SAYISI HI*/ + RTUNI_ALPHA, /* U+0015c2: CANADIAN SYLLABICS SAYISI HO*/ + RTUNI_ALPHA, /* U+0015c3: CANADIAN SYLLABICS SAYISI HA*/ + RTUNI_ALPHA, /* U+0015c4: CANADIAN SYLLABICS CARRIER GHU*/ + RTUNI_ALPHA, /* U+0015c5: CANADIAN SYLLABICS CARRIER GHO*/ + RTUNI_ALPHA, /* U+0015c6: CANADIAN SYLLABICS CARRIER GHE*/ + RTUNI_ALPHA, /* U+0015c7: CANADIAN SYLLABICS CARRIER GHEE*/ + RTUNI_ALPHA, /* U+0015c8: CANADIAN SYLLABICS CARRIER GHI*/ + RTUNI_ALPHA, /* U+0015c9: CANADIAN SYLLABICS CARRIER GHA*/ + RTUNI_ALPHA, /* U+0015ca: CANADIAN SYLLABICS CARRIER RU*/ + RTUNI_ALPHA, /* U+0015cb: CANADIAN SYLLABICS CARRIER RO*/ + RTUNI_ALPHA, /* U+0015cc: CANADIAN SYLLABICS CARRIER RE*/ + RTUNI_ALPHA, /* U+0015cd: CANADIAN SYLLABICS CARRIER REE*/ + RTUNI_ALPHA, /* U+0015ce: CANADIAN SYLLABICS CARRIER RI*/ + RTUNI_ALPHA, /* U+0015cf: CANADIAN SYLLABICS CARRIER RA*/ + RTUNI_ALPHA, /* U+0015d0: CANADIAN SYLLABICS CARRIER WU*/ + RTUNI_ALPHA, /* U+0015d1: CANADIAN SYLLABICS CARRIER WO*/ + RTUNI_ALPHA, /* U+0015d2: CANADIAN SYLLABICS CARRIER WE*/ + RTUNI_ALPHA, /* U+0015d3: CANADIAN SYLLABICS CARRIER WEE*/ + RTUNI_ALPHA, /* U+0015d4: CANADIAN SYLLABICS CARRIER WI*/ + RTUNI_ALPHA, /* U+0015d5: CANADIAN SYLLABICS CARRIER WA*/ + RTUNI_ALPHA, /* U+0015d6: CANADIAN SYLLABICS CARRIER HWU*/ + RTUNI_ALPHA, /* U+0015d7: CANADIAN SYLLABICS CARRIER HWO*/ + RTUNI_ALPHA, /* U+0015d8: CANADIAN SYLLABICS CARRIER HWE*/ + RTUNI_ALPHA, /* U+0015d9: CANADIAN SYLLABICS CARRIER HWEE*/ + RTUNI_ALPHA, /* U+0015da: CANADIAN SYLLABICS CARRIER HWI*/ + RTUNI_ALPHA, /* U+0015db: CANADIAN SYLLABICS CARRIER HWA*/ + RTUNI_ALPHA, /* U+0015dc: CANADIAN SYLLABICS CARRIER THU*/ + RTUNI_ALPHA, /* U+0015dd: CANADIAN SYLLABICS CARRIER THO*/ + RTUNI_ALPHA, /* U+0015de: CANADIAN SYLLABICS CARRIER THE*/ + RTUNI_ALPHA, /* U+0015df: CANADIAN SYLLABICS CARRIER THEE*/ + RTUNI_ALPHA, /* U+0015e0: CANADIAN SYLLABICS CARRIER THI*/ + RTUNI_ALPHA, /* U+0015e1: CANADIAN SYLLABICS CARRIER THA*/ + RTUNI_ALPHA, /* U+0015e2: CANADIAN SYLLABICS CARRIER TTU*/ + RTUNI_ALPHA, /* U+0015e3: CANADIAN SYLLABICS CARRIER TTO*/ + RTUNI_ALPHA, /* U+0015e4: CANADIAN SYLLABICS CARRIER TTE*/ + RTUNI_ALPHA, /* U+0015e5: CANADIAN SYLLABICS CARRIER TTEE*/ + RTUNI_ALPHA, /* U+0015e6: CANADIAN SYLLABICS CARRIER TTI*/ + RTUNI_ALPHA, /* U+0015e7: CANADIAN SYLLABICS CARRIER TTA*/ + RTUNI_ALPHA, /* U+0015e8: CANADIAN SYLLABICS CARRIER PU*/ + RTUNI_ALPHA, /* U+0015e9: CANADIAN SYLLABICS CARRIER PO*/ + RTUNI_ALPHA, /* U+0015ea: CANADIAN SYLLABICS CARRIER PE*/ + RTUNI_ALPHA, /* U+0015eb: CANADIAN SYLLABICS CARRIER PEE*/ + RTUNI_ALPHA, /* U+0015ec: CANADIAN SYLLABICS CARRIER PI*/ + RTUNI_ALPHA, /* U+0015ed: CANADIAN SYLLABICS CARRIER PA*/ + RTUNI_ALPHA, /* U+0015ee: CANADIAN SYLLABICS CARRIER P*/ + RTUNI_ALPHA, /* U+0015ef: CANADIAN SYLLABICS CARRIER GU*/ + RTUNI_ALPHA, /* U+0015f0: CANADIAN SYLLABICS CARRIER GO*/ + RTUNI_ALPHA, /* U+0015f1: CANADIAN SYLLABICS CARRIER GE*/ + RTUNI_ALPHA, /* U+0015f2: CANADIAN SYLLABICS CARRIER GEE*/ + RTUNI_ALPHA, /* U+0015f3: CANADIAN SYLLABICS CARRIER GI*/ + RTUNI_ALPHA, /* U+0015f4: CANADIAN SYLLABICS CARRIER GA*/ + RTUNI_ALPHA, /* U+0015f5: CANADIAN SYLLABICS CARRIER KHU*/ + RTUNI_ALPHA, /* U+0015f6: CANADIAN SYLLABICS CARRIER KHO*/ + RTUNI_ALPHA, /* U+0015f7: CANADIAN SYLLABICS CARRIER KHE*/ + RTUNI_ALPHA, /* U+0015f8: CANADIAN SYLLABICS CARRIER KHEE*/ + RTUNI_ALPHA, /* U+0015f9: CANADIAN SYLLABICS CARRIER KHI*/ + RTUNI_ALPHA, /* U+0015fa: CANADIAN SYLLABICS CARRIER KHA*/ + RTUNI_ALPHA, /* U+0015fb: CANADIAN SYLLABICS CARRIER KKU*/ + RTUNI_ALPHA, /* U+0015fc: CANADIAN SYLLABICS CARRIER KKO*/ + RTUNI_ALPHA, /* U+0015fd: CANADIAN SYLLABICS CARRIER KKE*/ + RTUNI_ALPHA, /* U+0015fe: CANADIAN SYLLABICS CARRIER KKEE*/ + RTUNI_ALPHA, /* U+0015ff: CANADIAN SYLLABICS CARRIER KKI*/ + RTUNI_ALPHA, /* U+001600: CANADIAN SYLLABICS CARRIER KKA*/ + RTUNI_ALPHA, /* U+001601: CANADIAN SYLLABICS CARRIER KK*/ + RTUNI_ALPHA, /* U+001602: CANADIAN SYLLABICS CARRIER NU*/ + RTUNI_ALPHA, /* U+001603: CANADIAN SYLLABICS CARRIER NO*/ + RTUNI_ALPHA, /* U+001604: CANADIAN SYLLABICS CARRIER NE*/ + RTUNI_ALPHA, /* U+001605: CANADIAN SYLLABICS CARRIER NEE*/ + RTUNI_ALPHA, /* U+001606: CANADIAN SYLLABICS CARRIER NI*/ + RTUNI_ALPHA, /* U+001607: CANADIAN SYLLABICS CARRIER NA*/ + RTUNI_ALPHA, /* U+001608: CANADIAN SYLLABICS CARRIER MU*/ + RTUNI_ALPHA, /* U+001609: CANADIAN SYLLABICS CARRIER MO*/ + RTUNI_ALPHA, /* U+00160a: CANADIAN SYLLABICS CARRIER ME*/ + RTUNI_ALPHA, /* U+00160b: CANADIAN SYLLABICS CARRIER MEE*/ + RTUNI_ALPHA, /* U+00160c: CANADIAN SYLLABICS CARRIER MI*/ + RTUNI_ALPHA, /* U+00160d: CANADIAN SYLLABICS CARRIER MA*/ + RTUNI_ALPHA, /* U+00160e: CANADIAN SYLLABICS CARRIER YU*/ + RTUNI_ALPHA, /* U+00160f: CANADIAN SYLLABICS CARRIER YO*/ + RTUNI_ALPHA, /* U+001610: CANADIAN SYLLABICS CARRIER YE*/ + RTUNI_ALPHA, /* U+001611: CANADIAN SYLLABICS CARRIER YEE*/ + RTUNI_ALPHA, /* U+001612: CANADIAN SYLLABICS CARRIER YI*/ + RTUNI_ALPHA, /* U+001613: CANADIAN SYLLABICS CARRIER YA*/ + RTUNI_ALPHA, /* U+001614: CANADIAN SYLLABICS CARRIER JU*/ + RTUNI_ALPHA, /* U+001615: CANADIAN SYLLABICS SAYISI JU*/ + RTUNI_ALPHA, /* U+001616: CANADIAN SYLLABICS CARRIER JO*/ + RTUNI_ALPHA, /* U+001617: CANADIAN SYLLABICS CARRIER JE*/ + RTUNI_ALPHA, /* U+001618: CANADIAN SYLLABICS CARRIER JEE*/ + RTUNI_ALPHA, /* U+001619: CANADIAN SYLLABICS CARRIER JI*/ + RTUNI_ALPHA, /* U+00161a: CANADIAN SYLLABICS SAYISI JI*/ + RTUNI_ALPHA, /* U+00161b: CANADIAN SYLLABICS CARRIER JA*/ + RTUNI_ALPHA, /* U+00161c: CANADIAN SYLLABICS CARRIER JJU*/ + RTUNI_ALPHA, /* U+00161d: CANADIAN SYLLABICS CARRIER JJO*/ + RTUNI_ALPHA, /* U+00161e: CANADIAN SYLLABICS CARRIER JJE*/ + RTUNI_ALPHA, /* U+00161f: CANADIAN SYLLABICS CARRIER JJEE*/ + RTUNI_ALPHA, /* U+001620: CANADIAN SYLLABICS CARRIER JJI*/ + RTUNI_ALPHA, /* U+001621: CANADIAN SYLLABICS CARRIER JJA*/ + RTUNI_ALPHA, /* U+001622: CANADIAN SYLLABICS CARRIER LU*/ + RTUNI_ALPHA, /* U+001623: CANADIAN SYLLABICS CARRIER LO*/ + RTUNI_ALPHA, /* U+001624: CANADIAN SYLLABICS CARRIER LE*/ + RTUNI_ALPHA, /* U+001625: CANADIAN SYLLABICS CARRIER LEE*/ + RTUNI_ALPHA, /* U+001626: CANADIAN SYLLABICS CARRIER LI*/ + RTUNI_ALPHA, /* U+001627: CANADIAN SYLLABICS CARRIER LA*/ + RTUNI_ALPHA, /* U+001628: CANADIAN SYLLABICS CARRIER DLU*/ + RTUNI_ALPHA, /* U+001629: CANADIAN SYLLABICS CARRIER DLO*/ + RTUNI_ALPHA, /* U+00162a: CANADIAN SYLLABICS CARRIER DLE*/ + RTUNI_ALPHA, /* U+00162b: CANADIAN SYLLABICS CARRIER DLEE*/ + RTUNI_ALPHA, /* U+00162c: CANADIAN SYLLABICS CARRIER DLI*/ + RTUNI_ALPHA, /* U+00162d: CANADIAN SYLLABICS CARRIER DLA*/ + RTUNI_ALPHA, /* U+00162e: CANADIAN SYLLABICS CARRIER LHU*/ + RTUNI_ALPHA, /* U+00162f: CANADIAN SYLLABICS CARRIER LHO*/ + RTUNI_ALPHA, /* U+001630: CANADIAN SYLLABICS CARRIER LHE*/ + RTUNI_ALPHA, /* U+001631: CANADIAN SYLLABICS CARRIER LHEE*/ + RTUNI_ALPHA, /* U+001632: CANADIAN SYLLABICS CARRIER LHI*/ + RTUNI_ALPHA, /* U+001633: CANADIAN SYLLABICS CARRIER LHA*/ + RTUNI_ALPHA, /* U+001634: CANADIAN SYLLABICS CARRIER TLHU*/ + RTUNI_ALPHA, /* U+001635: CANADIAN SYLLABICS CARRIER TLHO*/ + RTUNI_ALPHA, /* U+001636: CANADIAN SYLLABICS CARRIER TLHE*/ + RTUNI_ALPHA, /* U+001637: CANADIAN SYLLABICS CARRIER TLHEE*/ + RTUNI_ALPHA, /* U+001638: CANADIAN SYLLABICS CARRIER TLHI*/ + RTUNI_ALPHA, /* U+001639: CANADIAN SYLLABICS CARRIER TLHA*/ + RTUNI_ALPHA, /* U+00163a: CANADIAN SYLLABICS CARRIER TLU*/ + RTUNI_ALPHA, /* U+00163b: CANADIAN SYLLABICS CARRIER TLO*/ + RTUNI_ALPHA, /* U+00163c: CANADIAN SYLLABICS CARRIER TLE*/ + RTUNI_ALPHA, /* U+00163d: CANADIAN SYLLABICS CARRIER TLEE*/ + RTUNI_ALPHA, /* U+00163e: CANADIAN SYLLABICS CARRIER TLI*/ + RTUNI_ALPHA, /* U+00163f: CANADIAN SYLLABICS CARRIER TLA*/ + RTUNI_ALPHA, /* U+001640: CANADIAN SYLLABICS CARRIER ZU*/ + RTUNI_ALPHA, /* U+001641: CANADIAN SYLLABICS CARRIER ZO*/ + RTUNI_ALPHA, /* U+001642: CANADIAN SYLLABICS CARRIER ZE*/ + RTUNI_ALPHA, /* U+001643: CANADIAN SYLLABICS CARRIER ZEE*/ + RTUNI_ALPHA, /* U+001644: CANADIAN SYLLABICS CARRIER ZI*/ + RTUNI_ALPHA, /* U+001645: CANADIAN SYLLABICS CARRIER ZA*/ + RTUNI_ALPHA, /* U+001646: CANADIAN SYLLABICS CARRIER Z*/ + RTUNI_ALPHA, /* U+001647: CANADIAN SYLLABICS CARRIER INITIAL Z*/ + RTUNI_ALPHA, /* U+001648: CANADIAN SYLLABICS CARRIER DZU*/ + RTUNI_ALPHA, /* U+001649: CANADIAN SYLLABICS CARRIER DZO*/ + RTUNI_ALPHA, /* U+00164a: CANADIAN SYLLABICS CARRIER DZE*/ + RTUNI_ALPHA, /* U+00164b: CANADIAN SYLLABICS CARRIER DZEE*/ + RTUNI_ALPHA, /* U+00164c: CANADIAN SYLLABICS CARRIER DZI*/ + RTUNI_ALPHA, /* U+00164d: CANADIAN SYLLABICS CARRIER DZA*/ + RTUNI_ALPHA, /* U+00164e: CANADIAN SYLLABICS CARRIER SU*/ + RTUNI_ALPHA, /* U+00164f: CANADIAN SYLLABICS CARRIER SO*/ + RTUNI_ALPHA, /* U+001650: CANADIAN SYLLABICS CARRIER SE*/ + RTUNI_ALPHA, /* U+001651: CANADIAN SYLLABICS CARRIER SEE*/ + RTUNI_ALPHA, /* U+001652: CANADIAN SYLLABICS CARRIER SI*/ + RTUNI_ALPHA, /* U+001653: CANADIAN SYLLABICS CARRIER SA*/ + RTUNI_ALPHA, /* U+001654: CANADIAN SYLLABICS CARRIER SHU*/ + RTUNI_ALPHA, /* U+001655: CANADIAN SYLLABICS CARRIER SHO*/ + RTUNI_ALPHA, /* U+001656: CANADIAN SYLLABICS CARRIER SHE*/ + RTUNI_ALPHA, /* U+001657: CANADIAN SYLLABICS CARRIER SHEE*/ + RTUNI_ALPHA, /* U+001658: CANADIAN SYLLABICS CARRIER SHI*/ + RTUNI_ALPHA, /* U+001659: CANADIAN SYLLABICS CARRIER SHA*/ + RTUNI_ALPHA, /* U+00165a: CANADIAN SYLLABICS CARRIER SH*/ + RTUNI_ALPHA, /* U+00165b: CANADIAN SYLLABICS CARRIER TSU*/ + RTUNI_ALPHA, /* U+00165c: CANADIAN SYLLABICS CARRIER TSO*/ + RTUNI_ALPHA, /* U+00165d: CANADIAN SYLLABICS CARRIER TSE*/ + RTUNI_ALPHA, /* U+00165e: CANADIAN SYLLABICS CARRIER TSEE*/ + RTUNI_ALPHA, /* U+00165f: CANADIAN SYLLABICS CARRIER TSI*/ + RTUNI_ALPHA, /* U+001660: CANADIAN SYLLABICS CARRIER TSA*/ + RTUNI_ALPHA, /* U+001661: CANADIAN SYLLABICS CARRIER CHU*/ + RTUNI_ALPHA, /* U+001662: CANADIAN SYLLABICS CARRIER CHO*/ + RTUNI_ALPHA, /* U+001663: CANADIAN SYLLABICS CARRIER CHE*/ + RTUNI_ALPHA, /* U+001664: CANADIAN SYLLABICS CARRIER CHEE*/ + RTUNI_ALPHA, /* U+001665: CANADIAN SYLLABICS CARRIER CHI*/ + RTUNI_ALPHA, /* U+001666: CANADIAN SYLLABICS CARRIER CHA*/ + RTUNI_ALPHA, /* U+001667: CANADIAN SYLLABICS CARRIER TTSU*/ + RTUNI_ALPHA, /* U+001668: CANADIAN SYLLABICS CARRIER TTSO*/ + RTUNI_ALPHA, /* U+001669: CANADIAN SYLLABICS CARRIER TTSE*/ + RTUNI_ALPHA, /* U+00166a: CANADIAN SYLLABICS CARRIER TTSEE*/ + RTUNI_ALPHA, /* U+00166b: CANADIAN SYLLABICS CARRIER TTSI*/ + RTUNI_ALPHA, /* U+00166c: CANADIAN SYLLABICS CARRIER TTSA*/ + 0, /* U+00166d: CANADIAN SYLLABICS CHI SIGN*/ + 0, /* U+00166e: CANADIAN SYLLABICS FULL STOP*/ + RTUNI_ALPHA, /* U+00166f: CANADIAN SYLLABICS QAI*/ + RTUNI_ALPHA, /* U+001670: CANADIAN SYLLABICS NGAI*/ + RTUNI_ALPHA, /* U+001671: CANADIAN SYLLABICS NNGI*/ + RTUNI_ALPHA, /* U+001672: CANADIAN SYLLABICS NNGII*/ + RTUNI_ALPHA, /* U+001673: CANADIAN SYLLABICS NNGO*/ + RTUNI_ALPHA, /* U+001674: CANADIAN SYLLABICS NNGOO*/ + RTUNI_ALPHA, /* U+001675: CANADIAN SYLLABICS NNGA*/ + RTUNI_ALPHA, /* U+001676: CANADIAN SYLLABICS NNGAA*/ + RTUNI_ALPHA, /* U+001677: CANADIAN SYLLABICS WOODS-CREE THWEE*/ + RTUNI_ALPHA, /* U+001678: CANADIAN SYLLABICS WOODS-CREE THWI*/ + RTUNI_ALPHA, /* U+001679: CANADIAN SYLLABICS WOODS-CREE THWII*/ + RTUNI_ALPHA, /* U+00167a: CANADIAN SYLLABICS WOODS-CREE THWO*/ + RTUNI_ALPHA, /* U+00167b: CANADIAN SYLLABICS WOODS-CREE THWOO*/ + RTUNI_ALPHA, /* U+00167c: CANADIAN SYLLABICS WOODS-CREE THWA*/ + RTUNI_ALPHA, /* U+00167d: CANADIAN SYLLABICS WOODS-CREE THWAA*/ + RTUNI_ALPHA, /* U+00167e: CANADIAN SYLLABICS WOODS-CREE FINAL TH*/ + RTUNI_ALPHA, /* U+00167f: CANADIAN SYLLABICS BLACKFOOT W*/ + RTUNI_WSPACE, /* U+001680: OGHAM SPACE MARK*/ + RTUNI_ALPHA, /* U+001681: OGHAM LETTER BEITH*/ + RTUNI_ALPHA, /* U+001682: OGHAM LETTER LUIS*/ + RTUNI_ALPHA, /* U+001683: OGHAM LETTER FEARN*/ + RTUNI_ALPHA, /* U+001684: OGHAM LETTER SAIL*/ + RTUNI_ALPHA, /* U+001685: OGHAM LETTER NION*/ + RTUNI_ALPHA, /* U+001686: OGHAM LETTER UATH*/ + RTUNI_ALPHA, /* U+001687: OGHAM LETTER DAIR*/ + RTUNI_ALPHA, /* U+001688: OGHAM LETTER TINNE*/ + RTUNI_ALPHA, /* U+001689: OGHAM LETTER COLL*/ + RTUNI_ALPHA, /* U+00168a: OGHAM LETTER CEIRT*/ + RTUNI_ALPHA, /* U+00168b: OGHAM LETTER MUIN*/ + RTUNI_ALPHA, /* U+00168c: OGHAM LETTER GORT*/ + RTUNI_ALPHA, /* U+00168d: OGHAM LETTER NGEADAL*/ + RTUNI_ALPHA, /* U+00168e: OGHAM LETTER STRAIF*/ + RTUNI_ALPHA, /* U+00168f: OGHAM LETTER RUIS*/ + RTUNI_ALPHA, /* U+001690: OGHAM LETTER AILM*/ + RTUNI_ALPHA, /* U+001691: OGHAM LETTER ONN*/ + RTUNI_ALPHA, /* U+001692: OGHAM LETTER UR*/ + RTUNI_ALPHA, /* U+001693: OGHAM LETTER EADHADH*/ + RTUNI_ALPHA, /* U+001694: OGHAM LETTER IODHADH*/ + RTUNI_ALPHA, /* U+001695: OGHAM LETTER EABHADH*/ + RTUNI_ALPHA, /* U+001696: OGHAM LETTER OR*/ + RTUNI_ALPHA, /* U+001697: OGHAM LETTER UILLEANN*/ + RTUNI_ALPHA, /* U+001698: OGHAM LETTER IFIN*/ + RTUNI_ALPHA, /* U+001699: OGHAM LETTER EAMHANCHOLL*/ + RTUNI_ALPHA, /* U+00169a: OGHAM LETTER PEITH*/ + 0, /* U+00169b: OGHAM FEATHER MARK*/ + 0, /* U+00169c: OGHAM REVERSED FEATHER MARK*/ + 0, /* U+00169d: */ + 0, /* U+00169e: */ + 0, /* U+00169f: */ + RTUNI_ALPHA, /* U+0016a0: RUNIC LETTER FEHU FEOH FE F*/ + RTUNI_ALPHA, /* U+0016a1: RUNIC LETTER V*/ + RTUNI_ALPHA, /* U+0016a2: RUNIC LETTER URUZ UR U*/ + RTUNI_ALPHA, /* U+0016a3: RUNIC LETTER YR*/ + RTUNI_ALPHA, /* U+0016a4: RUNIC LETTER Y*/ + RTUNI_ALPHA, /* U+0016a5: RUNIC LETTER W*/ + RTUNI_ALPHA, /* U+0016a6: RUNIC LETTER THURISAZ THURS THORN*/ + RTUNI_ALPHA, /* U+0016a7: RUNIC LETTER ETH*/ + RTUNI_ALPHA, /* U+0016a8: RUNIC LETTER ANSUZ A*/ + RTUNI_ALPHA, /* U+0016a9: RUNIC LETTER OS O*/ + RTUNI_ALPHA, /* U+0016aa: RUNIC LETTER AC A*/ + RTUNI_ALPHA, /* U+0016ab: RUNIC LETTER AESC*/ + RTUNI_ALPHA, /* U+0016ac: RUNIC LETTER LONG-BRANCH-OSS O*/ + RTUNI_ALPHA, /* U+0016ad: RUNIC LETTER SHORT-TWIG-OSS O*/ + RTUNI_ALPHA, /* U+0016ae: RUNIC LETTER O*/ + RTUNI_ALPHA, /* U+0016af: RUNIC LETTER OE*/ + RTUNI_ALPHA, /* U+0016b0: RUNIC LETTER ON*/ + RTUNI_ALPHA, /* U+0016b1: RUNIC LETTER RAIDO RAD REID R*/ + RTUNI_ALPHA, /* U+0016b2: RUNIC LETTER KAUNA*/ + RTUNI_ALPHA, /* U+0016b3: RUNIC LETTER CEN*/ + RTUNI_ALPHA, /* U+0016b4: RUNIC LETTER KAUN K*/ + RTUNI_ALPHA, /* U+0016b5: RUNIC LETTER G*/ + RTUNI_ALPHA, /* U+0016b6: RUNIC LETTER ENG*/ + RTUNI_ALPHA, /* U+0016b7: RUNIC LETTER GEBO GYFU G*/ + RTUNI_ALPHA, /* U+0016b8: RUNIC LETTER GAR*/ + RTUNI_ALPHA, /* U+0016b9: RUNIC LETTER WUNJO WYNN W*/ + RTUNI_ALPHA, /* U+0016ba: RUNIC LETTER HAGLAZ H*/ + RTUNI_ALPHA, /* U+0016bb: RUNIC LETTER HAEGL H*/ + RTUNI_ALPHA, /* U+0016bc: RUNIC LETTER LONG-BRANCH-HAGALL H*/ + RTUNI_ALPHA, /* U+0016bd: RUNIC LETTER SHORT-TWIG-HAGALL H*/ + RTUNI_ALPHA, /* U+0016be: RUNIC LETTER NAUDIZ NYD NAUD N*/ + RTUNI_ALPHA, /* U+0016bf: RUNIC LETTER SHORT-TWIG-NAUD N*/ + RTUNI_ALPHA, /* U+0016c0: RUNIC LETTER DOTTED-N*/ + RTUNI_ALPHA, /* U+0016c1: RUNIC LETTER ISAZ IS ISS I*/ + RTUNI_ALPHA, /* U+0016c2: RUNIC LETTER E*/ + RTUNI_ALPHA, /* U+0016c3: RUNIC LETTER JERAN J*/ + RTUNI_ALPHA, /* U+0016c4: RUNIC LETTER GER*/ + RTUNI_ALPHA, /* U+0016c5: RUNIC LETTER LONG-BRANCH-AR AE*/ + RTUNI_ALPHA, /* U+0016c6: RUNIC LETTER SHORT-TWIG-AR A*/ + RTUNI_ALPHA, /* U+0016c7: RUNIC LETTER IWAZ EOH*/ + RTUNI_ALPHA, /* U+0016c8: RUNIC LETTER PERTHO PEORTH P*/ + RTUNI_ALPHA, /* U+0016c9: RUNIC LETTER ALGIZ EOLHX*/ + RTUNI_ALPHA, /* U+0016ca: RUNIC LETTER SOWILO S*/ + RTUNI_ALPHA, /* U+0016cb: RUNIC LETTER SIGEL LONG-BRANCH-SOL S*/ + RTUNI_ALPHA, /* U+0016cc: RUNIC LETTER SHORT-TWIG-SOL S*/ + RTUNI_ALPHA, /* U+0016cd: RUNIC LETTER C*/ + RTUNI_ALPHA, /* U+0016ce: RUNIC LETTER Z*/ + RTUNI_ALPHA, /* U+0016cf: RUNIC LETTER TIWAZ TIR TYR T*/ + RTUNI_ALPHA, /* U+0016d0: RUNIC LETTER SHORT-TWIG-TYR T*/ + RTUNI_ALPHA, /* U+0016d1: RUNIC LETTER D*/ + RTUNI_ALPHA, /* U+0016d2: RUNIC LETTER BERKANAN BEORC BJARKAN B*/ + RTUNI_ALPHA, /* U+0016d3: RUNIC LETTER SHORT-TWIG-BJARKAN B*/ + RTUNI_ALPHA, /* U+0016d4: RUNIC LETTER DOTTED-P*/ + RTUNI_ALPHA, /* U+0016d5: RUNIC LETTER OPEN-P*/ + RTUNI_ALPHA, /* U+0016d6: RUNIC LETTER EHWAZ EH E*/ + RTUNI_ALPHA, /* U+0016d7: RUNIC LETTER MANNAZ MAN M*/ + RTUNI_ALPHA, /* U+0016d8: RUNIC LETTER LONG-BRANCH-MADR M*/ + RTUNI_ALPHA, /* U+0016d9: RUNIC LETTER SHORT-TWIG-MADR M*/ + RTUNI_ALPHA, /* U+0016da: RUNIC LETTER LAUKAZ LAGU LOGR L*/ + RTUNI_ALPHA, /* U+0016db: RUNIC LETTER DOTTED-L*/ + RTUNI_ALPHA, /* U+0016dc: RUNIC LETTER INGWAZ*/ + RTUNI_ALPHA, /* U+0016dd: RUNIC LETTER ING*/ + RTUNI_ALPHA, /* U+0016de: RUNIC LETTER DAGAZ DAEG D*/ + RTUNI_ALPHA, /* U+0016df: RUNIC LETTER OTHALAN ETHEL O*/ + RTUNI_ALPHA, /* U+0016e0: RUNIC LETTER EAR*/ + RTUNI_ALPHA, /* U+0016e1: RUNIC LETTER IOR*/ + RTUNI_ALPHA, /* U+0016e2: RUNIC LETTER CWEORTH*/ + RTUNI_ALPHA, /* U+0016e3: RUNIC LETTER CALC*/ + RTUNI_ALPHA, /* U+0016e4: RUNIC LETTER CEALC*/ + RTUNI_ALPHA, /* U+0016e5: RUNIC LETTER STAN*/ + RTUNI_ALPHA, /* U+0016e6: RUNIC LETTER LONG-BRANCH-YR*/ + RTUNI_ALPHA, /* U+0016e7: RUNIC LETTER SHORT-TWIG-YR*/ + RTUNI_ALPHA, /* U+0016e8: RUNIC LETTER ICELANDIC-YR*/ + RTUNI_ALPHA, /* U+0016e9: RUNIC LETTER Q*/ + RTUNI_ALPHA, /* U+0016ea: RUNIC LETTER X*/ + 0, /* U+0016eb: RUNIC SINGLE PUNCTUATION*/ + 0, /* U+0016ec: RUNIC MULTIPLE PUNCTUATION*/ + 0, /* U+0016ed: RUNIC CROSS PUNCTUATION*/ + RTUNI_ALPHA, /* U+0016ee: RUNIC ARLAUG SYMBOL*/ + RTUNI_ALPHA, /* U+0016ef: RUNIC TVIMADUR SYMBOL*/ + RTUNI_ALPHA, /* U+0016f0: RUNIC BELGTHOR SYMBOL*/ + 0, /* U+0016f1: */ + 0, /* U+0016f2: */ + 0, /* U+0016f3: */ + 0, /* U+0016f4: */ + 0, /* U+0016f5: */ + 0, /* U+0016f6: */ + 0, /* U+0016f7: */ + 0, /* U+0016f8: */ + 0, /* U+0016f9: */ + 0, /* U+0016fa: */ + 0, /* U+0016fb: */ + 0, /* U+0016fc: */ + 0, /* U+0016fd: */ + 0, /* U+0016fe: */ + 0, /* U+0016ff: */ + RTUNI_ALPHA, /* U+001700: TAGALOG LETTER A*/ + RTUNI_ALPHA, /* U+001701: TAGALOG LETTER I*/ + RTUNI_ALPHA, /* U+001702: TAGALOG LETTER U*/ + RTUNI_ALPHA, /* U+001703: TAGALOG LETTER KA*/ + RTUNI_ALPHA, /* U+001704: TAGALOG LETTER GA*/ + RTUNI_ALPHA, /* U+001705: TAGALOG LETTER NGA*/ + RTUNI_ALPHA, /* U+001706: TAGALOG LETTER TA*/ + RTUNI_ALPHA, /* U+001707: TAGALOG LETTER DA*/ + RTUNI_ALPHA, /* U+001708: TAGALOG LETTER NA*/ + RTUNI_ALPHA, /* U+001709: TAGALOG LETTER PA*/ + RTUNI_ALPHA, /* U+00170a: TAGALOG LETTER BA*/ + RTUNI_ALPHA, /* U+00170b: TAGALOG LETTER MA*/ + RTUNI_ALPHA, /* U+00170c: TAGALOG LETTER YA*/ + 0, /* U+00170d: */ + RTUNI_ALPHA, /* U+00170e: TAGALOG LETTER LA*/ + RTUNI_ALPHA, /* U+00170f: TAGALOG LETTER WA*/ + RTUNI_ALPHA, /* U+001710: TAGALOG LETTER SA*/ + RTUNI_ALPHA, /* U+001711: TAGALOG LETTER HA*/ + RTUNI_ALPHA, /* U+001712: TAGALOG VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001713: TAGALOG VOWEL SIGN U*/ + 0, /* U+001714: TAGALOG SIGN VIRAMA*/ + 0, /* U+001715: */ + 0, /* U+001716: */ + 0, /* U+001717: */ + 0, /* U+001718: */ + 0, /* U+001719: */ + 0, /* U+00171a: */ + 0, /* U+00171b: */ + 0, /* U+00171c: */ + 0, /* U+00171d: */ + 0, /* U+00171e: */ + 0, /* U+00171f: */ + RTUNI_ALPHA, /* U+001720: HANUNOO LETTER A*/ + RTUNI_ALPHA, /* U+001721: HANUNOO LETTER I*/ + RTUNI_ALPHA, /* U+001722: HANUNOO LETTER U*/ + RTUNI_ALPHA, /* U+001723: HANUNOO LETTER KA*/ + RTUNI_ALPHA, /* U+001724: HANUNOO LETTER GA*/ + RTUNI_ALPHA, /* U+001725: HANUNOO LETTER NGA*/ + RTUNI_ALPHA, /* U+001726: HANUNOO LETTER TA*/ + RTUNI_ALPHA, /* U+001727: HANUNOO LETTER DA*/ + RTUNI_ALPHA, /* U+001728: HANUNOO LETTER NA*/ + RTUNI_ALPHA, /* U+001729: HANUNOO LETTER PA*/ + RTUNI_ALPHA, /* U+00172a: HANUNOO LETTER BA*/ + RTUNI_ALPHA, /* U+00172b: HANUNOO LETTER MA*/ + RTUNI_ALPHA, /* U+00172c: HANUNOO LETTER YA*/ + RTUNI_ALPHA, /* U+00172d: HANUNOO LETTER RA*/ + RTUNI_ALPHA, /* U+00172e: HANUNOO LETTER LA*/ + RTUNI_ALPHA, /* U+00172f: HANUNOO LETTER WA*/ + RTUNI_ALPHA, /* U+001730: HANUNOO LETTER SA*/ + RTUNI_ALPHA, /* U+001731: HANUNOO LETTER HA*/ + RTUNI_ALPHA, /* U+001732: HANUNOO VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001733: HANUNOO VOWEL SIGN U*/ + 0, /* U+001734: HANUNOO SIGN PAMUDPOD*/ + 0, /* U+001735: PHILIPPINE SINGLE PUNCTUATION*/ + 0, /* U+001736: PHILIPPINE DOUBLE PUNCTUATION*/ + 0, /* U+001737: */ + 0, /* U+001738: */ + 0, /* U+001739: */ + 0, /* U+00173a: */ + 0, /* U+00173b: */ + 0, /* U+00173c: */ + 0, /* U+00173d: */ + 0, /* U+00173e: */ + 0, /* U+00173f: */ + RTUNI_ALPHA, /* U+001740: BUHID LETTER A*/ + RTUNI_ALPHA, /* U+001741: BUHID LETTER I*/ + RTUNI_ALPHA, /* U+001742: BUHID LETTER U*/ + RTUNI_ALPHA, /* U+001743: BUHID LETTER KA*/ + RTUNI_ALPHA, /* U+001744: BUHID LETTER GA*/ + RTUNI_ALPHA, /* U+001745: BUHID LETTER NGA*/ + RTUNI_ALPHA, /* U+001746: BUHID LETTER TA*/ + RTUNI_ALPHA, /* U+001747: BUHID LETTER DA*/ + RTUNI_ALPHA, /* U+001748: BUHID LETTER NA*/ + RTUNI_ALPHA, /* U+001749: BUHID LETTER PA*/ + RTUNI_ALPHA, /* U+00174a: BUHID LETTER BA*/ + RTUNI_ALPHA, /* U+00174b: BUHID LETTER MA*/ + RTUNI_ALPHA, /* U+00174c: BUHID LETTER YA*/ + RTUNI_ALPHA, /* U+00174d: BUHID LETTER RA*/ + RTUNI_ALPHA, /* U+00174e: BUHID LETTER LA*/ + RTUNI_ALPHA, /* U+00174f: BUHID LETTER WA*/ + RTUNI_ALPHA, /* U+001750: BUHID LETTER SA*/ + RTUNI_ALPHA, /* U+001751: BUHID LETTER HA*/ + RTUNI_ALPHA, /* U+001752: BUHID VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001753: BUHID VOWEL SIGN U*/ + 0, /* U+001754: */ + 0, /* U+001755: */ + 0, /* U+001756: */ + 0, /* U+001757: */ + 0, /* U+001758: */ + 0, /* U+001759: */ + 0, /* U+00175a: */ + 0, /* U+00175b: */ + 0, /* U+00175c: */ + 0, /* U+00175d: */ + 0, /* U+00175e: */ + 0, /* U+00175f: */ + RTUNI_ALPHA, /* U+001760: TAGBANWA LETTER A*/ + RTUNI_ALPHA, /* U+001761: TAGBANWA LETTER I*/ + RTUNI_ALPHA, /* U+001762: TAGBANWA LETTER U*/ + RTUNI_ALPHA, /* U+001763: TAGBANWA LETTER KA*/ + RTUNI_ALPHA, /* U+001764: TAGBANWA LETTER GA*/ + RTUNI_ALPHA, /* U+001765: TAGBANWA LETTER NGA*/ + RTUNI_ALPHA, /* U+001766: TAGBANWA LETTER TA*/ + RTUNI_ALPHA, /* U+001767: TAGBANWA LETTER DA*/ + RTUNI_ALPHA, /* U+001768: TAGBANWA LETTER NA*/ + RTUNI_ALPHA, /* U+001769: TAGBANWA LETTER PA*/ + RTUNI_ALPHA, /* U+00176a: TAGBANWA LETTER BA*/ + RTUNI_ALPHA, /* U+00176b: TAGBANWA LETTER MA*/ + RTUNI_ALPHA, /* U+00176c: TAGBANWA LETTER YA*/ + 0, /* U+00176d: */ + RTUNI_ALPHA, /* U+00176e: TAGBANWA LETTER LA*/ + RTUNI_ALPHA, /* U+00176f: TAGBANWA LETTER WA*/ + RTUNI_ALPHA, /* U+001770: TAGBANWA LETTER SA*/ + 0, /* U+001771: */ + RTUNI_ALPHA, /* U+001772: TAGBANWA VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001773: TAGBANWA VOWEL SIGN U*/ + 0, /* U+001774: */ + 0, /* U+001775: */ + 0, /* U+001776: */ + 0, /* U+001777: */ + 0, /* U+001778: */ + 0, /* U+001779: */ + 0, /* U+00177a: */ + 0, /* U+00177b: */ + 0, /* U+00177c: */ + 0, /* U+00177d: */ + 0, /* U+00177e: */ + 0, /* U+00177f: */ + RTUNI_ALPHA, /* U+001780: KHMER LETTER KA*/ + RTUNI_ALPHA, /* U+001781: KHMER LETTER KHA*/ + RTUNI_ALPHA, /* U+001782: KHMER LETTER KO*/ + RTUNI_ALPHA, /* U+001783: KHMER LETTER KHO*/ + RTUNI_ALPHA, /* U+001784: KHMER LETTER NGO*/ + RTUNI_ALPHA, /* U+001785: KHMER LETTER CA*/ + RTUNI_ALPHA, /* U+001786: KHMER LETTER CHA*/ + RTUNI_ALPHA, /* U+001787: KHMER LETTER CO*/ + RTUNI_ALPHA, /* U+001788: KHMER LETTER CHO*/ + RTUNI_ALPHA, /* U+001789: KHMER LETTER NYO*/ + RTUNI_ALPHA, /* U+00178a: KHMER LETTER DA*/ + RTUNI_ALPHA, /* U+00178b: KHMER LETTER TTHA*/ + RTUNI_ALPHA, /* U+00178c: KHMER LETTER DO*/ + RTUNI_ALPHA, /* U+00178d: KHMER LETTER TTHO*/ + RTUNI_ALPHA, /* U+00178e: KHMER LETTER NNO*/ + RTUNI_ALPHA, /* U+00178f: KHMER LETTER TA*/ + RTUNI_ALPHA, /* U+001790: KHMER LETTER THA*/ + RTUNI_ALPHA, /* U+001791: KHMER LETTER TO*/ + RTUNI_ALPHA, /* U+001792: KHMER LETTER THO*/ + RTUNI_ALPHA, /* U+001793: KHMER LETTER NO*/ + RTUNI_ALPHA, /* U+001794: KHMER LETTER BA*/ + RTUNI_ALPHA, /* U+001795: KHMER LETTER PHA*/ + RTUNI_ALPHA, /* U+001796: KHMER LETTER PO*/ + RTUNI_ALPHA, /* U+001797: KHMER LETTER PHO*/ + RTUNI_ALPHA, /* U+001798: KHMER LETTER MO*/ + RTUNI_ALPHA, /* U+001799: KHMER LETTER YO*/ + RTUNI_ALPHA, /* U+00179a: KHMER LETTER RO*/ + RTUNI_ALPHA, /* U+00179b: KHMER LETTER LO*/ + RTUNI_ALPHA, /* U+00179c: KHMER LETTER VO*/ + RTUNI_ALPHA, /* U+00179d: KHMER LETTER SHA*/ + RTUNI_ALPHA, /* U+00179e: KHMER LETTER SSO*/ + RTUNI_ALPHA, /* U+00179f: KHMER LETTER SA*/ + RTUNI_ALPHA, /* U+0017a0: KHMER LETTER HA*/ + RTUNI_ALPHA, /* U+0017a1: KHMER LETTER LA*/ + RTUNI_ALPHA, /* U+0017a2: KHMER LETTER QA*/ + RTUNI_ALPHA, /* U+0017a3: KHMER INDEPENDENT VOWEL QAQ*/ + RTUNI_ALPHA, /* U+0017a4: KHMER INDEPENDENT VOWEL QAA*/ + RTUNI_ALPHA, /* U+0017a5: KHMER INDEPENDENT VOWEL QI*/ + RTUNI_ALPHA, /* U+0017a6: KHMER INDEPENDENT VOWEL QII*/ + RTUNI_ALPHA, /* U+0017a7: KHMER INDEPENDENT VOWEL QU*/ + RTUNI_ALPHA, /* U+0017a8: KHMER INDEPENDENT VOWEL QUK*/ + RTUNI_ALPHA, /* U+0017a9: KHMER INDEPENDENT VOWEL QUU*/ + RTUNI_ALPHA, /* U+0017aa: KHMER INDEPENDENT VOWEL QUUV*/ + RTUNI_ALPHA, /* U+0017ab: KHMER INDEPENDENT VOWEL RY*/ + RTUNI_ALPHA, /* U+0017ac: KHMER INDEPENDENT VOWEL RYY*/ + RTUNI_ALPHA, /* U+0017ad: KHMER INDEPENDENT VOWEL LY*/ + RTUNI_ALPHA, /* U+0017ae: KHMER INDEPENDENT VOWEL LYY*/ + RTUNI_ALPHA, /* U+0017af: KHMER INDEPENDENT VOWEL QE*/ + RTUNI_ALPHA, /* U+0017b0: KHMER INDEPENDENT VOWEL QAI*/ + RTUNI_ALPHA, /* U+0017b1: KHMER INDEPENDENT VOWEL QOO TYPE ONE*/ + RTUNI_ALPHA, /* U+0017b2: KHMER INDEPENDENT VOWEL QOO TYPE TWO*/ + RTUNI_ALPHA, /* U+0017b3: KHMER INDEPENDENT VOWEL QAU*/ + 0, /* U+0017b4: KHMER VOWEL INHERENT AQ*/ + 0, /* U+0017b5: KHMER VOWEL INHERENT AA*/ + RTUNI_ALPHA, /* U+0017b6: KHMER VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+0017b7: KHMER VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+0017b8: KHMER VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+0017b9: KHMER VOWEL SIGN Y*/ + RTUNI_ALPHA, /* U+0017ba: KHMER VOWEL SIGN YY*/ + RTUNI_ALPHA, /* U+0017bb: KHMER VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+0017bc: KHMER VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+0017bd: KHMER VOWEL SIGN UA*/ + RTUNI_ALPHA, /* U+0017be: KHMER VOWEL SIGN OE*/ + RTUNI_ALPHA, /* U+0017bf: KHMER VOWEL SIGN YA*/ + RTUNI_ALPHA, /* U+0017c0: KHMER VOWEL SIGN IE*/ + RTUNI_ALPHA, /* U+0017c1: KHMER VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+0017c2: KHMER VOWEL SIGN AE*/ + RTUNI_ALPHA, /* U+0017c3: KHMER VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+0017c4: KHMER VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+0017c5: KHMER VOWEL SIGN AU*/ + RTUNI_ALPHA, /* U+0017c6: KHMER SIGN NIKAHIT*/ + RTUNI_ALPHA, /* U+0017c7: KHMER SIGN REAHMUK*/ + RTUNI_ALPHA, /* U+0017c8: KHMER SIGN YUUKALEAPINTU*/ + 0, /* U+0017c9: KHMER SIGN MUUSIKATOAN*/ + 0, /* U+0017ca: KHMER SIGN TRIISAP*/ + 0, /* U+0017cb: KHMER SIGN BANTOC*/ + 0, /* U+0017cc: KHMER SIGN ROBAT*/ + 0, /* U+0017cd: KHMER SIGN TOANDAKHIAT*/ + 0, /* U+0017ce: KHMER SIGN KAKABAT*/ + 0, /* U+0017cf: KHMER SIGN AHSDA*/ + 0, /* U+0017d0: KHMER SIGN SAMYOK SANNYA*/ + 0, /* U+0017d1: KHMER SIGN VIRIAM*/ + 0, /* U+0017d2: KHMER SIGN COENG*/ + 0, /* U+0017d3: KHMER SIGN BATHAMASAT*/ + 0, /* U+0017d4: KHMER SIGN KHAN*/ + 0, /* U+0017d5: KHMER SIGN BARIYOOSAN*/ + 0, /* U+0017d6: KHMER SIGN CAMNUC PII KUUH*/ + RTUNI_ALPHA, /* U+0017d7: KHMER SIGN LEK TOO*/ + 0, /* U+0017d8: KHMER SIGN BEYYAL*/ + 0, /* U+0017d9: KHMER SIGN PHNAEK MUAN*/ + 0, /* U+0017da: KHMER SIGN KOOMUUT*/ + 0, /* U+0017db: KHMER CURRENCY SYMBOL RIEL*/ + RTUNI_ALPHA, /* U+0017dc: KHMER SIGN AVAKRAHASANYA*/ + 0, /* U+0017dd: KHMER SIGN ATTHACAN*/ + 0, /* U+0017de: */ + 0, /* U+0017df: */ + RTUNI_DDIGIT, /* U+0017e0: KHMER DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0017e1: KHMER DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0017e2: KHMER DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0017e3: KHMER DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0017e4: KHMER DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0017e5: KHMER DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0017e6: KHMER DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0017e7: KHMER DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0017e8: KHMER DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0017e9: KHMER DIGIT NINE*/ + 0, /* U+0017ea: */ + 0, /* U+0017eb: */ + 0, /* U+0017ec: */ + 0, /* U+0017ed: */ + 0, /* U+0017ee: */ + 0, /* U+0017ef: */ + 0, /* U+0017f0: KHMER SYMBOL LEK ATTAK SON*/ + 0, /* U+0017f1: KHMER SYMBOL LEK ATTAK MUOY*/ + 0, /* U+0017f2: KHMER SYMBOL LEK ATTAK PII*/ + 0, /* U+0017f3: KHMER SYMBOL LEK ATTAK BEI*/ + 0, /* U+0017f4: KHMER SYMBOL LEK ATTAK BUON*/ + 0, /* U+0017f5: KHMER SYMBOL LEK ATTAK PRAM*/ + 0, /* U+0017f6: KHMER SYMBOL LEK ATTAK PRAM-MUOY*/ + 0, /* U+0017f7: KHMER SYMBOL LEK ATTAK PRAM-PII*/ + 0, /* U+0017f8: KHMER SYMBOL LEK ATTAK PRAM-BEI*/ + 0, /* U+0017f9: KHMER SYMBOL LEK ATTAK PRAM-BUON*/ + 0, /* U+0017fa: */ + 0, /* U+0017fb: */ + 0, /* U+0017fc: */ + 0, /* U+0017fd: */ + 0, /* U+0017fe: */ + 0, /* U+0017ff: */ + 0, /* U+001800: MONGOLIAN BIRGA*/ + 0, /* U+001801: MONGOLIAN ELLIPSIS*/ + 0, /* U+001802: MONGOLIAN COMMA*/ + 0, /* U+001803: MONGOLIAN FULL STOP*/ + 0, /* U+001804: MONGOLIAN COLON*/ + 0, /* U+001805: MONGOLIAN FOUR DOTS*/ + 0, /* U+001806: MONGOLIAN TODO SOFT HYPHEN*/ + 0, /* U+001807: MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER*/ + 0, /* U+001808: MONGOLIAN MANCHU COMMA*/ + 0, /* U+001809: MONGOLIAN MANCHU FULL STOP*/ + 0, /* U+00180a: MONGOLIAN NIRUGU*/ + 0, /* U+00180b: MONGOLIAN FREE VARIATION SELECTOR ONE*/ + 0, /* U+00180c: MONGOLIAN FREE VARIATION SELECTOR TWO*/ + 0, /* U+00180d: MONGOLIAN FREE VARIATION SELECTOR THREE*/ + 0, /* U+00180e: MONGOLIAN VOWEL SEPARATOR*/ + 0, /* U+00180f: */ + RTUNI_DDIGIT, /* U+001810: MONGOLIAN DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001811: MONGOLIAN DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001812: MONGOLIAN DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001813: MONGOLIAN DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001814: MONGOLIAN DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001815: MONGOLIAN DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001816: MONGOLIAN DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001817: MONGOLIAN DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001818: MONGOLIAN DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001819: MONGOLIAN DIGIT NINE*/ + 0, /* U+00181a: */ + 0, /* U+00181b: */ + 0, /* U+00181c: */ + 0, /* U+00181d: */ + 0, /* U+00181e: */ + 0, /* U+00181f: */ + RTUNI_ALPHA, /* U+001820: MONGOLIAN LETTER A*/ + RTUNI_ALPHA, /* U+001821: MONGOLIAN LETTER E*/ + RTUNI_ALPHA, /* U+001822: MONGOLIAN LETTER I*/ + RTUNI_ALPHA, /* U+001823: MONGOLIAN LETTER O*/ + RTUNI_ALPHA, /* U+001824: MONGOLIAN LETTER U*/ + RTUNI_ALPHA, /* U+001825: MONGOLIAN LETTER OE*/ + RTUNI_ALPHA, /* U+001826: MONGOLIAN LETTER UE*/ + RTUNI_ALPHA, /* U+001827: MONGOLIAN LETTER EE*/ + RTUNI_ALPHA, /* U+001828: MONGOLIAN LETTER NA*/ + RTUNI_ALPHA, /* U+001829: MONGOLIAN LETTER ANG*/ + RTUNI_ALPHA, /* U+00182a: MONGOLIAN LETTER BA*/ + RTUNI_ALPHA, /* U+00182b: MONGOLIAN LETTER PA*/ + RTUNI_ALPHA, /* U+00182c: MONGOLIAN LETTER QA*/ + RTUNI_ALPHA, /* U+00182d: MONGOLIAN LETTER GA*/ + RTUNI_ALPHA, /* U+00182e: MONGOLIAN LETTER MA*/ + RTUNI_ALPHA, /* U+00182f: MONGOLIAN LETTER LA*/ + RTUNI_ALPHA, /* U+001830: MONGOLIAN LETTER SA*/ + RTUNI_ALPHA, /* U+001831: MONGOLIAN LETTER SHA*/ + RTUNI_ALPHA, /* U+001832: MONGOLIAN LETTER TA*/ + RTUNI_ALPHA, /* U+001833: MONGOLIAN LETTER DA*/ + RTUNI_ALPHA, /* U+001834: MONGOLIAN LETTER CHA*/ + RTUNI_ALPHA, /* U+001835: MONGOLIAN LETTER JA*/ + RTUNI_ALPHA, /* U+001836: MONGOLIAN LETTER YA*/ + RTUNI_ALPHA, /* U+001837: MONGOLIAN LETTER RA*/ + RTUNI_ALPHA, /* U+001838: MONGOLIAN LETTER WA*/ + RTUNI_ALPHA, /* U+001839: MONGOLIAN LETTER FA*/ + RTUNI_ALPHA, /* U+00183a: MONGOLIAN LETTER KA*/ + RTUNI_ALPHA, /* U+00183b: MONGOLIAN LETTER KHA*/ + RTUNI_ALPHA, /* U+00183c: MONGOLIAN LETTER TSA*/ + RTUNI_ALPHA, /* U+00183d: MONGOLIAN LETTER ZA*/ + RTUNI_ALPHA, /* U+00183e: MONGOLIAN LETTER HAA*/ + RTUNI_ALPHA, /* U+00183f: MONGOLIAN LETTER ZRA*/ + RTUNI_ALPHA, /* U+001840: MONGOLIAN LETTER LHA*/ + RTUNI_ALPHA, /* U+001841: MONGOLIAN LETTER ZHI*/ + RTUNI_ALPHA, /* U+001842: MONGOLIAN LETTER CHI*/ + RTUNI_ALPHA, /* U+001843: MONGOLIAN LETTER TODO LONG VOWEL SIGN*/ + RTUNI_ALPHA, /* U+001844: MONGOLIAN LETTER TODO E*/ + RTUNI_ALPHA, /* U+001845: MONGOLIAN LETTER TODO I*/ + RTUNI_ALPHA, /* U+001846: MONGOLIAN LETTER TODO O*/ + RTUNI_ALPHA, /* U+001847: MONGOLIAN LETTER TODO U*/ + RTUNI_ALPHA, /* U+001848: MONGOLIAN LETTER TODO OE*/ + RTUNI_ALPHA, /* U+001849: MONGOLIAN LETTER TODO UE*/ + RTUNI_ALPHA, /* U+00184a: MONGOLIAN LETTER TODO ANG*/ + RTUNI_ALPHA, /* U+00184b: MONGOLIAN LETTER TODO BA*/ + RTUNI_ALPHA, /* U+00184c: MONGOLIAN LETTER TODO PA*/ + RTUNI_ALPHA, /* U+00184d: MONGOLIAN LETTER TODO QA*/ + RTUNI_ALPHA, /* U+00184e: MONGOLIAN LETTER TODO GA*/ + RTUNI_ALPHA, /* U+00184f: MONGOLIAN LETTER TODO MA*/ + RTUNI_ALPHA, /* U+001850: MONGOLIAN LETTER TODO TA*/ + RTUNI_ALPHA, /* U+001851: MONGOLIAN LETTER TODO DA*/ + RTUNI_ALPHA, /* U+001852: MONGOLIAN LETTER TODO CHA*/ + RTUNI_ALPHA, /* U+001853: MONGOLIAN LETTER TODO JA*/ + RTUNI_ALPHA, /* U+001854: MONGOLIAN LETTER TODO TSA*/ + RTUNI_ALPHA, /* U+001855: MONGOLIAN LETTER TODO YA*/ + RTUNI_ALPHA, /* U+001856: MONGOLIAN LETTER TODO WA*/ + RTUNI_ALPHA, /* U+001857: MONGOLIAN LETTER TODO KA*/ + RTUNI_ALPHA, /* U+001858: MONGOLIAN LETTER TODO GAA*/ + RTUNI_ALPHA, /* U+001859: MONGOLIAN LETTER TODO HAA*/ + RTUNI_ALPHA, /* U+00185a: MONGOLIAN LETTER TODO JIA*/ + RTUNI_ALPHA, /* U+00185b: MONGOLIAN LETTER TODO NIA*/ + RTUNI_ALPHA, /* U+00185c: MONGOLIAN LETTER TODO DZA*/ + RTUNI_ALPHA, /* U+00185d: MONGOLIAN LETTER SIBE E*/ + RTUNI_ALPHA, /* U+00185e: MONGOLIAN LETTER SIBE I*/ + RTUNI_ALPHA, /* U+00185f: MONGOLIAN LETTER SIBE IY*/ + RTUNI_ALPHA, /* U+001860: MONGOLIAN LETTER SIBE UE*/ + RTUNI_ALPHA, /* U+001861: MONGOLIAN LETTER SIBE U*/ + RTUNI_ALPHA, /* U+001862: MONGOLIAN LETTER SIBE ANG*/ + RTUNI_ALPHA, /* U+001863: MONGOLIAN LETTER SIBE KA*/ + RTUNI_ALPHA, /* U+001864: MONGOLIAN LETTER SIBE GA*/ + RTUNI_ALPHA, /* U+001865: MONGOLIAN LETTER SIBE HA*/ + RTUNI_ALPHA, /* U+001866: MONGOLIAN LETTER SIBE PA*/ + RTUNI_ALPHA, /* U+001867: MONGOLIAN LETTER SIBE SHA*/ + RTUNI_ALPHA, /* U+001868: MONGOLIAN LETTER SIBE TA*/ + RTUNI_ALPHA, /* U+001869: MONGOLIAN LETTER SIBE DA*/ + RTUNI_ALPHA, /* U+00186a: MONGOLIAN LETTER SIBE JA*/ + RTUNI_ALPHA, /* U+00186b: MONGOLIAN LETTER SIBE FA*/ + RTUNI_ALPHA, /* U+00186c: MONGOLIAN LETTER SIBE GAA*/ + RTUNI_ALPHA, /* U+00186d: MONGOLIAN LETTER SIBE HAA*/ + RTUNI_ALPHA, /* U+00186e: MONGOLIAN LETTER SIBE TSA*/ + RTUNI_ALPHA, /* U+00186f: MONGOLIAN LETTER SIBE ZA*/ + RTUNI_ALPHA, /* U+001870: MONGOLIAN LETTER SIBE RAA*/ + RTUNI_ALPHA, /* U+001871: MONGOLIAN LETTER SIBE CHA*/ + RTUNI_ALPHA, /* U+001872: MONGOLIAN LETTER SIBE ZHA*/ + RTUNI_ALPHA, /* U+001873: MONGOLIAN LETTER MANCHU I*/ + RTUNI_ALPHA, /* U+001874: MONGOLIAN LETTER MANCHU KA*/ + RTUNI_ALPHA, /* U+001875: MONGOLIAN LETTER MANCHU RA*/ + RTUNI_ALPHA, /* U+001876: MONGOLIAN LETTER MANCHU FA*/ + RTUNI_ALPHA, /* U+001877: MONGOLIAN LETTER MANCHU ZHA*/ + 0, /* U+001878: */ + 0, /* U+001879: */ + 0, /* U+00187a: */ + 0, /* U+00187b: */ + 0, /* U+00187c: */ + 0, /* U+00187d: */ + 0, /* U+00187e: */ + 0, /* U+00187f: */ + RTUNI_ALPHA, /* U+001880: MONGOLIAN LETTER ALI GALI ANUSVARA ONE*/ + RTUNI_ALPHA, /* U+001881: MONGOLIAN LETTER ALI GALI VISARGA ONE*/ + RTUNI_ALPHA, /* U+001882: MONGOLIAN LETTER ALI GALI DAMARU*/ + RTUNI_ALPHA, /* U+001883: MONGOLIAN LETTER ALI GALI UBADAMA*/ + RTUNI_ALPHA, /* U+001884: MONGOLIAN LETTER ALI GALI INVERTED UBADAMA*/ + RTUNI_ALPHA, /* U+001885: MONGOLIAN LETTER ALI GALI BALUDA*/ + RTUNI_ALPHA, /* U+001886: MONGOLIAN LETTER ALI GALI THREE BALUDA*/ + RTUNI_ALPHA, /* U+001887: MONGOLIAN LETTER ALI GALI A*/ + RTUNI_ALPHA, /* U+001888: MONGOLIAN LETTER ALI GALI I*/ + RTUNI_ALPHA, /* U+001889: MONGOLIAN LETTER ALI GALI KA*/ + RTUNI_ALPHA, /* U+00188a: MONGOLIAN LETTER ALI GALI NGA*/ + RTUNI_ALPHA, /* U+00188b: MONGOLIAN LETTER ALI GALI CA*/ + RTUNI_ALPHA, /* U+00188c: MONGOLIAN LETTER ALI GALI TTA*/ + RTUNI_ALPHA, /* U+00188d: MONGOLIAN LETTER ALI GALI TTHA*/ + RTUNI_ALPHA, /* U+00188e: MONGOLIAN LETTER ALI GALI DDA*/ + RTUNI_ALPHA, /* U+00188f: MONGOLIAN LETTER ALI GALI NNA*/ + RTUNI_ALPHA, /* U+001890: MONGOLIAN LETTER ALI GALI TA*/ + RTUNI_ALPHA, /* U+001891: MONGOLIAN LETTER ALI GALI DA*/ + RTUNI_ALPHA, /* U+001892: MONGOLIAN LETTER ALI GALI PA*/ + RTUNI_ALPHA, /* U+001893: MONGOLIAN LETTER ALI GALI PHA*/ + RTUNI_ALPHA, /* U+001894: MONGOLIAN LETTER ALI GALI SSA*/ + RTUNI_ALPHA, /* U+001895: MONGOLIAN LETTER ALI GALI ZHA*/ + RTUNI_ALPHA, /* U+001896: MONGOLIAN LETTER ALI GALI ZA*/ + RTUNI_ALPHA, /* U+001897: MONGOLIAN LETTER ALI GALI AH*/ + RTUNI_ALPHA, /* U+001898: MONGOLIAN LETTER TODO ALI GALI TA*/ + RTUNI_ALPHA, /* U+001899: MONGOLIAN LETTER TODO ALI GALI ZHA*/ + RTUNI_ALPHA, /* U+00189a: MONGOLIAN LETTER MANCHU ALI GALI GHA*/ + RTUNI_ALPHA, /* U+00189b: MONGOLIAN LETTER MANCHU ALI GALI NGA*/ + RTUNI_ALPHA, /* U+00189c: MONGOLIAN LETTER MANCHU ALI GALI CA*/ + RTUNI_ALPHA, /* U+00189d: MONGOLIAN LETTER MANCHU ALI GALI JHA*/ + RTUNI_ALPHA, /* U+00189e: MONGOLIAN LETTER MANCHU ALI GALI TTA*/ + RTUNI_ALPHA, /* U+00189f: MONGOLIAN LETTER MANCHU ALI GALI DDHA*/ + RTUNI_ALPHA, /* U+0018a0: MONGOLIAN LETTER MANCHU ALI GALI TA*/ + RTUNI_ALPHA, /* U+0018a1: MONGOLIAN LETTER MANCHU ALI GALI DHA*/ + RTUNI_ALPHA, /* U+0018a2: MONGOLIAN LETTER MANCHU ALI GALI SSA*/ + RTUNI_ALPHA, /* U+0018a3: MONGOLIAN LETTER MANCHU ALI GALI CYA*/ + RTUNI_ALPHA, /* U+0018a4: MONGOLIAN LETTER MANCHU ALI GALI ZHA*/ + RTUNI_ALPHA, /* U+0018a5: MONGOLIAN LETTER MANCHU ALI GALI ZA*/ + RTUNI_ALPHA, /* U+0018a6: MONGOLIAN LETTER ALI GALI HALF U*/ + RTUNI_ALPHA, /* U+0018a7: MONGOLIAN LETTER ALI GALI HALF YA*/ + RTUNI_ALPHA, /* U+0018a8: MONGOLIAN LETTER MANCHU ALI GALI BHA*/ + RTUNI_ALPHA, /* U+0018a9: MONGOLIAN LETTER ALI GALI DAGALGA*/ + RTUNI_ALPHA, /* U+0018aa: MONGOLIAN LETTER MANCHU ALI GALI LHA*/ + 0, /* U+0018ab: */ + 0, /* U+0018ac: */ + 0, /* U+0018ad: */ + 0, /* U+0018ae: */ + 0, /* U+0018af: */ + RTUNI_ALPHA, /* U+0018b0: CANADIAN SYLLABICS OY*/ + RTUNI_ALPHA, /* U+0018b1: CANADIAN SYLLABICS AY*/ + RTUNI_ALPHA, /* U+0018b2: CANADIAN SYLLABICS AAY*/ + RTUNI_ALPHA, /* U+0018b3: CANADIAN SYLLABICS WAY*/ + RTUNI_ALPHA, /* U+0018b4: CANADIAN SYLLABICS POY*/ + RTUNI_ALPHA, /* U+0018b5: CANADIAN SYLLABICS PAY*/ + RTUNI_ALPHA, /* U+0018b6: CANADIAN SYLLABICS PWOY*/ + RTUNI_ALPHA, /* U+0018b7: CANADIAN SYLLABICS TAY*/ + RTUNI_ALPHA, /* U+0018b8: CANADIAN SYLLABICS KAY*/ + RTUNI_ALPHA, /* U+0018b9: CANADIAN SYLLABICS KWAY*/ + RTUNI_ALPHA, /* U+0018ba: CANADIAN SYLLABICS MAY*/ + RTUNI_ALPHA, /* U+0018bb: CANADIAN SYLLABICS NOY*/ + RTUNI_ALPHA, /* U+0018bc: CANADIAN SYLLABICS NAY*/ + RTUNI_ALPHA, /* U+0018bd: CANADIAN SYLLABICS LAY*/ + RTUNI_ALPHA, /* U+0018be: CANADIAN SYLLABICS SOY*/ + RTUNI_ALPHA, /* U+0018bf: CANADIAN SYLLABICS SAY*/ + RTUNI_ALPHA, /* U+0018c0: CANADIAN SYLLABICS SHOY*/ + RTUNI_ALPHA, /* U+0018c1: CANADIAN SYLLABICS SHAY*/ + RTUNI_ALPHA, /* U+0018c2: CANADIAN SYLLABICS SHWOY*/ + RTUNI_ALPHA, /* U+0018c3: CANADIAN SYLLABICS YOY*/ + RTUNI_ALPHA, /* U+0018c4: CANADIAN SYLLABICS YAY*/ + RTUNI_ALPHA, /* U+0018c5: CANADIAN SYLLABICS RAY*/ + RTUNI_ALPHA, /* U+0018c6: CANADIAN SYLLABICS NWI*/ + RTUNI_ALPHA, /* U+0018c7: CANADIAN SYLLABICS OJIBWAY NWI*/ + RTUNI_ALPHA, /* U+0018c8: CANADIAN SYLLABICS NWII*/ + RTUNI_ALPHA, /* U+0018c9: CANADIAN SYLLABICS OJIBWAY NWII*/ + RTUNI_ALPHA, /* U+0018ca: CANADIAN SYLLABICS NWO*/ + RTUNI_ALPHA, /* U+0018cb: CANADIAN SYLLABICS OJIBWAY NWO*/ + RTUNI_ALPHA, /* U+0018cc: CANADIAN SYLLABICS NWOO*/ + RTUNI_ALPHA, /* U+0018cd: CANADIAN SYLLABICS OJIBWAY NWOO*/ + RTUNI_ALPHA, /* U+0018ce: CANADIAN SYLLABICS RWEE*/ + RTUNI_ALPHA, /* U+0018cf: CANADIAN SYLLABICS RWI*/ + RTUNI_ALPHA, /* U+0018d0: CANADIAN SYLLABICS RWII*/ + RTUNI_ALPHA, /* U+0018d1: CANADIAN SYLLABICS RWO*/ + RTUNI_ALPHA, /* U+0018d2: CANADIAN SYLLABICS RWOO*/ + RTUNI_ALPHA, /* U+0018d3: CANADIAN SYLLABICS RWA*/ + RTUNI_ALPHA, /* U+0018d4: CANADIAN SYLLABICS OJIBWAY P*/ + RTUNI_ALPHA, /* U+0018d5: CANADIAN SYLLABICS OJIBWAY T*/ + RTUNI_ALPHA, /* U+0018d6: CANADIAN SYLLABICS OJIBWAY K*/ + RTUNI_ALPHA, /* U+0018d7: CANADIAN SYLLABICS OJIBWAY C*/ + RTUNI_ALPHA, /* U+0018d8: CANADIAN SYLLABICS OJIBWAY M*/ + RTUNI_ALPHA, /* U+0018d9: CANADIAN SYLLABICS OJIBWAY N*/ + RTUNI_ALPHA, /* U+0018da: CANADIAN SYLLABICS OJIBWAY S*/ + RTUNI_ALPHA, /* U+0018db: CANADIAN SYLLABICS OJIBWAY SH*/ + RTUNI_ALPHA, /* U+0018dc: CANADIAN SYLLABICS EASTERN W*/ + RTUNI_ALPHA, /* U+0018dd: CANADIAN SYLLABICS WESTERN W*/ + RTUNI_ALPHA, /* U+0018de: CANADIAN SYLLABICS FINAL SMALL RING*/ + RTUNI_ALPHA, /* U+0018df: CANADIAN SYLLABICS FINAL RAISED DOT*/ + RTUNI_ALPHA, /* U+0018e0: CANADIAN SYLLABICS R-CREE RWE*/ + RTUNI_ALPHA, /* U+0018e1: CANADIAN SYLLABICS WEST-CREE LOO*/ + RTUNI_ALPHA, /* U+0018e2: CANADIAN SYLLABICS WEST-CREE LAA*/ + RTUNI_ALPHA, /* U+0018e3: CANADIAN SYLLABICS THWE*/ + RTUNI_ALPHA, /* U+0018e4: CANADIAN SYLLABICS THWA*/ + RTUNI_ALPHA, /* U+0018e5: CANADIAN SYLLABICS TTHWE*/ + RTUNI_ALPHA, /* U+0018e6: CANADIAN SYLLABICS TTHOO*/ + RTUNI_ALPHA, /* U+0018e7: CANADIAN SYLLABICS TTHAA*/ + RTUNI_ALPHA, /* U+0018e8: CANADIAN SYLLABICS TLHWE*/ + RTUNI_ALPHA, /* U+0018e9: CANADIAN SYLLABICS TLHOO*/ + RTUNI_ALPHA, /* U+0018ea: CANADIAN SYLLABICS SAYISI SHWE*/ + RTUNI_ALPHA, /* U+0018eb: CANADIAN SYLLABICS SAYISI SHOO*/ + RTUNI_ALPHA, /* U+0018ec: CANADIAN SYLLABICS SAYISI HOO*/ + RTUNI_ALPHA, /* U+0018ed: CANADIAN SYLLABICS CARRIER GWU*/ + RTUNI_ALPHA, /* U+0018ee: CANADIAN SYLLABICS CARRIER DENE GEE*/ + RTUNI_ALPHA, /* U+0018ef: CANADIAN SYLLABICS CARRIER GAA*/ + RTUNI_ALPHA, /* U+0018f0: CANADIAN SYLLABICS CARRIER GWA*/ + RTUNI_ALPHA, /* U+0018f1: CANADIAN SYLLABICS SAYISI JUU*/ + RTUNI_ALPHA, /* U+0018f2: CANADIAN SYLLABICS CARRIER JWA*/ + RTUNI_ALPHA, /* U+0018f3: CANADIAN SYLLABICS BEAVER DENE L*/ + RTUNI_ALPHA, /* U+0018f4: CANADIAN SYLLABICS BEAVER DENE R*/ + RTUNI_ALPHA, /* U+0018f5: CANADIAN SYLLABICS CARRIER DENTAL S*/ + 0, /* U+0018f6: */ + 0, /* U+0018f7: */ + 0, /* U+0018f8: */ + 0, /* U+0018f9: */ + 0, /* U+0018fa: */ + 0, /* U+0018fb: */ + 0, /* U+0018fc: */ + 0, /* U+0018fd: */ + 0, /* U+0018fe: */ + 0, /* U+0018ff: */ + RTUNI_ALPHA, /* U+001900: LIMBU VOWEL-CARRIER LETTER*/ + RTUNI_ALPHA, /* U+001901: LIMBU LETTER KA*/ + RTUNI_ALPHA, /* U+001902: LIMBU LETTER KHA*/ + RTUNI_ALPHA, /* U+001903: LIMBU LETTER GA*/ + RTUNI_ALPHA, /* U+001904: LIMBU LETTER GHA*/ + RTUNI_ALPHA, /* U+001905: LIMBU LETTER NGA*/ + RTUNI_ALPHA, /* U+001906: LIMBU LETTER CA*/ + RTUNI_ALPHA, /* U+001907: LIMBU LETTER CHA*/ + RTUNI_ALPHA, /* U+001908: LIMBU LETTER JA*/ + RTUNI_ALPHA, /* U+001909: LIMBU LETTER JHA*/ + RTUNI_ALPHA, /* U+00190a: LIMBU LETTER YAN*/ + RTUNI_ALPHA, /* U+00190b: LIMBU LETTER TA*/ + RTUNI_ALPHA, /* U+00190c: LIMBU LETTER THA*/ + RTUNI_ALPHA, /* U+00190d: LIMBU LETTER DA*/ + RTUNI_ALPHA, /* U+00190e: LIMBU LETTER DHA*/ + RTUNI_ALPHA, /* U+00190f: LIMBU LETTER NA*/ + RTUNI_ALPHA, /* U+001910: LIMBU LETTER PA*/ + RTUNI_ALPHA, /* U+001911: LIMBU LETTER PHA*/ + RTUNI_ALPHA, /* U+001912: LIMBU LETTER BA*/ + RTUNI_ALPHA, /* U+001913: LIMBU LETTER BHA*/ + RTUNI_ALPHA, /* U+001914: LIMBU LETTER MA*/ + RTUNI_ALPHA, /* U+001915: LIMBU LETTER YA*/ + RTUNI_ALPHA, /* U+001916: LIMBU LETTER RA*/ + RTUNI_ALPHA, /* U+001917: LIMBU LETTER LA*/ + RTUNI_ALPHA, /* U+001918: LIMBU LETTER WA*/ + RTUNI_ALPHA, /* U+001919: LIMBU LETTER SHA*/ + RTUNI_ALPHA, /* U+00191a: LIMBU LETTER SSA*/ + RTUNI_ALPHA, /* U+00191b: LIMBU LETTER SA*/ + RTUNI_ALPHA, /* U+00191c: LIMBU LETTER HA*/ + 0, /* U+00191d: */ + 0, /* U+00191e: */ + 0, /* U+00191f: */ + RTUNI_ALPHA, /* U+001920: LIMBU VOWEL SIGN A*/ + RTUNI_ALPHA, /* U+001921: LIMBU VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001922: LIMBU VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+001923: LIMBU VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+001924: LIMBU VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+001925: LIMBU VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+001926: LIMBU VOWEL SIGN AU*/ + RTUNI_ALPHA, /* U+001927: LIMBU VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+001928: LIMBU VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+001929: LIMBU SUBJOINED LETTER YA*/ + RTUNI_ALPHA, /* U+00192a: LIMBU SUBJOINED LETTER RA*/ + RTUNI_ALPHA, /* U+00192b: LIMBU SUBJOINED LETTER WA*/ + 0, /* U+00192c: */ + 0, /* U+00192d: */ + 0, /* U+00192e: */ + 0, /* U+00192f: */ + RTUNI_ALPHA, /* U+001930: LIMBU SMALL LETTER KA*/ + RTUNI_ALPHA, /* U+001931: LIMBU SMALL LETTER NGA*/ + RTUNI_ALPHA, /* U+001932: LIMBU SMALL LETTER ANUSVARA*/ + RTUNI_ALPHA, /* U+001933: LIMBU SMALL LETTER TA*/ + RTUNI_ALPHA, /* U+001934: LIMBU SMALL LETTER NA*/ + RTUNI_ALPHA, /* U+001935: LIMBU SMALL LETTER PA*/ + RTUNI_ALPHA, /* U+001936: LIMBU SMALL LETTER MA*/ + RTUNI_ALPHA, /* U+001937: LIMBU SMALL LETTER RA*/ + RTUNI_ALPHA, /* U+001938: LIMBU SMALL LETTER LA*/ + 0, /* U+001939: LIMBU SIGN MUKPHRENG*/ + 0, /* U+00193a: LIMBU SIGN KEMPHRENG*/ + 0, /* U+00193b: LIMBU SIGN SA-I*/ + 0, /* U+00193c: */ + 0, /* U+00193d: */ + 0, /* U+00193e: */ + 0, /* U+00193f: */ + 0, /* U+001940: LIMBU SIGN LOO*/ + 0, /* U+001941: */ + 0, /* U+001942: */ + 0, /* U+001943: */ + 0, /* U+001944: LIMBU EXCLAMATION MARK*/ + 0, /* U+001945: LIMBU QUESTION MARK*/ + RTUNI_DDIGIT, /* U+001946: LIMBU DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001947: LIMBU DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001948: LIMBU DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001949: LIMBU DIGIT THREE*/ + RTUNI_DDIGIT, /* U+00194a: LIMBU DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+00194b: LIMBU DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+00194c: LIMBU DIGIT SIX*/ + RTUNI_DDIGIT, /* U+00194d: LIMBU DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+00194e: LIMBU DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+00194f: LIMBU DIGIT NINE*/ + RTUNI_ALPHA, /* U+001950: TAI LE LETTER KA*/ + RTUNI_ALPHA, /* U+001951: TAI LE LETTER XA*/ + RTUNI_ALPHA, /* U+001952: TAI LE LETTER NGA*/ + RTUNI_ALPHA, /* U+001953: TAI LE LETTER TSA*/ + RTUNI_ALPHA, /* U+001954: TAI LE LETTER SA*/ + RTUNI_ALPHA, /* U+001955: TAI LE LETTER YA*/ + RTUNI_ALPHA, /* U+001956: TAI LE LETTER TA*/ + RTUNI_ALPHA, /* U+001957: TAI LE LETTER THA*/ + RTUNI_ALPHA, /* U+001958: TAI LE LETTER LA*/ + RTUNI_ALPHA, /* U+001959: TAI LE LETTER PA*/ + RTUNI_ALPHA, /* U+00195a: TAI LE LETTER PHA*/ + RTUNI_ALPHA, /* U+00195b: TAI LE LETTER MA*/ + RTUNI_ALPHA, /* U+00195c: TAI LE LETTER FA*/ + RTUNI_ALPHA, /* U+00195d: TAI LE LETTER VA*/ + RTUNI_ALPHA, /* U+00195e: TAI LE LETTER HA*/ + RTUNI_ALPHA, /* U+00195f: TAI LE LETTER QA*/ + RTUNI_ALPHA, /* U+001960: TAI LE LETTER KHA*/ + RTUNI_ALPHA, /* U+001961: TAI LE LETTER TSHA*/ + RTUNI_ALPHA, /* U+001962: TAI LE LETTER NA*/ + RTUNI_ALPHA, /* U+001963: TAI LE LETTER A*/ + RTUNI_ALPHA, /* U+001964: TAI LE LETTER I*/ + RTUNI_ALPHA, /* U+001965: TAI LE LETTER EE*/ + RTUNI_ALPHA, /* U+001966: TAI LE LETTER EH*/ + RTUNI_ALPHA, /* U+001967: TAI LE LETTER U*/ + RTUNI_ALPHA, /* U+001968: TAI LE LETTER OO*/ + RTUNI_ALPHA, /* U+001969: TAI LE LETTER O*/ + RTUNI_ALPHA, /* U+00196a: TAI LE LETTER UE*/ + RTUNI_ALPHA, /* U+00196b: TAI LE LETTER E*/ + RTUNI_ALPHA, /* U+00196c: TAI LE LETTER AUE*/ + RTUNI_ALPHA, /* U+00196d: TAI LE LETTER AI*/ + 0, /* U+00196e: */ + 0, /* U+00196f: */ + RTUNI_ALPHA, /* U+001970: TAI LE LETTER TONE-2*/ + RTUNI_ALPHA, /* U+001971: TAI LE LETTER TONE-3*/ + RTUNI_ALPHA, /* U+001972: TAI LE LETTER TONE-4*/ + RTUNI_ALPHA, /* U+001973: TAI LE LETTER TONE-5*/ + RTUNI_ALPHA, /* U+001974: TAI LE LETTER TONE-6*/ + 0, /* U+001975: */ + 0, /* U+001976: */ + 0, /* U+001977: */ + 0, /* U+001978: */ + 0, /* U+001979: */ + 0, /* U+00197a: */ + 0, /* U+00197b: */ + 0, /* U+00197c: */ + 0, /* U+00197d: */ + 0, /* U+00197e: */ + 0, /* U+00197f: */ + RTUNI_ALPHA, /* U+001980: NEW TAI LUE LETTER HIGH QA*/ + RTUNI_ALPHA, /* U+001981: NEW TAI LUE LETTER LOW QA*/ + RTUNI_ALPHA, /* U+001982: NEW TAI LUE LETTER HIGH KA*/ + RTUNI_ALPHA, /* U+001983: NEW TAI LUE LETTER HIGH XA*/ + RTUNI_ALPHA, /* U+001984: NEW TAI LUE LETTER HIGH NGA*/ + RTUNI_ALPHA, /* U+001985: NEW TAI LUE LETTER LOW KA*/ + RTUNI_ALPHA, /* U+001986: NEW TAI LUE LETTER LOW XA*/ + RTUNI_ALPHA, /* U+001987: NEW TAI LUE LETTER LOW NGA*/ + RTUNI_ALPHA, /* U+001988: NEW TAI LUE LETTER HIGH TSA*/ + RTUNI_ALPHA, /* U+001989: NEW TAI LUE LETTER HIGH SA*/ + RTUNI_ALPHA, /* U+00198a: NEW TAI LUE LETTER HIGH YA*/ + RTUNI_ALPHA, /* U+00198b: NEW TAI LUE LETTER LOW TSA*/ + RTUNI_ALPHA, /* U+00198c: NEW TAI LUE LETTER LOW SA*/ + RTUNI_ALPHA, /* U+00198d: NEW TAI LUE LETTER LOW YA*/ + RTUNI_ALPHA, /* U+00198e: NEW TAI LUE LETTER HIGH TA*/ + RTUNI_ALPHA, /* U+00198f: NEW TAI LUE LETTER HIGH THA*/ + RTUNI_ALPHA, /* U+001990: NEW TAI LUE LETTER HIGH NA*/ + RTUNI_ALPHA, /* U+001991: NEW TAI LUE LETTER LOW TA*/ + RTUNI_ALPHA, /* U+001992: NEW TAI LUE LETTER LOW THA*/ + RTUNI_ALPHA, /* U+001993: NEW TAI LUE LETTER LOW NA*/ + RTUNI_ALPHA, /* U+001994: NEW TAI LUE LETTER HIGH PA*/ + RTUNI_ALPHA, /* U+001995: NEW TAI LUE LETTER HIGH PHA*/ + RTUNI_ALPHA, /* U+001996: NEW TAI LUE LETTER HIGH MA*/ + RTUNI_ALPHA, /* U+001997: NEW TAI LUE LETTER LOW PA*/ + RTUNI_ALPHA, /* U+001998: NEW TAI LUE LETTER LOW PHA*/ + RTUNI_ALPHA, /* U+001999: NEW TAI LUE LETTER LOW MA*/ + RTUNI_ALPHA, /* U+00199a: NEW TAI LUE LETTER HIGH FA*/ + RTUNI_ALPHA, /* U+00199b: NEW TAI LUE LETTER HIGH VA*/ + RTUNI_ALPHA, /* U+00199c: NEW TAI LUE LETTER HIGH LA*/ + RTUNI_ALPHA, /* U+00199d: NEW TAI LUE LETTER LOW FA*/ + RTUNI_ALPHA, /* U+00199e: NEW TAI LUE LETTER LOW VA*/ + RTUNI_ALPHA, /* U+00199f: NEW TAI LUE LETTER LOW LA*/ + RTUNI_ALPHA, /* U+0019a0: NEW TAI LUE LETTER HIGH HA*/ + RTUNI_ALPHA, /* U+0019a1: NEW TAI LUE LETTER HIGH DA*/ + RTUNI_ALPHA, /* U+0019a2: NEW TAI LUE LETTER HIGH BA*/ + RTUNI_ALPHA, /* U+0019a3: NEW TAI LUE LETTER LOW HA*/ + RTUNI_ALPHA, /* U+0019a4: NEW TAI LUE LETTER LOW DA*/ + RTUNI_ALPHA, /* U+0019a5: NEW TAI LUE LETTER LOW BA*/ + RTUNI_ALPHA, /* U+0019a6: NEW TAI LUE LETTER HIGH KVA*/ + RTUNI_ALPHA, /* U+0019a7: NEW TAI LUE LETTER HIGH XVA*/ + RTUNI_ALPHA, /* U+0019a8: NEW TAI LUE LETTER LOW KVA*/ + RTUNI_ALPHA, /* U+0019a9: NEW TAI LUE LETTER LOW XVA*/ + RTUNI_ALPHA, /* U+0019aa: NEW TAI LUE LETTER HIGH SUA*/ + RTUNI_ALPHA, /* U+0019ab: NEW TAI LUE LETTER LOW SUA*/ + 0, /* U+0019ac: */ + 0, /* U+0019ad: */ + 0, /* U+0019ae: */ + 0, /* U+0019af: */ + RTUNI_ALPHA, /* U+0019b0: NEW TAI LUE VOWEL SIGN VOWEL SHORTENER*/ + RTUNI_ALPHA, /* U+0019b1: NEW TAI LUE VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+0019b2: NEW TAI LUE VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+0019b3: NEW TAI LUE VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+0019b4: NEW TAI LUE VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+0019b5: NEW TAI LUE VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+0019b6: NEW TAI LUE VOWEL SIGN AE*/ + RTUNI_ALPHA, /* U+0019b7: NEW TAI LUE VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+0019b8: NEW TAI LUE VOWEL SIGN OA*/ + RTUNI_ALPHA, /* U+0019b9: NEW TAI LUE VOWEL SIGN UE*/ + RTUNI_ALPHA, /* U+0019ba: NEW TAI LUE VOWEL SIGN AY*/ + RTUNI_ALPHA, /* U+0019bb: NEW TAI LUE VOWEL SIGN AAY*/ + RTUNI_ALPHA, /* U+0019bc: NEW TAI LUE VOWEL SIGN UY*/ + RTUNI_ALPHA, /* U+0019bd: NEW TAI LUE VOWEL SIGN OY*/ + RTUNI_ALPHA, /* U+0019be: NEW TAI LUE VOWEL SIGN OAY*/ + RTUNI_ALPHA, /* U+0019bf: NEW TAI LUE VOWEL SIGN UEY*/ + RTUNI_ALPHA, /* U+0019c0: NEW TAI LUE VOWEL SIGN IY*/ + RTUNI_ALPHA, /* U+0019c1: NEW TAI LUE LETTER FINAL V*/ + RTUNI_ALPHA, /* U+0019c2: NEW TAI LUE LETTER FINAL NG*/ + RTUNI_ALPHA, /* U+0019c3: NEW TAI LUE LETTER FINAL N*/ + RTUNI_ALPHA, /* U+0019c4: NEW TAI LUE LETTER FINAL M*/ + RTUNI_ALPHA, /* U+0019c5: NEW TAI LUE LETTER FINAL K*/ + RTUNI_ALPHA, /* U+0019c6: NEW TAI LUE LETTER FINAL D*/ + RTUNI_ALPHA, /* U+0019c7: NEW TAI LUE LETTER FINAL B*/ + RTUNI_ALPHA, /* U+0019c8: NEW TAI LUE TONE MARK-1*/ + RTUNI_ALPHA, /* U+0019c9: NEW TAI LUE TONE MARK-2*/ + 0, /* U+0019ca: */ + 0, /* U+0019cb: */ + 0, /* U+0019cc: */ + 0, /* U+0019cd: */ + 0, /* U+0019ce: */ + 0, /* U+0019cf: */ + RTUNI_DDIGIT, /* U+0019d0: NEW TAI LUE DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0019d1: NEW TAI LUE DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0019d2: NEW TAI LUE DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0019d3: NEW TAI LUE DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0019d4: NEW TAI LUE DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0019d5: NEW TAI LUE DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0019d6: NEW TAI LUE DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0019d7: NEW TAI LUE DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0019d8: NEW TAI LUE DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0019d9: NEW TAI LUE DIGIT NINE*/ + 0, /* U+0019da: NEW TAI LUE THAM DIGIT ONE*/ + 0, /* U+0019db: */ + 0, /* U+0019dc: */ + 0, /* U+0019dd: */ + 0, /* U+0019de: NEW TAI LUE SIGN LAE*/ + 0, /* U+0019df: NEW TAI LUE SIGN LAEV*/ + 0, /* U+0019e0: KHMER SYMBOL PATHAMASAT*/ + 0, /* U+0019e1: KHMER SYMBOL MUOY KOET*/ + 0, /* U+0019e2: KHMER SYMBOL PII KOET*/ + 0, /* U+0019e3: KHMER SYMBOL BEI KOET*/ + 0, /* U+0019e4: KHMER SYMBOL BUON KOET*/ + 0, /* U+0019e5: KHMER SYMBOL PRAM KOET*/ + 0, /* U+0019e6: KHMER SYMBOL PRAM-MUOY KOET*/ + 0, /* U+0019e7: KHMER SYMBOL PRAM-PII KOET*/ + 0, /* U+0019e8: KHMER SYMBOL PRAM-BEI KOET*/ + 0, /* U+0019e9: KHMER SYMBOL PRAM-BUON KOET*/ + 0, /* U+0019ea: KHMER SYMBOL DAP KOET*/ + 0, /* U+0019eb: KHMER SYMBOL DAP-MUOY KOET*/ + 0, /* U+0019ec: KHMER SYMBOL DAP-PII KOET*/ + 0, /* U+0019ed: KHMER SYMBOL DAP-BEI KOET*/ + 0, /* U+0019ee: KHMER SYMBOL DAP-BUON KOET*/ + 0, /* U+0019ef: KHMER SYMBOL DAP-PRAM KOET*/ + 0, /* U+0019f0: KHMER SYMBOL TUTEYASAT*/ + 0, /* U+0019f1: KHMER SYMBOL MUOY ROC*/ + 0, /* U+0019f2: KHMER SYMBOL PII ROC*/ + 0, /* U+0019f3: KHMER SYMBOL BEI ROC*/ + 0, /* U+0019f4: KHMER SYMBOL BUON ROC*/ + 0, /* U+0019f5: KHMER SYMBOL PRAM ROC*/ + 0, /* U+0019f6: KHMER SYMBOL PRAM-MUOY ROC*/ + 0, /* U+0019f7: KHMER SYMBOL PRAM-PII ROC*/ + 0, /* U+0019f8: KHMER SYMBOL PRAM-BEI ROC*/ + 0, /* U+0019f9: KHMER SYMBOL PRAM-BUON ROC*/ + 0, /* U+0019fa: KHMER SYMBOL DAP ROC*/ + 0, /* U+0019fb: KHMER SYMBOL DAP-MUOY ROC*/ + 0, /* U+0019fc: KHMER SYMBOL DAP-PII ROC*/ + 0, /* U+0019fd: KHMER SYMBOL DAP-BEI ROC*/ + 0, /* U+0019fe: KHMER SYMBOL DAP-BUON ROC*/ + 0, /* U+0019ff: KHMER SYMBOL DAP-PRAM ROC*/ + RTUNI_ALPHA, /* U+001a00: BUGINESE LETTER KA*/ + RTUNI_ALPHA, /* U+001a01: BUGINESE LETTER GA*/ + RTUNI_ALPHA, /* U+001a02: BUGINESE LETTER NGA*/ + RTUNI_ALPHA, /* U+001a03: BUGINESE LETTER NGKA*/ + RTUNI_ALPHA, /* U+001a04: BUGINESE LETTER PA*/ + RTUNI_ALPHA, /* U+001a05: BUGINESE LETTER BA*/ + RTUNI_ALPHA, /* U+001a06: BUGINESE LETTER MA*/ + RTUNI_ALPHA, /* U+001a07: BUGINESE LETTER MPA*/ + RTUNI_ALPHA, /* U+001a08: BUGINESE LETTER TA*/ + RTUNI_ALPHA, /* U+001a09: BUGINESE LETTER DA*/ + RTUNI_ALPHA, /* U+001a0a: BUGINESE LETTER NA*/ + RTUNI_ALPHA, /* U+001a0b: BUGINESE LETTER NRA*/ + RTUNI_ALPHA, /* U+001a0c: BUGINESE LETTER CA*/ + RTUNI_ALPHA, /* U+001a0d: BUGINESE LETTER JA*/ + RTUNI_ALPHA, /* U+001a0e: BUGINESE LETTER NYA*/ + RTUNI_ALPHA, /* U+001a0f: BUGINESE LETTER NYCA*/ + RTUNI_ALPHA, /* U+001a10: BUGINESE LETTER YA*/ + RTUNI_ALPHA, /* U+001a11: BUGINESE LETTER RA*/ + RTUNI_ALPHA, /* U+001a12: BUGINESE LETTER LA*/ + RTUNI_ALPHA, /* U+001a13: BUGINESE LETTER VA*/ + RTUNI_ALPHA, /* U+001a14: BUGINESE LETTER SA*/ + RTUNI_ALPHA, /* U+001a15: BUGINESE LETTER A*/ + RTUNI_ALPHA, /* U+001a16: BUGINESE LETTER HA*/ + RTUNI_ALPHA, /* U+001a17: BUGINESE VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001a18: BUGINESE VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+001a19: BUGINESE VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+001a1a: BUGINESE VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+001a1b: BUGINESE VOWEL SIGN AE*/ + 0, /* U+001a1c: */ + 0, /* U+001a1d: */ + 0, /* U+001a1e: BUGINESE PALLAWA*/ + 0, /* U+001a1f: BUGINESE END OF SECTION*/ + RTUNI_ALPHA, /* U+001a20: TAI THAM LETTER HIGH KA*/ + RTUNI_ALPHA, /* U+001a21: TAI THAM LETTER HIGH KHA*/ + RTUNI_ALPHA, /* U+001a22: TAI THAM LETTER HIGH KXA*/ + RTUNI_ALPHA, /* U+001a23: TAI THAM LETTER LOW KA*/ + RTUNI_ALPHA, /* U+001a24: TAI THAM LETTER LOW KXA*/ + RTUNI_ALPHA, /* U+001a25: TAI THAM LETTER LOW KHA*/ + RTUNI_ALPHA, /* U+001a26: TAI THAM LETTER NGA*/ + RTUNI_ALPHA, /* U+001a27: TAI THAM LETTER HIGH CA*/ + RTUNI_ALPHA, /* U+001a28: TAI THAM LETTER HIGH CHA*/ + RTUNI_ALPHA, /* U+001a29: TAI THAM LETTER LOW CA*/ + RTUNI_ALPHA, /* U+001a2a: TAI THAM LETTER LOW SA*/ + RTUNI_ALPHA, /* U+001a2b: TAI THAM LETTER LOW CHA*/ + RTUNI_ALPHA, /* U+001a2c: TAI THAM LETTER NYA*/ + RTUNI_ALPHA, /* U+001a2d: TAI THAM LETTER RATA*/ + RTUNI_ALPHA, /* U+001a2e: TAI THAM LETTER HIGH RATHA*/ + RTUNI_ALPHA, /* U+001a2f: TAI THAM LETTER DA*/ + RTUNI_ALPHA, /* U+001a30: TAI THAM LETTER LOW RATHA*/ + RTUNI_ALPHA, /* U+001a31: TAI THAM LETTER RANA*/ + RTUNI_ALPHA, /* U+001a32: TAI THAM LETTER HIGH TA*/ + RTUNI_ALPHA, /* U+001a33: TAI THAM LETTER HIGH THA*/ + RTUNI_ALPHA, /* U+001a34: TAI THAM LETTER LOW TA*/ + RTUNI_ALPHA, /* U+001a35: TAI THAM LETTER LOW THA*/ + RTUNI_ALPHA, /* U+001a36: TAI THAM LETTER NA*/ + RTUNI_ALPHA, /* U+001a37: TAI THAM LETTER BA*/ + RTUNI_ALPHA, /* U+001a38: TAI THAM LETTER HIGH PA*/ + RTUNI_ALPHA, /* U+001a39: TAI THAM LETTER HIGH PHA*/ + RTUNI_ALPHA, /* U+001a3a: TAI THAM LETTER HIGH FA*/ + RTUNI_ALPHA, /* U+001a3b: TAI THAM LETTER LOW PA*/ + RTUNI_ALPHA, /* U+001a3c: TAI THAM LETTER LOW FA*/ + RTUNI_ALPHA, /* U+001a3d: TAI THAM LETTER LOW PHA*/ + RTUNI_ALPHA, /* U+001a3e: TAI THAM LETTER MA*/ + RTUNI_ALPHA, /* U+001a3f: TAI THAM LETTER LOW YA*/ + RTUNI_ALPHA, /* U+001a40: TAI THAM LETTER HIGH YA*/ + RTUNI_ALPHA, /* U+001a41: TAI THAM LETTER RA*/ + RTUNI_ALPHA, /* U+001a42: TAI THAM LETTER RUE*/ + RTUNI_ALPHA, /* U+001a43: TAI THAM LETTER LA*/ + RTUNI_ALPHA, /* U+001a44: TAI THAM LETTER LUE*/ + RTUNI_ALPHA, /* U+001a45: TAI THAM LETTER WA*/ + RTUNI_ALPHA, /* U+001a46: TAI THAM LETTER HIGH SHA*/ + RTUNI_ALPHA, /* U+001a47: TAI THAM LETTER HIGH SSA*/ + RTUNI_ALPHA, /* U+001a48: TAI THAM LETTER HIGH SA*/ + RTUNI_ALPHA, /* U+001a49: TAI THAM LETTER HIGH HA*/ + RTUNI_ALPHA, /* U+001a4a: TAI THAM LETTER LLA*/ + RTUNI_ALPHA, /* U+001a4b: TAI THAM LETTER A*/ + RTUNI_ALPHA, /* U+001a4c: TAI THAM LETTER LOW HA*/ + RTUNI_ALPHA, /* U+001a4d: TAI THAM LETTER I*/ + RTUNI_ALPHA, /* U+001a4e: TAI THAM LETTER II*/ + RTUNI_ALPHA, /* U+001a4f: TAI THAM LETTER U*/ + RTUNI_ALPHA, /* U+001a50: TAI THAM LETTER UU*/ + RTUNI_ALPHA, /* U+001a51: TAI THAM LETTER EE*/ + RTUNI_ALPHA, /* U+001a52: TAI THAM LETTER OO*/ + RTUNI_ALPHA, /* U+001a53: TAI THAM LETTER LAE*/ + RTUNI_ALPHA, /* U+001a54: TAI THAM LETTER GREAT SA*/ + RTUNI_ALPHA, /* U+001a55: TAI THAM CONSONANT SIGN MEDIAL RA*/ + RTUNI_ALPHA, /* U+001a56: TAI THAM CONSONANT SIGN MEDIAL LA*/ + RTUNI_ALPHA, /* U+001a57: TAI THAM CONSONANT SIGN LA TANG LAI*/ + RTUNI_ALPHA, /* U+001a58: TAI THAM SIGN MAI KANG LAI*/ + RTUNI_ALPHA, /* U+001a59: TAI THAM CONSONANT SIGN FINAL NGA*/ + RTUNI_ALPHA, /* U+001a5a: TAI THAM CONSONANT SIGN LOW PA*/ + RTUNI_ALPHA, /* U+001a5b: TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA*/ + RTUNI_ALPHA, /* U+001a5c: TAI THAM CONSONANT SIGN MA*/ + RTUNI_ALPHA, /* U+001a5d: TAI THAM CONSONANT SIGN BA*/ + RTUNI_ALPHA, /* U+001a5e: TAI THAM CONSONANT SIGN SA*/ + 0, /* U+001a5f: */ + 0, /* U+001a60: TAI THAM SIGN SAKOT*/ + RTUNI_ALPHA, /* U+001a61: TAI THAM VOWEL SIGN A*/ + RTUNI_ALPHA, /* U+001a62: TAI THAM VOWEL SIGN MAI SAT*/ + RTUNI_ALPHA, /* U+001a63: TAI THAM VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+001a64: TAI THAM VOWEL SIGN TALL AA*/ + RTUNI_ALPHA, /* U+001a65: TAI THAM VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001a66: TAI THAM VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+001a67: TAI THAM VOWEL SIGN UE*/ + RTUNI_ALPHA, /* U+001a68: TAI THAM VOWEL SIGN UUE*/ + RTUNI_ALPHA, /* U+001a69: TAI THAM VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+001a6a: TAI THAM VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+001a6b: TAI THAM VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+001a6c: TAI THAM VOWEL SIGN OA BELOW*/ + RTUNI_ALPHA, /* U+001a6d: TAI THAM VOWEL SIGN OY*/ + RTUNI_ALPHA, /* U+001a6e: TAI THAM VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+001a6f: TAI THAM VOWEL SIGN AE*/ + RTUNI_ALPHA, /* U+001a70: TAI THAM VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+001a71: TAI THAM VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+001a72: TAI THAM VOWEL SIGN THAM AI*/ + RTUNI_ALPHA, /* U+001a73: TAI THAM VOWEL SIGN OA ABOVE*/ + RTUNI_ALPHA, /* U+001a74: TAI THAM SIGN MAI KANG*/ + 0, /* U+001a75: TAI THAM SIGN TONE-1*/ + 0, /* U+001a76: TAI THAM SIGN TONE-2*/ + 0, /* U+001a77: TAI THAM SIGN KHUEN TONE-3*/ + 0, /* U+001a78: TAI THAM SIGN KHUEN TONE-4*/ + 0, /* U+001a79: TAI THAM SIGN KHUEN TONE-5*/ + 0, /* U+001a7a: TAI THAM SIGN RA HAAM*/ + 0, /* U+001a7b: TAI THAM SIGN MAI SAM*/ + 0, /* U+001a7c: TAI THAM SIGN KHUEN-LUE KARAN*/ + 0, /* U+001a7d: */ + 0, /* U+001a7e: */ + 0, /* U+001a7f: TAI THAM COMBINING CRYPTOGRAMMIC DOT*/ + RTUNI_DDIGIT, /* U+001a80: TAI THAM HORA DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001a81: TAI THAM HORA DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001a82: TAI THAM HORA DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001a83: TAI THAM HORA DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001a84: TAI THAM HORA DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001a85: TAI THAM HORA DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001a86: TAI THAM HORA DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001a87: TAI THAM HORA DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001a88: TAI THAM HORA DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001a89: TAI THAM HORA DIGIT NINE*/ + 0, /* U+001a8a: */ + 0, /* U+001a8b: */ + 0, /* U+001a8c: */ + 0, /* U+001a8d: */ + 0, /* U+001a8e: */ + 0, /* U+001a8f: */ + RTUNI_DDIGIT, /* U+001a90: TAI THAM THAM DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001a91: TAI THAM THAM DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001a92: TAI THAM THAM DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001a93: TAI THAM THAM DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001a94: TAI THAM THAM DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001a95: TAI THAM THAM DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001a96: TAI THAM THAM DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001a97: TAI THAM THAM DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001a98: TAI THAM THAM DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001a99: TAI THAM THAM DIGIT NINE*/ + 0, /* U+001a9a: */ + 0, /* U+001a9b: */ + 0, /* U+001a9c: */ + 0, /* U+001a9d: */ + 0, /* U+001a9e: */ + 0, /* U+001a9f: */ + 0, /* U+001aa0: TAI THAM SIGN WIANG*/ + 0, /* U+001aa1: TAI THAM SIGN WIANGWAAK*/ + 0, /* U+001aa2: TAI THAM SIGN SAWAN*/ + 0, /* U+001aa3: TAI THAM SIGN KEOW*/ + 0, /* U+001aa4: TAI THAM SIGN HOY*/ + 0, /* U+001aa5: TAI THAM SIGN DOKMAI*/ + 0, /* U+001aa6: TAI THAM SIGN REVERSED ROTATED RANA*/ + RTUNI_ALPHA, /* U+001aa7: TAI THAM SIGN MAI YAMOK*/ + 0, /* U+001aa8: TAI THAM SIGN KAAN*/ + 0, /* U+001aa9: TAI THAM SIGN KAANKUU*/ + 0, /* U+001aaa: TAI THAM SIGN SATKAAN*/ + 0, /* U+001aab: TAI THAM SIGN SATKAANKUU*/ + 0, /* U+001aac: TAI THAM SIGN HANG*/ + 0, /* U+001aad: TAI THAM SIGN CAANG*/ + 0, /* U+001aae: */ + 0, /* U+001aaf: */ + 0, /* U+001ab0: */ + 0, /* U+001ab1: */ + 0, /* U+001ab2: */ + 0, /* U+001ab3: */ + 0, /* U+001ab4: */ + 0, /* U+001ab5: */ + 0, /* U+001ab6: */ + 0, /* U+001ab7: */ + 0, /* U+001ab8: */ + 0, /* U+001ab9: */ + 0, /* U+001aba: */ + 0, /* U+001abb: */ + 0, /* U+001abc: */ + 0, /* U+001abd: */ + 0, /* U+001abe: */ + 0, /* U+001abf: */ + 0, /* U+001ac0: */ + 0, /* U+001ac1: */ + 0, /* U+001ac2: */ + 0, /* U+001ac3: */ + 0, /* U+001ac4: */ + 0, /* U+001ac5: */ + 0, /* U+001ac6: */ + 0, /* U+001ac7: */ + 0, /* U+001ac8: */ + 0, /* U+001ac9: */ + 0, /* U+001aca: */ + 0, /* U+001acb: */ + 0, /* U+001acc: */ + 0, /* U+001acd: */ + 0, /* U+001ace: */ + 0, /* U+001acf: */ + 0, /* U+001ad0: */ + 0, /* U+001ad1: */ + 0, /* U+001ad2: */ + 0, /* U+001ad3: */ + 0, /* U+001ad4: */ + 0, /* U+001ad5: */ + 0, /* U+001ad6: */ + 0, /* U+001ad7: */ + 0, /* U+001ad8: */ + 0, /* U+001ad9: */ + 0, /* U+001ada: */ + 0, /* U+001adb: */ + 0, /* U+001adc: */ + 0, /* U+001add: */ + 0, /* U+001ade: */ + 0, /* U+001adf: */ + 0, /* U+001ae0: */ + 0, /* U+001ae1: */ + 0, /* U+001ae2: */ + 0, /* U+001ae3: */ + 0, /* U+001ae4: */ + 0, /* U+001ae5: */ + 0, /* U+001ae6: */ + 0, /* U+001ae7: */ + 0, /* U+001ae8: */ + 0, /* U+001ae9: */ + 0, /* U+001aea: */ + 0, /* U+001aeb: */ + 0, /* U+001aec: */ + 0, /* U+001aed: */ + 0, /* U+001aee: */ + 0, /* U+001aef: */ + 0, /* U+001af0: */ + 0, /* U+001af1: */ + 0, /* U+001af2: */ + 0, /* U+001af3: */ + 0, /* U+001af4: */ + 0, /* U+001af5: */ + 0, /* U+001af6: */ + 0, /* U+001af7: */ + 0, /* U+001af8: */ + 0, /* U+001af9: */ + 0, /* U+001afa: */ + 0, /* U+001afb: */ + 0, /* U+001afc: */ + 0, /* U+001afd: */ + 0, /* U+001afe: */ + 0, /* U+001aff: */ + RTUNI_ALPHA, /* U+001b00: BALINESE SIGN ULU RICEM*/ + RTUNI_ALPHA, /* U+001b01: BALINESE SIGN ULU CANDRA*/ + RTUNI_ALPHA, /* U+001b02: BALINESE SIGN CECEK*/ + RTUNI_ALPHA, /* U+001b03: BALINESE SIGN SURANG*/ + RTUNI_ALPHA, /* U+001b04: BALINESE SIGN BISAH*/ + RTUNI_ALPHA, /* U+001b05: BALINESE LETTER AKARA*/ + RTUNI_ALPHA, /* U+001b06: BALINESE LETTER AKARA TEDUNG*/ + RTUNI_ALPHA, /* U+001b07: BALINESE LETTER IKARA*/ + RTUNI_ALPHA, /* U+001b08: BALINESE LETTER IKARA TEDUNG*/ + RTUNI_ALPHA, /* U+001b09: BALINESE LETTER UKARA*/ + RTUNI_ALPHA, /* U+001b0a: BALINESE LETTER UKARA TEDUNG*/ + RTUNI_ALPHA, /* U+001b0b: BALINESE LETTER RA REPA*/ + RTUNI_ALPHA, /* U+001b0c: BALINESE LETTER RA REPA TEDUNG*/ + RTUNI_ALPHA, /* U+001b0d: BALINESE LETTER LA LENGA*/ + RTUNI_ALPHA, /* U+001b0e: BALINESE LETTER LA LENGA TEDUNG*/ + RTUNI_ALPHA, /* U+001b0f: BALINESE LETTER EKARA*/ + RTUNI_ALPHA, /* U+001b10: BALINESE LETTER AIKARA*/ + RTUNI_ALPHA, /* U+001b11: BALINESE LETTER OKARA*/ + RTUNI_ALPHA, /* U+001b12: BALINESE LETTER OKARA TEDUNG*/ + RTUNI_ALPHA, /* U+001b13: BALINESE LETTER KA*/ + RTUNI_ALPHA, /* U+001b14: BALINESE LETTER KA MAHAPRANA*/ + RTUNI_ALPHA, /* U+001b15: BALINESE LETTER GA*/ + RTUNI_ALPHA, /* U+001b16: BALINESE LETTER GA GORA*/ + RTUNI_ALPHA, /* U+001b17: BALINESE LETTER NGA*/ + RTUNI_ALPHA, /* U+001b18: BALINESE LETTER CA*/ + RTUNI_ALPHA, /* U+001b19: BALINESE LETTER CA LACA*/ + RTUNI_ALPHA, /* U+001b1a: BALINESE LETTER JA*/ + RTUNI_ALPHA, /* U+001b1b: BALINESE LETTER JA JERA*/ + RTUNI_ALPHA, /* U+001b1c: BALINESE LETTER NYA*/ + RTUNI_ALPHA, /* U+001b1d: BALINESE LETTER TA LATIK*/ + RTUNI_ALPHA, /* U+001b1e: BALINESE LETTER TA MURDA MAHAPRANA*/ + RTUNI_ALPHA, /* U+001b1f: BALINESE LETTER DA MURDA ALPAPRANA*/ + RTUNI_ALPHA, /* U+001b20: BALINESE LETTER DA MURDA MAHAPRANA*/ + RTUNI_ALPHA, /* U+001b21: BALINESE LETTER NA RAMBAT*/ + RTUNI_ALPHA, /* U+001b22: BALINESE LETTER TA*/ + RTUNI_ALPHA, /* U+001b23: BALINESE LETTER TA TAWA*/ + RTUNI_ALPHA, /* U+001b24: BALINESE LETTER DA*/ + RTUNI_ALPHA, /* U+001b25: BALINESE LETTER DA MADU*/ + RTUNI_ALPHA, /* U+001b26: BALINESE LETTER NA*/ + RTUNI_ALPHA, /* U+001b27: BALINESE LETTER PA*/ + RTUNI_ALPHA, /* U+001b28: BALINESE LETTER PA KAPAL*/ + RTUNI_ALPHA, /* U+001b29: BALINESE LETTER BA*/ + RTUNI_ALPHA, /* U+001b2a: BALINESE LETTER BA KEMBANG*/ + RTUNI_ALPHA, /* U+001b2b: BALINESE LETTER MA*/ + RTUNI_ALPHA, /* U+001b2c: BALINESE LETTER YA*/ + RTUNI_ALPHA, /* U+001b2d: BALINESE LETTER RA*/ + RTUNI_ALPHA, /* U+001b2e: BALINESE LETTER LA*/ + RTUNI_ALPHA, /* U+001b2f: BALINESE LETTER WA*/ + RTUNI_ALPHA, /* U+001b30: BALINESE LETTER SA SAGA*/ + RTUNI_ALPHA, /* U+001b31: BALINESE LETTER SA SAPA*/ + RTUNI_ALPHA, /* U+001b32: BALINESE LETTER SA*/ + RTUNI_ALPHA, /* U+001b33: BALINESE LETTER HA*/ + 0, /* U+001b34: BALINESE SIGN REREKAN*/ + RTUNI_ALPHA, /* U+001b35: BALINESE VOWEL SIGN TEDUNG*/ + RTUNI_ALPHA, /* U+001b36: BALINESE VOWEL SIGN ULU*/ + RTUNI_ALPHA, /* U+001b37: BALINESE VOWEL SIGN ULU SARI*/ + RTUNI_ALPHA, /* U+001b38: BALINESE VOWEL SIGN SUKU*/ + RTUNI_ALPHA, /* U+001b39: BALINESE VOWEL SIGN SUKU ILUT*/ + RTUNI_ALPHA, /* U+001b3a: BALINESE VOWEL SIGN RA REPA*/ + RTUNI_ALPHA, /* U+001b3b: BALINESE VOWEL SIGN RA REPA TEDUNG*/ + RTUNI_ALPHA, /* U+001b3c: BALINESE VOWEL SIGN LA LENGA*/ + RTUNI_ALPHA, /* U+001b3d: BALINESE VOWEL SIGN LA LENGA TEDUNG*/ + RTUNI_ALPHA, /* U+001b3e: BALINESE VOWEL SIGN TALING*/ + RTUNI_ALPHA, /* U+001b3f: BALINESE VOWEL SIGN TALING REPA*/ + RTUNI_ALPHA, /* U+001b40: BALINESE VOWEL SIGN TALING TEDUNG*/ + RTUNI_ALPHA, /* U+001b41: BALINESE VOWEL SIGN TALING REPA TEDUNG*/ + RTUNI_ALPHA, /* U+001b42: BALINESE VOWEL SIGN PEPET*/ + RTUNI_ALPHA, /* U+001b43: BALINESE VOWEL SIGN PEPET TEDUNG*/ + 0, /* U+001b44: BALINESE ADEG ADEG*/ + RTUNI_ALPHA, /* U+001b45: BALINESE LETTER KAF SASAK*/ + RTUNI_ALPHA, /* U+001b46: BALINESE LETTER KHOT SASAK*/ + RTUNI_ALPHA, /* U+001b47: BALINESE LETTER TZIR SASAK*/ + RTUNI_ALPHA, /* U+001b48: BALINESE LETTER EF SASAK*/ + RTUNI_ALPHA, /* U+001b49: BALINESE LETTER VE SASAK*/ + RTUNI_ALPHA, /* U+001b4a: BALINESE LETTER ZAL SASAK*/ + RTUNI_ALPHA, /* U+001b4b: BALINESE LETTER ASYURA SASAK*/ + 0, /* U+001b4c: */ + 0, /* U+001b4d: */ + 0, /* U+001b4e: */ + 0, /* U+001b4f: */ + RTUNI_DDIGIT, /* U+001b50: BALINESE DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001b51: BALINESE DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001b52: BALINESE DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001b53: BALINESE DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001b54: BALINESE DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001b55: BALINESE DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001b56: BALINESE DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001b57: BALINESE DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001b58: BALINESE DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001b59: BALINESE DIGIT NINE*/ + 0, /* U+001b5a: BALINESE PANTI*/ + 0, /* U+001b5b: BALINESE PAMADA*/ + 0, /* U+001b5c: BALINESE WINDU*/ + 0, /* U+001b5d: BALINESE CARIK PAMUNGKAH*/ + 0, /* U+001b5e: BALINESE CARIK SIKI*/ + 0, /* U+001b5f: BALINESE CARIK PAREREN*/ + 0, /* U+001b60: BALINESE PAMENENG*/ + 0, /* U+001b61: BALINESE MUSICAL SYMBOL DONG*/ + 0, /* U+001b62: BALINESE MUSICAL SYMBOL DENG*/ + 0, /* U+001b63: BALINESE MUSICAL SYMBOL DUNG*/ + 0, /* U+001b64: BALINESE MUSICAL SYMBOL DANG*/ + 0, /* U+001b65: BALINESE MUSICAL SYMBOL DANG SURANG*/ + 0, /* U+001b66: BALINESE MUSICAL SYMBOL DING*/ + 0, /* U+001b67: BALINESE MUSICAL SYMBOL DAENG*/ + 0, /* U+001b68: BALINESE MUSICAL SYMBOL DEUNG*/ + 0, /* U+001b69: BALINESE MUSICAL SYMBOL DAING*/ + 0, /* U+001b6a: BALINESE MUSICAL SYMBOL DANG GEDE*/ + 0, /* U+001b6b: BALINESE MUSICAL SYMBOL COMBINING TEGEH*/ + 0, /* U+001b6c: BALINESE MUSICAL SYMBOL COMBINING ENDEP*/ + 0, /* U+001b6d: BALINESE MUSICAL SYMBOL COMBINING KEMPUL*/ + 0, /* U+001b6e: BALINESE MUSICAL SYMBOL COMBINING KEMPLI*/ + 0, /* U+001b6f: BALINESE MUSICAL SYMBOL COMBINING JEGOGAN*/ + 0, /* U+001b70: BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN*/ + 0, /* U+001b71: BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN*/ + 0, /* U+001b72: BALINESE MUSICAL SYMBOL COMBINING BENDE*/ + 0, /* U+001b73: BALINESE MUSICAL SYMBOL COMBINING GONG*/ + 0, /* U+001b74: BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG*/ + 0, /* U+001b75: BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG*/ + 0, /* U+001b76: BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK*/ + 0, /* U+001b77: BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK*/ + 0, /* U+001b78: BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG*/ + 0, /* U+001b79: BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG*/ + 0, /* U+001b7a: BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK*/ + 0, /* U+001b7b: BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK*/ + 0, /* U+001b7c: BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING*/ + 0, /* U+001b7d: */ + 0, /* U+001b7e: */ + 0, /* U+001b7f: */ + RTUNI_ALPHA, /* U+001b80: SUNDANESE SIGN PANYECEK*/ + RTUNI_ALPHA, /* U+001b81: SUNDANESE SIGN PANGLAYAR*/ + RTUNI_ALPHA, /* U+001b82: SUNDANESE SIGN PANGWISAD*/ + RTUNI_ALPHA, /* U+001b83: SUNDANESE LETTER A*/ + RTUNI_ALPHA, /* U+001b84: SUNDANESE LETTER I*/ + RTUNI_ALPHA, /* U+001b85: SUNDANESE LETTER U*/ + RTUNI_ALPHA, /* U+001b86: SUNDANESE LETTER AE*/ + RTUNI_ALPHA, /* U+001b87: SUNDANESE LETTER O*/ + RTUNI_ALPHA, /* U+001b88: SUNDANESE LETTER E*/ + RTUNI_ALPHA, /* U+001b89: SUNDANESE LETTER EU*/ + RTUNI_ALPHA, /* U+001b8a: SUNDANESE LETTER KA*/ + RTUNI_ALPHA, /* U+001b8b: SUNDANESE LETTER QA*/ + RTUNI_ALPHA, /* U+001b8c: SUNDANESE LETTER GA*/ + RTUNI_ALPHA, /* U+001b8d: SUNDANESE LETTER NGA*/ + RTUNI_ALPHA, /* U+001b8e: SUNDANESE LETTER CA*/ + RTUNI_ALPHA, /* U+001b8f: SUNDANESE LETTER JA*/ + RTUNI_ALPHA, /* U+001b90: SUNDANESE LETTER ZA*/ + RTUNI_ALPHA, /* U+001b91: SUNDANESE LETTER NYA*/ + RTUNI_ALPHA, /* U+001b92: SUNDANESE LETTER TA*/ + RTUNI_ALPHA, /* U+001b93: SUNDANESE LETTER DA*/ + RTUNI_ALPHA, /* U+001b94: SUNDANESE LETTER NA*/ + RTUNI_ALPHA, /* U+001b95: SUNDANESE LETTER PA*/ + RTUNI_ALPHA, /* U+001b96: SUNDANESE LETTER FA*/ + RTUNI_ALPHA, /* U+001b97: SUNDANESE LETTER VA*/ + RTUNI_ALPHA, /* U+001b98: SUNDANESE LETTER BA*/ + RTUNI_ALPHA, /* U+001b99: SUNDANESE LETTER MA*/ + RTUNI_ALPHA, /* U+001b9a: SUNDANESE LETTER YA*/ + RTUNI_ALPHA, /* U+001b9b: SUNDANESE LETTER RA*/ + RTUNI_ALPHA, /* U+001b9c: SUNDANESE LETTER LA*/ + RTUNI_ALPHA, /* U+001b9d: SUNDANESE LETTER WA*/ + RTUNI_ALPHA, /* U+001b9e: SUNDANESE LETTER SA*/ + RTUNI_ALPHA, /* U+001b9f: SUNDANESE LETTER XA*/ + RTUNI_ALPHA, /* U+001ba0: SUNDANESE LETTER HA*/ + RTUNI_ALPHA, /* U+001ba1: SUNDANESE CONSONANT SIGN PAMINGKAL*/ + RTUNI_ALPHA, /* U+001ba2: SUNDANESE CONSONANT SIGN PANYAKRA*/ + RTUNI_ALPHA, /* U+001ba3: SUNDANESE CONSONANT SIGN PANYIKU*/ + RTUNI_ALPHA, /* U+001ba4: SUNDANESE VOWEL SIGN PANGHULU*/ + RTUNI_ALPHA, /* U+001ba5: SUNDANESE VOWEL SIGN PANYUKU*/ + RTUNI_ALPHA, /* U+001ba6: SUNDANESE VOWEL SIGN PANAELAENG*/ + RTUNI_ALPHA, /* U+001ba7: SUNDANESE VOWEL SIGN PANOLONG*/ + RTUNI_ALPHA, /* U+001ba8: SUNDANESE VOWEL SIGN PAMEPET*/ + RTUNI_ALPHA, /* U+001ba9: SUNDANESE VOWEL SIGN PANEULEUNG*/ + 0, /* U+001baa: SUNDANESE SIGN PAMAAEH*/ + 0, /* U+001bab: SUNDANESE SIGN VIRAMA*/ + RTUNI_ALPHA, /* U+001bac: SUNDANESE CONSONANT SIGN PASANGAN MA*/ + RTUNI_ALPHA, /* U+001bad: SUNDANESE CONSONANT SIGN PASANGAN WA*/ + RTUNI_ALPHA, /* U+001bae: SUNDANESE LETTER KHA*/ + RTUNI_ALPHA, /* U+001baf: SUNDANESE LETTER SYA*/ + RTUNI_DDIGIT, /* U+001bb0: SUNDANESE DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001bb1: SUNDANESE DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001bb2: SUNDANESE DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001bb3: SUNDANESE DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001bb4: SUNDANESE DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001bb5: SUNDANESE DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001bb6: SUNDANESE DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001bb7: SUNDANESE DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001bb8: SUNDANESE DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001bb9: SUNDANESE DIGIT NINE*/ + RTUNI_ALPHA, /* U+001bba: SUNDANESE AVAGRAHA*/ + RTUNI_ALPHA, /* U+001bbb: SUNDANESE LETTER REU*/ + RTUNI_ALPHA, /* U+001bbc: SUNDANESE LETTER LEU*/ + RTUNI_ALPHA, /* U+001bbd: SUNDANESE LETTER BHA*/ + RTUNI_ALPHA, /* U+001bbe: SUNDANESE LETTER FINAL K*/ + RTUNI_ALPHA, /* U+001bbf: SUNDANESE LETTER FINAL M*/ + RTUNI_ALPHA, /* U+001bc0: BATAK LETTER A*/ + RTUNI_ALPHA, /* U+001bc1: BATAK LETTER SIMALUNGUN A*/ + RTUNI_ALPHA, /* U+001bc2: BATAK LETTER HA*/ + RTUNI_ALPHA, /* U+001bc3: BATAK LETTER SIMALUNGUN HA*/ + RTUNI_ALPHA, /* U+001bc4: BATAK LETTER MANDAILING HA*/ + RTUNI_ALPHA, /* U+001bc5: BATAK LETTER BA*/ + RTUNI_ALPHA, /* U+001bc6: BATAK LETTER KARO BA*/ + RTUNI_ALPHA, /* U+001bc7: BATAK LETTER PA*/ + RTUNI_ALPHA, /* U+001bc8: BATAK LETTER SIMALUNGUN PA*/ + RTUNI_ALPHA, /* U+001bc9: BATAK LETTER NA*/ + RTUNI_ALPHA, /* U+001bca: BATAK LETTER MANDAILING NA*/ + RTUNI_ALPHA, /* U+001bcb: BATAK LETTER WA*/ + RTUNI_ALPHA, /* U+001bcc: BATAK LETTER SIMALUNGUN WA*/ + RTUNI_ALPHA, /* U+001bcd: BATAK LETTER PAKPAK WA*/ + RTUNI_ALPHA, /* U+001bce: BATAK LETTER GA*/ + RTUNI_ALPHA, /* U+001bcf: BATAK LETTER SIMALUNGUN GA*/ + RTUNI_ALPHA, /* U+001bd0: BATAK LETTER JA*/ + RTUNI_ALPHA, /* U+001bd1: BATAK LETTER DA*/ + RTUNI_ALPHA, /* U+001bd2: BATAK LETTER RA*/ + RTUNI_ALPHA, /* U+001bd3: BATAK LETTER SIMALUNGUN RA*/ + RTUNI_ALPHA, /* U+001bd4: BATAK LETTER MA*/ + RTUNI_ALPHA, /* U+001bd5: BATAK LETTER SIMALUNGUN MA*/ + RTUNI_ALPHA, /* U+001bd6: BATAK LETTER SOUTHERN TA*/ + RTUNI_ALPHA, /* U+001bd7: BATAK LETTER NORTHERN TA*/ + RTUNI_ALPHA, /* U+001bd8: BATAK LETTER SA*/ + RTUNI_ALPHA, /* U+001bd9: BATAK LETTER SIMALUNGUN SA*/ + RTUNI_ALPHA, /* U+001bda: BATAK LETTER MANDAILING SA*/ + RTUNI_ALPHA, /* U+001bdb: BATAK LETTER YA*/ + RTUNI_ALPHA, /* U+001bdc: BATAK LETTER SIMALUNGUN YA*/ + RTUNI_ALPHA, /* U+001bdd: BATAK LETTER NGA*/ + RTUNI_ALPHA, /* U+001bde: BATAK LETTER LA*/ + RTUNI_ALPHA, /* U+001bdf: BATAK LETTER SIMALUNGUN LA*/ + RTUNI_ALPHA, /* U+001be0: BATAK LETTER NYA*/ + RTUNI_ALPHA, /* U+001be1: BATAK LETTER CA*/ + RTUNI_ALPHA, /* U+001be2: BATAK LETTER NDA*/ + RTUNI_ALPHA, /* U+001be3: BATAK LETTER MBA*/ + RTUNI_ALPHA, /* U+001be4: BATAK LETTER I*/ + RTUNI_ALPHA, /* U+001be5: BATAK LETTER U*/ + 0, /* U+001be6: BATAK SIGN TOMPI*/ + RTUNI_ALPHA, /* U+001be7: BATAK VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+001be8: BATAK VOWEL SIGN PAKPAK E*/ + RTUNI_ALPHA, /* U+001be9: BATAK VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+001bea: BATAK VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001beb: BATAK VOWEL SIGN KARO I*/ + RTUNI_ALPHA, /* U+001bec: BATAK VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+001bed: BATAK VOWEL SIGN KARO O*/ + RTUNI_ALPHA, /* U+001bee: BATAK VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+001bef: BATAK VOWEL SIGN U FOR SIMALUNGUN SA*/ + RTUNI_ALPHA, /* U+001bf0: BATAK CONSONANT SIGN NG*/ + RTUNI_ALPHA, /* U+001bf1: BATAK CONSONANT SIGN H*/ + 0, /* U+001bf2: BATAK PANGOLAT*/ + 0, /* U+001bf3: BATAK PANONGONAN*/ + 0, /* U+001bf4: */ + 0, /* U+001bf5: */ + 0, /* U+001bf6: */ + 0, /* U+001bf7: */ + 0, /* U+001bf8: */ + 0, /* U+001bf9: */ + 0, /* U+001bfa: */ + 0, /* U+001bfb: */ + 0, /* U+001bfc: BATAK SYMBOL BINDU NA METEK*/ + 0, /* U+001bfd: BATAK SYMBOL BINDU PINARBORAS*/ + 0, /* U+001bfe: BATAK SYMBOL BINDU JUDUL*/ + 0, /* U+001bff: BATAK SYMBOL BINDU PANGOLAT*/ + RTUNI_ALPHA, /* U+001c00: LEPCHA LETTER KA*/ + RTUNI_ALPHA, /* U+001c01: LEPCHA LETTER KLA*/ + RTUNI_ALPHA, /* U+001c02: LEPCHA LETTER KHA*/ + RTUNI_ALPHA, /* U+001c03: LEPCHA LETTER GA*/ + RTUNI_ALPHA, /* U+001c04: LEPCHA LETTER GLA*/ + RTUNI_ALPHA, /* U+001c05: LEPCHA LETTER NGA*/ + RTUNI_ALPHA, /* U+001c06: LEPCHA LETTER CA*/ + RTUNI_ALPHA, /* U+001c07: LEPCHA LETTER CHA*/ + RTUNI_ALPHA, /* U+001c08: LEPCHA LETTER JA*/ + RTUNI_ALPHA, /* U+001c09: LEPCHA LETTER NYA*/ + RTUNI_ALPHA, /* U+001c0a: LEPCHA LETTER TA*/ + RTUNI_ALPHA, /* U+001c0b: LEPCHA LETTER THA*/ + RTUNI_ALPHA, /* U+001c0c: LEPCHA LETTER DA*/ + RTUNI_ALPHA, /* U+001c0d: LEPCHA LETTER NA*/ + RTUNI_ALPHA, /* U+001c0e: LEPCHA LETTER PA*/ + RTUNI_ALPHA, /* U+001c0f: LEPCHA LETTER PLA*/ + RTUNI_ALPHA, /* U+001c10: LEPCHA LETTER PHA*/ + RTUNI_ALPHA, /* U+001c11: LEPCHA LETTER FA*/ + RTUNI_ALPHA, /* U+001c12: LEPCHA LETTER FLA*/ + RTUNI_ALPHA, /* U+001c13: LEPCHA LETTER BA*/ + RTUNI_ALPHA, /* U+001c14: LEPCHA LETTER BLA*/ + RTUNI_ALPHA, /* U+001c15: LEPCHA LETTER MA*/ + RTUNI_ALPHA, /* U+001c16: LEPCHA LETTER MLA*/ + RTUNI_ALPHA, /* U+001c17: LEPCHA LETTER TSA*/ + RTUNI_ALPHA, /* U+001c18: LEPCHA LETTER TSHA*/ + RTUNI_ALPHA, /* U+001c19: LEPCHA LETTER DZA*/ + RTUNI_ALPHA, /* U+001c1a: LEPCHA LETTER YA*/ + RTUNI_ALPHA, /* U+001c1b: LEPCHA LETTER RA*/ + RTUNI_ALPHA, /* U+001c1c: LEPCHA LETTER LA*/ + RTUNI_ALPHA, /* U+001c1d: LEPCHA LETTER HA*/ + RTUNI_ALPHA, /* U+001c1e: LEPCHA LETTER HLA*/ + RTUNI_ALPHA, /* U+001c1f: LEPCHA LETTER VA*/ + RTUNI_ALPHA, /* U+001c20: LEPCHA LETTER SA*/ + RTUNI_ALPHA, /* U+001c21: LEPCHA LETTER SHA*/ + RTUNI_ALPHA, /* U+001c22: LEPCHA LETTER WA*/ + RTUNI_ALPHA, /* U+001c23: LEPCHA LETTER A*/ + RTUNI_ALPHA, /* U+001c24: LEPCHA SUBJOINED LETTER YA*/ + RTUNI_ALPHA, /* U+001c25: LEPCHA SUBJOINED LETTER RA*/ + RTUNI_ALPHA, /* U+001c26: LEPCHA VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+001c27: LEPCHA VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+001c28: LEPCHA VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+001c29: LEPCHA VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+001c2a: LEPCHA VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+001c2b: LEPCHA VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+001c2c: LEPCHA VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+001c2d: LEPCHA CONSONANT SIGN K*/ + RTUNI_ALPHA, /* U+001c2e: LEPCHA CONSONANT SIGN M*/ + RTUNI_ALPHA, /* U+001c2f: LEPCHA CONSONANT SIGN L*/ + RTUNI_ALPHA, /* U+001c30: LEPCHA CONSONANT SIGN N*/ + RTUNI_ALPHA, /* U+001c31: LEPCHA CONSONANT SIGN P*/ + RTUNI_ALPHA, /* U+001c32: LEPCHA CONSONANT SIGN R*/ + RTUNI_ALPHA, /* U+001c33: LEPCHA CONSONANT SIGN T*/ + RTUNI_ALPHA, /* U+001c34: LEPCHA CONSONANT SIGN NYIN-DO*/ + RTUNI_ALPHA, /* U+001c35: LEPCHA CONSONANT SIGN KANG*/ + 0, /* U+001c36: LEPCHA SIGN RAN*/ + 0, /* U+001c37: LEPCHA SIGN NUKTA*/ + 0, /* U+001c38: */ + 0, /* U+001c39: */ + 0, /* U+001c3a: */ + 0, /* U+001c3b: LEPCHA PUNCTUATION TA-ROL*/ + 0, /* U+001c3c: LEPCHA PUNCTUATION NYET THYOOM TA-ROL*/ + 0, /* U+001c3d: LEPCHA PUNCTUATION CER-WA*/ + 0, /* U+001c3e: LEPCHA PUNCTUATION TSHOOK CER-WA*/ + 0, /* U+001c3f: LEPCHA PUNCTUATION TSHOOK*/ + RTUNI_DDIGIT, /* U+001c40: LEPCHA DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001c41: LEPCHA DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001c42: LEPCHA DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001c43: LEPCHA DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001c44: LEPCHA DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001c45: LEPCHA DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001c46: LEPCHA DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001c47: LEPCHA DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001c48: LEPCHA DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001c49: LEPCHA DIGIT NINE*/ + 0, /* U+001c4a: */ + 0, /* U+001c4b: */ + 0, /* U+001c4c: */ + RTUNI_ALPHA, /* U+001c4d: LEPCHA LETTER TTA*/ + RTUNI_ALPHA, /* U+001c4e: LEPCHA LETTER TTHA*/ + RTUNI_ALPHA, /* U+001c4f: LEPCHA LETTER DDA*/ + RTUNI_DDIGIT, /* U+001c50: OL CHIKI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+001c51: OL CHIKI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+001c52: OL CHIKI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+001c53: OL CHIKI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+001c54: OL CHIKI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+001c55: OL CHIKI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+001c56: OL CHIKI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+001c57: OL CHIKI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+001c58: OL CHIKI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+001c59: OL CHIKI DIGIT NINE*/ + RTUNI_ALPHA, /* U+001c5a: OL CHIKI LETTER LA*/ + RTUNI_ALPHA, /* U+001c5b: OL CHIKI LETTER AT*/ + RTUNI_ALPHA, /* U+001c5c: OL CHIKI LETTER AG*/ + RTUNI_ALPHA, /* U+001c5d: OL CHIKI LETTER ANG*/ + RTUNI_ALPHA, /* U+001c5e: OL CHIKI LETTER AL*/ + RTUNI_ALPHA, /* U+001c5f: OL CHIKI LETTER LAA*/ + RTUNI_ALPHA, /* U+001c60: OL CHIKI LETTER AAK*/ + RTUNI_ALPHA, /* U+001c61: OL CHIKI LETTER AAJ*/ + RTUNI_ALPHA, /* U+001c62: OL CHIKI LETTER AAM*/ + RTUNI_ALPHA, /* U+001c63: OL CHIKI LETTER AAW*/ + RTUNI_ALPHA, /* U+001c64: OL CHIKI LETTER LI*/ + RTUNI_ALPHA, /* U+001c65: OL CHIKI LETTER IS*/ + RTUNI_ALPHA, /* U+001c66: OL CHIKI LETTER IH*/ + RTUNI_ALPHA, /* U+001c67: OL CHIKI LETTER INY*/ + RTUNI_ALPHA, /* U+001c68: OL CHIKI LETTER IR*/ + RTUNI_ALPHA, /* U+001c69: OL CHIKI LETTER LU*/ + RTUNI_ALPHA, /* U+001c6a: OL CHIKI LETTER UC*/ + RTUNI_ALPHA, /* U+001c6b: OL CHIKI LETTER UD*/ + RTUNI_ALPHA, /* U+001c6c: OL CHIKI LETTER UNN*/ + RTUNI_ALPHA, /* U+001c6d: OL CHIKI LETTER UY*/ + RTUNI_ALPHA, /* U+001c6e: OL CHIKI LETTER LE*/ + RTUNI_ALPHA, /* U+001c6f: OL CHIKI LETTER EP*/ + RTUNI_ALPHA, /* U+001c70: OL CHIKI LETTER EDD*/ + RTUNI_ALPHA, /* U+001c71: OL CHIKI LETTER EN*/ + RTUNI_ALPHA, /* U+001c72: OL CHIKI LETTER ERR*/ + RTUNI_ALPHA, /* U+001c73: OL CHIKI LETTER LO*/ + RTUNI_ALPHA, /* U+001c74: OL CHIKI LETTER OTT*/ + RTUNI_ALPHA, /* U+001c75: OL CHIKI LETTER OB*/ + RTUNI_ALPHA, /* U+001c76: OL CHIKI LETTER OV*/ + RTUNI_ALPHA, /* U+001c77: OL CHIKI LETTER OH*/ + RTUNI_ALPHA, /* U+001c78: OL CHIKI MU TTUDDAG*/ + RTUNI_ALPHA, /* U+001c79: OL CHIKI GAAHLAA TTUDDAAG*/ + RTUNI_ALPHA, /* U+001c7a: OL CHIKI MU-GAAHLAA TTUDDAAG*/ + RTUNI_ALPHA, /* U+001c7b: OL CHIKI RELAA*/ + RTUNI_ALPHA, /* U+001c7c: OL CHIKI PHAARKAA*/ + RTUNI_ALPHA, /* U+001c7d: OL CHIKI AHAD*/ + 0, /* U+001c7e: OL CHIKI PUNCTUATION MUCAAD*/ + 0, /* U+001c7f: OL CHIKI PUNCTUATION DOUBLE MUCAAD*/ + 0, /* U+001c80: */ + 0, /* U+001c81: */ + 0, /* U+001c82: */ + 0, /* U+001c83: */ + 0, /* U+001c84: */ + 0, /* U+001c85: */ + 0, /* U+001c86: */ + 0, /* U+001c87: */ + 0, /* U+001c88: */ + 0, /* U+001c89: */ + 0, /* U+001c8a: */ + 0, /* U+001c8b: */ + 0, /* U+001c8c: */ + 0, /* U+001c8d: */ + 0, /* U+001c8e: */ + 0, /* U+001c8f: */ + 0, /* U+001c90: */ + 0, /* U+001c91: */ + 0, /* U+001c92: */ + 0, /* U+001c93: */ + 0, /* U+001c94: */ + 0, /* U+001c95: */ + 0, /* U+001c96: */ + 0, /* U+001c97: */ + 0, /* U+001c98: */ + 0, /* U+001c99: */ + 0, /* U+001c9a: */ + 0, /* U+001c9b: */ + 0, /* U+001c9c: */ + 0, /* U+001c9d: */ + 0, /* U+001c9e: */ + 0, /* U+001c9f: */ + 0, /* U+001ca0: */ + 0, /* U+001ca1: */ + 0, /* U+001ca2: */ + 0, /* U+001ca3: */ + 0, /* U+001ca4: */ + 0, /* U+001ca5: */ + 0, /* U+001ca6: */ + 0, /* U+001ca7: */ + 0, /* U+001ca8: */ + 0, /* U+001ca9: */ + 0, /* U+001caa: */ + 0, /* U+001cab: */ + 0, /* U+001cac: */ + 0, /* U+001cad: */ + 0, /* U+001cae: */ + 0, /* U+001caf: */ + 0, /* U+001cb0: */ + 0, /* U+001cb1: */ + 0, /* U+001cb2: */ + 0, /* U+001cb3: */ + 0, /* U+001cb4: */ + 0, /* U+001cb5: */ + 0, /* U+001cb6: */ + 0, /* U+001cb7: */ + 0, /* U+001cb8: */ + 0, /* U+001cb9: */ + 0, /* U+001cba: */ + 0, /* U+001cbb: */ + 0, /* U+001cbc: */ + 0, /* U+001cbd: */ + 0, /* U+001cbe: */ + 0, /* U+001cbf: */ + 0, /* U+001cc0: SUNDANESE PUNCTUATION BINDU SURYA*/ + 0, /* U+001cc1: SUNDANESE PUNCTUATION BINDU PANGLONG*/ + 0, /* U+001cc2: SUNDANESE PUNCTUATION BINDU PURNAMA*/ + 0, /* U+001cc3: SUNDANESE PUNCTUATION BINDU CAKRA*/ + 0, /* U+001cc4: SUNDANESE PUNCTUATION BINDU LEU SATANGA*/ + 0, /* U+001cc5: SUNDANESE PUNCTUATION BINDU KA SATANGA*/ + 0, /* U+001cc6: SUNDANESE PUNCTUATION BINDU DA SATANGA*/ + 0, /* U+001cc7: SUNDANESE PUNCTUATION BINDU BA SATANGA*/ + 0, /* U+001cc8: */ + 0, /* U+001cc9: */ + 0, /* U+001cca: */ + 0, /* U+001ccb: */ + 0, /* U+001ccc: */ + 0, /* U+001ccd: */ + 0, /* U+001cce: */ + 0, /* U+001ccf: */ + 0, /* U+001cd0: VEDIC TONE KARSHANA*/ + 0, /* U+001cd1: VEDIC TONE SHARA*/ + 0, /* U+001cd2: VEDIC TONE PRENKHA*/ + 0, /* U+001cd3: VEDIC SIGN NIHSHVASA*/ + 0, /* U+001cd4: VEDIC SIGN YAJURVEDIC MIDLINE SVARITA*/ + 0, /* U+001cd5: VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA*/ + 0, /* U+001cd6: VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA*/ + 0, /* U+001cd7: VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA*/ + 0, /* U+001cd8: VEDIC TONE CANDRA BELOW*/ + 0, /* U+001cd9: VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER*/ + 0, /* U+001cda: VEDIC TONE DOUBLE SVARITA*/ + 0, /* U+001cdb: VEDIC TONE TRIPLE SVARITA*/ + 0, /* U+001cdc: VEDIC TONE KATHAKA ANUDATTA*/ + 0, /* U+001cdd: VEDIC TONE DOT BELOW*/ + 0, /* U+001cde: VEDIC TONE TWO DOTS BELOW*/ + 0, /* U+001cdf: VEDIC TONE THREE DOTS BELOW*/ + 0, /* U+001ce0: VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA*/ + 0, /* U+001ce1: VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA*/ + 0, /* U+001ce2: VEDIC SIGN VISARGA SVARITA*/ + 0, /* U+001ce3: VEDIC SIGN VISARGA UDATTA*/ + 0, /* U+001ce4: VEDIC SIGN REVERSED VISARGA UDATTA*/ + 0, /* U+001ce5: VEDIC SIGN VISARGA ANUDATTA*/ + 0, /* U+001ce6: VEDIC SIGN REVERSED VISARGA ANUDATTA*/ + 0, /* U+001ce7: VEDIC SIGN VISARGA UDATTA WITH TAIL*/ + 0, /* U+001ce8: VEDIC SIGN VISARGA ANUDATTA WITH TAIL*/ + RTUNI_ALPHA, /* U+001ce9: VEDIC SIGN ANUSVARA ANTARGOMUKHA*/ + RTUNI_ALPHA, /* U+001cea: VEDIC SIGN ANUSVARA BAHIRGOMUKHA*/ + RTUNI_ALPHA, /* U+001ceb: VEDIC SIGN ANUSVARA VAMAGOMUKHA*/ + RTUNI_ALPHA, /* U+001cec: VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL*/ + 0, /* U+001ced: VEDIC SIGN TIRYAK*/ + RTUNI_ALPHA, /* U+001cee: VEDIC SIGN HEXIFORM LONG ANUSVARA*/ + RTUNI_ALPHA, /* U+001cef: VEDIC SIGN LONG ANUSVARA*/ + RTUNI_ALPHA, /* U+001cf0: VEDIC SIGN RTHANG LONG ANUSVARA*/ + RTUNI_ALPHA, /* U+001cf1: VEDIC SIGN ANUSVARA UBHAYATO MUKHA*/ + RTUNI_ALPHA, /* U+001cf2: VEDIC SIGN ARDHAVISARGA*/ + RTUNI_ALPHA, /* U+001cf3: VEDIC SIGN ROTATED ARDHAVISARGA*/ + 0, /* U+001cf4: VEDIC TONE CANDRA ABOVE*/ + RTUNI_ALPHA, /* U+001cf5: VEDIC SIGN JIHVAMULIYA*/ + RTUNI_ALPHA, /* U+001cf6: VEDIC SIGN UPADHMANIYA*/ + 0, /* U+001cf7: */ + 0, /* U+001cf8: */ + 0, /* U+001cf9: */ + 0, /* U+001cfa: */ + 0, /* U+001cfb: */ + 0, /* U+001cfc: */ + 0, /* U+001cfd: */ + 0, /* U+001cfe: */ + 0, /* U+001cff: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d00: LATIN LETTER SMALL CAPITAL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d01: LATIN LETTER SMALL CAPITAL AE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d02: LATIN SMALL LETTER TURNED AE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d03: LATIN LETTER SMALL CAPITAL BARRED B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d04: LATIN LETTER SMALL CAPITAL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d05: LATIN LETTER SMALL CAPITAL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d06: LATIN LETTER SMALL CAPITAL ETH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d07: LATIN LETTER SMALL CAPITAL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d08: LATIN SMALL LETTER TURNED OPEN E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d09: LATIN SMALL LETTER TURNED I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0a: LATIN LETTER SMALL CAPITAL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0b: LATIN LETTER SMALL CAPITAL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0c: LATIN LETTER SMALL CAPITAL L WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0d: LATIN LETTER SMALL CAPITAL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0e: LATIN LETTER SMALL CAPITAL REVERSED N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d0f: LATIN LETTER SMALL CAPITAL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d10: LATIN LETTER SMALL CAPITAL OPEN O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d11: LATIN SMALL LETTER SIDEWAYS O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d12: LATIN SMALL LETTER SIDEWAYS OPEN O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d13: LATIN SMALL LETTER SIDEWAYS O WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d14: LATIN SMALL LETTER TURNED OE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d15: LATIN LETTER SMALL CAPITAL OU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d16: LATIN SMALL LETTER TOP HALF O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d17: LATIN SMALL LETTER BOTTOM HALF O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d18: LATIN LETTER SMALL CAPITAL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d19: LATIN LETTER SMALL CAPITAL REVERSED R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1a: LATIN LETTER SMALL CAPITAL TURNED R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1b: LATIN LETTER SMALL CAPITAL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1c: LATIN LETTER SMALL CAPITAL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1d: LATIN SMALL LETTER SIDEWAYS U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1e: LATIN SMALL LETTER SIDEWAYS DIAERESIZED U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d1f: LATIN SMALL LETTER SIDEWAYS TURNED M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d20: LATIN LETTER SMALL CAPITAL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d21: LATIN LETTER SMALL CAPITAL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d22: LATIN LETTER SMALL CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d23: LATIN LETTER SMALL CAPITAL EZH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d24: LATIN LETTER VOICED LARYNGEAL SPIRANT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d25: LATIN LETTER AIN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d26: GREEK LETTER SMALL CAPITAL GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d27: GREEK LETTER SMALL CAPITAL LAMDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d28: GREEK LETTER SMALL CAPITAL PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d29: GREEK LETTER SMALL CAPITAL RHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2a: GREEK LETTER SMALL CAPITAL PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2b: CYRILLIC LETTER SMALL CAPITAL EL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2c: MODIFIER LETTER CAPITAL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2d: MODIFIER LETTER CAPITAL AE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2e: MODIFIER LETTER CAPITAL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d2f: MODIFIER LETTER CAPITAL BARRED B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d30: MODIFIER LETTER CAPITAL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d31: MODIFIER LETTER CAPITAL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d32: MODIFIER LETTER CAPITAL REVERSED E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d33: MODIFIER LETTER CAPITAL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d34: MODIFIER LETTER CAPITAL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d35: MODIFIER LETTER CAPITAL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d36: MODIFIER LETTER CAPITAL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d37: MODIFIER LETTER CAPITAL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d38: MODIFIER LETTER CAPITAL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d39: MODIFIER LETTER CAPITAL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3a: MODIFIER LETTER CAPITAL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3b: MODIFIER LETTER CAPITAL REVERSED N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3c: MODIFIER LETTER CAPITAL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3d: MODIFIER LETTER CAPITAL OU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3e: MODIFIER LETTER CAPITAL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d3f: MODIFIER LETTER CAPITAL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d40: MODIFIER LETTER CAPITAL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d41: MODIFIER LETTER CAPITAL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d42: MODIFIER LETTER CAPITAL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d43: MODIFIER LETTER SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d44: MODIFIER LETTER SMALL TURNED A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d45: MODIFIER LETTER SMALL ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d46: MODIFIER LETTER SMALL TURNED AE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d47: MODIFIER LETTER SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d48: MODIFIER LETTER SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d49: MODIFIER LETTER SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4a: MODIFIER LETTER SMALL SCHWA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4b: MODIFIER LETTER SMALL OPEN E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4c: MODIFIER LETTER SMALL TURNED OPEN E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4d: MODIFIER LETTER SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4e: MODIFIER LETTER SMALL TURNED I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d4f: MODIFIER LETTER SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d50: MODIFIER LETTER SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d51: MODIFIER LETTER SMALL ENG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d52: MODIFIER LETTER SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d53: MODIFIER LETTER SMALL OPEN O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d54: MODIFIER LETTER SMALL TOP HALF O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d55: MODIFIER LETTER SMALL BOTTOM HALF O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d56: MODIFIER LETTER SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d57: MODIFIER LETTER SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d58: MODIFIER LETTER SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d59: MODIFIER LETTER SMALL SIDEWAYS U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5a: MODIFIER LETTER SMALL TURNED M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5b: MODIFIER LETTER SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5c: MODIFIER LETTER SMALL AIN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5d: MODIFIER LETTER SMALL BETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5e: MODIFIER LETTER SMALL GREEK GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d5f: MODIFIER LETTER SMALL DELTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d60: MODIFIER LETTER SMALL GREEK PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d61: MODIFIER LETTER SMALL CHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d62: LATIN SUBSCRIPT SMALL LETTER I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d63: LATIN SUBSCRIPT SMALL LETTER R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d64: LATIN SUBSCRIPT SMALL LETTER U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d65: LATIN SUBSCRIPT SMALL LETTER V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d66: GREEK SUBSCRIPT SMALL LETTER BETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d67: GREEK SUBSCRIPT SMALL LETTER GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d68: GREEK SUBSCRIPT SMALL LETTER RHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d69: GREEK SUBSCRIPT SMALL LETTER PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6a: GREEK SUBSCRIPT SMALL LETTER CHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6b: LATIN SMALL LETTER UE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6c: LATIN SMALL LETTER B WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6d: LATIN SMALL LETTER D WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6e: LATIN SMALL LETTER F WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d6f: LATIN SMALL LETTER M WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d70: LATIN SMALL LETTER N WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d71: LATIN SMALL LETTER P WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d72: LATIN SMALL LETTER R WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d73: LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d74: LATIN SMALL LETTER S WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d75: LATIN SMALL LETTER T WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d76: LATIN SMALL LETTER Z WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d77: LATIN SMALL LETTER TURNED G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d78: MODIFIER LETTER CYRILLIC EN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d79: LATIN SMALL LETTER INSULAR G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7a: LATIN SMALL LETTER TH WITH STRIKETHROUGH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7b: LATIN SMALL CAPITAL LETTER I WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7c: LATIN SMALL LETTER IOTA WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7d: LATIN SMALL LETTER P WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7e: LATIN SMALL CAPITAL LETTER U WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d7f: LATIN SMALL LETTER UPSILON WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d80: LATIN SMALL LETTER B WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d81: LATIN SMALL LETTER D WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d82: LATIN SMALL LETTER F WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d83: LATIN SMALL LETTER G WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d84: LATIN SMALL LETTER K WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d85: LATIN SMALL LETTER L WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d86: LATIN SMALL LETTER M WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d87: LATIN SMALL LETTER N WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d88: LATIN SMALL LETTER P WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d89: LATIN SMALL LETTER R WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8a: LATIN SMALL LETTER S WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8b: LATIN SMALL LETTER ESH WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8c: LATIN SMALL LETTER V WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8d: LATIN SMALL LETTER X WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8e: LATIN SMALL LETTER Z WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d8f: LATIN SMALL LETTER A WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d90: LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d91: LATIN SMALL LETTER D WITH HOOK AND TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d92: LATIN SMALL LETTER E WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d93: LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d94: LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d95: LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d96: LATIN SMALL LETTER I WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d97: LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d98: LATIN SMALL LETTER ESH WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d99: LATIN SMALL LETTER U WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9a: LATIN SMALL LETTER EZH WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9b: MODIFIER LETTER SMALL TURNED ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9c: MODIFIER LETTER SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9d: MODIFIER LETTER SMALL C WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9e: MODIFIER LETTER SMALL ETH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001d9f: MODIFIER LETTER SMALL REVERSED OPEN E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da0: MODIFIER LETTER SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da1: MODIFIER LETTER SMALL DOTLESS J WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da2: MODIFIER LETTER SMALL SCRIPT G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da3: MODIFIER LETTER SMALL TURNED H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da4: MODIFIER LETTER SMALL I WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da5: MODIFIER LETTER SMALL IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da6: MODIFIER LETTER SMALL CAPITAL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da7: MODIFIER LETTER SMALL CAPITAL I WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da8: MODIFIER LETTER SMALL J WITH CROSSED-TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001da9: MODIFIER LETTER SMALL L WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001daa: MODIFIER LETTER SMALL L WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dab: MODIFIER LETTER SMALL CAPITAL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dac: MODIFIER LETTER SMALL M WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dad: MODIFIER LETTER SMALL TURNED M WITH LONG LEG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dae: MODIFIER LETTER SMALL N WITH LEFT HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001daf: MODIFIER LETTER SMALL N WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db0: MODIFIER LETTER SMALL CAPITAL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db1: MODIFIER LETTER SMALL BARRED O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db2: MODIFIER LETTER SMALL PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db3: MODIFIER LETTER SMALL S WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db4: MODIFIER LETTER SMALL ESH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db5: MODIFIER LETTER SMALL T WITH PALATAL HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db6: MODIFIER LETTER SMALL U BAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db7: MODIFIER LETTER SMALL UPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db8: MODIFIER LETTER SMALL CAPITAL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001db9: MODIFIER LETTER SMALL V WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dba: MODIFIER LETTER SMALL TURNED V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dbb: MODIFIER LETTER SMALL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dbc: MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dbd: MODIFIER LETTER SMALL Z WITH CURL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dbe: MODIFIER LETTER SMALL EZH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001dbf: MODIFIER LETTER SMALL THETA*/ + 0, /* U+001dc0: COMBINING DOTTED GRAVE ACCENT*/ + 0, /* U+001dc1: COMBINING DOTTED ACUTE ACCENT*/ + 0, /* U+001dc2: COMBINING SNAKE BELOW*/ + 0, /* U+001dc3: COMBINING SUSPENSION MARK*/ + 0, /* U+001dc4: COMBINING MACRON-ACUTE*/ + 0, /* U+001dc5: COMBINING GRAVE-MACRON*/ + 0, /* U+001dc6: COMBINING MACRON-GRAVE*/ + 0, /* U+001dc7: COMBINING ACUTE-MACRON*/ + 0, /* U+001dc8: COMBINING GRAVE-ACUTE-GRAVE*/ + 0, /* U+001dc9: COMBINING ACUTE-GRAVE-ACUTE*/ + 0, /* U+001dca: COMBINING LATIN SMALL LETTER R BELOW*/ + 0, /* U+001dcb: COMBINING BREVE-MACRON*/ + 0, /* U+001dcc: COMBINING MACRON-BREVE*/ + 0, /* U+001dcd: COMBINING DOUBLE CIRCUMFLEX ABOVE*/ + 0, /* U+001dce: COMBINING OGONEK ABOVE*/ + 0, /* U+001dcf: COMBINING ZIGZAG BELOW*/ + 0, /* U+001dd0: COMBINING IS BELOW*/ + 0, /* U+001dd1: COMBINING UR ABOVE*/ + 0, /* U+001dd2: COMBINING US ABOVE*/ + 0, /* U+001dd3: COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE*/ + 0, /* U+001dd4: COMBINING LATIN SMALL LETTER AE*/ + 0, /* U+001dd5: COMBINING LATIN SMALL LETTER AO*/ + 0, /* U+001dd6: COMBINING LATIN SMALL LETTER AV*/ + 0, /* U+001dd7: COMBINING LATIN SMALL LETTER C CEDILLA*/ + 0, /* U+001dd8: COMBINING LATIN SMALL LETTER INSULAR D*/ + 0, /* U+001dd9: COMBINING LATIN SMALL LETTER ETH*/ + 0, /* U+001dda: COMBINING LATIN SMALL LETTER G*/ + 0, /* U+001ddb: COMBINING LATIN LETTER SMALL CAPITAL G*/ + 0, /* U+001ddc: COMBINING LATIN SMALL LETTER K*/ + 0, /* U+001ddd: COMBINING LATIN SMALL LETTER L*/ + 0, /* U+001dde: COMBINING LATIN LETTER SMALL CAPITAL L*/ + 0, /* U+001ddf: COMBINING LATIN LETTER SMALL CAPITAL M*/ + 0, /* U+001de0: COMBINING LATIN SMALL LETTER N*/ + 0, /* U+001de1: COMBINING LATIN LETTER SMALL CAPITAL N*/ + 0, /* U+001de2: COMBINING LATIN LETTER SMALL CAPITAL R*/ + 0, /* U+001de3: COMBINING LATIN SMALL LETTER R ROTUNDA*/ + 0, /* U+001de4: COMBINING LATIN SMALL LETTER S*/ + 0, /* U+001de5: COMBINING LATIN SMALL LETTER LONG S*/ + 0, /* U+001de6: COMBINING LATIN SMALL LETTER Z*/ + 0, /* U+001de7: */ + 0, /* U+001de8: */ + 0, /* U+001de9: */ + 0, /* U+001dea: */ + 0, /* U+001deb: */ + 0, /* U+001dec: */ + 0, /* U+001ded: */ + 0, /* U+001dee: */ + 0, /* U+001def: */ + 0, /* U+001df0: */ + 0, /* U+001df1: */ + 0, /* U+001df2: */ + 0, /* U+001df3: */ + 0, /* U+001df4: */ + 0, /* U+001df5: */ + 0, /* U+001df6: */ + 0, /* U+001df7: */ + 0, /* U+001df8: */ + 0, /* U+001df9: */ + 0, /* U+001dfa: */ + 0, /* U+001dfb: */ + 0, /* U+001dfc: COMBINING DOUBLE INVERTED BREVE BELOW*/ + 0, /* U+001dfd: COMBINING ALMOST EQUAL TO BELOW*/ + 0, /* U+001dfe: COMBINING LEFT ARROWHEAD ABOVE*/ + 0, /* U+001dff: COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e00: LATIN CAPITAL LETTER A WITH RING BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e01: LATIN SMALL LETTER A WITH RING BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e02: LATIN CAPITAL LETTER B WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e03: LATIN SMALL LETTER B WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e04: LATIN CAPITAL LETTER B WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e05: LATIN SMALL LETTER B WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e06: LATIN CAPITAL LETTER B WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e07: LATIN SMALL LETTER B WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e08: LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e09: LATIN SMALL LETTER C WITH CEDILLA AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e0a: LATIN CAPITAL LETTER D WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e0b: LATIN SMALL LETTER D WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e0c: LATIN CAPITAL LETTER D WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e0d: LATIN SMALL LETTER D WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e0e: LATIN CAPITAL LETTER D WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e0f: LATIN SMALL LETTER D WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e10: LATIN CAPITAL LETTER D WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e11: LATIN SMALL LETTER D WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e12: LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e13: LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e14: LATIN CAPITAL LETTER E WITH MACRON AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e15: LATIN SMALL LETTER E WITH MACRON AND GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e16: LATIN CAPITAL LETTER E WITH MACRON AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e17: LATIN SMALL LETTER E WITH MACRON AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e18: LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e19: LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e1a: LATIN CAPITAL LETTER E WITH TILDE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e1b: LATIN SMALL LETTER E WITH TILDE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e1c: LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e1d: LATIN SMALL LETTER E WITH CEDILLA AND BREVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e1e: LATIN CAPITAL LETTER F WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e1f: LATIN SMALL LETTER F WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e20: LATIN CAPITAL LETTER G WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e21: LATIN SMALL LETTER G WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e22: LATIN CAPITAL LETTER H WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e23: LATIN SMALL LETTER H WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e24: LATIN CAPITAL LETTER H WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e25: LATIN SMALL LETTER H WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e26: LATIN CAPITAL LETTER H WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e27: LATIN SMALL LETTER H WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e28: LATIN CAPITAL LETTER H WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e29: LATIN SMALL LETTER H WITH CEDILLA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e2a: LATIN CAPITAL LETTER H WITH BREVE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e2b: LATIN SMALL LETTER H WITH BREVE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e2c: LATIN CAPITAL LETTER I WITH TILDE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e2d: LATIN SMALL LETTER I WITH TILDE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e2e: LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e2f: LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e30: LATIN CAPITAL LETTER K WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e31: LATIN SMALL LETTER K WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e32: LATIN CAPITAL LETTER K WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e33: LATIN SMALL LETTER K WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e34: LATIN CAPITAL LETTER K WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e35: LATIN SMALL LETTER K WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e36: LATIN CAPITAL LETTER L WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e37: LATIN SMALL LETTER L WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e38: LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e39: LATIN SMALL LETTER L WITH DOT BELOW AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e3a: LATIN CAPITAL LETTER L WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e3b: LATIN SMALL LETTER L WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e3c: LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e3d: LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e3e: LATIN CAPITAL LETTER M WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e3f: LATIN SMALL LETTER M WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e40: LATIN CAPITAL LETTER M WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e41: LATIN SMALL LETTER M WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e42: LATIN CAPITAL LETTER M WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e43: LATIN SMALL LETTER M WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e44: LATIN CAPITAL LETTER N WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e45: LATIN SMALL LETTER N WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e46: LATIN CAPITAL LETTER N WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e47: LATIN SMALL LETTER N WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e48: LATIN CAPITAL LETTER N WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e49: LATIN SMALL LETTER N WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e4a: LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e4b: LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e4c: LATIN CAPITAL LETTER O WITH TILDE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e4d: LATIN SMALL LETTER O WITH TILDE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e4e: LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e4f: LATIN SMALL LETTER O WITH TILDE AND DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e50: LATIN CAPITAL LETTER O WITH MACRON AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e51: LATIN SMALL LETTER O WITH MACRON AND GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e52: LATIN CAPITAL LETTER O WITH MACRON AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e53: LATIN SMALL LETTER O WITH MACRON AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e54: LATIN CAPITAL LETTER P WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e55: LATIN SMALL LETTER P WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e56: LATIN CAPITAL LETTER P WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e57: LATIN SMALL LETTER P WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e58: LATIN CAPITAL LETTER R WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e59: LATIN SMALL LETTER R WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e5a: LATIN CAPITAL LETTER R WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e5b: LATIN SMALL LETTER R WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e5c: LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e5d: LATIN SMALL LETTER R WITH DOT BELOW AND MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e5e: LATIN CAPITAL LETTER R WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e5f: LATIN SMALL LETTER R WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e60: LATIN CAPITAL LETTER S WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e61: LATIN SMALL LETTER S WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e62: LATIN CAPITAL LETTER S WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e63: LATIN SMALL LETTER S WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e64: LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e65: LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e66: LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e67: LATIN SMALL LETTER S WITH CARON AND DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e68: LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e69: LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e6a: LATIN CAPITAL LETTER T WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e6b: LATIN SMALL LETTER T WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e6c: LATIN CAPITAL LETTER T WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e6d: LATIN SMALL LETTER T WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e6e: LATIN CAPITAL LETTER T WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e6f: LATIN SMALL LETTER T WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e70: LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e71: LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e72: LATIN CAPITAL LETTER U WITH DIAERESIS BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e73: LATIN SMALL LETTER U WITH DIAERESIS BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e74: LATIN CAPITAL LETTER U WITH TILDE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e75: LATIN SMALL LETTER U WITH TILDE BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e76: LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e77: LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e78: LATIN CAPITAL LETTER U WITH TILDE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e79: LATIN SMALL LETTER U WITH TILDE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e7a: LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e7b: LATIN SMALL LETTER U WITH MACRON AND DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e7c: LATIN CAPITAL LETTER V WITH TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e7d: LATIN SMALL LETTER V WITH TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e7e: LATIN CAPITAL LETTER V WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e7f: LATIN SMALL LETTER V WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e80: LATIN CAPITAL LETTER W WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e81: LATIN SMALL LETTER W WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e82: LATIN CAPITAL LETTER W WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e83: LATIN SMALL LETTER W WITH ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e84: LATIN CAPITAL LETTER W WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e85: LATIN SMALL LETTER W WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e86: LATIN CAPITAL LETTER W WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e87: LATIN SMALL LETTER W WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e88: LATIN CAPITAL LETTER W WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e89: LATIN SMALL LETTER W WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e8a: LATIN CAPITAL LETTER X WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e8b: LATIN SMALL LETTER X WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e8c: LATIN CAPITAL LETTER X WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e8d: LATIN SMALL LETTER X WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e8e: LATIN CAPITAL LETTER Y WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e8f: LATIN SMALL LETTER Y WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e90: LATIN CAPITAL LETTER Z WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e91: LATIN SMALL LETTER Z WITH CIRCUMFLEX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e92: LATIN CAPITAL LETTER Z WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e93: LATIN SMALL LETTER Z WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e94: LATIN CAPITAL LETTER Z WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e95: LATIN SMALL LETTER Z WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e96: LATIN SMALL LETTER H WITH LINE BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e97: LATIN SMALL LETTER T WITH DIAERESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e98: LATIN SMALL LETTER W WITH RING ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e99: LATIN SMALL LETTER Y WITH RING ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e9a: LATIN SMALL LETTER A WITH RIGHT HALF RING*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e9b: LATIN SMALL LETTER LONG S WITH DOT ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e9c: LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e9d: LATIN SMALL LETTER LONG S WITH HIGH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001e9e: LATIN CAPITAL LETTER SHARP S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001e9f: LATIN SMALL LETTER DELTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ea0: LATIN CAPITAL LETTER A WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ea1: LATIN SMALL LETTER A WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ea2: LATIN CAPITAL LETTER A WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ea3: LATIN SMALL LETTER A WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ea4: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ea5: LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ea6: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ea7: LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ea8: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ea9: LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eaa: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eab: LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eac: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ead: LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eae: LATIN CAPITAL LETTER A WITH BREVE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eaf: LATIN SMALL LETTER A WITH BREVE AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eb0: LATIN CAPITAL LETTER A WITH BREVE AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eb1: LATIN SMALL LETTER A WITH BREVE AND GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eb2: LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eb3: LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eb4: LATIN CAPITAL LETTER A WITH BREVE AND TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eb5: LATIN SMALL LETTER A WITH BREVE AND TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eb6: LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eb7: LATIN SMALL LETTER A WITH BREVE AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eb8: LATIN CAPITAL LETTER E WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eb9: LATIN SMALL LETTER E WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eba: LATIN CAPITAL LETTER E WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ebb: LATIN SMALL LETTER E WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ebc: LATIN CAPITAL LETTER E WITH TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ebd: LATIN SMALL LETTER E WITH TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ebe: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ebf: LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ec0: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ec1: LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ec2: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ec3: LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ec4: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ec5: LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ec6: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ec7: LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ec8: LATIN CAPITAL LETTER I WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ec9: LATIN SMALL LETTER I WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eca: LATIN CAPITAL LETTER I WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ecb: LATIN SMALL LETTER I WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ecc: LATIN CAPITAL LETTER O WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ecd: LATIN SMALL LETTER O WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ece: LATIN CAPITAL LETTER O WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ecf: LATIN SMALL LETTER O WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ed0: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ed1: LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ed2: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ed3: LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ed4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ed5: LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ed6: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ed7: LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ed8: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ed9: LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eda: LATIN CAPITAL LETTER O WITH HORN AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001edb: LATIN SMALL LETTER O WITH HORN AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001edc: LATIN CAPITAL LETTER O WITH HORN AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001edd: LATIN SMALL LETTER O WITH HORN AND GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ede: LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001edf: LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ee0: LATIN CAPITAL LETTER O WITH HORN AND TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ee1: LATIN SMALL LETTER O WITH HORN AND TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ee2: LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ee3: LATIN SMALL LETTER O WITH HORN AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ee4: LATIN CAPITAL LETTER U WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ee5: LATIN SMALL LETTER U WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ee6: LATIN CAPITAL LETTER U WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ee7: LATIN SMALL LETTER U WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ee8: LATIN CAPITAL LETTER U WITH HORN AND ACUTE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ee9: LATIN SMALL LETTER U WITH HORN AND ACUTE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eea: LATIN CAPITAL LETTER U WITH HORN AND GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eeb: LATIN SMALL LETTER U WITH HORN AND GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eec: LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eed: LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001eee: LATIN CAPITAL LETTER U WITH HORN AND TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eef: LATIN SMALL LETTER U WITH HORN AND TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ef0: LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ef1: LATIN SMALL LETTER U WITH HORN AND DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ef2: LATIN CAPITAL LETTER Y WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ef3: LATIN SMALL LETTER Y WITH GRAVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ef4: LATIN CAPITAL LETTER Y WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ef5: LATIN SMALL LETTER Y WITH DOT BELOW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ef6: LATIN CAPITAL LETTER Y WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ef7: LATIN SMALL LETTER Y WITH HOOK ABOVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ef8: LATIN CAPITAL LETTER Y WITH TILDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ef9: LATIN SMALL LETTER Y WITH TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001efa: LATIN CAPITAL LETTER MIDDLE-WELSH LL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001efb: LATIN SMALL LETTER MIDDLE-WELSH LL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001efc: LATIN CAPITAL LETTER MIDDLE-WELSH V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001efd: LATIN SMALL LETTER MIDDLE-WELSH V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001efe: LATIN CAPITAL LETTER Y WITH LOOP*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001eff: LATIN SMALL LETTER Y WITH LOOP*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f00: GREEK SMALL LETTER ALPHA WITH PSILI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f01: GREEK SMALL LETTER ALPHA WITH DASIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f02: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f03: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f04: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f05: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f06: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f07: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f08: GREEK CAPITAL LETTER ALPHA WITH PSILI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f09: GREEK CAPITAL LETTER ALPHA WITH DASIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f0f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f10: GREEK SMALL LETTER EPSILON WITH PSILI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f11: GREEK SMALL LETTER EPSILON WITH DASIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f12: GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f13: GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f14: GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f15: GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA*/ + 0, /* U+001f16: */ + 0, /* U+001f17: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f18: GREEK CAPITAL LETTER EPSILON WITH PSILI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f19: GREEK CAPITAL LETTER EPSILON WITH DASIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f1a: GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f1b: GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f1c: GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f1d: GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA*/ + 0, /* U+001f1e: */ + 0, /* U+001f1f: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f20: GREEK SMALL LETTER ETA WITH PSILI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f21: GREEK SMALL LETTER ETA WITH DASIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f22: GREEK SMALL LETTER ETA WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f23: GREEK SMALL LETTER ETA WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f24: GREEK SMALL LETTER ETA WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f25: GREEK SMALL LETTER ETA WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f26: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f27: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f28: GREEK CAPITAL LETTER ETA WITH PSILI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f29: GREEK CAPITAL LETTER ETA WITH DASIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f2f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f30: GREEK SMALL LETTER IOTA WITH PSILI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f31: GREEK SMALL LETTER IOTA WITH DASIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f32: GREEK SMALL LETTER IOTA WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f33: GREEK SMALL LETTER IOTA WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f34: GREEK SMALL LETTER IOTA WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f35: GREEK SMALL LETTER IOTA WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f36: GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f37: GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f38: GREEK CAPITAL LETTER IOTA WITH PSILI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f39: GREEK CAPITAL LETTER IOTA WITH DASIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3a: GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3b: GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3c: GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3d: GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3e: GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f3f: GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f40: GREEK SMALL LETTER OMICRON WITH PSILI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f41: GREEK SMALL LETTER OMICRON WITH DASIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f42: GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f43: GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f44: GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f45: GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA*/ + 0, /* U+001f46: */ + 0, /* U+001f47: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f48: GREEK CAPITAL LETTER OMICRON WITH PSILI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f49: GREEK CAPITAL LETTER OMICRON WITH DASIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f4a: GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f4b: GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f4c: GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f4d: GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA*/ + 0, /* U+001f4e: */ + 0, /* U+001f4f: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f50: GREEK SMALL LETTER UPSILON WITH PSILI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f51: GREEK SMALL LETTER UPSILON WITH DASIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f52: GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f53: GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f54: GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f55: GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f56: GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f57: GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ + 0, /* U+001f58: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f59: GREEK CAPITAL LETTER UPSILON WITH DASIA*/ + 0, /* U+001f5a: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f5b: GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA*/ + 0, /* U+001f5c: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f5d: GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA*/ + 0, /* U+001f5e: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f5f: GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f60: GREEK SMALL LETTER OMEGA WITH PSILI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f61: GREEK SMALL LETTER OMEGA WITH DASIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f62: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f63: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f64: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f65: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f66: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f67: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f68: GREEK CAPITAL LETTER OMEGA WITH PSILI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f69: GREEK CAPITAL LETTER OMEGA WITH DASIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6a: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6b: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6c: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6d: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6e: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001f6f: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f70: GREEK SMALL LETTER ALPHA WITH VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f71: GREEK SMALL LETTER ALPHA WITH OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f72: GREEK SMALL LETTER EPSILON WITH VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f73: GREEK SMALL LETTER EPSILON WITH OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f74: GREEK SMALL LETTER ETA WITH VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f75: GREEK SMALL LETTER ETA WITH OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f76: GREEK SMALL LETTER IOTA WITH VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f77: GREEK SMALL LETTER IOTA WITH OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f78: GREEK SMALL LETTER OMICRON WITH VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f79: GREEK SMALL LETTER OMICRON WITH OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f7a: GREEK SMALL LETTER UPSILON WITH VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f7b: GREEK SMALL LETTER UPSILON WITH OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f7c: GREEK SMALL LETTER OMEGA WITH VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f7d: GREEK SMALL LETTER OMEGA WITH OXIA*/ + 0, /* U+001f7e: */ + 0, /* U+001f7f: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f80: GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f81: GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f82: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f83: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f84: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f85: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f86: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f87: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f88: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f89: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f8a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f8b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f8c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f8d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f8e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f8f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f90: GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f91: GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f92: GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f93: GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f94: GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f95: GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f96: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001f97: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f98: GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f99: GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f9a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f9b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f9c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f9d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f9e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001f9f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa0: GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa1: GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa2: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa3: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa4: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa5: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa6: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fa7: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001fa8: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001fa9: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001faa: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001fab: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001fac: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001fad: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001fae: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA, /* U+001faf: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb0: GREEK SMALL LETTER ALPHA WITH VRACHY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb1: GREEK SMALL LETTER ALPHA WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb2: GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb3: GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb4: GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI*/ + 0, /* U+001fb5: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb6: GREEK SMALL LETTER ALPHA WITH PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fb7: GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fb8: GREEK CAPITAL LETTER ALPHA WITH VRACHY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fb9: GREEK CAPITAL LETTER ALPHA WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fba: GREEK CAPITAL LETTER ALPHA WITH VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fbb: GREEK CAPITAL LETTER ALPHA WITH OXIA*/ + RTUNI_ALPHA, /* U+001fbc: GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI*/ + 0, /* U+001fbd: GREEK KORONIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fbe: GREEK PROSGEGRAMMENI*/ + 0, /* U+001fbf: GREEK PSILI*/ + 0, /* U+001fc0: GREEK PERISPOMENI*/ + 0, /* U+001fc1: GREEK DIALYTIKA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fc2: GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fc3: GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fc4: GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI*/ + 0, /* U+001fc5: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fc6: GREEK SMALL LETTER ETA WITH PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fc7: GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fc8: GREEK CAPITAL LETTER EPSILON WITH VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fc9: GREEK CAPITAL LETTER EPSILON WITH OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fca: GREEK CAPITAL LETTER ETA WITH VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fcb: GREEK CAPITAL LETTER ETA WITH OXIA*/ + RTUNI_ALPHA, /* U+001fcc: GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI*/ + 0, /* U+001fcd: GREEK PSILI AND VARIA*/ + 0, /* U+001fce: GREEK PSILI AND OXIA*/ + 0, /* U+001fcf: GREEK PSILI AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd0: GREEK SMALL LETTER IOTA WITH VRACHY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd1: GREEK SMALL LETTER IOTA WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd2: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd3: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA*/ + 0, /* U+001fd4: */ + 0, /* U+001fd5: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd6: GREEK SMALL LETTER IOTA WITH PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fd7: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fd8: GREEK CAPITAL LETTER IOTA WITH VRACHY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fd9: GREEK CAPITAL LETTER IOTA WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fda: GREEK CAPITAL LETTER IOTA WITH VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fdb: GREEK CAPITAL LETTER IOTA WITH OXIA*/ + 0, /* U+001fdc: */ + 0, /* U+001fdd: GREEK DASIA AND VARIA*/ + 0, /* U+001fde: GREEK DASIA AND OXIA*/ + 0, /* U+001fdf: GREEK DASIA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe0: GREEK SMALL LETTER UPSILON WITH VRACHY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe1: GREEK SMALL LETTER UPSILON WITH MACRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe2: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe3: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe4: GREEK SMALL LETTER RHO WITH PSILI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe5: GREEK SMALL LETTER RHO WITH DASIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe6: GREEK SMALL LETTER UPSILON WITH PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001fe7: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fe8: GREEK CAPITAL LETTER UPSILON WITH VRACHY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fe9: GREEK CAPITAL LETTER UPSILON WITH MACRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fea: GREEK CAPITAL LETTER UPSILON WITH VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001feb: GREEK CAPITAL LETTER UPSILON WITH OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001fec: GREEK CAPITAL LETTER RHO WITH DASIA*/ + 0, /* U+001fed: GREEK DIALYTIKA AND VARIA*/ + 0, /* U+001fee: GREEK DIALYTIKA AND OXIA*/ + 0, /* U+001fef: GREEK VARIA*/ + 0, /* U+001ff0: */ + 0, /* U+001ff1: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ff2: GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ff3: GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ff4: GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI*/ + 0, /* U+001ff5: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ff6: GREEK SMALL LETTER OMEGA WITH PERISPOMENI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+001ff7: GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ff8: GREEK CAPITAL LETTER OMICRON WITH VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ff9: GREEK CAPITAL LETTER OMICRON WITH OXIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ffa: GREEK CAPITAL LETTER OMEGA WITH VARIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+001ffb: GREEK CAPITAL LETTER OMEGA WITH OXIA*/ + RTUNI_ALPHA, /* U+001ffc: GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI*/ + 0, /* U+001ffd: GREEK OXIA*/ + 0, /* U+001ffe: GREEK DASIA*/ + 0, /* U+001fff: */ + RTUNI_WSPACE, /* U+002000: EN QUAD*/ + RTUNI_WSPACE, /* U+002001: EM QUAD*/ + RTUNI_WSPACE, /* U+002002: EN SPACE*/ + RTUNI_WSPACE, /* U+002003: EM SPACE*/ + RTUNI_WSPACE, /* U+002004: THREE-PER-EM SPACE*/ + RTUNI_WSPACE, /* U+002005: FOUR-PER-EM SPACE*/ + RTUNI_WSPACE, /* U+002006: SIX-PER-EM SPACE*/ + RTUNI_WSPACE, /* U+002007: FIGURE SPACE*/ + RTUNI_WSPACE, /* U+002008: PUNCTUATION SPACE*/ + RTUNI_WSPACE, /* U+002009: THIN SPACE*/ + RTUNI_WSPACE, /* U+00200a: HAIR SPACE*/ + 0, /* U+00200b: ZERO WIDTH SPACE*/ + 0, /* U+00200c: ZERO WIDTH NON-JOINER*/ + 0, /* U+00200d: ZERO WIDTH JOINER*/ + 0, /* U+00200e: LEFT-TO-RIGHT MARK*/ + 0, /* U+00200f: RIGHT-TO-LEFT MARK*/ + 0, /* U+002010: HYPHEN*/ + 0, /* U+002011: NON-BREAKING HYPHEN*/ + 0, /* U+002012: FIGURE DASH*/ + 0, /* U+002013: EN DASH*/ + 0, /* U+002014: EM DASH*/ + 0, /* U+002015: HORIZONTAL BAR*/ + 0, /* U+002016: DOUBLE VERTICAL LINE*/ + 0, /* U+002017: DOUBLE LOW LINE*/ + 0, /* U+002018: LEFT SINGLE QUOTATION MARK*/ + 0, /* U+002019: RIGHT SINGLE QUOTATION MARK*/ + 0, /* U+00201a: SINGLE LOW-9 QUOTATION MARK*/ + 0, /* U+00201b: SINGLE HIGH-REVERSED-9 QUOTATION MARK*/ + 0, /* U+00201c: LEFT DOUBLE QUOTATION MARK*/ + 0, /* U+00201d: RIGHT DOUBLE QUOTATION MARK*/ + 0, /* U+00201e: DOUBLE LOW-9 QUOTATION MARK*/ + 0, /* U+00201f: DOUBLE HIGH-REVERSED-9 QUOTATION MARK*/ + 0, /* U+002020: DAGGER*/ + 0, /* U+002021: DOUBLE DAGGER*/ + 0, /* U+002022: BULLET*/ + 0, /* U+002023: TRIANGULAR BULLET*/ + 0, /* U+002024: ONE DOT LEADER*/ + 0, /* U+002025: TWO DOT LEADER*/ + 0, /* U+002026: HORIZONTAL ELLIPSIS*/ + 0, /* U+002027: HYPHENATION POINT*/ + RTUNI_WSPACE, /* U+002028: LINE SEPARATOR*/ + RTUNI_WSPACE, /* U+002029: PARAGRAPH SEPARATOR*/ + 0, /* U+00202a: LEFT-TO-RIGHT EMBEDDING*/ + 0, /* U+00202b: RIGHT-TO-LEFT EMBEDDING*/ + 0, /* U+00202c: POP DIRECTIONAL FORMATTING*/ + 0, /* U+00202d: LEFT-TO-RIGHT OVERRIDE*/ + 0, /* U+00202e: RIGHT-TO-LEFT OVERRIDE*/ + RTUNI_WSPACE, /* U+00202f: NARROW NO-BREAK SPACE*/ + 0, /* U+002030: PER MILLE SIGN*/ + 0, /* U+002031: PER TEN THOUSAND SIGN*/ + 0, /* U+002032: PRIME*/ + 0, /* U+002033: DOUBLE PRIME*/ + 0, /* U+002034: TRIPLE PRIME*/ + 0, /* U+002035: REVERSED PRIME*/ + 0, /* U+002036: REVERSED DOUBLE PRIME*/ + 0, /* U+002037: REVERSED TRIPLE PRIME*/ + 0, /* U+002038: CARET*/ + 0, /* U+002039: SINGLE LEFT-POINTING ANGLE QUOTATION MARK*/ + 0, /* U+00203a: SINGLE RIGHT-POINTING ANGLE QUOTATION MARK*/ + 0, /* U+00203b: REFERENCE MARK*/ + 0, /* U+00203c: DOUBLE EXCLAMATION MARK*/ + 0, /* U+00203d: INTERROBANG*/ + 0, /* U+00203e: OVERLINE*/ + 0, /* U+00203f: UNDERTIE*/ + 0, /* U+002040: CHARACTER TIE*/ + 0, /* U+002041: CARET INSERTION POINT*/ + 0, /* U+002042: ASTERISM*/ + 0, /* U+002043: HYPHEN BULLET*/ + 0, /* U+002044: FRACTION SLASH*/ + 0, /* U+002045: LEFT SQUARE BRACKET WITH QUILL*/ + 0, /* U+002046: RIGHT SQUARE BRACKET WITH QUILL*/ + 0, /* U+002047: DOUBLE QUESTION MARK*/ + 0, /* U+002048: QUESTION EXCLAMATION MARK*/ + 0, /* U+002049: EXCLAMATION QUESTION MARK*/ + 0, /* U+00204a: TIRONIAN SIGN ET*/ + 0, /* U+00204b: REVERSED PILCROW SIGN*/ + 0, /* U+00204c: BLACK LEFTWARDS BULLET*/ + 0, /* U+00204d: BLACK RIGHTWARDS BULLET*/ + 0, /* U+00204e: LOW ASTERISK*/ + 0, /* U+00204f: REVERSED SEMICOLON*/ + 0, /* U+002050: CLOSE UP*/ + 0, /* U+002051: TWO ASTERISKS ALIGNED VERTICALLY*/ + 0, /* U+002052: COMMERCIAL MINUS SIGN*/ + 0, /* U+002053: SWUNG DASH*/ + 0, /* U+002054: INVERTED UNDERTIE*/ + 0, /* U+002055: FLOWER PUNCTUATION MARK*/ + 0, /* U+002056: THREE DOT PUNCTUATION*/ + 0, /* U+002057: QUADRUPLE PRIME*/ + 0, /* U+002058: FOUR DOT PUNCTUATION*/ + 0, /* U+002059: FIVE DOT PUNCTUATION*/ + 0, /* U+00205a: TWO DOT PUNCTUATION*/ + 0, /* U+00205b: FOUR DOT MARK*/ + 0, /* U+00205c: DOTTED CROSS*/ + 0, /* U+00205d: TRICOLON*/ + 0, /* U+00205e: VERTICAL FOUR DOTS*/ + RTUNI_WSPACE, /* U+00205f: MEDIUM MATHEMATICAL SPACE*/ + 0, /* U+002060: WORD JOINER*/ + 0, /* U+002061: FUNCTION APPLICATION*/ + 0, /* U+002062: INVISIBLE TIMES*/ + 0, /* U+002063: INVISIBLE SEPARATOR*/ + 0, /* U+002064: INVISIBLE PLUS*/ + 0, /* U+002065: */ + 0, /* U+002066: LEFT-TO-RIGHT ISOLATE*/ + 0, /* U+002067: RIGHT-TO-LEFT ISOLATE*/ + 0, /* U+002068: FIRST STRONG ISOLATE*/ + 0, /* U+002069: POP DIRECTIONAL ISOLATE*/ + 0, /* U+00206a: INHIBIT SYMMETRIC SWAPPING*/ + 0, /* U+00206b: ACTIVATE SYMMETRIC SWAPPING*/ + 0, /* U+00206c: INHIBIT ARABIC FORM SHAPING*/ + 0, /* U+00206d: ACTIVATE ARABIC FORM SHAPING*/ + 0, /* U+00206e: NATIONAL DIGIT SHAPES*/ + 0, /* U+00206f: NOMINAL DIGIT SHAPES*/ + 0, /* U+002070: SUPERSCRIPT ZERO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002071: SUPERSCRIPT LATIN SMALL LETTER I*/ + 0, /* U+002072: */ + 0, /* U+002073: */ + 0, /* U+002074: SUPERSCRIPT FOUR*/ + 0, /* U+002075: SUPERSCRIPT FIVE*/ + 0, /* U+002076: SUPERSCRIPT SIX*/ + 0, /* U+002077: SUPERSCRIPT SEVEN*/ + 0, /* U+002078: SUPERSCRIPT EIGHT*/ + 0, /* U+002079: SUPERSCRIPT NINE*/ + 0, /* U+00207a: SUPERSCRIPT PLUS SIGN*/ + 0, /* U+00207b: SUPERSCRIPT MINUS*/ + 0, /* U+00207c: SUPERSCRIPT EQUALS SIGN*/ + 0, /* U+00207d: SUPERSCRIPT LEFT PARENTHESIS*/ + 0, /* U+00207e: SUPERSCRIPT RIGHT PARENTHESIS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00207f: SUPERSCRIPT LATIN SMALL LETTER N*/ + 0, /* U+002080: SUBSCRIPT ZERO*/ + 0, /* U+002081: SUBSCRIPT ONE*/ + 0, /* U+002082: SUBSCRIPT TWO*/ + 0, /* U+002083: SUBSCRIPT THREE*/ + 0, /* U+002084: SUBSCRIPT FOUR*/ + 0, /* U+002085: SUBSCRIPT FIVE*/ + 0, /* U+002086: SUBSCRIPT SIX*/ + 0, /* U+002087: SUBSCRIPT SEVEN*/ + 0, /* U+002088: SUBSCRIPT EIGHT*/ + 0, /* U+002089: SUBSCRIPT NINE*/ + 0, /* U+00208a: SUBSCRIPT PLUS SIGN*/ + 0, /* U+00208b: SUBSCRIPT MINUS*/ + 0, /* U+00208c: SUBSCRIPT EQUALS SIGN*/ + 0, /* U+00208d: SUBSCRIPT LEFT PARENTHESIS*/ + 0, /* U+00208e: SUBSCRIPT RIGHT PARENTHESIS*/ + 0, /* U+00208f: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002090: LATIN SUBSCRIPT SMALL LETTER A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002091: LATIN SUBSCRIPT SMALL LETTER E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002092: LATIN SUBSCRIPT SMALL LETTER O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002093: LATIN SUBSCRIPT SMALL LETTER X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002094: LATIN SUBSCRIPT SMALL LETTER SCHWA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002095: LATIN SUBSCRIPT SMALL LETTER H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002096: LATIN SUBSCRIPT SMALL LETTER K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002097: LATIN SUBSCRIPT SMALL LETTER L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002098: LATIN SUBSCRIPT SMALL LETTER M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002099: LATIN SUBSCRIPT SMALL LETTER N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00209a: LATIN SUBSCRIPT SMALL LETTER P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00209b: LATIN SUBSCRIPT SMALL LETTER S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00209c: LATIN SUBSCRIPT SMALL LETTER T*/ + 0, /* U+00209d: */ + 0, /* U+00209e: */ + 0, /* U+00209f: */ + 0, /* U+0020a0: EURO-CURRENCY SIGN*/ + 0, /* U+0020a1: COLON SIGN*/ + 0, /* U+0020a2: CRUZEIRO SIGN*/ + 0, /* U+0020a3: FRENCH FRANC SIGN*/ + 0, /* U+0020a4: LIRA SIGN*/ + 0, /* U+0020a5: MILL SIGN*/ + 0, /* U+0020a6: NAIRA SIGN*/ + 0, /* U+0020a7: PESETA SIGN*/ + 0, /* U+0020a8: RUPEE SIGN*/ + 0, /* U+0020a9: WON SIGN*/ + 0, /* U+0020aa: NEW SHEQEL SIGN*/ + 0, /* U+0020ab: DONG SIGN*/ + 0, /* U+0020ac: EURO SIGN*/ + 0, /* U+0020ad: KIP SIGN*/ + 0, /* U+0020ae: TUGRIK SIGN*/ + 0, /* U+0020af: DRACHMA SIGN*/ + 0, /* U+0020b0: GERMAN PENNY SIGN*/ + 0, /* U+0020b1: PESO SIGN*/ + 0, /* U+0020b2: GUARANI SIGN*/ + 0, /* U+0020b3: AUSTRAL SIGN*/ + 0, /* U+0020b4: HRYVNIA SIGN*/ + 0, /* U+0020b5: CEDI SIGN*/ + 0, /* U+0020b6: LIVRE TOURNOIS SIGN*/ + 0, /* U+0020b7: SPESMILO SIGN*/ + 0, /* U+0020b8: TENGE SIGN*/ + 0, /* U+0020b9: INDIAN RUPEE SIGN*/ + 0, /* U+0020ba: TURKISH LIRA SIGN*/ + 0, /* U+0020bb: */ + 0, /* U+0020bc: */ + 0, /* U+0020bd: */ + 0, /* U+0020be: */ + 0, /* U+0020bf: */ + 0, /* U+0020c0: */ + 0, /* U+0020c1: */ + 0, /* U+0020c2: */ + 0, /* U+0020c3: */ + 0, /* U+0020c4: */ + 0, /* U+0020c5: */ + 0, /* U+0020c6: */ + 0, /* U+0020c7: */ + 0, /* U+0020c8: */ + 0, /* U+0020c9: */ + 0, /* U+0020ca: */ + 0, /* U+0020cb: */ + 0, /* U+0020cc: */ + 0, /* U+0020cd: */ + 0, /* U+0020ce: */ + 0, /* U+0020cf: */ + 0, /* U+0020d0: COMBINING LEFT HARPOON ABOVE*/ + 0, /* U+0020d1: COMBINING RIGHT HARPOON ABOVE*/ + 0, /* U+0020d2: COMBINING LONG VERTICAL LINE OVERLAY*/ + 0, /* U+0020d3: COMBINING SHORT VERTICAL LINE OVERLAY*/ + 0, /* U+0020d4: COMBINING ANTICLOCKWISE ARROW ABOVE*/ + 0, /* U+0020d5: COMBINING CLOCKWISE ARROW ABOVE*/ + 0, /* U+0020d6: COMBINING LEFT ARROW ABOVE*/ + 0, /* U+0020d7: COMBINING RIGHT ARROW ABOVE*/ + 0, /* U+0020d8: COMBINING RING OVERLAY*/ + 0, /* U+0020d9: COMBINING CLOCKWISE RING OVERLAY*/ + 0, /* U+0020da: COMBINING ANTICLOCKWISE RING OVERLAY*/ + 0, /* U+0020db: COMBINING THREE DOTS ABOVE*/ + 0, /* U+0020dc: COMBINING FOUR DOTS ABOVE*/ + 0, /* U+0020dd: COMBINING ENCLOSING CIRCLE*/ + 0, /* U+0020de: COMBINING ENCLOSING SQUARE*/ + 0, /* U+0020df: COMBINING ENCLOSING DIAMOND*/ + 0, /* U+0020e0: COMBINING ENCLOSING CIRCLE BACKSLASH*/ + 0, /* U+0020e1: COMBINING LEFT RIGHT ARROW ABOVE*/ + 0, /* U+0020e2: COMBINING ENCLOSING SCREEN*/ + 0, /* U+0020e3: COMBINING ENCLOSING KEYCAP*/ + 0, /* U+0020e4: COMBINING ENCLOSING UPWARD POINTING TRIANGLE*/ + 0, /* U+0020e5: COMBINING REVERSE SOLIDUS OVERLAY*/ + 0, /* U+0020e6: COMBINING DOUBLE VERTICAL STROKE OVERLAY*/ + 0, /* U+0020e7: COMBINING ANNUITY SYMBOL*/ + 0, /* U+0020e8: COMBINING TRIPLE UNDERDOT*/ + 0, /* U+0020e9: COMBINING WIDE BRIDGE ABOVE*/ + 0, /* U+0020ea: COMBINING LEFTWARDS ARROW OVERLAY*/ + 0, /* U+0020eb: COMBINING LONG DOUBLE SOLIDUS OVERLAY*/ + 0, /* U+0020ec: COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0, /* U+0020ed: COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0, /* U+0020ee: COMBINING LEFT ARROW BELOW*/ + 0, /* U+0020ef: COMBINING RIGHT ARROW BELOW*/ + 0, /* U+0020f0: COMBINING ASTERISK ABOVE*/ + 0, /* U+0020f1: */ + 0, /* U+0020f2: */ + 0, /* U+0020f3: */ + 0, /* U+0020f4: */ + 0, /* U+0020f5: */ + 0, /* U+0020f6: */ + 0, /* U+0020f7: */ + 0, /* U+0020f8: */ + 0, /* U+0020f9: */ + 0, /* U+0020fa: */ + 0, /* U+0020fb: */ + 0, /* U+0020fc: */ + 0, /* U+0020fd: */ + 0, /* U+0020fe: */ + 0, /* U+0020ff: */ + 0, /* U+002100: ACCOUNT OF*/ + 0, /* U+002101: ADDRESSED TO THE SUBJECT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002102: DOUBLE-STRUCK CAPITAL C*/ + 0, /* U+002103: DEGREE CELSIUS*/ + 0, /* U+002104: CENTRE LINE SYMBOL*/ + 0, /* U+002105: CARE OF*/ + 0, /* U+002106: CADA UNA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002107: EULER CONSTANT*/ + 0, /* U+002108: SCRUPLE*/ + 0, /* U+002109: DEGREE FAHRENHEIT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00210a: SCRIPT SMALL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00210b: SCRIPT CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00210c: BLACK-LETTER CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00210d: DOUBLE-STRUCK CAPITAL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00210e: PLANCK CONSTANT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00210f: PLANCK CONSTANT OVER TWO PI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002110: SCRIPT CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002111: BLACK-LETTER CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002112: SCRIPT CAPITAL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002113: SCRIPT SMALL L*/ + 0, /* U+002114: L B BAR SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002115: DOUBLE-STRUCK CAPITAL N*/ + 0, /* U+002116: NUMERO SIGN*/ + 0, /* U+002117: SOUND RECORDING COPYRIGHT*/ + 0, /* U+002118: SCRIPT CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002119: DOUBLE-STRUCK CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00211a: DOUBLE-STRUCK CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00211b: SCRIPT CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00211c: BLACK-LETTER CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00211d: DOUBLE-STRUCK CAPITAL R*/ + 0, /* U+00211e: PRESCRIPTION TAKE*/ + 0, /* U+00211f: RESPONSE*/ + 0, /* U+002120: SERVICE MARK*/ + 0, /* U+002121: TELEPHONE SIGN*/ + 0, /* U+002122: TRADE MARK SIGN*/ + 0, /* U+002123: VERSICLE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002124: DOUBLE-STRUCK CAPITAL Z*/ + 0, /* U+002125: OUNCE SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002126: OHM SIGN*/ + 0, /* U+002127: INVERTED OHM SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002128: BLACK-LETTER CAPITAL Z*/ + 0, /* U+002129: TURNED GREEK SMALL LETTER IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00212a: KELVIN SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00212b: ANGSTROM SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00212c: SCRIPT CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00212d: BLACK-LETTER CAPITAL C*/ + 0, /* U+00212e: ESTIMATED SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00212f: SCRIPT SMALL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002130: SCRIPT CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002131: SCRIPT CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002132: TURNED CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002133: SCRIPT CAPITAL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002134: SCRIPT SMALL O*/ + RTUNI_ALPHA, /* U+002135: ALEF SYMBOL*/ + RTUNI_ALPHA, /* U+002136: BET SYMBOL*/ + RTUNI_ALPHA, /* U+002137: GIMEL SYMBOL*/ + RTUNI_ALPHA, /* U+002138: DALET SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002139: INFORMATION SOURCE*/ + 0, /* U+00213a: ROTATED CAPITAL Q*/ + 0, /* U+00213b: FACSIMILE SIGN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00213c: DOUBLE-STRUCK SMALL PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00213d: DOUBLE-STRUCK SMALL GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00213e: DOUBLE-STRUCK CAPITAL GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00213f: DOUBLE-STRUCK CAPITAL PI*/ + 0, /* U+002140: DOUBLE-STRUCK N-ARY SUMMATION*/ + 0, /* U+002141: TURNED SANS-SERIF CAPITAL G*/ + 0, /* U+002142: TURNED SANS-SERIF CAPITAL L*/ + 0, /* U+002143: REVERSED SANS-SERIF CAPITAL L*/ + 0, /* U+002144: TURNED SANS-SERIF CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002145: DOUBLE-STRUCK ITALIC CAPITAL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002146: DOUBLE-STRUCK ITALIC SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002147: DOUBLE-STRUCK ITALIC SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002148: DOUBLE-STRUCK ITALIC SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002149: DOUBLE-STRUCK ITALIC SMALL J*/ + 0, /* U+00214a: PROPERTY LINE*/ + 0, /* U+00214b: TURNED AMPERSAND*/ + 0, /* U+00214c: PER SIGN*/ + 0, /* U+00214d: AKTIESELSKAB*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00214e: TURNED SMALL F*/ + 0, /* U+00214f: SYMBOL FOR SAMARITAN SOURCE*/ + 0, /* U+002150: VULGAR FRACTION ONE SEVENTH*/ + 0, /* U+002151: VULGAR FRACTION ONE NINTH*/ + 0, /* U+002152: VULGAR FRACTION ONE TENTH*/ + 0, /* U+002153: VULGAR FRACTION ONE THIRD*/ + 0, /* U+002154: VULGAR FRACTION TWO THIRDS*/ + 0, /* U+002155: VULGAR FRACTION ONE FIFTH*/ + 0, /* U+002156: VULGAR FRACTION TWO FIFTHS*/ + 0, /* U+002157: VULGAR FRACTION THREE FIFTHS*/ + 0, /* U+002158: VULGAR FRACTION FOUR FIFTHS*/ + 0, /* U+002159: VULGAR FRACTION ONE SIXTH*/ + 0, /* U+00215a: VULGAR FRACTION FIVE SIXTHS*/ + 0, /* U+00215b: VULGAR FRACTION ONE EIGHTH*/ + 0, /* U+00215c: VULGAR FRACTION THREE EIGHTHS*/ + 0, /* U+00215d: VULGAR FRACTION FIVE EIGHTHS*/ + 0, /* U+00215e: VULGAR FRACTION SEVEN EIGHTHS*/ + 0, /* U+00215f: FRACTION NUMERATOR ONE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002160: ROMAN NUMERAL ONE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002161: ROMAN NUMERAL TWO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002162: ROMAN NUMERAL THREE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002163: ROMAN NUMERAL FOUR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002164: ROMAN NUMERAL FIVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002165: ROMAN NUMERAL SIX*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002166: ROMAN NUMERAL SEVEN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002167: ROMAN NUMERAL EIGHT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002168: ROMAN NUMERAL NINE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002169: ROMAN NUMERAL TEN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00216a: ROMAN NUMERAL ELEVEN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00216b: ROMAN NUMERAL TWELVE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00216c: ROMAN NUMERAL FIFTY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00216d: ROMAN NUMERAL ONE HUNDRED*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00216e: ROMAN NUMERAL FIVE HUNDRED*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00216f: ROMAN NUMERAL ONE THOUSAND*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002170: SMALL ROMAN NUMERAL ONE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002171: SMALL ROMAN NUMERAL TWO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002172: SMALL ROMAN NUMERAL THREE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002173: SMALL ROMAN NUMERAL FOUR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002174: SMALL ROMAN NUMERAL FIVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002175: SMALL ROMAN NUMERAL SIX*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002176: SMALL ROMAN NUMERAL SEVEN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002177: SMALL ROMAN NUMERAL EIGHT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002178: SMALL ROMAN NUMERAL NINE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002179: SMALL ROMAN NUMERAL TEN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00217a: SMALL ROMAN NUMERAL ELEVEN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00217b: SMALL ROMAN NUMERAL TWELVE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00217c: SMALL ROMAN NUMERAL FIFTY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00217d: SMALL ROMAN NUMERAL ONE HUNDRED*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00217e: SMALL ROMAN NUMERAL FIVE HUNDRED*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00217f: SMALL ROMAN NUMERAL ONE THOUSAND*/ + RTUNI_ALPHA, /* U+002180: ROMAN NUMERAL ONE THOUSAND C D*/ + RTUNI_ALPHA, /* U+002181: ROMAN NUMERAL FIVE THOUSAND*/ + RTUNI_ALPHA, /* U+002182: ROMAN NUMERAL TEN THOUSAND*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002183: ROMAN NUMERAL REVERSED ONE HUNDRED*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002184: LATIN SMALL LETTER REVERSED C*/ + RTUNI_ALPHA, /* U+002185: ROMAN NUMERAL SIX LATE FORM*/ + RTUNI_ALPHA, /* U+002186: ROMAN NUMERAL FIFTY EARLY FORM*/ + RTUNI_ALPHA, /* U+002187: ROMAN NUMERAL FIFTY THOUSAND*/ + RTUNI_ALPHA, /* U+002188: ROMAN NUMERAL ONE HUNDRED THOUSAND*/ + 0, /* U+002189: VULGAR FRACTION ZERO THIRDS*/ + 0, /* U+00218a: */ + 0, /* U+00218b: */ + 0, /* U+00218c: */ + 0, /* U+00218d: */ + 0, /* U+00218e: */ + 0, /* U+00218f: */ + 0, /* U+002190: LEFTWARDS ARROW*/ + 0, /* U+002191: UPWARDS ARROW*/ + 0, /* U+002192: RIGHTWARDS ARROW*/ + 0, /* U+002193: DOWNWARDS ARROW*/ + 0, /* U+002194: LEFT RIGHT ARROW*/ + 0, /* U+002195: UP DOWN ARROW*/ + 0, /* U+002196: NORTH WEST ARROW*/ + 0, /* U+002197: NORTH EAST ARROW*/ + 0, /* U+002198: SOUTH EAST ARROW*/ + 0, /* U+002199: SOUTH WEST ARROW*/ + 0, /* U+00219a: LEFTWARDS ARROW WITH STROKE*/ + 0, /* U+00219b: RIGHTWARDS ARROW WITH STROKE*/ + 0, /* U+00219c: LEFTWARDS WAVE ARROW*/ + 0, /* U+00219d: RIGHTWARDS WAVE ARROW*/ + 0, /* U+00219e: LEFTWARDS TWO HEADED ARROW*/ + 0, /* U+00219f: UPWARDS TWO HEADED ARROW*/ + 0, /* U+0021a0: RIGHTWARDS TWO HEADED ARROW*/ + 0, /* U+0021a1: DOWNWARDS TWO HEADED ARROW*/ + 0, /* U+0021a2: LEFTWARDS ARROW WITH TAIL*/ + 0, /* U+0021a3: RIGHTWARDS ARROW WITH TAIL*/ + 0, /* U+0021a4: LEFTWARDS ARROW FROM BAR*/ + 0, /* U+0021a5: UPWARDS ARROW FROM BAR*/ + 0, /* U+0021a6: RIGHTWARDS ARROW FROM BAR*/ + 0, /* U+0021a7: DOWNWARDS ARROW FROM BAR*/ + 0, /* U+0021a8: UP DOWN ARROW WITH BASE*/ + 0, /* U+0021a9: LEFTWARDS ARROW WITH HOOK*/ + 0, /* U+0021aa: RIGHTWARDS ARROW WITH HOOK*/ + 0, /* U+0021ab: LEFTWARDS ARROW WITH LOOP*/ + 0, /* U+0021ac: RIGHTWARDS ARROW WITH LOOP*/ + 0, /* U+0021ad: LEFT RIGHT WAVE ARROW*/ + 0, /* U+0021ae: LEFT RIGHT ARROW WITH STROKE*/ + 0, /* U+0021af: DOWNWARDS ZIGZAG ARROW*/ + 0, /* U+0021b0: UPWARDS ARROW WITH TIP LEFTWARDS*/ + 0, /* U+0021b1: UPWARDS ARROW WITH TIP RIGHTWARDS*/ + 0, /* U+0021b2: DOWNWARDS ARROW WITH TIP LEFTWARDS*/ + 0, /* U+0021b3: DOWNWARDS ARROW WITH TIP RIGHTWARDS*/ + 0, /* U+0021b4: RIGHTWARDS ARROW WITH CORNER DOWNWARDS*/ + 0, /* U+0021b5: DOWNWARDS ARROW WITH CORNER LEFTWARDS*/ + 0, /* U+0021b6: ANTICLOCKWISE TOP SEMICIRCLE ARROW*/ + 0, /* U+0021b7: CLOCKWISE TOP SEMICIRCLE ARROW*/ + 0, /* U+0021b8: NORTH WEST ARROW TO LONG BAR*/ + 0, /* U+0021b9: LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR*/ + 0, /* U+0021ba: ANTICLOCKWISE OPEN CIRCLE ARROW*/ + 0, /* U+0021bb: CLOCKWISE OPEN CIRCLE ARROW*/ + 0, /* U+0021bc: LEFTWARDS HARPOON WITH BARB UPWARDS*/ + 0, /* U+0021bd: LEFTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0, /* U+0021be: UPWARDS HARPOON WITH BARB RIGHTWARDS*/ + 0, /* U+0021bf: UPWARDS HARPOON WITH BARB LEFTWARDS*/ + 0, /* U+0021c0: RIGHTWARDS HARPOON WITH BARB UPWARDS*/ + 0, /* U+0021c1: RIGHTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0, /* U+0021c2: DOWNWARDS HARPOON WITH BARB RIGHTWARDS*/ + 0, /* U+0021c3: DOWNWARDS HARPOON WITH BARB LEFTWARDS*/ + 0, /* U+0021c4: RIGHTWARDS ARROW OVER LEFTWARDS ARROW*/ + 0, /* U+0021c5: UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW*/ + 0, /* U+0021c6: LEFTWARDS ARROW OVER RIGHTWARDS ARROW*/ + 0, /* U+0021c7: LEFTWARDS PAIRED ARROWS*/ + 0, /* U+0021c8: UPWARDS PAIRED ARROWS*/ + 0, /* U+0021c9: RIGHTWARDS PAIRED ARROWS*/ + 0, /* U+0021ca: DOWNWARDS PAIRED ARROWS*/ + 0, /* U+0021cb: LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON*/ + 0, /* U+0021cc: RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON*/ + 0, /* U+0021cd: LEFTWARDS DOUBLE ARROW WITH STROKE*/ + 0, /* U+0021ce: LEFT RIGHT DOUBLE ARROW WITH STROKE*/ + 0, /* U+0021cf: RIGHTWARDS DOUBLE ARROW WITH STROKE*/ + 0, /* U+0021d0: LEFTWARDS DOUBLE ARROW*/ + 0, /* U+0021d1: UPWARDS DOUBLE ARROW*/ + 0, /* U+0021d2: RIGHTWARDS DOUBLE ARROW*/ + 0, /* U+0021d3: DOWNWARDS DOUBLE ARROW*/ + 0, /* U+0021d4: LEFT RIGHT DOUBLE ARROW*/ + 0, /* U+0021d5: UP DOWN DOUBLE ARROW*/ + 0, /* U+0021d6: NORTH WEST DOUBLE ARROW*/ + 0, /* U+0021d7: NORTH EAST DOUBLE ARROW*/ + 0, /* U+0021d8: SOUTH EAST DOUBLE ARROW*/ + 0, /* U+0021d9: SOUTH WEST DOUBLE ARROW*/ + 0, /* U+0021da: LEFTWARDS TRIPLE ARROW*/ + 0, /* U+0021db: RIGHTWARDS TRIPLE ARROW*/ + 0, /* U+0021dc: LEFTWARDS SQUIGGLE ARROW*/ + 0, /* U+0021dd: RIGHTWARDS SQUIGGLE ARROW*/ + 0, /* U+0021de: UPWARDS ARROW WITH DOUBLE STROKE*/ + 0, /* U+0021df: DOWNWARDS ARROW WITH DOUBLE STROKE*/ + 0, /* U+0021e0: LEFTWARDS DASHED ARROW*/ + 0, /* U+0021e1: UPWARDS DASHED ARROW*/ + 0, /* U+0021e2: RIGHTWARDS DASHED ARROW*/ + 0, /* U+0021e3: DOWNWARDS DASHED ARROW*/ + 0, /* U+0021e4: LEFTWARDS ARROW TO BAR*/ + 0, /* U+0021e5: RIGHTWARDS ARROW TO BAR*/ + 0, /* U+0021e6: LEFTWARDS WHITE ARROW*/ + 0, /* U+0021e7: UPWARDS WHITE ARROW*/ + 0, /* U+0021e8: RIGHTWARDS WHITE ARROW*/ + 0, /* U+0021e9: DOWNWARDS WHITE ARROW*/ + 0, /* U+0021ea: UPWARDS WHITE ARROW FROM BAR*/ + 0, /* U+0021eb: UPWARDS WHITE ARROW ON PEDESTAL*/ + 0, /* U+0021ec: UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR*/ + 0, /* U+0021ed: UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR*/ + 0, /* U+0021ee: UPWARDS WHITE DOUBLE ARROW*/ + 0, /* U+0021ef: UPWARDS WHITE DOUBLE ARROW ON PEDESTAL*/ + 0, /* U+0021f0: RIGHTWARDS WHITE ARROW FROM WALL*/ + 0, /* U+0021f1: NORTH WEST ARROW TO CORNER*/ + 0, /* U+0021f2: SOUTH EAST ARROW TO CORNER*/ + 0, /* U+0021f3: UP DOWN WHITE ARROW*/ + 0, /* U+0021f4: RIGHT ARROW WITH SMALL CIRCLE*/ + 0, /* U+0021f5: DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW*/ + 0, /* U+0021f6: THREE RIGHTWARDS ARROWS*/ + 0, /* U+0021f7: LEFTWARDS ARROW WITH VERTICAL STROKE*/ + 0, /* U+0021f8: RIGHTWARDS ARROW WITH VERTICAL STROKE*/ + 0, /* U+0021f9: LEFT RIGHT ARROW WITH VERTICAL STROKE*/ + 0, /* U+0021fa: LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+0021fb: RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+0021fc: LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+0021fd: LEFTWARDS OPEN-HEADED ARROW*/ + 0, /* U+0021fe: RIGHTWARDS OPEN-HEADED ARROW*/ + 0, /* U+0021ff: LEFT RIGHT OPEN-HEADED ARROW*/ + 0, /* U+002200: FOR ALL*/ + 0, /* U+002201: COMPLEMENT*/ + 0, /* U+002202: PARTIAL DIFFERENTIAL*/ + 0, /* U+002203: THERE EXISTS*/ + 0, /* U+002204: THERE DOES NOT EXIST*/ + 0, /* U+002205: EMPTY SET*/ + 0, /* U+002206: INCREMENT*/ + 0, /* U+002207: NABLA*/ + 0, /* U+002208: ELEMENT OF*/ + 0, /* U+002209: NOT AN ELEMENT OF*/ + 0, /* U+00220a: SMALL ELEMENT OF*/ + 0, /* U+00220b: CONTAINS AS MEMBER*/ + 0, /* U+00220c: DOES NOT CONTAIN AS MEMBER*/ + 0, /* U+00220d: SMALL CONTAINS AS MEMBER*/ + 0, /* U+00220e: END OF PROOF*/ + 0, /* U+00220f: N-ARY PRODUCT*/ + 0, /* U+002210: N-ARY COPRODUCT*/ + 0, /* U+002211: N-ARY SUMMATION*/ + 0, /* U+002212: MINUS SIGN*/ + 0, /* U+002213: MINUS-OR-PLUS SIGN*/ + 0, /* U+002214: DOT PLUS*/ + 0, /* U+002215: DIVISION SLASH*/ + 0, /* U+002216: SET MINUS*/ + 0, /* U+002217: ASTERISK OPERATOR*/ + 0, /* U+002218: RING OPERATOR*/ + 0, /* U+002219: BULLET OPERATOR*/ + 0, /* U+00221a: SQUARE ROOT*/ + 0, /* U+00221b: CUBE ROOT*/ + 0, /* U+00221c: FOURTH ROOT*/ + 0, /* U+00221d: PROPORTIONAL TO*/ + 0, /* U+00221e: INFINITY*/ + 0, /* U+00221f: RIGHT ANGLE*/ + 0, /* U+002220: ANGLE*/ + 0, /* U+002221: MEASURED ANGLE*/ + 0, /* U+002222: SPHERICAL ANGLE*/ + 0, /* U+002223: DIVIDES*/ + 0, /* U+002224: DOES NOT DIVIDE*/ + 0, /* U+002225: PARALLEL TO*/ + 0, /* U+002226: NOT PARALLEL TO*/ + 0, /* U+002227: LOGICAL AND*/ + 0, /* U+002228: LOGICAL OR*/ + 0, /* U+002229: INTERSECTION*/ + 0, /* U+00222a: UNION*/ + 0, /* U+00222b: INTEGRAL*/ + 0, /* U+00222c: DOUBLE INTEGRAL*/ + 0, /* U+00222d: TRIPLE INTEGRAL*/ + 0, /* U+00222e: CONTOUR INTEGRAL*/ + 0, /* U+00222f: SURFACE INTEGRAL*/ + 0, /* U+002230: VOLUME INTEGRAL*/ + 0, /* U+002231: CLOCKWISE INTEGRAL*/ + 0, /* U+002232: CLOCKWISE CONTOUR INTEGRAL*/ + 0, /* U+002233: ANTICLOCKWISE CONTOUR INTEGRAL*/ + 0, /* U+002234: THEREFORE*/ + 0, /* U+002235: BECAUSE*/ + 0, /* U+002236: RATIO*/ + 0, /* U+002237: PROPORTION*/ + 0, /* U+002238: DOT MINUS*/ + 0, /* U+002239: EXCESS*/ + 0, /* U+00223a: GEOMETRIC PROPORTION*/ + 0, /* U+00223b: HOMOTHETIC*/ + 0, /* U+00223c: TILDE OPERATOR*/ + 0, /* U+00223d: REVERSED TILDE*/ + 0, /* U+00223e: INVERTED LAZY S*/ + 0, /* U+00223f: SINE WAVE*/ + 0, /* U+002240: WREATH PRODUCT*/ + 0, /* U+002241: NOT TILDE*/ + 0, /* U+002242: MINUS TILDE*/ + 0, /* U+002243: ASYMPTOTICALLY EQUAL TO*/ + 0, /* U+002244: NOT ASYMPTOTICALLY EQUAL TO*/ + 0, /* U+002245: APPROXIMATELY EQUAL TO*/ + 0, /* U+002246: APPROXIMATELY BUT NOT ACTUALLY EQUAL TO*/ + 0, /* U+002247: NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO*/ + 0, /* U+002248: ALMOST EQUAL TO*/ + 0, /* U+002249: NOT ALMOST EQUAL TO*/ + 0, /* U+00224a: ALMOST EQUAL OR EQUAL TO*/ + 0, /* U+00224b: TRIPLE TILDE*/ + 0, /* U+00224c: ALL EQUAL TO*/ + 0, /* U+00224d: EQUIVALENT TO*/ + 0, /* U+00224e: GEOMETRICALLY EQUIVALENT TO*/ + 0, /* U+00224f: DIFFERENCE BETWEEN*/ + 0, /* U+002250: APPROACHES THE LIMIT*/ + 0, /* U+002251: GEOMETRICALLY EQUAL TO*/ + 0, /* U+002252: APPROXIMATELY EQUAL TO OR THE IMAGE OF*/ + 0, /* U+002253: IMAGE OF OR APPROXIMATELY EQUAL TO*/ + 0, /* U+002254: COLON EQUALS*/ + 0, /* U+002255: EQUALS COLON*/ + 0, /* U+002256: RING IN EQUAL TO*/ + 0, /* U+002257: RING EQUAL TO*/ + 0, /* U+002258: CORRESPONDS TO*/ + 0, /* U+002259: ESTIMATES*/ + 0, /* U+00225a: EQUIANGULAR TO*/ + 0, /* U+00225b: STAR EQUALS*/ + 0, /* U+00225c: DELTA EQUAL TO*/ + 0, /* U+00225d: EQUAL TO BY DEFINITION*/ + 0, /* U+00225e: MEASURED BY*/ + 0, /* U+00225f: QUESTIONED EQUAL TO*/ + 0, /* U+002260: NOT EQUAL TO*/ + 0, /* U+002261: IDENTICAL TO*/ + 0, /* U+002262: NOT IDENTICAL TO*/ + 0, /* U+002263: STRICTLY EQUIVALENT TO*/ + 0, /* U+002264: LESS-THAN OR EQUAL TO*/ + 0, /* U+002265: GREATER-THAN OR EQUAL TO*/ + 0, /* U+002266: LESS-THAN OVER EQUAL TO*/ + 0, /* U+002267: GREATER-THAN OVER EQUAL TO*/ + 0, /* U+002268: LESS-THAN BUT NOT EQUAL TO*/ + 0, /* U+002269: GREATER-THAN BUT NOT EQUAL TO*/ + 0, /* U+00226a: MUCH LESS-THAN*/ + 0, /* U+00226b: MUCH GREATER-THAN*/ + 0, /* U+00226c: BETWEEN*/ + 0, /* U+00226d: NOT EQUIVALENT TO*/ + 0, /* U+00226e: NOT LESS-THAN*/ + 0, /* U+00226f: NOT GREATER-THAN*/ + 0, /* U+002270: NEITHER LESS-THAN NOR EQUAL TO*/ + 0, /* U+002271: NEITHER GREATER-THAN NOR EQUAL TO*/ + 0, /* U+002272: LESS-THAN OR EQUIVALENT TO*/ + 0, /* U+002273: GREATER-THAN OR EQUIVALENT TO*/ + 0, /* U+002274: NEITHER LESS-THAN NOR EQUIVALENT TO*/ + 0, /* U+002275: NEITHER GREATER-THAN NOR EQUIVALENT TO*/ + 0, /* U+002276: LESS-THAN OR GREATER-THAN*/ + 0, /* U+002277: GREATER-THAN OR LESS-THAN*/ + 0, /* U+002278: NEITHER LESS-THAN NOR GREATER-THAN*/ + 0, /* U+002279: NEITHER GREATER-THAN NOR LESS-THAN*/ + 0, /* U+00227a: PRECEDES*/ + 0, /* U+00227b: SUCCEEDS*/ + 0, /* U+00227c: PRECEDES OR EQUAL TO*/ + 0, /* U+00227d: SUCCEEDS OR EQUAL TO*/ + 0, /* U+00227e: PRECEDES OR EQUIVALENT TO*/ + 0, /* U+00227f: SUCCEEDS OR EQUIVALENT TO*/ + 0, /* U+002280: DOES NOT PRECEDE*/ + 0, /* U+002281: DOES NOT SUCCEED*/ + 0, /* U+002282: SUBSET OF*/ + 0, /* U+002283: SUPERSET OF*/ + 0, /* U+002284: NOT A SUBSET OF*/ + 0, /* U+002285: NOT A SUPERSET OF*/ + 0, /* U+002286: SUBSET OF OR EQUAL TO*/ + 0, /* U+002287: SUPERSET OF OR EQUAL TO*/ + 0, /* U+002288: NEITHER A SUBSET OF NOR EQUAL TO*/ + 0, /* U+002289: NEITHER A SUPERSET OF NOR EQUAL TO*/ + 0, /* U+00228a: SUBSET OF WITH NOT EQUAL TO*/ + 0, /* U+00228b: SUPERSET OF WITH NOT EQUAL TO*/ + 0, /* U+00228c: MULTISET*/ + 0, /* U+00228d: MULTISET MULTIPLICATION*/ + 0, /* U+00228e: MULTISET UNION*/ + 0, /* U+00228f: SQUARE IMAGE OF*/ + 0, /* U+002290: SQUARE ORIGINAL OF*/ + 0, /* U+002291: SQUARE IMAGE OF OR EQUAL TO*/ + 0, /* U+002292: SQUARE ORIGINAL OF OR EQUAL TO*/ + 0, /* U+002293: SQUARE CAP*/ + 0, /* U+002294: SQUARE CUP*/ + 0, /* U+002295: CIRCLED PLUS*/ + 0, /* U+002296: CIRCLED MINUS*/ + 0, /* U+002297: CIRCLED TIMES*/ + 0, /* U+002298: CIRCLED DIVISION SLASH*/ + 0, /* U+002299: CIRCLED DOT OPERATOR*/ + 0, /* U+00229a: CIRCLED RING OPERATOR*/ + 0, /* U+00229b: CIRCLED ASTERISK OPERATOR*/ + 0, /* U+00229c: CIRCLED EQUALS*/ + 0, /* U+00229d: CIRCLED DASH*/ + 0, /* U+00229e: SQUARED PLUS*/ + 0, /* U+00229f: SQUARED MINUS*/ + 0, /* U+0022a0: SQUARED TIMES*/ + 0, /* U+0022a1: SQUARED DOT OPERATOR*/ + 0, /* U+0022a2: RIGHT TACK*/ + 0, /* U+0022a3: LEFT TACK*/ + 0, /* U+0022a4: DOWN TACK*/ + 0, /* U+0022a5: UP TACK*/ + 0, /* U+0022a6: ASSERTION*/ + 0, /* U+0022a7: MODELS*/ + 0, /* U+0022a8: TRUE*/ + 0, /* U+0022a9: FORCES*/ + 0, /* U+0022aa: TRIPLE VERTICAL BAR RIGHT TURNSTILE*/ + 0, /* U+0022ab: DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ + 0, /* U+0022ac: DOES NOT PROVE*/ + 0, /* U+0022ad: NOT TRUE*/ + 0, /* U+0022ae: DOES NOT FORCE*/ + 0, /* U+0022af: NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ + 0, /* U+0022b0: PRECEDES UNDER RELATION*/ + 0, /* U+0022b1: SUCCEEDS UNDER RELATION*/ + 0, /* U+0022b2: NORMAL SUBGROUP OF*/ + 0, /* U+0022b3: CONTAINS AS NORMAL SUBGROUP*/ + 0, /* U+0022b4: NORMAL SUBGROUP OF OR EQUAL TO*/ + 0, /* U+0022b5: CONTAINS AS NORMAL SUBGROUP OR EQUAL TO*/ + 0, /* U+0022b6: ORIGINAL OF*/ + 0, /* U+0022b7: IMAGE OF*/ + 0, /* U+0022b8: MULTIMAP*/ + 0, /* U+0022b9: HERMITIAN CONJUGATE MATRIX*/ + 0, /* U+0022ba: INTERCALATE*/ + 0, /* U+0022bb: XOR*/ + 0, /* U+0022bc: NAND*/ + 0, /* U+0022bd: NOR*/ + 0, /* U+0022be: RIGHT ANGLE WITH ARC*/ + 0, /* U+0022bf: RIGHT TRIANGLE*/ + 0, /* U+0022c0: N-ARY LOGICAL AND*/ + 0, /* U+0022c1: N-ARY LOGICAL OR*/ + 0, /* U+0022c2: N-ARY INTERSECTION*/ + 0, /* U+0022c3: N-ARY UNION*/ + 0, /* U+0022c4: DIAMOND OPERATOR*/ + 0, /* U+0022c5: DOT OPERATOR*/ + 0, /* U+0022c6: STAR OPERATOR*/ + 0, /* U+0022c7: DIVISION TIMES*/ + 0, /* U+0022c8: BOWTIE*/ + 0, /* U+0022c9: LEFT NORMAL FACTOR SEMIDIRECT PRODUCT*/ + 0, /* U+0022ca: RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT*/ + 0, /* U+0022cb: LEFT SEMIDIRECT PRODUCT*/ + 0, /* U+0022cc: RIGHT SEMIDIRECT PRODUCT*/ + 0, /* U+0022cd: REVERSED TILDE EQUALS*/ + 0, /* U+0022ce: CURLY LOGICAL OR*/ + 0, /* U+0022cf: CURLY LOGICAL AND*/ + 0, /* U+0022d0: DOUBLE SUBSET*/ + 0, /* U+0022d1: DOUBLE SUPERSET*/ + 0, /* U+0022d2: DOUBLE INTERSECTION*/ + 0, /* U+0022d3: DOUBLE UNION*/ + 0, /* U+0022d4: PITCHFORK*/ + 0, /* U+0022d5: EQUAL AND PARALLEL TO*/ + 0, /* U+0022d6: LESS-THAN WITH DOT*/ + 0, /* U+0022d7: GREATER-THAN WITH DOT*/ + 0, /* U+0022d8: VERY MUCH LESS-THAN*/ + 0, /* U+0022d9: VERY MUCH GREATER-THAN*/ + 0, /* U+0022da: LESS-THAN EQUAL TO OR GREATER-THAN*/ + 0, /* U+0022db: GREATER-THAN EQUAL TO OR LESS-THAN*/ + 0, /* U+0022dc: EQUAL TO OR LESS-THAN*/ + 0, /* U+0022dd: EQUAL TO OR GREATER-THAN*/ + 0, /* U+0022de: EQUAL TO OR PRECEDES*/ + 0, /* U+0022df: EQUAL TO OR SUCCEEDS*/ + 0, /* U+0022e0: DOES NOT PRECEDE OR EQUAL*/ + 0, /* U+0022e1: DOES NOT SUCCEED OR EQUAL*/ + 0, /* U+0022e2: NOT SQUARE IMAGE OF OR EQUAL TO*/ + 0, /* U+0022e3: NOT SQUARE ORIGINAL OF OR EQUAL TO*/ + 0, /* U+0022e4: SQUARE IMAGE OF OR NOT EQUAL TO*/ + 0, /* U+0022e5: SQUARE ORIGINAL OF OR NOT EQUAL TO*/ + 0, /* U+0022e6: LESS-THAN BUT NOT EQUIVALENT TO*/ + 0, /* U+0022e7: GREATER-THAN BUT NOT EQUIVALENT TO*/ + 0, /* U+0022e8: PRECEDES BUT NOT EQUIVALENT TO*/ + 0, /* U+0022e9: SUCCEEDS BUT NOT EQUIVALENT TO*/ + 0, /* U+0022ea: NOT NORMAL SUBGROUP OF*/ + 0, /* U+0022eb: DOES NOT CONTAIN AS NORMAL SUBGROUP*/ + 0, /* U+0022ec: NOT NORMAL SUBGROUP OF OR EQUAL TO*/ + 0, /* U+0022ed: DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL*/ + 0, /* U+0022ee: VERTICAL ELLIPSIS*/ + 0, /* U+0022ef: MIDLINE HORIZONTAL ELLIPSIS*/ + 0, /* U+0022f0: UP RIGHT DIAGONAL ELLIPSIS*/ + 0, /* U+0022f1: DOWN RIGHT DIAGONAL ELLIPSIS*/ + 0, /* U+0022f2: ELEMENT OF WITH LONG HORIZONTAL STROKE*/ + 0, /* U+0022f3: ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0, /* U+0022f4: SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0, /* U+0022f5: ELEMENT OF WITH DOT ABOVE*/ + 0, /* U+0022f6: ELEMENT OF WITH OVERBAR*/ + 0, /* U+0022f7: SMALL ELEMENT OF WITH OVERBAR*/ + 0, /* U+0022f8: ELEMENT OF WITH UNDERBAR*/ + 0, /* U+0022f9: ELEMENT OF WITH TWO HORIZONTAL STROKES*/ + 0, /* U+0022fa: CONTAINS WITH LONG HORIZONTAL STROKE*/ + 0, /* U+0022fb: CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0, /* U+0022fc: SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0, /* U+0022fd: CONTAINS WITH OVERBAR*/ + 0, /* U+0022fe: SMALL CONTAINS WITH OVERBAR*/ + 0, /* U+0022ff: Z NOTATION BAG MEMBERSHIP*/ + 0, /* U+002300: DIAMETER SIGN*/ + 0, /* U+002301: ELECTRIC ARROW*/ + 0, /* U+002302: HOUSE*/ + 0, /* U+002303: UP ARROWHEAD*/ + 0, /* U+002304: DOWN ARROWHEAD*/ + 0, /* U+002305: PROJECTIVE*/ + 0, /* U+002306: PERSPECTIVE*/ + 0, /* U+002307: WAVY LINE*/ + 0, /* U+002308: LEFT CEILING*/ + 0, /* U+002309: RIGHT CEILING*/ + 0, /* U+00230a: LEFT FLOOR*/ + 0, /* U+00230b: RIGHT FLOOR*/ + 0, /* U+00230c: BOTTOM RIGHT CROP*/ + 0, /* U+00230d: BOTTOM LEFT CROP*/ + 0, /* U+00230e: TOP RIGHT CROP*/ + 0, /* U+00230f: TOP LEFT CROP*/ + 0, /* U+002310: REVERSED NOT SIGN*/ + 0, /* U+002311: SQUARE LOZENGE*/ + 0, /* U+002312: ARC*/ + 0, /* U+002313: SEGMENT*/ + 0, /* U+002314: SECTOR*/ + 0, /* U+002315: TELEPHONE RECORDER*/ + 0, /* U+002316: POSITION INDICATOR*/ + 0, /* U+002317: VIEWDATA SQUARE*/ + 0, /* U+002318: PLACE OF INTEREST SIGN*/ + 0, /* U+002319: TURNED NOT SIGN*/ + 0, /* U+00231a: WATCH*/ + 0, /* U+00231b: HOURGLASS*/ + 0, /* U+00231c: TOP LEFT CORNER*/ + 0, /* U+00231d: TOP RIGHT CORNER*/ + 0, /* U+00231e: BOTTOM LEFT CORNER*/ + 0, /* U+00231f: BOTTOM RIGHT CORNER*/ + 0, /* U+002320: TOP HALF INTEGRAL*/ + 0, /* U+002321: BOTTOM HALF INTEGRAL*/ + 0, /* U+002322: FROWN*/ + 0, /* U+002323: SMILE*/ + 0, /* U+002324: UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS*/ + 0, /* U+002325: OPTION KEY*/ + 0, /* U+002326: ERASE TO THE RIGHT*/ + 0, /* U+002327: X IN A RECTANGLE BOX*/ + 0, /* U+002328: KEYBOARD*/ + 0, /* U+002329: LEFT-POINTING ANGLE BRACKET*/ + 0, /* U+00232a: RIGHT-POINTING ANGLE BRACKET*/ + 0, /* U+00232b: ERASE TO THE LEFT*/ + 0, /* U+00232c: BENZENE RING*/ + 0, /* U+00232d: CYLINDRICITY*/ + 0, /* U+00232e: ALL AROUND-PROFILE*/ + 0, /* U+00232f: SYMMETRY*/ + 0, /* U+002330: TOTAL RUNOUT*/ + 0, /* U+002331: DIMENSION ORIGIN*/ + 0, /* U+002332: CONICAL TAPER*/ + 0, /* U+002333: SLOPE*/ + 0, /* U+002334: COUNTERBORE*/ + 0, /* U+002335: COUNTERSINK*/ + 0, /* U+002336: APL FUNCTIONAL SYMBOL I-BEAM*/ + 0, /* U+002337: APL FUNCTIONAL SYMBOL SQUISH QUAD*/ + 0, /* U+002338: APL FUNCTIONAL SYMBOL QUAD EQUAL*/ + 0, /* U+002339: APL FUNCTIONAL SYMBOL QUAD DIVIDE*/ + 0, /* U+00233a: APL FUNCTIONAL SYMBOL QUAD DIAMOND*/ + 0, /* U+00233b: APL FUNCTIONAL SYMBOL QUAD JOT*/ + 0, /* U+00233c: APL FUNCTIONAL SYMBOL QUAD CIRCLE*/ + 0, /* U+00233d: APL FUNCTIONAL SYMBOL CIRCLE STILE*/ + 0, /* U+00233e: APL FUNCTIONAL SYMBOL CIRCLE JOT*/ + 0, /* U+00233f: APL FUNCTIONAL SYMBOL SLASH BAR*/ + 0, /* U+002340: APL FUNCTIONAL SYMBOL BACKSLASH BAR*/ + 0, /* U+002341: APL FUNCTIONAL SYMBOL QUAD SLASH*/ + 0, /* U+002342: APL FUNCTIONAL SYMBOL QUAD BACKSLASH*/ + 0, /* U+002343: APL FUNCTIONAL SYMBOL QUAD LESS-THAN*/ + 0, /* U+002344: APL FUNCTIONAL SYMBOL QUAD GREATER-THAN*/ + 0, /* U+002345: APL FUNCTIONAL SYMBOL LEFTWARDS VANE*/ + 0, /* U+002346: APL FUNCTIONAL SYMBOL RIGHTWARDS VANE*/ + 0, /* U+002347: APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW*/ + 0, /* U+002348: APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW*/ + 0, /* U+002349: APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH*/ + 0, /* U+00234a: APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR*/ + 0, /* U+00234b: APL FUNCTIONAL SYMBOL DELTA STILE*/ + 0, /* U+00234c: APL FUNCTIONAL SYMBOL QUAD DOWN CARET*/ + 0, /* U+00234d: APL FUNCTIONAL SYMBOL QUAD DELTA*/ + 0, /* U+00234e: APL FUNCTIONAL SYMBOL DOWN TACK JOT*/ + 0, /* U+00234f: APL FUNCTIONAL SYMBOL UPWARDS VANE*/ + 0, /* U+002350: APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW*/ + 0, /* U+002351: APL FUNCTIONAL SYMBOL UP TACK OVERBAR*/ + 0, /* U+002352: APL FUNCTIONAL SYMBOL DEL STILE*/ + 0, /* U+002353: APL FUNCTIONAL SYMBOL QUAD UP CARET*/ + 0, /* U+002354: APL FUNCTIONAL SYMBOL QUAD DEL*/ + 0, /* U+002355: APL FUNCTIONAL SYMBOL UP TACK JOT*/ + 0, /* U+002356: APL FUNCTIONAL SYMBOL DOWNWARDS VANE*/ + 0, /* U+002357: APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW*/ + 0, /* U+002358: APL FUNCTIONAL SYMBOL QUOTE UNDERBAR*/ + 0, /* U+002359: APL FUNCTIONAL SYMBOL DELTA UNDERBAR*/ + 0, /* U+00235a: APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR*/ + 0, /* U+00235b: APL FUNCTIONAL SYMBOL JOT UNDERBAR*/ + 0, /* U+00235c: APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR*/ + 0, /* U+00235d: APL FUNCTIONAL SYMBOL UP SHOE JOT*/ + 0, /* U+00235e: APL FUNCTIONAL SYMBOL QUOTE QUAD*/ + 0, /* U+00235f: APL FUNCTIONAL SYMBOL CIRCLE STAR*/ + 0, /* U+002360: APL FUNCTIONAL SYMBOL QUAD COLON*/ + 0, /* U+002361: APL FUNCTIONAL SYMBOL UP TACK DIAERESIS*/ + 0, /* U+002362: APL FUNCTIONAL SYMBOL DEL DIAERESIS*/ + 0, /* U+002363: APL FUNCTIONAL SYMBOL STAR DIAERESIS*/ + 0, /* U+002364: APL FUNCTIONAL SYMBOL JOT DIAERESIS*/ + 0, /* U+002365: APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS*/ + 0, /* U+002366: APL FUNCTIONAL SYMBOL DOWN SHOE STILE*/ + 0, /* U+002367: APL FUNCTIONAL SYMBOL LEFT SHOE STILE*/ + 0, /* U+002368: APL FUNCTIONAL SYMBOL TILDE DIAERESIS*/ + 0, /* U+002369: APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS*/ + 0, /* U+00236a: APL FUNCTIONAL SYMBOL COMMA BAR*/ + 0, /* U+00236b: APL FUNCTIONAL SYMBOL DEL TILDE*/ + 0, /* U+00236c: APL FUNCTIONAL SYMBOL ZILDE*/ + 0, /* U+00236d: APL FUNCTIONAL SYMBOL STILE TILDE*/ + 0, /* U+00236e: APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR*/ + 0, /* U+00236f: APL FUNCTIONAL SYMBOL QUAD NOT EQUAL*/ + 0, /* U+002370: APL FUNCTIONAL SYMBOL QUAD QUESTION*/ + 0, /* U+002371: APL FUNCTIONAL SYMBOL DOWN CARET TILDE*/ + 0, /* U+002372: APL FUNCTIONAL SYMBOL UP CARET TILDE*/ + 0, /* U+002373: APL FUNCTIONAL SYMBOL IOTA*/ + 0, /* U+002374: APL FUNCTIONAL SYMBOL RHO*/ + 0, /* U+002375: APL FUNCTIONAL SYMBOL OMEGA*/ + 0, /* U+002376: APL FUNCTIONAL SYMBOL ALPHA UNDERBAR*/ + 0, /* U+002377: APL FUNCTIONAL SYMBOL EPSILON UNDERBAR*/ + 0, /* U+002378: APL FUNCTIONAL SYMBOL IOTA UNDERBAR*/ + 0, /* U+002379: APL FUNCTIONAL SYMBOL OMEGA UNDERBAR*/ + 0, /* U+00237a: APL FUNCTIONAL SYMBOL ALPHA*/ + 0, /* U+00237b: NOT CHECK MARK*/ + 0, /* U+00237c: RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW*/ + 0, /* U+00237d: SHOULDERED OPEN BOX*/ + 0, /* U+00237e: BELL SYMBOL*/ + 0, /* U+00237f: VERTICAL LINE WITH MIDDLE DOT*/ + 0, /* U+002380: INSERTION SYMBOL*/ + 0, /* U+002381: CONTINUOUS UNDERLINE SYMBOL*/ + 0, /* U+002382: DISCONTINUOUS UNDERLINE SYMBOL*/ + 0, /* U+002383: EMPHASIS SYMBOL*/ + 0, /* U+002384: COMPOSITION SYMBOL*/ + 0, /* U+002385: WHITE SQUARE WITH CENTRE VERTICAL LINE*/ + 0, /* U+002386: ENTER SYMBOL*/ + 0, /* U+002387: ALTERNATIVE KEY SYMBOL*/ + 0, /* U+002388: HELM SYMBOL*/ + 0, /* U+002389: CIRCLED HORIZONTAL BAR WITH NOTCH*/ + 0, /* U+00238a: CIRCLED TRIANGLE DOWN*/ + 0, /* U+00238b: BROKEN CIRCLE WITH NORTHWEST ARROW*/ + 0, /* U+00238c: UNDO SYMBOL*/ + 0, /* U+00238d: MONOSTABLE SYMBOL*/ + 0, /* U+00238e: HYSTERESIS SYMBOL*/ + 0, /* U+00238f: OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL*/ + 0, /* U+002390: OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL*/ + 0, /* U+002391: PASSIVE-PULL-DOWN-OUTPUT SYMBOL*/ + 0, /* U+002392: PASSIVE-PULL-UP-OUTPUT SYMBOL*/ + 0, /* U+002393: DIRECT CURRENT SYMBOL FORM TWO*/ + 0, /* U+002394: SOFTWARE-FUNCTION SYMBOL*/ + 0, /* U+002395: APL FUNCTIONAL SYMBOL QUAD*/ + 0, /* U+002396: DECIMAL SEPARATOR KEY SYMBOL*/ + 0, /* U+002397: PREVIOUS PAGE*/ + 0, /* U+002398: NEXT PAGE*/ + 0, /* U+002399: PRINT SCREEN SYMBOL*/ + 0, /* U+00239a: CLEAR SCREEN SYMBOL*/ + 0, /* U+00239b: LEFT PARENTHESIS UPPER HOOK*/ + 0, /* U+00239c: LEFT PARENTHESIS EXTENSION*/ + 0, /* U+00239d: LEFT PARENTHESIS LOWER HOOK*/ + 0, /* U+00239e: RIGHT PARENTHESIS UPPER HOOK*/ + 0, /* U+00239f: RIGHT PARENTHESIS EXTENSION*/ + 0, /* U+0023a0: RIGHT PARENTHESIS LOWER HOOK*/ + 0, /* U+0023a1: LEFT SQUARE BRACKET UPPER CORNER*/ + 0, /* U+0023a2: LEFT SQUARE BRACKET EXTENSION*/ + 0, /* U+0023a3: LEFT SQUARE BRACKET LOWER CORNER*/ + 0, /* U+0023a4: RIGHT SQUARE BRACKET UPPER CORNER*/ + 0, /* U+0023a5: RIGHT SQUARE BRACKET EXTENSION*/ + 0, /* U+0023a6: RIGHT SQUARE BRACKET LOWER CORNER*/ + 0, /* U+0023a7: LEFT CURLY BRACKET UPPER HOOK*/ + 0, /* U+0023a8: LEFT CURLY BRACKET MIDDLE PIECE*/ + 0, /* U+0023a9: LEFT CURLY BRACKET LOWER HOOK*/ + 0, /* U+0023aa: CURLY BRACKET EXTENSION*/ + 0, /* U+0023ab: RIGHT CURLY BRACKET UPPER HOOK*/ + 0, /* U+0023ac: RIGHT CURLY BRACKET MIDDLE PIECE*/ + 0, /* U+0023ad: RIGHT CURLY BRACKET LOWER HOOK*/ + 0, /* U+0023ae: INTEGRAL EXTENSION*/ + 0, /* U+0023af: HORIZONTAL LINE EXTENSION*/ + 0, /* U+0023b0: UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION*/ + 0, /* U+0023b1: UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION*/ + 0, /* U+0023b2: SUMMATION TOP*/ + 0, /* U+0023b3: SUMMATION BOTTOM*/ + 0, /* U+0023b4: TOP SQUARE BRACKET*/ + 0, /* U+0023b5: BOTTOM SQUARE BRACKET*/ + 0, /* U+0023b6: BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET*/ + 0, /* U+0023b7: RADICAL SYMBOL BOTTOM*/ + 0, /* U+0023b8: LEFT VERTICAL BOX LINE*/ + 0, /* U+0023b9: RIGHT VERTICAL BOX LINE*/ + 0, /* U+0023ba: HORIZONTAL SCAN LINE-1*/ + 0, /* U+0023bb: HORIZONTAL SCAN LINE-3*/ + 0, /* U+0023bc: HORIZONTAL SCAN LINE-7*/ + 0, /* U+0023bd: HORIZONTAL SCAN LINE-9*/ + 0, /* U+0023be: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT*/ + 0, /* U+0023bf: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT*/ + 0, /* U+0023c0: DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE*/ + 0, /* U+0023c1: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE*/ + 0, /* U+0023c2: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE*/ + 0, /* U+0023c3: DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE*/ + 0, /* U+0023c4: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE*/ + 0, /* U+0023c5: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE*/ + 0, /* U+0023c6: DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE*/ + 0, /* U+0023c7: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE*/ + 0, /* U+0023c8: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE*/ + 0, /* U+0023c9: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL*/ + 0, /* U+0023ca: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL*/ + 0, /* U+0023cb: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT*/ + 0, /* U+0023cc: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT*/ + 0, /* U+0023cd: SQUARE FOOT*/ + 0, /* U+0023ce: RETURN SYMBOL*/ + 0, /* U+0023cf: EJECT SYMBOL*/ + 0, /* U+0023d0: VERTICAL LINE EXTENSION*/ + 0, /* U+0023d1: METRICAL BREVE*/ + 0, /* U+0023d2: METRICAL LONG OVER SHORT*/ + 0, /* U+0023d3: METRICAL SHORT OVER LONG*/ + 0, /* U+0023d4: METRICAL LONG OVER TWO SHORTS*/ + 0, /* U+0023d5: METRICAL TWO SHORTS OVER LONG*/ + 0, /* U+0023d6: METRICAL TWO SHORTS JOINED*/ + 0, /* U+0023d7: METRICAL TRISEME*/ + 0, /* U+0023d8: METRICAL TETRASEME*/ + 0, /* U+0023d9: METRICAL PENTASEME*/ + 0, /* U+0023da: EARTH GROUND*/ + 0, /* U+0023db: FUSE*/ + 0, /* U+0023dc: TOP PARENTHESIS*/ + 0, /* U+0023dd: BOTTOM PARENTHESIS*/ + 0, /* U+0023de: TOP CURLY BRACKET*/ + 0, /* U+0023df: BOTTOM CURLY BRACKET*/ + 0, /* U+0023e0: TOP TORTOISE SHELL BRACKET*/ + 0, /* U+0023e1: BOTTOM TORTOISE SHELL BRACKET*/ + 0, /* U+0023e2: WHITE TRAPEZIUM*/ + 0, /* U+0023e3: BENZENE RING WITH CIRCLE*/ + 0, /* U+0023e4: STRAIGHTNESS*/ + 0, /* U+0023e5: FLATNESS*/ + 0, /* U+0023e6: AC CURRENT*/ + 0, /* U+0023e7: ELECTRICAL INTERSECTION*/ + 0, /* U+0023e8: DECIMAL EXPONENT SYMBOL*/ + 0, /* U+0023e9: BLACK RIGHT-POINTING DOUBLE TRIANGLE*/ + 0, /* U+0023ea: BLACK LEFT-POINTING DOUBLE TRIANGLE*/ + 0, /* U+0023eb: BLACK UP-POINTING DOUBLE TRIANGLE*/ + 0, /* U+0023ec: BLACK DOWN-POINTING DOUBLE TRIANGLE*/ + 0, /* U+0023ed: BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR*/ + 0, /* U+0023ee: BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR*/ + 0, /* U+0023ef: BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR*/ + 0, /* U+0023f0: ALARM CLOCK*/ + 0, /* U+0023f1: STOPWATCH*/ + 0, /* U+0023f2: TIMER CLOCK*/ + 0, /* U+0023f3: HOURGLASS WITH FLOWING SAND*/ + 0, /* U+0023f4: */ + 0, /* U+0023f5: */ + 0, /* U+0023f6: */ + 0, /* U+0023f7: */ + 0, /* U+0023f8: */ + 0, /* U+0023f9: */ + 0, /* U+0023fa: */ + 0, /* U+0023fb: */ + 0, /* U+0023fc: */ + 0, /* U+0023fd: */ + 0, /* U+0023fe: */ + 0, /* U+0023ff: */ + 0, /* U+002400: SYMBOL FOR NULL*/ + 0, /* U+002401: SYMBOL FOR START OF HEADING*/ + 0, /* U+002402: SYMBOL FOR START OF TEXT*/ + 0, /* U+002403: SYMBOL FOR END OF TEXT*/ + 0, /* U+002404: SYMBOL FOR END OF TRANSMISSION*/ + 0, /* U+002405: SYMBOL FOR ENQUIRY*/ + 0, /* U+002406: SYMBOL FOR ACKNOWLEDGE*/ + 0, /* U+002407: SYMBOL FOR BELL*/ + 0, /* U+002408: SYMBOL FOR BACKSPACE*/ + 0, /* U+002409: SYMBOL FOR HORIZONTAL TABULATION*/ + 0, /* U+00240a: SYMBOL FOR LINE FEED*/ + 0, /* U+00240b: SYMBOL FOR VERTICAL TABULATION*/ + 0, /* U+00240c: SYMBOL FOR FORM FEED*/ + 0, /* U+00240d: SYMBOL FOR CARRIAGE RETURN*/ + 0, /* U+00240e: SYMBOL FOR SHIFT OUT*/ + 0, /* U+00240f: SYMBOL FOR SHIFT IN*/ + 0, /* U+002410: SYMBOL FOR DATA LINK ESCAPE*/ + 0, /* U+002411: SYMBOL FOR DEVICE CONTROL ONE*/ + 0, /* U+002412: SYMBOL FOR DEVICE CONTROL TWO*/ + 0, /* U+002413: SYMBOL FOR DEVICE CONTROL THREE*/ + 0, /* U+002414: SYMBOL FOR DEVICE CONTROL FOUR*/ + 0, /* U+002415: SYMBOL FOR NEGATIVE ACKNOWLEDGE*/ + 0, /* U+002416: SYMBOL FOR SYNCHRONOUS IDLE*/ + 0, /* U+002417: SYMBOL FOR END OF TRANSMISSION BLOCK*/ + 0, /* U+002418: SYMBOL FOR CANCEL*/ + 0, /* U+002419: SYMBOL FOR END OF MEDIUM*/ + 0, /* U+00241a: SYMBOL FOR SUBSTITUTE*/ + 0, /* U+00241b: SYMBOL FOR ESCAPE*/ + 0, /* U+00241c: SYMBOL FOR FILE SEPARATOR*/ + 0, /* U+00241d: SYMBOL FOR GROUP SEPARATOR*/ + 0, /* U+00241e: SYMBOL FOR RECORD SEPARATOR*/ + 0, /* U+00241f: SYMBOL FOR UNIT SEPARATOR*/ + 0, /* U+002420: SYMBOL FOR SPACE*/ + 0, /* U+002421: SYMBOL FOR DELETE*/ + 0, /* U+002422: BLANK SYMBOL*/ + 0, /* U+002423: OPEN BOX*/ + 0, /* U+002424: SYMBOL FOR NEWLINE*/ + 0, /* U+002425: SYMBOL FOR DELETE FORM TWO*/ + 0, /* U+002426: SYMBOL FOR SUBSTITUTE FORM TWO*/ + 0, /* U+002427: */ + 0, /* U+002428: */ + 0, /* U+002429: */ + 0, /* U+00242a: */ + 0, /* U+00242b: */ + 0, /* U+00242c: */ + 0, /* U+00242d: */ + 0, /* U+00242e: */ + 0, /* U+00242f: */ + 0, /* U+002430: */ + 0, /* U+002431: */ + 0, /* U+002432: */ + 0, /* U+002433: */ + 0, /* U+002434: */ + 0, /* U+002435: */ + 0, /* U+002436: */ + 0, /* U+002437: */ + 0, /* U+002438: */ + 0, /* U+002439: */ + 0, /* U+00243a: */ + 0, /* U+00243b: */ + 0, /* U+00243c: */ + 0, /* U+00243d: */ + 0, /* U+00243e: */ + 0, /* U+00243f: */ + 0, /* U+002440: OCR HOOK*/ + 0, /* U+002441: OCR CHAIR*/ + 0, /* U+002442: OCR FORK*/ + 0, /* U+002443: OCR INVERTED FORK*/ + 0, /* U+002444: OCR BELT BUCKLE*/ + 0, /* U+002445: OCR BOW TIE*/ + 0, /* U+002446: OCR BRANCH BANK IDENTIFICATION*/ + 0, /* U+002447: OCR AMOUNT OF CHECK*/ + 0, /* U+002448: OCR DASH*/ + 0, /* U+002449: OCR CUSTOMER ACCOUNT NUMBER*/ + 0, /* U+00244a: OCR DOUBLE BACKSLASH*/ + 0, /* U+00244b: */ + 0, /* U+00244c: */ + 0, /* U+00244d: */ + 0, /* U+00244e: */ + 0, /* U+00244f: */ + 0, /* U+002450: */ + 0, /* U+002451: */ + 0, /* U+002452: */ + 0, /* U+002453: */ + 0, /* U+002454: */ + 0, /* U+002455: */ + 0, /* U+002456: */ + 0, /* U+002457: */ + 0, /* U+002458: */ + 0, /* U+002459: */ + 0, /* U+00245a: */ + 0, /* U+00245b: */ + 0, /* U+00245c: */ + 0, /* U+00245d: */ + 0, /* U+00245e: */ + 0, /* U+00245f: */ + 0, /* U+002460: CIRCLED DIGIT ONE*/ + 0, /* U+002461: CIRCLED DIGIT TWO*/ + 0, /* U+002462: CIRCLED DIGIT THREE*/ + 0, /* U+002463: CIRCLED DIGIT FOUR*/ + 0, /* U+002464: CIRCLED DIGIT FIVE*/ + 0, /* U+002465: CIRCLED DIGIT SIX*/ + 0, /* U+002466: CIRCLED DIGIT SEVEN*/ + 0, /* U+002467: CIRCLED DIGIT EIGHT*/ + 0, /* U+002468: CIRCLED DIGIT NINE*/ + 0, /* U+002469: CIRCLED NUMBER TEN*/ + 0, /* U+00246a: CIRCLED NUMBER ELEVEN*/ + 0, /* U+00246b: CIRCLED NUMBER TWELVE*/ + 0, /* U+00246c: CIRCLED NUMBER THIRTEEN*/ + 0, /* U+00246d: CIRCLED NUMBER FOURTEEN*/ + 0, /* U+00246e: CIRCLED NUMBER FIFTEEN*/ + 0, /* U+00246f: CIRCLED NUMBER SIXTEEN*/ + 0, /* U+002470: CIRCLED NUMBER SEVENTEEN*/ + 0, /* U+002471: CIRCLED NUMBER EIGHTEEN*/ + 0, /* U+002472: CIRCLED NUMBER NINETEEN*/ + 0, /* U+002473: CIRCLED NUMBER TWENTY*/ + 0, /* U+002474: PARENTHESIZED DIGIT ONE*/ + 0, /* U+002475: PARENTHESIZED DIGIT TWO*/ + 0, /* U+002476: PARENTHESIZED DIGIT THREE*/ + 0, /* U+002477: PARENTHESIZED DIGIT FOUR*/ + 0, /* U+002478: PARENTHESIZED DIGIT FIVE*/ + 0, /* U+002479: PARENTHESIZED DIGIT SIX*/ + 0, /* U+00247a: PARENTHESIZED DIGIT SEVEN*/ + 0, /* U+00247b: PARENTHESIZED DIGIT EIGHT*/ + 0, /* U+00247c: PARENTHESIZED DIGIT NINE*/ + 0, /* U+00247d: PARENTHESIZED NUMBER TEN*/ + 0, /* U+00247e: PARENTHESIZED NUMBER ELEVEN*/ + 0, /* U+00247f: PARENTHESIZED NUMBER TWELVE*/ + 0, /* U+002480: PARENTHESIZED NUMBER THIRTEEN*/ + 0, /* U+002481: PARENTHESIZED NUMBER FOURTEEN*/ + 0, /* U+002482: PARENTHESIZED NUMBER FIFTEEN*/ + 0, /* U+002483: PARENTHESIZED NUMBER SIXTEEN*/ + 0, /* U+002484: PARENTHESIZED NUMBER SEVENTEEN*/ + 0, /* U+002485: PARENTHESIZED NUMBER EIGHTEEN*/ + 0, /* U+002486: PARENTHESIZED NUMBER NINETEEN*/ + 0, /* U+002487: PARENTHESIZED NUMBER TWENTY*/ + 0, /* U+002488: DIGIT ONE FULL STOP*/ + 0, /* U+002489: DIGIT TWO FULL STOP*/ + 0, /* U+00248a: DIGIT THREE FULL STOP*/ + 0, /* U+00248b: DIGIT FOUR FULL STOP*/ + 0, /* U+00248c: DIGIT FIVE FULL STOP*/ + 0, /* U+00248d: DIGIT SIX FULL STOP*/ + 0, /* U+00248e: DIGIT SEVEN FULL STOP*/ + 0, /* U+00248f: DIGIT EIGHT FULL STOP*/ + 0, /* U+002490: DIGIT NINE FULL STOP*/ + 0, /* U+002491: NUMBER TEN FULL STOP*/ + 0, /* U+002492: NUMBER ELEVEN FULL STOP*/ + 0, /* U+002493: NUMBER TWELVE FULL STOP*/ + 0, /* U+002494: NUMBER THIRTEEN FULL STOP*/ + 0, /* U+002495: NUMBER FOURTEEN FULL STOP*/ + 0, /* U+002496: NUMBER FIFTEEN FULL STOP*/ + 0, /* U+002497: NUMBER SIXTEEN FULL STOP*/ + 0, /* U+002498: NUMBER SEVENTEEN FULL STOP*/ + 0, /* U+002499: NUMBER EIGHTEEN FULL STOP*/ + 0, /* U+00249a: NUMBER NINETEEN FULL STOP*/ + 0, /* U+00249b: NUMBER TWENTY FULL STOP*/ + 0, /* U+00249c: PARENTHESIZED LATIN SMALL LETTER A*/ + 0, /* U+00249d: PARENTHESIZED LATIN SMALL LETTER B*/ + 0, /* U+00249e: PARENTHESIZED LATIN SMALL LETTER C*/ + 0, /* U+00249f: PARENTHESIZED LATIN SMALL LETTER D*/ + 0, /* U+0024a0: PARENTHESIZED LATIN SMALL LETTER E*/ + 0, /* U+0024a1: PARENTHESIZED LATIN SMALL LETTER F*/ + 0, /* U+0024a2: PARENTHESIZED LATIN SMALL LETTER G*/ + 0, /* U+0024a3: PARENTHESIZED LATIN SMALL LETTER H*/ + 0, /* U+0024a4: PARENTHESIZED LATIN SMALL LETTER I*/ + 0, /* U+0024a5: PARENTHESIZED LATIN SMALL LETTER J*/ + 0, /* U+0024a6: PARENTHESIZED LATIN SMALL LETTER K*/ + 0, /* U+0024a7: PARENTHESIZED LATIN SMALL LETTER L*/ + 0, /* U+0024a8: PARENTHESIZED LATIN SMALL LETTER M*/ + 0, /* U+0024a9: PARENTHESIZED LATIN SMALL LETTER N*/ + 0, /* U+0024aa: PARENTHESIZED LATIN SMALL LETTER O*/ + 0, /* U+0024ab: PARENTHESIZED LATIN SMALL LETTER P*/ + 0, /* U+0024ac: PARENTHESIZED LATIN SMALL LETTER Q*/ + 0, /* U+0024ad: PARENTHESIZED LATIN SMALL LETTER R*/ + 0, /* U+0024ae: PARENTHESIZED LATIN SMALL LETTER S*/ + 0, /* U+0024af: PARENTHESIZED LATIN SMALL LETTER T*/ + 0, /* U+0024b0: PARENTHESIZED LATIN SMALL LETTER U*/ + 0, /* U+0024b1: PARENTHESIZED LATIN SMALL LETTER V*/ + 0, /* U+0024b2: PARENTHESIZED LATIN SMALL LETTER W*/ + 0, /* U+0024b3: PARENTHESIZED LATIN SMALL LETTER X*/ + 0, /* U+0024b4: PARENTHESIZED LATIN SMALL LETTER Y*/ + 0, /* U+0024b5: PARENTHESIZED LATIN SMALL LETTER Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024b6: CIRCLED LATIN CAPITAL LETTER A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024b7: CIRCLED LATIN CAPITAL LETTER B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024b8: CIRCLED LATIN CAPITAL LETTER C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024b9: CIRCLED LATIN CAPITAL LETTER D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024ba: CIRCLED LATIN CAPITAL LETTER E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024bb: CIRCLED LATIN CAPITAL LETTER F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024bc: CIRCLED LATIN CAPITAL LETTER G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024bd: CIRCLED LATIN CAPITAL LETTER H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024be: CIRCLED LATIN CAPITAL LETTER I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024bf: CIRCLED LATIN CAPITAL LETTER J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c0: CIRCLED LATIN CAPITAL LETTER K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c1: CIRCLED LATIN CAPITAL LETTER L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c2: CIRCLED LATIN CAPITAL LETTER M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c3: CIRCLED LATIN CAPITAL LETTER N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c4: CIRCLED LATIN CAPITAL LETTER O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c5: CIRCLED LATIN CAPITAL LETTER P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c6: CIRCLED LATIN CAPITAL LETTER Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c7: CIRCLED LATIN CAPITAL LETTER R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c8: CIRCLED LATIN CAPITAL LETTER S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024c9: CIRCLED LATIN CAPITAL LETTER T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024ca: CIRCLED LATIN CAPITAL LETTER U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024cb: CIRCLED LATIN CAPITAL LETTER V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024cc: CIRCLED LATIN CAPITAL LETTER W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024cd: CIRCLED LATIN CAPITAL LETTER X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024ce: CIRCLED LATIN CAPITAL LETTER Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+0024cf: CIRCLED LATIN CAPITAL LETTER Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d0: CIRCLED LATIN SMALL LETTER A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d1: CIRCLED LATIN SMALL LETTER B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d2: CIRCLED LATIN SMALL LETTER C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d3: CIRCLED LATIN SMALL LETTER D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d4: CIRCLED LATIN SMALL LETTER E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d5: CIRCLED LATIN SMALL LETTER F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d6: CIRCLED LATIN SMALL LETTER G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d7: CIRCLED LATIN SMALL LETTER H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d8: CIRCLED LATIN SMALL LETTER I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024d9: CIRCLED LATIN SMALL LETTER J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024da: CIRCLED LATIN SMALL LETTER K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024db: CIRCLED LATIN SMALL LETTER L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024dc: CIRCLED LATIN SMALL LETTER M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024dd: CIRCLED LATIN SMALL LETTER N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024de: CIRCLED LATIN SMALL LETTER O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024df: CIRCLED LATIN SMALL LETTER P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e0: CIRCLED LATIN SMALL LETTER Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e1: CIRCLED LATIN SMALL LETTER R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e2: CIRCLED LATIN SMALL LETTER S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e3: CIRCLED LATIN SMALL LETTER T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e4: CIRCLED LATIN SMALL LETTER U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e5: CIRCLED LATIN SMALL LETTER V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e6: CIRCLED LATIN SMALL LETTER W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e7: CIRCLED LATIN SMALL LETTER X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e8: CIRCLED LATIN SMALL LETTER Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+0024e9: CIRCLED LATIN SMALL LETTER Z*/ + 0, /* U+0024ea: CIRCLED DIGIT ZERO*/ + 0, /* U+0024eb: NEGATIVE CIRCLED NUMBER ELEVEN*/ + 0, /* U+0024ec: NEGATIVE CIRCLED NUMBER TWELVE*/ + 0, /* U+0024ed: NEGATIVE CIRCLED NUMBER THIRTEEN*/ + 0, /* U+0024ee: NEGATIVE CIRCLED NUMBER FOURTEEN*/ + 0, /* U+0024ef: NEGATIVE CIRCLED NUMBER FIFTEEN*/ + 0, /* U+0024f0: NEGATIVE CIRCLED NUMBER SIXTEEN*/ + 0, /* U+0024f1: NEGATIVE CIRCLED NUMBER SEVENTEEN*/ + 0, /* U+0024f2: NEGATIVE CIRCLED NUMBER EIGHTEEN*/ + 0, /* U+0024f3: NEGATIVE CIRCLED NUMBER NINETEEN*/ + 0, /* U+0024f4: NEGATIVE CIRCLED NUMBER TWENTY*/ + 0, /* U+0024f5: DOUBLE CIRCLED DIGIT ONE*/ + 0, /* U+0024f6: DOUBLE CIRCLED DIGIT TWO*/ + 0, /* U+0024f7: DOUBLE CIRCLED DIGIT THREE*/ + 0, /* U+0024f8: DOUBLE CIRCLED DIGIT FOUR*/ + 0, /* U+0024f9: DOUBLE CIRCLED DIGIT FIVE*/ + 0, /* U+0024fa: DOUBLE CIRCLED DIGIT SIX*/ + 0, /* U+0024fb: DOUBLE CIRCLED DIGIT SEVEN*/ + 0, /* U+0024fc: DOUBLE CIRCLED DIGIT EIGHT*/ + 0, /* U+0024fd: DOUBLE CIRCLED DIGIT NINE*/ + 0, /* U+0024fe: DOUBLE CIRCLED NUMBER TEN*/ + 0, /* U+0024ff: NEGATIVE CIRCLED DIGIT ZERO*/ + 0, /* U+002500: BOX DRAWINGS LIGHT HORIZONTAL*/ + 0, /* U+002501: BOX DRAWINGS HEAVY HORIZONTAL*/ + 0, /* U+002502: BOX DRAWINGS LIGHT VERTICAL*/ + 0, /* U+002503: BOX DRAWINGS HEAVY VERTICAL*/ + 0, /* U+002504: BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL*/ + 0, /* U+002505: BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL*/ + 0, /* U+002506: BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL*/ + 0, /* U+002507: BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL*/ + 0, /* U+002508: BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL*/ + 0, /* U+002509: BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL*/ + 0, /* U+00250a: BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL*/ + 0, /* U+00250b: BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL*/ + 0, /* U+00250c: BOX DRAWINGS LIGHT DOWN AND RIGHT*/ + 0, /* U+00250d: BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY*/ + 0, /* U+00250e: BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT*/ + 0, /* U+00250f: BOX DRAWINGS HEAVY DOWN AND RIGHT*/ + 0, /* U+002510: BOX DRAWINGS LIGHT DOWN AND LEFT*/ + 0, /* U+002511: BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY*/ + 0, /* U+002512: BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT*/ + 0, /* U+002513: BOX DRAWINGS HEAVY DOWN AND LEFT*/ + 0, /* U+002514: BOX DRAWINGS LIGHT UP AND RIGHT*/ + 0, /* U+002515: BOX DRAWINGS UP LIGHT AND RIGHT HEAVY*/ + 0, /* U+002516: BOX DRAWINGS UP HEAVY AND RIGHT LIGHT*/ + 0, /* U+002517: BOX DRAWINGS HEAVY UP AND RIGHT*/ + 0, /* U+002518: BOX DRAWINGS LIGHT UP AND LEFT*/ + 0, /* U+002519: BOX DRAWINGS UP LIGHT AND LEFT HEAVY*/ + 0, /* U+00251a: BOX DRAWINGS UP HEAVY AND LEFT LIGHT*/ + 0, /* U+00251b: BOX DRAWINGS HEAVY UP AND LEFT*/ + 0, /* U+00251c: BOX DRAWINGS LIGHT VERTICAL AND RIGHT*/ + 0, /* U+00251d: BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY*/ + 0, /* U+00251e: BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT*/ + 0, /* U+00251f: BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT*/ + 0, /* U+002520: BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT*/ + 0, /* U+002521: BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY*/ + 0, /* U+002522: BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY*/ + 0, /* U+002523: BOX DRAWINGS HEAVY VERTICAL AND RIGHT*/ + 0, /* U+002524: BOX DRAWINGS LIGHT VERTICAL AND LEFT*/ + 0, /* U+002525: BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY*/ + 0, /* U+002526: BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT*/ + 0, /* U+002527: BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT*/ + 0, /* U+002528: BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT*/ + 0, /* U+002529: BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY*/ + 0, /* U+00252a: BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY*/ + 0, /* U+00252b: BOX DRAWINGS HEAVY VERTICAL AND LEFT*/ + 0, /* U+00252c: BOX DRAWINGS LIGHT DOWN AND HORIZONTAL*/ + 0, /* U+00252d: BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT*/ + 0, /* U+00252e: BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT*/ + 0, /* U+00252f: BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY*/ + 0, /* U+002530: BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT*/ + 0, /* U+002531: BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY*/ + 0, /* U+002532: BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY*/ + 0, /* U+002533: BOX DRAWINGS HEAVY DOWN AND HORIZONTAL*/ + 0, /* U+002534: BOX DRAWINGS LIGHT UP AND HORIZONTAL*/ + 0, /* U+002535: BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT*/ + 0, /* U+002536: BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT*/ + 0, /* U+002537: BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY*/ + 0, /* U+002538: BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT*/ + 0, /* U+002539: BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY*/ + 0, /* U+00253a: BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY*/ + 0, /* U+00253b: BOX DRAWINGS HEAVY UP AND HORIZONTAL*/ + 0, /* U+00253c: BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL*/ + 0, /* U+00253d: BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT*/ + 0, /* U+00253e: BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT*/ + 0, /* U+00253f: BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY*/ + 0, /* U+002540: BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT*/ + 0, /* U+002541: BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT*/ + 0, /* U+002542: BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT*/ + 0, /* U+002543: BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT*/ + 0, /* U+002544: BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT*/ + 0, /* U+002545: BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT*/ + 0, /* U+002546: BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT*/ + 0, /* U+002547: BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY*/ + 0, /* U+002548: BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY*/ + 0, /* U+002549: BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY*/ + 0, /* U+00254a: BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY*/ + 0, /* U+00254b: BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL*/ + 0, /* U+00254c: BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL*/ + 0, /* U+00254d: BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL*/ + 0, /* U+00254e: BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL*/ + 0, /* U+00254f: BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL*/ + 0, /* U+002550: BOX DRAWINGS DOUBLE HORIZONTAL*/ + 0, /* U+002551: BOX DRAWINGS DOUBLE VERTICAL*/ + 0, /* U+002552: BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE*/ + 0, /* U+002553: BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE*/ + 0, /* U+002554: BOX DRAWINGS DOUBLE DOWN AND RIGHT*/ + 0, /* U+002555: BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE*/ + 0, /* U+002556: BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE*/ + 0, /* U+002557: BOX DRAWINGS DOUBLE DOWN AND LEFT*/ + 0, /* U+002558: BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE*/ + 0, /* U+002559: BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE*/ + 0, /* U+00255a: BOX DRAWINGS DOUBLE UP AND RIGHT*/ + 0, /* U+00255b: BOX DRAWINGS UP SINGLE AND LEFT DOUBLE*/ + 0, /* U+00255c: BOX DRAWINGS UP DOUBLE AND LEFT SINGLE*/ + 0, /* U+00255d: BOX DRAWINGS DOUBLE UP AND LEFT*/ + 0, /* U+00255e: BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE*/ + 0, /* U+00255f: BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE*/ + 0, /* U+002560: BOX DRAWINGS DOUBLE VERTICAL AND RIGHT*/ + 0, /* U+002561: BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE*/ + 0, /* U+002562: BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE*/ + 0, /* U+002563: BOX DRAWINGS DOUBLE VERTICAL AND LEFT*/ + 0, /* U+002564: BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE*/ + 0, /* U+002565: BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE*/ + 0, /* U+002566: BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL*/ + 0, /* U+002567: BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE*/ + 0, /* U+002568: BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE*/ + 0, /* U+002569: BOX DRAWINGS DOUBLE UP AND HORIZONTAL*/ + 0, /* U+00256a: BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE*/ + 0, /* U+00256b: BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE*/ + 0, /* U+00256c: BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL*/ + 0, /* U+00256d: BOX DRAWINGS LIGHT ARC DOWN AND RIGHT*/ + 0, /* U+00256e: BOX DRAWINGS LIGHT ARC DOWN AND LEFT*/ + 0, /* U+00256f: BOX DRAWINGS LIGHT ARC UP AND LEFT*/ + 0, /* U+002570: BOX DRAWINGS LIGHT ARC UP AND RIGHT*/ + 0, /* U+002571: BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT*/ + 0, /* U+002572: BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT*/ + 0, /* U+002573: BOX DRAWINGS LIGHT DIAGONAL CROSS*/ + 0, /* U+002574: BOX DRAWINGS LIGHT LEFT*/ + 0, /* U+002575: BOX DRAWINGS LIGHT UP*/ + 0, /* U+002576: BOX DRAWINGS LIGHT RIGHT*/ + 0, /* U+002577: BOX DRAWINGS LIGHT DOWN*/ + 0, /* U+002578: BOX DRAWINGS HEAVY LEFT*/ + 0, /* U+002579: BOX DRAWINGS HEAVY UP*/ + 0, /* U+00257a: BOX DRAWINGS HEAVY RIGHT*/ + 0, /* U+00257b: BOX DRAWINGS HEAVY DOWN*/ + 0, /* U+00257c: BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT*/ + 0, /* U+00257d: BOX DRAWINGS LIGHT UP AND HEAVY DOWN*/ + 0, /* U+00257e: BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT*/ + 0, /* U+00257f: BOX DRAWINGS HEAVY UP AND LIGHT DOWN*/ + 0, /* U+002580: UPPER HALF BLOCK*/ + 0, /* U+002581: LOWER ONE EIGHTH BLOCK*/ + 0, /* U+002582: LOWER ONE QUARTER BLOCK*/ + 0, /* U+002583: LOWER THREE EIGHTHS BLOCK*/ + 0, /* U+002584: LOWER HALF BLOCK*/ + 0, /* U+002585: LOWER FIVE EIGHTHS BLOCK*/ + 0, /* U+002586: LOWER THREE QUARTERS BLOCK*/ + 0, /* U+002587: LOWER SEVEN EIGHTHS BLOCK*/ + 0, /* U+002588: FULL BLOCK*/ + 0, /* U+002589: LEFT SEVEN EIGHTHS BLOCK*/ + 0, /* U+00258a: LEFT THREE QUARTERS BLOCK*/ + 0, /* U+00258b: LEFT FIVE EIGHTHS BLOCK*/ + 0, /* U+00258c: LEFT HALF BLOCK*/ + 0, /* U+00258d: LEFT THREE EIGHTHS BLOCK*/ + 0, /* U+00258e: LEFT ONE QUARTER BLOCK*/ + 0, /* U+00258f: LEFT ONE EIGHTH BLOCK*/ + 0, /* U+002590: RIGHT HALF BLOCK*/ + 0, /* U+002591: LIGHT SHADE*/ + 0, /* U+002592: MEDIUM SHADE*/ + 0, /* U+002593: DARK SHADE*/ + 0, /* U+002594: UPPER ONE EIGHTH BLOCK*/ + 0, /* U+002595: RIGHT ONE EIGHTH BLOCK*/ + 0, /* U+002596: QUADRANT LOWER LEFT*/ + 0, /* U+002597: QUADRANT LOWER RIGHT*/ + 0, /* U+002598: QUADRANT UPPER LEFT*/ + 0, /* U+002599: QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT*/ + 0, /* U+00259a: QUADRANT UPPER LEFT AND LOWER RIGHT*/ + 0, /* U+00259b: QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT*/ + 0, /* U+00259c: QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT*/ + 0, /* U+00259d: QUADRANT UPPER RIGHT*/ + 0, /* U+00259e: QUADRANT UPPER RIGHT AND LOWER LEFT*/ + 0, /* U+00259f: QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT*/ + 0, /* U+0025a0: BLACK SQUARE*/ + 0, /* U+0025a1: WHITE SQUARE*/ + 0, /* U+0025a2: WHITE SQUARE WITH ROUNDED CORNERS*/ + 0, /* U+0025a3: WHITE SQUARE CONTAINING BLACK SMALL SQUARE*/ + 0, /* U+0025a4: SQUARE WITH HORIZONTAL FILL*/ + 0, /* U+0025a5: SQUARE WITH VERTICAL FILL*/ + 0, /* U+0025a6: SQUARE WITH ORTHOGONAL CROSSHATCH FILL*/ + 0, /* U+0025a7: SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL*/ + 0, /* U+0025a8: SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL*/ + 0, /* U+0025a9: SQUARE WITH DIAGONAL CROSSHATCH FILL*/ + 0, /* U+0025aa: BLACK SMALL SQUARE*/ + 0, /* U+0025ab: WHITE SMALL SQUARE*/ + 0, /* U+0025ac: BLACK RECTANGLE*/ + 0, /* U+0025ad: WHITE RECTANGLE*/ + 0, /* U+0025ae: BLACK VERTICAL RECTANGLE*/ + 0, /* U+0025af: WHITE VERTICAL RECTANGLE*/ + 0, /* U+0025b0: BLACK PARALLELOGRAM*/ + 0, /* U+0025b1: WHITE PARALLELOGRAM*/ + 0, /* U+0025b2: BLACK UP-POINTING TRIANGLE*/ + 0, /* U+0025b3: WHITE UP-POINTING TRIANGLE*/ + 0, /* U+0025b4: BLACK UP-POINTING SMALL TRIANGLE*/ + 0, /* U+0025b5: WHITE UP-POINTING SMALL TRIANGLE*/ + 0, /* U+0025b6: BLACK RIGHT-POINTING TRIANGLE*/ + 0, /* U+0025b7: WHITE RIGHT-POINTING TRIANGLE*/ + 0, /* U+0025b8: BLACK RIGHT-POINTING SMALL TRIANGLE*/ + 0, /* U+0025b9: WHITE RIGHT-POINTING SMALL TRIANGLE*/ + 0, /* U+0025ba: BLACK RIGHT-POINTING POINTER*/ + 0, /* U+0025bb: WHITE RIGHT-POINTING POINTER*/ + 0, /* U+0025bc: BLACK DOWN-POINTING TRIANGLE*/ + 0, /* U+0025bd: WHITE DOWN-POINTING TRIANGLE*/ + 0, /* U+0025be: BLACK DOWN-POINTING SMALL TRIANGLE*/ + 0, /* U+0025bf: WHITE DOWN-POINTING SMALL TRIANGLE*/ + 0, /* U+0025c0: BLACK LEFT-POINTING TRIANGLE*/ + 0, /* U+0025c1: WHITE LEFT-POINTING TRIANGLE*/ + 0, /* U+0025c2: BLACK LEFT-POINTING SMALL TRIANGLE*/ + 0, /* U+0025c3: WHITE LEFT-POINTING SMALL TRIANGLE*/ + 0, /* U+0025c4: BLACK LEFT-POINTING POINTER*/ + 0, /* U+0025c5: WHITE LEFT-POINTING POINTER*/ + 0, /* U+0025c6: BLACK DIAMOND*/ + 0, /* U+0025c7: WHITE DIAMOND*/ + 0, /* U+0025c8: WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND*/ + 0, /* U+0025c9: FISHEYE*/ + 0, /* U+0025ca: LOZENGE*/ + 0, /* U+0025cb: WHITE CIRCLE*/ + 0, /* U+0025cc: DOTTED CIRCLE*/ + 0, /* U+0025cd: CIRCLE WITH VERTICAL FILL*/ + 0, /* U+0025ce: BULLSEYE*/ + 0, /* U+0025cf: BLACK CIRCLE*/ + 0, /* U+0025d0: CIRCLE WITH LEFT HALF BLACK*/ + 0, /* U+0025d1: CIRCLE WITH RIGHT HALF BLACK*/ + 0, /* U+0025d2: CIRCLE WITH LOWER HALF BLACK*/ + 0, /* U+0025d3: CIRCLE WITH UPPER HALF BLACK*/ + 0, /* U+0025d4: CIRCLE WITH UPPER RIGHT QUADRANT BLACK*/ + 0, /* U+0025d5: CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK*/ + 0, /* U+0025d6: LEFT HALF BLACK CIRCLE*/ + 0, /* U+0025d7: RIGHT HALF BLACK CIRCLE*/ + 0, /* U+0025d8: INVERSE BULLET*/ + 0, /* U+0025d9: INVERSE WHITE CIRCLE*/ + 0, /* U+0025da: UPPER HALF INVERSE WHITE CIRCLE*/ + 0, /* U+0025db: LOWER HALF INVERSE WHITE CIRCLE*/ + 0, /* U+0025dc: UPPER LEFT QUADRANT CIRCULAR ARC*/ + 0, /* U+0025dd: UPPER RIGHT QUADRANT CIRCULAR ARC*/ + 0, /* U+0025de: LOWER RIGHT QUADRANT CIRCULAR ARC*/ + 0, /* U+0025df: LOWER LEFT QUADRANT CIRCULAR ARC*/ + 0, /* U+0025e0: UPPER HALF CIRCLE*/ + 0, /* U+0025e1: LOWER HALF CIRCLE*/ + 0, /* U+0025e2: BLACK LOWER RIGHT TRIANGLE*/ + 0, /* U+0025e3: BLACK LOWER LEFT TRIANGLE*/ + 0, /* U+0025e4: BLACK UPPER LEFT TRIANGLE*/ + 0, /* U+0025e5: BLACK UPPER RIGHT TRIANGLE*/ + 0, /* U+0025e6: WHITE BULLET*/ + 0, /* U+0025e7: SQUARE WITH LEFT HALF BLACK*/ + 0, /* U+0025e8: SQUARE WITH RIGHT HALF BLACK*/ + 0, /* U+0025e9: SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK*/ + 0, /* U+0025ea: SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK*/ + 0, /* U+0025eb: WHITE SQUARE WITH VERTICAL BISECTING LINE*/ + 0, /* U+0025ec: WHITE UP-POINTING TRIANGLE WITH DOT*/ + 0, /* U+0025ed: UP-POINTING TRIANGLE WITH LEFT HALF BLACK*/ + 0, /* U+0025ee: UP-POINTING TRIANGLE WITH RIGHT HALF BLACK*/ + 0, /* U+0025ef: LARGE CIRCLE*/ + 0, /* U+0025f0: WHITE SQUARE WITH UPPER LEFT QUADRANT*/ + 0, /* U+0025f1: WHITE SQUARE WITH LOWER LEFT QUADRANT*/ + 0, /* U+0025f2: WHITE SQUARE WITH LOWER RIGHT QUADRANT*/ + 0, /* U+0025f3: WHITE SQUARE WITH UPPER RIGHT QUADRANT*/ + 0, /* U+0025f4: WHITE CIRCLE WITH UPPER LEFT QUADRANT*/ + 0, /* U+0025f5: WHITE CIRCLE WITH LOWER LEFT QUADRANT*/ + 0, /* U+0025f6: WHITE CIRCLE WITH LOWER RIGHT QUADRANT*/ + 0, /* U+0025f7: WHITE CIRCLE WITH UPPER RIGHT QUADRANT*/ + 0, /* U+0025f8: UPPER LEFT TRIANGLE*/ + 0, /* U+0025f9: UPPER RIGHT TRIANGLE*/ + 0, /* U+0025fa: LOWER LEFT TRIANGLE*/ + 0, /* U+0025fb: WHITE MEDIUM SQUARE*/ + 0, /* U+0025fc: BLACK MEDIUM SQUARE*/ + 0, /* U+0025fd: WHITE MEDIUM SMALL SQUARE*/ + 0, /* U+0025fe: BLACK MEDIUM SMALL SQUARE*/ + 0, /* U+0025ff: LOWER RIGHT TRIANGLE*/ + 0, /* U+002600: BLACK SUN WITH RAYS*/ + 0, /* U+002601: CLOUD*/ + 0, /* U+002602: UMBRELLA*/ + 0, /* U+002603: SNOWMAN*/ + 0, /* U+002604: COMET*/ + 0, /* U+002605: BLACK STAR*/ + 0, /* U+002606: WHITE STAR*/ + 0, /* U+002607: LIGHTNING*/ + 0, /* U+002608: THUNDERSTORM*/ + 0, /* U+002609: SUN*/ + 0, /* U+00260a: ASCENDING NODE*/ + 0, /* U+00260b: DESCENDING NODE*/ + 0, /* U+00260c: CONJUNCTION*/ + 0, /* U+00260d: OPPOSITION*/ + 0, /* U+00260e: BLACK TELEPHONE*/ + 0, /* U+00260f: WHITE TELEPHONE*/ + 0, /* U+002610: BALLOT BOX*/ + 0, /* U+002611: BALLOT BOX WITH CHECK*/ + 0, /* U+002612: BALLOT BOX WITH X*/ + 0, /* U+002613: SALTIRE*/ + 0, /* U+002614: UMBRELLA WITH RAIN DROPS*/ + 0, /* U+002615: HOT BEVERAGE*/ + 0, /* U+002616: WHITE SHOGI PIECE*/ + 0, /* U+002617: BLACK SHOGI PIECE*/ + 0, /* U+002618: SHAMROCK*/ + 0, /* U+002619: REVERSED ROTATED FLORAL HEART BULLET*/ + 0, /* U+00261a: BLACK LEFT POINTING INDEX*/ + 0, /* U+00261b: BLACK RIGHT POINTING INDEX*/ + 0, /* U+00261c: WHITE LEFT POINTING INDEX*/ + 0, /* U+00261d: WHITE UP POINTING INDEX*/ + 0, /* U+00261e: WHITE RIGHT POINTING INDEX*/ + 0, /* U+00261f: WHITE DOWN POINTING INDEX*/ + 0, /* U+002620: SKULL AND CROSSBONES*/ + 0, /* U+002621: CAUTION SIGN*/ + 0, /* U+002622: RADIOACTIVE SIGN*/ + 0, /* U+002623: BIOHAZARD SIGN*/ + 0, /* U+002624: CADUCEUS*/ + 0, /* U+002625: ANKH*/ + 0, /* U+002626: ORTHODOX CROSS*/ + 0, /* U+002627: CHI RHO*/ + 0, /* U+002628: CROSS OF LORRAINE*/ + 0, /* U+002629: CROSS OF JERUSALEM*/ + 0, /* U+00262a: STAR AND CRESCENT*/ + 0, /* U+00262b: FARSI SYMBOL*/ + 0, /* U+00262c: ADI SHAKTI*/ + 0, /* U+00262d: HAMMER AND SICKLE*/ + 0, /* U+00262e: PEACE SYMBOL*/ + 0, /* U+00262f: YIN YANG*/ + 0, /* U+002630: TRIGRAM FOR HEAVEN*/ + 0, /* U+002631: TRIGRAM FOR LAKE*/ + 0, /* U+002632: TRIGRAM FOR FIRE*/ + 0, /* U+002633: TRIGRAM FOR THUNDER*/ + 0, /* U+002634: TRIGRAM FOR WIND*/ + 0, /* U+002635: TRIGRAM FOR WATER*/ + 0, /* U+002636: TRIGRAM FOR MOUNTAIN*/ + 0, /* U+002637: TRIGRAM FOR EARTH*/ + 0, /* U+002638: WHEEL OF DHARMA*/ + 0, /* U+002639: WHITE FROWNING FACE*/ + 0, /* U+00263a: WHITE SMILING FACE*/ + 0, /* U+00263b: BLACK SMILING FACE*/ + 0, /* U+00263c: WHITE SUN WITH RAYS*/ + 0, /* U+00263d: FIRST QUARTER MOON*/ + 0, /* U+00263e: LAST QUARTER MOON*/ + 0, /* U+00263f: MERCURY*/ + 0, /* U+002640: FEMALE SIGN*/ + 0, /* U+002641: EARTH*/ + 0, /* U+002642: MALE SIGN*/ + 0, /* U+002643: JUPITER*/ + 0, /* U+002644: SATURN*/ + 0, /* U+002645: URANUS*/ + 0, /* U+002646: NEPTUNE*/ + 0, /* U+002647: PLUTO*/ + 0, /* U+002648: ARIES*/ + 0, /* U+002649: TAURUS*/ + 0, /* U+00264a: GEMINI*/ + 0, /* U+00264b: CANCER*/ + 0, /* U+00264c: LEO*/ + 0, /* U+00264d: VIRGO*/ + 0, /* U+00264e: LIBRA*/ + 0, /* U+00264f: SCORPIUS*/ + 0, /* U+002650: SAGITTARIUS*/ + 0, /* U+002651: CAPRICORN*/ + 0, /* U+002652: AQUARIUS*/ + 0, /* U+002653: PISCES*/ + 0, /* U+002654: WHITE CHESS KING*/ + 0, /* U+002655: WHITE CHESS QUEEN*/ + 0, /* U+002656: WHITE CHESS ROOK*/ + 0, /* U+002657: WHITE CHESS BISHOP*/ + 0, /* U+002658: WHITE CHESS KNIGHT*/ + 0, /* U+002659: WHITE CHESS PAWN*/ + 0, /* U+00265a: BLACK CHESS KING*/ + 0, /* U+00265b: BLACK CHESS QUEEN*/ + 0, /* U+00265c: BLACK CHESS ROOK*/ + 0, /* U+00265d: BLACK CHESS BISHOP*/ + 0, /* U+00265e: BLACK CHESS KNIGHT*/ + 0, /* U+00265f: BLACK CHESS PAWN*/ + 0, /* U+002660: BLACK SPADE SUIT*/ + 0, /* U+002661: WHITE HEART SUIT*/ + 0, /* U+002662: WHITE DIAMOND SUIT*/ + 0, /* U+002663: BLACK CLUB SUIT*/ + 0, /* U+002664: WHITE SPADE SUIT*/ + 0, /* U+002665: BLACK HEART SUIT*/ + 0, /* U+002666: BLACK DIAMOND SUIT*/ + 0, /* U+002667: WHITE CLUB SUIT*/ + 0, /* U+002668: HOT SPRINGS*/ + 0, /* U+002669: QUARTER NOTE*/ + 0, /* U+00266a: EIGHTH NOTE*/ + 0, /* U+00266b: BEAMED EIGHTH NOTES*/ + 0, /* U+00266c: BEAMED SIXTEENTH NOTES*/ + 0, /* U+00266d: MUSIC FLAT SIGN*/ + 0, /* U+00266e: MUSIC NATURAL SIGN*/ + 0, /* U+00266f: MUSIC SHARP SIGN*/ + 0, /* U+002670: WEST SYRIAC CROSS*/ + 0, /* U+002671: EAST SYRIAC CROSS*/ + 0, /* U+002672: UNIVERSAL RECYCLING SYMBOL*/ + 0, /* U+002673: RECYCLING SYMBOL FOR TYPE-1 PLASTICS*/ + 0, /* U+002674: RECYCLING SYMBOL FOR TYPE-2 PLASTICS*/ + 0, /* U+002675: RECYCLING SYMBOL FOR TYPE-3 PLASTICS*/ + 0, /* U+002676: RECYCLING SYMBOL FOR TYPE-4 PLASTICS*/ + 0, /* U+002677: RECYCLING SYMBOL FOR TYPE-5 PLASTICS*/ + 0, /* U+002678: RECYCLING SYMBOL FOR TYPE-6 PLASTICS*/ + 0, /* U+002679: RECYCLING SYMBOL FOR TYPE-7 PLASTICS*/ + 0, /* U+00267a: RECYCLING SYMBOL FOR GENERIC MATERIALS*/ + 0, /* U+00267b: BLACK UNIVERSAL RECYCLING SYMBOL*/ + 0, /* U+00267c: RECYCLED PAPER SYMBOL*/ + 0, /* U+00267d: PARTIALLY-RECYCLED PAPER SYMBOL*/ + 0, /* U+00267e: PERMANENT PAPER SIGN*/ + 0, /* U+00267f: WHEELCHAIR SYMBOL*/ + 0, /* U+002680: DIE FACE-1*/ + 0, /* U+002681: DIE FACE-2*/ + 0, /* U+002682: DIE FACE-3*/ + 0, /* U+002683: DIE FACE-4*/ + 0, /* U+002684: DIE FACE-5*/ + 0, /* U+002685: DIE FACE-6*/ + 0, /* U+002686: WHITE CIRCLE WITH DOT RIGHT*/ + 0, /* U+002687: WHITE CIRCLE WITH TWO DOTS*/ + 0, /* U+002688: BLACK CIRCLE WITH WHITE DOT RIGHT*/ + 0, /* U+002689: BLACK CIRCLE WITH TWO WHITE DOTS*/ + 0, /* U+00268a: MONOGRAM FOR YANG*/ + 0, /* U+00268b: MONOGRAM FOR YIN*/ + 0, /* U+00268c: DIGRAM FOR GREATER YANG*/ + 0, /* U+00268d: DIGRAM FOR LESSER YIN*/ + 0, /* U+00268e: DIGRAM FOR LESSER YANG*/ + 0, /* U+00268f: DIGRAM FOR GREATER YIN*/ + 0, /* U+002690: WHITE FLAG*/ + 0, /* U+002691: BLACK FLAG*/ + 0, /* U+002692: HAMMER AND PICK*/ + 0, /* U+002693: ANCHOR*/ + 0, /* U+002694: CROSSED SWORDS*/ + 0, /* U+002695: STAFF OF AESCULAPIUS*/ + 0, /* U+002696: SCALES*/ + 0, /* U+002697: ALEMBIC*/ + 0, /* U+002698: FLOWER*/ + 0, /* U+002699: GEAR*/ + 0, /* U+00269a: STAFF OF HERMES*/ + 0, /* U+00269b: ATOM SYMBOL*/ + 0, /* U+00269c: FLEUR-DE-LIS*/ + 0, /* U+00269d: OUTLINED WHITE STAR*/ + 0, /* U+00269e: THREE LINES CONVERGING RIGHT*/ + 0, /* U+00269f: THREE LINES CONVERGING LEFT*/ + 0, /* U+0026a0: WARNING SIGN*/ + 0, /* U+0026a1: HIGH VOLTAGE SIGN*/ + 0, /* U+0026a2: DOUBLED FEMALE SIGN*/ + 0, /* U+0026a3: DOUBLED MALE SIGN*/ + 0, /* U+0026a4: INTERLOCKED FEMALE AND MALE SIGN*/ + 0, /* U+0026a5: MALE AND FEMALE SIGN*/ + 0, /* U+0026a6: MALE WITH STROKE SIGN*/ + 0, /* U+0026a7: MALE WITH STROKE AND MALE AND FEMALE SIGN*/ + 0, /* U+0026a8: VERTICAL MALE WITH STROKE SIGN*/ + 0, /* U+0026a9: HORIZONTAL MALE WITH STROKE SIGN*/ + 0, /* U+0026aa: MEDIUM WHITE CIRCLE*/ + 0, /* U+0026ab: MEDIUM BLACK CIRCLE*/ + 0, /* U+0026ac: MEDIUM SMALL WHITE CIRCLE*/ + 0, /* U+0026ad: MARRIAGE SYMBOL*/ + 0, /* U+0026ae: DIVORCE SYMBOL*/ + 0, /* U+0026af: UNMARRIED PARTNERSHIP SYMBOL*/ + 0, /* U+0026b0: COFFIN*/ + 0, /* U+0026b1: FUNERAL URN*/ + 0, /* U+0026b2: NEUTER*/ + 0, /* U+0026b3: CERES*/ + 0, /* U+0026b4: PALLAS*/ + 0, /* U+0026b5: JUNO*/ + 0, /* U+0026b6: VESTA*/ + 0, /* U+0026b7: CHIRON*/ + 0, /* U+0026b8: BLACK MOON LILITH*/ + 0, /* U+0026b9: SEXTILE*/ + 0, /* U+0026ba: SEMISEXTILE*/ + 0, /* U+0026bb: QUINCUNX*/ + 0, /* U+0026bc: SESQUIQUADRATE*/ + 0, /* U+0026bd: SOCCER BALL*/ + 0, /* U+0026be: BASEBALL*/ + 0, /* U+0026bf: SQUARED KEY*/ + 0, /* U+0026c0: WHITE DRAUGHTS MAN*/ + 0, /* U+0026c1: WHITE DRAUGHTS KING*/ + 0, /* U+0026c2: BLACK DRAUGHTS MAN*/ + 0, /* U+0026c3: BLACK DRAUGHTS KING*/ + 0, /* U+0026c4: SNOWMAN WITHOUT SNOW*/ + 0, /* U+0026c5: SUN BEHIND CLOUD*/ + 0, /* U+0026c6: RAIN*/ + 0, /* U+0026c7: BLACK SNOWMAN*/ + 0, /* U+0026c8: THUNDER CLOUD AND RAIN*/ + 0, /* U+0026c9: TURNED WHITE SHOGI PIECE*/ + 0, /* U+0026ca: TURNED BLACK SHOGI PIECE*/ + 0, /* U+0026cb: WHITE DIAMOND IN SQUARE*/ + 0, /* U+0026cc: CROSSING LANES*/ + 0, /* U+0026cd: DISABLED CAR*/ + 0, /* U+0026ce: OPHIUCHUS*/ + 0, /* U+0026cf: PICK*/ + 0, /* U+0026d0: CAR SLIDING*/ + 0, /* U+0026d1: HELMET WITH WHITE CROSS*/ + 0, /* U+0026d2: CIRCLED CROSSING LANES*/ + 0, /* U+0026d3: CHAINS*/ + 0, /* U+0026d4: NO ENTRY*/ + 0, /* U+0026d5: ALTERNATE ONE-WAY LEFT WAY TRAFFIC*/ + 0, /* U+0026d6: BLACK TWO-WAY LEFT WAY TRAFFIC*/ + 0, /* U+0026d7: WHITE TWO-WAY LEFT WAY TRAFFIC*/ + 0, /* U+0026d8: BLACK LEFT LANE MERGE*/ + 0, /* U+0026d9: WHITE LEFT LANE MERGE*/ + 0, /* U+0026da: DRIVE SLOW SIGN*/ + 0, /* U+0026db: HEAVY WHITE DOWN-POINTING TRIANGLE*/ + 0, /* U+0026dc: LEFT CLOSED ENTRY*/ + 0, /* U+0026dd: SQUARED SALTIRE*/ + 0, /* U+0026de: FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE*/ + 0, /* U+0026df: BLACK TRUCK*/ + 0, /* U+0026e0: RESTRICTED LEFT ENTRY-1*/ + 0, /* U+0026e1: RESTRICTED LEFT ENTRY-2*/ + 0, /* U+0026e2: ASTRONOMICAL SYMBOL FOR URANUS*/ + 0, /* U+0026e3: HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE*/ + 0, /* U+0026e4: PENTAGRAM*/ + 0, /* U+0026e5: RIGHT-HANDED INTERLACED PENTAGRAM*/ + 0, /* U+0026e6: LEFT-HANDED INTERLACED PENTAGRAM*/ + 0, /* U+0026e7: INVERTED PENTAGRAM*/ + 0, /* U+0026e8: BLACK CROSS ON SHIELD*/ + 0, /* U+0026e9: SHINTO SHRINE*/ + 0, /* U+0026ea: CHURCH*/ + 0, /* U+0026eb: CASTLE*/ + 0, /* U+0026ec: HISTORIC SITE*/ + 0, /* U+0026ed: GEAR WITHOUT HUB*/ + 0, /* U+0026ee: GEAR WITH HANDLES*/ + 0, /* U+0026ef: MAP SYMBOL FOR LIGHTHOUSE*/ + 0, /* U+0026f0: MOUNTAIN*/ + 0, /* U+0026f1: UMBRELLA ON GROUND*/ + 0, /* U+0026f2: FOUNTAIN*/ + 0, /* U+0026f3: FLAG IN HOLE*/ + 0, /* U+0026f4: FERRY*/ + 0, /* U+0026f5: SAILBOAT*/ + 0, /* U+0026f6: SQUARE FOUR CORNERS*/ + 0, /* U+0026f7: SKIER*/ + 0, /* U+0026f8: ICE SKATE*/ + 0, /* U+0026f9: PERSON WITH BALL*/ + 0, /* U+0026fa: TENT*/ + 0, /* U+0026fb: JAPANESE BANK SYMBOL*/ + 0, /* U+0026fc: HEADSTONE GRAVEYARD SYMBOL*/ + 0, /* U+0026fd: FUEL PUMP*/ + 0, /* U+0026fe: CUP ON BLACK SQUARE*/ + 0, /* U+0026ff: WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE*/ + 0, /* U+002700: */ + 0, /* U+002701: UPPER BLADE SCISSORS*/ + 0, /* U+002702: BLACK SCISSORS*/ + 0, /* U+002703: LOWER BLADE SCISSORS*/ + 0, /* U+002704: WHITE SCISSORS*/ + 0, /* U+002705: WHITE HEAVY CHECK MARK*/ + 0, /* U+002706: TELEPHONE LOCATION SIGN*/ + 0, /* U+002707: TAPE DRIVE*/ + 0, /* U+002708: AIRPLANE*/ + 0, /* U+002709: ENVELOPE*/ + 0, /* U+00270a: RAISED FIST*/ + 0, /* U+00270b: RAISED HAND*/ + 0, /* U+00270c: VICTORY HAND*/ + 0, /* U+00270d: WRITING HAND*/ + 0, /* U+00270e: LOWER RIGHT PENCIL*/ + 0, /* U+00270f: PENCIL*/ + 0, /* U+002710: UPPER RIGHT PENCIL*/ + 0, /* U+002711: WHITE NIB*/ + 0, /* U+002712: BLACK NIB*/ + 0, /* U+002713: CHECK MARK*/ + 0, /* U+002714: HEAVY CHECK MARK*/ + 0, /* U+002715: MULTIPLICATION X*/ + 0, /* U+002716: HEAVY MULTIPLICATION X*/ + 0, /* U+002717: BALLOT X*/ + 0, /* U+002718: HEAVY BALLOT X*/ + 0, /* U+002719: OUTLINED GREEK CROSS*/ + 0, /* U+00271a: HEAVY GREEK CROSS*/ + 0, /* U+00271b: OPEN CENTRE CROSS*/ + 0, /* U+00271c: HEAVY OPEN CENTRE CROSS*/ + 0, /* U+00271d: LATIN CROSS*/ + 0, /* U+00271e: SHADOWED WHITE LATIN CROSS*/ + 0, /* U+00271f: OUTLINED LATIN CROSS*/ + 0, /* U+002720: MALTESE CROSS*/ + 0, /* U+002721: STAR OF DAVID*/ + 0, /* U+002722: FOUR TEARDROP-SPOKED ASTERISK*/ + 0, /* U+002723: FOUR BALLOON-SPOKED ASTERISK*/ + 0, /* U+002724: HEAVY FOUR BALLOON-SPOKED ASTERISK*/ + 0, /* U+002725: FOUR CLUB-SPOKED ASTERISK*/ + 0, /* U+002726: BLACK FOUR POINTED STAR*/ + 0, /* U+002727: WHITE FOUR POINTED STAR*/ + 0, /* U+002728: SPARKLES*/ + 0, /* U+002729: STRESS OUTLINED WHITE STAR*/ + 0, /* U+00272a: CIRCLED WHITE STAR*/ + 0, /* U+00272b: OPEN CENTRE BLACK STAR*/ + 0, /* U+00272c: BLACK CENTRE WHITE STAR*/ + 0, /* U+00272d: OUTLINED BLACK STAR*/ + 0, /* U+00272e: HEAVY OUTLINED BLACK STAR*/ + 0, /* U+00272f: PINWHEEL STAR*/ + 0, /* U+002730: SHADOWED WHITE STAR*/ + 0, /* U+002731: HEAVY ASTERISK*/ + 0, /* U+002732: OPEN CENTRE ASTERISK*/ + 0, /* U+002733: EIGHT SPOKED ASTERISK*/ + 0, /* U+002734: EIGHT POINTED BLACK STAR*/ + 0, /* U+002735: EIGHT POINTED PINWHEEL STAR*/ + 0, /* U+002736: SIX POINTED BLACK STAR*/ + 0, /* U+002737: EIGHT POINTED RECTILINEAR BLACK STAR*/ + 0, /* U+002738: HEAVY EIGHT POINTED RECTILINEAR BLACK STAR*/ + 0, /* U+002739: TWELVE POINTED BLACK STAR*/ + 0, /* U+00273a: SIXTEEN POINTED ASTERISK*/ + 0, /* U+00273b: TEARDROP-SPOKED ASTERISK*/ + 0, /* U+00273c: OPEN CENTRE TEARDROP-SPOKED ASTERISK*/ + 0, /* U+00273d: HEAVY TEARDROP-SPOKED ASTERISK*/ + 0, /* U+00273e: SIX PETALLED BLACK AND WHITE FLORETTE*/ + 0, /* U+00273f: BLACK FLORETTE*/ + 0, /* U+002740: WHITE FLORETTE*/ + 0, /* U+002741: EIGHT PETALLED OUTLINED BLACK FLORETTE*/ + 0, /* U+002742: CIRCLED OPEN CENTRE EIGHT POINTED STAR*/ + 0, /* U+002743: HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK*/ + 0, /* U+002744: SNOWFLAKE*/ + 0, /* U+002745: TIGHT TRIFOLIATE SNOWFLAKE*/ + 0, /* U+002746: HEAVY CHEVRON SNOWFLAKE*/ + 0, /* U+002747: SPARKLE*/ + 0, /* U+002748: HEAVY SPARKLE*/ + 0, /* U+002749: BALLOON-SPOKED ASTERISK*/ + 0, /* U+00274a: EIGHT TEARDROP-SPOKED PROPELLER ASTERISK*/ + 0, /* U+00274b: HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK*/ + 0, /* U+00274c: CROSS MARK*/ + 0, /* U+00274d: SHADOWED WHITE CIRCLE*/ + 0, /* U+00274e: NEGATIVE SQUARED CROSS MARK*/ + 0, /* U+00274f: LOWER RIGHT DROP-SHADOWED WHITE SQUARE*/ + 0, /* U+002750: UPPER RIGHT DROP-SHADOWED WHITE SQUARE*/ + 0, /* U+002751: LOWER RIGHT SHADOWED WHITE SQUARE*/ + 0, /* U+002752: UPPER RIGHT SHADOWED WHITE SQUARE*/ + 0, /* U+002753: BLACK QUESTION MARK ORNAMENT*/ + 0, /* U+002754: WHITE QUESTION MARK ORNAMENT*/ + 0, /* U+002755: WHITE EXCLAMATION MARK ORNAMENT*/ + 0, /* U+002756: BLACK DIAMOND MINUS WHITE X*/ + 0, /* U+002757: HEAVY EXCLAMATION MARK SYMBOL*/ + 0, /* U+002758: LIGHT VERTICAL BAR*/ + 0, /* U+002759: MEDIUM VERTICAL BAR*/ + 0, /* U+00275a: HEAVY VERTICAL BAR*/ + 0, /* U+00275b: HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT*/ + 0, /* U+00275c: HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT*/ + 0, /* U+00275d: HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT*/ + 0, /* U+00275e: HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT*/ + 0, /* U+00275f: HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT*/ + 0, /* U+002760: HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT*/ + 0, /* U+002761: CURVED STEM PARAGRAPH SIGN ORNAMENT*/ + 0, /* U+002762: HEAVY EXCLAMATION MARK ORNAMENT*/ + 0, /* U+002763: HEAVY HEART EXCLAMATION MARK ORNAMENT*/ + 0, /* U+002764: HEAVY BLACK HEART*/ + 0, /* U+002765: ROTATED HEAVY BLACK HEART BULLET*/ + 0, /* U+002766: FLORAL HEART*/ + 0, /* U+002767: ROTATED FLORAL HEART BULLET*/ + 0, /* U+002768: MEDIUM LEFT PARENTHESIS ORNAMENT*/ + 0, /* U+002769: MEDIUM RIGHT PARENTHESIS ORNAMENT*/ + 0, /* U+00276a: MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT*/ + 0, /* U+00276b: MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT*/ + 0, /* U+00276c: MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT*/ + 0, /* U+00276d: MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT*/ + 0, /* U+00276e: HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT*/ + 0, /* U+00276f: HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT*/ + 0, /* U+002770: HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT*/ + 0, /* U+002771: HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT*/ + 0, /* U+002772: LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT*/ + 0, /* U+002773: LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT*/ + 0, /* U+002774: MEDIUM LEFT CURLY BRACKET ORNAMENT*/ + 0, /* U+002775: MEDIUM RIGHT CURLY BRACKET ORNAMENT*/ + 0, /* U+002776: DINGBAT NEGATIVE CIRCLED DIGIT ONE*/ + 0, /* U+002777: DINGBAT NEGATIVE CIRCLED DIGIT TWO*/ + 0, /* U+002778: DINGBAT NEGATIVE CIRCLED DIGIT THREE*/ + 0, /* U+002779: DINGBAT NEGATIVE CIRCLED DIGIT FOUR*/ + 0, /* U+00277a: DINGBAT NEGATIVE CIRCLED DIGIT FIVE*/ + 0, /* U+00277b: DINGBAT NEGATIVE CIRCLED DIGIT SIX*/ + 0, /* U+00277c: DINGBAT NEGATIVE CIRCLED DIGIT SEVEN*/ + 0, /* U+00277d: DINGBAT NEGATIVE CIRCLED DIGIT EIGHT*/ + 0, /* U+00277e: DINGBAT NEGATIVE CIRCLED DIGIT NINE*/ + 0, /* U+00277f: DINGBAT NEGATIVE CIRCLED NUMBER TEN*/ + 0, /* U+002780: DINGBAT CIRCLED SANS-SERIF DIGIT ONE*/ + 0, /* U+002781: DINGBAT CIRCLED SANS-SERIF DIGIT TWO*/ + 0, /* U+002782: DINGBAT CIRCLED SANS-SERIF DIGIT THREE*/ + 0, /* U+002783: DINGBAT CIRCLED SANS-SERIF DIGIT FOUR*/ + 0, /* U+002784: DINGBAT CIRCLED SANS-SERIF DIGIT FIVE*/ + 0, /* U+002785: DINGBAT CIRCLED SANS-SERIF DIGIT SIX*/ + 0, /* U+002786: DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN*/ + 0, /* U+002787: DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT*/ + 0, /* U+002788: DINGBAT CIRCLED SANS-SERIF DIGIT NINE*/ + 0, /* U+002789: DINGBAT CIRCLED SANS-SERIF NUMBER TEN*/ + 0, /* U+00278a: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE*/ + 0, /* U+00278b: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO*/ + 0, /* U+00278c: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE*/ + 0, /* U+00278d: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR*/ + 0, /* U+00278e: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE*/ + 0, /* U+00278f: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX*/ + 0, /* U+002790: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN*/ + 0, /* U+002791: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT*/ + 0, /* U+002792: DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE*/ + 0, /* U+002793: DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN*/ + 0, /* U+002794: HEAVY WIDE-HEADED RIGHTWARDS ARROW*/ + 0, /* U+002795: HEAVY PLUS SIGN*/ + 0, /* U+002796: HEAVY MINUS SIGN*/ + 0, /* U+002797: HEAVY DIVISION SIGN*/ + 0, /* U+002798: HEAVY SOUTH EAST ARROW*/ + 0, /* U+002799: HEAVY RIGHTWARDS ARROW*/ + 0, /* U+00279a: HEAVY NORTH EAST ARROW*/ + 0, /* U+00279b: DRAFTING POINT RIGHTWARDS ARROW*/ + 0, /* U+00279c: HEAVY ROUND-TIPPED RIGHTWARDS ARROW*/ + 0, /* U+00279d: TRIANGLE-HEADED RIGHTWARDS ARROW*/ + 0, /* U+00279e: HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW*/ + 0, /* U+00279f: DASHED TRIANGLE-HEADED RIGHTWARDS ARROW*/ + 0, /* U+0027a0: HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW*/ + 0, /* U+0027a1: BLACK RIGHTWARDS ARROW*/ + 0, /* U+0027a2: THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD*/ + 0, /* U+0027a3: THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD*/ + 0, /* U+0027a4: BLACK RIGHTWARDS ARROWHEAD*/ + 0, /* U+0027a5: HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW*/ + 0, /* U+0027a6: HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW*/ + 0, /* U+0027a7: SQUAT BLACK RIGHTWARDS ARROW*/ + 0, /* U+0027a8: HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW*/ + 0, /* U+0027a9: RIGHT-SHADED WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027aa: LEFT-SHADED WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027ab: BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027ac: FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027ad: HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027ae: HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027af: NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027b0: CURLY LOOP*/ + 0, /* U+0027b1: NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027b2: CIRCLED HEAVY WHITE RIGHTWARDS ARROW*/ + 0, /* U+0027b3: WHITE-FEATHERED RIGHTWARDS ARROW*/ + 0, /* U+0027b4: BLACK-FEATHERED SOUTH EAST ARROW*/ + 0, /* U+0027b5: BLACK-FEATHERED RIGHTWARDS ARROW*/ + 0, /* U+0027b6: BLACK-FEATHERED NORTH EAST ARROW*/ + 0, /* U+0027b7: HEAVY BLACK-FEATHERED SOUTH EAST ARROW*/ + 0, /* U+0027b8: HEAVY BLACK-FEATHERED RIGHTWARDS ARROW*/ + 0, /* U+0027b9: HEAVY BLACK-FEATHERED NORTH EAST ARROW*/ + 0, /* U+0027ba: TEARDROP-BARBED RIGHTWARDS ARROW*/ + 0, /* U+0027bb: HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW*/ + 0, /* U+0027bc: WEDGE-TAILED RIGHTWARDS ARROW*/ + 0, /* U+0027bd: HEAVY WEDGE-TAILED RIGHTWARDS ARROW*/ + 0, /* U+0027be: OPEN-OUTLINED RIGHTWARDS ARROW*/ + 0, /* U+0027bf: DOUBLE CURLY LOOP*/ + 0, /* U+0027c0: THREE DIMENSIONAL ANGLE*/ + 0, /* U+0027c1: WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE*/ + 0, /* U+0027c2: PERPENDICULAR*/ + 0, /* U+0027c3: OPEN SUBSET*/ + 0, /* U+0027c4: OPEN SUPERSET*/ + 0, /* U+0027c5: LEFT S-SHAPED BAG DELIMITER*/ + 0, /* U+0027c6: RIGHT S-SHAPED BAG DELIMITER*/ + 0, /* U+0027c7: OR WITH DOT INSIDE*/ + 0, /* U+0027c8: REVERSE SOLIDUS PRECEDING SUBSET*/ + 0, /* U+0027c9: SUPERSET PRECEDING SOLIDUS*/ + 0, /* U+0027ca: VERTICAL BAR WITH HORIZONTAL STROKE*/ + 0, /* U+0027cb: MATHEMATICAL RISING DIAGONAL*/ + 0, /* U+0027cc: LONG DIVISION*/ + 0, /* U+0027cd: MATHEMATICAL FALLING DIAGONAL*/ + 0, /* U+0027ce: SQUARED LOGICAL AND*/ + 0, /* U+0027cf: SQUARED LOGICAL OR*/ + 0, /* U+0027d0: WHITE DIAMOND WITH CENTRED DOT*/ + 0, /* U+0027d1: AND WITH DOT*/ + 0, /* U+0027d2: ELEMENT OF OPENING UPWARDS*/ + 0, /* U+0027d3: LOWER RIGHT CORNER WITH DOT*/ + 0, /* U+0027d4: UPPER LEFT CORNER WITH DOT*/ + 0, /* U+0027d5: LEFT OUTER JOIN*/ + 0, /* U+0027d6: RIGHT OUTER JOIN*/ + 0, /* U+0027d7: FULL OUTER JOIN*/ + 0, /* U+0027d8: LARGE UP TACK*/ + 0, /* U+0027d9: LARGE DOWN TACK*/ + 0, /* U+0027da: LEFT AND RIGHT DOUBLE TURNSTILE*/ + 0, /* U+0027db: LEFT AND RIGHT TACK*/ + 0, /* U+0027dc: LEFT MULTIMAP*/ + 0, /* U+0027dd: LONG RIGHT TACK*/ + 0, /* U+0027de: LONG LEFT TACK*/ + 0, /* U+0027df: UP TACK WITH CIRCLE ABOVE*/ + 0, /* U+0027e0: LOZENGE DIVIDED BY HORIZONTAL RULE*/ + 0, /* U+0027e1: WHITE CONCAVE-SIDED DIAMOND*/ + 0, /* U+0027e2: WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK*/ + 0, /* U+0027e3: WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK*/ + 0, /* U+0027e4: WHITE SQUARE WITH LEFTWARDS TICK*/ + 0, /* U+0027e5: WHITE SQUARE WITH RIGHTWARDS TICK*/ + 0, /* U+0027e6: MATHEMATICAL LEFT WHITE SQUARE BRACKET*/ + 0, /* U+0027e7: MATHEMATICAL RIGHT WHITE SQUARE BRACKET*/ + 0, /* U+0027e8: MATHEMATICAL LEFT ANGLE BRACKET*/ + 0, /* U+0027e9: MATHEMATICAL RIGHT ANGLE BRACKET*/ + 0, /* U+0027ea: MATHEMATICAL LEFT DOUBLE ANGLE BRACKET*/ + 0, /* U+0027eb: MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET*/ + 0, /* U+0027ec: MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET*/ + 0, /* U+0027ed: MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET*/ + 0, /* U+0027ee: MATHEMATICAL LEFT FLATTENED PARENTHESIS*/ + 0, /* U+0027ef: MATHEMATICAL RIGHT FLATTENED PARENTHESIS*/ + 0, /* U+0027f0: UPWARDS QUADRUPLE ARROW*/ + 0, /* U+0027f1: DOWNWARDS QUADRUPLE ARROW*/ + 0, /* U+0027f2: ANTICLOCKWISE GAPPED CIRCLE ARROW*/ + 0, /* U+0027f3: CLOCKWISE GAPPED CIRCLE ARROW*/ + 0, /* U+0027f4: RIGHT ARROW WITH CIRCLED PLUS*/ + 0, /* U+0027f5: LONG LEFTWARDS ARROW*/ + 0, /* U+0027f6: LONG RIGHTWARDS ARROW*/ + 0, /* U+0027f7: LONG LEFT RIGHT ARROW*/ + 0, /* U+0027f8: LONG LEFTWARDS DOUBLE ARROW*/ + 0, /* U+0027f9: LONG RIGHTWARDS DOUBLE ARROW*/ + 0, /* U+0027fa: LONG LEFT RIGHT DOUBLE ARROW*/ + 0, /* U+0027fb: LONG LEFTWARDS ARROW FROM BAR*/ + 0, /* U+0027fc: LONG RIGHTWARDS ARROW FROM BAR*/ + 0, /* U+0027fd: LONG LEFTWARDS DOUBLE ARROW FROM BAR*/ + 0, /* U+0027fe: LONG RIGHTWARDS DOUBLE ARROW FROM BAR*/ + 0, /* U+0027ff: LONG RIGHTWARDS SQUIGGLE ARROW*/ + 0, /* U+002800: BRAILLE PATTERN BLANK*/ + 0, /* U+002801: BRAILLE PATTERN DOTS-1*/ + 0, /* U+002802: BRAILLE PATTERN DOTS-2*/ + 0, /* U+002803: BRAILLE PATTERN DOTS-12*/ + 0, /* U+002804: BRAILLE PATTERN DOTS-3*/ + 0, /* U+002805: BRAILLE PATTERN DOTS-13*/ + 0, /* U+002806: BRAILLE PATTERN DOTS-23*/ + 0, /* U+002807: BRAILLE PATTERN DOTS-123*/ + 0, /* U+002808: BRAILLE PATTERN DOTS-4*/ + 0, /* U+002809: BRAILLE PATTERN DOTS-14*/ + 0, /* U+00280a: BRAILLE PATTERN DOTS-24*/ + 0, /* U+00280b: BRAILLE PATTERN DOTS-124*/ + 0, /* U+00280c: BRAILLE PATTERN DOTS-34*/ + 0, /* U+00280d: BRAILLE PATTERN DOTS-134*/ + 0, /* U+00280e: BRAILLE PATTERN DOTS-234*/ + 0, /* U+00280f: BRAILLE PATTERN DOTS-1234*/ + 0, /* U+002810: BRAILLE PATTERN DOTS-5*/ + 0, /* U+002811: BRAILLE PATTERN DOTS-15*/ + 0, /* U+002812: BRAILLE PATTERN DOTS-25*/ + 0, /* U+002813: BRAILLE PATTERN DOTS-125*/ + 0, /* U+002814: BRAILLE PATTERN DOTS-35*/ + 0, /* U+002815: BRAILLE PATTERN DOTS-135*/ + 0, /* U+002816: BRAILLE PATTERN DOTS-235*/ + 0, /* U+002817: BRAILLE PATTERN DOTS-1235*/ + 0, /* U+002818: BRAILLE PATTERN DOTS-45*/ + 0, /* U+002819: BRAILLE PATTERN DOTS-145*/ + 0, /* U+00281a: BRAILLE PATTERN DOTS-245*/ + 0, /* U+00281b: BRAILLE PATTERN DOTS-1245*/ + 0, /* U+00281c: BRAILLE PATTERN DOTS-345*/ + 0, /* U+00281d: BRAILLE PATTERN DOTS-1345*/ + 0, /* U+00281e: BRAILLE PATTERN DOTS-2345*/ + 0, /* U+00281f: BRAILLE PATTERN DOTS-12345*/ + 0, /* U+002820: BRAILLE PATTERN DOTS-6*/ + 0, /* U+002821: BRAILLE PATTERN DOTS-16*/ + 0, /* U+002822: BRAILLE PATTERN DOTS-26*/ + 0, /* U+002823: BRAILLE PATTERN DOTS-126*/ + 0, /* U+002824: BRAILLE PATTERN DOTS-36*/ + 0, /* U+002825: BRAILLE PATTERN DOTS-136*/ + 0, /* U+002826: BRAILLE PATTERN DOTS-236*/ + 0, /* U+002827: BRAILLE PATTERN DOTS-1236*/ + 0, /* U+002828: BRAILLE PATTERN DOTS-46*/ + 0, /* U+002829: BRAILLE PATTERN DOTS-146*/ + 0, /* U+00282a: BRAILLE PATTERN DOTS-246*/ + 0, /* U+00282b: BRAILLE PATTERN DOTS-1246*/ + 0, /* U+00282c: BRAILLE PATTERN DOTS-346*/ + 0, /* U+00282d: BRAILLE PATTERN DOTS-1346*/ + 0, /* U+00282e: BRAILLE PATTERN DOTS-2346*/ + 0, /* U+00282f: BRAILLE PATTERN DOTS-12346*/ + 0, /* U+002830: BRAILLE PATTERN DOTS-56*/ + 0, /* U+002831: BRAILLE PATTERN DOTS-156*/ + 0, /* U+002832: BRAILLE PATTERN DOTS-256*/ + 0, /* U+002833: BRAILLE PATTERN DOTS-1256*/ + 0, /* U+002834: BRAILLE PATTERN DOTS-356*/ + 0, /* U+002835: BRAILLE PATTERN DOTS-1356*/ + 0, /* U+002836: BRAILLE PATTERN DOTS-2356*/ + 0, /* U+002837: BRAILLE PATTERN DOTS-12356*/ + 0, /* U+002838: BRAILLE PATTERN DOTS-456*/ + 0, /* U+002839: BRAILLE PATTERN DOTS-1456*/ + 0, /* U+00283a: BRAILLE PATTERN DOTS-2456*/ + 0, /* U+00283b: BRAILLE PATTERN DOTS-12456*/ + 0, /* U+00283c: BRAILLE PATTERN DOTS-3456*/ + 0, /* U+00283d: BRAILLE PATTERN DOTS-13456*/ + 0, /* U+00283e: BRAILLE PATTERN DOTS-23456*/ + 0, /* U+00283f: BRAILLE PATTERN DOTS-123456*/ + 0, /* U+002840: BRAILLE PATTERN DOTS-7*/ + 0, /* U+002841: BRAILLE PATTERN DOTS-17*/ + 0, /* U+002842: BRAILLE PATTERN DOTS-27*/ + 0, /* U+002843: BRAILLE PATTERN DOTS-127*/ + 0, /* U+002844: BRAILLE PATTERN DOTS-37*/ + 0, /* U+002845: BRAILLE PATTERN DOTS-137*/ + 0, /* U+002846: BRAILLE PATTERN DOTS-237*/ + 0, /* U+002847: BRAILLE PATTERN DOTS-1237*/ + 0, /* U+002848: BRAILLE PATTERN DOTS-47*/ + 0, /* U+002849: BRAILLE PATTERN DOTS-147*/ + 0, /* U+00284a: BRAILLE PATTERN DOTS-247*/ + 0, /* U+00284b: BRAILLE PATTERN DOTS-1247*/ + 0, /* U+00284c: BRAILLE PATTERN DOTS-347*/ + 0, /* U+00284d: BRAILLE PATTERN DOTS-1347*/ + 0, /* U+00284e: BRAILLE PATTERN DOTS-2347*/ + 0, /* U+00284f: BRAILLE PATTERN DOTS-12347*/ + 0, /* U+002850: BRAILLE PATTERN DOTS-57*/ + 0, /* U+002851: BRAILLE PATTERN DOTS-157*/ + 0, /* U+002852: BRAILLE PATTERN DOTS-257*/ + 0, /* U+002853: BRAILLE PATTERN DOTS-1257*/ + 0, /* U+002854: BRAILLE PATTERN DOTS-357*/ + 0, /* U+002855: BRAILLE PATTERN DOTS-1357*/ + 0, /* U+002856: BRAILLE PATTERN DOTS-2357*/ + 0, /* U+002857: BRAILLE PATTERN DOTS-12357*/ + 0, /* U+002858: BRAILLE PATTERN DOTS-457*/ + 0, /* U+002859: BRAILLE PATTERN DOTS-1457*/ + 0, /* U+00285a: BRAILLE PATTERN DOTS-2457*/ + 0, /* U+00285b: BRAILLE PATTERN DOTS-12457*/ + 0, /* U+00285c: BRAILLE PATTERN DOTS-3457*/ + 0, /* U+00285d: BRAILLE PATTERN DOTS-13457*/ + 0, /* U+00285e: BRAILLE PATTERN DOTS-23457*/ + 0, /* U+00285f: BRAILLE PATTERN DOTS-123457*/ + 0, /* U+002860: BRAILLE PATTERN DOTS-67*/ + 0, /* U+002861: BRAILLE PATTERN DOTS-167*/ + 0, /* U+002862: BRAILLE PATTERN DOTS-267*/ + 0, /* U+002863: BRAILLE PATTERN DOTS-1267*/ + 0, /* U+002864: BRAILLE PATTERN DOTS-367*/ + 0, /* U+002865: BRAILLE PATTERN DOTS-1367*/ + 0, /* U+002866: BRAILLE PATTERN DOTS-2367*/ + 0, /* U+002867: BRAILLE PATTERN DOTS-12367*/ + 0, /* U+002868: BRAILLE PATTERN DOTS-467*/ + 0, /* U+002869: BRAILLE PATTERN DOTS-1467*/ + 0, /* U+00286a: BRAILLE PATTERN DOTS-2467*/ + 0, /* U+00286b: BRAILLE PATTERN DOTS-12467*/ + 0, /* U+00286c: BRAILLE PATTERN DOTS-3467*/ + 0, /* U+00286d: BRAILLE PATTERN DOTS-13467*/ + 0, /* U+00286e: BRAILLE PATTERN DOTS-23467*/ + 0, /* U+00286f: BRAILLE PATTERN DOTS-123467*/ + 0, /* U+002870: BRAILLE PATTERN DOTS-567*/ + 0, /* U+002871: BRAILLE PATTERN DOTS-1567*/ + 0, /* U+002872: BRAILLE PATTERN DOTS-2567*/ + 0, /* U+002873: BRAILLE PATTERN DOTS-12567*/ + 0, /* U+002874: BRAILLE PATTERN DOTS-3567*/ + 0, /* U+002875: BRAILLE PATTERN DOTS-13567*/ + 0, /* U+002876: BRAILLE PATTERN DOTS-23567*/ + 0, /* U+002877: BRAILLE PATTERN DOTS-123567*/ + 0, /* U+002878: BRAILLE PATTERN DOTS-4567*/ + 0, /* U+002879: BRAILLE PATTERN DOTS-14567*/ + 0, /* U+00287a: BRAILLE PATTERN DOTS-24567*/ + 0, /* U+00287b: BRAILLE PATTERN DOTS-124567*/ + 0, /* U+00287c: BRAILLE PATTERN DOTS-34567*/ + 0, /* U+00287d: BRAILLE PATTERN DOTS-134567*/ + 0, /* U+00287e: BRAILLE PATTERN DOTS-234567*/ + 0, /* U+00287f: BRAILLE PATTERN DOTS-1234567*/ + 0, /* U+002880: BRAILLE PATTERN DOTS-8*/ + 0, /* U+002881: BRAILLE PATTERN DOTS-18*/ + 0, /* U+002882: BRAILLE PATTERN DOTS-28*/ + 0, /* U+002883: BRAILLE PATTERN DOTS-128*/ + 0, /* U+002884: BRAILLE PATTERN DOTS-38*/ + 0, /* U+002885: BRAILLE PATTERN DOTS-138*/ + 0, /* U+002886: BRAILLE PATTERN DOTS-238*/ + 0, /* U+002887: BRAILLE PATTERN DOTS-1238*/ + 0, /* U+002888: BRAILLE PATTERN DOTS-48*/ + 0, /* U+002889: BRAILLE PATTERN DOTS-148*/ + 0, /* U+00288a: BRAILLE PATTERN DOTS-248*/ + 0, /* U+00288b: BRAILLE PATTERN DOTS-1248*/ + 0, /* U+00288c: BRAILLE PATTERN DOTS-348*/ + 0, /* U+00288d: BRAILLE PATTERN DOTS-1348*/ + 0, /* U+00288e: BRAILLE PATTERN DOTS-2348*/ + 0, /* U+00288f: BRAILLE PATTERN DOTS-12348*/ + 0, /* U+002890: BRAILLE PATTERN DOTS-58*/ + 0, /* U+002891: BRAILLE PATTERN DOTS-158*/ + 0, /* U+002892: BRAILLE PATTERN DOTS-258*/ + 0, /* U+002893: BRAILLE PATTERN DOTS-1258*/ + 0, /* U+002894: BRAILLE PATTERN DOTS-358*/ + 0, /* U+002895: BRAILLE PATTERN DOTS-1358*/ + 0, /* U+002896: BRAILLE PATTERN DOTS-2358*/ + 0, /* U+002897: BRAILLE PATTERN DOTS-12358*/ + 0, /* U+002898: BRAILLE PATTERN DOTS-458*/ + 0, /* U+002899: BRAILLE PATTERN DOTS-1458*/ + 0, /* U+00289a: BRAILLE PATTERN DOTS-2458*/ + 0, /* U+00289b: BRAILLE PATTERN DOTS-12458*/ + 0, /* U+00289c: BRAILLE PATTERN DOTS-3458*/ + 0, /* U+00289d: BRAILLE PATTERN DOTS-13458*/ + 0, /* U+00289e: BRAILLE PATTERN DOTS-23458*/ + 0, /* U+00289f: BRAILLE PATTERN DOTS-123458*/ + 0, /* U+0028a0: BRAILLE PATTERN DOTS-68*/ + 0, /* U+0028a1: BRAILLE PATTERN DOTS-168*/ + 0, /* U+0028a2: BRAILLE PATTERN DOTS-268*/ + 0, /* U+0028a3: BRAILLE PATTERN DOTS-1268*/ + 0, /* U+0028a4: BRAILLE PATTERN DOTS-368*/ + 0, /* U+0028a5: BRAILLE PATTERN DOTS-1368*/ + 0, /* U+0028a6: BRAILLE PATTERN DOTS-2368*/ + 0, /* U+0028a7: BRAILLE PATTERN DOTS-12368*/ + 0, /* U+0028a8: BRAILLE PATTERN DOTS-468*/ + 0, /* U+0028a9: BRAILLE PATTERN DOTS-1468*/ + 0, /* U+0028aa: BRAILLE PATTERN DOTS-2468*/ + 0, /* U+0028ab: BRAILLE PATTERN DOTS-12468*/ + 0, /* U+0028ac: BRAILLE PATTERN DOTS-3468*/ + 0, /* U+0028ad: BRAILLE PATTERN DOTS-13468*/ + 0, /* U+0028ae: BRAILLE PATTERN DOTS-23468*/ + 0, /* U+0028af: BRAILLE PATTERN DOTS-123468*/ + 0, /* U+0028b0: BRAILLE PATTERN DOTS-568*/ + 0, /* U+0028b1: BRAILLE PATTERN DOTS-1568*/ + 0, /* U+0028b2: BRAILLE PATTERN DOTS-2568*/ + 0, /* U+0028b3: BRAILLE PATTERN DOTS-12568*/ + 0, /* U+0028b4: BRAILLE PATTERN DOTS-3568*/ + 0, /* U+0028b5: BRAILLE PATTERN DOTS-13568*/ + 0, /* U+0028b6: BRAILLE PATTERN DOTS-23568*/ + 0, /* U+0028b7: BRAILLE PATTERN DOTS-123568*/ + 0, /* U+0028b8: BRAILLE PATTERN DOTS-4568*/ + 0, /* U+0028b9: BRAILLE PATTERN DOTS-14568*/ + 0, /* U+0028ba: BRAILLE PATTERN DOTS-24568*/ + 0, /* U+0028bb: BRAILLE PATTERN DOTS-124568*/ + 0, /* U+0028bc: BRAILLE PATTERN DOTS-34568*/ + 0, /* U+0028bd: BRAILLE PATTERN DOTS-134568*/ + 0, /* U+0028be: BRAILLE PATTERN DOTS-234568*/ + 0, /* U+0028bf: BRAILLE PATTERN DOTS-1234568*/ + 0, /* U+0028c0: BRAILLE PATTERN DOTS-78*/ + 0, /* U+0028c1: BRAILLE PATTERN DOTS-178*/ + 0, /* U+0028c2: BRAILLE PATTERN DOTS-278*/ + 0, /* U+0028c3: BRAILLE PATTERN DOTS-1278*/ + 0, /* U+0028c4: BRAILLE PATTERN DOTS-378*/ + 0, /* U+0028c5: BRAILLE PATTERN DOTS-1378*/ + 0, /* U+0028c6: BRAILLE PATTERN DOTS-2378*/ + 0, /* U+0028c7: BRAILLE PATTERN DOTS-12378*/ + 0, /* U+0028c8: BRAILLE PATTERN DOTS-478*/ + 0, /* U+0028c9: BRAILLE PATTERN DOTS-1478*/ + 0, /* U+0028ca: BRAILLE PATTERN DOTS-2478*/ + 0, /* U+0028cb: BRAILLE PATTERN DOTS-12478*/ + 0, /* U+0028cc: BRAILLE PATTERN DOTS-3478*/ + 0, /* U+0028cd: BRAILLE PATTERN DOTS-13478*/ + 0, /* U+0028ce: BRAILLE PATTERN DOTS-23478*/ + 0, /* U+0028cf: BRAILLE PATTERN DOTS-123478*/ + 0, /* U+0028d0: BRAILLE PATTERN DOTS-578*/ + 0, /* U+0028d1: BRAILLE PATTERN DOTS-1578*/ + 0, /* U+0028d2: BRAILLE PATTERN DOTS-2578*/ + 0, /* U+0028d3: BRAILLE PATTERN DOTS-12578*/ + 0, /* U+0028d4: BRAILLE PATTERN DOTS-3578*/ + 0, /* U+0028d5: BRAILLE PATTERN DOTS-13578*/ + 0, /* U+0028d6: BRAILLE PATTERN DOTS-23578*/ + 0, /* U+0028d7: BRAILLE PATTERN DOTS-123578*/ + 0, /* U+0028d8: BRAILLE PATTERN DOTS-4578*/ + 0, /* U+0028d9: BRAILLE PATTERN DOTS-14578*/ + 0, /* U+0028da: BRAILLE PATTERN DOTS-24578*/ + 0, /* U+0028db: BRAILLE PATTERN DOTS-124578*/ + 0, /* U+0028dc: BRAILLE PATTERN DOTS-34578*/ + 0, /* U+0028dd: BRAILLE PATTERN DOTS-134578*/ + 0, /* U+0028de: BRAILLE PATTERN DOTS-234578*/ + 0, /* U+0028df: BRAILLE PATTERN DOTS-1234578*/ + 0, /* U+0028e0: BRAILLE PATTERN DOTS-678*/ + 0, /* U+0028e1: BRAILLE PATTERN DOTS-1678*/ + 0, /* U+0028e2: BRAILLE PATTERN DOTS-2678*/ + 0, /* U+0028e3: BRAILLE PATTERN DOTS-12678*/ + 0, /* U+0028e4: BRAILLE PATTERN DOTS-3678*/ + 0, /* U+0028e5: BRAILLE PATTERN DOTS-13678*/ + 0, /* U+0028e6: BRAILLE PATTERN DOTS-23678*/ + 0, /* U+0028e7: BRAILLE PATTERN DOTS-123678*/ + 0, /* U+0028e8: BRAILLE PATTERN DOTS-4678*/ + 0, /* U+0028e9: BRAILLE PATTERN DOTS-14678*/ + 0, /* U+0028ea: BRAILLE PATTERN DOTS-24678*/ + 0, /* U+0028eb: BRAILLE PATTERN DOTS-124678*/ + 0, /* U+0028ec: BRAILLE PATTERN DOTS-34678*/ + 0, /* U+0028ed: BRAILLE PATTERN DOTS-134678*/ + 0, /* U+0028ee: BRAILLE PATTERN DOTS-234678*/ + 0, /* U+0028ef: BRAILLE PATTERN DOTS-1234678*/ + 0, /* U+0028f0: BRAILLE PATTERN DOTS-5678*/ + 0, /* U+0028f1: BRAILLE PATTERN DOTS-15678*/ + 0, /* U+0028f2: BRAILLE PATTERN DOTS-25678*/ + 0, /* U+0028f3: BRAILLE PATTERN DOTS-125678*/ + 0, /* U+0028f4: BRAILLE PATTERN DOTS-35678*/ + 0, /* U+0028f5: BRAILLE PATTERN DOTS-135678*/ + 0, /* U+0028f6: BRAILLE PATTERN DOTS-235678*/ + 0, /* U+0028f7: BRAILLE PATTERN DOTS-1235678*/ + 0, /* U+0028f8: BRAILLE PATTERN DOTS-45678*/ + 0, /* U+0028f9: BRAILLE PATTERN DOTS-145678*/ + 0, /* U+0028fa: BRAILLE PATTERN DOTS-245678*/ + 0, /* U+0028fb: BRAILLE PATTERN DOTS-1245678*/ + 0, /* U+0028fc: BRAILLE PATTERN DOTS-345678*/ + 0, /* U+0028fd: BRAILLE PATTERN DOTS-1345678*/ + 0, /* U+0028fe: BRAILLE PATTERN DOTS-2345678*/ + 0, /* U+0028ff: BRAILLE PATTERN DOTS-12345678*/ + 0, /* U+002900: RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE*/ + 0, /* U+002901: RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+002902: LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE*/ + 0, /* U+002903: RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE*/ + 0, /* U+002904: LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE*/ + 0, /* U+002905: RIGHTWARDS TWO-HEADED ARROW FROM BAR*/ + 0, /* U+002906: LEFTWARDS DOUBLE ARROW FROM BAR*/ + 0, /* U+002907: RIGHTWARDS DOUBLE ARROW FROM BAR*/ + 0, /* U+002908: DOWNWARDS ARROW WITH HORIZONTAL STROKE*/ + 0, /* U+002909: UPWARDS ARROW WITH HORIZONTAL STROKE*/ + 0, /* U+00290a: UPWARDS TRIPLE ARROW*/ + 0, /* U+00290b: DOWNWARDS TRIPLE ARROW*/ + 0, /* U+00290c: LEFTWARDS DOUBLE DASH ARROW*/ + 0, /* U+00290d: RIGHTWARDS DOUBLE DASH ARROW*/ + 0, /* U+00290e: LEFTWARDS TRIPLE DASH ARROW*/ + 0, /* U+00290f: RIGHTWARDS TRIPLE DASH ARROW*/ + 0, /* U+002910: RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW*/ + 0, /* U+002911: RIGHTWARDS ARROW WITH DOTTED STEM*/ + 0, /* U+002912: UPWARDS ARROW TO BAR*/ + 0, /* U+002913: DOWNWARDS ARROW TO BAR*/ + 0, /* U+002914: RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE*/ + 0, /* U+002915: RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+002916: RIGHTWARDS TWO-HEADED ARROW WITH TAIL*/ + 0, /* U+002917: RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE*/ + 0, /* U+002918: RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+002919: LEFTWARDS ARROW-TAIL*/ + 0, /* U+00291a: RIGHTWARDS ARROW-TAIL*/ + 0, /* U+00291b: LEFTWARDS DOUBLE ARROW-TAIL*/ + 0, /* U+00291c: RIGHTWARDS DOUBLE ARROW-TAIL*/ + 0, /* U+00291d: LEFTWARDS ARROW TO BLACK DIAMOND*/ + 0, /* U+00291e: RIGHTWARDS ARROW TO BLACK DIAMOND*/ + 0, /* U+00291f: LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND*/ + 0, /* U+002920: RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND*/ + 0, /* U+002921: NORTH WEST AND SOUTH EAST ARROW*/ + 0, /* U+002922: NORTH EAST AND SOUTH WEST ARROW*/ + 0, /* U+002923: NORTH WEST ARROW WITH HOOK*/ + 0, /* U+002924: NORTH EAST ARROW WITH HOOK*/ + 0, /* U+002925: SOUTH EAST ARROW WITH HOOK*/ + 0, /* U+002926: SOUTH WEST ARROW WITH HOOK*/ + 0, /* U+002927: NORTH WEST ARROW AND NORTH EAST ARROW*/ + 0, /* U+002928: NORTH EAST ARROW AND SOUTH EAST ARROW*/ + 0, /* U+002929: SOUTH EAST ARROW AND SOUTH WEST ARROW*/ + 0, /* U+00292a: SOUTH WEST ARROW AND NORTH WEST ARROW*/ + 0, /* U+00292b: RISING DIAGONAL CROSSING FALLING DIAGONAL*/ + 0, /* U+00292c: FALLING DIAGONAL CROSSING RISING DIAGONAL*/ + 0, /* U+00292d: SOUTH EAST ARROW CROSSING NORTH EAST ARROW*/ + 0, /* U+00292e: NORTH EAST ARROW CROSSING SOUTH EAST ARROW*/ + 0, /* U+00292f: FALLING DIAGONAL CROSSING NORTH EAST ARROW*/ + 0, /* U+002930: RISING DIAGONAL CROSSING SOUTH EAST ARROW*/ + 0, /* U+002931: NORTH EAST ARROW CROSSING NORTH WEST ARROW*/ + 0, /* U+002932: NORTH WEST ARROW CROSSING NORTH EAST ARROW*/ + 0, /* U+002933: WAVE ARROW POINTING DIRECTLY RIGHT*/ + 0, /* U+002934: ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS*/ + 0, /* U+002935: ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS*/ + 0, /* U+002936: ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS*/ + 0, /* U+002937: ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS*/ + 0, /* U+002938: RIGHT-SIDE ARC CLOCKWISE ARROW*/ + 0, /* U+002939: LEFT-SIDE ARC ANTICLOCKWISE ARROW*/ + 0, /* U+00293a: TOP ARC ANTICLOCKWISE ARROW*/ + 0, /* U+00293b: BOTTOM ARC ANTICLOCKWISE ARROW*/ + 0, /* U+00293c: TOP ARC CLOCKWISE ARROW WITH MINUS*/ + 0, /* U+00293d: TOP ARC ANTICLOCKWISE ARROW WITH PLUS*/ + 0, /* U+00293e: LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW*/ + 0, /* U+00293f: LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW*/ + 0, /* U+002940: ANTICLOCKWISE CLOSED CIRCLE ARROW*/ + 0, /* U+002941: CLOCKWISE CLOSED CIRCLE ARROW*/ + 0, /* U+002942: RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW*/ + 0, /* U+002943: LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW*/ + 0, /* U+002944: SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW*/ + 0, /* U+002945: RIGHTWARDS ARROW WITH PLUS BELOW*/ + 0, /* U+002946: LEFTWARDS ARROW WITH PLUS BELOW*/ + 0, /* U+002947: RIGHTWARDS ARROW THROUGH X*/ + 0, /* U+002948: LEFT RIGHT ARROW THROUGH SMALL CIRCLE*/ + 0, /* U+002949: UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE*/ + 0, /* U+00294a: LEFT BARB UP RIGHT BARB DOWN HARPOON*/ + 0, /* U+00294b: LEFT BARB DOWN RIGHT BARB UP HARPOON*/ + 0, /* U+00294c: UP BARB RIGHT DOWN BARB LEFT HARPOON*/ + 0, /* U+00294d: UP BARB LEFT DOWN BARB RIGHT HARPOON*/ + 0, /* U+00294e: LEFT BARB UP RIGHT BARB UP HARPOON*/ + 0, /* U+00294f: UP BARB RIGHT DOWN BARB RIGHT HARPOON*/ + 0, /* U+002950: LEFT BARB DOWN RIGHT BARB DOWN HARPOON*/ + 0, /* U+002951: UP BARB LEFT DOWN BARB LEFT HARPOON*/ + 0, /* U+002952: LEFTWARDS HARPOON WITH BARB UP TO BAR*/ + 0, /* U+002953: RIGHTWARDS HARPOON WITH BARB UP TO BAR*/ + 0, /* U+002954: UPWARDS HARPOON WITH BARB RIGHT TO BAR*/ + 0, /* U+002955: DOWNWARDS HARPOON WITH BARB RIGHT TO BAR*/ + 0, /* U+002956: LEFTWARDS HARPOON WITH BARB DOWN TO BAR*/ + 0, /* U+002957: RIGHTWARDS HARPOON WITH BARB DOWN TO BAR*/ + 0, /* U+002958: UPWARDS HARPOON WITH BARB LEFT TO BAR*/ + 0, /* U+002959: DOWNWARDS HARPOON WITH BARB LEFT TO BAR*/ + 0, /* U+00295a: LEFTWARDS HARPOON WITH BARB UP FROM BAR*/ + 0, /* U+00295b: RIGHTWARDS HARPOON WITH BARB UP FROM BAR*/ + 0, /* U+00295c: UPWARDS HARPOON WITH BARB RIGHT FROM BAR*/ + 0, /* U+00295d: DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR*/ + 0, /* U+00295e: LEFTWARDS HARPOON WITH BARB DOWN FROM BAR*/ + 0, /* U+00295f: RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR*/ + 0, /* U+002960: UPWARDS HARPOON WITH BARB LEFT FROM BAR*/ + 0, /* U+002961: DOWNWARDS HARPOON WITH BARB LEFT FROM BAR*/ + 0, /* U+002962: LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN*/ + 0, /* U+002963: UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT*/ + 0, /* U+002964: RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN*/ + 0, /* U+002965: DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT*/ + 0, /* U+002966: LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP*/ + 0, /* U+002967: LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN*/ + 0, /* U+002968: RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP*/ + 0, /* U+002969: RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN*/ + 0, /* U+00296a: LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH*/ + 0, /* U+00296b: LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH*/ + 0, /* U+00296c: RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH*/ + 0, /* U+00296d: RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH*/ + 0, /* U+00296e: UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT*/ + 0, /* U+00296f: DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT*/ + 0, /* U+002970: RIGHT DOUBLE ARROW WITH ROUNDED HEAD*/ + 0, /* U+002971: EQUALS SIGN ABOVE RIGHTWARDS ARROW*/ + 0, /* U+002972: TILDE OPERATOR ABOVE RIGHTWARDS ARROW*/ + 0, /* U+002973: LEFTWARDS ARROW ABOVE TILDE OPERATOR*/ + 0, /* U+002974: RIGHTWARDS ARROW ABOVE TILDE OPERATOR*/ + 0, /* U+002975: RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO*/ + 0, /* U+002976: LESS-THAN ABOVE LEFTWARDS ARROW*/ + 0, /* U+002977: LEFTWARDS ARROW THROUGH LESS-THAN*/ + 0, /* U+002978: GREATER-THAN ABOVE RIGHTWARDS ARROW*/ + 0, /* U+002979: SUBSET ABOVE RIGHTWARDS ARROW*/ + 0, /* U+00297a: LEFTWARDS ARROW THROUGH SUBSET*/ + 0, /* U+00297b: SUPERSET ABOVE LEFTWARDS ARROW*/ + 0, /* U+00297c: LEFT FISH TAIL*/ + 0, /* U+00297d: RIGHT FISH TAIL*/ + 0, /* U+00297e: UP FISH TAIL*/ + 0, /* U+00297f: DOWN FISH TAIL*/ + 0, /* U+002980: TRIPLE VERTICAL BAR DELIMITER*/ + 0, /* U+002981: Z NOTATION SPOT*/ + 0, /* U+002982: Z NOTATION TYPE COLON*/ + 0, /* U+002983: LEFT WHITE CURLY BRACKET*/ + 0, /* U+002984: RIGHT WHITE CURLY BRACKET*/ + 0, /* U+002985: LEFT WHITE PARENTHESIS*/ + 0, /* U+002986: RIGHT WHITE PARENTHESIS*/ + 0, /* U+002987: Z NOTATION LEFT IMAGE BRACKET*/ + 0, /* U+002988: Z NOTATION RIGHT IMAGE BRACKET*/ + 0, /* U+002989: Z NOTATION LEFT BINDING BRACKET*/ + 0, /* U+00298a: Z NOTATION RIGHT BINDING BRACKET*/ + 0, /* U+00298b: LEFT SQUARE BRACKET WITH UNDERBAR*/ + 0, /* U+00298c: RIGHT SQUARE BRACKET WITH UNDERBAR*/ + 0, /* U+00298d: LEFT SQUARE BRACKET WITH TICK IN TOP CORNER*/ + 0, /* U+00298e: RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER*/ + 0, /* U+00298f: LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER*/ + 0, /* U+002990: RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER*/ + 0, /* U+002991: LEFT ANGLE BRACKET WITH DOT*/ + 0, /* U+002992: RIGHT ANGLE BRACKET WITH DOT*/ + 0, /* U+002993: LEFT ARC LESS-THAN BRACKET*/ + 0, /* U+002994: RIGHT ARC GREATER-THAN BRACKET*/ + 0, /* U+002995: DOUBLE LEFT ARC GREATER-THAN BRACKET*/ + 0, /* U+002996: DOUBLE RIGHT ARC LESS-THAN BRACKET*/ + 0, /* U+002997: LEFT BLACK TORTOISE SHELL BRACKET*/ + 0, /* U+002998: RIGHT BLACK TORTOISE SHELL BRACKET*/ + 0, /* U+002999: DOTTED FENCE*/ + 0, /* U+00299a: VERTICAL ZIGZAG LINE*/ + 0, /* U+00299b: MEASURED ANGLE OPENING LEFT*/ + 0, /* U+00299c: RIGHT ANGLE VARIANT WITH SQUARE*/ + 0, /* U+00299d: MEASURED RIGHT ANGLE WITH DOT*/ + 0, /* U+00299e: ANGLE WITH S INSIDE*/ + 0, /* U+00299f: ACUTE ANGLE*/ + 0, /* U+0029a0: SPHERICAL ANGLE OPENING LEFT*/ + 0, /* U+0029a1: SPHERICAL ANGLE OPENING UP*/ + 0, /* U+0029a2: TURNED ANGLE*/ + 0, /* U+0029a3: REVERSED ANGLE*/ + 0, /* U+0029a4: ANGLE WITH UNDERBAR*/ + 0, /* U+0029a5: REVERSED ANGLE WITH UNDERBAR*/ + 0, /* U+0029a6: OBLIQUE ANGLE OPENING UP*/ + 0, /* U+0029a7: OBLIQUE ANGLE OPENING DOWN*/ + 0, /* U+0029a8: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT*/ + 0, /* U+0029a9: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT*/ + 0, /* U+0029aa: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT*/ + 0, /* U+0029ab: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT*/ + 0, /* U+0029ac: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP*/ + 0, /* U+0029ad: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP*/ + 0, /* U+0029ae: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN*/ + 0, /* U+0029af: MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN*/ + 0, /* U+0029b0: REVERSED EMPTY SET*/ + 0, /* U+0029b1: EMPTY SET WITH OVERBAR*/ + 0, /* U+0029b2: EMPTY SET WITH SMALL CIRCLE ABOVE*/ + 0, /* U+0029b3: EMPTY SET WITH RIGHT ARROW ABOVE*/ + 0, /* U+0029b4: EMPTY SET WITH LEFT ARROW ABOVE*/ + 0, /* U+0029b5: CIRCLE WITH HORIZONTAL BAR*/ + 0, /* U+0029b6: CIRCLED VERTICAL BAR*/ + 0, /* U+0029b7: CIRCLED PARALLEL*/ + 0, /* U+0029b8: CIRCLED REVERSE SOLIDUS*/ + 0, /* U+0029b9: CIRCLED PERPENDICULAR*/ + 0, /* U+0029ba: CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR*/ + 0, /* U+0029bb: CIRCLE WITH SUPERIMPOSED X*/ + 0, /* U+0029bc: CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN*/ + 0, /* U+0029bd: UP ARROW THROUGH CIRCLE*/ + 0, /* U+0029be: CIRCLED WHITE BULLET*/ + 0, /* U+0029bf: CIRCLED BULLET*/ + 0, /* U+0029c0: CIRCLED LESS-THAN*/ + 0, /* U+0029c1: CIRCLED GREATER-THAN*/ + 0, /* U+0029c2: CIRCLE WITH SMALL CIRCLE TO THE RIGHT*/ + 0, /* U+0029c3: CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT*/ + 0, /* U+0029c4: SQUARED RISING DIAGONAL SLASH*/ + 0, /* U+0029c5: SQUARED FALLING DIAGONAL SLASH*/ + 0, /* U+0029c6: SQUARED ASTERISK*/ + 0, /* U+0029c7: SQUARED SMALL CIRCLE*/ + 0, /* U+0029c8: SQUARED SQUARE*/ + 0, /* U+0029c9: TWO JOINED SQUARES*/ + 0, /* U+0029ca: TRIANGLE WITH DOT ABOVE*/ + 0, /* U+0029cb: TRIANGLE WITH UNDERBAR*/ + 0, /* U+0029cc: S IN TRIANGLE*/ + 0, /* U+0029cd: TRIANGLE WITH SERIFS AT BOTTOM*/ + 0, /* U+0029ce: RIGHT TRIANGLE ABOVE LEFT TRIANGLE*/ + 0, /* U+0029cf: LEFT TRIANGLE BESIDE VERTICAL BAR*/ + 0, /* U+0029d0: VERTICAL BAR BESIDE RIGHT TRIANGLE*/ + 0, /* U+0029d1: BOWTIE WITH LEFT HALF BLACK*/ + 0, /* U+0029d2: BOWTIE WITH RIGHT HALF BLACK*/ + 0, /* U+0029d3: BLACK BOWTIE*/ + 0, /* U+0029d4: TIMES WITH LEFT HALF BLACK*/ + 0, /* U+0029d5: TIMES WITH RIGHT HALF BLACK*/ + 0, /* U+0029d6: WHITE HOURGLASS*/ + 0, /* U+0029d7: BLACK HOURGLASS*/ + 0, /* U+0029d8: LEFT WIGGLY FENCE*/ + 0, /* U+0029d9: RIGHT WIGGLY FENCE*/ + 0, /* U+0029da: LEFT DOUBLE WIGGLY FENCE*/ + 0, /* U+0029db: RIGHT DOUBLE WIGGLY FENCE*/ + 0, /* U+0029dc: INCOMPLETE INFINITY*/ + 0, /* U+0029dd: TIE OVER INFINITY*/ + 0, /* U+0029de: INFINITY NEGATED WITH VERTICAL BAR*/ + 0, /* U+0029df: DOUBLE-ENDED MULTIMAP*/ + 0, /* U+0029e0: SQUARE WITH CONTOURED OUTLINE*/ + 0, /* U+0029e1: INCREASES AS*/ + 0, /* U+0029e2: SHUFFLE PRODUCT*/ + 0, /* U+0029e3: EQUALS SIGN AND SLANTED PARALLEL*/ + 0, /* U+0029e4: EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE*/ + 0, /* U+0029e5: IDENTICAL TO AND SLANTED PARALLEL*/ + 0, /* U+0029e6: GLEICH STARK*/ + 0, /* U+0029e7: THERMODYNAMIC*/ + 0, /* U+0029e8: DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK*/ + 0, /* U+0029e9: DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK*/ + 0, /* U+0029ea: BLACK DIAMOND WITH DOWN ARROW*/ + 0, /* U+0029eb: BLACK LOZENGE*/ + 0, /* U+0029ec: WHITE CIRCLE WITH DOWN ARROW*/ + 0, /* U+0029ed: BLACK CIRCLE WITH DOWN ARROW*/ + 0, /* U+0029ee: ERROR-BARRED WHITE SQUARE*/ + 0, /* U+0029ef: ERROR-BARRED BLACK SQUARE*/ + 0, /* U+0029f0: ERROR-BARRED WHITE DIAMOND*/ + 0, /* U+0029f1: ERROR-BARRED BLACK DIAMOND*/ + 0, /* U+0029f2: ERROR-BARRED WHITE CIRCLE*/ + 0, /* U+0029f3: ERROR-BARRED BLACK CIRCLE*/ + 0, /* U+0029f4: RULE-DELAYED*/ + 0, /* U+0029f5: REVERSE SOLIDUS OPERATOR*/ + 0, /* U+0029f6: SOLIDUS WITH OVERBAR*/ + 0, /* U+0029f7: REVERSE SOLIDUS WITH HORIZONTAL STROKE*/ + 0, /* U+0029f8: BIG SOLIDUS*/ + 0, /* U+0029f9: BIG REVERSE SOLIDUS*/ + 0, /* U+0029fa: DOUBLE PLUS*/ + 0, /* U+0029fb: TRIPLE PLUS*/ + 0, /* U+0029fc: LEFT-POINTING CURVED ANGLE BRACKET*/ + 0, /* U+0029fd: RIGHT-POINTING CURVED ANGLE BRACKET*/ + 0, /* U+0029fe: TINY*/ + 0, /* U+0029ff: MINY*/ + 0, /* U+002a00: N-ARY CIRCLED DOT OPERATOR*/ + 0, /* U+002a01: N-ARY CIRCLED PLUS OPERATOR*/ + 0, /* U+002a02: N-ARY CIRCLED TIMES OPERATOR*/ + 0, /* U+002a03: N-ARY UNION OPERATOR WITH DOT*/ + 0, /* U+002a04: N-ARY UNION OPERATOR WITH PLUS*/ + 0, /* U+002a05: N-ARY SQUARE INTERSECTION OPERATOR*/ + 0, /* U+002a06: N-ARY SQUARE UNION OPERATOR*/ + 0, /* U+002a07: TWO LOGICAL AND OPERATOR*/ + 0, /* U+002a08: TWO LOGICAL OR OPERATOR*/ + 0, /* U+002a09: N-ARY TIMES OPERATOR*/ + 0, /* U+002a0a: MODULO TWO SUM*/ + 0, /* U+002a0b: SUMMATION WITH INTEGRAL*/ + 0, /* U+002a0c: QUADRUPLE INTEGRAL OPERATOR*/ + 0, /* U+002a0d: FINITE PART INTEGRAL*/ + 0, /* U+002a0e: INTEGRAL WITH DOUBLE STROKE*/ + 0, /* U+002a0f: INTEGRAL AVERAGE WITH SLASH*/ + 0, /* U+002a10: CIRCULATION FUNCTION*/ + 0, /* U+002a11: ANTICLOCKWISE INTEGRATION*/ + 0, /* U+002a12: LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE*/ + 0, /* U+002a13: LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE*/ + 0, /* U+002a14: LINE INTEGRATION NOT INCLUDING THE POLE*/ + 0, /* U+002a15: INTEGRAL AROUND A POINT OPERATOR*/ + 0, /* U+002a16: QUATERNION INTEGRAL OPERATOR*/ + 0, /* U+002a17: INTEGRAL WITH LEFTWARDS ARROW WITH HOOK*/ + 0, /* U+002a18: INTEGRAL WITH TIMES SIGN*/ + 0, /* U+002a19: INTEGRAL WITH INTERSECTION*/ + 0, /* U+002a1a: INTEGRAL WITH UNION*/ + 0, /* U+002a1b: INTEGRAL WITH OVERBAR*/ + 0, /* U+002a1c: INTEGRAL WITH UNDERBAR*/ + 0, /* U+002a1d: JOIN*/ + 0, /* U+002a1e: LARGE LEFT TRIANGLE OPERATOR*/ + 0, /* U+002a1f: Z NOTATION SCHEMA COMPOSITION*/ + 0, /* U+002a20: Z NOTATION SCHEMA PIPING*/ + 0, /* U+002a21: Z NOTATION SCHEMA PROJECTION*/ + 0, /* U+002a22: PLUS SIGN WITH SMALL CIRCLE ABOVE*/ + 0, /* U+002a23: PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE*/ + 0, /* U+002a24: PLUS SIGN WITH TILDE ABOVE*/ + 0, /* U+002a25: PLUS SIGN WITH DOT BELOW*/ + 0, /* U+002a26: PLUS SIGN WITH TILDE BELOW*/ + 0, /* U+002a27: PLUS SIGN WITH SUBSCRIPT TWO*/ + 0, /* U+002a28: PLUS SIGN WITH BLACK TRIANGLE*/ + 0, /* U+002a29: MINUS SIGN WITH COMMA ABOVE*/ + 0, /* U+002a2a: MINUS SIGN WITH DOT BELOW*/ + 0, /* U+002a2b: MINUS SIGN WITH FALLING DOTS*/ + 0, /* U+002a2c: MINUS SIGN WITH RISING DOTS*/ + 0, /* U+002a2d: PLUS SIGN IN LEFT HALF CIRCLE*/ + 0, /* U+002a2e: PLUS SIGN IN RIGHT HALF CIRCLE*/ + 0, /* U+002a2f: VECTOR OR CROSS PRODUCT*/ + 0, /* U+002a30: MULTIPLICATION SIGN WITH DOT ABOVE*/ + 0, /* U+002a31: MULTIPLICATION SIGN WITH UNDERBAR*/ + 0, /* U+002a32: SEMIDIRECT PRODUCT WITH BOTTOM CLOSED*/ + 0, /* U+002a33: SMASH PRODUCT*/ + 0, /* U+002a34: MULTIPLICATION SIGN IN LEFT HALF CIRCLE*/ + 0, /* U+002a35: MULTIPLICATION SIGN IN RIGHT HALF CIRCLE*/ + 0, /* U+002a36: CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT*/ + 0, /* U+002a37: MULTIPLICATION SIGN IN DOUBLE CIRCLE*/ + 0, /* U+002a38: CIRCLED DIVISION SIGN*/ + 0, /* U+002a39: PLUS SIGN IN TRIANGLE*/ + 0, /* U+002a3a: MINUS SIGN IN TRIANGLE*/ + 0, /* U+002a3b: MULTIPLICATION SIGN IN TRIANGLE*/ + 0, /* U+002a3c: INTERIOR PRODUCT*/ + 0, /* U+002a3d: RIGHTHAND INTERIOR PRODUCT*/ + 0, /* U+002a3e: Z NOTATION RELATIONAL COMPOSITION*/ + 0, /* U+002a3f: AMALGAMATION OR COPRODUCT*/ + 0, /* U+002a40: INTERSECTION WITH DOT*/ + 0, /* U+002a41: UNION WITH MINUS SIGN*/ + 0, /* U+002a42: UNION WITH OVERBAR*/ + 0, /* U+002a43: INTERSECTION WITH OVERBAR*/ + 0, /* U+002a44: INTERSECTION WITH LOGICAL AND*/ + 0, /* U+002a45: UNION WITH LOGICAL OR*/ + 0, /* U+002a46: UNION ABOVE INTERSECTION*/ + 0, /* U+002a47: INTERSECTION ABOVE UNION*/ + 0, /* U+002a48: UNION ABOVE BAR ABOVE INTERSECTION*/ + 0, /* U+002a49: INTERSECTION ABOVE BAR ABOVE UNION*/ + 0, /* U+002a4a: UNION BESIDE AND JOINED WITH UNION*/ + 0, /* U+002a4b: INTERSECTION BESIDE AND JOINED WITH INTERSECTION*/ + 0, /* U+002a4c: CLOSED UNION WITH SERIFS*/ + 0, /* U+002a4d: CLOSED INTERSECTION WITH SERIFS*/ + 0, /* U+002a4e: DOUBLE SQUARE INTERSECTION*/ + 0, /* U+002a4f: DOUBLE SQUARE UNION*/ + 0, /* U+002a50: CLOSED UNION WITH SERIFS AND SMASH PRODUCT*/ + 0, /* U+002a51: LOGICAL AND WITH DOT ABOVE*/ + 0, /* U+002a52: LOGICAL OR WITH DOT ABOVE*/ + 0, /* U+002a53: DOUBLE LOGICAL AND*/ + 0, /* U+002a54: DOUBLE LOGICAL OR*/ + 0, /* U+002a55: TWO INTERSECTING LOGICAL AND*/ + 0, /* U+002a56: TWO INTERSECTING LOGICAL OR*/ + 0, /* U+002a57: SLOPING LARGE OR*/ + 0, /* U+002a58: SLOPING LARGE AND*/ + 0, /* U+002a59: LOGICAL OR OVERLAPPING LOGICAL AND*/ + 0, /* U+002a5a: LOGICAL AND WITH MIDDLE STEM*/ + 0, /* U+002a5b: LOGICAL OR WITH MIDDLE STEM*/ + 0, /* U+002a5c: LOGICAL AND WITH HORIZONTAL DASH*/ + 0, /* U+002a5d: LOGICAL OR WITH HORIZONTAL DASH*/ + 0, /* U+002a5e: LOGICAL AND WITH DOUBLE OVERBAR*/ + 0, /* U+002a5f: LOGICAL AND WITH UNDERBAR*/ + 0, /* U+002a60: LOGICAL AND WITH DOUBLE UNDERBAR*/ + 0, /* U+002a61: SMALL VEE WITH UNDERBAR*/ + 0, /* U+002a62: LOGICAL OR WITH DOUBLE OVERBAR*/ + 0, /* U+002a63: LOGICAL OR WITH DOUBLE UNDERBAR*/ + 0, /* U+002a64: Z NOTATION DOMAIN ANTIRESTRICTION*/ + 0, /* U+002a65: Z NOTATION RANGE ANTIRESTRICTION*/ + 0, /* U+002a66: EQUALS SIGN WITH DOT BELOW*/ + 0, /* U+002a67: IDENTICAL WITH DOT ABOVE*/ + 0, /* U+002a68: TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+002a69: TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE*/ + 0, /* U+002a6a: TILDE OPERATOR WITH DOT ABOVE*/ + 0, /* U+002a6b: TILDE OPERATOR WITH RISING DOTS*/ + 0, /* U+002a6c: SIMILAR MINUS SIMILAR*/ + 0, /* U+002a6d: CONGRUENT WITH DOT ABOVE*/ + 0, /* U+002a6e: EQUALS WITH ASTERISK*/ + 0, /* U+002a6f: ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT*/ + 0, /* U+002a70: APPROXIMATELY EQUAL OR EQUAL TO*/ + 0, /* U+002a71: EQUALS SIGN ABOVE PLUS SIGN*/ + 0, /* U+002a72: PLUS SIGN ABOVE EQUALS SIGN*/ + 0, /* U+002a73: EQUALS SIGN ABOVE TILDE OPERATOR*/ + 0, /* U+002a74: DOUBLE COLON EQUAL*/ + 0, /* U+002a75: TWO CONSECUTIVE EQUALS SIGNS*/ + 0, /* U+002a76: THREE CONSECUTIVE EQUALS SIGNS*/ + 0, /* U+002a77: EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW*/ + 0, /* U+002a78: EQUIVALENT WITH FOUR DOTS ABOVE*/ + 0, /* U+002a79: LESS-THAN WITH CIRCLE INSIDE*/ + 0, /* U+002a7a: GREATER-THAN WITH CIRCLE INSIDE*/ + 0, /* U+002a7b: LESS-THAN WITH QUESTION MARK ABOVE*/ + 0, /* U+002a7c: GREATER-THAN WITH QUESTION MARK ABOVE*/ + 0, /* U+002a7d: LESS-THAN OR SLANTED EQUAL TO*/ + 0, /* U+002a7e: GREATER-THAN OR SLANTED EQUAL TO*/ + 0, /* U+002a7f: LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE*/ + 0, /* U+002a80: GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE*/ + 0, /* U+002a81: LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE*/ + 0, /* U+002a82: GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE*/ + 0, /* U+002a83: LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT*/ + 0, /* U+002a84: GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT*/ + 0, /* U+002a85: LESS-THAN OR APPROXIMATE*/ + 0, /* U+002a86: GREATER-THAN OR APPROXIMATE*/ + 0, /* U+002a87: LESS-THAN AND SINGLE-LINE NOT EQUAL TO*/ + 0, /* U+002a88: GREATER-THAN AND SINGLE-LINE NOT EQUAL TO*/ + 0, /* U+002a89: LESS-THAN AND NOT APPROXIMATE*/ + 0, /* U+002a8a: GREATER-THAN AND NOT APPROXIMATE*/ + 0, /* U+002a8b: LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN*/ + 0, /* U+002a8c: GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN*/ + 0, /* U+002a8d: LESS-THAN ABOVE SIMILAR OR EQUAL*/ + 0, /* U+002a8e: GREATER-THAN ABOVE SIMILAR OR EQUAL*/ + 0, /* U+002a8f: LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN*/ + 0, /* U+002a90: GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN*/ + 0, /* U+002a91: LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL*/ + 0, /* U+002a92: GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL*/ + 0, /* U+002a93: LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL*/ + 0, /* U+002a94: GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL*/ + 0, /* U+002a95: SLANTED EQUAL TO OR LESS-THAN*/ + 0, /* U+002a96: SLANTED EQUAL TO OR GREATER-THAN*/ + 0, /* U+002a97: SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE*/ + 0, /* U+002a98: SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE*/ + 0, /* U+002a99: DOUBLE-LINE EQUAL TO OR LESS-THAN*/ + 0, /* U+002a9a: DOUBLE-LINE EQUAL TO OR GREATER-THAN*/ + 0, /* U+002a9b: DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN*/ + 0, /* U+002a9c: DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN*/ + 0, /* U+002a9d: SIMILAR OR LESS-THAN*/ + 0, /* U+002a9e: SIMILAR OR GREATER-THAN*/ + 0, /* U+002a9f: SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN*/ + 0, /* U+002aa0: SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN*/ + 0, /* U+002aa1: DOUBLE NESTED LESS-THAN*/ + 0, /* U+002aa2: DOUBLE NESTED GREATER-THAN*/ + 0, /* U+002aa3: DOUBLE NESTED LESS-THAN WITH UNDERBAR*/ + 0, /* U+002aa4: GREATER-THAN OVERLAPPING LESS-THAN*/ + 0, /* U+002aa5: GREATER-THAN BESIDE LESS-THAN*/ + 0, /* U+002aa6: LESS-THAN CLOSED BY CURVE*/ + 0, /* U+002aa7: GREATER-THAN CLOSED BY CURVE*/ + 0, /* U+002aa8: LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL*/ + 0, /* U+002aa9: GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL*/ + 0, /* U+002aaa: SMALLER THAN*/ + 0, /* U+002aab: LARGER THAN*/ + 0, /* U+002aac: SMALLER THAN OR EQUAL TO*/ + 0, /* U+002aad: LARGER THAN OR EQUAL TO*/ + 0, /* U+002aae: EQUALS SIGN WITH BUMPY ABOVE*/ + 0, /* U+002aaf: PRECEDES ABOVE SINGLE-LINE EQUALS SIGN*/ + 0, /* U+002ab0: SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN*/ + 0, /* U+002ab1: PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO*/ + 0, /* U+002ab2: SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO*/ + 0, /* U+002ab3: PRECEDES ABOVE EQUALS SIGN*/ + 0, /* U+002ab4: SUCCEEDS ABOVE EQUALS SIGN*/ + 0, /* U+002ab5: PRECEDES ABOVE NOT EQUAL TO*/ + 0, /* U+002ab6: SUCCEEDS ABOVE NOT EQUAL TO*/ + 0, /* U+002ab7: PRECEDES ABOVE ALMOST EQUAL TO*/ + 0, /* U+002ab8: SUCCEEDS ABOVE ALMOST EQUAL TO*/ + 0, /* U+002ab9: PRECEDES ABOVE NOT ALMOST EQUAL TO*/ + 0, /* U+002aba: SUCCEEDS ABOVE NOT ALMOST EQUAL TO*/ + 0, /* U+002abb: DOUBLE PRECEDES*/ + 0, /* U+002abc: DOUBLE SUCCEEDS*/ + 0, /* U+002abd: SUBSET WITH DOT*/ + 0, /* U+002abe: SUPERSET WITH DOT*/ + 0, /* U+002abf: SUBSET WITH PLUS SIGN BELOW*/ + 0, /* U+002ac0: SUPERSET WITH PLUS SIGN BELOW*/ + 0, /* U+002ac1: SUBSET WITH MULTIPLICATION SIGN BELOW*/ + 0, /* U+002ac2: SUPERSET WITH MULTIPLICATION SIGN BELOW*/ + 0, /* U+002ac3: SUBSET OF OR EQUAL TO WITH DOT ABOVE*/ + 0, /* U+002ac4: SUPERSET OF OR EQUAL TO WITH DOT ABOVE*/ + 0, /* U+002ac5: SUBSET OF ABOVE EQUALS SIGN*/ + 0, /* U+002ac6: SUPERSET OF ABOVE EQUALS SIGN*/ + 0, /* U+002ac7: SUBSET OF ABOVE TILDE OPERATOR*/ + 0, /* U+002ac8: SUPERSET OF ABOVE TILDE OPERATOR*/ + 0, /* U+002ac9: SUBSET OF ABOVE ALMOST EQUAL TO*/ + 0, /* U+002aca: SUPERSET OF ABOVE ALMOST EQUAL TO*/ + 0, /* U+002acb: SUBSET OF ABOVE NOT EQUAL TO*/ + 0, /* U+002acc: SUPERSET OF ABOVE NOT EQUAL TO*/ + 0, /* U+002acd: SQUARE LEFT OPEN BOX OPERATOR*/ + 0, /* U+002ace: SQUARE RIGHT OPEN BOX OPERATOR*/ + 0, /* U+002acf: CLOSED SUBSET*/ + 0, /* U+002ad0: CLOSED SUPERSET*/ + 0, /* U+002ad1: CLOSED SUBSET OR EQUAL TO*/ + 0, /* U+002ad2: CLOSED SUPERSET OR EQUAL TO*/ + 0, /* U+002ad3: SUBSET ABOVE SUPERSET*/ + 0, /* U+002ad4: SUPERSET ABOVE SUBSET*/ + 0, /* U+002ad5: SUBSET ABOVE SUBSET*/ + 0, /* U+002ad6: SUPERSET ABOVE SUPERSET*/ + 0, /* U+002ad7: SUPERSET BESIDE SUBSET*/ + 0, /* U+002ad8: SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET*/ + 0, /* U+002ad9: ELEMENT OF OPENING DOWNWARDS*/ + 0, /* U+002ada: PITCHFORK WITH TEE TOP*/ + 0, /* U+002adb: TRANSVERSAL INTERSECTION*/ + 0, /* U+002adc: FORKING*/ + 0, /* U+002add: NONFORKING*/ + 0, /* U+002ade: SHORT LEFT TACK*/ + 0, /* U+002adf: SHORT DOWN TACK*/ + 0, /* U+002ae0: SHORT UP TACK*/ + 0, /* U+002ae1: PERPENDICULAR WITH S*/ + 0, /* U+002ae2: VERTICAL BAR TRIPLE RIGHT TURNSTILE*/ + 0, /* U+002ae3: DOUBLE VERTICAL BAR LEFT TURNSTILE*/ + 0, /* U+002ae4: VERTICAL BAR DOUBLE LEFT TURNSTILE*/ + 0, /* U+002ae5: DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE*/ + 0, /* U+002ae6: LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL*/ + 0, /* U+002ae7: SHORT DOWN TACK WITH OVERBAR*/ + 0, /* U+002ae8: SHORT UP TACK WITH UNDERBAR*/ + 0, /* U+002ae9: SHORT UP TACK ABOVE SHORT DOWN TACK*/ + 0, /* U+002aea: DOUBLE DOWN TACK*/ + 0, /* U+002aeb: DOUBLE UP TACK*/ + 0, /* U+002aec: DOUBLE STROKE NOT SIGN*/ + 0, /* U+002aed: REVERSED DOUBLE STROKE NOT SIGN*/ + 0, /* U+002aee: DOES NOT DIVIDE WITH REVERSED NEGATION SLASH*/ + 0, /* U+002aef: VERTICAL LINE WITH CIRCLE ABOVE*/ + 0, /* U+002af0: VERTICAL LINE WITH CIRCLE BELOW*/ + 0, /* U+002af1: DOWN TACK WITH CIRCLE BELOW*/ + 0, /* U+002af2: PARALLEL WITH HORIZONTAL STROKE*/ + 0, /* U+002af3: PARALLEL WITH TILDE OPERATOR*/ + 0, /* U+002af4: TRIPLE VERTICAL BAR BINARY RELATION*/ + 0, /* U+002af5: TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE*/ + 0, /* U+002af6: TRIPLE COLON OPERATOR*/ + 0, /* U+002af7: TRIPLE NESTED LESS-THAN*/ + 0, /* U+002af8: TRIPLE NESTED GREATER-THAN*/ + 0, /* U+002af9: DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO*/ + 0, /* U+002afa: DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO*/ + 0, /* U+002afb: TRIPLE SOLIDUS BINARY RELATION*/ + 0, /* U+002afc: LARGE TRIPLE VERTICAL BAR OPERATOR*/ + 0, /* U+002afd: DOUBLE SOLIDUS OPERATOR*/ + 0, /* U+002afe: WHITE VERTICAL BAR*/ + 0, /* U+002aff: N-ARY WHITE VERTICAL BAR*/ + 0, /* U+002b00: NORTH EAST WHITE ARROW*/ + 0, /* U+002b01: NORTH WEST WHITE ARROW*/ + 0, /* U+002b02: SOUTH EAST WHITE ARROW*/ + 0, /* U+002b03: SOUTH WEST WHITE ARROW*/ + 0, /* U+002b04: LEFT RIGHT WHITE ARROW*/ + 0, /* U+002b05: LEFTWARDS BLACK ARROW*/ + 0, /* U+002b06: UPWARDS BLACK ARROW*/ + 0, /* U+002b07: DOWNWARDS BLACK ARROW*/ + 0, /* U+002b08: NORTH EAST BLACK ARROW*/ + 0, /* U+002b09: NORTH WEST BLACK ARROW*/ + 0, /* U+002b0a: SOUTH EAST BLACK ARROW*/ + 0, /* U+002b0b: SOUTH WEST BLACK ARROW*/ + 0, /* U+002b0c: LEFT RIGHT BLACK ARROW*/ + 0, /* U+002b0d: UP DOWN BLACK ARROW*/ + 0, /* U+002b0e: RIGHTWARDS ARROW WITH TIP DOWNWARDS*/ + 0, /* U+002b0f: RIGHTWARDS ARROW WITH TIP UPWARDS*/ + 0, /* U+002b10: LEFTWARDS ARROW WITH TIP DOWNWARDS*/ + 0, /* U+002b11: LEFTWARDS ARROW WITH TIP UPWARDS*/ + 0, /* U+002b12: SQUARE WITH TOP HALF BLACK*/ + 0, /* U+002b13: SQUARE WITH BOTTOM HALF BLACK*/ + 0, /* U+002b14: SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK*/ + 0, /* U+002b15: SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK*/ + 0, /* U+002b16: DIAMOND WITH LEFT HALF BLACK*/ + 0, /* U+002b17: DIAMOND WITH RIGHT HALF BLACK*/ + 0, /* U+002b18: DIAMOND WITH TOP HALF BLACK*/ + 0, /* U+002b19: DIAMOND WITH BOTTOM HALF BLACK*/ + 0, /* U+002b1a: DOTTED SQUARE*/ + 0, /* U+002b1b: BLACK LARGE SQUARE*/ + 0, /* U+002b1c: WHITE LARGE SQUARE*/ + 0, /* U+002b1d: BLACK VERY SMALL SQUARE*/ + 0, /* U+002b1e: WHITE VERY SMALL SQUARE*/ + 0, /* U+002b1f: BLACK PENTAGON*/ + 0, /* U+002b20: WHITE PENTAGON*/ + 0, /* U+002b21: WHITE HEXAGON*/ + 0, /* U+002b22: BLACK HEXAGON*/ + 0, /* U+002b23: HORIZONTAL BLACK HEXAGON*/ + 0, /* U+002b24: BLACK LARGE CIRCLE*/ + 0, /* U+002b25: BLACK MEDIUM DIAMOND*/ + 0, /* U+002b26: WHITE MEDIUM DIAMOND*/ + 0, /* U+002b27: BLACK MEDIUM LOZENGE*/ + 0, /* U+002b28: WHITE MEDIUM LOZENGE*/ + 0, /* U+002b29: BLACK SMALL DIAMOND*/ + 0, /* U+002b2a: BLACK SMALL LOZENGE*/ + 0, /* U+002b2b: WHITE SMALL LOZENGE*/ + 0, /* U+002b2c: BLACK HORIZONTAL ELLIPSE*/ + 0, /* U+002b2d: WHITE HORIZONTAL ELLIPSE*/ + 0, /* U+002b2e: BLACK VERTICAL ELLIPSE*/ + 0, /* U+002b2f: WHITE VERTICAL ELLIPSE*/ + 0, /* U+002b30: LEFT ARROW WITH SMALL CIRCLE*/ + 0, /* U+002b31: THREE LEFTWARDS ARROWS*/ + 0, /* U+002b32: LEFT ARROW WITH CIRCLED PLUS*/ + 0, /* U+002b33: LONG LEFTWARDS SQUIGGLE ARROW*/ + 0, /* U+002b34: LEFTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE*/ + 0, /* U+002b35: LEFTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+002b36: LEFTWARDS TWO-HEADED ARROW FROM BAR*/ + 0, /* U+002b37: LEFTWARDS TWO-HEADED TRIPLE DASH ARROW*/ + 0, /* U+002b38: LEFTWARDS ARROW WITH DOTTED STEM*/ + 0, /* U+002b39: LEFTWARDS ARROW WITH TAIL WITH VERTICAL STROKE*/ + 0, /* U+002b3a: LEFTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+002b3b: LEFTWARDS TWO-HEADED ARROW WITH TAIL*/ + 0, /* U+002b3c: LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE*/ + 0, /* U+002b3d: LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE*/ + 0, /* U+002b3e: LEFTWARDS ARROW THROUGH X*/ + 0, /* U+002b3f: WAVE ARROW POINTING DIRECTLY LEFT*/ + 0, /* U+002b40: EQUALS SIGN ABOVE LEFTWARDS ARROW*/ + 0, /* U+002b41: REVERSE TILDE OPERATOR ABOVE LEFTWARDS ARROW*/ + 0, /* U+002b42: LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO*/ + 0, /* U+002b43: RIGHTWARDS ARROW THROUGH GREATER-THAN*/ + 0, /* U+002b44: RIGHTWARDS ARROW THROUGH SUPERSET*/ + 0, /* U+002b45: LEFTWARDS QUADRUPLE ARROW*/ + 0, /* U+002b46: RIGHTWARDS QUADRUPLE ARROW*/ + 0, /* U+002b47: REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW*/ + 0, /* U+002b48: RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO*/ + 0, /* U+002b49: TILDE OPERATOR ABOVE LEFTWARDS ARROW*/ + 0, /* U+002b4a: LEFTWARDS ARROW ABOVE ALMOST EQUAL TO*/ + 0, /* U+002b4b: LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR*/ + 0, /* U+002b4c: RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR*/ + 0, /* U+002b4d: */ + 0, /* U+002b4e: */ + 0, /* U+002b4f: */ + 0, /* U+002b50: WHITE MEDIUM STAR*/ + 0, /* U+002b51: BLACK SMALL STAR*/ + 0, /* U+002b52: WHITE SMALL STAR*/ + 0, /* U+002b53: BLACK RIGHT-POINTING PENTAGON*/ + 0, /* U+002b54: WHITE RIGHT-POINTING PENTAGON*/ + 0, /* U+002b55: HEAVY LARGE CIRCLE*/ + 0, /* U+002b56: HEAVY OVAL WITH OVAL INSIDE*/ + 0, /* U+002b57: HEAVY CIRCLE WITH CIRCLE INSIDE*/ + 0, /* U+002b58: HEAVY CIRCLE*/ + 0, /* U+002b59: HEAVY CIRCLED SALTIRE*/ + 0, /* U+002b5a: */ + 0, /* U+002b5b: */ + 0, /* U+002b5c: */ + 0, /* U+002b5d: */ + 0, /* U+002b5e: */ + 0, /* U+002b5f: */ + 0, /* U+002b60: */ + 0, /* U+002b61: */ + 0, /* U+002b62: */ + 0, /* U+002b63: */ + 0, /* U+002b64: */ + 0, /* U+002b65: */ + 0, /* U+002b66: */ + 0, /* U+002b67: */ + 0, /* U+002b68: */ + 0, /* U+002b69: */ + 0, /* U+002b6a: */ + 0, /* U+002b6b: */ + 0, /* U+002b6c: */ + 0, /* U+002b6d: */ + 0, /* U+002b6e: */ + 0, /* U+002b6f: */ + 0, /* U+002b70: */ + 0, /* U+002b71: */ + 0, /* U+002b72: */ + 0, /* U+002b73: */ + 0, /* U+002b74: */ + 0, /* U+002b75: */ + 0, /* U+002b76: */ + 0, /* U+002b77: */ + 0, /* U+002b78: */ + 0, /* U+002b79: */ + 0, /* U+002b7a: */ + 0, /* U+002b7b: */ + 0, /* U+002b7c: */ + 0, /* U+002b7d: */ + 0, /* U+002b7e: */ + 0, /* U+002b7f: */ + 0, /* U+002b80: */ + 0, /* U+002b81: */ + 0, /* U+002b82: */ + 0, /* U+002b83: */ + 0, /* U+002b84: */ + 0, /* U+002b85: */ + 0, /* U+002b86: */ + 0, /* U+002b87: */ + 0, /* U+002b88: */ + 0, /* U+002b89: */ + 0, /* U+002b8a: */ + 0, /* U+002b8b: */ + 0, /* U+002b8c: */ + 0, /* U+002b8d: */ + 0, /* U+002b8e: */ + 0, /* U+002b8f: */ + 0, /* U+002b90: */ + 0, /* U+002b91: */ + 0, /* U+002b92: */ + 0, /* U+002b93: */ + 0, /* U+002b94: */ + 0, /* U+002b95: */ + 0, /* U+002b96: */ + 0, /* U+002b97: */ + 0, /* U+002b98: */ + 0, /* U+002b99: */ + 0, /* U+002b9a: */ + 0, /* U+002b9b: */ + 0, /* U+002b9c: */ + 0, /* U+002b9d: */ + 0, /* U+002b9e: */ + 0, /* U+002b9f: */ + 0, /* U+002ba0: */ + 0, /* U+002ba1: */ + 0, /* U+002ba2: */ + 0, /* U+002ba3: */ + 0, /* U+002ba4: */ + 0, /* U+002ba5: */ + 0, /* U+002ba6: */ + 0, /* U+002ba7: */ + 0, /* U+002ba8: */ + 0, /* U+002ba9: */ + 0, /* U+002baa: */ + 0, /* U+002bab: */ + 0, /* U+002bac: */ + 0, /* U+002bad: */ + 0, /* U+002bae: */ + 0, /* U+002baf: */ + 0, /* U+002bb0: */ + 0, /* U+002bb1: */ + 0, /* U+002bb2: */ + 0, /* U+002bb3: */ + 0, /* U+002bb4: */ + 0, /* U+002bb5: */ + 0, /* U+002bb6: */ + 0, /* U+002bb7: */ + 0, /* U+002bb8: */ + 0, /* U+002bb9: */ + 0, /* U+002bba: */ + 0, /* U+002bbb: */ + 0, /* U+002bbc: */ + 0, /* U+002bbd: */ + 0, /* U+002bbe: */ + 0, /* U+002bbf: */ + 0, /* U+002bc0: */ + 0, /* U+002bc1: */ + 0, /* U+002bc2: */ + 0, /* U+002bc3: */ + 0, /* U+002bc4: */ + 0, /* U+002bc5: */ + 0, /* U+002bc6: */ + 0, /* U+002bc7: */ + 0, /* U+002bc8: */ + 0, /* U+002bc9: */ + 0, /* U+002bca: */ + 0, /* U+002bcb: */ + 0, /* U+002bcc: */ + 0, /* U+002bcd: */ + 0, /* U+002bce: */ + 0, /* U+002bcf: */ + 0, /* U+002bd0: */ + 0, /* U+002bd1: */ + 0, /* U+002bd2: */ + 0, /* U+002bd3: */ + 0, /* U+002bd4: */ + 0, /* U+002bd5: */ + 0, /* U+002bd6: */ + 0, /* U+002bd7: */ + 0, /* U+002bd8: */ + 0, /* U+002bd9: */ + 0, /* U+002bda: */ + 0, /* U+002bdb: */ + 0, /* U+002bdc: */ + 0, /* U+002bdd: */ + 0, /* U+002bde: */ + 0, /* U+002bdf: */ + 0, /* U+002be0: */ + 0, /* U+002be1: */ + 0, /* U+002be2: */ + 0, /* U+002be3: */ + 0, /* U+002be4: */ + 0, /* U+002be5: */ + 0, /* U+002be6: */ + 0, /* U+002be7: */ + 0, /* U+002be8: */ + 0, /* U+002be9: */ + 0, /* U+002bea: */ + 0, /* U+002beb: */ + 0, /* U+002bec: */ + 0, /* U+002bed: */ + 0, /* U+002bee: */ + 0, /* U+002bef: */ + 0, /* U+002bf0: */ + 0, /* U+002bf1: */ + 0, /* U+002bf2: */ + 0, /* U+002bf3: */ + 0, /* U+002bf4: */ + 0, /* U+002bf5: */ + 0, /* U+002bf6: */ + 0, /* U+002bf7: */ + 0, /* U+002bf8: */ + 0, /* U+002bf9: */ + 0, /* U+002bfa: */ + 0, /* U+002bfb: */ + 0, /* U+002bfc: */ + 0, /* U+002bfd: */ + 0, /* U+002bfe: */ + 0, /* U+002bff: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c00: GLAGOLITIC CAPITAL LETTER AZU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c01: GLAGOLITIC CAPITAL LETTER BUKY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c02: GLAGOLITIC CAPITAL LETTER VEDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c03: GLAGOLITIC CAPITAL LETTER GLAGOLI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c04: GLAGOLITIC CAPITAL LETTER DOBRO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c05: GLAGOLITIC CAPITAL LETTER YESTU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c06: GLAGOLITIC CAPITAL LETTER ZHIVETE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c07: GLAGOLITIC CAPITAL LETTER DZELO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c08: GLAGOLITIC CAPITAL LETTER ZEMLJA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c09: GLAGOLITIC CAPITAL LETTER IZHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0a: GLAGOLITIC CAPITAL LETTER INITIAL IZHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0b: GLAGOLITIC CAPITAL LETTER I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0c: GLAGOLITIC CAPITAL LETTER DJERVI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0d: GLAGOLITIC CAPITAL LETTER KAKO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0e: GLAGOLITIC CAPITAL LETTER LJUDIJE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c0f: GLAGOLITIC CAPITAL LETTER MYSLITE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c10: GLAGOLITIC CAPITAL LETTER NASHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c11: GLAGOLITIC CAPITAL LETTER ONU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c12: GLAGOLITIC CAPITAL LETTER POKOJI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c13: GLAGOLITIC CAPITAL LETTER RITSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c14: GLAGOLITIC CAPITAL LETTER SLOVO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c15: GLAGOLITIC CAPITAL LETTER TVRIDO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c16: GLAGOLITIC CAPITAL LETTER UKU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c17: GLAGOLITIC CAPITAL LETTER FRITU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c18: GLAGOLITIC CAPITAL LETTER HERU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c19: GLAGOLITIC CAPITAL LETTER OTU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1a: GLAGOLITIC CAPITAL LETTER PE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1b: GLAGOLITIC CAPITAL LETTER SHTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1c: GLAGOLITIC CAPITAL LETTER TSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1d: GLAGOLITIC CAPITAL LETTER CHRIVI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1e: GLAGOLITIC CAPITAL LETTER SHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c1f: GLAGOLITIC CAPITAL LETTER YERU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c20: GLAGOLITIC CAPITAL LETTER YERI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c21: GLAGOLITIC CAPITAL LETTER YATI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c22: GLAGOLITIC CAPITAL LETTER SPIDERY HA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c23: GLAGOLITIC CAPITAL LETTER YU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c24: GLAGOLITIC CAPITAL LETTER SMALL YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c25: GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c26: GLAGOLITIC CAPITAL LETTER YO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c27: GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c28: GLAGOLITIC CAPITAL LETTER BIG YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c29: GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c2a: GLAGOLITIC CAPITAL LETTER FITA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c2b: GLAGOLITIC CAPITAL LETTER IZHITSA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c2c: GLAGOLITIC CAPITAL LETTER SHTAPIC*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c2d: GLAGOLITIC CAPITAL LETTER TROKUTASTI A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c2e: GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE*/ + 0, /* U+002c2f: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c30: GLAGOLITIC SMALL LETTER AZU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c31: GLAGOLITIC SMALL LETTER BUKY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c32: GLAGOLITIC SMALL LETTER VEDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c33: GLAGOLITIC SMALL LETTER GLAGOLI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c34: GLAGOLITIC SMALL LETTER DOBRO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c35: GLAGOLITIC SMALL LETTER YESTU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c36: GLAGOLITIC SMALL LETTER ZHIVETE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c37: GLAGOLITIC SMALL LETTER DZELO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c38: GLAGOLITIC SMALL LETTER ZEMLJA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c39: GLAGOLITIC SMALL LETTER IZHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3a: GLAGOLITIC SMALL LETTER INITIAL IZHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3b: GLAGOLITIC SMALL LETTER I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3c: GLAGOLITIC SMALL LETTER DJERVI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3d: GLAGOLITIC SMALL LETTER KAKO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3e: GLAGOLITIC SMALL LETTER LJUDIJE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c3f: GLAGOLITIC SMALL LETTER MYSLITE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c40: GLAGOLITIC SMALL LETTER NASHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c41: GLAGOLITIC SMALL LETTER ONU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c42: GLAGOLITIC SMALL LETTER POKOJI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c43: GLAGOLITIC SMALL LETTER RITSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c44: GLAGOLITIC SMALL LETTER SLOVO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c45: GLAGOLITIC SMALL LETTER TVRIDO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c46: GLAGOLITIC SMALL LETTER UKU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c47: GLAGOLITIC SMALL LETTER FRITU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c48: GLAGOLITIC SMALL LETTER HERU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c49: GLAGOLITIC SMALL LETTER OTU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4a: GLAGOLITIC SMALL LETTER PE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4b: GLAGOLITIC SMALL LETTER SHTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4c: GLAGOLITIC SMALL LETTER TSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4d: GLAGOLITIC SMALL LETTER CHRIVI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4e: GLAGOLITIC SMALL LETTER SHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c4f: GLAGOLITIC SMALL LETTER YERU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c50: GLAGOLITIC SMALL LETTER YERI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c51: GLAGOLITIC SMALL LETTER YATI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c52: GLAGOLITIC SMALL LETTER SPIDERY HA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c53: GLAGOLITIC SMALL LETTER YU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c54: GLAGOLITIC SMALL LETTER SMALL YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c55: GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c56: GLAGOLITIC SMALL LETTER YO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c57: GLAGOLITIC SMALL LETTER IOTATED SMALL YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c58: GLAGOLITIC SMALL LETTER BIG YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c59: GLAGOLITIC SMALL LETTER IOTATED BIG YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c5a: GLAGOLITIC SMALL LETTER FITA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c5b: GLAGOLITIC SMALL LETTER IZHITSA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c5c: GLAGOLITIC SMALL LETTER SHTAPIC*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c5d: GLAGOLITIC SMALL LETTER TROKUTASTI A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c5e: GLAGOLITIC SMALL LETTER LATINATE MYSLITE*/ + 0, /* U+002c5f: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c60: LATIN CAPITAL LETTER L WITH DOUBLE BAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c61: LATIN SMALL LETTER L WITH DOUBLE BAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c62: LATIN CAPITAL LETTER L WITH MIDDLE TILDE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c63: LATIN CAPITAL LETTER P WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c64: LATIN CAPITAL LETTER R WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c65: LATIN SMALL LETTER A WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c66: LATIN SMALL LETTER T WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c67: LATIN CAPITAL LETTER H WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c68: LATIN SMALL LETTER H WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c69: LATIN CAPITAL LETTER K WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c6a: LATIN SMALL LETTER K WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c6b: LATIN CAPITAL LETTER Z WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c6c: LATIN SMALL LETTER Z WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c6d: LATIN CAPITAL LETTER ALPHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c6e: LATIN CAPITAL LETTER M WITH HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c6f: LATIN CAPITAL LETTER TURNED A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c70: LATIN CAPITAL LETTER TURNED ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c71: LATIN SMALL LETTER V WITH RIGHT HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c72: LATIN CAPITAL LETTER W WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c73: LATIN SMALL LETTER W WITH HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c74: LATIN SMALL LETTER V WITH CURL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c75: LATIN CAPITAL LETTER HALF H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c76: LATIN SMALL LETTER HALF H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c77: LATIN SMALL LETTER TAILLESS PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c78: LATIN SMALL LETTER E WITH NOTCH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c79: LATIN SMALL LETTER TURNED R WITH TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c7a: LATIN SMALL LETTER O WITH LOW RING INSIDE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c7b: LATIN LETTER SMALL CAPITAL TURNED E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c7c: LATIN SUBSCRIPT SMALL LETTER J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c7d: MODIFIER LETTER CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c7e: LATIN CAPITAL LETTER S WITH SWASH TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c7f: LATIN CAPITAL LETTER Z WITH SWASH TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c80: COPTIC CAPITAL LETTER ALFA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c81: COPTIC SMALL LETTER ALFA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c82: COPTIC CAPITAL LETTER VIDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c83: COPTIC SMALL LETTER VIDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c84: COPTIC CAPITAL LETTER GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c85: COPTIC SMALL LETTER GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c86: COPTIC CAPITAL LETTER DALDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c87: COPTIC SMALL LETTER DALDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c88: COPTIC CAPITAL LETTER EIE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c89: COPTIC SMALL LETTER EIE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c8a: COPTIC CAPITAL LETTER SOU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c8b: COPTIC SMALL LETTER SOU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c8c: COPTIC CAPITAL LETTER ZATA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c8d: COPTIC SMALL LETTER ZATA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c8e: COPTIC CAPITAL LETTER HATE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c8f: COPTIC SMALL LETTER HATE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c90: COPTIC CAPITAL LETTER THETHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c91: COPTIC SMALL LETTER THETHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c92: COPTIC CAPITAL LETTER IAUDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c93: COPTIC SMALL LETTER IAUDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c94: COPTIC CAPITAL LETTER KAPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c95: COPTIC SMALL LETTER KAPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c96: COPTIC CAPITAL LETTER LAULA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c97: COPTIC SMALL LETTER LAULA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c98: COPTIC CAPITAL LETTER MI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c99: COPTIC SMALL LETTER MI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c9a: COPTIC CAPITAL LETTER NI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c9b: COPTIC SMALL LETTER NI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c9c: COPTIC CAPITAL LETTER KSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c9d: COPTIC SMALL LETTER KSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002c9e: COPTIC CAPITAL LETTER O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002c9f: COPTIC SMALL LETTER O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ca0: COPTIC CAPITAL LETTER PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ca1: COPTIC SMALL LETTER PI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ca2: COPTIC CAPITAL LETTER RO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ca3: COPTIC SMALL LETTER RO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ca4: COPTIC CAPITAL LETTER SIMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ca5: COPTIC SMALL LETTER SIMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ca6: COPTIC CAPITAL LETTER TAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ca7: COPTIC SMALL LETTER TAU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ca8: COPTIC CAPITAL LETTER UA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ca9: COPTIC SMALL LETTER UA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002caa: COPTIC CAPITAL LETTER FI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cab: COPTIC SMALL LETTER FI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cac: COPTIC CAPITAL LETTER KHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cad: COPTIC SMALL LETTER KHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cae: COPTIC CAPITAL LETTER PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002caf: COPTIC SMALL LETTER PSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cb0: COPTIC CAPITAL LETTER OOU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cb1: COPTIC SMALL LETTER OOU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cb2: COPTIC CAPITAL LETTER DIALECT-P ALEF*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cb3: COPTIC SMALL LETTER DIALECT-P ALEF*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cb4: COPTIC CAPITAL LETTER OLD COPTIC AIN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cb5: COPTIC SMALL LETTER OLD COPTIC AIN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cb6: COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cb7: COPTIC SMALL LETTER CRYPTOGRAMMIC EIE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cb8: COPTIC CAPITAL LETTER DIALECT-P KAPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cb9: COPTIC SMALL LETTER DIALECT-P KAPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cba: COPTIC CAPITAL LETTER DIALECT-P NI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cbb: COPTIC SMALL LETTER DIALECT-P NI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cbc: COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cbd: COPTIC SMALL LETTER CRYPTOGRAMMIC NI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cbe: COPTIC CAPITAL LETTER OLD COPTIC OOU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cbf: COPTIC SMALL LETTER OLD COPTIC OOU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cc0: COPTIC CAPITAL LETTER SAMPI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cc1: COPTIC SMALL LETTER SAMPI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cc2: COPTIC CAPITAL LETTER CROSSED SHEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cc3: COPTIC SMALL LETTER CROSSED SHEI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cc4: COPTIC CAPITAL LETTER OLD COPTIC SHEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cc5: COPTIC SMALL LETTER OLD COPTIC SHEI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cc6: COPTIC CAPITAL LETTER OLD COPTIC ESH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cc7: COPTIC SMALL LETTER OLD COPTIC ESH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cc8: COPTIC CAPITAL LETTER AKHMIMIC KHEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cc9: COPTIC SMALL LETTER AKHMIMIC KHEI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cca: COPTIC CAPITAL LETTER DIALECT-P HORI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ccb: COPTIC SMALL LETTER DIALECT-P HORI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ccc: COPTIC CAPITAL LETTER OLD COPTIC HORI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ccd: COPTIC SMALL LETTER OLD COPTIC HORI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cce: COPTIC CAPITAL LETTER OLD COPTIC HA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ccf: COPTIC SMALL LETTER OLD COPTIC HA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cd0: COPTIC CAPITAL LETTER L-SHAPED HA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cd1: COPTIC SMALL LETTER L-SHAPED HA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cd2: COPTIC CAPITAL LETTER OLD COPTIC HEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cd3: COPTIC SMALL LETTER OLD COPTIC HEI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cd4: COPTIC CAPITAL LETTER OLD COPTIC HAT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cd5: COPTIC SMALL LETTER OLD COPTIC HAT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cd6: COPTIC CAPITAL LETTER OLD COPTIC GANGIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cd7: COPTIC SMALL LETTER OLD COPTIC GANGIA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cd8: COPTIC CAPITAL LETTER OLD COPTIC DJA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cd9: COPTIC SMALL LETTER OLD COPTIC DJA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cda: COPTIC CAPITAL LETTER OLD COPTIC SHIMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cdb: COPTIC SMALL LETTER OLD COPTIC SHIMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cdc: COPTIC CAPITAL LETTER OLD NUBIAN SHIMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cdd: COPTIC SMALL LETTER OLD NUBIAN SHIMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cde: COPTIC CAPITAL LETTER OLD NUBIAN NGI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cdf: COPTIC SMALL LETTER OLD NUBIAN NGI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ce0: COPTIC CAPITAL LETTER OLD NUBIAN NYI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ce1: COPTIC SMALL LETTER OLD NUBIAN NYI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ce2: COPTIC CAPITAL LETTER OLD NUBIAN WAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ce3: COPTIC SMALL LETTER OLD NUBIAN WAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002ce4: COPTIC SYMBOL KAI*/ + 0, /* U+002ce5: COPTIC SYMBOL MI RO*/ + 0, /* U+002ce6: COPTIC SYMBOL PI RO*/ + 0, /* U+002ce7: COPTIC SYMBOL STAUROS*/ + 0, /* U+002ce8: COPTIC SYMBOL TAU RO*/ + 0, /* U+002ce9: COPTIC SYMBOL KHI RO*/ + 0, /* U+002cea: COPTIC SYMBOL SHIMA SIMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ceb: COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cec: COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002ced: COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cee: COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA*/ + 0, /* U+002cef: COPTIC COMBINING NI ABOVE*/ + 0, /* U+002cf0: COPTIC COMBINING SPIRITUS ASPER*/ + 0, /* U+002cf1: COPTIC COMBINING SPIRITUS LENIS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+002cf2: COPTIC CAPITAL LETTER BOHAIRIC KHEI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002cf3: COPTIC SMALL LETTER BOHAIRIC KHEI*/ + 0, /* U+002cf4: */ + 0, /* U+002cf5: */ + 0, /* U+002cf6: */ + 0, /* U+002cf7: */ + 0, /* U+002cf8: */ + 0, /* U+002cf9: COPTIC OLD NUBIAN FULL STOP*/ + 0, /* U+002cfa: COPTIC OLD NUBIAN DIRECT QUESTION MARK*/ + 0, /* U+002cfb: COPTIC OLD NUBIAN INDIRECT QUESTION MARK*/ + 0, /* U+002cfc: COPTIC OLD NUBIAN VERSE DIVIDER*/ + 0, /* U+002cfd: COPTIC FRACTION ONE HALF*/ + 0, /* U+002cfe: COPTIC FULL STOP*/ + 0, /* U+002cff: COPTIC MORPHOLOGICAL DIVIDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d00: GEORGIAN SMALL LETTER AN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d01: GEORGIAN SMALL LETTER BAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d02: GEORGIAN SMALL LETTER GAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d03: GEORGIAN SMALL LETTER DON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d04: GEORGIAN SMALL LETTER EN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d05: GEORGIAN SMALL LETTER VIN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d06: GEORGIAN SMALL LETTER ZEN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d07: GEORGIAN SMALL LETTER TAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d08: GEORGIAN SMALL LETTER IN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d09: GEORGIAN SMALL LETTER KAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0a: GEORGIAN SMALL LETTER LAS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0b: GEORGIAN SMALL LETTER MAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0c: GEORGIAN SMALL LETTER NAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0d: GEORGIAN SMALL LETTER ON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0e: GEORGIAN SMALL LETTER PAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d0f: GEORGIAN SMALL LETTER ZHAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d10: GEORGIAN SMALL LETTER RAE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d11: GEORGIAN SMALL LETTER SAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d12: GEORGIAN SMALL LETTER TAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d13: GEORGIAN SMALL LETTER UN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d14: GEORGIAN SMALL LETTER PHAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d15: GEORGIAN SMALL LETTER KHAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d16: GEORGIAN SMALL LETTER GHAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d17: GEORGIAN SMALL LETTER QAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d18: GEORGIAN SMALL LETTER SHIN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d19: GEORGIAN SMALL LETTER CHIN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1a: GEORGIAN SMALL LETTER CAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1b: GEORGIAN SMALL LETTER JIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1c: GEORGIAN SMALL LETTER CIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1d: GEORGIAN SMALL LETTER CHAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1e: GEORGIAN SMALL LETTER XAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d1f: GEORGIAN SMALL LETTER JHAN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d20: GEORGIAN SMALL LETTER HAE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d21: GEORGIAN SMALL LETTER HE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d22: GEORGIAN SMALL LETTER HIE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d23: GEORGIAN SMALL LETTER WE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d24: GEORGIAN SMALL LETTER HAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d25: GEORGIAN SMALL LETTER HOE*/ + 0, /* U+002d26: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d27: GEORGIAN SMALL LETTER YN*/ + 0, /* U+002d28: */ + 0, /* U+002d29: */ + 0, /* U+002d2a: */ + 0, /* U+002d2b: */ + 0, /* U+002d2c: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+002d2d: GEORGIAN SMALL LETTER AEN*/ + 0, /* U+002d2e: */ + 0, /* U+002d2f: */ + RTUNI_ALPHA, /* U+002d30: TIFINAGH LETTER YA*/ + RTUNI_ALPHA, /* U+002d31: TIFINAGH LETTER YAB*/ + RTUNI_ALPHA, /* U+002d32: TIFINAGH LETTER YABH*/ + RTUNI_ALPHA, /* U+002d33: TIFINAGH LETTER YAG*/ + RTUNI_ALPHA, /* U+002d34: TIFINAGH LETTER YAGHH*/ + RTUNI_ALPHA, /* U+002d35: TIFINAGH LETTER BERBER ACADEMY YAJ*/ + RTUNI_ALPHA, /* U+002d36: TIFINAGH LETTER YAJ*/ + RTUNI_ALPHA, /* U+002d37: TIFINAGH LETTER YAD*/ + RTUNI_ALPHA, /* U+002d38: TIFINAGH LETTER YADH*/ + RTUNI_ALPHA, /* U+002d39: TIFINAGH LETTER YADD*/ + RTUNI_ALPHA, /* U+002d3a: TIFINAGH LETTER YADDH*/ + RTUNI_ALPHA, /* U+002d3b: TIFINAGH LETTER YEY*/ + RTUNI_ALPHA, /* U+002d3c: TIFINAGH LETTER YAF*/ + RTUNI_ALPHA, /* U+002d3d: TIFINAGH LETTER YAK*/ + RTUNI_ALPHA, /* U+002d3e: TIFINAGH LETTER TUAREG YAK*/ + RTUNI_ALPHA, /* U+002d3f: TIFINAGH LETTER YAKHH*/ + RTUNI_ALPHA, /* U+002d40: TIFINAGH LETTER YAH*/ + RTUNI_ALPHA, /* U+002d41: TIFINAGH LETTER BERBER ACADEMY YAH*/ + RTUNI_ALPHA, /* U+002d42: TIFINAGH LETTER TUAREG YAH*/ + RTUNI_ALPHA, /* U+002d43: TIFINAGH LETTER YAHH*/ + RTUNI_ALPHA, /* U+002d44: TIFINAGH LETTER YAA*/ + RTUNI_ALPHA, /* U+002d45: TIFINAGH LETTER YAKH*/ + RTUNI_ALPHA, /* U+002d46: TIFINAGH LETTER TUAREG YAKH*/ + RTUNI_ALPHA, /* U+002d47: TIFINAGH LETTER YAQ*/ + RTUNI_ALPHA, /* U+002d48: TIFINAGH LETTER TUAREG YAQ*/ + RTUNI_ALPHA, /* U+002d49: TIFINAGH LETTER YI*/ + RTUNI_ALPHA, /* U+002d4a: TIFINAGH LETTER YAZH*/ + RTUNI_ALPHA, /* U+002d4b: TIFINAGH LETTER AHAGGAR YAZH*/ + RTUNI_ALPHA, /* U+002d4c: TIFINAGH LETTER TUAREG YAZH*/ + RTUNI_ALPHA, /* U+002d4d: TIFINAGH LETTER YAL*/ + RTUNI_ALPHA, /* U+002d4e: TIFINAGH LETTER YAM*/ + RTUNI_ALPHA, /* U+002d4f: TIFINAGH LETTER YAN*/ + RTUNI_ALPHA, /* U+002d50: TIFINAGH LETTER TUAREG YAGN*/ + RTUNI_ALPHA, /* U+002d51: TIFINAGH LETTER TUAREG YANG*/ + RTUNI_ALPHA, /* U+002d52: TIFINAGH LETTER YAP*/ + RTUNI_ALPHA, /* U+002d53: TIFINAGH LETTER YU*/ + RTUNI_ALPHA, /* U+002d54: TIFINAGH LETTER YAR*/ + RTUNI_ALPHA, /* U+002d55: TIFINAGH LETTER YARR*/ + RTUNI_ALPHA, /* U+002d56: TIFINAGH LETTER YAGH*/ + RTUNI_ALPHA, /* U+002d57: TIFINAGH LETTER TUAREG YAGH*/ + RTUNI_ALPHA, /* U+002d58: TIFINAGH LETTER AYER YAGH*/ + RTUNI_ALPHA, /* U+002d59: TIFINAGH LETTER YAS*/ + RTUNI_ALPHA, /* U+002d5a: TIFINAGH LETTER YASS*/ + RTUNI_ALPHA, /* U+002d5b: TIFINAGH LETTER YASH*/ + RTUNI_ALPHA, /* U+002d5c: TIFINAGH LETTER YAT*/ + RTUNI_ALPHA, /* U+002d5d: TIFINAGH LETTER YATH*/ + RTUNI_ALPHA, /* U+002d5e: TIFINAGH LETTER YACH*/ + RTUNI_ALPHA, /* U+002d5f: TIFINAGH LETTER YATT*/ + RTUNI_ALPHA, /* U+002d60: TIFINAGH LETTER YAV*/ + RTUNI_ALPHA, /* U+002d61: TIFINAGH LETTER YAW*/ + RTUNI_ALPHA, /* U+002d62: TIFINAGH LETTER YAY*/ + RTUNI_ALPHA, /* U+002d63: TIFINAGH LETTER YAZ*/ + RTUNI_ALPHA, /* U+002d64: TIFINAGH LETTER TAWELLEMET YAZ*/ + RTUNI_ALPHA, /* U+002d65: TIFINAGH LETTER YAZZ*/ + RTUNI_ALPHA, /* U+002d66: TIFINAGH LETTER YE*/ + RTUNI_ALPHA, /* U+002d67: TIFINAGH LETTER YO*/ + 0, /* U+002d68: */ + 0, /* U+002d69: */ + 0, /* U+002d6a: */ + 0, /* U+002d6b: */ + 0, /* U+002d6c: */ + 0, /* U+002d6d: */ + 0, /* U+002d6e: */ + RTUNI_ALPHA, /* U+002d6f: TIFINAGH MODIFIER LETTER LABIALIZATION MARK*/ + 0, /* U+002d70: TIFINAGH SEPARATOR MARK*/ + 0, /* U+002d71: */ + 0, /* U+002d72: */ + 0, /* U+002d73: */ + 0, /* U+002d74: */ + 0, /* U+002d75: */ + 0, /* U+002d76: */ + 0, /* U+002d77: */ + 0, /* U+002d78: */ + 0, /* U+002d79: */ + 0, /* U+002d7a: */ + 0, /* U+002d7b: */ + 0, /* U+002d7c: */ + 0, /* U+002d7d: */ + 0, /* U+002d7e: */ + 0, /* U+002d7f: TIFINAGH CONSONANT JOINER*/ + RTUNI_ALPHA, /* U+002d80: ETHIOPIC SYLLABLE LOA*/ + RTUNI_ALPHA, /* U+002d81: ETHIOPIC SYLLABLE MOA*/ + RTUNI_ALPHA, /* U+002d82: ETHIOPIC SYLLABLE ROA*/ + RTUNI_ALPHA, /* U+002d83: ETHIOPIC SYLLABLE SOA*/ + RTUNI_ALPHA, /* U+002d84: ETHIOPIC SYLLABLE SHOA*/ + RTUNI_ALPHA, /* U+002d85: ETHIOPIC SYLLABLE BOA*/ + RTUNI_ALPHA, /* U+002d86: ETHIOPIC SYLLABLE TOA*/ + RTUNI_ALPHA, /* U+002d87: ETHIOPIC SYLLABLE COA*/ + RTUNI_ALPHA, /* U+002d88: ETHIOPIC SYLLABLE NOA*/ + RTUNI_ALPHA, /* U+002d89: ETHIOPIC SYLLABLE NYOA*/ + RTUNI_ALPHA, /* U+002d8a: ETHIOPIC SYLLABLE GLOTTAL OA*/ + RTUNI_ALPHA, /* U+002d8b: ETHIOPIC SYLLABLE ZOA*/ + RTUNI_ALPHA, /* U+002d8c: ETHIOPIC SYLLABLE DOA*/ + RTUNI_ALPHA, /* U+002d8d: ETHIOPIC SYLLABLE DDOA*/ + RTUNI_ALPHA, /* U+002d8e: ETHIOPIC SYLLABLE JOA*/ + RTUNI_ALPHA, /* U+002d8f: ETHIOPIC SYLLABLE THOA*/ + RTUNI_ALPHA, /* U+002d90: ETHIOPIC SYLLABLE CHOA*/ + RTUNI_ALPHA, /* U+002d91: ETHIOPIC SYLLABLE PHOA*/ + RTUNI_ALPHA, /* U+002d92: ETHIOPIC SYLLABLE POA*/ + RTUNI_ALPHA, /* U+002d93: ETHIOPIC SYLLABLE GGWA*/ + RTUNI_ALPHA, /* U+002d94: ETHIOPIC SYLLABLE GGWI*/ + RTUNI_ALPHA, /* U+002d95: ETHIOPIC SYLLABLE GGWEE*/ + RTUNI_ALPHA, /* U+002d96: ETHIOPIC SYLLABLE GGWE*/ + 0, /* U+002d97: */ + 0, /* U+002d98: */ + 0, /* U+002d99: */ + 0, /* U+002d9a: */ + 0, /* U+002d9b: */ + 0, /* U+002d9c: */ + 0, /* U+002d9d: */ + 0, /* U+002d9e: */ + 0, /* U+002d9f: */ + RTUNI_ALPHA, /* U+002da0: ETHIOPIC SYLLABLE SSA*/ + RTUNI_ALPHA, /* U+002da1: ETHIOPIC SYLLABLE SSU*/ + RTUNI_ALPHA, /* U+002da2: ETHIOPIC SYLLABLE SSI*/ + RTUNI_ALPHA, /* U+002da3: ETHIOPIC SYLLABLE SSAA*/ + RTUNI_ALPHA, /* U+002da4: ETHIOPIC SYLLABLE SSEE*/ + RTUNI_ALPHA, /* U+002da5: ETHIOPIC SYLLABLE SSE*/ + RTUNI_ALPHA, /* U+002da6: ETHIOPIC SYLLABLE SSO*/ + 0, /* U+002da7: */ + RTUNI_ALPHA, /* U+002da8: ETHIOPIC SYLLABLE CCA*/ + RTUNI_ALPHA, /* U+002da9: ETHIOPIC SYLLABLE CCU*/ + RTUNI_ALPHA, /* U+002daa: ETHIOPIC SYLLABLE CCI*/ + RTUNI_ALPHA, /* U+002dab: ETHIOPIC SYLLABLE CCAA*/ + RTUNI_ALPHA, /* U+002dac: ETHIOPIC SYLLABLE CCEE*/ + RTUNI_ALPHA, /* U+002dad: ETHIOPIC SYLLABLE CCE*/ + RTUNI_ALPHA, /* U+002dae: ETHIOPIC SYLLABLE CCO*/ + 0, /* U+002daf: */ + RTUNI_ALPHA, /* U+002db0: ETHIOPIC SYLLABLE ZZA*/ + RTUNI_ALPHA, /* U+002db1: ETHIOPIC SYLLABLE ZZU*/ + RTUNI_ALPHA, /* U+002db2: ETHIOPIC SYLLABLE ZZI*/ + RTUNI_ALPHA, /* U+002db3: ETHIOPIC SYLLABLE ZZAA*/ + RTUNI_ALPHA, /* U+002db4: ETHIOPIC SYLLABLE ZZEE*/ + RTUNI_ALPHA, /* U+002db5: ETHIOPIC SYLLABLE ZZE*/ + RTUNI_ALPHA, /* U+002db6: ETHIOPIC SYLLABLE ZZO*/ + 0, /* U+002db7: */ + RTUNI_ALPHA, /* U+002db8: ETHIOPIC SYLLABLE CCHA*/ + RTUNI_ALPHA, /* U+002db9: ETHIOPIC SYLLABLE CCHU*/ + RTUNI_ALPHA, /* U+002dba: ETHIOPIC SYLLABLE CCHI*/ + RTUNI_ALPHA, /* U+002dbb: ETHIOPIC SYLLABLE CCHAA*/ + RTUNI_ALPHA, /* U+002dbc: ETHIOPIC SYLLABLE CCHEE*/ + RTUNI_ALPHA, /* U+002dbd: ETHIOPIC SYLLABLE CCHE*/ + RTUNI_ALPHA, /* U+002dbe: ETHIOPIC SYLLABLE CCHO*/ + 0, /* U+002dbf: */ + RTUNI_ALPHA, /* U+002dc0: ETHIOPIC SYLLABLE QYA*/ + RTUNI_ALPHA, /* U+002dc1: ETHIOPIC SYLLABLE QYU*/ + RTUNI_ALPHA, /* U+002dc2: ETHIOPIC SYLLABLE QYI*/ + RTUNI_ALPHA, /* U+002dc3: ETHIOPIC SYLLABLE QYAA*/ + RTUNI_ALPHA, /* U+002dc4: ETHIOPIC SYLLABLE QYEE*/ + RTUNI_ALPHA, /* U+002dc5: ETHIOPIC SYLLABLE QYE*/ + RTUNI_ALPHA, /* U+002dc6: ETHIOPIC SYLLABLE QYO*/ + 0, /* U+002dc7: */ + RTUNI_ALPHA, /* U+002dc8: ETHIOPIC SYLLABLE KYA*/ + RTUNI_ALPHA, /* U+002dc9: ETHIOPIC SYLLABLE KYU*/ + RTUNI_ALPHA, /* U+002dca: ETHIOPIC SYLLABLE KYI*/ + RTUNI_ALPHA, /* U+002dcb: ETHIOPIC SYLLABLE KYAA*/ + RTUNI_ALPHA, /* U+002dcc: ETHIOPIC SYLLABLE KYEE*/ + RTUNI_ALPHA, /* U+002dcd: ETHIOPIC SYLLABLE KYE*/ + RTUNI_ALPHA, /* U+002dce: ETHIOPIC SYLLABLE KYO*/ + 0, /* U+002dcf: */ + RTUNI_ALPHA, /* U+002dd0: ETHIOPIC SYLLABLE XYA*/ + RTUNI_ALPHA, /* U+002dd1: ETHIOPIC SYLLABLE XYU*/ + RTUNI_ALPHA, /* U+002dd2: ETHIOPIC SYLLABLE XYI*/ + RTUNI_ALPHA, /* U+002dd3: ETHIOPIC SYLLABLE XYAA*/ + RTUNI_ALPHA, /* U+002dd4: ETHIOPIC SYLLABLE XYEE*/ + RTUNI_ALPHA, /* U+002dd5: ETHIOPIC SYLLABLE XYE*/ + RTUNI_ALPHA, /* U+002dd6: ETHIOPIC SYLLABLE XYO*/ + 0, /* U+002dd7: */ + RTUNI_ALPHA, /* U+002dd8: ETHIOPIC SYLLABLE GYA*/ + RTUNI_ALPHA, /* U+002dd9: ETHIOPIC SYLLABLE GYU*/ + RTUNI_ALPHA, /* U+002dda: ETHIOPIC SYLLABLE GYI*/ + RTUNI_ALPHA, /* U+002ddb: ETHIOPIC SYLLABLE GYAA*/ + RTUNI_ALPHA, /* U+002ddc: ETHIOPIC SYLLABLE GYEE*/ + RTUNI_ALPHA, /* U+002ddd: ETHIOPIC SYLLABLE GYE*/ + RTUNI_ALPHA, /* U+002dde: ETHIOPIC SYLLABLE GYO*/ + 0, /* U+002ddf: */ + RTUNI_ALPHA, /* U+002de0: COMBINING CYRILLIC LETTER BE*/ + RTUNI_ALPHA, /* U+002de1: COMBINING CYRILLIC LETTER VE*/ + RTUNI_ALPHA, /* U+002de2: COMBINING CYRILLIC LETTER GHE*/ + RTUNI_ALPHA, /* U+002de3: COMBINING CYRILLIC LETTER DE*/ + RTUNI_ALPHA, /* U+002de4: COMBINING CYRILLIC LETTER ZHE*/ + RTUNI_ALPHA, /* U+002de5: COMBINING CYRILLIC LETTER ZE*/ + RTUNI_ALPHA, /* U+002de6: COMBINING CYRILLIC LETTER KA*/ + RTUNI_ALPHA, /* U+002de7: COMBINING CYRILLIC LETTER EL*/ + RTUNI_ALPHA, /* U+002de8: COMBINING CYRILLIC LETTER EM*/ + RTUNI_ALPHA, /* U+002de9: COMBINING CYRILLIC LETTER EN*/ + RTUNI_ALPHA, /* U+002dea: COMBINING CYRILLIC LETTER O*/ + RTUNI_ALPHA, /* U+002deb: COMBINING CYRILLIC LETTER PE*/ + RTUNI_ALPHA, /* U+002dec: COMBINING CYRILLIC LETTER ER*/ + RTUNI_ALPHA, /* U+002ded: COMBINING CYRILLIC LETTER ES*/ + RTUNI_ALPHA, /* U+002dee: COMBINING CYRILLIC LETTER TE*/ + RTUNI_ALPHA, /* U+002def: COMBINING CYRILLIC LETTER HA*/ + RTUNI_ALPHA, /* U+002df0: COMBINING CYRILLIC LETTER TSE*/ + RTUNI_ALPHA, /* U+002df1: COMBINING CYRILLIC LETTER CHE*/ + RTUNI_ALPHA, /* U+002df2: COMBINING CYRILLIC LETTER SHA*/ + RTUNI_ALPHA, /* U+002df3: COMBINING CYRILLIC LETTER SHCHA*/ + RTUNI_ALPHA, /* U+002df4: COMBINING CYRILLIC LETTER FITA*/ + RTUNI_ALPHA, /* U+002df5: COMBINING CYRILLIC LETTER ES-TE*/ + RTUNI_ALPHA, /* U+002df6: COMBINING CYRILLIC LETTER A*/ + RTUNI_ALPHA, /* U+002df7: COMBINING CYRILLIC LETTER IE*/ + RTUNI_ALPHA, /* U+002df8: COMBINING CYRILLIC LETTER DJERV*/ + RTUNI_ALPHA, /* U+002df9: COMBINING CYRILLIC LETTER MONOGRAPH UK*/ + RTUNI_ALPHA, /* U+002dfa: COMBINING CYRILLIC LETTER YAT*/ + RTUNI_ALPHA, /* U+002dfb: COMBINING CYRILLIC LETTER YU*/ + RTUNI_ALPHA, /* U+002dfc: COMBINING CYRILLIC LETTER IOTIFIED A*/ + RTUNI_ALPHA, /* U+002dfd: COMBINING CYRILLIC LETTER LITTLE YUS*/ + RTUNI_ALPHA, /* U+002dfe: COMBINING CYRILLIC LETTER BIG YUS*/ + RTUNI_ALPHA, /* U+002dff: COMBINING CYRILLIC LETTER IOTIFIED BIG YUS*/ + 0, /* U+002e00: RIGHT ANGLE SUBSTITUTION MARKER*/ + 0, /* U+002e01: RIGHT ANGLE DOTTED SUBSTITUTION MARKER*/ + 0, /* U+002e02: LEFT SUBSTITUTION BRACKET*/ + 0, /* U+002e03: RIGHT SUBSTITUTION BRACKET*/ + 0, /* U+002e04: LEFT DOTTED SUBSTITUTION BRACKET*/ + 0, /* U+002e05: RIGHT DOTTED SUBSTITUTION BRACKET*/ + 0, /* U+002e06: RAISED INTERPOLATION MARKER*/ + 0, /* U+002e07: RAISED DOTTED INTERPOLATION MARKER*/ + 0, /* U+002e08: DOTTED TRANSPOSITION MARKER*/ + 0, /* U+002e09: LEFT TRANSPOSITION BRACKET*/ + 0, /* U+002e0a: RIGHT TRANSPOSITION BRACKET*/ + 0, /* U+002e0b: RAISED SQUARE*/ + 0, /* U+002e0c: LEFT RAISED OMISSION BRACKET*/ + 0, /* U+002e0d: RIGHT RAISED OMISSION BRACKET*/ + 0, /* U+002e0e: EDITORIAL CORONIS*/ + 0, /* U+002e0f: PARAGRAPHOS*/ + 0, /* U+002e10: FORKED PARAGRAPHOS*/ + 0, /* U+002e11: REVERSED FORKED PARAGRAPHOS*/ + 0, /* U+002e12: HYPODIASTOLE*/ + 0, /* U+002e13: DOTTED OBELOS*/ + 0, /* U+002e14: DOWNWARDS ANCORA*/ + 0, /* U+002e15: UPWARDS ANCORA*/ + 0, /* U+002e16: DOTTED RIGHT-POINTING ANGLE*/ + 0, /* U+002e17: DOUBLE OBLIQUE HYPHEN*/ + 0, /* U+002e18: INVERTED INTERROBANG*/ + 0, /* U+002e19: PALM BRANCH*/ + 0, /* U+002e1a: HYPHEN WITH DIAERESIS*/ + 0, /* U+002e1b: TILDE WITH RING ABOVE*/ + 0, /* U+002e1c: LEFT LOW PARAPHRASE BRACKET*/ + 0, /* U+002e1d: RIGHT LOW PARAPHRASE BRACKET*/ + 0, /* U+002e1e: TILDE WITH DOT ABOVE*/ + 0, /* U+002e1f: TILDE WITH DOT BELOW*/ + 0, /* U+002e20: LEFT VERTICAL BAR WITH QUILL*/ + 0, /* U+002e21: RIGHT VERTICAL BAR WITH QUILL*/ + 0, /* U+002e22: TOP LEFT HALF BRACKET*/ + 0, /* U+002e23: TOP RIGHT HALF BRACKET*/ + 0, /* U+002e24: BOTTOM LEFT HALF BRACKET*/ + 0, /* U+002e25: BOTTOM RIGHT HALF BRACKET*/ + 0, /* U+002e26: LEFT SIDEWAYS U BRACKET*/ + 0, /* U+002e27: RIGHT SIDEWAYS U BRACKET*/ + 0, /* U+002e28: LEFT DOUBLE PARENTHESIS*/ + 0, /* U+002e29: RIGHT DOUBLE PARENTHESIS*/ + 0, /* U+002e2a: TWO DOTS OVER ONE DOT PUNCTUATION*/ + 0, /* U+002e2b: ONE DOT OVER TWO DOTS PUNCTUATION*/ + 0, /* U+002e2c: SQUARED FOUR DOT PUNCTUATION*/ + 0, /* U+002e2d: FIVE DOT MARK*/ + 0, /* U+002e2e: REVERSED QUESTION MARK*/ + RTUNI_ALPHA, /* U+002e2f: VERTICAL TILDE*/ + 0, /* U+002e30: RING POINT*/ + 0, /* U+002e31: WORD SEPARATOR MIDDLE DOT*/ + 0, /* U+002e32: TURNED COMMA*/ + 0, /* U+002e33: RAISED DOT*/ + 0, /* U+002e34: RAISED COMMA*/ + 0, /* U+002e35: TURNED SEMICOLON*/ + 0, /* U+002e36: DAGGER WITH LEFT GUARD*/ + 0, /* U+002e37: DAGGER WITH RIGHT GUARD*/ + 0, /* U+002e38: TURNED DAGGER*/ + 0, /* U+002e39: TOP HALF SECTION SIGN*/ + 0, /* U+002e3a: TWO-EM DASH*/ + 0, /* U+002e3b: THREE-EM DASH*/ + 0, /* U+002e3c: */ + 0, /* U+002e3d: */ + 0, /* U+002e3e: */ + 0, /* U+002e3f: */ + 0, /* U+002e40: */ + 0, /* U+002e41: */ + 0, /* U+002e42: */ + 0, /* U+002e43: */ + 0, /* U+002e44: */ + 0, /* U+002e45: */ + 0, /* U+002e46: */ + 0, /* U+002e47: */ + 0, /* U+002e48: */ + 0, /* U+002e49: */ + 0, /* U+002e4a: */ + 0, /* U+002e4b: */ + 0, /* U+002e4c: */ + 0, /* U+002e4d: */ + 0, /* U+002e4e: */ + 0, /* U+002e4f: */ + 0, /* U+002e50: */ + 0, /* U+002e51: */ + 0, /* U+002e52: */ + 0, /* U+002e53: */ + 0, /* U+002e54: */ + 0, /* U+002e55: */ + 0, /* U+002e56: */ + 0, /* U+002e57: */ + 0, /* U+002e58: */ + 0, /* U+002e59: */ + 0, /* U+002e5a: */ + 0, /* U+002e5b: */ + 0, /* U+002e5c: */ + 0, /* U+002e5d: */ + 0, /* U+002e5e: */ + 0, /* U+002e5f: */ + 0, /* U+002e60: */ + 0, /* U+002e61: */ + 0, /* U+002e62: */ + 0, /* U+002e63: */ + 0, /* U+002e64: */ + 0, /* U+002e65: */ + 0, /* U+002e66: */ + 0, /* U+002e67: */ + 0, /* U+002e68: */ + 0, /* U+002e69: */ + 0, /* U+002e6a: */ + 0, /* U+002e6b: */ + 0, /* U+002e6c: */ + 0, /* U+002e6d: */ + 0, /* U+002e6e: */ + 0, /* U+002e6f: */ + 0, /* U+002e70: */ + 0, /* U+002e71: */ + 0, /* U+002e72: */ + 0, /* U+002e73: */ + 0, /* U+002e74: */ + 0, /* U+002e75: */ + 0, /* U+002e76: */ + 0, /* U+002e77: */ + 0, /* U+002e78: */ + 0, /* U+002e79: */ + 0, /* U+002e7a: */ + 0, /* U+002e7b: */ + 0, /* U+002e7c: */ + 0, /* U+002e7d: */ + 0, /* U+002e7e: */ + 0, /* U+002e7f: */ + 0, /* U+002e80: CJK RADICAL REPEAT*/ + 0, /* U+002e81: CJK RADICAL CLIFF*/ + 0, /* U+002e82: CJK RADICAL SECOND ONE*/ + 0, /* U+002e83: CJK RADICAL SECOND TWO*/ + 0, /* U+002e84: CJK RADICAL SECOND THREE*/ + 0, /* U+002e85: CJK RADICAL PERSON*/ + 0, /* U+002e86: CJK RADICAL BOX*/ + 0, /* U+002e87: CJK RADICAL TABLE*/ + 0, /* U+002e88: CJK RADICAL KNIFE ONE*/ + 0, /* U+002e89: CJK RADICAL KNIFE TWO*/ + 0, /* U+002e8a: CJK RADICAL DIVINATION*/ + 0, /* U+002e8b: CJK RADICAL SEAL*/ + 0, /* U+002e8c: CJK RADICAL SMALL ONE*/ + 0, /* U+002e8d: CJK RADICAL SMALL TWO*/ + 0, /* U+002e8e: CJK RADICAL LAME ONE*/ + 0, /* U+002e8f: CJK RADICAL LAME TWO*/ + 0, /* U+002e90: CJK RADICAL LAME THREE*/ + 0, /* U+002e91: CJK RADICAL LAME FOUR*/ + 0, /* U+002e92: CJK RADICAL SNAKE*/ + 0, /* U+002e93: CJK RADICAL THREAD*/ + 0, /* U+002e94: CJK RADICAL SNOUT ONE*/ + 0, /* U+002e95: CJK RADICAL SNOUT TWO*/ + 0, /* U+002e96: CJK RADICAL HEART ONE*/ + 0, /* U+002e97: CJK RADICAL HEART TWO*/ + 0, /* U+002e98: CJK RADICAL HAND*/ + 0, /* U+002e99: CJK RADICAL RAP*/ + 0, /* U+002e9a: */ + 0, /* U+002e9b: CJK RADICAL CHOKE*/ + 0, /* U+002e9c: CJK RADICAL SUN*/ + 0, /* U+002e9d: CJK RADICAL MOON*/ + 0, /* U+002e9e: CJK RADICAL DEATH*/ + 0, /* U+002e9f: CJK RADICAL MOTHER*/ + 0, /* U+002ea0: CJK RADICAL CIVILIAN*/ + 0, /* U+002ea1: CJK RADICAL WATER ONE*/ + 0, /* U+002ea2: CJK RADICAL WATER TWO*/ + 0, /* U+002ea3: CJK RADICAL FIRE*/ + 0, /* U+002ea4: CJK RADICAL PAW ONE*/ + 0, /* U+002ea5: CJK RADICAL PAW TWO*/ + 0, /* U+002ea6: CJK RADICAL SIMPLIFIED HALF TREE TRUNK*/ + 0, /* U+002ea7: CJK RADICAL COW*/ + 0, /* U+002ea8: CJK RADICAL DOG*/ + 0, /* U+002ea9: CJK RADICAL JADE*/ + 0, /* U+002eaa: CJK RADICAL BOLT OF CLOTH*/ + 0, /* U+002eab: CJK RADICAL EYE*/ + 0, /* U+002eac: CJK RADICAL SPIRIT ONE*/ + 0, /* U+002ead: CJK RADICAL SPIRIT TWO*/ + 0, /* U+002eae: CJK RADICAL BAMBOO*/ + 0, /* U+002eaf: CJK RADICAL SILK*/ + 0, /* U+002eb0: CJK RADICAL C-SIMPLIFIED SILK*/ + 0, /* U+002eb1: CJK RADICAL NET ONE*/ + 0, /* U+002eb2: CJK RADICAL NET TWO*/ + 0, /* U+002eb3: CJK RADICAL NET THREE*/ + 0, /* U+002eb4: CJK RADICAL NET FOUR*/ + 0, /* U+002eb5: CJK RADICAL MESH*/ + 0, /* U+002eb6: CJK RADICAL SHEEP*/ + 0, /* U+002eb7: CJK RADICAL RAM*/ + 0, /* U+002eb8: CJK RADICAL EWE*/ + 0, /* U+002eb9: CJK RADICAL OLD*/ + 0, /* U+002eba: CJK RADICAL BRUSH ONE*/ + 0, /* U+002ebb: CJK RADICAL BRUSH TWO*/ + 0, /* U+002ebc: CJK RADICAL MEAT*/ + 0, /* U+002ebd: CJK RADICAL MORTAR*/ + 0, /* U+002ebe: CJK RADICAL GRASS ONE*/ + 0, /* U+002ebf: CJK RADICAL GRASS TWO*/ + 0, /* U+002ec0: CJK RADICAL GRASS THREE*/ + 0, /* U+002ec1: CJK RADICAL TIGER*/ + 0, /* U+002ec2: CJK RADICAL CLOTHES*/ + 0, /* U+002ec3: CJK RADICAL WEST ONE*/ + 0, /* U+002ec4: CJK RADICAL WEST TWO*/ + 0, /* U+002ec5: CJK RADICAL C-SIMPLIFIED SEE*/ + 0, /* U+002ec6: CJK RADICAL SIMPLIFIED HORN*/ + 0, /* U+002ec7: CJK RADICAL HORN*/ + 0, /* U+002ec8: CJK RADICAL C-SIMPLIFIED SPEECH*/ + 0, /* U+002ec9: CJK RADICAL C-SIMPLIFIED SHELL*/ + 0, /* U+002eca: CJK RADICAL FOOT*/ + 0, /* U+002ecb: CJK RADICAL C-SIMPLIFIED CART*/ + 0, /* U+002ecc: CJK RADICAL SIMPLIFIED WALK*/ + 0, /* U+002ecd: CJK RADICAL WALK ONE*/ + 0, /* U+002ece: CJK RADICAL WALK TWO*/ + 0, /* U+002ecf: CJK RADICAL CITY*/ + 0, /* U+002ed0: CJK RADICAL C-SIMPLIFIED GOLD*/ + 0, /* U+002ed1: CJK RADICAL LONG ONE*/ + 0, /* U+002ed2: CJK RADICAL LONG TWO*/ + 0, /* U+002ed3: CJK RADICAL C-SIMPLIFIED LONG*/ + 0, /* U+002ed4: CJK RADICAL C-SIMPLIFIED GATE*/ + 0, /* U+002ed5: CJK RADICAL MOUND ONE*/ + 0, /* U+002ed6: CJK RADICAL MOUND TWO*/ + 0, /* U+002ed7: CJK RADICAL RAIN*/ + 0, /* U+002ed8: CJK RADICAL BLUE*/ + 0, /* U+002ed9: CJK RADICAL C-SIMPLIFIED TANNED LEATHER*/ + 0, /* U+002eda: CJK RADICAL C-SIMPLIFIED LEAF*/ + 0, /* U+002edb: CJK RADICAL C-SIMPLIFIED WIND*/ + 0, /* U+002edc: CJK RADICAL C-SIMPLIFIED FLY*/ + 0, /* U+002edd: CJK RADICAL EAT ONE*/ + 0, /* U+002ede: CJK RADICAL EAT TWO*/ + 0, /* U+002edf: CJK RADICAL EAT THREE*/ + 0, /* U+002ee0: CJK RADICAL C-SIMPLIFIED EAT*/ + 0, /* U+002ee1: CJK RADICAL HEAD*/ + 0, /* U+002ee2: CJK RADICAL C-SIMPLIFIED HORSE*/ + 0, /* U+002ee3: CJK RADICAL BONE*/ + 0, /* U+002ee4: CJK RADICAL GHOST*/ + 0, /* U+002ee5: CJK RADICAL C-SIMPLIFIED FISH*/ + 0, /* U+002ee6: CJK RADICAL C-SIMPLIFIED BIRD*/ + 0, /* U+002ee7: CJK RADICAL C-SIMPLIFIED SALT*/ + 0, /* U+002ee8: CJK RADICAL SIMPLIFIED WHEAT*/ + 0, /* U+002ee9: CJK RADICAL SIMPLIFIED YELLOW*/ + 0, /* U+002eea: CJK RADICAL C-SIMPLIFIED FROG*/ + 0, /* U+002eeb: CJK RADICAL J-SIMPLIFIED EVEN*/ + 0, /* U+002eec: CJK RADICAL C-SIMPLIFIED EVEN*/ + 0, /* U+002eed: CJK RADICAL J-SIMPLIFIED TOOTH*/ + 0, /* U+002eee: CJK RADICAL C-SIMPLIFIED TOOTH*/ + 0, /* U+002eef: CJK RADICAL J-SIMPLIFIED DRAGON*/ + 0, /* U+002ef0: CJK RADICAL C-SIMPLIFIED DRAGON*/ + 0, /* U+002ef1: CJK RADICAL TURTLE*/ + 0, /* U+002ef2: CJK RADICAL J-SIMPLIFIED TURTLE*/ + 0, /* U+002ef3: CJK RADICAL C-SIMPLIFIED TURTLE*/ + 0, /* U+002ef4: */ + 0, /* U+002ef5: */ + 0, /* U+002ef6: */ + 0, /* U+002ef7: */ + 0, /* U+002ef8: */ + 0, /* U+002ef9: */ + 0, /* U+002efa: */ + 0, /* U+002efb: */ + 0, /* U+002efc: */ + 0, /* U+002efd: */ + 0, /* U+002efe: */ + 0, /* U+002eff: */ + 0, /* U+002f00: KANGXI RADICAL ONE*/ + 0, /* U+002f01: KANGXI RADICAL LINE*/ + 0, /* U+002f02: KANGXI RADICAL DOT*/ + 0, /* U+002f03: KANGXI RADICAL SLASH*/ + 0, /* U+002f04: KANGXI RADICAL SECOND*/ + 0, /* U+002f05: KANGXI RADICAL HOOK*/ + 0, /* U+002f06: KANGXI RADICAL TWO*/ + 0, /* U+002f07: KANGXI RADICAL LID*/ + 0, /* U+002f08: KANGXI RADICAL MAN*/ + 0, /* U+002f09: KANGXI RADICAL LEGS*/ + 0, /* U+002f0a: KANGXI RADICAL ENTER*/ + 0, /* U+002f0b: KANGXI RADICAL EIGHT*/ + 0, /* U+002f0c: KANGXI RADICAL DOWN BOX*/ + 0, /* U+002f0d: KANGXI RADICAL COVER*/ + 0, /* U+002f0e: KANGXI RADICAL ICE*/ + 0, /* U+002f0f: KANGXI RADICAL TABLE*/ + 0, /* U+002f10: KANGXI RADICAL OPEN BOX*/ + 0, /* U+002f11: KANGXI RADICAL KNIFE*/ + 0, /* U+002f12: KANGXI RADICAL POWER*/ + 0, /* U+002f13: KANGXI RADICAL WRAP*/ + 0, /* U+002f14: KANGXI RADICAL SPOON*/ + 0, /* U+002f15: KANGXI RADICAL RIGHT OPEN BOX*/ + 0, /* U+002f16: KANGXI RADICAL HIDING ENCLOSURE*/ + 0, /* U+002f17: KANGXI RADICAL TEN*/ + 0, /* U+002f18: KANGXI RADICAL DIVINATION*/ + 0, /* U+002f19: KANGXI RADICAL SEAL*/ + 0, /* U+002f1a: KANGXI RADICAL CLIFF*/ + 0, /* U+002f1b: KANGXI RADICAL PRIVATE*/ + 0, /* U+002f1c: KANGXI RADICAL AGAIN*/ + 0, /* U+002f1d: KANGXI RADICAL MOUTH*/ + 0, /* U+002f1e: KANGXI RADICAL ENCLOSURE*/ + 0, /* U+002f1f: KANGXI RADICAL EARTH*/ + 0, /* U+002f20: KANGXI RADICAL SCHOLAR*/ + 0, /* U+002f21: KANGXI RADICAL GO*/ + 0, /* U+002f22: KANGXI RADICAL GO SLOWLY*/ + 0, /* U+002f23: KANGXI RADICAL EVENING*/ + 0, /* U+002f24: KANGXI RADICAL BIG*/ + 0, /* U+002f25: KANGXI RADICAL WOMAN*/ + 0, /* U+002f26: KANGXI RADICAL CHILD*/ + 0, /* U+002f27: KANGXI RADICAL ROOF*/ + 0, /* U+002f28: KANGXI RADICAL INCH*/ + 0, /* U+002f29: KANGXI RADICAL SMALL*/ + 0, /* U+002f2a: KANGXI RADICAL LAME*/ + 0, /* U+002f2b: KANGXI RADICAL CORPSE*/ + 0, /* U+002f2c: KANGXI RADICAL SPROUT*/ + 0, /* U+002f2d: KANGXI RADICAL MOUNTAIN*/ + 0, /* U+002f2e: KANGXI RADICAL RIVER*/ + 0, /* U+002f2f: KANGXI RADICAL WORK*/ + 0, /* U+002f30: KANGXI RADICAL ONESELF*/ + 0, /* U+002f31: KANGXI RADICAL TURBAN*/ + 0, /* U+002f32: KANGXI RADICAL DRY*/ + 0, /* U+002f33: KANGXI RADICAL SHORT THREAD*/ + 0, /* U+002f34: KANGXI RADICAL DOTTED CLIFF*/ + 0, /* U+002f35: KANGXI RADICAL LONG STRIDE*/ + 0, /* U+002f36: KANGXI RADICAL TWO HANDS*/ + 0, /* U+002f37: KANGXI RADICAL SHOOT*/ + 0, /* U+002f38: KANGXI RADICAL BOW*/ + 0, /* U+002f39: KANGXI RADICAL SNOUT*/ + 0, /* U+002f3a: KANGXI RADICAL BRISTLE*/ + 0, /* U+002f3b: KANGXI RADICAL STEP*/ + 0, /* U+002f3c: KANGXI RADICAL HEART*/ + 0, /* U+002f3d: KANGXI RADICAL HALBERD*/ + 0, /* U+002f3e: KANGXI RADICAL DOOR*/ + 0, /* U+002f3f: KANGXI RADICAL HAND*/ + 0, /* U+002f40: KANGXI RADICAL BRANCH*/ + 0, /* U+002f41: KANGXI RADICAL RAP*/ + 0, /* U+002f42: KANGXI RADICAL SCRIPT*/ + 0, /* U+002f43: KANGXI RADICAL DIPPER*/ + 0, /* U+002f44: KANGXI RADICAL AXE*/ + 0, /* U+002f45: KANGXI RADICAL SQUARE*/ + 0, /* U+002f46: KANGXI RADICAL NOT*/ + 0, /* U+002f47: KANGXI RADICAL SUN*/ + 0, /* U+002f48: KANGXI RADICAL SAY*/ + 0, /* U+002f49: KANGXI RADICAL MOON*/ + 0, /* U+002f4a: KANGXI RADICAL TREE*/ + 0, /* U+002f4b: KANGXI RADICAL LACK*/ + 0, /* U+002f4c: KANGXI RADICAL STOP*/ + 0, /* U+002f4d: KANGXI RADICAL DEATH*/ + 0, /* U+002f4e: KANGXI RADICAL WEAPON*/ + 0, /* U+002f4f: KANGXI RADICAL DO NOT*/ + 0, /* U+002f50: KANGXI RADICAL COMPARE*/ + 0, /* U+002f51: KANGXI RADICAL FUR*/ + 0, /* U+002f52: KANGXI RADICAL CLAN*/ + 0, /* U+002f53: KANGXI RADICAL STEAM*/ + 0, /* U+002f54: KANGXI RADICAL WATER*/ + 0, /* U+002f55: KANGXI RADICAL FIRE*/ + 0, /* U+002f56: KANGXI RADICAL CLAW*/ + 0, /* U+002f57: KANGXI RADICAL FATHER*/ + 0, /* U+002f58: KANGXI RADICAL DOUBLE X*/ + 0, /* U+002f59: KANGXI RADICAL HALF TREE TRUNK*/ + 0, /* U+002f5a: KANGXI RADICAL SLICE*/ + 0, /* U+002f5b: KANGXI RADICAL FANG*/ + 0, /* U+002f5c: KANGXI RADICAL COW*/ + 0, /* U+002f5d: KANGXI RADICAL DOG*/ + 0, /* U+002f5e: KANGXI RADICAL PROFOUND*/ + 0, /* U+002f5f: KANGXI RADICAL JADE*/ + 0, /* U+002f60: KANGXI RADICAL MELON*/ + 0, /* U+002f61: KANGXI RADICAL TILE*/ + 0, /* U+002f62: KANGXI RADICAL SWEET*/ + 0, /* U+002f63: KANGXI RADICAL LIFE*/ + 0, /* U+002f64: KANGXI RADICAL USE*/ + 0, /* U+002f65: KANGXI RADICAL FIELD*/ + 0, /* U+002f66: KANGXI RADICAL BOLT OF CLOTH*/ + 0, /* U+002f67: KANGXI RADICAL SICKNESS*/ + 0, /* U+002f68: KANGXI RADICAL DOTTED TENT*/ + 0, /* U+002f69: KANGXI RADICAL WHITE*/ + 0, /* U+002f6a: KANGXI RADICAL SKIN*/ + 0, /* U+002f6b: KANGXI RADICAL DISH*/ + 0, /* U+002f6c: KANGXI RADICAL EYE*/ + 0, /* U+002f6d: KANGXI RADICAL SPEAR*/ + 0, /* U+002f6e: KANGXI RADICAL ARROW*/ + 0, /* U+002f6f: KANGXI RADICAL STONE*/ + 0, /* U+002f70: KANGXI RADICAL SPIRIT*/ + 0, /* U+002f71: KANGXI RADICAL TRACK*/ + 0, /* U+002f72: KANGXI RADICAL GRAIN*/ + 0, /* U+002f73: KANGXI RADICAL CAVE*/ + 0, /* U+002f74: KANGXI RADICAL STAND*/ + 0, /* U+002f75: KANGXI RADICAL BAMBOO*/ + 0, /* U+002f76: KANGXI RADICAL RICE*/ + 0, /* U+002f77: KANGXI RADICAL SILK*/ + 0, /* U+002f78: KANGXI RADICAL JAR*/ + 0, /* U+002f79: KANGXI RADICAL NET*/ + 0, /* U+002f7a: KANGXI RADICAL SHEEP*/ + 0, /* U+002f7b: KANGXI RADICAL FEATHER*/ + 0, /* U+002f7c: KANGXI RADICAL OLD*/ + 0, /* U+002f7d: KANGXI RADICAL AND*/ + 0, /* U+002f7e: KANGXI RADICAL PLOW*/ + 0, /* U+002f7f: KANGXI RADICAL EAR*/ + 0, /* U+002f80: KANGXI RADICAL BRUSH*/ + 0, /* U+002f81: KANGXI RADICAL MEAT*/ + 0, /* U+002f82: KANGXI RADICAL MINISTER*/ + 0, /* U+002f83: KANGXI RADICAL SELF*/ + 0, /* U+002f84: KANGXI RADICAL ARRIVE*/ + 0, /* U+002f85: KANGXI RADICAL MORTAR*/ + 0, /* U+002f86: KANGXI RADICAL TONGUE*/ + 0, /* U+002f87: KANGXI RADICAL OPPOSE*/ + 0, /* U+002f88: KANGXI RADICAL BOAT*/ + 0, /* U+002f89: KANGXI RADICAL STOPPING*/ + 0, /* U+002f8a: KANGXI RADICAL COLOR*/ + 0, /* U+002f8b: KANGXI RADICAL GRASS*/ + 0, /* U+002f8c: KANGXI RADICAL TIGER*/ + 0, /* U+002f8d: KANGXI RADICAL INSECT*/ + 0, /* U+002f8e: KANGXI RADICAL BLOOD*/ + 0, /* U+002f8f: KANGXI RADICAL WALK ENCLOSURE*/ + 0, /* U+002f90: KANGXI RADICAL CLOTHES*/ + 0, /* U+002f91: KANGXI RADICAL WEST*/ + 0, /* U+002f92: KANGXI RADICAL SEE*/ + 0, /* U+002f93: KANGXI RADICAL HORN*/ + 0, /* U+002f94: KANGXI RADICAL SPEECH*/ + 0, /* U+002f95: KANGXI RADICAL VALLEY*/ + 0, /* U+002f96: KANGXI RADICAL BEAN*/ + 0, /* U+002f97: KANGXI RADICAL PIG*/ + 0, /* U+002f98: KANGXI RADICAL BADGER*/ + 0, /* U+002f99: KANGXI RADICAL SHELL*/ + 0, /* U+002f9a: KANGXI RADICAL RED*/ + 0, /* U+002f9b: KANGXI RADICAL RUN*/ + 0, /* U+002f9c: KANGXI RADICAL FOOT*/ + 0, /* U+002f9d: KANGXI RADICAL BODY*/ + 0, /* U+002f9e: KANGXI RADICAL CART*/ + 0, /* U+002f9f: KANGXI RADICAL BITTER*/ + 0, /* U+002fa0: KANGXI RADICAL MORNING*/ + 0, /* U+002fa1: KANGXI RADICAL WALK*/ + 0, /* U+002fa2: KANGXI RADICAL CITY*/ + 0, /* U+002fa3: KANGXI RADICAL WINE*/ + 0, /* U+002fa4: KANGXI RADICAL DISTINGUISH*/ + 0, /* U+002fa5: KANGXI RADICAL VILLAGE*/ + 0, /* U+002fa6: KANGXI RADICAL GOLD*/ + 0, /* U+002fa7: KANGXI RADICAL LONG*/ + 0, /* U+002fa8: KANGXI RADICAL GATE*/ + 0, /* U+002fa9: KANGXI RADICAL MOUND*/ + 0, /* U+002faa: KANGXI RADICAL SLAVE*/ + 0, /* U+002fab: KANGXI RADICAL SHORT TAILED BIRD*/ + 0, /* U+002fac: KANGXI RADICAL RAIN*/ + 0, /* U+002fad: KANGXI RADICAL BLUE*/ + 0, /* U+002fae: KANGXI RADICAL WRONG*/ + 0, /* U+002faf: KANGXI RADICAL FACE*/ + 0, /* U+002fb0: KANGXI RADICAL LEATHER*/ + 0, /* U+002fb1: KANGXI RADICAL TANNED LEATHER*/ + 0, /* U+002fb2: KANGXI RADICAL LEEK*/ + 0, /* U+002fb3: KANGXI RADICAL SOUND*/ + 0, /* U+002fb4: KANGXI RADICAL LEAF*/ + 0, /* U+002fb5: KANGXI RADICAL WIND*/ + 0, /* U+002fb6: KANGXI RADICAL FLY*/ + 0, /* U+002fb7: KANGXI RADICAL EAT*/ + 0, /* U+002fb8: KANGXI RADICAL HEAD*/ + 0, /* U+002fb9: KANGXI RADICAL FRAGRANT*/ + 0, /* U+002fba: KANGXI RADICAL HORSE*/ + 0, /* U+002fbb: KANGXI RADICAL BONE*/ + 0, /* U+002fbc: KANGXI RADICAL TALL*/ + 0, /* U+002fbd: KANGXI RADICAL HAIR*/ + 0, /* U+002fbe: KANGXI RADICAL FIGHT*/ + 0, /* U+002fbf: KANGXI RADICAL SACRIFICIAL WINE*/ + 0, /* U+002fc0: KANGXI RADICAL CAULDRON*/ + 0, /* U+002fc1: KANGXI RADICAL GHOST*/ + 0, /* U+002fc2: KANGXI RADICAL FISH*/ + 0, /* U+002fc3: KANGXI RADICAL BIRD*/ + 0, /* U+002fc4: KANGXI RADICAL SALT*/ + 0, /* U+002fc5: KANGXI RADICAL DEER*/ + 0, /* U+002fc6: KANGXI RADICAL WHEAT*/ + 0, /* U+002fc7: KANGXI RADICAL HEMP*/ + 0, /* U+002fc8: KANGXI RADICAL YELLOW*/ + 0, /* U+002fc9: KANGXI RADICAL MILLET*/ + 0, /* U+002fca: KANGXI RADICAL BLACK*/ + 0, /* U+002fcb: KANGXI RADICAL EMBROIDERY*/ + 0, /* U+002fcc: KANGXI RADICAL FROG*/ + 0, /* U+002fcd: KANGXI RADICAL TRIPOD*/ + 0, /* U+002fce: KANGXI RADICAL DRUM*/ + 0, /* U+002fcf: KANGXI RADICAL RAT*/ + 0, /* U+002fd0: KANGXI RADICAL NOSE*/ + 0, /* U+002fd1: KANGXI RADICAL EVEN*/ + 0, /* U+002fd2: KANGXI RADICAL TOOTH*/ + 0, /* U+002fd3: KANGXI RADICAL DRAGON*/ + 0, /* U+002fd4: KANGXI RADICAL TURTLE*/ + 0, /* U+002fd5: KANGXI RADICAL FLUTE*/ + 0, /* U+002fd6: */ + 0, /* U+002fd7: */ + 0, /* U+002fd8: */ + 0, /* U+002fd9: */ + 0, /* U+002fda: */ + 0, /* U+002fdb: */ + 0, /* U+002fdc: */ + 0, /* U+002fdd: */ + 0, /* U+002fde: */ + 0, /* U+002fdf: */ + 0, /* U+002fe0: */ + 0, /* U+002fe1: */ + 0, /* U+002fe2: */ + 0, /* U+002fe3: */ + 0, /* U+002fe4: */ + 0, /* U+002fe5: */ + 0, /* U+002fe6: */ + 0, /* U+002fe7: */ + 0, /* U+002fe8: */ + 0, /* U+002fe9: */ + 0, /* U+002fea: */ + 0, /* U+002feb: */ + 0, /* U+002fec: */ + 0, /* U+002fed: */ + 0, /* U+002fee: */ + 0, /* U+002fef: */ + 0, /* U+002ff0: IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT*/ + 0, /* U+002ff1: IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW*/ + 0, /* U+002ff2: IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT*/ + 0, /* U+002ff3: IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW*/ + 0, /* U+002ff4: IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND*/ + 0, /* U+002ff5: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE*/ + 0, /* U+002ff6: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW*/ + 0, /* U+002ff7: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT*/ + 0, /* U+002ff8: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT*/ + 0, /* U+002ff9: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT*/ + 0, /* U+002ffa: IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT*/ + 0, /* U+002ffb: IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID*/ + 0, /* U+002ffc: */ + 0, /* U+002ffd: */ + 0, /* U+002ffe: */ + 0, /* U+002fff: */ + RTUNI_WSPACE, /* U+003000: IDEOGRAPHIC SPACE*/ + 0, /* U+003001: IDEOGRAPHIC COMMA*/ + 0, /* U+003002: IDEOGRAPHIC FULL STOP*/ + 0, /* U+003003: DITTO MARK*/ + 0, /* U+003004: JAPANESE INDUSTRIAL STANDARD SYMBOL*/ + RTUNI_ALPHA, /* U+003005: IDEOGRAPHIC ITERATION MARK*/ + RTUNI_ALPHA, /* U+003006: IDEOGRAPHIC CLOSING MARK*/ + RTUNI_ALPHA, /* U+003007: IDEOGRAPHIC NUMBER ZERO*/ + 0, /* U+003008: LEFT ANGLE BRACKET*/ + 0, /* U+003009: RIGHT ANGLE BRACKET*/ + 0, /* U+00300a: LEFT DOUBLE ANGLE BRACKET*/ + 0, /* U+00300b: RIGHT DOUBLE ANGLE BRACKET*/ + 0, /* U+00300c: LEFT CORNER BRACKET*/ + 0, /* U+00300d: RIGHT CORNER BRACKET*/ + 0, /* U+00300e: LEFT WHITE CORNER BRACKET*/ + 0, /* U+00300f: RIGHT WHITE CORNER BRACKET*/ + 0, /* U+003010: LEFT BLACK LENTICULAR BRACKET*/ + 0, /* U+003011: RIGHT BLACK LENTICULAR BRACKET*/ + 0, /* U+003012: POSTAL MARK*/ + 0, /* U+003013: GETA MARK*/ + 0, /* U+003014: LEFT TORTOISE SHELL BRACKET*/ + 0, /* U+003015: RIGHT TORTOISE SHELL BRACKET*/ + 0, /* U+003016: LEFT WHITE LENTICULAR BRACKET*/ + 0, /* U+003017: RIGHT WHITE LENTICULAR BRACKET*/ + 0, /* U+003018: LEFT WHITE TORTOISE SHELL BRACKET*/ + 0, /* U+003019: RIGHT WHITE TORTOISE SHELL BRACKET*/ + 0, /* U+00301a: LEFT WHITE SQUARE BRACKET*/ + 0, /* U+00301b: RIGHT WHITE SQUARE BRACKET*/ + 0, /* U+00301c: WAVE DASH*/ + 0, /* U+00301d: REVERSED DOUBLE PRIME QUOTATION MARK*/ + 0, /* U+00301e: DOUBLE PRIME QUOTATION MARK*/ + 0, /* U+00301f: LOW DOUBLE PRIME QUOTATION MARK*/ + 0, /* U+003020: POSTAL MARK FACE*/ + RTUNI_ALPHA, /* U+003021: HANGZHOU NUMERAL ONE*/ + RTUNI_ALPHA, /* U+003022: HANGZHOU NUMERAL TWO*/ + RTUNI_ALPHA, /* U+003023: HANGZHOU NUMERAL THREE*/ + RTUNI_ALPHA, /* U+003024: HANGZHOU NUMERAL FOUR*/ + RTUNI_ALPHA, /* U+003025: HANGZHOU NUMERAL FIVE*/ + RTUNI_ALPHA, /* U+003026: HANGZHOU NUMERAL SIX*/ + RTUNI_ALPHA, /* U+003027: HANGZHOU NUMERAL SEVEN*/ + RTUNI_ALPHA, /* U+003028: HANGZHOU NUMERAL EIGHT*/ + RTUNI_ALPHA, /* U+003029: HANGZHOU NUMERAL NINE*/ + 0, /* U+00302a: IDEOGRAPHIC LEVEL TONE MARK*/ + 0, /* U+00302b: IDEOGRAPHIC RISING TONE MARK*/ + 0, /* U+00302c: IDEOGRAPHIC DEPARTING TONE MARK*/ + 0, /* U+00302d: IDEOGRAPHIC ENTERING TONE MARK*/ + 0, /* U+00302e: HANGUL SINGLE DOT TONE MARK*/ + 0, /* U+00302f: HANGUL DOUBLE DOT TONE MARK*/ + 0, /* U+003030: WAVY DASH*/ + RTUNI_ALPHA, /* U+003031: VERTICAL KANA REPEAT MARK*/ + RTUNI_ALPHA, /* U+003032: VERTICAL KANA REPEAT WITH VOICED SOUND MARK*/ + RTUNI_ALPHA, /* U+003033: VERTICAL KANA REPEAT MARK UPPER HALF*/ + RTUNI_ALPHA, /* U+003034: VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF*/ + RTUNI_ALPHA, /* U+003035: VERTICAL KANA REPEAT MARK LOWER HALF*/ + 0, /* U+003036: CIRCLED POSTAL MARK*/ + 0, /* U+003037: IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL*/ + RTUNI_ALPHA, /* U+003038: HANGZHOU NUMERAL TEN*/ + RTUNI_ALPHA, /* U+003039: HANGZHOU NUMERAL TWENTY*/ + RTUNI_ALPHA, /* U+00303a: HANGZHOU NUMERAL THIRTY*/ + RTUNI_ALPHA, /* U+00303b: VERTICAL IDEOGRAPHIC ITERATION MARK*/ + RTUNI_ALPHA, /* U+00303c: MASU MARK*/ + 0, /* U+00303d: PART ALTERNATION MARK*/ + 0, /* U+00303e: IDEOGRAPHIC VARIATION INDICATOR*/ + 0, /* U+00303f: IDEOGRAPHIC HALF FILL SPACE*/ + 0, /* U+003040: */ + RTUNI_ALPHA, /* U+003041: HIRAGANA LETTER SMALL A*/ + RTUNI_ALPHA, /* U+003042: HIRAGANA LETTER A*/ + RTUNI_ALPHA, /* U+003043: HIRAGANA LETTER SMALL I*/ + RTUNI_ALPHA, /* U+003044: HIRAGANA LETTER I*/ + RTUNI_ALPHA, /* U+003045: HIRAGANA LETTER SMALL U*/ + RTUNI_ALPHA, /* U+003046: HIRAGANA LETTER U*/ + RTUNI_ALPHA, /* U+003047: HIRAGANA LETTER SMALL E*/ + RTUNI_ALPHA, /* U+003048: HIRAGANA LETTER E*/ + RTUNI_ALPHA, /* U+003049: HIRAGANA LETTER SMALL O*/ + RTUNI_ALPHA, /* U+00304a: HIRAGANA LETTER O*/ + RTUNI_ALPHA, /* U+00304b: HIRAGANA LETTER KA*/ + RTUNI_ALPHA, /* U+00304c: HIRAGANA LETTER GA*/ + RTUNI_ALPHA, /* U+00304d: HIRAGANA LETTER KI*/ + RTUNI_ALPHA, /* U+00304e: HIRAGANA LETTER GI*/ + RTUNI_ALPHA, /* U+00304f: HIRAGANA LETTER KU*/ + RTUNI_ALPHA, /* U+003050: HIRAGANA LETTER GU*/ + RTUNI_ALPHA, /* U+003051: HIRAGANA LETTER KE*/ + RTUNI_ALPHA, /* U+003052: HIRAGANA LETTER GE*/ + RTUNI_ALPHA, /* U+003053: HIRAGANA LETTER KO*/ + RTUNI_ALPHA, /* U+003054: HIRAGANA LETTER GO*/ + RTUNI_ALPHA, /* U+003055: HIRAGANA LETTER SA*/ + RTUNI_ALPHA, /* U+003056: HIRAGANA LETTER ZA*/ + RTUNI_ALPHA, /* U+003057: HIRAGANA LETTER SI*/ + RTUNI_ALPHA, /* U+003058: HIRAGANA LETTER ZI*/ + RTUNI_ALPHA, /* U+003059: HIRAGANA LETTER SU*/ + RTUNI_ALPHA, /* U+00305a: HIRAGANA LETTER ZU*/ + RTUNI_ALPHA, /* U+00305b: HIRAGANA LETTER SE*/ + RTUNI_ALPHA, /* U+00305c: HIRAGANA LETTER ZE*/ + RTUNI_ALPHA, /* U+00305d: HIRAGANA LETTER SO*/ + RTUNI_ALPHA, /* U+00305e: HIRAGANA LETTER ZO*/ + RTUNI_ALPHA, /* U+00305f: HIRAGANA LETTER TA*/ + RTUNI_ALPHA, /* U+003060: HIRAGANA LETTER DA*/ + RTUNI_ALPHA, /* U+003061: HIRAGANA LETTER TI*/ + RTUNI_ALPHA, /* U+003062: HIRAGANA LETTER DI*/ + RTUNI_ALPHA, /* U+003063: HIRAGANA LETTER SMALL TU*/ + RTUNI_ALPHA, /* U+003064: HIRAGANA LETTER TU*/ + RTUNI_ALPHA, /* U+003065: HIRAGANA LETTER DU*/ + RTUNI_ALPHA, /* U+003066: HIRAGANA LETTER TE*/ + RTUNI_ALPHA, /* U+003067: HIRAGANA LETTER DE*/ + RTUNI_ALPHA, /* U+003068: HIRAGANA LETTER TO*/ + RTUNI_ALPHA, /* U+003069: HIRAGANA LETTER DO*/ + RTUNI_ALPHA, /* U+00306a: HIRAGANA LETTER NA*/ + RTUNI_ALPHA, /* U+00306b: HIRAGANA LETTER NI*/ + RTUNI_ALPHA, /* U+00306c: HIRAGANA LETTER NU*/ + RTUNI_ALPHA, /* U+00306d: HIRAGANA LETTER NE*/ + RTUNI_ALPHA, /* U+00306e: HIRAGANA LETTER NO*/ + RTUNI_ALPHA, /* U+00306f: HIRAGANA LETTER HA*/ + RTUNI_ALPHA, /* U+003070: HIRAGANA LETTER BA*/ + RTUNI_ALPHA, /* U+003071: HIRAGANA LETTER PA*/ + RTUNI_ALPHA, /* U+003072: HIRAGANA LETTER HI*/ + RTUNI_ALPHA, /* U+003073: HIRAGANA LETTER BI*/ + RTUNI_ALPHA, /* U+003074: HIRAGANA LETTER PI*/ + RTUNI_ALPHA, /* U+003075: HIRAGANA LETTER HU*/ + RTUNI_ALPHA, /* U+003076: HIRAGANA LETTER BU*/ + RTUNI_ALPHA, /* U+003077: HIRAGANA LETTER PU*/ + RTUNI_ALPHA, /* U+003078: HIRAGANA LETTER HE*/ + RTUNI_ALPHA, /* U+003079: HIRAGANA LETTER BE*/ + RTUNI_ALPHA, /* U+00307a: HIRAGANA LETTER PE*/ + RTUNI_ALPHA, /* U+00307b: HIRAGANA LETTER HO*/ + RTUNI_ALPHA, /* U+00307c: HIRAGANA LETTER BO*/ + RTUNI_ALPHA, /* U+00307d: HIRAGANA LETTER PO*/ + RTUNI_ALPHA, /* U+00307e: HIRAGANA LETTER MA*/ + RTUNI_ALPHA, /* U+00307f: HIRAGANA LETTER MI*/ + RTUNI_ALPHA, /* U+003080: HIRAGANA LETTER MU*/ + RTUNI_ALPHA, /* U+003081: HIRAGANA LETTER ME*/ + RTUNI_ALPHA, /* U+003082: HIRAGANA LETTER MO*/ + RTUNI_ALPHA, /* U+003083: HIRAGANA LETTER SMALL YA*/ + RTUNI_ALPHA, /* U+003084: HIRAGANA LETTER YA*/ + RTUNI_ALPHA, /* U+003085: HIRAGANA LETTER SMALL YU*/ + RTUNI_ALPHA, /* U+003086: HIRAGANA LETTER YU*/ + RTUNI_ALPHA, /* U+003087: HIRAGANA LETTER SMALL YO*/ + RTUNI_ALPHA, /* U+003088: HIRAGANA LETTER YO*/ + RTUNI_ALPHA, /* U+003089: HIRAGANA LETTER RA*/ + RTUNI_ALPHA, /* U+00308a: HIRAGANA LETTER RI*/ + RTUNI_ALPHA, /* U+00308b: HIRAGANA LETTER RU*/ + RTUNI_ALPHA, /* U+00308c: HIRAGANA LETTER RE*/ + RTUNI_ALPHA, /* U+00308d: HIRAGANA LETTER RO*/ + RTUNI_ALPHA, /* U+00308e: HIRAGANA LETTER SMALL WA*/ + RTUNI_ALPHA, /* U+00308f: HIRAGANA LETTER WA*/ + RTUNI_ALPHA, /* U+003090: HIRAGANA LETTER WI*/ + RTUNI_ALPHA, /* U+003091: HIRAGANA LETTER WE*/ + RTUNI_ALPHA, /* U+003092: HIRAGANA LETTER WO*/ + RTUNI_ALPHA, /* U+003093: HIRAGANA LETTER N*/ + RTUNI_ALPHA, /* U+003094: HIRAGANA LETTER VU*/ + RTUNI_ALPHA, /* U+003095: HIRAGANA LETTER SMALL KA*/ + RTUNI_ALPHA, /* U+003096: HIRAGANA LETTER SMALL KE*/ + 0, /* U+003097: */ + 0, /* U+003098: */ + 0, /* U+003099: COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK*/ + 0, /* U+00309a: COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK*/ + 0, /* U+00309b: KATAKANA-HIRAGANA VOICED SOUND MARK*/ + 0, /* U+00309c: KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK*/ + RTUNI_ALPHA, /* U+00309d: HIRAGANA ITERATION MARK*/ + RTUNI_ALPHA, /* U+00309e: HIRAGANA VOICED ITERATION MARK*/ + RTUNI_ALPHA, /* U+00309f: HIRAGANA DIGRAPH YORI*/ + 0, /* U+0030a0: KATAKANA-HIRAGANA DOUBLE HYPHEN*/ + RTUNI_ALPHA, /* U+0030a1: KATAKANA LETTER SMALL A*/ + RTUNI_ALPHA, /* U+0030a2: KATAKANA LETTER A*/ + RTUNI_ALPHA, /* U+0030a3: KATAKANA LETTER SMALL I*/ + RTUNI_ALPHA, /* U+0030a4: KATAKANA LETTER I*/ + RTUNI_ALPHA, /* U+0030a5: KATAKANA LETTER SMALL U*/ + RTUNI_ALPHA, /* U+0030a6: KATAKANA LETTER U*/ + RTUNI_ALPHA, /* U+0030a7: KATAKANA LETTER SMALL E*/ + RTUNI_ALPHA, /* U+0030a8: KATAKANA LETTER E*/ + RTUNI_ALPHA, /* U+0030a9: KATAKANA LETTER SMALL O*/ + RTUNI_ALPHA, /* U+0030aa: KATAKANA LETTER O*/ + RTUNI_ALPHA, /* U+0030ab: KATAKANA LETTER KA*/ + RTUNI_ALPHA, /* U+0030ac: KATAKANA LETTER GA*/ + RTUNI_ALPHA, /* U+0030ad: KATAKANA LETTER KI*/ + RTUNI_ALPHA, /* U+0030ae: KATAKANA LETTER GI*/ + RTUNI_ALPHA, /* U+0030af: KATAKANA LETTER KU*/ + RTUNI_ALPHA, /* U+0030b0: KATAKANA LETTER GU*/ + RTUNI_ALPHA, /* U+0030b1: KATAKANA LETTER KE*/ + RTUNI_ALPHA, /* U+0030b2: KATAKANA LETTER GE*/ + RTUNI_ALPHA, /* U+0030b3: KATAKANA LETTER KO*/ + RTUNI_ALPHA, /* U+0030b4: KATAKANA LETTER GO*/ + RTUNI_ALPHA, /* U+0030b5: KATAKANA LETTER SA*/ + RTUNI_ALPHA, /* U+0030b6: KATAKANA LETTER ZA*/ + RTUNI_ALPHA, /* U+0030b7: KATAKANA LETTER SI*/ + RTUNI_ALPHA, /* U+0030b8: KATAKANA LETTER ZI*/ + RTUNI_ALPHA, /* U+0030b9: KATAKANA LETTER SU*/ + RTUNI_ALPHA, /* U+0030ba: KATAKANA LETTER ZU*/ + RTUNI_ALPHA, /* U+0030bb: KATAKANA LETTER SE*/ + RTUNI_ALPHA, /* U+0030bc: KATAKANA LETTER ZE*/ + RTUNI_ALPHA, /* U+0030bd: KATAKANA LETTER SO*/ + RTUNI_ALPHA, /* U+0030be: KATAKANA LETTER ZO*/ + RTUNI_ALPHA, /* U+0030bf: KATAKANA LETTER TA*/ + RTUNI_ALPHA, /* U+0030c0: KATAKANA LETTER DA*/ + RTUNI_ALPHA, /* U+0030c1: KATAKANA LETTER TI*/ + RTUNI_ALPHA, /* U+0030c2: KATAKANA LETTER DI*/ + RTUNI_ALPHA, /* U+0030c3: KATAKANA LETTER SMALL TU*/ + RTUNI_ALPHA, /* U+0030c4: KATAKANA LETTER TU*/ + RTUNI_ALPHA, /* U+0030c5: KATAKANA LETTER DU*/ + RTUNI_ALPHA, /* U+0030c6: KATAKANA LETTER TE*/ + RTUNI_ALPHA, /* U+0030c7: KATAKANA LETTER DE*/ + RTUNI_ALPHA, /* U+0030c8: KATAKANA LETTER TO*/ + RTUNI_ALPHA, /* U+0030c9: KATAKANA LETTER DO*/ + RTUNI_ALPHA, /* U+0030ca: KATAKANA LETTER NA*/ + RTUNI_ALPHA, /* U+0030cb: KATAKANA LETTER NI*/ + RTUNI_ALPHA, /* U+0030cc: KATAKANA LETTER NU*/ + RTUNI_ALPHA, /* U+0030cd: KATAKANA LETTER NE*/ + RTUNI_ALPHA, /* U+0030ce: KATAKANA LETTER NO*/ + RTUNI_ALPHA, /* U+0030cf: KATAKANA LETTER HA*/ + RTUNI_ALPHA, /* U+0030d0: KATAKANA LETTER BA*/ + RTUNI_ALPHA, /* U+0030d1: KATAKANA LETTER PA*/ + RTUNI_ALPHA, /* U+0030d2: KATAKANA LETTER HI*/ + RTUNI_ALPHA, /* U+0030d3: KATAKANA LETTER BI*/ + RTUNI_ALPHA, /* U+0030d4: KATAKANA LETTER PI*/ + RTUNI_ALPHA, /* U+0030d5: KATAKANA LETTER HU*/ + RTUNI_ALPHA, /* U+0030d6: KATAKANA LETTER BU*/ + RTUNI_ALPHA, /* U+0030d7: KATAKANA LETTER PU*/ + RTUNI_ALPHA, /* U+0030d8: KATAKANA LETTER HE*/ + RTUNI_ALPHA, /* U+0030d9: KATAKANA LETTER BE*/ + RTUNI_ALPHA, /* U+0030da: KATAKANA LETTER PE*/ + RTUNI_ALPHA, /* U+0030db: KATAKANA LETTER HO*/ + RTUNI_ALPHA, /* U+0030dc: KATAKANA LETTER BO*/ + RTUNI_ALPHA, /* U+0030dd: KATAKANA LETTER PO*/ + RTUNI_ALPHA, /* U+0030de: KATAKANA LETTER MA*/ + RTUNI_ALPHA, /* U+0030df: KATAKANA LETTER MI*/ + RTUNI_ALPHA, /* U+0030e0: KATAKANA LETTER MU*/ + RTUNI_ALPHA, /* U+0030e1: KATAKANA LETTER ME*/ + RTUNI_ALPHA, /* U+0030e2: KATAKANA LETTER MO*/ + RTUNI_ALPHA, /* U+0030e3: KATAKANA LETTER SMALL YA*/ + RTUNI_ALPHA, /* U+0030e4: KATAKANA LETTER YA*/ + RTUNI_ALPHA, /* U+0030e5: KATAKANA LETTER SMALL YU*/ + RTUNI_ALPHA, /* U+0030e6: KATAKANA LETTER YU*/ + RTUNI_ALPHA, /* U+0030e7: KATAKANA LETTER SMALL YO*/ + RTUNI_ALPHA, /* U+0030e8: KATAKANA LETTER YO*/ + RTUNI_ALPHA, /* U+0030e9: KATAKANA LETTER RA*/ + RTUNI_ALPHA, /* U+0030ea: KATAKANA LETTER RI*/ + RTUNI_ALPHA, /* U+0030eb: KATAKANA LETTER RU*/ + RTUNI_ALPHA, /* U+0030ec: KATAKANA LETTER RE*/ + RTUNI_ALPHA, /* U+0030ed: KATAKANA LETTER RO*/ + RTUNI_ALPHA, /* U+0030ee: KATAKANA LETTER SMALL WA*/ + RTUNI_ALPHA, /* U+0030ef: KATAKANA LETTER WA*/ + RTUNI_ALPHA, /* U+0030f0: KATAKANA LETTER WI*/ + RTUNI_ALPHA, /* U+0030f1: KATAKANA LETTER WE*/ + RTUNI_ALPHA, /* U+0030f2: KATAKANA LETTER WO*/ + RTUNI_ALPHA, /* U+0030f3: KATAKANA LETTER N*/ + RTUNI_ALPHA, /* U+0030f4: KATAKANA LETTER VU*/ + RTUNI_ALPHA, /* U+0030f5: KATAKANA LETTER SMALL KA*/ + RTUNI_ALPHA, /* U+0030f6: KATAKANA LETTER SMALL KE*/ + RTUNI_ALPHA, /* U+0030f7: KATAKANA LETTER VA*/ + RTUNI_ALPHA, /* U+0030f8: KATAKANA LETTER VI*/ + RTUNI_ALPHA, /* U+0030f9: KATAKANA LETTER VE*/ + RTUNI_ALPHA, /* U+0030fa: KATAKANA LETTER VO*/ + 0, /* U+0030fb: KATAKANA MIDDLE DOT*/ + RTUNI_ALPHA, /* U+0030fc: KATAKANA-HIRAGANA PROLONGED SOUND MARK*/ + RTUNI_ALPHA, /* U+0030fd: KATAKANA ITERATION MARK*/ + RTUNI_ALPHA, /* U+0030fe: KATAKANA VOICED ITERATION MARK*/ + RTUNI_ALPHA, /* U+0030ff: KATAKANA DIGRAPH KOTO*/ + 0, /* U+003100: */ + 0, /* U+003101: */ + 0, /* U+003102: */ + 0, /* U+003103: */ + 0, /* U+003104: */ + RTUNI_ALPHA, /* U+003105: BOPOMOFO LETTER B*/ + RTUNI_ALPHA, /* U+003106: BOPOMOFO LETTER P*/ + RTUNI_ALPHA, /* U+003107: BOPOMOFO LETTER M*/ + RTUNI_ALPHA, /* U+003108: BOPOMOFO LETTER F*/ + RTUNI_ALPHA, /* U+003109: BOPOMOFO LETTER D*/ + RTUNI_ALPHA, /* U+00310a: BOPOMOFO LETTER T*/ + RTUNI_ALPHA, /* U+00310b: BOPOMOFO LETTER N*/ + RTUNI_ALPHA, /* U+00310c: BOPOMOFO LETTER L*/ + RTUNI_ALPHA, /* U+00310d: BOPOMOFO LETTER G*/ + RTUNI_ALPHA, /* U+00310e: BOPOMOFO LETTER K*/ + RTUNI_ALPHA, /* U+00310f: BOPOMOFO LETTER H*/ + RTUNI_ALPHA, /* U+003110: BOPOMOFO LETTER J*/ + RTUNI_ALPHA, /* U+003111: BOPOMOFO LETTER Q*/ + RTUNI_ALPHA, /* U+003112: BOPOMOFO LETTER X*/ + RTUNI_ALPHA, /* U+003113: BOPOMOFO LETTER ZH*/ + RTUNI_ALPHA, /* U+003114: BOPOMOFO LETTER CH*/ + RTUNI_ALPHA, /* U+003115: BOPOMOFO LETTER SH*/ + RTUNI_ALPHA, /* U+003116: BOPOMOFO LETTER R*/ + RTUNI_ALPHA, /* U+003117: BOPOMOFO LETTER Z*/ + RTUNI_ALPHA, /* U+003118: BOPOMOFO LETTER C*/ + RTUNI_ALPHA, /* U+003119: BOPOMOFO LETTER S*/ + RTUNI_ALPHA, /* U+00311a: BOPOMOFO LETTER A*/ + RTUNI_ALPHA, /* U+00311b: BOPOMOFO LETTER O*/ + RTUNI_ALPHA, /* U+00311c: BOPOMOFO LETTER E*/ + RTUNI_ALPHA, /* U+00311d: BOPOMOFO LETTER EH*/ + RTUNI_ALPHA, /* U+00311e: BOPOMOFO LETTER AI*/ + RTUNI_ALPHA, /* U+00311f: BOPOMOFO LETTER EI*/ + RTUNI_ALPHA, /* U+003120: BOPOMOFO LETTER AU*/ + RTUNI_ALPHA, /* U+003121: BOPOMOFO LETTER OU*/ + RTUNI_ALPHA, /* U+003122: BOPOMOFO LETTER AN*/ + RTUNI_ALPHA, /* U+003123: BOPOMOFO LETTER EN*/ + RTUNI_ALPHA, /* U+003124: BOPOMOFO LETTER ANG*/ + RTUNI_ALPHA, /* U+003125: BOPOMOFO LETTER ENG*/ + RTUNI_ALPHA, /* U+003126: BOPOMOFO LETTER ER*/ + RTUNI_ALPHA, /* U+003127: BOPOMOFO LETTER I*/ + RTUNI_ALPHA, /* U+003128: BOPOMOFO LETTER U*/ + RTUNI_ALPHA, /* U+003129: BOPOMOFO LETTER IU*/ + RTUNI_ALPHA, /* U+00312a: BOPOMOFO LETTER V*/ + RTUNI_ALPHA, /* U+00312b: BOPOMOFO LETTER NG*/ + RTUNI_ALPHA, /* U+00312c: BOPOMOFO LETTER GN*/ + RTUNI_ALPHA, /* U+00312d: BOPOMOFO LETTER IH*/ + 0, /* U+00312e: */ + 0, /* U+00312f: */ + 0, /* U+003130: */ + RTUNI_ALPHA, /* U+003131: HANGUL LETTER KIYEOK*/ + RTUNI_ALPHA, /* U+003132: HANGUL LETTER SSANGKIYEOK*/ + RTUNI_ALPHA, /* U+003133: HANGUL LETTER KIYEOK-SIOS*/ + RTUNI_ALPHA, /* U+003134: HANGUL LETTER NIEUN*/ + RTUNI_ALPHA, /* U+003135: HANGUL LETTER NIEUN-CIEUC*/ + RTUNI_ALPHA, /* U+003136: HANGUL LETTER NIEUN-HIEUH*/ + RTUNI_ALPHA, /* U+003137: HANGUL LETTER TIKEUT*/ + RTUNI_ALPHA, /* U+003138: HANGUL LETTER SSANGTIKEUT*/ + RTUNI_ALPHA, /* U+003139: HANGUL LETTER RIEUL*/ + RTUNI_ALPHA, /* U+00313a: HANGUL LETTER RIEUL-KIYEOK*/ + RTUNI_ALPHA, /* U+00313b: HANGUL LETTER RIEUL-MIEUM*/ + RTUNI_ALPHA, /* U+00313c: HANGUL LETTER RIEUL-PIEUP*/ + RTUNI_ALPHA, /* U+00313d: HANGUL LETTER RIEUL-SIOS*/ + RTUNI_ALPHA, /* U+00313e: HANGUL LETTER RIEUL-THIEUTH*/ + RTUNI_ALPHA, /* U+00313f: HANGUL LETTER RIEUL-PHIEUPH*/ + RTUNI_ALPHA, /* U+003140: HANGUL LETTER RIEUL-HIEUH*/ + RTUNI_ALPHA, /* U+003141: HANGUL LETTER MIEUM*/ + RTUNI_ALPHA, /* U+003142: HANGUL LETTER PIEUP*/ + RTUNI_ALPHA, /* U+003143: HANGUL LETTER SSANGPIEUP*/ + RTUNI_ALPHA, /* U+003144: HANGUL LETTER PIEUP-SIOS*/ + RTUNI_ALPHA, /* U+003145: HANGUL LETTER SIOS*/ + RTUNI_ALPHA, /* U+003146: HANGUL LETTER SSANGSIOS*/ + RTUNI_ALPHA, /* U+003147: HANGUL LETTER IEUNG*/ + RTUNI_ALPHA, /* U+003148: HANGUL LETTER CIEUC*/ + RTUNI_ALPHA, /* U+003149: HANGUL LETTER SSANGCIEUC*/ + RTUNI_ALPHA, /* U+00314a: HANGUL LETTER CHIEUCH*/ + RTUNI_ALPHA, /* U+00314b: HANGUL LETTER KHIEUKH*/ + RTUNI_ALPHA, /* U+00314c: HANGUL LETTER THIEUTH*/ + RTUNI_ALPHA, /* U+00314d: HANGUL LETTER PHIEUPH*/ + RTUNI_ALPHA, /* U+00314e: HANGUL LETTER HIEUH*/ + RTUNI_ALPHA, /* U+00314f: HANGUL LETTER A*/ + RTUNI_ALPHA, /* U+003150: HANGUL LETTER AE*/ + RTUNI_ALPHA, /* U+003151: HANGUL LETTER YA*/ + RTUNI_ALPHA, /* U+003152: HANGUL LETTER YAE*/ + RTUNI_ALPHA, /* U+003153: HANGUL LETTER EO*/ + RTUNI_ALPHA, /* U+003154: HANGUL LETTER E*/ + RTUNI_ALPHA, /* U+003155: HANGUL LETTER YEO*/ + RTUNI_ALPHA, /* U+003156: HANGUL LETTER YE*/ + RTUNI_ALPHA, /* U+003157: HANGUL LETTER O*/ + RTUNI_ALPHA, /* U+003158: HANGUL LETTER WA*/ + RTUNI_ALPHA, /* U+003159: HANGUL LETTER WAE*/ + RTUNI_ALPHA, /* U+00315a: HANGUL LETTER OE*/ + RTUNI_ALPHA, /* U+00315b: HANGUL LETTER YO*/ + RTUNI_ALPHA, /* U+00315c: HANGUL LETTER U*/ + RTUNI_ALPHA, /* U+00315d: HANGUL LETTER WEO*/ + RTUNI_ALPHA, /* U+00315e: HANGUL LETTER WE*/ + RTUNI_ALPHA, /* U+00315f: HANGUL LETTER WI*/ + RTUNI_ALPHA, /* U+003160: HANGUL LETTER YU*/ + RTUNI_ALPHA, /* U+003161: HANGUL LETTER EU*/ + RTUNI_ALPHA, /* U+003162: HANGUL LETTER YI*/ + RTUNI_ALPHA, /* U+003163: HANGUL LETTER I*/ + RTUNI_ALPHA, /* U+003164: HANGUL FILLER*/ + RTUNI_ALPHA, /* U+003165: HANGUL LETTER SSANGNIEUN*/ + RTUNI_ALPHA, /* U+003166: HANGUL LETTER NIEUN-TIKEUT*/ + RTUNI_ALPHA, /* U+003167: HANGUL LETTER NIEUN-SIOS*/ + RTUNI_ALPHA, /* U+003168: HANGUL LETTER NIEUN-PANSIOS*/ + RTUNI_ALPHA, /* U+003169: HANGUL LETTER RIEUL-KIYEOK-SIOS*/ + RTUNI_ALPHA, /* U+00316a: HANGUL LETTER RIEUL-TIKEUT*/ + RTUNI_ALPHA, /* U+00316b: HANGUL LETTER RIEUL-PIEUP-SIOS*/ + RTUNI_ALPHA, /* U+00316c: HANGUL LETTER RIEUL-PANSIOS*/ + RTUNI_ALPHA, /* U+00316d: HANGUL LETTER RIEUL-YEORINHIEUH*/ + RTUNI_ALPHA, /* U+00316e: HANGUL LETTER MIEUM-PIEUP*/ + RTUNI_ALPHA, /* U+00316f: HANGUL LETTER MIEUM-SIOS*/ + RTUNI_ALPHA, /* U+003170: HANGUL LETTER MIEUM-PANSIOS*/ + RTUNI_ALPHA, /* U+003171: HANGUL LETTER KAPYEOUNMIEUM*/ + RTUNI_ALPHA, /* U+003172: HANGUL LETTER PIEUP-KIYEOK*/ + RTUNI_ALPHA, /* U+003173: HANGUL LETTER PIEUP-TIKEUT*/ + RTUNI_ALPHA, /* U+003174: HANGUL LETTER PIEUP-SIOS-KIYEOK*/ + RTUNI_ALPHA, /* U+003175: HANGUL LETTER PIEUP-SIOS-TIKEUT*/ + RTUNI_ALPHA, /* U+003176: HANGUL LETTER PIEUP-CIEUC*/ + RTUNI_ALPHA, /* U+003177: HANGUL LETTER PIEUP-THIEUTH*/ + RTUNI_ALPHA, /* U+003178: HANGUL LETTER KAPYEOUNPIEUP*/ + RTUNI_ALPHA, /* U+003179: HANGUL LETTER KAPYEOUNSSANGPIEUP*/ + RTUNI_ALPHA, /* U+00317a: HANGUL LETTER SIOS-KIYEOK*/ + RTUNI_ALPHA, /* U+00317b: HANGUL LETTER SIOS-NIEUN*/ + RTUNI_ALPHA, /* U+00317c: HANGUL LETTER SIOS-TIKEUT*/ + RTUNI_ALPHA, /* U+00317d: HANGUL LETTER SIOS-PIEUP*/ + RTUNI_ALPHA, /* U+00317e: HANGUL LETTER SIOS-CIEUC*/ + RTUNI_ALPHA, /* U+00317f: HANGUL LETTER PANSIOS*/ + RTUNI_ALPHA, /* U+003180: HANGUL LETTER SSANGIEUNG*/ + RTUNI_ALPHA, /* U+003181: HANGUL LETTER YESIEUNG*/ + RTUNI_ALPHA, /* U+003182: HANGUL LETTER YESIEUNG-SIOS*/ + RTUNI_ALPHA, /* U+003183: HANGUL LETTER YESIEUNG-PANSIOS*/ + RTUNI_ALPHA, /* U+003184: HANGUL LETTER KAPYEOUNPHIEUPH*/ + RTUNI_ALPHA, /* U+003185: HANGUL LETTER SSANGHIEUH*/ + RTUNI_ALPHA, /* U+003186: HANGUL LETTER YEORINHIEUH*/ + RTUNI_ALPHA, /* U+003187: HANGUL LETTER YO-YA*/ + RTUNI_ALPHA, /* U+003188: HANGUL LETTER YO-YAE*/ + RTUNI_ALPHA, /* U+003189: HANGUL LETTER YO-I*/ + RTUNI_ALPHA, /* U+00318a: HANGUL LETTER YU-YEO*/ + RTUNI_ALPHA, /* U+00318b: HANGUL LETTER YU-YE*/ + RTUNI_ALPHA, /* U+00318c: HANGUL LETTER YU-I*/ + RTUNI_ALPHA, /* U+00318d: HANGUL LETTER ARAEA*/ + RTUNI_ALPHA, /* U+00318e: HANGUL LETTER ARAEAE*/ + 0, /* U+00318f: */ + 0, /* U+003190: IDEOGRAPHIC ANNOTATION LINKING MARK*/ + 0, /* U+003191: IDEOGRAPHIC ANNOTATION REVERSE MARK*/ + 0, /* U+003192: IDEOGRAPHIC ANNOTATION ONE MARK*/ + 0, /* U+003193: IDEOGRAPHIC ANNOTATION TWO MARK*/ + 0, /* U+003194: IDEOGRAPHIC ANNOTATION THREE MARK*/ + 0, /* U+003195: IDEOGRAPHIC ANNOTATION FOUR MARK*/ + 0, /* U+003196: IDEOGRAPHIC ANNOTATION TOP MARK*/ + 0, /* U+003197: IDEOGRAPHIC ANNOTATION MIDDLE MARK*/ + 0, /* U+003198: IDEOGRAPHIC ANNOTATION BOTTOM MARK*/ + 0, /* U+003199: IDEOGRAPHIC ANNOTATION FIRST MARK*/ + 0, /* U+00319a: IDEOGRAPHIC ANNOTATION SECOND MARK*/ + 0, /* U+00319b: IDEOGRAPHIC ANNOTATION THIRD MARK*/ + 0, /* U+00319c: IDEOGRAPHIC ANNOTATION FOURTH MARK*/ + 0, /* U+00319d: IDEOGRAPHIC ANNOTATION HEAVEN MARK*/ + 0, /* U+00319e: IDEOGRAPHIC ANNOTATION EARTH MARK*/ + 0, /* U+00319f: IDEOGRAPHIC ANNOTATION MAN MARK*/ + RTUNI_ALPHA, /* U+0031a0: BOPOMOFO LETTER BU*/ + RTUNI_ALPHA, /* U+0031a1: BOPOMOFO LETTER ZI*/ + RTUNI_ALPHA, /* U+0031a2: BOPOMOFO LETTER JI*/ + RTUNI_ALPHA, /* U+0031a3: BOPOMOFO LETTER GU*/ + RTUNI_ALPHA, /* U+0031a4: BOPOMOFO LETTER EE*/ + RTUNI_ALPHA, /* U+0031a5: BOPOMOFO LETTER ENN*/ + RTUNI_ALPHA, /* U+0031a6: BOPOMOFO LETTER OO*/ + RTUNI_ALPHA, /* U+0031a7: BOPOMOFO LETTER ONN*/ + RTUNI_ALPHA, /* U+0031a8: BOPOMOFO LETTER IR*/ + RTUNI_ALPHA, /* U+0031a9: BOPOMOFO LETTER ANN*/ + RTUNI_ALPHA, /* U+0031aa: BOPOMOFO LETTER INN*/ + RTUNI_ALPHA, /* U+0031ab: BOPOMOFO LETTER UNN*/ + RTUNI_ALPHA, /* U+0031ac: BOPOMOFO LETTER IM*/ + RTUNI_ALPHA, /* U+0031ad: BOPOMOFO LETTER NGG*/ + RTUNI_ALPHA, /* U+0031ae: BOPOMOFO LETTER AINN*/ + RTUNI_ALPHA, /* U+0031af: BOPOMOFO LETTER AUNN*/ + RTUNI_ALPHA, /* U+0031b0: BOPOMOFO LETTER AM*/ + RTUNI_ALPHA, /* U+0031b1: BOPOMOFO LETTER OM*/ + RTUNI_ALPHA, /* U+0031b2: BOPOMOFO LETTER ONG*/ + RTUNI_ALPHA, /* U+0031b3: BOPOMOFO LETTER INNN*/ + RTUNI_ALPHA, /* U+0031b4: BOPOMOFO FINAL LETTER P*/ + RTUNI_ALPHA, /* U+0031b5: BOPOMOFO FINAL LETTER T*/ + RTUNI_ALPHA, /* U+0031b6: BOPOMOFO FINAL LETTER K*/ + RTUNI_ALPHA, /* U+0031b7: BOPOMOFO FINAL LETTER H*/ + RTUNI_ALPHA, /* U+0031b8: BOPOMOFO LETTER GH*/ + RTUNI_ALPHA, /* U+0031b9: BOPOMOFO LETTER LH*/ + RTUNI_ALPHA, /* U+0031ba: BOPOMOFO LETTER ZY*/ + 0, /* U+0031bb: */ + 0, /* U+0031bc: */ + 0, /* U+0031bd: */ + 0, /* U+0031be: */ + 0, /* U+0031bf: */ + 0, /* U+0031c0: CJK STROKE T*/ + 0, /* U+0031c1: CJK STROKE WG*/ + 0, /* U+0031c2: CJK STROKE XG*/ + 0, /* U+0031c3: CJK STROKE BXG*/ + 0, /* U+0031c4: CJK STROKE SW*/ + 0, /* U+0031c5: CJK STROKE HZZ*/ + 0, /* U+0031c6: CJK STROKE HZG*/ + 0, /* U+0031c7: CJK STROKE HP*/ + 0, /* U+0031c8: CJK STROKE HZWG*/ + 0, /* U+0031c9: CJK STROKE SZWG*/ + 0, /* U+0031ca: CJK STROKE HZT*/ + 0, /* U+0031cb: CJK STROKE HZZP*/ + 0, /* U+0031cc: CJK STROKE HPWG*/ + 0, /* U+0031cd: CJK STROKE HZW*/ + 0, /* U+0031ce: CJK STROKE HZZZ*/ + 0, /* U+0031cf: CJK STROKE N*/ + 0, /* U+0031d0: CJK STROKE H*/ + 0, /* U+0031d1: CJK STROKE S*/ + 0, /* U+0031d2: CJK STROKE P*/ + 0, /* U+0031d3: CJK STROKE SP*/ + 0, /* U+0031d4: CJK STROKE D*/ + 0, /* U+0031d5: CJK STROKE HZ*/ + 0, /* U+0031d6: CJK STROKE HG*/ + 0, /* U+0031d7: CJK STROKE SZ*/ + 0, /* U+0031d8: CJK STROKE SWZ*/ + 0, /* U+0031d9: CJK STROKE ST*/ + 0, /* U+0031da: CJK STROKE SG*/ + 0, /* U+0031db: CJK STROKE PD*/ + 0, /* U+0031dc: CJK STROKE PZ*/ + 0, /* U+0031dd: CJK STROKE TN*/ + 0, /* U+0031de: CJK STROKE SZZ*/ + 0, /* U+0031df: CJK STROKE SWG*/ + 0, /* U+0031e0: CJK STROKE HXWG*/ + 0, /* U+0031e1: CJK STROKE HZZZG*/ + 0, /* U+0031e2: CJK STROKE PG*/ + 0, /* U+0031e3: CJK STROKE Q*/ + 0, /* U+0031e4: */ + 0, /* U+0031e5: */ + 0, /* U+0031e6: */ + 0, /* U+0031e7: */ + 0, /* U+0031e8: */ + 0, /* U+0031e9: */ + 0, /* U+0031ea: */ + 0, /* U+0031eb: */ + 0, /* U+0031ec: */ + 0, /* U+0031ed: */ + 0, /* U+0031ee: */ + 0, /* U+0031ef: */ + RTUNI_ALPHA, /* U+0031f0: KATAKANA LETTER SMALL KU*/ + RTUNI_ALPHA, /* U+0031f1: KATAKANA LETTER SMALL SI*/ + RTUNI_ALPHA, /* U+0031f2: KATAKANA LETTER SMALL SU*/ + RTUNI_ALPHA, /* U+0031f3: KATAKANA LETTER SMALL TO*/ + RTUNI_ALPHA, /* U+0031f4: KATAKANA LETTER SMALL NU*/ + RTUNI_ALPHA, /* U+0031f5: KATAKANA LETTER SMALL HA*/ + RTUNI_ALPHA, /* U+0031f6: KATAKANA LETTER SMALL HI*/ + RTUNI_ALPHA, /* U+0031f7: KATAKANA LETTER SMALL HU*/ + RTUNI_ALPHA, /* U+0031f8: KATAKANA LETTER SMALL HE*/ + RTUNI_ALPHA, /* U+0031f9: KATAKANA LETTER SMALL HO*/ + RTUNI_ALPHA, /* U+0031fa: KATAKANA LETTER SMALL MU*/ + RTUNI_ALPHA, /* U+0031fb: KATAKANA LETTER SMALL RA*/ + RTUNI_ALPHA, /* U+0031fc: KATAKANA LETTER SMALL RI*/ + RTUNI_ALPHA, /* U+0031fd: KATAKANA LETTER SMALL RU*/ + RTUNI_ALPHA, /* U+0031fe: KATAKANA LETTER SMALL RE*/ + RTUNI_ALPHA, /* U+0031ff: KATAKANA LETTER SMALL RO*/ + 0, /* U+003200: PARENTHESIZED HANGUL KIYEOK*/ + 0, /* U+003201: PARENTHESIZED HANGUL NIEUN*/ + 0, /* U+003202: PARENTHESIZED HANGUL TIKEUT*/ + 0, /* U+003203: PARENTHESIZED HANGUL RIEUL*/ + 0, /* U+003204: PARENTHESIZED HANGUL MIEUM*/ + 0, /* U+003205: PARENTHESIZED HANGUL PIEUP*/ + 0, /* U+003206: PARENTHESIZED HANGUL SIOS*/ + 0, /* U+003207: PARENTHESIZED HANGUL IEUNG*/ + 0, /* U+003208: PARENTHESIZED HANGUL CIEUC*/ + 0, /* U+003209: PARENTHESIZED HANGUL CHIEUCH*/ + 0, /* U+00320a: PARENTHESIZED HANGUL KHIEUKH*/ + 0, /* U+00320b: PARENTHESIZED HANGUL THIEUTH*/ + 0, /* U+00320c: PARENTHESIZED HANGUL PHIEUPH*/ + 0, /* U+00320d: PARENTHESIZED HANGUL HIEUH*/ + 0, /* U+00320e: PARENTHESIZED HANGUL KIYEOK A*/ + 0, /* U+00320f: PARENTHESIZED HANGUL NIEUN A*/ + 0, /* U+003210: PARENTHESIZED HANGUL TIKEUT A*/ + 0, /* U+003211: PARENTHESIZED HANGUL RIEUL A*/ + 0, /* U+003212: PARENTHESIZED HANGUL MIEUM A*/ + 0, /* U+003213: PARENTHESIZED HANGUL PIEUP A*/ + 0, /* U+003214: PARENTHESIZED HANGUL SIOS A*/ + 0, /* U+003215: PARENTHESIZED HANGUL IEUNG A*/ + 0, /* U+003216: PARENTHESIZED HANGUL CIEUC A*/ + 0, /* U+003217: PARENTHESIZED HANGUL CHIEUCH A*/ + 0, /* U+003218: PARENTHESIZED HANGUL KHIEUKH A*/ + 0, /* U+003219: PARENTHESIZED HANGUL THIEUTH A*/ + 0, /* U+00321a: PARENTHESIZED HANGUL PHIEUPH A*/ + 0, /* U+00321b: PARENTHESIZED HANGUL HIEUH A*/ + 0, /* U+00321c: PARENTHESIZED HANGUL CIEUC U*/ + 0, /* U+00321d: PARENTHESIZED KOREAN CHARACTER OJEON*/ + 0, /* U+00321e: PARENTHESIZED KOREAN CHARACTER O HU*/ + 0, /* U+00321f: */ + 0, /* U+003220: PARENTHESIZED IDEOGRAPH ONE*/ + 0, /* U+003221: PARENTHESIZED IDEOGRAPH TWO*/ + 0, /* U+003222: PARENTHESIZED IDEOGRAPH THREE*/ + 0, /* U+003223: PARENTHESIZED IDEOGRAPH FOUR*/ + 0, /* U+003224: PARENTHESIZED IDEOGRAPH FIVE*/ + 0, /* U+003225: PARENTHESIZED IDEOGRAPH SIX*/ + 0, /* U+003226: PARENTHESIZED IDEOGRAPH SEVEN*/ + 0, /* U+003227: PARENTHESIZED IDEOGRAPH EIGHT*/ + 0, /* U+003228: PARENTHESIZED IDEOGRAPH NINE*/ + 0, /* U+003229: PARENTHESIZED IDEOGRAPH TEN*/ + 0, /* U+00322a: PARENTHESIZED IDEOGRAPH MOON*/ + 0, /* U+00322b: PARENTHESIZED IDEOGRAPH FIRE*/ + 0, /* U+00322c: PARENTHESIZED IDEOGRAPH WATER*/ + 0, /* U+00322d: PARENTHESIZED IDEOGRAPH WOOD*/ + 0, /* U+00322e: PARENTHESIZED IDEOGRAPH METAL*/ + 0, /* U+00322f: PARENTHESIZED IDEOGRAPH EARTH*/ + 0, /* U+003230: PARENTHESIZED IDEOGRAPH SUN*/ + 0, /* U+003231: PARENTHESIZED IDEOGRAPH STOCK*/ + 0, /* U+003232: PARENTHESIZED IDEOGRAPH HAVE*/ + 0, /* U+003233: PARENTHESIZED IDEOGRAPH SOCIETY*/ + 0, /* U+003234: PARENTHESIZED IDEOGRAPH NAME*/ + 0, /* U+003235: PARENTHESIZED IDEOGRAPH SPECIAL*/ + 0, /* U+003236: PARENTHESIZED IDEOGRAPH FINANCIAL*/ + 0, /* U+003237: PARENTHESIZED IDEOGRAPH CONGRATULATION*/ + 0, /* U+003238: PARENTHESIZED IDEOGRAPH LABOR*/ + 0, /* U+003239: PARENTHESIZED IDEOGRAPH REPRESENT*/ + 0, /* U+00323a: PARENTHESIZED IDEOGRAPH CALL*/ + 0, /* U+00323b: PARENTHESIZED IDEOGRAPH STUDY*/ + 0, /* U+00323c: PARENTHESIZED IDEOGRAPH SUPERVISE*/ + 0, /* U+00323d: PARENTHESIZED IDEOGRAPH ENTERPRISE*/ + 0, /* U+00323e: PARENTHESIZED IDEOGRAPH RESOURCE*/ + 0, /* U+00323f: PARENTHESIZED IDEOGRAPH ALLIANCE*/ + 0, /* U+003240: PARENTHESIZED IDEOGRAPH FESTIVAL*/ + 0, /* U+003241: PARENTHESIZED IDEOGRAPH REST*/ + 0, /* U+003242: PARENTHESIZED IDEOGRAPH SELF*/ + 0, /* U+003243: PARENTHESIZED IDEOGRAPH REACH*/ + 0, /* U+003244: CIRCLED IDEOGRAPH QUESTION*/ + 0, /* U+003245: CIRCLED IDEOGRAPH KINDERGARTEN*/ + 0, /* U+003246: CIRCLED IDEOGRAPH SCHOOL*/ + 0, /* U+003247: CIRCLED IDEOGRAPH KOTO*/ + 0, /* U+003248: CIRCLED NUMBER TEN ON BLACK SQUARE*/ + 0, /* U+003249: CIRCLED NUMBER TWENTY ON BLACK SQUARE*/ + 0, /* U+00324a: CIRCLED NUMBER THIRTY ON BLACK SQUARE*/ + 0, /* U+00324b: CIRCLED NUMBER FORTY ON BLACK SQUARE*/ + 0, /* U+00324c: CIRCLED NUMBER FIFTY ON BLACK SQUARE*/ + 0, /* U+00324d: CIRCLED NUMBER SIXTY ON BLACK SQUARE*/ + 0, /* U+00324e: CIRCLED NUMBER SEVENTY ON BLACK SQUARE*/ + 0, /* U+00324f: CIRCLED NUMBER EIGHTY ON BLACK SQUARE*/ + 0, /* U+003250: PARTNERSHIP SIGN*/ + 0, /* U+003251: CIRCLED NUMBER TWENTY ONE*/ + 0, /* U+003252: CIRCLED NUMBER TWENTY TWO*/ + 0, /* U+003253: CIRCLED NUMBER TWENTY THREE*/ + 0, /* U+003254: CIRCLED NUMBER TWENTY FOUR*/ + 0, /* U+003255: CIRCLED NUMBER TWENTY FIVE*/ + 0, /* U+003256: CIRCLED NUMBER TWENTY SIX*/ + 0, /* U+003257: CIRCLED NUMBER TWENTY SEVEN*/ + 0, /* U+003258: CIRCLED NUMBER TWENTY EIGHT*/ + 0, /* U+003259: CIRCLED NUMBER TWENTY NINE*/ + 0, /* U+00325a: CIRCLED NUMBER THIRTY*/ + 0, /* U+00325b: CIRCLED NUMBER THIRTY ONE*/ + 0, /* U+00325c: CIRCLED NUMBER THIRTY TWO*/ + 0, /* U+00325d: CIRCLED NUMBER THIRTY THREE*/ + 0, /* U+00325e: CIRCLED NUMBER THIRTY FOUR*/ + 0, /* U+00325f: CIRCLED NUMBER THIRTY FIVE*/ + 0, /* U+003260: CIRCLED HANGUL KIYEOK*/ + 0, /* U+003261: CIRCLED HANGUL NIEUN*/ + 0, /* U+003262: CIRCLED HANGUL TIKEUT*/ + 0, /* U+003263: CIRCLED HANGUL RIEUL*/ + 0, /* U+003264: CIRCLED HANGUL MIEUM*/ + 0, /* U+003265: CIRCLED HANGUL PIEUP*/ + 0, /* U+003266: CIRCLED HANGUL SIOS*/ + 0, /* U+003267: CIRCLED HANGUL IEUNG*/ + 0, /* U+003268: CIRCLED HANGUL CIEUC*/ + 0, /* U+003269: CIRCLED HANGUL CHIEUCH*/ + 0, /* U+00326a: CIRCLED HANGUL KHIEUKH*/ + 0, /* U+00326b: CIRCLED HANGUL THIEUTH*/ + 0, /* U+00326c: CIRCLED HANGUL PHIEUPH*/ + 0, /* U+00326d: CIRCLED HANGUL HIEUH*/ + 0, /* U+00326e: CIRCLED HANGUL KIYEOK A*/ + 0, /* U+00326f: CIRCLED HANGUL NIEUN A*/ + 0, /* U+003270: CIRCLED HANGUL TIKEUT A*/ + 0, /* U+003271: CIRCLED HANGUL RIEUL A*/ + 0, /* U+003272: CIRCLED HANGUL MIEUM A*/ + 0, /* U+003273: CIRCLED HANGUL PIEUP A*/ + 0, /* U+003274: CIRCLED HANGUL SIOS A*/ + 0, /* U+003275: CIRCLED HANGUL IEUNG A*/ + 0, /* U+003276: CIRCLED HANGUL CIEUC A*/ + 0, /* U+003277: CIRCLED HANGUL CHIEUCH A*/ + 0, /* U+003278: CIRCLED HANGUL KHIEUKH A*/ + 0, /* U+003279: CIRCLED HANGUL THIEUTH A*/ + 0, /* U+00327a: CIRCLED HANGUL PHIEUPH A*/ + 0, /* U+00327b: CIRCLED HANGUL HIEUH A*/ + 0, /* U+00327c: CIRCLED KOREAN CHARACTER CHAMKO*/ + 0, /* U+00327d: CIRCLED KOREAN CHARACTER JUEUI*/ + 0, /* U+00327e: CIRCLED HANGUL IEUNG U*/ + 0, /* U+00327f: KOREAN STANDARD SYMBOL*/ + 0, /* U+003280: CIRCLED IDEOGRAPH ONE*/ + 0, /* U+003281: CIRCLED IDEOGRAPH TWO*/ + 0, /* U+003282: CIRCLED IDEOGRAPH THREE*/ + 0, /* U+003283: CIRCLED IDEOGRAPH FOUR*/ + 0, /* U+003284: CIRCLED IDEOGRAPH FIVE*/ + 0, /* U+003285: CIRCLED IDEOGRAPH SIX*/ + 0, /* U+003286: CIRCLED IDEOGRAPH SEVEN*/ + 0, /* U+003287: CIRCLED IDEOGRAPH EIGHT*/ + 0, /* U+003288: CIRCLED IDEOGRAPH NINE*/ + 0, /* U+003289: CIRCLED IDEOGRAPH TEN*/ + 0, /* U+00328a: CIRCLED IDEOGRAPH MOON*/ + 0, /* U+00328b: CIRCLED IDEOGRAPH FIRE*/ + 0, /* U+00328c: CIRCLED IDEOGRAPH WATER*/ + 0, /* U+00328d: CIRCLED IDEOGRAPH WOOD*/ + 0, /* U+00328e: CIRCLED IDEOGRAPH METAL*/ + 0, /* U+00328f: CIRCLED IDEOGRAPH EARTH*/ + 0, /* U+003290: CIRCLED IDEOGRAPH SUN*/ + 0, /* U+003291: CIRCLED IDEOGRAPH STOCK*/ + 0, /* U+003292: CIRCLED IDEOGRAPH HAVE*/ + 0, /* U+003293: CIRCLED IDEOGRAPH SOCIETY*/ + 0, /* U+003294: CIRCLED IDEOGRAPH NAME*/ + 0, /* U+003295: CIRCLED IDEOGRAPH SPECIAL*/ + 0, /* U+003296: CIRCLED IDEOGRAPH FINANCIAL*/ + 0, /* U+003297: CIRCLED IDEOGRAPH CONGRATULATION*/ + 0, /* U+003298: CIRCLED IDEOGRAPH LABOR*/ + 0, /* U+003299: CIRCLED IDEOGRAPH SECRET*/ + 0, /* U+00329a: CIRCLED IDEOGRAPH MALE*/ + 0, /* U+00329b: CIRCLED IDEOGRAPH FEMALE*/ + 0, /* U+00329c: CIRCLED IDEOGRAPH SUITABLE*/ + 0, /* U+00329d: CIRCLED IDEOGRAPH EXCELLENT*/ + 0, /* U+00329e: CIRCLED IDEOGRAPH PRINT*/ + 0, /* U+00329f: CIRCLED IDEOGRAPH ATTENTION*/ + 0, /* U+0032a0: CIRCLED IDEOGRAPH ITEM*/ + 0, /* U+0032a1: CIRCLED IDEOGRAPH REST*/ + 0, /* U+0032a2: CIRCLED IDEOGRAPH COPY*/ + 0, /* U+0032a3: CIRCLED IDEOGRAPH CORRECT*/ + 0, /* U+0032a4: CIRCLED IDEOGRAPH HIGH*/ + 0, /* U+0032a5: CIRCLED IDEOGRAPH CENTRE*/ + 0, /* U+0032a6: CIRCLED IDEOGRAPH LOW*/ + 0, /* U+0032a7: CIRCLED IDEOGRAPH LEFT*/ + 0, /* U+0032a8: CIRCLED IDEOGRAPH RIGHT*/ + 0, /* U+0032a9: CIRCLED IDEOGRAPH MEDICINE*/ + 0, /* U+0032aa: CIRCLED IDEOGRAPH RELIGION*/ + 0, /* U+0032ab: CIRCLED IDEOGRAPH STUDY*/ + 0, /* U+0032ac: CIRCLED IDEOGRAPH SUPERVISE*/ + 0, /* U+0032ad: CIRCLED IDEOGRAPH ENTERPRISE*/ + 0, /* U+0032ae: CIRCLED IDEOGRAPH RESOURCE*/ + 0, /* U+0032af: CIRCLED IDEOGRAPH ALLIANCE*/ + 0, /* U+0032b0: CIRCLED IDEOGRAPH NIGHT*/ + 0, /* U+0032b1: CIRCLED NUMBER THIRTY SIX*/ + 0, /* U+0032b2: CIRCLED NUMBER THIRTY SEVEN*/ + 0, /* U+0032b3: CIRCLED NUMBER THIRTY EIGHT*/ + 0, /* U+0032b4: CIRCLED NUMBER THIRTY NINE*/ + 0, /* U+0032b5: CIRCLED NUMBER FORTY*/ + 0, /* U+0032b6: CIRCLED NUMBER FORTY ONE*/ + 0, /* U+0032b7: CIRCLED NUMBER FORTY TWO*/ + 0, /* U+0032b8: CIRCLED NUMBER FORTY THREE*/ + 0, /* U+0032b9: CIRCLED NUMBER FORTY FOUR*/ + 0, /* U+0032ba: CIRCLED NUMBER FORTY FIVE*/ + 0, /* U+0032bb: CIRCLED NUMBER FORTY SIX*/ + 0, /* U+0032bc: CIRCLED NUMBER FORTY SEVEN*/ + 0, /* U+0032bd: CIRCLED NUMBER FORTY EIGHT*/ + 0, /* U+0032be: CIRCLED NUMBER FORTY NINE*/ + 0, /* U+0032bf: CIRCLED NUMBER FIFTY*/ + 0, /* U+0032c0: IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY*/ + 0, /* U+0032c1: IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY*/ + 0, /* U+0032c2: IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH*/ + 0, /* U+0032c3: IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL*/ + 0, /* U+0032c4: IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY*/ + 0, /* U+0032c5: IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE*/ + 0, /* U+0032c6: IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY*/ + 0, /* U+0032c7: IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST*/ + 0, /* U+0032c8: IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER*/ + 0, /* U+0032c9: IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER*/ + 0, /* U+0032ca: IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER*/ + 0, /* U+0032cb: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER*/ + 0, /* U+0032cc: SQUARE HG*/ + 0, /* U+0032cd: SQUARE ERG*/ + 0, /* U+0032ce: SQUARE EV*/ + 0, /* U+0032cf: LIMITED LIABILITY SIGN*/ + 0, /* U+0032d0: CIRCLED KATAKANA A*/ + 0, /* U+0032d1: CIRCLED KATAKANA I*/ + 0, /* U+0032d2: CIRCLED KATAKANA U*/ + 0, /* U+0032d3: CIRCLED KATAKANA E*/ + 0, /* U+0032d4: CIRCLED KATAKANA O*/ + 0, /* U+0032d5: CIRCLED KATAKANA KA*/ + 0, /* U+0032d6: CIRCLED KATAKANA KI*/ + 0, /* U+0032d7: CIRCLED KATAKANA KU*/ + 0, /* U+0032d8: CIRCLED KATAKANA KE*/ + 0, /* U+0032d9: CIRCLED KATAKANA KO*/ + 0, /* U+0032da: CIRCLED KATAKANA SA*/ + 0, /* U+0032db: CIRCLED KATAKANA SI*/ + 0, /* U+0032dc: CIRCLED KATAKANA SU*/ + 0, /* U+0032dd: CIRCLED KATAKANA SE*/ + 0, /* U+0032de: CIRCLED KATAKANA SO*/ + 0, /* U+0032df: CIRCLED KATAKANA TA*/ + 0, /* U+0032e0: CIRCLED KATAKANA TI*/ + 0, /* U+0032e1: CIRCLED KATAKANA TU*/ + 0, /* U+0032e2: CIRCLED KATAKANA TE*/ + 0, /* U+0032e3: CIRCLED KATAKANA TO*/ + 0, /* U+0032e4: CIRCLED KATAKANA NA*/ + 0, /* U+0032e5: CIRCLED KATAKANA NI*/ + 0, /* U+0032e6: CIRCLED KATAKANA NU*/ + 0, /* U+0032e7: CIRCLED KATAKANA NE*/ + 0, /* U+0032e8: CIRCLED KATAKANA NO*/ + 0, /* U+0032e9: CIRCLED KATAKANA HA*/ + 0, /* U+0032ea: CIRCLED KATAKANA HI*/ + 0, /* U+0032eb: CIRCLED KATAKANA HU*/ + 0, /* U+0032ec: CIRCLED KATAKANA HE*/ + 0, /* U+0032ed: CIRCLED KATAKANA HO*/ + 0, /* U+0032ee: CIRCLED KATAKANA MA*/ + 0, /* U+0032ef: CIRCLED KATAKANA MI*/ + 0, /* U+0032f0: CIRCLED KATAKANA MU*/ + 0, /* U+0032f1: CIRCLED KATAKANA ME*/ + 0, /* U+0032f2: CIRCLED KATAKANA MO*/ + 0, /* U+0032f3: CIRCLED KATAKANA YA*/ + 0, /* U+0032f4: CIRCLED KATAKANA YU*/ + 0, /* U+0032f5: CIRCLED KATAKANA YO*/ + 0, /* U+0032f6: CIRCLED KATAKANA RA*/ + 0, /* U+0032f7: CIRCLED KATAKANA RI*/ + 0, /* U+0032f8: CIRCLED KATAKANA RU*/ + 0, /* U+0032f9: CIRCLED KATAKANA RE*/ + 0, /* U+0032fa: CIRCLED KATAKANA RO*/ + 0, /* U+0032fb: CIRCLED KATAKANA WA*/ + 0, /* U+0032fc: CIRCLED KATAKANA WI*/ + 0, /* U+0032fd: CIRCLED KATAKANA WE*/ + 0, /* U+0032fe: CIRCLED KATAKANA WO*/ + 0, /* U+0032ff: */ + 0, /* U+003300: SQUARE APAATO*/ + 0, /* U+003301: SQUARE ARUHUA*/ + 0, /* U+003302: SQUARE ANPEA*/ + 0, /* U+003303: SQUARE AARU*/ + 0, /* U+003304: SQUARE ININGU*/ + 0, /* U+003305: SQUARE INTI*/ + 0, /* U+003306: SQUARE UON*/ + 0, /* U+003307: SQUARE ESUKUUDO*/ + 0, /* U+003308: SQUARE EEKAA*/ + 0, /* U+003309: SQUARE ONSU*/ + 0, /* U+00330a: SQUARE OOMU*/ + 0, /* U+00330b: SQUARE KAIRI*/ + 0, /* U+00330c: SQUARE KARATTO*/ + 0, /* U+00330d: SQUARE KARORII*/ + 0, /* U+00330e: SQUARE GARON*/ + 0, /* U+00330f: SQUARE GANMA*/ + 0, /* U+003310: SQUARE GIGA*/ + 0, /* U+003311: SQUARE GINII*/ + 0, /* U+003312: SQUARE KYURII*/ + 0, /* U+003313: SQUARE GIRUDAA*/ + 0, /* U+003314: SQUARE KIRO*/ + 0, /* U+003315: SQUARE KIROGURAMU*/ + 0, /* U+003316: SQUARE KIROMEETORU*/ + 0, /* U+003317: SQUARE KIROWATTO*/ + 0, /* U+003318: SQUARE GURAMU*/ + 0, /* U+003319: SQUARE GURAMUTON*/ + 0, /* U+00331a: SQUARE KURUZEIRO*/ + 0, /* U+00331b: SQUARE KUROONE*/ + 0, /* U+00331c: SQUARE KEESU*/ + 0, /* U+00331d: SQUARE KORUNA*/ + 0, /* U+00331e: SQUARE KOOPO*/ + 0, /* U+00331f: SQUARE SAIKURU*/ + 0, /* U+003320: SQUARE SANTIIMU*/ + 0, /* U+003321: SQUARE SIRINGU*/ + 0, /* U+003322: SQUARE SENTI*/ + 0, /* U+003323: SQUARE SENTO*/ + 0, /* U+003324: SQUARE DAASU*/ + 0, /* U+003325: SQUARE DESI*/ + 0, /* U+003326: SQUARE DORU*/ + 0, /* U+003327: SQUARE TON*/ + 0, /* U+003328: SQUARE NANO*/ + 0, /* U+003329: SQUARE NOTTO*/ + 0, /* U+00332a: SQUARE HAITU*/ + 0, /* U+00332b: SQUARE PAASENTO*/ + 0, /* U+00332c: SQUARE PAATU*/ + 0, /* U+00332d: SQUARE BAARERU*/ + 0, /* U+00332e: SQUARE PIASUTORU*/ + 0, /* U+00332f: SQUARE PIKURU*/ + 0, /* U+003330: SQUARE PIKO*/ + 0, /* U+003331: SQUARE BIRU*/ + 0, /* U+003332: SQUARE HUARADDO*/ + 0, /* U+003333: SQUARE HUIITO*/ + 0, /* U+003334: SQUARE BUSSYERU*/ + 0, /* U+003335: SQUARE HURAN*/ + 0, /* U+003336: SQUARE HEKUTAARU*/ + 0, /* U+003337: SQUARE PESO*/ + 0, /* U+003338: SQUARE PENIHI*/ + 0, /* U+003339: SQUARE HERUTU*/ + 0, /* U+00333a: SQUARE PENSU*/ + 0, /* U+00333b: SQUARE PEEZI*/ + 0, /* U+00333c: SQUARE BEETA*/ + 0, /* U+00333d: SQUARE POINTO*/ + 0, /* U+00333e: SQUARE BORUTO*/ + 0, /* U+00333f: SQUARE HON*/ + 0, /* U+003340: SQUARE PONDO*/ + 0, /* U+003341: SQUARE HOORU*/ + 0, /* U+003342: SQUARE HOON*/ + 0, /* U+003343: SQUARE MAIKURO*/ + 0, /* U+003344: SQUARE MAIRU*/ + 0, /* U+003345: SQUARE MAHHA*/ + 0, /* U+003346: SQUARE MARUKU*/ + 0, /* U+003347: SQUARE MANSYON*/ + 0, /* U+003348: SQUARE MIKURON*/ + 0, /* U+003349: SQUARE MIRI*/ + 0, /* U+00334a: SQUARE MIRIBAARU*/ + 0, /* U+00334b: SQUARE MEGA*/ + 0, /* U+00334c: SQUARE MEGATON*/ + 0, /* U+00334d: SQUARE MEETORU*/ + 0, /* U+00334e: SQUARE YAADO*/ + 0, /* U+00334f: SQUARE YAARU*/ + 0, /* U+003350: SQUARE YUAN*/ + 0, /* U+003351: SQUARE RITTORU*/ + 0, /* U+003352: SQUARE RIRA*/ + 0, /* U+003353: SQUARE RUPII*/ + 0, /* U+003354: SQUARE RUUBURU*/ + 0, /* U+003355: SQUARE REMU*/ + 0, /* U+003356: SQUARE RENTOGEN*/ + 0, /* U+003357: SQUARE WATTO*/ + 0, /* U+003358: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO*/ + 0, /* U+003359: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE*/ + 0, /* U+00335a: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO*/ + 0, /* U+00335b: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE*/ + 0, /* U+00335c: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR*/ + 0, /* U+00335d: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE*/ + 0, /* U+00335e: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX*/ + 0, /* U+00335f: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN*/ + 0, /* U+003360: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT*/ + 0, /* U+003361: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE*/ + 0, /* U+003362: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN*/ + 0, /* U+003363: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN*/ + 0, /* U+003364: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE*/ + 0, /* U+003365: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN*/ + 0, /* U+003366: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN*/ + 0, /* U+003367: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN*/ + 0, /* U+003368: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN*/ + 0, /* U+003369: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN*/ + 0, /* U+00336a: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN*/ + 0, /* U+00336b: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN*/ + 0, /* U+00336c: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY*/ + 0, /* U+00336d: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE*/ + 0, /* U+00336e: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO*/ + 0, /* U+00336f: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE*/ + 0, /* U+003370: IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR*/ + 0, /* U+003371: SQUARE HPA*/ + 0, /* U+003372: SQUARE DA*/ + 0, /* U+003373: SQUARE AU*/ + 0, /* U+003374: SQUARE BAR*/ + 0, /* U+003375: SQUARE OV*/ + 0, /* U+003376: SQUARE PC*/ + 0, /* U+003377: SQUARE DM*/ + 0, /* U+003378: SQUARE DM SQUARED*/ + 0, /* U+003379: SQUARE DM CUBED*/ + 0, /* U+00337a: SQUARE IU*/ + 0, /* U+00337b: SQUARE ERA NAME HEISEI*/ + 0, /* U+00337c: SQUARE ERA NAME SYOUWA*/ + 0, /* U+00337d: SQUARE ERA NAME TAISYOU*/ + 0, /* U+00337e: SQUARE ERA NAME MEIZI*/ + 0, /* U+00337f: SQUARE CORPORATION*/ + 0, /* U+003380: SQUARE PA AMPS*/ + 0, /* U+003381: SQUARE NA*/ + 0, /* U+003382: SQUARE MU A*/ + 0, /* U+003383: SQUARE MA*/ + 0, /* U+003384: SQUARE KA*/ + 0, /* U+003385: SQUARE KB*/ + 0, /* U+003386: SQUARE MB*/ + 0, /* U+003387: SQUARE GB*/ + 0, /* U+003388: SQUARE CAL*/ + 0, /* U+003389: SQUARE KCAL*/ + 0, /* U+00338a: SQUARE PF*/ + 0, /* U+00338b: SQUARE NF*/ + 0, /* U+00338c: SQUARE MU F*/ + 0, /* U+00338d: SQUARE MU G*/ + 0, /* U+00338e: SQUARE MG*/ + 0, /* U+00338f: SQUARE KG*/ + 0, /* U+003390: SQUARE HZ*/ + 0, /* U+003391: SQUARE KHZ*/ + 0, /* U+003392: SQUARE MHZ*/ + 0, /* U+003393: SQUARE GHZ*/ + 0, /* U+003394: SQUARE THZ*/ + 0, /* U+003395: SQUARE MU L*/ + 0, /* U+003396: SQUARE ML*/ + 0, /* U+003397: SQUARE DL*/ + 0, /* U+003398: SQUARE KL*/ + 0, /* U+003399: SQUARE FM*/ + 0, /* U+00339a: SQUARE NM*/ + 0, /* U+00339b: SQUARE MU M*/ + 0, /* U+00339c: SQUARE MM*/ + 0, /* U+00339d: SQUARE CM*/ + 0, /* U+00339e: SQUARE KM*/ + 0, /* U+00339f: SQUARE MM SQUARED*/ + 0, /* U+0033a0: SQUARE CM SQUARED*/ + 0, /* U+0033a1: SQUARE M SQUARED*/ + 0, /* U+0033a2: SQUARE KM SQUARED*/ + 0, /* U+0033a3: SQUARE MM CUBED*/ + 0, /* U+0033a4: SQUARE CM CUBED*/ + 0, /* U+0033a5: SQUARE M CUBED*/ + 0, /* U+0033a6: SQUARE KM CUBED*/ + 0, /* U+0033a7: SQUARE M OVER S*/ + 0, /* U+0033a8: SQUARE M OVER S SQUARED*/ + 0, /* U+0033a9: SQUARE PA*/ + 0, /* U+0033aa: SQUARE KPA*/ + 0, /* U+0033ab: SQUARE MPA*/ + 0, /* U+0033ac: SQUARE GPA*/ + 0, /* U+0033ad: SQUARE RAD*/ + 0, /* U+0033ae: SQUARE RAD OVER S*/ + 0, /* U+0033af: SQUARE RAD OVER S SQUARED*/ + 0, /* U+0033b0: SQUARE PS*/ + 0, /* U+0033b1: SQUARE NS*/ + 0, /* U+0033b2: SQUARE MU S*/ + 0, /* U+0033b3: SQUARE MS*/ + 0, /* U+0033b4: SQUARE PV*/ + 0, /* U+0033b5: SQUARE NV*/ + 0, /* U+0033b6: SQUARE MU V*/ + 0, /* U+0033b7: SQUARE MV*/ + 0, /* U+0033b8: SQUARE KV*/ + 0, /* U+0033b9: SQUARE MV MEGA*/ + 0, /* U+0033ba: SQUARE PW*/ + 0, /* U+0033bb: SQUARE NW*/ + 0, /* U+0033bc: SQUARE MU W*/ + 0, /* U+0033bd: SQUARE MW*/ + 0, /* U+0033be: SQUARE KW*/ + 0, /* U+0033bf: SQUARE MW MEGA*/ + 0, /* U+0033c0: SQUARE K OHM*/ + 0, /* U+0033c1: SQUARE M OHM*/ + 0, /* U+0033c2: SQUARE AM*/ + 0, /* U+0033c3: SQUARE BQ*/ + 0, /* U+0033c4: SQUARE CC*/ + 0, /* U+0033c5: SQUARE CD*/ + 0, /* U+0033c6: SQUARE C OVER KG*/ + 0, /* U+0033c7: SQUARE CO*/ + 0, /* U+0033c8: SQUARE DB*/ + 0, /* U+0033c9: SQUARE GY*/ + 0, /* U+0033ca: SQUARE HA*/ + 0, /* U+0033cb: SQUARE HP*/ + 0, /* U+0033cc: SQUARE IN*/ + 0, /* U+0033cd: SQUARE KK*/ + 0, /* U+0033ce: SQUARE KM CAPITAL*/ + 0, /* U+0033cf: SQUARE KT*/ + 0, /* U+0033d0: SQUARE LM*/ + 0, /* U+0033d1: SQUARE LN*/ + 0, /* U+0033d2: SQUARE LOG*/ + 0, /* U+0033d3: SQUARE LX*/ + 0, /* U+0033d4: SQUARE MB SMALL*/ + 0, /* U+0033d5: SQUARE MIL*/ + 0, /* U+0033d6: SQUARE MOL*/ + 0, /* U+0033d7: SQUARE PH*/ + 0, /* U+0033d8: SQUARE PM*/ + 0, /* U+0033d9: SQUARE PPM*/ + 0, /* U+0033da: SQUARE PR*/ + 0, /* U+0033db: SQUARE SR*/ + 0, /* U+0033dc: SQUARE SV*/ + 0, /* U+0033dd: SQUARE WB*/ + 0, /* U+0033de: SQUARE V OVER M*/ + 0, /* U+0033df: SQUARE A OVER M*/ + 0, /* U+0033e0: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE*/ + 0, /* U+0033e1: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO*/ + 0, /* U+0033e2: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE*/ + 0, /* U+0033e3: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR*/ + 0, /* U+0033e4: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE*/ + 0, /* U+0033e5: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX*/ + 0, /* U+0033e6: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN*/ + 0, /* U+0033e7: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT*/ + 0, /* U+0033e8: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE*/ + 0, /* U+0033e9: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN*/ + 0, /* U+0033ea: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN*/ + 0, /* U+0033eb: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE*/ + 0, /* U+0033ec: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN*/ + 0, /* U+0033ed: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN*/ + 0, /* U+0033ee: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN*/ + 0, /* U+0033ef: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN*/ + 0, /* U+0033f0: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN*/ + 0, /* U+0033f1: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN*/ + 0, /* U+0033f2: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN*/ + 0, /* U+0033f3: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY*/ + 0, /* U+0033f4: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE*/ + 0, /* U+0033f5: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO*/ + 0, /* U+0033f6: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE*/ + 0, /* U+0033f7: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR*/ + 0, /* U+0033f8: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE*/ + 0, /* U+0033f9: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX*/ + 0, /* U+0033fa: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN*/ + 0, /* U+0033fb: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT*/ + 0, /* U+0033fc: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE*/ + 0, /* U+0033fd: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY*/ + 0, /* U+0033fe: IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE*/ + 0, /* U+0033ff: SQUARE GAL*/ + RTUNI_ALPHA, /* U+003400: <CJK Ideograph Extension A, First>*/ +}; + +static const uint8_t g_afRTUniFlags0x004db5[] = +{ + RTUNI_ALPHA, /* U+004db5: <CJK Ideograph Extension A, Last>*/ + 0, /* U+004db6: */ + 0, /* U+004db7: */ + 0, /* U+004db8: */ + 0, /* U+004db9: */ + 0, /* U+004dba: */ + 0, /* U+004dbb: */ + 0, /* U+004dbc: */ + 0, /* U+004dbd: */ + 0, /* U+004dbe: */ + 0, /* U+004dbf: */ + 0, /* U+004dc0: HEXAGRAM FOR THE CREATIVE HEAVEN*/ + 0, /* U+004dc1: HEXAGRAM FOR THE RECEPTIVE EARTH*/ + 0, /* U+004dc2: HEXAGRAM FOR DIFFICULTY AT THE BEGINNING*/ + 0, /* U+004dc3: HEXAGRAM FOR YOUTHFUL FOLLY*/ + 0, /* U+004dc4: HEXAGRAM FOR WAITING*/ + 0, /* U+004dc5: HEXAGRAM FOR CONFLICT*/ + 0, /* U+004dc6: HEXAGRAM FOR THE ARMY*/ + 0, /* U+004dc7: HEXAGRAM FOR HOLDING TOGETHER*/ + 0, /* U+004dc8: HEXAGRAM FOR SMALL TAMING*/ + 0, /* U+004dc9: HEXAGRAM FOR TREADING*/ + 0, /* U+004dca: HEXAGRAM FOR PEACE*/ + 0, /* U+004dcb: HEXAGRAM FOR STANDSTILL*/ + 0, /* U+004dcc: HEXAGRAM FOR FELLOWSHIP*/ + 0, /* U+004dcd: HEXAGRAM FOR GREAT POSSESSION*/ + 0, /* U+004dce: HEXAGRAM FOR MODESTY*/ + 0, /* U+004dcf: HEXAGRAM FOR ENTHUSIASM*/ + 0, /* U+004dd0: HEXAGRAM FOR FOLLOWING*/ + 0, /* U+004dd1: HEXAGRAM FOR WORK ON THE DECAYED*/ + 0, /* U+004dd2: HEXAGRAM FOR APPROACH*/ + 0, /* U+004dd3: HEXAGRAM FOR CONTEMPLATION*/ + 0, /* U+004dd4: HEXAGRAM FOR BITING THROUGH*/ + 0, /* U+004dd5: HEXAGRAM FOR GRACE*/ + 0, /* U+004dd6: HEXAGRAM FOR SPLITTING APART*/ + 0, /* U+004dd7: HEXAGRAM FOR RETURN*/ + 0, /* U+004dd8: HEXAGRAM FOR INNOCENCE*/ + 0, /* U+004dd9: HEXAGRAM FOR GREAT TAMING*/ + 0, /* U+004dda: HEXAGRAM FOR MOUTH CORNERS*/ + 0, /* U+004ddb: HEXAGRAM FOR GREAT PREPONDERANCE*/ + 0, /* U+004ddc: HEXAGRAM FOR THE ABYSMAL WATER*/ + 0, /* U+004ddd: HEXAGRAM FOR THE CLINGING FIRE*/ + 0, /* U+004dde: HEXAGRAM FOR INFLUENCE*/ + 0, /* U+004ddf: HEXAGRAM FOR DURATION*/ + 0, /* U+004de0: HEXAGRAM FOR RETREAT*/ + 0, /* U+004de1: HEXAGRAM FOR GREAT POWER*/ + 0, /* U+004de2: HEXAGRAM FOR PROGRESS*/ + 0, /* U+004de3: HEXAGRAM FOR DARKENING OF THE LIGHT*/ + 0, /* U+004de4: HEXAGRAM FOR THE FAMILY*/ + 0, /* U+004de5: HEXAGRAM FOR OPPOSITION*/ + 0, /* U+004de6: HEXAGRAM FOR OBSTRUCTION*/ + 0, /* U+004de7: HEXAGRAM FOR DELIVERANCE*/ + 0, /* U+004de8: HEXAGRAM FOR DECREASE*/ + 0, /* U+004de9: HEXAGRAM FOR INCREASE*/ + 0, /* U+004dea: HEXAGRAM FOR BREAKTHROUGH*/ + 0, /* U+004deb: HEXAGRAM FOR COMING TO MEET*/ + 0, /* U+004dec: HEXAGRAM FOR GATHERING TOGETHER*/ + 0, /* U+004ded: HEXAGRAM FOR PUSHING UPWARD*/ + 0, /* U+004dee: HEXAGRAM FOR OPPRESSION*/ + 0, /* U+004def: HEXAGRAM FOR THE WELL*/ + 0, /* U+004df0: HEXAGRAM FOR REVOLUTION*/ + 0, /* U+004df1: HEXAGRAM FOR THE CAULDRON*/ + 0, /* U+004df2: HEXAGRAM FOR THE AROUSING THUNDER*/ + 0, /* U+004df3: HEXAGRAM FOR THE KEEPING STILL MOUNTAIN*/ + 0, /* U+004df4: HEXAGRAM FOR DEVELOPMENT*/ + 0, /* U+004df5: HEXAGRAM FOR THE MARRYING MAIDEN*/ + 0, /* U+004df6: HEXAGRAM FOR ABUNDANCE*/ + 0, /* U+004df7: HEXAGRAM FOR THE WANDERER*/ + 0, /* U+004df8: HEXAGRAM FOR THE GENTLE WIND*/ + 0, /* U+004df9: HEXAGRAM FOR THE JOYOUS LAKE*/ + 0, /* U+004dfa: HEXAGRAM FOR DISPERSION*/ + 0, /* U+004dfb: HEXAGRAM FOR LIMITATION*/ + 0, /* U+004dfc: HEXAGRAM FOR INNER TRUTH*/ + 0, /* U+004dfd: HEXAGRAM FOR SMALL PREPONDERANCE*/ + 0, /* U+004dfe: HEXAGRAM FOR AFTER COMPLETION*/ + 0, /* U+004dff: HEXAGRAM FOR BEFORE COMPLETION*/ + RTUNI_ALPHA, /* U+004e00: <CJK Ideograph, First>*/ +}; + +static const uint8_t g_afRTUniFlags0x009fcc[] = +{ + RTUNI_ALPHA, /* U+009fcc: <CJK Ideograph, Last>*/ + 0, /* U+009fcd: */ + 0, /* U+009fce: */ + 0, /* U+009fcf: */ + 0, /* U+009fd0: */ + 0, /* U+009fd1: */ + 0, /* U+009fd2: */ + 0, /* U+009fd3: */ + 0, /* U+009fd4: */ + 0, /* U+009fd5: */ + 0, /* U+009fd6: */ + 0, /* U+009fd7: */ + 0, /* U+009fd8: */ + 0, /* U+009fd9: */ + 0, /* U+009fda: */ + 0, /* U+009fdb: */ + 0, /* U+009fdc: */ + 0, /* U+009fdd: */ + 0, /* U+009fde: */ + 0, /* U+009fdf: */ + 0, /* U+009fe0: */ + 0, /* U+009fe1: */ + 0, /* U+009fe2: */ + 0, /* U+009fe3: */ + 0, /* U+009fe4: */ + 0, /* U+009fe5: */ + 0, /* U+009fe6: */ + 0, /* U+009fe7: */ + 0, /* U+009fe8: */ + 0, /* U+009fe9: */ + 0, /* U+009fea: */ + 0, /* U+009feb: */ + 0, /* U+009fec: */ + 0, /* U+009fed: */ + 0, /* U+009fee: */ + 0, /* U+009fef: */ + 0, /* U+009ff0: */ + 0, /* U+009ff1: */ + 0, /* U+009ff2: */ + 0, /* U+009ff3: */ + 0, /* U+009ff4: */ + 0, /* U+009ff5: */ + 0, /* U+009ff6: */ + 0, /* U+009ff7: */ + 0, /* U+009ff8: */ + 0, /* U+009ff9: */ + 0, /* U+009ffa: */ + 0, /* U+009ffb: */ + 0, /* U+009ffc: */ + 0, /* U+009ffd: */ + 0, /* U+009ffe: */ + 0, /* U+009fff: */ + RTUNI_ALPHA, /* U+00a000: YI SYLLABLE IT*/ + RTUNI_ALPHA, /* U+00a001: YI SYLLABLE IX*/ + RTUNI_ALPHA, /* U+00a002: YI SYLLABLE I*/ + RTUNI_ALPHA, /* U+00a003: YI SYLLABLE IP*/ + RTUNI_ALPHA, /* U+00a004: YI SYLLABLE IET*/ + RTUNI_ALPHA, /* U+00a005: YI SYLLABLE IEX*/ + RTUNI_ALPHA, /* U+00a006: YI SYLLABLE IE*/ + RTUNI_ALPHA, /* U+00a007: YI SYLLABLE IEP*/ + RTUNI_ALPHA, /* U+00a008: YI SYLLABLE AT*/ + RTUNI_ALPHA, /* U+00a009: YI SYLLABLE AX*/ + RTUNI_ALPHA, /* U+00a00a: YI SYLLABLE A*/ + RTUNI_ALPHA, /* U+00a00b: YI SYLLABLE AP*/ + RTUNI_ALPHA, /* U+00a00c: YI SYLLABLE UOX*/ + RTUNI_ALPHA, /* U+00a00d: YI SYLLABLE UO*/ + RTUNI_ALPHA, /* U+00a00e: YI SYLLABLE UOP*/ + RTUNI_ALPHA, /* U+00a00f: YI SYLLABLE OT*/ + RTUNI_ALPHA, /* U+00a010: YI SYLLABLE OX*/ + RTUNI_ALPHA, /* U+00a011: YI SYLLABLE O*/ + RTUNI_ALPHA, /* U+00a012: YI SYLLABLE OP*/ + RTUNI_ALPHA, /* U+00a013: YI SYLLABLE EX*/ + RTUNI_ALPHA, /* U+00a014: YI SYLLABLE E*/ + RTUNI_ALPHA, /* U+00a015: YI SYLLABLE WU*/ + RTUNI_ALPHA, /* U+00a016: YI SYLLABLE BIT*/ + RTUNI_ALPHA, /* U+00a017: YI SYLLABLE BIX*/ + RTUNI_ALPHA, /* U+00a018: YI SYLLABLE BI*/ + RTUNI_ALPHA, /* U+00a019: YI SYLLABLE BIP*/ + RTUNI_ALPHA, /* U+00a01a: YI SYLLABLE BIET*/ + RTUNI_ALPHA, /* U+00a01b: YI SYLLABLE BIEX*/ + RTUNI_ALPHA, /* U+00a01c: YI SYLLABLE BIE*/ + RTUNI_ALPHA, /* U+00a01d: YI SYLLABLE BIEP*/ + RTUNI_ALPHA, /* U+00a01e: YI SYLLABLE BAT*/ + RTUNI_ALPHA, /* U+00a01f: YI SYLLABLE BAX*/ + RTUNI_ALPHA, /* U+00a020: YI SYLLABLE BA*/ + RTUNI_ALPHA, /* U+00a021: YI SYLLABLE BAP*/ + RTUNI_ALPHA, /* U+00a022: YI SYLLABLE BUOX*/ + RTUNI_ALPHA, /* U+00a023: YI SYLLABLE BUO*/ + RTUNI_ALPHA, /* U+00a024: YI SYLLABLE BUOP*/ + RTUNI_ALPHA, /* U+00a025: YI SYLLABLE BOT*/ + RTUNI_ALPHA, /* U+00a026: YI SYLLABLE BOX*/ + RTUNI_ALPHA, /* U+00a027: YI SYLLABLE BO*/ + RTUNI_ALPHA, /* U+00a028: YI SYLLABLE BOP*/ + RTUNI_ALPHA, /* U+00a029: YI SYLLABLE BEX*/ + RTUNI_ALPHA, /* U+00a02a: YI SYLLABLE BE*/ + RTUNI_ALPHA, /* U+00a02b: YI SYLLABLE BEP*/ + RTUNI_ALPHA, /* U+00a02c: YI SYLLABLE BUT*/ + RTUNI_ALPHA, /* U+00a02d: YI SYLLABLE BUX*/ + RTUNI_ALPHA, /* U+00a02e: YI SYLLABLE BU*/ + RTUNI_ALPHA, /* U+00a02f: YI SYLLABLE BUP*/ + RTUNI_ALPHA, /* U+00a030: YI SYLLABLE BURX*/ + RTUNI_ALPHA, /* U+00a031: YI SYLLABLE BUR*/ + RTUNI_ALPHA, /* U+00a032: YI SYLLABLE BYT*/ + RTUNI_ALPHA, /* U+00a033: YI SYLLABLE BYX*/ + RTUNI_ALPHA, /* U+00a034: YI SYLLABLE BY*/ + RTUNI_ALPHA, /* U+00a035: YI SYLLABLE BYP*/ + RTUNI_ALPHA, /* U+00a036: YI SYLLABLE BYRX*/ + RTUNI_ALPHA, /* U+00a037: YI SYLLABLE BYR*/ + RTUNI_ALPHA, /* U+00a038: YI SYLLABLE PIT*/ + RTUNI_ALPHA, /* U+00a039: YI SYLLABLE PIX*/ + RTUNI_ALPHA, /* U+00a03a: YI SYLLABLE PI*/ + RTUNI_ALPHA, /* U+00a03b: YI SYLLABLE PIP*/ + RTUNI_ALPHA, /* U+00a03c: YI SYLLABLE PIEX*/ + RTUNI_ALPHA, /* U+00a03d: YI SYLLABLE PIE*/ + RTUNI_ALPHA, /* U+00a03e: YI SYLLABLE PIEP*/ + RTUNI_ALPHA, /* U+00a03f: YI SYLLABLE PAT*/ + RTUNI_ALPHA, /* U+00a040: YI SYLLABLE PAX*/ + RTUNI_ALPHA, /* U+00a041: YI SYLLABLE PA*/ + RTUNI_ALPHA, /* U+00a042: YI SYLLABLE PAP*/ + RTUNI_ALPHA, /* U+00a043: YI SYLLABLE PUOX*/ + RTUNI_ALPHA, /* U+00a044: YI SYLLABLE PUO*/ + RTUNI_ALPHA, /* U+00a045: YI SYLLABLE PUOP*/ + RTUNI_ALPHA, /* U+00a046: YI SYLLABLE POT*/ + RTUNI_ALPHA, /* U+00a047: YI SYLLABLE POX*/ + RTUNI_ALPHA, /* U+00a048: YI SYLLABLE PO*/ + RTUNI_ALPHA, /* U+00a049: YI SYLLABLE POP*/ + RTUNI_ALPHA, /* U+00a04a: YI SYLLABLE PUT*/ + RTUNI_ALPHA, /* U+00a04b: YI SYLLABLE PUX*/ + RTUNI_ALPHA, /* U+00a04c: YI SYLLABLE PU*/ + RTUNI_ALPHA, /* U+00a04d: YI SYLLABLE PUP*/ + RTUNI_ALPHA, /* U+00a04e: YI SYLLABLE PURX*/ + RTUNI_ALPHA, /* U+00a04f: YI SYLLABLE PUR*/ + RTUNI_ALPHA, /* U+00a050: YI SYLLABLE PYT*/ + RTUNI_ALPHA, /* U+00a051: YI SYLLABLE PYX*/ + RTUNI_ALPHA, /* U+00a052: YI SYLLABLE PY*/ + RTUNI_ALPHA, /* U+00a053: YI SYLLABLE PYP*/ + RTUNI_ALPHA, /* U+00a054: YI SYLLABLE PYRX*/ + RTUNI_ALPHA, /* U+00a055: YI SYLLABLE PYR*/ + RTUNI_ALPHA, /* U+00a056: YI SYLLABLE BBIT*/ + RTUNI_ALPHA, /* U+00a057: YI SYLLABLE BBIX*/ + RTUNI_ALPHA, /* U+00a058: YI SYLLABLE BBI*/ + RTUNI_ALPHA, /* U+00a059: YI SYLLABLE BBIP*/ + RTUNI_ALPHA, /* U+00a05a: YI SYLLABLE BBIET*/ + RTUNI_ALPHA, /* U+00a05b: YI SYLLABLE BBIEX*/ + RTUNI_ALPHA, /* U+00a05c: YI SYLLABLE BBIE*/ + RTUNI_ALPHA, /* U+00a05d: YI SYLLABLE BBIEP*/ + RTUNI_ALPHA, /* U+00a05e: YI SYLLABLE BBAT*/ + RTUNI_ALPHA, /* U+00a05f: YI SYLLABLE BBAX*/ + RTUNI_ALPHA, /* U+00a060: YI SYLLABLE BBA*/ + RTUNI_ALPHA, /* U+00a061: YI SYLLABLE BBAP*/ + RTUNI_ALPHA, /* U+00a062: YI SYLLABLE BBUOX*/ + RTUNI_ALPHA, /* U+00a063: YI SYLLABLE BBUO*/ + RTUNI_ALPHA, /* U+00a064: YI SYLLABLE BBUOP*/ + RTUNI_ALPHA, /* U+00a065: YI SYLLABLE BBOT*/ + RTUNI_ALPHA, /* U+00a066: YI SYLLABLE BBOX*/ + RTUNI_ALPHA, /* U+00a067: YI SYLLABLE BBO*/ + RTUNI_ALPHA, /* U+00a068: YI SYLLABLE BBOP*/ + RTUNI_ALPHA, /* U+00a069: YI SYLLABLE BBEX*/ + RTUNI_ALPHA, /* U+00a06a: YI SYLLABLE BBE*/ + RTUNI_ALPHA, /* U+00a06b: YI SYLLABLE BBEP*/ + RTUNI_ALPHA, /* U+00a06c: YI SYLLABLE BBUT*/ + RTUNI_ALPHA, /* U+00a06d: YI SYLLABLE BBUX*/ + RTUNI_ALPHA, /* U+00a06e: YI SYLLABLE BBU*/ + RTUNI_ALPHA, /* U+00a06f: YI SYLLABLE BBUP*/ + RTUNI_ALPHA, /* U+00a070: YI SYLLABLE BBURX*/ + RTUNI_ALPHA, /* U+00a071: YI SYLLABLE BBUR*/ + RTUNI_ALPHA, /* U+00a072: YI SYLLABLE BBYT*/ + RTUNI_ALPHA, /* U+00a073: YI SYLLABLE BBYX*/ + RTUNI_ALPHA, /* U+00a074: YI SYLLABLE BBY*/ + RTUNI_ALPHA, /* U+00a075: YI SYLLABLE BBYP*/ + RTUNI_ALPHA, /* U+00a076: YI SYLLABLE NBIT*/ + RTUNI_ALPHA, /* U+00a077: YI SYLLABLE NBIX*/ + RTUNI_ALPHA, /* U+00a078: YI SYLLABLE NBI*/ + RTUNI_ALPHA, /* U+00a079: YI SYLLABLE NBIP*/ + RTUNI_ALPHA, /* U+00a07a: YI SYLLABLE NBIEX*/ + RTUNI_ALPHA, /* U+00a07b: YI SYLLABLE NBIE*/ + RTUNI_ALPHA, /* U+00a07c: YI SYLLABLE NBIEP*/ + RTUNI_ALPHA, /* U+00a07d: YI SYLLABLE NBAT*/ + RTUNI_ALPHA, /* U+00a07e: YI SYLLABLE NBAX*/ + RTUNI_ALPHA, /* U+00a07f: YI SYLLABLE NBA*/ + RTUNI_ALPHA, /* U+00a080: YI SYLLABLE NBAP*/ + RTUNI_ALPHA, /* U+00a081: YI SYLLABLE NBOT*/ + RTUNI_ALPHA, /* U+00a082: YI SYLLABLE NBOX*/ + RTUNI_ALPHA, /* U+00a083: YI SYLLABLE NBO*/ + RTUNI_ALPHA, /* U+00a084: YI SYLLABLE NBOP*/ + RTUNI_ALPHA, /* U+00a085: YI SYLLABLE NBUT*/ + RTUNI_ALPHA, /* U+00a086: YI SYLLABLE NBUX*/ + RTUNI_ALPHA, /* U+00a087: YI SYLLABLE NBU*/ + RTUNI_ALPHA, /* U+00a088: YI SYLLABLE NBUP*/ + RTUNI_ALPHA, /* U+00a089: YI SYLLABLE NBURX*/ + RTUNI_ALPHA, /* U+00a08a: YI SYLLABLE NBUR*/ + RTUNI_ALPHA, /* U+00a08b: YI SYLLABLE NBYT*/ + RTUNI_ALPHA, /* U+00a08c: YI SYLLABLE NBYX*/ + RTUNI_ALPHA, /* U+00a08d: YI SYLLABLE NBY*/ + RTUNI_ALPHA, /* U+00a08e: YI SYLLABLE NBYP*/ + RTUNI_ALPHA, /* U+00a08f: YI SYLLABLE NBYRX*/ + RTUNI_ALPHA, /* U+00a090: YI SYLLABLE NBYR*/ + RTUNI_ALPHA, /* U+00a091: YI SYLLABLE HMIT*/ + RTUNI_ALPHA, /* U+00a092: YI SYLLABLE HMIX*/ + RTUNI_ALPHA, /* U+00a093: YI SYLLABLE HMI*/ + RTUNI_ALPHA, /* U+00a094: YI SYLLABLE HMIP*/ + RTUNI_ALPHA, /* U+00a095: YI SYLLABLE HMIEX*/ + RTUNI_ALPHA, /* U+00a096: YI SYLLABLE HMIE*/ + RTUNI_ALPHA, /* U+00a097: YI SYLLABLE HMIEP*/ + RTUNI_ALPHA, /* U+00a098: YI SYLLABLE HMAT*/ + RTUNI_ALPHA, /* U+00a099: YI SYLLABLE HMAX*/ + RTUNI_ALPHA, /* U+00a09a: YI SYLLABLE HMA*/ + RTUNI_ALPHA, /* U+00a09b: YI SYLLABLE HMAP*/ + RTUNI_ALPHA, /* U+00a09c: YI SYLLABLE HMUOX*/ + RTUNI_ALPHA, /* U+00a09d: YI SYLLABLE HMUO*/ + RTUNI_ALPHA, /* U+00a09e: YI SYLLABLE HMUOP*/ + RTUNI_ALPHA, /* U+00a09f: YI SYLLABLE HMOT*/ + RTUNI_ALPHA, /* U+00a0a0: YI SYLLABLE HMOX*/ + RTUNI_ALPHA, /* U+00a0a1: YI SYLLABLE HMO*/ + RTUNI_ALPHA, /* U+00a0a2: YI SYLLABLE HMOP*/ + RTUNI_ALPHA, /* U+00a0a3: YI SYLLABLE HMUT*/ + RTUNI_ALPHA, /* U+00a0a4: YI SYLLABLE HMUX*/ + RTUNI_ALPHA, /* U+00a0a5: YI SYLLABLE HMU*/ + RTUNI_ALPHA, /* U+00a0a6: YI SYLLABLE HMUP*/ + RTUNI_ALPHA, /* U+00a0a7: YI SYLLABLE HMURX*/ + RTUNI_ALPHA, /* U+00a0a8: YI SYLLABLE HMUR*/ + RTUNI_ALPHA, /* U+00a0a9: YI SYLLABLE HMYX*/ + RTUNI_ALPHA, /* U+00a0aa: YI SYLLABLE HMY*/ + RTUNI_ALPHA, /* U+00a0ab: YI SYLLABLE HMYP*/ + RTUNI_ALPHA, /* U+00a0ac: YI SYLLABLE HMYRX*/ + RTUNI_ALPHA, /* U+00a0ad: YI SYLLABLE HMYR*/ + RTUNI_ALPHA, /* U+00a0ae: YI SYLLABLE MIT*/ + RTUNI_ALPHA, /* U+00a0af: YI SYLLABLE MIX*/ + RTUNI_ALPHA, /* U+00a0b0: YI SYLLABLE MI*/ + RTUNI_ALPHA, /* U+00a0b1: YI SYLLABLE MIP*/ + RTUNI_ALPHA, /* U+00a0b2: YI SYLLABLE MIEX*/ + RTUNI_ALPHA, /* U+00a0b3: YI SYLLABLE MIE*/ + RTUNI_ALPHA, /* U+00a0b4: YI SYLLABLE MIEP*/ + RTUNI_ALPHA, /* U+00a0b5: YI SYLLABLE MAT*/ + RTUNI_ALPHA, /* U+00a0b6: YI SYLLABLE MAX*/ + RTUNI_ALPHA, /* U+00a0b7: YI SYLLABLE MA*/ + RTUNI_ALPHA, /* U+00a0b8: YI SYLLABLE MAP*/ + RTUNI_ALPHA, /* U+00a0b9: YI SYLLABLE MUOT*/ + RTUNI_ALPHA, /* U+00a0ba: YI SYLLABLE MUOX*/ + RTUNI_ALPHA, /* U+00a0bb: YI SYLLABLE MUO*/ + RTUNI_ALPHA, /* U+00a0bc: YI SYLLABLE MUOP*/ + RTUNI_ALPHA, /* U+00a0bd: YI SYLLABLE MOT*/ + RTUNI_ALPHA, /* U+00a0be: YI SYLLABLE MOX*/ + RTUNI_ALPHA, /* U+00a0bf: YI SYLLABLE MO*/ + RTUNI_ALPHA, /* U+00a0c0: YI SYLLABLE MOP*/ + RTUNI_ALPHA, /* U+00a0c1: YI SYLLABLE MEX*/ + RTUNI_ALPHA, /* U+00a0c2: YI SYLLABLE ME*/ + RTUNI_ALPHA, /* U+00a0c3: YI SYLLABLE MUT*/ + RTUNI_ALPHA, /* U+00a0c4: YI SYLLABLE MUX*/ + RTUNI_ALPHA, /* U+00a0c5: YI SYLLABLE MU*/ + RTUNI_ALPHA, /* U+00a0c6: YI SYLLABLE MUP*/ + RTUNI_ALPHA, /* U+00a0c7: YI SYLLABLE MURX*/ + RTUNI_ALPHA, /* U+00a0c8: YI SYLLABLE MUR*/ + RTUNI_ALPHA, /* U+00a0c9: YI SYLLABLE MYT*/ + RTUNI_ALPHA, /* U+00a0ca: YI SYLLABLE MYX*/ + RTUNI_ALPHA, /* U+00a0cb: YI SYLLABLE MY*/ + RTUNI_ALPHA, /* U+00a0cc: YI SYLLABLE MYP*/ + RTUNI_ALPHA, /* U+00a0cd: YI SYLLABLE FIT*/ + RTUNI_ALPHA, /* U+00a0ce: YI SYLLABLE FIX*/ + RTUNI_ALPHA, /* U+00a0cf: YI SYLLABLE FI*/ + RTUNI_ALPHA, /* U+00a0d0: YI SYLLABLE FIP*/ + RTUNI_ALPHA, /* U+00a0d1: YI SYLLABLE FAT*/ + RTUNI_ALPHA, /* U+00a0d2: YI SYLLABLE FAX*/ + RTUNI_ALPHA, /* U+00a0d3: YI SYLLABLE FA*/ + RTUNI_ALPHA, /* U+00a0d4: YI SYLLABLE FAP*/ + RTUNI_ALPHA, /* U+00a0d5: YI SYLLABLE FOX*/ + RTUNI_ALPHA, /* U+00a0d6: YI SYLLABLE FO*/ + RTUNI_ALPHA, /* U+00a0d7: YI SYLLABLE FOP*/ + RTUNI_ALPHA, /* U+00a0d8: YI SYLLABLE FUT*/ + RTUNI_ALPHA, /* U+00a0d9: YI SYLLABLE FUX*/ + RTUNI_ALPHA, /* U+00a0da: YI SYLLABLE FU*/ + RTUNI_ALPHA, /* U+00a0db: YI SYLLABLE FUP*/ + RTUNI_ALPHA, /* U+00a0dc: YI SYLLABLE FURX*/ + RTUNI_ALPHA, /* U+00a0dd: YI SYLLABLE FUR*/ + RTUNI_ALPHA, /* U+00a0de: YI SYLLABLE FYT*/ + RTUNI_ALPHA, /* U+00a0df: YI SYLLABLE FYX*/ + RTUNI_ALPHA, /* U+00a0e0: YI SYLLABLE FY*/ + RTUNI_ALPHA, /* U+00a0e1: YI SYLLABLE FYP*/ + RTUNI_ALPHA, /* U+00a0e2: YI SYLLABLE VIT*/ + RTUNI_ALPHA, /* U+00a0e3: YI SYLLABLE VIX*/ + RTUNI_ALPHA, /* U+00a0e4: YI SYLLABLE VI*/ + RTUNI_ALPHA, /* U+00a0e5: YI SYLLABLE VIP*/ + RTUNI_ALPHA, /* U+00a0e6: YI SYLLABLE VIET*/ + RTUNI_ALPHA, /* U+00a0e7: YI SYLLABLE VIEX*/ + RTUNI_ALPHA, /* U+00a0e8: YI SYLLABLE VIE*/ + RTUNI_ALPHA, /* U+00a0e9: YI SYLLABLE VIEP*/ + RTUNI_ALPHA, /* U+00a0ea: YI SYLLABLE VAT*/ + RTUNI_ALPHA, /* U+00a0eb: YI SYLLABLE VAX*/ + RTUNI_ALPHA, /* U+00a0ec: YI SYLLABLE VA*/ + RTUNI_ALPHA, /* U+00a0ed: YI SYLLABLE VAP*/ + RTUNI_ALPHA, /* U+00a0ee: YI SYLLABLE VOT*/ + RTUNI_ALPHA, /* U+00a0ef: YI SYLLABLE VOX*/ + RTUNI_ALPHA, /* U+00a0f0: YI SYLLABLE VO*/ + RTUNI_ALPHA, /* U+00a0f1: YI SYLLABLE VOP*/ + RTUNI_ALPHA, /* U+00a0f2: YI SYLLABLE VEX*/ + RTUNI_ALPHA, /* U+00a0f3: YI SYLLABLE VEP*/ + RTUNI_ALPHA, /* U+00a0f4: YI SYLLABLE VUT*/ + RTUNI_ALPHA, /* U+00a0f5: YI SYLLABLE VUX*/ + RTUNI_ALPHA, /* U+00a0f6: YI SYLLABLE VU*/ + RTUNI_ALPHA, /* U+00a0f7: YI SYLLABLE VUP*/ + RTUNI_ALPHA, /* U+00a0f8: YI SYLLABLE VURX*/ + RTUNI_ALPHA, /* U+00a0f9: YI SYLLABLE VUR*/ + RTUNI_ALPHA, /* U+00a0fa: YI SYLLABLE VYT*/ + RTUNI_ALPHA, /* U+00a0fb: YI SYLLABLE VYX*/ + RTUNI_ALPHA, /* U+00a0fc: YI SYLLABLE VY*/ + RTUNI_ALPHA, /* U+00a0fd: YI SYLLABLE VYP*/ + RTUNI_ALPHA, /* U+00a0fe: YI SYLLABLE VYRX*/ + RTUNI_ALPHA, /* U+00a0ff: YI SYLLABLE VYR*/ + RTUNI_ALPHA, /* U+00a100: YI SYLLABLE DIT*/ + RTUNI_ALPHA, /* U+00a101: YI SYLLABLE DIX*/ + RTUNI_ALPHA, /* U+00a102: YI SYLLABLE DI*/ + RTUNI_ALPHA, /* U+00a103: YI SYLLABLE DIP*/ + RTUNI_ALPHA, /* U+00a104: YI SYLLABLE DIEX*/ + RTUNI_ALPHA, /* U+00a105: YI SYLLABLE DIE*/ + RTUNI_ALPHA, /* U+00a106: YI SYLLABLE DIEP*/ + RTUNI_ALPHA, /* U+00a107: YI SYLLABLE DAT*/ + RTUNI_ALPHA, /* U+00a108: YI SYLLABLE DAX*/ + RTUNI_ALPHA, /* U+00a109: YI SYLLABLE DA*/ + RTUNI_ALPHA, /* U+00a10a: YI SYLLABLE DAP*/ + RTUNI_ALPHA, /* U+00a10b: YI SYLLABLE DUOX*/ + RTUNI_ALPHA, /* U+00a10c: YI SYLLABLE DUO*/ + RTUNI_ALPHA, /* U+00a10d: YI SYLLABLE DOT*/ + RTUNI_ALPHA, /* U+00a10e: YI SYLLABLE DOX*/ + RTUNI_ALPHA, /* U+00a10f: YI SYLLABLE DO*/ + RTUNI_ALPHA, /* U+00a110: YI SYLLABLE DOP*/ + RTUNI_ALPHA, /* U+00a111: YI SYLLABLE DEX*/ + RTUNI_ALPHA, /* U+00a112: YI SYLLABLE DE*/ + RTUNI_ALPHA, /* U+00a113: YI SYLLABLE DEP*/ + RTUNI_ALPHA, /* U+00a114: YI SYLLABLE DUT*/ + RTUNI_ALPHA, /* U+00a115: YI SYLLABLE DUX*/ + RTUNI_ALPHA, /* U+00a116: YI SYLLABLE DU*/ + RTUNI_ALPHA, /* U+00a117: YI SYLLABLE DUP*/ + RTUNI_ALPHA, /* U+00a118: YI SYLLABLE DURX*/ + RTUNI_ALPHA, /* U+00a119: YI SYLLABLE DUR*/ + RTUNI_ALPHA, /* U+00a11a: YI SYLLABLE TIT*/ + RTUNI_ALPHA, /* U+00a11b: YI SYLLABLE TIX*/ + RTUNI_ALPHA, /* U+00a11c: YI SYLLABLE TI*/ + RTUNI_ALPHA, /* U+00a11d: YI SYLLABLE TIP*/ + RTUNI_ALPHA, /* U+00a11e: YI SYLLABLE TIEX*/ + RTUNI_ALPHA, /* U+00a11f: YI SYLLABLE TIE*/ + RTUNI_ALPHA, /* U+00a120: YI SYLLABLE TIEP*/ + RTUNI_ALPHA, /* U+00a121: YI SYLLABLE TAT*/ + RTUNI_ALPHA, /* U+00a122: YI SYLLABLE TAX*/ + RTUNI_ALPHA, /* U+00a123: YI SYLLABLE TA*/ + RTUNI_ALPHA, /* U+00a124: YI SYLLABLE TAP*/ + RTUNI_ALPHA, /* U+00a125: YI SYLLABLE TUOT*/ + RTUNI_ALPHA, /* U+00a126: YI SYLLABLE TUOX*/ + RTUNI_ALPHA, /* U+00a127: YI SYLLABLE TUO*/ + RTUNI_ALPHA, /* U+00a128: YI SYLLABLE TUOP*/ + RTUNI_ALPHA, /* U+00a129: YI SYLLABLE TOT*/ + RTUNI_ALPHA, /* U+00a12a: YI SYLLABLE TOX*/ + RTUNI_ALPHA, /* U+00a12b: YI SYLLABLE TO*/ + RTUNI_ALPHA, /* U+00a12c: YI SYLLABLE TOP*/ + RTUNI_ALPHA, /* U+00a12d: YI SYLLABLE TEX*/ + RTUNI_ALPHA, /* U+00a12e: YI SYLLABLE TE*/ + RTUNI_ALPHA, /* U+00a12f: YI SYLLABLE TEP*/ + RTUNI_ALPHA, /* U+00a130: YI SYLLABLE TUT*/ + RTUNI_ALPHA, /* U+00a131: YI SYLLABLE TUX*/ + RTUNI_ALPHA, /* U+00a132: YI SYLLABLE TU*/ + RTUNI_ALPHA, /* U+00a133: YI SYLLABLE TUP*/ + RTUNI_ALPHA, /* U+00a134: YI SYLLABLE TURX*/ + RTUNI_ALPHA, /* U+00a135: YI SYLLABLE TUR*/ + RTUNI_ALPHA, /* U+00a136: YI SYLLABLE DDIT*/ + RTUNI_ALPHA, /* U+00a137: YI SYLLABLE DDIX*/ + RTUNI_ALPHA, /* U+00a138: YI SYLLABLE DDI*/ + RTUNI_ALPHA, /* U+00a139: YI SYLLABLE DDIP*/ + RTUNI_ALPHA, /* U+00a13a: YI SYLLABLE DDIEX*/ + RTUNI_ALPHA, /* U+00a13b: YI SYLLABLE DDIE*/ + RTUNI_ALPHA, /* U+00a13c: YI SYLLABLE DDIEP*/ + RTUNI_ALPHA, /* U+00a13d: YI SYLLABLE DDAT*/ + RTUNI_ALPHA, /* U+00a13e: YI SYLLABLE DDAX*/ + RTUNI_ALPHA, /* U+00a13f: YI SYLLABLE DDA*/ + RTUNI_ALPHA, /* U+00a140: YI SYLLABLE DDAP*/ + RTUNI_ALPHA, /* U+00a141: YI SYLLABLE DDUOX*/ + RTUNI_ALPHA, /* U+00a142: YI SYLLABLE DDUO*/ + RTUNI_ALPHA, /* U+00a143: YI SYLLABLE DDUOP*/ + RTUNI_ALPHA, /* U+00a144: YI SYLLABLE DDOT*/ + RTUNI_ALPHA, /* U+00a145: YI SYLLABLE DDOX*/ + RTUNI_ALPHA, /* U+00a146: YI SYLLABLE DDO*/ + RTUNI_ALPHA, /* U+00a147: YI SYLLABLE DDOP*/ + RTUNI_ALPHA, /* U+00a148: YI SYLLABLE DDEX*/ + RTUNI_ALPHA, /* U+00a149: YI SYLLABLE DDE*/ + RTUNI_ALPHA, /* U+00a14a: YI SYLLABLE DDEP*/ + RTUNI_ALPHA, /* U+00a14b: YI SYLLABLE DDUT*/ + RTUNI_ALPHA, /* U+00a14c: YI SYLLABLE DDUX*/ + RTUNI_ALPHA, /* U+00a14d: YI SYLLABLE DDU*/ + RTUNI_ALPHA, /* U+00a14e: YI SYLLABLE DDUP*/ + RTUNI_ALPHA, /* U+00a14f: YI SYLLABLE DDURX*/ + RTUNI_ALPHA, /* U+00a150: YI SYLLABLE DDUR*/ + RTUNI_ALPHA, /* U+00a151: YI SYLLABLE NDIT*/ + RTUNI_ALPHA, /* U+00a152: YI SYLLABLE NDIX*/ + RTUNI_ALPHA, /* U+00a153: YI SYLLABLE NDI*/ + RTUNI_ALPHA, /* U+00a154: YI SYLLABLE NDIP*/ + RTUNI_ALPHA, /* U+00a155: YI SYLLABLE NDIEX*/ + RTUNI_ALPHA, /* U+00a156: YI SYLLABLE NDIE*/ + RTUNI_ALPHA, /* U+00a157: YI SYLLABLE NDAT*/ + RTUNI_ALPHA, /* U+00a158: YI SYLLABLE NDAX*/ + RTUNI_ALPHA, /* U+00a159: YI SYLLABLE NDA*/ + RTUNI_ALPHA, /* U+00a15a: YI SYLLABLE NDAP*/ + RTUNI_ALPHA, /* U+00a15b: YI SYLLABLE NDOT*/ + RTUNI_ALPHA, /* U+00a15c: YI SYLLABLE NDOX*/ + RTUNI_ALPHA, /* U+00a15d: YI SYLLABLE NDO*/ + RTUNI_ALPHA, /* U+00a15e: YI SYLLABLE NDOP*/ + RTUNI_ALPHA, /* U+00a15f: YI SYLLABLE NDEX*/ + RTUNI_ALPHA, /* U+00a160: YI SYLLABLE NDE*/ + RTUNI_ALPHA, /* U+00a161: YI SYLLABLE NDEP*/ + RTUNI_ALPHA, /* U+00a162: YI SYLLABLE NDUT*/ + RTUNI_ALPHA, /* U+00a163: YI SYLLABLE NDUX*/ + RTUNI_ALPHA, /* U+00a164: YI SYLLABLE NDU*/ + RTUNI_ALPHA, /* U+00a165: YI SYLLABLE NDUP*/ + RTUNI_ALPHA, /* U+00a166: YI SYLLABLE NDURX*/ + RTUNI_ALPHA, /* U+00a167: YI SYLLABLE NDUR*/ + RTUNI_ALPHA, /* U+00a168: YI SYLLABLE HNIT*/ + RTUNI_ALPHA, /* U+00a169: YI SYLLABLE HNIX*/ + RTUNI_ALPHA, /* U+00a16a: YI SYLLABLE HNI*/ + RTUNI_ALPHA, /* U+00a16b: YI SYLLABLE HNIP*/ + RTUNI_ALPHA, /* U+00a16c: YI SYLLABLE HNIET*/ + RTUNI_ALPHA, /* U+00a16d: YI SYLLABLE HNIEX*/ + RTUNI_ALPHA, /* U+00a16e: YI SYLLABLE HNIE*/ + RTUNI_ALPHA, /* U+00a16f: YI SYLLABLE HNIEP*/ + RTUNI_ALPHA, /* U+00a170: YI SYLLABLE HNAT*/ + RTUNI_ALPHA, /* U+00a171: YI SYLLABLE HNAX*/ + RTUNI_ALPHA, /* U+00a172: YI SYLLABLE HNA*/ + RTUNI_ALPHA, /* U+00a173: YI SYLLABLE HNAP*/ + RTUNI_ALPHA, /* U+00a174: YI SYLLABLE HNUOX*/ + RTUNI_ALPHA, /* U+00a175: YI SYLLABLE HNUO*/ + RTUNI_ALPHA, /* U+00a176: YI SYLLABLE HNOT*/ + RTUNI_ALPHA, /* U+00a177: YI SYLLABLE HNOX*/ + RTUNI_ALPHA, /* U+00a178: YI SYLLABLE HNOP*/ + RTUNI_ALPHA, /* U+00a179: YI SYLLABLE HNEX*/ + RTUNI_ALPHA, /* U+00a17a: YI SYLLABLE HNE*/ + RTUNI_ALPHA, /* U+00a17b: YI SYLLABLE HNEP*/ + RTUNI_ALPHA, /* U+00a17c: YI SYLLABLE HNUT*/ + RTUNI_ALPHA, /* U+00a17d: YI SYLLABLE NIT*/ + RTUNI_ALPHA, /* U+00a17e: YI SYLLABLE NIX*/ + RTUNI_ALPHA, /* U+00a17f: YI SYLLABLE NI*/ + RTUNI_ALPHA, /* U+00a180: YI SYLLABLE NIP*/ + RTUNI_ALPHA, /* U+00a181: YI SYLLABLE NIEX*/ + RTUNI_ALPHA, /* U+00a182: YI SYLLABLE NIE*/ + RTUNI_ALPHA, /* U+00a183: YI SYLLABLE NIEP*/ + RTUNI_ALPHA, /* U+00a184: YI SYLLABLE NAX*/ + RTUNI_ALPHA, /* U+00a185: YI SYLLABLE NA*/ + RTUNI_ALPHA, /* U+00a186: YI SYLLABLE NAP*/ + RTUNI_ALPHA, /* U+00a187: YI SYLLABLE NUOX*/ + RTUNI_ALPHA, /* U+00a188: YI SYLLABLE NUO*/ + RTUNI_ALPHA, /* U+00a189: YI SYLLABLE NUOP*/ + RTUNI_ALPHA, /* U+00a18a: YI SYLLABLE NOT*/ + RTUNI_ALPHA, /* U+00a18b: YI SYLLABLE NOX*/ + RTUNI_ALPHA, /* U+00a18c: YI SYLLABLE NO*/ + RTUNI_ALPHA, /* U+00a18d: YI SYLLABLE NOP*/ + RTUNI_ALPHA, /* U+00a18e: YI SYLLABLE NEX*/ + RTUNI_ALPHA, /* U+00a18f: YI SYLLABLE NE*/ + RTUNI_ALPHA, /* U+00a190: YI SYLLABLE NEP*/ + RTUNI_ALPHA, /* U+00a191: YI SYLLABLE NUT*/ + RTUNI_ALPHA, /* U+00a192: YI SYLLABLE NUX*/ + RTUNI_ALPHA, /* U+00a193: YI SYLLABLE NU*/ + RTUNI_ALPHA, /* U+00a194: YI SYLLABLE NUP*/ + RTUNI_ALPHA, /* U+00a195: YI SYLLABLE NURX*/ + RTUNI_ALPHA, /* U+00a196: YI SYLLABLE NUR*/ + RTUNI_ALPHA, /* U+00a197: YI SYLLABLE HLIT*/ + RTUNI_ALPHA, /* U+00a198: YI SYLLABLE HLIX*/ + RTUNI_ALPHA, /* U+00a199: YI SYLLABLE HLI*/ + RTUNI_ALPHA, /* U+00a19a: YI SYLLABLE HLIP*/ + RTUNI_ALPHA, /* U+00a19b: YI SYLLABLE HLIEX*/ + RTUNI_ALPHA, /* U+00a19c: YI SYLLABLE HLIE*/ + RTUNI_ALPHA, /* U+00a19d: YI SYLLABLE HLIEP*/ + RTUNI_ALPHA, /* U+00a19e: YI SYLLABLE HLAT*/ + RTUNI_ALPHA, /* U+00a19f: YI SYLLABLE HLAX*/ + RTUNI_ALPHA, /* U+00a1a0: YI SYLLABLE HLA*/ + RTUNI_ALPHA, /* U+00a1a1: YI SYLLABLE HLAP*/ + RTUNI_ALPHA, /* U+00a1a2: YI SYLLABLE HLUOX*/ + RTUNI_ALPHA, /* U+00a1a3: YI SYLLABLE HLUO*/ + RTUNI_ALPHA, /* U+00a1a4: YI SYLLABLE HLUOP*/ + RTUNI_ALPHA, /* U+00a1a5: YI SYLLABLE HLOX*/ + RTUNI_ALPHA, /* U+00a1a6: YI SYLLABLE HLO*/ + RTUNI_ALPHA, /* U+00a1a7: YI SYLLABLE HLOP*/ + RTUNI_ALPHA, /* U+00a1a8: YI SYLLABLE HLEX*/ + RTUNI_ALPHA, /* U+00a1a9: YI SYLLABLE HLE*/ + RTUNI_ALPHA, /* U+00a1aa: YI SYLLABLE HLEP*/ + RTUNI_ALPHA, /* U+00a1ab: YI SYLLABLE HLUT*/ + RTUNI_ALPHA, /* U+00a1ac: YI SYLLABLE HLUX*/ + RTUNI_ALPHA, /* U+00a1ad: YI SYLLABLE HLU*/ + RTUNI_ALPHA, /* U+00a1ae: YI SYLLABLE HLUP*/ + RTUNI_ALPHA, /* U+00a1af: YI SYLLABLE HLURX*/ + RTUNI_ALPHA, /* U+00a1b0: YI SYLLABLE HLUR*/ + RTUNI_ALPHA, /* U+00a1b1: YI SYLLABLE HLYT*/ + RTUNI_ALPHA, /* U+00a1b2: YI SYLLABLE HLYX*/ + RTUNI_ALPHA, /* U+00a1b3: YI SYLLABLE HLY*/ + RTUNI_ALPHA, /* U+00a1b4: YI SYLLABLE HLYP*/ + RTUNI_ALPHA, /* U+00a1b5: YI SYLLABLE HLYRX*/ + RTUNI_ALPHA, /* U+00a1b6: YI SYLLABLE HLYR*/ + RTUNI_ALPHA, /* U+00a1b7: YI SYLLABLE LIT*/ + RTUNI_ALPHA, /* U+00a1b8: YI SYLLABLE LIX*/ + RTUNI_ALPHA, /* U+00a1b9: YI SYLLABLE LI*/ + RTUNI_ALPHA, /* U+00a1ba: YI SYLLABLE LIP*/ + RTUNI_ALPHA, /* U+00a1bb: YI SYLLABLE LIET*/ + RTUNI_ALPHA, /* U+00a1bc: YI SYLLABLE LIEX*/ + RTUNI_ALPHA, /* U+00a1bd: YI SYLLABLE LIE*/ + RTUNI_ALPHA, /* U+00a1be: YI SYLLABLE LIEP*/ + RTUNI_ALPHA, /* U+00a1bf: YI SYLLABLE LAT*/ + RTUNI_ALPHA, /* U+00a1c0: YI SYLLABLE LAX*/ + RTUNI_ALPHA, /* U+00a1c1: YI SYLLABLE LA*/ + RTUNI_ALPHA, /* U+00a1c2: YI SYLLABLE LAP*/ + RTUNI_ALPHA, /* U+00a1c3: YI SYLLABLE LUOT*/ + RTUNI_ALPHA, /* U+00a1c4: YI SYLLABLE LUOX*/ + RTUNI_ALPHA, /* U+00a1c5: YI SYLLABLE LUO*/ + RTUNI_ALPHA, /* U+00a1c6: YI SYLLABLE LUOP*/ + RTUNI_ALPHA, /* U+00a1c7: YI SYLLABLE LOT*/ + RTUNI_ALPHA, /* U+00a1c8: YI SYLLABLE LOX*/ + RTUNI_ALPHA, /* U+00a1c9: YI SYLLABLE LO*/ + RTUNI_ALPHA, /* U+00a1ca: YI SYLLABLE LOP*/ + RTUNI_ALPHA, /* U+00a1cb: YI SYLLABLE LEX*/ + RTUNI_ALPHA, /* U+00a1cc: YI SYLLABLE LE*/ + RTUNI_ALPHA, /* U+00a1cd: YI SYLLABLE LEP*/ + RTUNI_ALPHA, /* U+00a1ce: YI SYLLABLE LUT*/ + RTUNI_ALPHA, /* U+00a1cf: YI SYLLABLE LUX*/ + RTUNI_ALPHA, /* U+00a1d0: YI SYLLABLE LU*/ + RTUNI_ALPHA, /* U+00a1d1: YI SYLLABLE LUP*/ + RTUNI_ALPHA, /* U+00a1d2: YI SYLLABLE LURX*/ + RTUNI_ALPHA, /* U+00a1d3: YI SYLLABLE LUR*/ + RTUNI_ALPHA, /* U+00a1d4: YI SYLLABLE LYT*/ + RTUNI_ALPHA, /* U+00a1d5: YI SYLLABLE LYX*/ + RTUNI_ALPHA, /* U+00a1d6: YI SYLLABLE LY*/ + RTUNI_ALPHA, /* U+00a1d7: YI SYLLABLE LYP*/ + RTUNI_ALPHA, /* U+00a1d8: YI SYLLABLE LYRX*/ + RTUNI_ALPHA, /* U+00a1d9: YI SYLLABLE LYR*/ + RTUNI_ALPHA, /* U+00a1da: YI SYLLABLE GIT*/ + RTUNI_ALPHA, /* U+00a1db: YI SYLLABLE GIX*/ + RTUNI_ALPHA, /* U+00a1dc: YI SYLLABLE GI*/ + RTUNI_ALPHA, /* U+00a1dd: YI SYLLABLE GIP*/ + RTUNI_ALPHA, /* U+00a1de: YI SYLLABLE GIET*/ + RTUNI_ALPHA, /* U+00a1df: YI SYLLABLE GIEX*/ + RTUNI_ALPHA, /* U+00a1e0: YI SYLLABLE GIE*/ + RTUNI_ALPHA, /* U+00a1e1: YI SYLLABLE GIEP*/ + RTUNI_ALPHA, /* U+00a1e2: YI SYLLABLE GAT*/ + RTUNI_ALPHA, /* U+00a1e3: YI SYLLABLE GAX*/ + RTUNI_ALPHA, /* U+00a1e4: YI SYLLABLE GA*/ + RTUNI_ALPHA, /* U+00a1e5: YI SYLLABLE GAP*/ + RTUNI_ALPHA, /* U+00a1e6: YI SYLLABLE GUOT*/ + RTUNI_ALPHA, /* U+00a1e7: YI SYLLABLE GUOX*/ + RTUNI_ALPHA, /* U+00a1e8: YI SYLLABLE GUO*/ + RTUNI_ALPHA, /* U+00a1e9: YI SYLLABLE GUOP*/ + RTUNI_ALPHA, /* U+00a1ea: YI SYLLABLE GOT*/ + RTUNI_ALPHA, /* U+00a1eb: YI SYLLABLE GOX*/ + RTUNI_ALPHA, /* U+00a1ec: YI SYLLABLE GO*/ + RTUNI_ALPHA, /* U+00a1ed: YI SYLLABLE GOP*/ + RTUNI_ALPHA, /* U+00a1ee: YI SYLLABLE GET*/ + RTUNI_ALPHA, /* U+00a1ef: YI SYLLABLE GEX*/ + RTUNI_ALPHA, /* U+00a1f0: YI SYLLABLE GE*/ + RTUNI_ALPHA, /* U+00a1f1: YI SYLLABLE GEP*/ + RTUNI_ALPHA, /* U+00a1f2: YI SYLLABLE GUT*/ + RTUNI_ALPHA, /* U+00a1f3: YI SYLLABLE GUX*/ + RTUNI_ALPHA, /* U+00a1f4: YI SYLLABLE GU*/ + RTUNI_ALPHA, /* U+00a1f5: YI SYLLABLE GUP*/ + RTUNI_ALPHA, /* U+00a1f6: YI SYLLABLE GURX*/ + RTUNI_ALPHA, /* U+00a1f7: YI SYLLABLE GUR*/ + RTUNI_ALPHA, /* U+00a1f8: YI SYLLABLE KIT*/ + RTUNI_ALPHA, /* U+00a1f9: YI SYLLABLE KIX*/ + RTUNI_ALPHA, /* U+00a1fa: YI SYLLABLE KI*/ + RTUNI_ALPHA, /* U+00a1fb: YI SYLLABLE KIP*/ + RTUNI_ALPHA, /* U+00a1fc: YI SYLLABLE KIEX*/ + RTUNI_ALPHA, /* U+00a1fd: YI SYLLABLE KIE*/ + RTUNI_ALPHA, /* U+00a1fe: YI SYLLABLE KIEP*/ + RTUNI_ALPHA, /* U+00a1ff: YI SYLLABLE KAT*/ + RTUNI_ALPHA, /* U+00a200: YI SYLLABLE KAX*/ + RTUNI_ALPHA, /* U+00a201: YI SYLLABLE KA*/ + RTUNI_ALPHA, /* U+00a202: YI SYLLABLE KAP*/ + RTUNI_ALPHA, /* U+00a203: YI SYLLABLE KUOX*/ + RTUNI_ALPHA, /* U+00a204: YI SYLLABLE KUO*/ + RTUNI_ALPHA, /* U+00a205: YI SYLLABLE KUOP*/ + RTUNI_ALPHA, /* U+00a206: YI SYLLABLE KOT*/ + RTUNI_ALPHA, /* U+00a207: YI SYLLABLE KOX*/ + RTUNI_ALPHA, /* U+00a208: YI SYLLABLE KO*/ + RTUNI_ALPHA, /* U+00a209: YI SYLLABLE KOP*/ + RTUNI_ALPHA, /* U+00a20a: YI SYLLABLE KET*/ + RTUNI_ALPHA, /* U+00a20b: YI SYLLABLE KEX*/ + RTUNI_ALPHA, /* U+00a20c: YI SYLLABLE KE*/ + RTUNI_ALPHA, /* U+00a20d: YI SYLLABLE KEP*/ + RTUNI_ALPHA, /* U+00a20e: YI SYLLABLE KUT*/ + RTUNI_ALPHA, /* U+00a20f: YI SYLLABLE KUX*/ + RTUNI_ALPHA, /* U+00a210: YI SYLLABLE KU*/ + RTUNI_ALPHA, /* U+00a211: YI SYLLABLE KUP*/ + RTUNI_ALPHA, /* U+00a212: YI SYLLABLE KURX*/ + RTUNI_ALPHA, /* U+00a213: YI SYLLABLE KUR*/ + RTUNI_ALPHA, /* U+00a214: YI SYLLABLE GGIT*/ + RTUNI_ALPHA, /* U+00a215: YI SYLLABLE GGIX*/ + RTUNI_ALPHA, /* U+00a216: YI SYLLABLE GGI*/ + RTUNI_ALPHA, /* U+00a217: YI SYLLABLE GGIEX*/ + RTUNI_ALPHA, /* U+00a218: YI SYLLABLE GGIE*/ + RTUNI_ALPHA, /* U+00a219: YI SYLLABLE GGIEP*/ + RTUNI_ALPHA, /* U+00a21a: YI SYLLABLE GGAT*/ + RTUNI_ALPHA, /* U+00a21b: YI SYLLABLE GGAX*/ + RTUNI_ALPHA, /* U+00a21c: YI SYLLABLE GGA*/ + RTUNI_ALPHA, /* U+00a21d: YI SYLLABLE GGAP*/ + RTUNI_ALPHA, /* U+00a21e: YI SYLLABLE GGUOT*/ + RTUNI_ALPHA, /* U+00a21f: YI SYLLABLE GGUOX*/ + RTUNI_ALPHA, /* U+00a220: YI SYLLABLE GGUO*/ + RTUNI_ALPHA, /* U+00a221: YI SYLLABLE GGUOP*/ + RTUNI_ALPHA, /* U+00a222: YI SYLLABLE GGOT*/ + RTUNI_ALPHA, /* U+00a223: YI SYLLABLE GGOX*/ + RTUNI_ALPHA, /* U+00a224: YI SYLLABLE GGO*/ + RTUNI_ALPHA, /* U+00a225: YI SYLLABLE GGOP*/ + RTUNI_ALPHA, /* U+00a226: YI SYLLABLE GGET*/ + RTUNI_ALPHA, /* U+00a227: YI SYLLABLE GGEX*/ + RTUNI_ALPHA, /* U+00a228: YI SYLLABLE GGE*/ + RTUNI_ALPHA, /* U+00a229: YI SYLLABLE GGEP*/ + RTUNI_ALPHA, /* U+00a22a: YI SYLLABLE GGUT*/ + RTUNI_ALPHA, /* U+00a22b: YI SYLLABLE GGUX*/ + RTUNI_ALPHA, /* U+00a22c: YI SYLLABLE GGU*/ + RTUNI_ALPHA, /* U+00a22d: YI SYLLABLE GGUP*/ + RTUNI_ALPHA, /* U+00a22e: YI SYLLABLE GGURX*/ + RTUNI_ALPHA, /* U+00a22f: YI SYLLABLE GGUR*/ + RTUNI_ALPHA, /* U+00a230: YI SYLLABLE MGIEX*/ + RTUNI_ALPHA, /* U+00a231: YI SYLLABLE MGIE*/ + RTUNI_ALPHA, /* U+00a232: YI SYLLABLE MGAT*/ + RTUNI_ALPHA, /* U+00a233: YI SYLLABLE MGAX*/ + RTUNI_ALPHA, /* U+00a234: YI SYLLABLE MGA*/ + RTUNI_ALPHA, /* U+00a235: YI SYLLABLE MGAP*/ + RTUNI_ALPHA, /* U+00a236: YI SYLLABLE MGUOX*/ + RTUNI_ALPHA, /* U+00a237: YI SYLLABLE MGUO*/ + RTUNI_ALPHA, /* U+00a238: YI SYLLABLE MGUOP*/ + RTUNI_ALPHA, /* U+00a239: YI SYLLABLE MGOT*/ + RTUNI_ALPHA, /* U+00a23a: YI SYLLABLE MGOX*/ + RTUNI_ALPHA, /* U+00a23b: YI SYLLABLE MGO*/ + RTUNI_ALPHA, /* U+00a23c: YI SYLLABLE MGOP*/ + RTUNI_ALPHA, /* U+00a23d: YI SYLLABLE MGEX*/ + RTUNI_ALPHA, /* U+00a23e: YI SYLLABLE MGE*/ + RTUNI_ALPHA, /* U+00a23f: YI SYLLABLE MGEP*/ + RTUNI_ALPHA, /* U+00a240: YI SYLLABLE MGUT*/ + RTUNI_ALPHA, /* U+00a241: YI SYLLABLE MGUX*/ + RTUNI_ALPHA, /* U+00a242: YI SYLLABLE MGU*/ + RTUNI_ALPHA, /* U+00a243: YI SYLLABLE MGUP*/ + RTUNI_ALPHA, /* U+00a244: YI SYLLABLE MGURX*/ + RTUNI_ALPHA, /* U+00a245: YI SYLLABLE MGUR*/ + RTUNI_ALPHA, /* U+00a246: YI SYLLABLE HXIT*/ + RTUNI_ALPHA, /* U+00a247: YI SYLLABLE HXIX*/ + RTUNI_ALPHA, /* U+00a248: YI SYLLABLE HXI*/ + RTUNI_ALPHA, /* U+00a249: YI SYLLABLE HXIP*/ + RTUNI_ALPHA, /* U+00a24a: YI SYLLABLE HXIET*/ + RTUNI_ALPHA, /* U+00a24b: YI SYLLABLE HXIEX*/ + RTUNI_ALPHA, /* U+00a24c: YI SYLLABLE HXIE*/ + RTUNI_ALPHA, /* U+00a24d: YI SYLLABLE HXIEP*/ + RTUNI_ALPHA, /* U+00a24e: YI SYLLABLE HXAT*/ + RTUNI_ALPHA, /* U+00a24f: YI SYLLABLE HXAX*/ + RTUNI_ALPHA, /* U+00a250: YI SYLLABLE HXA*/ + RTUNI_ALPHA, /* U+00a251: YI SYLLABLE HXAP*/ + RTUNI_ALPHA, /* U+00a252: YI SYLLABLE HXUOT*/ + RTUNI_ALPHA, /* U+00a253: YI SYLLABLE HXUOX*/ + RTUNI_ALPHA, /* U+00a254: YI SYLLABLE HXUO*/ + RTUNI_ALPHA, /* U+00a255: YI SYLLABLE HXUOP*/ + RTUNI_ALPHA, /* U+00a256: YI SYLLABLE HXOT*/ + RTUNI_ALPHA, /* U+00a257: YI SYLLABLE HXOX*/ + RTUNI_ALPHA, /* U+00a258: YI SYLLABLE HXO*/ + RTUNI_ALPHA, /* U+00a259: YI SYLLABLE HXOP*/ + RTUNI_ALPHA, /* U+00a25a: YI SYLLABLE HXEX*/ + RTUNI_ALPHA, /* U+00a25b: YI SYLLABLE HXE*/ + RTUNI_ALPHA, /* U+00a25c: YI SYLLABLE HXEP*/ + RTUNI_ALPHA, /* U+00a25d: YI SYLLABLE NGIEX*/ + RTUNI_ALPHA, /* U+00a25e: YI SYLLABLE NGIE*/ + RTUNI_ALPHA, /* U+00a25f: YI SYLLABLE NGIEP*/ + RTUNI_ALPHA, /* U+00a260: YI SYLLABLE NGAT*/ + RTUNI_ALPHA, /* U+00a261: YI SYLLABLE NGAX*/ + RTUNI_ALPHA, /* U+00a262: YI SYLLABLE NGA*/ + RTUNI_ALPHA, /* U+00a263: YI SYLLABLE NGAP*/ + RTUNI_ALPHA, /* U+00a264: YI SYLLABLE NGUOT*/ + RTUNI_ALPHA, /* U+00a265: YI SYLLABLE NGUOX*/ + RTUNI_ALPHA, /* U+00a266: YI SYLLABLE NGUO*/ + RTUNI_ALPHA, /* U+00a267: YI SYLLABLE NGOT*/ + RTUNI_ALPHA, /* U+00a268: YI SYLLABLE NGOX*/ + RTUNI_ALPHA, /* U+00a269: YI SYLLABLE NGO*/ + RTUNI_ALPHA, /* U+00a26a: YI SYLLABLE NGOP*/ + RTUNI_ALPHA, /* U+00a26b: YI SYLLABLE NGEX*/ + RTUNI_ALPHA, /* U+00a26c: YI SYLLABLE NGE*/ + RTUNI_ALPHA, /* U+00a26d: YI SYLLABLE NGEP*/ + RTUNI_ALPHA, /* U+00a26e: YI SYLLABLE HIT*/ + RTUNI_ALPHA, /* U+00a26f: YI SYLLABLE HIEX*/ + RTUNI_ALPHA, /* U+00a270: YI SYLLABLE HIE*/ + RTUNI_ALPHA, /* U+00a271: YI SYLLABLE HAT*/ + RTUNI_ALPHA, /* U+00a272: YI SYLLABLE HAX*/ + RTUNI_ALPHA, /* U+00a273: YI SYLLABLE HA*/ + RTUNI_ALPHA, /* U+00a274: YI SYLLABLE HAP*/ + RTUNI_ALPHA, /* U+00a275: YI SYLLABLE HUOT*/ + RTUNI_ALPHA, /* U+00a276: YI SYLLABLE HUOX*/ + RTUNI_ALPHA, /* U+00a277: YI SYLLABLE HUO*/ + RTUNI_ALPHA, /* U+00a278: YI SYLLABLE HUOP*/ + RTUNI_ALPHA, /* U+00a279: YI SYLLABLE HOT*/ + RTUNI_ALPHA, /* U+00a27a: YI SYLLABLE HOX*/ + RTUNI_ALPHA, /* U+00a27b: YI SYLLABLE HO*/ + RTUNI_ALPHA, /* U+00a27c: YI SYLLABLE HOP*/ + RTUNI_ALPHA, /* U+00a27d: YI SYLLABLE HEX*/ + RTUNI_ALPHA, /* U+00a27e: YI SYLLABLE HE*/ + RTUNI_ALPHA, /* U+00a27f: YI SYLLABLE HEP*/ + RTUNI_ALPHA, /* U+00a280: YI SYLLABLE WAT*/ + RTUNI_ALPHA, /* U+00a281: YI SYLLABLE WAX*/ + RTUNI_ALPHA, /* U+00a282: YI SYLLABLE WA*/ + RTUNI_ALPHA, /* U+00a283: YI SYLLABLE WAP*/ + RTUNI_ALPHA, /* U+00a284: YI SYLLABLE WUOX*/ + RTUNI_ALPHA, /* U+00a285: YI SYLLABLE WUO*/ + RTUNI_ALPHA, /* U+00a286: YI SYLLABLE WUOP*/ + RTUNI_ALPHA, /* U+00a287: YI SYLLABLE WOX*/ + RTUNI_ALPHA, /* U+00a288: YI SYLLABLE WO*/ + RTUNI_ALPHA, /* U+00a289: YI SYLLABLE WOP*/ + RTUNI_ALPHA, /* U+00a28a: YI SYLLABLE WEX*/ + RTUNI_ALPHA, /* U+00a28b: YI SYLLABLE WE*/ + RTUNI_ALPHA, /* U+00a28c: YI SYLLABLE WEP*/ + RTUNI_ALPHA, /* U+00a28d: YI SYLLABLE ZIT*/ + RTUNI_ALPHA, /* U+00a28e: YI SYLLABLE ZIX*/ + RTUNI_ALPHA, /* U+00a28f: YI SYLLABLE ZI*/ + RTUNI_ALPHA, /* U+00a290: YI SYLLABLE ZIP*/ + RTUNI_ALPHA, /* U+00a291: YI SYLLABLE ZIEX*/ + RTUNI_ALPHA, /* U+00a292: YI SYLLABLE ZIE*/ + RTUNI_ALPHA, /* U+00a293: YI SYLLABLE ZIEP*/ + RTUNI_ALPHA, /* U+00a294: YI SYLLABLE ZAT*/ + RTUNI_ALPHA, /* U+00a295: YI SYLLABLE ZAX*/ + RTUNI_ALPHA, /* U+00a296: YI SYLLABLE ZA*/ + RTUNI_ALPHA, /* U+00a297: YI SYLLABLE ZAP*/ + RTUNI_ALPHA, /* U+00a298: YI SYLLABLE ZUOX*/ + RTUNI_ALPHA, /* U+00a299: YI SYLLABLE ZUO*/ + RTUNI_ALPHA, /* U+00a29a: YI SYLLABLE ZUOP*/ + RTUNI_ALPHA, /* U+00a29b: YI SYLLABLE ZOT*/ + RTUNI_ALPHA, /* U+00a29c: YI SYLLABLE ZOX*/ + RTUNI_ALPHA, /* U+00a29d: YI SYLLABLE ZO*/ + RTUNI_ALPHA, /* U+00a29e: YI SYLLABLE ZOP*/ + RTUNI_ALPHA, /* U+00a29f: YI SYLLABLE ZEX*/ + RTUNI_ALPHA, /* U+00a2a0: YI SYLLABLE ZE*/ + RTUNI_ALPHA, /* U+00a2a1: YI SYLLABLE ZEP*/ + RTUNI_ALPHA, /* U+00a2a2: YI SYLLABLE ZUT*/ + RTUNI_ALPHA, /* U+00a2a3: YI SYLLABLE ZUX*/ + RTUNI_ALPHA, /* U+00a2a4: YI SYLLABLE ZU*/ + RTUNI_ALPHA, /* U+00a2a5: YI SYLLABLE ZUP*/ + RTUNI_ALPHA, /* U+00a2a6: YI SYLLABLE ZURX*/ + RTUNI_ALPHA, /* U+00a2a7: YI SYLLABLE ZUR*/ + RTUNI_ALPHA, /* U+00a2a8: YI SYLLABLE ZYT*/ + RTUNI_ALPHA, /* U+00a2a9: YI SYLLABLE ZYX*/ + RTUNI_ALPHA, /* U+00a2aa: YI SYLLABLE ZY*/ + RTUNI_ALPHA, /* U+00a2ab: YI SYLLABLE ZYP*/ + RTUNI_ALPHA, /* U+00a2ac: YI SYLLABLE ZYRX*/ + RTUNI_ALPHA, /* U+00a2ad: YI SYLLABLE ZYR*/ + RTUNI_ALPHA, /* U+00a2ae: YI SYLLABLE CIT*/ + RTUNI_ALPHA, /* U+00a2af: YI SYLLABLE CIX*/ + RTUNI_ALPHA, /* U+00a2b0: YI SYLLABLE CI*/ + RTUNI_ALPHA, /* U+00a2b1: YI SYLLABLE CIP*/ + RTUNI_ALPHA, /* U+00a2b2: YI SYLLABLE CIET*/ + RTUNI_ALPHA, /* U+00a2b3: YI SYLLABLE CIEX*/ + RTUNI_ALPHA, /* U+00a2b4: YI SYLLABLE CIE*/ + RTUNI_ALPHA, /* U+00a2b5: YI SYLLABLE CIEP*/ + RTUNI_ALPHA, /* U+00a2b6: YI SYLLABLE CAT*/ + RTUNI_ALPHA, /* U+00a2b7: YI SYLLABLE CAX*/ + RTUNI_ALPHA, /* U+00a2b8: YI SYLLABLE CA*/ + RTUNI_ALPHA, /* U+00a2b9: YI SYLLABLE CAP*/ + RTUNI_ALPHA, /* U+00a2ba: YI SYLLABLE CUOX*/ + RTUNI_ALPHA, /* U+00a2bb: YI SYLLABLE CUO*/ + RTUNI_ALPHA, /* U+00a2bc: YI SYLLABLE CUOP*/ + RTUNI_ALPHA, /* U+00a2bd: YI SYLLABLE COT*/ + RTUNI_ALPHA, /* U+00a2be: YI SYLLABLE COX*/ + RTUNI_ALPHA, /* U+00a2bf: YI SYLLABLE CO*/ + RTUNI_ALPHA, /* U+00a2c0: YI SYLLABLE COP*/ + RTUNI_ALPHA, /* U+00a2c1: YI SYLLABLE CEX*/ + RTUNI_ALPHA, /* U+00a2c2: YI SYLLABLE CE*/ + RTUNI_ALPHA, /* U+00a2c3: YI SYLLABLE CEP*/ + RTUNI_ALPHA, /* U+00a2c4: YI SYLLABLE CUT*/ + RTUNI_ALPHA, /* U+00a2c5: YI SYLLABLE CUX*/ + RTUNI_ALPHA, /* U+00a2c6: YI SYLLABLE CU*/ + RTUNI_ALPHA, /* U+00a2c7: YI SYLLABLE CUP*/ + RTUNI_ALPHA, /* U+00a2c8: YI SYLLABLE CURX*/ + RTUNI_ALPHA, /* U+00a2c9: YI SYLLABLE CUR*/ + RTUNI_ALPHA, /* U+00a2ca: YI SYLLABLE CYT*/ + RTUNI_ALPHA, /* U+00a2cb: YI SYLLABLE CYX*/ + RTUNI_ALPHA, /* U+00a2cc: YI SYLLABLE CY*/ + RTUNI_ALPHA, /* U+00a2cd: YI SYLLABLE CYP*/ + RTUNI_ALPHA, /* U+00a2ce: YI SYLLABLE CYRX*/ + RTUNI_ALPHA, /* U+00a2cf: YI SYLLABLE CYR*/ + RTUNI_ALPHA, /* U+00a2d0: YI SYLLABLE ZZIT*/ + RTUNI_ALPHA, /* U+00a2d1: YI SYLLABLE ZZIX*/ + RTUNI_ALPHA, /* U+00a2d2: YI SYLLABLE ZZI*/ + RTUNI_ALPHA, /* U+00a2d3: YI SYLLABLE ZZIP*/ + RTUNI_ALPHA, /* U+00a2d4: YI SYLLABLE ZZIET*/ + RTUNI_ALPHA, /* U+00a2d5: YI SYLLABLE ZZIEX*/ + RTUNI_ALPHA, /* U+00a2d6: YI SYLLABLE ZZIE*/ + RTUNI_ALPHA, /* U+00a2d7: YI SYLLABLE ZZIEP*/ + RTUNI_ALPHA, /* U+00a2d8: YI SYLLABLE ZZAT*/ + RTUNI_ALPHA, /* U+00a2d9: YI SYLLABLE ZZAX*/ + RTUNI_ALPHA, /* U+00a2da: YI SYLLABLE ZZA*/ + RTUNI_ALPHA, /* U+00a2db: YI SYLLABLE ZZAP*/ + RTUNI_ALPHA, /* U+00a2dc: YI SYLLABLE ZZOX*/ + RTUNI_ALPHA, /* U+00a2dd: YI SYLLABLE ZZO*/ + RTUNI_ALPHA, /* U+00a2de: YI SYLLABLE ZZOP*/ + RTUNI_ALPHA, /* U+00a2df: YI SYLLABLE ZZEX*/ + RTUNI_ALPHA, /* U+00a2e0: YI SYLLABLE ZZE*/ + RTUNI_ALPHA, /* U+00a2e1: YI SYLLABLE ZZEP*/ + RTUNI_ALPHA, /* U+00a2e2: YI SYLLABLE ZZUX*/ + RTUNI_ALPHA, /* U+00a2e3: YI SYLLABLE ZZU*/ + RTUNI_ALPHA, /* U+00a2e4: YI SYLLABLE ZZUP*/ + RTUNI_ALPHA, /* U+00a2e5: YI SYLLABLE ZZURX*/ + RTUNI_ALPHA, /* U+00a2e6: YI SYLLABLE ZZUR*/ + RTUNI_ALPHA, /* U+00a2e7: YI SYLLABLE ZZYT*/ + RTUNI_ALPHA, /* U+00a2e8: YI SYLLABLE ZZYX*/ + RTUNI_ALPHA, /* U+00a2e9: YI SYLLABLE ZZY*/ + RTUNI_ALPHA, /* U+00a2ea: YI SYLLABLE ZZYP*/ + RTUNI_ALPHA, /* U+00a2eb: YI SYLLABLE ZZYRX*/ + RTUNI_ALPHA, /* U+00a2ec: YI SYLLABLE ZZYR*/ + RTUNI_ALPHA, /* U+00a2ed: YI SYLLABLE NZIT*/ + RTUNI_ALPHA, /* U+00a2ee: YI SYLLABLE NZIX*/ + RTUNI_ALPHA, /* U+00a2ef: YI SYLLABLE NZI*/ + RTUNI_ALPHA, /* U+00a2f0: YI SYLLABLE NZIP*/ + RTUNI_ALPHA, /* U+00a2f1: YI SYLLABLE NZIEX*/ + RTUNI_ALPHA, /* U+00a2f2: YI SYLLABLE NZIE*/ + RTUNI_ALPHA, /* U+00a2f3: YI SYLLABLE NZIEP*/ + RTUNI_ALPHA, /* U+00a2f4: YI SYLLABLE NZAT*/ + RTUNI_ALPHA, /* U+00a2f5: YI SYLLABLE NZAX*/ + RTUNI_ALPHA, /* U+00a2f6: YI SYLLABLE NZA*/ + RTUNI_ALPHA, /* U+00a2f7: YI SYLLABLE NZAP*/ + RTUNI_ALPHA, /* U+00a2f8: YI SYLLABLE NZUOX*/ + RTUNI_ALPHA, /* U+00a2f9: YI SYLLABLE NZUO*/ + RTUNI_ALPHA, /* U+00a2fa: YI SYLLABLE NZOX*/ + RTUNI_ALPHA, /* U+00a2fb: YI SYLLABLE NZOP*/ + RTUNI_ALPHA, /* U+00a2fc: YI SYLLABLE NZEX*/ + RTUNI_ALPHA, /* U+00a2fd: YI SYLLABLE NZE*/ + RTUNI_ALPHA, /* U+00a2fe: YI SYLLABLE NZUX*/ + RTUNI_ALPHA, /* U+00a2ff: YI SYLLABLE NZU*/ + RTUNI_ALPHA, /* U+00a300: YI SYLLABLE NZUP*/ + RTUNI_ALPHA, /* U+00a301: YI SYLLABLE NZURX*/ + RTUNI_ALPHA, /* U+00a302: YI SYLLABLE NZUR*/ + RTUNI_ALPHA, /* U+00a303: YI SYLLABLE NZYT*/ + RTUNI_ALPHA, /* U+00a304: YI SYLLABLE NZYX*/ + RTUNI_ALPHA, /* U+00a305: YI SYLLABLE NZY*/ + RTUNI_ALPHA, /* U+00a306: YI SYLLABLE NZYP*/ + RTUNI_ALPHA, /* U+00a307: YI SYLLABLE NZYRX*/ + RTUNI_ALPHA, /* U+00a308: YI SYLLABLE NZYR*/ + RTUNI_ALPHA, /* U+00a309: YI SYLLABLE SIT*/ + RTUNI_ALPHA, /* U+00a30a: YI SYLLABLE SIX*/ + RTUNI_ALPHA, /* U+00a30b: YI SYLLABLE SI*/ + RTUNI_ALPHA, /* U+00a30c: YI SYLLABLE SIP*/ + RTUNI_ALPHA, /* U+00a30d: YI SYLLABLE SIEX*/ + RTUNI_ALPHA, /* U+00a30e: YI SYLLABLE SIE*/ + RTUNI_ALPHA, /* U+00a30f: YI SYLLABLE SIEP*/ + RTUNI_ALPHA, /* U+00a310: YI SYLLABLE SAT*/ + RTUNI_ALPHA, /* U+00a311: YI SYLLABLE SAX*/ + RTUNI_ALPHA, /* U+00a312: YI SYLLABLE SA*/ + RTUNI_ALPHA, /* U+00a313: YI SYLLABLE SAP*/ + RTUNI_ALPHA, /* U+00a314: YI SYLLABLE SUOX*/ + RTUNI_ALPHA, /* U+00a315: YI SYLLABLE SUO*/ + RTUNI_ALPHA, /* U+00a316: YI SYLLABLE SUOP*/ + RTUNI_ALPHA, /* U+00a317: YI SYLLABLE SOT*/ + RTUNI_ALPHA, /* U+00a318: YI SYLLABLE SOX*/ + RTUNI_ALPHA, /* U+00a319: YI SYLLABLE SO*/ + RTUNI_ALPHA, /* U+00a31a: YI SYLLABLE SOP*/ + RTUNI_ALPHA, /* U+00a31b: YI SYLLABLE SEX*/ + RTUNI_ALPHA, /* U+00a31c: YI SYLLABLE SE*/ + RTUNI_ALPHA, /* U+00a31d: YI SYLLABLE SEP*/ + RTUNI_ALPHA, /* U+00a31e: YI SYLLABLE SUT*/ + RTUNI_ALPHA, /* U+00a31f: YI SYLLABLE SUX*/ + RTUNI_ALPHA, /* U+00a320: YI SYLLABLE SU*/ + RTUNI_ALPHA, /* U+00a321: YI SYLLABLE SUP*/ + RTUNI_ALPHA, /* U+00a322: YI SYLLABLE SURX*/ + RTUNI_ALPHA, /* U+00a323: YI SYLLABLE SUR*/ + RTUNI_ALPHA, /* U+00a324: YI SYLLABLE SYT*/ + RTUNI_ALPHA, /* U+00a325: YI SYLLABLE SYX*/ + RTUNI_ALPHA, /* U+00a326: YI SYLLABLE SY*/ + RTUNI_ALPHA, /* U+00a327: YI SYLLABLE SYP*/ + RTUNI_ALPHA, /* U+00a328: YI SYLLABLE SYRX*/ + RTUNI_ALPHA, /* U+00a329: YI SYLLABLE SYR*/ + RTUNI_ALPHA, /* U+00a32a: YI SYLLABLE SSIT*/ + RTUNI_ALPHA, /* U+00a32b: YI SYLLABLE SSIX*/ + RTUNI_ALPHA, /* U+00a32c: YI SYLLABLE SSI*/ + RTUNI_ALPHA, /* U+00a32d: YI SYLLABLE SSIP*/ + RTUNI_ALPHA, /* U+00a32e: YI SYLLABLE SSIEX*/ + RTUNI_ALPHA, /* U+00a32f: YI SYLLABLE SSIE*/ + RTUNI_ALPHA, /* U+00a330: YI SYLLABLE SSIEP*/ + RTUNI_ALPHA, /* U+00a331: YI SYLLABLE SSAT*/ + RTUNI_ALPHA, /* U+00a332: YI SYLLABLE SSAX*/ + RTUNI_ALPHA, /* U+00a333: YI SYLLABLE SSA*/ + RTUNI_ALPHA, /* U+00a334: YI SYLLABLE SSAP*/ + RTUNI_ALPHA, /* U+00a335: YI SYLLABLE SSOT*/ + RTUNI_ALPHA, /* U+00a336: YI SYLLABLE SSOX*/ + RTUNI_ALPHA, /* U+00a337: YI SYLLABLE SSO*/ + RTUNI_ALPHA, /* U+00a338: YI SYLLABLE SSOP*/ + RTUNI_ALPHA, /* U+00a339: YI SYLLABLE SSEX*/ + RTUNI_ALPHA, /* U+00a33a: YI SYLLABLE SSE*/ + RTUNI_ALPHA, /* U+00a33b: YI SYLLABLE SSEP*/ + RTUNI_ALPHA, /* U+00a33c: YI SYLLABLE SSUT*/ + RTUNI_ALPHA, /* U+00a33d: YI SYLLABLE SSUX*/ + RTUNI_ALPHA, /* U+00a33e: YI SYLLABLE SSU*/ + RTUNI_ALPHA, /* U+00a33f: YI SYLLABLE SSUP*/ + RTUNI_ALPHA, /* U+00a340: YI SYLLABLE SSYT*/ + RTUNI_ALPHA, /* U+00a341: YI SYLLABLE SSYX*/ + RTUNI_ALPHA, /* U+00a342: YI SYLLABLE SSY*/ + RTUNI_ALPHA, /* U+00a343: YI SYLLABLE SSYP*/ + RTUNI_ALPHA, /* U+00a344: YI SYLLABLE SSYRX*/ + RTUNI_ALPHA, /* U+00a345: YI SYLLABLE SSYR*/ + RTUNI_ALPHA, /* U+00a346: YI SYLLABLE ZHAT*/ + RTUNI_ALPHA, /* U+00a347: YI SYLLABLE ZHAX*/ + RTUNI_ALPHA, /* U+00a348: YI SYLLABLE ZHA*/ + RTUNI_ALPHA, /* U+00a349: YI SYLLABLE ZHAP*/ + RTUNI_ALPHA, /* U+00a34a: YI SYLLABLE ZHUOX*/ + RTUNI_ALPHA, /* U+00a34b: YI SYLLABLE ZHUO*/ + RTUNI_ALPHA, /* U+00a34c: YI SYLLABLE ZHUOP*/ + RTUNI_ALPHA, /* U+00a34d: YI SYLLABLE ZHOT*/ + RTUNI_ALPHA, /* U+00a34e: YI SYLLABLE ZHOX*/ + RTUNI_ALPHA, /* U+00a34f: YI SYLLABLE ZHO*/ + RTUNI_ALPHA, /* U+00a350: YI SYLLABLE ZHOP*/ + RTUNI_ALPHA, /* U+00a351: YI SYLLABLE ZHET*/ + RTUNI_ALPHA, /* U+00a352: YI SYLLABLE ZHEX*/ + RTUNI_ALPHA, /* U+00a353: YI SYLLABLE ZHE*/ + RTUNI_ALPHA, /* U+00a354: YI SYLLABLE ZHEP*/ + RTUNI_ALPHA, /* U+00a355: YI SYLLABLE ZHUT*/ + RTUNI_ALPHA, /* U+00a356: YI SYLLABLE ZHUX*/ + RTUNI_ALPHA, /* U+00a357: YI SYLLABLE ZHU*/ + RTUNI_ALPHA, /* U+00a358: YI SYLLABLE ZHUP*/ + RTUNI_ALPHA, /* U+00a359: YI SYLLABLE ZHURX*/ + RTUNI_ALPHA, /* U+00a35a: YI SYLLABLE ZHUR*/ + RTUNI_ALPHA, /* U+00a35b: YI SYLLABLE ZHYT*/ + RTUNI_ALPHA, /* U+00a35c: YI SYLLABLE ZHYX*/ + RTUNI_ALPHA, /* U+00a35d: YI SYLLABLE ZHY*/ + RTUNI_ALPHA, /* U+00a35e: YI SYLLABLE ZHYP*/ + RTUNI_ALPHA, /* U+00a35f: YI SYLLABLE ZHYRX*/ + RTUNI_ALPHA, /* U+00a360: YI SYLLABLE ZHYR*/ + RTUNI_ALPHA, /* U+00a361: YI SYLLABLE CHAT*/ + RTUNI_ALPHA, /* U+00a362: YI SYLLABLE CHAX*/ + RTUNI_ALPHA, /* U+00a363: YI SYLLABLE CHA*/ + RTUNI_ALPHA, /* U+00a364: YI SYLLABLE CHAP*/ + RTUNI_ALPHA, /* U+00a365: YI SYLLABLE CHUOT*/ + RTUNI_ALPHA, /* U+00a366: YI SYLLABLE CHUOX*/ + RTUNI_ALPHA, /* U+00a367: YI SYLLABLE CHUO*/ + RTUNI_ALPHA, /* U+00a368: YI SYLLABLE CHUOP*/ + RTUNI_ALPHA, /* U+00a369: YI SYLLABLE CHOT*/ + RTUNI_ALPHA, /* U+00a36a: YI SYLLABLE CHOX*/ + RTUNI_ALPHA, /* U+00a36b: YI SYLLABLE CHO*/ + RTUNI_ALPHA, /* U+00a36c: YI SYLLABLE CHOP*/ + RTUNI_ALPHA, /* U+00a36d: YI SYLLABLE CHET*/ + RTUNI_ALPHA, /* U+00a36e: YI SYLLABLE CHEX*/ + RTUNI_ALPHA, /* U+00a36f: YI SYLLABLE CHE*/ + RTUNI_ALPHA, /* U+00a370: YI SYLLABLE CHEP*/ + RTUNI_ALPHA, /* U+00a371: YI SYLLABLE CHUX*/ + RTUNI_ALPHA, /* U+00a372: YI SYLLABLE CHU*/ + RTUNI_ALPHA, /* U+00a373: YI SYLLABLE CHUP*/ + RTUNI_ALPHA, /* U+00a374: YI SYLLABLE CHURX*/ + RTUNI_ALPHA, /* U+00a375: YI SYLLABLE CHUR*/ + RTUNI_ALPHA, /* U+00a376: YI SYLLABLE CHYT*/ + RTUNI_ALPHA, /* U+00a377: YI SYLLABLE CHYX*/ + RTUNI_ALPHA, /* U+00a378: YI SYLLABLE CHY*/ + RTUNI_ALPHA, /* U+00a379: YI SYLLABLE CHYP*/ + RTUNI_ALPHA, /* U+00a37a: YI SYLLABLE CHYRX*/ + RTUNI_ALPHA, /* U+00a37b: YI SYLLABLE CHYR*/ + RTUNI_ALPHA, /* U+00a37c: YI SYLLABLE RRAX*/ + RTUNI_ALPHA, /* U+00a37d: YI SYLLABLE RRA*/ + RTUNI_ALPHA, /* U+00a37e: YI SYLLABLE RRUOX*/ + RTUNI_ALPHA, /* U+00a37f: YI SYLLABLE RRUO*/ + RTUNI_ALPHA, /* U+00a380: YI SYLLABLE RROT*/ + RTUNI_ALPHA, /* U+00a381: YI SYLLABLE RROX*/ + RTUNI_ALPHA, /* U+00a382: YI SYLLABLE RRO*/ + RTUNI_ALPHA, /* U+00a383: YI SYLLABLE RROP*/ + RTUNI_ALPHA, /* U+00a384: YI SYLLABLE RRET*/ + RTUNI_ALPHA, /* U+00a385: YI SYLLABLE RREX*/ + RTUNI_ALPHA, /* U+00a386: YI SYLLABLE RRE*/ + RTUNI_ALPHA, /* U+00a387: YI SYLLABLE RREP*/ + RTUNI_ALPHA, /* U+00a388: YI SYLLABLE RRUT*/ + RTUNI_ALPHA, /* U+00a389: YI SYLLABLE RRUX*/ + RTUNI_ALPHA, /* U+00a38a: YI SYLLABLE RRU*/ + RTUNI_ALPHA, /* U+00a38b: YI SYLLABLE RRUP*/ + RTUNI_ALPHA, /* U+00a38c: YI SYLLABLE RRURX*/ + RTUNI_ALPHA, /* U+00a38d: YI SYLLABLE RRUR*/ + RTUNI_ALPHA, /* U+00a38e: YI SYLLABLE RRYT*/ + RTUNI_ALPHA, /* U+00a38f: YI SYLLABLE RRYX*/ + RTUNI_ALPHA, /* U+00a390: YI SYLLABLE RRY*/ + RTUNI_ALPHA, /* U+00a391: YI SYLLABLE RRYP*/ + RTUNI_ALPHA, /* U+00a392: YI SYLLABLE RRYRX*/ + RTUNI_ALPHA, /* U+00a393: YI SYLLABLE RRYR*/ + RTUNI_ALPHA, /* U+00a394: YI SYLLABLE NRAT*/ + RTUNI_ALPHA, /* U+00a395: YI SYLLABLE NRAX*/ + RTUNI_ALPHA, /* U+00a396: YI SYLLABLE NRA*/ + RTUNI_ALPHA, /* U+00a397: YI SYLLABLE NRAP*/ + RTUNI_ALPHA, /* U+00a398: YI SYLLABLE NROX*/ + RTUNI_ALPHA, /* U+00a399: YI SYLLABLE NRO*/ + RTUNI_ALPHA, /* U+00a39a: YI SYLLABLE NROP*/ + RTUNI_ALPHA, /* U+00a39b: YI SYLLABLE NRET*/ + RTUNI_ALPHA, /* U+00a39c: YI SYLLABLE NREX*/ + RTUNI_ALPHA, /* U+00a39d: YI SYLLABLE NRE*/ + RTUNI_ALPHA, /* U+00a39e: YI SYLLABLE NREP*/ + RTUNI_ALPHA, /* U+00a39f: YI SYLLABLE NRUT*/ + RTUNI_ALPHA, /* U+00a3a0: YI SYLLABLE NRUX*/ + RTUNI_ALPHA, /* U+00a3a1: YI SYLLABLE NRU*/ + RTUNI_ALPHA, /* U+00a3a2: YI SYLLABLE NRUP*/ + RTUNI_ALPHA, /* U+00a3a3: YI SYLLABLE NRURX*/ + RTUNI_ALPHA, /* U+00a3a4: YI SYLLABLE NRUR*/ + RTUNI_ALPHA, /* U+00a3a5: YI SYLLABLE NRYT*/ + RTUNI_ALPHA, /* U+00a3a6: YI SYLLABLE NRYX*/ + RTUNI_ALPHA, /* U+00a3a7: YI SYLLABLE NRY*/ + RTUNI_ALPHA, /* U+00a3a8: YI SYLLABLE NRYP*/ + RTUNI_ALPHA, /* U+00a3a9: YI SYLLABLE NRYRX*/ + RTUNI_ALPHA, /* U+00a3aa: YI SYLLABLE NRYR*/ + RTUNI_ALPHA, /* U+00a3ab: YI SYLLABLE SHAT*/ + RTUNI_ALPHA, /* U+00a3ac: YI SYLLABLE SHAX*/ + RTUNI_ALPHA, /* U+00a3ad: YI SYLLABLE SHA*/ + RTUNI_ALPHA, /* U+00a3ae: YI SYLLABLE SHAP*/ + RTUNI_ALPHA, /* U+00a3af: YI SYLLABLE SHUOX*/ + RTUNI_ALPHA, /* U+00a3b0: YI SYLLABLE SHUO*/ + RTUNI_ALPHA, /* U+00a3b1: YI SYLLABLE SHUOP*/ + RTUNI_ALPHA, /* U+00a3b2: YI SYLLABLE SHOT*/ + RTUNI_ALPHA, /* U+00a3b3: YI SYLLABLE SHOX*/ + RTUNI_ALPHA, /* U+00a3b4: YI SYLLABLE SHO*/ + RTUNI_ALPHA, /* U+00a3b5: YI SYLLABLE SHOP*/ + RTUNI_ALPHA, /* U+00a3b6: YI SYLLABLE SHET*/ + RTUNI_ALPHA, /* U+00a3b7: YI SYLLABLE SHEX*/ + RTUNI_ALPHA, /* U+00a3b8: YI SYLLABLE SHE*/ + RTUNI_ALPHA, /* U+00a3b9: YI SYLLABLE SHEP*/ + RTUNI_ALPHA, /* U+00a3ba: YI SYLLABLE SHUT*/ + RTUNI_ALPHA, /* U+00a3bb: YI SYLLABLE SHUX*/ + RTUNI_ALPHA, /* U+00a3bc: YI SYLLABLE SHU*/ + RTUNI_ALPHA, /* U+00a3bd: YI SYLLABLE SHUP*/ + RTUNI_ALPHA, /* U+00a3be: YI SYLLABLE SHURX*/ + RTUNI_ALPHA, /* U+00a3bf: YI SYLLABLE SHUR*/ + RTUNI_ALPHA, /* U+00a3c0: YI SYLLABLE SHYT*/ + RTUNI_ALPHA, /* U+00a3c1: YI SYLLABLE SHYX*/ + RTUNI_ALPHA, /* U+00a3c2: YI SYLLABLE SHY*/ + RTUNI_ALPHA, /* U+00a3c3: YI SYLLABLE SHYP*/ + RTUNI_ALPHA, /* U+00a3c4: YI SYLLABLE SHYRX*/ + RTUNI_ALPHA, /* U+00a3c5: YI SYLLABLE SHYR*/ + RTUNI_ALPHA, /* U+00a3c6: YI SYLLABLE RAT*/ + RTUNI_ALPHA, /* U+00a3c7: YI SYLLABLE RAX*/ + RTUNI_ALPHA, /* U+00a3c8: YI SYLLABLE RA*/ + RTUNI_ALPHA, /* U+00a3c9: YI SYLLABLE RAP*/ + RTUNI_ALPHA, /* U+00a3ca: YI SYLLABLE RUOX*/ + RTUNI_ALPHA, /* U+00a3cb: YI SYLLABLE RUO*/ + RTUNI_ALPHA, /* U+00a3cc: YI SYLLABLE RUOP*/ + RTUNI_ALPHA, /* U+00a3cd: YI SYLLABLE ROT*/ + RTUNI_ALPHA, /* U+00a3ce: YI SYLLABLE ROX*/ + RTUNI_ALPHA, /* U+00a3cf: YI SYLLABLE RO*/ + RTUNI_ALPHA, /* U+00a3d0: YI SYLLABLE ROP*/ + RTUNI_ALPHA, /* U+00a3d1: YI SYLLABLE REX*/ + RTUNI_ALPHA, /* U+00a3d2: YI SYLLABLE RE*/ + RTUNI_ALPHA, /* U+00a3d3: YI SYLLABLE REP*/ + RTUNI_ALPHA, /* U+00a3d4: YI SYLLABLE RUT*/ + RTUNI_ALPHA, /* U+00a3d5: YI SYLLABLE RUX*/ + RTUNI_ALPHA, /* U+00a3d6: YI SYLLABLE RU*/ + RTUNI_ALPHA, /* U+00a3d7: YI SYLLABLE RUP*/ + RTUNI_ALPHA, /* U+00a3d8: YI SYLLABLE RURX*/ + RTUNI_ALPHA, /* U+00a3d9: YI SYLLABLE RUR*/ + RTUNI_ALPHA, /* U+00a3da: YI SYLLABLE RYT*/ + RTUNI_ALPHA, /* U+00a3db: YI SYLLABLE RYX*/ + RTUNI_ALPHA, /* U+00a3dc: YI SYLLABLE RY*/ + RTUNI_ALPHA, /* U+00a3dd: YI SYLLABLE RYP*/ + RTUNI_ALPHA, /* U+00a3de: YI SYLLABLE RYRX*/ + RTUNI_ALPHA, /* U+00a3df: YI SYLLABLE RYR*/ + RTUNI_ALPHA, /* U+00a3e0: YI SYLLABLE JIT*/ + RTUNI_ALPHA, /* U+00a3e1: YI SYLLABLE JIX*/ + RTUNI_ALPHA, /* U+00a3e2: YI SYLLABLE JI*/ + RTUNI_ALPHA, /* U+00a3e3: YI SYLLABLE JIP*/ + RTUNI_ALPHA, /* U+00a3e4: YI SYLLABLE JIET*/ + RTUNI_ALPHA, /* U+00a3e5: YI SYLLABLE JIEX*/ + RTUNI_ALPHA, /* U+00a3e6: YI SYLLABLE JIE*/ + RTUNI_ALPHA, /* U+00a3e7: YI SYLLABLE JIEP*/ + RTUNI_ALPHA, /* U+00a3e8: YI SYLLABLE JUOT*/ + RTUNI_ALPHA, /* U+00a3e9: YI SYLLABLE JUOX*/ + RTUNI_ALPHA, /* U+00a3ea: YI SYLLABLE JUO*/ + RTUNI_ALPHA, /* U+00a3eb: YI SYLLABLE JUOP*/ + RTUNI_ALPHA, /* U+00a3ec: YI SYLLABLE JOT*/ + RTUNI_ALPHA, /* U+00a3ed: YI SYLLABLE JOX*/ + RTUNI_ALPHA, /* U+00a3ee: YI SYLLABLE JO*/ + RTUNI_ALPHA, /* U+00a3ef: YI SYLLABLE JOP*/ + RTUNI_ALPHA, /* U+00a3f0: YI SYLLABLE JUT*/ + RTUNI_ALPHA, /* U+00a3f1: YI SYLLABLE JUX*/ + RTUNI_ALPHA, /* U+00a3f2: YI SYLLABLE JU*/ + RTUNI_ALPHA, /* U+00a3f3: YI SYLLABLE JUP*/ + RTUNI_ALPHA, /* U+00a3f4: YI SYLLABLE JURX*/ + RTUNI_ALPHA, /* U+00a3f5: YI SYLLABLE JUR*/ + RTUNI_ALPHA, /* U+00a3f6: YI SYLLABLE JYT*/ + RTUNI_ALPHA, /* U+00a3f7: YI SYLLABLE JYX*/ + RTUNI_ALPHA, /* U+00a3f8: YI SYLLABLE JY*/ + RTUNI_ALPHA, /* U+00a3f9: YI SYLLABLE JYP*/ + RTUNI_ALPHA, /* U+00a3fa: YI SYLLABLE JYRX*/ + RTUNI_ALPHA, /* U+00a3fb: YI SYLLABLE JYR*/ + RTUNI_ALPHA, /* U+00a3fc: YI SYLLABLE QIT*/ + RTUNI_ALPHA, /* U+00a3fd: YI SYLLABLE QIX*/ + RTUNI_ALPHA, /* U+00a3fe: YI SYLLABLE QI*/ + RTUNI_ALPHA, /* U+00a3ff: YI SYLLABLE QIP*/ + RTUNI_ALPHA, /* U+00a400: YI SYLLABLE QIET*/ + RTUNI_ALPHA, /* U+00a401: YI SYLLABLE QIEX*/ + RTUNI_ALPHA, /* U+00a402: YI SYLLABLE QIE*/ + RTUNI_ALPHA, /* U+00a403: YI SYLLABLE QIEP*/ + RTUNI_ALPHA, /* U+00a404: YI SYLLABLE QUOT*/ + RTUNI_ALPHA, /* U+00a405: YI SYLLABLE QUOX*/ + RTUNI_ALPHA, /* U+00a406: YI SYLLABLE QUO*/ + RTUNI_ALPHA, /* U+00a407: YI SYLLABLE QUOP*/ + RTUNI_ALPHA, /* U+00a408: YI SYLLABLE QOT*/ + RTUNI_ALPHA, /* U+00a409: YI SYLLABLE QOX*/ + RTUNI_ALPHA, /* U+00a40a: YI SYLLABLE QO*/ + RTUNI_ALPHA, /* U+00a40b: YI SYLLABLE QOP*/ + RTUNI_ALPHA, /* U+00a40c: YI SYLLABLE QUT*/ + RTUNI_ALPHA, /* U+00a40d: YI SYLLABLE QUX*/ + RTUNI_ALPHA, /* U+00a40e: YI SYLLABLE QU*/ + RTUNI_ALPHA, /* U+00a40f: YI SYLLABLE QUP*/ + RTUNI_ALPHA, /* U+00a410: YI SYLLABLE QURX*/ + RTUNI_ALPHA, /* U+00a411: YI SYLLABLE QUR*/ + RTUNI_ALPHA, /* U+00a412: YI SYLLABLE QYT*/ + RTUNI_ALPHA, /* U+00a413: YI SYLLABLE QYX*/ + RTUNI_ALPHA, /* U+00a414: YI SYLLABLE QY*/ + RTUNI_ALPHA, /* U+00a415: YI SYLLABLE QYP*/ + RTUNI_ALPHA, /* U+00a416: YI SYLLABLE QYRX*/ + RTUNI_ALPHA, /* U+00a417: YI SYLLABLE QYR*/ + RTUNI_ALPHA, /* U+00a418: YI SYLLABLE JJIT*/ + RTUNI_ALPHA, /* U+00a419: YI SYLLABLE JJIX*/ + RTUNI_ALPHA, /* U+00a41a: YI SYLLABLE JJI*/ + RTUNI_ALPHA, /* U+00a41b: YI SYLLABLE JJIP*/ + RTUNI_ALPHA, /* U+00a41c: YI SYLLABLE JJIET*/ + RTUNI_ALPHA, /* U+00a41d: YI SYLLABLE JJIEX*/ + RTUNI_ALPHA, /* U+00a41e: YI SYLLABLE JJIE*/ + RTUNI_ALPHA, /* U+00a41f: YI SYLLABLE JJIEP*/ + RTUNI_ALPHA, /* U+00a420: YI SYLLABLE JJUOX*/ + RTUNI_ALPHA, /* U+00a421: YI SYLLABLE JJUO*/ + RTUNI_ALPHA, /* U+00a422: YI SYLLABLE JJUOP*/ + RTUNI_ALPHA, /* U+00a423: YI SYLLABLE JJOT*/ + RTUNI_ALPHA, /* U+00a424: YI SYLLABLE JJOX*/ + RTUNI_ALPHA, /* U+00a425: YI SYLLABLE JJO*/ + RTUNI_ALPHA, /* U+00a426: YI SYLLABLE JJOP*/ + RTUNI_ALPHA, /* U+00a427: YI SYLLABLE JJUT*/ + RTUNI_ALPHA, /* U+00a428: YI SYLLABLE JJUX*/ + RTUNI_ALPHA, /* U+00a429: YI SYLLABLE JJU*/ + RTUNI_ALPHA, /* U+00a42a: YI SYLLABLE JJUP*/ + RTUNI_ALPHA, /* U+00a42b: YI SYLLABLE JJURX*/ + RTUNI_ALPHA, /* U+00a42c: YI SYLLABLE JJUR*/ + RTUNI_ALPHA, /* U+00a42d: YI SYLLABLE JJYT*/ + RTUNI_ALPHA, /* U+00a42e: YI SYLLABLE JJYX*/ + RTUNI_ALPHA, /* U+00a42f: YI SYLLABLE JJY*/ + RTUNI_ALPHA, /* U+00a430: YI SYLLABLE JJYP*/ + RTUNI_ALPHA, /* U+00a431: YI SYLLABLE NJIT*/ + RTUNI_ALPHA, /* U+00a432: YI SYLLABLE NJIX*/ + RTUNI_ALPHA, /* U+00a433: YI SYLLABLE NJI*/ + RTUNI_ALPHA, /* U+00a434: YI SYLLABLE NJIP*/ + RTUNI_ALPHA, /* U+00a435: YI SYLLABLE NJIET*/ + RTUNI_ALPHA, /* U+00a436: YI SYLLABLE NJIEX*/ + RTUNI_ALPHA, /* U+00a437: YI SYLLABLE NJIE*/ + RTUNI_ALPHA, /* U+00a438: YI SYLLABLE NJIEP*/ + RTUNI_ALPHA, /* U+00a439: YI SYLLABLE NJUOX*/ + RTUNI_ALPHA, /* U+00a43a: YI SYLLABLE NJUO*/ + RTUNI_ALPHA, /* U+00a43b: YI SYLLABLE NJOT*/ + RTUNI_ALPHA, /* U+00a43c: YI SYLLABLE NJOX*/ + RTUNI_ALPHA, /* U+00a43d: YI SYLLABLE NJO*/ + RTUNI_ALPHA, /* U+00a43e: YI SYLLABLE NJOP*/ + RTUNI_ALPHA, /* U+00a43f: YI SYLLABLE NJUX*/ + RTUNI_ALPHA, /* U+00a440: YI SYLLABLE NJU*/ + RTUNI_ALPHA, /* U+00a441: YI SYLLABLE NJUP*/ + RTUNI_ALPHA, /* U+00a442: YI SYLLABLE NJURX*/ + RTUNI_ALPHA, /* U+00a443: YI SYLLABLE NJUR*/ + RTUNI_ALPHA, /* U+00a444: YI SYLLABLE NJYT*/ + RTUNI_ALPHA, /* U+00a445: YI SYLLABLE NJYX*/ + RTUNI_ALPHA, /* U+00a446: YI SYLLABLE NJY*/ + RTUNI_ALPHA, /* U+00a447: YI SYLLABLE NJYP*/ + RTUNI_ALPHA, /* U+00a448: YI SYLLABLE NJYRX*/ + RTUNI_ALPHA, /* U+00a449: YI SYLLABLE NJYR*/ + RTUNI_ALPHA, /* U+00a44a: YI SYLLABLE NYIT*/ + RTUNI_ALPHA, /* U+00a44b: YI SYLLABLE NYIX*/ + RTUNI_ALPHA, /* U+00a44c: YI SYLLABLE NYI*/ + RTUNI_ALPHA, /* U+00a44d: YI SYLLABLE NYIP*/ + RTUNI_ALPHA, /* U+00a44e: YI SYLLABLE NYIET*/ + RTUNI_ALPHA, /* U+00a44f: YI SYLLABLE NYIEX*/ + RTUNI_ALPHA, /* U+00a450: YI SYLLABLE NYIE*/ + RTUNI_ALPHA, /* U+00a451: YI SYLLABLE NYIEP*/ + RTUNI_ALPHA, /* U+00a452: YI SYLLABLE NYUOX*/ + RTUNI_ALPHA, /* U+00a453: YI SYLLABLE NYUO*/ + RTUNI_ALPHA, /* U+00a454: YI SYLLABLE NYUOP*/ + RTUNI_ALPHA, /* U+00a455: YI SYLLABLE NYOT*/ + RTUNI_ALPHA, /* U+00a456: YI SYLLABLE NYOX*/ + RTUNI_ALPHA, /* U+00a457: YI SYLLABLE NYO*/ + RTUNI_ALPHA, /* U+00a458: YI SYLLABLE NYOP*/ + RTUNI_ALPHA, /* U+00a459: YI SYLLABLE NYUT*/ + RTUNI_ALPHA, /* U+00a45a: YI SYLLABLE NYUX*/ + RTUNI_ALPHA, /* U+00a45b: YI SYLLABLE NYU*/ + RTUNI_ALPHA, /* U+00a45c: YI SYLLABLE NYUP*/ + RTUNI_ALPHA, /* U+00a45d: YI SYLLABLE XIT*/ + RTUNI_ALPHA, /* U+00a45e: YI SYLLABLE XIX*/ + RTUNI_ALPHA, /* U+00a45f: YI SYLLABLE XI*/ + RTUNI_ALPHA, /* U+00a460: YI SYLLABLE XIP*/ + RTUNI_ALPHA, /* U+00a461: YI SYLLABLE XIET*/ + RTUNI_ALPHA, /* U+00a462: YI SYLLABLE XIEX*/ + RTUNI_ALPHA, /* U+00a463: YI SYLLABLE XIE*/ + RTUNI_ALPHA, /* U+00a464: YI SYLLABLE XIEP*/ + RTUNI_ALPHA, /* U+00a465: YI SYLLABLE XUOX*/ + RTUNI_ALPHA, /* U+00a466: YI SYLLABLE XUO*/ + RTUNI_ALPHA, /* U+00a467: YI SYLLABLE XOT*/ + RTUNI_ALPHA, /* U+00a468: YI SYLLABLE XOX*/ + RTUNI_ALPHA, /* U+00a469: YI SYLLABLE XO*/ + RTUNI_ALPHA, /* U+00a46a: YI SYLLABLE XOP*/ + RTUNI_ALPHA, /* U+00a46b: YI SYLLABLE XYT*/ + RTUNI_ALPHA, /* U+00a46c: YI SYLLABLE XYX*/ + RTUNI_ALPHA, /* U+00a46d: YI SYLLABLE XY*/ + RTUNI_ALPHA, /* U+00a46e: YI SYLLABLE XYP*/ + RTUNI_ALPHA, /* U+00a46f: YI SYLLABLE XYRX*/ + RTUNI_ALPHA, /* U+00a470: YI SYLLABLE XYR*/ + RTUNI_ALPHA, /* U+00a471: YI SYLLABLE YIT*/ + RTUNI_ALPHA, /* U+00a472: YI SYLLABLE YIX*/ + RTUNI_ALPHA, /* U+00a473: YI SYLLABLE YI*/ + RTUNI_ALPHA, /* U+00a474: YI SYLLABLE YIP*/ + RTUNI_ALPHA, /* U+00a475: YI SYLLABLE YIET*/ + RTUNI_ALPHA, /* U+00a476: YI SYLLABLE YIEX*/ + RTUNI_ALPHA, /* U+00a477: YI SYLLABLE YIE*/ + RTUNI_ALPHA, /* U+00a478: YI SYLLABLE YIEP*/ + RTUNI_ALPHA, /* U+00a479: YI SYLLABLE YUOT*/ + RTUNI_ALPHA, /* U+00a47a: YI SYLLABLE YUOX*/ + RTUNI_ALPHA, /* U+00a47b: YI SYLLABLE YUO*/ + RTUNI_ALPHA, /* U+00a47c: YI SYLLABLE YUOP*/ + RTUNI_ALPHA, /* U+00a47d: YI SYLLABLE YOT*/ + RTUNI_ALPHA, /* U+00a47e: YI SYLLABLE YOX*/ + RTUNI_ALPHA, /* U+00a47f: YI SYLLABLE YO*/ + RTUNI_ALPHA, /* U+00a480: YI SYLLABLE YOP*/ + RTUNI_ALPHA, /* U+00a481: YI SYLLABLE YUT*/ + RTUNI_ALPHA, /* U+00a482: YI SYLLABLE YUX*/ + RTUNI_ALPHA, /* U+00a483: YI SYLLABLE YU*/ + RTUNI_ALPHA, /* U+00a484: YI SYLLABLE YUP*/ + RTUNI_ALPHA, /* U+00a485: YI SYLLABLE YURX*/ + RTUNI_ALPHA, /* U+00a486: YI SYLLABLE YUR*/ + RTUNI_ALPHA, /* U+00a487: YI SYLLABLE YYT*/ + RTUNI_ALPHA, /* U+00a488: YI SYLLABLE YYX*/ + RTUNI_ALPHA, /* U+00a489: YI SYLLABLE YY*/ + RTUNI_ALPHA, /* U+00a48a: YI SYLLABLE YYP*/ + RTUNI_ALPHA, /* U+00a48b: YI SYLLABLE YYRX*/ + RTUNI_ALPHA, /* U+00a48c: YI SYLLABLE YYR*/ + 0, /* U+00a48d: */ + 0, /* U+00a48e: */ + 0, /* U+00a48f: */ + 0, /* U+00a490: YI RADICAL QOT*/ + 0, /* U+00a491: YI RADICAL LI*/ + 0, /* U+00a492: YI RADICAL KIT*/ + 0, /* U+00a493: YI RADICAL NYIP*/ + 0, /* U+00a494: YI RADICAL CYP*/ + 0, /* U+00a495: YI RADICAL SSI*/ + 0, /* U+00a496: YI RADICAL GGOP*/ + 0, /* U+00a497: YI RADICAL GEP*/ + 0, /* U+00a498: YI RADICAL MI*/ + 0, /* U+00a499: YI RADICAL HXIT*/ + 0, /* U+00a49a: YI RADICAL LYR*/ + 0, /* U+00a49b: YI RADICAL BBUT*/ + 0, /* U+00a49c: YI RADICAL MOP*/ + 0, /* U+00a49d: YI RADICAL YO*/ + 0, /* U+00a49e: YI RADICAL PUT*/ + 0, /* U+00a49f: YI RADICAL HXUO*/ + 0, /* U+00a4a0: YI RADICAL TAT*/ + 0, /* U+00a4a1: YI RADICAL GA*/ + 0, /* U+00a4a2: YI RADICAL ZUP*/ + 0, /* U+00a4a3: YI RADICAL CYT*/ + 0, /* U+00a4a4: YI RADICAL DDUR*/ + 0, /* U+00a4a5: YI RADICAL BUR*/ + 0, /* U+00a4a6: YI RADICAL GGUO*/ + 0, /* U+00a4a7: YI RADICAL NYOP*/ + 0, /* U+00a4a8: YI RADICAL TU*/ + 0, /* U+00a4a9: YI RADICAL OP*/ + 0, /* U+00a4aa: YI RADICAL JJUT*/ + 0, /* U+00a4ab: YI RADICAL ZOT*/ + 0, /* U+00a4ac: YI RADICAL PYT*/ + 0, /* U+00a4ad: YI RADICAL HMO*/ + 0, /* U+00a4ae: YI RADICAL YIT*/ + 0, /* U+00a4af: YI RADICAL VUR*/ + 0, /* U+00a4b0: YI RADICAL SHY*/ + 0, /* U+00a4b1: YI RADICAL VEP*/ + 0, /* U+00a4b2: YI RADICAL ZA*/ + 0, /* U+00a4b3: YI RADICAL JO*/ + 0, /* U+00a4b4: YI RADICAL NZUP*/ + 0, /* U+00a4b5: YI RADICAL JJY*/ + 0, /* U+00a4b6: YI RADICAL GOT*/ + 0, /* U+00a4b7: YI RADICAL JJIE*/ + 0, /* U+00a4b8: YI RADICAL WO*/ + 0, /* U+00a4b9: YI RADICAL DU*/ + 0, /* U+00a4ba: YI RADICAL SHUR*/ + 0, /* U+00a4bb: YI RADICAL LIE*/ + 0, /* U+00a4bc: YI RADICAL CY*/ + 0, /* U+00a4bd: YI RADICAL CUOP*/ + 0, /* U+00a4be: YI RADICAL CIP*/ + 0, /* U+00a4bf: YI RADICAL HXOP*/ + 0, /* U+00a4c0: YI RADICAL SHAT*/ + 0, /* U+00a4c1: YI RADICAL ZUR*/ + 0, /* U+00a4c2: YI RADICAL SHOP*/ + 0, /* U+00a4c3: YI RADICAL CHE*/ + 0, /* U+00a4c4: YI RADICAL ZZIET*/ + 0, /* U+00a4c5: YI RADICAL NBIE*/ + 0, /* U+00a4c6: YI RADICAL KE*/ + 0, /* U+00a4c7: */ + 0, /* U+00a4c8: */ + 0, /* U+00a4c9: */ + 0, /* U+00a4ca: */ + 0, /* U+00a4cb: */ + 0, /* U+00a4cc: */ + 0, /* U+00a4cd: */ + 0, /* U+00a4ce: */ + 0, /* U+00a4cf: */ + RTUNI_ALPHA, /* U+00a4d0: LISU LETTER BA*/ + RTUNI_ALPHA, /* U+00a4d1: LISU LETTER PA*/ + RTUNI_ALPHA, /* U+00a4d2: LISU LETTER PHA*/ + RTUNI_ALPHA, /* U+00a4d3: LISU LETTER DA*/ + RTUNI_ALPHA, /* U+00a4d4: LISU LETTER TA*/ + RTUNI_ALPHA, /* U+00a4d5: LISU LETTER THA*/ + RTUNI_ALPHA, /* U+00a4d6: LISU LETTER GA*/ + RTUNI_ALPHA, /* U+00a4d7: LISU LETTER KA*/ + RTUNI_ALPHA, /* U+00a4d8: LISU LETTER KHA*/ + RTUNI_ALPHA, /* U+00a4d9: LISU LETTER JA*/ + RTUNI_ALPHA, /* U+00a4da: LISU LETTER CA*/ + RTUNI_ALPHA, /* U+00a4db: LISU LETTER CHA*/ + RTUNI_ALPHA, /* U+00a4dc: LISU LETTER DZA*/ + RTUNI_ALPHA, /* U+00a4dd: LISU LETTER TSA*/ + RTUNI_ALPHA, /* U+00a4de: LISU LETTER TSHA*/ + RTUNI_ALPHA, /* U+00a4df: LISU LETTER MA*/ + RTUNI_ALPHA, /* U+00a4e0: LISU LETTER NA*/ + RTUNI_ALPHA, /* U+00a4e1: LISU LETTER LA*/ + RTUNI_ALPHA, /* U+00a4e2: LISU LETTER SA*/ + RTUNI_ALPHA, /* U+00a4e3: LISU LETTER ZHA*/ + RTUNI_ALPHA, /* U+00a4e4: LISU LETTER ZA*/ + RTUNI_ALPHA, /* U+00a4e5: LISU LETTER NGA*/ + RTUNI_ALPHA, /* U+00a4e6: LISU LETTER HA*/ + RTUNI_ALPHA, /* U+00a4e7: LISU LETTER XA*/ + RTUNI_ALPHA, /* U+00a4e8: LISU LETTER HHA*/ + RTUNI_ALPHA, /* U+00a4e9: LISU LETTER FA*/ + RTUNI_ALPHA, /* U+00a4ea: LISU LETTER WA*/ + RTUNI_ALPHA, /* U+00a4eb: LISU LETTER SHA*/ + RTUNI_ALPHA, /* U+00a4ec: LISU LETTER YA*/ + RTUNI_ALPHA, /* U+00a4ed: LISU LETTER GHA*/ + RTUNI_ALPHA, /* U+00a4ee: LISU LETTER A*/ + RTUNI_ALPHA, /* U+00a4ef: LISU LETTER AE*/ + RTUNI_ALPHA, /* U+00a4f0: LISU LETTER E*/ + RTUNI_ALPHA, /* U+00a4f1: LISU LETTER EU*/ + RTUNI_ALPHA, /* U+00a4f2: LISU LETTER I*/ + RTUNI_ALPHA, /* U+00a4f3: LISU LETTER O*/ + RTUNI_ALPHA, /* U+00a4f4: LISU LETTER U*/ + RTUNI_ALPHA, /* U+00a4f5: LISU LETTER UE*/ + RTUNI_ALPHA, /* U+00a4f6: LISU LETTER UH*/ + RTUNI_ALPHA, /* U+00a4f7: LISU LETTER OE*/ + RTUNI_ALPHA, /* U+00a4f8: LISU LETTER TONE MYA TI*/ + RTUNI_ALPHA, /* U+00a4f9: LISU LETTER TONE NA PO*/ + RTUNI_ALPHA, /* U+00a4fa: LISU LETTER TONE MYA CYA*/ + RTUNI_ALPHA, /* U+00a4fb: LISU LETTER TONE MYA BO*/ + RTUNI_ALPHA, /* U+00a4fc: LISU LETTER TONE MYA NA*/ + RTUNI_ALPHA, /* U+00a4fd: LISU LETTER TONE MYA JEU*/ + 0, /* U+00a4fe: LISU PUNCTUATION COMMA*/ + 0, /* U+00a4ff: LISU PUNCTUATION FULL STOP*/ + RTUNI_ALPHA, /* U+00a500: VAI SYLLABLE EE*/ + RTUNI_ALPHA, /* U+00a501: VAI SYLLABLE EEN*/ + RTUNI_ALPHA, /* U+00a502: VAI SYLLABLE HEE*/ + RTUNI_ALPHA, /* U+00a503: VAI SYLLABLE WEE*/ + RTUNI_ALPHA, /* U+00a504: VAI SYLLABLE WEEN*/ + RTUNI_ALPHA, /* U+00a505: VAI SYLLABLE PEE*/ + RTUNI_ALPHA, /* U+00a506: VAI SYLLABLE BHEE*/ + RTUNI_ALPHA, /* U+00a507: VAI SYLLABLE BEE*/ + RTUNI_ALPHA, /* U+00a508: VAI SYLLABLE MBEE*/ + RTUNI_ALPHA, /* U+00a509: VAI SYLLABLE KPEE*/ + RTUNI_ALPHA, /* U+00a50a: VAI SYLLABLE MGBEE*/ + RTUNI_ALPHA, /* U+00a50b: VAI SYLLABLE GBEE*/ + RTUNI_ALPHA, /* U+00a50c: VAI SYLLABLE FEE*/ + RTUNI_ALPHA, /* U+00a50d: VAI SYLLABLE VEE*/ + RTUNI_ALPHA, /* U+00a50e: VAI SYLLABLE TEE*/ + RTUNI_ALPHA, /* U+00a50f: VAI SYLLABLE THEE*/ + RTUNI_ALPHA, /* U+00a510: VAI SYLLABLE DHEE*/ + RTUNI_ALPHA, /* U+00a511: VAI SYLLABLE DHHEE*/ + RTUNI_ALPHA, /* U+00a512: VAI SYLLABLE LEE*/ + RTUNI_ALPHA, /* U+00a513: VAI SYLLABLE REE*/ + RTUNI_ALPHA, /* U+00a514: VAI SYLLABLE DEE*/ + RTUNI_ALPHA, /* U+00a515: VAI SYLLABLE NDEE*/ + RTUNI_ALPHA, /* U+00a516: VAI SYLLABLE SEE*/ + RTUNI_ALPHA, /* U+00a517: VAI SYLLABLE SHEE*/ + RTUNI_ALPHA, /* U+00a518: VAI SYLLABLE ZEE*/ + RTUNI_ALPHA, /* U+00a519: VAI SYLLABLE ZHEE*/ + RTUNI_ALPHA, /* U+00a51a: VAI SYLLABLE CEE*/ + RTUNI_ALPHA, /* U+00a51b: VAI SYLLABLE JEE*/ + RTUNI_ALPHA, /* U+00a51c: VAI SYLLABLE NJEE*/ + RTUNI_ALPHA, /* U+00a51d: VAI SYLLABLE YEE*/ + RTUNI_ALPHA, /* U+00a51e: VAI SYLLABLE KEE*/ + RTUNI_ALPHA, /* U+00a51f: VAI SYLLABLE NGGEE*/ + RTUNI_ALPHA, /* U+00a520: VAI SYLLABLE GEE*/ + RTUNI_ALPHA, /* U+00a521: VAI SYLLABLE MEE*/ + RTUNI_ALPHA, /* U+00a522: VAI SYLLABLE NEE*/ + RTUNI_ALPHA, /* U+00a523: VAI SYLLABLE NYEE*/ + RTUNI_ALPHA, /* U+00a524: VAI SYLLABLE I*/ + RTUNI_ALPHA, /* U+00a525: VAI SYLLABLE IN*/ + RTUNI_ALPHA, /* U+00a526: VAI SYLLABLE HI*/ + RTUNI_ALPHA, /* U+00a527: VAI SYLLABLE HIN*/ + RTUNI_ALPHA, /* U+00a528: VAI SYLLABLE WI*/ + RTUNI_ALPHA, /* U+00a529: VAI SYLLABLE WIN*/ + RTUNI_ALPHA, /* U+00a52a: VAI SYLLABLE PI*/ + RTUNI_ALPHA, /* U+00a52b: VAI SYLLABLE BHI*/ + RTUNI_ALPHA, /* U+00a52c: VAI SYLLABLE BI*/ + RTUNI_ALPHA, /* U+00a52d: VAI SYLLABLE MBI*/ + RTUNI_ALPHA, /* U+00a52e: VAI SYLLABLE KPI*/ + RTUNI_ALPHA, /* U+00a52f: VAI SYLLABLE MGBI*/ + RTUNI_ALPHA, /* U+00a530: VAI SYLLABLE GBI*/ + RTUNI_ALPHA, /* U+00a531: VAI SYLLABLE FI*/ + RTUNI_ALPHA, /* U+00a532: VAI SYLLABLE VI*/ + RTUNI_ALPHA, /* U+00a533: VAI SYLLABLE TI*/ + RTUNI_ALPHA, /* U+00a534: VAI SYLLABLE THI*/ + RTUNI_ALPHA, /* U+00a535: VAI SYLLABLE DHI*/ + RTUNI_ALPHA, /* U+00a536: VAI SYLLABLE DHHI*/ + RTUNI_ALPHA, /* U+00a537: VAI SYLLABLE LI*/ + RTUNI_ALPHA, /* U+00a538: VAI SYLLABLE RI*/ + RTUNI_ALPHA, /* U+00a539: VAI SYLLABLE DI*/ + RTUNI_ALPHA, /* U+00a53a: VAI SYLLABLE NDI*/ + RTUNI_ALPHA, /* U+00a53b: VAI SYLLABLE SI*/ + RTUNI_ALPHA, /* U+00a53c: VAI SYLLABLE SHI*/ + RTUNI_ALPHA, /* U+00a53d: VAI SYLLABLE ZI*/ + RTUNI_ALPHA, /* U+00a53e: VAI SYLLABLE ZHI*/ + RTUNI_ALPHA, /* U+00a53f: VAI SYLLABLE CI*/ + RTUNI_ALPHA, /* U+00a540: VAI SYLLABLE JI*/ + RTUNI_ALPHA, /* U+00a541: VAI SYLLABLE NJI*/ + RTUNI_ALPHA, /* U+00a542: VAI SYLLABLE YI*/ + RTUNI_ALPHA, /* U+00a543: VAI SYLLABLE KI*/ + RTUNI_ALPHA, /* U+00a544: VAI SYLLABLE NGGI*/ + RTUNI_ALPHA, /* U+00a545: VAI SYLLABLE GI*/ + RTUNI_ALPHA, /* U+00a546: VAI SYLLABLE MI*/ + RTUNI_ALPHA, /* U+00a547: VAI SYLLABLE NI*/ + RTUNI_ALPHA, /* U+00a548: VAI SYLLABLE NYI*/ + RTUNI_ALPHA, /* U+00a549: VAI SYLLABLE A*/ + RTUNI_ALPHA, /* U+00a54a: VAI SYLLABLE AN*/ + RTUNI_ALPHA, /* U+00a54b: VAI SYLLABLE NGAN*/ + RTUNI_ALPHA, /* U+00a54c: VAI SYLLABLE HA*/ + RTUNI_ALPHA, /* U+00a54d: VAI SYLLABLE HAN*/ + RTUNI_ALPHA, /* U+00a54e: VAI SYLLABLE WA*/ + RTUNI_ALPHA, /* U+00a54f: VAI SYLLABLE WAN*/ + RTUNI_ALPHA, /* U+00a550: VAI SYLLABLE PA*/ + RTUNI_ALPHA, /* U+00a551: VAI SYLLABLE BHA*/ + RTUNI_ALPHA, /* U+00a552: VAI SYLLABLE BA*/ + RTUNI_ALPHA, /* U+00a553: VAI SYLLABLE MBA*/ + RTUNI_ALPHA, /* U+00a554: VAI SYLLABLE KPA*/ + RTUNI_ALPHA, /* U+00a555: VAI SYLLABLE KPAN*/ + RTUNI_ALPHA, /* U+00a556: VAI SYLLABLE MGBA*/ + RTUNI_ALPHA, /* U+00a557: VAI SYLLABLE GBA*/ + RTUNI_ALPHA, /* U+00a558: VAI SYLLABLE FA*/ + RTUNI_ALPHA, /* U+00a559: VAI SYLLABLE VA*/ + RTUNI_ALPHA, /* U+00a55a: VAI SYLLABLE TA*/ + RTUNI_ALPHA, /* U+00a55b: VAI SYLLABLE THA*/ + RTUNI_ALPHA, /* U+00a55c: VAI SYLLABLE DHA*/ + RTUNI_ALPHA, /* U+00a55d: VAI SYLLABLE DHHA*/ + RTUNI_ALPHA, /* U+00a55e: VAI SYLLABLE LA*/ + RTUNI_ALPHA, /* U+00a55f: VAI SYLLABLE RA*/ + RTUNI_ALPHA, /* U+00a560: VAI SYLLABLE DA*/ + RTUNI_ALPHA, /* U+00a561: VAI SYLLABLE NDA*/ + RTUNI_ALPHA, /* U+00a562: VAI SYLLABLE SA*/ + RTUNI_ALPHA, /* U+00a563: VAI SYLLABLE SHA*/ + RTUNI_ALPHA, /* U+00a564: VAI SYLLABLE ZA*/ + RTUNI_ALPHA, /* U+00a565: VAI SYLLABLE ZHA*/ + RTUNI_ALPHA, /* U+00a566: VAI SYLLABLE CA*/ + RTUNI_ALPHA, /* U+00a567: VAI SYLLABLE JA*/ + RTUNI_ALPHA, /* U+00a568: VAI SYLLABLE NJA*/ + RTUNI_ALPHA, /* U+00a569: VAI SYLLABLE YA*/ + RTUNI_ALPHA, /* U+00a56a: VAI SYLLABLE KA*/ + RTUNI_ALPHA, /* U+00a56b: VAI SYLLABLE KAN*/ + RTUNI_ALPHA, /* U+00a56c: VAI SYLLABLE NGGA*/ + RTUNI_ALPHA, /* U+00a56d: VAI SYLLABLE GA*/ + RTUNI_ALPHA, /* U+00a56e: VAI SYLLABLE MA*/ + RTUNI_ALPHA, /* U+00a56f: VAI SYLLABLE NA*/ + RTUNI_ALPHA, /* U+00a570: VAI SYLLABLE NYA*/ + RTUNI_ALPHA, /* U+00a571: VAI SYLLABLE OO*/ + RTUNI_ALPHA, /* U+00a572: VAI SYLLABLE OON*/ + RTUNI_ALPHA, /* U+00a573: VAI SYLLABLE HOO*/ + RTUNI_ALPHA, /* U+00a574: VAI SYLLABLE WOO*/ + RTUNI_ALPHA, /* U+00a575: VAI SYLLABLE WOON*/ + RTUNI_ALPHA, /* U+00a576: VAI SYLLABLE POO*/ + RTUNI_ALPHA, /* U+00a577: VAI SYLLABLE BHOO*/ + RTUNI_ALPHA, /* U+00a578: VAI SYLLABLE BOO*/ + RTUNI_ALPHA, /* U+00a579: VAI SYLLABLE MBOO*/ + RTUNI_ALPHA, /* U+00a57a: VAI SYLLABLE KPOO*/ + RTUNI_ALPHA, /* U+00a57b: VAI SYLLABLE MGBOO*/ + RTUNI_ALPHA, /* U+00a57c: VAI SYLLABLE GBOO*/ + RTUNI_ALPHA, /* U+00a57d: VAI SYLLABLE FOO*/ + RTUNI_ALPHA, /* U+00a57e: VAI SYLLABLE VOO*/ + RTUNI_ALPHA, /* U+00a57f: VAI SYLLABLE TOO*/ + RTUNI_ALPHA, /* U+00a580: VAI SYLLABLE THOO*/ + RTUNI_ALPHA, /* U+00a581: VAI SYLLABLE DHOO*/ + RTUNI_ALPHA, /* U+00a582: VAI SYLLABLE DHHOO*/ + RTUNI_ALPHA, /* U+00a583: VAI SYLLABLE LOO*/ + RTUNI_ALPHA, /* U+00a584: VAI SYLLABLE ROO*/ + RTUNI_ALPHA, /* U+00a585: VAI SYLLABLE DOO*/ + RTUNI_ALPHA, /* U+00a586: VAI SYLLABLE NDOO*/ + RTUNI_ALPHA, /* U+00a587: VAI SYLLABLE SOO*/ + RTUNI_ALPHA, /* U+00a588: VAI SYLLABLE SHOO*/ + RTUNI_ALPHA, /* U+00a589: VAI SYLLABLE ZOO*/ + RTUNI_ALPHA, /* U+00a58a: VAI SYLLABLE ZHOO*/ + RTUNI_ALPHA, /* U+00a58b: VAI SYLLABLE COO*/ + RTUNI_ALPHA, /* U+00a58c: VAI SYLLABLE JOO*/ + RTUNI_ALPHA, /* U+00a58d: VAI SYLLABLE NJOO*/ + RTUNI_ALPHA, /* U+00a58e: VAI SYLLABLE YOO*/ + RTUNI_ALPHA, /* U+00a58f: VAI SYLLABLE KOO*/ + RTUNI_ALPHA, /* U+00a590: VAI SYLLABLE NGGOO*/ + RTUNI_ALPHA, /* U+00a591: VAI SYLLABLE GOO*/ + RTUNI_ALPHA, /* U+00a592: VAI SYLLABLE MOO*/ + RTUNI_ALPHA, /* U+00a593: VAI SYLLABLE NOO*/ + RTUNI_ALPHA, /* U+00a594: VAI SYLLABLE NYOO*/ + RTUNI_ALPHA, /* U+00a595: VAI SYLLABLE U*/ + RTUNI_ALPHA, /* U+00a596: VAI SYLLABLE UN*/ + RTUNI_ALPHA, /* U+00a597: VAI SYLLABLE HU*/ + RTUNI_ALPHA, /* U+00a598: VAI SYLLABLE HUN*/ + RTUNI_ALPHA, /* U+00a599: VAI SYLLABLE WU*/ + RTUNI_ALPHA, /* U+00a59a: VAI SYLLABLE WUN*/ + RTUNI_ALPHA, /* U+00a59b: VAI SYLLABLE PU*/ + RTUNI_ALPHA, /* U+00a59c: VAI SYLLABLE BHU*/ + RTUNI_ALPHA, /* U+00a59d: VAI SYLLABLE BU*/ + RTUNI_ALPHA, /* U+00a59e: VAI SYLLABLE MBU*/ + RTUNI_ALPHA, /* U+00a59f: VAI SYLLABLE KPU*/ + RTUNI_ALPHA, /* U+00a5a0: VAI SYLLABLE MGBU*/ + RTUNI_ALPHA, /* U+00a5a1: VAI SYLLABLE GBU*/ + RTUNI_ALPHA, /* U+00a5a2: VAI SYLLABLE FU*/ + RTUNI_ALPHA, /* U+00a5a3: VAI SYLLABLE VU*/ + RTUNI_ALPHA, /* U+00a5a4: VAI SYLLABLE TU*/ + RTUNI_ALPHA, /* U+00a5a5: VAI SYLLABLE THU*/ + RTUNI_ALPHA, /* U+00a5a6: VAI SYLLABLE DHU*/ + RTUNI_ALPHA, /* U+00a5a7: VAI SYLLABLE DHHU*/ + RTUNI_ALPHA, /* U+00a5a8: VAI SYLLABLE LU*/ + RTUNI_ALPHA, /* U+00a5a9: VAI SYLLABLE RU*/ + RTUNI_ALPHA, /* U+00a5aa: VAI SYLLABLE DU*/ + RTUNI_ALPHA, /* U+00a5ab: VAI SYLLABLE NDU*/ + RTUNI_ALPHA, /* U+00a5ac: VAI SYLLABLE SU*/ + RTUNI_ALPHA, /* U+00a5ad: VAI SYLLABLE SHU*/ + RTUNI_ALPHA, /* U+00a5ae: VAI SYLLABLE ZU*/ + RTUNI_ALPHA, /* U+00a5af: VAI SYLLABLE ZHU*/ + RTUNI_ALPHA, /* U+00a5b0: VAI SYLLABLE CU*/ + RTUNI_ALPHA, /* U+00a5b1: VAI SYLLABLE JU*/ + RTUNI_ALPHA, /* U+00a5b2: VAI SYLLABLE NJU*/ + RTUNI_ALPHA, /* U+00a5b3: VAI SYLLABLE YU*/ + RTUNI_ALPHA, /* U+00a5b4: VAI SYLLABLE KU*/ + RTUNI_ALPHA, /* U+00a5b5: VAI SYLLABLE NGGU*/ + RTUNI_ALPHA, /* U+00a5b6: VAI SYLLABLE GU*/ + RTUNI_ALPHA, /* U+00a5b7: VAI SYLLABLE MU*/ + RTUNI_ALPHA, /* U+00a5b8: VAI SYLLABLE NU*/ + RTUNI_ALPHA, /* U+00a5b9: VAI SYLLABLE NYU*/ + RTUNI_ALPHA, /* U+00a5ba: VAI SYLLABLE O*/ + RTUNI_ALPHA, /* U+00a5bb: VAI SYLLABLE ON*/ + RTUNI_ALPHA, /* U+00a5bc: VAI SYLLABLE NGON*/ + RTUNI_ALPHA, /* U+00a5bd: VAI SYLLABLE HO*/ + RTUNI_ALPHA, /* U+00a5be: VAI SYLLABLE HON*/ + RTUNI_ALPHA, /* U+00a5bf: VAI SYLLABLE WO*/ + RTUNI_ALPHA, /* U+00a5c0: VAI SYLLABLE WON*/ + RTUNI_ALPHA, /* U+00a5c1: VAI SYLLABLE PO*/ + RTUNI_ALPHA, /* U+00a5c2: VAI SYLLABLE BHO*/ + RTUNI_ALPHA, /* U+00a5c3: VAI SYLLABLE BO*/ + RTUNI_ALPHA, /* U+00a5c4: VAI SYLLABLE MBO*/ + RTUNI_ALPHA, /* U+00a5c5: VAI SYLLABLE KPO*/ + RTUNI_ALPHA, /* U+00a5c6: VAI SYLLABLE MGBO*/ + RTUNI_ALPHA, /* U+00a5c7: VAI SYLLABLE GBO*/ + RTUNI_ALPHA, /* U+00a5c8: VAI SYLLABLE GBON*/ + RTUNI_ALPHA, /* U+00a5c9: VAI SYLLABLE FO*/ + RTUNI_ALPHA, /* U+00a5ca: VAI SYLLABLE VO*/ + RTUNI_ALPHA, /* U+00a5cb: VAI SYLLABLE TO*/ + RTUNI_ALPHA, /* U+00a5cc: VAI SYLLABLE THO*/ + RTUNI_ALPHA, /* U+00a5cd: VAI SYLLABLE DHO*/ + RTUNI_ALPHA, /* U+00a5ce: VAI SYLLABLE DHHO*/ + RTUNI_ALPHA, /* U+00a5cf: VAI SYLLABLE LO*/ + RTUNI_ALPHA, /* U+00a5d0: VAI SYLLABLE RO*/ + RTUNI_ALPHA, /* U+00a5d1: VAI SYLLABLE DO*/ + RTUNI_ALPHA, /* U+00a5d2: VAI SYLLABLE NDO*/ + RTUNI_ALPHA, /* U+00a5d3: VAI SYLLABLE SO*/ + RTUNI_ALPHA, /* U+00a5d4: VAI SYLLABLE SHO*/ + RTUNI_ALPHA, /* U+00a5d5: VAI SYLLABLE ZO*/ + RTUNI_ALPHA, /* U+00a5d6: VAI SYLLABLE ZHO*/ + RTUNI_ALPHA, /* U+00a5d7: VAI SYLLABLE CO*/ + RTUNI_ALPHA, /* U+00a5d8: VAI SYLLABLE JO*/ + RTUNI_ALPHA, /* U+00a5d9: VAI SYLLABLE NJO*/ + RTUNI_ALPHA, /* U+00a5da: VAI SYLLABLE YO*/ + RTUNI_ALPHA, /* U+00a5db: VAI SYLLABLE KO*/ + RTUNI_ALPHA, /* U+00a5dc: VAI SYLLABLE NGGO*/ + RTUNI_ALPHA, /* U+00a5dd: VAI SYLLABLE GO*/ + RTUNI_ALPHA, /* U+00a5de: VAI SYLLABLE MO*/ + RTUNI_ALPHA, /* U+00a5df: VAI SYLLABLE NO*/ + RTUNI_ALPHA, /* U+00a5e0: VAI SYLLABLE NYO*/ + RTUNI_ALPHA, /* U+00a5e1: VAI SYLLABLE E*/ + RTUNI_ALPHA, /* U+00a5e2: VAI SYLLABLE EN*/ + RTUNI_ALPHA, /* U+00a5e3: VAI SYLLABLE NGEN*/ + RTUNI_ALPHA, /* U+00a5e4: VAI SYLLABLE HE*/ + RTUNI_ALPHA, /* U+00a5e5: VAI SYLLABLE HEN*/ + RTUNI_ALPHA, /* U+00a5e6: VAI SYLLABLE WE*/ + RTUNI_ALPHA, /* U+00a5e7: VAI SYLLABLE WEN*/ + RTUNI_ALPHA, /* U+00a5e8: VAI SYLLABLE PE*/ + RTUNI_ALPHA, /* U+00a5e9: VAI SYLLABLE BHE*/ + RTUNI_ALPHA, /* U+00a5ea: VAI SYLLABLE BE*/ + RTUNI_ALPHA, /* U+00a5eb: VAI SYLLABLE MBE*/ + RTUNI_ALPHA, /* U+00a5ec: VAI SYLLABLE KPE*/ + RTUNI_ALPHA, /* U+00a5ed: VAI SYLLABLE KPEN*/ + RTUNI_ALPHA, /* U+00a5ee: VAI SYLLABLE MGBE*/ + RTUNI_ALPHA, /* U+00a5ef: VAI SYLLABLE GBE*/ + RTUNI_ALPHA, /* U+00a5f0: VAI SYLLABLE GBEN*/ + RTUNI_ALPHA, /* U+00a5f1: VAI SYLLABLE FE*/ + RTUNI_ALPHA, /* U+00a5f2: VAI SYLLABLE VE*/ + RTUNI_ALPHA, /* U+00a5f3: VAI SYLLABLE TE*/ + RTUNI_ALPHA, /* U+00a5f4: VAI SYLLABLE THE*/ + RTUNI_ALPHA, /* U+00a5f5: VAI SYLLABLE DHE*/ + RTUNI_ALPHA, /* U+00a5f6: VAI SYLLABLE DHHE*/ + RTUNI_ALPHA, /* U+00a5f7: VAI SYLLABLE LE*/ + RTUNI_ALPHA, /* U+00a5f8: VAI SYLLABLE RE*/ + RTUNI_ALPHA, /* U+00a5f9: VAI SYLLABLE DE*/ + RTUNI_ALPHA, /* U+00a5fa: VAI SYLLABLE NDE*/ + RTUNI_ALPHA, /* U+00a5fb: VAI SYLLABLE SE*/ + RTUNI_ALPHA, /* U+00a5fc: VAI SYLLABLE SHE*/ + RTUNI_ALPHA, /* U+00a5fd: VAI SYLLABLE ZE*/ + RTUNI_ALPHA, /* U+00a5fe: VAI SYLLABLE ZHE*/ + RTUNI_ALPHA, /* U+00a5ff: VAI SYLLABLE CE*/ + RTUNI_ALPHA, /* U+00a600: VAI SYLLABLE JE*/ + RTUNI_ALPHA, /* U+00a601: VAI SYLLABLE NJE*/ + RTUNI_ALPHA, /* U+00a602: VAI SYLLABLE YE*/ + RTUNI_ALPHA, /* U+00a603: VAI SYLLABLE KE*/ + RTUNI_ALPHA, /* U+00a604: VAI SYLLABLE NGGE*/ + RTUNI_ALPHA, /* U+00a605: VAI SYLLABLE NGGEN*/ + RTUNI_ALPHA, /* U+00a606: VAI SYLLABLE GE*/ + RTUNI_ALPHA, /* U+00a607: VAI SYLLABLE GEN*/ + RTUNI_ALPHA, /* U+00a608: VAI SYLLABLE ME*/ + RTUNI_ALPHA, /* U+00a609: VAI SYLLABLE NE*/ + RTUNI_ALPHA, /* U+00a60a: VAI SYLLABLE NYE*/ + RTUNI_ALPHA, /* U+00a60b: VAI SYLLABLE NG*/ + RTUNI_ALPHA, /* U+00a60c: VAI SYLLABLE LENGTHENER*/ + 0, /* U+00a60d: VAI COMMA*/ + 0, /* U+00a60e: VAI FULL STOP*/ + 0, /* U+00a60f: VAI QUESTION MARK*/ + RTUNI_ALPHA, /* U+00a610: VAI SYLLABLE NDOLE FA*/ + RTUNI_ALPHA, /* U+00a611: VAI SYLLABLE NDOLE KA*/ + RTUNI_ALPHA, /* U+00a612: VAI SYLLABLE NDOLE SOO*/ + RTUNI_ALPHA, /* U+00a613: VAI SYMBOL FEENG*/ + RTUNI_ALPHA, /* U+00a614: VAI SYMBOL KEENG*/ + RTUNI_ALPHA, /* U+00a615: VAI SYMBOL TING*/ + RTUNI_ALPHA, /* U+00a616: VAI SYMBOL NII*/ + RTUNI_ALPHA, /* U+00a617: VAI SYMBOL BANG*/ + RTUNI_ALPHA, /* U+00a618: VAI SYMBOL FAA*/ + RTUNI_ALPHA, /* U+00a619: VAI SYMBOL TAA*/ + RTUNI_ALPHA, /* U+00a61a: VAI SYMBOL DANG*/ + RTUNI_ALPHA, /* U+00a61b: VAI SYMBOL DOONG*/ + RTUNI_ALPHA, /* U+00a61c: VAI SYMBOL KUNG*/ + RTUNI_ALPHA, /* U+00a61d: VAI SYMBOL TONG*/ + RTUNI_ALPHA, /* U+00a61e: VAI SYMBOL DO-O*/ + RTUNI_ALPHA, /* U+00a61f: VAI SYMBOL JONG*/ + RTUNI_DDIGIT, /* U+00a620: VAI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+00a621: VAI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+00a622: VAI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+00a623: VAI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+00a624: VAI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+00a625: VAI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+00a626: VAI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+00a627: VAI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+00a628: VAI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+00a629: VAI DIGIT NINE*/ + RTUNI_ALPHA, /* U+00a62a: VAI SYLLABLE NDOLE MA*/ + RTUNI_ALPHA, /* U+00a62b: VAI SYLLABLE NDOLE DO*/ + 0, /* U+00a62c: */ + 0, /* U+00a62d: */ + 0, /* U+00a62e: */ + 0, /* U+00a62f: */ + 0, /* U+00a630: */ + 0, /* U+00a631: */ + 0, /* U+00a632: */ + 0, /* U+00a633: */ + 0, /* U+00a634: */ + 0, /* U+00a635: */ + 0, /* U+00a636: */ + 0, /* U+00a637: */ + 0, /* U+00a638: */ + 0, /* U+00a639: */ + 0, /* U+00a63a: */ + 0, /* U+00a63b: */ + 0, /* U+00a63c: */ + 0, /* U+00a63d: */ + 0, /* U+00a63e: */ + 0, /* U+00a63f: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a640: CYRILLIC CAPITAL LETTER ZEMLYA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a641: CYRILLIC SMALL LETTER ZEMLYA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a642: CYRILLIC CAPITAL LETTER DZELO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a643: CYRILLIC SMALL LETTER DZELO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a644: CYRILLIC CAPITAL LETTER REVERSED DZE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a645: CYRILLIC SMALL LETTER REVERSED DZE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a646: CYRILLIC CAPITAL LETTER IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a647: CYRILLIC SMALL LETTER IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a648: CYRILLIC CAPITAL LETTER DJERV*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a649: CYRILLIC SMALL LETTER DJERV*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a64a: CYRILLIC CAPITAL LETTER MONOGRAPH UK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a64b: CYRILLIC SMALL LETTER MONOGRAPH UK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a64c: CYRILLIC CAPITAL LETTER BROAD OMEGA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a64d: CYRILLIC SMALL LETTER BROAD OMEGA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a64e: CYRILLIC CAPITAL LETTER NEUTRAL YER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a64f: CYRILLIC SMALL LETTER NEUTRAL YER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a650: CYRILLIC CAPITAL LETTER YERU WITH BACK YER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a651: CYRILLIC SMALL LETTER YERU WITH BACK YER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a652: CYRILLIC CAPITAL LETTER IOTIFIED YAT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a653: CYRILLIC SMALL LETTER IOTIFIED YAT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a654: CYRILLIC CAPITAL LETTER REVERSED YU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a655: CYRILLIC SMALL LETTER REVERSED YU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a656: CYRILLIC CAPITAL LETTER IOTIFIED A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a657: CYRILLIC SMALL LETTER IOTIFIED A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a658: CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a659: CYRILLIC SMALL LETTER CLOSED LITTLE YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a65a: CYRILLIC CAPITAL LETTER BLENDED YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a65b: CYRILLIC SMALL LETTER BLENDED YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a65c: CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a65d: CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a65e: CYRILLIC CAPITAL LETTER YN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a65f: CYRILLIC SMALL LETTER YN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a660: CYRILLIC CAPITAL LETTER REVERSED TSE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a661: CYRILLIC SMALL LETTER REVERSED TSE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a662: CYRILLIC CAPITAL LETTER SOFT DE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a663: CYRILLIC SMALL LETTER SOFT DE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a664: CYRILLIC CAPITAL LETTER SOFT EL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a665: CYRILLIC SMALL LETTER SOFT EL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a666: CYRILLIC CAPITAL LETTER SOFT EM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a667: CYRILLIC SMALL LETTER SOFT EM*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a668: CYRILLIC CAPITAL LETTER MONOCULAR O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a669: CYRILLIC SMALL LETTER MONOCULAR O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a66a: CYRILLIC CAPITAL LETTER BINOCULAR O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a66b: CYRILLIC SMALL LETTER BINOCULAR O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a66c: CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a66d: CYRILLIC SMALL LETTER DOUBLE MONOCULAR O*/ + RTUNI_ALPHA, /* U+00a66e: CYRILLIC LETTER MULTIOCULAR O*/ + 0, /* U+00a66f: COMBINING CYRILLIC VZMET*/ + 0, /* U+00a670: COMBINING CYRILLIC TEN MILLIONS SIGN*/ + 0, /* U+00a671: COMBINING CYRILLIC HUNDRED MILLIONS SIGN*/ + 0, /* U+00a672: COMBINING CYRILLIC THOUSAND MILLIONS SIGN*/ + 0, /* U+00a673: SLAVONIC ASTERISK*/ + RTUNI_ALPHA, /* U+00a674: COMBINING CYRILLIC LETTER UKRAINIAN IE*/ + RTUNI_ALPHA, /* U+00a675: COMBINING CYRILLIC LETTER I*/ + RTUNI_ALPHA, /* U+00a676: COMBINING CYRILLIC LETTER YI*/ + RTUNI_ALPHA, /* U+00a677: COMBINING CYRILLIC LETTER U*/ + RTUNI_ALPHA, /* U+00a678: COMBINING CYRILLIC LETTER HARD SIGN*/ + RTUNI_ALPHA, /* U+00a679: COMBINING CYRILLIC LETTER YERU*/ + RTUNI_ALPHA, /* U+00a67a: COMBINING CYRILLIC LETTER SOFT SIGN*/ + RTUNI_ALPHA, /* U+00a67b: COMBINING CYRILLIC LETTER OMEGA*/ + 0, /* U+00a67c: COMBINING CYRILLIC KAVYKA*/ + 0, /* U+00a67d: COMBINING CYRILLIC PAYEROK*/ + 0, /* U+00a67e: CYRILLIC KAVYKA*/ + RTUNI_ALPHA, /* U+00a67f: CYRILLIC PAYEROK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a680: CYRILLIC CAPITAL LETTER DWE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a681: CYRILLIC SMALL LETTER DWE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a682: CYRILLIC CAPITAL LETTER DZWE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a683: CYRILLIC SMALL LETTER DZWE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a684: CYRILLIC CAPITAL LETTER ZHWE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a685: CYRILLIC SMALL LETTER ZHWE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a686: CYRILLIC CAPITAL LETTER CCHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a687: CYRILLIC SMALL LETTER CCHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a688: CYRILLIC CAPITAL LETTER DZZE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a689: CYRILLIC SMALL LETTER DZZE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a68a: CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a68b: CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a68c: CYRILLIC CAPITAL LETTER TWE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a68d: CYRILLIC SMALL LETTER TWE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a68e: CYRILLIC CAPITAL LETTER TSWE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a68f: CYRILLIC SMALL LETTER TSWE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a690: CYRILLIC CAPITAL LETTER TSSE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a691: CYRILLIC SMALL LETTER TSSE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a692: CYRILLIC CAPITAL LETTER TCHE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a693: CYRILLIC SMALL LETTER TCHE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a694: CYRILLIC CAPITAL LETTER HWE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a695: CYRILLIC SMALL LETTER HWE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a696: CYRILLIC CAPITAL LETTER SHWE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a697: CYRILLIC SMALL LETTER SHWE*/ + 0, /* U+00a698: */ + 0, /* U+00a699: */ + 0, /* U+00a69a: */ + 0, /* U+00a69b: */ + 0, /* U+00a69c: */ + 0, /* U+00a69d: */ + 0, /* U+00a69e: */ + RTUNI_ALPHA, /* U+00a69f: COMBINING CYRILLIC LETTER IOTIFIED E*/ + RTUNI_ALPHA, /* U+00a6a0: BAMUM LETTER A*/ + RTUNI_ALPHA, /* U+00a6a1: BAMUM LETTER KA*/ + RTUNI_ALPHA, /* U+00a6a2: BAMUM LETTER U*/ + RTUNI_ALPHA, /* U+00a6a3: BAMUM LETTER KU*/ + RTUNI_ALPHA, /* U+00a6a4: BAMUM LETTER EE*/ + RTUNI_ALPHA, /* U+00a6a5: BAMUM LETTER REE*/ + RTUNI_ALPHA, /* U+00a6a6: BAMUM LETTER TAE*/ + RTUNI_ALPHA, /* U+00a6a7: BAMUM LETTER O*/ + RTUNI_ALPHA, /* U+00a6a8: BAMUM LETTER NYI*/ + RTUNI_ALPHA, /* U+00a6a9: BAMUM LETTER I*/ + RTUNI_ALPHA, /* U+00a6aa: BAMUM LETTER LA*/ + RTUNI_ALPHA, /* U+00a6ab: BAMUM LETTER PA*/ + RTUNI_ALPHA, /* U+00a6ac: BAMUM LETTER RII*/ + RTUNI_ALPHA, /* U+00a6ad: BAMUM LETTER RIEE*/ + RTUNI_ALPHA, /* U+00a6ae: BAMUM LETTER LEEEE*/ + RTUNI_ALPHA, /* U+00a6af: BAMUM LETTER MEEEE*/ + RTUNI_ALPHA, /* U+00a6b0: BAMUM LETTER TAA*/ + RTUNI_ALPHA, /* U+00a6b1: BAMUM LETTER NDAA*/ + RTUNI_ALPHA, /* U+00a6b2: BAMUM LETTER NJAEM*/ + RTUNI_ALPHA, /* U+00a6b3: BAMUM LETTER M*/ + RTUNI_ALPHA, /* U+00a6b4: BAMUM LETTER SUU*/ + RTUNI_ALPHA, /* U+00a6b5: BAMUM LETTER MU*/ + RTUNI_ALPHA, /* U+00a6b6: BAMUM LETTER SHII*/ + RTUNI_ALPHA, /* U+00a6b7: BAMUM LETTER SI*/ + RTUNI_ALPHA, /* U+00a6b8: BAMUM LETTER SHEUX*/ + RTUNI_ALPHA, /* U+00a6b9: BAMUM LETTER SEUX*/ + RTUNI_ALPHA, /* U+00a6ba: BAMUM LETTER KYEE*/ + RTUNI_ALPHA, /* U+00a6bb: BAMUM LETTER KET*/ + RTUNI_ALPHA, /* U+00a6bc: BAMUM LETTER NUAE*/ + RTUNI_ALPHA, /* U+00a6bd: BAMUM LETTER NU*/ + RTUNI_ALPHA, /* U+00a6be: BAMUM LETTER NJUAE*/ + RTUNI_ALPHA, /* U+00a6bf: BAMUM LETTER YOQ*/ + RTUNI_ALPHA, /* U+00a6c0: BAMUM LETTER SHU*/ + RTUNI_ALPHA, /* U+00a6c1: BAMUM LETTER YUQ*/ + RTUNI_ALPHA, /* U+00a6c2: BAMUM LETTER YA*/ + RTUNI_ALPHA, /* U+00a6c3: BAMUM LETTER NSHA*/ + RTUNI_ALPHA, /* U+00a6c4: BAMUM LETTER KEUX*/ + RTUNI_ALPHA, /* U+00a6c5: BAMUM LETTER PEUX*/ + RTUNI_ALPHA, /* U+00a6c6: BAMUM LETTER NJEE*/ + RTUNI_ALPHA, /* U+00a6c7: BAMUM LETTER NTEE*/ + RTUNI_ALPHA, /* U+00a6c8: BAMUM LETTER PUE*/ + RTUNI_ALPHA, /* U+00a6c9: BAMUM LETTER WUE*/ + RTUNI_ALPHA, /* U+00a6ca: BAMUM LETTER PEE*/ + RTUNI_ALPHA, /* U+00a6cb: BAMUM LETTER FEE*/ + RTUNI_ALPHA, /* U+00a6cc: BAMUM LETTER RU*/ + RTUNI_ALPHA, /* U+00a6cd: BAMUM LETTER LU*/ + RTUNI_ALPHA, /* U+00a6ce: BAMUM LETTER MI*/ + RTUNI_ALPHA, /* U+00a6cf: BAMUM LETTER NI*/ + RTUNI_ALPHA, /* U+00a6d0: BAMUM LETTER REUX*/ + RTUNI_ALPHA, /* U+00a6d1: BAMUM LETTER RAE*/ + RTUNI_ALPHA, /* U+00a6d2: BAMUM LETTER KEN*/ + RTUNI_ALPHA, /* U+00a6d3: BAMUM LETTER NGKWAEN*/ + RTUNI_ALPHA, /* U+00a6d4: BAMUM LETTER NGGA*/ + RTUNI_ALPHA, /* U+00a6d5: BAMUM LETTER NGA*/ + RTUNI_ALPHA, /* U+00a6d6: BAMUM LETTER SHO*/ + RTUNI_ALPHA, /* U+00a6d7: BAMUM LETTER PUAE*/ + RTUNI_ALPHA, /* U+00a6d8: BAMUM LETTER FU*/ + RTUNI_ALPHA, /* U+00a6d9: BAMUM LETTER FOM*/ + RTUNI_ALPHA, /* U+00a6da: BAMUM LETTER WA*/ + RTUNI_ALPHA, /* U+00a6db: BAMUM LETTER NA*/ + RTUNI_ALPHA, /* U+00a6dc: BAMUM LETTER LI*/ + RTUNI_ALPHA, /* U+00a6dd: BAMUM LETTER PI*/ + RTUNI_ALPHA, /* U+00a6de: BAMUM LETTER LOQ*/ + RTUNI_ALPHA, /* U+00a6df: BAMUM LETTER KO*/ + RTUNI_ALPHA, /* U+00a6e0: BAMUM LETTER MBEN*/ + RTUNI_ALPHA, /* U+00a6e1: BAMUM LETTER REN*/ + RTUNI_ALPHA, /* U+00a6e2: BAMUM LETTER MEN*/ + RTUNI_ALPHA, /* U+00a6e3: BAMUM LETTER MA*/ + RTUNI_ALPHA, /* U+00a6e4: BAMUM LETTER TI*/ + RTUNI_ALPHA, /* U+00a6e5: BAMUM LETTER KI*/ + RTUNI_ALPHA, /* U+00a6e6: BAMUM LETTER MO*/ + RTUNI_ALPHA, /* U+00a6e7: BAMUM LETTER MBAA*/ + RTUNI_ALPHA, /* U+00a6e8: BAMUM LETTER TET*/ + RTUNI_ALPHA, /* U+00a6e9: BAMUM LETTER KPA*/ + RTUNI_ALPHA, /* U+00a6ea: BAMUM LETTER TEN*/ + RTUNI_ALPHA, /* U+00a6eb: BAMUM LETTER NTUU*/ + RTUNI_ALPHA, /* U+00a6ec: BAMUM LETTER SAMBA*/ + RTUNI_ALPHA, /* U+00a6ed: BAMUM LETTER FAAMAE*/ + RTUNI_ALPHA, /* U+00a6ee: BAMUM LETTER KOVUU*/ + RTUNI_ALPHA, /* U+00a6ef: BAMUM LETTER KOGHOM*/ + 0, /* U+00a6f0: BAMUM COMBINING MARK KOQNDON*/ + 0, /* U+00a6f1: BAMUM COMBINING MARK TUKWENTIS*/ + 0, /* U+00a6f2: BAMUM NJAEMLI*/ + 0, /* U+00a6f3: BAMUM FULL STOP*/ + 0, /* U+00a6f4: BAMUM COLON*/ + 0, /* U+00a6f5: BAMUM COMMA*/ + 0, /* U+00a6f6: BAMUM SEMICOLON*/ + 0, /* U+00a6f7: BAMUM QUESTION MARK*/ + 0, /* U+00a6f8: */ + 0, /* U+00a6f9: */ + 0, /* U+00a6fa: */ + 0, /* U+00a6fb: */ + 0, /* U+00a6fc: */ + 0, /* U+00a6fd: */ + 0, /* U+00a6fe: */ + 0, /* U+00a6ff: */ + 0, /* U+00a700: MODIFIER LETTER CHINESE TONE YIN PING*/ + 0, /* U+00a701: MODIFIER LETTER CHINESE TONE YANG PING*/ + 0, /* U+00a702: MODIFIER LETTER CHINESE TONE YIN SHANG*/ + 0, /* U+00a703: MODIFIER LETTER CHINESE TONE YANG SHANG*/ + 0, /* U+00a704: MODIFIER LETTER CHINESE TONE YIN QU*/ + 0, /* U+00a705: MODIFIER LETTER CHINESE TONE YANG QU*/ + 0, /* U+00a706: MODIFIER LETTER CHINESE TONE YIN RU*/ + 0, /* U+00a707: MODIFIER LETTER CHINESE TONE YANG RU*/ + 0, /* U+00a708: MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR*/ + 0, /* U+00a709: MODIFIER LETTER HIGH DOTTED TONE BAR*/ + 0, /* U+00a70a: MODIFIER LETTER MID DOTTED TONE BAR*/ + 0, /* U+00a70b: MODIFIER LETTER LOW DOTTED TONE BAR*/ + 0, /* U+00a70c: MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR*/ + 0, /* U+00a70d: MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR*/ + 0, /* U+00a70e: MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR*/ + 0, /* U+00a70f: MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR*/ + 0, /* U+00a710: MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR*/ + 0, /* U+00a711: MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR*/ + 0, /* U+00a712: MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR*/ + 0, /* U+00a713: MODIFIER LETTER HIGH LEFT-STEM TONE BAR*/ + 0, /* U+00a714: MODIFIER LETTER MID LEFT-STEM TONE BAR*/ + 0, /* U+00a715: MODIFIER LETTER LOW LEFT-STEM TONE BAR*/ + 0, /* U+00a716: MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR*/ + RTUNI_ALPHA, /* U+00a717: MODIFIER LETTER DOT VERTICAL BAR*/ + RTUNI_ALPHA, /* U+00a718: MODIFIER LETTER DOT SLASH*/ + RTUNI_ALPHA, /* U+00a719: MODIFIER LETTER DOT HORIZONTAL BAR*/ + RTUNI_ALPHA, /* U+00a71a: MODIFIER LETTER LOWER RIGHT CORNER ANGLE*/ + RTUNI_ALPHA, /* U+00a71b: MODIFIER LETTER RAISED UP ARROW*/ + RTUNI_ALPHA, /* U+00a71c: MODIFIER LETTER RAISED DOWN ARROW*/ + RTUNI_ALPHA, /* U+00a71d: MODIFIER LETTER RAISED EXCLAMATION MARK*/ + RTUNI_ALPHA, /* U+00a71e: MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK*/ + RTUNI_ALPHA, /* U+00a71f: MODIFIER LETTER LOW INVERTED EXCLAMATION MARK*/ + 0, /* U+00a720: MODIFIER LETTER STRESS AND HIGH TONE*/ + 0, /* U+00a721: MODIFIER LETTER STRESS AND LOW TONE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a722: LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a723: LATIN SMALL LETTER EGYPTOLOGICAL ALEF*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a724: LATIN CAPITAL LETTER EGYPTOLOGICAL AIN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a725: LATIN SMALL LETTER EGYPTOLOGICAL AIN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a726: LATIN CAPITAL LETTER HENG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a727: LATIN SMALL LETTER HENG*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a728: LATIN CAPITAL LETTER TZ*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a729: LATIN SMALL LETTER TZ*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a72a: LATIN CAPITAL LETTER TRESILLO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a72b: LATIN SMALL LETTER TRESILLO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a72c: LATIN CAPITAL LETTER CUATRILLO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a72d: LATIN SMALL LETTER CUATRILLO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a72e: LATIN CAPITAL LETTER CUATRILLO WITH COMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a72f: LATIN SMALL LETTER CUATRILLO WITH COMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a730: LATIN LETTER SMALL CAPITAL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a731: LATIN LETTER SMALL CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a732: LATIN CAPITAL LETTER AA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a733: LATIN SMALL LETTER AA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a734: LATIN CAPITAL LETTER AO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a735: LATIN SMALL LETTER AO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a736: LATIN CAPITAL LETTER AU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a737: LATIN SMALL LETTER AU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a738: LATIN CAPITAL LETTER AV*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a739: LATIN SMALL LETTER AV*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a73a: LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a73b: LATIN SMALL LETTER AV WITH HORIZONTAL BAR*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a73c: LATIN CAPITAL LETTER AY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a73d: LATIN SMALL LETTER AY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a73e: LATIN CAPITAL LETTER REVERSED C WITH DOT*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a73f: LATIN SMALL LETTER REVERSED C WITH DOT*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a740: LATIN CAPITAL LETTER K WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a741: LATIN SMALL LETTER K WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a742: LATIN CAPITAL LETTER K WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a743: LATIN SMALL LETTER K WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a744: LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a745: LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a746: LATIN CAPITAL LETTER BROKEN L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a747: LATIN SMALL LETTER BROKEN L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a748: LATIN CAPITAL LETTER L WITH HIGH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a749: LATIN SMALL LETTER L WITH HIGH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a74a: LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a74b: LATIN SMALL LETTER O WITH LONG STROKE OVERLAY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a74c: LATIN CAPITAL LETTER O WITH LOOP*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a74d: LATIN SMALL LETTER O WITH LOOP*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a74e: LATIN CAPITAL LETTER OO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a74f: LATIN SMALL LETTER OO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a750: LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a751: LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a752: LATIN CAPITAL LETTER P WITH FLOURISH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a753: LATIN SMALL LETTER P WITH FLOURISH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a754: LATIN CAPITAL LETTER P WITH SQUIRREL TAIL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a755: LATIN SMALL LETTER P WITH SQUIRREL TAIL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a756: LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a757: LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a758: LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a759: LATIN SMALL LETTER Q WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a75a: LATIN CAPITAL LETTER R ROTUNDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a75b: LATIN SMALL LETTER R ROTUNDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a75c: LATIN CAPITAL LETTER RUM ROTUNDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a75d: LATIN SMALL LETTER RUM ROTUNDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a75e: LATIN CAPITAL LETTER V WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a75f: LATIN SMALL LETTER V WITH DIAGONAL STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a760: LATIN CAPITAL LETTER VY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a761: LATIN SMALL LETTER VY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a762: LATIN CAPITAL LETTER VISIGOTHIC Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a763: LATIN SMALL LETTER VISIGOTHIC Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a764: LATIN CAPITAL LETTER THORN WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a765: LATIN SMALL LETTER THORN WITH STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a766: LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a767: LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a768: LATIN CAPITAL LETTER VEND*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a769: LATIN SMALL LETTER VEND*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a76a: LATIN CAPITAL LETTER ET*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a76b: LATIN SMALL LETTER ET*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a76c: LATIN CAPITAL LETTER IS*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a76d: LATIN SMALL LETTER IS*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a76e: LATIN CAPITAL LETTER CON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a76f: LATIN SMALL LETTER CON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a770: MODIFIER LETTER US*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a771: LATIN SMALL LETTER DUM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a772: LATIN SMALL LETTER LUM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a773: LATIN SMALL LETTER MUM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a774: LATIN SMALL LETTER NUM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a775: LATIN SMALL LETTER RUM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a776: LATIN LETTER SMALL CAPITAL RUM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a777: LATIN SMALL LETTER TUM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a778: LATIN SMALL LETTER UM*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a779: LATIN CAPITAL LETTER INSULAR D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a77a: LATIN SMALL LETTER INSULAR D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a77b: LATIN CAPITAL LETTER INSULAR F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a77c: LATIN SMALL LETTER INSULAR F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a77d: LATIN CAPITAL LETTER INSULAR G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a77e: LATIN CAPITAL LETTER TURNED INSULAR G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a77f: LATIN SMALL LETTER TURNED INSULAR G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a780: LATIN CAPITAL LETTER TURNED L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a781: LATIN SMALL LETTER TURNED L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a782: LATIN CAPITAL LETTER INSULAR R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a783: LATIN SMALL LETTER INSULAR R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a784: LATIN CAPITAL LETTER INSULAR S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a785: LATIN SMALL LETTER INSULAR S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a786: LATIN CAPITAL LETTER INSULAR T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a787: LATIN SMALL LETTER INSULAR T*/ + RTUNI_ALPHA, /* U+00a788: MODIFIER LETTER LOW CIRCUMFLEX ACCENT*/ + 0, /* U+00a789: MODIFIER LETTER COLON*/ + 0, /* U+00a78a: MODIFIER LETTER SHORT EQUALS SIGN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a78b: LATIN CAPITAL LETTER SALTILLO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a78c: LATIN SMALL LETTER SALTILLO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a78d: LATIN CAPITAL LETTER TURNED H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a78e: LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT*/ + 0, /* U+00a78f: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a790: LATIN CAPITAL LETTER N WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a791: LATIN SMALL LETTER N WITH DESCENDER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a792: LATIN CAPITAL LETTER C WITH BAR*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a793: LATIN SMALL LETTER C WITH BAR*/ + 0, /* U+00a794: */ + 0, /* U+00a795: */ + 0, /* U+00a796: */ + 0, /* U+00a797: */ + 0, /* U+00a798: */ + 0, /* U+00a799: */ + 0, /* U+00a79a: */ + 0, /* U+00a79b: */ + 0, /* U+00a79c: */ + 0, /* U+00a79d: */ + 0, /* U+00a79e: */ + 0, /* U+00a79f: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a7a0: LATIN CAPITAL LETTER G WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a7a1: LATIN SMALL LETTER G WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a7a2: LATIN CAPITAL LETTER K WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a7a3: LATIN SMALL LETTER K WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a7a4: LATIN CAPITAL LETTER N WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a7a5: LATIN SMALL LETTER N WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a7a6: LATIN CAPITAL LETTER R WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a7a7: LATIN SMALL LETTER R WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a7a8: LATIN CAPITAL LETTER S WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a7a9: LATIN SMALL LETTER S WITH OBLIQUE STROKE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00a7aa: LATIN CAPITAL LETTER H WITH HOOK*/ + 0, /* U+00a7ab: */ + 0, /* U+00a7ac: */ + 0, /* U+00a7ad: */ + 0, /* U+00a7ae: */ + 0, /* U+00a7af: */ + 0, /* U+00a7b0: */ + 0, /* U+00a7b1: */ + 0, /* U+00a7b2: */ + 0, /* U+00a7b3: */ + 0, /* U+00a7b4: */ + 0, /* U+00a7b5: */ + 0, /* U+00a7b6: */ + 0, /* U+00a7b7: */ + 0, /* U+00a7b8: */ + 0, /* U+00a7b9: */ + 0, /* U+00a7ba: */ + 0, /* U+00a7bb: */ + 0, /* U+00a7bc: */ + 0, /* U+00a7bd: */ + 0, /* U+00a7be: */ + 0, /* U+00a7bf: */ + 0, /* U+00a7c0: */ + 0, /* U+00a7c1: */ + 0, /* U+00a7c2: */ + 0, /* U+00a7c3: */ + 0, /* U+00a7c4: */ + 0, /* U+00a7c5: */ + 0, /* U+00a7c6: */ + 0, /* U+00a7c7: */ + 0, /* U+00a7c8: */ + 0, /* U+00a7c9: */ + 0, /* U+00a7ca: */ + 0, /* U+00a7cb: */ + 0, /* U+00a7cc: */ + 0, /* U+00a7cd: */ + 0, /* U+00a7ce: */ + 0, /* U+00a7cf: */ + 0, /* U+00a7d0: */ + 0, /* U+00a7d1: */ + 0, /* U+00a7d2: */ + 0, /* U+00a7d3: */ + 0, /* U+00a7d4: */ + 0, /* U+00a7d5: */ + 0, /* U+00a7d6: */ + 0, /* U+00a7d7: */ + 0, /* U+00a7d8: */ + 0, /* U+00a7d9: */ + 0, /* U+00a7da: */ + 0, /* U+00a7db: */ + 0, /* U+00a7dc: */ + 0, /* U+00a7dd: */ + 0, /* U+00a7de: */ + 0, /* U+00a7df: */ + 0, /* U+00a7e0: */ + 0, /* U+00a7e1: */ + 0, /* U+00a7e2: */ + 0, /* U+00a7e3: */ + 0, /* U+00a7e4: */ + 0, /* U+00a7e5: */ + 0, /* U+00a7e6: */ + 0, /* U+00a7e7: */ + 0, /* U+00a7e8: */ + 0, /* U+00a7e9: */ + 0, /* U+00a7ea: */ + 0, /* U+00a7eb: */ + 0, /* U+00a7ec: */ + 0, /* U+00a7ed: */ + 0, /* U+00a7ee: */ + 0, /* U+00a7ef: */ + 0, /* U+00a7f0: */ + 0, /* U+00a7f1: */ + 0, /* U+00a7f2: */ + 0, /* U+00a7f3: */ + 0, /* U+00a7f4: */ + 0, /* U+00a7f5: */ + 0, /* U+00a7f6: */ + 0, /* U+00a7f7: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a7f8: MODIFIER LETTER CAPITAL H WITH STROKE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a7f9: MODIFIER LETTER SMALL LIGATURE OE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00a7fa: LATIN LETTER SMALL CAPITAL TURNED M*/ + RTUNI_ALPHA, /* U+00a7fb: LATIN EPIGRAPHIC LETTER REVERSED F*/ + RTUNI_ALPHA, /* U+00a7fc: LATIN EPIGRAPHIC LETTER REVERSED P*/ + RTUNI_ALPHA, /* U+00a7fd: LATIN EPIGRAPHIC LETTER INVERTED M*/ + RTUNI_ALPHA, /* U+00a7fe: LATIN EPIGRAPHIC LETTER I LONGA*/ + RTUNI_ALPHA, /* U+00a7ff: LATIN EPIGRAPHIC LETTER ARCHAIC M*/ + RTUNI_ALPHA, /* U+00a800: SYLOTI NAGRI LETTER A*/ + RTUNI_ALPHA, /* U+00a801: SYLOTI NAGRI LETTER I*/ + 0, /* U+00a802: SYLOTI NAGRI SIGN DVISVARA*/ + RTUNI_ALPHA, /* U+00a803: SYLOTI NAGRI LETTER U*/ + RTUNI_ALPHA, /* U+00a804: SYLOTI NAGRI LETTER E*/ + RTUNI_ALPHA, /* U+00a805: SYLOTI NAGRI LETTER O*/ + 0, /* U+00a806: SYLOTI NAGRI SIGN HASANTA*/ + RTUNI_ALPHA, /* U+00a807: SYLOTI NAGRI LETTER KO*/ + RTUNI_ALPHA, /* U+00a808: SYLOTI NAGRI LETTER KHO*/ + RTUNI_ALPHA, /* U+00a809: SYLOTI NAGRI LETTER GO*/ + RTUNI_ALPHA, /* U+00a80a: SYLOTI NAGRI LETTER GHO*/ + 0, /* U+00a80b: SYLOTI NAGRI SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+00a80c: SYLOTI NAGRI LETTER CO*/ + RTUNI_ALPHA, /* U+00a80d: SYLOTI NAGRI LETTER CHO*/ + RTUNI_ALPHA, /* U+00a80e: SYLOTI NAGRI LETTER JO*/ + RTUNI_ALPHA, /* U+00a80f: SYLOTI NAGRI LETTER JHO*/ + RTUNI_ALPHA, /* U+00a810: SYLOTI NAGRI LETTER TTO*/ + RTUNI_ALPHA, /* U+00a811: SYLOTI NAGRI LETTER TTHO*/ + RTUNI_ALPHA, /* U+00a812: SYLOTI NAGRI LETTER DDO*/ + RTUNI_ALPHA, /* U+00a813: SYLOTI NAGRI LETTER DDHO*/ + RTUNI_ALPHA, /* U+00a814: SYLOTI NAGRI LETTER TO*/ + RTUNI_ALPHA, /* U+00a815: SYLOTI NAGRI LETTER THO*/ + RTUNI_ALPHA, /* U+00a816: SYLOTI NAGRI LETTER DO*/ + RTUNI_ALPHA, /* U+00a817: SYLOTI NAGRI LETTER DHO*/ + RTUNI_ALPHA, /* U+00a818: SYLOTI NAGRI LETTER NO*/ + RTUNI_ALPHA, /* U+00a819: SYLOTI NAGRI LETTER PO*/ + RTUNI_ALPHA, /* U+00a81a: SYLOTI NAGRI LETTER PHO*/ + RTUNI_ALPHA, /* U+00a81b: SYLOTI NAGRI LETTER BO*/ + RTUNI_ALPHA, /* U+00a81c: SYLOTI NAGRI LETTER BHO*/ + RTUNI_ALPHA, /* U+00a81d: SYLOTI NAGRI LETTER MO*/ + RTUNI_ALPHA, /* U+00a81e: SYLOTI NAGRI LETTER RO*/ + RTUNI_ALPHA, /* U+00a81f: SYLOTI NAGRI LETTER LO*/ + RTUNI_ALPHA, /* U+00a820: SYLOTI NAGRI LETTER RRO*/ + RTUNI_ALPHA, /* U+00a821: SYLOTI NAGRI LETTER SO*/ + RTUNI_ALPHA, /* U+00a822: SYLOTI NAGRI LETTER HO*/ + RTUNI_ALPHA, /* U+00a823: SYLOTI NAGRI VOWEL SIGN A*/ + RTUNI_ALPHA, /* U+00a824: SYLOTI NAGRI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+00a825: SYLOTI NAGRI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+00a826: SYLOTI NAGRI VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+00a827: SYLOTI NAGRI VOWEL SIGN OO*/ + 0, /* U+00a828: SYLOTI NAGRI POETRY MARK-1*/ + 0, /* U+00a829: SYLOTI NAGRI POETRY MARK-2*/ + 0, /* U+00a82a: SYLOTI NAGRI POETRY MARK-3*/ + 0, /* U+00a82b: SYLOTI NAGRI POETRY MARK-4*/ + 0, /* U+00a82c: */ + 0, /* U+00a82d: */ + 0, /* U+00a82e: */ + 0, /* U+00a82f: */ + 0, /* U+00a830: NORTH INDIC FRACTION ONE QUARTER*/ + 0, /* U+00a831: NORTH INDIC FRACTION ONE HALF*/ + 0, /* U+00a832: NORTH INDIC FRACTION THREE QUARTERS*/ + 0, /* U+00a833: NORTH INDIC FRACTION ONE SIXTEENTH*/ + 0, /* U+00a834: NORTH INDIC FRACTION ONE EIGHTH*/ + 0, /* U+00a835: NORTH INDIC FRACTION THREE SIXTEENTHS*/ + 0, /* U+00a836: NORTH INDIC QUARTER MARK*/ + 0, /* U+00a837: NORTH INDIC PLACEHOLDER MARK*/ + 0, /* U+00a838: NORTH INDIC RUPEE MARK*/ + 0, /* U+00a839: NORTH INDIC QUANTITY MARK*/ + 0, /* U+00a83a: */ + 0, /* U+00a83b: */ + 0, /* U+00a83c: */ + 0, /* U+00a83d: */ + 0, /* U+00a83e: */ + 0, /* U+00a83f: */ + RTUNI_ALPHA, /* U+00a840: PHAGS-PA LETTER KA*/ + RTUNI_ALPHA, /* U+00a841: PHAGS-PA LETTER KHA*/ + RTUNI_ALPHA, /* U+00a842: PHAGS-PA LETTER GA*/ + RTUNI_ALPHA, /* U+00a843: PHAGS-PA LETTER NGA*/ + RTUNI_ALPHA, /* U+00a844: PHAGS-PA LETTER CA*/ + RTUNI_ALPHA, /* U+00a845: PHAGS-PA LETTER CHA*/ + RTUNI_ALPHA, /* U+00a846: PHAGS-PA LETTER JA*/ + RTUNI_ALPHA, /* U+00a847: PHAGS-PA LETTER NYA*/ + RTUNI_ALPHA, /* U+00a848: PHAGS-PA LETTER TA*/ + RTUNI_ALPHA, /* U+00a849: PHAGS-PA LETTER THA*/ + RTUNI_ALPHA, /* U+00a84a: PHAGS-PA LETTER DA*/ + RTUNI_ALPHA, /* U+00a84b: PHAGS-PA LETTER NA*/ + RTUNI_ALPHA, /* U+00a84c: PHAGS-PA LETTER PA*/ + RTUNI_ALPHA, /* U+00a84d: PHAGS-PA LETTER PHA*/ + RTUNI_ALPHA, /* U+00a84e: PHAGS-PA LETTER BA*/ + RTUNI_ALPHA, /* U+00a84f: PHAGS-PA LETTER MA*/ + RTUNI_ALPHA, /* U+00a850: PHAGS-PA LETTER TSA*/ + RTUNI_ALPHA, /* U+00a851: PHAGS-PA LETTER TSHA*/ + RTUNI_ALPHA, /* U+00a852: PHAGS-PA LETTER DZA*/ + RTUNI_ALPHA, /* U+00a853: PHAGS-PA LETTER WA*/ + RTUNI_ALPHA, /* U+00a854: PHAGS-PA LETTER ZHA*/ + RTUNI_ALPHA, /* U+00a855: PHAGS-PA LETTER ZA*/ + RTUNI_ALPHA, /* U+00a856: PHAGS-PA LETTER SMALL A*/ + RTUNI_ALPHA, /* U+00a857: PHAGS-PA LETTER YA*/ + RTUNI_ALPHA, /* U+00a858: PHAGS-PA LETTER RA*/ + RTUNI_ALPHA, /* U+00a859: PHAGS-PA LETTER LA*/ + RTUNI_ALPHA, /* U+00a85a: PHAGS-PA LETTER SHA*/ + RTUNI_ALPHA, /* U+00a85b: PHAGS-PA LETTER SA*/ + RTUNI_ALPHA, /* U+00a85c: PHAGS-PA LETTER HA*/ + RTUNI_ALPHA, /* U+00a85d: PHAGS-PA LETTER A*/ + RTUNI_ALPHA, /* U+00a85e: PHAGS-PA LETTER I*/ + RTUNI_ALPHA, /* U+00a85f: PHAGS-PA LETTER U*/ + RTUNI_ALPHA, /* U+00a860: PHAGS-PA LETTER E*/ + RTUNI_ALPHA, /* U+00a861: PHAGS-PA LETTER O*/ + RTUNI_ALPHA, /* U+00a862: PHAGS-PA LETTER QA*/ + RTUNI_ALPHA, /* U+00a863: PHAGS-PA LETTER XA*/ + RTUNI_ALPHA, /* U+00a864: PHAGS-PA LETTER FA*/ + RTUNI_ALPHA, /* U+00a865: PHAGS-PA LETTER GGA*/ + RTUNI_ALPHA, /* U+00a866: PHAGS-PA LETTER EE*/ + RTUNI_ALPHA, /* U+00a867: PHAGS-PA SUBJOINED LETTER WA*/ + RTUNI_ALPHA, /* U+00a868: PHAGS-PA SUBJOINED LETTER YA*/ + RTUNI_ALPHA, /* U+00a869: PHAGS-PA LETTER TTA*/ + RTUNI_ALPHA, /* U+00a86a: PHAGS-PA LETTER TTHA*/ + RTUNI_ALPHA, /* U+00a86b: PHAGS-PA LETTER DDA*/ + RTUNI_ALPHA, /* U+00a86c: PHAGS-PA LETTER NNA*/ + RTUNI_ALPHA, /* U+00a86d: PHAGS-PA LETTER ALTERNATE YA*/ + RTUNI_ALPHA, /* U+00a86e: PHAGS-PA LETTER VOICELESS SHA*/ + RTUNI_ALPHA, /* U+00a86f: PHAGS-PA LETTER VOICED HA*/ + RTUNI_ALPHA, /* U+00a870: PHAGS-PA LETTER ASPIRATED FA*/ + RTUNI_ALPHA, /* U+00a871: PHAGS-PA SUBJOINED LETTER RA*/ + RTUNI_ALPHA, /* U+00a872: PHAGS-PA SUPERFIXED LETTER RA*/ + RTUNI_ALPHA, /* U+00a873: PHAGS-PA LETTER CANDRABINDU*/ + 0, /* U+00a874: PHAGS-PA SINGLE HEAD MARK*/ + 0, /* U+00a875: PHAGS-PA DOUBLE HEAD MARK*/ + 0, /* U+00a876: PHAGS-PA MARK SHAD*/ + 0, /* U+00a877: PHAGS-PA MARK DOUBLE SHAD*/ + 0, /* U+00a878: */ + 0, /* U+00a879: */ + 0, /* U+00a87a: */ + 0, /* U+00a87b: */ + 0, /* U+00a87c: */ + 0, /* U+00a87d: */ + 0, /* U+00a87e: */ + 0, /* U+00a87f: */ + RTUNI_ALPHA, /* U+00a880: SAURASHTRA SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+00a881: SAURASHTRA SIGN VISARGA*/ + RTUNI_ALPHA, /* U+00a882: SAURASHTRA LETTER A*/ + RTUNI_ALPHA, /* U+00a883: SAURASHTRA LETTER AA*/ + RTUNI_ALPHA, /* U+00a884: SAURASHTRA LETTER I*/ + RTUNI_ALPHA, /* U+00a885: SAURASHTRA LETTER II*/ + RTUNI_ALPHA, /* U+00a886: SAURASHTRA LETTER U*/ + RTUNI_ALPHA, /* U+00a887: SAURASHTRA LETTER UU*/ + RTUNI_ALPHA, /* U+00a888: SAURASHTRA LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+00a889: SAURASHTRA LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+00a88a: SAURASHTRA LETTER VOCALIC L*/ + RTUNI_ALPHA, /* U+00a88b: SAURASHTRA LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+00a88c: SAURASHTRA LETTER E*/ + RTUNI_ALPHA, /* U+00a88d: SAURASHTRA LETTER EE*/ + RTUNI_ALPHA, /* U+00a88e: SAURASHTRA LETTER AI*/ + RTUNI_ALPHA, /* U+00a88f: SAURASHTRA LETTER O*/ + RTUNI_ALPHA, /* U+00a890: SAURASHTRA LETTER OO*/ + RTUNI_ALPHA, /* U+00a891: SAURASHTRA LETTER AU*/ + RTUNI_ALPHA, /* U+00a892: SAURASHTRA LETTER KA*/ + RTUNI_ALPHA, /* U+00a893: SAURASHTRA LETTER KHA*/ + RTUNI_ALPHA, /* U+00a894: SAURASHTRA LETTER GA*/ + RTUNI_ALPHA, /* U+00a895: SAURASHTRA LETTER GHA*/ + RTUNI_ALPHA, /* U+00a896: SAURASHTRA LETTER NGA*/ + RTUNI_ALPHA, /* U+00a897: SAURASHTRA LETTER CA*/ + RTUNI_ALPHA, /* U+00a898: SAURASHTRA LETTER CHA*/ + RTUNI_ALPHA, /* U+00a899: SAURASHTRA LETTER JA*/ + RTUNI_ALPHA, /* U+00a89a: SAURASHTRA LETTER JHA*/ + RTUNI_ALPHA, /* U+00a89b: SAURASHTRA LETTER NYA*/ + RTUNI_ALPHA, /* U+00a89c: SAURASHTRA LETTER TTA*/ + RTUNI_ALPHA, /* U+00a89d: SAURASHTRA LETTER TTHA*/ + RTUNI_ALPHA, /* U+00a89e: SAURASHTRA LETTER DDA*/ + RTUNI_ALPHA, /* U+00a89f: SAURASHTRA LETTER DDHA*/ + RTUNI_ALPHA, /* U+00a8a0: SAURASHTRA LETTER NNA*/ + RTUNI_ALPHA, /* U+00a8a1: SAURASHTRA LETTER TA*/ + RTUNI_ALPHA, /* U+00a8a2: SAURASHTRA LETTER THA*/ + RTUNI_ALPHA, /* U+00a8a3: SAURASHTRA LETTER DA*/ + RTUNI_ALPHA, /* U+00a8a4: SAURASHTRA LETTER DHA*/ + RTUNI_ALPHA, /* U+00a8a5: SAURASHTRA LETTER NA*/ + RTUNI_ALPHA, /* U+00a8a6: SAURASHTRA LETTER PA*/ + RTUNI_ALPHA, /* U+00a8a7: SAURASHTRA LETTER PHA*/ + RTUNI_ALPHA, /* U+00a8a8: SAURASHTRA LETTER BA*/ + RTUNI_ALPHA, /* U+00a8a9: SAURASHTRA LETTER BHA*/ + RTUNI_ALPHA, /* U+00a8aa: SAURASHTRA LETTER MA*/ + RTUNI_ALPHA, /* U+00a8ab: SAURASHTRA LETTER YA*/ + RTUNI_ALPHA, /* U+00a8ac: SAURASHTRA LETTER RA*/ + RTUNI_ALPHA, /* U+00a8ad: SAURASHTRA LETTER LA*/ + RTUNI_ALPHA, /* U+00a8ae: SAURASHTRA LETTER VA*/ + RTUNI_ALPHA, /* U+00a8af: SAURASHTRA LETTER SHA*/ + RTUNI_ALPHA, /* U+00a8b0: SAURASHTRA LETTER SSA*/ + RTUNI_ALPHA, /* U+00a8b1: SAURASHTRA LETTER SA*/ + RTUNI_ALPHA, /* U+00a8b2: SAURASHTRA LETTER HA*/ + RTUNI_ALPHA, /* U+00a8b3: SAURASHTRA LETTER LLA*/ + RTUNI_ALPHA, /* U+00a8b4: SAURASHTRA CONSONANT SIGN HAARU*/ + RTUNI_ALPHA, /* U+00a8b5: SAURASHTRA VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+00a8b6: SAURASHTRA VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+00a8b7: SAURASHTRA VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+00a8b8: SAURASHTRA VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+00a8b9: SAURASHTRA VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+00a8ba: SAURASHTRA VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+00a8bb: SAURASHTRA VOWEL SIGN VOCALIC RR*/ + RTUNI_ALPHA, /* U+00a8bc: SAURASHTRA VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+00a8bd: SAURASHTRA VOWEL SIGN VOCALIC LL*/ + RTUNI_ALPHA, /* U+00a8be: SAURASHTRA VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+00a8bf: SAURASHTRA VOWEL SIGN EE*/ + RTUNI_ALPHA, /* U+00a8c0: SAURASHTRA VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+00a8c1: SAURASHTRA VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+00a8c2: SAURASHTRA VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+00a8c3: SAURASHTRA VOWEL SIGN AU*/ + 0, /* U+00a8c4: SAURASHTRA SIGN VIRAMA*/ + 0, /* U+00a8c5: */ + 0, /* U+00a8c6: */ + 0, /* U+00a8c7: */ + 0, /* U+00a8c8: */ + 0, /* U+00a8c9: */ + 0, /* U+00a8ca: */ + 0, /* U+00a8cb: */ + 0, /* U+00a8cc: */ + 0, /* U+00a8cd: */ + 0, /* U+00a8ce: SAURASHTRA DANDA*/ + 0, /* U+00a8cf: SAURASHTRA DOUBLE DANDA*/ + RTUNI_DDIGIT, /* U+00a8d0: SAURASHTRA DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+00a8d1: SAURASHTRA DIGIT ONE*/ + RTUNI_DDIGIT, /* U+00a8d2: SAURASHTRA DIGIT TWO*/ + RTUNI_DDIGIT, /* U+00a8d3: SAURASHTRA DIGIT THREE*/ + RTUNI_DDIGIT, /* U+00a8d4: SAURASHTRA DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+00a8d5: SAURASHTRA DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+00a8d6: SAURASHTRA DIGIT SIX*/ + RTUNI_DDIGIT, /* U+00a8d7: SAURASHTRA DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+00a8d8: SAURASHTRA DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+00a8d9: SAURASHTRA DIGIT NINE*/ + 0, /* U+00a8da: */ + 0, /* U+00a8db: */ + 0, /* U+00a8dc: */ + 0, /* U+00a8dd: */ + 0, /* U+00a8de: */ + 0, /* U+00a8df: */ + 0, /* U+00a8e0: COMBINING DEVANAGARI DIGIT ZERO*/ + 0, /* U+00a8e1: COMBINING DEVANAGARI DIGIT ONE*/ + 0, /* U+00a8e2: COMBINING DEVANAGARI DIGIT TWO*/ + 0, /* U+00a8e3: COMBINING DEVANAGARI DIGIT THREE*/ + 0, /* U+00a8e4: COMBINING DEVANAGARI DIGIT FOUR*/ + 0, /* U+00a8e5: COMBINING DEVANAGARI DIGIT FIVE*/ + 0, /* U+00a8e6: COMBINING DEVANAGARI DIGIT SIX*/ + 0, /* U+00a8e7: COMBINING DEVANAGARI DIGIT SEVEN*/ + 0, /* U+00a8e8: COMBINING DEVANAGARI DIGIT EIGHT*/ + 0, /* U+00a8e9: COMBINING DEVANAGARI DIGIT NINE*/ + 0, /* U+00a8ea: COMBINING DEVANAGARI LETTER A*/ + 0, /* U+00a8eb: COMBINING DEVANAGARI LETTER U*/ + 0, /* U+00a8ec: COMBINING DEVANAGARI LETTER KA*/ + 0, /* U+00a8ed: COMBINING DEVANAGARI LETTER NA*/ + 0, /* U+00a8ee: COMBINING DEVANAGARI LETTER PA*/ + 0, /* U+00a8ef: COMBINING DEVANAGARI LETTER RA*/ + 0, /* U+00a8f0: COMBINING DEVANAGARI LETTER VI*/ + 0, /* U+00a8f1: COMBINING DEVANAGARI SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+00a8f2: DEVANAGARI SIGN SPACING CANDRABINDU*/ + RTUNI_ALPHA, /* U+00a8f3: DEVANAGARI SIGN CANDRABINDU VIRAMA*/ + RTUNI_ALPHA, /* U+00a8f4: DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA*/ + RTUNI_ALPHA, /* U+00a8f5: DEVANAGARI SIGN CANDRABINDU TWO*/ + RTUNI_ALPHA, /* U+00a8f6: DEVANAGARI SIGN CANDRABINDU THREE*/ + RTUNI_ALPHA, /* U+00a8f7: DEVANAGARI SIGN CANDRABINDU AVAGRAHA*/ + 0, /* U+00a8f8: DEVANAGARI SIGN PUSHPIKA*/ + 0, /* U+00a8f9: DEVANAGARI GAP FILLER*/ + 0, /* U+00a8fa: DEVANAGARI CARET*/ + RTUNI_ALPHA, /* U+00a8fb: DEVANAGARI HEADSTROKE*/ + 0, /* U+00a8fc: */ + 0, /* U+00a8fd: */ + 0, /* U+00a8fe: */ + 0, /* U+00a8ff: */ + RTUNI_DDIGIT, /* U+00a900: KAYAH LI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+00a901: KAYAH LI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+00a902: KAYAH LI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+00a903: KAYAH LI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+00a904: KAYAH LI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+00a905: KAYAH LI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+00a906: KAYAH LI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+00a907: KAYAH LI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+00a908: KAYAH LI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+00a909: KAYAH LI DIGIT NINE*/ + RTUNI_ALPHA, /* U+00a90a: KAYAH LI LETTER KA*/ + RTUNI_ALPHA, /* U+00a90b: KAYAH LI LETTER KHA*/ + RTUNI_ALPHA, /* U+00a90c: KAYAH LI LETTER GA*/ + RTUNI_ALPHA, /* U+00a90d: KAYAH LI LETTER NGA*/ + RTUNI_ALPHA, /* U+00a90e: KAYAH LI LETTER SA*/ + RTUNI_ALPHA, /* U+00a90f: KAYAH LI LETTER SHA*/ + RTUNI_ALPHA, /* U+00a910: KAYAH LI LETTER ZA*/ + RTUNI_ALPHA, /* U+00a911: KAYAH LI LETTER NYA*/ + RTUNI_ALPHA, /* U+00a912: KAYAH LI LETTER TA*/ + RTUNI_ALPHA, /* U+00a913: KAYAH LI LETTER HTA*/ + RTUNI_ALPHA, /* U+00a914: KAYAH LI LETTER NA*/ + RTUNI_ALPHA, /* U+00a915: KAYAH LI LETTER PA*/ + RTUNI_ALPHA, /* U+00a916: KAYAH LI LETTER PHA*/ + RTUNI_ALPHA, /* U+00a917: KAYAH LI LETTER MA*/ + RTUNI_ALPHA, /* U+00a918: KAYAH LI LETTER DA*/ + RTUNI_ALPHA, /* U+00a919: KAYAH LI LETTER BA*/ + RTUNI_ALPHA, /* U+00a91a: KAYAH LI LETTER RA*/ + RTUNI_ALPHA, /* U+00a91b: KAYAH LI LETTER YA*/ + RTUNI_ALPHA, /* U+00a91c: KAYAH LI LETTER LA*/ + RTUNI_ALPHA, /* U+00a91d: KAYAH LI LETTER WA*/ + RTUNI_ALPHA, /* U+00a91e: KAYAH LI LETTER THA*/ + RTUNI_ALPHA, /* U+00a91f: KAYAH LI LETTER HA*/ + RTUNI_ALPHA, /* U+00a920: KAYAH LI LETTER VA*/ + RTUNI_ALPHA, /* U+00a921: KAYAH LI LETTER CA*/ + RTUNI_ALPHA, /* U+00a922: KAYAH LI LETTER A*/ + RTUNI_ALPHA, /* U+00a923: KAYAH LI LETTER OE*/ + RTUNI_ALPHA, /* U+00a924: KAYAH LI LETTER I*/ + RTUNI_ALPHA, /* U+00a925: KAYAH LI LETTER OO*/ + RTUNI_ALPHA, /* U+00a926: KAYAH LI VOWEL UE*/ + RTUNI_ALPHA, /* U+00a927: KAYAH LI VOWEL E*/ + RTUNI_ALPHA, /* U+00a928: KAYAH LI VOWEL U*/ + RTUNI_ALPHA, /* U+00a929: KAYAH LI VOWEL EE*/ + RTUNI_ALPHA, /* U+00a92a: KAYAH LI VOWEL O*/ + 0, /* U+00a92b: KAYAH LI TONE PLOPHU*/ + 0, /* U+00a92c: KAYAH LI TONE CALYA*/ + 0, /* U+00a92d: KAYAH LI TONE CALYA PLOPHU*/ + 0, /* U+00a92e: KAYAH LI SIGN CWI*/ + 0, /* U+00a92f: KAYAH LI SIGN SHYA*/ + RTUNI_ALPHA, /* U+00a930: REJANG LETTER KA*/ + RTUNI_ALPHA, /* U+00a931: REJANG LETTER GA*/ + RTUNI_ALPHA, /* U+00a932: REJANG LETTER NGA*/ + RTUNI_ALPHA, /* U+00a933: REJANG LETTER TA*/ + RTUNI_ALPHA, /* U+00a934: REJANG LETTER DA*/ + RTUNI_ALPHA, /* U+00a935: REJANG LETTER NA*/ + RTUNI_ALPHA, /* U+00a936: REJANG LETTER PA*/ + RTUNI_ALPHA, /* U+00a937: REJANG LETTER BA*/ + RTUNI_ALPHA, /* U+00a938: REJANG LETTER MA*/ + RTUNI_ALPHA, /* U+00a939: REJANG LETTER CA*/ + RTUNI_ALPHA, /* U+00a93a: REJANG LETTER JA*/ + RTUNI_ALPHA, /* U+00a93b: REJANG LETTER NYA*/ + RTUNI_ALPHA, /* U+00a93c: REJANG LETTER SA*/ + RTUNI_ALPHA, /* U+00a93d: REJANG LETTER RA*/ + RTUNI_ALPHA, /* U+00a93e: REJANG LETTER LA*/ + RTUNI_ALPHA, /* U+00a93f: REJANG LETTER YA*/ + RTUNI_ALPHA, /* U+00a940: REJANG LETTER WA*/ + RTUNI_ALPHA, /* U+00a941: REJANG LETTER HA*/ + RTUNI_ALPHA, /* U+00a942: REJANG LETTER MBA*/ + RTUNI_ALPHA, /* U+00a943: REJANG LETTER NGGA*/ + RTUNI_ALPHA, /* U+00a944: REJANG LETTER NDA*/ + RTUNI_ALPHA, /* U+00a945: REJANG LETTER NYJA*/ + RTUNI_ALPHA, /* U+00a946: REJANG LETTER A*/ + RTUNI_ALPHA, /* U+00a947: REJANG VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+00a948: REJANG VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+00a949: REJANG VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+00a94a: REJANG VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+00a94b: REJANG VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+00a94c: REJANG VOWEL SIGN AU*/ + RTUNI_ALPHA, /* U+00a94d: REJANG VOWEL SIGN EU*/ + RTUNI_ALPHA, /* U+00a94e: REJANG VOWEL SIGN EA*/ + RTUNI_ALPHA, /* U+00a94f: REJANG CONSONANT SIGN NG*/ + RTUNI_ALPHA, /* U+00a950: REJANG CONSONANT SIGN N*/ + RTUNI_ALPHA, /* U+00a951: REJANG CONSONANT SIGN R*/ + RTUNI_ALPHA, /* U+00a952: REJANG CONSONANT SIGN H*/ + 0, /* U+00a953: REJANG VIRAMA*/ + 0, /* U+00a954: */ + 0, /* U+00a955: */ + 0, /* U+00a956: */ + 0, /* U+00a957: */ + 0, /* U+00a958: */ + 0, /* U+00a959: */ + 0, /* U+00a95a: */ + 0, /* U+00a95b: */ + 0, /* U+00a95c: */ + 0, /* U+00a95d: */ + 0, /* U+00a95e: */ + 0, /* U+00a95f: REJANG SECTION MARK*/ + RTUNI_ALPHA, /* U+00a960: HANGUL CHOSEONG TIKEUT-MIEUM*/ + RTUNI_ALPHA, /* U+00a961: HANGUL CHOSEONG TIKEUT-PIEUP*/ + RTUNI_ALPHA, /* U+00a962: HANGUL CHOSEONG TIKEUT-SIOS*/ + RTUNI_ALPHA, /* U+00a963: HANGUL CHOSEONG TIKEUT-CIEUC*/ + RTUNI_ALPHA, /* U+00a964: HANGUL CHOSEONG RIEUL-KIYEOK*/ + RTUNI_ALPHA, /* U+00a965: HANGUL CHOSEONG RIEUL-SSANGKIYEOK*/ + RTUNI_ALPHA, /* U+00a966: HANGUL CHOSEONG RIEUL-TIKEUT*/ + RTUNI_ALPHA, /* U+00a967: HANGUL CHOSEONG RIEUL-SSANGTIKEUT*/ + RTUNI_ALPHA, /* U+00a968: HANGUL CHOSEONG RIEUL-MIEUM*/ + RTUNI_ALPHA, /* U+00a969: HANGUL CHOSEONG RIEUL-PIEUP*/ + RTUNI_ALPHA, /* U+00a96a: HANGUL CHOSEONG RIEUL-SSANGPIEUP*/ + RTUNI_ALPHA, /* U+00a96b: HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP*/ + RTUNI_ALPHA, /* U+00a96c: HANGUL CHOSEONG RIEUL-SIOS*/ + RTUNI_ALPHA, /* U+00a96d: HANGUL CHOSEONG RIEUL-CIEUC*/ + RTUNI_ALPHA, /* U+00a96e: HANGUL CHOSEONG RIEUL-KHIEUKH*/ + RTUNI_ALPHA, /* U+00a96f: HANGUL CHOSEONG MIEUM-KIYEOK*/ + RTUNI_ALPHA, /* U+00a970: HANGUL CHOSEONG MIEUM-TIKEUT*/ + RTUNI_ALPHA, /* U+00a971: HANGUL CHOSEONG MIEUM-SIOS*/ + RTUNI_ALPHA, /* U+00a972: HANGUL CHOSEONG PIEUP-SIOS-THIEUTH*/ + RTUNI_ALPHA, /* U+00a973: HANGUL CHOSEONG PIEUP-KHIEUKH*/ + RTUNI_ALPHA, /* U+00a974: HANGUL CHOSEONG PIEUP-HIEUH*/ + RTUNI_ALPHA, /* U+00a975: HANGUL CHOSEONG SSANGSIOS-PIEUP*/ + RTUNI_ALPHA, /* U+00a976: HANGUL CHOSEONG IEUNG-RIEUL*/ + RTUNI_ALPHA, /* U+00a977: HANGUL CHOSEONG IEUNG-HIEUH*/ + RTUNI_ALPHA, /* U+00a978: HANGUL CHOSEONG SSANGCIEUC-HIEUH*/ + RTUNI_ALPHA, /* U+00a979: HANGUL CHOSEONG SSANGTHIEUTH*/ + RTUNI_ALPHA, /* U+00a97a: HANGUL CHOSEONG PHIEUPH-HIEUH*/ + RTUNI_ALPHA, /* U+00a97b: HANGUL CHOSEONG HIEUH-SIOS*/ + RTUNI_ALPHA, /* U+00a97c: HANGUL CHOSEONG SSANGYEORINHIEUH*/ + 0, /* U+00a97d: */ + 0, /* U+00a97e: */ + 0, /* U+00a97f: */ + RTUNI_ALPHA, /* U+00a980: JAVANESE SIGN PANYANGGA*/ + RTUNI_ALPHA, /* U+00a981: JAVANESE SIGN CECAK*/ + RTUNI_ALPHA, /* U+00a982: JAVANESE SIGN LAYAR*/ + RTUNI_ALPHA, /* U+00a983: JAVANESE SIGN WIGNYAN*/ + RTUNI_ALPHA, /* U+00a984: JAVANESE LETTER A*/ + RTUNI_ALPHA, /* U+00a985: JAVANESE LETTER I KAWI*/ + RTUNI_ALPHA, /* U+00a986: JAVANESE LETTER I*/ + RTUNI_ALPHA, /* U+00a987: JAVANESE LETTER II*/ + RTUNI_ALPHA, /* U+00a988: JAVANESE LETTER U*/ + RTUNI_ALPHA, /* U+00a989: JAVANESE LETTER PA CEREK*/ + RTUNI_ALPHA, /* U+00a98a: JAVANESE LETTER NGA LELET*/ + RTUNI_ALPHA, /* U+00a98b: JAVANESE LETTER NGA LELET RASWADI*/ + RTUNI_ALPHA, /* U+00a98c: JAVANESE LETTER E*/ + RTUNI_ALPHA, /* U+00a98d: JAVANESE LETTER AI*/ + RTUNI_ALPHA, /* U+00a98e: JAVANESE LETTER O*/ + RTUNI_ALPHA, /* U+00a98f: JAVANESE LETTER KA*/ + RTUNI_ALPHA, /* U+00a990: JAVANESE LETTER KA SASAK*/ + RTUNI_ALPHA, /* U+00a991: JAVANESE LETTER KA MURDA*/ + RTUNI_ALPHA, /* U+00a992: JAVANESE LETTER GA*/ + RTUNI_ALPHA, /* U+00a993: JAVANESE LETTER GA MURDA*/ + RTUNI_ALPHA, /* U+00a994: JAVANESE LETTER NGA*/ + RTUNI_ALPHA, /* U+00a995: JAVANESE LETTER CA*/ + RTUNI_ALPHA, /* U+00a996: JAVANESE LETTER CA MURDA*/ + RTUNI_ALPHA, /* U+00a997: JAVANESE LETTER JA*/ + RTUNI_ALPHA, /* U+00a998: JAVANESE LETTER NYA MURDA*/ + RTUNI_ALPHA, /* U+00a999: JAVANESE LETTER JA MAHAPRANA*/ + RTUNI_ALPHA, /* U+00a99a: JAVANESE LETTER NYA*/ + RTUNI_ALPHA, /* U+00a99b: JAVANESE LETTER TTA*/ + RTUNI_ALPHA, /* U+00a99c: JAVANESE LETTER TTA MAHAPRANA*/ + RTUNI_ALPHA, /* U+00a99d: JAVANESE LETTER DDA*/ + RTUNI_ALPHA, /* U+00a99e: JAVANESE LETTER DDA MAHAPRANA*/ + RTUNI_ALPHA, /* U+00a99f: JAVANESE LETTER NA MURDA*/ + RTUNI_ALPHA, /* U+00a9a0: JAVANESE LETTER TA*/ + RTUNI_ALPHA, /* U+00a9a1: JAVANESE LETTER TA MURDA*/ + RTUNI_ALPHA, /* U+00a9a2: JAVANESE LETTER DA*/ + RTUNI_ALPHA, /* U+00a9a3: JAVANESE LETTER DA MAHAPRANA*/ + RTUNI_ALPHA, /* U+00a9a4: JAVANESE LETTER NA*/ + RTUNI_ALPHA, /* U+00a9a5: JAVANESE LETTER PA*/ + RTUNI_ALPHA, /* U+00a9a6: JAVANESE LETTER PA MURDA*/ + RTUNI_ALPHA, /* U+00a9a7: JAVANESE LETTER BA*/ + RTUNI_ALPHA, /* U+00a9a8: JAVANESE LETTER BA MURDA*/ + RTUNI_ALPHA, /* U+00a9a9: JAVANESE LETTER MA*/ + RTUNI_ALPHA, /* U+00a9aa: JAVANESE LETTER YA*/ + RTUNI_ALPHA, /* U+00a9ab: JAVANESE LETTER RA*/ + RTUNI_ALPHA, /* U+00a9ac: JAVANESE LETTER RA AGUNG*/ + RTUNI_ALPHA, /* U+00a9ad: JAVANESE LETTER LA*/ + RTUNI_ALPHA, /* U+00a9ae: JAVANESE LETTER WA*/ + RTUNI_ALPHA, /* U+00a9af: JAVANESE LETTER SA MURDA*/ + RTUNI_ALPHA, /* U+00a9b0: JAVANESE LETTER SA MAHAPRANA*/ + RTUNI_ALPHA, /* U+00a9b1: JAVANESE LETTER SA*/ + RTUNI_ALPHA, /* U+00a9b2: JAVANESE LETTER HA*/ + 0, /* U+00a9b3: JAVANESE SIGN CECAK TELU*/ + RTUNI_ALPHA, /* U+00a9b4: JAVANESE VOWEL SIGN TARUNG*/ + RTUNI_ALPHA, /* U+00a9b5: JAVANESE VOWEL SIGN TOLONG*/ + RTUNI_ALPHA, /* U+00a9b6: JAVANESE VOWEL SIGN WULU*/ + RTUNI_ALPHA, /* U+00a9b7: JAVANESE VOWEL SIGN WULU MELIK*/ + RTUNI_ALPHA, /* U+00a9b8: JAVANESE VOWEL SIGN SUKU*/ + RTUNI_ALPHA, /* U+00a9b9: JAVANESE VOWEL SIGN SUKU MENDUT*/ + RTUNI_ALPHA, /* U+00a9ba: JAVANESE VOWEL SIGN TALING*/ + RTUNI_ALPHA, /* U+00a9bb: JAVANESE VOWEL SIGN DIRGA MURE*/ + RTUNI_ALPHA, /* U+00a9bc: JAVANESE VOWEL SIGN PEPET*/ + RTUNI_ALPHA, /* U+00a9bd: JAVANESE CONSONANT SIGN KERET*/ + RTUNI_ALPHA, /* U+00a9be: JAVANESE CONSONANT SIGN PENGKAL*/ + RTUNI_ALPHA, /* U+00a9bf: JAVANESE CONSONANT SIGN CAKRA*/ + 0, /* U+00a9c0: JAVANESE PANGKON*/ + 0, /* U+00a9c1: JAVANESE LEFT RERENGGAN*/ + 0, /* U+00a9c2: JAVANESE RIGHT RERENGGAN*/ + 0, /* U+00a9c3: JAVANESE PADA ANDAP*/ + 0, /* U+00a9c4: JAVANESE PADA MADYA*/ + 0, /* U+00a9c5: JAVANESE PADA LUHUR*/ + 0, /* U+00a9c6: JAVANESE PADA WINDU*/ + 0, /* U+00a9c7: JAVANESE PADA PANGKAT*/ + 0, /* U+00a9c8: JAVANESE PADA LINGSA*/ + 0, /* U+00a9c9: JAVANESE PADA LUNGSI*/ + 0, /* U+00a9ca: JAVANESE PADA ADEG*/ + 0, /* U+00a9cb: JAVANESE PADA ADEG ADEG*/ + 0, /* U+00a9cc: JAVANESE PADA PISELEH*/ + 0, /* U+00a9cd: JAVANESE TURNED PADA PISELEH*/ + 0, /* U+00a9ce: */ + RTUNI_ALPHA, /* U+00a9cf: JAVANESE PANGRANGKEP*/ + RTUNI_DDIGIT, /* U+00a9d0: JAVANESE DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+00a9d1: JAVANESE DIGIT ONE*/ + RTUNI_DDIGIT, /* U+00a9d2: JAVANESE DIGIT TWO*/ + RTUNI_DDIGIT, /* U+00a9d3: JAVANESE DIGIT THREE*/ + RTUNI_DDIGIT, /* U+00a9d4: JAVANESE DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+00a9d5: JAVANESE DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+00a9d6: JAVANESE DIGIT SIX*/ + RTUNI_DDIGIT, /* U+00a9d7: JAVANESE DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+00a9d8: JAVANESE DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+00a9d9: JAVANESE DIGIT NINE*/ + 0, /* U+00a9da: */ + 0, /* U+00a9db: */ + 0, /* U+00a9dc: */ + 0, /* U+00a9dd: */ + 0, /* U+00a9de: JAVANESE PADA TIRTA TUMETES*/ + 0, /* U+00a9df: JAVANESE PADA ISEN-ISEN*/ + 0, /* U+00a9e0: */ + 0, /* U+00a9e1: */ + 0, /* U+00a9e2: */ + 0, /* U+00a9e3: */ + 0, /* U+00a9e4: */ + 0, /* U+00a9e5: */ + 0, /* U+00a9e6: */ + 0, /* U+00a9e7: */ + 0, /* U+00a9e8: */ + 0, /* U+00a9e9: */ + 0, /* U+00a9ea: */ + 0, /* U+00a9eb: */ + 0, /* U+00a9ec: */ + 0, /* U+00a9ed: */ + 0, /* U+00a9ee: */ + 0, /* U+00a9ef: */ + 0, /* U+00a9f0: */ + 0, /* U+00a9f1: */ + 0, /* U+00a9f2: */ + 0, /* U+00a9f3: */ + 0, /* U+00a9f4: */ + 0, /* U+00a9f5: */ + 0, /* U+00a9f6: */ + 0, /* U+00a9f7: */ + 0, /* U+00a9f8: */ + 0, /* U+00a9f9: */ + 0, /* U+00a9fa: */ + 0, /* U+00a9fb: */ + 0, /* U+00a9fc: */ + 0, /* U+00a9fd: */ + 0, /* U+00a9fe: */ + 0, /* U+00a9ff: */ + RTUNI_ALPHA, /* U+00aa00: CHAM LETTER A*/ + RTUNI_ALPHA, /* U+00aa01: CHAM LETTER I*/ + RTUNI_ALPHA, /* U+00aa02: CHAM LETTER U*/ + RTUNI_ALPHA, /* U+00aa03: CHAM LETTER E*/ + RTUNI_ALPHA, /* U+00aa04: CHAM LETTER AI*/ + RTUNI_ALPHA, /* U+00aa05: CHAM LETTER O*/ + RTUNI_ALPHA, /* U+00aa06: CHAM LETTER KA*/ + RTUNI_ALPHA, /* U+00aa07: CHAM LETTER KHA*/ + RTUNI_ALPHA, /* U+00aa08: CHAM LETTER GA*/ + RTUNI_ALPHA, /* U+00aa09: CHAM LETTER GHA*/ + RTUNI_ALPHA, /* U+00aa0a: CHAM LETTER NGUE*/ + RTUNI_ALPHA, /* U+00aa0b: CHAM LETTER NGA*/ + RTUNI_ALPHA, /* U+00aa0c: CHAM LETTER CHA*/ + RTUNI_ALPHA, /* U+00aa0d: CHAM LETTER CHHA*/ + RTUNI_ALPHA, /* U+00aa0e: CHAM LETTER JA*/ + RTUNI_ALPHA, /* U+00aa0f: CHAM LETTER JHA*/ + RTUNI_ALPHA, /* U+00aa10: CHAM LETTER NHUE*/ + RTUNI_ALPHA, /* U+00aa11: CHAM LETTER NHA*/ + RTUNI_ALPHA, /* U+00aa12: CHAM LETTER NHJA*/ + RTUNI_ALPHA, /* U+00aa13: CHAM LETTER TA*/ + RTUNI_ALPHA, /* U+00aa14: CHAM LETTER THA*/ + RTUNI_ALPHA, /* U+00aa15: CHAM LETTER DA*/ + RTUNI_ALPHA, /* U+00aa16: CHAM LETTER DHA*/ + RTUNI_ALPHA, /* U+00aa17: CHAM LETTER NUE*/ + RTUNI_ALPHA, /* U+00aa18: CHAM LETTER NA*/ + RTUNI_ALPHA, /* U+00aa19: CHAM LETTER DDA*/ + RTUNI_ALPHA, /* U+00aa1a: CHAM LETTER PA*/ + RTUNI_ALPHA, /* U+00aa1b: CHAM LETTER PPA*/ + RTUNI_ALPHA, /* U+00aa1c: CHAM LETTER PHA*/ + RTUNI_ALPHA, /* U+00aa1d: CHAM LETTER BA*/ + RTUNI_ALPHA, /* U+00aa1e: CHAM LETTER BHA*/ + RTUNI_ALPHA, /* U+00aa1f: CHAM LETTER MUE*/ + RTUNI_ALPHA, /* U+00aa20: CHAM LETTER MA*/ + RTUNI_ALPHA, /* U+00aa21: CHAM LETTER BBA*/ + RTUNI_ALPHA, /* U+00aa22: CHAM LETTER YA*/ + RTUNI_ALPHA, /* U+00aa23: CHAM LETTER RA*/ + RTUNI_ALPHA, /* U+00aa24: CHAM LETTER LA*/ + RTUNI_ALPHA, /* U+00aa25: CHAM LETTER VA*/ + RTUNI_ALPHA, /* U+00aa26: CHAM LETTER SSA*/ + RTUNI_ALPHA, /* U+00aa27: CHAM LETTER SA*/ + RTUNI_ALPHA, /* U+00aa28: CHAM LETTER HA*/ + RTUNI_ALPHA, /* U+00aa29: CHAM VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+00aa2a: CHAM VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+00aa2b: CHAM VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+00aa2c: CHAM VOWEL SIGN EI*/ + RTUNI_ALPHA, /* U+00aa2d: CHAM VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+00aa2e: CHAM VOWEL SIGN OE*/ + RTUNI_ALPHA, /* U+00aa2f: CHAM VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+00aa30: CHAM VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+00aa31: CHAM VOWEL SIGN AU*/ + RTUNI_ALPHA, /* U+00aa32: CHAM VOWEL SIGN UE*/ + RTUNI_ALPHA, /* U+00aa33: CHAM CONSONANT SIGN YA*/ + RTUNI_ALPHA, /* U+00aa34: CHAM CONSONANT SIGN RA*/ + RTUNI_ALPHA, /* U+00aa35: CHAM CONSONANT SIGN LA*/ + RTUNI_ALPHA, /* U+00aa36: CHAM CONSONANT SIGN WA*/ + 0, /* U+00aa37: */ + 0, /* U+00aa38: */ + 0, /* U+00aa39: */ + 0, /* U+00aa3a: */ + 0, /* U+00aa3b: */ + 0, /* U+00aa3c: */ + 0, /* U+00aa3d: */ + 0, /* U+00aa3e: */ + 0, /* U+00aa3f: */ + RTUNI_ALPHA, /* U+00aa40: CHAM LETTER FINAL K*/ + RTUNI_ALPHA, /* U+00aa41: CHAM LETTER FINAL G*/ + RTUNI_ALPHA, /* U+00aa42: CHAM LETTER FINAL NG*/ + RTUNI_ALPHA, /* U+00aa43: CHAM CONSONANT SIGN FINAL NG*/ + RTUNI_ALPHA, /* U+00aa44: CHAM LETTER FINAL CH*/ + RTUNI_ALPHA, /* U+00aa45: CHAM LETTER FINAL T*/ + RTUNI_ALPHA, /* U+00aa46: CHAM LETTER FINAL N*/ + RTUNI_ALPHA, /* U+00aa47: CHAM LETTER FINAL P*/ + RTUNI_ALPHA, /* U+00aa48: CHAM LETTER FINAL Y*/ + RTUNI_ALPHA, /* U+00aa49: CHAM LETTER FINAL R*/ + RTUNI_ALPHA, /* U+00aa4a: CHAM LETTER FINAL L*/ + RTUNI_ALPHA, /* U+00aa4b: CHAM LETTER FINAL SS*/ + RTUNI_ALPHA, /* U+00aa4c: CHAM CONSONANT SIGN FINAL M*/ + RTUNI_ALPHA, /* U+00aa4d: CHAM CONSONANT SIGN FINAL H*/ + 0, /* U+00aa4e: */ + 0, /* U+00aa4f: */ + RTUNI_DDIGIT, /* U+00aa50: CHAM DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+00aa51: CHAM DIGIT ONE*/ + RTUNI_DDIGIT, /* U+00aa52: CHAM DIGIT TWO*/ + RTUNI_DDIGIT, /* U+00aa53: CHAM DIGIT THREE*/ + RTUNI_DDIGIT, /* U+00aa54: CHAM DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+00aa55: CHAM DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+00aa56: CHAM DIGIT SIX*/ + RTUNI_DDIGIT, /* U+00aa57: CHAM DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+00aa58: CHAM DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+00aa59: CHAM DIGIT NINE*/ + 0, /* U+00aa5a: */ + 0, /* U+00aa5b: */ + 0, /* U+00aa5c: CHAM PUNCTUATION SPIRAL*/ + 0, /* U+00aa5d: CHAM PUNCTUATION DANDA*/ + 0, /* U+00aa5e: CHAM PUNCTUATION DOUBLE DANDA*/ + 0, /* U+00aa5f: CHAM PUNCTUATION TRIPLE DANDA*/ + RTUNI_ALPHA, /* U+00aa60: MYANMAR LETTER KHAMTI GA*/ + RTUNI_ALPHA, /* U+00aa61: MYANMAR LETTER KHAMTI CA*/ + RTUNI_ALPHA, /* U+00aa62: MYANMAR LETTER KHAMTI CHA*/ + RTUNI_ALPHA, /* U+00aa63: MYANMAR LETTER KHAMTI JA*/ + RTUNI_ALPHA, /* U+00aa64: MYANMAR LETTER KHAMTI JHA*/ + RTUNI_ALPHA, /* U+00aa65: MYANMAR LETTER KHAMTI NYA*/ + RTUNI_ALPHA, /* U+00aa66: MYANMAR LETTER KHAMTI TTA*/ + RTUNI_ALPHA, /* U+00aa67: MYANMAR LETTER KHAMTI TTHA*/ + RTUNI_ALPHA, /* U+00aa68: MYANMAR LETTER KHAMTI DDA*/ + RTUNI_ALPHA, /* U+00aa69: MYANMAR LETTER KHAMTI DDHA*/ + RTUNI_ALPHA, /* U+00aa6a: MYANMAR LETTER KHAMTI DHA*/ + RTUNI_ALPHA, /* U+00aa6b: MYANMAR LETTER KHAMTI NA*/ + RTUNI_ALPHA, /* U+00aa6c: MYANMAR LETTER KHAMTI SA*/ + RTUNI_ALPHA, /* U+00aa6d: MYANMAR LETTER KHAMTI HA*/ + RTUNI_ALPHA, /* U+00aa6e: MYANMAR LETTER KHAMTI HHA*/ + RTUNI_ALPHA, /* U+00aa6f: MYANMAR LETTER KHAMTI FA*/ + RTUNI_ALPHA, /* U+00aa70: MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION*/ + RTUNI_ALPHA, /* U+00aa71: MYANMAR LETTER KHAMTI XA*/ + RTUNI_ALPHA, /* U+00aa72: MYANMAR LETTER KHAMTI ZA*/ + RTUNI_ALPHA, /* U+00aa73: MYANMAR LETTER KHAMTI RA*/ + RTUNI_ALPHA, /* U+00aa74: MYANMAR LOGOGRAM KHAMTI OAY*/ + RTUNI_ALPHA, /* U+00aa75: MYANMAR LOGOGRAM KHAMTI QN*/ + RTUNI_ALPHA, /* U+00aa76: MYANMAR LOGOGRAM KHAMTI HM*/ + 0, /* U+00aa77: MYANMAR SYMBOL AITON EXCLAMATION*/ + 0, /* U+00aa78: MYANMAR SYMBOL AITON ONE*/ + 0, /* U+00aa79: MYANMAR SYMBOL AITON TWO*/ + RTUNI_ALPHA, /* U+00aa7a: MYANMAR LETTER AITON RA*/ + 0, /* U+00aa7b: MYANMAR SIGN PAO KAREN TONE*/ + 0, /* U+00aa7c: */ + 0, /* U+00aa7d: */ + 0, /* U+00aa7e: */ + 0, /* U+00aa7f: */ + RTUNI_ALPHA, /* U+00aa80: TAI VIET LETTER LOW KO*/ + RTUNI_ALPHA, /* U+00aa81: TAI VIET LETTER HIGH KO*/ + RTUNI_ALPHA, /* U+00aa82: TAI VIET LETTER LOW KHO*/ + RTUNI_ALPHA, /* U+00aa83: TAI VIET LETTER HIGH KHO*/ + RTUNI_ALPHA, /* U+00aa84: TAI VIET LETTER LOW KHHO*/ + RTUNI_ALPHA, /* U+00aa85: TAI VIET LETTER HIGH KHHO*/ + RTUNI_ALPHA, /* U+00aa86: TAI VIET LETTER LOW GO*/ + RTUNI_ALPHA, /* U+00aa87: TAI VIET LETTER HIGH GO*/ + RTUNI_ALPHA, /* U+00aa88: TAI VIET LETTER LOW NGO*/ + RTUNI_ALPHA, /* U+00aa89: TAI VIET LETTER HIGH NGO*/ + RTUNI_ALPHA, /* U+00aa8a: TAI VIET LETTER LOW CO*/ + RTUNI_ALPHA, /* U+00aa8b: TAI VIET LETTER HIGH CO*/ + RTUNI_ALPHA, /* U+00aa8c: TAI VIET LETTER LOW CHO*/ + RTUNI_ALPHA, /* U+00aa8d: TAI VIET LETTER HIGH CHO*/ + RTUNI_ALPHA, /* U+00aa8e: TAI VIET LETTER LOW SO*/ + RTUNI_ALPHA, /* U+00aa8f: TAI VIET LETTER HIGH SO*/ + RTUNI_ALPHA, /* U+00aa90: TAI VIET LETTER LOW NYO*/ + RTUNI_ALPHA, /* U+00aa91: TAI VIET LETTER HIGH NYO*/ + RTUNI_ALPHA, /* U+00aa92: TAI VIET LETTER LOW DO*/ + RTUNI_ALPHA, /* U+00aa93: TAI VIET LETTER HIGH DO*/ + RTUNI_ALPHA, /* U+00aa94: TAI VIET LETTER LOW TO*/ + RTUNI_ALPHA, /* U+00aa95: TAI VIET LETTER HIGH TO*/ + RTUNI_ALPHA, /* U+00aa96: TAI VIET LETTER LOW THO*/ + RTUNI_ALPHA, /* U+00aa97: TAI VIET LETTER HIGH THO*/ + RTUNI_ALPHA, /* U+00aa98: TAI VIET LETTER LOW NO*/ + RTUNI_ALPHA, /* U+00aa99: TAI VIET LETTER HIGH NO*/ + RTUNI_ALPHA, /* U+00aa9a: TAI VIET LETTER LOW BO*/ + RTUNI_ALPHA, /* U+00aa9b: TAI VIET LETTER HIGH BO*/ + RTUNI_ALPHA, /* U+00aa9c: TAI VIET LETTER LOW PO*/ + RTUNI_ALPHA, /* U+00aa9d: TAI VIET LETTER HIGH PO*/ + RTUNI_ALPHA, /* U+00aa9e: TAI VIET LETTER LOW PHO*/ + RTUNI_ALPHA, /* U+00aa9f: TAI VIET LETTER HIGH PHO*/ + RTUNI_ALPHA, /* U+00aaa0: TAI VIET LETTER LOW FO*/ + RTUNI_ALPHA, /* U+00aaa1: TAI VIET LETTER HIGH FO*/ + RTUNI_ALPHA, /* U+00aaa2: TAI VIET LETTER LOW MO*/ + RTUNI_ALPHA, /* U+00aaa3: TAI VIET LETTER HIGH MO*/ + RTUNI_ALPHA, /* U+00aaa4: TAI VIET LETTER LOW YO*/ + RTUNI_ALPHA, /* U+00aaa5: TAI VIET LETTER HIGH YO*/ + RTUNI_ALPHA, /* U+00aaa6: TAI VIET LETTER LOW RO*/ + RTUNI_ALPHA, /* U+00aaa7: TAI VIET LETTER HIGH RO*/ + RTUNI_ALPHA, /* U+00aaa8: TAI VIET LETTER LOW LO*/ + RTUNI_ALPHA, /* U+00aaa9: TAI VIET LETTER HIGH LO*/ + RTUNI_ALPHA, /* U+00aaaa: TAI VIET LETTER LOW VO*/ + RTUNI_ALPHA, /* U+00aaab: TAI VIET LETTER HIGH VO*/ + RTUNI_ALPHA, /* U+00aaac: TAI VIET LETTER LOW HO*/ + RTUNI_ALPHA, /* U+00aaad: TAI VIET LETTER HIGH HO*/ + RTUNI_ALPHA, /* U+00aaae: TAI VIET LETTER LOW O*/ + RTUNI_ALPHA, /* U+00aaaf: TAI VIET LETTER HIGH O*/ + RTUNI_ALPHA, /* U+00aab0: TAI VIET MAI KANG*/ + RTUNI_ALPHA, /* U+00aab1: TAI VIET VOWEL AA*/ + RTUNI_ALPHA, /* U+00aab2: TAI VIET VOWEL I*/ + RTUNI_ALPHA, /* U+00aab3: TAI VIET VOWEL UE*/ + RTUNI_ALPHA, /* U+00aab4: TAI VIET VOWEL U*/ + RTUNI_ALPHA, /* U+00aab5: TAI VIET VOWEL E*/ + RTUNI_ALPHA, /* U+00aab6: TAI VIET VOWEL O*/ + RTUNI_ALPHA, /* U+00aab7: TAI VIET MAI KHIT*/ + RTUNI_ALPHA, /* U+00aab8: TAI VIET VOWEL IA*/ + RTUNI_ALPHA, /* U+00aab9: TAI VIET VOWEL UEA*/ + RTUNI_ALPHA, /* U+00aaba: TAI VIET VOWEL UA*/ + RTUNI_ALPHA, /* U+00aabb: TAI VIET VOWEL AUE*/ + RTUNI_ALPHA, /* U+00aabc: TAI VIET VOWEL AY*/ + RTUNI_ALPHA, /* U+00aabd: TAI VIET VOWEL AN*/ + RTUNI_ALPHA, /* U+00aabe: TAI VIET VOWEL AM*/ + 0, /* U+00aabf: TAI VIET TONE MAI EK*/ + RTUNI_ALPHA, /* U+00aac0: TAI VIET TONE MAI NUENG*/ + 0, /* U+00aac1: TAI VIET TONE MAI THO*/ + RTUNI_ALPHA, /* U+00aac2: TAI VIET TONE MAI SONG*/ + 0, /* U+00aac3: */ + 0, /* U+00aac4: */ + 0, /* U+00aac5: */ + 0, /* U+00aac6: */ + 0, /* U+00aac7: */ + 0, /* U+00aac8: */ + 0, /* U+00aac9: */ + 0, /* U+00aaca: */ + 0, /* U+00aacb: */ + 0, /* U+00aacc: */ + 0, /* U+00aacd: */ + 0, /* U+00aace: */ + 0, /* U+00aacf: */ + 0, /* U+00aad0: */ + 0, /* U+00aad1: */ + 0, /* U+00aad2: */ + 0, /* U+00aad3: */ + 0, /* U+00aad4: */ + 0, /* U+00aad5: */ + 0, /* U+00aad6: */ + 0, /* U+00aad7: */ + 0, /* U+00aad8: */ + 0, /* U+00aad9: */ + 0, /* U+00aada: */ + RTUNI_ALPHA, /* U+00aadb: TAI VIET SYMBOL KON*/ + RTUNI_ALPHA, /* U+00aadc: TAI VIET SYMBOL NUENG*/ + RTUNI_ALPHA, /* U+00aadd: TAI VIET SYMBOL SAM*/ + 0, /* U+00aade: TAI VIET SYMBOL HO HOI*/ + 0, /* U+00aadf: TAI VIET SYMBOL KOI KOI*/ + RTUNI_ALPHA, /* U+00aae0: MEETEI MAYEK LETTER E*/ + RTUNI_ALPHA, /* U+00aae1: MEETEI MAYEK LETTER O*/ + RTUNI_ALPHA, /* U+00aae2: MEETEI MAYEK LETTER CHA*/ + RTUNI_ALPHA, /* U+00aae3: MEETEI MAYEK LETTER NYA*/ + RTUNI_ALPHA, /* U+00aae4: MEETEI MAYEK LETTER TTA*/ + RTUNI_ALPHA, /* U+00aae5: MEETEI MAYEK LETTER TTHA*/ + RTUNI_ALPHA, /* U+00aae6: MEETEI MAYEK LETTER DDA*/ + RTUNI_ALPHA, /* U+00aae7: MEETEI MAYEK LETTER DDHA*/ + RTUNI_ALPHA, /* U+00aae8: MEETEI MAYEK LETTER NNA*/ + RTUNI_ALPHA, /* U+00aae9: MEETEI MAYEK LETTER SHA*/ + RTUNI_ALPHA, /* U+00aaea: MEETEI MAYEK LETTER SSA*/ + RTUNI_ALPHA, /* U+00aaeb: MEETEI MAYEK VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+00aaec: MEETEI MAYEK VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+00aaed: MEETEI MAYEK VOWEL SIGN AAI*/ + RTUNI_ALPHA, /* U+00aaee: MEETEI MAYEK VOWEL SIGN AU*/ + RTUNI_ALPHA, /* U+00aaef: MEETEI MAYEK VOWEL SIGN AAU*/ + 0, /* U+00aaf0: MEETEI MAYEK CHEIKHAN*/ + 0, /* U+00aaf1: MEETEI MAYEK AHANG KHUDAM*/ + RTUNI_ALPHA, /* U+00aaf2: MEETEI MAYEK ANJI*/ + RTUNI_ALPHA, /* U+00aaf3: MEETEI MAYEK SYLLABLE REPETITION MARK*/ + RTUNI_ALPHA, /* U+00aaf4: MEETEI MAYEK WORD REPETITION MARK*/ + RTUNI_ALPHA, /* U+00aaf5: MEETEI MAYEK VOWEL SIGN VISARGA*/ + 0, /* U+00aaf6: MEETEI MAYEK VIRAMA*/ + 0, /* U+00aaf7: */ + 0, /* U+00aaf8: */ + 0, /* U+00aaf9: */ + 0, /* U+00aafa: */ + 0, /* U+00aafb: */ + 0, /* U+00aafc: */ + 0, /* U+00aafd: */ + 0, /* U+00aafe: */ + 0, /* U+00aaff: */ + 0, /* U+00ab00: */ + RTUNI_ALPHA, /* U+00ab01: ETHIOPIC SYLLABLE TTHU*/ + RTUNI_ALPHA, /* U+00ab02: ETHIOPIC SYLLABLE TTHI*/ + RTUNI_ALPHA, /* U+00ab03: ETHIOPIC SYLLABLE TTHAA*/ + RTUNI_ALPHA, /* U+00ab04: ETHIOPIC SYLLABLE TTHEE*/ + RTUNI_ALPHA, /* U+00ab05: ETHIOPIC SYLLABLE TTHE*/ + RTUNI_ALPHA, /* U+00ab06: ETHIOPIC SYLLABLE TTHO*/ + 0, /* U+00ab07: */ + 0, /* U+00ab08: */ + RTUNI_ALPHA, /* U+00ab09: ETHIOPIC SYLLABLE DDHU*/ + RTUNI_ALPHA, /* U+00ab0a: ETHIOPIC SYLLABLE DDHI*/ + RTUNI_ALPHA, /* U+00ab0b: ETHIOPIC SYLLABLE DDHAA*/ + RTUNI_ALPHA, /* U+00ab0c: ETHIOPIC SYLLABLE DDHEE*/ + RTUNI_ALPHA, /* U+00ab0d: ETHIOPIC SYLLABLE DDHE*/ + RTUNI_ALPHA, /* U+00ab0e: ETHIOPIC SYLLABLE DDHO*/ + 0, /* U+00ab0f: */ + 0, /* U+00ab10: */ + RTUNI_ALPHA, /* U+00ab11: ETHIOPIC SYLLABLE DZU*/ + RTUNI_ALPHA, /* U+00ab12: ETHIOPIC SYLLABLE DZI*/ + RTUNI_ALPHA, /* U+00ab13: ETHIOPIC SYLLABLE DZAA*/ + RTUNI_ALPHA, /* U+00ab14: ETHIOPIC SYLLABLE DZEE*/ + RTUNI_ALPHA, /* U+00ab15: ETHIOPIC SYLLABLE DZE*/ + RTUNI_ALPHA, /* U+00ab16: ETHIOPIC SYLLABLE DZO*/ + 0, /* U+00ab17: */ + 0, /* U+00ab18: */ + 0, /* U+00ab19: */ + 0, /* U+00ab1a: */ + 0, /* U+00ab1b: */ + 0, /* U+00ab1c: */ + 0, /* U+00ab1d: */ + 0, /* U+00ab1e: */ + 0, /* U+00ab1f: */ + RTUNI_ALPHA, /* U+00ab20: ETHIOPIC SYLLABLE CCHHA*/ + RTUNI_ALPHA, /* U+00ab21: ETHIOPIC SYLLABLE CCHHU*/ + RTUNI_ALPHA, /* U+00ab22: ETHIOPIC SYLLABLE CCHHI*/ + RTUNI_ALPHA, /* U+00ab23: ETHIOPIC SYLLABLE CCHHAA*/ + RTUNI_ALPHA, /* U+00ab24: ETHIOPIC SYLLABLE CCHHEE*/ + RTUNI_ALPHA, /* U+00ab25: ETHIOPIC SYLLABLE CCHHE*/ + RTUNI_ALPHA, /* U+00ab26: ETHIOPIC SYLLABLE CCHHO*/ + 0, /* U+00ab27: */ + RTUNI_ALPHA, /* U+00ab28: ETHIOPIC SYLLABLE BBA*/ + RTUNI_ALPHA, /* U+00ab29: ETHIOPIC SYLLABLE BBU*/ + RTUNI_ALPHA, /* U+00ab2a: ETHIOPIC SYLLABLE BBI*/ + RTUNI_ALPHA, /* U+00ab2b: ETHIOPIC SYLLABLE BBAA*/ + RTUNI_ALPHA, /* U+00ab2c: ETHIOPIC SYLLABLE BBEE*/ + RTUNI_ALPHA, /* U+00ab2d: ETHIOPIC SYLLABLE BBE*/ + RTUNI_ALPHA, /* U+00ab2e: ETHIOPIC SYLLABLE BBO*/ + 0, /* U+00ab2f: */ + 0, /* U+00ab30: */ + 0, /* U+00ab31: */ + 0, /* U+00ab32: */ + 0, /* U+00ab33: */ + 0, /* U+00ab34: */ + 0, /* U+00ab35: */ + 0, /* U+00ab36: */ + 0, /* U+00ab37: */ + 0, /* U+00ab38: */ + 0, /* U+00ab39: */ + 0, /* U+00ab3a: */ + 0, /* U+00ab3b: */ + 0, /* U+00ab3c: */ + 0, /* U+00ab3d: */ + 0, /* U+00ab3e: */ + 0, /* U+00ab3f: */ + 0, /* U+00ab40: */ + 0, /* U+00ab41: */ + 0, /* U+00ab42: */ + 0, /* U+00ab43: */ + 0, /* U+00ab44: */ + 0, /* U+00ab45: */ + 0, /* U+00ab46: */ + 0, /* U+00ab47: */ + 0, /* U+00ab48: */ + 0, /* U+00ab49: */ + 0, /* U+00ab4a: */ + 0, /* U+00ab4b: */ + 0, /* U+00ab4c: */ + 0, /* U+00ab4d: */ + 0, /* U+00ab4e: */ + 0, /* U+00ab4f: */ + 0, /* U+00ab50: */ + 0, /* U+00ab51: */ + 0, /* U+00ab52: */ + 0, /* U+00ab53: */ + 0, /* U+00ab54: */ + 0, /* U+00ab55: */ + 0, /* U+00ab56: */ + 0, /* U+00ab57: */ + 0, /* U+00ab58: */ + 0, /* U+00ab59: */ + 0, /* U+00ab5a: */ + 0, /* U+00ab5b: */ + 0, /* U+00ab5c: */ + 0, /* U+00ab5d: */ + 0, /* U+00ab5e: */ + 0, /* U+00ab5f: */ + 0, /* U+00ab60: */ + 0, /* U+00ab61: */ + 0, /* U+00ab62: */ + 0, /* U+00ab63: */ + 0, /* U+00ab64: */ + 0, /* U+00ab65: */ + 0, /* U+00ab66: */ + 0, /* U+00ab67: */ + 0, /* U+00ab68: */ + 0, /* U+00ab69: */ + 0, /* U+00ab6a: */ + 0, /* U+00ab6b: */ + 0, /* U+00ab6c: */ + 0, /* U+00ab6d: */ + 0, /* U+00ab6e: */ + 0, /* U+00ab6f: */ + 0, /* U+00ab70: */ + 0, /* U+00ab71: */ + 0, /* U+00ab72: */ + 0, /* U+00ab73: */ + 0, /* U+00ab74: */ + 0, /* U+00ab75: */ + 0, /* U+00ab76: */ + 0, /* U+00ab77: */ + 0, /* U+00ab78: */ + 0, /* U+00ab79: */ + 0, /* U+00ab7a: */ + 0, /* U+00ab7b: */ + 0, /* U+00ab7c: */ + 0, /* U+00ab7d: */ + 0, /* U+00ab7e: */ + 0, /* U+00ab7f: */ + 0, /* U+00ab80: */ + 0, /* U+00ab81: */ + 0, /* U+00ab82: */ + 0, /* U+00ab83: */ + 0, /* U+00ab84: */ + 0, /* U+00ab85: */ + 0, /* U+00ab86: */ + 0, /* U+00ab87: */ + 0, /* U+00ab88: */ + 0, /* U+00ab89: */ + 0, /* U+00ab8a: */ + 0, /* U+00ab8b: */ + 0, /* U+00ab8c: */ + 0, /* U+00ab8d: */ + 0, /* U+00ab8e: */ + 0, /* U+00ab8f: */ + 0, /* U+00ab90: */ + 0, /* U+00ab91: */ + 0, /* U+00ab92: */ + 0, /* U+00ab93: */ + 0, /* U+00ab94: */ + 0, /* U+00ab95: */ + 0, /* U+00ab96: */ + 0, /* U+00ab97: */ + 0, /* U+00ab98: */ + 0, /* U+00ab99: */ + 0, /* U+00ab9a: */ + 0, /* U+00ab9b: */ + 0, /* U+00ab9c: */ + 0, /* U+00ab9d: */ + 0, /* U+00ab9e: */ + 0, /* U+00ab9f: */ + 0, /* U+00aba0: */ + 0, /* U+00aba1: */ + 0, /* U+00aba2: */ + 0, /* U+00aba3: */ + 0, /* U+00aba4: */ + 0, /* U+00aba5: */ + 0, /* U+00aba6: */ + 0, /* U+00aba7: */ + 0, /* U+00aba8: */ + 0, /* U+00aba9: */ + 0, /* U+00abaa: */ + 0, /* U+00abab: */ + 0, /* U+00abac: */ + 0, /* U+00abad: */ + 0, /* U+00abae: */ + 0, /* U+00abaf: */ + 0, /* U+00abb0: */ + 0, /* U+00abb1: */ + 0, /* U+00abb2: */ + 0, /* U+00abb3: */ + 0, /* U+00abb4: */ + 0, /* U+00abb5: */ + 0, /* U+00abb6: */ + 0, /* U+00abb7: */ + 0, /* U+00abb8: */ + 0, /* U+00abb9: */ + 0, /* U+00abba: */ + 0, /* U+00abbb: */ + 0, /* U+00abbc: */ + 0, /* U+00abbd: */ + 0, /* U+00abbe: */ + 0, /* U+00abbf: */ + RTUNI_ALPHA, /* U+00abc0: MEETEI MAYEK LETTER KOK*/ + RTUNI_ALPHA, /* U+00abc1: MEETEI MAYEK LETTER SAM*/ + RTUNI_ALPHA, /* U+00abc2: MEETEI MAYEK LETTER LAI*/ + RTUNI_ALPHA, /* U+00abc3: MEETEI MAYEK LETTER MIT*/ + RTUNI_ALPHA, /* U+00abc4: MEETEI MAYEK LETTER PA*/ + RTUNI_ALPHA, /* U+00abc5: MEETEI MAYEK LETTER NA*/ + RTUNI_ALPHA, /* U+00abc6: MEETEI MAYEK LETTER CHIL*/ + RTUNI_ALPHA, /* U+00abc7: MEETEI MAYEK LETTER TIL*/ + RTUNI_ALPHA, /* U+00abc8: MEETEI MAYEK LETTER KHOU*/ + RTUNI_ALPHA, /* U+00abc9: MEETEI MAYEK LETTER NGOU*/ + RTUNI_ALPHA, /* U+00abca: MEETEI MAYEK LETTER THOU*/ + RTUNI_ALPHA, /* U+00abcb: MEETEI MAYEK LETTER WAI*/ + RTUNI_ALPHA, /* U+00abcc: MEETEI MAYEK LETTER YANG*/ + RTUNI_ALPHA, /* U+00abcd: MEETEI MAYEK LETTER HUK*/ + RTUNI_ALPHA, /* U+00abce: MEETEI MAYEK LETTER UN*/ + RTUNI_ALPHA, /* U+00abcf: MEETEI MAYEK LETTER I*/ + RTUNI_ALPHA, /* U+00abd0: MEETEI MAYEK LETTER PHAM*/ + RTUNI_ALPHA, /* U+00abd1: MEETEI MAYEK LETTER ATIYA*/ + RTUNI_ALPHA, /* U+00abd2: MEETEI MAYEK LETTER GOK*/ + RTUNI_ALPHA, /* U+00abd3: MEETEI MAYEK LETTER JHAM*/ + RTUNI_ALPHA, /* U+00abd4: MEETEI MAYEK LETTER RAI*/ + RTUNI_ALPHA, /* U+00abd5: MEETEI MAYEK LETTER BA*/ + RTUNI_ALPHA, /* U+00abd6: MEETEI MAYEK LETTER JIL*/ + RTUNI_ALPHA, /* U+00abd7: MEETEI MAYEK LETTER DIL*/ + RTUNI_ALPHA, /* U+00abd8: MEETEI MAYEK LETTER GHOU*/ + RTUNI_ALPHA, /* U+00abd9: MEETEI MAYEK LETTER DHOU*/ + RTUNI_ALPHA, /* U+00abda: MEETEI MAYEK LETTER BHAM*/ + RTUNI_ALPHA, /* U+00abdb: MEETEI MAYEK LETTER KOK LONSUM*/ + RTUNI_ALPHA, /* U+00abdc: MEETEI MAYEK LETTER LAI LONSUM*/ + RTUNI_ALPHA, /* U+00abdd: MEETEI MAYEK LETTER MIT LONSUM*/ + RTUNI_ALPHA, /* U+00abde: MEETEI MAYEK LETTER PA LONSUM*/ + RTUNI_ALPHA, /* U+00abdf: MEETEI MAYEK LETTER NA LONSUM*/ + RTUNI_ALPHA, /* U+00abe0: MEETEI MAYEK LETTER TIL LONSUM*/ + RTUNI_ALPHA, /* U+00abe1: MEETEI MAYEK LETTER NGOU LONSUM*/ + RTUNI_ALPHA, /* U+00abe2: MEETEI MAYEK LETTER I LONSUM*/ + RTUNI_ALPHA, /* U+00abe3: MEETEI MAYEK VOWEL SIGN ONAP*/ + RTUNI_ALPHA, /* U+00abe4: MEETEI MAYEK VOWEL SIGN INAP*/ + RTUNI_ALPHA, /* U+00abe5: MEETEI MAYEK VOWEL SIGN ANAP*/ + RTUNI_ALPHA, /* U+00abe6: MEETEI MAYEK VOWEL SIGN YENAP*/ + RTUNI_ALPHA, /* U+00abe7: MEETEI MAYEK VOWEL SIGN SOUNAP*/ + RTUNI_ALPHA, /* U+00abe8: MEETEI MAYEK VOWEL SIGN UNAP*/ + RTUNI_ALPHA, /* U+00abe9: MEETEI MAYEK VOWEL SIGN CHEINAP*/ + RTUNI_ALPHA, /* U+00abea: MEETEI MAYEK VOWEL SIGN NUNG*/ + 0, /* U+00abeb: MEETEI MAYEK CHEIKHEI*/ + 0, /* U+00abec: MEETEI MAYEK LUM IYEK*/ + 0, /* U+00abed: MEETEI MAYEK APUN IYEK*/ + 0, /* U+00abee: */ + 0, /* U+00abef: */ + RTUNI_DDIGIT, /* U+00abf0: MEETEI MAYEK DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+00abf1: MEETEI MAYEK DIGIT ONE*/ + RTUNI_DDIGIT, /* U+00abf2: MEETEI MAYEK DIGIT TWO*/ + RTUNI_DDIGIT, /* U+00abf3: MEETEI MAYEK DIGIT THREE*/ + RTUNI_DDIGIT, /* U+00abf4: MEETEI MAYEK DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+00abf5: MEETEI MAYEK DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+00abf6: MEETEI MAYEK DIGIT SIX*/ + RTUNI_DDIGIT, /* U+00abf7: MEETEI MAYEK DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+00abf8: MEETEI MAYEK DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+00abf9: MEETEI MAYEK DIGIT NINE*/ + 0, /* U+00abfa: */ + 0, /* U+00abfb: */ + 0, /* U+00abfc: */ + 0, /* U+00abfd: */ + 0, /* U+00abfe: */ + 0, /* U+00abff: */ + RTUNI_ALPHA, /* U+00ac00: <Hangul Syllable, First>*/ + RTUNI_ALPHA, /* U+00ac01: */ + RTUNI_ALPHA, /* U+00ac02: */ + RTUNI_ALPHA, /* U+00ac03: */ + RTUNI_ALPHA, /* U+00ac04: */ + RTUNI_ALPHA, /* U+00ac05: */ + RTUNI_ALPHA, /* U+00ac06: */ + RTUNI_ALPHA, /* U+00ac07: */ + RTUNI_ALPHA, /* U+00ac08: */ + RTUNI_ALPHA, /* U+00ac09: */ + RTUNI_ALPHA, /* U+00ac0a: */ + RTUNI_ALPHA, /* U+00ac0b: */ + RTUNI_ALPHA, /* U+00ac0c: */ + RTUNI_ALPHA, /* U+00ac0d: */ + RTUNI_ALPHA, /* U+00ac0e: */ + RTUNI_ALPHA, /* U+00ac0f: */ + RTUNI_ALPHA, /* U+00ac10: */ + RTUNI_ALPHA, /* U+00ac11: */ + RTUNI_ALPHA, /* U+00ac12: */ + RTUNI_ALPHA, /* U+00ac13: */ + RTUNI_ALPHA, /* U+00ac14: */ + RTUNI_ALPHA, /* U+00ac15: */ + RTUNI_ALPHA, /* U+00ac16: */ + RTUNI_ALPHA, /* U+00ac17: */ + RTUNI_ALPHA, /* U+00ac18: */ + RTUNI_ALPHA, /* U+00ac19: */ + RTUNI_ALPHA, /* U+00ac1a: */ + RTUNI_ALPHA, /* U+00ac1b: */ + RTUNI_ALPHA, /* U+00ac1c: */ + RTUNI_ALPHA, /* U+00ac1d: */ + RTUNI_ALPHA, /* U+00ac1e: */ + RTUNI_ALPHA, /* U+00ac1f: */ + RTUNI_ALPHA, /* U+00ac20: */ + RTUNI_ALPHA, /* U+00ac21: */ + RTUNI_ALPHA, /* U+00ac22: */ + RTUNI_ALPHA, /* U+00ac23: */ + RTUNI_ALPHA, /* U+00ac24: */ + RTUNI_ALPHA, /* U+00ac25: */ + RTUNI_ALPHA, /* U+00ac26: */ + RTUNI_ALPHA, /* U+00ac27: */ + RTUNI_ALPHA, /* U+00ac28: */ + RTUNI_ALPHA, /* U+00ac29: */ + RTUNI_ALPHA, /* U+00ac2a: */ + RTUNI_ALPHA, /* U+00ac2b: */ + RTUNI_ALPHA, /* U+00ac2c: */ + RTUNI_ALPHA, /* U+00ac2d: */ + RTUNI_ALPHA, /* U+00ac2e: */ + RTUNI_ALPHA, /* U+00ac2f: */ + RTUNI_ALPHA, /* U+00ac30: */ + RTUNI_ALPHA, /* U+00ac31: */ + RTUNI_ALPHA, /* U+00ac32: */ + RTUNI_ALPHA, /* U+00ac33: */ + RTUNI_ALPHA, /* U+00ac34: */ + RTUNI_ALPHA, /* U+00ac35: */ + RTUNI_ALPHA, /* U+00ac36: */ + RTUNI_ALPHA, /* U+00ac37: */ + RTUNI_ALPHA, /* U+00ac38: */ + RTUNI_ALPHA, /* U+00ac39: */ + RTUNI_ALPHA, /* U+00ac3a: */ + RTUNI_ALPHA, /* U+00ac3b: */ + RTUNI_ALPHA, /* U+00ac3c: */ + RTUNI_ALPHA, /* U+00ac3d: */ + RTUNI_ALPHA, /* U+00ac3e: */ + RTUNI_ALPHA, /* U+00ac3f: */ + RTUNI_ALPHA, /* U+00ac40: */ + RTUNI_ALPHA, /* U+00ac41: */ + RTUNI_ALPHA, /* U+00ac42: */ + RTUNI_ALPHA, /* U+00ac43: */ + RTUNI_ALPHA, /* U+00ac44: */ + RTUNI_ALPHA, /* U+00ac45: */ + RTUNI_ALPHA, /* U+00ac46: */ + RTUNI_ALPHA, /* U+00ac47: */ + RTUNI_ALPHA, /* U+00ac48: */ + RTUNI_ALPHA, /* U+00ac49: */ + RTUNI_ALPHA, /* U+00ac4a: */ + RTUNI_ALPHA, /* U+00ac4b: */ + RTUNI_ALPHA, /* U+00ac4c: */ + RTUNI_ALPHA, /* U+00ac4d: */ + RTUNI_ALPHA, /* U+00ac4e: */ + RTUNI_ALPHA, /* U+00ac4f: */ + RTUNI_ALPHA, /* U+00ac50: */ + RTUNI_ALPHA, /* U+00ac51: */ + RTUNI_ALPHA, /* U+00ac52: */ + RTUNI_ALPHA, /* U+00ac53: */ + RTUNI_ALPHA, /* U+00ac54: */ + RTUNI_ALPHA, /* U+00ac55: */ + RTUNI_ALPHA, /* U+00ac56: */ + RTUNI_ALPHA, /* U+00ac57: */ + RTUNI_ALPHA, /* U+00ac58: */ + RTUNI_ALPHA, /* U+00ac59: */ + RTUNI_ALPHA, /* U+00ac5a: */ + RTUNI_ALPHA, /* U+00ac5b: */ + RTUNI_ALPHA, /* U+00ac5c: */ + RTUNI_ALPHA, /* U+00ac5d: */ + RTUNI_ALPHA, /* U+00ac5e: */ + RTUNI_ALPHA, /* U+00ac5f: */ + RTUNI_ALPHA, /* U+00ac60: */ + RTUNI_ALPHA, /* U+00ac61: */ + RTUNI_ALPHA, /* U+00ac62: */ + RTUNI_ALPHA, /* U+00ac63: */ + RTUNI_ALPHA, /* U+00ac64: */ + RTUNI_ALPHA, /* U+00ac65: */ + RTUNI_ALPHA, /* U+00ac66: */ + RTUNI_ALPHA, /* U+00ac67: */ + RTUNI_ALPHA, /* U+00ac68: */ + RTUNI_ALPHA, /* U+00ac69: */ + RTUNI_ALPHA, /* U+00ac6a: */ + RTUNI_ALPHA, /* U+00ac6b: */ + RTUNI_ALPHA, /* U+00ac6c: */ + RTUNI_ALPHA, /* U+00ac6d: */ + RTUNI_ALPHA, /* U+00ac6e: */ + RTUNI_ALPHA, /* U+00ac6f: */ + RTUNI_ALPHA, /* U+00ac70: */ + RTUNI_ALPHA, /* U+00ac71: */ + RTUNI_ALPHA, /* U+00ac72: */ + RTUNI_ALPHA, /* U+00ac73: */ + RTUNI_ALPHA, /* U+00ac74: */ + RTUNI_ALPHA, /* U+00ac75: */ + RTUNI_ALPHA, /* U+00ac76: */ + RTUNI_ALPHA, /* U+00ac77: */ + RTUNI_ALPHA, /* U+00ac78: */ + RTUNI_ALPHA, /* U+00ac79: */ + RTUNI_ALPHA, /* U+00ac7a: */ + RTUNI_ALPHA, /* U+00ac7b: */ + RTUNI_ALPHA, /* U+00ac7c: */ + RTUNI_ALPHA, /* U+00ac7d: */ + RTUNI_ALPHA, /* U+00ac7e: */ + RTUNI_ALPHA, /* U+00ac7f: */ + RTUNI_ALPHA, /* U+00ac80: */ + RTUNI_ALPHA, /* U+00ac81: */ + RTUNI_ALPHA, /* U+00ac82: */ + RTUNI_ALPHA, /* U+00ac83: */ + RTUNI_ALPHA, /* U+00ac84: */ + RTUNI_ALPHA, /* U+00ac85: */ + RTUNI_ALPHA, /* U+00ac86: */ + RTUNI_ALPHA, /* U+00ac87: */ + RTUNI_ALPHA, /* U+00ac88: */ + RTUNI_ALPHA, /* U+00ac89: */ + RTUNI_ALPHA, /* U+00ac8a: */ + RTUNI_ALPHA, /* U+00ac8b: */ + RTUNI_ALPHA, /* U+00ac8c: */ + RTUNI_ALPHA, /* U+00ac8d: */ + RTUNI_ALPHA, /* U+00ac8e: */ + RTUNI_ALPHA, /* U+00ac8f: */ + RTUNI_ALPHA, /* U+00ac90: */ + RTUNI_ALPHA, /* U+00ac91: */ + RTUNI_ALPHA, /* U+00ac92: */ + RTUNI_ALPHA, /* U+00ac93: */ + RTUNI_ALPHA, /* U+00ac94: */ + RTUNI_ALPHA, /* U+00ac95: */ + RTUNI_ALPHA, /* U+00ac96: */ + RTUNI_ALPHA, /* U+00ac97: */ + RTUNI_ALPHA, /* U+00ac98: */ + RTUNI_ALPHA, /* U+00ac99: */ + RTUNI_ALPHA, /* U+00ac9a: */ + RTUNI_ALPHA, /* U+00ac9b: */ + RTUNI_ALPHA, /* U+00ac9c: */ + RTUNI_ALPHA, /* U+00ac9d: */ + RTUNI_ALPHA, /* U+00ac9e: */ + RTUNI_ALPHA, /* U+00ac9f: */ + RTUNI_ALPHA, /* U+00aca0: */ + RTUNI_ALPHA, /* U+00aca1: */ + RTUNI_ALPHA, /* U+00aca2: */ + RTUNI_ALPHA, /* U+00aca3: */ + RTUNI_ALPHA, /* U+00aca4: */ + RTUNI_ALPHA, /* U+00aca5: */ + RTUNI_ALPHA, /* U+00aca6: */ + RTUNI_ALPHA, /* U+00aca7: */ + RTUNI_ALPHA, /* U+00aca8: */ + RTUNI_ALPHA, /* U+00aca9: */ + RTUNI_ALPHA, /* U+00acaa: */ + RTUNI_ALPHA, /* U+00acab: */ + RTUNI_ALPHA, /* U+00acac: */ + RTUNI_ALPHA, /* U+00acad: */ + RTUNI_ALPHA, /* U+00acae: */ + RTUNI_ALPHA, /* U+00acaf: */ + RTUNI_ALPHA, /* U+00acb0: */ + RTUNI_ALPHA, /* U+00acb1: */ + RTUNI_ALPHA, /* U+00acb2: */ + RTUNI_ALPHA, /* U+00acb3: */ + RTUNI_ALPHA, /* U+00acb4: */ + RTUNI_ALPHA, /* U+00acb5: */ + RTUNI_ALPHA, /* U+00acb6: */ + RTUNI_ALPHA, /* U+00acb7: */ + RTUNI_ALPHA, /* U+00acb8: */ + RTUNI_ALPHA, /* U+00acb9: */ + RTUNI_ALPHA, /* U+00acba: */ + RTUNI_ALPHA, /* U+00acbb: */ + RTUNI_ALPHA, /* U+00acbc: */ + RTUNI_ALPHA, /* U+00acbd: */ + RTUNI_ALPHA, /* U+00acbe: */ + RTUNI_ALPHA, /* U+00acbf: */ + RTUNI_ALPHA, /* U+00acc0: */ + RTUNI_ALPHA, /* U+00acc1: */ + RTUNI_ALPHA, /* U+00acc2: */ + RTUNI_ALPHA, /* U+00acc3: */ + RTUNI_ALPHA, /* U+00acc4: */ + RTUNI_ALPHA, /* U+00acc5: */ + RTUNI_ALPHA, /* U+00acc6: */ + RTUNI_ALPHA, /* U+00acc7: */ + RTUNI_ALPHA, /* U+00acc8: */ + RTUNI_ALPHA, /* U+00acc9: */ + RTUNI_ALPHA, /* U+00acca: */ + RTUNI_ALPHA, /* U+00accb: */ + RTUNI_ALPHA, /* U+00accc: */ + RTUNI_ALPHA, /* U+00accd: */ + RTUNI_ALPHA, /* U+00acce: */ + RTUNI_ALPHA, /* U+00accf: */ + RTUNI_ALPHA, /* U+00acd0: */ + RTUNI_ALPHA, /* U+00acd1: */ + RTUNI_ALPHA, /* U+00acd2: */ + RTUNI_ALPHA, /* U+00acd3: */ + RTUNI_ALPHA, /* U+00acd4: */ + RTUNI_ALPHA, /* U+00acd5: */ + RTUNI_ALPHA, /* U+00acd6: */ + RTUNI_ALPHA, /* U+00acd7: */ + RTUNI_ALPHA, /* U+00acd8: */ + RTUNI_ALPHA, /* U+00acd9: */ + RTUNI_ALPHA, /* U+00acda: */ + RTUNI_ALPHA, /* U+00acdb: */ + RTUNI_ALPHA, /* U+00acdc: */ + RTUNI_ALPHA, /* U+00acdd: */ + RTUNI_ALPHA, /* U+00acde: */ + RTUNI_ALPHA, /* U+00acdf: */ + RTUNI_ALPHA, /* U+00ace0: */ + RTUNI_ALPHA, /* U+00ace1: */ + RTUNI_ALPHA, /* U+00ace2: */ + RTUNI_ALPHA, /* U+00ace3: */ + RTUNI_ALPHA, /* U+00ace4: */ + RTUNI_ALPHA, /* U+00ace5: */ + RTUNI_ALPHA, /* U+00ace6: */ + RTUNI_ALPHA, /* U+00ace7: */ + RTUNI_ALPHA, /* U+00ace8: */ + RTUNI_ALPHA, /* U+00ace9: */ + RTUNI_ALPHA, /* U+00acea: */ + RTUNI_ALPHA, /* U+00aceb: */ + RTUNI_ALPHA, /* U+00acec: */ + RTUNI_ALPHA, /* U+00aced: */ + RTUNI_ALPHA, /* U+00acee: */ + RTUNI_ALPHA, /* U+00acef: */ + RTUNI_ALPHA, /* U+00acf0: */ + RTUNI_ALPHA, /* U+00acf1: */ + RTUNI_ALPHA, /* U+00acf2: */ + RTUNI_ALPHA, /* U+00acf3: */ + RTUNI_ALPHA, /* U+00acf4: */ + RTUNI_ALPHA, /* U+00acf5: */ + RTUNI_ALPHA, /* U+00acf6: */ + RTUNI_ALPHA, /* U+00acf7: */ + RTUNI_ALPHA, /* U+00acf8: */ + RTUNI_ALPHA, /* U+00acf9: */ + RTUNI_ALPHA, /* U+00acfa: */ + RTUNI_ALPHA, /* U+00acfb: */ + RTUNI_ALPHA, /* U+00acfc: */ + RTUNI_ALPHA, /* U+00acfd: */ + RTUNI_ALPHA, /* U+00acfe: */ + RTUNI_ALPHA, /* U+00acff: */ + RTUNI_ALPHA, /* U+00ad00: */ + RTUNI_ALPHA, /* U+00ad01: */ + RTUNI_ALPHA, /* U+00ad02: */ + RTUNI_ALPHA, /* U+00ad03: */ + RTUNI_ALPHA, /* U+00ad04: */ + RTUNI_ALPHA, /* U+00ad05: */ + RTUNI_ALPHA, /* U+00ad06: */ + RTUNI_ALPHA, /* U+00ad07: */ + RTUNI_ALPHA, /* U+00ad08: */ + RTUNI_ALPHA, /* U+00ad09: */ + RTUNI_ALPHA, /* U+00ad0a: */ + RTUNI_ALPHA, /* U+00ad0b: */ + RTUNI_ALPHA, /* U+00ad0c: */ + RTUNI_ALPHA, /* U+00ad0d: */ + RTUNI_ALPHA, /* U+00ad0e: */ + RTUNI_ALPHA, /* U+00ad0f: */ + RTUNI_ALPHA, /* U+00ad10: */ + RTUNI_ALPHA, /* U+00ad11: */ + RTUNI_ALPHA, /* U+00ad12: */ + RTUNI_ALPHA, /* U+00ad13: */ + RTUNI_ALPHA, /* U+00ad14: */ + RTUNI_ALPHA, /* U+00ad15: */ + RTUNI_ALPHA, /* U+00ad16: */ + RTUNI_ALPHA, /* U+00ad17: */ + RTUNI_ALPHA, /* U+00ad18: */ + RTUNI_ALPHA, /* U+00ad19: */ + RTUNI_ALPHA, /* U+00ad1a: */ + RTUNI_ALPHA, /* U+00ad1b: */ + RTUNI_ALPHA, /* U+00ad1c: */ + RTUNI_ALPHA, /* U+00ad1d: */ + RTUNI_ALPHA, /* U+00ad1e: */ + RTUNI_ALPHA, /* U+00ad1f: */ + RTUNI_ALPHA, /* U+00ad20: */ + RTUNI_ALPHA, /* U+00ad21: */ + RTUNI_ALPHA, /* U+00ad22: */ + RTUNI_ALPHA, /* U+00ad23: */ + RTUNI_ALPHA, /* U+00ad24: */ + RTUNI_ALPHA, /* U+00ad25: */ + RTUNI_ALPHA, /* U+00ad26: */ + RTUNI_ALPHA, /* U+00ad27: */ + RTUNI_ALPHA, /* U+00ad28: */ + RTUNI_ALPHA, /* U+00ad29: */ + RTUNI_ALPHA, /* U+00ad2a: */ + RTUNI_ALPHA, /* U+00ad2b: */ + RTUNI_ALPHA, /* U+00ad2c: */ + RTUNI_ALPHA, /* U+00ad2d: */ + RTUNI_ALPHA, /* U+00ad2e: */ + RTUNI_ALPHA, /* U+00ad2f: */ + RTUNI_ALPHA, /* U+00ad30: */ + RTUNI_ALPHA, /* U+00ad31: */ + RTUNI_ALPHA, /* U+00ad32: */ + RTUNI_ALPHA, /* U+00ad33: */ + RTUNI_ALPHA, /* U+00ad34: */ + RTUNI_ALPHA, /* U+00ad35: */ + RTUNI_ALPHA, /* U+00ad36: */ + RTUNI_ALPHA, /* U+00ad37: */ + RTUNI_ALPHA, /* U+00ad38: */ + RTUNI_ALPHA, /* U+00ad39: */ + RTUNI_ALPHA, /* U+00ad3a: */ + RTUNI_ALPHA, /* U+00ad3b: */ + RTUNI_ALPHA, /* U+00ad3c: */ + RTUNI_ALPHA, /* U+00ad3d: */ + RTUNI_ALPHA, /* U+00ad3e: */ + RTUNI_ALPHA, /* U+00ad3f: */ + RTUNI_ALPHA, /* U+00ad40: */ + RTUNI_ALPHA, /* U+00ad41: */ + RTUNI_ALPHA, /* U+00ad42: */ + RTUNI_ALPHA, /* U+00ad43: */ + RTUNI_ALPHA, /* U+00ad44: */ + RTUNI_ALPHA, /* U+00ad45: */ + RTUNI_ALPHA, /* U+00ad46: */ + RTUNI_ALPHA, /* U+00ad47: */ + RTUNI_ALPHA, /* U+00ad48: */ + RTUNI_ALPHA, /* U+00ad49: */ + RTUNI_ALPHA, /* U+00ad4a: */ + RTUNI_ALPHA, /* U+00ad4b: */ + RTUNI_ALPHA, /* U+00ad4c: */ + RTUNI_ALPHA, /* U+00ad4d: */ + RTUNI_ALPHA, /* U+00ad4e: */ + RTUNI_ALPHA, /* U+00ad4f: */ + RTUNI_ALPHA, /* U+00ad50: */ + RTUNI_ALPHA, /* U+00ad51: */ + RTUNI_ALPHA, /* U+00ad52: */ + RTUNI_ALPHA, /* U+00ad53: */ + RTUNI_ALPHA, /* U+00ad54: */ + RTUNI_ALPHA, /* U+00ad55: */ + RTUNI_ALPHA, /* U+00ad56: */ + RTUNI_ALPHA, /* U+00ad57: */ + RTUNI_ALPHA, /* U+00ad58: */ + RTUNI_ALPHA, /* U+00ad59: */ + RTUNI_ALPHA, /* U+00ad5a: */ + RTUNI_ALPHA, /* U+00ad5b: */ + RTUNI_ALPHA, /* U+00ad5c: */ + RTUNI_ALPHA, /* U+00ad5d: */ + RTUNI_ALPHA, /* U+00ad5e: */ + RTUNI_ALPHA, /* U+00ad5f: */ + RTUNI_ALPHA, /* U+00ad60: */ + RTUNI_ALPHA, /* U+00ad61: */ + RTUNI_ALPHA, /* U+00ad62: */ + RTUNI_ALPHA, /* U+00ad63: */ + RTUNI_ALPHA, /* U+00ad64: */ + RTUNI_ALPHA, /* U+00ad65: */ + RTUNI_ALPHA, /* U+00ad66: */ + RTUNI_ALPHA, /* U+00ad67: */ + RTUNI_ALPHA, /* U+00ad68: */ + RTUNI_ALPHA, /* U+00ad69: */ + RTUNI_ALPHA, /* U+00ad6a: */ + RTUNI_ALPHA, /* U+00ad6b: */ + RTUNI_ALPHA, /* U+00ad6c: */ + RTUNI_ALPHA, /* U+00ad6d: */ + RTUNI_ALPHA, /* U+00ad6e: */ + RTUNI_ALPHA, /* U+00ad6f: */ + RTUNI_ALPHA, /* U+00ad70: */ + RTUNI_ALPHA, /* U+00ad71: */ + RTUNI_ALPHA, /* U+00ad72: */ + RTUNI_ALPHA, /* U+00ad73: */ + RTUNI_ALPHA, /* U+00ad74: */ + RTUNI_ALPHA, /* U+00ad75: */ + RTUNI_ALPHA, /* U+00ad76: */ + RTUNI_ALPHA, /* U+00ad77: */ + RTUNI_ALPHA, /* U+00ad78: */ + RTUNI_ALPHA, /* U+00ad79: */ + RTUNI_ALPHA, /* U+00ad7a: */ + RTUNI_ALPHA, /* U+00ad7b: */ + RTUNI_ALPHA, /* U+00ad7c: */ + RTUNI_ALPHA, /* U+00ad7d: */ + RTUNI_ALPHA, /* U+00ad7e: */ + RTUNI_ALPHA, /* U+00ad7f: */ + RTUNI_ALPHA, /* U+00ad80: */ + RTUNI_ALPHA, /* U+00ad81: */ + RTUNI_ALPHA, /* U+00ad82: */ + RTUNI_ALPHA, /* U+00ad83: */ + RTUNI_ALPHA, /* U+00ad84: */ + RTUNI_ALPHA, /* U+00ad85: */ + RTUNI_ALPHA, /* U+00ad86: */ + RTUNI_ALPHA, /* U+00ad87: */ + RTUNI_ALPHA, /* U+00ad88: */ + RTUNI_ALPHA, /* U+00ad89: */ + RTUNI_ALPHA, /* U+00ad8a: */ + RTUNI_ALPHA, /* U+00ad8b: */ + RTUNI_ALPHA, /* U+00ad8c: */ + RTUNI_ALPHA, /* U+00ad8d: */ + RTUNI_ALPHA, /* U+00ad8e: */ + RTUNI_ALPHA, /* U+00ad8f: */ + RTUNI_ALPHA, /* U+00ad90: */ + RTUNI_ALPHA, /* U+00ad91: */ + RTUNI_ALPHA, /* U+00ad92: */ + RTUNI_ALPHA, /* U+00ad93: */ + RTUNI_ALPHA, /* U+00ad94: */ + RTUNI_ALPHA, /* U+00ad95: */ + RTUNI_ALPHA, /* U+00ad96: */ + RTUNI_ALPHA, /* U+00ad97: */ + RTUNI_ALPHA, /* U+00ad98: */ + RTUNI_ALPHA, /* U+00ad99: */ + RTUNI_ALPHA, /* U+00ad9a: */ + RTUNI_ALPHA, /* U+00ad9b: */ + RTUNI_ALPHA, /* U+00ad9c: */ + RTUNI_ALPHA, /* U+00ad9d: */ + RTUNI_ALPHA, /* U+00ad9e: */ + RTUNI_ALPHA, /* U+00ad9f: */ + RTUNI_ALPHA, /* U+00ada0: */ + RTUNI_ALPHA, /* U+00ada1: */ + RTUNI_ALPHA, /* U+00ada2: */ + RTUNI_ALPHA, /* U+00ada3: */ + RTUNI_ALPHA, /* U+00ada4: */ + RTUNI_ALPHA, /* U+00ada5: */ + RTUNI_ALPHA, /* U+00ada6: */ + RTUNI_ALPHA, /* U+00ada7: */ + RTUNI_ALPHA, /* U+00ada8: */ + RTUNI_ALPHA, /* U+00ada9: */ + RTUNI_ALPHA, /* U+00adaa: */ + RTUNI_ALPHA, /* U+00adab: */ + RTUNI_ALPHA, /* U+00adac: */ + RTUNI_ALPHA, /* U+00adad: */ + RTUNI_ALPHA, /* U+00adae: */ + RTUNI_ALPHA, /* U+00adaf: */ + RTUNI_ALPHA, /* U+00adb0: */ + RTUNI_ALPHA, /* U+00adb1: */ + RTUNI_ALPHA, /* U+00adb2: */ + RTUNI_ALPHA, /* U+00adb3: */ + RTUNI_ALPHA, /* U+00adb4: */ + RTUNI_ALPHA, /* U+00adb5: */ + RTUNI_ALPHA, /* U+00adb6: */ + RTUNI_ALPHA, /* U+00adb7: */ + RTUNI_ALPHA, /* U+00adb8: */ + RTUNI_ALPHA, /* U+00adb9: */ + RTUNI_ALPHA, /* U+00adba: */ + RTUNI_ALPHA, /* U+00adbb: */ + RTUNI_ALPHA, /* U+00adbc: */ + RTUNI_ALPHA, /* U+00adbd: */ + RTUNI_ALPHA, /* U+00adbe: */ + RTUNI_ALPHA, /* U+00adbf: */ + RTUNI_ALPHA, /* U+00adc0: */ + RTUNI_ALPHA, /* U+00adc1: */ + RTUNI_ALPHA, /* U+00adc2: */ + RTUNI_ALPHA, /* U+00adc3: */ + RTUNI_ALPHA, /* U+00adc4: */ + RTUNI_ALPHA, /* U+00adc5: */ + RTUNI_ALPHA, /* U+00adc6: */ + RTUNI_ALPHA, /* U+00adc7: */ + RTUNI_ALPHA, /* U+00adc8: */ + RTUNI_ALPHA, /* U+00adc9: */ + RTUNI_ALPHA, /* U+00adca: */ + RTUNI_ALPHA, /* U+00adcb: */ + RTUNI_ALPHA, /* U+00adcc: */ + RTUNI_ALPHA, /* U+00adcd: */ + RTUNI_ALPHA, /* U+00adce: */ + RTUNI_ALPHA, /* U+00adcf: */ + RTUNI_ALPHA, /* U+00add0: */ + RTUNI_ALPHA, /* U+00add1: */ + RTUNI_ALPHA, /* U+00add2: */ + RTUNI_ALPHA, /* U+00add3: */ + RTUNI_ALPHA, /* U+00add4: */ + RTUNI_ALPHA, /* U+00add5: */ + RTUNI_ALPHA, /* U+00add6: */ + RTUNI_ALPHA, /* U+00add7: */ + RTUNI_ALPHA, /* U+00add8: */ + RTUNI_ALPHA, /* U+00add9: */ + RTUNI_ALPHA, /* U+00adda: */ + RTUNI_ALPHA, /* U+00addb: */ + RTUNI_ALPHA, /* U+00addc: */ + RTUNI_ALPHA, /* U+00addd: */ + RTUNI_ALPHA, /* U+00adde: */ + RTUNI_ALPHA, /* U+00addf: */ + RTUNI_ALPHA, /* U+00ade0: */ + RTUNI_ALPHA, /* U+00ade1: */ + RTUNI_ALPHA, /* U+00ade2: */ + RTUNI_ALPHA, /* U+00ade3: */ + RTUNI_ALPHA, /* U+00ade4: */ + RTUNI_ALPHA, /* U+00ade5: */ + RTUNI_ALPHA, /* U+00ade6: */ + RTUNI_ALPHA, /* U+00ade7: */ + RTUNI_ALPHA, /* U+00ade8: */ + RTUNI_ALPHA, /* U+00ade9: */ + RTUNI_ALPHA, /* U+00adea: */ + RTUNI_ALPHA, /* U+00adeb: */ + RTUNI_ALPHA, /* U+00adec: */ + RTUNI_ALPHA, /* U+00aded: */ + RTUNI_ALPHA, /* U+00adee: */ + RTUNI_ALPHA, /* U+00adef: */ + RTUNI_ALPHA, /* U+00adf0: */ + RTUNI_ALPHA, /* U+00adf1: */ + RTUNI_ALPHA, /* U+00adf2: */ + RTUNI_ALPHA, /* U+00adf3: */ + RTUNI_ALPHA, /* U+00adf4: */ + RTUNI_ALPHA, /* U+00adf5: */ + RTUNI_ALPHA, /* U+00adf6: */ + RTUNI_ALPHA, /* U+00adf7: */ + RTUNI_ALPHA, /* U+00adf8: */ + RTUNI_ALPHA, /* U+00adf9: */ + RTUNI_ALPHA, /* U+00adfa: */ + RTUNI_ALPHA, /* U+00adfb: */ + RTUNI_ALPHA, /* U+00adfc: */ + RTUNI_ALPHA, /* U+00adfd: */ + RTUNI_ALPHA, /* U+00adfe: */ + RTUNI_ALPHA, /* U+00adff: */ + RTUNI_ALPHA, /* U+00ae00: */ + RTUNI_ALPHA, /* U+00ae01: */ + RTUNI_ALPHA, /* U+00ae02: */ + RTUNI_ALPHA, /* U+00ae03: */ + RTUNI_ALPHA, /* U+00ae04: */ + RTUNI_ALPHA, /* U+00ae05: */ + RTUNI_ALPHA, /* U+00ae06: */ + RTUNI_ALPHA, /* U+00ae07: */ + RTUNI_ALPHA, /* U+00ae08: */ + RTUNI_ALPHA, /* U+00ae09: */ + RTUNI_ALPHA, /* U+00ae0a: */ + RTUNI_ALPHA, /* U+00ae0b: */ + RTUNI_ALPHA, /* U+00ae0c: */ + RTUNI_ALPHA, /* U+00ae0d: */ + RTUNI_ALPHA, /* U+00ae0e: */ + RTUNI_ALPHA, /* U+00ae0f: */ + RTUNI_ALPHA, /* U+00ae10: */ + RTUNI_ALPHA, /* U+00ae11: */ + RTUNI_ALPHA, /* U+00ae12: */ + RTUNI_ALPHA, /* U+00ae13: */ + RTUNI_ALPHA, /* U+00ae14: */ + RTUNI_ALPHA, /* U+00ae15: */ + RTUNI_ALPHA, /* U+00ae16: */ + RTUNI_ALPHA, /* U+00ae17: */ + RTUNI_ALPHA, /* U+00ae18: */ + RTUNI_ALPHA, /* U+00ae19: */ + RTUNI_ALPHA, /* U+00ae1a: */ + RTUNI_ALPHA, /* U+00ae1b: */ + RTUNI_ALPHA, /* U+00ae1c: */ + RTUNI_ALPHA, /* U+00ae1d: */ + RTUNI_ALPHA, /* U+00ae1e: */ + RTUNI_ALPHA, /* U+00ae1f: */ + RTUNI_ALPHA, /* U+00ae20: */ + RTUNI_ALPHA, /* U+00ae21: */ + RTUNI_ALPHA, /* U+00ae22: */ + RTUNI_ALPHA, /* U+00ae23: */ + RTUNI_ALPHA, /* U+00ae24: */ + RTUNI_ALPHA, /* U+00ae25: */ + RTUNI_ALPHA, /* U+00ae26: */ + RTUNI_ALPHA, /* U+00ae27: */ + RTUNI_ALPHA, /* U+00ae28: */ + RTUNI_ALPHA, /* U+00ae29: */ + RTUNI_ALPHA, /* U+00ae2a: */ + RTUNI_ALPHA, /* U+00ae2b: */ + RTUNI_ALPHA, /* U+00ae2c: */ + RTUNI_ALPHA, /* U+00ae2d: */ + RTUNI_ALPHA, /* U+00ae2e: */ + RTUNI_ALPHA, /* U+00ae2f: */ + RTUNI_ALPHA, /* U+00ae30: */ + RTUNI_ALPHA, /* U+00ae31: */ + RTUNI_ALPHA, /* U+00ae32: */ + RTUNI_ALPHA, /* U+00ae33: */ + RTUNI_ALPHA, /* U+00ae34: */ + RTUNI_ALPHA, /* U+00ae35: */ + RTUNI_ALPHA, /* U+00ae36: */ + RTUNI_ALPHA, /* U+00ae37: */ + RTUNI_ALPHA, /* U+00ae38: */ + RTUNI_ALPHA, /* U+00ae39: */ + RTUNI_ALPHA, /* U+00ae3a: */ + RTUNI_ALPHA, /* U+00ae3b: */ + RTUNI_ALPHA, /* U+00ae3c: */ + RTUNI_ALPHA, /* U+00ae3d: */ + RTUNI_ALPHA, /* U+00ae3e: */ + RTUNI_ALPHA, /* U+00ae3f: */ + RTUNI_ALPHA, /* U+00ae40: */ + RTUNI_ALPHA, /* U+00ae41: */ + RTUNI_ALPHA, /* U+00ae42: */ + RTUNI_ALPHA, /* U+00ae43: */ + RTUNI_ALPHA, /* U+00ae44: */ + RTUNI_ALPHA, /* U+00ae45: */ + RTUNI_ALPHA, /* U+00ae46: */ + RTUNI_ALPHA, /* U+00ae47: */ + RTUNI_ALPHA, /* U+00ae48: */ + RTUNI_ALPHA, /* U+00ae49: */ + RTUNI_ALPHA, /* U+00ae4a: */ + RTUNI_ALPHA, /* U+00ae4b: */ + RTUNI_ALPHA, /* U+00ae4c: */ + RTUNI_ALPHA, /* U+00ae4d: */ + RTUNI_ALPHA, /* U+00ae4e: */ + RTUNI_ALPHA, /* U+00ae4f: */ + RTUNI_ALPHA, /* U+00ae50: */ + RTUNI_ALPHA, /* U+00ae51: */ + RTUNI_ALPHA, /* U+00ae52: */ + RTUNI_ALPHA, /* U+00ae53: */ + RTUNI_ALPHA, /* U+00ae54: */ + RTUNI_ALPHA, /* U+00ae55: */ + RTUNI_ALPHA, /* U+00ae56: */ + RTUNI_ALPHA, /* U+00ae57: */ + RTUNI_ALPHA, /* U+00ae58: */ + RTUNI_ALPHA, /* U+00ae59: */ + RTUNI_ALPHA, /* U+00ae5a: */ + RTUNI_ALPHA, /* U+00ae5b: */ + RTUNI_ALPHA, /* U+00ae5c: */ + RTUNI_ALPHA, /* U+00ae5d: */ + RTUNI_ALPHA, /* U+00ae5e: */ + RTUNI_ALPHA, /* U+00ae5f: */ + RTUNI_ALPHA, /* U+00ae60: */ + RTUNI_ALPHA, /* U+00ae61: */ + RTUNI_ALPHA, /* U+00ae62: */ + RTUNI_ALPHA, /* U+00ae63: */ + RTUNI_ALPHA, /* U+00ae64: */ + RTUNI_ALPHA, /* U+00ae65: */ + RTUNI_ALPHA, /* U+00ae66: */ + RTUNI_ALPHA, /* U+00ae67: */ + RTUNI_ALPHA, /* U+00ae68: */ + RTUNI_ALPHA, /* U+00ae69: */ + RTUNI_ALPHA, /* U+00ae6a: */ + RTUNI_ALPHA, /* U+00ae6b: */ + RTUNI_ALPHA, /* U+00ae6c: */ + RTUNI_ALPHA, /* U+00ae6d: */ + RTUNI_ALPHA, /* U+00ae6e: */ + RTUNI_ALPHA, /* U+00ae6f: */ + RTUNI_ALPHA, /* U+00ae70: */ + RTUNI_ALPHA, /* U+00ae71: */ + RTUNI_ALPHA, /* U+00ae72: */ + RTUNI_ALPHA, /* U+00ae73: */ + RTUNI_ALPHA, /* U+00ae74: */ + RTUNI_ALPHA, /* U+00ae75: */ + RTUNI_ALPHA, /* U+00ae76: */ + RTUNI_ALPHA, /* U+00ae77: */ + RTUNI_ALPHA, /* U+00ae78: */ + RTUNI_ALPHA, /* U+00ae79: */ + RTUNI_ALPHA, /* U+00ae7a: */ + RTUNI_ALPHA, /* U+00ae7b: */ + RTUNI_ALPHA, /* U+00ae7c: */ + RTUNI_ALPHA, /* U+00ae7d: */ + RTUNI_ALPHA, /* U+00ae7e: */ + RTUNI_ALPHA, /* U+00ae7f: */ + RTUNI_ALPHA, /* U+00ae80: */ + RTUNI_ALPHA, /* U+00ae81: */ + RTUNI_ALPHA, /* U+00ae82: */ + RTUNI_ALPHA, /* U+00ae83: */ + RTUNI_ALPHA, /* U+00ae84: */ + RTUNI_ALPHA, /* U+00ae85: */ + RTUNI_ALPHA, /* U+00ae86: */ + RTUNI_ALPHA, /* U+00ae87: */ + RTUNI_ALPHA, /* U+00ae88: */ + RTUNI_ALPHA, /* U+00ae89: */ + RTUNI_ALPHA, /* U+00ae8a: */ + RTUNI_ALPHA, /* U+00ae8b: */ + RTUNI_ALPHA, /* U+00ae8c: */ + RTUNI_ALPHA, /* U+00ae8d: */ + RTUNI_ALPHA, /* U+00ae8e: */ + RTUNI_ALPHA, /* U+00ae8f: */ + RTUNI_ALPHA, /* U+00ae90: */ + RTUNI_ALPHA, /* U+00ae91: */ + RTUNI_ALPHA, /* U+00ae92: */ + RTUNI_ALPHA, /* U+00ae93: */ + RTUNI_ALPHA, /* U+00ae94: */ + RTUNI_ALPHA, /* U+00ae95: */ + RTUNI_ALPHA, /* U+00ae96: */ + RTUNI_ALPHA, /* U+00ae97: */ + RTUNI_ALPHA, /* U+00ae98: */ + RTUNI_ALPHA, /* U+00ae99: */ + RTUNI_ALPHA, /* U+00ae9a: */ + RTUNI_ALPHA, /* U+00ae9b: */ + RTUNI_ALPHA, /* U+00ae9c: */ + RTUNI_ALPHA, /* U+00ae9d: */ + RTUNI_ALPHA, /* U+00ae9e: */ + RTUNI_ALPHA, /* U+00ae9f: */ + RTUNI_ALPHA, /* U+00aea0: */ + RTUNI_ALPHA, /* U+00aea1: */ + RTUNI_ALPHA, /* U+00aea2: */ + RTUNI_ALPHA, /* U+00aea3: */ + RTUNI_ALPHA, /* U+00aea4: */ + RTUNI_ALPHA, /* U+00aea5: */ + RTUNI_ALPHA, /* U+00aea6: */ + RTUNI_ALPHA, /* U+00aea7: */ + RTUNI_ALPHA, /* U+00aea8: */ + RTUNI_ALPHA, /* U+00aea9: */ + RTUNI_ALPHA, /* U+00aeaa: */ + RTUNI_ALPHA, /* U+00aeab: */ + RTUNI_ALPHA, /* U+00aeac: */ + RTUNI_ALPHA, /* U+00aead: */ + RTUNI_ALPHA, /* U+00aeae: */ + RTUNI_ALPHA, /* U+00aeaf: */ + RTUNI_ALPHA, /* U+00aeb0: */ + RTUNI_ALPHA, /* U+00aeb1: */ + RTUNI_ALPHA, /* U+00aeb2: */ + RTUNI_ALPHA, /* U+00aeb3: */ + RTUNI_ALPHA, /* U+00aeb4: */ + RTUNI_ALPHA, /* U+00aeb5: */ + RTUNI_ALPHA, /* U+00aeb6: */ + RTUNI_ALPHA, /* U+00aeb7: */ + RTUNI_ALPHA, /* U+00aeb8: */ + RTUNI_ALPHA, /* U+00aeb9: */ + RTUNI_ALPHA, /* U+00aeba: */ + RTUNI_ALPHA, /* U+00aebb: */ + RTUNI_ALPHA, /* U+00aebc: */ + RTUNI_ALPHA, /* U+00aebd: */ + RTUNI_ALPHA, /* U+00aebe: */ + RTUNI_ALPHA, /* U+00aebf: */ + RTUNI_ALPHA, /* U+00aec0: */ + RTUNI_ALPHA, /* U+00aec1: */ + RTUNI_ALPHA, /* U+00aec2: */ + RTUNI_ALPHA, /* U+00aec3: */ + RTUNI_ALPHA, /* U+00aec4: */ + RTUNI_ALPHA, /* U+00aec5: */ + RTUNI_ALPHA, /* U+00aec6: */ + RTUNI_ALPHA, /* U+00aec7: */ + RTUNI_ALPHA, /* U+00aec8: */ + RTUNI_ALPHA, /* U+00aec9: */ + RTUNI_ALPHA, /* U+00aeca: */ + RTUNI_ALPHA, /* U+00aecb: */ + RTUNI_ALPHA, /* U+00aecc: */ + RTUNI_ALPHA, /* U+00aecd: */ + RTUNI_ALPHA, /* U+00aece: */ + RTUNI_ALPHA, /* U+00aecf: */ + RTUNI_ALPHA, /* U+00aed0: */ + RTUNI_ALPHA, /* U+00aed1: */ + RTUNI_ALPHA, /* U+00aed2: */ + RTUNI_ALPHA, /* U+00aed3: */ + RTUNI_ALPHA, /* U+00aed4: */ + RTUNI_ALPHA, /* U+00aed5: */ + RTUNI_ALPHA, /* U+00aed6: */ + RTUNI_ALPHA, /* U+00aed7: */ + RTUNI_ALPHA, /* U+00aed8: */ + RTUNI_ALPHA, /* U+00aed9: */ + RTUNI_ALPHA, /* U+00aeda: */ + RTUNI_ALPHA, /* U+00aedb: */ + RTUNI_ALPHA, /* U+00aedc: */ + RTUNI_ALPHA, /* U+00aedd: */ + RTUNI_ALPHA, /* U+00aede: */ + RTUNI_ALPHA, /* U+00aedf: */ + RTUNI_ALPHA, /* U+00aee0: */ + RTUNI_ALPHA, /* U+00aee1: */ + RTUNI_ALPHA, /* U+00aee2: */ + RTUNI_ALPHA, /* U+00aee3: */ + RTUNI_ALPHA, /* U+00aee4: */ + RTUNI_ALPHA, /* U+00aee5: */ + RTUNI_ALPHA, /* U+00aee6: */ + RTUNI_ALPHA, /* U+00aee7: */ + RTUNI_ALPHA, /* U+00aee8: */ + RTUNI_ALPHA, /* U+00aee9: */ + RTUNI_ALPHA, /* U+00aeea: */ + RTUNI_ALPHA, /* U+00aeeb: */ + RTUNI_ALPHA, /* U+00aeec: */ + RTUNI_ALPHA, /* U+00aeed: */ + RTUNI_ALPHA, /* U+00aeee: */ + RTUNI_ALPHA, /* U+00aeef: */ + RTUNI_ALPHA, /* U+00aef0: */ + RTUNI_ALPHA, /* U+00aef1: */ + RTUNI_ALPHA, /* U+00aef2: */ + RTUNI_ALPHA, /* U+00aef3: */ + RTUNI_ALPHA, /* U+00aef4: */ + RTUNI_ALPHA, /* U+00aef5: */ + RTUNI_ALPHA, /* U+00aef6: */ + RTUNI_ALPHA, /* U+00aef7: */ + RTUNI_ALPHA, /* U+00aef8: */ + RTUNI_ALPHA, /* U+00aef9: */ + RTUNI_ALPHA, /* U+00aefa: */ + RTUNI_ALPHA, /* U+00aefb: */ + RTUNI_ALPHA, /* U+00aefc: */ + RTUNI_ALPHA, /* U+00aefd: */ + RTUNI_ALPHA, /* U+00aefe: */ + RTUNI_ALPHA, /* U+00aeff: */ + RTUNI_ALPHA, /* U+00af00: */ + RTUNI_ALPHA, /* U+00af01: */ + RTUNI_ALPHA, /* U+00af02: */ + RTUNI_ALPHA, /* U+00af03: */ + RTUNI_ALPHA, /* U+00af04: */ + RTUNI_ALPHA, /* U+00af05: */ + RTUNI_ALPHA, /* U+00af06: */ + RTUNI_ALPHA, /* U+00af07: */ + RTUNI_ALPHA, /* U+00af08: */ + RTUNI_ALPHA, /* U+00af09: */ + RTUNI_ALPHA, /* U+00af0a: */ + RTUNI_ALPHA, /* U+00af0b: */ + RTUNI_ALPHA, /* U+00af0c: */ + RTUNI_ALPHA, /* U+00af0d: */ + RTUNI_ALPHA, /* U+00af0e: */ + RTUNI_ALPHA, /* U+00af0f: */ + RTUNI_ALPHA, /* U+00af10: */ + RTUNI_ALPHA, /* U+00af11: */ + RTUNI_ALPHA, /* U+00af12: */ + RTUNI_ALPHA, /* U+00af13: */ + RTUNI_ALPHA, /* U+00af14: */ + RTUNI_ALPHA, /* U+00af15: */ + RTUNI_ALPHA, /* U+00af16: */ + RTUNI_ALPHA, /* U+00af17: */ + RTUNI_ALPHA, /* U+00af18: */ + RTUNI_ALPHA, /* U+00af19: */ + RTUNI_ALPHA, /* U+00af1a: */ + RTUNI_ALPHA, /* U+00af1b: */ + RTUNI_ALPHA, /* U+00af1c: */ + RTUNI_ALPHA, /* U+00af1d: */ + RTUNI_ALPHA, /* U+00af1e: */ + RTUNI_ALPHA, /* U+00af1f: */ + RTUNI_ALPHA, /* U+00af20: */ + RTUNI_ALPHA, /* U+00af21: */ + RTUNI_ALPHA, /* U+00af22: */ + RTUNI_ALPHA, /* U+00af23: */ + RTUNI_ALPHA, /* U+00af24: */ + RTUNI_ALPHA, /* U+00af25: */ + RTUNI_ALPHA, /* U+00af26: */ + RTUNI_ALPHA, /* U+00af27: */ + RTUNI_ALPHA, /* U+00af28: */ + RTUNI_ALPHA, /* U+00af29: */ + RTUNI_ALPHA, /* U+00af2a: */ + RTUNI_ALPHA, /* U+00af2b: */ + RTUNI_ALPHA, /* U+00af2c: */ + RTUNI_ALPHA, /* U+00af2d: */ + RTUNI_ALPHA, /* U+00af2e: */ + RTUNI_ALPHA, /* U+00af2f: */ + RTUNI_ALPHA, /* U+00af30: */ + RTUNI_ALPHA, /* U+00af31: */ + RTUNI_ALPHA, /* U+00af32: */ + RTUNI_ALPHA, /* U+00af33: */ + RTUNI_ALPHA, /* U+00af34: */ + RTUNI_ALPHA, /* U+00af35: */ + RTUNI_ALPHA, /* U+00af36: */ + RTUNI_ALPHA, /* U+00af37: */ + RTUNI_ALPHA, /* U+00af38: */ + RTUNI_ALPHA, /* U+00af39: */ + RTUNI_ALPHA, /* U+00af3a: */ + RTUNI_ALPHA, /* U+00af3b: */ + RTUNI_ALPHA, /* U+00af3c: */ + RTUNI_ALPHA, /* U+00af3d: */ + RTUNI_ALPHA, /* U+00af3e: */ + RTUNI_ALPHA, /* U+00af3f: */ + RTUNI_ALPHA, /* U+00af40: */ + RTUNI_ALPHA, /* U+00af41: */ + RTUNI_ALPHA, /* U+00af42: */ + RTUNI_ALPHA, /* U+00af43: */ + RTUNI_ALPHA, /* U+00af44: */ + RTUNI_ALPHA, /* U+00af45: */ + RTUNI_ALPHA, /* U+00af46: */ + RTUNI_ALPHA, /* U+00af47: */ + RTUNI_ALPHA, /* U+00af48: */ + RTUNI_ALPHA, /* U+00af49: */ + RTUNI_ALPHA, /* U+00af4a: */ + RTUNI_ALPHA, /* U+00af4b: */ + RTUNI_ALPHA, /* U+00af4c: */ + RTUNI_ALPHA, /* U+00af4d: */ + RTUNI_ALPHA, /* U+00af4e: */ + RTUNI_ALPHA, /* U+00af4f: */ + RTUNI_ALPHA, /* U+00af50: */ + RTUNI_ALPHA, /* U+00af51: */ + RTUNI_ALPHA, /* U+00af52: */ + RTUNI_ALPHA, /* U+00af53: */ + RTUNI_ALPHA, /* U+00af54: */ + RTUNI_ALPHA, /* U+00af55: */ + RTUNI_ALPHA, /* U+00af56: */ + RTUNI_ALPHA, /* U+00af57: */ + RTUNI_ALPHA, /* U+00af58: */ + RTUNI_ALPHA, /* U+00af59: */ + RTUNI_ALPHA, /* U+00af5a: */ + RTUNI_ALPHA, /* U+00af5b: */ + RTUNI_ALPHA, /* U+00af5c: */ + RTUNI_ALPHA, /* U+00af5d: */ + RTUNI_ALPHA, /* U+00af5e: */ + RTUNI_ALPHA, /* U+00af5f: */ + RTUNI_ALPHA, /* U+00af60: */ + RTUNI_ALPHA, /* U+00af61: */ + RTUNI_ALPHA, /* U+00af62: */ + RTUNI_ALPHA, /* U+00af63: */ + RTUNI_ALPHA, /* U+00af64: */ + RTUNI_ALPHA, /* U+00af65: */ + RTUNI_ALPHA, /* U+00af66: */ + RTUNI_ALPHA, /* U+00af67: */ + RTUNI_ALPHA, /* U+00af68: */ + RTUNI_ALPHA, /* U+00af69: */ + RTUNI_ALPHA, /* U+00af6a: */ + RTUNI_ALPHA, /* U+00af6b: */ + RTUNI_ALPHA, /* U+00af6c: */ + RTUNI_ALPHA, /* U+00af6d: */ + RTUNI_ALPHA, /* U+00af6e: */ + RTUNI_ALPHA, /* U+00af6f: */ + RTUNI_ALPHA, /* U+00af70: */ + RTUNI_ALPHA, /* U+00af71: */ + RTUNI_ALPHA, /* U+00af72: */ + RTUNI_ALPHA, /* U+00af73: */ + RTUNI_ALPHA, /* U+00af74: */ + RTUNI_ALPHA, /* U+00af75: */ + RTUNI_ALPHA, /* U+00af76: */ + RTUNI_ALPHA, /* U+00af77: */ + RTUNI_ALPHA, /* U+00af78: */ + RTUNI_ALPHA, /* U+00af79: */ + RTUNI_ALPHA, /* U+00af7a: */ + RTUNI_ALPHA, /* U+00af7b: */ + RTUNI_ALPHA, /* U+00af7c: */ + RTUNI_ALPHA, /* U+00af7d: */ + RTUNI_ALPHA, /* U+00af7e: */ + RTUNI_ALPHA, /* U+00af7f: */ + RTUNI_ALPHA, /* U+00af80: */ + RTUNI_ALPHA, /* U+00af81: */ + RTUNI_ALPHA, /* U+00af82: */ + RTUNI_ALPHA, /* U+00af83: */ + RTUNI_ALPHA, /* U+00af84: */ + RTUNI_ALPHA, /* U+00af85: */ + RTUNI_ALPHA, /* U+00af86: */ + RTUNI_ALPHA, /* U+00af87: */ + RTUNI_ALPHA, /* U+00af88: */ + RTUNI_ALPHA, /* U+00af89: */ + RTUNI_ALPHA, /* U+00af8a: */ + RTUNI_ALPHA, /* U+00af8b: */ + RTUNI_ALPHA, /* U+00af8c: */ + RTUNI_ALPHA, /* U+00af8d: */ + RTUNI_ALPHA, /* U+00af8e: */ + RTUNI_ALPHA, /* U+00af8f: */ + RTUNI_ALPHA, /* U+00af90: */ + RTUNI_ALPHA, /* U+00af91: */ + RTUNI_ALPHA, /* U+00af92: */ + RTUNI_ALPHA, /* U+00af93: */ + RTUNI_ALPHA, /* U+00af94: */ + RTUNI_ALPHA, /* U+00af95: */ + RTUNI_ALPHA, /* U+00af96: */ + RTUNI_ALPHA, /* U+00af97: */ + RTUNI_ALPHA, /* U+00af98: */ + RTUNI_ALPHA, /* U+00af99: */ + RTUNI_ALPHA, /* U+00af9a: */ + RTUNI_ALPHA, /* U+00af9b: */ + RTUNI_ALPHA, /* U+00af9c: */ + RTUNI_ALPHA, /* U+00af9d: */ + RTUNI_ALPHA, /* U+00af9e: */ + RTUNI_ALPHA, /* U+00af9f: */ + RTUNI_ALPHA, /* U+00afa0: */ + RTUNI_ALPHA, /* U+00afa1: */ + RTUNI_ALPHA, /* U+00afa2: */ + RTUNI_ALPHA, /* U+00afa3: */ + RTUNI_ALPHA, /* U+00afa4: */ + RTUNI_ALPHA, /* U+00afa5: */ + RTUNI_ALPHA, /* U+00afa6: */ + RTUNI_ALPHA, /* U+00afa7: */ + RTUNI_ALPHA, /* U+00afa8: */ + RTUNI_ALPHA, /* U+00afa9: */ + RTUNI_ALPHA, /* U+00afaa: */ + RTUNI_ALPHA, /* U+00afab: */ + RTUNI_ALPHA, /* U+00afac: */ + RTUNI_ALPHA, /* U+00afad: */ + RTUNI_ALPHA, /* U+00afae: */ + RTUNI_ALPHA, /* U+00afaf: */ + RTUNI_ALPHA, /* U+00afb0: */ + RTUNI_ALPHA, /* U+00afb1: */ + RTUNI_ALPHA, /* U+00afb2: */ + RTUNI_ALPHA, /* U+00afb3: */ + RTUNI_ALPHA, /* U+00afb4: */ + RTUNI_ALPHA, /* U+00afb5: */ + RTUNI_ALPHA, /* U+00afb6: */ + RTUNI_ALPHA, /* U+00afb7: */ + RTUNI_ALPHA, /* U+00afb8: */ + RTUNI_ALPHA, /* U+00afb9: */ + RTUNI_ALPHA, /* U+00afba: */ + RTUNI_ALPHA, /* U+00afbb: */ + RTUNI_ALPHA, /* U+00afbc: */ + RTUNI_ALPHA, /* U+00afbd: */ + RTUNI_ALPHA, /* U+00afbe: */ + RTUNI_ALPHA, /* U+00afbf: */ + RTUNI_ALPHA, /* U+00afc0: */ + RTUNI_ALPHA, /* U+00afc1: */ + RTUNI_ALPHA, /* U+00afc2: */ + RTUNI_ALPHA, /* U+00afc3: */ + RTUNI_ALPHA, /* U+00afc4: */ + RTUNI_ALPHA, /* U+00afc5: */ + RTUNI_ALPHA, /* U+00afc6: */ + RTUNI_ALPHA, /* U+00afc7: */ + RTUNI_ALPHA, /* U+00afc8: */ + RTUNI_ALPHA, /* U+00afc9: */ + RTUNI_ALPHA, /* U+00afca: */ + RTUNI_ALPHA, /* U+00afcb: */ + RTUNI_ALPHA, /* U+00afcc: */ + RTUNI_ALPHA, /* U+00afcd: */ + RTUNI_ALPHA, /* U+00afce: */ + RTUNI_ALPHA, /* U+00afcf: */ + RTUNI_ALPHA, /* U+00afd0: */ + RTUNI_ALPHA, /* U+00afd1: */ + RTUNI_ALPHA, /* U+00afd2: */ + RTUNI_ALPHA, /* U+00afd3: */ + RTUNI_ALPHA, /* U+00afd4: */ + RTUNI_ALPHA, /* U+00afd5: */ + RTUNI_ALPHA, /* U+00afd6: */ + RTUNI_ALPHA, /* U+00afd7: */ + RTUNI_ALPHA, /* U+00afd8: */ + RTUNI_ALPHA, /* U+00afd9: */ + RTUNI_ALPHA, /* U+00afda: */ + RTUNI_ALPHA, /* U+00afdb: */ + RTUNI_ALPHA, /* U+00afdc: */ + RTUNI_ALPHA, /* U+00afdd: */ + RTUNI_ALPHA, /* U+00afde: */ + RTUNI_ALPHA, /* U+00afdf: */ + RTUNI_ALPHA, /* U+00afe0: */ + RTUNI_ALPHA, /* U+00afe1: */ + RTUNI_ALPHA, /* U+00afe2: */ + RTUNI_ALPHA, /* U+00afe3: */ + RTUNI_ALPHA, /* U+00afe4: */ + RTUNI_ALPHA, /* U+00afe5: */ + RTUNI_ALPHA, /* U+00afe6: */ + RTUNI_ALPHA, /* U+00afe7: */ + RTUNI_ALPHA, /* U+00afe8: */ + RTUNI_ALPHA, /* U+00afe9: */ + RTUNI_ALPHA, /* U+00afea: */ + RTUNI_ALPHA, /* U+00afeb: */ + RTUNI_ALPHA, /* U+00afec: */ + RTUNI_ALPHA, /* U+00afed: */ + RTUNI_ALPHA, /* U+00afee: */ + RTUNI_ALPHA, /* U+00afef: */ + RTUNI_ALPHA, /* U+00aff0: */ + RTUNI_ALPHA, /* U+00aff1: */ + RTUNI_ALPHA, /* U+00aff2: */ + RTUNI_ALPHA, /* U+00aff3: */ + RTUNI_ALPHA, /* U+00aff4: */ + RTUNI_ALPHA, /* U+00aff5: */ + RTUNI_ALPHA, /* U+00aff6: */ + RTUNI_ALPHA, /* U+00aff7: */ + RTUNI_ALPHA, /* U+00aff8: */ + RTUNI_ALPHA, /* U+00aff9: */ + RTUNI_ALPHA, /* U+00affa: */ + RTUNI_ALPHA, /* U+00affb: */ + RTUNI_ALPHA, /* U+00affc: */ + RTUNI_ALPHA, /* U+00affd: */ + RTUNI_ALPHA, /* U+00affe: */ + RTUNI_ALPHA, /* U+00afff: */ + RTUNI_ALPHA, /* U+00b000: */ + RTUNI_ALPHA, /* U+00b001: */ + RTUNI_ALPHA, /* U+00b002: */ + RTUNI_ALPHA, /* U+00b003: */ + RTUNI_ALPHA, /* U+00b004: */ + RTUNI_ALPHA, /* U+00b005: */ + RTUNI_ALPHA, /* U+00b006: */ + RTUNI_ALPHA, /* U+00b007: */ + RTUNI_ALPHA, /* U+00b008: */ + RTUNI_ALPHA, /* U+00b009: */ + RTUNI_ALPHA, /* U+00b00a: */ + RTUNI_ALPHA, /* U+00b00b: */ + RTUNI_ALPHA, /* U+00b00c: */ + RTUNI_ALPHA, /* U+00b00d: */ + RTUNI_ALPHA, /* U+00b00e: */ + RTUNI_ALPHA, /* U+00b00f: */ + RTUNI_ALPHA, /* U+00b010: */ + RTUNI_ALPHA, /* U+00b011: */ + RTUNI_ALPHA, /* U+00b012: */ + RTUNI_ALPHA, /* U+00b013: */ + RTUNI_ALPHA, /* U+00b014: */ + RTUNI_ALPHA, /* U+00b015: */ + RTUNI_ALPHA, /* U+00b016: */ + RTUNI_ALPHA, /* U+00b017: */ + RTUNI_ALPHA, /* U+00b018: */ + RTUNI_ALPHA, /* U+00b019: */ + RTUNI_ALPHA, /* U+00b01a: */ + RTUNI_ALPHA, /* U+00b01b: */ + RTUNI_ALPHA, /* U+00b01c: */ + RTUNI_ALPHA, /* U+00b01d: */ + RTUNI_ALPHA, /* U+00b01e: */ + RTUNI_ALPHA, /* U+00b01f: */ + RTUNI_ALPHA, /* U+00b020: */ + RTUNI_ALPHA, /* U+00b021: */ + RTUNI_ALPHA, /* U+00b022: */ + RTUNI_ALPHA, /* U+00b023: */ + RTUNI_ALPHA, /* U+00b024: */ + RTUNI_ALPHA, /* U+00b025: */ + RTUNI_ALPHA, /* U+00b026: */ + RTUNI_ALPHA, /* U+00b027: */ + RTUNI_ALPHA, /* U+00b028: */ + RTUNI_ALPHA, /* U+00b029: */ + RTUNI_ALPHA, /* U+00b02a: */ + RTUNI_ALPHA, /* U+00b02b: */ + RTUNI_ALPHA, /* U+00b02c: */ + RTUNI_ALPHA, /* U+00b02d: */ + RTUNI_ALPHA, /* U+00b02e: */ + RTUNI_ALPHA, /* U+00b02f: */ + RTUNI_ALPHA, /* U+00b030: */ + RTUNI_ALPHA, /* U+00b031: */ + RTUNI_ALPHA, /* U+00b032: */ + RTUNI_ALPHA, /* U+00b033: */ + RTUNI_ALPHA, /* U+00b034: */ + RTUNI_ALPHA, /* U+00b035: */ + RTUNI_ALPHA, /* U+00b036: */ + RTUNI_ALPHA, /* U+00b037: */ + RTUNI_ALPHA, /* U+00b038: */ + RTUNI_ALPHA, /* U+00b039: */ + RTUNI_ALPHA, /* U+00b03a: */ + RTUNI_ALPHA, /* U+00b03b: */ + RTUNI_ALPHA, /* U+00b03c: */ + RTUNI_ALPHA, /* U+00b03d: */ + RTUNI_ALPHA, /* U+00b03e: */ + RTUNI_ALPHA, /* U+00b03f: */ + RTUNI_ALPHA, /* U+00b040: */ + RTUNI_ALPHA, /* U+00b041: */ + RTUNI_ALPHA, /* U+00b042: */ + RTUNI_ALPHA, /* U+00b043: */ + RTUNI_ALPHA, /* U+00b044: */ + RTUNI_ALPHA, /* U+00b045: */ + RTUNI_ALPHA, /* U+00b046: */ + RTUNI_ALPHA, /* U+00b047: */ + RTUNI_ALPHA, /* U+00b048: */ + RTUNI_ALPHA, /* U+00b049: */ + RTUNI_ALPHA, /* U+00b04a: */ + RTUNI_ALPHA, /* U+00b04b: */ + RTUNI_ALPHA, /* U+00b04c: */ + RTUNI_ALPHA, /* U+00b04d: */ + RTUNI_ALPHA, /* U+00b04e: */ + RTUNI_ALPHA, /* U+00b04f: */ + RTUNI_ALPHA, /* U+00b050: */ + RTUNI_ALPHA, /* U+00b051: */ + RTUNI_ALPHA, /* U+00b052: */ + RTUNI_ALPHA, /* U+00b053: */ + RTUNI_ALPHA, /* U+00b054: */ + RTUNI_ALPHA, /* U+00b055: */ + RTUNI_ALPHA, /* U+00b056: */ + RTUNI_ALPHA, /* U+00b057: */ + RTUNI_ALPHA, /* U+00b058: */ + RTUNI_ALPHA, /* U+00b059: */ + RTUNI_ALPHA, /* U+00b05a: */ + RTUNI_ALPHA, /* U+00b05b: */ + RTUNI_ALPHA, /* U+00b05c: */ + RTUNI_ALPHA, /* U+00b05d: */ + RTUNI_ALPHA, /* U+00b05e: */ + RTUNI_ALPHA, /* U+00b05f: */ + RTUNI_ALPHA, /* U+00b060: */ + RTUNI_ALPHA, /* U+00b061: */ + RTUNI_ALPHA, /* U+00b062: */ + RTUNI_ALPHA, /* U+00b063: */ + RTUNI_ALPHA, /* U+00b064: */ + RTUNI_ALPHA, /* U+00b065: */ + RTUNI_ALPHA, /* U+00b066: */ + RTUNI_ALPHA, /* U+00b067: */ + RTUNI_ALPHA, /* U+00b068: */ + RTUNI_ALPHA, /* U+00b069: */ + RTUNI_ALPHA, /* U+00b06a: */ + RTUNI_ALPHA, /* U+00b06b: */ + RTUNI_ALPHA, /* U+00b06c: */ + RTUNI_ALPHA, /* U+00b06d: */ + RTUNI_ALPHA, /* U+00b06e: */ + RTUNI_ALPHA, /* U+00b06f: */ + RTUNI_ALPHA, /* U+00b070: */ + RTUNI_ALPHA, /* U+00b071: */ + RTUNI_ALPHA, /* U+00b072: */ + RTUNI_ALPHA, /* U+00b073: */ + RTUNI_ALPHA, /* U+00b074: */ + RTUNI_ALPHA, /* U+00b075: */ + RTUNI_ALPHA, /* U+00b076: */ + RTUNI_ALPHA, /* U+00b077: */ + RTUNI_ALPHA, /* U+00b078: */ + RTUNI_ALPHA, /* U+00b079: */ + RTUNI_ALPHA, /* U+00b07a: */ + RTUNI_ALPHA, /* U+00b07b: */ + RTUNI_ALPHA, /* U+00b07c: */ + RTUNI_ALPHA, /* U+00b07d: */ + RTUNI_ALPHA, /* U+00b07e: */ + RTUNI_ALPHA, /* U+00b07f: */ + RTUNI_ALPHA, /* U+00b080: */ + RTUNI_ALPHA, /* U+00b081: */ + RTUNI_ALPHA, /* U+00b082: */ + RTUNI_ALPHA, /* U+00b083: */ + RTUNI_ALPHA, /* U+00b084: */ + RTUNI_ALPHA, /* U+00b085: */ + RTUNI_ALPHA, /* U+00b086: */ + RTUNI_ALPHA, /* U+00b087: */ + RTUNI_ALPHA, /* U+00b088: */ + RTUNI_ALPHA, /* U+00b089: */ + RTUNI_ALPHA, /* U+00b08a: */ + RTUNI_ALPHA, /* U+00b08b: */ + RTUNI_ALPHA, /* U+00b08c: */ + RTUNI_ALPHA, /* U+00b08d: */ + RTUNI_ALPHA, /* U+00b08e: */ + RTUNI_ALPHA, /* U+00b08f: */ + RTUNI_ALPHA, /* U+00b090: */ + RTUNI_ALPHA, /* U+00b091: */ + RTUNI_ALPHA, /* U+00b092: */ + RTUNI_ALPHA, /* U+00b093: */ + RTUNI_ALPHA, /* U+00b094: */ + RTUNI_ALPHA, /* U+00b095: */ + RTUNI_ALPHA, /* U+00b096: */ + RTUNI_ALPHA, /* U+00b097: */ + RTUNI_ALPHA, /* U+00b098: */ + RTUNI_ALPHA, /* U+00b099: */ + RTUNI_ALPHA, /* U+00b09a: */ + RTUNI_ALPHA, /* U+00b09b: */ + RTUNI_ALPHA, /* U+00b09c: */ + RTUNI_ALPHA, /* U+00b09d: */ + RTUNI_ALPHA, /* U+00b09e: */ + RTUNI_ALPHA, /* U+00b09f: */ + RTUNI_ALPHA, /* U+00b0a0: */ + RTUNI_ALPHA, /* U+00b0a1: */ + RTUNI_ALPHA, /* U+00b0a2: */ + RTUNI_ALPHA, /* U+00b0a3: */ + RTUNI_ALPHA, /* U+00b0a4: */ + RTUNI_ALPHA, /* U+00b0a5: */ + RTUNI_ALPHA, /* U+00b0a6: */ + RTUNI_ALPHA, /* U+00b0a7: */ + RTUNI_ALPHA, /* U+00b0a8: */ + RTUNI_ALPHA, /* U+00b0a9: */ + RTUNI_ALPHA, /* U+00b0aa: */ + RTUNI_ALPHA, /* U+00b0ab: */ + RTUNI_ALPHA, /* U+00b0ac: */ + RTUNI_ALPHA, /* U+00b0ad: */ + RTUNI_ALPHA, /* U+00b0ae: */ + RTUNI_ALPHA, /* U+00b0af: */ + RTUNI_ALPHA, /* U+00b0b0: */ + RTUNI_ALPHA, /* U+00b0b1: */ + RTUNI_ALPHA, /* U+00b0b2: */ + RTUNI_ALPHA, /* U+00b0b3: */ + RTUNI_ALPHA, /* U+00b0b4: */ + RTUNI_ALPHA, /* U+00b0b5: */ + RTUNI_ALPHA, /* U+00b0b6: */ + RTUNI_ALPHA, /* U+00b0b7: */ + RTUNI_ALPHA, /* U+00b0b8: */ + RTUNI_ALPHA, /* U+00b0b9: */ + RTUNI_ALPHA, /* U+00b0ba: */ + RTUNI_ALPHA, /* U+00b0bb: */ + RTUNI_ALPHA, /* U+00b0bc: */ + RTUNI_ALPHA, /* U+00b0bd: */ + RTUNI_ALPHA, /* U+00b0be: */ + RTUNI_ALPHA, /* U+00b0bf: */ + RTUNI_ALPHA, /* U+00b0c0: */ + RTUNI_ALPHA, /* U+00b0c1: */ + RTUNI_ALPHA, /* U+00b0c2: */ + RTUNI_ALPHA, /* U+00b0c3: */ + RTUNI_ALPHA, /* U+00b0c4: */ + RTUNI_ALPHA, /* U+00b0c5: */ + RTUNI_ALPHA, /* U+00b0c6: */ + RTUNI_ALPHA, /* U+00b0c7: */ + RTUNI_ALPHA, /* U+00b0c8: */ + RTUNI_ALPHA, /* U+00b0c9: */ + RTUNI_ALPHA, /* U+00b0ca: */ + RTUNI_ALPHA, /* U+00b0cb: */ + RTUNI_ALPHA, /* U+00b0cc: */ + RTUNI_ALPHA, /* U+00b0cd: */ + RTUNI_ALPHA, /* U+00b0ce: */ + RTUNI_ALPHA, /* U+00b0cf: */ + RTUNI_ALPHA, /* U+00b0d0: */ + RTUNI_ALPHA, /* U+00b0d1: */ + RTUNI_ALPHA, /* U+00b0d2: */ + RTUNI_ALPHA, /* U+00b0d3: */ + RTUNI_ALPHA, /* U+00b0d4: */ + RTUNI_ALPHA, /* U+00b0d5: */ + RTUNI_ALPHA, /* U+00b0d6: */ + RTUNI_ALPHA, /* U+00b0d7: */ + RTUNI_ALPHA, /* U+00b0d8: */ + RTUNI_ALPHA, /* U+00b0d9: */ + RTUNI_ALPHA, /* U+00b0da: */ + RTUNI_ALPHA, /* U+00b0db: */ + RTUNI_ALPHA, /* U+00b0dc: */ + RTUNI_ALPHA, /* U+00b0dd: */ + RTUNI_ALPHA, /* U+00b0de: */ + RTUNI_ALPHA, /* U+00b0df: */ + RTUNI_ALPHA, /* U+00b0e0: */ + RTUNI_ALPHA, /* U+00b0e1: */ + RTUNI_ALPHA, /* U+00b0e2: */ + RTUNI_ALPHA, /* U+00b0e3: */ + RTUNI_ALPHA, /* U+00b0e4: */ + RTUNI_ALPHA, /* U+00b0e5: */ + RTUNI_ALPHA, /* U+00b0e6: */ + RTUNI_ALPHA, /* U+00b0e7: */ + RTUNI_ALPHA, /* U+00b0e8: */ + RTUNI_ALPHA, /* U+00b0e9: */ + RTUNI_ALPHA, /* U+00b0ea: */ + RTUNI_ALPHA, /* U+00b0eb: */ + RTUNI_ALPHA, /* U+00b0ec: */ + RTUNI_ALPHA, /* U+00b0ed: */ + RTUNI_ALPHA, /* U+00b0ee: */ + RTUNI_ALPHA, /* U+00b0ef: */ + RTUNI_ALPHA, /* U+00b0f0: */ + RTUNI_ALPHA, /* U+00b0f1: */ + RTUNI_ALPHA, /* U+00b0f2: */ + RTUNI_ALPHA, /* U+00b0f3: */ + RTUNI_ALPHA, /* U+00b0f4: */ + RTUNI_ALPHA, /* U+00b0f5: */ + RTUNI_ALPHA, /* U+00b0f6: */ + RTUNI_ALPHA, /* U+00b0f7: */ + RTUNI_ALPHA, /* U+00b0f8: */ + RTUNI_ALPHA, /* U+00b0f9: */ + RTUNI_ALPHA, /* U+00b0fa: */ + RTUNI_ALPHA, /* U+00b0fb: */ + RTUNI_ALPHA, /* U+00b0fc: */ + RTUNI_ALPHA, /* U+00b0fd: */ + RTUNI_ALPHA, /* U+00b0fe: */ + RTUNI_ALPHA, /* U+00b0ff: */ + RTUNI_ALPHA, /* U+00b100: */ + RTUNI_ALPHA, /* U+00b101: */ + RTUNI_ALPHA, /* U+00b102: */ + RTUNI_ALPHA, /* U+00b103: */ + RTUNI_ALPHA, /* U+00b104: */ + RTUNI_ALPHA, /* U+00b105: */ + RTUNI_ALPHA, /* U+00b106: */ + RTUNI_ALPHA, /* U+00b107: */ + RTUNI_ALPHA, /* U+00b108: */ + RTUNI_ALPHA, /* U+00b109: */ + RTUNI_ALPHA, /* U+00b10a: */ + RTUNI_ALPHA, /* U+00b10b: */ + RTUNI_ALPHA, /* U+00b10c: */ + RTUNI_ALPHA, /* U+00b10d: */ + RTUNI_ALPHA, /* U+00b10e: */ + RTUNI_ALPHA, /* U+00b10f: */ + RTUNI_ALPHA, /* U+00b110: */ + RTUNI_ALPHA, /* U+00b111: */ + RTUNI_ALPHA, /* U+00b112: */ + RTUNI_ALPHA, /* U+00b113: */ + RTUNI_ALPHA, /* U+00b114: */ + RTUNI_ALPHA, /* U+00b115: */ + RTUNI_ALPHA, /* U+00b116: */ + RTUNI_ALPHA, /* U+00b117: */ + RTUNI_ALPHA, /* U+00b118: */ + RTUNI_ALPHA, /* U+00b119: */ + RTUNI_ALPHA, /* U+00b11a: */ + RTUNI_ALPHA, /* U+00b11b: */ + RTUNI_ALPHA, /* U+00b11c: */ + RTUNI_ALPHA, /* U+00b11d: */ + RTUNI_ALPHA, /* U+00b11e: */ + RTUNI_ALPHA, /* U+00b11f: */ + RTUNI_ALPHA, /* U+00b120: */ + RTUNI_ALPHA, /* U+00b121: */ + RTUNI_ALPHA, /* U+00b122: */ + RTUNI_ALPHA, /* U+00b123: */ + RTUNI_ALPHA, /* U+00b124: */ + RTUNI_ALPHA, /* U+00b125: */ + RTUNI_ALPHA, /* U+00b126: */ + RTUNI_ALPHA, /* U+00b127: */ + RTUNI_ALPHA, /* U+00b128: */ + RTUNI_ALPHA, /* U+00b129: */ + RTUNI_ALPHA, /* U+00b12a: */ + RTUNI_ALPHA, /* U+00b12b: */ + RTUNI_ALPHA, /* U+00b12c: */ + RTUNI_ALPHA, /* U+00b12d: */ + RTUNI_ALPHA, /* U+00b12e: */ + RTUNI_ALPHA, /* U+00b12f: */ + RTUNI_ALPHA, /* U+00b130: */ + RTUNI_ALPHA, /* U+00b131: */ + RTUNI_ALPHA, /* U+00b132: */ + RTUNI_ALPHA, /* U+00b133: */ + RTUNI_ALPHA, /* U+00b134: */ + RTUNI_ALPHA, /* U+00b135: */ + RTUNI_ALPHA, /* U+00b136: */ + RTUNI_ALPHA, /* U+00b137: */ + RTUNI_ALPHA, /* U+00b138: */ + RTUNI_ALPHA, /* U+00b139: */ + RTUNI_ALPHA, /* U+00b13a: */ + RTUNI_ALPHA, /* U+00b13b: */ + RTUNI_ALPHA, /* U+00b13c: */ + RTUNI_ALPHA, /* U+00b13d: */ + RTUNI_ALPHA, /* U+00b13e: */ + RTUNI_ALPHA, /* U+00b13f: */ + RTUNI_ALPHA, /* U+00b140: */ + RTUNI_ALPHA, /* U+00b141: */ + RTUNI_ALPHA, /* U+00b142: */ + RTUNI_ALPHA, /* U+00b143: */ + RTUNI_ALPHA, /* U+00b144: */ + RTUNI_ALPHA, /* U+00b145: */ + RTUNI_ALPHA, /* U+00b146: */ + RTUNI_ALPHA, /* U+00b147: */ + RTUNI_ALPHA, /* U+00b148: */ + RTUNI_ALPHA, /* U+00b149: */ + RTUNI_ALPHA, /* U+00b14a: */ + RTUNI_ALPHA, /* U+00b14b: */ + RTUNI_ALPHA, /* U+00b14c: */ + RTUNI_ALPHA, /* U+00b14d: */ + RTUNI_ALPHA, /* U+00b14e: */ + RTUNI_ALPHA, /* U+00b14f: */ + RTUNI_ALPHA, /* U+00b150: */ + RTUNI_ALPHA, /* U+00b151: */ + RTUNI_ALPHA, /* U+00b152: */ + RTUNI_ALPHA, /* U+00b153: */ + RTUNI_ALPHA, /* U+00b154: */ + RTUNI_ALPHA, /* U+00b155: */ + RTUNI_ALPHA, /* U+00b156: */ + RTUNI_ALPHA, /* U+00b157: */ + RTUNI_ALPHA, /* U+00b158: */ + RTUNI_ALPHA, /* U+00b159: */ + RTUNI_ALPHA, /* U+00b15a: */ + RTUNI_ALPHA, /* U+00b15b: */ + RTUNI_ALPHA, /* U+00b15c: */ + RTUNI_ALPHA, /* U+00b15d: */ + RTUNI_ALPHA, /* U+00b15e: */ + RTUNI_ALPHA, /* U+00b15f: */ + RTUNI_ALPHA, /* U+00b160: */ + RTUNI_ALPHA, /* U+00b161: */ + RTUNI_ALPHA, /* U+00b162: */ + RTUNI_ALPHA, /* U+00b163: */ + RTUNI_ALPHA, /* U+00b164: */ + RTUNI_ALPHA, /* U+00b165: */ + RTUNI_ALPHA, /* U+00b166: */ + RTUNI_ALPHA, /* U+00b167: */ + RTUNI_ALPHA, /* U+00b168: */ + RTUNI_ALPHA, /* U+00b169: */ + RTUNI_ALPHA, /* U+00b16a: */ + RTUNI_ALPHA, /* U+00b16b: */ + RTUNI_ALPHA, /* U+00b16c: */ + RTUNI_ALPHA, /* U+00b16d: */ + RTUNI_ALPHA, /* U+00b16e: */ + RTUNI_ALPHA, /* U+00b16f: */ + RTUNI_ALPHA, /* U+00b170: */ + RTUNI_ALPHA, /* U+00b171: */ + RTUNI_ALPHA, /* U+00b172: */ + RTUNI_ALPHA, /* U+00b173: */ + RTUNI_ALPHA, /* U+00b174: */ + RTUNI_ALPHA, /* U+00b175: */ + RTUNI_ALPHA, /* U+00b176: */ + RTUNI_ALPHA, /* U+00b177: */ + RTUNI_ALPHA, /* U+00b178: */ + RTUNI_ALPHA, /* U+00b179: */ + RTUNI_ALPHA, /* U+00b17a: */ + RTUNI_ALPHA, /* U+00b17b: */ + RTUNI_ALPHA, /* U+00b17c: */ + RTUNI_ALPHA, /* U+00b17d: */ + RTUNI_ALPHA, /* U+00b17e: */ + RTUNI_ALPHA, /* U+00b17f: */ + RTUNI_ALPHA, /* U+00b180: */ + RTUNI_ALPHA, /* U+00b181: */ + RTUNI_ALPHA, /* U+00b182: */ + RTUNI_ALPHA, /* U+00b183: */ + RTUNI_ALPHA, /* U+00b184: */ + RTUNI_ALPHA, /* U+00b185: */ + RTUNI_ALPHA, /* U+00b186: */ + RTUNI_ALPHA, /* U+00b187: */ + RTUNI_ALPHA, /* U+00b188: */ + RTUNI_ALPHA, /* U+00b189: */ + RTUNI_ALPHA, /* U+00b18a: */ + RTUNI_ALPHA, /* U+00b18b: */ + RTUNI_ALPHA, /* U+00b18c: */ + RTUNI_ALPHA, /* U+00b18d: */ + RTUNI_ALPHA, /* U+00b18e: */ + RTUNI_ALPHA, /* U+00b18f: */ + RTUNI_ALPHA, /* U+00b190: */ + RTUNI_ALPHA, /* U+00b191: */ + RTUNI_ALPHA, /* U+00b192: */ + RTUNI_ALPHA, /* U+00b193: */ + RTUNI_ALPHA, /* U+00b194: */ + RTUNI_ALPHA, /* U+00b195: */ + RTUNI_ALPHA, /* U+00b196: */ + RTUNI_ALPHA, /* U+00b197: */ + RTUNI_ALPHA, /* U+00b198: */ + RTUNI_ALPHA, /* U+00b199: */ + RTUNI_ALPHA, /* U+00b19a: */ + RTUNI_ALPHA, /* U+00b19b: */ + RTUNI_ALPHA, /* U+00b19c: */ + RTUNI_ALPHA, /* U+00b19d: */ + RTUNI_ALPHA, /* U+00b19e: */ + RTUNI_ALPHA, /* U+00b19f: */ + RTUNI_ALPHA, /* U+00b1a0: */ + RTUNI_ALPHA, /* U+00b1a1: */ + RTUNI_ALPHA, /* U+00b1a2: */ + RTUNI_ALPHA, /* U+00b1a3: */ + RTUNI_ALPHA, /* U+00b1a4: */ + RTUNI_ALPHA, /* U+00b1a5: */ + RTUNI_ALPHA, /* U+00b1a6: */ + RTUNI_ALPHA, /* U+00b1a7: */ + RTUNI_ALPHA, /* U+00b1a8: */ + RTUNI_ALPHA, /* U+00b1a9: */ + RTUNI_ALPHA, /* U+00b1aa: */ + RTUNI_ALPHA, /* U+00b1ab: */ + RTUNI_ALPHA, /* U+00b1ac: */ + RTUNI_ALPHA, /* U+00b1ad: */ + RTUNI_ALPHA, /* U+00b1ae: */ + RTUNI_ALPHA, /* U+00b1af: */ + RTUNI_ALPHA, /* U+00b1b0: */ + RTUNI_ALPHA, /* U+00b1b1: */ + RTUNI_ALPHA, /* U+00b1b2: */ + RTUNI_ALPHA, /* U+00b1b3: */ + RTUNI_ALPHA, /* U+00b1b4: */ + RTUNI_ALPHA, /* U+00b1b5: */ + RTUNI_ALPHA, /* U+00b1b6: */ + RTUNI_ALPHA, /* U+00b1b7: */ + RTUNI_ALPHA, /* U+00b1b8: */ + RTUNI_ALPHA, /* U+00b1b9: */ + RTUNI_ALPHA, /* U+00b1ba: */ + RTUNI_ALPHA, /* U+00b1bb: */ + RTUNI_ALPHA, /* U+00b1bc: */ + RTUNI_ALPHA, /* U+00b1bd: */ + RTUNI_ALPHA, /* U+00b1be: */ + RTUNI_ALPHA, /* U+00b1bf: */ + RTUNI_ALPHA, /* U+00b1c0: */ + RTUNI_ALPHA, /* U+00b1c1: */ + RTUNI_ALPHA, /* U+00b1c2: */ + RTUNI_ALPHA, /* U+00b1c3: */ + RTUNI_ALPHA, /* U+00b1c4: */ + RTUNI_ALPHA, /* U+00b1c5: */ + RTUNI_ALPHA, /* U+00b1c6: */ + RTUNI_ALPHA, /* U+00b1c7: */ + RTUNI_ALPHA, /* U+00b1c8: */ + RTUNI_ALPHA, /* U+00b1c9: */ + RTUNI_ALPHA, /* U+00b1ca: */ + RTUNI_ALPHA, /* U+00b1cb: */ + RTUNI_ALPHA, /* U+00b1cc: */ + RTUNI_ALPHA, /* U+00b1cd: */ + RTUNI_ALPHA, /* U+00b1ce: */ + RTUNI_ALPHA, /* U+00b1cf: */ + RTUNI_ALPHA, /* U+00b1d0: */ + RTUNI_ALPHA, /* U+00b1d1: */ + RTUNI_ALPHA, /* U+00b1d2: */ + RTUNI_ALPHA, /* U+00b1d3: */ + RTUNI_ALPHA, /* U+00b1d4: */ + RTUNI_ALPHA, /* U+00b1d5: */ + RTUNI_ALPHA, /* U+00b1d6: */ + RTUNI_ALPHA, /* U+00b1d7: */ + RTUNI_ALPHA, /* U+00b1d8: */ + RTUNI_ALPHA, /* U+00b1d9: */ + RTUNI_ALPHA, /* U+00b1da: */ + RTUNI_ALPHA, /* U+00b1db: */ + RTUNI_ALPHA, /* U+00b1dc: */ + RTUNI_ALPHA, /* U+00b1dd: */ + RTUNI_ALPHA, /* U+00b1de: */ + RTUNI_ALPHA, /* U+00b1df: */ + RTUNI_ALPHA, /* U+00b1e0: */ + RTUNI_ALPHA, /* U+00b1e1: */ + RTUNI_ALPHA, /* U+00b1e2: */ + RTUNI_ALPHA, /* U+00b1e3: */ + RTUNI_ALPHA, /* U+00b1e4: */ + RTUNI_ALPHA, /* U+00b1e5: */ + RTUNI_ALPHA, /* U+00b1e6: */ + RTUNI_ALPHA, /* U+00b1e7: */ + RTUNI_ALPHA, /* U+00b1e8: */ + RTUNI_ALPHA, /* U+00b1e9: */ + RTUNI_ALPHA, /* U+00b1ea: */ + RTUNI_ALPHA, /* U+00b1eb: */ + RTUNI_ALPHA, /* U+00b1ec: */ + RTUNI_ALPHA, /* U+00b1ed: */ + RTUNI_ALPHA, /* U+00b1ee: */ + RTUNI_ALPHA, /* U+00b1ef: */ + RTUNI_ALPHA, /* U+00b1f0: */ + RTUNI_ALPHA, /* U+00b1f1: */ + RTUNI_ALPHA, /* U+00b1f2: */ + RTUNI_ALPHA, /* U+00b1f3: */ + RTUNI_ALPHA, /* U+00b1f4: */ + RTUNI_ALPHA, /* U+00b1f5: */ + RTUNI_ALPHA, /* U+00b1f6: */ + RTUNI_ALPHA, /* U+00b1f7: */ + RTUNI_ALPHA, /* U+00b1f8: */ + RTUNI_ALPHA, /* U+00b1f9: */ + RTUNI_ALPHA, /* U+00b1fa: */ + RTUNI_ALPHA, /* U+00b1fb: */ + RTUNI_ALPHA, /* U+00b1fc: */ + RTUNI_ALPHA, /* U+00b1fd: */ + RTUNI_ALPHA, /* U+00b1fe: */ + RTUNI_ALPHA, /* U+00b1ff: */ + RTUNI_ALPHA, /* U+00b200: */ + RTUNI_ALPHA, /* U+00b201: */ + RTUNI_ALPHA, /* U+00b202: */ + RTUNI_ALPHA, /* U+00b203: */ + RTUNI_ALPHA, /* U+00b204: */ + RTUNI_ALPHA, /* U+00b205: */ + RTUNI_ALPHA, /* U+00b206: */ + RTUNI_ALPHA, /* U+00b207: */ + RTUNI_ALPHA, /* U+00b208: */ + RTUNI_ALPHA, /* U+00b209: */ + RTUNI_ALPHA, /* U+00b20a: */ + RTUNI_ALPHA, /* U+00b20b: */ + RTUNI_ALPHA, /* U+00b20c: */ + RTUNI_ALPHA, /* U+00b20d: */ + RTUNI_ALPHA, /* U+00b20e: */ + RTUNI_ALPHA, /* U+00b20f: */ + RTUNI_ALPHA, /* U+00b210: */ + RTUNI_ALPHA, /* U+00b211: */ + RTUNI_ALPHA, /* U+00b212: */ + RTUNI_ALPHA, /* U+00b213: */ + RTUNI_ALPHA, /* U+00b214: */ + RTUNI_ALPHA, /* U+00b215: */ + RTUNI_ALPHA, /* U+00b216: */ + RTUNI_ALPHA, /* U+00b217: */ + RTUNI_ALPHA, /* U+00b218: */ + RTUNI_ALPHA, /* U+00b219: */ + RTUNI_ALPHA, /* U+00b21a: */ + RTUNI_ALPHA, /* U+00b21b: */ + RTUNI_ALPHA, /* U+00b21c: */ + RTUNI_ALPHA, /* U+00b21d: */ + RTUNI_ALPHA, /* U+00b21e: */ + RTUNI_ALPHA, /* U+00b21f: */ + RTUNI_ALPHA, /* U+00b220: */ + RTUNI_ALPHA, /* U+00b221: */ + RTUNI_ALPHA, /* U+00b222: */ + RTUNI_ALPHA, /* U+00b223: */ + RTUNI_ALPHA, /* U+00b224: */ + RTUNI_ALPHA, /* U+00b225: */ + RTUNI_ALPHA, /* U+00b226: */ + RTUNI_ALPHA, /* U+00b227: */ + RTUNI_ALPHA, /* U+00b228: */ + RTUNI_ALPHA, /* U+00b229: */ + RTUNI_ALPHA, /* U+00b22a: */ + RTUNI_ALPHA, /* U+00b22b: */ + RTUNI_ALPHA, /* U+00b22c: */ + RTUNI_ALPHA, /* U+00b22d: */ + RTUNI_ALPHA, /* U+00b22e: */ + RTUNI_ALPHA, /* U+00b22f: */ + RTUNI_ALPHA, /* U+00b230: */ + RTUNI_ALPHA, /* U+00b231: */ + RTUNI_ALPHA, /* U+00b232: */ + RTUNI_ALPHA, /* U+00b233: */ + RTUNI_ALPHA, /* U+00b234: */ + RTUNI_ALPHA, /* U+00b235: */ + RTUNI_ALPHA, /* U+00b236: */ + RTUNI_ALPHA, /* U+00b237: */ + RTUNI_ALPHA, /* U+00b238: */ + RTUNI_ALPHA, /* U+00b239: */ + RTUNI_ALPHA, /* U+00b23a: */ + RTUNI_ALPHA, /* U+00b23b: */ + RTUNI_ALPHA, /* U+00b23c: */ + RTUNI_ALPHA, /* U+00b23d: */ + RTUNI_ALPHA, /* U+00b23e: */ + RTUNI_ALPHA, /* U+00b23f: */ + RTUNI_ALPHA, /* U+00b240: */ + RTUNI_ALPHA, /* U+00b241: */ + RTUNI_ALPHA, /* U+00b242: */ + RTUNI_ALPHA, /* U+00b243: */ + RTUNI_ALPHA, /* U+00b244: */ + RTUNI_ALPHA, /* U+00b245: */ + RTUNI_ALPHA, /* U+00b246: */ + RTUNI_ALPHA, /* U+00b247: */ + RTUNI_ALPHA, /* U+00b248: */ + RTUNI_ALPHA, /* U+00b249: */ + RTUNI_ALPHA, /* U+00b24a: */ + RTUNI_ALPHA, /* U+00b24b: */ + RTUNI_ALPHA, /* U+00b24c: */ + RTUNI_ALPHA, /* U+00b24d: */ + RTUNI_ALPHA, /* U+00b24e: */ + RTUNI_ALPHA, /* U+00b24f: */ + RTUNI_ALPHA, /* U+00b250: */ + RTUNI_ALPHA, /* U+00b251: */ + RTUNI_ALPHA, /* U+00b252: */ + RTUNI_ALPHA, /* U+00b253: */ + RTUNI_ALPHA, /* U+00b254: */ + RTUNI_ALPHA, /* U+00b255: */ + RTUNI_ALPHA, /* U+00b256: */ + RTUNI_ALPHA, /* U+00b257: */ + RTUNI_ALPHA, /* U+00b258: */ + RTUNI_ALPHA, /* U+00b259: */ + RTUNI_ALPHA, /* U+00b25a: */ + RTUNI_ALPHA, /* U+00b25b: */ + RTUNI_ALPHA, /* U+00b25c: */ + RTUNI_ALPHA, /* U+00b25d: */ + RTUNI_ALPHA, /* U+00b25e: */ + RTUNI_ALPHA, /* U+00b25f: */ + RTUNI_ALPHA, /* U+00b260: */ + RTUNI_ALPHA, /* U+00b261: */ + RTUNI_ALPHA, /* U+00b262: */ + RTUNI_ALPHA, /* U+00b263: */ + RTUNI_ALPHA, /* U+00b264: */ + RTUNI_ALPHA, /* U+00b265: */ + RTUNI_ALPHA, /* U+00b266: */ + RTUNI_ALPHA, /* U+00b267: */ + RTUNI_ALPHA, /* U+00b268: */ + RTUNI_ALPHA, /* U+00b269: */ + RTUNI_ALPHA, /* U+00b26a: */ + RTUNI_ALPHA, /* U+00b26b: */ + RTUNI_ALPHA, /* U+00b26c: */ + RTUNI_ALPHA, /* U+00b26d: */ + RTUNI_ALPHA, /* U+00b26e: */ + RTUNI_ALPHA, /* U+00b26f: */ + RTUNI_ALPHA, /* U+00b270: */ + RTUNI_ALPHA, /* U+00b271: */ + RTUNI_ALPHA, /* U+00b272: */ + RTUNI_ALPHA, /* U+00b273: */ + RTUNI_ALPHA, /* U+00b274: */ + RTUNI_ALPHA, /* U+00b275: */ + RTUNI_ALPHA, /* U+00b276: */ + RTUNI_ALPHA, /* U+00b277: */ + RTUNI_ALPHA, /* U+00b278: */ + RTUNI_ALPHA, /* U+00b279: */ + RTUNI_ALPHA, /* U+00b27a: */ + RTUNI_ALPHA, /* U+00b27b: */ + RTUNI_ALPHA, /* U+00b27c: */ + RTUNI_ALPHA, /* U+00b27d: */ + RTUNI_ALPHA, /* U+00b27e: */ + RTUNI_ALPHA, /* U+00b27f: */ + RTUNI_ALPHA, /* U+00b280: */ + RTUNI_ALPHA, /* U+00b281: */ + RTUNI_ALPHA, /* U+00b282: */ + RTUNI_ALPHA, /* U+00b283: */ + RTUNI_ALPHA, /* U+00b284: */ + RTUNI_ALPHA, /* U+00b285: */ + RTUNI_ALPHA, /* U+00b286: */ + RTUNI_ALPHA, /* U+00b287: */ + RTUNI_ALPHA, /* U+00b288: */ + RTUNI_ALPHA, /* U+00b289: */ + RTUNI_ALPHA, /* U+00b28a: */ + RTUNI_ALPHA, /* U+00b28b: */ + RTUNI_ALPHA, /* U+00b28c: */ + RTUNI_ALPHA, /* U+00b28d: */ + RTUNI_ALPHA, /* U+00b28e: */ + RTUNI_ALPHA, /* U+00b28f: */ + RTUNI_ALPHA, /* U+00b290: */ + RTUNI_ALPHA, /* U+00b291: */ + RTUNI_ALPHA, /* U+00b292: */ + RTUNI_ALPHA, /* U+00b293: */ + RTUNI_ALPHA, /* U+00b294: */ + RTUNI_ALPHA, /* U+00b295: */ + RTUNI_ALPHA, /* U+00b296: */ + RTUNI_ALPHA, /* U+00b297: */ + RTUNI_ALPHA, /* U+00b298: */ + RTUNI_ALPHA, /* U+00b299: */ + RTUNI_ALPHA, /* U+00b29a: */ + RTUNI_ALPHA, /* U+00b29b: */ + RTUNI_ALPHA, /* U+00b29c: */ + RTUNI_ALPHA, /* U+00b29d: */ + RTUNI_ALPHA, /* U+00b29e: */ + RTUNI_ALPHA, /* U+00b29f: */ + RTUNI_ALPHA, /* U+00b2a0: */ + RTUNI_ALPHA, /* U+00b2a1: */ + RTUNI_ALPHA, /* U+00b2a2: */ + RTUNI_ALPHA, /* U+00b2a3: */ + RTUNI_ALPHA, /* U+00b2a4: */ + RTUNI_ALPHA, /* U+00b2a5: */ + RTUNI_ALPHA, /* U+00b2a6: */ + RTUNI_ALPHA, /* U+00b2a7: */ + RTUNI_ALPHA, /* U+00b2a8: */ + RTUNI_ALPHA, /* U+00b2a9: */ + RTUNI_ALPHA, /* U+00b2aa: */ + RTUNI_ALPHA, /* U+00b2ab: */ + RTUNI_ALPHA, /* U+00b2ac: */ + RTUNI_ALPHA, /* U+00b2ad: */ + RTUNI_ALPHA, /* U+00b2ae: */ + RTUNI_ALPHA, /* U+00b2af: */ + RTUNI_ALPHA, /* U+00b2b0: */ + RTUNI_ALPHA, /* U+00b2b1: */ + RTUNI_ALPHA, /* U+00b2b2: */ + RTUNI_ALPHA, /* U+00b2b3: */ + RTUNI_ALPHA, /* U+00b2b4: */ + RTUNI_ALPHA, /* U+00b2b5: */ + RTUNI_ALPHA, /* U+00b2b6: */ + RTUNI_ALPHA, /* U+00b2b7: */ + RTUNI_ALPHA, /* U+00b2b8: */ + RTUNI_ALPHA, /* U+00b2b9: */ + RTUNI_ALPHA, /* U+00b2ba: */ + RTUNI_ALPHA, /* U+00b2bb: */ + RTUNI_ALPHA, /* U+00b2bc: */ + RTUNI_ALPHA, /* U+00b2bd: */ + RTUNI_ALPHA, /* U+00b2be: */ + RTUNI_ALPHA, /* U+00b2bf: */ + RTUNI_ALPHA, /* U+00b2c0: */ + RTUNI_ALPHA, /* U+00b2c1: */ + RTUNI_ALPHA, /* U+00b2c2: */ + RTUNI_ALPHA, /* U+00b2c3: */ + RTUNI_ALPHA, /* U+00b2c4: */ + RTUNI_ALPHA, /* U+00b2c5: */ + RTUNI_ALPHA, /* U+00b2c6: */ + RTUNI_ALPHA, /* U+00b2c7: */ + RTUNI_ALPHA, /* U+00b2c8: */ + RTUNI_ALPHA, /* U+00b2c9: */ + RTUNI_ALPHA, /* U+00b2ca: */ + RTUNI_ALPHA, /* U+00b2cb: */ + RTUNI_ALPHA, /* U+00b2cc: */ + RTUNI_ALPHA, /* U+00b2cd: */ + RTUNI_ALPHA, /* U+00b2ce: */ + RTUNI_ALPHA, /* U+00b2cf: */ + RTUNI_ALPHA, /* U+00b2d0: */ + RTUNI_ALPHA, /* U+00b2d1: */ + RTUNI_ALPHA, /* U+00b2d2: */ + RTUNI_ALPHA, /* U+00b2d3: */ + RTUNI_ALPHA, /* U+00b2d4: */ + RTUNI_ALPHA, /* U+00b2d5: */ + RTUNI_ALPHA, /* U+00b2d6: */ + RTUNI_ALPHA, /* U+00b2d7: */ + RTUNI_ALPHA, /* U+00b2d8: */ + RTUNI_ALPHA, /* U+00b2d9: */ + RTUNI_ALPHA, /* U+00b2da: */ + RTUNI_ALPHA, /* U+00b2db: */ + RTUNI_ALPHA, /* U+00b2dc: */ + RTUNI_ALPHA, /* U+00b2dd: */ + RTUNI_ALPHA, /* U+00b2de: */ + RTUNI_ALPHA, /* U+00b2df: */ + RTUNI_ALPHA, /* U+00b2e0: */ + RTUNI_ALPHA, /* U+00b2e1: */ + RTUNI_ALPHA, /* U+00b2e2: */ + RTUNI_ALPHA, /* U+00b2e3: */ + RTUNI_ALPHA, /* U+00b2e4: */ + RTUNI_ALPHA, /* U+00b2e5: */ + RTUNI_ALPHA, /* U+00b2e6: */ + RTUNI_ALPHA, /* U+00b2e7: */ + RTUNI_ALPHA, /* U+00b2e8: */ + RTUNI_ALPHA, /* U+00b2e9: */ + RTUNI_ALPHA, /* U+00b2ea: */ + RTUNI_ALPHA, /* U+00b2eb: */ + RTUNI_ALPHA, /* U+00b2ec: */ + RTUNI_ALPHA, /* U+00b2ed: */ + RTUNI_ALPHA, /* U+00b2ee: */ + RTUNI_ALPHA, /* U+00b2ef: */ + RTUNI_ALPHA, /* U+00b2f0: */ + RTUNI_ALPHA, /* U+00b2f1: */ + RTUNI_ALPHA, /* U+00b2f2: */ + RTUNI_ALPHA, /* U+00b2f3: */ + RTUNI_ALPHA, /* U+00b2f4: */ + RTUNI_ALPHA, /* U+00b2f5: */ + RTUNI_ALPHA, /* U+00b2f6: */ + RTUNI_ALPHA, /* U+00b2f7: */ + RTUNI_ALPHA, /* U+00b2f8: */ + RTUNI_ALPHA, /* U+00b2f9: */ + RTUNI_ALPHA, /* U+00b2fa: */ + RTUNI_ALPHA, /* U+00b2fb: */ + RTUNI_ALPHA, /* U+00b2fc: */ + RTUNI_ALPHA, /* U+00b2fd: */ + RTUNI_ALPHA, /* U+00b2fe: */ + RTUNI_ALPHA, /* U+00b2ff: */ + RTUNI_ALPHA, /* U+00b300: */ + RTUNI_ALPHA, /* U+00b301: */ + RTUNI_ALPHA, /* U+00b302: */ + RTUNI_ALPHA, /* U+00b303: */ + RTUNI_ALPHA, /* U+00b304: */ + RTUNI_ALPHA, /* U+00b305: */ + RTUNI_ALPHA, /* U+00b306: */ + RTUNI_ALPHA, /* U+00b307: */ + RTUNI_ALPHA, /* U+00b308: */ + RTUNI_ALPHA, /* U+00b309: */ + RTUNI_ALPHA, /* U+00b30a: */ + RTUNI_ALPHA, /* U+00b30b: */ + RTUNI_ALPHA, /* U+00b30c: */ + RTUNI_ALPHA, /* U+00b30d: */ + RTUNI_ALPHA, /* U+00b30e: */ + RTUNI_ALPHA, /* U+00b30f: */ + RTUNI_ALPHA, /* U+00b310: */ + RTUNI_ALPHA, /* U+00b311: */ + RTUNI_ALPHA, /* U+00b312: */ + RTUNI_ALPHA, /* U+00b313: */ + RTUNI_ALPHA, /* U+00b314: */ + RTUNI_ALPHA, /* U+00b315: */ + RTUNI_ALPHA, /* U+00b316: */ + RTUNI_ALPHA, /* U+00b317: */ + RTUNI_ALPHA, /* U+00b318: */ + RTUNI_ALPHA, /* U+00b319: */ + RTUNI_ALPHA, /* U+00b31a: */ + RTUNI_ALPHA, /* U+00b31b: */ + RTUNI_ALPHA, /* U+00b31c: */ + RTUNI_ALPHA, /* U+00b31d: */ + RTUNI_ALPHA, /* U+00b31e: */ + RTUNI_ALPHA, /* U+00b31f: */ + RTUNI_ALPHA, /* U+00b320: */ + RTUNI_ALPHA, /* U+00b321: */ + RTUNI_ALPHA, /* U+00b322: */ + RTUNI_ALPHA, /* U+00b323: */ + RTUNI_ALPHA, /* U+00b324: */ + RTUNI_ALPHA, /* U+00b325: */ + RTUNI_ALPHA, /* U+00b326: */ + RTUNI_ALPHA, /* U+00b327: */ + RTUNI_ALPHA, /* U+00b328: */ + RTUNI_ALPHA, /* U+00b329: */ + RTUNI_ALPHA, /* U+00b32a: */ + RTUNI_ALPHA, /* U+00b32b: */ + RTUNI_ALPHA, /* U+00b32c: */ + RTUNI_ALPHA, /* U+00b32d: */ + RTUNI_ALPHA, /* U+00b32e: */ + RTUNI_ALPHA, /* U+00b32f: */ + RTUNI_ALPHA, /* U+00b330: */ + RTUNI_ALPHA, /* U+00b331: */ + RTUNI_ALPHA, /* U+00b332: */ + RTUNI_ALPHA, /* U+00b333: */ + RTUNI_ALPHA, /* U+00b334: */ + RTUNI_ALPHA, /* U+00b335: */ + RTUNI_ALPHA, /* U+00b336: */ + RTUNI_ALPHA, /* U+00b337: */ + RTUNI_ALPHA, /* U+00b338: */ + RTUNI_ALPHA, /* U+00b339: */ + RTUNI_ALPHA, /* U+00b33a: */ + RTUNI_ALPHA, /* U+00b33b: */ + RTUNI_ALPHA, /* U+00b33c: */ + RTUNI_ALPHA, /* U+00b33d: */ + RTUNI_ALPHA, /* U+00b33e: */ + RTUNI_ALPHA, /* U+00b33f: */ + RTUNI_ALPHA, /* U+00b340: */ + RTUNI_ALPHA, /* U+00b341: */ + RTUNI_ALPHA, /* U+00b342: */ + RTUNI_ALPHA, /* U+00b343: */ + RTUNI_ALPHA, /* U+00b344: */ + RTUNI_ALPHA, /* U+00b345: */ + RTUNI_ALPHA, /* U+00b346: */ + RTUNI_ALPHA, /* U+00b347: */ + RTUNI_ALPHA, /* U+00b348: */ + RTUNI_ALPHA, /* U+00b349: */ + RTUNI_ALPHA, /* U+00b34a: */ + RTUNI_ALPHA, /* U+00b34b: */ + RTUNI_ALPHA, /* U+00b34c: */ + RTUNI_ALPHA, /* U+00b34d: */ + RTUNI_ALPHA, /* U+00b34e: */ + RTUNI_ALPHA, /* U+00b34f: */ + RTUNI_ALPHA, /* U+00b350: */ + RTUNI_ALPHA, /* U+00b351: */ + RTUNI_ALPHA, /* U+00b352: */ + RTUNI_ALPHA, /* U+00b353: */ + RTUNI_ALPHA, /* U+00b354: */ + RTUNI_ALPHA, /* U+00b355: */ + RTUNI_ALPHA, /* U+00b356: */ + RTUNI_ALPHA, /* U+00b357: */ + RTUNI_ALPHA, /* U+00b358: */ + RTUNI_ALPHA, /* U+00b359: */ + RTUNI_ALPHA, /* U+00b35a: */ + RTUNI_ALPHA, /* U+00b35b: */ + RTUNI_ALPHA, /* U+00b35c: */ + RTUNI_ALPHA, /* U+00b35d: */ + RTUNI_ALPHA, /* U+00b35e: */ + RTUNI_ALPHA, /* U+00b35f: */ + RTUNI_ALPHA, /* U+00b360: */ + RTUNI_ALPHA, /* U+00b361: */ + RTUNI_ALPHA, /* U+00b362: */ + RTUNI_ALPHA, /* U+00b363: */ + RTUNI_ALPHA, /* U+00b364: */ + RTUNI_ALPHA, /* U+00b365: */ + RTUNI_ALPHA, /* U+00b366: */ + RTUNI_ALPHA, /* U+00b367: */ + RTUNI_ALPHA, /* U+00b368: */ + RTUNI_ALPHA, /* U+00b369: */ + RTUNI_ALPHA, /* U+00b36a: */ + RTUNI_ALPHA, /* U+00b36b: */ + RTUNI_ALPHA, /* U+00b36c: */ + RTUNI_ALPHA, /* U+00b36d: */ + RTUNI_ALPHA, /* U+00b36e: */ + RTUNI_ALPHA, /* U+00b36f: */ + RTUNI_ALPHA, /* U+00b370: */ + RTUNI_ALPHA, /* U+00b371: */ + RTUNI_ALPHA, /* U+00b372: */ + RTUNI_ALPHA, /* U+00b373: */ + RTUNI_ALPHA, /* U+00b374: */ + RTUNI_ALPHA, /* U+00b375: */ + RTUNI_ALPHA, /* U+00b376: */ + RTUNI_ALPHA, /* U+00b377: */ + RTUNI_ALPHA, /* U+00b378: */ + RTUNI_ALPHA, /* U+00b379: */ + RTUNI_ALPHA, /* U+00b37a: */ + RTUNI_ALPHA, /* U+00b37b: */ + RTUNI_ALPHA, /* U+00b37c: */ + RTUNI_ALPHA, /* U+00b37d: */ + RTUNI_ALPHA, /* U+00b37e: */ + RTUNI_ALPHA, /* U+00b37f: */ + RTUNI_ALPHA, /* U+00b380: */ + RTUNI_ALPHA, /* U+00b381: */ + RTUNI_ALPHA, /* U+00b382: */ + RTUNI_ALPHA, /* U+00b383: */ + RTUNI_ALPHA, /* U+00b384: */ + RTUNI_ALPHA, /* U+00b385: */ + RTUNI_ALPHA, /* U+00b386: */ + RTUNI_ALPHA, /* U+00b387: */ + RTUNI_ALPHA, /* U+00b388: */ + RTUNI_ALPHA, /* U+00b389: */ + RTUNI_ALPHA, /* U+00b38a: */ + RTUNI_ALPHA, /* U+00b38b: */ + RTUNI_ALPHA, /* U+00b38c: */ + RTUNI_ALPHA, /* U+00b38d: */ + RTUNI_ALPHA, /* U+00b38e: */ + RTUNI_ALPHA, /* U+00b38f: */ + RTUNI_ALPHA, /* U+00b390: */ + RTUNI_ALPHA, /* U+00b391: */ + RTUNI_ALPHA, /* U+00b392: */ + RTUNI_ALPHA, /* U+00b393: */ + RTUNI_ALPHA, /* U+00b394: */ + RTUNI_ALPHA, /* U+00b395: */ + RTUNI_ALPHA, /* U+00b396: */ + RTUNI_ALPHA, /* U+00b397: */ + RTUNI_ALPHA, /* U+00b398: */ + RTUNI_ALPHA, /* U+00b399: */ + RTUNI_ALPHA, /* U+00b39a: */ + RTUNI_ALPHA, /* U+00b39b: */ + RTUNI_ALPHA, /* U+00b39c: */ + RTUNI_ALPHA, /* U+00b39d: */ + RTUNI_ALPHA, /* U+00b39e: */ + RTUNI_ALPHA, /* U+00b39f: */ + RTUNI_ALPHA, /* U+00b3a0: */ + RTUNI_ALPHA, /* U+00b3a1: */ + RTUNI_ALPHA, /* U+00b3a2: */ + RTUNI_ALPHA, /* U+00b3a3: */ + RTUNI_ALPHA, /* U+00b3a4: */ + RTUNI_ALPHA, /* U+00b3a5: */ + RTUNI_ALPHA, /* U+00b3a6: */ + RTUNI_ALPHA, /* U+00b3a7: */ + RTUNI_ALPHA, /* U+00b3a8: */ + RTUNI_ALPHA, /* U+00b3a9: */ + RTUNI_ALPHA, /* U+00b3aa: */ + RTUNI_ALPHA, /* U+00b3ab: */ + RTUNI_ALPHA, /* U+00b3ac: */ + RTUNI_ALPHA, /* U+00b3ad: */ + RTUNI_ALPHA, /* U+00b3ae: */ + RTUNI_ALPHA, /* U+00b3af: */ + RTUNI_ALPHA, /* U+00b3b0: */ + RTUNI_ALPHA, /* U+00b3b1: */ + RTUNI_ALPHA, /* U+00b3b2: */ + RTUNI_ALPHA, /* U+00b3b3: */ + RTUNI_ALPHA, /* U+00b3b4: */ + RTUNI_ALPHA, /* U+00b3b5: */ + RTUNI_ALPHA, /* U+00b3b6: */ + RTUNI_ALPHA, /* U+00b3b7: */ + RTUNI_ALPHA, /* U+00b3b8: */ + RTUNI_ALPHA, /* U+00b3b9: */ + RTUNI_ALPHA, /* U+00b3ba: */ + RTUNI_ALPHA, /* U+00b3bb: */ + RTUNI_ALPHA, /* U+00b3bc: */ + RTUNI_ALPHA, /* U+00b3bd: */ + RTUNI_ALPHA, /* U+00b3be: */ + RTUNI_ALPHA, /* U+00b3bf: */ + RTUNI_ALPHA, /* U+00b3c0: */ + RTUNI_ALPHA, /* U+00b3c1: */ + RTUNI_ALPHA, /* U+00b3c2: */ + RTUNI_ALPHA, /* U+00b3c3: */ + RTUNI_ALPHA, /* U+00b3c4: */ + RTUNI_ALPHA, /* U+00b3c5: */ + RTUNI_ALPHA, /* U+00b3c6: */ + RTUNI_ALPHA, /* U+00b3c7: */ + RTUNI_ALPHA, /* U+00b3c8: */ + RTUNI_ALPHA, /* U+00b3c9: */ + RTUNI_ALPHA, /* U+00b3ca: */ + RTUNI_ALPHA, /* U+00b3cb: */ + RTUNI_ALPHA, /* U+00b3cc: */ + RTUNI_ALPHA, /* U+00b3cd: */ + RTUNI_ALPHA, /* U+00b3ce: */ + RTUNI_ALPHA, /* U+00b3cf: */ + RTUNI_ALPHA, /* U+00b3d0: */ + RTUNI_ALPHA, /* U+00b3d1: */ + RTUNI_ALPHA, /* U+00b3d2: */ + RTUNI_ALPHA, /* U+00b3d3: */ + RTUNI_ALPHA, /* U+00b3d4: */ + RTUNI_ALPHA, /* U+00b3d5: */ + RTUNI_ALPHA, /* U+00b3d6: */ + RTUNI_ALPHA, /* U+00b3d7: */ + RTUNI_ALPHA, /* U+00b3d8: */ + RTUNI_ALPHA, /* U+00b3d9: */ + RTUNI_ALPHA, /* U+00b3da: */ + RTUNI_ALPHA, /* U+00b3db: */ + RTUNI_ALPHA, /* U+00b3dc: */ + RTUNI_ALPHA, /* U+00b3dd: */ + RTUNI_ALPHA, /* U+00b3de: */ + RTUNI_ALPHA, /* U+00b3df: */ + RTUNI_ALPHA, /* U+00b3e0: */ + RTUNI_ALPHA, /* U+00b3e1: */ + RTUNI_ALPHA, /* U+00b3e2: */ + RTUNI_ALPHA, /* U+00b3e3: */ + RTUNI_ALPHA, /* U+00b3e4: */ + RTUNI_ALPHA, /* U+00b3e5: */ + RTUNI_ALPHA, /* U+00b3e6: */ + RTUNI_ALPHA, /* U+00b3e7: */ + RTUNI_ALPHA, /* U+00b3e8: */ + RTUNI_ALPHA, /* U+00b3e9: */ + RTUNI_ALPHA, /* U+00b3ea: */ + RTUNI_ALPHA, /* U+00b3eb: */ + RTUNI_ALPHA, /* U+00b3ec: */ + RTUNI_ALPHA, /* U+00b3ed: */ + RTUNI_ALPHA, /* U+00b3ee: */ + RTUNI_ALPHA, /* U+00b3ef: */ + RTUNI_ALPHA, /* U+00b3f0: */ + RTUNI_ALPHA, /* U+00b3f1: */ + RTUNI_ALPHA, /* U+00b3f2: */ + RTUNI_ALPHA, /* U+00b3f3: */ + RTUNI_ALPHA, /* U+00b3f4: */ + RTUNI_ALPHA, /* U+00b3f5: */ + RTUNI_ALPHA, /* U+00b3f6: */ + RTUNI_ALPHA, /* U+00b3f7: */ + RTUNI_ALPHA, /* U+00b3f8: */ + RTUNI_ALPHA, /* U+00b3f9: */ + RTUNI_ALPHA, /* U+00b3fa: */ + RTUNI_ALPHA, /* U+00b3fb: */ + RTUNI_ALPHA, /* U+00b3fc: */ + RTUNI_ALPHA, /* U+00b3fd: */ + RTUNI_ALPHA, /* U+00b3fe: */ + RTUNI_ALPHA, /* U+00b3ff: */ + RTUNI_ALPHA, /* U+00b400: */ + RTUNI_ALPHA, /* U+00b401: */ + RTUNI_ALPHA, /* U+00b402: */ + RTUNI_ALPHA, /* U+00b403: */ + RTUNI_ALPHA, /* U+00b404: */ + RTUNI_ALPHA, /* U+00b405: */ + RTUNI_ALPHA, /* U+00b406: */ + RTUNI_ALPHA, /* U+00b407: */ + RTUNI_ALPHA, /* U+00b408: */ + RTUNI_ALPHA, /* U+00b409: */ + RTUNI_ALPHA, /* U+00b40a: */ + RTUNI_ALPHA, /* U+00b40b: */ + RTUNI_ALPHA, /* U+00b40c: */ + RTUNI_ALPHA, /* U+00b40d: */ + RTUNI_ALPHA, /* U+00b40e: */ + RTUNI_ALPHA, /* U+00b40f: */ + RTUNI_ALPHA, /* U+00b410: */ + RTUNI_ALPHA, /* U+00b411: */ + RTUNI_ALPHA, /* U+00b412: */ + RTUNI_ALPHA, /* U+00b413: */ + RTUNI_ALPHA, /* U+00b414: */ + RTUNI_ALPHA, /* U+00b415: */ + RTUNI_ALPHA, /* U+00b416: */ + RTUNI_ALPHA, /* U+00b417: */ + RTUNI_ALPHA, /* U+00b418: */ + RTUNI_ALPHA, /* U+00b419: */ + RTUNI_ALPHA, /* U+00b41a: */ + RTUNI_ALPHA, /* U+00b41b: */ + RTUNI_ALPHA, /* U+00b41c: */ + RTUNI_ALPHA, /* U+00b41d: */ + RTUNI_ALPHA, /* U+00b41e: */ + RTUNI_ALPHA, /* U+00b41f: */ + RTUNI_ALPHA, /* U+00b420: */ + RTUNI_ALPHA, /* U+00b421: */ + RTUNI_ALPHA, /* U+00b422: */ + RTUNI_ALPHA, /* U+00b423: */ + RTUNI_ALPHA, /* U+00b424: */ + RTUNI_ALPHA, /* U+00b425: */ + RTUNI_ALPHA, /* U+00b426: */ + RTUNI_ALPHA, /* U+00b427: */ + RTUNI_ALPHA, /* U+00b428: */ + RTUNI_ALPHA, /* U+00b429: */ + RTUNI_ALPHA, /* U+00b42a: */ + RTUNI_ALPHA, /* U+00b42b: */ + RTUNI_ALPHA, /* U+00b42c: */ + RTUNI_ALPHA, /* U+00b42d: */ + RTUNI_ALPHA, /* U+00b42e: */ + RTUNI_ALPHA, /* U+00b42f: */ + RTUNI_ALPHA, /* U+00b430: */ + RTUNI_ALPHA, /* U+00b431: */ + RTUNI_ALPHA, /* U+00b432: */ + RTUNI_ALPHA, /* U+00b433: */ + RTUNI_ALPHA, /* U+00b434: */ + RTUNI_ALPHA, /* U+00b435: */ + RTUNI_ALPHA, /* U+00b436: */ + RTUNI_ALPHA, /* U+00b437: */ + RTUNI_ALPHA, /* U+00b438: */ + RTUNI_ALPHA, /* U+00b439: */ + RTUNI_ALPHA, /* U+00b43a: */ + RTUNI_ALPHA, /* U+00b43b: */ + RTUNI_ALPHA, /* U+00b43c: */ + RTUNI_ALPHA, /* U+00b43d: */ + RTUNI_ALPHA, /* U+00b43e: */ + RTUNI_ALPHA, /* U+00b43f: */ + RTUNI_ALPHA, /* U+00b440: */ + RTUNI_ALPHA, /* U+00b441: */ + RTUNI_ALPHA, /* U+00b442: */ + RTUNI_ALPHA, /* U+00b443: */ + RTUNI_ALPHA, /* U+00b444: */ + RTUNI_ALPHA, /* U+00b445: */ + RTUNI_ALPHA, /* U+00b446: */ + RTUNI_ALPHA, /* U+00b447: */ + RTUNI_ALPHA, /* U+00b448: */ + RTUNI_ALPHA, /* U+00b449: */ + RTUNI_ALPHA, /* U+00b44a: */ + RTUNI_ALPHA, /* U+00b44b: */ + RTUNI_ALPHA, /* U+00b44c: */ + RTUNI_ALPHA, /* U+00b44d: */ + RTUNI_ALPHA, /* U+00b44e: */ + RTUNI_ALPHA, /* U+00b44f: */ + RTUNI_ALPHA, /* U+00b450: */ + RTUNI_ALPHA, /* U+00b451: */ + RTUNI_ALPHA, /* U+00b452: */ + RTUNI_ALPHA, /* U+00b453: */ + RTUNI_ALPHA, /* U+00b454: */ + RTUNI_ALPHA, /* U+00b455: */ + RTUNI_ALPHA, /* U+00b456: */ + RTUNI_ALPHA, /* U+00b457: */ + RTUNI_ALPHA, /* U+00b458: */ + RTUNI_ALPHA, /* U+00b459: */ + RTUNI_ALPHA, /* U+00b45a: */ + RTUNI_ALPHA, /* U+00b45b: */ + RTUNI_ALPHA, /* U+00b45c: */ + RTUNI_ALPHA, /* U+00b45d: */ + RTUNI_ALPHA, /* U+00b45e: */ + RTUNI_ALPHA, /* U+00b45f: */ + RTUNI_ALPHA, /* U+00b460: */ + RTUNI_ALPHA, /* U+00b461: */ + RTUNI_ALPHA, /* U+00b462: */ + RTUNI_ALPHA, /* U+00b463: */ + RTUNI_ALPHA, /* U+00b464: */ + RTUNI_ALPHA, /* U+00b465: */ + RTUNI_ALPHA, /* U+00b466: */ + RTUNI_ALPHA, /* U+00b467: */ + RTUNI_ALPHA, /* U+00b468: */ + RTUNI_ALPHA, /* U+00b469: */ + RTUNI_ALPHA, /* U+00b46a: */ + RTUNI_ALPHA, /* U+00b46b: */ + RTUNI_ALPHA, /* U+00b46c: */ + RTUNI_ALPHA, /* U+00b46d: */ + RTUNI_ALPHA, /* U+00b46e: */ + RTUNI_ALPHA, /* U+00b46f: */ + RTUNI_ALPHA, /* U+00b470: */ + RTUNI_ALPHA, /* U+00b471: */ + RTUNI_ALPHA, /* U+00b472: */ + RTUNI_ALPHA, /* U+00b473: */ + RTUNI_ALPHA, /* U+00b474: */ + RTUNI_ALPHA, /* U+00b475: */ + RTUNI_ALPHA, /* U+00b476: */ + RTUNI_ALPHA, /* U+00b477: */ + RTUNI_ALPHA, /* U+00b478: */ + RTUNI_ALPHA, /* U+00b479: */ + RTUNI_ALPHA, /* U+00b47a: */ + RTUNI_ALPHA, /* U+00b47b: */ + RTUNI_ALPHA, /* U+00b47c: */ + RTUNI_ALPHA, /* U+00b47d: */ + RTUNI_ALPHA, /* U+00b47e: */ + RTUNI_ALPHA, /* U+00b47f: */ + RTUNI_ALPHA, /* U+00b480: */ + RTUNI_ALPHA, /* U+00b481: */ + RTUNI_ALPHA, /* U+00b482: */ + RTUNI_ALPHA, /* U+00b483: */ + RTUNI_ALPHA, /* U+00b484: */ + RTUNI_ALPHA, /* U+00b485: */ + RTUNI_ALPHA, /* U+00b486: */ + RTUNI_ALPHA, /* U+00b487: */ + RTUNI_ALPHA, /* U+00b488: */ + RTUNI_ALPHA, /* U+00b489: */ + RTUNI_ALPHA, /* U+00b48a: */ + RTUNI_ALPHA, /* U+00b48b: */ + RTUNI_ALPHA, /* U+00b48c: */ + RTUNI_ALPHA, /* U+00b48d: */ + RTUNI_ALPHA, /* U+00b48e: */ + RTUNI_ALPHA, /* U+00b48f: */ + RTUNI_ALPHA, /* U+00b490: */ + RTUNI_ALPHA, /* U+00b491: */ + RTUNI_ALPHA, /* U+00b492: */ + RTUNI_ALPHA, /* U+00b493: */ + RTUNI_ALPHA, /* U+00b494: */ + RTUNI_ALPHA, /* U+00b495: */ + RTUNI_ALPHA, /* U+00b496: */ + RTUNI_ALPHA, /* U+00b497: */ + RTUNI_ALPHA, /* U+00b498: */ + RTUNI_ALPHA, /* U+00b499: */ + RTUNI_ALPHA, /* U+00b49a: */ + RTUNI_ALPHA, /* U+00b49b: */ + RTUNI_ALPHA, /* U+00b49c: */ + RTUNI_ALPHA, /* U+00b49d: */ + RTUNI_ALPHA, /* U+00b49e: */ + RTUNI_ALPHA, /* U+00b49f: */ + RTUNI_ALPHA, /* U+00b4a0: */ + RTUNI_ALPHA, /* U+00b4a1: */ + RTUNI_ALPHA, /* U+00b4a2: */ + RTUNI_ALPHA, /* U+00b4a3: */ + RTUNI_ALPHA, /* U+00b4a4: */ + RTUNI_ALPHA, /* U+00b4a5: */ + RTUNI_ALPHA, /* U+00b4a6: */ + RTUNI_ALPHA, /* U+00b4a7: */ + RTUNI_ALPHA, /* U+00b4a8: */ + RTUNI_ALPHA, /* U+00b4a9: */ + RTUNI_ALPHA, /* U+00b4aa: */ + RTUNI_ALPHA, /* U+00b4ab: */ + RTUNI_ALPHA, /* U+00b4ac: */ + RTUNI_ALPHA, /* U+00b4ad: */ + RTUNI_ALPHA, /* U+00b4ae: */ + RTUNI_ALPHA, /* U+00b4af: */ + RTUNI_ALPHA, /* U+00b4b0: */ + RTUNI_ALPHA, /* U+00b4b1: */ + RTUNI_ALPHA, /* U+00b4b2: */ + RTUNI_ALPHA, /* U+00b4b3: */ + RTUNI_ALPHA, /* U+00b4b4: */ + RTUNI_ALPHA, /* U+00b4b5: */ + RTUNI_ALPHA, /* U+00b4b6: */ + RTUNI_ALPHA, /* U+00b4b7: */ + RTUNI_ALPHA, /* U+00b4b8: */ + RTUNI_ALPHA, /* U+00b4b9: */ + RTUNI_ALPHA, /* U+00b4ba: */ + RTUNI_ALPHA, /* U+00b4bb: */ + RTUNI_ALPHA, /* U+00b4bc: */ + RTUNI_ALPHA, /* U+00b4bd: */ + RTUNI_ALPHA, /* U+00b4be: */ + RTUNI_ALPHA, /* U+00b4bf: */ + RTUNI_ALPHA, /* U+00b4c0: */ + RTUNI_ALPHA, /* U+00b4c1: */ + RTUNI_ALPHA, /* U+00b4c2: */ + RTUNI_ALPHA, /* U+00b4c3: */ + RTUNI_ALPHA, /* U+00b4c4: */ + RTUNI_ALPHA, /* U+00b4c5: */ + RTUNI_ALPHA, /* U+00b4c6: */ + RTUNI_ALPHA, /* U+00b4c7: */ + RTUNI_ALPHA, /* U+00b4c8: */ + RTUNI_ALPHA, /* U+00b4c9: */ + RTUNI_ALPHA, /* U+00b4ca: */ + RTUNI_ALPHA, /* U+00b4cb: */ + RTUNI_ALPHA, /* U+00b4cc: */ + RTUNI_ALPHA, /* U+00b4cd: */ + RTUNI_ALPHA, /* U+00b4ce: */ + RTUNI_ALPHA, /* U+00b4cf: */ + RTUNI_ALPHA, /* U+00b4d0: */ + RTUNI_ALPHA, /* U+00b4d1: */ + RTUNI_ALPHA, /* U+00b4d2: */ + RTUNI_ALPHA, /* U+00b4d3: */ + RTUNI_ALPHA, /* U+00b4d4: */ + RTUNI_ALPHA, /* U+00b4d5: */ + RTUNI_ALPHA, /* U+00b4d6: */ + RTUNI_ALPHA, /* U+00b4d7: */ + RTUNI_ALPHA, /* U+00b4d8: */ + RTUNI_ALPHA, /* U+00b4d9: */ + RTUNI_ALPHA, /* U+00b4da: */ + RTUNI_ALPHA, /* U+00b4db: */ + RTUNI_ALPHA, /* U+00b4dc: */ + RTUNI_ALPHA, /* U+00b4dd: */ + RTUNI_ALPHA, /* U+00b4de: */ + RTUNI_ALPHA, /* U+00b4df: */ + RTUNI_ALPHA, /* U+00b4e0: */ + RTUNI_ALPHA, /* U+00b4e1: */ + RTUNI_ALPHA, /* U+00b4e2: */ + RTUNI_ALPHA, /* U+00b4e3: */ + RTUNI_ALPHA, /* U+00b4e4: */ + RTUNI_ALPHA, /* U+00b4e5: */ + RTUNI_ALPHA, /* U+00b4e6: */ + RTUNI_ALPHA, /* U+00b4e7: */ + RTUNI_ALPHA, /* U+00b4e8: */ + RTUNI_ALPHA, /* U+00b4e9: */ + RTUNI_ALPHA, /* U+00b4ea: */ + RTUNI_ALPHA, /* U+00b4eb: */ + RTUNI_ALPHA, /* U+00b4ec: */ + RTUNI_ALPHA, /* U+00b4ed: */ + RTUNI_ALPHA, /* U+00b4ee: */ + RTUNI_ALPHA, /* U+00b4ef: */ + RTUNI_ALPHA, /* U+00b4f0: */ + RTUNI_ALPHA, /* U+00b4f1: */ + RTUNI_ALPHA, /* U+00b4f2: */ + RTUNI_ALPHA, /* U+00b4f3: */ + RTUNI_ALPHA, /* U+00b4f4: */ + RTUNI_ALPHA, /* U+00b4f5: */ + RTUNI_ALPHA, /* U+00b4f6: */ + RTUNI_ALPHA, /* U+00b4f7: */ + RTUNI_ALPHA, /* U+00b4f8: */ + RTUNI_ALPHA, /* U+00b4f9: */ + RTUNI_ALPHA, /* U+00b4fa: */ + RTUNI_ALPHA, /* U+00b4fb: */ + RTUNI_ALPHA, /* U+00b4fc: */ + RTUNI_ALPHA, /* U+00b4fd: */ + RTUNI_ALPHA, /* U+00b4fe: */ + RTUNI_ALPHA, /* U+00b4ff: */ + RTUNI_ALPHA, /* U+00b500: */ + RTUNI_ALPHA, /* U+00b501: */ + RTUNI_ALPHA, /* U+00b502: */ + RTUNI_ALPHA, /* U+00b503: */ + RTUNI_ALPHA, /* U+00b504: */ + RTUNI_ALPHA, /* U+00b505: */ + RTUNI_ALPHA, /* U+00b506: */ + RTUNI_ALPHA, /* U+00b507: */ + RTUNI_ALPHA, /* U+00b508: */ + RTUNI_ALPHA, /* U+00b509: */ + RTUNI_ALPHA, /* U+00b50a: */ + RTUNI_ALPHA, /* U+00b50b: */ + RTUNI_ALPHA, /* U+00b50c: */ + RTUNI_ALPHA, /* U+00b50d: */ + RTUNI_ALPHA, /* U+00b50e: */ + RTUNI_ALPHA, /* U+00b50f: */ + RTUNI_ALPHA, /* U+00b510: */ + RTUNI_ALPHA, /* U+00b511: */ + RTUNI_ALPHA, /* U+00b512: */ + RTUNI_ALPHA, /* U+00b513: */ + RTUNI_ALPHA, /* U+00b514: */ + RTUNI_ALPHA, /* U+00b515: */ + RTUNI_ALPHA, /* U+00b516: */ + RTUNI_ALPHA, /* U+00b517: */ + RTUNI_ALPHA, /* U+00b518: */ + RTUNI_ALPHA, /* U+00b519: */ + RTUNI_ALPHA, /* U+00b51a: */ + RTUNI_ALPHA, /* U+00b51b: */ + RTUNI_ALPHA, /* U+00b51c: */ + RTUNI_ALPHA, /* U+00b51d: */ + RTUNI_ALPHA, /* U+00b51e: */ + RTUNI_ALPHA, /* U+00b51f: */ + RTUNI_ALPHA, /* U+00b520: */ + RTUNI_ALPHA, /* U+00b521: */ + RTUNI_ALPHA, /* U+00b522: */ + RTUNI_ALPHA, /* U+00b523: */ + RTUNI_ALPHA, /* U+00b524: */ + RTUNI_ALPHA, /* U+00b525: */ + RTUNI_ALPHA, /* U+00b526: */ + RTUNI_ALPHA, /* U+00b527: */ + RTUNI_ALPHA, /* U+00b528: */ + RTUNI_ALPHA, /* U+00b529: */ + RTUNI_ALPHA, /* U+00b52a: */ + RTUNI_ALPHA, /* U+00b52b: */ + RTUNI_ALPHA, /* U+00b52c: */ + RTUNI_ALPHA, /* U+00b52d: */ + RTUNI_ALPHA, /* U+00b52e: */ + RTUNI_ALPHA, /* U+00b52f: */ + RTUNI_ALPHA, /* U+00b530: */ + RTUNI_ALPHA, /* U+00b531: */ + RTUNI_ALPHA, /* U+00b532: */ + RTUNI_ALPHA, /* U+00b533: */ + RTUNI_ALPHA, /* U+00b534: */ + RTUNI_ALPHA, /* U+00b535: */ + RTUNI_ALPHA, /* U+00b536: */ + RTUNI_ALPHA, /* U+00b537: */ + RTUNI_ALPHA, /* U+00b538: */ + RTUNI_ALPHA, /* U+00b539: */ + RTUNI_ALPHA, /* U+00b53a: */ + RTUNI_ALPHA, /* U+00b53b: */ + RTUNI_ALPHA, /* U+00b53c: */ + RTUNI_ALPHA, /* U+00b53d: */ + RTUNI_ALPHA, /* U+00b53e: */ + RTUNI_ALPHA, /* U+00b53f: */ + RTUNI_ALPHA, /* U+00b540: */ + RTUNI_ALPHA, /* U+00b541: */ + RTUNI_ALPHA, /* U+00b542: */ + RTUNI_ALPHA, /* U+00b543: */ + RTUNI_ALPHA, /* U+00b544: */ + RTUNI_ALPHA, /* U+00b545: */ + RTUNI_ALPHA, /* U+00b546: */ + RTUNI_ALPHA, /* U+00b547: */ + RTUNI_ALPHA, /* U+00b548: */ + RTUNI_ALPHA, /* U+00b549: */ + RTUNI_ALPHA, /* U+00b54a: */ + RTUNI_ALPHA, /* U+00b54b: */ + RTUNI_ALPHA, /* U+00b54c: */ + RTUNI_ALPHA, /* U+00b54d: */ + RTUNI_ALPHA, /* U+00b54e: */ + RTUNI_ALPHA, /* U+00b54f: */ + RTUNI_ALPHA, /* U+00b550: */ + RTUNI_ALPHA, /* U+00b551: */ + RTUNI_ALPHA, /* U+00b552: */ + RTUNI_ALPHA, /* U+00b553: */ + RTUNI_ALPHA, /* U+00b554: */ + RTUNI_ALPHA, /* U+00b555: */ + RTUNI_ALPHA, /* U+00b556: */ + RTUNI_ALPHA, /* U+00b557: */ + RTUNI_ALPHA, /* U+00b558: */ + RTUNI_ALPHA, /* U+00b559: */ + RTUNI_ALPHA, /* U+00b55a: */ + RTUNI_ALPHA, /* U+00b55b: */ + RTUNI_ALPHA, /* U+00b55c: */ + RTUNI_ALPHA, /* U+00b55d: */ + RTUNI_ALPHA, /* U+00b55e: */ + RTUNI_ALPHA, /* U+00b55f: */ + RTUNI_ALPHA, /* U+00b560: */ + RTUNI_ALPHA, /* U+00b561: */ + RTUNI_ALPHA, /* U+00b562: */ + RTUNI_ALPHA, /* U+00b563: */ + RTUNI_ALPHA, /* U+00b564: */ + RTUNI_ALPHA, /* U+00b565: */ + RTUNI_ALPHA, /* U+00b566: */ + RTUNI_ALPHA, /* U+00b567: */ + RTUNI_ALPHA, /* U+00b568: */ + RTUNI_ALPHA, /* U+00b569: */ + RTUNI_ALPHA, /* U+00b56a: */ + RTUNI_ALPHA, /* U+00b56b: */ + RTUNI_ALPHA, /* U+00b56c: */ + RTUNI_ALPHA, /* U+00b56d: */ + RTUNI_ALPHA, /* U+00b56e: */ + RTUNI_ALPHA, /* U+00b56f: */ + RTUNI_ALPHA, /* U+00b570: */ + RTUNI_ALPHA, /* U+00b571: */ + RTUNI_ALPHA, /* U+00b572: */ + RTUNI_ALPHA, /* U+00b573: */ + RTUNI_ALPHA, /* U+00b574: */ + RTUNI_ALPHA, /* U+00b575: */ + RTUNI_ALPHA, /* U+00b576: */ + RTUNI_ALPHA, /* U+00b577: */ + RTUNI_ALPHA, /* U+00b578: */ + RTUNI_ALPHA, /* U+00b579: */ + RTUNI_ALPHA, /* U+00b57a: */ + RTUNI_ALPHA, /* U+00b57b: */ + RTUNI_ALPHA, /* U+00b57c: */ + RTUNI_ALPHA, /* U+00b57d: */ + RTUNI_ALPHA, /* U+00b57e: */ + RTUNI_ALPHA, /* U+00b57f: */ + RTUNI_ALPHA, /* U+00b580: */ + RTUNI_ALPHA, /* U+00b581: */ + RTUNI_ALPHA, /* U+00b582: */ + RTUNI_ALPHA, /* U+00b583: */ + RTUNI_ALPHA, /* U+00b584: */ + RTUNI_ALPHA, /* U+00b585: */ + RTUNI_ALPHA, /* U+00b586: */ + RTUNI_ALPHA, /* U+00b587: */ + RTUNI_ALPHA, /* U+00b588: */ + RTUNI_ALPHA, /* U+00b589: */ + RTUNI_ALPHA, /* U+00b58a: */ + RTUNI_ALPHA, /* U+00b58b: */ + RTUNI_ALPHA, /* U+00b58c: */ + RTUNI_ALPHA, /* U+00b58d: */ + RTUNI_ALPHA, /* U+00b58e: */ + RTUNI_ALPHA, /* U+00b58f: */ + RTUNI_ALPHA, /* U+00b590: */ + RTUNI_ALPHA, /* U+00b591: */ + RTUNI_ALPHA, /* U+00b592: */ + RTUNI_ALPHA, /* U+00b593: */ + RTUNI_ALPHA, /* U+00b594: */ + RTUNI_ALPHA, /* U+00b595: */ + RTUNI_ALPHA, /* U+00b596: */ + RTUNI_ALPHA, /* U+00b597: */ + RTUNI_ALPHA, /* U+00b598: */ + RTUNI_ALPHA, /* U+00b599: */ + RTUNI_ALPHA, /* U+00b59a: */ + RTUNI_ALPHA, /* U+00b59b: */ + RTUNI_ALPHA, /* U+00b59c: */ + RTUNI_ALPHA, /* U+00b59d: */ + RTUNI_ALPHA, /* U+00b59e: */ + RTUNI_ALPHA, /* U+00b59f: */ + RTUNI_ALPHA, /* U+00b5a0: */ + RTUNI_ALPHA, /* U+00b5a1: */ + RTUNI_ALPHA, /* U+00b5a2: */ + RTUNI_ALPHA, /* U+00b5a3: */ + RTUNI_ALPHA, /* U+00b5a4: */ + RTUNI_ALPHA, /* U+00b5a5: */ + RTUNI_ALPHA, /* U+00b5a6: */ + RTUNI_ALPHA, /* U+00b5a7: */ + RTUNI_ALPHA, /* U+00b5a8: */ + RTUNI_ALPHA, /* U+00b5a9: */ + RTUNI_ALPHA, /* U+00b5aa: */ + RTUNI_ALPHA, /* U+00b5ab: */ + RTUNI_ALPHA, /* U+00b5ac: */ + RTUNI_ALPHA, /* U+00b5ad: */ + RTUNI_ALPHA, /* U+00b5ae: */ + RTUNI_ALPHA, /* U+00b5af: */ + RTUNI_ALPHA, /* U+00b5b0: */ + RTUNI_ALPHA, /* U+00b5b1: */ + RTUNI_ALPHA, /* U+00b5b2: */ + RTUNI_ALPHA, /* U+00b5b3: */ + RTUNI_ALPHA, /* U+00b5b4: */ + RTUNI_ALPHA, /* U+00b5b5: */ + RTUNI_ALPHA, /* U+00b5b6: */ + RTUNI_ALPHA, /* U+00b5b7: */ + RTUNI_ALPHA, /* U+00b5b8: */ + RTUNI_ALPHA, /* U+00b5b9: */ + RTUNI_ALPHA, /* U+00b5ba: */ + RTUNI_ALPHA, /* U+00b5bb: */ + RTUNI_ALPHA, /* U+00b5bc: */ + RTUNI_ALPHA, /* U+00b5bd: */ + RTUNI_ALPHA, /* U+00b5be: */ + RTUNI_ALPHA, /* U+00b5bf: */ + RTUNI_ALPHA, /* U+00b5c0: */ + RTUNI_ALPHA, /* U+00b5c1: */ + RTUNI_ALPHA, /* U+00b5c2: */ + RTUNI_ALPHA, /* U+00b5c3: */ + RTUNI_ALPHA, /* U+00b5c4: */ + RTUNI_ALPHA, /* U+00b5c5: */ + RTUNI_ALPHA, /* U+00b5c6: */ + RTUNI_ALPHA, /* U+00b5c7: */ + RTUNI_ALPHA, /* U+00b5c8: */ + RTUNI_ALPHA, /* U+00b5c9: */ + RTUNI_ALPHA, /* U+00b5ca: */ + RTUNI_ALPHA, /* U+00b5cb: */ + RTUNI_ALPHA, /* U+00b5cc: */ + RTUNI_ALPHA, /* U+00b5cd: */ + RTUNI_ALPHA, /* U+00b5ce: */ + RTUNI_ALPHA, /* U+00b5cf: */ + RTUNI_ALPHA, /* U+00b5d0: */ + RTUNI_ALPHA, /* U+00b5d1: */ + RTUNI_ALPHA, /* U+00b5d2: */ + RTUNI_ALPHA, /* U+00b5d3: */ + RTUNI_ALPHA, /* U+00b5d4: */ + RTUNI_ALPHA, /* U+00b5d5: */ + RTUNI_ALPHA, /* U+00b5d6: */ + RTUNI_ALPHA, /* U+00b5d7: */ + RTUNI_ALPHA, /* U+00b5d8: */ + RTUNI_ALPHA, /* U+00b5d9: */ + RTUNI_ALPHA, /* U+00b5da: */ + RTUNI_ALPHA, /* U+00b5db: */ + RTUNI_ALPHA, /* U+00b5dc: */ + RTUNI_ALPHA, /* U+00b5dd: */ + RTUNI_ALPHA, /* U+00b5de: */ + RTUNI_ALPHA, /* U+00b5df: */ + RTUNI_ALPHA, /* U+00b5e0: */ + RTUNI_ALPHA, /* U+00b5e1: */ + RTUNI_ALPHA, /* U+00b5e2: */ + RTUNI_ALPHA, /* U+00b5e3: */ + RTUNI_ALPHA, /* U+00b5e4: */ + RTUNI_ALPHA, /* U+00b5e5: */ + RTUNI_ALPHA, /* U+00b5e6: */ + RTUNI_ALPHA, /* U+00b5e7: */ + RTUNI_ALPHA, /* U+00b5e8: */ + RTUNI_ALPHA, /* U+00b5e9: */ + RTUNI_ALPHA, /* U+00b5ea: */ + RTUNI_ALPHA, /* U+00b5eb: */ + RTUNI_ALPHA, /* U+00b5ec: */ + RTUNI_ALPHA, /* U+00b5ed: */ + RTUNI_ALPHA, /* U+00b5ee: */ + RTUNI_ALPHA, /* U+00b5ef: */ + RTUNI_ALPHA, /* U+00b5f0: */ + RTUNI_ALPHA, /* U+00b5f1: */ + RTUNI_ALPHA, /* U+00b5f2: */ + RTUNI_ALPHA, /* U+00b5f3: */ + RTUNI_ALPHA, /* U+00b5f4: */ + RTUNI_ALPHA, /* U+00b5f5: */ + RTUNI_ALPHA, /* U+00b5f6: */ + RTUNI_ALPHA, /* U+00b5f7: */ + RTUNI_ALPHA, /* U+00b5f8: */ + RTUNI_ALPHA, /* U+00b5f9: */ + RTUNI_ALPHA, /* U+00b5fa: */ + RTUNI_ALPHA, /* U+00b5fb: */ + RTUNI_ALPHA, /* U+00b5fc: */ + RTUNI_ALPHA, /* U+00b5fd: */ + RTUNI_ALPHA, /* U+00b5fe: */ + RTUNI_ALPHA, /* U+00b5ff: */ + RTUNI_ALPHA, /* U+00b600: */ + RTUNI_ALPHA, /* U+00b601: */ + RTUNI_ALPHA, /* U+00b602: */ + RTUNI_ALPHA, /* U+00b603: */ + RTUNI_ALPHA, /* U+00b604: */ + RTUNI_ALPHA, /* U+00b605: */ + RTUNI_ALPHA, /* U+00b606: */ + RTUNI_ALPHA, /* U+00b607: */ + RTUNI_ALPHA, /* U+00b608: */ + RTUNI_ALPHA, /* U+00b609: */ + RTUNI_ALPHA, /* U+00b60a: */ + RTUNI_ALPHA, /* U+00b60b: */ + RTUNI_ALPHA, /* U+00b60c: */ + RTUNI_ALPHA, /* U+00b60d: */ + RTUNI_ALPHA, /* U+00b60e: */ + RTUNI_ALPHA, /* U+00b60f: */ + RTUNI_ALPHA, /* U+00b610: */ + RTUNI_ALPHA, /* U+00b611: */ + RTUNI_ALPHA, /* U+00b612: */ + RTUNI_ALPHA, /* U+00b613: */ + RTUNI_ALPHA, /* U+00b614: */ + RTUNI_ALPHA, /* U+00b615: */ + RTUNI_ALPHA, /* U+00b616: */ + RTUNI_ALPHA, /* U+00b617: */ + RTUNI_ALPHA, /* U+00b618: */ + RTUNI_ALPHA, /* U+00b619: */ + RTUNI_ALPHA, /* U+00b61a: */ + RTUNI_ALPHA, /* U+00b61b: */ + RTUNI_ALPHA, /* U+00b61c: */ + RTUNI_ALPHA, /* U+00b61d: */ + RTUNI_ALPHA, /* U+00b61e: */ + RTUNI_ALPHA, /* U+00b61f: */ + RTUNI_ALPHA, /* U+00b620: */ + RTUNI_ALPHA, /* U+00b621: */ + RTUNI_ALPHA, /* U+00b622: */ + RTUNI_ALPHA, /* U+00b623: */ + RTUNI_ALPHA, /* U+00b624: */ + RTUNI_ALPHA, /* U+00b625: */ + RTUNI_ALPHA, /* U+00b626: */ + RTUNI_ALPHA, /* U+00b627: */ + RTUNI_ALPHA, /* U+00b628: */ + RTUNI_ALPHA, /* U+00b629: */ + RTUNI_ALPHA, /* U+00b62a: */ + RTUNI_ALPHA, /* U+00b62b: */ + RTUNI_ALPHA, /* U+00b62c: */ + RTUNI_ALPHA, /* U+00b62d: */ + RTUNI_ALPHA, /* U+00b62e: */ + RTUNI_ALPHA, /* U+00b62f: */ + RTUNI_ALPHA, /* U+00b630: */ + RTUNI_ALPHA, /* U+00b631: */ + RTUNI_ALPHA, /* U+00b632: */ + RTUNI_ALPHA, /* U+00b633: */ + RTUNI_ALPHA, /* U+00b634: */ + RTUNI_ALPHA, /* U+00b635: */ + RTUNI_ALPHA, /* U+00b636: */ + RTUNI_ALPHA, /* U+00b637: */ + RTUNI_ALPHA, /* U+00b638: */ + RTUNI_ALPHA, /* U+00b639: */ + RTUNI_ALPHA, /* U+00b63a: */ + RTUNI_ALPHA, /* U+00b63b: */ + RTUNI_ALPHA, /* U+00b63c: */ + RTUNI_ALPHA, /* U+00b63d: */ + RTUNI_ALPHA, /* U+00b63e: */ + RTUNI_ALPHA, /* U+00b63f: */ + RTUNI_ALPHA, /* U+00b640: */ + RTUNI_ALPHA, /* U+00b641: */ + RTUNI_ALPHA, /* U+00b642: */ + RTUNI_ALPHA, /* U+00b643: */ + RTUNI_ALPHA, /* U+00b644: */ + RTUNI_ALPHA, /* U+00b645: */ + RTUNI_ALPHA, /* U+00b646: */ + RTUNI_ALPHA, /* U+00b647: */ + RTUNI_ALPHA, /* U+00b648: */ + RTUNI_ALPHA, /* U+00b649: */ + RTUNI_ALPHA, /* U+00b64a: */ + RTUNI_ALPHA, /* U+00b64b: */ + RTUNI_ALPHA, /* U+00b64c: */ + RTUNI_ALPHA, /* U+00b64d: */ + RTUNI_ALPHA, /* U+00b64e: */ + RTUNI_ALPHA, /* U+00b64f: */ + RTUNI_ALPHA, /* U+00b650: */ + RTUNI_ALPHA, /* U+00b651: */ + RTUNI_ALPHA, /* U+00b652: */ + RTUNI_ALPHA, /* U+00b653: */ + RTUNI_ALPHA, /* U+00b654: */ + RTUNI_ALPHA, /* U+00b655: */ + RTUNI_ALPHA, /* U+00b656: */ + RTUNI_ALPHA, /* U+00b657: */ + RTUNI_ALPHA, /* U+00b658: */ + RTUNI_ALPHA, /* U+00b659: */ + RTUNI_ALPHA, /* U+00b65a: */ + RTUNI_ALPHA, /* U+00b65b: */ + RTUNI_ALPHA, /* U+00b65c: */ + RTUNI_ALPHA, /* U+00b65d: */ + RTUNI_ALPHA, /* U+00b65e: */ + RTUNI_ALPHA, /* U+00b65f: */ + RTUNI_ALPHA, /* U+00b660: */ + RTUNI_ALPHA, /* U+00b661: */ + RTUNI_ALPHA, /* U+00b662: */ + RTUNI_ALPHA, /* U+00b663: */ + RTUNI_ALPHA, /* U+00b664: */ + RTUNI_ALPHA, /* U+00b665: */ + RTUNI_ALPHA, /* U+00b666: */ + RTUNI_ALPHA, /* U+00b667: */ + RTUNI_ALPHA, /* U+00b668: */ + RTUNI_ALPHA, /* U+00b669: */ + RTUNI_ALPHA, /* U+00b66a: */ + RTUNI_ALPHA, /* U+00b66b: */ + RTUNI_ALPHA, /* U+00b66c: */ + RTUNI_ALPHA, /* U+00b66d: */ + RTUNI_ALPHA, /* U+00b66e: */ + RTUNI_ALPHA, /* U+00b66f: */ + RTUNI_ALPHA, /* U+00b670: */ + RTUNI_ALPHA, /* U+00b671: */ + RTUNI_ALPHA, /* U+00b672: */ + RTUNI_ALPHA, /* U+00b673: */ + RTUNI_ALPHA, /* U+00b674: */ + RTUNI_ALPHA, /* U+00b675: */ + RTUNI_ALPHA, /* U+00b676: */ + RTUNI_ALPHA, /* U+00b677: */ + RTUNI_ALPHA, /* U+00b678: */ + RTUNI_ALPHA, /* U+00b679: */ + RTUNI_ALPHA, /* U+00b67a: */ + RTUNI_ALPHA, /* U+00b67b: */ + RTUNI_ALPHA, /* U+00b67c: */ + RTUNI_ALPHA, /* U+00b67d: */ + RTUNI_ALPHA, /* U+00b67e: */ + RTUNI_ALPHA, /* U+00b67f: */ + RTUNI_ALPHA, /* U+00b680: */ + RTUNI_ALPHA, /* U+00b681: */ + RTUNI_ALPHA, /* U+00b682: */ + RTUNI_ALPHA, /* U+00b683: */ + RTUNI_ALPHA, /* U+00b684: */ + RTUNI_ALPHA, /* U+00b685: */ + RTUNI_ALPHA, /* U+00b686: */ + RTUNI_ALPHA, /* U+00b687: */ + RTUNI_ALPHA, /* U+00b688: */ + RTUNI_ALPHA, /* U+00b689: */ + RTUNI_ALPHA, /* U+00b68a: */ + RTUNI_ALPHA, /* U+00b68b: */ + RTUNI_ALPHA, /* U+00b68c: */ + RTUNI_ALPHA, /* U+00b68d: */ + RTUNI_ALPHA, /* U+00b68e: */ + RTUNI_ALPHA, /* U+00b68f: */ + RTUNI_ALPHA, /* U+00b690: */ + RTUNI_ALPHA, /* U+00b691: */ + RTUNI_ALPHA, /* U+00b692: */ + RTUNI_ALPHA, /* U+00b693: */ + RTUNI_ALPHA, /* U+00b694: */ + RTUNI_ALPHA, /* U+00b695: */ + RTUNI_ALPHA, /* U+00b696: */ + RTUNI_ALPHA, /* U+00b697: */ + RTUNI_ALPHA, /* U+00b698: */ + RTUNI_ALPHA, /* U+00b699: */ + RTUNI_ALPHA, /* U+00b69a: */ + RTUNI_ALPHA, /* U+00b69b: */ + RTUNI_ALPHA, /* U+00b69c: */ + RTUNI_ALPHA, /* U+00b69d: */ + RTUNI_ALPHA, /* U+00b69e: */ + RTUNI_ALPHA, /* U+00b69f: */ + RTUNI_ALPHA, /* U+00b6a0: */ + RTUNI_ALPHA, /* U+00b6a1: */ + RTUNI_ALPHA, /* U+00b6a2: */ + RTUNI_ALPHA, /* U+00b6a3: */ + RTUNI_ALPHA, /* U+00b6a4: */ + RTUNI_ALPHA, /* U+00b6a5: */ + RTUNI_ALPHA, /* U+00b6a6: */ + RTUNI_ALPHA, /* U+00b6a7: */ + RTUNI_ALPHA, /* U+00b6a8: */ + RTUNI_ALPHA, /* U+00b6a9: */ + RTUNI_ALPHA, /* U+00b6aa: */ + RTUNI_ALPHA, /* U+00b6ab: */ + RTUNI_ALPHA, /* U+00b6ac: */ + RTUNI_ALPHA, /* U+00b6ad: */ + RTUNI_ALPHA, /* U+00b6ae: */ + RTUNI_ALPHA, /* U+00b6af: */ + RTUNI_ALPHA, /* U+00b6b0: */ + RTUNI_ALPHA, /* U+00b6b1: */ + RTUNI_ALPHA, /* U+00b6b2: */ + RTUNI_ALPHA, /* U+00b6b3: */ + RTUNI_ALPHA, /* U+00b6b4: */ + RTUNI_ALPHA, /* U+00b6b5: */ + RTUNI_ALPHA, /* U+00b6b6: */ + RTUNI_ALPHA, /* U+00b6b7: */ + RTUNI_ALPHA, /* U+00b6b8: */ + RTUNI_ALPHA, /* U+00b6b9: */ + RTUNI_ALPHA, /* U+00b6ba: */ + RTUNI_ALPHA, /* U+00b6bb: */ + RTUNI_ALPHA, /* U+00b6bc: */ + RTUNI_ALPHA, /* U+00b6bd: */ + RTUNI_ALPHA, /* U+00b6be: */ + RTUNI_ALPHA, /* U+00b6bf: */ + RTUNI_ALPHA, /* U+00b6c0: */ + RTUNI_ALPHA, /* U+00b6c1: */ + RTUNI_ALPHA, /* U+00b6c2: */ + RTUNI_ALPHA, /* U+00b6c3: */ + RTUNI_ALPHA, /* U+00b6c4: */ + RTUNI_ALPHA, /* U+00b6c5: */ + RTUNI_ALPHA, /* U+00b6c6: */ + RTUNI_ALPHA, /* U+00b6c7: */ + RTUNI_ALPHA, /* U+00b6c8: */ + RTUNI_ALPHA, /* U+00b6c9: */ + RTUNI_ALPHA, /* U+00b6ca: */ + RTUNI_ALPHA, /* U+00b6cb: */ + RTUNI_ALPHA, /* U+00b6cc: */ + RTUNI_ALPHA, /* U+00b6cd: */ + RTUNI_ALPHA, /* U+00b6ce: */ + RTUNI_ALPHA, /* U+00b6cf: */ + RTUNI_ALPHA, /* U+00b6d0: */ + RTUNI_ALPHA, /* U+00b6d1: */ + RTUNI_ALPHA, /* U+00b6d2: */ + RTUNI_ALPHA, /* U+00b6d3: */ + RTUNI_ALPHA, /* U+00b6d4: */ + RTUNI_ALPHA, /* U+00b6d5: */ + RTUNI_ALPHA, /* U+00b6d6: */ + RTUNI_ALPHA, /* U+00b6d7: */ + RTUNI_ALPHA, /* U+00b6d8: */ + RTUNI_ALPHA, /* U+00b6d9: */ + RTUNI_ALPHA, /* U+00b6da: */ + RTUNI_ALPHA, /* U+00b6db: */ + RTUNI_ALPHA, /* U+00b6dc: */ + RTUNI_ALPHA, /* U+00b6dd: */ + RTUNI_ALPHA, /* U+00b6de: */ + RTUNI_ALPHA, /* U+00b6df: */ + RTUNI_ALPHA, /* U+00b6e0: */ + RTUNI_ALPHA, /* U+00b6e1: */ + RTUNI_ALPHA, /* U+00b6e2: */ + RTUNI_ALPHA, /* U+00b6e3: */ + RTUNI_ALPHA, /* U+00b6e4: */ + RTUNI_ALPHA, /* U+00b6e5: */ + RTUNI_ALPHA, /* U+00b6e6: */ + RTUNI_ALPHA, /* U+00b6e7: */ + RTUNI_ALPHA, /* U+00b6e8: */ + RTUNI_ALPHA, /* U+00b6e9: */ + RTUNI_ALPHA, /* U+00b6ea: */ + RTUNI_ALPHA, /* U+00b6eb: */ + RTUNI_ALPHA, /* U+00b6ec: */ + RTUNI_ALPHA, /* U+00b6ed: */ + RTUNI_ALPHA, /* U+00b6ee: */ + RTUNI_ALPHA, /* U+00b6ef: */ + RTUNI_ALPHA, /* U+00b6f0: */ + RTUNI_ALPHA, /* U+00b6f1: */ + RTUNI_ALPHA, /* U+00b6f2: */ + RTUNI_ALPHA, /* U+00b6f3: */ + RTUNI_ALPHA, /* U+00b6f4: */ + RTUNI_ALPHA, /* U+00b6f5: */ + RTUNI_ALPHA, /* U+00b6f6: */ + RTUNI_ALPHA, /* U+00b6f7: */ + RTUNI_ALPHA, /* U+00b6f8: */ + RTUNI_ALPHA, /* U+00b6f9: */ + RTUNI_ALPHA, /* U+00b6fa: */ + RTUNI_ALPHA, /* U+00b6fb: */ + RTUNI_ALPHA, /* U+00b6fc: */ + RTUNI_ALPHA, /* U+00b6fd: */ + RTUNI_ALPHA, /* U+00b6fe: */ + RTUNI_ALPHA, /* U+00b6ff: */ + RTUNI_ALPHA, /* U+00b700: */ + RTUNI_ALPHA, /* U+00b701: */ + RTUNI_ALPHA, /* U+00b702: */ + RTUNI_ALPHA, /* U+00b703: */ + RTUNI_ALPHA, /* U+00b704: */ + RTUNI_ALPHA, /* U+00b705: */ + RTUNI_ALPHA, /* U+00b706: */ + RTUNI_ALPHA, /* U+00b707: */ + RTUNI_ALPHA, /* U+00b708: */ + RTUNI_ALPHA, /* U+00b709: */ + RTUNI_ALPHA, /* U+00b70a: */ + RTUNI_ALPHA, /* U+00b70b: */ + RTUNI_ALPHA, /* U+00b70c: */ + RTUNI_ALPHA, /* U+00b70d: */ + RTUNI_ALPHA, /* U+00b70e: */ + RTUNI_ALPHA, /* U+00b70f: */ + RTUNI_ALPHA, /* U+00b710: */ + RTUNI_ALPHA, /* U+00b711: */ + RTUNI_ALPHA, /* U+00b712: */ + RTUNI_ALPHA, /* U+00b713: */ + RTUNI_ALPHA, /* U+00b714: */ + RTUNI_ALPHA, /* U+00b715: */ + RTUNI_ALPHA, /* U+00b716: */ + RTUNI_ALPHA, /* U+00b717: */ + RTUNI_ALPHA, /* U+00b718: */ + RTUNI_ALPHA, /* U+00b719: */ + RTUNI_ALPHA, /* U+00b71a: */ + RTUNI_ALPHA, /* U+00b71b: */ + RTUNI_ALPHA, /* U+00b71c: */ + RTUNI_ALPHA, /* U+00b71d: */ + RTUNI_ALPHA, /* U+00b71e: */ + RTUNI_ALPHA, /* U+00b71f: */ + RTUNI_ALPHA, /* U+00b720: */ + RTUNI_ALPHA, /* U+00b721: */ + RTUNI_ALPHA, /* U+00b722: */ + RTUNI_ALPHA, /* U+00b723: */ + RTUNI_ALPHA, /* U+00b724: */ + RTUNI_ALPHA, /* U+00b725: */ + RTUNI_ALPHA, /* U+00b726: */ + RTUNI_ALPHA, /* U+00b727: */ + RTUNI_ALPHA, /* U+00b728: */ + RTUNI_ALPHA, /* U+00b729: */ + RTUNI_ALPHA, /* U+00b72a: */ + RTUNI_ALPHA, /* U+00b72b: */ + RTUNI_ALPHA, /* U+00b72c: */ + RTUNI_ALPHA, /* U+00b72d: */ + RTUNI_ALPHA, /* U+00b72e: */ + RTUNI_ALPHA, /* U+00b72f: */ + RTUNI_ALPHA, /* U+00b730: */ + RTUNI_ALPHA, /* U+00b731: */ + RTUNI_ALPHA, /* U+00b732: */ + RTUNI_ALPHA, /* U+00b733: */ + RTUNI_ALPHA, /* U+00b734: */ + RTUNI_ALPHA, /* U+00b735: */ + RTUNI_ALPHA, /* U+00b736: */ + RTUNI_ALPHA, /* U+00b737: */ + RTUNI_ALPHA, /* U+00b738: */ + RTUNI_ALPHA, /* U+00b739: */ + RTUNI_ALPHA, /* U+00b73a: */ + RTUNI_ALPHA, /* U+00b73b: */ + RTUNI_ALPHA, /* U+00b73c: */ + RTUNI_ALPHA, /* U+00b73d: */ + RTUNI_ALPHA, /* U+00b73e: */ + RTUNI_ALPHA, /* U+00b73f: */ + RTUNI_ALPHA, /* U+00b740: */ + RTUNI_ALPHA, /* U+00b741: */ + RTUNI_ALPHA, /* U+00b742: */ + RTUNI_ALPHA, /* U+00b743: */ + RTUNI_ALPHA, /* U+00b744: */ + RTUNI_ALPHA, /* U+00b745: */ + RTUNI_ALPHA, /* U+00b746: */ + RTUNI_ALPHA, /* U+00b747: */ + RTUNI_ALPHA, /* U+00b748: */ + RTUNI_ALPHA, /* U+00b749: */ + RTUNI_ALPHA, /* U+00b74a: */ + RTUNI_ALPHA, /* U+00b74b: */ + RTUNI_ALPHA, /* U+00b74c: */ + RTUNI_ALPHA, /* U+00b74d: */ + RTUNI_ALPHA, /* U+00b74e: */ + RTUNI_ALPHA, /* U+00b74f: */ + RTUNI_ALPHA, /* U+00b750: */ + RTUNI_ALPHA, /* U+00b751: */ + RTUNI_ALPHA, /* U+00b752: */ + RTUNI_ALPHA, /* U+00b753: */ + RTUNI_ALPHA, /* U+00b754: */ + RTUNI_ALPHA, /* U+00b755: */ + RTUNI_ALPHA, /* U+00b756: */ + RTUNI_ALPHA, /* U+00b757: */ + RTUNI_ALPHA, /* U+00b758: */ + RTUNI_ALPHA, /* U+00b759: */ + RTUNI_ALPHA, /* U+00b75a: */ + RTUNI_ALPHA, /* U+00b75b: */ + RTUNI_ALPHA, /* U+00b75c: */ + RTUNI_ALPHA, /* U+00b75d: */ + RTUNI_ALPHA, /* U+00b75e: */ + RTUNI_ALPHA, /* U+00b75f: */ + RTUNI_ALPHA, /* U+00b760: */ + RTUNI_ALPHA, /* U+00b761: */ + RTUNI_ALPHA, /* U+00b762: */ + RTUNI_ALPHA, /* U+00b763: */ + RTUNI_ALPHA, /* U+00b764: */ + RTUNI_ALPHA, /* U+00b765: */ + RTUNI_ALPHA, /* U+00b766: */ + RTUNI_ALPHA, /* U+00b767: */ + RTUNI_ALPHA, /* U+00b768: */ + RTUNI_ALPHA, /* U+00b769: */ + RTUNI_ALPHA, /* U+00b76a: */ + RTUNI_ALPHA, /* U+00b76b: */ + RTUNI_ALPHA, /* U+00b76c: */ + RTUNI_ALPHA, /* U+00b76d: */ + RTUNI_ALPHA, /* U+00b76e: */ + RTUNI_ALPHA, /* U+00b76f: */ + RTUNI_ALPHA, /* U+00b770: */ + RTUNI_ALPHA, /* U+00b771: */ + RTUNI_ALPHA, /* U+00b772: */ + RTUNI_ALPHA, /* U+00b773: */ + RTUNI_ALPHA, /* U+00b774: */ + RTUNI_ALPHA, /* U+00b775: */ + RTUNI_ALPHA, /* U+00b776: */ + RTUNI_ALPHA, /* U+00b777: */ + RTUNI_ALPHA, /* U+00b778: */ + RTUNI_ALPHA, /* U+00b779: */ + RTUNI_ALPHA, /* U+00b77a: */ + RTUNI_ALPHA, /* U+00b77b: */ + RTUNI_ALPHA, /* U+00b77c: */ + RTUNI_ALPHA, /* U+00b77d: */ + RTUNI_ALPHA, /* U+00b77e: */ + RTUNI_ALPHA, /* U+00b77f: */ + RTUNI_ALPHA, /* U+00b780: */ + RTUNI_ALPHA, /* U+00b781: */ + RTUNI_ALPHA, /* U+00b782: */ + RTUNI_ALPHA, /* U+00b783: */ + RTUNI_ALPHA, /* U+00b784: */ + RTUNI_ALPHA, /* U+00b785: */ + RTUNI_ALPHA, /* U+00b786: */ + RTUNI_ALPHA, /* U+00b787: */ + RTUNI_ALPHA, /* U+00b788: */ + RTUNI_ALPHA, /* U+00b789: */ + RTUNI_ALPHA, /* U+00b78a: */ + RTUNI_ALPHA, /* U+00b78b: */ + RTUNI_ALPHA, /* U+00b78c: */ + RTUNI_ALPHA, /* U+00b78d: */ + RTUNI_ALPHA, /* U+00b78e: */ + RTUNI_ALPHA, /* U+00b78f: */ + RTUNI_ALPHA, /* U+00b790: */ + RTUNI_ALPHA, /* U+00b791: */ + RTUNI_ALPHA, /* U+00b792: */ + RTUNI_ALPHA, /* U+00b793: */ + RTUNI_ALPHA, /* U+00b794: */ + RTUNI_ALPHA, /* U+00b795: */ + RTUNI_ALPHA, /* U+00b796: */ + RTUNI_ALPHA, /* U+00b797: */ + RTUNI_ALPHA, /* U+00b798: */ + RTUNI_ALPHA, /* U+00b799: */ + RTUNI_ALPHA, /* U+00b79a: */ + RTUNI_ALPHA, /* U+00b79b: */ + RTUNI_ALPHA, /* U+00b79c: */ + RTUNI_ALPHA, /* U+00b79d: */ + RTUNI_ALPHA, /* U+00b79e: */ + RTUNI_ALPHA, /* U+00b79f: */ + RTUNI_ALPHA, /* U+00b7a0: */ + RTUNI_ALPHA, /* U+00b7a1: */ + RTUNI_ALPHA, /* U+00b7a2: */ + RTUNI_ALPHA, /* U+00b7a3: */ + RTUNI_ALPHA, /* U+00b7a4: */ + RTUNI_ALPHA, /* U+00b7a5: */ + RTUNI_ALPHA, /* U+00b7a6: */ + RTUNI_ALPHA, /* U+00b7a7: */ + RTUNI_ALPHA, /* U+00b7a8: */ + RTUNI_ALPHA, /* U+00b7a9: */ + RTUNI_ALPHA, /* U+00b7aa: */ + RTUNI_ALPHA, /* U+00b7ab: */ + RTUNI_ALPHA, /* U+00b7ac: */ + RTUNI_ALPHA, /* U+00b7ad: */ + RTUNI_ALPHA, /* U+00b7ae: */ + RTUNI_ALPHA, /* U+00b7af: */ + RTUNI_ALPHA, /* U+00b7b0: */ + RTUNI_ALPHA, /* U+00b7b1: */ + RTUNI_ALPHA, /* U+00b7b2: */ + RTUNI_ALPHA, /* U+00b7b3: */ + RTUNI_ALPHA, /* U+00b7b4: */ + RTUNI_ALPHA, /* U+00b7b5: */ + RTUNI_ALPHA, /* U+00b7b6: */ + RTUNI_ALPHA, /* U+00b7b7: */ + RTUNI_ALPHA, /* U+00b7b8: */ + RTUNI_ALPHA, /* U+00b7b9: */ + RTUNI_ALPHA, /* U+00b7ba: */ + RTUNI_ALPHA, /* U+00b7bb: */ + RTUNI_ALPHA, /* U+00b7bc: */ + RTUNI_ALPHA, /* U+00b7bd: */ + RTUNI_ALPHA, /* U+00b7be: */ + RTUNI_ALPHA, /* U+00b7bf: */ + RTUNI_ALPHA, /* U+00b7c0: */ + RTUNI_ALPHA, /* U+00b7c1: */ + RTUNI_ALPHA, /* U+00b7c2: */ + RTUNI_ALPHA, /* U+00b7c3: */ + RTUNI_ALPHA, /* U+00b7c4: */ + RTUNI_ALPHA, /* U+00b7c5: */ + RTUNI_ALPHA, /* U+00b7c6: */ + RTUNI_ALPHA, /* U+00b7c7: */ + RTUNI_ALPHA, /* U+00b7c8: */ + RTUNI_ALPHA, /* U+00b7c9: */ + RTUNI_ALPHA, /* U+00b7ca: */ + RTUNI_ALPHA, /* U+00b7cb: */ + RTUNI_ALPHA, /* U+00b7cc: */ + RTUNI_ALPHA, /* U+00b7cd: */ + RTUNI_ALPHA, /* U+00b7ce: */ + RTUNI_ALPHA, /* U+00b7cf: */ + RTUNI_ALPHA, /* U+00b7d0: */ + RTUNI_ALPHA, /* U+00b7d1: */ + RTUNI_ALPHA, /* U+00b7d2: */ + RTUNI_ALPHA, /* U+00b7d3: */ + RTUNI_ALPHA, /* U+00b7d4: */ + RTUNI_ALPHA, /* U+00b7d5: */ + RTUNI_ALPHA, /* U+00b7d6: */ + RTUNI_ALPHA, /* U+00b7d7: */ + RTUNI_ALPHA, /* U+00b7d8: */ + RTUNI_ALPHA, /* U+00b7d9: */ + RTUNI_ALPHA, /* U+00b7da: */ + RTUNI_ALPHA, /* U+00b7db: */ + RTUNI_ALPHA, /* U+00b7dc: */ + RTUNI_ALPHA, /* U+00b7dd: */ + RTUNI_ALPHA, /* U+00b7de: */ + RTUNI_ALPHA, /* U+00b7df: */ + RTUNI_ALPHA, /* U+00b7e0: */ + RTUNI_ALPHA, /* U+00b7e1: */ + RTUNI_ALPHA, /* U+00b7e2: */ + RTUNI_ALPHA, /* U+00b7e3: */ + RTUNI_ALPHA, /* U+00b7e4: */ + RTUNI_ALPHA, /* U+00b7e5: */ + RTUNI_ALPHA, /* U+00b7e6: */ + RTUNI_ALPHA, /* U+00b7e7: */ + RTUNI_ALPHA, /* U+00b7e8: */ + RTUNI_ALPHA, /* U+00b7e9: */ + RTUNI_ALPHA, /* U+00b7ea: */ + RTUNI_ALPHA, /* U+00b7eb: */ + RTUNI_ALPHA, /* U+00b7ec: */ + RTUNI_ALPHA, /* U+00b7ed: */ + RTUNI_ALPHA, /* U+00b7ee: */ + RTUNI_ALPHA, /* U+00b7ef: */ + RTUNI_ALPHA, /* U+00b7f0: */ + RTUNI_ALPHA, /* U+00b7f1: */ + RTUNI_ALPHA, /* U+00b7f2: */ + RTUNI_ALPHA, /* U+00b7f3: */ + RTUNI_ALPHA, /* U+00b7f4: */ + RTUNI_ALPHA, /* U+00b7f5: */ + RTUNI_ALPHA, /* U+00b7f6: */ + RTUNI_ALPHA, /* U+00b7f7: */ + RTUNI_ALPHA, /* U+00b7f8: */ + RTUNI_ALPHA, /* U+00b7f9: */ + RTUNI_ALPHA, /* U+00b7fa: */ + RTUNI_ALPHA, /* U+00b7fb: */ + RTUNI_ALPHA, /* U+00b7fc: */ + RTUNI_ALPHA, /* U+00b7fd: */ + RTUNI_ALPHA, /* U+00b7fe: */ + RTUNI_ALPHA, /* U+00b7ff: */ + RTUNI_ALPHA, /* U+00b800: */ + RTUNI_ALPHA, /* U+00b801: */ + RTUNI_ALPHA, /* U+00b802: */ + RTUNI_ALPHA, /* U+00b803: */ + RTUNI_ALPHA, /* U+00b804: */ + RTUNI_ALPHA, /* U+00b805: */ + RTUNI_ALPHA, /* U+00b806: */ + RTUNI_ALPHA, /* U+00b807: */ + RTUNI_ALPHA, /* U+00b808: */ + RTUNI_ALPHA, /* U+00b809: */ + RTUNI_ALPHA, /* U+00b80a: */ + RTUNI_ALPHA, /* U+00b80b: */ + RTUNI_ALPHA, /* U+00b80c: */ + RTUNI_ALPHA, /* U+00b80d: */ + RTUNI_ALPHA, /* U+00b80e: */ + RTUNI_ALPHA, /* U+00b80f: */ + RTUNI_ALPHA, /* U+00b810: */ + RTUNI_ALPHA, /* U+00b811: */ + RTUNI_ALPHA, /* U+00b812: */ + RTUNI_ALPHA, /* U+00b813: */ + RTUNI_ALPHA, /* U+00b814: */ + RTUNI_ALPHA, /* U+00b815: */ + RTUNI_ALPHA, /* U+00b816: */ + RTUNI_ALPHA, /* U+00b817: */ + RTUNI_ALPHA, /* U+00b818: */ + RTUNI_ALPHA, /* U+00b819: */ + RTUNI_ALPHA, /* U+00b81a: */ + RTUNI_ALPHA, /* U+00b81b: */ + RTUNI_ALPHA, /* U+00b81c: */ + RTUNI_ALPHA, /* U+00b81d: */ + RTUNI_ALPHA, /* U+00b81e: */ + RTUNI_ALPHA, /* U+00b81f: */ + RTUNI_ALPHA, /* U+00b820: */ + RTUNI_ALPHA, /* U+00b821: */ + RTUNI_ALPHA, /* U+00b822: */ + RTUNI_ALPHA, /* U+00b823: */ + RTUNI_ALPHA, /* U+00b824: */ + RTUNI_ALPHA, /* U+00b825: */ + RTUNI_ALPHA, /* U+00b826: */ + RTUNI_ALPHA, /* U+00b827: */ + RTUNI_ALPHA, /* U+00b828: */ + RTUNI_ALPHA, /* U+00b829: */ + RTUNI_ALPHA, /* U+00b82a: */ + RTUNI_ALPHA, /* U+00b82b: */ + RTUNI_ALPHA, /* U+00b82c: */ + RTUNI_ALPHA, /* U+00b82d: */ + RTUNI_ALPHA, /* U+00b82e: */ + RTUNI_ALPHA, /* U+00b82f: */ + RTUNI_ALPHA, /* U+00b830: */ + RTUNI_ALPHA, /* U+00b831: */ + RTUNI_ALPHA, /* U+00b832: */ + RTUNI_ALPHA, /* U+00b833: */ + RTUNI_ALPHA, /* U+00b834: */ + RTUNI_ALPHA, /* U+00b835: */ + RTUNI_ALPHA, /* U+00b836: */ + RTUNI_ALPHA, /* U+00b837: */ + RTUNI_ALPHA, /* U+00b838: */ + RTUNI_ALPHA, /* U+00b839: */ + RTUNI_ALPHA, /* U+00b83a: */ + RTUNI_ALPHA, /* U+00b83b: */ + RTUNI_ALPHA, /* U+00b83c: */ + RTUNI_ALPHA, /* U+00b83d: */ + RTUNI_ALPHA, /* U+00b83e: */ + RTUNI_ALPHA, /* U+00b83f: */ + RTUNI_ALPHA, /* U+00b840: */ + RTUNI_ALPHA, /* U+00b841: */ + RTUNI_ALPHA, /* U+00b842: */ + RTUNI_ALPHA, /* U+00b843: */ + RTUNI_ALPHA, /* U+00b844: */ + RTUNI_ALPHA, /* U+00b845: */ + RTUNI_ALPHA, /* U+00b846: */ + RTUNI_ALPHA, /* U+00b847: */ + RTUNI_ALPHA, /* U+00b848: */ + RTUNI_ALPHA, /* U+00b849: */ + RTUNI_ALPHA, /* U+00b84a: */ + RTUNI_ALPHA, /* U+00b84b: */ + RTUNI_ALPHA, /* U+00b84c: */ + RTUNI_ALPHA, /* U+00b84d: */ + RTUNI_ALPHA, /* U+00b84e: */ + RTUNI_ALPHA, /* U+00b84f: */ + RTUNI_ALPHA, /* U+00b850: */ + RTUNI_ALPHA, /* U+00b851: */ + RTUNI_ALPHA, /* U+00b852: */ + RTUNI_ALPHA, /* U+00b853: */ + RTUNI_ALPHA, /* U+00b854: */ + RTUNI_ALPHA, /* U+00b855: */ + RTUNI_ALPHA, /* U+00b856: */ + RTUNI_ALPHA, /* U+00b857: */ + RTUNI_ALPHA, /* U+00b858: */ + RTUNI_ALPHA, /* U+00b859: */ + RTUNI_ALPHA, /* U+00b85a: */ + RTUNI_ALPHA, /* U+00b85b: */ + RTUNI_ALPHA, /* U+00b85c: */ + RTUNI_ALPHA, /* U+00b85d: */ + RTUNI_ALPHA, /* U+00b85e: */ + RTUNI_ALPHA, /* U+00b85f: */ + RTUNI_ALPHA, /* U+00b860: */ + RTUNI_ALPHA, /* U+00b861: */ + RTUNI_ALPHA, /* U+00b862: */ + RTUNI_ALPHA, /* U+00b863: */ + RTUNI_ALPHA, /* U+00b864: */ + RTUNI_ALPHA, /* U+00b865: */ + RTUNI_ALPHA, /* U+00b866: */ + RTUNI_ALPHA, /* U+00b867: */ + RTUNI_ALPHA, /* U+00b868: */ + RTUNI_ALPHA, /* U+00b869: */ + RTUNI_ALPHA, /* U+00b86a: */ + RTUNI_ALPHA, /* U+00b86b: */ + RTUNI_ALPHA, /* U+00b86c: */ + RTUNI_ALPHA, /* U+00b86d: */ + RTUNI_ALPHA, /* U+00b86e: */ + RTUNI_ALPHA, /* U+00b86f: */ + RTUNI_ALPHA, /* U+00b870: */ + RTUNI_ALPHA, /* U+00b871: */ + RTUNI_ALPHA, /* U+00b872: */ + RTUNI_ALPHA, /* U+00b873: */ + RTUNI_ALPHA, /* U+00b874: */ + RTUNI_ALPHA, /* U+00b875: */ + RTUNI_ALPHA, /* U+00b876: */ + RTUNI_ALPHA, /* U+00b877: */ + RTUNI_ALPHA, /* U+00b878: */ + RTUNI_ALPHA, /* U+00b879: */ + RTUNI_ALPHA, /* U+00b87a: */ + RTUNI_ALPHA, /* U+00b87b: */ + RTUNI_ALPHA, /* U+00b87c: */ + RTUNI_ALPHA, /* U+00b87d: */ + RTUNI_ALPHA, /* U+00b87e: */ + RTUNI_ALPHA, /* U+00b87f: */ + RTUNI_ALPHA, /* U+00b880: */ + RTUNI_ALPHA, /* U+00b881: */ + RTUNI_ALPHA, /* U+00b882: */ + RTUNI_ALPHA, /* U+00b883: */ + RTUNI_ALPHA, /* U+00b884: */ + RTUNI_ALPHA, /* U+00b885: */ + RTUNI_ALPHA, /* U+00b886: */ + RTUNI_ALPHA, /* U+00b887: */ + RTUNI_ALPHA, /* U+00b888: */ + RTUNI_ALPHA, /* U+00b889: */ + RTUNI_ALPHA, /* U+00b88a: */ + RTUNI_ALPHA, /* U+00b88b: */ + RTUNI_ALPHA, /* U+00b88c: */ + RTUNI_ALPHA, /* U+00b88d: */ + RTUNI_ALPHA, /* U+00b88e: */ + RTUNI_ALPHA, /* U+00b88f: */ + RTUNI_ALPHA, /* U+00b890: */ + RTUNI_ALPHA, /* U+00b891: */ + RTUNI_ALPHA, /* U+00b892: */ + RTUNI_ALPHA, /* U+00b893: */ + RTUNI_ALPHA, /* U+00b894: */ + RTUNI_ALPHA, /* U+00b895: */ + RTUNI_ALPHA, /* U+00b896: */ + RTUNI_ALPHA, /* U+00b897: */ + RTUNI_ALPHA, /* U+00b898: */ + RTUNI_ALPHA, /* U+00b899: */ + RTUNI_ALPHA, /* U+00b89a: */ + RTUNI_ALPHA, /* U+00b89b: */ + RTUNI_ALPHA, /* U+00b89c: */ + RTUNI_ALPHA, /* U+00b89d: */ + RTUNI_ALPHA, /* U+00b89e: */ + RTUNI_ALPHA, /* U+00b89f: */ + RTUNI_ALPHA, /* U+00b8a0: */ + RTUNI_ALPHA, /* U+00b8a1: */ + RTUNI_ALPHA, /* U+00b8a2: */ + RTUNI_ALPHA, /* U+00b8a3: */ + RTUNI_ALPHA, /* U+00b8a4: */ + RTUNI_ALPHA, /* U+00b8a5: */ + RTUNI_ALPHA, /* U+00b8a6: */ + RTUNI_ALPHA, /* U+00b8a7: */ + RTUNI_ALPHA, /* U+00b8a8: */ + RTUNI_ALPHA, /* U+00b8a9: */ + RTUNI_ALPHA, /* U+00b8aa: */ + RTUNI_ALPHA, /* U+00b8ab: */ + RTUNI_ALPHA, /* U+00b8ac: */ + RTUNI_ALPHA, /* U+00b8ad: */ + RTUNI_ALPHA, /* U+00b8ae: */ + RTUNI_ALPHA, /* U+00b8af: */ + RTUNI_ALPHA, /* U+00b8b0: */ + RTUNI_ALPHA, /* U+00b8b1: */ + RTUNI_ALPHA, /* U+00b8b2: */ + RTUNI_ALPHA, /* U+00b8b3: */ + RTUNI_ALPHA, /* U+00b8b4: */ + RTUNI_ALPHA, /* U+00b8b5: */ + RTUNI_ALPHA, /* U+00b8b6: */ + RTUNI_ALPHA, /* U+00b8b7: */ + RTUNI_ALPHA, /* U+00b8b8: */ + RTUNI_ALPHA, /* U+00b8b9: */ + RTUNI_ALPHA, /* U+00b8ba: */ + RTUNI_ALPHA, /* U+00b8bb: */ + RTUNI_ALPHA, /* U+00b8bc: */ + RTUNI_ALPHA, /* U+00b8bd: */ + RTUNI_ALPHA, /* U+00b8be: */ + RTUNI_ALPHA, /* U+00b8bf: */ + RTUNI_ALPHA, /* U+00b8c0: */ + RTUNI_ALPHA, /* U+00b8c1: */ + RTUNI_ALPHA, /* U+00b8c2: */ + RTUNI_ALPHA, /* U+00b8c3: */ + RTUNI_ALPHA, /* U+00b8c4: */ + RTUNI_ALPHA, /* U+00b8c5: */ + RTUNI_ALPHA, /* U+00b8c6: */ + RTUNI_ALPHA, /* U+00b8c7: */ + RTUNI_ALPHA, /* U+00b8c8: */ + RTUNI_ALPHA, /* U+00b8c9: */ + RTUNI_ALPHA, /* U+00b8ca: */ + RTUNI_ALPHA, /* U+00b8cb: */ + RTUNI_ALPHA, /* U+00b8cc: */ + RTUNI_ALPHA, /* U+00b8cd: */ + RTUNI_ALPHA, /* U+00b8ce: */ + RTUNI_ALPHA, /* U+00b8cf: */ + RTUNI_ALPHA, /* U+00b8d0: */ + RTUNI_ALPHA, /* U+00b8d1: */ + RTUNI_ALPHA, /* U+00b8d2: */ + RTUNI_ALPHA, /* U+00b8d3: */ + RTUNI_ALPHA, /* U+00b8d4: */ + RTUNI_ALPHA, /* U+00b8d5: */ + RTUNI_ALPHA, /* U+00b8d6: */ + RTUNI_ALPHA, /* U+00b8d7: */ + RTUNI_ALPHA, /* U+00b8d8: */ + RTUNI_ALPHA, /* U+00b8d9: */ + RTUNI_ALPHA, /* U+00b8da: */ + RTUNI_ALPHA, /* U+00b8db: */ + RTUNI_ALPHA, /* U+00b8dc: */ + RTUNI_ALPHA, /* U+00b8dd: */ + RTUNI_ALPHA, /* U+00b8de: */ + RTUNI_ALPHA, /* U+00b8df: */ + RTUNI_ALPHA, /* U+00b8e0: */ + RTUNI_ALPHA, /* U+00b8e1: */ + RTUNI_ALPHA, /* U+00b8e2: */ + RTUNI_ALPHA, /* U+00b8e3: */ + RTUNI_ALPHA, /* U+00b8e4: */ + RTUNI_ALPHA, /* U+00b8e5: */ + RTUNI_ALPHA, /* U+00b8e6: */ + RTUNI_ALPHA, /* U+00b8e7: */ + RTUNI_ALPHA, /* U+00b8e8: */ + RTUNI_ALPHA, /* U+00b8e9: */ + RTUNI_ALPHA, /* U+00b8ea: */ + RTUNI_ALPHA, /* U+00b8eb: */ + RTUNI_ALPHA, /* U+00b8ec: */ + RTUNI_ALPHA, /* U+00b8ed: */ + RTUNI_ALPHA, /* U+00b8ee: */ + RTUNI_ALPHA, /* U+00b8ef: */ + RTUNI_ALPHA, /* U+00b8f0: */ + RTUNI_ALPHA, /* U+00b8f1: */ + RTUNI_ALPHA, /* U+00b8f2: */ + RTUNI_ALPHA, /* U+00b8f3: */ + RTUNI_ALPHA, /* U+00b8f4: */ + RTUNI_ALPHA, /* U+00b8f5: */ + RTUNI_ALPHA, /* U+00b8f6: */ + RTUNI_ALPHA, /* U+00b8f7: */ + RTUNI_ALPHA, /* U+00b8f8: */ + RTUNI_ALPHA, /* U+00b8f9: */ + RTUNI_ALPHA, /* U+00b8fa: */ + RTUNI_ALPHA, /* U+00b8fb: */ + RTUNI_ALPHA, /* U+00b8fc: */ + RTUNI_ALPHA, /* U+00b8fd: */ + RTUNI_ALPHA, /* U+00b8fe: */ + RTUNI_ALPHA, /* U+00b8ff: */ + RTUNI_ALPHA, /* U+00b900: */ + RTUNI_ALPHA, /* U+00b901: */ + RTUNI_ALPHA, /* U+00b902: */ + RTUNI_ALPHA, /* U+00b903: */ + RTUNI_ALPHA, /* U+00b904: */ + RTUNI_ALPHA, /* U+00b905: */ + RTUNI_ALPHA, /* U+00b906: */ + RTUNI_ALPHA, /* U+00b907: */ + RTUNI_ALPHA, /* U+00b908: */ + RTUNI_ALPHA, /* U+00b909: */ + RTUNI_ALPHA, /* U+00b90a: */ + RTUNI_ALPHA, /* U+00b90b: */ + RTUNI_ALPHA, /* U+00b90c: */ + RTUNI_ALPHA, /* U+00b90d: */ + RTUNI_ALPHA, /* U+00b90e: */ + RTUNI_ALPHA, /* U+00b90f: */ + RTUNI_ALPHA, /* U+00b910: */ + RTUNI_ALPHA, /* U+00b911: */ + RTUNI_ALPHA, /* U+00b912: */ + RTUNI_ALPHA, /* U+00b913: */ + RTUNI_ALPHA, /* U+00b914: */ + RTUNI_ALPHA, /* U+00b915: */ + RTUNI_ALPHA, /* U+00b916: */ + RTUNI_ALPHA, /* U+00b917: */ + RTUNI_ALPHA, /* U+00b918: */ + RTUNI_ALPHA, /* U+00b919: */ + RTUNI_ALPHA, /* U+00b91a: */ + RTUNI_ALPHA, /* U+00b91b: */ + RTUNI_ALPHA, /* U+00b91c: */ + RTUNI_ALPHA, /* U+00b91d: */ + RTUNI_ALPHA, /* U+00b91e: */ + RTUNI_ALPHA, /* U+00b91f: */ + RTUNI_ALPHA, /* U+00b920: */ + RTUNI_ALPHA, /* U+00b921: */ + RTUNI_ALPHA, /* U+00b922: */ + RTUNI_ALPHA, /* U+00b923: */ + RTUNI_ALPHA, /* U+00b924: */ + RTUNI_ALPHA, /* U+00b925: */ + RTUNI_ALPHA, /* U+00b926: */ + RTUNI_ALPHA, /* U+00b927: */ + RTUNI_ALPHA, /* U+00b928: */ + RTUNI_ALPHA, /* U+00b929: */ + RTUNI_ALPHA, /* U+00b92a: */ + RTUNI_ALPHA, /* U+00b92b: */ + RTUNI_ALPHA, /* U+00b92c: */ + RTUNI_ALPHA, /* U+00b92d: */ + RTUNI_ALPHA, /* U+00b92e: */ + RTUNI_ALPHA, /* U+00b92f: */ + RTUNI_ALPHA, /* U+00b930: */ + RTUNI_ALPHA, /* U+00b931: */ + RTUNI_ALPHA, /* U+00b932: */ + RTUNI_ALPHA, /* U+00b933: */ + RTUNI_ALPHA, /* U+00b934: */ + RTUNI_ALPHA, /* U+00b935: */ + RTUNI_ALPHA, /* U+00b936: */ + RTUNI_ALPHA, /* U+00b937: */ + RTUNI_ALPHA, /* U+00b938: */ + RTUNI_ALPHA, /* U+00b939: */ + RTUNI_ALPHA, /* U+00b93a: */ + RTUNI_ALPHA, /* U+00b93b: */ + RTUNI_ALPHA, /* U+00b93c: */ + RTUNI_ALPHA, /* U+00b93d: */ + RTUNI_ALPHA, /* U+00b93e: */ + RTUNI_ALPHA, /* U+00b93f: */ + RTUNI_ALPHA, /* U+00b940: */ + RTUNI_ALPHA, /* U+00b941: */ + RTUNI_ALPHA, /* U+00b942: */ + RTUNI_ALPHA, /* U+00b943: */ + RTUNI_ALPHA, /* U+00b944: */ + RTUNI_ALPHA, /* U+00b945: */ + RTUNI_ALPHA, /* U+00b946: */ + RTUNI_ALPHA, /* U+00b947: */ + RTUNI_ALPHA, /* U+00b948: */ + RTUNI_ALPHA, /* U+00b949: */ + RTUNI_ALPHA, /* U+00b94a: */ + RTUNI_ALPHA, /* U+00b94b: */ + RTUNI_ALPHA, /* U+00b94c: */ + RTUNI_ALPHA, /* U+00b94d: */ + RTUNI_ALPHA, /* U+00b94e: */ + RTUNI_ALPHA, /* U+00b94f: */ + RTUNI_ALPHA, /* U+00b950: */ + RTUNI_ALPHA, /* U+00b951: */ + RTUNI_ALPHA, /* U+00b952: */ + RTUNI_ALPHA, /* U+00b953: */ + RTUNI_ALPHA, /* U+00b954: */ + RTUNI_ALPHA, /* U+00b955: */ + RTUNI_ALPHA, /* U+00b956: */ + RTUNI_ALPHA, /* U+00b957: */ + RTUNI_ALPHA, /* U+00b958: */ + RTUNI_ALPHA, /* U+00b959: */ + RTUNI_ALPHA, /* U+00b95a: */ + RTUNI_ALPHA, /* U+00b95b: */ + RTUNI_ALPHA, /* U+00b95c: */ + RTUNI_ALPHA, /* U+00b95d: */ + RTUNI_ALPHA, /* U+00b95e: */ + RTUNI_ALPHA, /* U+00b95f: */ + RTUNI_ALPHA, /* U+00b960: */ + RTUNI_ALPHA, /* U+00b961: */ + RTUNI_ALPHA, /* U+00b962: */ + RTUNI_ALPHA, /* U+00b963: */ + RTUNI_ALPHA, /* U+00b964: */ + RTUNI_ALPHA, /* U+00b965: */ + RTUNI_ALPHA, /* U+00b966: */ + RTUNI_ALPHA, /* U+00b967: */ + RTUNI_ALPHA, /* U+00b968: */ + RTUNI_ALPHA, /* U+00b969: */ + RTUNI_ALPHA, /* U+00b96a: */ + RTUNI_ALPHA, /* U+00b96b: */ + RTUNI_ALPHA, /* U+00b96c: */ + RTUNI_ALPHA, /* U+00b96d: */ + RTUNI_ALPHA, /* U+00b96e: */ + RTUNI_ALPHA, /* U+00b96f: */ + RTUNI_ALPHA, /* U+00b970: */ + RTUNI_ALPHA, /* U+00b971: */ + RTUNI_ALPHA, /* U+00b972: */ + RTUNI_ALPHA, /* U+00b973: */ + RTUNI_ALPHA, /* U+00b974: */ + RTUNI_ALPHA, /* U+00b975: */ + RTUNI_ALPHA, /* U+00b976: */ + RTUNI_ALPHA, /* U+00b977: */ + RTUNI_ALPHA, /* U+00b978: */ + RTUNI_ALPHA, /* U+00b979: */ + RTUNI_ALPHA, /* U+00b97a: */ + RTUNI_ALPHA, /* U+00b97b: */ + RTUNI_ALPHA, /* U+00b97c: */ + RTUNI_ALPHA, /* U+00b97d: */ + RTUNI_ALPHA, /* U+00b97e: */ + RTUNI_ALPHA, /* U+00b97f: */ + RTUNI_ALPHA, /* U+00b980: */ + RTUNI_ALPHA, /* U+00b981: */ + RTUNI_ALPHA, /* U+00b982: */ + RTUNI_ALPHA, /* U+00b983: */ + RTUNI_ALPHA, /* U+00b984: */ + RTUNI_ALPHA, /* U+00b985: */ + RTUNI_ALPHA, /* U+00b986: */ + RTUNI_ALPHA, /* U+00b987: */ + RTUNI_ALPHA, /* U+00b988: */ + RTUNI_ALPHA, /* U+00b989: */ + RTUNI_ALPHA, /* U+00b98a: */ + RTUNI_ALPHA, /* U+00b98b: */ + RTUNI_ALPHA, /* U+00b98c: */ + RTUNI_ALPHA, /* U+00b98d: */ + RTUNI_ALPHA, /* U+00b98e: */ + RTUNI_ALPHA, /* U+00b98f: */ + RTUNI_ALPHA, /* U+00b990: */ + RTUNI_ALPHA, /* U+00b991: */ + RTUNI_ALPHA, /* U+00b992: */ + RTUNI_ALPHA, /* U+00b993: */ + RTUNI_ALPHA, /* U+00b994: */ + RTUNI_ALPHA, /* U+00b995: */ + RTUNI_ALPHA, /* U+00b996: */ + RTUNI_ALPHA, /* U+00b997: */ + RTUNI_ALPHA, /* U+00b998: */ + RTUNI_ALPHA, /* U+00b999: */ + RTUNI_ALPHA, /* U+00b99a: */ + RTUNI_ALPHA, /* U+00b99b: */ + RTUNI_ALPHA, /* U+00b99c: */ + RTUNI_ALPHA, /* U+00b99d: */ + RTUNI_ALPHA, /* U+00b99e: */ + RTUNI_ALPHA, /* U+00b99f: */ + RTUNI_ALPHA, /* U+00b9a0: */ + RTUNI_ALPHA, /* U+00b9a1: */ + RTUNI_ALPHA, /* U+00b9a2: */ + RTUNI_ALPHA, /* U+00b9a3: */ + RTUNI_ALPHA, /* U+00b9a4: */ + RTUNI_ALPHA, /* U+00b9a5: */ + RTUNI_ALPHA, /* U+00b9a6: */ + RTUNI_ALPHA, /* U+00b9a7: */ + RTUNI_ALPHA, /* U+00b9a8: */ + RTUNI_ALPHA, /* U+00b9a9: */ + RTUNI_ALPHA, /* U+00b9aa: */ + RTUNI_ALPHA, /* U+00b9ab: */ + RTUNI_ALPHA, /* U+00b9ac: */ + RTUNI_ALPHA, /* U+00b9ad: */ + RTUNI_ALPHA, /* U+00b9ae: */ + RTUNI_ALPHA, /* U+00b9af: */ + RTUNI_ALPHA, /* U+00b9b0: */ + RTUNI_ALPHA, /* U+00b9b1: */ + RTUNI_ALPHA, /* U+00b9b2: */ + RTUNI_ALPHA, /* U+00b9b3: */ + RTUNI_ALPHA, /* U+00b9b4: */ + RTUNI_ALPHA, /* U+00b9b5: */ + RTUNI_ALPHA, /* U+00b9b6: */ + RTUNI_ALPHA, /* U+00b9b7: */ + RTUNI_ALPHA, /* U+00b9b8: */ + RTUNI_ALPHA, /* U+00b9b9: */ + RTUNI_ALPHA, /* U+00b9ba: */ + RTUNI_ALPHA, /* U+00b9bb: */ + RTUNI_ALPHA, /* U+00b9bc: */ + RTUNI_ALPHA, /* U+00b9bd: */ + RTUNI_ALPHA, /* U+00b9be: */ + RTUNI_ALPHA, /* U+00b9bf: */ + RTUNI_ALPHA, /* U+00b9c0: */ + RTUNI_ALPHA, /* U+00b9c1: */ + RTUNI_ALPHA, /* U+00b9c2: */ + RTUNI_ALPHA, /* U+00b9c3: */ + RTUNI_ALPHA, /* U+00b9c4: */ + RTUNI_ALPHA, /* U+00b9c5: */ + RTUNI_ALPHA, /* U+00b9c6: */ + RTUNI_ALPHA, /* U+00b9c7: */ + RTUNI_ALPHA, /* U+00b9c8: */ + RTUNI_ALPHA, /* U+00b9c9: */ + RTUNI_ALPHA, /* U+00b9ca: */ + RTUNI_ALPHA, /* U+00b9cb: */ + RTUNI_ALPHA, /* U+00b9cc: */ + RTUNI_ALPHA, /* U+00b9cd: */ + RTUNI_ALPHA, /* U+00b9ce: */ + RTUNI_ALPHA, /* U+00b9cf: */ + RTUNI_ALPHA, /* U+00b9d0: */ + RTUNI_ALPHA, /* U+00b9d1: */ + RTUNI_ALPHA, /* U+00b9d2: */ + RTUNI_ALPHA, /* U+00b9d3: */ + RTUNI_ALPHA, /* U+00b9d4: */ + RTUNI_ALPHA, /* U+00b9d5: */ + RTUNI_ALPHA, /* U+00b9d6: */ + RTUNI_ALPHA, /* U+00b9d7: */ + RTUNI_ALPHA, /* U+00b9d8: */ + RTUNI_ALPHA, /* U+00b9d9: */ + RTUNI_ALPHA, /* U+00b9da: */ + RTUNI_ALPHA, /* U+00b9db: */ + RTUNI_ALPHA, /* U+00b9dc: */ + RTUNI_ALPHA, /* U+00b9dd: */ + RTUNI_ALPHA, /* U+00b9de: */ + RTUNI_ALPHA, /* U+00b9df: */ + RTUNI_ALPHA, /* U+00b9e0: */ + RTUNI_ALPHA, /* U+00b9e1: */ + RTUNI_ALPHA, /* U+00b9e2: */ + RTUNI_ALPHA, /* U+00b9e3: */ + RTUNI_ALPHA, /* U+00b9e4: */ + RTUNI_ALPHA, /* U+00b9e5: */ + RTUNI_ALPHA, /* U+00b9e6: */ + RTUNI_ALPHA, /* U+00b9e7: */ + RTUNI_ALPHA, /* U+00b9e8: */ + RTUNI_ALPHA, /* U+00b9e9: */ + RTUNI_ALPHA, /* U+00b9ea: */ + RTUNI_ALPHA, /* U+00b9eb: */ + RTUNI_ALPHA, /* U+00b9ec: */ + RTUNI_ALPHA, /* U+00b9ed: */ + RTUNI_ALPHA, /* U+00b9ee: */ + RTUNI_ALPHA, /* U+00b9ef: */ + RTUNI_ALPHA, /* U+00b9f0: */ + RTUNI_ALPHA, /* U+00b9f1: */ + RTUNI_ALPHA, /* U+00b9f2: */ + RTUNI_ALPHA, /* U+00b9f3: */ + RTUNI_ALPHA, /* U+00b9f4: */ + RTUNI_ALPHA, /* U+00b9f5: */ + RTUNI_ALPHA, /* U+00b9f6: */ + RTUNI_ALPHA, /* U+00b9f7: */ + RTUNI_ALPHA, /* U+00b9f8: */ + RTUNI_ALPHA, /* U+00b9f9: */ + RTUNI_ALPHA, /* U+00b9fa: */ + RTUNI_ALPHA, /* U+00b9fb: */ + RTUNI_ALPHA, /* U+00b9fc: */ + RTUNI_ALPHA, /* U+00b9fd: */ + RTUNI_ALPHA, /* U+00b9fe: */ + RTUNI_ALPHA, /* U+00b9ff: */ + RTUNI_ALPHA, /* U+00ba00: */ + RTUNI_ALPHA, /* U+00ba01: */ + RTUNI_ALPHA, /* U+00ba02: */ + RTUNI_ALPHA, /* U+00ba03: */ + RTUNI_ALPHA, /* U+00ba04: */ + RTUNI_ALPHA, /* U+00ba05: */ + RTUNI_ALPHA, /* U+00ba06: */ + RTUNI_ALPHA, /* U+00ba07: */ + RTUNI_ALPHA, /* U+00ba08: */ + RTUNI_ALPHA, /* U+00ba09: */ + RTUNI_ALPHA, /* U+00ba0a: */ + RTUNI_ALPHA, /* U+00ba0b: */ + RTUNI_ALPHA, /* U+00ba0c: */ + RTUNI_ALPHA, /* U+00ba0d: */ + RTUNI_ALPHA, /* U+00ba0e: */ + RTUNI_ALPHA, /* U+00ba0f: */ + RTUNI_ALPHA, /* U+00ba10: */ + RTUNI_ALPHA, /* U+00ba11: */ + RTUNI_ALPHA, /* U+00ba12: */ + RTUNI_ALPHA, /* U+00ba13: */ + RTUNI_ALPHA, /* U+00ba14: */ + RTUNI_ALPHA, /* U+00ba15: */ + RTUNI_ALPHA, /* U+00ba16: */ + RTUNI_ALPHA, /* U+00ba17: */ + RTUNI_ALPHA, /* U+00ba18: */ + RTUNI_ALPHA, /* U+00ba19: */ + RTUNI_ALPHA, /* U+00ba1a: */ + RTUNI_ALPHA, /* U+00ba1b: */ + RTUNI_ALPHA, /* U+00ba1c: */ + RTUNI_ALPHA, /* U+00ba1d: */ + RTUNI_ALPHA, /* U+00ba1e: */ + RTUNI_ALPHA, /* U+00ba1f: */ + RTUNI_ALPHA, /* U+00ba20: */ + RTUNI_ALPHA, /* U+00ba21: */ + RTUNI_ALPHA, /* U+00ba22: */ + RTUNI_ALPHA, /* U+00ba23: */ + RTUNI_ALPHA, /* U+00ba24: */ + RTUNI_ALPHA, /* U+00ba25: */ + RTUNI_ALPHA, /* U+00ba26: */ + RTUNI_ALPHA, /* U+00ba27: */ + RTUNI_ALPHA, /* U+00ba28: */ + RTUNI_ALPHA, /* U+00ba29: */ + RTUNI_ALPHA, /* U+00ba2a: */ + RTUNI_ALPHA, /* U+00ba2b: */ + RTUNI_ALPHA, /* U+00ba2c: */ + RTUNI_ALPHA, /* U+00ba2d: */ + RTUNI_ALPHA, /* U+00ba2e: */ + RTUNI_ALPHA, /* U+00ba2f: */ + RTUNI_ALPHA, /* U+00ba30: */ + RTUNI_ALPHA, /* U+00ba31: */ + RTUNI_ALPHA, /* U+00ba32: */ + RTUNI_ALPHA, /* U+00ba33: */ + RTUNI_ALPHA, /* U+00ba34: */ + RTUNI_ALPHA, /* U+00ba35: */ + RTUNI_ALPHA, /* U+00ba36: */ + RTUNI_ALPHA, /* U+00ba37: */ + RTUNI_ALPHA, /* U+00ba38: */ + RTUNI_ALPHA, /* U+00ba39: */ + RTUNI_ALPHA, /* U+00ba3a: */ + RTUNI_ALPHA, /* U+00ba3b: */ + RTUNI_ALPHA, /* U+00ba3c: */ + RTUNI_ALPHA, /* U+00ba3d: */ + RTUNI_ALPHA, /* U+00ba3e: */ + RTUNI_ALPHA, /* U+00ba3f: */ + RTUNI_ALPHA, /* U+00ba40: */ + RTUNI_ALPHA, /* U+00ba41: */ + RTUNI_ALPHA, /* U+00ba42: */ + RTUNI_ALPHA, /* U+00ba43: */ + RTUNI_ALPHA, /* U+00ba44: */ + RTUNI_ALPHA, /* U+00ba45: */ + RTUNI_ALPHA, /* U+00ba46: */ + RTUNI_ALPHA, /* U+00ba47: */ + RTUNI_ALPHA, /* U+00ba48: */ + RTUNI_ALPHA, /* U+00ba49: */ + RTUNI_ALPHA, /* U+00ba4a: */ + RTUNI_ALPHA, /* U+00ba4b: */ + RTUNI_ALPHA, /* U+00ba4c: */ + RTUNI_ALPHA, /* U+00ba4d: */ + RTUNI_ALPHA, /* U+00ba4e: */ + RTUNI_ALPHA, /* U+00ba4f: */ + RTUNI_ALPHA, /* U+00ba50: */ + RTUNI_ALPHA, /* U+00ba51: */ + RTUNI_ALPHA, /* U+00ba52: */ + RTUNI_ALPHA, /* U+00ba53: */ + RTUNI_ALPHA, /* U+00ba54: */ + RTUNI_ALPHA, /* U+00ba55: */ + RTUNI_ALPHA, /* U+00ba56: */ + RTUNI_ALPHA, /* U+00ba57: */ + RTUNI_ALPHA, /* U+00ba58: */ + RTUNI_ALPHA, /* U+00ba59: */ + RTUNI_ALPHA, /* U+00ba5a: */ + RTUNI_ALPHA, /* U+00ba5b: */ + RTUNI_ALPHA, /* U+00ba5c: */ + RTUNI_ALPHA, /* U+00ba5d: */ + RTUNI_ALPHA, /* U+00ba5e: */ + RTUNI_ALPHA, /* U+00ba5f: */ + RTUNI_ALPHA, /* U+00ba60: */ + RTUNI_ALPHA, /* U+00ba61: */ + RTUNI_ALPHA, /* U+00ba62: */ + RTUNI_ALPHA, /* U+00ba63: */ + RTUNI_ALPHA, /* U+00ba64: */ + RTUNI_ALPHA, /* U+00ba65: */ + RTUNI_ALPHA, /* U+00ba66: */ + RTUNI_ALPHA, /* U+00ba67: */ + RTUNI_ALPHA, /* U+00ba68: */ + RTUNI_ALPHA, /* U+00ba69: */ + RTUNI_ALPHA, /* U+00ba6a: */ + RTUNI_ALPHA, /* U+00ba6b: */ + RTUNI_ALPHA, /* U+00ba6c: */ + RTUNI_ALPHA, /* U+00ba6d: */ + RTUNI_ALPHA, /* U+00ba6e: */ + RTUNI_ALPHA, /* U+00ba6f: */ + RTUNI_ALPHA, /* U+00ba70: */ + RTUNI_ALPHA, /* U+00ba71: */ + RTUNI_ALPHA, /* U+00ba72: */ + RTUNI_ALPHA, /* U+00ba73: */ + RTUNI_ALPHA, /* U+00ba74: */ + RTUNI_ALPHA, /* U+00ba75: */ + RTUNI_ALPHA, /* U+00ba76: */ + RTUNI_ALPHA, /* U+00ba77: */ + RTUNI_ALPHA, /* U+00ba78: */ + RTUNI_ALPHA, /* U+00ba79: */ + RTUNI_ALPHA, /* U+00ba7a: */ + RTUNI_ALPHA, /* U+00ba7b: */ + RTUNI_ALPHA, /* U+00ba7c: */ + RTUNI_ALPHA, /* U+00ba7d: */ + RTUNI_ALPHA, /* U+00ba7e: */ + RTUNI_ALPHA, /* U+00ba7f: */ + RTUNI_ALPHA, /* U+00ba80: */ + RTUNI_ALPHA, /* U+00ba81: */ + RTUNI_ALPHA, /* U+00ba82: */ + RTUNI_ALPHA, /* U+00ba83: */ + RTUNI_ALPHA, /* U+00ba84: */ + RTUNI_ALPHA, /* U+00ba85: */ + RTUNI_ALPHA, /* U+00ba86: */ + RTUNI_ALPHA, /* U+00ba87: */ + RTUNI_ALPHA, /* U+00ba88: */ + RTUNI_ALPHA, /* U+00ba89: */ + RTUNI_ALPHA, /* U+00ba8a: */ + RTUNI_ALPHA, /* U+00ba8b: */ + RTUNI_ALPHA, /* U+00ba8c: */ + RTUNI_ALPHA, /* U+00ba8d: */ + RTUNI_ALPHA, /* U+00ba8e: */ + RTUNI_ALPHA, /* U+00ba8f: */ + RTUNI_ALPHA, /* U+00ba90: */ + RTUNI_ALPHA, /* U+00ba91: */ + RTUNI_ALPHA, /* U+00ba92: */ + RTUNI_ALPHA, /* U+00ba93: */ + RTUNI_ALPHA, /* U+00ba94: */ + RTUNI_ALPHA, /* U+00ba95: */ + RTUNI_ALPHA, /* U+00ba96: */ + RTUNI_ALPHA, /* U+00ba97: */ + RTUNI_ALPHA, /* U+00ba98: */ + RTUNI_ALPHA, /* U+00ba99: */ + RTUNI_ALPHA, /* U+00ba9a: */ + RTUNI_ALPHA, /* U+00ba9b: */ + RTUNI_ALPHA, /* U+00ba9c: */ + RTUNI_ALPHA, /* U+00ba9d: */ + RTUNI_ALPHA, /* U+00ba9e: */ + RTUNI_ALPHA, /* U+00ba9f: */ + RTUNI_ALPHA, /* U+00baa0: */ + RTUNI_ALPHA, /* U+00baa1: */ + RTUNI_ALPHA, /* U+00baa2: */ + RTUNI_ALPHA, /* U+00baa3: */ + RTUNI_ALPHA, /* U+00baa4: */ + RTUNI_ALPHA, /* U+00baa5: */ + RTUNI_ALPHA, /* U+00baa6: */ + RTUNI_ALPHA, /* U+00baa7: */ + RTUNI_ALPHA, /* U+00baa8: */ + RTUNI_ALPHA, /* U+00baa9: */ + RTUNI_ALPHA, /* U+00baaa: */ + RTUNI_ALPHA, /* U+00baab: */ + RTUNI_ALPHA, /* U+00baac: */ + RTUNI_ALPHA, /* U+00baad: */ + RTUNI_ALPHA, /* U+00baae: */ + RTUNI_ALPHA, /* U+00baaf: */ + RTUNI_ALPHA, /* U+00bab0: */ + RTUNI_ALPHA, /* U+00bab1: */ + RTUNI_ALPHA, /* U+00bab2: */ + RTUNI_ALPHA, /* U+00bab3: */ + RTUNI_ALPHA, /* U+00bab4: */ + RTUNI_ALPHA, /* U+00bab5: */ + RTUNI_ALPHA, /* U+00bab6: */ + RTUNI_ALPHA, /* U+00bab7: */ + RTUNI_ALPHA, /* U+00bab8: */ + RTUNI_ALPHA, /* U+00bab9: */ + RTUNI_ALPHA, /* U+00baba: */ + RTUNI_ALPHA, /* U+00babb: */ + RTUNI_ALPHA, /* U+00babc: */ + RTUNI_ALPHA, /* U+00babd: */ + RTUNI_ALPHA, /* U+00babe: */ + RTUNI_ALPHA, /* U+00babf: */ + RTUNI_ALPHA, /* U+00bac0: */ + RTUNI_ALPHA, /* U+00bac1: */ + RTUNI_ALPHA, /* U+00bac2: */ + RTUNI_ALPHA, /* U+00bac3: */ + RTUNI_ALPHA, /* U+00bac4: */ + RTUNI_ALPHA, /* U+00bac5: */ + RTUNI_ALPHA, /* U+00bac6: */ + RTUNI_ALPHA, /* U+00bac7: */ + RTUNI_ALPHA, /* U+00bac8: */ + RTUNI_ALPHA, /* U+00bac9: */ + RTUNI_ALPHA, /* U+00baca: */ + RTUNI_ALPHA, /* U+00bacb: */ + RTUNI_ALPHA, /* U+00bacc: */ + RTUNI_ALPHA, /* U+00bacd: */ + RTUNI_ALPHA, /* U+00bace: */ + RTUNI_ALPHA, /* U+00bacf: */ + RTUNI_ALPHA, /* U+00bad0: */ + RTUNI_ALPHA, /* U+00bad1: */ + RTUNI_ALPHA, /* U+00bad2: */ + RTUNI_ALPHA, /* U+00bad3: */ + RTUNI_ALPHA, /* U+00bad4: */ + RTUNI_ALPHA, /* U+00bad5: */ + RTUNI_ALPHA, /* U+00bad6: */ + RTUNI_ALPHA, /* U+00bad7: */ + RTUNI_ALPHA, /* U+00bad8: */ + RTUNI_ALPHA, /* U+00bad9: */ + RTUNI_ALPHA, /* U+00bada: */ + RTUNI_ALPHA, /* U+00badb: */ + RTUNI_ALPHA, /* U+00badc: */ + RTUNI_ALPHA, /* U+00badd: */ + RTUNI_ALPHA, /* U+00bade: */ + RTUNI_ALPHA, /* U+00badf: */ + RTUNI_ALPHA, /* U+00bae0: */ + RTUNI_ALPHA, /* U+00bae1: */ + RTUNI_ALPHA, /* U+00bae2: */ + RTUNI_ALPHA, /* U+00bae3: */ + RTUNI_ALPHA, /* U+00bae4: */ + RTUNI_ALPHA, /* U+00bae5: */ + RTUNI_ALPHA, /* U+00bae6: */ + RTUNI_ALPHA, /* U+00bae7: */ + RTUNI_ALPHA, /* U+00bae8: */ + RTUNI_ALPHA, /* U+00bae9: */ + RTUNI_ALPHA, /* U+00baea: */ + RTUNI_ALPHA, /* U+00baeb: */ + RTUNI_ALPHA, /* U+00baec: */ + RTUNI_ALPHA, /* U+00baed: */ + RTUNI_ALPHA, /* U+00baee: */ + RTUNI_ALPHA, /* U+00baef: */ + RTUNI_ALPHA, /* U+00baf0: */ + RTUNI_ALPHA, /* U+00baf1: */ + RTUNI_ALPHA, /* U+00baf2: */ + RTUNI_ALPHA, /* U+00baf3: */ + RTUNI_ALPHA, /* U+00baf4: */ + RTUNI_ALPHA, /* U+00baf5: */ + RTUNI_ALPHA, /* U+00baf6: */ + RTUNI_ALPHA, /* U+00baf7: */ + RTUNI_ALPHA, /* U+00baf8: */ + RTUNI_ALPHA, /* U+00baf9: */ + RTUNI_ALPHA, /* U+00bafa: */ + RTUNI_ALPHA, /* U+00bafb: */ + RTUNI_ALPHA, /* U+00bafc: */ + RTUNI_ALPHA, /* U+00bafd: */ + RTUNI_ALPHA, /* U+00bafe: */ + RTUNI_ALPHA, /* U+00baff: */ + RTUNI_ALPHA, /* U+00bb00: */ + RTUNI_ALPHA, /* U+00bb01: */ + RTUNI_ALPHA, /* U+00bb02: */ + RTUNI_ALPHA, /* U+00bb03: */ + RTUNI_ALPHA, /* U+00bb04: */ + RTUNI_ALPHA, /* U+00bb05: */ + RTUNI_ALPHA, /* U+00bb06: */ + RTUNI_ALPHA, /* U+00bb07: */ + RTUNI_ALPHA, /* U+00bb08: */ + RTUNI_ALPHA, /* U+00bb09: */ + RTUNI_ALPHA, /* U+00bb0a: */ + RTUNI_ALPHA, /* U+00bb0b: */ + RTUNI_ALPHA, /* U+00bb0c: */ + RTUNI_ALPHA, /* U+00bb0d: */ + RTUNI_ALPHA, /* U+00bb0e: */ + RTUNI_ALPHA, /* U+00bb0f: */ + RTUNI_ALPHA, /* U+00bb10: */ + RTUNI_ALPHA, /* U+00bb11: */ + RTUNI_ALPHA, /* U+00bb12: */ + RTUNI_ALPHA, /* U+00bb13: */ + RTUNI_ALPHA, /* U+00bb14: */ + RTUNI_ALPHA, /* U+00bb15: */ + RTUNI_ALPHA, /* U+00bb16: */ + RTUNI_ALPHA, /* U+00bb17: */ + RTUNI_ALPHA, /* U+00bb18: */ + RTUNI_ALPHA, /* U+00bb19: */ + RTUNI_ALPHA, /* U+00bb1a: */ + RTUNI_ALPHA, /* U+00bb1b: */ + RTUNI_ALPHA, /* U+00bb1c: */ + RTUNI_ALPHA, /* U+00bb1d: */ + RTUNI_ALPHA, /* U+00bb1e: */ + RTUNI_ALPHA, /* U+00bb1f: */ + RTUNI_ALPHA, /* U+00bb20: */ + RTUNI_ALPHA, /* U+00bb21: */ + RTUNI_ALPHA, /* U+00bb22: */ + RTUNI_ALPHA, /* U+00bb23: */ + RTUNI_ALPHA, /* U+00bb24: */ + RTUNI_ALPHA, /* U+00bb25: */ + RTUNI_ALPHA, /* U+00bb26: */ + RTUNI_ALPHA, /* U+00bb27: */ + RTUNI_ALPHA, /* U+00bb28: */ + RTUNI_ALPHA, /* U+00bb29: */ + RTUNI_ALPHA, /* U+00bb2a: */ + RTUNI_ALPHA, /* U+00bb2b: */ + RTUNI_ALPHA, /* U+00bb2c: */ + RTUNI_ALPHA, /* U+00bb2d: */ + RTUNI_ALPHA, /* U+00bb2e: */ + RTUNI_ALPHA, /* U+00bb2f: */ + RTUNI_ALPHA, /* U+00bb30: */ + RTUNI_ALPHA, /* U+00bb31: */ + RTUNI_ALPHA, /* U+00bb32: */ + RTUNI_ALPHA, /* U+00bb33: */ + RTUNI_ALPHA, /* U+00bb34: */ + RTUNI_ALPHA, /* U+00bb35: */ + RTUNI_ALPHA, /* U+00bb36: */ + RTUNI_ALPHA, /* U+00bb37: */ + RTUNI_ALPHA, /* U+00bb38: */ + RTUNI_ALPHA, /* U+00bb39: */ + RTUNI_ALPHA, /* U+00bb3a: */ + RTUNI_ALPHA, /* U+00bb3b: */ + RTUNI_ALPHA, /* U+00bb3c: */ + RTUNI_ALPHA, /* U+00bb3d: */ + RTUNI_ALPHA, /* U+00bb3e: */ + RTUNI_ALPHA, /* U+00bb3f: */ + RTUNI_ALPHA, /* U+00bb40: */ + RTUNI_ALPHA, /* U+00bb41: */ + RTUNI_ALPHA, /* U+00bb42: */ + RTUNI_ALPHA, /* U+00bb43: */ + RTUNI_ALPHA, /* U+00bb44: */ + RTUNI_ALPHA, /* U+00bb45: */ + RTUNI_ALPHA, /* U+00bb46: */ + RTUNI_ALPHA, /* U+00bb47: */ + RTUNI_ALPHA, /* U+00bb48: */ + RTUNI_ALPHA, /* U+00bb49: */ + RTUNI_ALPHA, /* U+00bb4a: */ + RTUNI_ALPHA, /* U+00bb4b: */ + RTUNI_ALPHA, /* U+00bb4c: */ + RTUNI_ALPHA, /* U+00bb4d: */ + RTUNI_ALPHA, /* U+00bb4e: */ + RTUNI_ALPHA, /* U+00bb4f: */ + RTUNI_ALPHA, /* U+00bb50: */ + RTUNI_ALPHA, /* U+00bb51: */ + RTUNI_ALPHA, /* U+00bb52: */ + RTUNI_ALPHA, /* U+00bb53: */ + RTUNI_ALPHA, /* U+00bb54: */ + RTUNI_ALPHA, /* U+00bb55: */ + RTUNI_ALPHA, /* U+00bb56: */ + RTUNI_ALPHA, /* U+00bb57: */ + RTUNI_ALPHA, /* U+00bb58: */ + RTUNI_ALPHA, /* U+00bb59: */ + RTUNI_ALPHA, /* U+00bb5a: */ + RTUNI_ALPHA, /* U+00bb5b: */ + RTUNI_ALPHA, /* U+00bb5c: */ + RTUNI_ALPHA, /* U+00bb5d: */ + RTUNI_ALPHA, /* U+00bb5e: */ + RTUNI_ALPHA, /* U+00bb5f: */ + RTUNI_ALPHA, /* U+00bb60: */ + RTUNI_ALPHA, /* U+00bb61: */ + RTUNI_ALPHA, /* U+00bb62: */ + RTUNI_ALPHA, /* U+00bb63: */ + RTUNI_ALPHA, /* U+00bb64: */ + RTUNI_ALPHA, /* U+00bb65: */ + RTUNI_ALPHA, /* U+00bb66: */ + RTUNI_ALPHA, /* U+00bb67: */ + RTUNI_ALPHA, /* U+00bb68: */ + RTUNI_ALPHA, /* U+00bb69: */ + RTUNI_ALPHA, /* U+00bb6a: */ + RTUNI_ALPHA, /* U+00bb6b: */ + RTUNI_ALPHA, /* U+00bb6c: */ + RTUNI_ALPHA, /* U+00bb6d: */ + RTUNI_ALPHA, /* U+00bb6e: */ + RTUNI_ALPHA, /* U+00bb6f: */ + RTUNI_ALPHA, /* U+00bb70: */ + RTUNI_ALPHA, /* U+00bb71: */ + RTUNI_ALPHA, /* U+00bb72: */ + RTUNI_ALPHA, /* U+00bb73: */ + RTUNI_ALPHA, /* U+00bb74: */ + RTUNI_ALPHA, /* U+00bb75: */ + RTUNI_ALPHA, /* U+00bb76: */ + RTUNI_ALPHA, /* U+00bb77: */ + RTUNI_ALPHA, /* U+00bb78: */ + RTUNI_ALPHA, /* U+00bb79: */ + RTUNI_ALPHA, /* U+00bb7a: */ + RTUNI_ALPHA, /* U+00bb7b: */ + RTUNI_ALPHA, /* U+00bb7c: */ + RTUNI_ALPHA, /* U+00bb7d: */ + RTUNI_ALPHA, /* U+00bb7e: */ + RTUNI_ALPHA, /* U+00bb7f: */ + RTUNI_ALPHA, /* U+00bb80: */ + RTUNI_ALPHA, /* U+00bb81: */ + RTUNI_ALPHA, /* U+00bb82: */ + RTUNI_ALPHA, /* U+00bb83: */ + RTUNI_ALPHA, /* U+00bb84: */ + RTUNI_ALPHA, /* U+00bb85: */ + RTUNI_ALPHA, /* U+00bb86: */ + RTUNI_ALPHA, /* U+00bb87: */ + RTUNI_ALPHA, /* U+00bb88: */ + RTUNI_ALPHA, /* U+00bb89: */ + RTUNI_ALPHA, /* U+00bb8a: */ + RTUNI_ALPHA, /* U+00bb8b: */ + RTUNI_ALPHA, /* U+00bb8c: */ + RTUNI_ALPHA, /* U+00bb8d: */ + RTUNI_ALPHA, /* U+00bb8e: */ + RTUNI_ALPHA, /* U+00bb8f: */ + RTUNI_ALPHA, /* U+00bb90: */ + RTUNI_ALPHA, /* U+00bb91: */ + RTUNI_ALPHA, /* U+00bb92: */ + RTUNI_ALPHA, /* U+00bb93: */ + RTUNI_ALPHA, /* U+00bb94: */ + RTUNI_ALPHA, /* U+00bb95: */ + RTUNI_ALPHA, /* U+00bb96: */ + RTUNI_ALPHA, /* U+00bb97: */ + RTUNI_ALPHA, /* U+00bb98: */ + RTUNI_ALPHA, /* U+00bb99: */ + RTUNI_ALPHA, /* U+00bb9a: */ + RTUNI_ALPHA, /* U+00bb9b: */ + RTUNI_ALPHA, /* U+00bb9c: */ + RTUNI_ALPHA, /* U+00bb9d: */ + RTUNI_ALPHA, /* U+00bb9e: */ + RTUNI_ALPHA, /* U+00bb9f: */ + RTUNI_ALPHA, /* U+00bba0: */ + RTUNI_ALPHA, /* U+00bba1: */ + RTUNI_ALPHA, /* U+00bba2: */ + RTUNI_ALPHA, /* U+00bba3: */ + RTUNI_ALPHA, /* U+00bba4: */ + RTUNI_ALPHA, /* U+00bba5: */ + RTUNI_ALPHA, /* U+00bba6: */ + RTUNI_ALPHA, /* U+00bba7: */ + RTUNI_ALPHA, /* U+00bba8: */ + RTUNI_ALPHA, /* U+00bba9: */ + RTUNI_ALPHA, /* U+00bbaa: */ + RTUNI_ALPHA, /* U+00bbab: */ + RTUNI_ALPHA, /* U+00bbac: */ + RTUNI_ALPHA, /* U+00bbad: */ + RTUNI_ALPHA, /* U+00bbae: */ + RTUNI_ALPHA, /* U+00bbaf: */ + RTUNI_ALPHA, /* U+00bbb0: */ + RTUNI_ALPHA, /* U+00bbb1: */ + RTUNI_ALPHA, /* U+00bbb2: */ + RTUNI_ALPHA, /* U+00bbb3: */ + RTUNI_ALPHA, /* U+00bbb4: */ + RTUNI_ALPHA, /* U+00bbb5: */ + RTUNI_ALPHA, /* U+00bbb6: */ + RTUNI_ALPHA, /* U+00bbb7: */ + RTUNI_ALPHA, /* U+00bbb8: */ + RTUNI_ALPHA, /* U+00bbb9: */ + RTUNI_ALPHA, /* U+00bbba: */ + RTUNI_ALPHA, /* U+00bbbb: */ + RTUNI_ALPHA, /* U+00bbbc: */ + RTUNI_ALPHA, /* U+00bbbd: */ + RTUNI_ALPHA, /* U+00bbbe: */ + RTUNI_ALPHA, /* U+00bbbf: */ + RTUNI_ALPHA, /* U+00bbc0: */ + RTUNI_ALPHA, /* U+00bbc1: */ + RTUNI_ALPHA, /* U+00bbc2: */ + RTUNI_ALPHA, /* U+00bbc3: */ + RTUNI_ALPHA, /* U+00bbc4: */ + RTUNI_ALPHA, /* U+00bbc5: */ + RTUNI_ALPHA, /* U+00bbc6: */ + RTUNI_ALPHA, /* U+00bbc7: */ + RTUNI_ALPHA, /* U+00bbc8: */ + RTUNI_ALPHA, /* U+00bbc9: */ + RTUNI_ALPHA, /* U+00bbca: */ + RTUNI_ALPHA, /* U+00bbcb: */ + RTUNI_ALPHA, /* U+00bbcc: */ + RTUNI_ALPHA, /* U+00bbcd: */ + RTUNI_ALPHA, /* U+00bbce: */ + RTUNI_ALPHA, /* U+00bbcf: */ + RTUNI_ALPHA, /* U+00bbd0: */ + RTUNI_ALPHA, /* U+00bbd1: */ + RTUNI_ALPHA, /* U+00bbd2: */ + RTUNI_ALPHA, /* U+00bbd3: */ + RTUNI_ALPHA, /* U+00bbd4: */ + RTUNI_ALPHA, /* U+00bbd5: */ + RTUNI_ALPHA, /* U+00bbd6: */ + RTUNI_ALPHA, /* U+00bbd7: */ + RTUNI_ALPHA, /* U+00bbd8: */ + RTUNI_ALPHA, /* U+00bbd9: */ + RTUNI_ALPHA, /* U+00bbda: */ + RTUNI_ALPHA, /* U+00bbdb: */ + RTUNI_ALPHA, /* U+00bbdc: */ + RTUNI_ALPHA, /* U+00bbdd: */ + RTUNI_ALPHA, /* U+00bbde: */ + RTUNI_ALPHA, /* U+00bbdf: */ + RTUNI_ALPHA, /* U+00bbe0: */ + RTUNI_ALPHA, /* U+00bbe1: */ + RTUNI_ALPHA, /* U+00bbe2: */ + RTUNI_ALPHA, /* U+00bbe3: */ + RTUNI_ALPHA, /* U+00bbe4: */ + RTUNI_ALPHA, /* U+00bbe5: */ + RTUNI_ALPHA, /* U+00bbe6: */ + RTUNI_ALPHA, /* U+00bbe7: */ + RTUNI_ALPHA, /* U+00bbe8: */ + RTUNI_ALPHA, /* U+00bbe9: */ + RTUNI_ALPHA, /* U+00bbea: */ + RTUNI_ALPHA, /* U+00bbeb: */ + RTUNI_ALPHA, /* U+00bbec: */ + RTUNI_ALPHA, /* U+00bbed: */ + RTUNI_ALPHA, /* U+00bbee: */ + RTUNI_ALPHA, /* U+00bbef: */ + RTUNI_ALPHA, /* U+00bbf0: */ + RTUNI_ALPHA, /* U+00bbf1: */ + RTUNI_ALPHA, /* U+00bbf2: */ + RTUNI_ALPHA, /* U+00bbf3: */ + RTUNI_ALPHA, /* U+00bbf4: */ + RTUNI_ALPHA, /* U+00bbf5: */ + RTUNI_ALPHA, /* U+00bbf6: */ + RTUNI_ALPHA, /* U+00bbf7: */ + RTUNI_ALPHA, /* U+00bbf8: */ + RTUNI_ALPHA, /* U+00bbf9: */ + RTUNI_ALPHA, /* U+00bbfa: */ + RTUNI_ALPHA, /* U+00bbfb: */ + RTUNI_ALPHA, /* U+00bbfc: */ + RTUNI_ALPHA, /* U+00bbfd: */ + RTUNI_ALPHA, /* U+00bbfe: */ + RTUNI_ALPHA, /* U+00bbff: */ + RTUNI_ALPHA, /* U+00bc00: */ + RTUNI_ALPHA, /* U+00bc01: */ + RTUNI_ALPHA, /* U+00bc02: */ + RTUNI_ALPHA, /* U+00bc03: */ + RTUNI_ALPHA, /* U+00bc04: */ + RTUNI_ALPHA, /* U+00bc05: */ + RTUNI_ALPHA, /* U+00bc06: */ + RTUNI_ALPHA, /* U+00bc07: */ + RTUNI_ALPHA, /* U+00bc08: */ + RTUNI_ALPHA, /* U+00bc09: */ + RTUNI_ALPHA, /* U+00bc0a: */ + RTUNI_ALPHA, /* U+00bc0b: */ + RTUNI_ALPHA, /* U+00bc0c: */ + RTUNI_ALPHA, /* U+00bc0d: */ + RTUNI_ALPHA, /* U+00bc0e: */ + RTUNI_ALPHA, /* U+00bc0f: */ + RTUNI_ALPHA, /* U+00bc10: */ + RTUNI_ALPHA, /* U+00bc11: */ + RTUNI_ALPHA, /* U+00bc12: */ + RTUNI_ALPHA, /* U+00bc13: */ + RTUNI_ALPHA, /* U+00bc14: */ + RTUNI_ALPHA, /* U+00bc15: */ + RTUNI_ALPHA, /* U+00bc16: */ + RTUNI_ALPHA, /* U+00bc17: */ + RTUNI_ALPHA, /* U+00bc18: */ + RTUNI_ALPHA, /* U+00bc19: */ + RTUNI_ALPHA, /* U+00bc1a: */ + RTUNI_ALPHA, /* U+00bc1b: */ + RTUNI_ALPHA, /* U+00bc1c: */ + RTUNI_ALPHA, /* U+00bc1d: */ + RTUNI_ALPHA, /* U+00bc1e: */ + RTUNI_ALPHA, /* U+00bc1f: */ + RTUNI_ALPHA, /* U+00bc20: */ + RTUNI_ALPHA, /* U+00bc21: */ + RTUNI_ALPHA, /* U+00bc22: */ + RTUNI_ALPHA, /* U+00bc23: */ + RTUNI_ALPHA, /* U+00bc24: */ + RTUNI_ALPHA, /* U+00bc25: */ + RTUNI_ALPHA, /* U+00bc26: */ + RTUNI_ALPHA, /* U+00bc27: */ + RTUNI_ALPHA, /* U+00bc28: */ + RTUNI_ALPHA, /* U+00bc29: */ + RTUNI_ALPHA, /* U+00bc2a: */ + RTUNI_ALPHA, /* U+00bc2b: */ + RTUNI_ALPHA, /* U+00bc2c: */ + RTUNI_ALPHA, /* U+00bc2d: */ + RTUNI_ALPHA, /* U+00bc2e: */ + RTUNI_ALPHA, /* U+00bc2f: */ + RTUNI_ALPHA, /* U+00bc30: */ + RTUNI_ALPHA, /* U+00bc31: */ + RTUNI_ALPHA, /* U+00bc32: */ + RTUNI_ALPHA, /* U+00bc33: */ + RTUNI_ALPHA, /* U+00bc34: */ + RTUNI_ALPHA, /* U+00bc35: */ + RTUNI_ALPHA, /* U+00bc36: */ + RTUNI_ALPHA, /* U+00bc37: */ + RTUNI_ALPHA, /* U+00bc38: */ + RTUNI_ALPHA, /* U+00bc39: */ + RTUNI_ALPHA, /* U+00bc3a: */ + RTUNI_ALPHA, /* U+00bc3b: */ + RTUNI_ALPHA, /* U+00bc3c: */ + RTUNI_ALPHA, /* U+00bc3d: */ + RTUNI_ALPHA, /* U+00bc3e: */ + RTUNI_ALPHA, /* U+00bc3f: */ + RTUNI_ALPHA, /* U+00bc40: */ + RTUNI_ALPHA, /* U+00bc41: */ + RTUNI_ALPHA, /* U+00bc42: */ + RTUNI_ALPHA, /* U+00bc43: */ + RTUNI_ALPHA, /* U+00bc44: */ + RTUNI_ALPHA, /* U+00bc45: */ + RTUNI_ALPHA, /* U+00bc46: */ + RTUNI_ALPHA, /* U+00bc47: */ + RTUNI_ALPHA, /* U+00bc48: */ + RTUNI_ALPHA, /* U+00bc49: */ + RTUNI_ALPHA, /* U+00bc4a: */ + RTUNI_ALPHA, /* U+00bc4b: */ + RTUNI_ALPHA, /* U+00bc4c: */ + RTUNI_ALPHA, /* U+00bc4d: */ + RTUNI_ALPHA, /* U+00bc4e: */ + RTUNI_ALPHA, /* U+00bc4f: */ + RTUNI_ALPHA, /* U+00bc50: */ + RTUNI_ALPHA, /* U+00bc51: */ + RTUNI_ALPHA, /* U+00bc52: */ + RTUNI_ALPHA, /* U+00bc53: */ + RTUNI_ALPHA, /* U+00bc54: */ + RTUNI_ALPHA, /* U+00bc55: */ + RTUNI_ALPHA, /* U+00bc56: */ + RTUNI_ALPHA, /* U+00bc57: */ + RTUNI_ALPHA, /* U+00bc58: */ + RTUNI_ALPHA, /* U+00bc59: */ + RTUNI_ALPHA, /* U+00bc5a: */ + RTUNI_ALPHA, /* U+00bc5b: */ + RTUNI_ALPHA, /* U+00bc5c: */ + RTUNI_ALPHA, /* U+00bc5d: */ + RTUNI_ALPHA, /* U+00bc5e: */ + RTUNI_ALPHA, /* U+00bc5f: */ + RTUNI_ALPHA, /* U+00bc60: */ + RTUNI_ALPHA, /* U+00bc61: */ + RTUNI_ALPHA, /* U+00bc62: */ + RTUNI_ALPHA, /* U+00bc63: */ + RTUNI_ALPHA, /* U+00bc64: */ + RTUNI_ALPHA, /* U+00bc65: */ + RTUNI_ALPHA, /* U+00bc66: */ + RTUNI_ALPHA, /* U+00bc67: */ + RTUNI_ALPHA, /* U+00bc68: */ + RTUNI_ALPHA, /* U+00bc69: */ + RTUNI_ALPHA, /* U+00bc6a: */ + RTUNI_ALPHA, /* U+00bc6b: */ + RTUNI_ALPHA, /* U+00bc6c: */ + RTUNI_ALPHA, /* U+00bc6d: */ + RTUNI_ALPHA, /* U+00bc6e: */ + RTUNI_ALPHA, /* U+00bc6f: */ + RTUNI_ALPHA, /* U+00bc70: */ + RTUNI_ALPHA, /* U+00bc71: */ + RTUNI_ALPHA, /* U+00bc72: */ + RTUNI_ALPHA, /* U+00bc73: */ + RTUNI_ALPHA, /* U+00bc74: */ + RTUNI_ALPHA, /* U+00bc75: */ + RTUNI_ALPHA, /* U+00bc76: */ + RTUNI_ALPHA, /* U+00bc77: */ + RTUNI_ALPHA, /* U+00bc78: */ + RTUNI_ALPHA, /* U+00bc79: */ + RTUNI_ALPHA, /* U+00bc7a: */ + RTUNI_ALPHA, /* U+00bc7b: */ + RTUNI_ALPHA, /* U+00bc7c: */ + RTUNI_ALPHA, /* U+00bc7d: */ + RTUNI_ALPHA, /* U+00bc7e: */ + RTUNI_ALPHA, /* U+00bc7f: */ + RTUNI_ALPHA, /* U+00bc80: */ + RTUNI_ALPHA, /* U+00bc81: */ + RTUNI_ALPHA, /* U+00bc82: */ + RTUNI_ALPHA, /* U+00bc83: */ + RTUNI_ALPHA, /* U+00bc84: */ + RTUNI_ALPHA, /* U+00bc85: */ + RTUNI_ALPHA, /* U+00bc86: */ + RTUNI_ALPHA, /* U+00bc87: */ + RTUNI_ALPHA, /* U+00bc88: */ + RTUNI_ALPHA, /* U+00bc89: */ + RTUNI_ALPHA, /* U+00bc8a: */ + RTUNI_ALPHA, /* U+00bc8b: */ + RTUNI_ALPHA, /* U+00bc8c: */ + RTUNI_ALPHA, /* U+00bc8d: */ + RTUNI_ALPHA, /* U+00bc8e: */ + RTUNI_ALPHA, /* U+00bc8f: */ + RTUNI_ALPHA, /* U+00bc90: */ + RTUNI_ALPHA, /* U+00bc91: */ + RTUNI_ALPHA, /* U+00bc92: */ + RTUNI_ALPHA, /* U+00bc93: */ + RTUNI_ALPHA, /* U+00bc94: */ + RTUNI_ALPHA, /* U+00bc95: */ + RTUNI_ALPHA, /* U+00bc96: */ + RTUNI_ALPHA, /* U+00bc97: */ + RTUNI_ALPHA, /* U+00bc98: */ + RTUNI_ALPHA, /* U+00bc99: */ + RTUNI_ALPHA, /* U+00bc9a: */ + RTUNI_ALPHA, /* U+00bc9b: */ + RTUNI_ALPHA, /* U+00bc9c: */ + RTUNI_ALPHA, /* U+00bc9d: */ + RTUNI_ALPHA, /* U+00bc9e: */ + RTUNI_ALPHA, /* U+00bc9f: */ + RTUNI_ALPHA, /* U+00bca0: */ + RTUNI_ALPHA, /* U+00bca1: */ + RTUNI_ALPHA, /* U+00bca2: */ + RTUNI_ALPHA, /* U+00bca3: */ + RTUNI_ALPHA, /* U+00bca4: */ + RTUNI_ALPHA, /* U+00bca5: */ + RTUNI_ALPHA, /* U+00bca6: */ + RTUNI_ALPHA, /* U+00bca7: */ + RTUNI_ALPHA, /* U+00bca8: */ + RTUNI_ALPHA, /* U+00bca9: */ + RTUNI_ALPHA, /* U+00bcaa: */ + RTUNI_ALPHA, /* U+00bcab: */ + RTUNI_ALPHA, /* U+00bcac: */ + RTUNI_ALPHA, /* U+00bcad: */ + RTUNI_ALPHA, /* U+00bcae: */ + RTUNI_ALPHA, /* U+00bcaf: */ + RTUNI_ALPHA, /* U+00bcb0: */ + RTUNI_ALPHA, /* U+00bcb1: */ + RTUNI_ALPHA, /* U+00bcb2: */ + RTUNI_ALPHA, /* U+00bcb3: */ + RTUNI_ALPHA, /* U+00bcb4: */ + RTUNI_ALPHA, /* U+00bcb5: */ + RTUNI_ALPHA, /* U+00bcb6: */ + RTUNI_ALPHA, /* U+00bcb7: */ + RTUNI_ALPHA, /* U+00bcb8: */ + RTUNI_ALPHA, /* U+00bcb9: */ + RTUNI_ALPHA, /* U+00bcba: */ + RTUNI_ALPHA, /* U+00bcbb: */ + RTUNI_ALPHA, /* U+00bcbc: */ + RTUNI_ALPHA, /* U+00bcbd: */ + RTUNI_ALPHA, /* U+00bcbe: */ + RTUNI_ALPHA, /* U+00bcbf: */ + RTUNI_ALPHA, /* U+00bcc0: */ + RTUNI_ALPHA, /* U+00bcc1: */ + RTUNI_ALPHA, /* U+00bcc2: */ + RTUNI_ALPHA, /* U+00bcc3: */ + RTUNI_ALPHA, /* U+00bcc4: */ + RTUNI_ALPHA, /* U+00bcc5: */ + RTUNI_ALPHA, /* U+00bcc6: */ + RTUNI_ALPHA, /* U+00bcc7: */ + RTUNI_ALPHA, /* U+00bcc8: */ + RTUNI_ALPHA, /* U+00bcc9: */ + RTUNI_ALPHA, /* U+00bcca: */ + RTUNI_ALPHA, /* U+00bccb: */ + RTUNI_ALPHA, /* U+00bccc: */ + RTUNI_ALPHA, /* U+00bccd: */ + RTUNI_ALPHA, /* U+00bcce: */ + RTUNI_ALPHA, /* U+00bccf: */ + RTUNI_ALPHA, /* U+00bcd0: */ + RTUNI_ALPHA, /* U+00bcd1: */ + RTUNI_ALPHA, /* U+00bcd2: */ + RTUNI_ALPHA, /* U+00bcd3: */ + RTUNI_ALPHA, /* U+00bcd4: */ + RTUNI_ALPHA, /* U+00bcd5: */ + RTUNI_ALPHA, /* U+00bcd6: */ + RTUNI_ALPHA, /* U+00bcd7: */ + RTUNI_ALPHA, /* U+00bcd8: */ + RTUNI_ALPHA, /* U+00bcd9: */ + RTUNI_ALPHA, /* U+00bcda: */ + RTUNI_ALPHA, /* U+00bcdb: */ + RTUNI_ALPHA, /* U+00bcdc: */ + RTUNI_ALPHA, /* U+00bcdd: */ + RTUNI_ALPHA, /* U+00bcde: */ + RTUNI_ALPHA, /* U+00bcdf: */ + RTUNI_ALPHA, /* U+00bce0: */ + RTUNI_ALPHA, /* U+00bce1: */ + RTUNI_ALPHA, /* U+00bce2: */ + RTUNI_ALPHA, /* U+00bce3: */ + RTUNI_ALPHA, /* U+00bce4: */ + RTUNI_ALPHA, /* U+00bce5: */ + RTUNI_ALPHA, /* U+00bce6: */ + RTUNI_ALPHA, /* U+00bce7: */ + RTUNI_ALPHA, /* U+00bce8: */ + RTUNI_ALPHA, /* U+00bce9: */ + RTUNI_ALPHA, /* U+00bcea: */ + RTUNI_ALPHA, /* U+00bceb: */ + RTUNI_ALPHA, /* U+00bcec: */ + RTUNI_ALPHA, /* U+00bced: */ + RTUNI_ALPHA, /* U+00bcee: */ + RTUNI_ALPHA, /* U+00bcef: */ + RTUNI_ALPHA, /* U+00bcf0: */ + RTUNI_ALPHA, /* U+00bcf1: */ + RTUNI_ALPHA, /* U+00bcf2: */ + RTUNI_ALPHA, /* U+00bcf3: */ + RTUNI_ALPHA, /* U+00bcf4: */ + RTUNI_ALPHA, /* U+00bcf5: */ + RTUNI_ALPHA, /* U+00bcf6: */ + RTUNI_ALPHA, /* U+00bcf7: */ + RTUNI_ALPHA, /* U+00bcf8: */ + RTUNI_ALPHA, /* U+00bcf9: */ + RTUNI_ALPHA, /* U+00bcfa: */ + RTUNI_ALPHA, /* U+00bcfb: */ + RTUNI_ALPHA, /* U+00bcfc: */ + RTUNI_ALPHA, /* U+00bcfd: */ + RTUNI_ALPHA, /* U+00bcfe: */ + RTUNI_ALPHA, /* U+00bcff: */ + RTUNI_ALPHA, /* U+00bd00: */ + RTUNI_ALPHA, /* U+00bd01: */ + RTUNI_ALPHA, /* U+00bd02: */ + RTUNI_ALPHA, /* U+00bd03: */ + RTUNI_ALPHA, /* U+00bd04: */ + RTUNI_ALPHA, /* U+00bd05: */ + RTUNI_ALPHA, /* U+00bd06: */ + RTUNI_ALPHA, /* U+00bd07: */ + RTUNI_ALPHA, /* U+00bd08: */ + RTUNI_ALPHA, /* U+00bd09: */ + RTUNI_ALPHA, /* U+00bd0a: */ + RTUNI_ALPHA, /* U+00bd0b: */ + RTUNI_ALPHA, /* U+00bd0c: */ + RTUNI_ALPHA, /* U+00bd0d: */ + RTUNI_ALPHA, /* U+00bd0e: */ + RTUNI_ALPHA, /* U+00bd0f: */ + RTUNI_ALPHA, /* U+00bd10: */ + RTUNI_ALPHA, /* U+00bd11: */ + RTUNI_ALPHA, /* U+00bd12: */ + RTUNI_ALPHA, /* U+00bd13: */ + RTUNI_ALPHA, /* U+00bd14: */ + RTUNI_ALPHA, /* U+00bd15: */ + RTUNI_ALPHA, /* U+00bd16: */ + RTUNI_ALPHA, /* U+00bd17: */ + RTUNI_ALPHA, /* U+00bd18: */ + RTUNI_ALPHA, /* U+00bd19: */ + RTUNI_ALPHA, /* U+00bd1a: */ + RTUNI_ALPHA, /* U+00bd1b: */ + RTUNI_ALPHA, /* U+00bd1c: */ + RTUNI_ALPHA, /* U+00bd1d: */ + RTUNI_ALPHA, /* U+00bd1e: */ + RTUNI_ALPHA, /* U+00bd1f: */ + RTUNI_ALPHA, /* U+00bd20: */ + RTUNI_ALPHA, /* U+00bd21: */ + RTUNI_ALPHA, /* U+00bd22: */ + RTUNI_ALPHA, /* U+00bd23: */ + RTUNI_ALPHA, /* U+00bd24: */ + RTUNI_ALPHA, /* U+00bd25: */ + RTUNI_ALPHA, /* U+00bd26: */ + RTUNI_ALPHA, /* U+00bd27: */ + RTUNI_ALPHA, /* U+00bd28: */ + RTUNI_ALPHA, /* U+00bd29: */ + RTUNI_ALPHA, /* U+00bd2a: */ + RTUNI_ALPHA, /* U+00bd2b: */ + RTUNI_ALPHA, /* U+00bd2c: */ + RTUNI_ALPHA, /* U+00bd2d: */ + RTUNI_ALPHA, /* U+00bd2e: */ + RTUNI_ALPHA, /* U+00bd2f: */ + RTUNI_ALPHA, /* U+00bd30: */ + RTUNI_ALPHA, /* U+00bd31: */ + RTUNI_ALPHA, /* U+00bd32: */ + RTUNI_ALPHA, /* U+00bd33: */ + RTUNI_ALPHA, /* U+00bd34: */ + RTUNI_ALPHA, /* U+00bd35: */ + RTUNI_ALPHA, /* U+00bd36: */ + RTUNI_ALPHA, /* U+00bd37: */ + RTUNI_ALPHA, /* U+00bd38: */ + RTUNI_ALPHA, /* U+00bd39: */ + RTUNI_ALPHA, /* U+00bd3a: */ + RTUNI_ALPHA, /* U+00bd3b: */ + RTUNI_ALPHA, /* U+00bd3c: */ + RTUNI_ALPHA, /* U+00bd3d: */ + RTUNI_ALPHA, /* U+00bd3e: */ + RTUNI_ALPHA, /* U+00bd3f: */ + RTUNI_ALPHA, /* U+00bd40: */ + RTUNI_ALPHA, /* U+00bd41: */ + RTUNI_ALPHA, /* U+00bd42: */ + RTUNI_ALPHA, /* U+00bd43: */ + RTUNI_ALPHA, /* U+00bd44: */ + RTUNI_ALPHA, /* U+00bd45: */ + RTUNI_ALPHA, /* U+00bd46: */ + RTUNI_ALPHA, /* U+00bd47: */ + RTUNI_ALPHA, /* U+00bd48: */ + RTUNI_ALPHA, /* U+00bd49: */ + RTUNI_ALPHA, /* U+00bd4a: */ + RTUNI_ALPHA, /* U+00bd4b: */ + RTUNI_ALPHA, /* U+00bd4c: */ + RTUNI_ALPHA, /* U+00bd4d: */ + RTUNI_ALPHA, /* U+00bd4e: */ + RTUNI_ALPHA, /* U+00bd4f: */ + RTUNI_ALPHA, /* U+00bd50: */ + RTUNI_ALPHA, /* U+00bd51: */ + RTUNI_ALPHA, /* U+00bd52: */ + RTUNI_ALPHA, /* U+00bd53: */ + RTUNI_ALPHA, /* U+00bd54: */ + RTUNI_ALPHA, /* U+00bd55: */ + RTUNI_ALPHA, /* U+00bd56: */ + RTUNI_ALPHA, /* U+00bd57: */ + RTUNI_ALPHA, /* U+00bd58: */ + RTUNI_ALPHA, /* U+00bd59: */ + RTUNI_ALPHA, /* U+00bd5a: */ + RTUNI_ALPHA, /* U+00bd5b: */ + RTUNI_ALPHA, /* U+00bd5c: */ + RTUNI_ALPHA, /* U+00bd5d: */ + RTUNI_ALPHA, /* U+00bd5e: */ + RTUNI_ALPHA, /* U+00bd5f: */ + RTUNI_ALPHA, /* U+00bd60: */ + RTUNI_ALPHA, /* U+00bd61: */ + RTUNI_ALPHA, /* U+00bd62: */ + RTUNI_ALPHA, /* U+00bd63: */ + RTUNI_ALPHA, /* U+00bd64: */ + RTUNI_ALPHA, /* U+00bd65: */ + RTUNI_ALPHA, /* U+00bd66: */ + RTUNI_ALPHA, /* U+00bd67: */ + RTUNI_ALPHA, /* U+00bd68: */ + RTUNI_ALPHA, /* U+00bd69: */ + RTUNI_ALPHA, /* U+00bd6a: */ + RTUNI_ALPHA, /* U+00bd6b: */ + RTUNI_ALPHA, /* U+00bd6c: */ + RTUNI_ALPHA, /* U+00bd6d: */ + RTUNI_ALPHA, /* U+00bd6e: */ + RTUNI_ALPHA, /* U+00bd6f: */ + RTUNI_ALPHA, /* U+00bd70: */ + RTUNI_ALPHA, /* U+00bd71: */ + RTUNI_ALPHA, /* U+00bd72: */ + RTUNI_ALPHA, /* U+00bd73: */ + RTUNI_ALPHA, /* U+00bd74: */ + RTUNI_ALPHA, /* U+00bd75: */ + RTUNI_ALPHA, /* U+00bd76: */ + RTUNI_ALPHA, /* U+00bd77: */ + RTUNI_ALPHA, /* U+00bd78: */ + RTUNI_ALPHA, /* U+00bd79: */ + RTUNI_ALPHA, /* U+00bd7a: */ + RTUNI_ALPHA, /* U+00bd7b: */ + RTUNI_ALPHA, /* U+00bd7c: */ + RTUNI_ALPHA, /* U+00bd7d: */ + RTUNI_ALPHA, /* U+00bd7e: */ + RTUNI_ALPHA, /* U+00bd7f: */ + RTUNI_ALPHA, /* U+00bd80: */ + RTUNI_ALPHA, /* U+00bd81: */ + RTUNI_ALPHA, /* U+00bd82: */ + RTUNI_ALPHA, /* U+00bd83: */ + RTUNI_ALPHA, /* U+00bd84: */ + RTUNI_ALPHA, /* U+00bd85: */ + RTUNI_ALPHA, /* U+00bd86: */ + RTUNI_ALPHA, /* U+00bd87: */ + RTUNI_ALPHA, /* U+00bd88: */ + RTUNI_ALPHA, /* U+00bd89: */ + RTUNI_ALPHA, /* U+00bd8a: */ + RTUNI_ALPHA, /* U+00bd8b: */ + RTUNI_ALPHA, /* U+00bd8c: */ + RTUNI_ALPHA, /* U+00bd8d: */ + RTUNI_ALPHA, /* U+00bd8e: */ + RTUNI_ALPHA, /* U+00bd8f: */ + RTUNI_ALPHA, /* U+00bd90: */ + RTUNI_ALPHA, /* U+00bd91: */ + RTUNI_ALPHA, /* U+00bd92: */ + RTUNI_ALPHA, /* U+00bd93: */ + RTUNI_ALPHA, /* U+00bd94: */ + RTUNI_ALPHA, /* U+00bd95: */ + RTUNI_ALPHA, /* U+00bd96: */ + RTUNI_ALPHA, /* U+00bd97: */ + RTUNI_ALPHA, /* U+00bd98: */ + RTUNI_ALPHA, /* U+00bd99: */ + RTUNI_ALPHA, /* U+00bd9a: */ + RTUNI_ALPHA, /* U+00bd9b: */ + RTUNI_ALPHA, /* U+00bd9c: */ + RTUNI_ALPHA, /* U+00bd9d: */ + RTUNI_ALPHA, /* U+00bd9e: */ + RTUNI_ALPHA, /* U+00bd9f: */ + RTUNI_ALPHA, /* U+00bda0: */ + RTUNI_ALPHA, /* U+00bda1: */ + RTUNI_ALPHA, /* U+00bda2: */ + RTUNI_ALPHA, /* U+00bda3: */ + RTUNI_ALPHA, /* U+00bda4: */ + RTUNI_ALPHA, /* U+00bda5: */ + RTUNI_ALPHA, /* U+00bda6: */ + RTUNI_ALPHA, /* U+00bda7: */ + RTUNI_ALPHA, /* U+00bda8: */ + RTUNI_ALPHA, /* U+00bda9: */ + RTUNI_ALPHA, /* U+00bdaa: */ + RTUNI_ALPHA, /* U+00bdab: */ + RTUNI_ALPHA, /* U+00bdac: */ + RTUNI_ALPHA, /* U+00bdad: */ + RTUNI_ALPHA, /* U+00bdae: */ + RTUNI_ALPHA, /* U+00bdaf: */ + RTUNI_ALPHA, /* U+00bdb0: */ + RTUNI_ALPHA, /* U+00bdb1: */ + RTUNI_ALPHA, /* U+00bdb2: */ + RTUNI_ALPHA, /* U+00bdb3: */ + RTUNI_ALPHA, /* U+00bdb4: */ + RTUNI_ALPHA, /* U+00bdb5: */ + RTUNI_ALPHA, /* U+00bdb6: */ + RTUNI_ALPHA, /* U+00bdb7: */ + RTUNI_ALPHA, /* U+00bdb8: */ + RTUNI_ALPHA, /* U+00bdb9: */ + RTUNI_ALPHA, /* U+00bdba: */ + RTUNI_ALPHA, /* U+00bdbb: */ + RTUNI_ALPHA, /* U+00bdbc: */ + RTUNI_ALPHA, /* U+00bdbd: */ + RTUNI_ALPHA, /* U+00bdbe: */ + RTUNI_ALPHA, /* U+00bdbf: */ + RTUNI_ALPHA, /* U+00bdc0: */ + RTUNI_ALPHA, /* U+00bdc1: */ + RTUNI_ALPHA, /* U+00bdc2: */ + RTUNI_ALPHA, /* U+00bdc3: */ + RTUNI_ALPHA, /* U+00bdc4: */ + RTUNI_ALPHA, /* U+00bdc5: */ + RTUNI_ALPHA, /* U+00bdc6: */ + RTUNI_ALPHA, /* U+00bdc7: */ + RTUNI_ALPHA, /* U+00bdc8: */ + RTUNI_ALPHA, /* U+00bdc9: */ + RTUNI_ALPHA, /* U+00bdca: */ + RTUNI_ALPHA, /* U+00bdcb: */ + RTUNI_ALPHA, /* U+00bdcc: */ + RTUNI_ALPHA, /* U+00bdcd: */ + RTUNI_ALPHA, /* U+00bdce: */ + RTUNI_ALPHA, /* U+00bdcf: */ + RTUNI_ALPHA, /* U+00bdd0: */ + RTUNI_ALPHA, /* U+00bdd1: */ + RTUNI_ALPHA, /* U+00bdd2: */ + RTUNI_ALPHA, /* U+00bdd3: */ + RTUNI_ALPHA, /* U+00bdd4: */ + RTUNI_ALPHA, /* U+00bdd5: */ + RTUNI_ALPHA, /* U+00bdd6: */ + RTUNI_ALPHA, /* U+00bdd7: */ + RTUNI_ALPHA, /* U+00bdd8: */ + RTUNI_ALPHA, /* U+00bdd9: */ + RTUNI_ALPHA, /* U+00bdda: */ + RTUNI_ALPHA, /* U+00bddb: */ + RTUNI_ALPHA, /* U+00bddc: */ + RTUNI_ALPHA, /* U+00bddd: */ + RTUNI_ALPHA, /* U+00bdde: */ + RTUNI_ALPHA, /* U+00bddf: */ + RTUNI_ALPHA, /* U+00bde0: */ + RTUNI_ALPHA, /* U+00bde1: */ + RTUNI_ALPHA, /* U+00bde2: */ + RTUNI_ALPHA, /* U+00bde3: */ + RTUNI_ALPHA, /* U+00bde4: */ + RTUNI_ALPHA, /* U+00bde5: */ + RTUNI_ALPHA, /* U+00bde6: */ + RTUNI_ALPHA, /* U+00bde7: */ + RTUNI_ALPHA, /* U+00bde8: */ + RTUNI_ALPHA, /* U+00bde9: */ + RTUNI_ALPHA, /* U+00bdea: */ + RTUNI_ALPHA, /* U+00bdeb: */ + RTUNI_ALPHA, /* U+00bdec: */ + RTUNI_ALPHA, /* U+00bded: */ + RTUNI_ALPHA, /* U+00bdee: */ + RTUNI_ALPHA, /* U+00bdef: */ + RTUNI_ALPHA, /* U+00bdf0: */ + RTUNI_ALPHA, /* U+00bdf1: */ + RTUNI_ALPHA, /* U+00bdf2: */ + RTUNI_ALPHA, /* U+00bdf3: */ + RTUNI_ALPHA, /* U+00bdf4: */ + RTUNI_ALPHA, /* U+00bdf5: */ + RTUNI_ALPHA, /* U+00bdf6: */ + RTUNI_ALPHA, /* U+00bdf7: */ + RTUNI_ALPHA, /* U+00bdf8: */ + RTUNI_ALPHA, /* U+00bdf9: */ + RTUNI_ALPHA, /* U+00bdfa: */ + RTUNI_ALPHA, /* U+00bdfb: */ + RTUNI_ALPHA, /* U+00bdfc: */ + RTUNI_ALPHA, /* U+00bdfd: */ + RTUNI_ALPHA, /* U+00bdfe: */ + RTUNI_ALPHA, /* U+00bdff: */ + RTUNI_ALPHA, /* U+00be00: */ + RTUNI_ALPHA, /* U+00be01: */ + RTUNI_ALPHA, /* U+00be02: */ + RTUNI_ALPHA, /* U+00be03: */ + RTUNI_ALPHA, /* U+00be04: */ + RTUNI_ALPHA, /* U+00be05: */ + RTUNI_ALPHA, /* U+00be06: */ + RTUNI_ALPHA, /* U+00be07: */ + RTUNI_ALPHA, /* U+00be08: */ + RTUNI_ALPHA, /* U+00be09: */ + RTUNI_ALPHA, /* U+00be0a: */ + RTUNI_ALPHA, /* U+00be0b: */ + RTUNI_ALPHA, /* U+00be0c: */ + RTUNI_ALPHA, /* U+00be0d: */ + RTUNI_ALPHA, /* U+00be0e: */ + RTUNI_ALPHA, /* U+00be0f: */ + RTUNI_ALPHA, /* U+00be10: */ + RTUNI_ALPHA, /* U+00be11: */ + RTUNI_ALPHA, /* U+00be12: */ + RTUNI_ALPHA, /* U+00be13: */ + RTUNI_ALPHA, /* U+00be14: */ + RTUNI_ALPHA, /* U+00be15: */ + RTUNI_ALPHA, /* U+00be16: */ + RTUNI_ALPHA, /* U+00be17: */ + RTUNI_ALPHA, /* U+00be18: */ + RTUNI_ALPHA, /* U+00be19: */ + RTUNI_ALPHA, /* U+00be1a: */ + RTUNI_ALPHA, /* U+00be1b: */ + RTUNI_ALPHA, /* U+00be1c: */ + RTUNI_ALPHA, /* U+00be1d: */ + RTUNI_ALPHA, /* U+00be1e: */ + RTUNI_ALPHA, /* U+00be1f: */ + RTUNI_ALPHA, /* U+00be20: */ + RTUNI_ALPHA, /* U+00be21: */ + RTUNI_ALPHA, /* U+00be22: */ + RTUNI_ALPHA, /* U+00be23: */ + RTUNI_ALPHA, /* U+00be24: */ + RTUNI_ALPHA, /* U+00be25: */ + RTUNI_ALPHA, /* U+00be26: */ + RTUNI_ALPHA, /* U+00be27: */ + RTUNI_ALPHA, /* U+00be28: */ + RTUNI_ALPHA, /* U+00be29: */ + RTUNI_ALPHA, /* U+00be2a: */ + RTUNI_ALPHA, /* U+00be2b: */ + RTUNI_ALPHA, /* U+00be2c: */ + RTUNI_ALPHA, /* U+00be2d: */ + RTUNI_ALPHA, /* U+00be2e: */ + RTUNI_ALPHA, /* U+00be2f: */ + RTUNI_ALPHA, /* U+00be30: */ + RTUNI_ALPHA, /* U+00be31: */ + RTUNI_ALPHA, /* U+00be32: */ + RTUNI_ALPHA, /* U+00be33: */ + RTUNI_ALPHA, /* U+00be34: */ + RTUNI_ALPHA, /* U+00be35: */ + RTUNI_ALPHA, /* U+00be36: */ + RTUNI_ALPHA, /* U+00be37: */ + RTUNI_ALPHA, /* U+00be38: */ + RTUNI_ALPHA, /* U+00be39: */ + RTUNI_ALPHA, /* U+00be3a: */ + RTUNI_ALPHA, /* U+00be3b: */ + RTUNI_ALPHA, /* U+00be3c: */ + RTUNI_ALPHA, /* U+00be3d: */ + RTUNI_ALPHA, /* U+00be3e: */ + RTUNI_ALPHA, /* U+00be3f: */ + RTUNI_ALPHA, /* U+00be40: */ + RTUNI_ALPHA, /* U+00be41: */ + RTUNI_ALPHA, /* U+00be42: */ + RTUNI_ALPHA, /* U+00be43: */ + RTUNI_ALPHA, /* U+00be44: */ + RTUNI_ALPHA, /* U+00be45: */ + RTUNI_ALPHA, /* U+00be46: */ + RTUNI_ALPHA, /* U+00be47: */ + RTUNI_ALPHA, /* U+00be48: */ + RTUNI_ALPHA, /* U+00be49: */ + RTUNI_ALPHA, /* U+00be4a: */ + RTUNI_ALPHA, /* U+00be4b: */ + RTUNI_ALPHA, /* U+00be4c: */ + RTUNI_ALPHA, /* U+00be4d: */ + RTUNI_ALPHA, /* U+00be4e: */ + RTUNI_ALPHA, /* U+00be4f: */ + RTUNI_ALPHA, /* U+00be50: */ + RTUNI_ALPHA, /* U+00be51: */ + RTUNI_ALPHA, /* U+00be52: */ + RTUNI_ALPHA, /* U+00be53: */ + RTUNI_ALPHA, /* U+00be54: */ + RTUNI_ALPHA, /* U+00be55: */ + RTUNI_ALPHA, /* U+00be56: */ + RTUNI_ALPHA, /* U+00be57: */ + RTUNI_ALPHA, /* U+00be58: */ + RTUNI_ALPHA, /* U+00be59: */ + RTUNI_ALPHA, /* U+00be5a: */ + RTUNI_ALPHA, /* U+00be5b: */ + RTUNI_ALPHA, /* U+00be5c: */ + RTUNI_ALPHA, /* U+00be5d: */ + RTUNI_ALPHA, /* U+00be5e: */ + RTUNI_ALPHA, /* U+00be5f: */ + RTUNI_ALPHA, /* U+00be60: */ + RTUNI_ALPHA, /* U+00be61: */ + RTUNI_ALPHA, /* U+00be62: */ + RTUNI_ALPHA, /* U+00be63: */ + RTUNI_ALPHA, /* U+00be64: */ + RTUNI_ALPHA, /* U+00be65: */ + RTUNI_ALPHA, /* U+00be66: */ + RTUNI_ALPHA, /* U+00be67: */ + RTUNI_ALPHA, /* U+00be68: */ + RTUNI_ALPHA, /* U+00be69: */ + RTUNI_ALPHA, /* U+00be6a: */ + RTUNI_ALPHA, /* U+00be6b: */ + RTUNI_ALPHA, /* U+00be6c: */ + RTUNI_ALPHA, /* U+00be6d: */ + RTUNI_ALPHA, /* U+00be6e: */ + RTUNI_ALPHA, /* U+00be6f: */ + RTUNI_ALPHA, /* U+00be70: */ + RTUNI_ALPHA, /* U+00be71: */ + RTUNI_ALPHA, /* U+00be72: */ + RTUNI_ALPHA, /* U+00be73: */ + RTUNI_ALPHA, /* U+00be74: */ + RTUNI_ALPHA, /* U+00be75: */ + RTUNI_ALPHA, /* U+00be76: */ + RTUNI_ALPHA, /* U+00be77: */ + RTUNI_ALPHA, /* U+00be78: */ + RTUNI_ALPHA, /* U+00be79: */ + RTUNI_ALPHA, /* U+00be7a: */ + RTUNI_ALPHA, /* U+00be7b: */ + RTUNI_ALPHA, /* U+00be7c: */ + RTUNI_ALPHA, /* U+00be7d: */ + RTUNI_ALPHA, /* U+00be7e: */ + RTUNI_ALPHA, /* U+00be7f: */ + RTUNI_ALPHA, /* U+00be80: */ + RTUNI_ALPHA, /* U+00be81: */ + RTUNI_ALPHA, /* U+00be82: */ + RTUNI_ALPHA, /* U+00be83: */ + RTUNI_ALPHA, /* U+00be84: */ + RTUNI_ALPHA, /* U+00be85: */ + RTUNI_ALPHA, /* U+00be86: */ + RTUNI_ALPHA, /* U+00be87: */ + RTUNI_ALPHA, /* U+00be88: */ + RTUNI_ALPHA, /* U+00be89: */ + RTUNI_ALPHA, /* U+00be8a: */ + RTUNI_ALPHA, /* U+00be8b: */ + RTUNI_ALPHA, /* U+00be8c: */ + RTUNI_ALPHA, /* U+00be8d: */ + RTUNI_ALPHA, /* U+00be8e: */ + RTUNI_ALPHA, /* U+00be8f: */ + RTUNI_ALPHA, /* U+00be90: */ + RTUNI_ALPHA, /* U+00be91: */ + RTUNI_ALPHA, /* U+00be92: */ + RTUNI_ALPHA, /* U+00be93: */ + RTUNI_ALPHA, /* U+00be94: */ + RTUNI_ALPHA, /* U+00be95: */ + RTUNI_ALPHA, /* U+00be96: */ + RTUNI_ALPHA, /* U+00be97: */ + RTUNI_ALPHA, /* U+00be98: */ + RTUNI_ALPHA, /* U+00be99: */ + RTUNI_ALPHA, /* U+00be9a: */ + RTUNI_ALPHA, /* U+00be9b: */ + RTUNI_ALPHA, /* U+00be9c: */ + RTUNI_ALPHA, /* U+00be9d: */ + RTUNI_ALPHA, /* U+00be9e: */ + RTUNI_ALPHA, /* U+00be9f: */ + RTUNI_ALPHA, /* U+00bea0: */ + RTUNI_ALPHA, /* U+00bea1: */ + RTUNI_ALPHA, /* U+00bea2: */ + RTUNI_ALPHA, /* U+00bea3: */ + RTUNI_ALPHA, /* U+00bea4: */ + RTUNI_ALPHA, /* U+00bea5: */ + RTUNI_ALPHA, /* U+00bea6: */ + RTUNI_ALPHA, /* U+00bea7: */ + RTUNI_ALPHA, /* U+00bea8: */ + RTUNI_ALPHA, /* U+00bea9: */ + RTUNI_ALPHA, /* U+00beaa: */ + RTUNI_ALPHA, /* U+00beab: */ + RTUNI_ALPHA, /* U+00beac: */ + RTUNI_ALPHA, /* U+00bead: */ + RTUNI_ALPHA, /* U+00beae: */ + RTUNI_ALPHA, /* U+00beaf: */ + RTUNI_ALPHA, /* U+00beb0: */ + RTUNI_ALPHA, /* U+00beb1: */ + RTUNI_ALPHA, /* U+00beb2: */ + RTUNI_ALPHA, /* U+00beb3: */ + RTUNI_ALPHA, /* U+00beb4: */ + RTUNI_ALPHA, /* U+00beb5: */ + RTUNI_ALPHA, /* U+00beb6: */ + RTUNI_ALPHA, /* U+00beb7: */ + RTUNI_ALPHA, /* U+00beb8: */ + RTUNI_ALPHA, /* U+00beb9: */ + RTUNI_ALPHA, /* U+00beba: */ + RTUNI_ALPHA, /* U+00bebb: */ + RTUNI_ALPHA, /* U+00bebc: */ + RTUNI_ALPHA, /* U+00bebd: */ + RTUNI_ALPHA, /* U+00bebe: */ + RTUNI_ALPHA, /* U+00bebf: */ + RTUNI_ALPHA, /* U+00bec0: */ + RTUNI_ALPHA, /* U+00bec1: */ + RTUNI_ALPHA, /* U+00bec2: */ + RTUNI_ALPHA, /* U+00bec3: */ + RTUNI_ALPHA, /* U+00bec4: */ + RTUNI_ALPHA, /* U+00bec5: */ + RTUNI_ALPHA, /* U+00bec6: */ + RTUNI_ALPHA, /* U+00bec7: */ + RTUNI_ALPHA, /* U+00bec8: */ + RTUNI_ALPHA, /* U+00bec9: */ + RTUNI_ALPHA, /* U+00beca: */ + RTUNI_ALPHA, /* U+00becb: */ + RTUNI_ALPHA, /* U+00becc: */ + RTUNI_ALPHA, /* U+00becd: */ + RTUNI_ALPHA, /* U+00bece: */ + RTUNI_ALPHA, /* U+00becf: */ + RTUNI_ALPHA, /* U+00bed0: */ + RTUNI_ALPHA, /* U+00bed1: */ + RTUNI_ALPHA, /* U+00bed2: */ + RTUNI_ALPHA, /* U+00bed3: */ + RTUNI_ALPHA, /* U+00bed4: */ + RTUNI_ALPHA, /* U+00bed5: */ + RTUNI_ALPHA, /* U+00bed6: */ + RTUNI_ALPHA, /* U+00bed7: */ + RTUNI_ALPHA, /* U+00bed8: */ + RTUNI_ALPHA, /* U+00bed9: */ + RTUNI_ALPHA, /* U+00beda: */ + RTUNI_ALPHA, /* U+00bedb: */ + RTUNI_ALPHA, /* U+00bedc: */ + RTUNI_ALPHA, /* U+00bedd: */ + RTUNI_ALPHA, /* U+00bede: */ + RTUNI_ALPHA, /* U+00bedf: */ + RTUNI_ALPHA, /* U+00bee0: */ + RTUNI_ALPHA, /* U+00bee1: */ + RTUNI_ALPHA, /* U+00bee2: */ + RTUNI_ALPHA, /* U+00bee3: */ + RTUNI_ALPHA, /* U+00bee4: */ + RTUNI_ALPHA, /* U+00bee5: */ + RTUNI_ALPHA, /* U+00bee6: */ + RTUNI_ALPHA, /* U+00bee7: */ + RTUNI_ALPHA, /* U+00bee8: */ + RTUNI_ALPHA, /* U+00bee9: */ + RTUNI_ALPHA, /* U+00beea: */ + RTUNI_ALPHA, /* U+00beeb: */ + RTUNI_ALPHA, /* U+00beec: */ + RTUNI_ALPHA, /* U+00beed: */ + RTUNI_ALPHA, /* U+00beee: */ + RTUNI_ALPHA, /* U+00beef: */ + RTUNI_ALPHA, /* U+00bef0: */ + RTUNI_ALPHA, /* U+00bef1: */ + RTUNI_ALPHA, /* U+00bef2: */ + RTUNI_ALPHA, /* U+00bef3: */ + RTUNI_ALPHA, /* U+00bef4: */ + RTUNI_ALPHA, /* U+00bef5: */ + RTUNI_ALPHA, /* U+00bef6: */ + RTUNI_ALPHA, /* U+00bef7: */ + RTUNI_ALPHA, /* U+00bef8: */ + RTUNI_ALPHA, /* U+00bef9: */ + RTUNI_ALPHA, /* U+00befa: */ + RTUNI_ALPHA, /* U+00befb: */ + RTUNI_ALPHA, /* U+00befc: */ + RTUNI_ALPHA, /* U+00befd: */ + RTUNI_ALPHA, /* U+00befe: */ + RTUNI_ALPHA, /* U+00beff: */ + RTUNI_ALPHA, /* U+00bf00: */ + RTUNI_ALPHA, /* U+00bf01: */ + RTUNI_ALPHA, /* U+00bf02: */ + RTUNI_ALPHA, /* U+00bf03: */ + RTUNI_ALPHA, /* U+00bf04: */ + RTUNI_ALPHA, /* U+00bf05: */ + RTUNI_ALPHA, /* U+00bf06: */ + RTUNI_ALPHA, /* U+00bf07: */ + RTUNI_ALPHA, /* U+00bf08: */ + RTUNI_ALPHA, /* U+00bf09: */ + RTUNI_ALPHA, /* U+00bf0a: */ + RTUNI_ALPHA, /* U+00bf0b: */ + RTUNI_ALPHA, /* U+00bf0c: */ + RTUNI_ALPHA, /* U+00bf0d: */ + RTUNI_ALPHA, /* U+00bf0e: */ + RTUNI_ALPHA, /* U+00bf0f: */ + RTUNI_ALPHA, /* U+00bf10: */ + RTUNI_ALPHA, /* U+00bf11: */ + RTUNI_ALPHA, /* U+00bf12: */ + RTUNI_ALPHA, /* U+00bf13: */ + RTUNI_ALPHA, /* U+00bf14: */ + RTUNI_ALPHA, /* U+00bf15: */ + RTUNI_ALPHA, /* U+00bf16: */ + RTUNI_ALPHA, /* U+00bf17: */ + RTUNI_ALPHA, /* U+00bf18: */ + RTUNI_ALPHA, /* U+00bf19: */ + RTUNI_ALPHA, /* U+00bf1a: */ + RTUNI_ALPHA, /* U+00bf1b: */ + RTUNI_ALPHA, /* U+00bf1c: */ + RTUNI_ALPHA, /* U+00bf1d: */ + RTUNI_ALPHA, /* U+00bf1e: */ + RTUNI_ALPHA, /* U+00bf1f: */ + RTUNI_ALPHA, /* U+00bf20: */ + RTUNI_ALPHA, /* U+00bf21: */ + RTUNI_ALPHA, /* U+00bf22: */ + RTUNI_ALPHA, /* U+00bf23: */ + RTUNI_ALPHA, /* U+00bf24: */ + RTUNI_ALPHA, /* U+00bf25: */ + RTUNI_ALPHA, /* U+00bf26: */ + RTUNI_ALPHA, /* U+00bf27: */ + RTUNI_ALPHA, /* U+00bf28: */ + RTUNI_ALPHA, /* U+00bf29: */ + RTUNI_ALPHA, /* U+00bf2a: */ + RTUNI_ALPHA, /* U+00bf2b: */ + RTUNI_ALPHA, /* U+00bf2c: */ + RTUNI_ALPHA, /* U+00bf2d: */ + RTUNI_ALPHA, /* U+00bf2e: */ + RTUNI_ALPHA, /* U+00bf2f: */ + RTUNI_ALPHA, /* U+00bf30: */ + RTUNI_ALPHA, /* U+00bf31: */ + RTUNI_ALPHA, /* U+00bf32: */ + RTUNI_ALPHA, /* U+00bf33: */ + RTUNI_ALPHA, /* U+00bf34: */ + RTUNI_ALPHA, /* U+00bf35: */ + RTUNI_ALPHA, /* U+00bf36: */ + RTUNI_ALPHA, /* U+00bf37: */ + RTUNI_ALPHA, /* U+00bf38: */ + RTUNI_ALPHA, /* U+00bf39: */ + RTUNI_ALPHA, /* U+00bf3a: */ + RTUNI_ALPHA, /* U+00bf3b: */ + RTUNI_ALPHA, /* U+00bf3c: */ + RTUNI_ALPHA, /* U+00bf3d: */ + RTUNI_ALPHA, /* U+00bf3e: */ + RTUNI_ALPHA, /* U+00bf3f: */ + RTUNI_ALPHA, /* U+00bf40: */ + RTUNI_ALPHA, /* U+00bf41: */ + RTUNI_ALPHA, /* U+00bf42: */ + RTUNI_ALPHA, /* U+00bf43: */ + RTUNI_ALPHA, /* U+00bf44: */ + RTUNI_ALPHA, /* U+00bf45: */ + RTUNI_ALPHA, /* U+00bf46: */ + RTUNI_ALPHA, /* U+00bf47: */ + RTUNI_ALPHA, /* U+00bf48: */ + RTUNI_ALPHA, /* U+00bf49: */ + RTUNI_ALPHA, /* U+00bf4a: */ + RTUNI_ALPHA, /* U+00bf4b: */ + RTUNI_ALPHA, /* U+00bf4c: */ + RTUNI_ALPHA, /* U+00bf4d: */ + RTUNI_ALPHA, /* U+00bf4e: */ + RTUNI_ALPHA, /* U+00bf4f: */ + RTUNI_ALPHA, /* U+00bf50: */ + RTUNI_ALPHA, /* U+00bf51: */ + RTUNI_ALPHA, /* U+00bf52: */ + RTUNI_ALPHA, /* U+00bf53: */ + RTUNI_ALPHA, /* U+00bf54: */ + RTUNI_ALPHA, /* U+00bf55: */ + RTUNI_ALPHA, /* U+00bf56: */ + RTUNI_ALPHA, /* U+00bf57: */ + RTUNI_ALPHA, /* U+00bf58: */ + RTUNI_ALPHA, /* U+00bf59: */ + RTUNI_ALPHA, /* U+00bf5a: */ + RTUNI_ALPHA, /* U+00bf5b: */ + RTUNI_ALPHA, /* U+00bf5c: */ + RTUNI_ALPHA, /* U+00bf5d: */ + RTUNI_ALPHA, /* U+00bf5e: */ + RTUNI_ALPHA, /* U+00bf5f: */ + RTUNI_ALPHA, /* U+00bf60: */ + RTUNI_ALPHA, /* U+00bf61: */ + RTUNI_ALPHA, /* U+00bf62: */ + RTUNI_ALPHA, /* U+00bf63: */ + RTUNI_ALPHA, /* U+00bf64: */ + RTUNI_ALPHA, /* U+00bf65: */ + RTUNI_ALPHA, /* U+00bf66: */ + RTUNI_ALPHA, /* U+00bf67: */ + RTUNI_ALPHA, /* U+00bf68: */ + RTUNI_ALPHA, /* U+00bf69: */ + RTUNI_ALPHA, /* U+00bf6a: */ + RTUNI_ALPHA, /* U+00bf6b: */ + RTUNI_ALPHA, /* U+00bf6c: */ + RTUNI_ALPHA, /* U+00bf6d: */ + RTUNI_ALPHA, /* U+00bf6e: */ + RTUNI_ALPHA, /* U+00bf6f: */ + RTUNI_ALPHA, /* U+00bf70: */ + RTUNI_ALPHA, /* U+00bf71: */ + RTUNI_ALPHA, /* U+00bf72: */ + RTUNI_ALPHA, /* U+00bf73: */ + RTUNI_ALPHA, /* U+00bf74: */ + RTUNI_ALPHA, /* U+00bf75: */ + RTUNI_ALPHA, /* U+00bf76: */ + RTUNI_ALPHA, /* U+00bf77: */ + RTUNI_ALPHA, /* U+00bf78: */ + RTUNI_ALPHA, /* U+00bf79: */ + RTUNI_ALPHA, /* U+00bf7a: */ + RTUNI_ALPHA, /* U+00bf7b: */ + RTUNI_ALPHA, /* U+00bf7c: */ + RTUNI_ALPHA, /* U+00bf7d: */ + RTUNI_ALPHA, /* U+00bf7e: */ + RTUNI_ALPHA, /* U+00bf7f: */ + RTUNI_ALPHA, /* U+00bf80: */ + RTUNI_ALPHA, /* U+00bf81: */ + RTUNI_ALPHA, /* U+00bf82: */ + RTUNI_ALPHA, /* U+00bf83: */ + RTUNI_ALPHA, /* U+00bf84: */ + RTUNI_ALPHA, /* U+00bf85: */ + RTUNI_ALPHA, /* U+00bf86: */ + RTUNI_ALPHA, /* U+00bf87: */ + RTUNI_ALPHA, /* U+00bf88: */ + RTUNI_ALPHA, /* U+00bf89: */ + RTUNI_ALPHA, /* U+00bf8a: */ + RTUNI_ALPHA, /* U+00bf8b: */ + RTUNI_ALPHA, /* U+00bf8c: */ + RTUNI_ALPHA, /* U+00bf8d: */ + RTUNI_ALPHA, /* U+00bf8e: */ + RTUNI_ALPHA, /* U+00bf8f: */ + RTUNI_ALPHA, /* U+00bf90: */ + RTUNI_ALPHA, /* U+00bf91: */ + RTUNI_ALPHA, /* U+00bf92: */ + RTUNI_ALPHA, /* U+00bf93: */ + RTUNI_ALPHA, /* U+00bf94: */ + RTUNI_ALPHA, /* U+00bf95: */ + RTUNI_ALPHA, /* U+00bf96: */ + RTUNI_ALPHA, /* U+00bf97: */ + RTUNI_ALPHA, /* U+00bf98: */ + RTUNI_ALPHA, /* U+00bf99: */ + RTUNI_ALPHA, /* U+00bf9a: */ + RTUNI_ALPHA, /* U+00bf9b: */ + RTUNI_ALPHA, /* U+00bf9c: */ + RTUNI_ALPHA, /* U+00bf9d: */ + RTUNI_ALPHA, /* U+00bf9e: */ + RTUNI_ALPHA, /* U+00bf9f: */ + RTUNI_ALPHA, /* U+00bfa0: */ + RTUNI_ALPHA, /* U+00bfa1: */ + RTUNI_ALPHA, /* U+00bfa2: */ + RTUNI_ALPHA, /* U+00bfa3: */ + RTUNI_ALPHA, /* U+00bfa4: */ + RTUNI_ALPHA, /* U+00bfa5: */ + RTUNI_ALPHA, /* U+00bfa6: */ + RTUNI_ALPHA, /* U+00bfa7: */ + RTUNI_ALPHA, /* U+00bfa8: */ + RTUNI_ALPHA, /* U+00bfa9: */ + RTUNI_ALPHA, /* U+00bfaa: */ + RTUNI_ALPHA, /* U+00bfab: */ + RTUNI_ALPHA, /* U+00bfac: */ + RTUNI_ALPHA, /* U+00bfad: */ + RTUNI_ALPHA, /* U+00bfae: */ + RTUNI_ALPHA, /* U+00bfaf: */ + RTUNI_ALPHA, /* U+00bfb0: */ + RTUNI_ALPHA, /* U+00bfb1: */ + RTUNI_ALPHA, /* U+00bfb2: */ + RTUNI_ALPHA, /* U+00bfb3: */ + RTUNI_ALPHA, /* U+00bfb4: */ + RTUNI_ALPHA, /* U+00bfb5: */ + RTUNI_ALPHA, /* U+00bfb6: */ + RTUNI_ALPHA, /* U+00bfb7: */ + RTUNI_ALPHA, /* U+00bfb8: */ + RTUNI_ALPHA, /* U+00bfb9: */ + RTUNI_ALPHA, /* U+00bfba: */ + RTUNI_ALPHA, /* U+00bfbb: */ + RTUNI_ALPHA, /* U+00bfbc: */ + RTUNI_ALPHA, /* U+00bfbd: */ + RTUNI_ALPHA, /* U+00bfbe: */ + RTUNI_ALPHA, /* U+00bfbf: */ + RTUNI_ALPHA, /* U+00bfc0: */ + RTUNI_ALPHA, /* U+00bfc1: */ + RTUNI_ALPHA, /* U+00bfc2: */ + RTUNI_ALPHA, /* U+00bfc3: */ + RTUNI_ALPHA, /* U+00bfc4: */ + RTUNI_ALPHA, /* U+00bfc5: */ + RTUNI_ALPHA, /* U+00bfc6: */ + RTUNI_ALPHA, /* U+00bfc7: */ + RTUNI_ALPHA, /* U+00bfc8: */ + RTUNI_ALPHA, /* U+00bfc9: */ + RTUNI_ALPHA, /* U+00bfca: */ + RTUNI_ALPHA, /* U+00bfcb: */ + RTUNI_ALPHA, /* U+00bfcc: */ + RTUNI_ALPHA, /* U+00bfcd: */ + RTUNI_ALPHA, /* U+00bfce: */ + RTUNI_ALPHA, /* U+00bfcf: */ + RTUNI_ALPHA, /* U+00bfd0: */ + RTUNI_ALPHA, /* U+00bfd1: */ + RTUNI_ALPHA, /* U+00bfd2: */ + RTUNI_ALPHA, /* U+00bfd3: */ + RTUNI_ALPHA, /* U+00bfd4: */ + RTUNI_ALPHA, /* U+00bfd5: */ + RTUNI_ALPHA, /* U+00bfd6: */ + RTUNI_ALPHA, /* U+00bfd7: */ + RTUNI_ALPHA, /* U+00bfd8: */ + RTUNI_ALPHA, /* U+00bfd9: */ + RTUNI_ALPHA, /* U+00bfda: */ + RTUNI_ALPHA, /* U+00bfdb: */ + RTUNI_ALPHA, /* U+00bfdc: */ + RTUNI_ALPHA, /* U+00bfdd: */ + RTUNI_ALPHA, /* U+00bfde: */ + RTUNI_ALPHA, /* U+00bfdf: */ + RTUNI_ALPHA, /* U+00bfe0: */ + RTUNI_ALPHA, /* U+00bfe1: */ + RTUNI_ALPHA, /* U+00bfe2: */ + RTUNI_ALPHA, /* U+00bfe3: */ + RTUNI_ALPHA, /* U+00bfe4: */ + RTUNI_ALPHA, /* U+00bfe5: */ + RTUNI_ALPHA, /* U+00bfe6: */ + RTUNI_ALPHA, /* U+00bfe7: */ + RTUNI_ALPHA, /* U+00bfe8: */ + RTUNI_ALPHA, /* U+00bfe9: */ + RTUNI_ALPHA, /* U+00bfea: */ + RTUNI_ALPHA, /* U+00bfeb: */ + RTUNI_ALPHA, /* U+00bfec: */ + RTUNI_ALPHA, /* U+00bfed: */ + RTUNI_ALPHA, /* U+00bfee: */ + RTUNI_ALPHA, /* U+00bfef: */ + RTUNI_ALPHA, /* U+00bff0: */ + RTUNI_ALPHA, /* U+00bff1: */ + RTUNI_ALPHA, /* U+00bff2: */ + RTUNI_ALPHA, /* U+00bff3: */ + RTUNI_ALPHA, /* U+00bff4: */ + RTUNI_ALPHA, /* U+00bff5: */ + RTUNI_ALPHA, /* U+00bff6: */ + RTUNI_ALPHA, /* U+00bff7: */ + RTUNI_ALPHA, /* U+00bff8: */ + RTUNI_ALPHA, /* U+00bff9: */ + RTUNI_ALPHA, /* U+00bffa: */ + RTUNI_ALPHA, /* U+00bffb: */ + RTUNI_ALPHA, /* U+00bffc: */ + RTUNI_ALPHA, /* U+00bffd: */ + RTUNI_ALPHA, /* U+00bffe: */ + RTUNI_ALPHA, /* U+00bfff: */ + RTUNI_ALPHA, /* U+00c000: */ + RTUNI_ALPHA, /* U+00c001: */ + RTUNI_ALPHA, /* U+00c002: */ + RTUNI_ALPHA, /* U+00c003: */ + RTUNI_ALPHA, /* U+00c004: */ + RTUNI_ALPHA, /* U+00c005: */ + RTUNI_ALPHA, /* U+00c006: */ + RTUNI_ALPHA, /* U+00c007: */ + RTUNI_ALPHA, /* U+00c008: */ + RTUNI_ALPHA, /* U+00c009: */ + RTUNI_ALPHA, /* U+00c00a: */ + RTUNI_ALPHA, /* U+00c00b: */ + RTUNI_ALPHA, /* U+00c00c: */ + RTUNI_ALPHA, /* U+00c00d: */ + RTUNI_ALPHA, /* U+00c00e: */ + RTUNI_ALPHA, /* U+00c00f: */ + RTUNI_ALPHA, /* U+00c010: */ + RTUNI_ALPHA, /* U+00c011: */ + RTUNI_ALPHA, /* U+00c012: */ + RTUNI_ALPHA, /* U+00c013: */ + RTUNI_ALPHA, /* U+00c014: */ + RTUNI_ALPHA, /* U+00c015: */ + RTUNI_ALPHA, /* U+00c016: */ + RTUNI_ALPHA, /* U+00c017: */ + RTUNI_ALPHA, /* U+00c018: */ + RTUNI_ALPHA, /* U+00c019: */ + RTUNI_ALPHA, /* U+00c01a: */ + RTUNI_ALPHA, /* U+00c01b: */ + RTUNI_ALPHA, /* U+00c01c: */ + RTUNI_ALPHA, /* U+00c01d: */ + RTUNI_ALPHA, /* U+00c01e: */ + RTUNI_ALPHA, /* U+00c01f: */ + RTUNI_ALPHA, /* U+00c020: */ + RTUNI_ALPHA, /* U+00c021: */ + RTUNI_ALPHA, /* U+00c022: */ + RTUNI_ALPHA, /* U+00c023: */ + RTUNI_ALPHA, /* U+00c024: */ + RTUNI_ALPHA, /* U+00c025: */ + RTUNI_ALPHA, /* U+00c026: */ + RTUNI_ALPHA, /* U+00c027: */ + RTUNI_ALPHA, /* U+00c028: */ + RTUNI_ALPHA, /* U+00c029: */ + RTUNI_ALPHA, /* U+00c02a: */ + RTUNI_ALPHA, /* U+00c02b: */ + RTUNI_ALPHA, /* U+00c02c: */ + RTUNI_ALPHA, /* U+00c02d: */ + RTUNI_ALPHA, /* U+00c02e: */ + RTUNI_ALPHA, /* U+00c02f: */ + RTUNI_ALPHA, /* U+00c030: */ + RTUNI_ALPHA, /* U+00c031: */ + RTUNI_ALPHA, /* U+00c032: */ + RTUNI_ALPHA, /* U+00c033: */ + RTUNI_ALPHA, /* U+00c034: */ + RTUNI_ALPHA, /* U+00c035: */ + RTUNI_ALPHA, /* U+00c036: */ + RTUNI_ALPHA, /* U+00c037: */ + RTUNI_ALPHA, /* U+00c038: */ + RTUNI_ALPHA, /* U+00c039: */ + RTUNI_ALPHA, /* U+00c03a: */ + RTUNI_ALPHA, /* U+00c03b: */ + RTUNI_ALPHA, /* U+00c03c: */ + RTUNI_ALPHA, /* U+00c03d: */ + RTUNI_ALPHA, /* U+00c03e: */ + RTUNI_ALPHA, /* U+00c03f: */ + RTUNI_ALPHA, /* U+00c040: */ + RTUNI_ALPHA, /* U+00c041: */ + RTUNI_ALPHA, /* U+00c042: */ + RTUNI_ALPHA, /* U+00c043: */ + RTUNI_ALPHA, /* U+00c044: */ + RTUNI_ALPHA, /* U+00c045: */ + RTUNI_ALPHA, /* U+00c046: */ + RTUNI_ALPHA, /* U+00c047: */ + RTUNI_ALPHA, /* U+00c048: */ + RTUNI_ALPHA, /* U+00c049: */ + RTUNI_ALPHA, /* U+00c04a: */ + RTUNI_ALPHA, /* U+00c04b: */ + RTUNI_ALPHA, /* U+00c04c: */ + RTUNI_ALPHA, /* U+00c04d: */ + RTUNI_ALPHA, /* U+00c04e: */ + RTUNI_ALPHA, /* U+00c04f: */ + RTUNI_ALPHA, /* U+00c050: */ + RTUNI_ALPHA, /* U+00c051: */ + RTUNI_ALPHA, /* U+00c052: */ + RTUNI_ALPHA, /* U+00c053: */ + RTUNI_ALPHA, /* U+00c054: */ + RTUNI_ALPHA, /* U+00c055: */ + RTUNI_ALPHA, /* U+00c056: */ + RTUNI_ALPHA, /* U+00c057: */ + RTUNI_ALPHA, /* U+00c058: */ + RTUNI_ALPHA, /* U+00c059: */ + RTUNI_ALPHA, /* U+00c05a: */ + RTUNI_ALPHA, /* U+00c05b: */ + RTUNI_ALPHA, /* U+00c05c: */ + RTUNI_ALPHA, /* U+00c05d: */ + RTUNI_ALPHA, /* U+00c05e: */ + RTUNI_ALPHA, /* U+00c05f: */ + RTUNI_ALPHA, /* U+00c060: */ + RTUNI_ALPHA, /* U+00c061: */ + RTUNI_ALPHA, /* U+00c062: */ + RTUNI_ALPHA, /* U+00c063: */ + RTUNI_ALPHA, /* U+00c064: */ + RTUNI_ALPHA, /* U+00c065: */ + RTUNI_ALPHA, /* U+00c066: */ + RTUNI_ALPHA, /* U+00c067: */ + RTUNI_ALPHA, /* U+00c068: */ + RTUNI_ALPHA, /* U+00c069: */ + RTUNI_ALPHA, /* U+00c06a: */ + RTUNI_ALPHA, /* U+00c06b: */ + RTUNI_ALPHA, /* U+00c06c: */ + RTUNI_ALPHA, /* U+00c06d: */ + RTUNI_ALPHA, /* U+00c06e: */ + RTUNI_ALPHA, /* U+00c06f: */ + RTUNI_ALPHA, /* U+00c070: */ + RTUNI_ALPHA, /* U+00c071: */ + RTUNI_ALPHA, /* U+00c072: */ + RTUNI_ALPHA, /* U+00c073: */ + RTUNI_ALPHA, /* U+00c074: */ + RTUNI_ALPHA, /* U+00c075: */ + RTUNI_ALPHA, /* U+00c076: */ + RTUNI_ALPHA, /* U+00c077: */ + RTUNI_ALPHA, /* U+00c078: */ + RTUNI_ALPHA, /* U+00c079: */ + RTUNI_ALPHA, /* U+00c07a: */ + RTUNI_ALPHA, /* U+00c07b: */ + RTUNI_ALPHA, /* U+00c07c: */ + RTUNI_ALPHA, /* U+00c07d: */ + RTUNI_ALPHA, /* U+00c07e: */ + RTUNI_ALPHA, /* U+00c07f: */ + RTUNI_ALPHA, /* U+00c080: */ + RTUNI_ALPHA, /* U+00c081: */ + RTUNI_ALPHA, /* U+00c082: */ + RTUNI_ALPHA, /* U+00c083: */ + RTUNI_ALPHA, /* U+00c084: */ + RTUNI_ALPHA, /* U+00c085: */ + RTUNI_ALPHA, /* U+00c086: */ + RTUNI_ALPHA, /* U+00c087: */ + RTUNI_ALPHA, /* U+00c088: */ + RTUNI_ALPHA, /* U+00c089: */ + RTUNI_ALPHA, /* U+00c08a: */ + RTUNI_ALPHA, /* U+00c08b: */ + RTUNI_ALPHA, /* U+00c08c: */ + RTUNI_ALPHA, /* U+00c08d: */ + RTUNI_ALPHA, /* U+00c08e: */ + RTUNI_ALPHA, /* U+00c08f: */ + RTUNI_ALPHA, /* U+00c090: */ + RTUNI_ALPHA, /* U+00c091: */ + RTUNI_ALPHA, /* U+00c092: */ + RTUNI_ALPHA, /* U+00c093: */ + RTUNI_ALPHA, /* U+00c094: */ + RTUNI_ALPHA, /* U+00c095: */ + RTUNI_ALPHA, /* U+00c096: */ + RTUNI_ALPHA, /* U+00c097: */ + RTUNI_ALPHA, /* U+00c098: */ + RTUNI_ALPHA, /* U+00c099: */ + RTUNI_ALPHA, /* U+00c09a: */ + RTUNI_ALPHA, /* U+00c09b: */ + RTUNI_ALPHA, /* U+00c09c: */ + RTUNI_ALPHA, /* U+00c09d: */ + RTUNI_ALPHA, /* U+00c09e: */ + RTUNI_ALPHA, /* U+00c09f: */ + RTUNI_ALPHA, /* U+00c0a0: */ + RTUNI_ALPHA, /* U+00c0a1: */ + RTUNI_ALPHA, /* U+00c0a2: */ + RTUNI_ALPHA, /* U+00c0a3: */ + RTUNI_ALPHA, /* U+00c0a4: */ + RTUNI_ALPHA, /* U+00c0a5: */ + RTUNI_ALPHA, /* U+00c0a6: */ + RTUNI_ALPHA, /* U+00c0a7: */ + RTUNI_ALPHA, /* U+00c0a8: */ + RTUNI_ALPHA, /* U+00c0a9: */ + RTUNI_ALPHA, /* U+00c0aa: */ + RTUNI_ALPHA, /* U+00c0ab: */ + RTUNI_ALPHA, /* U+00c0ac: */ + RTUNI_ALPHA, /* U+00c0ad: */ + RTUNI_ALPHA, /* U+00c0ae: */ + RTUNI_ALPHA, /* U+00c0af: */ + RTUNI_ALPHA, /* U+00c0b0: */ + RTUNI_ALPHA, /* U+00c0b1: */ + RTUNI_ALPHA, /* U+00c0b2: */ + RTUNI_ALPHA, /* U+00c0b3: */ + RTUNI_ALPHA, /* U+00c0b4: */ + RTUNI_ALPHA, /* U+00c0b5: */ + RTUNI_ALPHA, /* U+00c0b6: */ + RTUNI_ALPHA, /* U+00c0b7: */ + RTUNI_ALPHA, /* U+00c0b8: */ + RTUNI_ALPHA, /* U+00c0b9: */ + RTUNI_ALPHA, /* U+00c0ba: */ + RTUNI_ALPHA, /* U+00c0bb: */ + RTUNI_ALPHA, /* U+00c0bc: */ + RTUNI_ALPHA, /* U+00c0bd: */ + RTUNI_ALPHA, /* U+00c0be: */ + RTUNI_ALPHA, /* U+00c0bf: */ + RTUNI_ALPHA, /* U+00c0c0: */ + RTUNI_ALPHA, /* U+00c0c1: */ + RTUNI_ALPHA, /* U+00c0c2: */ + RTUNI_ALPHA, /* U+00c0c3: */ + RTUNI_ALPHA, /* U+00c0c4: */ + RTUNI_ALPHA, /* U+00c0c5: */ + RTUNI_ALPHA, /* U+00c0c6: */ + RTUNI_ALPHA, /* U+00c0c7: */ + RTUNI_ALPHA, /* U+00c0c8: */ + RTUNI_ALPHA, /* U+00c0c9: */ + RTUNI_ALPHA, /* U+00c0ca: */ + RTUNI_ALPHA, /* U+00c0cb: */ + RTUNI_ALPHA, /* U+00c0cc: */ + RTUNI_ALPHA, /* U+00c0cd: */ + RTUNI_ALPHA, /* U+00c0ce: */ + RTUNI_ALPHA, /* U+00c0cf: */ + RTUNI_ALPHA, /* U+00c0d0: */ + RTUNI_ALPHA, /* U+00c0d1: */ + RTUNI_ALPHA, /* U+00c0d2: */ + RTUNI_ALPHA, /* U+00c0d3: */ + RTUNI_ALPHA, /* U+00c0d4: */ + RTUNI_ALPHA, /* U+00c0d5: */ + RTUNI_ALPHA, /* U+00c0d6: */ + RTUNI_ALPHA, /* U+00c0d7: */ + RTUNI_ALPHA, /* U+00c0d8: */ + RTUNI_ALPHA, /* U+00c0d9: */ + RTUNI_ALPHA, /* U+00c0da: */ + RTUNI_ALPHA, /* U+00c0db: */ + RTUNI_ALPHA, /* U+00c0dc: */ + RTUNI_ALPHA, /* U+00c0dd: */ + RTUNI_ALPHA, /* U+00c0de: */ + RTUNI_ALPHA, /* U+00c0df: */ + RTUNI_ALPHA, /* U+00c0e0: */ + RTUNI_ALPHA, /* U+00c0e1: */ + RTUNI_ALPHA, /* U+00c0e2: */ + RTUNI_ALPHA, /* U+00c0e3: */ + RTUNI_ALPHA, /* U+00c0e4: */ + RTUNI_ALPHA, /* U+00c0e5: */ + RTUNI_ALPHA, /* U+00c0e6: */ + RTUNI_ALPHA, /* U+00c0e7: */ + RTUNI_ALPHA, /* U+00c0e8: */ + RTUNI_ALPHA, /* U+00c0e9: */ + RTUNI_ALPHA, /* U+00c0ea: */ + RTUNI_ALPHA, /* U+00c0eb: */ + RTUNI_ALPHA, /* U+00c0ec: */ + RTUNI_ALPHA, /* U+00c0ed: */ + RTUNI_ALPHA, /* U+00c0ee: */ + RTUNI_ALPHA, /* U+00c0ef: */ + RTUNI_ALPHA, /* U+00c0f0: */ + RTUNI_ALPHA, /* U+00c0f1: */ + RTUNI_ALPHA, /* U+00c0f2: */ + RTUNI_ALPHA, /* U+00c0f3: */ + RTUNI_ALPHA, /* U+00c0f4: */ + RTUNI_ALPHA, /* U+00c0f5: */ + RTUNI_ALPHA, /* U+00c0f6: */ + RTUNI_ALPHA, /* U+00c0f7: */ + RTUNI_ALPHA, /* U+00c0f8: */ + RTUNI_ALPHA, /* U+00c0f9: */ + RTUNI_ALPHA, /* U+00c0fa: */ + RTUNI_ALPHA, /* U+00c0fb: */ + RTUNI_ALPHA, /* U+00c0fc: */ + RTUNI_ALPHA, /* U+00c0fd: */ + RTUNI_ALPHA, /* U+00c0fe: */ + RTUNI_ALPHA, /* U+00c0ff: */ + RTUNI_ALPHA, /* U+00c100: */ + RTUNI_ALPHA, /* U+00c101: */ + RTUNI_ALPHA, /* U+00c102: */ + RTUNI_ALPHA, /* U+00c103: */ + RTUNI_ALPHA, /* U+00c104: */ + RTUNI_ALPHA, /* U+00c105: */ + RTUNI_ALPHA, /* U+00c106: */ + RTUNI_ALPHA, /* U+00c107: */ + RTUNI_ALPHA, /* U+00c108: */ + RTUNI_ALPHA, /* U+00c109: */ + RTUNI_ALPHA, /* U+00c10a: */ + RTUNI_ALPHA, /* U+00c10b: */ + RTUNI_ALPHA, /* U+00c10c: */ + RTUNI_ALPHA, /* U+00c10d: */ + RTUNI_ALPHA, /* U+00c10e: */ + RTUNI_ALPHA, /* U+00c10f: */ + RTUNI_ALPHA, /* U+00c110: */ + RTUNI_ALPHA, /* U+00c111: */ + RTUNI_ALPHA, /* U+00c112: */ + RTUNI_ALPHA, /* U+00c113: */ + RTUNI_ALPHA, /* U+00c114: */ + RTUNI_ALPHA, /* U+00c115: */ + RTUNI_ALPHA, /* U+00c116: */ + RTUNI_ALPHA, /* U+00c117: */ + RTUNI_ALPHA, /* U+00c118: */ + RTUNI_ALPHA, /* U+00c119: */ + RTUNI_ALPHA, /* U+00c11a: */ + RTUNI_ALPHA, /* U+00c11b: */ + RTUNI_ALPHA, /* U+00c11c: */ + RTUNI_ALPHA, /* U+00c11d: */ + RTUNI_ALPHA, /* U+00c11e: */ + RTUNI_ALPHA, /* U+00c11f: */ + RTUNI_ALPHA, /* U+00c120: */ + RTUNI_ALPHA, /* U+00c121: */ + RTUNI_ALPHA, /* U+00c122: */ + RTUNI_ALPHA, /* U+00c123: */ + RTUNI_ALPHA, /* U+00c124: */ + RTUNI_ALPHA, /* U+00c125: */ + RTUNI_ALPHA, /* U+00c126: */ + RTUNI_ALPHA, /* U+00c127: */ + RTUNI_ALPHA, /* U+00c128: */ + RTUNI_ALPHA, /* U+00c129: */ + RTUNI_ALPHA, /* U+00c12a: */ + RTUNI_ALPHA, /* U+00c12b: */ + RTUNI_ALPHA, /* U+00c12c: */ + RTUNI_ALPHA, /* U+00c12d: */ + RTUNI_ALPHA, /* U+00c12e: */ + RTUNI_ALPHA, /* U+00c12f: */ + RTUNI_ALPHA, /* U+00c130: */ + RTUNI_ALPHA, /* U+00c131: */ + RTUNI_ALPHA, /* U+00c132: */ + RTUNI_ALPHA, /* U+00c133: */ + RTUNI_ALPHA, /* U+00c134: */ + RTUNI_ALPHA, /* U+00c135: */ + RTUNI_ALPHA, /* U+00c136: */ + RTUNI_ALPHA, /* U+00c137: */ + RTUNI_ALPHA, /* U+00c138: */ + RTUNI_ALPHA, /* U+00c139: */ + RTUNI_ALPHA, /* U+00c13a: */ + RTUNI_ALPHA, /* U+00c13b: */ + RTUNI_ALPHA, /* U+00c13c: */ + RTUNI_ALPHA, /* U+00c13d: */ + RTUNI_ALPHA, /* U+00c13e: */ + RTUNI_ALPHA, /* U+00c13f: */ + RTUNI_ALPHA, /* U+00c140: */ + RTUNI_ALPHA, /* U+00c141: */ + RTUNI_ALPHA, /* U+00c142: */ + RTUNI_ALPHA, /* U+00c143: */ + RTUNI_ALPHA, /* U+00c144: */ + RTUNI_ALPHA, /* U+00c145: */ + RTUNI_ALPHA, /* U+00c146: */ + RTUNI_ALPHA, /* U+00c147: */ + RTUNI_ALPHA, /* U+00c148: */ + RTUNI_ALPHA, /* U+00c149: */ + RTUNI_ALPHA, /* U+00c14a: */ + RTUNI_ALPHA, /* U+00c14b: */ + RTUNI_ALPHA, /* U+00c14c: */ + RTUNI_ALPHA, /* U+00c14d: */ + RTUNI_ALPHA, /* U+00c14e: */ + RTUNI_ALPHA, /* U+00c14f: */ + RTUNI_ALPHA, /* U+00c150: */ + RTUNI_ALPHA, /* U+00c151: */ + RTUNI_ALPHA, /* U+00c152: */ + RTUNI_ALPHA, /* U+00c153: */ + RTUNI_ALPHA, /* U+00c154: */ + RTUNI_ALPHA, /* U+00c155: */ + RTUNI_ALPHA, /* U+00c156: */ + RTUNI_ALPHA, /* U+00c157: */ + RTUNI_ALPHA, /* U+00c158: */ + RTUNI_ALPHA, /* U+00c159: */ + RTUNI_ALPHA, /* U+00c15a: */ + RTUNI_ALPHA, /* U+00c15b: */ + RTUNI_ALPHA, /* U+00c15c: */ + RTUNI_ALPHA, /* U+00c15d: */ + RTUNI_ALPHA, /* U+00c15e: */ + RTUNI_ALPHA, /* U+00c15f: */ + RTUNI_ALPHA, /* U+00c160: */ + RTUNI_ALPHA, /* U+00c161: */ + RTUNI_ALPHA, /* U+00c162: */ + RTUNI_ALPHA, /* U+00c163: */ + RTUNI_ALPHA, /* U+00c164: */ + RTUNI_ALPHA, /* U+00c165: */ + RTUNI_ALPHA, /* U+00c166: */ + RTUNI_ALPHA, /* U+00c167: */ + RTUNI_ALPHA, /* U+00c168: */ + RTUNI_ALPHA, /* U+00c169: */ + RTUNI_ALPHA, /* U+00c16a: */ + RTUNI_ALPHA, /* U+00c16b: */ + RTUNI_ALPHA, /* U+00c16c: */ + RTUNI_ALPHA, /* U+00c16d: */ + RTUNI_ALPHA, /* U+00c16e: */ + RTUNI_ALPHA, /* U+00c16f: */ + RTUNI_ALPHA, /* U+00c170: */ + RTUNI_ALPHA, /* U+00c171: */ + RTUNI_ALPHA, /* U+00c172: */ + RTUNI_ALPHA, /* U+00c173: */ + RTUNI_ALPHA, /* U+00c174: */ + RTUNI_ALPHA, /* U+00c175: */ + RTUNI_ALPHA, /* U+00c176: */ + RTUNI_ALPHA, /* U+00c177: */ + RTUNI_ALPHA, /* U+00c178: */ + RTUNI_ALPHA, /* U+00c179: */ + RTUNI_ALPHA, /* U+00c17a: */ + RTUNI_ALPHA, /* U+00c17b: */ + RTUNI_ALPHA, /* U+00c17c: */ + RTUNI_ALPHA, /* U+00c17d: */ + RTUNI_ALPHA, /* U+00c17e: */ + RTUNI_ALPHA, /* U+00c17f: */ + RTUNI_ALPHA, /* U+00c180: */ + RTUNI_ALPHA, /* U+00c181: */ + RTUNI_ALPHA, /* U+00c182: */ + RTUNI_ALPHA, /* U+00c183: */ + RTUNI_ALPHA, /* U+00c184: */ + RTUNI_ALPHA, /* U+00c185: */ + RTUNI_ALPHA, /* U+00c186: */ + RTUNI_ALPHA, /* U+00c187: */ + RTUNI_ALPHA, /* U+00c188: */ + RTUNI_ALPHA, /* U+00c189: */ + RTUNI_ALPHA, /* U+00c18a: */ + RTUNI_ALPHA, /* U+00c18b: */ + RTUNI_ALPHA, /* U+00c18c: */ + RTUNI_ALPHA, /* U+00c18d: */ + RTUNI_ALPHA, /* U+00c18e: */ + RTUNI_ALPHA, /* U+00c18f: */ + RTUNI_ALPHA, /* U+00c190: */ + RTUNI_ALPHA, /* U+00c191: */ + RTUNI_ALPHA, /* U+00c192: */ + RTUNI_ALPHA, /* U+00c193: */ + RTUNI_ALPHA, /* U+00c194: */ + RTUNI_ALPHA, /* U+00c195: */ + RTUNI_ALPHA, /* U+00c196: */ + RTUNI_ALPHA, /* U+00c197: */ + RTUNI_ALPHA, /* U+00c198: */ + RTUNI_ALPHA, /* U+00c199: */ + RTUNI_ALPHA, /* U+00c19a: */ + RTUNI_ALPHA, /* U+00c19b: */ + RTUNI_ALPHA, /* U+00c19c: */ + RTUNI_ALPHA, /* U+00c19d: */ + RTUNI_ALPHA, /* U+00c19e: */ + RTUNI_ALPHA, /* U+00c19f: */ + RTUNI_ALPHA, /* U+00c1a0: */ + RTUNI_ALPHA, /* U+00c1a1: */ + RTUNI_ALPHA, /* U+00c1a2: */ + RTUNI_ALPHA, /* U+00c1a3: */ + RTUNI_ALPHA, /* U+00c1a4: */ + RTUNI_ALPHA, /* U+00c1a5: */ + RTUNI_ALPHA, /* U+00c1a6: */ + RTUNI_ALPHA, /* U+00c1a7: */ + RTUNI_ALPHA, /* U+00c1a8: */ + RTUNI_ALPHA, /* U+00c1a9: */ + RTUNI_ALPHA, /* U+00c1aa: */ + RTUNI_ALPHA, /* U+00c1ab: */ + RTUNI_ALPHA, /* U+00c1ac: */ + RTUNI_ALPHA, /* U+00c1ad: */ + RTUNI_ALPHA, /* U+00c1ae: */ + RTUNI_ALPHA, /* U+00c1af: */ + RTUNI_ALPHA, /* U+00c1b0: */ + RTUNI_ALPHA, /* U+00c1b1: */ + RTUNI_ALPHA, /* U+00c1b2: */ + RTUNI_ALPHA, /* U+00c1b3: */ + RTUNI_ALPHA, /* U+00c1b4: */ + RTUNI_ALPHA, /* U+00c1b5: */ + RTUNI_ALPHA, /* U+00c1b6: */ + RTUNI_ALPHA, /* U+00c1b7: */ + RTUNI_ALPHA, /* U+00c1b8: */ + RTUNI_ALPHA, /* U+00c1b9: */ + RTUNI_ALPHA, /* U+00c1ba: */ + RTUNI_ALPHA, /* U+00c1bb: */ + RTUNI_ALPHA, /* U+00c1bc: */ + RTUNI_ALPHA, /* U+00c1bd: */ + RTUNI_ALPHA, /* U+00c1be: */ + RTUNI_ALPHA, /* U+00c1bf: */ + RTUNI_ALPHA, /* U+00c1c0: */ + RTUNI_ALPHA, /* U+00c1c1: */ + RTUNI_ALPHA, /* U+00c1c2: */ + RTUNI_ALPHA, /* U+00c1c3: */ + RTUNI_ALPHA, /* U+00c1c4: */ + RTUNI_ALPHA, /* U+00c1c5: */ + RTUNI_ALPHA, /* U+00c1c6: */ + RTUNI_ALPHA, /* U+00c1c7: */ + RTUNI_ALPHA, /* U+00c1c8: */ + RTUNI_ALPHA, /* U+00c1c9: */ + RTUNI_ALPHA, /* U+00c1ca: */ + RTUNI_ALPHA, /* U+00c1cb: */ + RTUNI_ALPHA, /* U+00c1cc: */ + RTUNI_ALPHA, /* U+00c1cd: */ + RTUNI_ALPHA, /* U+00c1ce: */ + RTUNI_ALPHA, /* U+00c1cf: */ + RTUNI_ALPHA, /* U+00c1d0: */ + RTUNI_ALPHA, /* U+00c1d1: */ + RTUNI_ALPHA, /* U+00c1d2: */ + RTUNI_ALPHA, /* U+00c1d3: */ + RTUNI_ALPHA, /* U+00c1d4: */ + RTUNI_ALPHA, /* U+00c1d5: */ + RTUNI_ALPHA, /* U+00c1d6: */ + RTUNI_ALPHA, /* U+00c1d7: */ + RTUNI_ALPHA, /* U+00c1d8: */ + RTUNI_ALPHA, /* U+00c1d9: */ + RTUNI_ALPHA, /* U+00c1da: */ + RTUNI_ALPHA, /* U+00c1db: */ + RTUNI_ALPHA, /* U+00c1dc: */ + RTUNI_ALPHA, /* U+00c1dd: */ + RTUNI_ALPHA, /* U+00c1de: */ + RTUNI_ALPHA, /* U+00c1df: */ + RTUNI_ALPHA, /* U+00c1e0: */ + RTUNI_ALPHA, /* U+00c1e1: */ + RTUNI_ALPHA, /* U+00c1e2: */ + RTUNI_ALPHA, /* U+00c1e3: */ + RTUNI_ALPHA, /* U+00c1e4: */ + RTUNI_ALPHA, /* U+00c1e5: */ + RTUNI_ALPHA, /* U+00c1e6: */ + RTUNI_ALPHA, /* U+00c1e7: */ + RTUNI_ALPHA, /* U+00c1e8: */ + RTUNI_ALPHA, /* U+00c1e9: */ + RTUNI_ALPHA, /* U+00c1ea: */ + RTUNI_ALPHA, /* U+00c1eb: */ + RTUNI_ALPHA, /* U+00c1ec: */ + RTUNI_ALPHA, /* U+00c1ed: */ + RTUNI_ALPHA, /* U+00c1ee: */ + RTUNI_ALPHA, /* U+00c1ef: */ + RTUNI_ALPHA, /* U+00c1f0: */ + RTUNI_ALPHA, /* U+00c1f1: */ + RTUNI_ALPHA, /* U+00c1f2: */ + RTUNI_ALPHA, /* U+00c1f3: */ + RTUNI_ALPHA, /* U+00c1f4: */ + RTUNI_ALPHA, /* U+00c1f5: */ + RTUNI_ALPHA, /* U+00c1f6: */ + RTUNI_ALPHA, /* U+00c1f7: */ + RTUNI_ALPHA, /* U+00c1f8: */ + RTUNI_ALPHA, /* U+00c1f9: */ + RTUNI_ALPHA, /* U+00c1fa: */ + RTUNI_ALPHA, /* U+00c1fb: */ + RTUNI_ALPHA, /* U+00c1fc: */ + RTUNI_ALPHA, /* U+00c1fd: */ + RTUNI_ALPHA, /* U+00c1fe: */ + RTUNI_ALPHA, /* U+00c1ff: */ + RTUNI_ALPHA, /* U+00c200: */ + RTUNI_ALPHA, /* U+00c201: */ + RTUNI_ALPHA, /* U+00c202: */ + RTUNI_ALPHA, /* U+00c203: */ + RTUNI_ALPHA, /* U+00c204: */ + RTUNI_ALPHA, /* U+00c205: */ + RTUNI_ALPHA, /* U+00c206: */ + RTUNI_ALPHA, /* U+00c207: */ + RTUNI_ALPHA, /* U+00c208: */ + RTUNI_ALPHA, /* U+00c209: */ + RTUNI_ALPHA, /* U+00c20a: */ + RTUNI_ALPHA, /* U+00c20b: */ + RTUNI_ALPHA, /* U+00c20c: */ + RTUNI_ALPHA, /* U+00c20d: */ + RTUNI_ALPHA, /* U+00c20e: */ + RTUNI_ALPHA, /* U+00c20f: */ + RTUNI_ALPHA, /* U+00c210: */ + RTUNI_ALPHA, /* U+00c211: */ + RTUNI_ALPHA, /* U+00c212: */ + RTUNI_ALPHA, /* U+00c213: */ + RTUNI_ALPHA, /* U+00c214: */ + RTUNI_ALPHA, /* U+00c215: */ + RTUNI_ALPHA, /* U+00c216: */ + RTUNI_ALPHA, /* U+00c217: */ + RTUNI_ALPHA, /* U+00c218: */ + RTUNI_ALPHA, /* U+00c219: */ + RTUNI_ALPHA, /* U+00c21a: */ + RTUNI_ALPHA, /* U+00c21b: */ + RTUNI_ALPHA, /* U+00c21c: */ + RTUNI_ALPHA, /* U+00c21d: */ + RTUNI_ALPHA, /* U+00c21e: */ + RTUNI_ALPHA, /* U+00c21f: */ + RTUNI_ALPHA, /* U+00c220: */ + RTUNI_ALPHA, /* U+00c221: */ + RTUNI_ALPHA, /* U+00c222: */ + RTUNI_ALPHA, /* U+00c223: */ + RTUNI_ALPHA, /* U+00c224: */ + RTUNI_ALPHA, /* U+00c225: */ + RTUNI_ALPHA, /* U+00c226: */ + RTUNI_ALPHA, /* U+00c227: */ + RTUNI_ALPHA, /* U+00c228: */ + RTUNI_ALPHA, /* U+00c229: */ + RTUNI_ALPHA, /* U+00c22a: */ + RTUNI_ALPHA, /* U+00c22b: */ + RTUNI_ALPHA, /* U+00c22c: */ + RTUNI_ALPHA, /* U+00c22d: */ + RTUNI_ALPHA, /* U+00c22e: */ + RTUNI_ALPHA, /* U+00c22f: */ + RTUNI_ALPHA, /* U+00c230: */ + RTUNI_ALPHA, /* U+00c231: */ + RTUNI_ALPHA, /* U+00c232: */ + RTUNI_ALPHA, /* U+00c233: */ + RTUNI_ALPHA, /* U+00c234: */ + RTUNI_ALPHA, /* U+00c235: */ + RTUNI_ALPHA, /* U+00c236: */ + RTUNI_ALPHA, /* U+00c237: */ + RTUNI_ALPHA, /* U+00c238: */ + RTUNI_ALPHA, /* U+00c239: */ + RTUNI_ALPHA, /* U+00c23a: */ + RTUNI_ALPHA, /* U+00c23b: */ + RTUNI_ALPHA, /* U+00c23c: */ + RTUNI_ALPHA, /* U+00c23d: */ + RTUNI_ALPHA, /* U+00c23e: */ + RTUNI_ALPHA, /* U+00c23f: */ + RTUNI_ALPHA, /* U+00c240: */ + RTUNI_ALPHA, /* U+00c241: */ + RTUNI_ALPHA, /* U+00c242: */ + RTUNI_ALPHA, /* U+00c243: */ + RTUNI_ALPHA, /* U+00c244: */ + RTUNI_ALPHA, /* U+00c245: */ + RTUNI_ALPHA, /* U+00c246: */ + RTUNI_ALPHA, /* U+00c247: */ + RTUNI_ALPHA, /* U+00c248: */ + RTUNI_ALPHA, /* U+00c249: */ + RTUNI_ALPHA, /* U+00c24a: */ + RTUNI_ALPHA, /* U+00c24b: */ + RTUNI_ALPHA, /* U+00c24c: */ + RTUNI_ALPHA, /* U+00c24d: */ + RTUNI_ALPHA, /* U+00c24e: */ + RTUNI_ALPHA, /* U+00c24f: */ + RTUNI_ALPHA, /* U+00c250: */ + RTUNI_ALPHA, /* U+00c251: */ + RTUNI_ALPHA, /* U+00c252: */ + RTUNI_ALPHA, /* U+00c253: */ + RTUNI_ALPHA, /* U+00c254: */ + RTUNI_ALPHA, /* U+00c255: */ + RTUNI_ALPHA, /* U+00c256: */ + RTUNI_ALPHA, /* U+00c257: */ + RTUNI_ALPHA, /* U+00c258: */ + RTUNI_ALPHA, /* U+00c259: */ + RTUNI_ALPHA, /* U+00c25a: */ + RTUNI_ALPHA, /* U+00c25b: */ + RTUNI_ALPHA, /* U+00c25c: */ + RTUNI_ALPHA, /* U+00c25d: */ + RTUNI_ALPHA, /* U+00c25e: */ + RTUNI_ALPHA, /* U+00c25f: */ + RTUNI_ALPHA, /* U+00c260: */ + RTUNI_ALPHA, /* U+00c261: */ + RTUNI_ALPHA, /* U+00c262: */ + RTUNI_ALPHA, /* U+00c263: */ + RTUNI_ALPHA, /* U+00c264: */ + RTUNI_ALPHA, /* U+00c265: */ + RTUNI_ALPHA, /* U+00c266: */ + RTUNI_ALPHA, /* U+00c267: */ + RTUNI_ALPHA, /* U+00c268: */ + RTUNI_ALPHA, /* U+00c269: */ + RTUNI_ALPHA, /* U+00c26a: */ + RTUNI_ALPHA, /* U+00c26b: */ + RTUNI_ALPHA, /* U+00c26c: */ + RTUNI_ALPHA, /* U+00c26d: */ + RTUNI_ALPHA, /* U+00c26e: */ + RTUNI_ALPHA, /* U+00c26f: */ + RTUNI_ALPHA, /* U+00c270: */ + RTUNI_ALPHA, /* U+00c271: */ + RTUNI_ALPHA, /* U+00c272: */ + RTUNI_ALPHA, /* U+00c273: */ + RTUNI_ALPHA, /* U+00c274: */ + RTUNI_ALPHA, /* U+00c275: */ + RTUNI_ALPHA, /* U+00c276: */ + RTUNI_ALPHA, /* U+00c277: */ + RTUNI_ALPHA, /* U+00c278: */ + RTUNI_ALPHA, /* U+00c279: */ + RTUNI_ALPHA, /* U+00c27a: */ + RTUNI_ALPHA, /* U+00c27b: */ + RTUNI_ALPHA, /* U+00c27c: */ + RTUNI_ALPHA, /* U+00c27d: */ + RTUNI_ALPHA, /* U+00c27e: */ + RTUNI_ALPHA, /* U+00c27f: */ + RTUNI_ALPHA, /* U+00c280: */ + RTUNI_ALPHA, /* U+00c281: */ + RTUNI_ALPHA, /* U+00c282: */ + RTUNI_ALPHA, /* U+00c283: */ + RTUNI_ALPHA, /* U+00c284: */ + RTUNI_ALPHA, /* U+00c285: */ + RTUNI_ALPHA, /* U+00c286: */ + RTUNI_ALPHA, /* U+00c287: */ + RTUNI_ALPHA, /* U+00c288: */ + RTUNI_ALPHA, /* U+00c289: */ + RTUNI_ALPHA, /* U+00c28a: */ + RTUNI_ALPHA, /* U+00c28b: */ + RTUNI_ALPHA, /* U+00c28c: */ + RTUNI_ALPHA, /* U+00c28d: */ + RTUNI_ALPHA, /* U+00c28e: */ + RTUNI_ALPHA, /* U+00c28f: */ + RTUNI_ALPHA, /* U+00c290: */ + RTUNI_ALPHA, /* U+00c291: */ + RTUNI_ALPHA, /* U+00c292: */ + RTUNI_ALPHA, /* U+00c293: */ + RTUNI_ALPHA, /* U+00c294: */ + RTUNI_ALPHA, /* U+00c295: */ + RTUNI_ALPHA, /* U+00c296: */ + RTUNI_ALPHA, /* U+00c297: */ + RTUNI_ALPHA, /* U+00c298: */ + RTUNI_ALPHA, /* U+00c299: */ + RTUNI_ALPHA, /* U+00c29a: */ + RTUNI_ALPHA, /* U+00c29b: */ + RTUNI_ALPHA, /* U+00c29c: */ + RTUNI_ALPHA, /* U+00c29d: */ + RTUNI_ALPHA, /* U+00c29e: */ + RTUNI_ALPHA, /* U+00c29f: */ + RTUNI_ALPHA, /* U+00c2a0: */ + RTUNI_ALPHA, /* U+00c2a1: */ + RTUNI_ALPHA, /* U+00c2a2: */ + RTUNI_ALPHA, /* U+00c2a3: */ + RTUNI_ALPHA, /* U+00c2a4: */ + RTUNI_ALPHA, /* U+00c2a5: */ + RTUNI_ALPHA, /* U+00c2a6: */ + RTUNI_ALPHA, /* U+00c2a7: */ + RTUNI_ALPHA, /* U+00c2a8: */ + RTUNI_ALPHA, /* U+00c2a9: */ + RTUNI_ALPHA, /* U+00c2aa: */ + RTUNI_ALPHA, /* U+00c2ab: */ + RTUNI_ALPHA, /* U+00c2ac: */ + RTUNI_ALPHA, /* U+00c2ad: */ + RTUNI_ALPHA, /* U+00c2ae: */ + RTUNI_ALPHA, /* U+00c2af: */ + RTUNI_ALPHA, /* U+00c2b0: */ + RTUNI_ALPHA, /* U+00c2b1: */ + RTUNI_ALPHA, /* U+00c2b2: */ + RTUNI_ALPHA, /* U+00c2b3: */ + RTUNI_ALPHA, /* U+00c2b4: */ + RTUNI_ALPHA, /* U+00c2b5: */ + RTUNI_ALPHA, /* U+00c2b6: */ + RTUNI_ALPHA, /* U+00c2b7: */ + RTUNI_ALPHA, /* U+00c2b8: */ + RTUNI_ALPHA, /* U+00c2b9: */ + RTUNI_ALPHA, /* U+00c2ba: */ + RTUNI_ALPHA, /* U+00c2bb: */ + RTUNI_ALPHA, /* U+00c2bc: */ + RTUNI_ALPHA, /* U+00c2bd: */ + RTUNI_ALPHA, /* U+00c2be: */ + RTUNI_ALPHA, /* U+00c2bf: */ + RTUNI_ALPHA, /* U+00c2c0: */ + RTUNI_ALPHA, /* U+00c2c1: */ + RTUNI_ALPHA, /* U+00c2c2: */ + RTUNI_ALPHA, /* U+00c2c3: */ + RTUNI_ALPHA, /* U+00c2c4: */ + RTUNI_ALPHA, /* U+00c2c5: */ + RTUNI_ALPHA, /* U+00c2c6: */ + RTUNI_ALPHA, /* U+00c2c7: */ + RTUNI_ALPHA, /* U+00c2c8: */ + RTUNI_ALPHA, /* U+00c2c9: */ + RTUNI_ALPHA, /* U+00c2ca: */ + RTUNI_ALPHA, /* U+00c2cb: */ + RTUNI_ALPHA, /* U+00c2cc: */ + RTUNI_ALPHA, /* U+00c2cd: */ + RTUNI_ALPHA, /* U+00c2ce: */ + RTUNI_ALPHA, /* U+00c2cf: */ + RTUNI_ALPHA, /* U+00c2d0: */ + RTUNI_ALPHA, /* U+00c2d1: */ + RTUNI_ALPHA, /* U+00c2d2: */ + RTUNI_ALPHA, /* U+00c2d3: */ + RTUNI_ALPHA, /* U+00c2d4: */ + RTUNI_ALPHA, /* U+00c2d5: */ + RTUNI_ALPHA, /* U+00c2d6: */ + RTUNI_ALPHA, /* U+00c2d7: */ + RTUNI_ALPHA, /* U+00c2d8: */ + RTUNI_ALPHA, /* U+00c2d9: */ + RTUNI_ALPHA, /* U+00c2da: */ + RTUNI_ALPHA, /* U+00c2db: */ + RTUNI_ALPHA, /* U+00c2dc: */ + RTUNI_ALPHA, /* U+00c2dd: */ + RTUNI_ALPHA, /* U+00c2de: */ + RTUNI_ALPHA, /* U+00c2df: */ + RTUNI_ALPHA, /* U+00c2e0: */ + RTUNI_ALPHA, /* U+00c2e1: */ + RTUNI_ALPHA, /* U+00c2e2: */ + RTUNI_ALPHA, /* U+00c2e3: */ + RTUNI_ALPHA, /* U+00c2e4: */ + RTUNI_ALPHA, /* U+00c2e5: */ + RTUNI_ALPHA, /* U+00c2e6: */ + RTUNI_ALPHA, /* U+00c2e7: */ + RTUNI_ALPHA, /* U+00c2e8: */ + RTUNI_ALPHA, /* U+00c2e9: */ + RTUNI_ALPHA, /* U+00c2ea: */ + RTUNI_ALPHA, /* U+00c2eb: */ + RTUNI_ALPHA, /* U+00c2ec: */ + RTUNI_ALPHA, /* U+00c2ed: */ + RTUNI_ALPHA, /* U+00c2ee: */ + RTUNI_ALPHA, /* U+00c2ef: */ + RTUNI_ALPHA, /* U+00c2f0: */ + RTUNI_ALPHA, /* U+00c2f1: */ + RTUNI_ALPHA, /* U+00c2f2: */ + RTUNI_ALPHA, /* U+00c2f3: */ + RTUNI_ALPHA, /* U+00c2f4: */ + RTUNI_ALPHA, /* U+00c2f5: */ + RTUNI_ALPHA, /* U+00c2f6: */ + RTUNI_ALPHA, /* U+00c2f7: */ + RTUNI_ALPHA, /* U+00c2f8: */ + RTUNI_ALPHA, /* U+00c2f9: */ + RTUNI_ALPHA, /* U+00c2fa: */ + RTUNI_ALPHA, /* U+00c2fb: */ + RTUNI_ALPHA, /* U+00c2fc: */ + RTUNI_ALPHA, /* U+00c2fd: */ + RTUNI_ALPHA, /* U+00c2fe: */ + RTUNI_ALPHA, /* U+00c2ff: */ + RTUNI_ALPHA, /* U+00c300: */ + RTUNI_ALPHA, /* U+00c301: */ + RTUNI_ALPHA, /* U+00c302: */ + RTUNI_ALPHA, /* U+00c303: */ + RTUNI_ALPHA, /* U+00c304: */ + RTUNI_ALPHA, /* U+00c305: */ + RTUNI_ALPHA, /* U+00c306: */ + RTUNI_ALPHA, /* U+00c307: */ + RTUNI_ALPHA, /* U+00c308: */ + RTUNI_ALPHA, /* U+00c309: */ + RTUNI_ALPHA, /* U+00c30a: */ + RTUNI_ALPHA, /* U+00c30b: */ + RTUNI_ALPHA, /* U+00c30c: */ + RTUNI_ALPHA, /* U+00c30d: */ + RTUNI_ALPHA, /* U+00c30e: */ + RTUNI_ALPHA, /* U+00c30f: */ + RTUNI_ALPHA, /* U+00c310: */ + RTUNI_ALPHA, /* U+00c311: */ + RTUNI_ALPHA, /* U+00c312: */ + RTUNI_ALPHA, /* U+00c313: */ + RTUNI_ALPHA, /* U+00c314: */ + RTUNI_ALPHA, /* U+00c315: */ + RTUNI_ALPHA, /* U+00c316: */ + RTUNI_ALPHA, /* U+00c317: */ + RTUNI_ALPHA, /* U+00c318: */ + RTUNI_ALPHA, /* U+00c319: */ + RTUNI_ALPHA, /* U+00c31a: */ + RTUNI_ALPHA, /* U+00c31b: */ + RTUNI_ALPHA, /* U+00c31c: */ + RTUNI_ALPHA, /* U+00c31d: */ + RTUNI_ALPHA, /* U+00c31e: */ + RTUNI_ALPHA, /* U+00c31f: */ + RTUNI_ALPHA, /* U+00c320: */ + RTUNI_ALPHA, /* U+00c321: */ + RTUNI_ALPHA, /* U+00c322: */ + RTUNI_ALPHA, /* U+00c323: */ + RTUNI_ALPHA, /* U+00c324: */ + RTUNI_ALPHA, /* U+00c325: */ + RTUNI_ALPHA, /* U+00c326: */ + RTUNI_ALPHA, /* U+00c327: */ + RTUNI_ALPHA, /* U+00c328: */ + RTUNI_ALPHA, /* U+00c329: */ + RTUNI_ALPHA, /* U+00c32a: */ + RTUNI_ALPHA, /* U+00c32b: */ + RTUNI_ALPHA, /* U+00c32c: */ + RTUNI_ALPHA, /* U+00c32d: */ + RTUNI_ALPHA, /* U+00c32e: */ + RTUNI_ALPHA, /* U+00c32f: */ + RTUNI_ALPHA, /* U+00c330: */ + RTUNI_ALPHA, /* U+00c331: */ + RTUNI_ALPHA, /* U+00c332: */ + RTUNI_ALPHA, /* U+00c333: */ + RTUNI_ALPHA, /* U+00c334: */ + RTUNI_ALPHA, /* U+00c335: */ + RTUNI_ALPHA, /* U+00c336: */ + RTUNI_ALPHA, /* U+00c337: */ + RTUNI_ALPHA, /* U+00c338: */ + RTUNI_ALPHA, /* U+00c339: */ + RTUNI_ALPHA, /* U+00c33a: */ + RTUNI_ALPHA, /* U+00c33b: */ + RTUNI_ALPHA, /* U+00c33c: */ + RTUNI_ALPHA, /* U+00c33d: */ + RTUNI_ALPHA, /* U+00c33e: */ + RTUNI_ALPHA, /* U+00c33f: */ + RTUNI_ALPHA, /* U+00c340: */ + RTUNI_ALPHA, /* U+00c341: */ + RTUNI_ALPHA, /* U+00c342: */ + RTUNI_ALPHA, /* U+00c343: */ + RTUNI_ALPHA, /* U+00c344: */ + RTUNI_ALPHA, /* U+00c345: */ + RTUNI_ALPHA, /* U+00c346: */ + RTUNI_ALPHA, /* U+00c347: */ + RTUNI_ALPHA, /* U+00c348: */ + RTUNI_ALPHA, /* U+00c349: */ + RTUNI_ALPHA, /* U+00c34a: */ + RTUNI_ALPHA, /* U+00c34b: */ + RTUNI_ALPHA, /* U+00c34c: */ + RTUNI_ALPHA, /* U+00c34d: */ + RTUNI_ALPHA, /* U+00c34e: */ + RTUNI_ALPHA, /* U+00c34f: */ + RTUNI_ALPHA, /* U+00c350: */ + RTUNI_ALPHA, /* U+00c351: */ + RTUNI_ALPHA, /* U+00c352: */ + RTUNI_ALPHA, /* U+00c353: */ + RTUNI_ALPHA, /* U+00c354: */ + RTUNI_ALPHA, /* U+00c355: */ + RTUNI_ALPHA, /* U+00c356: */ + RTUNI_ALPHA, /* U+00c357: */ + RTUNI_ALPHA, /* U+00c358: */ + RTUNI_ALPHA, /* U+00c359: */ + RTUNI_ALPHA, /* U+00c35a: */ + RTUNI_ALPHA, /* U+00c35b: */ + RTUNI_ALPHA, /* U+00c35c: */ + RTUNI_ALPHA, /* U+00c35d: */ + RTUNI_ALPHA, /* U+00c35e: */ + RTUNI_ALPHA, /* U+00c35f: */ + RTUNI_ALPHA, /* U+00c360: */ + RTUNI_ALPHA, /* U+00c361: */ + RTUNI_ALPHA, /* U+00c362: */ + RTUNI_ALPHA, /* U+00c363: */ + RTUNI_ALPHA, /* U+00c364: */ + RTUNI_ALPHA, /* U+00c365: */ + RTUNI_ALPHA, /* U+00c366: */ + RTUNI_ALPHA, /* U+00c367: */ + RTUNI_ALPHA, /* U+00c368: */ + RTUNI_ALPHA, /* U+00c369: */ + RTUNI_ALPHA, /* U+00c36a: */ + RTUNI_ALPHA, /* U+00c36b: */ + RTUNI_ALPHA, /* U+00c36c: */ + RTUNI_ALPHA, /* U+00c36d: */ + RTUNI_ALPHA, /* U+00c36e: */ + RTUNI_ALPHA, /* U+00c36f: */ + RTUNI_ALPHA, /* U+00c370: */ + RTUNI_ALPHA, /* U+00c371: */ + RTUNI_ALPHA, /* U+00c372: */ + RTUNI_ALPHA, /* U+00c373: */ + RTUNI_ALPHA, /* U+00c374: */ + RTUNI_ALPHA, /* U+00c375: */ + RTUNI_ALPHA, /* U+00c376: */ + RTUNI_ALPHA, /* U+00c377: */ + RTUNI_ALPHA, /* U+00c378: */ + RTUNI_ALPHA, /* U+00c379: */ + RTUNI_ALPHA, /* U+00c37a: */ + RTUNI_ALPHA, /* U+00c37b: */ + RTUNI_ALPHA, /* U+00c37c: */ + RTUNI_ALPHA, /* U+00c37d: */ + RTUNI_ALPHA, /* U+00c37e: */ + RTUNI_ALPHA, /* U+00c37f: */ + RTUNI_ALPHA, /* U+00c380: */ + RTUNI_ALPHA, /* U+00c381: */ + RTUNI_ALPHA, /* U+00c382: */ + RTUNI_ALPHA, /* U+00c383: */ + RTUNI_ALPHA, /* U+00c384: */ + RTUNI_ALPHA, /* U+00c385: */ + RTUNI_ALPHA, /* U+00c386: */ + RTUNI_ALPHA, /* U+00c387: */ + RTUNI_ALPHA, /* U+00c388: */ + RTUNI_ALPHA, /* U+00c389: */ + RTUNI_ALPHA, /* U+00c38a: */ + RTUNI_ALPHA, /* U+00c38b: */ + RTUNI_ALPHA, /* U+00c38c: */ + RTUNI_ALPHA, /* U+00c38d: */ + RTUNI_ALPHA, /* U+00c38e: */ + RTUNI_ALPHA, /* U+00c38f: */ + RTUNI_ALPHA, /* U+00c390: */ + RTUNI_ALPHA, /* U+00c391: */ + RTUNI_ALPHA, /* U+00c392: */ + RTUNI_ALPHA, /* U+00c393: */ + RTUNI_ALPHA, /* U+00c394: */ + RTUNI_ALPHA, /* U+00c395: */ + RTUNI_ALPHA, /* U+00c396: */ + RTUNI_ALPHA, /* U+00c397: */ + RTUNI_ALPHA, /* U+00c398: */ + RTUNI_ALPHA, /* U+00c399: */ + RTUNI_ALPHA, /* U+00c39a: */ + RTUNI_ALPHA, /* U+00c39b: */ + RTUNI_ALPHA, /* U+00c39c: */ + RTUNI_ALPHA, /* U+00c39d: */ + RTUNI_ALPHA, /* U+00c39e: */ + RTUNI_ALPHA, /* U+00c39f: */ + RTUNI_ALPHA, /* U+00c3a0: */ + RTUNI_ALPHA, /* U+00c3a1: */ + RTUNI_ALPHA, /* U+00c3a2: */ + RTUNI_ALPHA, /* U+00c3a3: */ + RTUNI_ALPHA, /* U+00c3a4: */ + RTUNI_ALPHA, /* U+00c3a5: */ + RTUNI_ALPHA, /* U+00c3a6: */ + RTUNI_ALPHA, /* U+00c3a7: */ + RTUNI_ALPHA, /* U+00c3a8: */ + RTUNI_ALPHA, /* U+00c3a9: */ + RTUNI_ALPHA, /* U+00c3aa: */ + RTUNI_ALPHA, /* U+00c3ab: */ + RTUNI_ALPHA, /* U+00c3ac: */ + RTUNI_ALPHA, /* U+00c3ad: */ + RTUNI_ALPHA, /* U+00c3ae: */ + RTUNI_ALPHA, /* U+00c3af: */ + RTUNI_ALPHA, /* U+00c3b0: */ + RTUNI_ALPHA, /* U+00c3b1: */ + RTUNI_ALPHA, /* U+00c3b2: */ + RTUNI_ALPHA, /* U+00c3b3: */ + RTUNI_ALPHA, /* U+00c3b4: */ + RTUNI_ALPHA, /* U+00c3b5: */ + RTUNI_ALPHA, /* U+00c3b6: */ + RTUNI_ALPHA, /* U+00c3b7: */ + RTUNI_ALPHA, /* U+00c3b8: */ + RTUNI_ALPHA, /* U+00c3b9: */ + RTUNI_ALPHA, /* U+00c3ba: */ + RTUNI_ALPHA, /* U+00c3bb: */ + RTUNI_ALPHA, /* U+00c3bc: */ + RTUNI_ALPHA, /* U+00c3bd: */ + RTUNI_ALPHA, /* U+00c3be: */ + RTUNI_ALPHA, /* U+00c3bf: */ + RTUNI_ALPHA, /* U+00c3c0: */ + RTUNI_ALPHA, /* U+00c3c1: */ + RTUNI_ALPHA, /* U+00c3c2: */ + RTUNI_ALPHA, /* U+00c3c3: */ + RTUNI_ALPHA, /* U+00c3c4: */ + RTUNI_ALPHA, /* U+00c3c5: */ + RTUNI_ALPHA, /* U+00c3c6: */ + RTUNI_ALPHA, /* U+00c3c7: */ + RTUNI_ALPHA, /* U+00c3c8: */ + RTUNI_ALPHA, /* U+00c3c9: */ + RTUNI_ALPHA, /* U+00c3ca: */ + RTUNI_ALPHA, /* U+00c3cb: */ + RTUNI_ALPHA, /* U+00c3cc: */ + RTUNI_ALPHA, /* U+00c3cd: */ + RTUNI_ALPHA, /* U+00c3ce: */ + RTUNI_ALPHA, /* U+00c3cf: */ + RTUNI_ALPHA, /* U+00c3d0: */ + RTUNI_ALPHA, /* U+00c3d1: */ + RTUNI_ALPHA, /* U+00c3d2: */ + RTUNI_ALPHA, /* U+00c3d3: */ + RTUNI_ALPHA, /* U+00c3d4: */ + RTUNI_ALPHA, /* U+00c3d5: */ + RTUNI_ALPHA, /* U+00c3d6: */ + RTUNI_ALPHA, /* U+00c3d7: */ + RTUNI_ALPHA, /* U+00c3d8: */ + RTUNI_ALPHA, /* U+00c3d9: */ + RTUNI_ALPHA, /* U+00c3da: */ + RTUNI_ALPHA, /* U+00c3db: */ + RTUNI_ALPHA, /* U+00c3dc: */ + RTUNI_ALPHA, /* U+00c3dd: */ + RTUNI_ALPHA, /* U+00c3de: */ + RTUNI_ALPHA, /* U+00c3df: */ + RTUNI_ALPHA, /* U+00c3e0: */ + RTUNI_ALPHA, /* U+00c3e1: */ + RTUNI_ALPHA, /* U+00c3e2: */ + RTUNI_ALPHA, /* U+00c3e3: */ + RTUNI_ALPHA, /* U+00c3e4: */ + RTUNI_ALPHA, /* U+00c3e5: */ + RTUNI_ALPHA, /* U+00c3e6: */ + RTUNI_ALPHA, /* U+00c3e7: */ + RTUNI_ALPHA, /* U+00c3e8: */ + RTUNI_ALPHA, /* U+00c3e9: */ + RTUNI_ALPHA, /* U+00c3ea: */ + RTUNI_ALPHA, /* U+00c3eb: */ + RTUNI_ALPHA, /* U+00c3ec: */ + RTUNI_ALPHA, /* U+00c3ed: */ + RTUNI_ALPHA, /* U+00c3ee: */ + RTUNI_ALPHA, /* U+00c3ef: */ + RTUNI_ALPHA, /* U+00c3f0: */ + RTUNI_ALPHA, /* U+00c3f1: */ + RTUNI_ALPHA, /* U+00c3f2: */ + RTUNI_ALPHA, /* U+00c3f3: */ + RTUNI_ALPHA, /* U+00c3f4: */ + RTUNI_ALPHA, /* U+00c3f5: */ + RTUNI_ALPHA, /* U+00c3f6: */ + RTUNI_ALPHA, /* U+00c3f7: */ + RTUNI_ALPHA, /* U+00c3f8: */ + RTUNI_ALPHA, /* U+00c3f9: */ + RTUNI_ALPHA, /* U+00c3fa: */ + RTUNI_ALPHA, /* U+00c3fb: */ + RTUNI_ALPHA, /* U+00c3fc: */ + RTUNI_ALPHA, /* U+00c3fd: */ + RTUNI_ALPHA, /* U+00c3fe: */ + RTUNI_ALPHA, /* U+00c3ff: */ + RTUNI_ALPHA, /* U+00c400: */ + RTUNI_ALPHA, /* U+00c401: */ + RTUNI_ALPHA, /* U+00c402: */ + RTUNI_ALPHA, /* U+00c403: */ + RTUNI_ALPHA, /* U+00c404: */ + RTUNI_ALPHA, /* U+00c405: */ + RTUNI_ALPHA, /* U+00c406: */ + RTUNI_ALPHA, /* U+00c407: */ + RTUNI_ALPHA, /* U+00c408: */ + RTUNI_ALPHA, /* U+00c409: */ + RTUNI_ALPHA, /* U+00c40a: */ + RTUNI_ALPHA, /* U+00c40b: */ + RTUNI_ALPHA, /* U+00c40c: */ + RTUNI_ALPHA, /* U+00c40d: */ + RTUNI_ALPHA, /* U+00c40e: */ + RTUNI_ALPHA, /* U+00c40f: */ + RTUNI_ALPHA, /* U+00c410: */ + RTUNI_ALPHA, /* U+00c411: */ + RTUNI_ALPHA, /* U+00c412: */ + RTUNI_ALPHA, /* U+00c413: */ + RTUNI_ALPHA, /* U+00c414: */ + RTUNI_ALPHA, /* U+00c415: */ + RTUNI_ALPHA, /* U+00c416: */ + RTUNI_ALPHA, /* U+00c417: */ + RTUNI_ALPHA, /* U+00c418: */ + RTUNI_ALPHA, /* U+00c419: */ + RTUNI_ALPHA, /* U+00c41a: */ + RTUNI_ALPHA, /* U+00c41b: */ + RTUNI_ALPHA, /* U+00c41c: */ + RTUNI_ALPHA, /* U+00c41d: */ + RTUNI_ALPHA, /* U+00c41e: */ + RTUNI_ALPHA, /* U+00c41f: */ + RTUNI_ALPHA, /* U+00c420: */ + RTUNI_ALPHA, /* U+00c421: */ + RTUNI_ALPHA, /* U+00c422: */ + RTUNI_ALPHA, /* U+00c423: */ + RTUNI_ALPHA, /* U+00c424: */ + RTUNI_ALPHA, /* U+00c425: */ + RTUNI_ALPHA, /* U+00c426: */ + RTUNI_ALPHA, /* U+00c427: */ + RTUNI_ALPHA, /* U+00c428: */ + RTUNI_ALPHA, /* U+00c429: */ + RTUNI_ALPHA, /* U+00c42a: */ + RTUNI_ALPHA, /* U+00c42b: */ + RTUNI_ALPHA, /* U+00c42c: */ + RTUNI_ALPHA, /* U+00c42d: */ + RTUNI_ALPHA, /* U+00c42e: */ + RTUNI_ALPHA, /* U+00c42f: */ + RTUNI_ALPHA, /* U+00c430: */ + RTUNI_ALPHA, /* U+00c431: */ + RTUNI_ALPHA, /* U+00c432: */ + RTUNI_ALPHA, /* U+00c433: */ + RTUNI_ALPHA, /* U+00c434: */ + RTUNI_ALPHA, /* U+00c435: */ + RTUNI_ALPHA, /* U+00c436: */ + RTUNI_ALPHA, /* U+00c437: */ + RTUNI_ALPHA, /* U+00c438: */ + RTUNI_ALPHA, /* U+00c439: */ + RTUNI_ALPHA, /* U+00c43a: */ + RTUNI_ALPHA, /* U+00c43b: */ + RTUNI_ALPHA, /* U+00c43c: */ + RTUNI_ALPHA, /* U+00c43d: */ + RTUNI_ALPHA, /* U+00c43e: */ + RTUNI_ALPHA, /* U+00c43f: */ + RTUNI_ALPHA, /* U+00c440: */ + RTUNI_ALPHA, /* U+00c441: */ + RTUNI_ALPHA, /* U+00c442: */ + RTUNI_ALPHA, /* U+00c443: */ + RTUNI_ALPHA, /* U+00c444: */ + RTUNI_ALPHA, /* U+00c445: */ + RTUNI_ALPHA, /* U+00c446: */ + RTUNI_ALPHA, /* U+00c447: */ + RTUNI_ALPHA, /* U+00c448: */ + RTUNI_ALPHA, /* U+00c449: */ + RTUNI_ALPHA, /* U+00c44a: */ + RTUNI_ALPHA, /* U+00c44b: */ + RTUNI_ALPHA, /* U+00c44c: */ + RTUNI_ALPHA, /* U+00c44d: */ + RTUNI_ALPHA, /* U+00c44e: */ + RTUNI_ALPHA, /* U+00c44f: */ + RTUNI_ALPHA, /* U+00c450: */ + RTUNI_ALPHA, /* U+00c451: */ + RTUNI_ALPHA, /* U+00c452: */ + RTUNI_ALPHA, /* U+00c453: */ + RTUNI_ALPHA, /* U+00c454: */ + RTUNI_ALPHA, /* U+00c455: */ + RTUNI_ALPHA, /* U+00c456: */ + RTUNI_ALPHA, /* U+00c457: */ + RTUNI_ALPHA, /* U+00c458: */ + RTUNI_ALPHA, /* U+00c459: */ + RTUNI_ALPHA, /* U+00c45a: */ + RTUNI_ALPHA, /* U+00c45b: */ + RTUNI_ALPHA, /* U+00c45c: */ + RTUNI_ALPHA, /* U+00c45d: */ + RTUNI_ALPHA, /* U+00c45e: */ + RTUNI_ALPHA, /* U+00c45f: */ + RTUNI_ALPHA, /* U+00c460: */ + RTUNI_ALPHA, /* U+00c461: */ + RTUNI_ALPHA, /* U+00c462: */ + RTUNI_ALPHA, /* U+00c463: */ + RTUNI_ALPHA, /* U+00c464: */ + RTUNI_ALPHA, /* U+00c465: */ + RTUNI_ALPHA, /* U+00c466: */ + RTUNI_ALPHA, /* U+00c467: */ + RTUNI_ALPHA, /* U+00c468: */ + RTUNI_ALPHA, /* U+00c469: */ + RTUNI_ALPHA, /* U+00c46a: */ + RTUNI_ALPHA, /* U+00c46b: */ + RTUNI_ALPHA, /* U+00c46c: */ + RTUNI_ALPHA, /* U+00c46d: */ + RTUNI_ALPHA, /* U+00c46e: */ + RTUNI_ALPHA, /* U+00c46f: */ + RTUNI_ALPHA, /* U+00c470: */ + RTUNI_ALPHA, /* U+00c471: */ + RTUNI_ALPHA, /* U+00c472: */ + RTUNI_ALPHA, /* U+00c473: */ + RTUNI_ALPHA, /* U+00c474: */ + RTUNI_ALPHA, /* U+00c475: */ + RTUNI_ALPHA, /* U+00c476: */ + RTUNI_ALPHA, /* U+00c477: */ + RTUNI_ALPHA, /* U+00c478: */ + RTUNI_ALPHA, /* U+00c479: */ + RTUNI_ALPHA, /* U+00c47a: */ + RTUNI_ALPHA, /* U+00c47b: */ + RTUNI_ALPHA, /* U+00c47c: */ + RTUNI_ALPHA, /* U+00c47d: */ + RTUNI_ALPHA, /* U+00c47e: */ + RTUNI_ALPHA, /* U+00c47f: */ + RTUNI_ALPHA, /* U+00c480: */ + RTUNI_ALPHA, /* U+00c481: */ + RTUNI_ALPHA, /* U+00c482: */ + RTUNI_ALPHA, /* U+00c483: */ + RTUNI_ALPHA, /* U+00c484: */ + RTUNI_ALPHA, /* U+00c485: */ + RTUNI_ALPHA, /* U+00c486: */ + RTUNI_ALPHA, /* U+00c487: */ + RTUNI_ALPHA, /* U+00c488: */ + RTUNI_ALPHA, /* U+00c489: */ + RTUNI_ALPHA, /* U+00c48a: */ + RTUNI_ALPHA, /* U+00c48b: */ + RTUNI_ALPHA, /* U+00c48c: */ + RTUNI_ALPHA, /* U+00c48d: */ + RTUNI_ALPHA, /* U+00c48e: */ + RTUNI_ALPHA, /* U+00c48f: */ + RTUNI_ALPHA, /* U+00c490: */ + RTUNI_ALPHA, /* U+00c491: */ + RTUNI_ALPHA, /* U+00c492: */ + RTUNI_ALPHA, /* U+00c493: */ + RTUNI_ALPHA, /* U+00c494: */ + RTUNI_ALPHA, /* U+00c495: */ + RTUNI_ALPHA, /* U+00c496: */ + RTUNI_ALPHA, /* U+00c497: */ + RTUNI_ALPHA, /* U+00c498: */ + RTUNI_ALPHA, /* U+00c499: */ + RTUNI_ALPHA, /* U+00c49a: */ + RTUNI_ALPHA, /* U+00c49b: */ + RTUNI_ALPHA, /* U+00c49c: */ + RTUNI_ALPHA, /* U+00c49d: */ + RTUNI_ALPHA, /* U+00c49e: */ + RTUNI_ALPHA, /* U+00c49f: */ + RTUNI_ALPHA, /* U+00c4a0: */ + RTUNI_ALPHA, /* U+00c4a1: */ + RTUNI_ALPHA, /* U+00c4a2: */ + RTUNI_ALPHA, /* U+00c4a3: */ + RTUNI_ALPHA, /* U+00c4a4: */ + RTUNI_ALPHA, /* U+00c4a5: */ + RTUNI_ALPHA, /* U+00c4a6: */ + RTUNI_ALPHA, /* U+00c4a7: */ + RTUNI_ALPHA, /* U+00c4a8: */ + RTUNI_ALPHA, /* U+00c4a9: */ + RTUNI_ALPHA, /* U+00c4aa: */ + RTUNI_ALPHA, /* U+00c4ab: */ + RTUNI_ALPHA, /* U+00c4ac: */ + RTUNI_ALPHA, /* U+00c4ad: */ + RTUNI_ALPHA, /* U+00c4ae: */ + RTUNI_ALPHA, /* U+00c4af: */ + RTUNI_ALPHA, /* U+00c4b0: */ + RTUNI_ALPHA, /* U+00c4b1: */ + RTUNI_ALPHA, /* U+00c4b2: */ + RTUNI_ALPHA, /* U+00c4b3: */ + RTUNI_ALPHA, /* U+00c4b4: */ + RTUNI_ALPHA, /* U+00c4b5: */ + RTUNI_ALPHA, /* U+00c4b6: */ + RTUNI_ALPHA, /* U+00c4b7: */ + RTUNI_ALPHA, /* U+00c4b8: */ + RTUNI_ALPHA, /* U+00c4b9: */ + RTUNI_ALPHA, /* U+00c4ba: */ + RTUNI_ALPHA, /* U+00c4bb: */ + RTUNI_ALPHA, /* U+00c4bc: */ + RTUNI_ALPHA, /* U+00c4bd: */ + RTUNI_ALPHA, /* U+00c4be: */ + RTUNI_ALPHA, /* U+00c4bf: */ + RTUNI_ALPHA, /* U+00c4c0: */ + RTUNI_ALPHA, /* U+00c4c1: */ + RTUNI_ALPHA, /* U+00c4c2: */ + RTUNI_ALPHA, /* U+00c4c3: */ + RTUNI_ALPHA, /* U+00c4c4: */ + RTUNI_ALPHA, /* U+00c4c5: */ + RTUNI_ALPHA, /* U+00c4c6: */ + RTUNI_ALPHA, /* U+00c4c7: */ + RTUNI_ALPHA, /* U+00c4c8: */ + RTUNI_ALPHA, /* U+00c4c9: */ + RTUNI_ALPHA, /* U+00c4ca: */ + RTUNI_ALPHA, /* U+00c4cb: */ + RTUNI_ALPHA, /* U+00c4cc: */ + RTUNI_ALPHA, /* U+00c4cd: */ + RTUNI_ALPHA, /* U+00c4ce: */ + RTUNI_ALPHA, /* U+00c4cf: */ + RTUNI_ALPHA, /* U+00c4d0: */ + RTUNI_ALPHA, /* U+00c4d1: */ + RTUNI_ALPHA, /* U+00c4d2: */ + RTUNI_ALPHA, /* U+00c4d3: */ + RTUNI_ALPHA, /* U+00c4d4: */ + RTUNI_ALPHA, /* U+00c4d5: */ + RTUNI_ALPHA, /* U+00c4d6: */ + RTUNI_ALPHA, /* U+00c4d7: */ + RTUNI_ALPHA, /* U+00c4d8: */ + RTUNI_ALPHA, /* U+00c4d9: */ + RTUNI_ALPHA, /* U+00c4da: */ + RTUNI_ALPHA, /* U+00c4db: */ + RTUNI_ALPHA, /* U+00c4dc: */ + RTUNI_ALPHA, /* U+00c4dd: */ + RTUNI_ALPHA, /* U+00c4de: */ + RTUNI_ALPHA, /* U+00c4df: */ + RTUNI_ALPHA, /* U+00c4e0: */ + RTUNI_ALPHA, /* U+00c4e1: */ + RTUNI_ALPHA, /* U+00c4e2: */ + RTUNI_ALPHA, /* U+00c4e3: */ + RTUNI_ALPHA, /* U+00c4e4: */ + RTUNI_ALPHA, /* U+00c4e5: */ + RTUNI_ALPHA, /* U+00c4e6: */ + RTUNI_ALPHA, /* U+00c4e7: */ + RTUNI_ALPHA, /* U+00c4e8: */ + RTUNI_ALPHA, /* U+00c4e9: */ + RTUNI_ALPHA, /* U+00c4ea: */ + RTUNI_ALPHA, /* U+00c4eb: */ + RTUNI_ALPHA, /* U+00c4ec: */ + RTUNI_ALPHA, /* U+00c4ed: */ + RTUNI_ALPHA, /* U+00c4ee: */ + RTUNI_ALPHA, /* U+00c4ef: */ + RTUNI_ALPHA, /* U+00c4f0: */ + RTUNI_ALPHA, /* U+00c4f1: */ + RTUNI_ALPHA, /* U+00c4f2: */ + RTUNI_ALPHA, /* U+00c4f3: */ + RTUNI_ALPHA, /* U+00c4f4: */ + RTUNI_ALPHA, /* U+00c4f5: */ + RTUNI_ALPHA, /* U+00c4f6: */ + RTUNI_ALPHA, /* U+00c4f7: */ + RTUNI_ALPHA, /* U+00c4f8: */ + RTUNI_ALPHA, /* U+00c4f9: */ + RTUNI_ALPHA, /* U+00c4fa: */ + RTUNI_ALPHA, /* U+00c4fb: */ + RTUNI_ALPHA, /* U+00c4fc: */ + RTUNI_ALPHA, /* U+00c4fd: */ + RTUNI_ALPHA, /* U+00c4fe: */ + RTUNI_ALPHA, /* U+00c4ff: */ + RTUNI_ALPHA, /* U+00c500: */ + RTUNI_ALPHA, /* U+00c501: */ + RTUNI_ALPHA, /* U+00c502: */ + RTUNI_ALPHA, /* U+00c503: */ + RTUNI_ALPHA, /* U+00c504: */ + RTUNI_ALPHA, /* U+00c505: */ + RTUNI_ALPHA, /* U+00c506: */ + RTUNI_ALPHA, /* U+00c507: */ + RTUNI_ALPHA, /* U+00c508: */ + RTUNI_ALPHA, /* U+00c509: */ + RTUNI_ALPHA, /* U+00c50a: */ + RTUNI_ALPHA, /* U+00c50b: */ + RTUNI_ALPHA, /* U+00c50c: */ + RTUNI_ALPHA, /* U+00c50d: */ + RTUNI_ALPHA, /* U+00c50e: */ + RTUNI_ALPHA, /* U+00c50f: */ + RTUNI_ALPHA, /* U+00c510: */ + RTUNI_ALPHA, /* U+00c511: */ + RTUNI_ALPHA, /* U+00c512: */ + RTUNI_ALPHA, /* U+00c513: */ + RTUNI_ALPHA, /* U+00c514: */ + RTUNI_ALPHA, /* U+00c515: */ + RTUNI_ALPHA, /* U+00c516: */ + RTUNI_ALPHA, /* U+00c517: */ + RTUNI_ALPHA, /* U+00c518: */ + RTUNI_ALPHA, /* U+00c519: */ + RTUNI_ALPHA, /* U+00c51a: */ + RTUNI_ALPHA, /* U+00c51b: */ + RTUNI_ALPHA, /* U+00c51c: */ + RTUNI_ALPHA, /* U+00c51d: */ + RTUNI_ALPHA, /* U+00c51e: */ + RTUNI_ALPHA, /* U+00c51f: */ + RTUNI_ALPHA, /* U+00c520: */ + RTUNI_ALPHA, /* U+00c521: */ + RTUNI_ALPHA, /* U+00c522: */ + RTUNI_ALPHA, /* U+00c523: */ + RTUNI_ALPHA, /* U+00c524: */ + RTUNI_ALPHA, /* U+00c525: */ + RTUNI_ALPHA, /* U+00c526: */ + RTUNI_ALPHA, /* U+00c527: */ + RTUNI_ALPHA, /* U+00c528: */ + RTUNI_ALPHA, /* U+00c529: */ + RTUNI_ALPHA, /* U+00c52a: */ + RTUNI_ALPHA, /* U+00c52b: */ + RTUNI_ALPHA, /* U+00c52c: */ + RTUNI_ALPHA, /* U+00c52d: */ + RTUNI_ALPHA, /* U+00c52e: */ + RTUNI_ALPHA, /* U+00c52f: */ + RTUNI_ALPHA, /* U+00c530: */ + RTUNI_ALPHA, /* U+00c531: */ + RTUNI_ALPHA, /* U+00c532: */ + RTUNI_ALPHA, /* U+00c533: */ + RTUNI_ALPHA, /* U+00c534: */ + RTUNI_ALPHA, /* U+00c535: */ + RTUNI_ALPHA, /* U+00c536: */ + RTUNI_ALPHA, /* U+00c537: */ + RTUNI_ALPHA, /* U+00c538: */ + RTUNI_ALPHA, /* U+00c539: */ + RTUNI_ALPHA, /* U+00c53a: */ + RTUNI_ALPHA, /* U+00c53b: */ + RTUNI_ALPHA, /* U+00c53c: */ + RTUNI_ALPHA, /* U+00c53d: */ + RTUNI_ALPHA, /* U+00c53e: */ + RTUNI_ALPHA, /* U+00c53f: */ + RTUNI_ALPHA, /* U+00c540: */ + RTUNI_ALPHA, /* U+00c541: */ + RTUNI_ALPHA, /* U+00c542: */ + RTUNI_ALPHA, /* U+00c543: */ + RTUNI_ALPHA, /* U+00c544: */ + RTUNI_ALPHA, /* U+00c545: */ + RTUNI_ALPHA, /* U+00c546: */ + RTUNI_ALPHA, /* U+00c547: */ + RTUNI_ALPHA, /* U+00c548: */ + RTUNI_ALPHA, /* U+00c549: */ + RTUNI_ALPHA, /* U+00c54a: */ + RTUNI_ALPHA, /* U+00c54b: */ + RTUNI_ALPHA, /* U+00c54c: */ + RTUNI_ALPHA, /* U+00c54d: */ + RTUNI_ALPHA, /* U+00c54e: */ + RTUNI_ALPHA, /* U+00c54f: */ + RTUNI_ALPHA, /* U+00c550: */ + RTUNI_ALPHA, /* U+00c551: */ + RTUNI_ALPHA, /* U+00c552: */ + RTUNI_ALPHA, /* U+00c553: */ + RTUNI_ALPHA, /* U+00c554: */ + RTUNI_ALPHA, /* U+00c555: */ + RTUNI_ALPHA, /* U+00c556: */ + RTUNI_ALPHA, /* U+00c557: */ + RTUNI_ALPHA, /* U+00c558: */ + RTUNI_ALPHA, /* U+00c559: */ + RTUNI_ALPHA, /* U+00c55a: */ + RTUNI_ALPHA, /* U+00c55b: */ + RTUNI_ALPHA, /* U+00c55c: */ + RTUNI_ALPHA, /* U+00c55d: */ + RTUNI_ALPHA, /* U+00c55e: */ + RTUNI_ALPHA, /* U+00c55f: */ + RTUNI_ALPHA, /* U+00c560: */ + RTUNI_ALPHA, /* U+00c561: */ + RTUNI_ALPHA, /* U+00c562: */ + RTUNI_ALPHA, /* U+00c563: */ + RTUNI_ALPHA, /* U+00c564: */ + RTUNI_ALPHA, /* U+00c565: */ + RTUNI_ALPHA, /* U+00c566: */ + RTUNI_ALPHA, /* U+00c567: */ + RTUNI_ALPHA, /* U+00c568: */ + RTUNI_ALPHA, /* U+00c569: */ + RTUNI_ALPHA, /* U+00c56a: */ + RTUNI_ALPHA, /* U+00c56b: */ + RTUNI_ALPHA, /* U+00c56c: */ + RTUNI_ALPHA, /* U+00c56d: */ + RTUNI_ALPHA, /* U+00c56e: */ + RTUNI_ALPHA, /* U+00c56f: */ + RTUNI_ALPHA, /* U+00c570: */ + RTUNI_ALPHA, /* U+00c571: */ + RTUNI_ALPHA, /* U+00c572: */ + RTUNI_ALPHA, /* U+00c573: */ + RTUNI_ALPHA, /* U+00c574: */ + RTUNI_ALPHA, /* U+00c575: */ + RTUNI_ALPHA, /* U+00c576: */ + RTUNI_ALPHA, /* U+00c577: */ + RTUNI_ALPHA, /* U+00c578: */ + RTUNI_ALPHA, /* U+00c579: */ + RTUNI_ALPHA, /* U+00c57a: */ + RTUNI_ALPHA, /* U+00c57b: */ + RTUNI_ALPHA, /* U+00c57c: */ + RTUNI_ALPHA, /* U+00c57d: */ + RTUNI_ALPHA, /* U+00c57e: */ + RTUNI_ALPHA, /* U+00c57f: */ + RTUNI_ALPHA, /* U+00c580: */ + RTUNI_ALPHA, /* U+00c581: */ + RTUNI_ALPHA, /* U+00c582: */ + RTUNI_ALPHA, /* U+00c583: */ + RTUNI_ALPHA, /* U+00c584: */ + RTUNI_ALPHA, /* U+00c585: */ + RTUNI_ALPHA, /* U+00c586: */ + RTUNI_ALPHA, /* U+00c587: */ + RTUNI_ALPHA, /* U+00c588: */ + RTUNI_ALPHA, /* U+00c589: */ + RTUNI_ALPHA, /* U+00c58a: */ + RTUNI_ALPHA, /* U+00c58b: */ + RTUNI_ALPHA, /* U+00c58c: */ + RTUNI_ALPHA, /* U+00c58d: */ + RTUNI_ALPHA, /* U+00c58e: */ + RTUNI_ALPHA, /* U+00c58f: */ + RTUNI_ALPHA, /* U+00c590: */ + RTUNI_ALPHA, /* U+00c591: */ + RTUNI_ALPHA, /* U+00c592: */ + RTUNI_ALPHA, /* U+00c593: */ + RTUNI_ALPHA, /* U+00c594: */ + RTUNI_ALPHA, /* U+00c595: */ + RTUNI_ALPHA, /* U+00c596: */ + RTUNI_ALPHA, /* U+00c597: */ + RTUNI_ALPHA, /* U+00c598: */ + RTUNI_ALPHA, /* U+00c599: */ + RTUNI_ALPHA, /* U+00c59a: */ + RTUNI_ALPHA, /* U+00c59b: */ + RTUNI_ALPHA, /* U+00c59c: */ + RTUNI_ALPHA, /* U+00c59d: */ + RTUNI_ALPHA, /* U+00c59e: */ + RTUNI_ALPHA, /* U+00c59f: */ + RTUNI_ALPHA, /* U+00c5a0: */ + RTUNI_ALPHA, /* U+00c5a1: */ + RTUNI_ALPHA, /* U+00c5a2: */ + RTUNI_ALPHA, /* U+00c5a3: */ + RTUNI_ALPHA, /* U+00c5a4: */ + RTUNI_ALPHA, /* U+00c5a5: */ + RTUNI_ALPHA, /* U+00c5a6: */ + RTUNI_ALPHA, /* U+00c5a7: */ + RTUNI_ALPHA, /* U+00c5a8: */ + RTUNI_ALPHA, /* U+00c5a9: */ + RTUNI_ALPHA, /* U+00c5aa: */ + RTUNI_ALPHA, /* U+00c5ab: */ + RTUNI_ALPHA, /* U+00c5ac: */ + RTUNI_ALPHA, /* U+00c5ad: */ + RTUNI_ALPHA, /* U+00c5ae: */ + RTUNI_ALPHA, /* U+00c5af: */ + RTUNI_ALPHA, /* U+00c5b0: */ + RTUNI_ALPHA, /* U+00c5b1: */ + RTUNI_ALPHA, /* U+00c5b2: */ + RTUNI_ALPHA, /* U+00c5b3: */ + RTUNI_ALPHA, /* U+00c5b4: */ + RTUNI_ALPHA, /* U+00c5b5: */ + RTUNI_ALPHA, /* U+00c5b6: */ + RTUNI_ALPHA, /* U+00c5b7: */ + RTUNI_ALPHA, /* U+00c5b8: */ + RTUNI_ALPHA, /* U+00c5b9: */ + RTUNI_ALPHA, /* U+00c5ba: */ + RTUNI_ALPHA, /* U+00c5bb: */ + RTUNI_ALPHA, /* U+00c5bc: */ + RTUNI_ALPHA, /* U+00c5bd: */ + RTUNI_ALPHA, /* U+00c5be: */ + RTUNI_ALPHA, /* U+00c5bf: */ + RTUNI_ALPHA, /* U+00c5c0: */ + RTUNI_ALPHA, /* U+00c5c1: */ + RTUNI_ALPHA, /* U+00c5c2: */ + RTUNI_ALPHA, /* U+00c5c3: */ + RTUNI_ALPHA, /* U+00c5c4: */ + RTUNI_ALPHA, /* U+00c5c5: */ + RTUNI_ALPHA, /* U+00c5c6: */ + RTUNI_ALPHA, /* U+00c5c7: */ + RTUNI_ALPHA, /* U+00c5c8: */ + RTUNI_ALPHA, /* U+00c5c9: */ + RTUNI_ALPHA, /* U+00c5ca: */ + RTUNI_ALPHA, /* U+00c5cb: */ + RTUNI_ALPHA, /* U+00c5cc: */ + RTUNI_ALPHA, /* U+00c5cd: */ + RTUNI_ALPHA, /* U+00c5ce: */ + RTUNI_ALPHA, /* U+00c5cf: */ + RTUNI_ALPHA, /* U+00c5d0: */ + RTUNI_ALPHA, /* U+00c5d1: */ + RTUNI_ALPHA, /* U+00c5d2: */ + RTUNI_ALPHA, /* U+00c5d3: */ + RTUNI_ALPHA, /* U+00c5d4: */ + RTUNI_ALPHA, /* U+00c5d5: */ + RTUNI_ALPHA, /* U+00c5d6: */ + RTUNI_ALPHA, /* U+00c5d7: */ + RTUNI_ALPHA, /* U+00c5d8: */ + RTUNI_ALPHA, /* U+00c5d9: */ + RTUNI_ALPHA, /* U+00c5da: */ + RTUNI_ALPHA, /* U+00c5db: */ + RTUNI_ALPHA, /* U+00c5dc: */ + RTUNI_ALPHA, /* U+00c5dd: */ + RTUNI_ALPHA, /* U+00c5de: */ + RTUNI_ALPHA, /* U+00c5df: */ + RTUNI_ALPHA, /* U+00c5e0: */ + RTUNI_ALPHA, /* U+00c5e1: */ + RTUNI_ALPHA, /* U+00c5e2: */ + RTUNI_ALPHA, /* U+00c5e3: */ + RTUNI_ALPHA, /* U+00c5e4: */ + RTUNI_ALPHA, /* U+00c5e5: */ + RTUNI_ALPHA, /* U+00c5e6: */ + RTUNI_ALPHA, /* U+00c5e7: */ + RTUNI_ALPHA, /* U+00c5e8: */ + RTUNI_ALPHA, /* U+00c5e9: */ + RTUNI_ALPHA, /* U+00c5ea: */ + RTUNI_ALPHA, /* U+00c5eb: */ + RTUNI_ALPHA, /* U+00c5ec: */ + RTUNI_ALPHA, /* U+00c5ed: */ + RTUNI_ALPHA, /* U+00c5ee: */ + RTUNI_ALPHA, /* U+00c5ef: */ + RTUNI_ALPHA, /* U+00c5f0: */ + RTUNI_ALPHA, /* U+00c5f1: */ + RTUNI_ALPHA, /* U+00c5f2: */ + RTUNI_ALPHA, /* U+00c5f3: */ + RTUNI_ALPHA, /* U+00c5f4: */ + RTUNI_ALPHA, /* U+00c5f5: */ + RTUNI_ALPHA, /* U+00c5f6: */ + RTUNI_ALPHA, /* U+00c5f7: */ + RTUNI_ALPHA, /* U+00c5f8: */ + RTUNI_ALPHA, /* U+00c5f9: */ + RTUNI_ALPHA, /* U+00c5fa: */ + RTUNI_ALPHA, /* U+00c5fb: */ + RTUNI_ALPHA, /* U+00c5fc: */ + RTUNI_ALPHA, /* U+00c5fd: */ + RTUNI_ALPHA, /* U+00c5fe: */ + RTUNI_ALPHA, /* U+00c5ff: */ + RTUNI_ALPHA, /* U+00c600: */ + RTUNI_ALPHA, /* U+00c601: */ + RTUNI_ALPHA, /* U+00c602: */ + RTUNI_ALPHA, /* U+00c603: */ + RTUNI_ALPHA, /* U+00c604: */ + RTUNI_ALPHA, /* U+00c605: */ + RTUNI_ALPHA, /* U+00c606: */ + RTUNI_ALPHA, /* U+00c607: */ + RTUNI_ALPHA, /* U+00c608: */ + RTUNI_ALPHA, /* U+00c609: */ + RTUNI_ALPHA, /* U+00c60a: */ + RTUNI_ALPHA, /* U+00c60b: */ + RTUNI_ALPHA, /* U+00c60c: */ + RTUNI_ALPHA, /* U+00c60d: */ + RTUNI_ALPHA, /* U+00c60e: */ + RTUNI_ALPHA, /* U+00c60f: */ + RTUNI_ALPHA, /* U+00c610: */ + RTUNI_ALPHA, /* U+00c611: */ + RTUNI_ALPHA, /* U+00c612: */ + RTUNI_ALPHA, /* U+00c613: */ + RTUNI_ALPHA, /* U+00c614: */ + RTUNI_ALPHA, /* U+00c615: */ + RTUNI_ALPHA, /* U+00c616: */ + RTUNI_ALPHA, /* U+00c617: */ + RTUNI_ALPHA, /* U+00c618: */ + RTUNI_ALPHA, /* U+00c619: */ + RTUNI_ALPHA, /* U+00c61a: */ + RTUNI_ALPHA, /* U+00c61b: */ + RTUNI_ALPHA, /* U+00c61c: */ + RTUNI_ALPHA, /* U+00c61d: */ + RTUNI_ALPHA, /* U+00c61e: */ + RTUNI_ALPHA, /* U+00c61f: */ + RTUNI_ALPHA, /* U+00c620: */ + RTUNI_ALPHA, /* U+00c621: */ + RTUNI_ALPHA, /* U+00c622: */ + RTUNI_ALPHA, /* U+00c623: */ + RTUNI_ALPHA, /* U+00c624: */ + RTUNI_ALPHA, /* U+00c625: */ + RTUNI_ALPHA, /* U+00c626: */ + RTUNI_ALPHA, /* U+00c627: */ + RTUNI_ALPHA, /* U+00c628: */ + RTUNI_ALPHA, /* U+00c629: */ + RTUNI_ALPHA, /* U+00c62a: */ + RTUNI_ALPHA, /* U+00c62b: */ + RTUNI_ALPHA, /* U+00c62c: */ + RTUNI_ALPHA, /* U+00c62d: */ + RTUNI_ALPHA, /* U+00c62e: */ + RTUNI_ALPHA, /* U+00c62f: */ + RTUNI_ALPHA, /* U+00c630: */ + RTUNI_ALPHA, /* U+00c631: */ + RTUNI_ALPHA, /* U+00c632: */ + RTUNI_ALPHA, /* U+00c633: */ + RTUNI_ALPHA, /* U+00c634: */ + RTUNI_ALPHA, /* U+00c635: */ + RTUNI_ALPHA, /* U+00c636: */ + RTUNI_ALPHA, /* U+00c637: */ + RTUNI_ALPHA, /* U+00c638: */ + RTUNI_ALPHA, /* U+00c639: */ + RTUNI_ALPHA, /* U+00c63a: */ + RTUNI_ALPHA, /* U+00c63b: */ + RTUNI_ALPHA, /* U+00c63c: */ + RTUNI_ALPHA, /* U+00c63d: */ + RTUNI_ALPHA, /* U+00c63e: */ + RTUNI_ALPHA, /* U+00c63f: */ + RTUNI_ALPHA, /* U+00c640: */ + RTUNI_ALPHA, /* U+00c641: */ + RTUNI_ALPHA, /* U+00c642: */ + RTUNI_ALPHA, /* U+00c643: */ + RTUNI_ALPHA, /* U+00c644: */ + RTUNI_ALPHA, /* U+00c645: */ + RTUNI_ALPHA, /* U+00c646: */ + RTUNI_ALPHA, /* U+00c647: */ + RTUNI_ALPHA, /* U+00c648: */ + RTUNI_ALPHA, /* U+00c649: */ + RTUNI_ALPHA, /* U+00c64a: */ + RTUNI_ALPHA, /* U+00c64b: */ + RTUNI_ALPHA, /* U+00c64c: */ + RTUNI_ALPHA, /* U+00c64d: */ + RTUNI_ALPHA, /* U+00c64e: */ + RTUNI_ALPHA, /* U+00c64f: */ + RTUNI_ALPHA, /* U+00c650: */ + RTUNI_ALPHA, /* U+00c651: */ + RTUNI_ALPHA, /* U+00c652: */ + RTUNI_ALPHA, /* U+00c653: */ + RTUNI_ALPHA, /* U+00c654: */ + RTUNI_ALPHA, /* U+00c655: */ + RTUNI_ALPHA, /* U+00c656: */ + RTUNI_ALPHA, /* U+00c657: */ + RTUNI_ALPHA, /* U+00c658: */ + RTUNI_ALPHA, /* U+00c659: */ + RTUNI_ALPHA, /* U+00c65a: */ + RTUNI_ALPHA, /* U+00c65b: */ + RTUNI_ALPHA, /* U+00c65c: */ + RTUNI_ALPHA, /* U+00c65d: */ + RTUNI_ALPHA, /* U+00c65e: */ + RTUNI_ALPHA, /* U+00c65f: */ + RTUNI_ALPHA, /* U+00c660: */ + RTUNI_ALPHA, /* U+00c661: */ + RTUNI_ALPHA, /* U+00c662: */ + RTUNI_ALPHA, /* U+00c663: */ + RTUNI_ALPHA, /* U+00c664: */ + RTUNI_ALPHA, /* U+00c665: */ + RTUNI_ALPHA, /* U+00c666: */ + RTUNI_ALPHA, /* U+00c667: */ + RTUNI_ALPHA, /* U+00c668: */ + RTUNI_ALPHA, /* U+00c669: */ + RTUNI_ALPHA, /* U+00c66a: */ + RTUNI_ALPHA, /* U+00c66b: */ + RTUNI_ALPHA, /* U+00c66c: */ + RTUNI_ALPHA, /* U+00c66d: */ + RTUNI_ALPHA, /* U+00c66e: */ + RTUNI_ALPHA, /* U+00c66f: */ + RTUNI_ALPHA, /* U+00c670: */ + RTUNI_ALPHA, /* U+00c671: */ + RTUNI_ALPHA, /* U+00c672: */ + RTUNI_ALPHA, /* U+00c673: */ + RTUNI_ALPHA, /* U+00c674: */ + RTUNI_ALPHA, /* U+00c675: */ + RTUNI_ALPHA, /* U+00c676: */ + RTUNI_ALPHA, /* U+00c677: */ + RTUNI_ALPHA, /* U+00c678: */ + RTUNI_ALPHA, /* U+00c679: */ + RTUNI_ALPHA, /* U+00c67a: */ + RTUNI_ALPHA, /* U+00c67b: */ + RTUNI_ALPHA, /* U+00c67c: */ + RTUNI_ALPHA, /* U+00c67d: */ + RTUNI_ALPHA, /* U+00c67e: */ + RTUNI_ALPHA, /* U+00c67f: */ + RTUNI_ALPHA, /* U+00c680: */ + RTUNI_ALPHA, /* U+00c681: */ + RTUNI_ALPHA, /* U+00c682: */ + RTUNI_ALPHA, /* U+00c683: */ + RTUNI_ALPHA, /* U+00c684: */ + RTUNI_ALPHA, /* U+00c685: */ + RTUNI_ALPHA, /* U+00c686: */ + RTUNI_ALPHA, /* U+00c687: */ + RTUNI_ALPHA, /* U+00c688: */ + RTUNI_ALPHA, /* U+00c689: */ + RTUNI_ALPHA, /* U+00c68a: */ + RTUNI_ALPHA, /* U+00c68b: */ + RTUNI_ALPHA, /* U+00c68c: */ + RTUNI_ALPHA, /* U+00c68d: */ + RTUNI_ALPHA, /* U+00c68e: */ + RTUNI_ALPHA, /* U+00c68f: */ + RTUNI_ALPHA, /* U+00c690: */ + RTUNI_ALPHA, /* U+00c691: */ + RTUNI_ALPHA, /* U+00c692: */ + RTUNI_ALPHA, /* U+00c693: */ + RTUNI_ALPHA, /* U+00c694: */ + RTUNI_ALPHA, /* U+00c695: */ + RTUNI_ALPHA, /* U+00c696: */ + RTUNI_ALPHA, /* U+00c697: */ + RTUNI_ALPHA, /* U+00c698: */ + RTUNI_ALPHA, /* U+00c699: */ + RTUNI_ALPHA, /* U+00c69a: */ + RTUNI_ALPHA, /* U+00c69b: */ + RTUNI_ALPHA, /* U+00c69c: */ + RTUNI_ALPHA, /* U+00c69d: */ + RTUNI_ALPHA, /* U+00c69e: */ + RTUNI_ALPHA, /* U+00c69f: */ + RTUNI_ALPHA, /* U+00c6a0: */ + RTUNI_ALPHA, /* U+00c6a1: */ + RTUNI_ALPHA, /* U+00c6a2: */ + RTUNI_ALPHA, /* U+00c6a3: */ + RTUNI_ALPHA, /* U+00c6a4: */ + RTUNI_ALPHA, /* U+00c6a5: */ + RTUNI_ALPHA, /* U+00c6a6: */ + RTUNI_ALPHA, /* U+00c6a7: */ + RTUNI_ALPHA, /* U+00c6a8: */ + RTUNI_ALPHA, /* U+00c6a9: */ + RTUNI_ALPHA, /* U+00c6aa: */ + RTUNI_ALPHA, /* U+00c6ab: */ + RTUNI_ALPHA, /* U+00c6ac: */ + RTUNI_ALPHA, /* U+00c6ad: */ + RTUNI_ALPHA, /* U+00c6ae: */ + RTUNI_ALPHA, /* U+00c6af: */ + RTUNI_ALPHA, /* U+00c6b0: */ + RTUNI_ALPHA, /* U+00c6b1: */ + RTUNI_ALPHA, /* U+00c6b2: */ + RTUNI_ALPHA, /* U+00c6b3: */ + RTUNI_ALPHA, /* U+00c6b4: */ + RTUNI_ALPHA, /* U+00c6b5: */ + RTUNI_ALPHA, /* U+00c6b6: */ + RTUNI_ALPHA, /* U+00c6b7: */ + RTUNI_ALPHA, /* U+00c6b8: */ + RTUNI_ALPHA, /* U+00c6b9: */ + RTUNI_ALPHA, /* U+00c6ba: */ + RTUNI_ALPHA, /* U+00c6bb: */ + RTUNI_ALPHA, /* U+00c6bc: */ + RTUNI_ALPHA, /* U+00c6bd: */ + RTUNI_ALPHA, /* U+00c6be: */ + RTUNI_ALPHA, /* U+00c6bf: */ + RTUNI_ALPHA, /* U+00c6c0: */ + RTUNI_ALPHA, /* U+00c6c1: */ + RTUNI_ALPHA, /* U+00c6c2: */ + RTUNI_ALPHA, /* U+00c6c3: */ + RTUNI_ALPHA, /* U+00c6c4: */ + RTUNI_ALPHA, /* U+00c6c5: */ + RTUNI_ALPHA, /* U+00c6c6: */ + RTUNI_ALPHA, /* U+00c6c7: */ + RTUNI_ALPHA, /* U+00c6c8: */ + RTUNI_ALPHA, /* U+00c6c9: */ + RTUNI_ALPHA, /* U+00c6ca: */ + RTUNI_ALPHA, /* U+00c6cb: */ + RTUNI_ALPHA, /* U+00c6cc: */ + RTUNI_ALPHA, /* U+00c6cd: */ + RTUNI_ALPHA, /* U+00c6ce: */ + RTUNI_ALPHA, /* U+00c6cf: */ + RTUNI_ALPHA, /* U+00c6d0: */ + RTUNI_ALPHA, /* U+00c6d1: */ + RTUNI_ALPHA, /* U+00c6d2: */ + RTUNI_ALPHA, /* U+00c6d3: */ + RTUNI_ALPHA, /* U+00c6d4: */ + RTUNI_ALPHA, /* U+00c6d5: */ + RTUNI_ALPHA, /* U+00c6d6: */ + RTUNI_ALPHA, /* U+00c6d7: */ + RTUNI_ALPHA, /* U+00c6d8: */ + RTUNI_ALPHA, /* U+00c6d9: */ + RTUNI_ALPHA, /* U+00c6da: */ + RTUNI_ALPHA, /* U+00c6db: */ + RTUNI_ALPHA, /* U+00c6dc: */ + RTUNI_ALPHA, /* U+00c6dd: */ + RTUNI_ALPHA, /* U+00c6de: */ + RTUNI_ALPHA, /* U+00c6df: */ + RTUNI_ALPHA, /* U+00c6e0: */ + RTUNI_ALPHA, /* U+00c6e1: */ + RTUNI_ALPHA, /* U+00c6e2: */ + RTUNI_ALPHA, /* U+00c6e3: */ + RTUNI_ALPHA, /* U+00c6e4: */ + RTUNI_ALPHA, /* U+00c6e5: */ + RTUNI_ALPHA, /* U+00c6e6: */ + RTUNI_ALPHA, /* U+00c6e7: */ + RTUNI_ALPHA, /* U+00c6e8: */ + RTUNI_ALPHA, /* U+00c6e9: */ + RTUNI_ALPHA, /* U+00c6ea: */ + RTUNI_ALPHA, /* U+00c6eb: */ + RTUNI_ALPHA, /* U+00c6ec: */ + RTUNI_ALPHA, /* U+00c6ed: */ + RTUNI_ALPHA, /* U+00c6ee: */ + RTUNI_ALPHA, /* U+00c6ef: */ + RTUNI_ALPHA, /* U+00c6f0: */ + RTUNI_ALPHA, /* U+00c6f1: */ + RTUNI_ALPHA, /* U+00c6f2: */ + RTUNI_ALPHA, /* U+00c6f3: */ + RTUNI_ALPHA, /* U+00c6f4: */ + RTUNI_ALPHA, /* U+00c6f5: */ + RTUNI_ALPHA, /* U+00c6f6: */ + RTUNI_ALPHA, /* U+00c6f7: */ + RTUNI_ALPHA, /* U+00c6f8: */ + RTUNI_ALPHA, /* U+00c6f9: */ + RTUNI_ALPHA, /* U+00c6fa: */ + RTUNI_ALPHA, /* U+00c6fb: */ + RTUNI_ALPHA, /* U+00c6fc: */ + RTUNI_ALPHA, /* U+00c6fd: */ + RTUNI_ALPHA, /* U+00c6fe: */ + RTUNI_ALPHA, /* U+00c6ff: */ + RTUNI_ALPHA, /* U+00c700: */ + RTUNI_ALPHA, /* U+00c701: */ + RTUNI_ALPHA, /* U+00c702: */ + RTUNI_ALPHA, /* U+00c703: */ + RTUNI_ALPHA, /* U+00c704: */ + RTUNI_ALPHA, /* U+00c705: */ + RTUNI_ALPHA, /* U+00c706: */ + RTUNI_ALPHA, /* U+00c707: */ + RTUNI_ALPHA, /* U+00c708: */ + RTUNI_ALPHA, /* U+00c709: */ + RTUNI_ALPHA, /* U+00c70a: */ + RTUNI_ALPHA, /* U+00c70b: */ + RTUNI_ALPHA, /* U+00c70c: */ + RTUNI_ALPHA, /* U+00c70d: */ + RTUNI_ALPHA, /* U+00c70e: */ + RTUNI_ALPHA, /* U+00c70f: */ + RTUNI_ALPHA, /* U+00c710: */ + RTUNI_ALPHA, /* U+00c711: */ + RTUNI_ALPHA, /* U+00c712: */ + RTUNI_ALPHA, /* U+00c713: */ + RTUNI_ALPHA, /* U+00c714: */ + RTUNI_ALPHA, /* U+00c715: */ + RTUNI_ALPHA, /* U+00c716: */ + RTUNI_ALPHA, /* U+00c717: */ + RTUNI_ALPHA, /* U+00c718: */ + RTUNI_ALPHA, /* U+00c719: */ + RTUNI_ALPHA, /* U+00c71a: */ + RTUNI_ALPHA, /* U+00c71b: */ + RTUNI_ALPHA, /* U+00c71c: */ + RTUNI_ALPHA, /* U+00c71d: */ + RTUNI_ALPHA, /* U+00c71e: */ + RTUNI_ALPHA, /* U+00c71f: */ + RTUNI_ALPHA, /* U+00c720: */ + RTUNI_ALPHA, /* U+00c721: */ + RTUNI_ALPHA, /* U+00c722: */ + RTUNI_ALPHA, /* U+00c723: */ + RTUNI_ALPHA, /* U+00c724: */ + RTUNI_ALPHA, /* U+00c725: */ + RTUNI_ALPHA, /* U+00c726: */ + RTUNI_ALPHA, /* U+00c727: */ + RTUNI_ALPHA, /* U+00c728: */ + RTUNI_ALPHA, /* U+00c729: */ + RTUNI_ALPHA, /* U+00c72a: */ + RTUNI_ALPHA, /* U+00c72b: */ + RTUNI_ALPHA, /* U+00c72c: */ + RTUNI_ALPHA, /* U+00c72d: */ + RTUNI_ALPHA, /* U+00c72e: */ + RTUNI_ALPHA, /* U+00c72f: */ + RTUNI_ALPHA, /* U+00c730: */ + RTUNI_ALPHA, /* U+00c731: */ + RTUNI_ALPHA, /* U+00c732: */ + RTUNI_ALPHA, /* U+00c733: */ + RTUNI_ALPHA, /* U+00c734: */ + RTUNI_ALPHA, /* U+00c735: */ + RTUNI_ALPHA, /* U+00c736: */ + RTUNI_ALPHA, /* U+00c737: */ + RTUNI_ALPHA, /* U+00c738: */ + RTUNI_ALPHA, /* U+00c739: */ + RTUNI_ALPHA, /* U+00c73a: */ + RTUNI_ALPHA, /* U+00c73b: */ + RTUNI_ALPHA, /* U+00c73c: */ + RTUNI_ALPHA, /* U+00c73d: */ + RTUNI_ALPHA, /* U+00c73e: */ + RTUNI_ALPHA, /* U+00c73f: */ + RTUNI_ALPHA, /* U+00c740: */ + RTUNI_ALPHA, /* U+00c741: */ + RTUNI_ALPHA, /* U+00c742: */ + RTUNI_ALPHA, /* U+00c743: */ + RTUNI_ALPHA, /* U+00c744: */ + RTUNI_ALPHA, /* U+00c745: */ + RTUNI_ALPHA, /* U+00c746: */ + RTUNI_ALPHA, /* U+00c747: */ + RTUNI_ALPHA, /* U+00c748: */ + RTUNI_ALPHA, /* U+00c749: */ + RTUNI_ALPHA, /* U+00c74a: */ + RTUNI_ALPHA, /* U+00c74b: */ + RTUNI_ALPHA, /* U+00c74c: */ + RTUNI_ALPHA, /* U+00c74d: */ + RTUNI_ALPHA, /* U+00c74e: */ + RTUNI_ALPHA, /* U+00c74f: */ + RTUNI_ALPHA, /* U+00c750: */ + RTUNI_ALPHA, /* U+00c751: */ + RTUNI_ALPHA, /* U+00c752: */ + RTUNI_ALPHA, /* U+00c753: */ + RTUNI_ALPHA, /* U+00c754: */ + RTUNI_ALPHA, /* U+00c755: */ + RTUNI_ALPHA, /* U+00c756: */ + RTUNI_ALPHA, /* U+00c757: */ + RTUNI_ALPHA, /* U+00c758: */ + RTUNI_ALPHA, /* U+00c759: */ + RTUNI_ALPHA, /* U+00c75a: */ + RTUNI_ALPHA, /* U+00c75b: */ + RTUNI_ALPHA, /* U+00c75c: */ + RTUNI_ALPHA, /* U+00c75d: */ + RTUNI_ALPHA, /* U+00c75e: */ + RTUNI_ALPHA, /* U+00c75f: */ + RTUNI_ALPHA, /* U+00c760: */ + RTUNI_ALPHA, /* U+00c761: */ + RTUNI_ALPHA, /* U+00c762: */ + RTUNI_ALPHA, /* U+00c763: */ + RTUNI_ALPHA, /* U+00c764: */ + RTUNI_ALPHA, /* U+00c765: */ + RTUNI_ALPHA, /* U+00c766: */ + RTUNI_ALPHA, /* U+00c767: */ + RTUNI_ALPHA, /* U+00c768: */ + RTUNI_ALPHA, /* U+00c769: */ + RTUNI_ALPHA, /* U+00c76a: */ + RTUNI_ALPHA, /* U+00c76b: */ + RTUNI_ALPHA, /* U+00c76c: */ + RTUNI_ALPHA, /* U+00c76d: */ + RTUNI_ALPHA, /* U+00c76e: */ + RTUNI_ALPHA, /* U+00c76f: */ + RTUNI_ALPHA, /* U+00c770: */ + RTUNI_ALPHA, /* U+00c771: */ + RTUNI_ALPHA, /* U+00c772: */ + RTUNI_ALPHA, /* U+00c773: */ + RTUNI_ALPHA, /* U+00c774: */ + RTUNI_ALPHA, /* U+00c775: */ + RTUNI_ALPHA, /* U+00c776: */ + RTUNI_ALPHA, /* U+00c777: */ + RTUNI_ALPHA, /* U+00c778: */ + RTUNI_ALPHA, /* U+00c779: */ + RTUNI_ALPHA, /* U+00c77a: */ + RTUNI_ALPHA, /* U+00c77b: */ + RTUNI_ALPHA, /* U+00c77c: */ + RTUNI_ALPHA, /* U+00c77d: */ + RTUNI_ALPHA, /* U+00c77e: */ + RTUNI_ALPHA, /* U+00c77f: */ + RTUNI_ALPHA, /* U+00c780: */ + RTUNI_ALPHA, /* U+00c781: */ + RTUNI_ALPHA, /* U+00c782: */ + RTUNI_ALPHA, /* U+00c783: */ + RTUNI_ALPHA, /* U+00c784: */ + RTUNI_ALPHA, /* U+00c785: */ + RTUNI_ALPHA, /* U+00c786: */ + RTUNI_ALPHA, /* U+00c787: */ + RTUNI_ALPHA, /* U+00c788: */ + RTUNI_ALPHA, /* U+00c789: */ + RTUNI_ALPHA, /* U+00c78a: */ + RTUNI_ALPHA, /* U+00c78b: */ + RTUNI_ALPHA, /* U+00c78c: */ + RTUNI_ALPHA, /* U+00c78d: */ + RTUNI_ALPHA, /* U+00c78e: */ + RTUNI_ALPHA, /* U+00c78f: */ + RTUNI_ALPHA, /* U+00c790: */ + RTUNI_ALPHA, /* U+00c791: */ + RTUNI_ALPHA, /* U+00c792: */ + RTUNI_ALPHA, /* U+00c793: */ + RTUNI_ALPHA, /* U+00c794: */ + RTUNI_ALPHA, /* U+00c795: */ + RTUNI_ALPHA, /* U+00c796: */ + RTUNI_ALPHA, /* U+00c797: */ + RTUNI_ALPHA, /* U+00c798: */ + RTUNI_ALPHA, /* U+00c799: */ + RTUNI_ALPHA, /* U+00c79a: */ + RTUNI_ALPHA, /* U+00c79b: */ + RTUNI_ALPHA, /* U+00c79c: */ + RTUNI_ALPHA, /* U+00c79d: */ + RTUNI_ALPHA, /* U+00c79e: */ + RTUNI_ALPHA, /* U+00c79f: */ + RTUNI_ALPHA, /* U+00c7a0: */ + RTUNI_ALPHA, /* U+00c7a1: */ + RTUNI_ALPHA, /* U+00c7a2: */ + RTUNI_ALPHA, /* U+00c7a3: */ + RTUNI_ALPHA, /* U+00c7a4: */ + RTUNI_ALPHA, /* U+00c7a5: */ + RTUNI_ALPHA, /* U+00c7a6: */ + RTUNI_ALPHA, /* U+00c7a7: */ + RTUNI_ALPHA, /* U+00c7a8: */ + RTUNI_ALPHA, /* U+00c7a9: */ + RTUNI_ALPHA, /* U+00c7aa: */ + RTUNI_ALPHA, /* U+00c7ab: */ + RTUNI_ALPHA, /* U+00c7ac: */ + RTUNI_ALPHA, /* U+00c7ad: */ + RTUNI_ALPHA, /* U+00c7ae: */ + RTUNI_ALPHA, /* U+00c7af: */ + RTUNI_ALPHA, /* U+00c7b0: */ + RTUNI_ALPHA, /* U+00c7b1: */ + RTUNI_ALPHA, /* U+00c7b2: */ + RTUNI_ALPHA, /* U+00c7b3: */ + RTUNI_ALPHA, /* U+00c7b4: */ + RTUNI_ALPHA, /* U+00c7b5: */ + RTUNI_ALPHA, /* U+00c7b6: */ + RTUNI_ALPHA, /* U+00c7b7: */ + RTUNI_ALPHA, /* U+00c7b8: */ + RTUNI_ALPHA, /* U+00c7b9: */ + RTUNI_ALPHA, /* U+00c7ba: */ + RTUNI_ALPHA, /* U+00c7bb: */ + RTUNI_ALPHA, /* U+00c7bc: */ + RTUNI_ALPHA, /* U+00c7bd: */ + RTUNI_ALPHA, /* U+00c7be: */ + RTUNI_ALPHA, /* U+00c7bf: */ + RTUNI_ALPHA, /* U+00c7c0: */ + RTUNI_ALPHA, /* U+00c7c1: */ + RTUNI_ALPHA, /* U+00c7c2: */ + RTUNI_ALPHA, /* U+00c7c3: */ + RTUNI_ALPHA, /* U+00c7c4: */ + RTUNI_ALPHA, /* U+00c7c5: */ + RTUNI_ALPHA, /* U+00c7c6: */ + RTUNI_ALPHA, /* U+00c7c7: */ + RTUNI_ALPHA, /* U+00c7c8: */ + RTUNI_ALPHA, /* U+00c7c9: */ + RTUNI_ALPHA, /* U+00c7ca: */ + RTUNI_ALPHA, /* U+00c7cb: */ + RTUNI_ALPHA, /* U+00c7cc: */ + RTUNI_ALPHA, /* U+00c7cd: */ + RTUNI_ALPHA, /* U+00c7ce: */ + RTUNI_ALPHA, /* U+00c7cf: */ + RTUNI_ALPHA, /* U+00c7d0: */ + RTUNI_ALPHA, /* U+00c7d1: */ + RTUNI_ALPHA, /* U+00c7d2: */ + RTUNI_ALPHA, /* U+00c7d3: */ + RTUNI_ALPHA, /* U+00c7d4: */ + RTUNI_ALPHA, /* U+00c7d5: */ + RTUNI_ALPHA, /* U+00c7d6: */ + RTUNI_ALPHA, /* U+00c7d7: */ + RTUNI_ALPHA, /* U+00c7d8: */ + RTUNI_ALPHA, /* U+00c7d9: */ + RTUNI_ALPHA, /* U+00c7da: */ + RTUNI_ALPHA, /* U+00c7db: */ + RTUNI_ALPHA, /* U+00c7dc: */ + RTUNI_ALPHA, /* U+00c7dd: */ + RTUNI_ALPHA, /* U+00c7de: */ + RTUNI_ALPHA, /* U+00c7df: */ + RTUNI_ALPHA, /* U+00c7e0: */ + RTUNI_ALPHA, /* U+00c7e1: */ + RTUNI_ALPHA, /* U+00c7e2: */ + RTUNI_ALPHA, /* U+00c7e3: */ + RTUNI_ALPHA, /* U+00c7e4: */ + RTUNI_ALPHA, /* U+00c7e5: */ + RTUNI_ALPHA, /* U+00c7e6: */ + RTUNI_ALPHA, /* U+00c7e7: */ + RTUNI_ALPHA, /* U+00c7e8: */ + RTUNI_ALPHA, /* U+00c7e9: */ + RTUNI_ALPHA, /* U+00c7ea: */ + RTUNI_ALPHA, /* U+00c7eb: */ + RTUNI_ALPHA, /* U+00c7ec: */ + RTUNI_ALPHA, /* U+00c7ed: */ + RTUNI_ALPHA, /* U+00c7ee: */ + RTUNI_ALPHA, /* U+00c7ef: */ + RTUNI_ALPHA, /* U+00c7f0: */ + RTUNI_ALPHA, /* U+00c7f1: */ + RTUNI_ALPHA, /* U+00c7f2: */ + RTUNI_ALPHA, /* U+00c7f3: */ + RTUNI_ALPHA, /* U+00c7f4: */ + RTUNI_ALPHA, /* U+00c7f5: */ + RTUNI_ALPHA, /* U+00c7f6: */ + RTUNI_ALPHA, /* U+00c7f7: */ + RTUNI_ALPHA, /* U+00c7f8: */ + RTUNI_ALPHA, /* U+00c7f9: */ + RTUNI_ALPHA, /* U+00c7fa: */ + RTUNI_ALPHA, /* U+00c7fb: */ + RTUNI_ALPHA, /* U+00c7fc: */ + RTUNI_ALPHA, /* U+00c7fd: */ + RTUNI_ALPHA, /* U+00c7fe: */ + RTUNI_ALPHA, /* U+00c7ff: */ + RTUNI_ALPHA, /* U+00c800: */ + RTUNI_ALPHA, /* U+00c801: */ + RTUNI_ALPHA, /* U+00c802: */ + RTUNI_ALPHA, /* U+00c803: */ + RTUNI_ALPHA, /* U+00c804: */ + RTUNI_ALPHA, /* U+00c805: */ + RTUNI_ALPHA, /* U+00c806: */ + RTUNI_ALPHA, /* U+00c807: */ + RTUNI_ALPHA, /* U+00c808: */ + RTUNI_ALPHA, /* U+00c809: */ + RTUNI_ALPHA, /* U+00c80a: */ + RTUNI_ALPHA, /* U+00c80b: */ + RTUNI_ALPHA, /* U+00c80c: */ + RTUNI_ALPHA, /* U+00c80d: */ + RTUNI_ALPHA, /* U+00c80e: */ + RTUNI_ALPHA, /* U+00c80f: */ + RTUNI_ALPHA, /* U+00c810: */ + RTUNI_ALPHA, /* U+00c811: */ + RTUNI_ALPHA, /* U+00c812: */ + RTUNI_ALPHA, /* U+00c813: */ + RTUNI_ALPHA, /* U+00c814: */ + RTUNI_ALPHA, /* U+00c815: */ + RTUNI_ALPHA, /* U+00c816: */ + RTUNI_ALPHA, /* U+00c817: */ + RTUNI_ALPHA, /* U+00c818: */ + RTUNI_ALPHA, /* U+00c819: */ + RTUNI_ALPHA, /* U+00c81a: */ + RTUNI_ALPHA, /* U+00c81b: */ + RTUNI_ALPHA, /* U+00c81c: */ + RTUNI_ALPHA, /* U+00c81d: */ + RTUNI_ALPHA, /* U+00c81e: */ + RTUNI_ALPHA, /* U+00c81f: */ + RTUNI_ALPHA, /* U+00c820: */ + RTUNI_ALPHA, /* U+00c821: */ + RTUNI_ALPHA, /* U+00c822: */ + RTUNI_ALPHA, /* U+00c823: */ + RTUNI_ALPHA, /* U+00c824: */ + RTUNI_ALPHA, /* U+00c825: */ + RTUNI_ALPHA, /* U+00c826: */ + RTUNI_ALPHA, /* U+00c827: */ + RTUNI_ALPHA, /* U+00c828: */ + RTUNI_ALPHA, /* U+00c829: */ + RTUNI_ALPHA, /* U+00c82a: */ + RTUNI_ALPHA, /* U+00c82b: */ + RTUNI_ALPHA, /* U+00c82c: */ + RTUNI_ALPHA, /* U+00c82d: */ + RTUNI_ALPHA, /* U+00c82e: */ + RTUNI_ALPHA, /* U+00c82f: */ + RTUNI_ALPHA, /* U+00c830: */ + RTUNI_ALPHA, /* U+00c831: */ + RTUNI_ALPHA, /* U+00c832: */ + RTUNI_ALPHA, /* U+00c833: */ + RTUNI_ALPHA, /* U+00c834: */ + RTUNI_ALPHA, /* U+00c835: */ + RTUNI_ALPHA, /* U+00c836: */ + RTUNI_ALPHA, /* U+00c837: */ + RTUNI_ALPHA, /* U+00c838: */ + RTUNI_ALPHA, /* U+00c839: */ + RTUNI_ALPHA, /* U+00c83a: */ + RTUNI_ALPHA, /* U+00c83b: */ + RTUNI_ALPHA, /* U+00c83c: */ + RTUNI_ALPHA, /* U+00c83d: */ + RTUNI_ALPHA, /* U+00c83e: */ + RTUNI_ALPHA, /* U+00c83f: */ + RTUNI_ALPHA, /* U+00c840: */ + RTUNI_ALPHA, /* U+00c841: */ + RTUNI_ALPHA, /* U+00c842: */ + RTUNI_ALPHA, /* U+00c843: */ + RTUNI_ALPHA, /* U+00c844: */ + RTUNI_ALPHA, /* U+00c845: */ + RTUNI_ALPHA, /* U+00c846: */ + RTUNI_ALPHA, /* U+00c847: */ + RTUNI_ALPHA, /* U+00c848: */ + RTUNI_ALPHA, /* U+00c849: */ + RTUNI_ALPHA, /* U+00c84a: */ + RTUNI_ALPHA, /* U+00c84b: */ + RTUNI_ALPHA, /* U+00c84c: */ + RTUNI_ALPHA, /* U+00c84d: */ + RTUNI_ALPHA, /* U+00c84e: */ + RTUNI_ALPHA, /* U+00c84f: */ + RTUNI_ALPHA, /* U+00c850: */ + RTUNI_ALPHA, /* U+00c851: */ + RTUNI_ALPHA, /* U+00c852: */ + RTUNI_ALPHA, /* U+00c853: */ + RTUNI_ALPHA, /* U+00c854: */ + RTUNI_ALPHA, /* U+00c855: */ + RTUNI_ALPHA, /* U+00c856: */ + RTUNI_ALPHA, /* U+00c857: */ + RTUNI_ALPHA, /* U+00c858: */ + RTUNI_ALPHA, /* U+00c859: */ + RTUNI_ALPHA, /* U+00c85a: */ + RTUNI_ALPHA, /* U+00c85b: */ + RTUNI_ALPHA, /* U+00c85c: */ + RTUNI_ALPHA, /* U+00c85d: */ + RTUNI_ALPHA, /* U+00c85e: */ + RTUNI_ALPHA, /* U+00c85f: */ + RTUNI_ALPHA, /* U+00c860: */ + RTUNI_ALPHA, /* U+00c861: */ + RTUNI_ALPHA, /* U+00c862: */ + RTUNI_ALPHA, /* U+00c863: */ + RTUNI_ALPHA, /* U+00c864: */ + RTUNI_ALPHA, /* U+00c865: */ + RTUNI_ALPHA, /* U+00c866: */ + RTUNI_ALPHA, /* U+00c867: */ + RTUNI_ALPHA, /* U+00c868: */ + RTUNI_ALPHA, /* U+00c869: */ + RTUNI_ALPHA, /* U+00c86a: */ + RTUNI_ALPHA, /* U+00c86b: */ + RTUNI_ALPHA, /* U+00c86c: */ + RTUNI_ALPHA, /* U+00c86d: */ + RTUNI_ALPHA, /* U+00c86e: */ + RTUNI_ALPHA, /* U+00c86f: */ + RTUNI_ALPHA, /* U+00c870: */ + RTUNI_ALPHA, /* U+00c871: */ + RTUNI_ALPHA, /* U+00c872: */ + RTUNI_ALPHA, /* U+00c873: */ + RTUNI_ALPHA, /* U+00c874: */ + RTUNI_ALPHA, /* U+00c875: */ + RTUNI_ALPHA, /* U+00c876: */ + RTUNI_ALPHA, /* U+00c877: */ + RTUNI_ALPHA, /* U+00c878: */ + RTUNI_ALPHA, /* U+00c879: */ + RTUNI_ALPHA, /* U+00c87a: */ + RTUNI_ALPHA, /* U+00c87b: */ + RTUNI_ALPHA, /* U+00c87c: */ + RTUNI_ALPHA, /* U+00c87d: */ + RTUNI_ALPHA, /* U+00c87e: */ + RTUNI_ALPHA, /* U+00c87f: */ + RTUNI_ALPHA, /* U+00c880: */ + RTUNI_ALPHA, /* U+00c881: */ + RTUNI_ALPHA, /* U+00c882: */ + RTUNI_ALPHA, /* U+00c883: */ + RTUNI_ALPHA, /* U+00c884: */ + RTUNI_ALPHA, /* U+00c885: */ + RTUNI_ALPHA, /* U+00c886: */ + RTUNI_ALPHA, /* U+00c887: */ + RTUNI_ALPHA, /* U+00c888: */ + RTUNI_ALPHA, /* U+00c889: */ + RTUNI_ALPHA, /* U+00c88a: */ + RTUNI_ALPHA, /* U+00c88b: */ + RTUNI_ALPHA, /* U+00c88c: */ + RTUNI_ALPHA, /* U+00c88d: */ + RTUNI_ALPHA, /* U+00c88e: */ + RTUNI_ALPHA, /* U+00c88f: */ + RTUNI_ALPHA, /* U+00c890: */ + RTUNI_ALPHA, /* U+00c891: */ + RTUNI_ALPHA, /* U+00c892: */ + RTUNI_ALPHA, /* U+00c893: */ + RTUNI_ALPHA, /* U+00c894: */ + RTUNI_ALPHA, /* U+00c895: */ + RTUNI_ALPHA, /* U+00c896: */ + RTUNI_ALPHA, /* U+00c897: */ + RTUNI_ALPHA, /* U+00c898: */ + RTUNI_ALPHA, /* U+00c899: */ + RTUNI_ALPHA, /* U+00c89a: */ + RTUNI_ALPHA, /* U+00c89b: */ + RTUNI_ALPHA, /* U+00c89c: */ + RTUNI_ALPHA, /* U+00c89d: */ + RTUNI_ALPHA, /* U+00c89e: */ + RTUNI_ALPHA, /* U+00c89f: */ + RTUNI_ALPHA, /* U+00c8a0: */ + RTUNI_ALPHA, /* U+00c8a1: */ + RTUNI_ALPHA, /* U+00c8a2: */ + RTUNI_ALPHA, /* U+00c8a3: */ + RTUNI_ALPHA, /* U+00c8a4: */ + RTUNI_ALPHA, /* U+00c8a5: */ + RTUNI_ALPHA, /* U+00c8a6: */ + RTUNI_ALPHA, /* U+00c8a7: */ + RTUNI_ALPHA, /* U+00c8a8: */ + RTUNI_ALPHA, /* U+00c8a9: */ + RTUNI_ALPHA, /* U+00c8aa: */ + RTUNI_ALPHA, /* U+00c8ab: */ + RTUNI_ALPHA, /* U+00c8ac: */ + RTUNI_ALPHA, /* U+00c8ad: */ + RTUNI_ALPHA, /* U+00c8ae: */ + RTUNI_ALPHA, /* U+00c8af: */ + RTUNI_ALPHA, /* U+00c8b0: */ + RTUNI_ALPHA, /* U+00c8b1: */ + RTUNI_ALPHA, /* U+00c8b2: */ + RTUNI_ALPHA, /* U+00c8b3: */ + RTUNI_ALPHA, /* U+00c8b4: */ + RTUNI_ALPHA, /* U+00c8b5: */ + RTUNI_ALPHA, /* U+00c8b6: */ + RTUNI_ALPHA, /* U+00c8b7: */ + RTUNI_ALPHA, /* U+00c8b8: */ + RTUNI_ALPHA, /* U+00c8b9: */ + RTUNI_ALPHA, /* U+00c8ba: */ + RTUNI_ALPHA, /* U+00c8bb: */ + RTUNI_ALPHA, /* U+00c8bc: */ + RTUNI_ALPHA, /* U+00c8bd: */ + RTUNI_ALPHA, /* U+00c8be: */ + RTUNI_ALPHA, /* U+00c8bf: */ + RTUNI_ALPHA, /* U+00c8c0: */ + RTUNI_ALPHA, /* U+00c8c1: */ + RTUNI_ALPHA, /* U+00c8c2: */ + RTUNI_ALPHA, /* U+00c8c3: */ + RTUNI_ALPHA, /* U+00c8c4: */ + RTUNI_ALPHA, /* U+00c8c5: */ + RTUNI_ALPHA, /* U+00c8c6: */ + RTUNI_ALPHA, /* U+00c8c7: */ + RTUNI_ALPHA, /* U+00c8c8: */ + RTUNI_ALPHA, /* U+00c8c9: */ + RTUNI_ALPHA, /* U+00c8ca: */ + RTUNI_ALPHA, /* U+00c8cb: */ + RTUNI_ALPHA, /* U+00c8cc: */ + RTUNI_ALPHA, /* U+00c8cd: */ + RTUNI_ALPHA, /* U+00c8ce: */ + RTUNI_ALPHA, /* U+00c8cf: */ + RTUNI_ALPHA, /* U+00c8d0: */ + RTUNI_ALPHA, /* U+00c8d1: */ + RTUNI_ALPHA, /* U+00c8d2: */ + RTUNI_ALPHA, /* U+00c8d3: */ + RTUNI_ALPHA, /* U+00c8d4: */ + RTUNI_ALPHA, /* U+00c8d5: */ + RTUNI_ALPHA, /* U+00c8d6: */ + RTUNI_ALPHA, /* U+00c8d7: */ + RTUNI_ALPHA, /* U+00c8d8: */ + RTUNI_ALPHA, /* U+00c8d9: */ + RTUNI_ALPHA, /* U+00c8da: */ + RTUNI_ALPHA, /* U+00c8db: */ + RTUNI_ALPHA, /* U+00c8dc: */ + RTUNI_ALPHA, /* U+00c8dd: */ + RTUNI_ALPHA, /* U+00c8de: */ + RTUNI_ALPHA, /* U+00c8df: */ + RTUNI_ALPHA, /* U+00c8e0: */ + RTUNI_ALPHA, /* U+00c8e1: */ + RTUNI_ALPHA, /* U+00c8e2: */ + RTUNI_ALPHA, /* U+00c8e3: */ + RTUNI_ALPHA, /* U+00c8e4: */ + RTUNI_ALPHA, /* U+00c8e5: */ + RTUNI_ALPHA, /* U+00c8e6: */ + RTUNI_ALPHA, /* U+00c8e7: */ + RTUNI_ALPHA, /* U+00c8e8: */ + RTUNI_ALPHA, /* U+00c8e9: */ + RTUNI_ALPHA, /* U+00c8ea: */ + RTUNI_ALPHA, /* U+00c8eb: */ + RTUNI_ALPHA, /* U+00c8ec: */ + RTUNI_ALPHA, /* U+00c8ed: */ + RTUNI_ALPHA, /* U+00c8ee: */ + RTUNI_ALPHA, /* U+00c8ef: */ + RTUNI_ALPHA, /* U+00c8f0: */ + RTUNI_ALPHA, /* U+00c8f1: */ + RTUNI_ALPHA, /* U+00c8f2: */ + RTUNI_ALPHA, /* U+00c8f3: */ + RTUNI_ALPHA, /* U+00c8f4: */ + RTUNI_ALPHA, /* U+00c8f5: */ + RTUNI_ALPHA, /* U+00c8f6: */ + RTUNI_ALPHA, /* U+00c8f7: */ + RTUNI_ALPHA, /* U+00c8f8: */ + RTUNI_ALPHA, /* U+00c8f9: */ + RTUNI_ALPHA, /* U+00c8fa: */ + RTUNI_ALPHA, /* U+00c8fb: */ + RTUNI_ALPHA, /* U+00c8fc: */ + RTUNI_ALPHA, /* U+00c8fd: */ + RTUNI_ALPHA, /* U+00c8fe: */ + RTUNI_ALPHA, /* U+00c8ff: */ + RTUNI_ALPHA, /* U+00c900: */ + RTUNI_ALPHA, /* U+00c901: */ + RTUNI_ALPHA, /* U+00c902: */ + RTUNI_ALPHA, /* U+00c903: */ + RTUNI_ALPHA, /* U+00c904: */ + RTUNI_ALPHA, /* U+00c905: */ + RTUNI_ALPHA, /* U+00c906: */ + RTUNI_ALPHA, /* U+00c907: */ + RTUNI_ALPHA, /* U+00c908: */ + RTUNI_ALPHA, /* U+00c909: */ + RTUNI_ALPHA, /* U+00c90a: */ + RTUNI_ALPHA, /* U+00c90b: */ + RTUNI_ALPHA, /* U+00c90c: */ + RTUNI_ALPHA, /* U+00c90d: */ + RTUNI_ALPHA, /* U+00c90e: */ + RTUNI_ALPHA, /* U+00c90f: */ + RTUNI_ALPHA, /* U+00c910: */ + RTUNI_ALPHA, /* U+00c911: */ + RTUNI_ALPHA, /* U+00c912: */ + RTUNI_ALPHA, /* U+00c913: */ + RTUNI_ALPHA, /* U+00c914: */ + RTUNI_ALPHA, /* U+00c915: */ + RTUNI_ALPHA, /* U+00c916: */ + RTUNI_ALPHA, /* U+00c917: */ + RTUNI_ALPHA, /* U+00c918: */ + RTUNI_ALPHA, /* U+00c919: */ + RTUNI_ALPHA, /* U+00c91a: */ + RTUNI_ALPHA, /* U+00c91b: */ + RTUNI_ALPHA, /* U+00c91c: */ + RTUNI_ALPHA, /* U+00c91d: */ + RTUNI_ALPHA, /* U+00c91e: */ + RTUNI_ALPHA, /* U+00c91f: */ + RTUNI_ALPHA, /* U+00c920: */ + RTUNI_ALPHA, /* U+00c921: */ + RTUNI_ALPHA, /* U+00c922: */ + RTUNI_ALPHA, /* U+00c923: */ + RTUNI_ALPHA, /* U+00c924: */ + RTUNI_ALPHA, /* U+00c925: */ + RTUNI_ALPHA, /* U+00c926: */ + RTUNI_ALPHA, /* U+00c927: */ + RTUNI_ALPHA, /* U+00c928: */ + RTUNI_ALPHA, /* U+00c929: */ + RTUNI_ALPHA, /* U+00c92a: */ + RTUNI_ALPHA, /* U+00c92b: */ + RTUNI_ALPHA, /* U+00c92c: */ + RTUNI_ALPHA, /* U+00c92d: */ + RTUNI_ALPHA, /* U+00c92e: */ + RTUNI_ALPHA, /* U+00c92f: */ + RTUNI_ALPHA, /* U+00c930: */ + RTUNI_ALPHA, /* U+00c931: */ + RTUNI_ALPHA, /* U+00c932: */ + RTUNI_ALPHA, /* U+00c933: */ + RTUNI_ALPHA, /* U+00c934: */ + RTUNI_ALPHA, /* U+00c935: */ + RTUNI_ALPHA, /* U+00c936: */ + RTUNI_ALPHA, /* U+00c937: */ + RTUNI_ALPHA, /* U+00c938: */ + RTUNI_ALPHA, /* U+00c939: */ + RTUNI_ALPHA, /* U+00c93a: */ + RTUNI_ALPHA, /* U+00c93b: */ + RTUNI_ALPHA, /* U+00c93c: */ + RTUNI_ALPHA, /* U+00c93d: */ + RTUNI_ALPHA, /* U+00c93e: */ + RTUNI_ALPHA, /* U+00c93f: */ + RTUNI_ALPHA, /* U+00c940: */ + RTUNI_ALPHA, /* U+00c941: */ + RTUNI_ALPHA, /* U+00c942: */ + RTUNI_ALPHA, /* U+00c943: */ + RTUNI_ALPHA, /* U+00c944: */ + RTUNI_ALPHA, /* U+00c945: */ + RTUNI_ALPHA, /* U+00c946: */ + RTUNI_ALPHA, /* U+00c947: */ + RTUNI_ALPHA, /* U+00c948: */ + RTUNI_ALPHA, /* U+00c949: */ + RTUNI_ALPHA, /* U+00c94a: */ + RTUNI_ALPHA, /* U+00c94b: */ + RTUNI_ALPHA, /* U+00c94c: */ + RTUNI_ALPHA, /* U+00c94d: */ + RTUNI_ALPHA, /* U+00c94e: */ + RTUNI_ALPHA, /* U+00c94f: */ + RTUNI_ALPHA, /* U+00c950: */ + RTUNI_ALPHA, /* U+00c951: */ + RTUNI_ALPHA, /* U+00c952: */ + RTUNI_ALPHA, /* U+00c953: */ + RTUNI_ALPHA, /* U+00c954: */ + RTUNI_ALPHA, /* U+00c955: */ + RTUNI_ALPHA, /* U+00c956: */ + RTUNI_ALPHA, /* U+00c957: */ + RTUNI_ALPHA, /* U+00c958: */ + RTUNI_ALPHA, /* U+00c959: */ + RTUNI_ALPHA, /* U+00c95a: */ + RTUNI_ALPHA, /* U+00c95b: */ + RTUNI_ALPHA, /* U+00c95c: */ + RTUNI_ALPHA, /* U+00c95d: */ + RTUNI_ALPHA, /* U+00c95e: */ + RTUNI_ALPHA, /* U+00c95f: */ + RTUNI_ALPHA, /* U+00c960: */ + RTUNI_ALPHA, /* U+00c961: */ + RTUNI_ALPHA, /* U+00c962: */ + RTUNI_ALPHA, /* U+00c963: */ + RTUNI_ALPHA, /* U+00c964: */ + RTUNI_ALPHA, /* U+00c965: */ + RTUNI_ALPHA, /* U+00c966: */ + RTUNI_ALPHA, /* U+00c967: */ + RTUNI_ALPHA, /* U+00c968: */ + RTUNI_ALPHA, /* U+00c969: */ + RTUNI_ALPHA, /* U+00c96a: */ + RTUNI_ALPHA, /* U+00c96b: */ + RTUNI_ALPHA, /* U+00c96c: */ + RTUNI_ALPHA, /* U+00c96d: */ + RTUNI_ALPHA, /* U+00c96e: */ + RTUNI_ALPHA, /* U+00c96f: */ + RTUNI_ALPHA, /* U+00c970: */ + RTUNI_ALPHA, /* U+00c971: */ + RTUNI_ALPHA, /* U+00c972: */ + RTUNI_ALPHA, /* U+00c973: */ + RTUNI_ALPHA, /* U+00c974: */ + RTUNI_ALPHA, /* U+00c975: */ + RTUNI_ALPHA, /* U+00c976: */ + RTUNI_ALPHA, /* U+00c977: */ + RTUNI_ALPHA, /* U+00c978: */ + RTUNI_ALPHA, /* U+00c979: */ + RTUNI_ALPHA, /* U+00c97a: */ + RTUNI_ALPHA, /* U+00c97b: */ + RTUNI_ALPHA, /* U+00c97c: */ + RTUNI_ALPHA, /* U+00c97d: */ + RTUNI_ALPHA, /* U+00c97e: */ + RTUNI_ALPHA, /* U+00c97f: */ + RTUNI_ALPHA, /* U+00c980: */ + RTUNI_ALPHA, /* U+00c981: */ + RTUNI_ALPHA, /* U+00c982: */ + RTUNI_ALPHA, /* U+00c983: */ + RTUNI_ALPHA, /* U+00c984: */ + RTUNI_ALPHA, /* U+00c985: */ + RTUNI_ALPHA, /* U+00c986: */ + RTUNI_ALPHA, /* U+00c987: */ + RTUNI_ALPHA, /* U+00c988: */ + RTUNI_ALPHA, /* U+00c989: */ + RTUNI_ALPHA, /* U+00c98a: */ + RTUNI_ALPHA, /* U+00c98b: */ + RTUNI_ALPHA, /* U+00c98c: */ + RTUNI_ALPHA, /* U+00c98d: */ + RTUNI_ALPHA, /* U+00c98e: */ + RTUNI_ALPHA, /* U+00c98f: */ + RTUNI_ALPHA, /* U+00c990: */ + RTUNI_ALPHA, /* U+00c991: */ + RTUNI_ALPHA, /* U+00c992: */ + RTUNI_ALPHA, /* U+00c993: */ + RTUNI_ALPHA, /* U+00c994: */ + RTUNI_ALPHA, /* U+00c995: */ + RTUNI_ALPHA, /* U+00c996: */ + RTUNI_ALPHA, /* U+00c997: */ + RTUNI_ALPHA, /* U+00c998: */ + RTUNI_ALPHA, /* U+00c999: */ + RTUNI_ALPHA, /* U+00c99a: */ + RTUNI_ALPHA, /* U+00c99b: */ + RTUNI_ALPHA, /* U+00c99c: */ + RTUNI_ALPHA, /* U+00c99d: */ + RTUNI_ALPHA, /* U+00c99e: */ + RTUNI_ALPHA, /* U+00c99f: */ + RTUNI_ALPHA, /* U+00c9a0: */ + RTUNI_ALPHA, /* U+00c9a1: */ + RTUNI_ALPHA, /* U+00c9a2: */ + RTUNI_ALPHA, /* U+00c9a3: */ + RTUNI_ALPHA, /* U+00c9a4: */ + RTUNI_ALPHA, /* U+00c9a5: */ + RTUNI_ALPHA, /* U+00c9a6: */ + RTUNI_ALPHA, /* U+00c9a7: */ + RTUNI_ALPHA, /* U+00c9a8: */ + RTUNI_ALPHA, /* U+00c9a9: */ + RTUNI_ALPHA, /* U+00c9aa: */ + RTUNI_ALPHA, /* U+00c9ab: */ + RTUNI_ALPHA, /* U+00c9ac: */ + RTUNI_ALPHA, /* U+00c9ad: */ + RTUNI_ALPHA, /* U+00c9ae: */ + RTUNI_ALPHA, /* U+00c9af: */ + RTUNI_ALPHA, /* U+00c9b0: */ + RTUNI_ALPHA, /* U+00c9b1: */ + RTUNI_ALPHA, /* U+00c9b2: */ + RTUNI_ALPHA, /* U+00c9b3: */ + RTUNI_ALPHA, /* U+00c9b4: */ + RTUNI_ALPHA, /* U+00c9b5: */ + RTUNI_ALPHA, /* U+00c9b6: */ + RTUNI_ALPHA, /* U+00c9b7: */ + RTUNI_ALPHA, /* U+00c9b8: */ + RTUNI_ALPHA, /* U+00c9b9: */ + RTUNI_ALPHA, /* U+00c9ba: */ + RTUNI_ALPHA, /* U+00c9bb: */ + RTUNI_ALPHA, /* U+00c9bc: */ + RTUNI_ALPHA, /* U+00c9bd: */ + RTUNI_ALPHA, /* U+00c9be: */ + RTUNI_ALPHA, /* U+00c9bf: */ + RTUNI_ALPHA, /* U+00c9c0: */ + RTUNI_ALPHA, /* U+00c9c1: */ + RTUNI_ALPHA, /* U+00c9c2: */ + RTUNI_ALPHA, /* U+00c9c3: */ + RTUNI_ALPHA, /* U+00c9c4: */ + RTUNI_ALPHA, /* U+00c9c5: */ + RTUNI_ALPHA, /* U+00c9c6: */ + RTUNI_ALPHA, /* U+00c9c7: */ + RTUNI_ALPHA, /* U+00c9c8: */ + RTUNI_ALPHA, /* U+00c9c9: */ + RTUNI_ALPHA, /* U+00c9ca: */ + RTUNI_ALPHA, /* U+00c9cb: */ + RTUNI_ALPHA, /* U+00c9cc: */ + RTUNI_ALPHA, /* U+00c9cd: */ + RTUNI_ALPHA, /* U+00c9ce: */ + RTUNI_ALPHA, /* U+00c9cf: */ + RTUNI_ALPHA, /* U+00c9d0: */ + RTUNI_ALPHA, /* U+00c9d1: */ + RTUNI_ALPHA, /* U+00c9d2: */ + RTUNI_ALPHA, /* U+00c9d3: */ + RTUNI_ALPHA, /* U+00c9d4: */ + RTUNI_ALPHA, /* U+00c9d5: */ + RTUNI_ALPHA, /* U+00c9d6: */ + RTUNI_ALPHA, /* U+00c9d7: */ + RTUNI_ALPHA, /* U+00c9d8: */ + RTUNI_ALPHA, /* U+00c9d9: */ + RTUNI_ALPHA, /* U+00c9da: */ + RTUNI_ALPHA, /* U+00c9db: */ + RTUNI_ALPHA, /* U+00c9dc: */ + RTUNI_ALPHA, /* U+00c9dd: */ + RTUNI_ALPHA, /* U+00c9de: */ + RTUNI_ALPHA, /* U+00c9df: */ + RTUNI_ALPHA, /* U+00c9e0: */ + RTUNI_ALPHA, /* U+00c9e1: */ + RTUNI_ALPHA, /* U+00c9e2: */ + RTUNI_ALPHA, /* U+00c9e3: */ + RTUNI_ALPHA, /* U+00c9e4: */ + RTUNI_ALPHA, /* U+00c9e5: */ + RTUNI_ALPHA, /* U+00c9e6: */ + RTUNI_ALPHA, /* U+00c9e7: */ + RTUNI_ALPHA, /* U+00c9e8: */ + RTUNI_ALPHA, /* U+00c9e9: */ + RTUNI_ALPHA, /* U+00c9ea: */ + RTUNI_ALPHA, /* U+00c9eb: */ + RTUNI_ALPHA, /* U+00c9ec: */ + RTUNI_ALPHA, /* U+00c9ed: */ + RTUNI_ALPHA, /* U+00c9ee: */ + RTUNI_ALPHA, /* U+00c9ef: */ + RTUNI_ALPHA, /* U+00c9f0: */ + RTUNI_ALPHA, /* U+00c9f1: */ + RTUNI_ALPHA, /* U+00c9f2: */ + RTUNI_ALPHA, /* U+00c9f3: */ + RTUNI_ALPHA, /* U+00c9f4: */ + RTUNI_ALPHA, /* U+00c9f5: */ + RTUNI_ALPHA, /* U+00c9f6: */ + RTUNI_ALPHA, /* U+00c9f7: */ + RTUNI_ALPHA, /* U+00c9f8: */ + RTUNI_ALPHA, /* U+00c9f9: */ + RTUNI_ALPHA, /* U+00c9fa: */ + RTUNI_ALPHA, /* U+00c9fb: */ + RTUNI_ALPHA, /* U+00c9fc: */ + RTUNI_ALPHA, /* U+00c9fd: */ + RTUNI_ALPHA, /* U+00c9fe: */ + RTUNI_ALPHA, /* U+00c9ff: */ + RTUNI_ALPHA, /* U+00ca00: */ + RTUNI_ALPHA, /* U+00ca01: */ + RTUNI_ALPHA, /* U+00ca02: */ + RTUNI_ALPHA, /* U+00ca03: */ + RTUNI_ALPHA, /* U+00ca04: */ + RTUNI_ALPHA, /* U+00ca05: */ + RTUNI_ALPHA, /* U+00ca06: */ + RTUNI_ALPHA, /* U+00ca07: */ + RTUNI_ALPHA, /* U+00ca08: */ + RTUNI_ALPHA, /* U+00ca09: */ + RTUNI_ALPHA, /* U+00ca0a: */ + RTUNI_ALPHA, /* U+00ca0b: */ + RTUNI_ALPHA, /* U+00ca0c: */ + RTUNI_ALPHA, /* U+00ca0d: */ + RTUNI_ALPHA, /* U+00ca0e: */ + RTUNI_ALPHA, /* U+00ca0f: */ + RTUNI_ALPHA, /* U+00ca10: */ + RTUNI_ALPHA, /* U+00ca11: */ + RTUNI_ALPHA, /* U+00ca12: */ + RTUNI_ALPHA, /* U+00ca13: */ + RTUNI_ALPHA, /* U+00ca14: */ + RTUNI_ALPHA, /* U+00ca15: */ + RTUNI_ALPHA, /* U+00ca16: */ + RTUNI_ALPHA, /* U+00ca17: */ + RTUNI_ALPHA, /* U+00ca18: */ + RTUNI_ALPHA, /* U+00ca19: */ + RTUNI_ALPHA, /* U+00ca1a: */ + RTUNI_ALPHA, /* U+00ca1b: */ + RTUNI_ALPHA, /* U+00ca1c: */ + RTUNI_ALPHA, /* U+00ca1d: */ + RTUNI_ALPHA, /* U+00ca1e: */ + RTUNI_ALPHA, /* U+00ca1f: */ + RTUNI_ALPHA, /* U+00ca20: */ + RTUNI_ALPHA, /* U+00ca21: */ + RTUNI_ALPHA, /* U+00ca22: */ + RTUNI_ALPHA, /* U+00ca23: */ + RTUNI_ALPHA, /* U+00ca24: */ + RTUNI_ALPHA, /* U+00ca25: */ + RTUNI_ALPHA, /* U+00ca26: */ + RTUNI_ALPHA, /* U+00ca27: */ + RTUNI_ALPHA, /* U+00ca28: */ + RTUNI_ALPHA, /* U+00ca29: */ + RTUNI_ALPHA, /* U+00ca2a: */ + RTUNI_ALPHA, /* U+00ca2b: */ + RTUNI_ALPHA, /* U+00ca2c: */ + RTUNI_ALPHA, /* U+00ca2d: */ + RTUNI_ALPHA, /* U+00ca2e: */ + RTUNI_ALPHA, /* U+00ca2f: */ + RTUNI_ALPHA, /* U+00ca30: */ + RTUNI_ALPHA, /* U+00ca31: */ + RTUNI_ALPHA, /* U+00ca32: */ + RTUNI_ALPHA, /* U+00ca33: */ + RTUNI_ALPHA, /* U+00ca34: */ + RTUNI_ALPHA, /* U+00ca35: */ + RTUNI_ALPHA, /* U+00ca36: */ + RTUNI_ALPHA, /* U+00ca37: */ + RTUNI_ALPHA, /* U+00ca38: */ + RTUNI_ALPHA, /* U+00ca39: */ + RTUNI_ALPHA, /* U+00ca3a: */ + RTUNI_ALPHA, /* U+00ca3b: */ + RTUNI_ALPHA, /* U+00ca3c: */ + RTUNI_ALPHA, /* U+00ca3d: */ + RTUNI_ALPHA, /* U+00ca3e: */ + RTUNI_ALPHA, /* U+00ca3f: */ + RTUNI_ALPHA, /* U+00ca40: */ + RTUNI_ALPHA, /* U+00ca41: */ + RTUNI_ALPHA, /* U+00ca42: */ + RTUNI_ALPHA, /* U+00ca43: */ + RTUNI_ALPHA, /* U+00ca44: */ + RTUNI_ALPHA, /* U+00ca45: */ + RTUNI_ALPHA, /* U+00ca46: */ + RTUNI_ALPHA, /* U+00ca47: */ + RTUNI_ALPHA, /* U+00ca48: */ + RTUNI_ALPHA, /* U+00ca49: */ + RTUNI_ALPHA, /* U+00ca4a: */ + RTUNI_ALPHA, /* U+00ca4b: */ + RTUNI_ALPHA, /* U+00ca4c: */ + RTUNI_ALPHA, /* U+00ca4d: */ + RTUNI_ALPHA, /* U+00ca4e: */ + RTUNI_ALPHA, /* U+00ca4f: */ + RTUNI_ALPHA, /* U+00ca50: */ + RTUNI_ALPHA, /* U+00ca51: */ + RTUNI_ALPHA, /* U+00ca52: */ + RTUNI_ALPHA, /* U+00ca53: */ + RTUNI_ALPHA, /* U+00ca54: */ + RTUNI_ALPHA, /* U+00ca55: */ + RTUNI_ALPHA, /* U+00ca56: */ + RTUNI_ALPHA, /* U+00ca57: */ + RTUNI_ALPHA, /* U+00ca58: */ + RTUNI_ALPHA, /* U+00ca59: */ + RTUNI_ALPHA, /* U+00ca5a: */ + RTUNI_ALPHA, /* U+00ca5b: */ + RTUNI_ALPHA, /* U+00ca5c: */ + RTUNI_ALPHA, /* U+00ca5d: */ + RTUNI_ALPHA, /* U+00ca5e: */ + RTUNI_ALPHA, /* U+00ca5f: */ + RTUNI_ALPHA, /* U+00ca60: */ + RTUNI_ALPHA, /* U+00ca61: */ + RTUNI_ALPHA, /* U+00ca62: */ + RTUNI_ALPHA, /* U+00ca63: */ + RTUNI_ALPHA, /* U+00ca64: */ + RTUNI_ALPHA, /* U+00ca65: */ + RTUNI_ALPHA, /* U+00ca66: */ + RTUNI_ALPHA, /* U+00ca67: */ + RTUNI_ALPHA, /* U+00ca68: */ + RTUNI_ALPHA, /* U+00ca69: */ + RTUNI_ALPHA, /* U+00ca6a: */ + RTUNI_ALPHA, /* U+00ca6b: */ + RTUNI_ALPHA, /* U+00ca6c: */ + RTUNI_ALPHA, /* U+00ca6d: */ + RTUNI_ALPHA, /* U+00ca6e: */ + RTUNI_ALPHA, /* U+00ca6f: */ + RTUNI_ALPHA, /* U+00ca70: */ + RTUNI_ALPHA, /* U+00ca71: */ + RTUNI_ALPHA, /* U+00ca72: */ + RTUNI_ALPHA, /* U+00ca73: */ + RTUNI_ALPHA, /* U+00ca74: */ + RTUNI_ALPHA, /* U+00ca75: */ + RTUNI_ALPHA, /* U+00ca76: */ + RTUNI_ALPHA, /* U+00ca77: */ + RTUNI_ALPHA, /* U+00ca78: */ + RTUNI_ALPHA, /* U+00ca79: */ + RTUNI_ALPHA, /* U+00ca7a: */ + RTUNI_ALPHA, /* U+00ca7b: */ + RTUNI_ALPHA, /* U+00ca7c: */ + RTUNI_ALPHA, /* U+00ca7d: */ + RTUNI_ALPHA, /* U+00ca7e: */ + RTUNI_ALPHA, /* U+00ca7f: */ + RTUNI_ALPHA, /* U+00ca80: */ + RTUNI_ALPHA, /* U+00ca81: */ + RTUNI_ALPHA, /* U+00ca82: */ + RTUNI_ALPHA, /* U+00ca83: */ + RTUNI_ALPHA, /* U+00ca84: */ + RTUNI_ALPHA, /* U+00ca85: */ + RTUNI_ALPHA, /* U+00ca86: */ + RTUNI_ALPHA, /* U+00ca87: */ + RTUNI_ALPHA, /* U+00ca88: */ + RTUNI_ALPHA, /* U+00ca89: */ + RTUNI_ALPHA, /* U+00ca8a: */ + RTUNI_ALPHA, /* U+00ca8b: */ + RTUNI_ALPHA, /* U+00ca8c: */ + RTUNI_ALPHA, /* U+00ca8d: */ + RTUNI_ALPHA, /* U+00ca8e: */ + RTUNI_ALPHA, /* U+00ca8f: */ + RTUNI_ALPHA, /* U+00ca90: */ + RTUNI_ALPHA, /* U+00ca91: */ + RTUNI_ALPHA, /* U+00ca92: */ + RTUNI_ALPHA, /* U+00ca93: */ + RTUNI_ALPHA, /* U+00ca94: */ + RTUNI_ALPHA, /* U+00ca95: */ + RTUNI_ALPHA, /* U+00ca96: */ + RTUNI_ALPHA, /* U+00ca97: */ + RTUNI_ALPHA, /* U+00ca98: */ + RTUNI_ALPHA, /* U+00ca99: */ + RTUNI_ALPHA, /* U+00ca9a: */ + RTUNI_ALPHA, /* U+00ca9b: */ + RTUNI_ALPHA, /* U+00ca9c: */ + RTUNI_ALPHA, /* U+00ca9d: */ + RTUNI_ALPHA, /* U+00ca9e: */ + RTUNI_ALPHA, /* U+00ca9f: */ + RTUNI_ALPHA, /* U+00caa0: */ + RTUNI_ALPHA, /* U+00caa1: */ + RTUNI_ALPHA, /* U+00caa2: */ + RTUNI_ALPHA, /* U+00caa3: */ + RTUNI_ALPHA, /* U+00caa4: */ + RTUNI_ALPHA, /* U+00caa5: */ + RTUNI_ALPHA, /* U+00caa6: */ + RTUNI_ALPHA, /* U+00caa7: */ + RTUNI_ALPHA, /* U+00caa8: */ + RTUNI_ALPHA, /* U+00caa9: */ + RTUNI_ALPHA, /* U+00caaa: */ + RTUNI_ALPHA, /* U+00caab: */ + RTUNI_ALPHA, /* U+00caac: */ + RTUNI_ALPHA, /* U+00caad: */ + RTUNI_ALPHA, /* U+00caae: */ + RTUNI_ALPHA, /* U+00caaf: */ + RTUNI_ALPHA, /* U+00cab0: */ + RTUNI_ALPHA, /* U+00cab1: */ + RTUNI_ALPHA, /* U+00cab2: */ + RTUNI_ALPHA, /* U+00cab3: */ + RTUNI_ALPHA, /* U+00cab4: */ + RTUNI_ALPHA, /* U+00cab5: */ + RTUNI_ALPHA, /* U+00cab6: */ + RTUNI_ALPHA, /* U+00cab7: */ + RTUNI_ALPHA, /* U+00cab8: */ + RTUNI_ALPHA, /* U+00cab9: */ + RTUNI_ALPHA, /* U+00caba: */ + RTUNI_ALPHA, /* U+00cabb: */ + RTUNI_ALPHA, /* U+00cabc: */ + RTUNI_ALPHA, /* U+00cabd: */ + RTUNI_ALPHA, /* U+00cabe: */ + RTUNI_ALPHA, /* U+00cabf: */ + RTUNI_ALPHA, /* U+00cac0: */ + RTUNI_ALPHA, /* U+00cac1: */ + RTUNI_ALPHA, /* U+00cac2: */ + RTUNI_ALPHA, /* U+00cac3: */ + RTUNI_ALPHA, /* U+00cac4: */ + RTUNI_ALPHA, /* U+00cac5: */ + RTUNI_ALPHA, /* U+00cac6: */ + RTUNI_ALPHA, /* U+00cac7: */ + RTUNI_ALPHA, /* U+00cac8: */ + RTUNI_ALPHA, /* U+00cac9: */ + RTUNI_ALPHA, /* U+00caca: */ + RTUNI_ALPHA, /* U+00cacb: */ + RTUNI_ALPHA, /* U+00cacc: */ + RTUNI_ALPHA, /* U+00cacd: */ + RTUNI_ALPHA, /* U+00cace: */ + RTUNI_ALPHA, /* U+00cacf: */ + RTUNI_ALPHA, /* U+00cad0: */ + RTUNI_ALPHA, /* U+00cad1: */ + RTUNI_ALPHA, /* U+00cad2: */ + RTUNI_ALPHA, /* U+00cad3: */ + RTUNI_ALPHA, /* U+00cad4: */ + RTUNI_ALPHA, /* U+00cad5: */ + RTUNI_ALPHA, /* U+00cad6: */ + RTUNI_ALPHA, /* U+00cad7: */ + RTUNI_ALPHA, /* U+00cad8: */ + RTUNI_ALPHA, /* U+00cad9: */ + RTUNI_ALPHA, /* U+00cada: */ + RTUNI_ALPHA, /* U+00cadb: */ + RTUNI_ALPHA, /* U+00cadc: */ + RTUNI_ALPHA, /* U+00cadd: */ + RTUNI_ALPHA, /* U+00cade: */ + RTUNI_ALPHA, /* U+00cadf: */ + RTUNI_ALPHA, /* U+00cae0: */ + RTUNI_ALPHA, /* U+00cae1: */ + RTUNI_ALPHA, /* U+00cae2: */ + RTUNI_ALPHA, /* U+00cae3: */ + RTUNI_ALPHA, /* U+00cae4: */ + RTUNI_ALPHA, /* U+00cae5: */ + RTUNI_ALPHA, /* U+00cae6: */ + RTUNI_ALPHA, /* U+00cae7: */ + RTUNI_ALPHA, /* U+00cae8: */ + RTUNI_ALPHA, /* U+00cae9: */ + RTUNI_ALPHA, /* U+00caea: */ + RTUNI_ALPHA, /* U+00caeb: */ + RTUNI_ALPHA, /* U+00caec: */ + RTUNI_ALPHA, /* U+00caed: */ + RTUNI_ALPHA, /* U+00caee: */ + RTUNI_ALPHA, /* U+00caef: */ + RTUNI_ALPHA, /* U+00caf0: */ + RTUNI_ALPHA, /* U+00caf1: */ + RTUNI_ALPHA, /* U+00caf2: */ + RTUNI_ALPHA, /* U+00caf3: */ + RTUNI_ALPHA, /* U+00caf4: */ + RTUNI_ALPHA, /* U+00caf5: */ + RTUNI_ALPHA, /* U+00caf6: */ + RTUNI_ALPHA, /* U+00caf7: */ + RTUNI_ALPHA, /* U+00caf8: */ + RTUNI_ALPHA, /* U+00caf9: */ + RTUNI_ALPHA, /* U+00cafa: */ + RTUNI_ALPHA, /* U+00cafb: */ + RTUNI_ALPHA, /* U+00cafc: */ + RTUNI_ALPHA, /* U+00cafd: */ + RTUNI_ALPHA, /* U+00cafe: */ + RTUNI_ALPHA, /* U+00caff: */ + RTUNI_ALPHA, /* U+00cb00: */ + RTUNI_ALPHA, /* U+00cb01: */ + RTUNI_ALPHA, /* U+00cb02: */ + RTUNI_ALPHA, /* U+00cb03: */ + RTUNI_ALPHA, /* U+00cb04: */ + RTUNI_ALPHA, /* U+00cb05: */ + RTUNI_ALPHA, /* U+00cb06: */ + RTUNI_ALPHA, /* U+00cb07: */ + RTUNI_ALPHA, /* U+00cb08: */ + RTUNI_ALPHA, /* U+00cb09: */ + RTUNI_ALPHA, /* U+00cb0a: */ + RTUNI_ALPHA, /* U+00cb0b: */ + RTUNI_ALPHA, /* U+00cb0c: */ + RTUNI_ALPHA, /* U+00cb0d: */ + RTUNI_ALPHA, /* U+00cb0e: */ + RTUNI_ALPHA, /* U+00cb0f: */ + RTUNI_ALPHA, /* U+00cb10: */ + RTUNI_ALPHA, /* U+00cb11: */ + RTUNI_ALPHA, /* U+00cb12: */ + RTUNI_ALPHA, /* U+00cb13: */ + RTUNI_ALPHA, /* U+00cb14: */ + RTUNI_ALPHA, /* U+00cb15: */ + RTUNI_ALPHA, /* U+00cb16: */ + RTUNI_ALPHA, /* U+00cb17: */ + RTUNI_ALPHA, /* U+00cb18: */ + RTUNI_ALPHA, /* U+00cb19: */ + RTUNI_ALPHA, /* U+00cb1a: */ + RTUNI_ALPHA, /* U+00cb1b: */ + RTUNI_ALPHA, /* U+00cb1c: */ + RTUNI_ALPHA, /* U+00cb1d: */ + RTUNI_ALPHA, /* U+00cb1e: */ + RTUNI_ALPHA, /* U+00cb1f: */ + RTUNI_ALPHA, /* U+00cb20: */ + RTUNI_ALPHA, /* U+00cb21: */ + RTUNI_ALPHA, /* U+00cb22: */ + RTUNI_ALPHA, /* U+00cb23: */ + RTUNI_ALPHA, /* U+00cb24: */ + RTUNI_ALPHA, /* U+00cb25: */ + RTUNI_ALPHA, /* U+00cb26: */ + RTUNI_ALPHA, /* U+00cb27: */ + RTUNI_ALPHA, /* U+00cb28: */ + RTUNI_ALPHA, /* U+00cb29: */ + RTUNI_ALPHA, /* U+00cb2a: */ + RTUNI_ALPHA, /* U+00cb2b: */ + RTUNI_ALPHA, /* U+00cb2c: */ + RTUNI_ALPHA, /* U+00cb2d: */ + RTUNI_ALPHA, /* U+00cb2e: */ + RTUNI_ALPHA, /* U+00cb2f: */ + RTUNI_ALPHA, /* U+00cb30: */ + RTUNI_ALPHA, /* U+00cb31: */ + RTUNI_ALPHA, /* U+00cb32: */ + RTUNI_ALPHA, /* U+00cb33: */ + RTUNI_ALPHA, /* U+00cb34: */ + RTUNI_ALPHA, /* U+00cb35: */ + RTUNI_ALPHA, /* U+00cb36: */ + RTUNI_ALPHA, /* U+00cb37: */ + RTUNI_ALPHA, /* U+00cb38: */ + RTUNI_ALPHA, /* U+00cb39: */ + RTUNI_ALPHA, /* U+00cb3a: */ + RTUNI_ALPHA, /* U+00cb3b: */ + RTUNI_ALPHA, /* U+00cb3c: */ + RTUNI_ALPHA, /* U+00cb3d: */ + RTUNI_ALPHA, /* U+00cb3e: */ + RTUNI_ALPHA, /* U+00cb3f: */ + RTUNI_ALPHA, /* U+00cb40: */ + RTUNI_ALPHA, /* U+00cb41: */ + RTUNI_ALPHA, /* U+00cb42: */ + RTUNI_ALPHA, /* U+00cb43: */ + RTUNI_ALPHA, /* U+00cb44: */ + RTUNI_ALPHA, /* U+00cb45: */ + RTUNI_ALPHA, /* U+00cb46: */ + RTUNI_ALPHA, /* U+00cb47: */ + RTUNI_ALPHA, /* U+00cb48: */ + RTUNI_ALPHA, /* U+00cb49: */ + RTUNI_ALPHA, /* U+00cb4a: */ + RTUNI_ALPHA, /* U+00cb4b: */ + RTUNI_ALPHA, /* U+00cb4c: */ + RTUNI_ALPHA, /* U+00cb4d: */ + RTUNI_ALPHA, /* U+00cb4e: */ + RTUNI_ALPHA, /* U+00cb4f: */ + RTUNI_ALPHA, /* U+00cb50: */ + RTUNI_ALPHA, /* U+00cb51: */ + RTUNI_ALPHA, /* U+00cb52: */ + RTUNI_ALPHA, /* U+00cb53: */ + RTUNI_ALPHA, /* U+00cb54: */ + RTUNI_ALPHA, /* U+00cb55: */ + RTUNI_ALPHA, /* U+00cb56: */ + RTUNI_ALPHA, /* U+00cb57: */ + RTUNI_ALPHA, /* U+00cb58: */ + RTUNI_ALPHA, /* U+00cb59: */ + RTUNI_ALPHA, /* U+00cb5a: */ + RTUNI_ALPHA, /* U+00cb5b: */ + RTUNI_ALPHA, /* U+00cb5c: */ + RTUNI_ALPHA, /* U+00cb5d: */ + RTUNI_ALPHA, /* U+00cb5e: */ + RTUNI_ALPHA, /* U+00cb5f: */ + RTUNI_ALPHA, /* U+00cb60: */ + RTUNI_ALPHA, /* U+00cb61: */ + RTUNI_ALPHA, /* U+00cb62: */ + RTUNI_ALPHA, /* U+00cb63: */ + RTUNI_ALPHA, /* U+00cb64: */ + RTUNI_ALPHA, /* U+00cb65: */ + RTUNI_ALPHA, /* U+00cb66: */ + RTUNI_ALPHA, /* U+00cb67: */ + RTUNI_ALPHA, /* U+00cb68: */ + RTUNI_ALPHA, /* U+00cb69: */ + RTUNI_ALPHA, /* U+00cb6a: */ + RTUNI_ALPHA, /* U+00cb6b: */ + RTUNI_ALPHA, /* U+00cb6c: */ + RTUNI_ALPHA, /* U+00cb6d: */ + RTUNI_ALPHA, /* U+00cb6e: */ + RTUNI_ALPHA, /* U+00cb6f: */ + RTUNI_ALPHA, /* U+00cb70: */ + RTUNI_ALPHA, /* U+00cb71: */ + RTUNI_ALPHA, /* U+00cb72: */ + RTUNI_ALPHA, /* U+00cb73: */ + RTUNI_ALPHA, /* U+00cb74: */ + RTUNI_ALPHA, /* U+00cb75: */ + RTUNI_ALPHA, /* U+00cb76: */ + RTUNI_ALPHA, /* U+00cb77: */ + RTUNI_ALPHA, /* U+00cb78: */ + RTUNI_ALPHA, /* U+00cb79: */ + RTUNI_ALPHA, /* U+00cb7a: */ + RTUNI_ALPHA, /* U+00cb7b: */ + RTUNI_ALPHA, /* U+00cb7c: */ + RTUNI_ALPHA, /* U+00cb7d: */ + RTUNI_ALPHA, /* U+00cb7e: */ + RTUNI_ALPHA, /* U+00cb7f: */ + RTUNI_ALPHA, /* U+00cb80: */ + RTUNI_ALPHA, /* U+00cb81: */ + RTUNI_ALPHA, /* U+00cb82: */ + RTUNI_ALPHA, /* U+00cb83: */ + RTUNI_ALPHA, /* U+00cb84: */ + RTUNI_ALPHA, /* U+00cb85: */ + RTUNI_ALPHA, /* U+00cb86: */ + RTUNI_ALPHA, /* U+00cb87: */ + RTUNI_ALPHA, /* U+00cb88: */ + RTUNI_ALPHA, /* U+00cb89: */ + RTUNI_ALPHA, /* U+00cb8a: */ + RTUNI_ALPHA, /* U+00cb8b: */ + RTUNI_ALPHA, /* U+00cb8c: */ + RTUNI_ALPHA, /* U+00cb8d: */ + RTUNI_ALPHA, /* U+00cb8e: */ + RTUNI_ALPHA, /* U+00cb8f: */ + RTUNI_ALPHA, /* U+00cb90: */ + RTUNI_ALPHA, /* U+00cb91: */ + RTUNI_ALPHA, /* U+00cb92: */ + RTUNI_ALPHA, /* U+00cb93: */ + RTUNI_ALPHA, /* U+00cb94: */ + RTUNI_ALPHA, /* U+00cb95: */ + RTUNI_ALPHA, /* U+00cb96: */ + RTUNI_ALPHA, /* U+00cb97: */ + RTUNI_ALPHA, /* U+00cb98: */ + RTUNI_ALPHA, /* U+00cb99: */ + RTUNI_ALPHA, /* U+00cb9a: */ + RTUNI_ALPHA, /* U+00cb9b: */ + RTUNI_ALPHA, /* U+00cb9c: */ + RTUNI_ALPHA, /* U+00cb9d: */ + RTUNI_ALPHA, /* U+00cb9e: */ + RTUNI_ALPHA, /* U+00cb9f: */ + RTUNI_ALPHA, /* U+00cba0: */ + RTUNI_ALPHA, /* U+00cba1: */ + RTUNI_ALPHA, /* U+00cba2: */ + RTUNI_ALPHA, /* U+00cba3: */ + RTUNI_ALPHA, /* U+00cba4: */ + RTUNI_ALPHA, /* U+00cba5: */ + RTUNI_ALPHA, /* U+00cba6: */ + RTUNI_ALPHA, /* U+00cba7: */ + RTUNI_ALPHA, /* U+00cba8: */ + RTUNI_ALPHA, /* U+00cba9: */ + RTUNI_ALPHA, /* U+00cbaa: */ + RTUNI_ALPHA, /* U+00cbab: */ + RTUNI_ALPHA, /* U+00cbac: */ + RTUNI_ALPHA, /* U+00cbad: */ + RTUNI_ALPHA, /* U+00cbae: */ + RTUNI_ALPHA, /* U+00cbaf: */ + RTUNI_ALPHA, /* U+00cbb0: */ + RTUNI_ALPHA, /* U+00cbb1: */ + RTUNI_ALPHA, /* U+00cbb2: */ + RTUNI_ALPHA, /* U+00cbb3: */ + RTUNI_ALPHA, /* U+00cbb4: */ + RTUNI_ALPHA, /* U+00cbb5: */ + RTUNI_ALPHA, /* U+00cbb6: */ + RTUNI_ALPHA, /* U+00cbb7: */ + RTUNI_ALPHA, /* U+00cbb8: */ + RTUNI_ALPHA, /* U+00cbb9: */ + RTUNI_ALPHA, /* U+00cbba: */ + RTUNI_ALPHA, /* U+00cbbb: */ + RTUNI_ALPHA, /* U+00cbbc: */ + RTUNI_ALPHA, /* U+00cbbd: */ + RTUNI_ALPHA, /* U+00cbbe: */ + RTUNI_ALPHA, /* U+00cbbf: */ + RTUNI_ALPHA, /* U+00cbc0: */ + RTUNI_ALPHA, /* U+00cbc1: */ + RTUNI_ALPHA, /* U+00cbc2: */ + RTUNI_ALPHA, /* U+00cbc3: */ + RTUNI_ALPHA, /* U+00cbc4: */ + RTUNI_ALPHA, /* U+00cbc5: */ + RTUNI_ALPHA, /* U+00cbc6: */ + RTUNI_ALPHA, /* U+00cbc7: */ + RTUNI_ALPHA, /* U+00cbc8: */ + RTUNI_ALPHA, /* U+00cbc9: */ + RTUNI_ALPHA, /* U+00cbca: */ + RTUNI_ALPHA, /* U+00cbcb: */ + RTUNI_ALPHA, /* U+00cbcc: */ + RTUNI_ALPHA, /* U+00cbcd: */ + RTUNI_ALPHA, /* U+00cbce: */ + RTUNI_ALPHA, /* U+00cbcf: */ + RTUNI_ALPHA, /* U+00cbd0: */ + RTUNI_ALPHA, /* U+00cbd1: */ + RTUNI_ALPHA, /* U+00cbd2: */ + RTUNI_ALPHA, /* U+00cbd3: */ + RTUNI_ALPHA, /* U+00cbd4: */ + RTUNI_ALPHA, /* U+00cbd5: */ + RTUNI_ALPHA, /* U+00cbd6: */ + RTUNI_ALPHA, /* U+00cbd7: */ + RTUNI_ALPHA, /* U+00cbd8: */ + RTUNI_ALPHA, /* U+00cbd9: */ + RTUNI_ALPHA, /* U+00cbda: */ + RTUNI_ALPHA, /* U+00cbdb: */ + RTUNI_ALPHA, /* U+00cbdc: */ + RTUNI_ALPHA, /* U+00cbdd: */ + RTUNI_ALPHA, /* U+00cbde: */ + RTUNI_ALPHA, /* U+00cbdf: */ + RTUNI_ALPHA, /* U+00cbe0: */ + RTUNI_ALPHA, /* U+00cbe1: */ + RTUNI_ALPHA, /* U+00cbe2: */ + RTUNI_ALPHA, /* U+00cbe3: */ + RTUNI_ALPHA, /* U+00cbe4: */ + RTUNI_ALPHA, /* U+00cbe5: */ + RTUNI_ALPHA, /* U+00cbe6: */ + RTUNI_ALPHA, /* U+00cbe7: */ + RTUNI_ALPHA, /* U+00cbe8: */ + RTUNI_ALPHA, /* U+00cbe9: */ + RTUNI_ALPHA, /* U+00cbea: */ + RTUNI_ALPHA, /* U+00cbeb: */ + RTUNI_ALPHA, /* U+00cbec: */ + RTUNI_ALPHA, /* U+00cbed: */ + RTUNI_ALPHA, /* U+00cbee: */ + RTUNI_ALPHA, /* U+00cbef: */ + RTUNI_ALPHA, /* U+00cbf0: */ + RTUNI_ALPHA, /* U+00cbf1: */ + RTUNI_ALPHA, /* U+00cbf2: */ + RTUNI_ALPHA, /* U+00cbf3: */ + RTUNI_ALPHA, /* U+00cbf4: */ + RTUNI_ALPHA, /* U+00cbf5: */ + RTUNI_ALPHA, /* U+00cbf6: */ + RTUNI_ALPHA, /* U+00cbf7: */ + RTUNI_ALPHA, /* U+00cbf8: */ + RTUNI_ALPHA, /* U+00cbf9: */ + RTUNI_ALPHA, /* U+00cbfa: */ + RTUNI_ALPHA, /* U+00cbfb: */ + RTUNI_ALPHA, /* U+00cbfc: */ + RTUNI_ALPHA, /* U+00cbfd: */ + RTUNI_ALPHA, /* U+00cbfe: */ + RTUNI_ALPHA, /* U+00cbff: */ + RTUNI_ALPHA, /* U+00cc00: */ + RTUNI_ALPHA, /* U+00cc01: */ + RTUNI_ALPHA, /* U+00cc02: */ + RTUNI_ALPHA, /* U+00cc03: */ + RTUNI_ALPHA, /* U+00cc04: */ + RTUNI_ALPHA, /* U+00cc05: */ + RTUNI_ALPHA, /* U+00cc06: */ + RTUNI_ALPHA, /* U+00cc07: */ + RTUNI_ALPHA, /* U+00cc08: */ + RTUNI_ALPHA, /* U+00cc09: */ + RTUNI_ALPHA, /* U+00cc0a: */ + RTUNI_ALPHA, /* U+00cc0b: */ + RTUNI_ALPHA, /* U+00cc0c: */ + RTUNI_ALPHA, /* U+00cc0d: */ + RTUNI_ALPHA, /* U+00cc0e: */ + RTUNI_ALPHA, /* U+00cc0f: */ + RTUNI_ALPHA, /* U+00cc10: */ + RTUNI_ALPHA, /* U+00cc11: */ + RTUNI_ALPHA, /* U+00cc12: */ + RTUNI_ALPHA, /* U+00cc13: */ + RTUNI_ALPHA, /* U+00cc14: */ + RTUNI_ALPHA, /* U+00cc15: */ + RTUNI_ALPHA, /* U+00cc16: */ + RTUNI_ALPHA, /* U+00cc17: */ + RTUNI_ALPHA, /* U+00cc18: */ + RTUNI_ALPHA, /* U+00cc19: */ + RTUNI_ALPHA, /* U+00cc1a: */ + RTUNI_ALPHA, /* U+00cc1b: */ + RTUNI_ALPHA, /* U+00cc1c: */ + RTUNI_ALPHA, /* U+00cc1d: */ + RTUNI_ALPHA, /* U+00cc1e: */ + RTUNI_ALPHA, /* U+00cc1f: */ + RTUNI_ALPHA, /* U+00cc20: */ + RTUNI_ALPHA, /* U+00cc21: */ + RTUNI_ALPHA, /* U+00cc22: */ + RTUNI_ALPHA, /* U+00cc23: */ + RTUNI_ALPHA, /* U+00cc24: */ + RTUNI_ALPHA, /* U+00cc25: */ + RTUNI_ALPHA, /* U+00cc26: */ + RTUNI_ALPHA, /* U+00cc27: */ + RTUNI_ALPHA, /* U+00cc28: */ + RTUNI_ALPHA, /* U+00cc29: */ + RTUNI_ALPHA, /* U+00cc2a: */ + RTUNI_ALPHA, /* U+00cc2b: */ + RTUNI_ALPHA, /* U+00cc2c: */ + RTUNI_ALPHA, /* U+00cc2d: */ + RTUNI_ALPHA, /* U+00cc2e: */ + RTUNI_ALPHA, /* U+00cc2f: */ + RTUNI_ALPHA, /* U+00cc30: */ + RTUNI_ALPHA, /* U+00cc31: */ + RTUNI_ALPHA, /* U+00cc32: */ + RTUNI_ALPHA, /* U+00cc33: */ + RTUNI_ALPHA, /* U+00cc34: */ + RTUNI_ALPHA, /* U+00cc35: */ + RTUNI_ALPHA, /* U+00cc36: */ + RTUNI_ALPHA, /* U+00cc37: */ + RTUNI_ALPHA, /* U+00cc38: */ + RTUNI_ALPHA, /* U+00cc39: */ + RTUNI_ALPHA, /* U+00cc3a: */ + RTUNI_ALPHA, /* U+00cc3b: */ + RTUNI_ALPHA, /* U+00cc3c: */ + RTUNI_ALPHA, /* U+00cc3d: */ + RTUNI_ALPHA, /* U+00cc3e: */ + RTUNI_ALPHA, /* U+00cc3f: */ + RTUNI_ALPHA, /* U+00cc40: */ + RTUNI_ALPHA, /* U+00cc41: */ + RTUNI_ALPHA, /* U+00cc42: */ + RTUNI_ALPHA, /* U+00cc43: */ + RTUNI_ALPHA, /* U+00cc44: */ + RTUNI_ALPHA, /* U+00cc45: */ + RTUNI_ALPHA, /* U+00cc46: */ + RTUNI_ALPHA, /* U+00cc47: */ + RTUNI_ALPHA, /* U+00cc48: */ + RTUNI_ALPHA, /* U+00cc49: */ + RTUNI_ALPHA, /* U+00cc4a: */ + RTUNI_ALPHA, /* U+00cc4b: */ + RTUNI_ALPHA, /* U+00cc4c: */ + RTUNI_ALPHA, /* U+00cc4d: */ + RTUNI_ALPHA, /* U+00cc4e: */ + RTUNI_ALPHA, /* U+00cc4f: */ + RTUNI_ALPHA, /* U+00cc50: */ + RTUNI_ALPHA, /* U+00cc51: */ + RTUNI_ALPHA, /* U+00cc52: */ + RTUNI_ALPHA, /* U+00cc53: */ + RTUNI_ALPHA, /* U+00cc54: */ + RTUNI_ALPHA, /* U+00cc55: */ + RTUNI_ALPHA, /* U+00cc56: */ + RTUNI_ALPHA, /* U+00cc57: */ + RTUNI_ALPHA, /* U+00cc58: */ + RTUNI_ALPHA, /* U+00cc59: */ + RTUNI_ALPHA, /* U+00cc5a: */ + RTUNI_ALPHA, /* U+00cc5b: */ + RTUNI_ALPHA, /* U+00cc5c: */ + RTUNI_ALPHA, /* U+00cc5d: */ + RTUNI_ALPHA, /* U+00cc5e: */ + RTUNI_ALPHA, /* U+00cc5f: */ + RTUNI_ALPHA, /* U+00cc60: */ + RTUNI_ALPHA, /* U+00cc61: */ + RTUNI_ALPHA, /* U+00cc62: */ + RTUNI_ALPHA, /* U+00cc63: */ + RTUNI_ALPHA, /* U+00cc64: */ + RTUNI_ALPHA, /* U+00cc65: */ + RTUNI_ALPHA, /* U+00cc66: */ + RTUNI_ALPHA, /* U+00cc67: */ + RTUNI_ALPHA, /* U+00cc68: */ + RTUNI_ALPHA, /* U+00cc69: */ + RTUNI_ALPHA, /* U+00cc6a: */ + RTUNI_ALPHA, /* U+00cc6b: */ + RTUNI_ALPHA, /* U+00cc6c: */ + RTUNI_ALPHA, /* U+00cc6d: */ + RTUNI_ALPHA, /* U+00cc6e: */ + RTUNI_ALPHA, /* U+00cc6f: */ + RTUNI_ALPHA, /* U+00cc70: */ + RTUNI_ALPHA, /* U+00cc71: */ + RTUNI_ALPHA, /* U+00cc72: */ + RTUNI_ALPHA, /* U+00cc73: */ + RTUNI_ALPHA, /* U+00cc74: */ + RTUNI_ALPHA, /* U+00cc75: */ + RTUNI_ALPHA, /* U+00cc76: */ + RTUNI_ALPHA, /* U+00cc77: */ + RTUNI_ALPHA, /* U+00cc78: */ + RTUNI_ALPHA, /* U+00cc79: */ + RTUNI_ALPHA, /* U+00cc7a: */ + RTUNI_ALPHA, /* U+00cc7b: */ + RTUNI_ALPHA, /* U+00cc7c: */ + RTUNI_ALPHA, /* U+00cc7d: */ + RTUNI_ALPHA, /* U+00cc7e: */ + RTUNI_ALPHA, /* U+00cc7f: */ + RTUNI_ALPHA, /* U+00cc80: */ + RTUNI_ALPHA, /* U+00cc81: */ + RTUNI_ALPHA, /* U+00cc82: */ + RTUNI_ALPHA, /* U+00cc83: */ + RTUNI_ALPHA, /* U+00cc84: */ + RTUNI_ALPHA, /* U+00cc85: */ + RTUNI_ALPHA, /* U+00cc86: */ + RTUNI_ALPHA, /* U+00cc87: */ + RTUNI_ALPHA, /* U+00cc88: */ + RTUNI_ALPHA, /* U+00cc89: */ + RTUNI_ALPHA, /* U+00cc8a: */ + RTUNI_ALPHA, /* U+00cc8b: */ + RTUNI_ALPHA, /* U+00cc8c: */ + RTUNI_ALPHA, /* U+00cc8d: */ + RTUNI_ALPHA, /* U+00cc8e: */ + RTUNI_ALPHA, /* U+00cc8f: */ + RTUNI_ALPHA, /* U+00cc90: */ + RTUNI_ALPHA, /* U+00cc91: */ + RTUNI_ALPHA, /* U+00cc92: */ + RTUNI_ALPHA, /* U+00cc93: */ + RTUNI_ALPHA, /* U+00cc94: */ + RTUNI_ALPHA, /* U+00cc95: */ + RTUNI_ALPHA, /* U+00cc96: */ + RTUNI_ALPHA, /* U+00cc97: */ + RTUNI_ALPHA, /* U+00cc98: */ + RTUNI_ALPHA, /* U+00cc99: */ + RTUNI_ALPHA, /* U+00cc9a: */ + RTUNI_ALPHA, /* U+00cc9b: */ + RTUNI_ALPHA, /* U+00cc9c: */ + RTUNI_ALPHA, /* U+00cc9d: */ + RTUNI_ALPHA, /* U+00cc9e: */ + RTUNI_ALPHA, /* U+00cc9f: */ + RTUNI_ALPHA, /* U+00cca0: */ + RTUNI_ALPHA, /* U+00cca1: */ + RTUNI_ALPHA, /* U+00cca2: */ + RTUNI_ALPHA, /* U+00cca3: */ + RTUNI_ALPHA, /* U+00cca4: */ + RTUNI_ALPHA, /* U+00cca5: */ + RTUNI_ALPHA, /* U+00cca6: */ + RTUNI_ALPHA, /* U+00cca7: */ + RTUNI_ALPHA, /* U+00cca8: */ + RTUNI_ALPHA, /* U+00cca9: */ + RTUNI_ALPHA, /* U+00ccaa: */ + RTUNI_ALPHA, /* U+00ccab: */ + RTUNI_ALPHA, /* U+00ccac: */ + RTUNI_ALPHA, /* U+00ccad: */ + RTUNI_ALPHA, /* U+00ccae: */ + RTUNI_ALPHA, /* U+00ccaf: */ + RTUNI_ALPHA, /* U+00ccb0: */ + RTUNI_ALPHA, /* U+00ccb1: */ + RTUNI_ALPHA, /* U+00ccb2: */ + RTUNI_ALPHA, /* U+00ccb3: */ + RTUNI_ALPHA, /* U+00ccb4: */ + RTUNI_ALPHA, /* U+00ccb5: */ + RTUNI_ALPHA, /* U+00ccb6: */ + RTUNI_ALPHA, /* U+00ccb7: */ + RTUNI_ALPHA, /* U+00ccb8: */ + RTUNI_ALPHA, /* U+00ccb9: */ + RTUNI_ALPHA, /* U+00ccba: */ + RTUNI_ALPHA, /* U+00ccbb: */ + RTUNI_ALPHA, /* U+00ccbc: */ + RTUNI_ALPHA, /* U+00ccbd: */ + RTUNI_ALPHA, /* U+00ccbe: */ + RTUNI_ALPHA, /* U+00ccbf: */ + RTUNI_ALPHA, /* U+00ccc0: */ + RTUNI_ALPHA, /* U+00ccc1: */ + RTUNI_ALPHA, /* U+00ccc2: */ + RTUNI_ALPHA, /* U+00ccc3: */ + RTUNI_ALPHA, /* U+00ccc4: */ + RTUNI_ALPHA, /* U+00ccc5: */ + RTUNI_ALPHA, /* U+00ccc6: */ + RTUNI_ALPHA, /* U+00ccc7: */ + RTUNI_ALPHA, /* U+00ccc8: */ + RTUNI_ALPHA, /* U+00ccc9: */ + RTUNI_ALPHA, /* U+00ccca: */ + RTUNI_ALPHA, /* U+00cccb: */ + RTUNI_ALPHA, /* U+00cccc: */ + RTUNI_ALPHA, /* U+00cccd: */ + RTUNI_ALPHA, /* U+00ccce: */ + RTUNI_ALPHA, /* U+00cccf: */ + RTUNI_ALPHA, /* U+00ccd0: */ + RTUNI_ALPHA, /* U+00ccd1: */ + RTUNI_ALPHA, /* U+00ccd2: */ + RTUNI_ALPHA, /* U+00ccd3: */ + RTUNI_ALPHA, /* U+00ccd4: */ + RTUNI_ALPHA, /* U+00ccd5: */ + RTUNI_ALPHA, /* U+00ccd6: */ + RTUNI_ALPHA, /* U+00ccd7: */ + RTUNI_ALPHA, /* U+00ccd8: */ + RTUNI_ALPHA, /* U+00ccd9: */ + RTUNI_ALPHA, /* U+00ccda: */ + RTUNI_ALPHA, /* U+00ccdb: */ + RTUNI_ALPHA, /* U+00ccdc: */ + RTUNI_ALPHA, /* U+00ccdd: */ + RTUNI_ALPHA, /* U+00ccde: */ + RTUNI_ALPHA, /* U+00ccdf: */ + RTUNI_ALPHA, /* U+00cce0: */ + RTUNI_ALPHA, /* U+00cce1: */ + RTUNI_ALPHA, /* U+00cce2: */ + RTUNI_ALPHA, /* U+00cce3: */ + RTUNI_ALPHA, /* U+00cce4: */ + RTUNI_ALPHA, /* U+00cce5: */ + RTUNI_ALPHA, /* U+00cce6: */ + RTUNI_ALPHA, /* U+00cce7: */ + RTUNI_ALPHA, /* U+00cce8: */ + RTUNI_ALPHA, /* U+00cce9: */ + RTUNI_ALPHA, /* U+00ccea: */ + RTUNI_ALPHA, /* U+00cceb: */ + RTUNI_ALPHA, /* U+00ccec: */ + RTUNI_ALPHA, /* U+00cced: */ + RTUNI_ALPHA, /* U+00ccee: */ + RTUNI_ALPHA, /* U+00ccef: */ + RTUNI_ALPHA, /* U+00ccf0: */ + RTUNI_ALPHA, /* U+00ccf1: */ + RTUNI_ALPHA, /* U+00ccf2: */ + RTUNI_ALPHA, /* U+00ccf3: */ + RTUNI_ALPHA, /* U+00ccf4: */ + RTUNI_ALPHA, /* U+00ccf5: */ + RTUNI_ALPHA, /* U+00ccf6: */ + RTUNI_ALPHA, /* U+00ccf7: */ + RTUNI_ALPHA, /* U+00ccf8: */ + RTUNI_ALPHA, /* U+00ccf9: */ + RTUNI_ALPHA, /* U+00ccfa: */ + RTUNI_ALPHA, /* U+00ccfb: */ + RTUNI_ALPHA, /* U+00ccfc: */ + RTUNI_ALPHA, /* U+00ccfd: */ + RTUNI_ALPHA, /* U+00ccfe: */ + RTUNI_ALPHA, /* U+00ccff: */ + RTUNI_ALPHA, /* U+00cd00: */ + RTUNI_ALPHA, /* U+00cd01: */ + RTUNI_ALPHA, /* U+00cd02: */ + RTUNI_ALPHA, /* U+00cd03: */ + RTUNI_ALPHA, /* U+00cd04: */ + RTUNI_ALPHA, /* U+00cd05: */ + RTUNI_ALPHA, /* U+00cd06: */ + RTUNI_ALPHA, /* U+00cd07: */ + RTUNI_ALPHA, /* U+00cd08: */ + RTUNI_ALPHA, /* U+00cd09: */ + RTUNI_ALPHA, /* U+00cd0a: */ + RTUNI_ALPHA, /* U+00cd0b: */ + RTUNI_ALPHA, /* U+00cd0c: */ + RTUNI_ALPHA, /* U+00cd0d: */ + RTUNI_ALPHA, /* U+00cd0e: */ + RTUNI_ALPHA, /* U+00cd0f: */ + RTUNI_ALPHA, /* U+00cd10: */ + RTUNI_ALPHA, /* U+00cd11: */ + RTUNI_ALPHA, /* U+00cd12: */ + RTUNI_ALPHA, /* U+00cd13: */ + RTUNI_ALPHA, /* U+00cd14: */ + RTUNI_ALPHA, /* U+00cd15: */ + RTUNI_ALPHA, /* U+00cd16: */ + RTUNI_ALPHA, /* U+00cd17: */ + RTUNI_ALPHA, /* U+00cd18: */ + RTUNI_ALPHA, /* U+00cd19: */ + RTUNI_ALPHA, /* U+00cd1a: */ + RTUNI_ALPHA, /* U+00cd1b: */ + RTUNI_ALPHA, /* U+00cd1c: */ + RTUNI_ALPHA, /* U+00cd1d: */ + RTUNI_ALPHA, /* U+00cd1e: */ + RTUNI_ALPHA, /* U+00cd1f: */ + RTUNI_ALPHA, /* U+00cd20: */ + RTUNI_ALPHA, /* U+00cd21: */ + RTUNI_ALPHA, /* U+00cd22: */ + RTUNI_ALPHA, /* U+00cd23: */ + RTUNI_ALPHA, /* U+00cd24: */ + RTUNI_ALPHA, /* U+00cd25: */ + RTUNI_ALPHA, /* U+00cd26: */ + RTUNI_ALPHA, /* U+00cd27: */ + RTUNI_ALPHA, /* U+00cd28: */ + RTUNI_ALPHA, /* U+00cd29: */ + RTUNI_ALPHA, /* U+00cd2a: */ + RTUNI_ALPHA, /* U+00cd2b: */ + RTUNI_ALPHA, /* U+00cd2c: */ + RTUNI_ALPHA, /* U+00cd2d: */ + RTUNI_ALPHA, /* U+00cd2e: */ + RTUNI_ALPHA, /* U+00cd2f: */ + RTUNI_ALPHA, /* U+00cd30: */ + RTUNI_ALPHA, /* U+00cd31: */ + RTUNI_ALPHA, /* U+00cd32: */ + RTUNI_ALPHA, /* U+00cd33: */ + RTUNI_ALPHA, /* U+00cd34: */ + RTUNI_ALPHA, /* U+00cd35: */ + RTUNI_ALPHA, /* U+00cd36: */ + RTUNI_ALPHA, /* U+00cd37: */ + RTUNI_ALPHA, /* U+00cd38: */ + RTUNI_ALPHA, /* U+00cd39: */ + RTUNI_ALPHA, /* U+00cd3a: */ + RTUNI_ALPHA, /* U+00cd3b: */ + RTUNI_ALPHA, /* U+00cd3c: */ + RTUNI_ALPHA, /* U+00cd3d: */ + RTUNI_ALPHA, /* U+00cd3e: */ + RTUNI_ALPHA, /* U+00cd3f: */ + RTUNI_ALPHA, /* U+00cd40: */ + RTUNI_ALPHA, /* U+00cd41: */ + RTUNI_ALPHA, /* U+00cd42: */ + RTUNI_ALPHA, /* U+00cd43: */ + RTUNI_ALPHA, /* U+00cd44: */ + RTUNI_ALPHA, /* U+00cd45: */ + RTUNI_ALPHA, /* U+00cd46: */ + RTUNI_ALPHA, /* U+00cd47: */ + RTUNI_ALPHA, /* U+00cd48: */ + RTUNI_ALPHA, /* U+00cd49: */ + RTUNI_ALPHA, /* U+00cd4a: */ + RTUNI_ALPHA, /* U+00cd4b: */ + RTUNI_ALPHA, /* U+00cd4c: */ + RTUNI_ALPHA, /* U+00cd4d: */ + RTUNI_ALPHA, /* U+00cd4e: */ + RTUNI_ALPHA, /* U+00cd4f: */ + RTUNI_ALPHA, /* U+00cd50: */ + RTUNI_ALPHA, /* U+00cd51: */ + RTUNI_ALPHA, /* U+00cd52: */ + RTUNI_ALPHA, /* U+00cd53: */ + RTUNI_ALPHA, /* U+00cd54: */ + RTUNI_ALPHA, /* U+00cd55: */ + RTUNI_ALPHA, /* U+00cd56: */ + RTUNI_ALPHA, /* U+00cd57: */ + RTUNI_ALPHA, /* U+00cd58: */ + RTUNI_ALPHA, /* U+00cd59: */ + RTUNI_ALPHA, /* U+00cd5a: */ + RTUNI_ALPHA, /* U+00cd5b: */ + RTUNI_ALPHA, /* U+00cd5c: */ + RTUNI_ALPHA, /* U+00cd5d: */ + RTUNI_ALPHA, /* U+00cd5e: */ + RTUNI_ALPHA, /* U+00cd5f: */ + RTUNI_ALPHA, /* U+00cd60: */ + RTUNI_ALPHA, /* U+00cd61: */ + RTUNI_ALPHA, /* U+00cd62: */ + RTUNI_ALPHA, /* U+00cd63: */ + RTUNI_ALPHA, /* U+00cd64: */ + RTUNI_ALPHA, /* U+00cd65: */ + RTUNI_ALPHA, /* U+00cd66: */ + RTUNI_ALPHA, /* U+00cd67: */ + RTUNI_ALPHA, /* U+00cd68: */ + RTUNI_ALPHA, /* U+00cd69: */ + RTUNI_ALPHA, /* U+00cd6a: */ + RTUNI_ALPHA, /* U+00cd6b: */ + RTUNI_ALPHA, /* U+00cd6c: */ + RTUNI_ALPHA, /* U+00cd6d: */ + RTUNI_ALPHA, /* U+00cd6e: */ + RTUNI_ALPHA, /* U+00cd6f: */ + RTUNI_ALPHA, /* U+00cd70: */ + RTUNI_ALPHA, /* U+00cd71: */ + RTUNI_ALPHA, /* U+00cd72: */ + RTUNI_ALPHA, /* U+00cd73: */ + RTUNI_ALPHA, /* U+00cd74: */ + RTUNI_ALPHA, /* U+00cd75: */ + RTUNI_ALPHA, /* U+00cd76: */ + RTUNI_ALPHA, /* U+00cd77: */ + RTUNI_ALPHA, /* U+00cd78: */ + RTUNI_ALPHA, /* U+00cd79: */ + RTUNI_ALPHA, /* U+00cd7a: */ + RTUNI_ALPHA, /* U+00cd7b: */ + RTUNI_ALPHA, /* U+00cd7c: */ + RTUNI_ALPHA, /* U+00cd7d: */ + RTUNI_ALPHA, /* U+00cd7e: */ + RTUNI_ALPHA, /* U+00cd7f: */ + RTUNI_ALPHA, /* U+00cd80: */ + RTUNI_ALPHA, /* U+00cd81: */ + RTUNI_ALPHA, /* U+00cd82: */ + RTUNI_ALPHA, /* U+00cd83: */ + RTUNI_ALPHA, /* U+00cd84: */ + RTUNI_ALPHA, /* U+00cd85: */ + RTUNI_ALPHA, /* U+00cd86: */ + RTUNI_ALPHA, /* U+00cd87: */ + RTUNI_ALPHA, /* U+00cd88: */ + RTUNI_ALPHA, /* U+00cd89: */ + RTUNI_ALPHA, /* U+00cd8a: */ + RTUNI_ALPHA, /* U+00cd8b: */ + RTUNI_ALPHA, /* U+00cd8c: */ + RTUNI_ALPHA, /* U+00cd8d: */ + RTUNI_ALPHA, /* U+00cd8e: */ + RTUNI_ALPHA, /* U+00cd8f: */ + RTUNI_ALPHA, /* U+00cd90: */ + RTUNI_ALPHA, /* U+00cd91: */ + RTUNI_ALPHA, /* U+00cd92: */ + RTUNI_ALPHA, /* U+00cd93: */ + RTUNI_ALPHA, /* U+00cd94: */ + RTUNI_ALPHA, /* U+00cd95: */ + RTUNI_ALPHA, /* U+00cd96: */ + RTUNI_ALPHA, /* U+00cd97: */ + RTUNI_ALPHA, /* U+00cd98: */ + RTUNI_ALPHA, /* U+00cd99: */ + RTUNI_ALPHA, /* U+00cd9a: */ + RTUNI_ALPHA, /* U+00cd9b: */ + RTUNI_ALPHA, /* U+00cd9c: */ + RTUNI_ALPHA, /* U+00cd9d: */ + RTUNI_ALPHA, /* U+00cd9e: */ + RTUNI_ALPHA, /* U+00cd9f: */ + RTUNI_ALPHA, /* U+00cda0: */ + RTUNI_ALPHA, /* U+00cda1: */ + RTUNI_ALPHA, /* U+00cda2: */ + RTUNI_ALPHA, /* U+00cda3: */ + RTUNI_ALPHA, /* U+00cda4: */ + RTUNI_ALPHA, /* U+00cda5: */ + RTUNI_ALPHA, /* U+00cda6: */ + RTUNI_ALPHA, /* U+00cda7: */ + RTUNI_ALPHA, /* U+00cda8: */ + RTUNI_ALPHA, /* U+00cda9: */ + RTUNI_ALPHA, /* U+00cdaa: */ + RTUNI_ALPHA, /* U+00cdab: */ + RTUNI_ALPHA, /* U+00cdac: */ + RTUNI_ALPHA, /* U+00cdad: */ + RTUNI_ALPHA, /* U+00cdae: */ + RTUNI_ALPHA, /* U+00cdaf: */ + RTUNI_ALPHA, /* U+00cdb0: */ + RTUNI_ALPHA, /* U+00cdb1: */ + RTUNI_ALPHA, /* U+00cdb2: */ + RTUNI_ALPHA, /* U+00cdb3: */ + RTUNI_ALPHA, /* U+00cdb4: */ + RTUNI_ALPHA, /* U+00cdb5: */ + RTUNI_ALPHA, /* U+00cdb6: */ + RTUNI_ALPHA, /* U+00cdb7: */ + RTUNI_ALPHA, /* U+00cdb8: */ + RTUNI_ALPHA, /* U+00cdb9: */ + RTUNI_ALPHA, /* U+00cdba: */ + RTUNI_ALPHA, /* U+00cdbb: */ + RTUNI_ALPHA, /* U+00cdbc: */ + RTUNI_ALPHA, /* U+00cdbd: */ + RTUNI_ALPHA, /* U+00cdbe: */ + RTUNI_ALPHA, /* U+00cdbf: */ + RTUNI_ALPHA, /* U+00cdc0: */ + RTUNI_ALPHA, /* U+00cdc1: */ + RTUNI_ALPHA, /* U+00cdc2: */ + RTUNI_ALPHA, /* U+00cdc3: */ + RTUNI_ALPHA, /* U+00cdc4: */ + RTUNI_ALPHA, /* U+00cdc5: */ + RTUNI_ALPHA, /* U+00cdc6: */ + RTUNI_ALPHA, /* U+00cdc7: */ + RTUNI_ALPHA, /* U+00cdc8: */ + RTUNI_ALPHA, /* U+00cdc9: */ + RTUNI_ALPHA, /* U+00cdca: */ + RTUNI_ALPHA, /* U+00cdcb: */ + RTUNI_ALPHA, /* U+00cdcc: */ + RTUNI_ALPHA, /* U+00cdcd: */ + RTUNI_ALPHA, /* U+00cdce: */ + RTUNI_ALPHA, /* U+00cdcf: */ + RTUNI_ALPHA, /* U+00cdd0: */ + RTUNI_ALPHA, /* U+00cdd1: */ + RTUNI_ALPHA, /* U+00cdd2: */ + RTUNI_ALPHA, /* U+00cdd3: */ + RTUNI_ALPHA, /* U+00cdd4: */ + RTUNI_ALPHA, /* U+00cdd5: */ + RTUNI_ALPHA, /* U+00cdd6: */ + RTUNI_ALPHA, /* U+00cdd7: */ + RTUNI_ALPHA, /* U+00cdd8: */ + RTUNI_ALPHA, /* U+00cdd9: */ + RTUNI_ALPHA, /* U+00cdda: */ + RTUNI_ALPHA, /* U+00cddb: */ + RTUNI_ALPHA, /* U+00cddc: */ + RTUNI_ALPHA, /* U+00cddd: */ + RTUNI_ALPHA, /* U+00cdde: */ + RTUNI_ALPHA, /* U+00cddf: */ + RTUNI_ALPHA, /* U+00cde0: */ + RTUNI_ALPHA, /* U+00cde1: */ + RTUNI_ALPHA, /* U+00cde2: */ + RTUNI_ALPHA, /* U+00cde3: */ + RTUNI_ALPHA, /* U+00cde4: */ + RTUNI_ALPHA, /* U+00cde5: */ + RTUNI_ALPHA, /* U+00cde6: */ + RTUNI_ALPHA, /* U+00cde7: */ + RTUNI_ALPHA, /* U+00cde8: */ + RTUNI_ALPHA, /* U+00cde9: */ + RTUNI_ALPHA, /* U+00cdea: */ + RTUNI_ALPHA, /* U+00cdeb: */ + RTUNI_ALPHA, /* U+00cdec: */ + RTUNI_ALPHA, /* U+00cded: */ + RTUNI_ALPHA, /* U+00cdee: */ + RTUNI_ALPHA, /* U+00cdef: */ + RTUNI_ALPHA, /* U+00cdf0: */ + RTUNI_ALPHA, /* U+00cdf1: */ + RTUNI_ALPHA, /* U+00cdf2: */ + RTUNI_ALPHA, /* U+00cdf3: */ + RTUNI_ALPHA, /* U+00cdf4: */ + RTUNI_ALPHA, /* U+00cdf5: */ + RTUNI_ALPHA, /* U+00cdf6: */ + RTUNI_ALPHA, /* U+00cdf7: */ + RTUNI_ALPHA, /* U+00cdf8: */ + RTUNI_ALPHA, /* U+00cdf9: */ + RTUNI_ALPHA, /* U+00cdfa: */ + RTUNI_ALPHA, /* U+00cdfb: */ + RTUNI_ALPHA, /* U+00cdfc: */ + RTUNI_ALPHA, /* U+00cdfd: */ + RTUNI_ALPHA, /* U+00cdfe: */ + RTUNI_ALPHA, /* U+00cdff: */ + RTUNI_ALPHA, /* U+00ce00: */ + RTUNI_ALPHA, /* U+00ce01: */ + RTUNI_ALPHA, /* U+00ce02: */ + RTUNI_ALPHA, /* U+00ce03: */ + RTUNI_ALPHA, /* U+00ce04: */ + RTUNI_ALPHA, /* U+00ce05: */ + RTUNI_ALPHA, /* U+00ce06: */ + RTUNI_ALPHA, /* U+00ce07: */ + RTUNI_ALPHA, /* U+00ce08: */ + RTUNI_ALPHA, /* U+00ce09: */ + RTUNI_ALPHA, /* U+00ce0a: */ + RTUNI_ALPHA, /* U+00ce0b: */ + RTUNI_ALPHA, /* U+00ce0c: */ + RTUNI_ALPHA, /* U+00ce0d: */ + RTUNI_ALPHA, /* U+00ce0e: */ + RTUNI_ALPHA, /* U+00ce0f: */ + RTUNI_ALPHA, /* U+00ce10: */ + RTUNI_ALPHA, /* U+00ce11: */ + RTUNI_ALPHA, /* U+00ce12: */ + RTUNI_ALPHA, /* U+00ce13: */ + RTUNI_ALPHA, /* U+00ce14: */ + RTUNI_ALPHA, /* U+00ce15: */ + RTUNI_ALPHA, /* U+00ce16: */ + RTUNI_ALPHA, /* U+00ce17: */ + RTUNI_ALPHA, /* U+00ce18: */ + RTUNI_ALPHA, /* U+00ce19: */ + RTUNI_ALPHA, /* U+00ce1a: */ + RTUNI_ALPHA, /* U+00ce1b: */ + RTUNI_ALPHA, /* U+00ce1c: */ + RTUNI_ALPHA, /* U+00ce1d: */ + RTUNI_ALPHA, /* U+00ce1e: */ + RTUNI_ALPHA, /* U+00ce1f: */ + RTUNI_ALPHA, /* U+00ce20: */ + RTUNI_ALPHA, /* U+00ce21: */ + RTUNI_ALPHA, /* U+00ce22: */ + RTUNI_ALPHA, /* U+00ce23: */ + RTUNI_ALPHA, /* U+00ce24: */ + RTUNI_ALPHA, /* U+00ce25: */ + RTUNI_ALPHA, /* U+00ce26: */ + RTUNI_ALPHA, /* U+00ce27: */ + RTUNI_ALPHA, /* U+00ce28: */ + RTUNI_ALPHA, /* U+00ce29: */ + RTUNI_ALPHA, /* U+00ce2a: */ + RTUNI_ALPHA, /* U+00ce2b: */ + RTUNI_ALPHA, /* U+00ce2c: */ + RTUNI_ALPHA, /* U+00ce2d: */ + RTUNI_ALPHA, /* U+00ce2e: */ + RTUNI_ALPHA, /* U+00ce2f: */ + RTUNI_ALPHA, /* U+00ce30: */ + RTUNI_ALPHA, /* U+00ce31: */ + RTUNI_ALPHA, /* U+00ce32: */ + RTUNI_ALPHA, /* U+00ce33: */ + RTUNI_ALPHA, /* U+00ce34: */ + RTUNI_ALPHA, /* U+00ce35: */ + RTUNI_ALPHA, /* U+00ce36: */ + RTUNI_ALPHA, /* U+00ce37: */ + RTUNI_ALPHA, /* U+00ce38: */ + RTUNI_ALPHA, /* U+00ce39: */ + RTUNI_ALPHA, /* U+00ce3a: */ + RTUNI_ALPHA, /* U+00ce3b: */ + RTUNI_ALPHA, /* U+00ce3c: */ + RTUNI_ALPHA, /* U+00ce3d: */ + RTUNI_ALPHA, /* U+00ce3e: */ + RTUNI_ALPHA, /* U+00ce3f: */ + RTUNI_ALPHA, /* U+00ce40: */ + RTUNI_ALPHA, /* U+00ce41: */ + RTUNI_ALPHA, /* U+00ce42: */ + RTUNI_ALPHA, /* U+00ce43: */ + RTUNI_ALPHA, /* U+00ce44: */ + RTUNI_ALPHA, /* U+00ce45: */ + RTUNI_ALPHA, /* U+00ce46: */ + RTUNI_ALPHA, /* U+00ce47: */ + RTUNI_ALPHA, /* U+00ce48: */ + RTUNI_ALPHA, /* U+00ce49: */ + RTUNI_ALPHA, /* U+00ce4a: */ + RTUNI_ALPHA, /* U+00ce4b: */ + RTUNI_ALPHA, /* U+00ce4c: */ + RTUNI_ALPHA, /* U+00ce4d: */ + RTUNI_ALPHA, /* U+00ce4e: */ + RTUNI_ALPHA, /* U+00ce4f: */ + RTUNI_ALPHA, /* U+00ce50: */ + RTUNI_ALPHA, /* U+00ce51: */ + RTUNI_ALPHA, /* U+00ce52: */ + RTUNI_ALPHA, /* U+00ce53: */ + RTUNI_ALPHA, /* U+00ce54: */ + RTUNI_ALPHA, /* U+00ce55: */ + RTUNI_ALPHA, /* U+00ce56: */ + RTUNI_ALPHA, /* U+00ce57: */ + RTUNI_ALPHA, /* U+00ce58: */ + RTUNI_ALPHA, /* U+00ce59: */ + RTUNI_ALPHA, /* U+00ce5a: */ + RTUNI_ALPHA, /* U+00ce5b: */ + RTUNI_ALPHA, /* U+00ce5c: */ + RTUNI_ALPHA, /* U+00ce5d: */ + RTUNI_ALPHA, /* U+00ce5e: */ + RTUNI_ALPHA, /* U+00ce5f: */ + RTUNI_ALPHA, /* U+00ce60: */ + RTUNI_ALPHA, /* U+00ce61: */ + RTUNI_ALPHA, /* U+00ce62: */ + RTUNI_ALPHA, /* U+00ce63: */ + RTUNI_ALPHA, /* U+00ce64: */ + RTUNI_ALPHA, /* U+00ce65: */ + RTUNI_ALPHA, /* U+00ce66: */ + RTUNI_ALPHA, /* U+00ce67: */ + RTUNI_ALPHA, /* U+00ce68: */ + RTUNI_ALPHA, /* U+00ce69: */ + RTUNI_ALPHA, /* U+00ce6a: */ + RTUNI_ALPHA, /* U+00ce6b: */ + RTUNI_ALPHA, /* U+00ce6c: */ + RTUNI_ALPHA, /* U+00ce6d: */ + RTUNI_ALPHA, /* U+00ce6e: */ + RTUNI_ALPHA, /* U+00ce6f: */ + RTUNI_ALPHA, /* U+00ce70: */ + RTUNI_ALPHA, /* U+00ce71: */ + RTUNI_ALPHA, /* U+00ce72: */ + RTUNI_ALPHA, /* U+00ce73: */ + RTUNI_ALPHA, /* U+00ce74: */ + RTUNI_ALPHA, /* U+00ce75: */ + RTUNI_ALPHA, /* U+00ce76: */ + RTUNI_ALPHA, /* U+00ce77: */ + RTUNI_ALPHA, /* U+00ce78: */ + RTUNI_ALPHA, /* U+00ce79: */ + RTUNI_ALPHA, /* U+00ce7a: */ + RTUNI_ALPHA, /* U+00ce7b: */ + RTUNI_ALPHA, /* U+00ce7c: */ + RTUNI_ALPHA, /* U+00ce7d: */ + RTUNI_ALPHA, /* U+00ce7e: */ + RTUNI_ALPHA, /* U+00ce7f: */ + RTUNI_ALPHA, /* U+00ce80: */ + RTUNI_ALPHA, /* U+00ce81: */ + RTUNI_ALPHA, /* U+00ce82: */ + RTUNI_ALPHA, /* U+00ce83: */ + RTUNI_ALPHA, /* U+00ce84: */ + RTUNI_ALPHA, /* U+00ce85: */ + RTUNI_ALPHA, /* U+00ce86: */ + RTUNI_ALPHA, /* U+00ce87: */ + RTUNI_ALPHA, /* U+00ce88: */ + RTUNI_ALPHA, /* U+00ce89: */ + RTUNI_ALPHA, /* U+00ce8a: */ + RTUNI_ALPHA, /* U+00ce8b: */ + RTUNI_ALPHA, /* U+00ce8c: */ + RTUNI_ALPHA, /* U+00ce8d: */ + RTUNI_ALPHA, /* U+00ce8e: */ + RTUNI_ALPHA, /* U+00ce8f: */ + RTUNI_ALPHA, /* U+00ce90: */ + RTUNI_ALPHA, /* U+00ce91: */ + RTUNI_ALPHA, /* U+00ce92: */ + RTUNI_ALPHA, /* U+00ce93: */ + RTUNI_ALPHA, /* U+00ce94: */ + RTUNI_ALPHA, /* U+00ce95: */ + RTUNI_ALPHA, /* U+00ce96: */ + RTUNI_ALPHA, /* U+00ce97: */ + RTUNI_ALPHA, /* U+00ce98: */ + RTUNI_ALPHA, /* U+00ce99: */ + RTUNI_ALPHA, /* U+00ce9a: */ + RTUNI_ALPHA, /* U+00ce9b: */ + RTUNI_ALPHA, /* U+00ce9c: */ + RTUNI_ALPHA, /* U+00ce9d: */ + RTUNI_ALPHA, /* U+00ce9e: */ + RTUNI_ALPHA, /* U+00ce9f: */ + RTUNI_ALPHA, /* U+00cea0: */ + RTUNI_ALPHA, /* U+00cea1: */ + RTUNI_ALPHA, /* U+00cea2: */ + RTUNI_ALPHA, /* U+00cea3: */ + RTUNI_ALPHA, /* U+00cea4: */ + RTUNI_ALPHA, /* U+00cea5: */ + RTUNI_ALPHA, /* U+00cea6: */ + RTUNI_ALPHA, /* U+00cea7: */ + RTUNI_ALPHA, /* U+00cea8: */ + RTUNI_ALPHA, /* U+00cea9: */ + RTUNI_ALPHA, /* U+00ceaa: */ + RTUNI_ALPHA, /* U+00ceab: */ + RTUNI_ALPHA, /* U+00ceac: */ + RTUNI_ALPHA, /* U+00cead: */ + RTUNI_ALPHA, /* U+00ceae: */ + RTUNI_ALPHA, /* U+00ceaf: */ + RTUNI_ALPHA, /* U+00ceb0: */ + RTUNI_ALPHA, /* U+00ceb1: */ + RTUNI_ALPHA, /* U+00ceb2: */ + RTUNI_ALPHA, /* U+00ceb3: */ + RTUNI_ALPHA, /* U+00ceb4: */ + RTUNI_ALPHA, /* U+00ceb5: */ + RTUNI_ALPHA, /* U+00ceb6: */ + RTUNI_ALPHA, /* U+00ceb7: */ + RTUNI_ALPHA, /* U+00ceb8: */ + RTUNI_ALPHA, /* U+00ceb9: */ + RTUNI_ALPHA, /* U+00ceba: */ + RTUNI_ALPHA, /* U+00cebb: */ + RTUNI_ALPHA, /* U+00cebc: */ + RTUNI_ALPHA, /* U+00cebd: */ + RTUNI_ALPHA, /* U+00cebe: */ + RTUNI_ALPHA, /* U+00cebf: */ + RTUNI_ALPHA, /* U+00cec0: */ + RTUNI_ALPHA, /* U+00cec1: */ + RTUNI_ALPHA, /* U+00cec2: */ + RTUNI_ALPHA, /* U+00cec3: */ + RTUNI_ALPHA, /* U+00cec4: */ + RTUNI_ALPHA, /* U+00cec5: */ + RTUNI_ALPHA, /* U+00cec6: */ + RTUNI_ALPHA, /* U+00cec7: */ + RTUNI_ALPHA, /* U+00cec8: */ + RTUNI_ALPHA, /* U+00cec9: */ + RTUNI_ALPHA, /* U+00ceca: */ + RTUNI_ALPHA, /* U+00cecb: */ + RTUNI_ALPHA, /* U+00cecc: */ + RTUNI_ALPHA, /* U+00cecd: */ + RTUNI_ALPHA, /* U+00cece: */ + RTUNI_ALPHA, /* U+00cecf: */ + RTUNI_ALPHA, /* U+00ced0: */ + RTUNI_ALPHA, /* U+00ced1: */ + RTUNI_ALPHA, /* U+00ced2: */ + RTUNI_ALPHA, /* U+00ced3: */ + RTUNI_ALPHA, /* U+00ced4: */ + RTUNI_ALPHA, /* U+00ced5: */ + RTUNI_ALPHA, /* U+00ced6: */ + RTUNI_ALPHA, /* U+00ced7: */ + RTUNI_ALPHA, /* U+00ced8: */ + RTUNI_ALPHA, /* U+00ced9: */ + RTUNI_ALPHA, /* U+00ceda: */ + RTUNI_ALPHA, /* U+00cedb: */ + RTUNI_ALPHA, /* U+00cedc: */ + RTUNI_ALPHA, /* U+00cedd: */ + RTUNI_ALPHA, /* U+00cede: */ + RTUNI_ALPHA, /* U+00cedf: */ + RTUNI_ALPHA, /* U+00cee0: */ + RTUNI_ALPHA, /* U+00cee1: */ + RTUNI_ALPHA, /* U+00cee2: */ + RTUNI_ALPHA, /* U+00cee3: */ + RTUNI_ALPHA, /* U+00cee4: */ + RTUNI_ALPHA, /* U+00cee5: */ + RTUNI_ALPHA, /* U+00cee6: */ + RTUNI_ALPHA, /* U+00cee7: */ + RTUNI_ALPHA, /* U+00cee8: */ + RTUNI_ALPHA, /* U+00cee9: */ + RTUNI_ALPHA, /* U+00ceea: */ + RTUNI_ALPHA, /* U+00ceeb: */ + RTUNI_ALPHA, /* U+00ceec: */ + RTUNI_ALPHA, /* U+00ceed: */ + RTUNI_ALPHA, /* U+00ceee: */ + RTUNI_ALPHA, /* U+00ceef: */ + RTUNI_ALPHA, /* U+00cef0: */ + RTUNI_ALPHA, /* U+00cef1: */ + RTUNI_ALPHA, /* U+00cef2: */ + RTUNI_ALPHA, /* U+00cef3: */ + RTUNI_ALPHA, /* U+00cef4: */ + RTUNI_ALPHA, /* U+00cef5: */ + RTUNI_ALPHA, /* U+00cef6: */ + RTUNI_ALPHA, /* U+00cef7: */ + RTUNI_ALPHA, /* U+00cef8: */ + RTUNI_ALPHA, /* U+00cef9: */ + RTUNI_ALPHA, /* U+00cefa: */ + RTUNI_ALPHA, /* U+00cefb: */ + RTUNI_ALPHA, /* U+00cefc: */ + RTUNI_ALPHA, /* U+00cefd: */ + RTUNI_ALPHA, /* U+00cefe: */ + RTUNI_ALPHA, /* U+00ceff: */ + RTUNI_ALPHA, /* U+00cf00: */ + RTUNI_ALPHA, /* U+00cf01: */ + RTUNI_ALPHA, /* U+00cf02: */ + RTUNI_ALPHA, /* U+00cf03: */ + RTUNI_ALPHA, /* U+00cf04: */ + RTUNI_ALPHA, /* U+00cf05: */ + RTUNI_ALPHA, /* U+00cf06: */ + RTUNI_ALPHA, /* U+00cf07: */ + RTUNI_ALPHA, /* U+00cf08: */ + RTUNI_ALPHA, /* U+00cf09: */ + RTUNI_ALPHA, /* U+00cf0a: */ + RTUNI_ALPHA, /* U+00cf0b: */ + RTUNI_ALPHA, /* U+00cf0c: */ + RTUNI_ALPHA, /* U+00cf0d: */ + RTUNI_ALPHA, /* U+00cf0e: */ + RTUNI_ALPHA, /* U+00cf0f: */ + RTUNI_ALPHA, /* U+00cf10: */ + RTUNI_ALPHA, /* U+00cf11: */ + RTUNI_ALPHA, /* U+00cf12: */ + RTUNI_ALPHA, /* U+00cf13: */ + RTUNI_ALPHA, /* U+00cf14: */ + RTUNI_ALPHA, /* U+00cf15: */ + RTUNI_ALPHA, /* U+00cf16: */ + RTUNI_ALPHA, /* U+00cf17: */ + RTUNI_ALPHA, /* U+00cf18: */ + RTUNI_ALPHA, /* U+00cf19: */ + RTUNI_ALPHA, /* U+00cf1a: */ + RTUNI_ALPHA, /* U+00cf1b: */ + RTUNI_ALPHA, /* U+00cf1c: */ + RTUNI_ALPHA, /* U+00cf1d: */ + RTUNI_ALPHA, /* U+00cf1e: */ + RTUNI_ALPHA, /* U+00cf1f: */ + RTUNI_ALPHA, /* U+00cf20: */ + RTUNI_ALPHA, /* U+00cf21: */ + RTUNI_ALPHA, /* U+00cf22: */ + RTUNI_ALPHA, /* U+00cf23: */ + RTUNI_ALPHA, /* U+00cf24: */ + RTUNI_ALPHA, /* U+00cf25: */ + RTUNI_ALPHA, /* U+00cf26: */ + RTUNI_ALPHA, /* U+00cf27: */ + RTUNI_ALPHA, /* U+00cf28: */ + RTUNI_ALPHA, /* U+00cf29: */ + RTUNI_ALPHA, /* U+00cf2a: */ + RTUNI_ALPHA, /* U+00cf2b: */ + RTUNI_ALPHA, /* U+00cf2c: */ + RTUNI_ALPHA, /* U+00cf2d: */ + RTUNI_ALPHA, /* U+00cf2e: */ + RTUNI_ALPHA, /* U+00cf2f: */ + RTUNI_ALPHA, /* U+00cf30: */ + RTUNI_ALPHA, /* U+00cf31: */ + RTUNI_ALPHA, /* U+00cf32: */ + RTUNI_ALPHA, /* U+00cf33: */ + RTUNI_ALPHA, /* U+00cf34: */ + RTUNI_ALPHA, /* U+00cf35: */ + RTUNI_ALPHA, /* U+00cf36: */ + RTUNI_ALPHA, /* U+00cf37: */ + RTUNI_ALPHA, /* U+00cf38: */ + RTUNI_ALPHA, /* U+00cf39: */ + RTUNI_ALPHA, /* U+00cf3a: */ + RTUNI_ALPHA, /* U+00cf3b: */ + RTUNI_ALPHA, /* U+00cf3c: */ + RTUNI_ALPHA, /* U+00cf3d: */ + RTUNI_ALPHA, /* U+00cf3e: */ + RTUNI_ALPHA, /* U+00cf3f: */ + RTUNI_ALPHA, /* U+00cf40: */ + RTUNI_ALPHA, /* U+00cf41: */ + RTUNI_ALPHA, /* U+00cf42: */ + RTUNI_ALPHA, /* U+00cf43: */ + RTUNI_ALPHA, /* U+00cf44: */ + RTUNI_ALPHA, /* U+00cf45: */ + RTUNI_ALPHA, /* U+00cf46: */ + RTUNI_ALPHA, /* U+00cf47: */ + RTUNI_ALPHA, /* U+00cf48: */ + RTUNI_ALPHA, /* U+00cf49: */ + RTUNI_ALPHA, /* U+00cf4a: */ + RTUNI_ALPHA, /* U+00cf4b: */ + RTUNI_ALPHA, /* U+00cf4c: */ + RTUNI_ALPHA, /* U+00cf4d: */ + RTUNI_ALPHA, /* U+00cf4e: */ + RTUNI_ALPHA, /* U+00cf4f: */ + RTUNI_ALPHA, /* U+00cf50: */ + RTUNI_ALPHA, /* U+00cf51: */ + RTUNI_ALPHA, /* U+00cf52: */ + RTUNI_ALPHA, /* U+00cf53: */ + RTUNI_ALPHA, /* U+00cf54: */ + RTUNI_ALPHA, /* U+00cf55: */ + RTUNI_ALPHA, /* U+00cf56: */ + RTUNI_ALPHA, /* U+00cf57: */ + RTUNI_ALPHA, /* U+00cf58: */ + RTUNI_ALPHA, /* U+00cf59: */ + RTUNI_ALPHA, /* U+00cf5a: */ + RTUNI_ALPHA, /* U+00cf5b: */ + RTUNI_ALPHA, /* U+00cf5c: */ + RTUNI_ALPHA, /* U+00cf5d: */ + RTUNI_ALPHA, /* U+00cf5e: */ + RTUNI_ALPHA, /* U+00cf5f: */ + RTUNI_ALPHA, /* U+00cf60: */ + RTUNI_ALPHA, /* U+00cf61: */ + RTUNI_ALPHA, /* U+00cf62: */ + RTUNI_ALPHA, /* U+00cf63: */ + RTUNI_ALPHA, /* U+00cf64: */ + RTUNI_ALPHA, /* U+00cf65: */ + RTUNI_ALPHA, /* U+00cf66: */ + RTUNI_ALPHA, /* U+00cf67: */ + RTUNI_ALPHA, /* U+00cf68: */ + RTUNI_ALPHA, /* U+00cf69: */ + RTUNI_ALPHA, /* U+00cf6a: */ + RTUNI_ALPHA, /* U+00cf6b: */ + RTUNI_ALPHA, /* U+00cf6c: */ + RTUNI_ALPHA, /* U+00cf6d: */ + RTUNI_ALPHA, /* U+00cf6e: */ + RTUNI_ALPHA, /* U+00cf6f: */ + RTUNI_ALPHA, /* U+00cf70: */ + RTUNI_ALPHA, /* U+00cf71: */ + RTUNI_ALPHA, /* U+00cf72: */ + RTUNI_ALPHA, /* U+00cf73: */ + RTUNI_ALPHA, /* U+00cf74: */ + RTUNI_ALPHA, /* U+00cf75: */ + RTUNI_ALPHA, /* U+00cf76: */ + RTUNI_ALPHA, /* U+00cf77: */ + RTUNI_ALPHA, /* U+00cf78: */ + RTUNI_ALPHA, /* U+00cf79: */ + RTUNI_ALPHA, /* U+00cf7a: */ + RTUNI_ALPHA, /* U+00cf7b: */ + RTUNI_ALPHA, /* U+00cf7c: */ + RTUNI_ALPHA, /* U+00cf7d: */ + RTUNI_ALPHA, /* U+00cf7e: */ + RTUNI_ALPHA, /* U+00cf7f: */ + RTUNI_ALPHA, /* U+00cf80: */ + RTUNI_ALPHA, /* U+00cf81: */ + RTUNI_ALPHA, /* U+00cf82: */ + RTUNI_ALPHA, /* U+00cf83: */ + RTUNI_ALPHA, /* U+00cf84: */ + RTUNI_ALPHA, /* U+00cf85: */ + RTUNI_ALPHA, /* U+00cf86: */ + RTUNI_ALPHA, /* U+00cf87: */ + RTUNI_ALPHA, /* U+00cf88: */ + RTUNI_ALPHA, /* U+00cf89: */ + RTUNI_ALPHA, /* U+00cf8a: */ + RTUNI_ALPHA, /* U+00cf8b: */ + RTUNI_ALPHA, /* U+00cf8c: */ + RTUNI_ALPHA, /* U+00cf8d: */ + RTUNI_ALPHA, /* U+00cf8e: */ + RTUNI_ALPHA, /* U+00cf8f: */ + RTUNI_ALPHA, /* U+00cf90: */ + RTUNI_ALPHA, /* U+00cf91: */ + RTUNI_ALPHA, /* U+00cf92: */ + RTUNI_ALPHA, /* U+00cf93: */ + RTUNI_ALPHA, /* U+00cf94: */ + RTUNI_ALPHA, /* U+00cf95: */ + RTUNI_ALPHA, /* U+00cf96: */ + RTUNI_ALPHA, /* U+00cf97: */ + RTUNI_ALPHA, /* U+00cf98: */ + RTUNI_ALPHA, /* U+00cf99: */ + RTUNI_ALPHA, /* U+00cf9a: */ + RTUNI_ALPHA, /* U+00cf9b: */ + RTUNI_ALPHA, /* U+00cf9c: */ + RTUNI_ALPHA, /* U+00cf9d: */ + RTUNI_ALPHA, /* U+00cf9e: */ + RTUNI_ALPHA, /* U+00cf9f: */ + RTUNI_ALPHA, /* U+00cfa0: */ + RTUNI_ALPHA, /* U+00cfa1: */ + RTUNI_ALPHA, /* U+00cfa2: */ + RTUNI_ALPHA, /* U+00cfa3: */ + RTUNI_ALPHA, /* U+00cfa4: */ + RTUNI_ALPHA, /* U+00cfa5: */ + RTUNI_ALPHA, /* U+00cfa6: */ + RTUNI_ALPHA, /* U+00cfa7: */ + RTUNI_ALPHA, /* U+00cfa8: */ + RTUNI_ALPHA, /* U+00cfa9: */ + RTUNI_ALPHA, /* U+00cfaa: */ + RTUNI_ALPHA, /* U+00cfab: */ + RTUNI_ALPHA, /* U+00cfac: */ + RTUNI_ALPHA, /* U+00cfad: */ + RTUNI_ALPHA, /* U+00cfae: */ + RTUNI_ALPHA, /* U+00cfaf: */ + RTUNI_ALPHA, /* U+00cfb0: */ + RTUNI_ALPHA, /* U+00cfb1: */ + RTUNI_ALPHA, /* U+00cfb2: */ + RTUNI_ALPHA, /* U+00cfb3: */ + RTUNI_ALPHA, /* U+00cfb4: */ + RTUNI_ALPHA, /* U+00cfb5: */ + RTUNI_ALPHA, /* U+00cfb6: */ + RTUNI_ALPHA, /* U+00cfb7: */ + RTUNI_ALPHA, /* U+00cfb8: */ + RTUNI_ALPHA, /* U+00cfb9: */ + RTUNI_ALPHA, /* U+00cfba: */ + RTUNI_ALPHA, /* U+00cfbb: */ + RTUNI_ALPHA, /* U+00cfbc: */ + RTUNI_ALPHA, /* U+00cfbd: */ + RTUNI_ALPHA, /* U+00cfbe: */ + RTUNI_ALPHA, /* U+00cfbf: */ + RTUNI_ALPHA, /* U+00cfc0: */ + RTUNI_ALPHA, /* U+00cfc1: */ + RTUNI_ALPHA, /* U+00cfc2: */ + RTUNI_ALPHA, /* U+00cfc3: */ + RTUNI_ALPHA, /* U+00cfc4: */ + RTUNI_ALPHA, /* U+00cfc5: */ + RTUNI_ALPHA, /* U+00cfc6: */ + RTUNI_ALPHA, /* U+00cfc7: */ + RTUNI_ALPHA, /* U+00cfc8: */ + RTUNI_ALPHA, /* U+00cfc9: */ + RTUNI_ALPHA, /* U+00cfca: */ + RTUNI_ALPHA, /* U+00cfcb: */ + RTUNI_ALPHA, /* U+00cfcc: */ + RTUNI_ALPHA, /* U+00cfcd: */ + RTUNI_ALPHA, /* U+00cfce: */ + RTUNI_ALPHA, /* U+00cfcf: */ + RTUNI_ALPHA, /* U+00cfd0: */ + RTUNI_ALPHA, /* U+00cfd1: */ + RTUNI_ALPHA, /* U+00cfd2: */ + RTUNI_ALPHA, /* U+00cfd3: */ + RTUNI_ALPHA, /* U+00cfd4: */ + RTUNI_ALPHA, /* U+00cfd5: */ + RTUNI_ALPHA, /* U+00cfd6: */ + RTUNI_ALPHA, /* U+00cfd7: */ + RTUNI_ALPHA, /* U+00cfd8: */ + RTUNI_ALPHA, /* U+00cfd9: */ + RTUNI_ALPHA, /* U+00cfda: */ + RTUNI_ALPHA, /* U+00cfdb: */ + RTUNI_ALPHA, /* U+00cfdc: */ + RTUNI_ALPHA, /* U+00cfdd: */ + RTUNI_ALPHA, /* U+00cfde: */ + RTUNI_ALPHA, /* U+00cfdf: */ + RTUNI_ALPHA, /* U+00cfe0: */ + RTUNI_ALPHA, /* U+00cfe1: */ + RTUNI_ALPHA, /* U+00cfe2: */ + RTUNI_ALPHA, /* U+00cfe3: */ + RTUNI_ALPHA, /* U+00cfe4: */ + RTUNI_ALPHA, /* U+00cfe5: */ + RTUNI_ALPHA, /* U+00cfe6: */ + RTUNI_ALPHA, /* U+00cfe7: */ + RTUNI_ALPHA, /* U+00cfe8: */ + RTUNI_ALPHA, /* U+00cfe9: */ + RTUNI_ALPHA, /* U+00cfea: */ + RTUNI_ALPHA, /* U+00cfeb: */ + RTUNI_ALPHA, /* U+00cfec: */ + RTUNI_ALPHA, /* U+00cfed: */ + RTUNI_ALPHA, /* U+00cfee: */ + RTUNI_ALPHA, /* U+00cfef: */ + RTUNI_ALPHA, /* U+00cff0: */ + RTUNI_ALPHA, /* U+00cff1: */ + RTUNI_ALPHA, /* U+00cff2: */ + RTUNI_ALPHA, /* U+00cff3: */ + RTUNI_ALPHA, /* U+00cff4: */ + RTUNI_ALPHA, /* U+00cff5: */ + RTUNI_ALPHA, /* U+00cff6: */ + RTUNI_ALPHA, /* U+00cff7: */ + RTUNI_ALPHA, /* U+00cff8: */ + RTUNI_ALPHA, /* U+00cff9: */ + RTUNI_ALPHA, /* U+00cffa: */ + RTUNI_ALPHA, /* U+00cffb: */ + RTUNI_ALPHA, /* U+00cffc: */ + RTUNI_ALPHA, /* U+00cffd: */ + RTUNI_ALPHA, /* U+00cffe: */ + RTUNI_ALPHA, /* U+00cfff: */ + RTUNI_ALPHA, /* U+00d000: */ + RTUNI_ALPHA, /* U+00d001: */ + RTUNI_ALPHA, /* U+00d002: */ + RTUNI_ALPHA, /* U+00d003: */ + RTUNI_ALPHA, /* U+00d004: */ + RTUNI_ALPHA, /* U+00d005: */ + RTUNI_ALPHA, /* U+00d006: */ + RTUNI_ALPHA, /* U+00d007: */ + RTUNI_ALPHA, /* U+00d008: */ + RTUNI_ALPHA, /* U+00d009: */ + RTUNI_ALPHA, /* U+00d00a: */ + RTUNI_ALPHA, /* U+00d00b: */ + RTUNI_ALPHA, /* U+00d00c: */ + RTUNI_ALPHA, /* U+00d00d: */ + RTUNI_ALPHA, /* U+00d00e: */ + RTUNI_ALPHA, /* U+00d00f: */ + RTUNI_ALPHA, /* U+00d010: */ + RTUNI_ALPHA, /* U+00d011: */ + RTUNI_ALPHA, /* U+00d012: */ + RTUNI_ALPHA, /* U+00d013: */ + RTUNI_ALPHA, /* U+00d014: */ + RTUNI_ALPHA, /* U+00d015: */ + RTUNI_ALPHA, /* U+00d016: */ + RTUNI_ALPHA, /* U+00d017: */ + RTUNI_ALPHA, /* U+00d018: */ + RTUNI_ALPHA, /* U+00d019: */ + RTUNI_ALPHA, /* U+00d01a: */ + RTUNI_ALPHA, /* U+00d01b: */ + RTUNI_ALPHA, /* U+00d01c: */ + RTUNI_ALPHA, /* U+00d01d: */ + RTUNI_ALPHA, /* U+00d01e: */ + RTUNI_ALPHA, /* U+00d01f: */ + RTUNI_ALPHA, /* U+00d020: */ + RTUNI_ALPHA, /* U+00d021: */ + RTUNI_ALPHA, /* U+00d022: */ + RTUNI_ALPHA, /* U+00d023: */ + RTUNI_ALPHA, /* U+00d024: */ + RTUNI_ALPHA, /* U+00d025: */ + RTUNI_ALPHA, /* U+00d026: */ + RTUNI_ALPHA, /* U+00d027: */ + RTUNI_ALPHA, /* U+00d028: */ + RTUNI_ALPHA, /* U+00d029: */ + RTUNI_ALPHA, /* U+00d02a: */ + RTUNI_ALPHA, /* U+00d02b: */ + RTUNI_ALPHA, /* U+00d02c: */ + RTUNI_ALPHA, /* U+00d02d: */ + RTUNI_ALPHA, /* U+00d02e: */ + RTUNI_ALPHA, /* U+00d02f: */ + RTUNI_ALPHA, /* U+00d030: */ + RTUNI_ALPHA, /* U+00d031: */ + RTUNI_ALPHA, /* U+00d032: */ + RTUNI_ALPHA, /* U+00d033: */ + RTUNI_ALPHA, /* U+00d034: */ + RTUNI_ALPHA, /* U+00d035: */ + RTUNI_ALPHA, /* U+00d036: */ + RTUNI_ALPHA, /* U+00d037: */ + RTUNI_ALPHA, /* U+00d038: */ + RTUNI_ALPHA, /* U+00d039: */ + RTUNI_ALPHA, /* U+00d03a: */ + RTUNI_ALPHA, /* U+00d03b: */ + RTUNI_ALPHA, /* U+00d03c: */ + RTUNI_ALPHA, /* U+00d03d: */ + RTUNI_ALPHA, /* U+00d03e: */ + RTUNI_ALPHA, /* U+00d03f: */ + RTUNI_ALPHA, /* U+00d040: */ + RTUNI_ALPHA, /* U+00d041: */ + RTUNI_ALPHA, /* U+00d042: */ + RTUNI_ALPHA, /* U+00d043: */ + RTUNI_ALPHA, /* U+00d044: */ + RTUNI_ALPHA, /* U+00d045: */ + RTUNI_ALPHA, /* U+00d046: */ + RTUNI_ALPHA, /* U+00d047: */ + RTUNI_ALPHA, /* U+00d048: */ + RTUNI_ALPHA, /* U+00d049: */ + RTUNI_ALPHA, /* U+00d04a: */ + RTUNI_ALPHA, /* U+00d04b: */ + RTUNI_ALPHA, /* U+00d04c: */ + RTUNI_ALPHA, /* U+00d04d: */ + RTUNI_ALPHA, /* U+00d04e: */ + RTUNI_ALPHA, /* U+00d04f: */ + RTUNI_ALPHA, /* U+00d050: */ + RTUNI_ALPHA, /* U+00d051: */ + RTUNI_ALPHA, /* U+00d052: */ + RTUNI_ALPHA, /* U+00d053: */ + RTUNI_ALPHA, /* U+00d054: */ + RTUNI_ALPHA, /* U+00d055: */ + RTUNI_ALPHA, /* U+00d056: */ + RTUNI_ALPHA, /* U+00d057: */ + RTUNI_ALPHA, /* U+00d058: */ + RTUNI_ALPHA, /* U+00d059: */ + RTUNI_ALPHA, /* U+00d05a: */ + RTUNI_ALPHA, /* U+00d05b: */ + RTUNI_ALPHA, /* U+00d05c: */ + RTUNI_ALPHA, /* U+00d05d: */ + RTUNI_ALPHA, /* U+00d05e: */ + RTUNI_ALPHA, /* U+00d05f: */ + RTUNI_ALPHA, /* U+00d060: */ + RTUNI_ALPHA, /* U+00d061: */ + RTUNI_ALPHA, /* U+00d062: */ + RTUNI_ALPHA, /* U+00d063: */ + RTUNI_ALPHA, /* U+00d064: */ + RTUNI_ALPHA, /* U+00d065: */ + RTUNI_ALPHA, /* U+00d066: */ + RTUNI_ALPHA, /* U+00d067: */ + RTUNI_ALPHA, /* U+00d068: */ + RTUNI_ALPHA, /* U+00d069: */ + RTUNI_ALPHA, /* U+00d06a: */ + RTUNI_ALPHA, /* U+00d06b: */ + RTUNI_ALPHA, /* U+00d06c: */ + RTUNI_ALPHA, /* U+00d06d: */ + RTUNI_ALPHA, /* U+00d06e: */ + RTUNI_ALPHA, /* U+00d06f: */ + RTUNI_ALPHA, /* U+00d070: */ + RTUNI_ALPHA, /* U+00d071: */ + RTUNI_ALPHA, /* U+00d072: */ + RTUNI_ALPHA, /* U+00d073: */ + RTUNI_ALPHA, /* U+00d074: */ + RTUNI_ALPHA, /* U+00d075: */ + RTUNI_ALPHA, /* U+00d076: */ + RTUNI_ALPHA, /* U+00d077: */ + RTUNI_ALPHA, /* U+00d078: */ + RTUNI_ALPHA, /* U+00d079: */ + RTUNI_ALPHA, /* U+00d07a: */ + RTUNI_ALPHA, /* U+00d07b: */ + RTUNI_ALPHA, /* U+00d07c: */ + RTUNI_ALPHA, /* U+00d07d: */ + RTUNI_ALPHA, /* U+00d07e: */ + RTUNI_ALPHA, /* U+00d07f: */ + RTUNI_ALPHA, /* U+00d080: */ + RTUNI_ALPHA, /* U+00d081: */ + RTUNI_ALPHA, /* U+00d082: */ + RTUNI_ALPHA, /* U+00d083: */ + RTUNI_ALPHA, /* U+00d084: */ + RTUNI_ALPHA, /* U+00d085: */ + RTUNI_ALPHA, /* U+00d086: */ + RTUNI_ALPHA, /* U+00d087: */ + RTUNI_ALPHA, /* U+00d088: */ + RTUNI_ALPHA, /* U+00d089: */ + RTUNI_ALPHA, /* U+00d08a: */ + RTUNI_ALPHA, /* U+00d08b: */ + RTUNI_ALPHA, /* U+00d08c: */ + RTUNI_ALPHA, /* U+00d08d: */ + RTUNI_ALPHA, /* U+00d08e: */ + RTUNI_ALPHA, /* U+00d08f: */ + RTUNI_ALPHA, /* U+00d090: */ + RTUNI_ALPHA, /* U+00d091: */ + RTUNI_ALPHA, /* U+00d092: */ + RTUNI_ALPHA, /* U+00d093: */ + RTUNI_ALPHA, /* U+00d094: */ + RTUNI_ALPHA, /* U+00d095: */ + RTUNI_ALPHA, /* U+00d096: */ + RTUNI_ALPHA, /* U+00d097: */ + RTUNI_ALPHA, /* U+00d098: */ + RTUNI_ALPHA, /* U+00d099: */ + RTUNI_ALPHA, /* U+00d09a: */ + RTUNI_ALPHA, /* U+00d09b: */ + RTUNI_ALPHA, /* U+00d09c: */ + RTUNI_ALPHA, /* U+00d09d: */ + RTUNI_ALPHA, /* U+00d09e: */ + RTUNI_ALPHA, /* U+00d09f: */ + RTUNI_ALPHA, /* U+00d0a0: */ + RTUNI_ALPHA, /* U+00d0a1: */ + RTUNI_ALPHA, /* U+00d0a2: */ + RTUNI_ALPHA, /* U+00d0a3: */ + RTUNI_ALPHA, /* U+00d0a4: */ + RTUNI_ALPHA, /* U+00d0a5: */ + RTUNI_ALPHA, /* U+00d0a6: */ + RTUNI_ALPHA, /* U+00d0a7: */ + RTUNI_ALPHA, /* U+00d0a8: */ + RTUNI_ALPHA, /* U+00d0a9: */ + RTUNI_ALPHA, /* U+00d0aa: */ + RTUNI_ALPHA, /* U+00d0ab: */ + RTUNI_ALPHA, /* U+00d0ac: */ + RTUNI_ALPHA, /* U+00d0ad: */ + RTUNI_ALPHA, /* U+00d0ae: */ + RTUNI_ALPHA, /* U+00d0af: */ + RTUNI_ALPHA, /* U+00d0b0: */ + RTUNI_ALPHA, /* U+00d0b1: */ + RTUNI_ALPHA, /* U+00d0b2: */ + RTUNI_ALPHA, /* U+00d0b3: */ + RTUNI_ALPHA, /* U+00d0b4: */ + RTUNI_ALPHA, /* U+00d0b5: */ + RTUNI_ALPHA, /* U+00d0b6: */ + RTUNI_ALPHA, /* U+00d0b7: */ + RTUNI_ALPHA, /* U+00d0b8: */ + RTUNI_ALPHA, /* U+00d0b9: */ + RTUNI_ALPHA, /* U+00d0ba: */ + RTUNI_ALPHA, /* U+00d0bb: */ + RTUNI_ALPHA, /* U+00d0bc: */ + RTUNI_ALPHA, /* U+00d0bd: */ + RTUNI_ALPHA, /* U+00d0be: */ + RTUNI_ALPHA, /* U+00d0bf: */ + RTUNI_ALPHA, /* U+00d0c0: */ + RTUNI_ALPHA, /* U+00d0c1: */ + RTUNI_ALPHA, /* U+00d0c2: */ + RTUNI_ALPHA, /* U+00d0c3: */ + RTUNI_ALPHA, /* U+00d0c4: */ + RTUNI_ALPHA, /* U+00d0c5: */ + RTUNI_ALPHA, /* U+00d0c6: */ + RTUNI_ALPHA, /* U+00d0c7: */ + RTUNI_ALPHA, /* U+00d0c8: */ + RTUNI_ALPHA, /* U+00d0c9: */ + RTUNI_ALPHA, /* U+00d0ca: */ + RTUNI_ALPHA, /* U+00d0cb: */ + RTUNI_ALPHA, /* U+00d0cc: */ + RTUNI_ALPHA, /* U+00d0cd: */ + RTUNI_ALPHA, /* U+00d0ce: */ + RTUNI_ALPHA, /* U+00d0cf: */ + RTUNI_ALPHA, /* U+00d0d0: */ + RTUNI_ALPHA, /* U+00d0d1: */ + RTUNI_ALPHA, /* U+00d0d2: */ + RTUNI_ALPHA, /* U+00d0d3: */ + RTUNI_ALPHA, /* U+00d0d4: */ + RTUNI_ALPHA, /* U+00d0d5: */ + RTUNI_ALPHA, /* U+00d0d6: */ + RTUNI_ALPHA, /* U+00d0d7: */ + RTUNI_ALPHA, /* U+00d0d8: */ + RTUNI_ALPHA, /* U+00d0d9: */ + RTUNI_ALPHA, /* U+00d0da: */ + RTUNI_ALPHA, /* U+00d0db: */ + RTUNI_ALPHA, /* U+00d0dc: */ + RTUNI_ALPHA, /* U+00d0dd: */ + RTUNI_ALPHA, /* U+00d0de: */ + RTUNI_ALPHA, /* U+00d0df: */ + RTUNI_ALPHA, /* U+00d0e0: */ + RTUNI_ALPHA, /* U+00d0e1: */ + RTUNI_ALPHA, /* U+00d0e2: */ + RTUNI_ALPHA, /* U+00d0e3: */ + RTUNI_ALPHA, /* U+00d0e4: */ + RTUNI_ALPHA, /* U+00d0e5: */ + RTUNI_ALPHA, /* U+00d0e6: */ + RTUNI_ALPHA, /* U+00d0e7: */ + RTUNI_ALPHA, /* U+00d0e8: */ + RTUNI_ALPHA, /* U+00d0e9: */ + RTUNI_ALPHA, /* U+00d0ea: */ + RTUNI_ALPHA, /* U+00d0eb: */ + RTUNI_ALPHA, /* U+00d0ec: */ + RTUNI_ALPHA, /* U+00d0ed: */ + RTUNI_ALPHA, /* U+00d0ee: */ + RTUNI_ALPHA, /* U+00d0ef: */ + RTUNI_ALPHA, /* U+00d0f0: */ + RTUNI_ALPHA, /* U+00d0f1: */ + RTUNI_ALPHA, /* U+00d0f2: */ + RTUNI_ALPHA, /* U+00d0f3: */ + RTUNI_ALPHA, /* U+00d0f4: */ + RTUNI_ALPHA, /* U+00d0f5: */ + RTUNI_ALPHA, /* U+00d0f6: */ + RTUNI_ALPHA, /* U+00d0f7: */ + RTUNI_ALPHA, /* U+00d0f8: */ + RTUNI_ALPHA, /* U+00d0f9: */ + RTUNI_ALPHA, /* U+00d0fa: */ + RTUNI_ALPHA, /* U+00d0fb: */ + RTUNI_ALPHA, /* U+00d0fc: */ + RTUNI_ALPHA, /* U+00d0fd: */ + RTUNI_ALPHA, /* U+00d0fe: */ + RTUNI_ALPHA, /* U+00d0ff: */ + RTUNI_ALPHA, /* U+00d100: */ + RTUNI_ALPHA, /* U+00d101: */ + RTUNI_ALPHA, /* U+00d102: */ + RTUNI_ALPHA, /* U+00d103: */ + RTUNI_ALPHA, /* U+00d104: */ + RTUNI_ALPHA, /* U+00d105: */ + RTUNI_ALPHA, /* U+00d106: */ + RTUNI_ALPHA, /* U+00d107: */ + RTUNI_ALPHA, /* U+00d108: */ + RTUNI_ALPHA, /* U+00d109: */ + RTUNI_ALPHA, /* U+00d10a: */ + RTUNI_ALPHA, /* U+00d10b: */ + RTUNI_ALPHA, /* U+00d10c: */ + RTUNI_ALPHA, /* U+00d10d: */ + RTUNI_ALPHA, /* U+00d10e: */ + RTUNI_ALPHA, /* U+00d10f: */ + RTUNI_ALPHA, /* U+00d110: */ + RTUNI_ALPHA, /* U+00d111: */ + RTUNI_ALPHA, /* U+00d112: */ + RTUNI_ALPHA, /* U+00d113: */ + RTUNI_ALPHA, /* U+00d114: */ + RTUNI_ALPHA, /* U+00d115: */ + RTUNI_ALPHA, /* U+00d116: */ + RTUNI_ALPHA, /* U+00d117: */ + RTUNI_ALPHA, /* U+00d118: */ + RTUNI_ALPHA, /* U+00d119: */ + RTUNI_ALPHA, /* U+00d11a: */ + RTUNI_ALPHA, /* U+00d11b: */ + RTUNI_ALPHA, /* U+00d11c: */ + RTUNI_ALPHA, /* U+00d11d: */ + RTUNI_ALPHA, /* U+00d11e: */ + RTUNI_ALPHA, /* U+00d11f: */ + RTUNI_ALPHA, /* U+00d120: */ + RTUNI_ALPHA, /* U+00d121: */ + RTUNI_ALPHA, /* U+00d122: */ + RTUNI_ALPHA, /* U+00d123: */ + RTUNI_ALPHA, /* U+00d124: */ + RTUNI_ALPHA, /* U+00d125: */ + RTUNI_ALPHA, /* U+00d126: */ + RTUNI_ALPHA, /* U+00d127: */ + RTUNI_ALPHA, /* U+00d128: */ + RTUNI_ALPHA, /* U+00d129: */ + RTUNI_ALPHA, /* U+00d12a: */ + RTUNI_ALPHA, /* U+00d12b: */ + RTUNI_ALPHA, /* U+00d12c: */ + RTUNI_ALPHA, /* U+00d12d: */ + RTUNI_ALPHA, /* U+00d12e: */ + RTUNI_ALPHA, /* U+00d12f: */ + RTUNI_ALPHA, /* U+00d130: */ + RTUNI_ALPHA, /* U+00d131: */ + RTUNI_ALPHA, /* U+00d132: */ + RTUNI_ALPHA, /* U+00d133: */ + RTUNI_ALPHA, /* U+00d134: */ + RTUNI_ALPHA, /* U+00d135: */ + RTUNI_ALPHA, /* U+00d136: */ + RTUNI_ALPHA, /* U+00d137: */ + RTUNI_ALPHA, /* U+00d138: */ + RTUNI_ALPHA, /* U+00d139: */ + RTUNI_ALPHA, /* U+00d13a: */ + RTUNI_ALPHA, /* U+00d13b: */ + RTUNI_ALPHA, /* U+00d13c: */ + RTUNI_ALPHA, /* U+00d13d: */ + RTUNI_ALPHA, /* U+00d13e: */ + RTUNI_ALPHA, /* U+00d13f: */ + RTUNI_ALPHA, /* U+00d140: */ + RTUNI_ALPHA, /* U+00d141: */ + RTUNI_ALPHA, /* U+00d142: */ + RTUNI_ALPHA, /* U+00d143: */ + RTUNI_ALPHA, /* U+00d144: */ + RTUNI_ALPHA, /* U+00d145: */ + RTUNI_ALPHA, /* U+00d146: */ + RTUNI_ALPHA, /* U+00d147: */ + RTUNI_ALPHA, /* U+00d148: */ + RTUNI_ALPHA, /* U+00d149: */ + RTUNI_ALPHA, /* U+00d14a: */ + RTUNI_ALPHA, /* U+00d14b: */ + RTUNI_ALPHA, /* U+00d14c: */ + RTUNI_ALPHA, /* U+00d14d: */ + RTUNI_ALPHA, /* U+00d14e: */ + RTUNI_ALPHA, /* U+00d14f: */ + RTUNI_ALPHA, /* U+00d150: */ + RTUNI_ALPHA, /* U+00d151: */ + RTUNI_ALPHA, /* U+00d152: */ + RTUNI_ALPHA, /* U+00d153: */ + RTUNI_ALPHA, /* U+00d154: */ + RTUNI_ALPHA, /* U+00d155: */ + RTUNI_ALPHA, /* U+00d156: */ + RTUNI_ALPHA, /* U+00d157: */ + RTUNI_ALPHA, /* U+00d158: */ + RTUNI_ALPHA, /* U+00d159: */ + RTUNI_ALPHA, /* U+00d15a: */ + RTUNI_ALPHA, /* U+00d15b: */ + RTUNI_ALPHA, /* U+00d15c: */ + RTUNI_ALPHA, /* U+00d15d: */ + RTUNI_ALPHA, /* U+00d15e: */ + RTUNI_ALPHA, /* U+00d15f: */ + RTUNI_ALPHA, /* U+00d160: */ + RTUNI_ALPHA, /* U+00d161: */ + RTUNI_ALPHA, /* U+00d162: */ + RTUNI_ALPHA, /* U+00d163: */ + RTUNI_ALPHA, /* U+00d164: */ + RTUNI_ALPHA, /* U+00d165: */ + RTUNI_ALPHA, /* U+00d166: */ + RTUNI_ALPHA, /* U+00d167: */ + RTUNI_ALPHA, /* U+00d168: */ + RTUNI_ALPHA, /* U+00d169: */ + RTUNI_ALPHA, /* U+00d16a: */ + RTUNI_ALPHA, /* U+00d16b: */ + RTUNI_ALPHA, /* U+00d16c: */ + RTUNI_ALPHA, /* U+00d16d: */ + RTUNI_ALPHA, /* U+00d16e: */ + RTUNI_ALPHA, /* U+00d16f: */ + RTUNI_ALPHA, /* U+00d170: */ + RTUNI_ALPHA, /* U+00d171: */ + RTUNI_ALPHA, /* U+00d172: */ + RTUNI_ALPHA, /* U+00d173: */ + RTUNI_ALPHA, /* U+00d174: */ + RTUNI_ALPHA, /* U+00d175: */ + RTUNI_ALPHA, /* U+00d176: */ + RTUNI_ALPHA, /* U+00d177: */ + RTUNI_ALPHA, /* U+00d178: */ + RTUNI_ALPHA, /* U+00d179: */ + RTUNI_ALPHA, /* U+00d17a: */ + RTUNI_ALPHA, /* U+00d17b: */ + RTUNI_ALPHA, /* U+00d17c: */ + RTUNI_ALPHA, /* U+00d17d: */ + RTUNI_ALPHA, /* U+00d17e: */ + RTUNI_ALPHA, /* U+00d17f: */ + RTUNI_ALPHA, /* U+00d180: */ + RTUNI_ALPHA, /* U+00d181: */ + RTUNI_ALPHA, /* U+00d182: */ + RTUNI_ALPHA, /* U+00d183: */ + RTUNI_ALPHA, /* U+00d184: */ + RTUNI_ALPHA, /* U+00d185: */ + RTUNI_ALPHA, /* U+00d186: */ + RTUNI_ALPHA, /* U+00d187: */ + RTUNI_ALPHA, /* U+00d188: */ + RTUNI_ALPHA, /* U+00d189: */ + RTUNI_ALPHA, /* U+00d18a: */ + RTUNI_ALPHA, /* U+00d18b: */ + RTUNI_ALPHA, /* U+00d18c: */ + RTUNI_ALPHA, /* U+00d18d: */ + RTUNI_ALPHA, /* U+00d18e: */ + RTUNI_ALPHA, /* U+00d18f: */ + RTUNI_ALPHA, /* U+00d190: */ + RTUNI_ALPHA, /* U+00d191: */ + RTUNI_ALPHA, /* U+00d192: */ + RTUNI_ALPHA, /* U+00d193: */ + RTUNI_ALPHA, /* U+00d194: */ + RTUNI_ALPHA, /* U+00d195: */ + RTUNI_ALPHA, /* U+00d196: */ + RTUNI_ALPHA, /* U+00d197: */ + RTUNI_ALPHA, /* U+00d198: */ + RTUNI_ALPHA, /* U+00d199: */ + RTUNI_ALPHA, /* U+00d19a: */ + RTUNI_ALPHA, /* U+00d19b: */ + RTUNI_ALPHA, /* U+00d19c: */ + RTUNI_ALPHA, /* U+00d19d: */ + RTUNI_ALPHA, /* U+00d19e: */ + RTUNI_ALPHA, /* U+00d19f: */ + RTUNI_ALPHA, /* U+00d1a0: */ + RTUNI_ALPHA, /* U+00d1a1: */ + RTUNI_ALPHA, /* U+00d1a2: */ + RTUNI_ALPHA, /* U+00d1a3: */ + RTUNI_ALPHA, /* U+00d1a4: */ + RTUNI_ALPHA, /* U+00d1a5: */ + RTUNI_ALPHA, /* U+00d1a6: */ + RTUNI_ALPHA, /* U+00d1a7: */ + RTUNI_ALPHA, /* U+00d1a8: */ + RTUNI_ALPHA, /* U+00d1a9: */ + RTUNI_ALPHA, /* U+00d1aa: */ + RTUNI_ALPHA, /* U+00d1ab: */ + RTUNI_ALPHA, /* U+00d1ac: */ + RTUNI_ALPHA, /* U+00d1ad: */ + RTUNI_ALPHA, /* U+00d1ae: */ + RTUNI_ALPHA, /* U+00d1af: */ + RTUNI_ALPHA, /* U+00d1b0: */ + RTUNI_ALPHA, /* U+00d1b1: */ + RTUNI_ALPHA, /* U+00d1b2: */ + RTUNI_ALPHA, /* U+00d1b3: */ + RTUNI_ALPHA, /* U+00d1b4: */ + RTUNI_ALPHA, /* U+00d1b5: */ + RTUNI_ALPHA, /* U+00d1b6: */ + RTUNI_ALPHA, /* U+00d1b7: */ + RTUNI_ALPHA, /* U+00d1b8: */ + RTUNI_ALPHA, /* U+00d1b9: */ + RTUNI_ALPHA, /* U+00d1ba: */ + RTUNI_ALPHA, /* U+00d1bb: */ + RTUNI_ALPHA, /* U+00d1bc: */ + RTUNI_ALPHA, /* U+00d1bd: */ + RTUNI_ALPHA, /* U+00d1be: */ + RTUNI_ALPHA, /* U+00d1bf: */ + RTUNI_ALPHA, /* U+00d1c0: */ + RTUNI_ALPHA, /* U+00d1c1: */ + RTUNI_ALPHA, /* U+00d1c2: */ + RTUNI_ALPHA, /* U+00d1c3: */ + RTUNI_ALPHA, /* U+00d1c4: */ + RTUNI_ALPHA, /* U+00d1c5: */ + RTUNI_ALPHA, /* U+00d1c6: */ + RTUNI_ALPHA, /* U+00d1c7: */ + RTUNI_ALPHA, /* U+00d1c8: */ + RTUNI_ALPHA, /* U+00d1c9: */ + RTUNI_ALPHA, /* U+00d1ca: */ + RTUNI_ALPHA, /* U+00d1cb: */ + RTUNI_ALPHA, /* U+00d1cc: */ + RTUNI_ALPHA, /* U+00d1cd: */ + RTUNI_ALPHA, /* U+00d1ce: */ + RTUNI_ALPHA, /* U+00d1cf: */ + RTUNI_ALPHA, /* U+00d1d0: */ + RTUNI_ALPHA, /* U+00d1d1: */ + RTUNI_ALPHA, /* U+00d1d2: */ + RTUNI_ALPHA, /* U+00d1d3: */ + RTUNI_ALPHA, /* U+00d1d4: */ + RTUNI_ALPHA, /* U+00d1d5: */ + RTUNI_ALPHA, /* U+00d1d6: */ + RTUNI_ALPHA, /* U+00d1d7: */ + RTUNI_ALPHA, /* U+00d1d8: */ + RTUNI_ALPHA, /* U+00d1d9: */ + RTUNI_ALPHA, /* U+00d1da: */ + RTUNI_ALPHA, /* U+00d1db: */ + RTUNI_ALPHA, /* U+00d1dc: */ + RTUNI_ALPHA, /* U+00d1dd: */ + RTUNI_ALPHA, /* U+00d1de: */ + RTUNI_ALPHA, /* U+00d1df: */ + RTUNI_ALPHA, /* U+00d1e0: */ + RTUNI_ALPHA, /* U+00d1e1: */ + RTUNI_ALPHA, /* U+00d1e2: */ + RTUNI_ALPHA, /* U+00d1e3: */ + RTUNI_ALPHA, /* U+00d1e4: */ + RTUNI_ALPHA, /* U+00d1e5: */ + RTUNI_ALPHA, /* U+00d1e6: */ + RTUNI_ALPHA, /* U+00d1e7: */ + RTUNI_ALPHA, /* U+00d1e8: */ + RTUNI_ALPHA, /* U+00d1e9: */ + RTUNI_ALPHA, /* U+00d1ea: */ + RTUNI_ALPHA, /* U+00d1eb: */ + RTUNI_ALPHA, /* U+00d1ec: */ + RTUNI_ALPHA, /* U+00d1ed: */ + RTUNI_ALPHA, /* U+00d1ee: */ + RTUNI_ALPHA, /* U+00d1ef: */ + RTUNI_ALPHA, /* U+00d1f0: */ + RTUNI_ALPHA, /* U+00d1f1: */ + RTUNI_ALPHA, /* U+00d1f2: */ + RTUNI_ALPHA, /* U+00d1f3: */ + RTUNI_ALPHA, /* U+00d1f4: */ + RTUNI_ALPHA, /* U+00d1f5: */ + RTUNI_ALPHA, /* U+00d1f6: */ + RTUNI_ALPHA, /* U+00d1f7: */ + RTUNI_ALPHA, /* U+00d1f8: */ + RTUNI_ALPHA, /* U+00d1f9: */ + RTUNI_ALPHA, /* U+00d1fa: */ + RTUNI_ALPHA, /* U+00d1fb: */ + RTUNI_ALPHA, /* U+00d1fc: */ + RTUNI_ALPHA, /* U+00d1fd: */ + RTUNI_ALPHA, /* U+00d1fe: */ + RTUNI_ALPHA, /* U+00d1ff: */ + RTUNI_ALPHA, /* U+00d200: */ + RTUNI_ALPHA, /* U+00d201: */ + RTUNI_ALPHA, /* U+00d202: */ + RTUNI_ALPHA, /* U+00d203: */ + RTUNI_ALPHA, /* U+00d204: */ + RTUNI_ALPHA, /* U+00d205: */ + RTUNI_ALPHA, /* U+00d206: */ + RTUNI_ALPHA, /* U+00d207: */ + RTUNI_ALPHA, /* U+00d208: */ + RTUNI_ALPHA, /* U+00d209: */ + RTUNI_ALPHA, /* U+00d20a: */ + RTUNI_ALPHA, /* U+00d20b: */ + RTUNI_ALPHA, /* U+00d20c: */ + RTUNI_ALPHA, /* U+00d20d: */ + RTUNI_ALPHA, /* U+00d20e: */ + RTUNI_ALPHA, /* U+00d20f: */ + RTUNI_ALPHA, /* U+00d210: */ + RTUNI_ALPHA, /* U+00d211: */ + RTUNI_ALPHA, /* U+00d212: */ + RTUNI_ALPHA, /* U+00d213: */ + RTUNI_ALPHA, /* U+00d214: */ + RTUNI_ALPHA, /* U+00d215: */ + RTUNI_ALPHA, /* U+00d216: */ + RTUNI_ALPHA, /* U+00d217: */ + RTUNI_ALPHA, /* U+00d218: */ + RTUNI_ALPHA, /* U+00d219: */ + RTUNI_ALPHA, /* U+00d21a: */ + RTUNI_ALPHA, /* U+00d21b: */ + RTUNI_ALPHA, /* U+00d21c: */ + RTUNI_ALPHA, /* U+00d21d: */ + RTUNI_ALPHA, /* U+00d21e: */ + RTUNI_ALPHA, /* U+00d21f: */ + RTUNI_ALPHA, /* U+00d220: */ + RTUNI_ALPHA, /* U+00d221: */ + RTUNI_ALPHA, /* U+00d222: */ + RTUNI_ALPHA, /* U+00d223: */ + RTUNI_ALPHA, /* U+00d224: */ + RTUNI_ALPHA, /* U+00d225: */ + RTUNI_ALPHA, /* U+00d226: */ + RTUNI_ALPHA, /* U+00d227: */ + RTUNI_ALPHA, /* U+00d228: */ + RTUNI_ALPHA, /* U+00d229: */ + RTUNI_ALPHA, /* U+00d22a: */ + RTUNI_ALPHA, /* U+00d22b: */ + RTUNI_ALPHA, /* U+00d22c: */ + RTUNI_ALPHA, /* U+00d22d: */ + RTUNI_ALPHA, /* U+00d22e: */ + RTUNI_ALPHA, /* U+00d22f: */ + RTUNI_ALPHA, /* U+00d230: */ + RTUNI_ALPHA, /* U+00d231: */ + RTUNI_ALPHA, /* U+00d232: */ + RTUNI_ALPHA, /* U+00d233: */ + RTUNI_ALPHA, /* U+00d234: */ + RTUNI_ALPHA, /* U+00d235: */ + RTUNI_ALPHA, /* U+00d236: */ + RTUNI_ALPHA, /* U+00d237: */ + RTUNI_ALPHA, /* U+00d238: */ + RTUNI_ALPHA, /* U+00d239: */ + RTUNI_ALPHA, /* U+00d23a: */ + RTUNI_ALPHA, /* U+00d23b: */ + RTUNI_ALPHA, /* U+00d23c: */ + RTUNI_ALPHA, /* U+00d23d: */ + RTUNI_ALPHA, /* U+00d23e: */ + RTUNI_ALPHA, /* U+00d23f: */ + RTUNI_ALPHA, /* U+00d240: */ + RTUNI_ALPHA, /* U+00d241: */ + RTUNI_ALPHA, /* U+00d242: */ + RTUNI_ALPHA, /* U+00d243: */ + RTUNI_ALPHA, /* U+00d244: */ + RTUNI_ALPHA, /* U+00d245: */ + RTUNI_ALPHA, /* U+00d246: */ + RTUNI_ALPHA, /* U+00d247: */ + RTUNI_ALPHA, /* U+00d248: */ + RTUNI_ALPHA, /* U+00d249: */ + RTUNI_ALPHA, /* U+00d24a: */ + RTUNI_ALPHA, /* U+00d24b: */ + RTUNI_ALPHA, /* U+00d24c: */ + RTUNI_ALPHA, /* U+00d24d: */ + RTUNI_ALPHA, /* U+00d24e: */ + RTUNI_ALPHA, /* U+00d24f: */ + RTUNI_ALPHA, /* U+00d250: */ + RTUNI_ALPHA, /* U+00d251: */ + RTUNI_ALPHA, /* U+00d252: */ + RTUNI_ALPHA, /* U+00d253: */ + RTUNI_ALPHA, /* U+00d254: */ + RTUNI_ALPHA, /* U+00d255: */ + RTUNI_ALPHA, /* U+00d256: */ + RTUNI_ALPHA, /* U+00d257: */ + RTUNI_ALPHA, /* U+00d258: */ + RTUNI_ALPHA, /* U+00d259: */ + RTUNI_ALPHA, /* U+00d25a: */ + RTUNI_ALPHA, /* U+00d25b: */ + RTUNI_ALPHA, /* U+00d25c: */ + RTUNI_ALPHA, /* U+00d25d: */ + RTUNI_ALPHA, /* U+00d25e: */ + RTUNI_ALPHA, /* U+00d25f: */ + RTUNI_ALPHA, /* U+00d260: */ + RTUNI_ALPHA, /* U+00d261: */ + RTUNI_ALPHA, /* U+00d262: */ + RTUNI_ALPHA, /* U+00d263: */ + RTUNI_ALPHA, /* U+00d264: */ + RTUNI_ALPHA, /* U+00d265: */ + RTUNI_ALPHA, /* U+00d266: */ + RTUNI_ALPHA, /* U+00d267: */ + RTUNI_ALPHA, /* U+00d268: */ + RTUNI_ALPHA, /* U+00d269: */ + RTUNI_ALPHA, /* U+00d26a: */ + RTUNI_ALPHA, /* U+00d26b: */ + RTUNI_ALPHA, /* U+00d26c: */ + RTUNI_ALPHA, /* U+00d26d: */ + RTUNI_ALPHA, /* U+00d26e: */ + RTUNI_ALPHA, /* U+00d26f: */ + RTUNI_ALPHA, /* U+00d270: */ + RTUNI_ALPHA, /* U+00d271: */ + RTUNI_ALPHA, /* U+00d272: */ + RTUNI_ALPHA, /* U+00d273: */ + RTUNI_ALPHA, /* U+00d274: */ + RTUNI_ALPHA, /* U+00d275: */ + RTUNI_ALPHA, /* U+00d276: */ + RTUNI_ALPHA, /* U+00d277: */ + RTUNI_ALPHA, /* U+00d278: */ + RTUNI_ALPHA, /* U+00d279: */ + RTUNI_ALPHA, /* U+00d27a: */ + RTUNI_ALPHA, /* U+00d27b: */ + RTUNI_ALPHA, /* U+00d27c: */ + RTUNI_ALPHA, /* U+00d27d: */ + RTUNI_ALPHA, /* U+00d27e: */ + RTUNI_ALPHA, /* U+00d27f: */ + RTUNI_ALPHA, /* U+00d280: */ + RTUNI_ALPHA, /* U+00d281: */ + RTUNI_ALPHA, /* U+00d282: */ + RTUNI_ALPHA, /* U+00d283: */ + RTUNI_ALPHA, /* U+00d284: */ + RTUNI_ALPHA, /* U+00d285: */ + RTUNI_ALPHA, /* U+00d286: */ + RTUNI_ALPHA, /* U+00d287: */ + RTUNI_ALPHA, /* U+00d288: */ + RTUNI_ALPHA, /* U+00d289: */ + RTUNI_ALPHA, /* U+00d28a: */ + RTUNI_ALPHA, /* U+00d28b: */ + RTUNI_ALPHA, /* U+00d28c: */ + RTUNI_ALPHA, /* U+00d28d: */ + RTUNI_ALPHA, /* U+00d28e: */ + RTUNI_ALPHA, /* U+00d28f: */ + RTUNI_ALPHA, /* U+00d290: */ + RTUNI_ALPHA, /* U+00d291: */ + RTUNI_ALPHA, /* U+00d292: */ + RTUNI_ALPHA, /* U+00d293: */ + RTUNI_ALPHA, /* U+00d294: */ + RTUNI_ALPHA, /* U+00d295: */ + RTUNI_ALPHA, /* U+00d296: */ + RTUNI_ALPHA, /* U+00d297: */ + RTUNI_ALPHA, /* U+00d298: */ + RTUNI_ALPHA, /* U+00d299: */ + RTUNI_ALPHA, /* U+00d29a: */ + RTUNI_ALPHA, /* U+00d29b: */ + RTUNI_ALPHA, /* U+00d29c: */ + RTUNI_ALPHA, /* U+00d29d: */ + RTUNI_ALPHA, /* U+00d29e: */ + RTUNI_ALPHA, /* U+00d29f: */ + RTUNI_ALPHA, /* U+00d2a0: */ + RTUNI_ALPHA, /* U+00d2a1: */ + RTUNI_ALPHA, /* U+00d2a2: */ + RTUNI_ALPHA, /* U+00d2a3: */ + RTUNI_ALPHA, /* U+00d2a4: */ + RTUNI_ALPHA, /* U+00d2a5: */ + RTUNI_ALPHA, /* U+00d2a6: */ + RTUNI_ALPHA, /* U+00d2a7: */ + RTUNI_ALPHA, /* U+00d2a8: */ + RTUNI_ALPHA, /* U+00d2a9: */ + RTUNI_ALPHA, /* U+00d2aa: */ + RTUNI_ALPHA, /* U+00d2ab: */ + RTUNI_ALPHA, /* U+00d2ac: */ + RTUNI_ALPHA, /* U+00d2ad: */ + RTUNI_ALPHA, /* U+00d2ae: */ + RTUNI_ALPHA, /* U+00d2af: */ + RTUNI_ALPHA, /* U+00d2b0: */ + RTUNI_ALPHA, /* U+00d2b1: */ + RTUNI_ALPHA, /* U+00d2b2: */ + RTUNI_ALPHA, /* U+00d2b3: */ + RTUNI_ALPHA, /* U+00d2b4: */ + RTUNI_ALPHA, /* U+00d2b5: */ + RTUNI_ALPHA, /* U+00d2b6: */ + RTUNI_ALPHA, /* U+00d2b7: */ + RTUNI_ALPHA, /* U+00d2b8: */ + RTUNI_ALPHA, /* U+00d2b9: */ + RTUNI_ALPHA, /* U+00d2ba: */ + RTUNI_ALPHA, /* U+00d2bb: */ + RTUNI_ALPHA, /* U+00d2bc: */ + RTUNI_ALPHA, /* U+00d2bd: */ + RTUNI_ALPHA, /* U+00d2be: */ + RTUNI_ALPHA, /* U+00d2bf: */ + RTUNI_ALPHA, /* U+00d2c0: */ + RTUNI_ALPHA, /* U+00d2c1: */ + RTUNI_ALPHA, /* U+00d2c2: */ + RTUNI_ALPHA, /* U+00d2c3: */ + RTUNI_ALPHA, /* U+00d2c4: */ + RTUNI_ALPHA, /* U+00d2c5: */ + RTUNI_ALPHA, /* U+00d2c6: */ + RTUNI_ALPHA, /* U+00d2c7: */ + RTUNI_ALPHA, /* U+00d2c8: */ + RTUNI_ALPHA, /* U+00d2c9: */ + RTUNI_ALPHA, /* U+00d2ca: */ + RTUNI_ALPHA, /* U+00d2cb: */ + RTUNI_ALPHA, /* U+00d2cc: */ + RTUNI_ALPHA, /* U+00d2cd: */ + RTUNI_ALPHA, /* U+00d2ce: */ + RTUNI_ALPHA, /* U+00d2cf: */ + RTUNI_ALPHA, /* U+00d2d0: */ + RTUNI_ALPHA, /* U+00d2d1: */ + RTUNI_ALPHA, /* U+00d2d2: */ + RTUNI_ALPHA, /* U+00d2d3: */ + RTUNI_ALPHA, /* U+00d2d4: */ + RTUNI_ALPHA, /* U+00d2d5: */ + RTUNI_ALPHA, /* U+00d2d6: */ + RTUNI_ALPHA, /* U+00d2d7: */ + RTUNI_ALPHA, /* U+00d2d8: */ + RTUNI_ALPHA, /* U+00d2d9: */ + RTUNI_ALPHA, /* U+00d2da: */ + RTUNI_ALPHA, /* U+00d2db: */ + RTUNI_ALPHA, /* U+00d2dc: */ + RTUNI_ALPHA, /* U+00d2dd: */ + RTUNI_ALPHA, /* U+00d2de: */ + RTUNI_ALPHA, /* U+00d2df: */ + RTUNI_ALPHA, /* U+00d2e0: */ + RTUNI_ALPHA, /* U+00d2e1: */ + RTUNI_ALPHA, /* U+00d2e2: */ + RTUNI_ALPHA, /* U+00d2e3: */ + RTUNI_ALPHA, /* U+00d2e4: */ + RTUNI_ALPHA, /* U+00d2e5: */ + RTUNI_ALPHA, /* U+00d2e6: */ + RTUNI_ALPHA, /* U+00d2e7: */ + RTUNI_ALPHA, /* U+00d2e8: */ + RTUNI_ALPHA, /* U+00d2e9: */ + RTUNI_ALPHA, /* U+00d2ea: */ + RTUNI_ALPHA, /* U+00d2eb: */ + RTUNI_ALPHA, /* U+00d2ec: */ + RTUNI_ALPHA, /* U+00d2ed: */ + RTUNI_ALPHA, /* U+00d2ee: */ + RTUNI_ALPHA, /* U+00d2ef: */ + RTUNI_ALPHA, /* U+00d2f0: */ + RTUNI_ALPHA, /* U+00d2f1: */ + RTUNI_ALPHA, /* U+00d2f2: */ + RTUNI_ALPHA, /* U+00d2f3: */ + RTUNI_ALPHA, /* U+00d2f4: */ + RTUNI_ALPHA, /* U+00d2f5: */ + RTUNI_ALPHA, /* U+00d2f6: */ + RTUNI_ALPHA, /* U+00d2f7: */ + RTUNI_ALPHA, /* U+00d2f8: */ + RTUNI_ALPHA, /* U+00d2f9: */ + RTUNI_ALPHA, /* U+00d2fa: */ + RTUNI_ALPHA, /* U+00d2fb: */ + RTUNI_ALPHA, /* U+00d2fc: */ + RTUNI_ALPHA, /* U+00d2fd: */ + RTUNI_ALPHA, /* U+00d2fe: */ + RTUNI_ALPHA, /* U+00d2ff: */ + RTUNI_ALPHA, /* U+00d300: */ + RTUNI_ALPHA, /* U+00d301: */ + RTUNI_ALPHA, /* U+00d302: */ + RTUNI_ALPHA, /* U+00d303: */ + RTUNI_ALPHA, /* U+00d304: */ + RTUNI_ALPHA, /* U+00d305: */ + RTUNI_ALPHA, /* U+00d306: */ + RTUNI_ALPHA, /* U+00d307: */ + RTUNI_ALPHA, /* U+00d308: */ + RTUNI_ALPHA, /* U+00d309: */ + RTUNI_ALPHA, /* U+00d30a: */ + RTUNI_ALPHA, /* U+00d30b: */ + RTUNI_ALPHA, /* U+00d30c: */ + RTUNI_ALPHA, /* U+00d30d: */ + RTUNI_ALPHA, /* U+00d30e: */ + RTUNI_ALPHA, /* U+00d30f: */ + RTUNI_ALPHA, /* U+00d310: */ + RTUNI_ALPHA, /* U+00d311: */ + RTUNI_ALPHA, /* U+00d312: */ + RTUNI_ALPHA, /* U+00d313: */ + RTUNI_ALPHA, /* U+00d314: */ + RTUNI_ALPHA, /* U+00d315: */ + RTUNI_ALPHA, /* U+00d316: */ + RTUNI_ALPHA, /* U+00d317: */ + RTUNI_ALPHA, /* U+00d318: */ + RTUNI_ALPHA, /* U+00d319: */ + RTUNI_ALPHA, /* U+00d31a: */ + RTUNI_ALPHA, /* U+00d31b: */ + RTUNI_ALPHA, /* U+00d31c: */ + RTUNI_ALPHA, /* U+00d31d: */ + RTUNI_ALPHA, /* U+00d31e: */ + RTUNI_ALPHA, /* U+00d31f: */ + RTUNI_ALPHA, /* U+00d320: */ + RTUNI_ALPHA, /* U+00d321: */ + RTUNI_ALPHA, /* U+00d322: */ + RTUNI_ALPHA, /* U+00d323: */ + RTUNI_ALPHA, /* U+00d324: */ + RTUNI_ALPHA, /* U+00d325: */ + RTUNI_ALPHA, /* U+00d326: */ + RTUNI_ALPHA, /* U+00d327: */ + RTUNI_ALPHA, /* U+00d328: */ + RTUNI_ALPHA, /* U+00d329: */ + RTUNI_ALPHA, /* U+00d32a: */ + RTUNI_ALPHA, /* U+00d32b: */ + RTUNI_ALPHA, /* U+00d32c: */ + RTUNI_ALPHA, /* U+00d32d: */ + RTUNI_ALPHA, /* U+00d32e: */ + RTUNI_ALPHA, /* U+00d32f: */ + RTUNI_ALPHA, /* U+00d330: */ + RTUNI_ALPHA, /* U+00d331: */ + RTUNI_ALPHA, /* U+00d332: */ + RTUNI_ALPHA, /* U+00d333: */ + RTUNI_ALPHA, /* U+00d334: */ + RTUNI_ALPHA, /* U+00d335: */ + RTUNI_ALPHA, /* U+00d336: */ + RTUNI_ALPHA, /* U+00d337: */ + RTUNI_ALPHA, /* U+00d338: */ + RTUNI_ALPHA, /* U+00d339: */ + RTUNI_ALPHA, /* U+00d33a: */ + RTUNI_ALPHA, /* U+00d33b: */ + RTUNI_ALPHA, /* U+00d33c: */ + RTUNI_ALPHA, /* U+00d33d: */ + RTUNI_ALPHA, /* U+00d33e: */ + RTUNI_ALPHA, /* U+00d33f: */ + RTUNI_ALPHA, /* U+00d340: */ + RTUNI_ALPHA, /* U+00d341: */ + RTUNI_ALPHA, /* U+00d342: */ + RTUNI_ALPHA, /* U+00d343: */ + RTUNI_ALPHA, /* U+00d344: */ + RTUNI_ALPHA, /* U+00d345: */ + RTUNI_ALPHA, /* U+00d346: */ + RTUNI_ALPHA, /* U+00d347: */ + RTUNI_ALPHA, /* U+00d348: */ + RTUNI_ALPHA, /* U+00d349: */ + RTUNI_ALPHA, /* U+00d34a: */ + RTUNI_ALPHA, /* U+00d34b: */ + RTUNI_ALPHA, /* U+00d34c: */ + RTUNI_ALPHA, /* U+00d34d: */ + RTUNI_ALPHA, /* U+00d34e: */ + RTUNI_ALPHA, /* U+00d34f: */ + RTUNI_ALPHA, /* U+00d350: */ + RTUNI_ALPHA, /* U+00d351: */ + RTUNI_ALPHA, /* U+00d352: */ + RTUNI_ALPHA, /* U+00d353: */ + RTUNI_ALPHA, /* U+00d354: */ + RTUNI_ALPHA, /* U+00d355: */ + RTUNI_ALPHA, /* U+00d356: */ + RTUNI_ALPHA, /* U+00d357: */ + RTUNI_ALPHA, /* U+00d358: */ + RTUNI_ALPHA, /* U+00d359: */ + RTUNI_ALPHA, /* U+00d35a: */ + RTUNI_ALPHA, /* U+00d35b: */ + RTUNI_ALPHA, /* U+00d35c: */ + RTUNI_ALPHA, /* U+00d35d: */ + RTUNI_ALPHA, /* U+00d35e: */ + RTUNI_ALPHA, /* U+00d35f: */ + RTUNI_ALPHA, /* U+00d360: */ + RTUNI_ALPHA, /* U+00d361: */ + RTUNI_ALPHA, /* U+00d362: */ + RTUNI_ALPHA, /* U+00d363: */ + RTUNI_ALPHA, /* U+00d364: */ + RTUNI_ALPHA, /* U+00d365: */ + RTUNI_ALPHA, /* U+00d366: */ + RTUNI_ALPHA, /* U+00d367: */ + RTUNI_ALPHA, /* U+00d368: */ + RTUNI_ALPHA, /* U+00d369: */ + RTUNI_ALPHA, /* U+00d36a: */ + RTUNI_ALPHA, /* U+00d36b: */ + RTUNI_ALPHA, /* U+00d36c: */ + RTUNI_ALPHA, /* U+00d36d: */ + RTUNI_ALPHA, /* U+00d36e: */ + RTUNI_ALPHA, /* U+00d36f: */ + RTUNI_ALPHA, /* U+00d370: */ + RTUNI_ALPHA, /* U+00d371: */ + RTUNI_ALPHA, /* U+00d372: */ + RTUNI_ALPHA, /* U+00d373: */ + RTUNI_ALPHA, /* U+00d374: */ + RTUNI_ALPHA, /* U+00d375: */ + RTUNI_ALPHA, /* U+00d376: */ + RTUNI_ALPHA, /* U+00d377: */ + RTUNI_ALPHA, /* U+00d378: */ + RTUNI_ALPHA, /* U+00d379: */ + RTUNI_ALPHA, /* U+00d37a: */ + RTUNI_ALPHA, /* U+00d37b: */ + RTUNI_ALPHA, /* U+00d37c: */ + RTUNI_ALPHA, /* U+00d37d: */ + RTUNI_ALPHA, /* U+00d37e: */ + RTUNI_ALPHA, /* U+00d37f: */ + RTUNI_ALPHA, /* U+00d380: */ + RTUNI_ALPHA, /* U+00d381: */ + RTUNI_ALPHA, /* U+00d382: */ + RTUNI_ALPHA, /* U+00d383: */ + RTUNI_ALPHA, /* U+00d384: */ + RTUNI_ALPHA, /* U+00d385: */ + RTUNI_ALPHA, /* U+00d386: */ + RTUNI_ALPHA, /* U+00d387: */ + RTUNI_ALPHA, /* U+00d388: */ + RTUNI_ALPHA, /* U+00d389: */ + RTUNI_ALPHA, /* U+00d38a: */ + RTUNI_ALPHA, /* U+00d38b: */ + RTUNI_ALPHA, /* U+00d38c: */ + RTUNI_ALPHA, /* U+00d38d: */ + RTUNI_ALPHA, /* U+00d38e: */ + RTUNI_ALPHA, /* U+00d38f: */ + RTUNI_ALPHA, /* U+00d390: */ + RTUNI_ALPHA, /* U+00d391: */ + RTUNI_ALPHA, /* U+00d392: */ + RTUNI_ALPHA, /* U+00d393: */ + RTUNI_ALPHA, /* U+00d394: */ + RTUNI_ALPHA, /* U+00d395: */ + RTUNI_ALPHA, /* U+00d396: */ + RTUNI_ALPHA, /* U+00d397: */ + RTUNI_ALPHA, /* U+00d398: */ + RTUNI_ALPHA, /* U+00d399: */ + RTUNI_ALPHA, /* U+00d39a: */ + RTUNI_ALPHA, /* U+00d39b: */ + RTUNI_ALPHA, /* U+00d39c: */ + RTUNI_ALPHA, /* U+00d39d: */ + RTUNI_ALPHA, /* U+00d39e: */ + RTUNI_ALPHA, /* U+00d39f: */ + RTUNI_ALPHA, /* U+00d3a0: */ + RTUNI_ALPHA, /* U+00d3a1: */ + RTUNI_ALPHA, /* U+00d3a2: */ + RTUNI_ALPHA, /* U+00d3a3: */ + RTUNI_ALPHA, /* U+00d3a4: */ + RTUNI_ALPHA, /* U+00d3a5: */ + RTUNI_ALPHA, /* U+00d3a6: */ + RTUNI_ALPHA, /* U+00d3a7: */ + RTUNI_ALPHA, /* U+00d3a8: */ + RTUNI_ALPHA, /* U+00d3a9: */ + RTUNI_ALPHA, /* U+00d3aa: */ + RTUNI_ALPHA, /* U+00d3ab: */ + RTUNI_ALPHA, /* U+00d3ac: */ + RTUNI_ALPHA, /* U+00d3ad: */ + RTUNI_ALPHA, /* U+00d3ae: */ + RTUNI_ALPHA, /* U+00d3af: */ + RTUNI_ALPHA, /* U+00d3b0: */ + RTUNI_ALPHA, /* U+00d3b1: */ + RTUNI_ALPHA, /* U+00d3b2: */ + RTUNI_ALPHA, /* U+00d3b3: */ + RTUNI_ALPHA, /* U+00d3b4: */ + RTUNI_ALPHA, /* U+00d3b5: */ + RTUNI_ALPHA, /* U+00d3b6: */ + RTUNI_ALPHA, /* U+00d3b7: */ + RTUNI_ALPHA, /* U+00d3b8: */ + RTUNI_ALPHA, /* U+00d3b9: */ + RTUNI_ALPHA, /* U+00d3ba: */ + RTUNI_ALPHA, /* U+00d3bb: */ + RTUNI_ALPHA, /* U+00d3bc: */ + RTUNI_ALPHA, /* U+00d3bd: */ + RTUNI_ALPHA, /* U+00d3be: */ + RTUNI_ALPHA, /* U+00d3bf: */ + RTUNI_ALPHA, /* U+00d3c0: */ + RTUNI_ALPHA, /* U+00d3c1: */ + RTUNI_ALPHA, /* U+00d3c2: */ + RTUNI_ALPHA, /* U+00d3c3: */ + RTUNI_ALPHA, /* U+00d3c4: */ + RTUNI_ALPHA, /* U+00d3c5: */ + RTUNI_ALPHA, /* U+00d3c6: */ + RTUNI_ALPHA, /* U+00d3c7: */ + RTUNI_ALPHA, /* U+00d3c8: */ + RTUNI_ALPHA, /* U+00d3c9: */ + RTUNI_ALPHA, /* U+00d3ca: */ + RTUNI_ALPHA, /* U+00d3cb: */ + RTUNI_ALPHA, /* U+00d3cc: */ + RTUNI_ALPHA, /* U+00d3cd: */ + RTUNI_ALPHA, /* U+00d3ce: */ + RTUNI_ALPHA, /* U+00d3cf: */ + RTUNI_ALPHA, /* U+00d3d0: */ + RTUNI_ALPHA, /* U+00d3d1: */ + RTUNI_ALPHA, /* U+00d3d2: */ + RTUNI_ALPHA, /* U+00d3d3: */ + RTUNI_ALPHA, /* U+00d3d4: */ + RTUNI_ALPHA, /* U+00d3d5: */ + RTUNI_ALPHA, /* U+00d3d6: */ + RTUNI_ALPHA, /* U+00d3d7: */ + RTUNI_ALPHA, /* U+00d3d8: */ + RTUNI_ALPHA, /* U+00d3d9: */ + RTUNI_ALPHA, /* U+00d3da: */ + RTUNI_ALPHA, /* U+00d3db: */ + RTUNI_ALPHA, /* U+00d3dc: */ + RTUNI_ALPHA, /* U+00d3dd: */ + RTUNI_ALPHA, /* U+00d3de: */ + RTUNI_ALPHA, /* U+00d3df: */ + RTUNI_ALPHA, /* U+00d3e0: */ + RTUNI_ALPHA, /* U+00d3e1: */ + RTUNI_ALPHA, /* U+00d3e2: */ + RTUNI_ALPHA, /* U+00d3e3: */ + RTUNI_ALPHA, /* U+00d3e4: */ + RTUNI_ALPHA, /* U+00d3e5: */ + RTUNI_ALPHA, /* U+00d3e6: */ + RTUNI_ALPHA, /* U+00d3e7: */ + RTUNI_ALPHA, /* U+00d3e8: */ + RTUNI_ALPHA, /* U+00d3e9: */ + RTUNI_ALPHA, /* U+00d3ea: */ + RTUNI_ALPHA, /* U+00d3eb: */ + RTUNI_ALPHA, /* U+00d3ec: */ + RTUNI_ALPHA, /* U+00d3ed: */ + RTUNI_ALPHA, /* U+00d3ee: */ + RTUNI_ALPHA, /* U+00d3ef: */ + RTUNI_ALPHA, /* U+00d3f0: */ + RTUNI_ALPHA, /* U+00d3f1: */ + RTUNI_ALPHA, /* U+00d3f2: */ + RTUNI_ALPHA, /* U+00d3f3: */ + RTUNI_ALPHA, /* U+00d3f4: */ + RTUNI_ALPHA, /* U+00d3f5: */ + RTUNI_ALPHA, /* U+00d3f6: */ + RTUNI_ALPHA, /* U+00d3f7: */ + RTUNI_ALPHA, /* U+00d3f8: */ + RTUNI_ALPHA, /* U+00d3f9: */ + RTUNI_ALPHA, /* U+00d3fa: */ + RTUNI_ALPHA, /* U+00d3fb: */ + RTUNI_ALPHA, /* U+00d3fc: */ + RTUNI_ALPHA, /* U+00d3fd: */ + RTUNI_ALPHA, /* U+00d3fe: */ + RTUNI_ALPHA, /* U+00d3ff: */ + RTUNI_ALPHA, /* U+00d400: */ + RTUNI_ALPHA, /* U+00d401: */ + RTUNI_ALPHA, /* U+00d402: */ + RTUNI_ALPHA, /* U+00d403: */ + RTUNI_ALPHA, /* U+00d404: */ + RTUNI_ALPHA, /* U+00d405: */ + RTUNI_ALPHA, /* U+00d406: */ + RTUNI_ALPHA, /* U+00d407: */ + RTUNI_ALPHA, /* U+00d408: */ + RTUNI_ALPHA, /* U+00d409: */ + RTUNI_ALPHA, /* U+00d40a: */ + RTUNI_ALPHA, /* U+00d40b: */ + RTUNI_ALPHA, /* U+00d40c: */ + RTUNI_ALPHA, /* U+00d40d: */ + RTUNI_ALPHA, /* U+00d40e: */ + RTUNI_ALPHA, /* U+00d40f: */ + RTUNI_ALPHA, /* U+00d410: */ + RTUNI_ALPHA, /* U+00d411: */ + RTUNI_ALPHA, /* U+00d412: */ + RTUNI_ALPHA, /* U+00d413: */ + RTUNI_ALPHA, /* U+00d414: */ + RTUNI_ALPHA, /* U+00d415: */ + RTUNI_ALPHA, /* U+00d416: */ + RTUNI_ALPHA, /* U+00d417: */ + RTUNI_ALPHA, /* U+00d418: */ + RTUNI_ALPHA, /* U+00d419: */ + RTUNI_ALPHA, /* U+00d41a: */ + RTUNI_ALPHA, /* U+00d41b: */ + RTUNI_ALPHA, /* U+00d41c: */ + RTUNI_ALPHA, /* U+00d41d: */ + RTUNI_ALPHA, /* U+00d41e: */ + RTUNI_ALPHA, /* U+00d41f: */ + RTUNI_ALPHA, /* U+00d420: */ + RTUNI_ALPHA, /* U+00d421: */ + RTUNI_ALPHA, /* U+00d422: */ + RTUNI_ALPHA, /* U+00d423: */ + RTUNI_ALPHA, /* U+00d424: */ + RTUNI_ALPHA, /* U+00d425: */ + RTUNI_ALPHA, /* U+00d426: */ + RTUNI_ALPHA, /* U+00d427: */ + RTUNI_ALPHA, /* U+00d428: */ + RTUNI_ALPHA, /* U+00d429: */ + RTUNI_ALPHA, /* U+00d42a: */ + RTUNI_ALPHA, /* U+00d42b: */ + RTUNI_ALPHA, /* U+00d42c: */ + RTUNI_ALPHA, /* U+00d42d: */ + RTUNI_ALPHA, /* U+00d42e: */ + RTUNI_ALPHA, /* U+00d42f: */ + RTUNI_ALPHA, /* U+00d430: */ + RTUNI_ALPHA, /* U+00d431: */ + RTUNI_ALPHA, /* U+00d432: */ + RTUNI_ALPHA, /* U+00d433: */ + RTUNI_ALPHA, /* U+00d434: */ + RTUNI_ALPHA, /* U+00d435: */ + RTUNI_ALPHA, /* U+00d436: */ + RTUNI_ALPHA, /* U+00d437: */ + RTUNI_ALPHA, /* U+00d438: */ + RTUNI_ALPHA, /* U+00d439: */ + RTUNI_ALPHA, /* U+00d43a: */ + RTUNI_ALPHA, /* U+00d43b: */ + RTUNI_ALPHA, /* U+00d43c: */ + RTUNI_ALPHA, /* U+00d43d: */ + RTUNI_ALPHA, /* U+00d43e: */ + RTUNI_ALPHA, /* U+00d43f: */ + RTUNI_ALPHA, /* U+00d440: */ + RTUNI_ALPHA, /* U+00d441: */ + RTUNI_ALPHA, /* U+00d442: */ + RTUNI_ALPHA, /* U+00d443: */ + RTUNI_ALPHA, /* U+00d444: */ + RTUNI_ALPHA, /* U+00d445: */ + RTUNI_ALPHA, /* U+00d446: */ + RTUNI_ALPHA, /* U+00d447: */ + RTUNI_ALPHA, /* U+00d448: */ + RTUNI_ALPHA, /* U+00d449: */ + RTUNI_ALPHA, /* U+00d44a: */ + RTUNI_ALPHA, /* U+00d44b: */ + RTUNI_ALPHA, /* U+00d44c: */ + RTUNI_ALPHA, /* U+00d44d: */ + RTUNI_ALPHA, /* U+00d44e: */ + RTUNI_ALPHA, /* U+00d44f: */ + RTUNI_ALPHA, /* U+00d450: */ + RTUNI_ALPHA, /* U+00d451: */ + RTUNI_ALPHA, /* U+00d452: */ + RTUNI_ALPHA, /* U+00d453: */ + RTUNI_ALPHA, /* U+00d454: */ + RTUNI_ALPHA, /* U+00d455: */ + RTUNI_ALPHA, /* U+00d456: */ + RTUNI_ALPHA, /* U+00d457: */ + RTUNI_ALPHA, /* U+00d458: */ + RTUNI_ALPHA, /* U+00d459: */ + RTUNI_ALPHA, /* U+00d45a: */ + RTUNI_ALPHA, /* U+00d45b: */ + RTUNI_ALPHA, /* U+00d45c: */ + RTUNI_ALPHA, /* U+00d45d: */ + RTUNI_ALPHA, /* U+00d45e: */ + RTUNI_ALPHA, /* U+00d45f: */ + RTUNI_ALPHA, /* U+00d460: */ + RTUNI_ALPHA, /* U+00d461: */ + RTUNI_ALPHA, /* U+00d462: */ + RTUNI_ALPHA, /* U+00d463: */ + RTUNI_ALPHA, /* U+00d464: */ + RTUNI_ALPHA, /* U+00d465: */ + RTUNI_ALPHA, /* U+00d466: */ + RTUNI_ALPHA, /* U+00d467: */ + RTUNI_ALPHA, /* U+00d468: */ + RTUNI_ALPHA, /* U+00d469: */ + RTUNI_ALPHA, /* U+00d46a: */ + RTUNI_ALPHA, /* U+00d46b: */ + RTUNI_ALPHA, /* U+00d46c: */ + RTUNI_ALPHA, /* U+00d46d: */ + RTUNI_ALPHA, /* U+00d46e: */ + RTUNI_ALPHA, /* U+00d46f: */ + RTUNI_ALPHA, /* U+00d470: */ + RTUNI_ALPHA, /* U+00d471: */ + RTUNI_ALPHA, /* U+00d472: */ + RTUNI_ALPHA, /* U+00d473: */ + RTUNI_ALPHA, /* U+00d474: */ + RTUNI_ALPHA, /* U+00d475: */ + RTUNI_ALPHA, /* U+00d476: */ + RTUNI_ALPHA, /* U+00d477: */ + RTUNI_ALPHA, /* U+00d478: */ + RTUNI_ALPHA, /* U+00d479: */ + RTUNI_ALPHA, /* U+00d47a: */ + RTUNI_ALPHA, /* U+00d47b: */ + RTUNI_ALPHA, /* U+00d47c: */ + RTUNI_ALPHA, /* U+00d47d: */ + RTUNI_ALPHA, /* U+00d47e: */ + RTUNI_ALPHA, /* U+00d47f: */ + RTUNI_ALPHA, /* U+00d480: */ + RTUNI_ALPHA, /* U+00d481: */ + RTUNI_ALPHA, /* U+00d482: */ + RTUNI_ALPHA, /* U+00d483: */ + RTUNI_ALPHA, /* U+00d484: */ + RTUNI_ALPHA, /* U+00d485: */ + RTUNI_ALPHA, /* U+00d486: */ + RTUNI_ALPHA, /* U+00d487: */ + RTUNI_ALPHA, /* U+00d488: */ + RTUNI_ALPHA, /* U+00d489: */ + RTUNI_ALPHA, /* U+00d48a: */ + RTUNI_ALPHA, /* U+00d48b: */ + RTUNI_ALPHA, /* U+00d48c: */ + RTUNI_ALPHA, /* U+00d48d: */ + RTUNI_ALPHA, /* U+00d48e: */ + RTUNI_ALPHA, /* U+00d48f: */ + RTUNI_ALPHA, /* U+00d490: */ + RTUNI_ALPHA, /* U+00d491: */ + RTUNI_ALPHA, /* U+00d492: */ + RTUNI_ALPHA, /* U+00d493: */ + RTUNI_ALPHA, /* U+00d494: */ + RTUNI_ALPHA, /* U+00d495: */ + RTUNI_ALPHA, /* U+00d496: */ + RTUNI_ALPHA, /* U+00d497: */ + RTUNI_ALPHA, /* U+00d498: */ + RTUNI_ALPHA, /* U+00d499: */ + RTUNI_ALPHA, /* U+00d49a: */ + RTUNI_ALPHA, /* U+00d49b: */ + RTUNI_ALPHA, /* U+00d49c: */ + RTUNI_ALPHA, /* U+00d49d: */ + RTUNI_ALPHA, /* U+00d49e: */ + RTUNI_ALPHA, /* U+00d49f: */ + RTUNI_ALPHA, /* U+00d4a0: */ + RTUNI_ALPHA, /* U+00d4a1: */ + RTUNI_ALPHA, /* U+00d4a2: */ + RTUNI_ALPHA, /* U+00d4a3: */ + RTUNI_ALPHA, /* U+00d4a4: */ + RTUNI_ALPHA, /* U+00d4a5: */ + RTUNI_ALPHA, /* U+00d4a6: */ + RTUNI_ALPHA, /* U+00d4a7: */ + RTUNI_ALPHA, /* U+00d4a8: */ + RTUNI_ALPHA, /* U+00d4a9: */ + RTUNI_ALPHA, /* U+00d4aa: */ + RTUNI_ALPHA, /* U+00d4ab: */ + RTUNI_ALPHA, /* U+00d4ac: */ + RTUNI_ALPHA, /* U+00d4ad: */ + RTUNI_ALPHA, /* U+00d4ae: */ + RTUNI_ALPHA, /* U+00d4af: */ + RTUNI_ALPHA, /* U+00d4b0: */ + RTUNI_ALPHA, /* U+00d4b1: */ + RTUNI_ALPHA, /* U+00d4b2: */ + RTUNI_ALPHA, /* U+00d4b3: */ + RTUNI_ALPHA, /* U+00d4b4: */ + RTUNI_ALPHA, /* U+00d4b5: */ + RTUNI_ALPHA, /* U+00d4b6: */ + RTUNI_ALPHA, /* U+00d4b7: */ + RTUNI_ALPHA, /* U+00d4b8: */ + RTUNI_ALPHA, /* U+00d4b9: */ + RTUNI_ALPHA, /* U+00d4ba: */ + RTUNI_ALPHA, /* U+00d4bb: */ + RTUNI_ALPHA, /* U+00d4bc: */ + RTUNI_ALPHA, /* U+00d4bd: */ + RTUNI_ALPHA, /* U+00d4be: */ + RTUNI_ALPHA, /* U+00d4bf: */ + RTUNI_ALPHA, /* U+00d4c0: */ + RTUNI_ALPHA, /* U+00d4c1: */ + RTUNI_ALPHA, /* U+00d4c2: */ + RTUNI_ALPHA, /* U+00d4c3: */ + RTUNI_ALPHA, /* U+00d4c4: */ + RTUNI_ALPHA, /* U+00d4c5: */ + RTUNI_ALPHA, /* U+00d4c6: */ + RTUNI_ALPHA, /* U+00d4c7: */ + RTUNI_ALPHA, /* U+00d4c8: */ + RTUNI_ALPHA, /* U+00d4c9: */ + RTUNI_ALPHA, /* U+00d4ca: */ + RTUNI_ALPHA, /* U+00d4cb: */ + RTUNI_ALPHA, /* U+00d4cc: */ + RTUNI_ALPHA, /* U+00d4cd: */ + RTUNI_ALPHA, /* U+00d4ce: */ + RTUNI_ALPHA, /* U+00d4cf: */ + RTUNI_ALPHA, /* U+00d4d0: */ + RTUNI_ALPHA, /* U+00d4d1: */ + RTUNI_ALPHA, /* U+00d4d2: */ + RTUNI_ALPHA, /* U+00d4d3: */ + RTUNI_ALPHA, /* U+00d4d4: */ + RTUNI_ALPHA, /* U+00d4d5: */ + RTUNI_ALPHA, /* U+00d4d6: */ + RTUNI_ALPHA, /* U+00d4d7: */ + RTUNI_ALPHA, /* U+00d4d8: */ + RTUNI_ALPHA, /* U+00d4d9: */ + RTUNI_ALPHA, /* U+00d4da: */ + RTUNI_ALPHA, /* U+00d4db: */ + RTUNI_ALPHA, /* U+00d4dc: */ + RTUNI_ALPHA, /* U+00d4dd: */ + RTUNI_ALPHA, /* U+00d4de: */ + RTUNI_ALPHA, /* U+00d4df: */ + RTUNI_ALPHA, /* U+00d4e0: */ + RTUNI_ALPHA, /* U+00d4e1: */ + RTUNI_ALPHA, /* U+00d4e2: */ + RTUNI_ALPHA, /* U+00d4e3: */ + RTUNI_ALPHA, /* U+00d4e4: */ + RTUNI_ALPHA, /* U+00d4e5: */ + RTUNI_ALPHA, /* U+00d4e6: */ + RTUNI_ALPHA, /* U+00d4e7: */ + RTUNI_ALPHA, /* U+00d4e8: */ + RTUNI_ALPHA, /* U+00d4e9: */ + RTUNI_ALPHA, /* U+00d4ea: */ + RTUNI_ALPHA, /* U+00d4eb: */ + RTUNI_ALPHA, /* U+00d4ec: */ + RTUNI_ALPHA, /* U+00d4ed: */ + RTUNI_ALPHA, /* U+00d4ee: */ + RTUNI_ALPHA, /* U+00d4ef: */ + RTUNI_ALPHA, /* U+00d4f0: */ + RTUNI_ALPHA, /* U+00d4f1: */ + RTUNI_ALPHA, /* U+00d4f2: */ + RTUNI_ALPHA, /* U+00d4f3: */ + RTUNI_ALPHA, /* U+00d4f4: */ + RTUNI_ALPHA, /* U+00d4f5: */ + RTUNI_ALPHA, /* U+00d4f6: */ + RTUNI_ALPHA, /* U+00d4f7: */ + RTUNI_ALPHA, /* U+00d4f8: */ + RTUNI_ALPHA, /* U+00d4f9: */ + RTUNI_ALPHA, /* U+00d4fa: */ + RTUNI_ALPHA, /* U+00d4fb: */ + RTUNI_ALPHA, /* U+00d4fc: */ + RTUNI_ALPHA, /* U+00d4fd: */ + RTUNI_ALPHA, /* U+00d4fe: */ + RTUNI_ALPHA, /* U+00d4ff: */ + RTUNI_ALPHA, /* U+00d500: */ + RTUNI_ALPHA, /* U+00d501: */ + RTUNI_ALPHA, /* U+00d502: */ + RTUNI_ALPHA, /* U+00d503: */ + RTUNI_ALPHA, /* U+00d504: */ + RTUNI_ALPHA, /* U+00d505: */ + RTUNI_ALPHA, /* U+00d506: */ + RTUNI_ALPHA, /* U+00d507: */ + RTUNI_ALPHA, /* U+00d508: */ + RTUNI_ALPHA, /* U+00d509: */ + RTUNI_ALPHA, /* U+00d50a: */ + RTUNI_ALPHA, /* U+00d50b: */ + RTUNI_ALPHA, /* U+00d50c: */ + RTUNI_ALPHA, /* U+00d50d: */ + RTUNI_ALPHA, /* U+00d50e: */ + RTUNI_ALPHA, /* U+00d50f: */ + RTUNI_ALPHA, /* U+00d510: */ + RTUNI_ALPHA, /* U+00d511: */ + RTUNI_ALPHA, /* U+00d512: */ + RTUNI_ALPHA, /* U+00d513: */ + RTUNI_ALPHA, /* U+00d514: */ + RTUNI_ALPHA, /* U+00d515: */ + RTUNI_ALPHA, /* U+00d516: */ + RTUNI_ALPHA, /* U+00d517: */ + RTUNI_ALPHA, /* U+00d518: */ + RTUNI_ALPHA, /* U+00d519: */ + RTUNI_ALPHA, /* U+00d51a: */ + RTUNI_ALPHA, /* U+00d51b: */ + RTUNI_ALPHA, /* U+00d51c: */ + RTUNI_ALPHA, /* U+00d51d: */ + RTUNI_ALPHA, /* U+00d51e: */ + RTUNI_ALPHA, /* U+00d51f: */ + RTUNI_ALPHA, /* U+00d520: */ + RTUNI_ALPHA, /* U+00d521: */ + RTUNI_ALPHA, /* U+00d522: */ + RTUNI_ALPHA, /* U+00d523: */ + RTUNI_ALPHA, /* U+00d524: */ + RTUNI_ALPHA, /* U+00d525: */ + RTUNI_ALPHA, /* U+00d526: */ + RTUNI_ALPHA, /* U+00d527: */ + RTUNI_ALPHA, /* U+00d528: */ + RTUNI_ALPHA, /* U+00d529: */ + RTUNI_ALPHA, /* U+00d52a: */ + RTUNI_ALPHA, /* U+00d52b: */ + RTUNI_ALPHA, /* U+00d52c: */ + RTUNI_ALPHA, /* U+00d52d: */ + RTUNI_ALPHA, /* U+00d52e: */ + RTUNI_ALPHA, /* U+00d52f: */ + RTUNI_ALPHA, /* U+00d530: */ + RTUNI_ALPHA, /* U+00d531: */ + RTUNI_ALPHA, /* U+00d532: */ + RTUNI_ALPHA, /* U+00d533: */ + RTUNI_ALPHA, /* U+00d534: */ + RTUNI_ALPHA, /* U+00d535: */ + RTUNI_ALPHA, /* U+00d536: */ + RTUNI_ALPHA, /* U+00d537: */ + RTUNI_ALPHA, /* U+00d538: */ + RTUNI_ALPHA, /* U+00d539: */ + RTUNI_ALPHA, /* U+00d53a: */ + RTUNI_ALPHA, /* U+00d53b: */ + RTUNI_ALPHA, /* U+00d53c: */ + RTUNI_ALPHA, /* U+00d53d: */ + RTUNI_ALPHA, /* U+00d53e: */ + RTUNI_ALPHA, /* U+00d53f: */ + RTUNI_ALPHA, /* U+00d540: */ + RTUNI_ALPHA, /* U+00d541: */ + RTUNI_ALPHA, /* U+00d542: */ + RTUNI_ALPHA, /* U+00d543: */ + RTUNI_ALPHA, /* U+00d544: */ + RTUNI_ALPHA, /* U+00d545: */ + RTUNI_ALPHA, /* U+00d546: */ + RTUNI_ALPHA, /* U+00d547: */ + RTUNI_ALPHA, /* U+00d548: */ + RTUNI_ALPHA, /* U+00d549: */ + RTUNI_ALPHA, /* U+00d54a: */ + RTUNI_ALPHA, /* U+00d54b: */ + RTUNI_ALPHA, /* U+00d54c: */ + RTUNI_ALPHA, /* U+00d54d: */ + RTUNI_ALPHA, /* U+00d54e: */ + RTUNI_ALPHA, /* U+00d54f: */ + RTUNI_ALPHA, /* U+00d550: */ + RTUNI_ALPHA, /* U+00d551: */ + RTUNI_ALPHA, /* U+00d552: */ + RTUNI_ALPHA, /* U+00d553: */ + RTUNI_ALPHA, /* U+00d554: */ + RTUNI_ALPHA, /* U+00d555: */ + RTUNI_ALPHA, /* U+00d556: */ + RTUNI_ALPHA, /* U+00d557: */ + RTUNI_ALPHA, /* U+00d558: */ + RTUNI_ALPHA, /* U+00d559: */ + RTUNI_ALPHA, /* U+00d55a: */ + RTUNI_ALPHA, /* U+00d55b: */ + RTUNI_ALPHA, /* U+00d55c: */ + RTUNI_ALPHA, /* U+00d55d: */ + RTUNI_ALPHA, /* U+00d55e: */ + RTUNI_ALPHA, /* U+00d55f: */ + RTUNI_ALPHA, /* U+00d560: */ + RTUNI_ALPHA, /* U+00d561: */ + RTUNI_ALPHA, /* U+00d562: */ + RTUNI_ALPHA, /* U+00d563: */ + RTUNI_ALPHA, /* U+00d564: */ + RTUNI_ALPHA, /* U+00d565: */ + RTUNI_ALPHA, /* U+00d566: */ + RTUNI_ALPHA, /* U+00d567: */ + RTUNI_ALPHA, /* U+00d568: */ + RTUNI_ALPHA, /* U+00d569: */ + RTUNI_ALPHA, /* U+00d56a: */ + RTUNI_ALPHA, /* U+00d56b: */ + RTUNI_ALPHA, /* U+00d56c: */ + RTUNI_ALPHA, /* U+00d56d: */ + RTUNI_ALPHA, /* U+00d56e: */ + RTUNI_ALPHA, /* U+00d56f: */ + RTUNI_ALPHA, /* U+00d570: */ + RTUNI_ALPHA, /* U+00d571: */ + RTUNI_ALPHA, /* U+00d572: */ + RTUNI_ALPHA, /* U+00d573: */ + RTUNI_ALPHA, /* U+00d574: */ + RTUNI_ALPHA, /* U+00d575: */ + RTUNI_ALPHA, /* U+00d576: */ + RTUNI_ALPHA, /* U+00d577: */ + RTUNI_ALPHA, /* U+00d578: */ + RTUNI_ALPHA, /* U+00d579: */ + RTUNI_ALPHA, /* U+00d57a: */ + RTUNI_ALPHA, /* U+00d57b: */ + RTUNI_ALPHA, /* U+00d57c: */ + RTUNI_ALPHA, /* U+00d57d: */ + RTUNI_ALPHA, /* U+00d57e: */ + RTUNI_ALPHA, /* U+00d57f: */ + RTUNI_ALPHA, /* U+00d580: */ + RTUNI_ALPHA, /* U+00d581: */ + RTUNI_ALPHA, /* U+00d582: */ + RTUNI_ALPHA, /* U+00d583: */ + RTUNI_ALPHA, /* U+00d584: */ + RTUNI_ALPHA, /* U+00d585: */ + RTUNI_ALPHA, /* U+00d586: */ + RTUNI_ALPHA, /* U+00d587: */ + RTUNI_ALPHA, /* U+00d588: */ + RTUNI_ALPHA, /* U+00d589: */ + RTUNI_ALPHA, /* U+00d58a: */ + RTUNI_ALPHA, /* U+00d58b: */ + RTUNI_ALPHA, /* U+00d58c: */ + RTUNI_ALPHA, /* U+00d58d: */ + RTUNI_ALPHA, /* U+00d58e: */ + RTUNI_ALPHA, /* U+00d58f: */ + RTUNI_ALPHA, /* U+00d590: */ + RTUNI_ALPHA, /* U+00d591: */ + RTUNI_ALPHA, /* U+00d592: */ + RTUNI_ALPHA, /* U+00d593: */ + RTUNI_ALPHA, /* U+00d594: */ + RTUNI_ALPHA, /* U+00d595: */ + RTUNI_ALPHA, /* U+00d596: */ + RTUNI_ALPHA, /* U+00d597: */ + RTUNI_ALPHA, /* U+00d598: */ + RTUNI_ALPHA, /* U+00d599: */ + RTUNI_ALPHA, /* U+00d59a: */ + RTUNI_ALPHA, /* U+00d59b: */ + RTUNI_ALPHA, /* U+00d59c: */ + RTUNI_ALPHA, /* U+00d59d: */ + RTUNI_ALPHA, /* U+00d59e: */ + RTUNI_ALPHA, /* U+00d59f: */ + RTUNI_ALPHA, /* U+00d5a0: */ + RTUNI_ALPHA, /* U+00d5a1: */ + RTUNI_ALPHA, /* U+00d5a2: */ + RTUNI_ALPHA, /* U+00d5a3: */ + RTUNI_ALPHA, /* U+00d5a4: */ + RTUNI_ALPHA, /* U+00d5a5: */ + RTUNI_ALPHA, /* U+00d5a6: */ + RTUNI_ALPHA, /* U+00d5a7: */ + RTUNI_ALPHA, /* U+00d5a8: */ + RTUNI_ALPHA, /* U+00d5a9: */ + RTUNI_ALPHA, /* U+00d5aa: */ + RTUNI_ALPHA, /* U+00d5ab: */ + RTUNI_ALPHA, /* U+00d5ac: */ + RTUNI_ALPHA, /* U+00d5ad: */ + RTUNI_ALPHA, /* U+00d5ae: */ + RTUNI_ALPHA, /* U+00d5af: */ + RTUNI_ALPHA, /* U+00d5b0: */ + RTUNI_ALPHA, /* U+00d5b1: */ + RTUNI_ALPHA, /* U+00d5b2: */ + RTUNI_ALPHA, /* U+00d5b3: */ + RTUNI_ALPHA, /* U+00d5b4: */ + RTUNI_ALPHA, /* U+00d5b5: */ + RTUNI_ALPHA, /* U+00d5b6: */ + RTUNI_ALPHA, /* U+00d5b7: */ + RTUNI_ALPHA, /* U+00d5b8: */ + RTUNI_ALPHA, /* U+00d5b9: */ + RTUNI_ALPHA, /* U+00d5ba: */ + RTUNI_ALPHA, /* U+00d5bb: */ + RTUNI_ALPHA, /* U+00d5bc: */ + RTUNI_ALPHA, /* U+00d5bd: */ + RTUNI_ALPHA, /* U+00d5be: */ + RTUNI_ALPHA, /* U+00d5bf: */ + RTUNI_ALPHA, /* U+00d5c0: */ + RTUNI_ALPHA, /* U+00d5c1: */ + RTUNI_ALPHA, /* U+00d5c2: */ + RTUNI_ALPHA, /* U+00d5c3: */ + RTUNI_ALPHA, /* U+00d5c4: */ + RTUNI_ALPHA, /* U+00d5c5: */ + RTUNI_ALPHA, /* U+00d5c6: */ + RTUNI_ALPHA, /* U+00d5c7: */ + RTUNI_ALPHA, /* U+00d5c8: */ + RTUNI_ALPHA, /* U+00d5c9: */ + RTUNI_ALPHA, /* U+00d5ca: */ + RTUNI_ALPHA, /* U+00d5cb: */ + RTUNI_ALPHA, /* U+00d5cc: */ + RTUNI_ALPHA, /* U+00d5cd: */ + RTUNI_ALPHA, /* U+00d5ce: */ + RTUNI_ALPHA, /* U+00d5cf: */ + RTUNI_ALPHA, /* U+00d5d0: */ + RTUNI_ALPHA, /* U+00d5d1: */ + RTUNI_ALPHA, /* U+00d5d2: */ + RTUNI_ALPHA, /* U+00d5d3: */ + RTUNI_ALPHA, /* U+00d5d4: */ + RTUNI_ALPHA, /* U+00d5d5: */ + RTUNI_ALPHA, /* U+00d5d6: */ + RTUNI_ALPHA, /* U+00d5d7: */ + RTUNI_ALPHA, /* U+00d5d8: */ + RTUNI_ALPHA, /* U+00d5d9: */ + RTUNI_ALPHA, /* U+00d5da: */ + RTUNI_ALPHA, /* U+00d5db: */ + RTUNI_ALPHA, /* U+00d5dc: */ + RTUNI_ALPHA, /* U+00d5dd: */ + RTUNI_ALPHA, /* U+00d5de: */ + RTUNI_ALPHA, /* U+00d5df: */ + RTUNI_ALPHA, /* U+00d5e0: */ + RTUNI_ALPHA, /* U+00d5e1: */ + RTUNI_ALPHA, /* U+00d5e2: */ + RTUNI_ALPHA, /* U+00d5e3: */ + RTUNI_ALPHA, /* U+00d5e4: */ + RTUNI_ALPHA, /* U+00d5e5: */ + RTUNI_ALPHA, /* U+00d5e6: */ + RTUNI_ALPHA, /* U+00d5e7: */ + RTUNI_ALPHA, /* U+00d5e8: */ + RTUNI_ALPHA, /* U+00d5e9: */ + RTUNI_ALPHA, /* U+00d5ea: */ + RTUNI_ALPHA, /* U+00d5eb: */ + RTUNI_ALPHA, /* U+00d5ec: */ + RTUNI_ALPHA, /* U+00d5ed: */ + RTUNI_ALPHA, /* U+00d5ee: */ + RTUNI_ALPHA, /* U+00d5ef: */ + RTUNI_ALPHA, /* U+00d5f0: */ + RTUNI_ALPHA, /* U+00d5f1: */ + RTUNI_ALPHA, /* U+00d5f2: */ + RTUNI_ALPHA, /* U+00d5f3: */ + RTUNI_ALPHA, /* U+00d5f4: */ + RTUNI_ALPHA, /* U+00d5f5: */ + RTUNI_ALPHA, /* U+00d5f6: */ + RTUNI_ALPHA, /* U+00d5f7: */ + RTUNI_ALPHA, /* U+00d5f8: */ + RTUNI_ALPHA, /* U+00d5f9: */ + RTUNI_ALPHA, /* U+00d5fa: */ + RTUNI_ALPHA, /* U+00d5fb: */ + RTUNI_ALPHA, /* U+00d5fc: */ + RTUNI_ALPHA, /* U+00d5fd: */ + RTUNI_ALPHA, /* U+00d5fe: */ + RTUNI_ALPHA, /* U+00d5ff: */ + RTUNI_ALPHA, /* U+00d600: */ + RTUNI_ALPHA, /* U+00d601: */ + RTUNI_ALPHA, /* U+00d602: */ + RTUNI_ALPHA, /* U+00d603: */ + RTUNI_ALPHA, /* U+00d604: */ + RTUNI_ALPHA, /* U+00d605: */ + RTUNI_ALPHA, /* U+00d606: */ + RTUNI_ALPHA, /* U+00d607: */ + RTUNI_ALPHA, /* U+00d608: */ + RTUNI_ALPHA, /* U+00d609: */ + RTUNI_ALPHA, /* U+00d60a: */ + RTUNI_ALPHA, /* U+00d60b: */ + RTUNI_ALPHA, /* U+00d60c: */ + RTUNI_ALPHA, /* U+00d60d: */ + RTUNI_ALPHA, /* U+00d60e: */ + RTUNI_ALPHA, /* U+00d60f: */ + RTUNI_ALPHA, /* U+00d610: */ + RTUNI_ALPHA, /* U+00d611: */ + RTUNI_ALPHA, /* U+00d612: */ + RTUNI_ALPHA, /* U+00d613: */ + RTUNI_ALPHA, /* U+00d614: */ + RTUNI_ALPHA, /* U+00d615: */ + RTUNI_ALPHA, /* U+00d616: */ + RTUNI_ALPHA, /* U+00d617: */ + RTUNI_ALPHA, /* U+00d618: */ + RTUNI_ALPHA, /* U+00d619: */ + RTUNI_ALPHA, /* U+00d61a: */ + RTUNI_ALPHA, /* U+00d61b: */ + RTUNI_ALPHA, /* U+00d61c: */ + RTUNI_ALPHA, /* U+00d61d: */ + RTUNI_ALPHA, /* U+00d61e: */ + RTUNI_ALPHA, /* U+00d61f: */ + RTUNI_ALPHA, /* U+00d620: */ + RTUNI_ALPHA, /* U+00d621: */ + RTUNI_ALPHA, /* U+00d622: */ + RTUNI_ALPHA, /* U+00d623: */ + RTUNI_ALPHA, /* U+00d624: */ + RTUNI_ALPHA, /* U+00d625: */ + RTUNI_ALPHA, /* U+00d626: */ + RTUNI_ALPHA, /* U+00d627: */ + RTUNI_ALPHA, /* U+00d628: */ + RTUNI_ALPHA, /* U+00d629: */ + RTUNI_ALPHA, /* U+00d62a: */ + RTUNI_ALPHA, /* U+00d62b: */ + RTUNI_ALPHA, /* U+00d62c: */ + RTUNI_ALPHA, /* U+00d62d: */ + RTUNI_ALPHA, /* U+00d62e: */ + RTUNI_ALPHA, /* U+00d62f: */ + RTUNI_ALPHA, /* U+00d630: */ + RTUNI_ALPHA, /* U+00d631: */ + RTUNI_ALPHA, /* U+00d632: */ + RTUNI_ALPHA, /* U+00d633: */ + RTUNI_ALPHA, /* U+00d634: */ + RTUNI_ALPHA, /* U+00d635: */ + RTUNI_ALPHA, /* U+00d636: */ + RTUNI_ALPHA, /* U+00d637: */ + RTUNI_ALPHA, /* U+00d638: */ + RTUNI_ALPHA, /* U+00d639: */ + RTUNI_ALPHA, /* U+00d63a: */ + RTUNI_ALPHA, /* U+00d63b: */ + RTUNI_ALPHA, /* U+00d63c: */ + RTUNI_ALPHA, /* U+00d63d: */ + RTUNI_ALPHA, /* U+00d63e: */ + RTUNI_ALPHA, /* U+00d63f: */ + RTUNI_ALPHA, /* U+00d640: */ + RTUNI_ALPHA, /* U+00d641: */ + RTUNI_ALPHA, /* U+00d642: */ + RTUNI_ALPHA, /* U+00d643: */ + RTUNI_ALPHA, /* U+00d644: */ + RTUNI_ALPHA, /* U+00d645: */ + RTUNI_ALPHA, /* U+00d646: */ + RTUNI_ALPHA, /* U+00d647: */ + RTUNI_ALPHA, /* U+00d648: */ + RTUNI_ALPHA, /* U+00d649: */ + RTUNI_ALPHA, /* U+00d64a: */ + RTUNI_ALPHA, /* U+00d64b: */ + RTUNI_ALPHA, /* U+00d64c: */ + RTUNI_ALPHA, /* U+00d64d: */ + RTUNI_ALPHA, /* U+00d64e: */ + RTUNI_ALPHA, /* U+00d64f: */ + RTUNI_ALPHA, /* U+00d650: */ + RTUNI_ALPHA, /* U+00d651: */ + RTUNI_ALPHA, /* U+00d652: */ + RTUNI_ALPHA, /* U+00d653: */ + RTUNI_ALPHA, /* U+00d654: */ + RTUNI_ALPHA, /* U+00d655: */ + RTUNI_ALPHA, /* U+00d656: */ + RTUNI_ALPHA, /* U+00d657: */ + RTUNI_ALPHA, /* U+00d658: */ + RTUNI_ALPHA, /* U+00d659: */ + RTUNI_ALPHA, /* U+00d65a: */ + RTUNI_ALPHA, /* U+00d65b: */ + RTUNI_ALPHA, /* U+00d65c: */ + RTUNI_ALPHA, /* U+00d65d: */ + RTUNI_ALPHA, /* U+00d65e: */ + RTUNI_ALPHA, /* U+00d65f: */ + RTUNI_ALPHA, /* U+00d660: */ + RTUNI_ALPHA, /* U+00d661: */ + RTUNI_ALPHA, /* U+00d662: */ + RTUNI_ALPHA, /* U+00d663: */ + RTUNI_ALPHA, /* U+00d664: */ + RTUNI_ALPHA, /* U+00d665: */ + RTUNI_ALPHA, /* U+00d666: */ + RTUNI_ALPHA, /* U+00d667: */ + RTUNI_ALPHA, /* U+00d668: */ + RTUNI_ALPHA, /* U+00d669: */ + RTUNI_ALPHA, /* U+00d66a: */ + RTUNI_ALPHA, /* U+00d66b: */ + RTUNI_ALPHA, /* U+00d66c: */ + RTUNI_ALPHA, /* U+00d66d: */ + RTUNI_ALPHA, /* U+00d66e: */ + RTUNI_ALPHA, /* U+00d66f: */ + RTUNI_ALPHA, /* U+00d670: */ + RTUNI_ALPHA, /* U+00d671: */ + RTUNI_ALPHA, /* U+00d672: */ + RTUNI_ALPHA, /* U+00d673: */ + RTUNI_ALPHA, /* U+00d674: */ + RTUNI_ALPHA, /* U+00d675: */ + RTUNI_ALPHA, /* U+00d676: */ + RTUNI_ALPHA, /* U+00d677: */ + RTUNI_ALPHA, /* U+00d678: */ + RTUNI_ALPHA, /* U+00d679: */ + RTUNI_ALPHA, /* U+00d67a: */ + RTUNI_ALPHA, /* U+00d67b: */ + RTUNI_ALPHA, /* U+00d67c: */ + RTUNI_ALPHA, /* U+00d67d: */ + RTUNI_ALPHA, /* U+00d67e: */ + RTUNI_ALPHA, /* U+00d67f: */ + RTUNI_ALPHA, /* U+00d680: */ + RTUNI_ALPHA, /* U+00d681: */ + RTUNI_ALPHA, /* U+00d682: */ + RTUNI_ALPHA, /* U+00d683: */ + RTUNI_ALPHA, /* U+00d684: */ + RTUNI_ALPHA, /* U+00d685: */ + RTUNI_ALPHA, /* U+00d686: */ + RTUNI_ALPHA, /* U+00d687: */ + RTUNI_ALPHA, /* U+00d688: */ + RTUNI_ALPHA, /* U+00d689: */ + RTUNI_ALPHA, /* U+00d68a: */ + RTUNI_ALPHA, /* U+00d68b: */ + RTUNI_ALPHA, /* U+00d68c: */ + RTUNI_ALPHA, /* U+00d68d: */ + RTUNI_ALPHA, /* U+00d68e: */ + RTUNI_ALPHA, /* U+00d68f: */ + RTUNI_ALPHA, /* U+00d690: */ + RTUNI_ALPHA, /* U+00d691: */ + RTUNI_ALPHA, /* U+00d692: */ + RTUNI_ALPHA, /* U+00d693: */ + RTUNI_ALPHA, /* U+00d694: */ + RTUNI_ALPHA, /* U+00d695: */ + RTUNI_ALPHA, /* U+00d696: */ + RTUNI_ALPHA, /* U+00d697: */ + RTUNI_ALPHA, /* U+00d698: */ + RTUNI_ALPHA, /* U+00d699: */ + RTUNI_ALPHA, /* U+00d69a: */ + RTUNI_ALPHA, /* U+00d69b: */ + RTUNI_ALPHA, /* U+00d69c: */ + RTUNI_ALPHA, /* U+00d69d: */ + RTUNI_ALPHA, /* U+00d69e: */ + RTUNI_ALPHA, /* U+00d69f: */ + RTUNI_ALPHA, /* U+00d6a0: */ + RTUNI_ALPHA, /* U+00d6a1: */ + RTUNI_ALPHA, /* U+00d6a2: */ + RTUNI_ALPHA, /* U+00d6a3: */ + RTUNI_ALPHA, /* U+00d6a4: */ + RTUNI_ALPHA, /* U+00d6a5: */ + RTUNI_ALPHA, /* U+00d6a6: */ + RTUNI_ALPHA, /* U+00d6a7: */ + RTUNI_ALPHA, /* U+00d6a8: */ + RTUNI_ALPHA, /* U+00d6a9: */ + RTUNI_ALPHA, /* U+00d6aa: */ + RTUNI_ALPHA, /* U+00d6ab: */ + RTUNI_ALPHA, /* U+00d6ac: */ + RTUNI_ALPHA, /* U+00d6ad: */ + RTUNI_ALPHA, /* U+00d6ae: */ + RTUNI_ALPHA, /* U+00d6af: */ + RTUNI_ALPHA, /* U+00d6b0: */ + RTUNI_ALPHA, /* U+00d6b1: */ + RTUNI_ALPHA, /* U+00d6b2: */ + RTUNI_ALPHA, /* U+00d6b3: */ + RTUNI_ALPHA, /* U+00d6b4: */ + RTUNI_ALPHA, /* U+00d6b5: */ + RTUNI_ALPHA, /* U+00d6b6: */ + RTUNI_ALPHA, /* U+00d6b7: */ + RTUNI_ALPHA, /* U+00d6b8: */ + RTUNI_ALPHA, /* U+00d6b9: */ + RTUNI_ALPHA, /* U+00d6ba: */ + RTUNI_ALPHA, /* U+00d6bb: */ + RTUNI_ALPHA, /* U+00d6bc: */ + RTUNI_ALPHA, /* U+00d6bd: */ + RTUNI_ALPHA, /* U+00d6be: */ + RTUNI_ALPHA, /* U+00d6bf: */ + RTUNI_ALPHA, /* U+00d6c0: */ + RTUNI_ALPHA, /* U+00d6c1: */ + RTUNI_ALPHA, /* U+00d6c2: */ + RTUNI_ALPHA, /* U+00d6c3: */ + RTUNI_ALPHA, /* U+00d6c4: */ + RTUNI_ALPHA, /* U+00d6c5: */ + RTUNI_ALPHA, /* U+00d6c6: */ + RTUNI_ALPHA, /* U+00d6c7: */ + RTUNI_ALPHA, /* U+00d6c8: */ + RTUNI_ALPHA, /* U+00d6c9: */ + RTUNI_ALPHA, /* U+00d6ca: */ + RTUNI_ALPHA, /* U+00d6cb: */ + RTUNI_ALPHA, /* U+00d6cc: */ + RTUNI_ALPHA, /* U+00d6cd: */ + RTUNI_ALPHA, /* U+00d6ce: */ + RTUNI_ALPHA, /* U+00d6cf: */ + RTUNI_ALPHA, /* U+00d6d0: */ + RTUNI_ALPHA, /* U+00d6d1: */ + RTUNI_ALPHA, /* U+00d6d2: */ + RTUNI_ALPHA, /* U+00d6d3: */ + RTUNI_ALPHA, /* U+00d6d4: */ + RTUNI_ALPHA, /* U+00d6d5: */ + RTUNI_ALPHA, /* U+00d6d6: */ + RTUNI_ALPHA, /* U+00d6d7: */ + RTUNI_ALPHA, /* U+00d6d8: */ + RTUNI_ALPHA, /* U+00d6d9: */ + RTUNI_ALPHA, /* U+00d6da: */ + RTUNI_ALPHA, /* U+00d6db: */ + RTUNI_ALPHA, /* U+00d6dc: */ + RTUNI_ALPHA, /* U+00d6dd: */ + RTUNI_ALPHA, /* U+00d6de: */ + RTUNI_ALPHA, /* U+00d6df: */ + RTUNI_ALPHA, /* U+00d6e0: */ + RTUNI_ALPHA, /* U+00d6e1: */ + RTUNI_ALPHA, /* U+00d6e2: */ + RTUNI_ALPHA, /* U+00d6e3: */ + RTUNI_ALPHA, /* U+00d6e4: */ + RTUNI_ALPHA, /* U+00d6e5: */ + RTUNI_ALPHA, /* U+00d6e6: */ + RTUNI_ALPHA, /* U+00d6e7: */ + RTUNI_ALPHA, /* U+00d6e8: */ + RTUNI_ALPHA, /* U+00d6e9: */ + RTUNI_ALPHA, /* U+00d6ea: */ + RTUNI_ALPHA, /* U+00d6eb: */ + RTUNI_ALPHA, /* U+00d6ec: */ + RTUNI_ALPHA, /* U+00d6ed: */ + RTUNI_ALPHA, /* U+00d6ee: */ + RTUNI_ALPHA, /* U+00d6ef: */ + RTUNI_ALPHA, /* U+00d6f0: */ + RTUNI_ALPHA, /* U+00d6f1: */ + RTUNI_ALPHA, /* U+00d6f2: */ + RTUNI_ALPHA, /* U+00d6f3: */ + RTUNI_ALPHA, /* U+00d6f4: */ + RTUNI_ALPHA, /* U+00d6f5: */ + RTUNI_ALPHA, /* U+00d6f6: */ + RTUNI_ALPHA, /* U+00d6f7: */ + RTUNI_ALPHA, /* U+00d6f8: */ + RTUNI_ALPHA, /* U+00d6f9: */ + RTUNI_ALPHA, /* U+00d6fa: */ + RTUNI_ALPHA, /* U+00d6fb: */ + RTUNI_ALPHA, /* U+00d6fc: */ + RTUNI_ALPHA, /* U+00d6fd: */ + RTUNI_ALPHA, /* U+00d6fe: */ + RTUNI_ALPHA, /* U+00d6ff: */ + RTUNI_ALPHA, /* U+00d700: */ + RTUNI_ALPHA, /* U+00d701: */ + RTUNI_ALPHA, /* U+00d702: */ + RTUNI_ALPHA, /* U+00d703: */ + RTUNI_ALPHA, /* U+00d704: */ + RTUNI_ALPHA, /* U+00d705: */ + RTUNI_ALPHA, /* U+00d706: */ + RTUNI_ALPHA, /* U+00d707: */ + RTUNI_ALPHA, /* U+00d708: */ + RTUNI_ALPHA, /* U+00d709: */ + RTUNI_ALPHA, /* U+00d70a: */ + RTUNI_ALPHA, /* U+00d70b: */ + RTUNI_ALPHA, /* U+00d70c: */ + RTUNI_ALPHA, /* U+00d70d: */ + RTUNI_ALPHA, /* U+00d70e: */ + RTUNI_ALPHA, /* U+00d70f: */ + RTUNI_ALPHA, /* U+00d710: */ + RTUNI_ALPHA, /* U+00d711: */ + RTUNI_ALPHA, /* U+00d712: */ + RTUNI_ALPHA, /* U+00d713: */ + RTUNI_ALPHA, /* U+00d714: */ + RTUNI_ALPHA, /* U+00d715: */ + RTUNI_ALPHA, /* U+00d716: */ + RTUNI_ALPHA, /* U+00d717: */ + RTUNI_ALPHA, /* U+00d718: */ + RTUNI_ALPHA, /* U+00d719: */ + RTUNI_ALPHA, /* U+00d71a: */ + RTUNI_ALPHA, /* U+00d71b: */ + RTUNI_ALPHA, /* U+00d71c: */ + RTUNI_ALPHA, /* U+00d71d: */ + RTUNI_ALPHA, /* U+00d71e: */ + RTUNI_ALPHA, /* U+00d71f: */ + RTUNI_ALPHA, /* U+00d720: */ + RTUNI_ALPHA, /* U+00d721: */ + RTUNI_ALPHA, /* U+00d722: */ + RTUNI_ALPHA, /* U+00d723: */ + RTUNI_ALPHA, /* U+00d724: */ + RTUNI_ALPHA, /* U+00d725: */ + RTUNI_ALPHA, /* U+00d726: */ + RTUNI_ALPHA, /* U+00d727: */ + RTUNI_ALPHA, /* U+00d728: */ + RTUNI_ALPHA, /* U+00d729: */ + RTUNI_ALPHA, /* U+00d72a: */ + RTUNI_ALPHA, /* U+00d72b: */ + RTUNI_ALPHA, /* U+00d72c: */ + RTUNI_ALPHA, /* U+00d72d: */ + RTUNI_ALPHA, /* U+00d72e: */ + RTUNI_ALPHA, /* U+00d72f: */ + RTUNI_ALPHA, /* U+00d730: */ + RTUNI_ALPHA, /* U+00d731: */ + RTUNI_ALPHA, /* U+00d732: */ + RTUNI_ALPHA, /* U+00d733: */ + RTUNI_ALPHA, /* U+00d734: */ + RTUNI_ALPHA, /* U+00d735: */ + RTUNI_ALPHA, /* U+00d736: */ + RTUNI_ALPHA, /* U+00d737: */ + RTUNI_ALPHA, /* U+00d738: */ + RTUNI_ALPHA, /* U+00d739: */ + RTUNI_ALPHA, /* U+00d73a: */ + RTUNI_ALPHA, /* U+00d73b: */ + RTUNI_ALPHA, /* U+00d73c: */ + RTUNI_ALPHA, /* U+00d73d: */ + RTUNI_ALPHA, /* U+00d73e: */ + RTUNI_ALPHA, /* U+00d73f: */ + RTUNI_ALPHA, /* U+00d740: */ + RTUNI_ALPHA, /* U+00d741: */ + RTUNI_ALPHA, /* U+00d742: */ + RTUNI_ALPHA, /* U+00d743: */ + RTUNI_ALPHA, /* U+00d744: */ + RTUNI_ALPHA, /* U+00d745: */ + RTUNI_ALPHA, /* U+00d746: */ + RTUNI_ALPHA, /* U+00d747: */ + RTUNI_ALPHA, /* U+00d748: */ + RTUNI_ALPHA, /* U+00d749: */ + RTUNI_ALPHA, /* U+00d74a: */ + RTUNI_ALPHA, /* U+00d74b: */ + RTUNI_ALPHA, /* U+00d74c: */ + RTUNI_ALPHA, /* U+00d74d: */ + RTUNI_ALPHA, /* U+00d74e: */ + RTUNI_ALPHA, /* U+00d74f: */ + RTUNI_ALPHA, /* U+00d750: */ + RTUNI_ALPHA, /* U+00d751: */ + RTUNI_ALPHA, /* U+00d752: */ + RTUNI_ALPHA, /* U+00d753: */ + RTUNI_ALPHA, /* U+00d754: */ + RTUNI_ALPHA, /* U+00d755: */ + RTUNI_ALPHA, /* U+00d756: */ + RTUNI_ALPHA, /* U+00d757: */ + RTUNI_ALPHA, /* U+00d758: */ + RTUNI_ALPHA, /* U+00d759: */ + RTUNI_ALPHA, /* U+00d75a: */ + RTUNI_ALPHA, /* U+00d75b: */ + RTUNI_ALPHA, /* U+00d75c: */ + RTUNI_ALPHA, /* U+00d75d: */ + RTUNI_ALPHA, /* U+00d75e: */ + RTUNI_ALPHA, /* U+00d75f: */ + RTUNI_ALPHA, /* U+00d760: */ + RTUNI_ALPHA, /* U+00d761: */ + RTUNI_ALPHA, /* U+00d762: */ + RTUNI_ALPHA, /* U+00d763: */ + RTUNI_ALPHA, /* U+00d764: */ + RTUNI_ALPHA, /* U+00d765: */ + RTUNI_ALPHA, /* U+00d766: */ + RTUNI_ALPHA, /* U+00d767: */ + RTUNI_ALPHA, /* U+00d768: */ + RTUNI_ALPHA, /* U+00d769: */ + RTUNI_ALPHA, /* U+00d76a: */ + RTUNI_ALPHA, /* U+00d76b: */ + RTUNI_ALPHA, /* U+00d76c: */ + RTUNI_ALPHA, /* U+00d76d: */ + RTUNI_ALPHA, /* U+00d76e: */ + RTUNI_ALPHA, /* U+00d76f: */ + RTUNI_ALPHA, /* U+00d770: */ + RTUNI_ALPHA, /* U+00d771: */ + RTUNI_ALPHA, /* U+00d772: */ + RTUNI_ALPHA, /* U+00d773: */ + RTUNI_ALPHA, /* U+00d774: */ + RTUNI_ALPHA, /* U+00d775: */ + RTUNI_ALPHA, /* U+00d776: */ + RTUNI_ALPHA, /* U+00d777: */ + RTUNI_ALPHA, /* U+00d778: */ + RTUNI_ALPHA, /* U+00d779: */ + RTUNI_ALPHA, /* U+00d77a: */ + RTUNI_ALPHA, /* U+00d77b: */ + RTUNI_ALPHA, /* U+00d77c: */ + RTUNI_ALPHA, /* U+00d77d: */ + RTUNI_ALPHA, /* U+00d77e: */ + RTUNI_ALPHA, /* U+00d77f: */ + RTUNI_ALPHA, /* U+00d780: */ + RTUNI_ALPHA, /* U+00d781: */ + RTUNI_ALPHA, /* U+00d782: */ + RTUNI_ALPHA, /* U+00d783: */ + RTUNI_ALPHA, /* U+00d784: */ + RTUNI_ALPHA, /* U+00d785: */ + RTUNI_ALPHA, /* U+00d786: */ + RTUNI_ALPHA, /* U+00d787: */ + RTUNI_ALPHA, /* U+00d788: */ + RTUNI_ALPHA, /* U+00d789: */ + RTUNI_ALPHA, /* U+00d78a: */ + RTUNI_ALPHA, /* U+00d78b: */ + RTUNI_ALPHA, /* U+00d78c: */ + RTUNI_ALPHA, /* U+00d78d: */ + RTUNI_ALPHA, /* U+00d78e: */ + RTUNI_ALPHA, /* U+00d78f: */ + RTUNI_ALPHA, /* U+00d790: */ + RTUNI_ALPHA, /* U+00d791: */ + RTUNI_ALPHA, /* U+00d792: */ + RTUNI_ALPHA, /* U+00d793: */ + RTUNI_ALPHA, /* U+00d794: */ + RTUNI_ALPHA, /* U+00d795: */ + RTUNI_ALPHA, /* U+00d796: */ + RTUNI_ALPHA, /* U+00d797: */ + RTUNI_ALPHA, /* U+00d798: */ + RTUNI_ALPHA, /* U+00d799: */ + RTUNI_ALPHA, /* U+00d79a: */ + RTUNI_ALPHA, /* U+00d79b: */ + RTUNI_ALPHA, /* U+00d79c: */ + RTUNI_ALPHA, /* U+00d79d: */ + RTUNI_ALPHA, /* U+00d79e: */ + RTUNI_ALPHA, /* U+00d79f: */ + RTUNI_ALPHA, /* U+00d7a0: */ + RTUNI_ALPHA, /* U+00d7a1: */ + RTUNI_ALPHA, /* U+00d7a2: */ + RTUNI_ALPHA, /* U+00d7a3: <Hangul Syllable, Last>*/ + 0, /* U+00d7a4: */ + 0, /* U+00d7a5: */ + 0, /* U+00d7a6: */ + 0, /* U+00d7a7: */ + 0, /* U+00d7a8: */ + 0, /* U+00d7a9: */ + 0, /* U+00d7aa: */ + 0, /* U+00d7ab: */ + 0, /* U+00d7ac: */ + 0, /* U+00d7ad: */ + 0, /* U+00d7ae: */ + 0, /* U+00d7af: */ + RTUNI_ALPHA, /* U+00d7b0: HANGUL JUNGSEONG O-YEO*/ + RTUNI_ALPHA, /* U+00d7b1: HANGUL JUNGSEONG O-O-I*/ + RTUNI_ALPHA, /* U+00d7b2: HANGUL JUNGSEONG YO-A*/ + RTUNI_ALPHA, /* U+00d7b3: HANGUL JUNGSEONG YO-AE*/ + RTUNI_ALPHA, /* U+00d7b4: HANGUL JUNGSEONG YO-EO*/ + RTUNI_ALPHA, /* U+00d7b5: HANGUL JUNGSEONG U-YEO*/ + RTUNI_ALPHA, /* U+00d7b6: HANGUL JUNGSEONG U-I-I*/ + RTUNI_ALPHA, /* U+00d7b7: HANGUL JUNGSEONG YU-AE*/ + RTUNI_ALPHA, /* U+00d7b8: HANGUL JUNGSEONG YU-O*/ + RTUNI_ALPHA, /* U+00d7b9: HANGUL JUNGSEONG EU-A*/ + RTUNI_ALPHA, /* U+00d7ba: HANGUL JUNGSEONG EU-EO*/ + RTUNI_ALPHA, /* U+00d7bb: HANGUL JUNGSEONG EU-E*/ + RTUNI_ALPHA, /* U+00d7bc: HANGUL JUNGSEONG EU-O*/ + RTUNI_ALPHA, /* U+00d7bd: HANGUL JUNGSEONG I-YA-O*/ + RTUNI_ALPHA, /* U+00d7be: HANGUL JUNGSEONG I-YAE*/ + RTUNI_ALPHA, /* U+00d7bf: HANGUL JUNGSEONG I-YEO*/ + RTUNI_ALPHA, /* U+00d7c0: HANGUL JUNGSEONG I-YE*/ + RTUNI_ALPHA, /* U+00d7c1: HANGUL JUNGSEONG I-O-I*/ + RTUNI_ALPHA, /* U+00d7c2: HANGUL JUNGSEONG I-YO*/ + RTUNI_ALPHA, /* U+00d7c3: HANGUL JUNGSEONG I-YU*/ + RTUNI_ALPHA, /* U+00d7c4: HANGUL JUNGSEONG I-I*/ + RTUNI_ALPHA, /* U+00d7c5: HANGUL JUNGSEONG ARAEA-A*/ + RTUNI_ALPHA, /* U+00d7c6: HANGUL JUNGSEONG ARAEA-E*/ + 0, /* U+00d7c7: */ + 0, /* U+00d7c8: */ + 0, /* U+00d7c9: */ + 0, /* U+00d7ca: */ + RTUNI_ALPHA, /* U+00d7cb: HANGUL JONGSEONG NIEUN-RIEUL*/ + RTUNI_ALPHA, /* U+00d7cc: HANGUL JONGSEONG NIEUN-CHIEUCH*/ + RTUNI_ALPHA, /* U+00d7cd: HANGUL JONGSEONG SSANGTIKEUT*/ + RTUNI_ALPHA, /* U+00d7ce: HANGUL JONGSEONG SSANGTIKEUT-PIEUP*/ + RTUNI_ALPHA, /* U+00d7cf: HANGUL JONGSEONG TIKEUT-PIEUP*/ + RTUNI_ALPHA, /* U+00d7d0: HANGUL JONGSEONG TIKEUT-SIOS*/ + RTUNI_ALPHA, /* U+00d7d1: HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK*/ + RTUNI_ALPHA, /* U+00d7d2: HANGUL JONGSEONG TIKEUT-CIEUC*/ + RTUNI_ALPHA, /* U+00d7d3: HANGUL JONGSEONG TIKEUT-CHIEUCH*/ + RTUNI_ALPHA, /* U+00d7d4: HANGUL JONGSEONG TIKEUT-THIEUTH*/ + RTUNI_ALPHA, /* U+00d7d5: HANGUL JONGSEONG RIEUL-SSANGKIYEOK*/ + RTUNI_ALPHA, /* U+00d7d6: HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH*/ + RTUNI_ALPHA, /* U+00d7d7: HANGUL JONGSEONG SSANGRIEUL-KHIEUKH*/ + RTUNI_ALPHA, /* U+00d7d8: HANGUL JONGSEONG RIEUL-MIEUM-HIEUH*/ + RTUNI_ALPHA, /* U+00d7d9: HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT*/ + RTUNI_ALPHA, /* U+00d7da: HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH*/ + RTUNI_ALPHA, /* U+00d7db: HANGUL JONGSEONG RIEUL-YESIEUNG*/ + RTUNI_ALPHA, /* U+00d7dc: HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH*/ + RTUNI_ALPHA, /* U+00d7dd: HANGUL JONGSEONG KAPYEOUNRIEUL*/ + RTUNI_ALPHA, /* U+00d7de: HANGUL JONGSEONG MIEUM-NIEUN*/ + RTUNI_ALPHA, /* U+00d7df: HANGUL JONGSEONG MIEUM-SSANGNIEUN*/ + RTUNI_ALPHA, /* U+00d7e0: HANGUL JONGSEONG SSANGMIEUM*/ + RTUNI_ALPHA, /* U+00d7e1: HANGUL JONGSEONG MIEUM-PIEUP-SIOS*/ + RTUNI_ALPHA, /* U+00d7e2: HANGUL JONGSEONG MIEUM-CIEUC*/ + RTUNI_ALPHA, /* U+00d7e3: HANGUL JONGSEONG PIEUP-TIKEUT*/ + RTUNI_ALPHA, /* U+00d7e4: HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH*/ + RTUNI_ALPHA, /* U+00d7e5: HANGUL JONGSEONG PIEUP-MIEUM*/ + RTUNI_ALPHA, /* U+00d7e6: HANGUL JONGSEONG SSANGPIEUP*/ + RTUNI_ALPHA, /* U+00d7e7: HANGUL JONGSEONG PIEUP-SIOS-TIKEUT*/ + RTUNI_ALPHA, /* U+00d7e8: HANGUL JONGSEONG PIEUP-CIEUC*/ + RTUNI_ALPHA, /* U+00d7e9: HANGUL JONGSEONG PIEUP-CHIEUCH*/ + RTUNI_ALPHA, /* U+00d7ea: HANGUL JONGSEONG SIOS-MIEUM*/ + RTUNI_ALPHA, /* U+00d7eb: HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP*/ + RTUNI_ALPHA, /* U+00d7ec: HANGUL JONGSEONG SSANGSIOS-KIYEOK*/ + RTUNI_ALPHA, /* U+00d7ed: HANGUL JONGSEONG SSANGSIOS-TIKEUT*/ + RTUNI_ALPHA, /* U+00d7ee: HANGUL JONGSEONG SIOS-PANSIOS*/ + RTUNI_ALPHA, /* U+00d7ef: HANGUL JONGSEONG SIOS-CIEUC*/ + RTUNI_ALPHA, /* U+00d7f0: HANGUL JONGSEONG SIOS-CHIEUCH*/ + RTUNI_ALPHA, /* U+00d7f1: HANGUL JONGSEONG SIOS-THIEUTH*/ + RTUNI_ALPHA, /* U+00d7f2: HANGUL JONGSEONG SIOS-HIEUH*/ + RTUNI_ALPHA, /* U+00d7f3: HANGUL JONGSEONG PANSIOS-PIEUP*/ + RTUNI_ALPHA, /* U+00d7f4: HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP*/ + RTUNI_ALPHA, /* U+00d7f5: HANGUL JONGSEONG YESIEUNG-MIEUM*/ + RTUNI_ALPHA, /* U+00d7f6: HANGUL JONGSEONG YESIEUNG-HIEUH*/ + RTUNI_ALPHA, /* U+00d7f7: HANGUL JONGSEONG CIEUC-PIEUP*/ + RTUNI_ALPHA, /* U+00d7f8: HANGUL JONGSEONG CIEUC-SSANGPIEUP*/ + RTUNI_ALPHA, /* U+00d7f9: HANGUL JONGSEONG SSANGCIEUC*/ + RTUNI_ALPHA, /* U+00d7fa: HANGUL JONGSEONG PHIEUPH-SIOS*/ + RTUNI_ALPHA, /* U+00d7fb: HANGUL JONGSEONG PHIEUPH-THIEUTH*/ +}; + +static const uint8_t g_afRTUniFlags0x00f900[] = +{ + RTUNI_ALPHA, /* U+00f900: CJK COMPATIBILITY IDEOGRAPH-F900*/ + RTUNI_ALPHA, /* U+00f901: CJK COMPATIBILITY IDEOGRAPH-F901*/ + RTUNI_ALPHA, /* U+00f902: CJK COMPATIBILITY IDEOGRAPH-F902*/ + RTUNI_ALPHA, /* U+00f903: CJK COMPATIBILITY IDEOGRAPH-F903*/ + RTUNI_ALPHA, /* U+00f904: CJK COMPATIBILITY IDEOGRAPH-F904*/ + RTUNI_ALPHA, /* U+00f905: CJK COMPATIBILITY IDEOGRAPH-F905*/ + RTUNI_ALPHA, /* U+00f906: CJK COMPATIBILITY IDEOGRAPH-F906*/ + RTUNI_ALPHA, /* U+00f907: CJK COMPATIBILITY IDEOGRAPH-F907*/ + RTUNI_ALPHA, /* U+00f908: CJK COMPATIBILITY IDEOGRAPH-F908*/ + RTUNI_ALPHA, /* U+00f909: CJK COMPATIBILITY IDEOGRAPH-F909*/ + RTUNI_ALPHA, /* U+00f90a: CJK COMPATIBILITY IDEOGRAPH-F90A*/ + RTUNI_ALPHA, /* U+00f90b: CJK COMPATIBILITY IDEOGRAPH-F90B*/ + RTUNI_ALPHA, /* U+00f90c: CJK COMPATIBILITY IDEOGRAPH-F90C*/ + RTUNI_ALPHA, /* U+00f90d: CJK COMPATIBILITY IDEOGRAPH-F90D*/ + RTUNI_ALPHA, /* U+00f90e: CJK COMPATIBILITY IDEOGRAPH-F90E*/ + RTUNI_ALPHA, /* U+00f90f: CJK COMPATIBILITY IDEOGRAPH-F90F*/ + RTUNI_ALPHA, /* U+00f910: CJK COMPATIBILITY IDEOGRAPH-F910*/ + RTUNI_ALPHA, /* U+00f911: CJK COMPATIBILITY IDEOGRAPH-F911*/ + RTUNI_ALPHA, /* U+00f912: CJK COMPATIBILITY IDEOGRAPH-F912*/ + RTUNI_ALPHA, /* U+00f913: CJK COMPATIBILITY IDEOGRAPH-F913*/ + RTUNI_ALPHA, /* U+00f914: CJK COMPATIBILITY IDEOGRAPH-F914*/ + RTUNI_ALPHA, /* U+00f915: CJK COMPATIBILITY IDEOGRAPH-F915*/ + RTUNI_ALPHA, /* U+00f916: CJK COMPATIBILITY IDEOGRAPH-F916*/ + RTUNI_ALPHA, /* U+00f917: CJK COMPATIBILITY IDEOGRAPH-F917*/ + RTUNI_ALPHA, /* U+00f918: CJK COMPATIBILITY IDEOGRAPH-F918*/ + RTUNI_ALPHA, /* U+00f919: CJK COMPATIBILITY IDEOGRAPH-F919*/ + RTUNI_ALPHA, /* U+00f91a: CJK COMPATIBILITY IDEOGRAPH-F91A*/ + RTUNI_ALPHA, /* U+00f91b: CJK COMPATIBILITY IDEOGRAPH-F91B*/ + RTUNI_ALPHA, /* U+00f91c: CJK COMPATIBILITY IDEOGRAPH-F91C*/ + RTUNI_ALPHA, /* U+00f91d: CJK COMPATIBILITY IDEOGRAPH-F91D*/ + RTUNI_ALPHA, /* U+00f91e: CJK COMPATIBILITY IDEOGRAPH-F91E*/ + RTUNI_ALPHA, /* U+00f91f: CJK COMPATIBILITY IDEOGRAPH-F91F*/ + RTUNI_ALPHA, /* U+00f920: CJK COMPATIBILITY IDEOGRAPH-F920*/ + RTUNI_ALPHA, /* U+00f921: CJK COMPATIBILITY IDEOGRAPH-F921*/ + RTUNI_ALPHA, /* U+00f922: CJK COMPATIBILITY IDEOGRAPH-F922*/ + RTUNI_ALPHA, /* U+00f923: CJK COMPATIBILITY IDEOGRAPH-F923*/ + RTUNI_ALPHA, /* U+00f924: CJK COMPATIBILITY IDEOGRAPH-F924*/ + RTUNI_ALPHA, /* U+00f925: CJK COMPATIBILITY IDEOGRAPH-F925*/ + RTUNI_ALPHA, /* U+00f926: CJK COMPATIBILITY IDEOGRAPH-F926*/ + RTUNI_ALPHA, /* U+00f927: CJK COMPATIBILITY IDEOGRAPH-F927*/ + RTUNI_ALPHA, /* U+00f928: CJK COMPATIBILITY IDEOGRAPH-F928*/ + RTUNI_ALPHA, /* U+00f929: CJK COMPATIBILITY IDEOGRAPH-F929*/ + RTUNI_ALPHA, /* U+00f92a: CJK COMPATIBILITY IDEOGRAPH-F92A*/ + RTUNI_ALPHA, /* U+00f92b: CJK COMPATIBILITY IDEOGRAPH-F92B*/ + RTUNI_ALPHA, /* U+00f92c: CJK COMPATIBILITY IDEOGRAPH-F92C*/ + RTUNI_ALPHA, /* U+00f92d: CJK COMPATIBILITY IDEOGRAPH-F92D*/ + RTUNI_ALPHA, /* U+00f92e: CJK COMPATIBILITY IDEOGRAPH-F92E*/ + RTUNI_ALPHA, /* U+00f92f: CJK COMPATIBILITY IDEOGRAPH-F92F*/ + RTUNI_ALPHA, /* U+00f930: CJK COMPATIBILITY IDEOGRAPH-F930*/ + RTUNI_ALPHA, /* U+00f931: CJK COMPATIBILITY IDEOGRAPH-F931*/ + RTUNI_ALPHA, /* U+00f932: CJK COMPATIBILITY IDEOGRAPH-F932*/ + RTUNI_ALPHA, /* U+00f933: CJK COMPATIBILITY IDEOGRAPH-F933*/ + RTUNI_ALPHA, /* U+00f934: CJK COMPATIBILITY IDEOGRAPH-F934*/ + RTUNI_ALPHA, /* U+00f935: CJK COMPATIBILITY IDEOGRAPH-F935*/ + RTUNI_ALPHA, /* U+00f936: CJK COMPATIBILITY IDEOGRAPH-F936*/ + RTUNI_ALPHA, /* U+00f937: CJK COMPATIBILITY IDEOGRAPH-F937*/ + RTUNI_ALPHA, /* U+00f938: CJK COMPATIBILITY IDEOGRAPH-F938*/ + RTUNI_ALPHA, /* U+00f939: CJK COMPATIBILITY IDEOGRAPH-F939*/ + RTUNI_ALPHA, /* U+00f93a: CJK COMPATIBILITY IDEOGRAPH-F93A*/ + RTUNI_ALPHA, /* U+00f93b: CJK COMPATIBILITY IDEOGRAPH-F93B*/ + RTUNI_ALPHA, /* U+00f93c: CJK COMPATIBILITY IDEOGRAPH-F93C*/ + RTUNI_ALPHA, /* U+00f93d: CJK COMPATIBILITY IDEOGRAPH-F93D*/ + RTUNI_ALPHA, /* U+00f93e: CJK COMPATIBILITY IDEOGRAPH-F93E*/ + RTUNI_ALPHA, /* U+00f93f: CJK COMPATIBILITY IDEOGRAPH-F93F*/ + RTUNI_ALPHA, /* U+00f940: CJK COMPATIBILITY IDEOGRAPH-F940*/ + RTUNI_ALPHA, /* U+00f941: CJK COMPATIBILITY IDEOGRAPH-F941*/ + RTUNI_ALPHA, /* U+00f942: CJK COMPATIBILITY IDEOGRAPH-F942*/ + RTUNI_ALPHA, /* U+00f943: CJK COMPATIBILITY IDEOGRAPH-F943*/ + RTUNI_ALPHA, /* U+00f944: CJK COMPATIBILITY IDEOGRAPH-F944*/ + RTUNI_ALPHA, /* U+00f945: CJK COMPATIBILITY IDEOGRAPH-F945*/ + RTUNI_ALPHA, /* U+00f946: CJK COMPATIBILITY IDEOGRAPH-F946*/ + RTUNI_ALPHA, /* U+00f947: CJK COMPATIBILITY IDEOGRAPH-F947*/ + RTUNI_ALPHA, /* U+00f948: CJK COMPATIBILITY IDEOGRAPH-F948*/ + RTUNI_ALPHA, /* U+00f949: CJK COMPATIBILITY IDEOGRAPH-F949*/ + RTUNI_ALPHA, /* U+00f94a: CJK COMPATIBILITY IDEOGRAPH-F94A*/ + RTUNI_ALPHA, /* U+00f94b: CJK COMPATIBILITY IDEOGRAPH-F94B*/ + RTUNI_ALPHA, /* U+00f94c: CJK COMPATIBILITY IDEOGRAPH-F94C*/ + RTUNI_ALPHA, /* U+00f94d: CJK COMPATIBILITY IDEOGRAPH-F94D*/ + RTUNI_ALPHA, /* U+00f94e: CJK COMPATIBILITY IDEOGRAPH-F94E*/ + RTUNI_ALPHA, /* U+00f94f: CJK COMPATIBILITY IDEOGRAPH-F94F*/ + RTUNI_ALPHA, /* U+00f950: CJK COMPATIBILITY IDEOGRAPH-F950*/ + RTUNI_ALPHA, /* U+00f951: CJK COMPATIBILITY IDEOGRAPH-F951*/ + RTUNI_ALPHA, /* U+00f952: CJK COMPATIBILITY IDEOGRAPH-F952*/ + RTUNI_ALPHA, /* U+00f953: CJK COMPATIBILITY IDEOGRAPH-F953*/ + RTUNI_ALPHA, /* U+00f954: CJK COMPATIBILITY IDEOGRAPH-F954*/ + RTUNI_ALPHA, /* U+00f955: CJK COMPATIBILITY IDEOGRAPH-F955*/ + RTUNI_ALPHA, /* U+00f956: CJK COMPATIBILITY IDEOGRAPH-F956*/ + RTUNI_ALPHA, /* U+00f957: CJK COMPATIBILITY IDEOGRAPH-F957*/ + RTUNI_ALPHA, /* U+00f958: CJK COMPATIBILITY IDEOGRAPH-F958*/ + RTUNI_ALPHA, /* U+00f959: CJK COMPATIBILITY IDEOGRAPH-F959*/ + RTUNI_ALPHA, /* U+00f95a: CJK COMPATIBILITY IDEOGRAPH-F95A*/ + RTUNI_ALPHA, /* U+00f95b: CJK COMPATIBILITY IDEOGRAPH-F95B*/ + RTUNI_ALPHA, /* U+00f95c: CJK COMPATIBILITY IDEOGRAPH-F95C*/ + RTUNI_ALPHA, /* U+00f95d: CJK COMPATIBILITY IDEOGRAPH-F95D*/ + RTUNI_ALPHA, /* U+00f95e: CJK COMPATIBILITY IDEOGRAPH-F95E*/ + RTUNI_ALPHA, /* U+00f95f: CJK COMPATIBILITY IDEOGRAPH-F95F*/ + RTUNI_ALPHA, /* U+00f960: CJK COMPATIBILITY IDEOGRAPH-F960*/ + RTUNI_ALPHA, /* U+00f961: CJK COMPATIBILITY IDEOGRAPH-F961*/ + RTUNI_ALPHA, /* U+00f962: CJK COMPATIBILITY IDEOGRAPH-F962*/ + RTUNI_ALPHA, /* U+00f963: CJK COMPATIBILITY IDEOGRAPH-F963*/ + RTUNI_ALPHA, /* U+00f964: CJK COMPATIBILITY IDEOGRAPH-F964*/ + RTUNI_ALPHA, /* U+00f965: CJK COMPATIBILITY IDEOGRAPH-F965*/ + RTUNI_ALPHA, /* U+00f966: CJK COMPATIBILITY IDEOGRAPH-F966*/ + RTUNI_ALPHA, /* U+00f967: CJK COMPATIBILITY IDEOGRAPH-F967*/ + RTUNI_ALPHA, /* U+00f968: CJK COMPATIBILITY IDEOGRAPH-F968*/ + RTUNI_ALPHA, /* U+00f969: CJK COMPATIBILITY IDEOGRAPH-F969*/ + RTUNI_ALPHA, /* U+00f96a: CJK COMPATIBILITY IDEOGRAPH-F96A*/ + RTUNI_ALPHA, /* U+00f96b: CJK COMPATIBILITY IDEOGRAPH-F96B*/ + RTUNI_ALPHA, /* U+00f96c: CJK COMPATIBILITY IDEOGRAPH-F96C*/ + RTUNI_ALPHA, /* U+00f96d: CJK COMPATIBILITY IDEOGRAPH-F96D*/ + RTUNI_ALPHA, /* U+00f96e: CJK COMPATIBILITY IDEOGRAPH-F96E*/ + RTUNI_ALPHA, /* U+00f96f: CJK COMPATIBILITY IDEOGRAPH-F96F*/ + RTUNI_ALPHA, /* U+00f970: CJK COMPATIBILITY IDEOGRAPH-F970*/ + RTUNI_ALPHA, /* U+00f971: CJK COMPATIBILITY IDEOGRAPH-F971*/ + RTUNI_ALPHA, /* U+00f972: CJK COMPATIBILITY IDEOGRAPH-F972*/ + RTUNI_ALPHA, /* U+00f973: CJK COMPATIBILITY IDEOGRAPH-F973*/ + RTUNI_ALPHA, /* U+00f974: CJK COMPATIBILITY IDEOGRAPH-F974*/ + RTUNI_ALPHA, /* U+00f975: CJK COMPATIBILITY IDEOGRAPH-F975*/ + RTUNI_ALPHA, /* U+00f976: CJK COMPATIBILITY IDEOGRAPH-F976*/ + RTUNI_ALPHA, /* U+00f977: CJK COMPATIBILITY IDEOGRAPH-F977*/ + RTUNI_ALPHA, /* U+00f978: CJK COMPATIBILITY IDEOGRAPH-F978*/ + RTUNI_ALPHA, /* U+00f979: CJK COMPATIBILITY IDEOGRAPH-F979*/ + RTUNI_ALPHA, /* U+00f97a: CJK COMPATIBILITY IDEOGRAPH-F97A*/ + RTUNI_ALPHA, /* U+00f97b: CJK COMPATIBILITY IDEOGRAPH-F97B*/ + RTUNI_ALPHA, /* U+00f97c: CJK COMPATIBILITY IDEOGRAPH-F97C*/ + RTUNI_ALPHA, /* U+00f97d: CJK COMPATIBILITY IDEOGRAPH-F97D*/ + RTUNI_ALPHA, /* U+00f97e: CJK COMPATIBILITY IDEOGRAPH-F97E*/ + RTUNI_ALPHA, /* U+00f97f: CJK COMPATIBILITY IDEOGRAPH-F97F*/ + RTUNI_ALPHA, /* U+00f980: CJK COMPATIBILITY IDEOGRAPH-F980*/ + RTUNI_ALPHA, /* U+00f981: CJK COMPATIBILITY IDEOGRAPH-F981*/ + RTUNI_ALPHA, /* U+00f982: CJK COMPATIBILITY IDEOGRAPH-F982*/ + RTUNI_ALPHA, /* U+00f983: CJK COMPATIBILITY IDEOGRAPH-F983*/ + RTUNI_ALPHA, /* U+00f984: CJK COMPATIBILITY IDEOGRAPH-F984*/ + RTUNI_ALPHA, /* U+00f985: CJK COMPATIBILITY IDEOGRAPH-F985*/ + RTUNI_ALPHA, /* U+00f986: CJK COMPATIBILITY IDEOGRAPH-F986*/ + RTUNI_ALPHA, /* U+00f987: CJK COMPATIBILITY IDEOGRAPH-F987*/ + RTUNI_ALPHA, /* U+00f988: CJK COMPATIBILITY IDEOGRAPH-F988*/ + RTUNI_ALPHA, /* U+00f989: CJK COMPATIBILITY IDEOGRAPH-F989*/ + RTUNI_ALPHA, /* U+00f98a: CJK COMPATIBILITY IDEOGRAPH-F98A*/ + RTUNI_ALPHA, /* U+00f98b: CJK COMPATIBILITY IDEOGRAPH-F98B*/ + RTUNI_ALPHA, /* U+00f98c: CJK COMPATIBILITY IDEOGRAPH-F98C*/ + RTUNI_ALPHA, /* U+00f98d: CJK COMPATIBILITY IDEOGRAPH-F98D*/ + RTUNI_ALPHA, /* U+00f98e: CJK COMPATIBILITY IDEOGRAPH-F98E*/ + RTUNI_ALPHA, /* U+00f98f: CJK COMPATIBILITY IDEOGRAPH-F98F*/ + RTUNI_ALPHA, /* U+00f990: CJK COMPATIBILITY IDEOGRAPH-F990*/ + RTUNI_ALPHA, /* U+00f991: CJK COMPATIBILITY IDEOGRAPH-F991*/ + RTUNI_ALPHA, /* U+00f992: CJK COMPATIBILITY IDEOGRAPH-F992*/ + RTUNI_ALPHA, /* U+00f993: CJK COMPATIBILITY IDEOGRAPH-F993*/ + RTUNI_ALPHA, /* U+00f994: CJK COMPATIBILITY IDEOGRAPH-F994*/ + RTUNI_ALPHA, /* U+00f995: CJK COMPATIBILITY IDEOGRAPH-F995*/ + RTUNI_ALPHA, /* U+00f996: CJK COMPATIBILITY IDEOGRAPH-F996*/ + RTUNI_ALPHA, /* U+00f997: CJK COMPATIBILITY IDEOGRAPH-F997*/ + RTUNI_ALPHA, /* U+00f998: CJK COMPATIBILITY IDEOGRAPH-F998*/ + RTUNI_ALPHA, /* U+00f999: CJK COMPATIBILITY IDEOGRAPH-F999*/ + RTUNI_ALPHA, /* U+00f99a: CJK COMPATIBILITY IDEOGRAPH-F99A*/ + RTUNI_ALPHA, /* U+00f99b: CJK COMPATIBILITY IDEOGRAPH-F99B*/ + RTUNI_ALPHA, /* U+00f99c: CJK COMPATIBILITY IDEOGRAPH-F99C*/ + RTUNI_ALPHA, /* U+00f99d: CJK COMPATIBILITY IDEOGRAPH-F99D*/ + RTUNI_ALPHA, /* U+00f99e: CJK COMPATIBILITY IDEOGRAPH-F99E*/ + RTUNI_ALPHA, /* U+00f99f: CJK COMPATIBILITY IDEOGRAPH-F99F*/ + RTUNI_ALPHA, /* U+00f9a0: CJK COMPATIBILITY IDEOGRAPH-F9A0*/ + RTUNI_ALPHA, /* U+00f9a1: CJK COMPATIBILITY IDEOGRAPH-F9A1*/ + RTUNI_ALPHA, /* U+00f9a2: CJK COMPATIBILITY IDEOGRAPH-F9A2*/ + RTUNI_ALPHA, /* U+00f9a3: CJK COMPATIBILITY IDEOGRAPH-F9A3*/ + RTUNI_ALPHA, /* U+00f9a4: CJK COMPATIBILITY IDEOGRAPH-F9A4*/ + RTUNI_ALPHA, /* U+00f9a5: CJK COMPATIBILITY IDEOGRAPH-F9A5*/ + RTUNI_ALPHA, /* U+00f9a6: CJK COMPATIBILITY IDEOGRAPH-F9A6*/ + RTUNI_ALPHA, /* U+00f9a7: CJK COMPATIBILITY IDEOGRAPH-F9A7*/ + RTUNI_ALPHA, /* U+00f9a8: CJK COMPATIBILITY IDEOGRAPH-F9A8*/ + RTUNI_ALPHA, /* U+00f9a9: CJK COMPATIBILITY IDEOGRAPH-F9A9*/ + RTUNI_ALPHA, /* U+00f9aa: CJK COMPATIBILITY IDEOGRAPH-F9AA*/ + RTUNI_ALPHA, /* U+00f9ab: CJK COMPATIBILITY IDEOGRAPH-F9AB*/ + RTUNI_ALPHA, /* U+00f9ac: CJK COMPATIBILITY IDEOGRAPH-F9AC*/ + RTUNI_ALPHA, /* U+00f9ad: CJK COMPATIBILITY IDEOGRAPH-F9AD*/ + RTUNI_ALPHA, /* U+00f9ae: CJK COMPATIBILITY IDEOGRAPH-F9AE*/ + RTUNI_ALPHA, /* U+00f9af: CJK COMPATIBILITY IDEOGRAPH-F9AF*/ + RTUNI_ALPHA, /* U+00f9b0: CJK COMPATIBILITY IDEOGRAPH-F9B0*/ + RTUNI_ALPHA, /* U+00f9b1: CJK COMPATIBILITY IDEOGRAPH-F9B1*/ + RTUNI_ALPHA, /* U+00f9b2: CJK COMPATIBILITY IDEOGRAPH-F9B2*/ + RTUNI_ALPHA, /* U+00f9b3: CJK COMPATIBILITY IDEOGRAPH-F9B3*/ + RTUNI_ALPHA, /* U+00f9b4: CJK COMPATIBILITY IDEOGRAPH-F9B4*/ + RTUNI_ALPHA, /* U+00f9b5: CJK COMPATIBILITY IDEOGRAPH-F9B5*/ + RTUNI_ALPHA, /* U+00f9b6: CJK COMPATIBILITY IDEOGRAPH-F9B6*/ + RTUNI_ALPHA, /* U+00f9b7: CJK COMPATIBILITY IDEOGRAPH-F9B7*/ + RTUNI_ALPHA, /* U+00f9b8: CJK COMPATIBILITY IDEOGRAPH-F9B8*/ + RTUNI_ALPHA, /* U+00f9b9: CJK COMPATIBILITY IDEOGRAPH-F9B9*/ + RTUNI_ALPHA, /* U+00f9ba: CJK COMPATIBILITY IDEOGRAPH-F9BA*/ + RTUNI_ALPHA, /* U+00f9bb: CJK COMPATIBILITY IDEOGRAPH-F9BB*/ + RTUNI_ALPHA, /* U+00f9bc: CJK COMPATIBILITY IDEOGRAPH-F9BC*/ + RTUNI_ALPHA, /* U+00f9bd: CJK COMPATIBILITY IDEOGRAPH-F9BD*/ + RTUNI_ALPHA, /* U+00f9be: CJK COMPATIBILITY IDEOGRAPH-F9BE*/ + RTUNI_ALPHA, /* U+00f9bf: CJK COMPATIBILITY IDEOGRAPH-F9BF*/ + RTUNI_ALPHA, /* U+00f9c0: CJK COMPATIBILITY IDEOGRAPH-F9C0*/ + RTUNI_ALPHA, /* U+00f9c1: CJK COMPATIBILITY IDEOGRAPH-F9C1*/ + RTUNI_ALPHA, /* U+00f9c2: CJK COMPATIBILITY IDEOGRAPH-F9C2*/ + RTUNI_ALPHA, /* U+00f9c3: CJK COMPATIBILITY IDEOGRAPH-F9C3*/ + RTUNI_ALPHA, /* U+00f9c4: CJK COMPATIBILITY IDEOGRAPH-F9C4*/ + RTUNI_ALPHA, /* U+00f9c5: CJK COMPATIBILITY IDEOGRAPH-F9C5*/ + RTUNI_ALPHA, /* U+00f9c6: CJK COMPATIBILITY IDEOGRAPH-F9C6*/ + RTUNI_ALPHA, /* U+00f9c7: CJK COMPATIBILITY IDEOGRAPH-F9C7*/ + RTUNI_ALPHA, /* U+00f9c8: CJK COMPATIBILITY IDEOGRAPH-F9C8*/ + RTUNI_ALPHA, /* U+00f9c9: CJK COMPATIBILITY IDEOGRAPH-F9C9*/ + RTUNI_ALPHA, /* U+00f9ca: CJK COMPATIBILITY IDEOGRAPH-F9CA*/ + RTUNI_ALPHA, /* U+00f9cb: CJK COMPATIBILITY IDEOGRAPH-F9CB*/ + RTUNI_ALPHA, /* U+00f9cc: CJK COMPATIBILITY IDEOGRAPH-F9CC*/ + RTUNI_ALPHA, /* U+00f9cd: CJK COMPATIBILITY IDEOGRAPH-F9CD*/ + RTUNI_ALPHA, /* U+00f9ce: CJK COMPATIBILITY IDEOGRAPH-F9CE*/ + RTUNI_ALPHA, /* U+00f9cf: CJK COMPATIBILITY IDEOGRAPH-F9CF*/ + RTUNI_ALPHA, /* U+00f9d0: CJK COMPATIBILITY IDEOGRAPH-F9D0*/ + RTUNI_ALPHA, /* U+00f9d1: CJK COMPATIBILITY IDEOGRAPH-F9D1*/ + RTUNI_ALPHA, /* U+00f9d2: CJK COMPATIBILITY IDEOGRAPH-F9D2*/ + RTUNI_ALPHA, /* U+00f9d3: CJK COMPATIBILITY IDEOGRAPH-F9D3*/ + RTUNI_ALPHA, /* U+00f9d4: CJK COMPATIBILITY IDEOGRAPH-F9D4*/ + RTUNI_ALPHA, /* U+00f9d5: CJK COMPATIBILITY IDEOGRAPH-F9D5*/ + RTUNI_ALPHA, /* U+00f9d6: CJK COMPATIBILITY IDEOGRAPH-F9D6*/ + RTUNI_ALPHA, /* U+00f9d7: CJK COMPATIBILITY IDEOGRAPH-F9D7*/ + RTUNI_ALPHA, /* U+00f9d8: CJK COMPATIBILITY IDEOGRAPH-F9D8*/ + RTUNI_ALPHA, /* U+00f9d9: CJK COMPATIBILITY IDEOGRAPH-F9D9*/ + RTUNI_ALPHA, /* U+00f9da: CJK COMPATIBILITY IDEOGRAPH-F9DA*/ + RTUNI_ALPHA, /* U+00f9db: CJK COMPATIBILITY IDEOGRAPH-F9DB*/ + RTUNI_ALPHA, /* U+00f9dc: CJK COMPATIBILITY IDEOGRAPH-F9DC*/ + RTUNI_ALPHA, /* U+00f9dd: CJK COMPATIBILITY IDEOGRAPH-F9DD*/ + RTUNI_ALPHA, /* U+00f9de: CJK COMPATIBILITY IDEOGRAPH-F9DE*/ + RTUNI_ALPHA, /* U+00f9df: CJK COMPATIBILITY IDEOGRAPH-F9DF*/ + RTUNI_ALPHA, /* U+00f9e0: CJK COMPATIBILITY IDEOGRAPH-F9E0*/ + RTUNI_ALPHA, /* U+00f9e1: CJK COMPATIBILITY IDEOGRAPH-F9E1*/ + RTUNI_ALPHA, /* U+00f9e2: CJK COMPATIBILITY IDEOGRAPH-F9E2*/ + RTUNI_ALPHA, /* U+00f9e3: CJK COMPATIBILITY IDEOGRAPH-F9E3*/ + RTUNI_ALPHA, /* U+00f9e4: CJK COMPATIBILITY IDEOGRAPH-F9E4*/ + RTUNI_ALPHA, /* U+00f9e5: CJK COMPATIBILITY IDEOGRAPH-F9E5*/ + RTUNI_ALPHA, /* U+00f9e6: CJK COMPATIBILITY IDEOGRAPH-F9E6*/ + RTUNI_ALPHA, /* U+00f9e7: CJK COMPATIBILITY IDEOGRAPH-F9E7*/ + RTUNI_ALPHA, /* U+00f9e8: CJK COMPATIBILITY IDEOGRAPH-F9E8*/ + RTUNI_ALPHA, /* U+00f9e9: CJK COMPATIBILITY IDEOGRAPH-F9E9*/ + RTUNI_ALPHA, /* U+00f9ea: CJK COMPATIBILITY IDEOGRAPH-F9EA*/ + RTUNI_ALPHA, /* U+00f9eb: CJK COMPATIBILITY IDEOGRAPH-F9EB*/ + RTUNI_ALPHA, /* U+00f9ec: CJK COMPATIBILITY IDEOGRAPH-F9EC*/ + RTUNI_ALPHA, /* U+00f9ed: CJK COMPATIBILITY IDEOGRAPH-F9ED*/ + RTUNI_ALPHA, /* U+00f9ee: CJK COMPATIBILITY IDEOGRAPH-F9EE*/ + RTUNI_ALPHA, /* U+00f9ef: CJK COMPATIBILITY IDEOGRAPH-F9EF*/ + RTUNI_ALPHA, /* U+00f9f0: CJK COMPATIBILITY IDEOGRAPH-F9F0*/ + RTUNI_ALPHA, /* U+00f9f1: CJK COMPATIBILITY IDEOGRAPH-F9F1*/ + RTUNI_ALPHA, /* U+00f9f2: CJK COMPATIBILITY IDEOGRAPH-F9F2*/ + RTUNI_ALPHA, /* U+00f9f3: CJK COMPATIBILITY IDEOGRAPH-F9F3*/ + RTUNI_ALPHA, /* U+00f9f4: CJK COMPATIBILITY IDEOGRAPH-F9F4*/ + RTUNI_ALPHA, /* U+00f9f5: CJK COMPATIBILITY IDEOGRAPH-F9F5*/ + RTUNI_ALPHA, /* U+00f9f6: CJK COMPATIBILITY IDEOGRAPH-F9F6*/ + RTUNI_ALPHA, /* U+00f9f7: CJK COMPATIBILITY IDEOGRAPH-F9F7*/ + RTUNI_ALPHA, /* U+00f9f8: CJK COMPATIBILITY IDEOGRAPH-F9F8*/ + RTUNI_ALPHA, /* U+00f9f9: CJK COMPATIBILITY IDEOGRAPH-F9F9*/ + RTUNI_ALPHA, /* U+00f9fa: CJK COMPATIBILITY IDEOGRAPH-F9FA*/ + RTUNI_ALPHA, /* U+00f9fb: CJK COMPATIBILITY IDEOGRAPH-F9FB*/ + RTUNI_ALPHA, /* U+00f9fc: CJK COMPATIBILITY IDEOGRAPH-F9FC*/ + RTUNI_ALPHA, /* U+00f9fd: CJK COMPATIBILITY IDEOGRAPH-F9FD*/ + RTUNI_ALPHA, /* U+00f9fe: CJK COMPATIBILITY IDEOGRAPH-F9FE*/ + RTUNI_ALPHA, /* U+00f9ff: CJK COMPATIBILITY IDEOGRAPH-F9FF*/ + RTUNI_ALPHA, /* U+00fa00: CJK COMPATIBILITY IDEOGRAPH-FA00*/ + RTUNI_ALPHA, /* U+00fa01: CJK COMPATIBILITY IDEOGRAPH-FA01*/ + RTUNI_ALPHA, /* U+00fa02: CJK COMPATIBILITY IDEOGRAPH-FA02*/ + RTUNI_ALPHA, /* U+00fa03: CJK COMPATIBILITY IDEOGRAPH-FA03*/ + RTUNI_ALPHA, /* U+00fa04: CJK COMPATIBILITY IDEOGRAPH-FA04*/ + RTUNI_ALPHA, /* U+00fa05: CJK COMPATIBILITY IDEOGRAPH-FA05*/ + RTUNI_ALPHA, /* U+00fa06: CJK COMPATIBILITY IDEOGRAPH-FA06*/ + RTUNI_ALPHA, /* U+00fa07: CJK COMPATIBILITY IDEOGRAPH-FA07*/ + RTUNI_ALPHA, /* U+00fa08: CJK COMPATIBILITY IDEOGRAPH-FA08*/ + RTUNI_ALPHA, /* U+00fa09: CJK COMPATIBILITY IDEOGRAPH-FA09*/ + RTUNI_ALPHA, /* U+00fa0a: CJK COMPATIBILITY IDEOGRAPH-FA0A*/ + RTUNI_ALPHA, /* U+00fa0b: CJK COMPATIBILITY IDEOGRAPH-FA0B*/ + RTUNI_ALPHA, /* U+00fa0c: CJK COMPATIBILITY IDEOGRAPH-FA0C*/ + RTUNI_ALPHA, /* U+00fa0d: CJK COMPATIBILITY IDEOGRAPH-FA0D*/ + RTUNI_ALPHA, /* U+00fa0e: CJK COMPATIBILITY IDEOGRAPH-FA0E*/ + RTUNI_ALPHA, /* U+00fa0f: CJK COMPATIBILITY IDEOGRAPH-FA0F*/ + RTUNI_ALPHA, /* U+00fa10: CJK COMPATIBILITY IDEOGRAPH-FA10*/ + RTUNI_ALPHA, /* U+00fa11: CJK COMPATIBILITY IDEOGRAPH-FA11*/ + RTUNI_ALPHA, /* U+00fa12: CJK COMPATIBILITY IDEOGRAPH-FA12*/ + RTUNI_ALPHA, /* U+00fa13: CJK COMPATIBILITY IDEOGRAPH-FA13*/ + RTUNI_ALPHA, /* U+00fa14: CJK COMPATIBILITY IDEOGRAPH-FA14*/ + RTUNI_ALPHA, /* U+00fa15: CJK COMPATIBILITY IDEOGRAPH-FA15*/ + RTUNI_ALPHA, /* U+00fa16: CJK COMPATIBILITY IDEOGRAPH-FA16*/ + RTUNI_ALPHA, /* U+00fa17: CJK COMPATIBILITY IDEOGRAPH-FA17*/ + RTUNI_ALPHA, /* U+00fa18: CJK COMPATIBILITY IDEOGRAPH-FA18*/ + RTUNI_ALPHA, /* U+00fa19: CJK COMPATIBILITY IDEOGRAPH-FA19*/ + RTUNI_ALPHA, /* U+00fa1a: CJK COMPATIBILITY IDEOGRAPH-FA1A*/ + RTUNI_ALPHA, /* U+00fa1b: CJK COMPATIBILITY IDEOGRAPH-FA1B*/ + RTUNI_ALPHA, /* U+00fa1c: CJK COMPATIBILITY IDEOGRAPH-FA1C*/ + RTUNI_ALPHA, /* U+00fa1d: CJK COMPATIBILITY IDEOGRAPH-FA1D*/ + RTUNI_ALPHA, /* U+00fa1e: CJK COMPATIBILITY IDEOGRAPH-FA1E*/ + RTUNI_ALPHA, /* U+00fa1f: CJK COMPATIBILITY IDEOGRAPH-FA1F*/ + RTUNI_ALPHA, /* U+00fa20: CJK COMPATIBILITY IDEOGRAPH-FA20*/ + RTUNI_ALPHA, /* U+00fa21: CJK COMPATIBILITY IDEOGRAPH-FA21*/ + RTUNI_ALPHA, /* U+00fa22: CJK COMPATIBILITY IDEOGRAPH-FA22*/ + RTUNI_ALPHA, /* U+00fa23: CJK COMPATIBILITY IDEOGRAPH-FA23*/ + RTUNI_ALPHA, /* U+00fa24: CJK COMPATIBILITY IDEOGRAPH-FA24*/ + RTUNI_ALPHA, /* U+00fa25: CJK COMPATIBILITY IDEOGRAPH-FA25*/ + RTUNI_ALPHA, /* U+00fa26: CJK COMPATIBILITY IDEOGRAPH-FA26*/ + RTUNI_ALPHA, /* U+00fa27: CJK COMPATIBILITY IDEOGRAPH-FA27*/ + RTUNI_ALPHA, /* U+00fa28: CJK COMPATIBILITY IDEOGRAPH-FA28*/ + RTUNI_ALPHA, /* U+00fa29: CJK COMPATIBILITY IDEOGRAPH-FA29*/ + RTUNI_ALPHA, /* U+00fa2a: CJK COMPATIBILITY IDEOGRAPH-FA2A*/ + RTUNI_ALPHA, /* U+00fa2b: CJK COMPATIBILITY IDEOGRAPH-FA2B*/ + RTUNI_ALPHA, /* U+00fa2c: CJK COMPATIBILITY IDEOGRAPH-FA2C*/ + RTUNI_ALPHA, /* U+00fa2d: CJK COMPATIBILITY IDEOGRAPH-FA2D*/ + RTUNI_ALPHA, /* U+00fa2e: CJK COMPATIBILITY IDEOGRAPH-FA2E*/ + RTUNI_ALPHA, /* U+00fa2f: CJK COMPATIBILITY IDEOGRAPH-FA2F*/ + RTUNI_ALPHA, /* U+00fa30: CJK COMPATIBILITY IDEOGRAPH-FA30*/ + RTUNI_ALPHA, /* U+00fa31: CJK COMPATIBILITY IDEOGRAPH-FA31*/ + RTUNI_ALPHA, /* U+00fa32: CJK COMPATIBILITY IDEOGRAPH-FA32*/ + RTUNI_ALPHA, /* U+00fa33: CJK COMPATIBILITY IDEOGRAPH-FA33*/ + RTUNI_ALPHA, /* U+00fa34: CJK COMPATIBILITY IDEOGRAPH-FA34*/ + RTUNI_ALPHA, /* U+00fa35: CJK COMPATIBILITY IDEOGRAPH-FA35*/ + RTUNI_ALPHA, /* U+00fa36: CJK COMPATIBILITY IDEOGRAPH-FA36*/ + RTUNI_ALPHA, /* U+00fa37: CJK COMPATIBILITY IDEOGRAPH-FA37*/ + RTUNI_ALPHA, /* U+00fa38: CJK COMPATIBILITY IDEOGRAPH-FA38*/ + RTUNI_ALPHA, /* U+00fa39: CJK COMPATIBILITY IDEOGRAPH-FA39*/ + RTUNI_ALPHA, /* U+00fa3a: CJK COMPATIBILITY IDEOGRAPH-FA3A*/ + RTUNI_ALPHA, /* U+00fa3b: CJK COMPATIBILITY IDEOGRAPH-FA3B*/ + RTUNI_ALPHA, /* U+00fa3c: CJK COMPATIBILITY IDEOGRAPH-FA3C*/ + RTUNI_ALPHA, /* U+00fa3d: CJK COMPATIBILITY IDEOGRAPH-FA3D*/ + RTUNI_ALPHA, /* U+00fa3e: CJK COMPATIBILITY IDEOGRAPH-FA3E*/ + RTUNI_ALPHA, /* U+00fa3f: CJK COMPATIBILITY IDEOGRAPH-FA3F*/ + RTUNI_ALPHA, /* U+00fa40: CJK COMPATIBILITY IDEOGRAPH-FA40*/ + RTUNI_ALPHA, /* U+00fa41: CJK COMPATIBILITY IDEOGRAPH-FA41*/ + RTUNI_ALPHA, /* U+00fa42: CJK COMPATIBILITY IDEOGRAPH-FA42*/ + RTUNI_ALPHA, /* U+00fa43: CJK COMPATIBILITY IDEOGRAPH-FA43*/ + RTUNI_ALPHA, /* U+00fa44: CJK COMPATIBILITY IDEOGRAPH-FA44*/ + RTUNI_ALPHA, /* U+00fa45: CJK COMPATIBILITY IDEOGRAPH-FA45*/ + RTUNI_ALPHA, /* U+00fa46: CJK COMPATIBILITY IDEOGRAPH-FA46*/ + RTUNI_ALPHA, /* U+00fa47: CJK COMPATIBILITY IDEOGRAPH-FA47*/ + RTUNI_ALPHA, /* U+00fa48: CJK COMPATIBILITY IDEOGRAPH-FA48*/ + RTUNI_ALPHA, /* U+00fa49: CJK COMPATIBILITY IDEOGRAPH-FA49*/ + RTUNI_ALPHA, /* U+00fa4a: CJK COMPATIBILITY IDEOGRAPH-FA4A*/ + RTUNI_ALPHA, /* U+00fa4b: CJK COMPATIBILITY IDEOGRAPH-FA4B*/ + RTUNI_ALPHA, /* U+00fa4c: CJK COMPATIBILITY IDEOGRAPH-FA4C*/ + RTUNI_ALPHA, /* U+00fa4d: CJK COMPATIBILITY IDEOGRAPH-FA4D*/ + RTUNI_ALPHA, /* U+00fa4e: CJK COMPATIBILITY IDEOGRAPH-FA4E*/ + RTUNI_ALPHA, /* U+00fa4f: CJK COMPATIBILITY IDEOGRAPH-FA4F*/ + RTUNI_ALPHA, /* U+00fa50: CJK COMPATIBILITY IDEOGRAPH-FA50*/ + RTUNI_ALPHA, /* U+00fa51: CJK COMPATIBILITY IDEOGRAPH-FA51*/ + RTUNI_ALPHA, /* U+00fa52: CJK COMPATIBILITY IDEOGRAPH-FA52*/ + RTUNI_ALPHA, /* U+00fa53: CJK COMPATIBILITY IDEOGRAPH-FA53*/ + RTUNI_ALPHA, /* U+00fa54: CJK COMPATIBILITY IDEOGRAPH-FA54*/ + RTUNI_ALPHA, /* U+00fa55: CJK COMPATIBILITY IDEOGRAPH-FA55*/ + RTUNI_ALPHA, /* U+00fa56: CJK COMPATIBILITY IDEOGRAPH-FA56*/ + RTUNI_ALPHA, /* U+00fa57: CJK COMPATIBILITY IDEOGRAPH-FA57*/ + RTUNI_ALPHA, /* U+00fa58: CJK COMPATIBILITY IDEOGRAPH-FA58*/ + RTUNI_ALPHA, /* U+00fa59: CJK COMPATIBILITY IDEOGRAPH-FA59*/ + RTUNI_ALPHA, /* U+00fa5a: CJK COMPATIBILITY IDEOGRAPH-FA5A*/ + RTUNI_ALPHA, /* U+00fa5b: CJK COMPATIBILITY IDEOGRAPH-FA5B*/ + RTUNI_ALPHA, /* U+00fa5c: CJK COMPATIBILITY IDEOGRAPH-FA5C*/ + RTUNI_ALPHA, /* U+00fa5d: CJK COMPATIBILITY IDEOGRAPH-FA5D*/ + RTUNI_ALPHA, /* U+00fa5e: CJK COMPATIBILITY IDEOGRAPH-FA5E*/ + RTUNI_ALPHA, /* U+00fa5f: CJK COMPATIBILITY IDEOGRAPH-FA5F*/ + RTUNI_ALPHA, /* U+00fa60: CJK COMPATIBILITY IDEOGRAPH-FA60*/ + RTUNI_ALPHA, /* U+00fa61: CJK COMPATIBILITY IDEOGRAPH-FA61*/ + RTUNI_ALPHA, /* U+00fa62: CJK COMPATIBILITY IDEOGRAPH-FA62*/ + RTUNI_ALPHA, /* U+00fa63: CJK COMPATIBILITY IDEOGRAPH-FA63*/ + RTUNI_ALPHA, /* U+00fa64: CJK COMPATIBILITY IDEOGRAPH-FA64*/ + RTUNI_ALPHA, /* U+00fa65: CJK COMPATIBILITY IDEOGRAPH-FA65*/ + RTUNI_ALPHA, /* U+00fa66: CJK COMPATIBILITY IDEOGRAPH-FA66*/ + RTUNI_ALPHA, /* U+00fa67: CJK COMPATIBILITY IDEOGRAPH-FA67*/ + RTUNI_ALPHA, /* U+00fa68: CJK COMPATIBILITY IDEOGRAPH-FA68*/ + RTUNI_ALPHA, /* U+00fa69: CJK COMPATIBILITY IDEOGRAPH-FA69*/ + RTUNI_ALPHA, /* U+00fa6a: CJK COMPATIBILITY IDEOGRAPH-FA6A*/ + RTUNI_ALPHA, /* U+00fa6b: CJK COMPATIBILITY IDEOGRAPH-FA6B*/ + RTUNI_ALPHA, /* U+00fa6c: CJK COMPATIBILITY IDEOGRAPH-FA6C*/ + RTUNI_ALPHA, /* U+00fa6d: CJK COMPATIBILITY IDEOGRAPH-FA6D*/ + 0, /* U+00fa6e: */ + 0, /* U+00fa6f: */ + RTUNI_ALPHA, /* U+00fa70: CJK COMPATIBILITY IDEOGRAPH-FA70*/ + RTUNI_ALPHA, /* U+00fa71: CJK COMPATIBILITY IDEOGRAPH-FA71*/ + RTUNI_ALPHA, /* U+00fa72: CJK COMPATIBILITY IDEOGRAPH-FA72*/ + RTUNI_ALPHA, /* U+00fa73: CJK COMPATIBILITY IDEOGRAPH-FA73*/ + RTUNI_ALPHA, /* U+00fa74: CJK COMPATIBILITY IDEOGRAPH-FA74*/ + RTUNI_ALPHA, /* U+00fa75: CJK COMPATIBILITY IDEOGRAPH-FA75*/ + RTUNI_ALPHA, /* U+00fa76: CJK COMPATIBILITY IDEOGRAPH-FA76*/ + RTUNI_ALPHA, /* U+00fa77: CJK COMPATIBILITY IDEOGRAPH-FA77*/ + RTUNI_ALPHA, /* U+00fa78: CJK COMPATIBILITY IDEOGRAPH-FA78*/ + RTUNI_ALPHA, /* U+00fa79: CJK COMPATIBILITY IDEOGRAPH-FA79*/ + RTUNI_ALPHA, /* U+00fa7a: CJK COMPATIBILITY IDEOGRAPH-FA7A*/ + RTUNI_ALPHA, /* U+00fa7b: CJK COMPATIBILITY IDEOGRAPH-FA7B*/ + RTUNI_ALPHA, /* U+00fa7c: CJK COMPATIBILITY IDEOGRAPH-FA7C*/ + RTUNI_ALPHA, /* U+00fa7d: CJK COMPATIBILITY IDEOGRAPH-FA7D*/ + RTUNI_ALPHA, /* U+00fa7e: CJK COMPATIBILITY IDEOGRAPH-FA7E*/ + RTUNI_ALPHA, /* U+00fa7f: CJK COMPATIBILITY IDEOGRAPH-FA7F*/ + RTUNI_ALPHA, /* U+00fa80: CJK COMPATIBILITY IDEOGRAPH-FA80*/ + RTUNI_ALPHA, /* U+00fa81: CJK COMPATIBILITY IDEOGRAPH-FA81*/ + RTUNI_ALPHA, /* U+00fa82: CJK COMPATIBILITY IDEOGRAPH-FA82*/ + RTUNI_ALPHA, /* U+00fa83: CJK COMPATIBILITY IDEOGRAPH-FA83*/ + RTUNI_ALPHA, /* U+00fa84: CJK COMPATIBILITY IDEOGRAPH-FA84*/ + RTUNI_ALPHA, /* U+00fa85: CJK COMPATIBILITY IDEOGRAPH-FA85*/ + RTUNI_ALPHA, /* U+00fa86: CJK COMPATIBILITY IDEOGRAPH-FA86*/ + RTUNI_ALPHA, /* U+00fa87: CJK COMPATIBILITY IDEOGRAPH-FA87*/ + RTUNI_ALPHA, /* U+00fa88: CJK COMPATIBILITY IDEOGRAPH-FA88*/ + RTUNI_ALPHA, /* U+00fa89: CJK COMPATIBILITY IDEOGRAPH-FA89*/ + RTUNI_ALPHA, /* U+00fa8a: CJK COMPATIBILITY IDEOGRAPH-FA8A*/ + RTUNI_ALPHA, /* U+00fa8b: CJK COMPATIBILITY IDEOGRAPH-FA8B*/ + RTUNI_ALPHA, /* U+00fa8c: CJK COMPATIBILITY IDEOGRAPH-FA8C*/ + RTUNI_ALPHA, /* U+00fa8d: CJK COMPATIBILITY IDEOGRAPH-FA8D*/ + RTUNI_ALPHA, /* U+00fa8e: CJK COMPATIBILITY IDEOGRAPH-FA8E*/ + RTUNI_ALPHA, /* U+00fa8f: CJK COMPATIBILITY IDEOGRAPH-FA8F*/ + RTUNI_ALPHA, /* U+00fa90: CJK COMPATIBILITY IDEOGRAPH-FA90*/ + RTUNI_ALPHA, /* U+00fa91: CJK COMPATIBILITY IDEOGRAPH-FA91*/ + RTUNI_ALPHA, /* U+00fa92: CJK COMPATIBILITY IDEOGRAPH-FA92*/ + RTUNI_ALPHA, /* U+00fa93: CJK COMPATIBILITY IDEOGRAPH-FA93*/ + RTUNI_ALPHA, /* U+00fa94: CJK COMPATIBILITY IDEOGRAPH-FA94*/ + RTUNI_ALPHA, /* U+00fa95: CJK COMPATIBILITY IDEOGRAPH-FA95*/ + RTUNI_ALPHA, /* U+00fa96: CJK COMPATIBILITY IDEOGRAPH-FA96*/ + RTUNI_ALPHA, /* U+00fa97: CJK COMPATIBILITY IDEOGRAPH-FA97*/ + RTUNI_ALPHA, /* U+00fa98: CJK COMPATIBILITY IDEOGRAPH-FA98*/ + RTUNI_ALPHA, /* U+00fa99: CJK COMPATIBILITY IDEOGRAPH-FA99*/ + RTUNI_ALPHA, /* U+00fa9a: CJK COMPATIBILITY IDEOGRAPH-FA9A*/ + RTUNI_ALPHA, /* U+00fa9b: CJK COMPATIBILITY IDEOGRAPH-FA9B*/ + RTUNI_ALPHA, /* U+00fa9c: CJK COMPATIBILITY IDEOGRAPH-FA9C*/ + RTUNI_ALPHA, /* U+00fa9d: CJK COMPATIBILITY IDEOGRAPH-FA9D*/ + RTUNI_ALPHA, /* U+00fa9e: CJK COMPATIBILITY IDEOGRAPH-FA9E*/ + RTUNI_ALPHA, /* U+00fa9f: CJK COMPATIBILITY IDEOGRAPH-FA9F*/ + RTUNI_ALPHA, /* U+00faa0: CJK COMPATIBILITY IDEOGRAPH-FAA0*/ + RTUNI_ALPHA, /* U+00faa1: CJK COMPATIBILITY IDEOGRAPH-FAA1*/ + RTUNI_ALPHA, /* U+00faa2: CJK COMPATIBILITY IDEOGRAPH-FAA2*/ + RTUNI_ALPHA, /* U+00faa3: CJK COMPATIBILITY IDEOGRAPH-FAA3*/ + RTUNI_ALPHA, /* U+00faa4: CJK COMPATIBILITY IDEOGRAPH-FAA4*/ + RTUNI_ALPHA, /* U+00faa5: CJK COMPATIBILITY IDEOGRAPH-FAA5*/ + RTUNI_ALPHA, /* U+00faa6: CJK COMPATIBILITY IDEOGRAPH-FAA6*/ + RTUNI_ALPHA, /* U+00faa7: CJK COMPATIBILITY IDEOGRAPH-FAA7*/ + RTUNI_ALPHA, /* U+00faa8: CJK COMPATIBILITY IDEOGRAPH-FAA8*/ + RTUNI_ALPHA, /* U+00faa9: CJK COMPATIBILITY IDEOGRAPH-FAA9*/ + RTUNI_ALPHA, /* U+00faaa: CJK COMPATIBILITY IDEOGRAPH-FAAA*/ + RTUNI_ALPHA, /* U+00faab: CJK COMPATIBILITY IDEOGRAPH-FAAB*/ + RTUNI_ALPHA, /* U+00faac: CJK COMPATIBILITY IDEOGRAPH-FAAC*/ + RTUNI_ALPHA, /* U+00faad: CJK COMPATIBILITY IDEOGRAPH-FAAD*/ + RTUNI_ALPHA, /* U+00faae: CJK COMPATIBILITY IDEOGRAPH-FAAE*/ + RTUNI_ALPHA, /* U+00faaf: CJK COMPATIBILITY IDEOGRAPH-FAAF*/ + RTUNI_ALPHA, /* U+00fab0: CJK COMPATIBILITY IDEOGRAPH-FAB0*/ + RTUNI_ALPHA, /* U+00fab1: CJK COMPATIBILITY IDEOGRAPH-FAB1*/ + RTUNI_ALPHA, /* U+00fab2: CJK COMPATIBILITY IDEOGRAPH-FAB2*/ + RTUNI_ALPHA, /* U+00fab3: CJK COMPATIBILITY IDEOGRAPH-FAB3*/ + RTUNI_ALPHA, /* U+00fab4: CJK COMPATIBILITY IDEOGRAPH-FAB4*/ + RTUNI_ALPHA, /* U+00fab5: CJK COMPATIBILITY IDEOGRAPH-FAB5*/ + RTUNI_ALPHA, /* U+00fab6: CJK COMPATIBILITY IDEOGRAPH-FAB6*/ + RTUNI_ALPHA, /* U+00fab7: CJK COMPATIBILITY IDEOGRAPH-FAB7*/ + RTUNI_ALPHA, /* U+00fab8: CJK COMPATIBILITY IDEOGRAPH-FAB8*/ + RTUNI_ALPHA, /* U+00fab9: CJK COMPATIBILITY IDEOGRAPH-FAB9*/ + RTUNI_ALPHA, /* U+00faba: CJK COMPATIBILITY IDEOGRAPH-FABA*/ + RTUNI_ALPHA, /* U+00fabb: CJK COMPATIBILITY IDEOGRAPH-FABB*/ + RTUNI_ALPHA, /* U+00fabc: CJK COMPATIBILITY IDEOGRAPH-FABC*/ + RTUNI_ALPHA, /* U+00fabd: CJK COMPATIBILITY IDEOGRAPH-FABD*/ + RTUNI_ALPHA, /* U+00fabe: CJK COMPATIBILITY IDEOGRAPH-FABE*/ + RTUNI_ALPHA, /* U+00fabf: CJK COMPATIBILITY IDEOGRAPH-FABF*/ + RTUNI_ALPHA, /* U+00fac0: CJK COMPATIBILITY IDEOGRAPH-FAC0*/ + RTUNI_ALPHA, /* U+00fac1: CJK COMPATIBILITY IDEOGRAPH-FAC1*/ + RTUNI_ALPHA, /* U+00fac2: CJK COMPATIBILITY IDEOGRAPH-FAC2*/ + RTUNI_ALPHA, /* U+00fac3: CJK COMPATIBILITY IDEOGRAPH-FAC3*/ + RTUNI_ALPHA, /* U+00fac4: CJK COMPATIBILITY IDEOGRAPH-FAC4*/ + RTUNI_ALPHA, /* U+00fac5: CJK COMPATIBILITY IDEOGRAPH-FAC5*/ + RTUNI_ALPHA, /* U+00fac6: CJK COMPATIBILITY IDEOGRAPH-FAC6*/ + RTUNI_ALPHA, /* U+00fac7: CJK COMPATIBILITY IDEOGRAPH-FAC7*/ + RTUNI_ALPHA, /* U+00fac8: CJK COMPATIBILITY IDEOGRAPH-FAC8*/ + RTUNI_ALPHA, /* U+00fac9: CJK COMPATIBILITY IDEOGRAPH-FAC9*/ + RTUNI_ALPHA, /* U+00faca: CJK COMPATIBILITY IDEOGRAPH-FACA*/ + RTUNI_ALPHA, /* U+00facb: CJK COMPATIBILITY IDEOGRAPH-FACB*/ + RTUNI_ALPHA, /* U+00facc: CJK COMPATIBILITY IDEOGRAPH-FACC*/ + RTUNI_ALPHA, /* U+00facd: CJK COMPATIBILITY IDEOGRAPH-FACD*/ + RTUNI_ALPHA, /* U+00face: CJK COMPATIBILITY IDEOGRAPH-FACE*/ + RTUNI_ALPHA, /* U+00facf: CJK COMPATIBILITY IDEOGRAPH-FACF*/ + RTUNI_ALPHA, /* U+00fad0: CJK COMPATIBILITY IDEOGRAPH-FAD0*/ + RTUNI_ALPHA, /* U+00fad1: CJK COMPATIBILITY IDEOGRAPH-FAD1*/ + RTUNI_ALPHA, /* U+00fad2: CJK COMPATIBILITY IDEOGRAPH-FAD2*/ + RTUNI_ALPHA, /* U+00fad3: CJK COMPATIBILITY IDEOGRAPH-FAD3*/ + RTUNI_ALPHA, /* U+00fad4: CJK COMPATIBILITY IDEOGRAPH-FAD4*/ + RTUNI_ALPHA, /* U+00fad5: CJK COMPATIBILITY IDEOGRAPH-FAD5*/ + RTUNI_ALPHA, /* U+00fad6: CJK COMPATIBILITY IDEOGRAPH-FAD6*/ + RTUNI_ALPHA, /* U+00fad7: CJK COMPATIBILITY IDEOGRAPH-FAD7*/ + RTUNI_ALPHA, /* U+00fad8: CJK COMPATIBILITY IDEOGRAPH-FAD8*/ + RTUNI_ALPHA, /* U+00fad9: CJK COMPATIBILITY IDEOGRAPH-FAD9*/ + 0, /* U+00fada: */ + 0, /* U+00fadb: */ + 0, /* U+00fadc: */ + 0, /* U+00fadd: */ + 0, /* U+00fade: */ + 0, /* U+00fadf: */ + 0, /* U+00fae0: */ + 0, /* U+00fae1: */ + 0, /* U+00fae2: */ + 0, /* U+00fae3: */ + 0, /* U+00fae4: */ + 0, /* U+00fae5: */ + 0, /* U+00fae6: */ + 0, /* U+00fae7: */ + 0, /* U+00fae8: */ + 0, /* U+00fae9: */ + 0, /* U+00faea: */ + 0, /* U+00faeb: */ + 0, /* U+00faec: */ + 0, /* U+00faed: */ + 0, /* U+00faee: */ + 0, /* U+00faef: */ + 0, /* U+00faf0: */ + 0, /* U+00faf1: */ + 0, /* U+00faf2: */ + 0, /* U+00faf3: */ + 0, /* U+00faf4: */ + 0, /* U+00faf5: */ + 0, /* U+00faf6: */ + 0, /* U+00faf7: */ + 0, /* U+00faf8: */ + 0, /* U+00faf9: */ + 0, /* U+00fafa: */ + 0, /* U+00fafb: */ + 0, /* U+00fafc: */ + 0, /* U+00fafd: */ + 0, /* U+00fafe: */ + 0, /* U+00faff: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb00: LATIN SMALL LIGATURE FF*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb01: LATIN SMALL LIGATURE FI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb02: LATIN SMALL LIGATURE FL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb03: LATIN SMALL LIGATURE FFI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb04: LATIN SMALL LIGATURE FFL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb05: LATIN SMALL LIGATURE LONG S T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb06: LATIN SMALL LIGATURE ST*/ + 0, /* U+00fb07: */ + 0, /* U+00fb08: */ + 0, /* U+00fb09: */ + 0, /* U+00fb0a: */ + 0, /* U+00fb0b: */ + 0, /* U+00fb0c: */ + 0, /* U+00fb0d: */ + 0, /* U+00fb0e: */ + 0, /* U+00fb0f: */ + 0, /* U+00fb10: */ + 0, /* U+00fb11: */ + 0, /* U+00fb12: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb13: ARMENIAN SMALL LIGATURE MEN NOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb14: ARMENIAN SMALL LIGATURE MEN ECH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb15: ARMENIAN SMALL LIGATURE MEN INI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb16: ARMENIAN SMALL LIGATURE VEW NOW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00fb17: ARMENIAN SMALL LIGATURE MEN XEH*/ + 0, /* U+00fb18: */ + 0, /* U+00fb19: */ + 0, /* U+00fb1a: */ + 0, /* U+00fb1b: */ + 0, /* U+00fb1c: */ + RTUNI_ALPHA, /* U+00fb1d: HEBREW LETTER YOD WITH HIRIQ*/ + RTUNI_ALPHA, /* U+00fb1e: HEBREW POINT JUDEO-SPANISH VARIKA*/ + RTUNI_ALPHA, /* U+00fb1f: HEBREW LIGATURE YIDDISH YOD YOD PATAH*/ + RTUNI_ALPHA, /* U+00fb20: HEBREW LETTER ALTERNATIVE AYIN*/ + RTUNI_ALPHA, /* U+00fb21: HEBREW LETTER WIDE ALEF*/ + RTUNI_ALPHA, /* U+00fb22: HEBREW LETTER WIDE DALET*/ + RTUNI_ALPHA, /* U+00fb23: HEBREW LETTER WIDE HE*/ + RTUNI_ALPHA, /* U+00fb24: HEBREW LETTER WIDE KAF*/ + RTUNI_ALPHA, /* U+00fb25: HEBREW LETTER WIDE LAMED*/ + RTUNI_ALPHA, /* U+00fb26: HEBREW LETTER WIDE FINAL MEM*/ + RTUNI_ALPHA, /* U+00fb27: HEBREW LETTER WIDE RESH*/ + RTUNI_ALPHA, /* U+00fb28: HEBREW LETTER WIDE TAV*/ + 0, /* U+00fb29: HEBREW LETTER ALTERNATIVE PLUS SIGN*/ + RTUNI_ALPHA, /* U+00fb2a: HEBREW LETTER SHIN WITH SHIN DOT*/ + RTUNI_ALPHA, /* U+00fb2b: HEBREW LETTER SHIN WITH SIN DOT*/ + RTUNI_ALPHA, /* U+00fb2c: HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT*/ + RTUNI_ALPHA, /* U+00fb2d: HEBREW LETTER SHIN WITH DAGESH AND SIN DOT*/ + RTUNI_ALPHA, /* U+00fb2e: HEBREW LETTER ALEF WITH PATAH*/ + RTUNI_ALPHA, /* U+00fb2f: HEBREW LETTER ALEF WITH QAMATS*/ + RTUNI_ALPHA, /* U+00fb30: HEBREW LETTER ALEF WITH MAPIQ*/ + RTUNI_ALPHA, /* U+00fb31: HEBREW LETTER BET WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb32: HEBREW LETTER GIMEL WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb33: HEBREW LETTER DALET WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb34: HEBREW LETTER HE WITH MAPIQ*/ + RTUNI_ALPHA, /* U+00fb35: HEBREW LETTER VAV WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb36: HEBREW LETTER ZAYIN WITH DAGESH*/ + 0, /* U+00fb37: */ + RTUNI_ALPHA, /* U+00fb38: HEBREW LETTER TET WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb39: HEBREW LETTER YOD WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb3a: HEBREW LETTER FINAL KAF WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb3b: HEBREW LETTER KAF WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb3c: HEBREW LETTER LAMED WITH DAGESH*/ + 0, /* U+00fb3d: */ + RTUNI_ALPHA, /* U+00fb3e: HEBREW LETTER MEM WITH DAGESH*/ + 0, /* U+00fb3f: */ + RTUNI_ALPHA, /* U+00fb40: HEBREW LETTER NUN WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb41: HEBREW LETTER SAMEKH WITH DAGESH*/ + 0, /* U+00fb42: */ + RTUNI_ALPHA, /* U+00fb43: HEBREW LETTER FINAL PE WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb44: HEBREW LETTER PE WITH DAGESH*/ + 0, /* U+00fb45: */ + RTUNI_ALPHA, /* U+00fb46: HEBREW LETTER TSADI WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb47: HEBREW LETTER QOF WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb48: HEBREW LETTER RESH WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb49: HEBREW LETTER SHIN WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb4a: HEBREW LETTER TAV WITH DAGESH*/ + RTUNI_ALPHA, /* U+00fb4b: HEBREW LETTER VAV WITH HOLAM*/ + RTUNI_ALPHA, /* U+00fb4c: HEBREW LETTER BET WITH RAFE*/ + RTUNI_ALPHA, /* U+00fb4d: HEBREW LETTER KAF WITH RAFE*/ + RTUNI_ALPHA, /* U+00fb4e: HEBREW LETTER PE WITH RAFE*/ + RTUNI_ALPHA, /* U+00fb4f: HEBREW LIGATURE ALEF LAMED*/ + RTUNI_ALPHA, /* U+00fb50: ARABIC LETTER ALEF WASLA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb51: ARABIC LETTER ALEF WASLA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb52: ARABIC LETTER BEEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb53: ARABIC LETTER BEEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb54: ARABIC LETTER BEEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb55: ARABIC LETTER BEEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb56: ARABIC LETTER PEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb57: ARABIC LETTER PEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb58: ARABIC LETTER PEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb59: ARABIC LETTER PEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb5a: ARABIC LETTER BEHEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb5b: ARABIC LETTER BEHEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb5c: ARABIC LETTER BEHEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb5d: ARABIC LETTER BEHEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb5e: ARABIC LETTER TTEHEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb5f: ARABIC LETTER TTEHEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb60: ARABIC LETTER TTEHEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb61: ARABIC LETTER TTEHEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb62: ARABIC LETTER TEHEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb63: ARABIC LETTER TEHEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb64: ARABIC LETTER TEHEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb65: ARABIC LETTER TEHEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb66: ARABIC LETTER TTEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb67: ARABIC LETTER TTEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb68: ARABIC LETTER TTEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb69: ARABIC LETTER TTEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb6a: ARABIC LETTER VEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb6b: ARABIC LETTER VEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb6c: ARABIC LETTER VEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb6d: ARABIC LETTER VEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb6e: ARABIC LETTER PEHEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb6f: ARABIC LETTER PEHEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb70: ARABIC LETTER PEHEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb71: ARABIC LETTER PEHEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb72: ARABIC LETTER DYEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb73: ARABIC LETTER DYEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb74: ARABIC LETTER DYEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb75: ARABIC LETTER DYEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb76: ARABIC LETTER NYEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb77: ARABIC LETTER NYEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb78: ARABIC LETTER NYEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb79: ARABIC LETTER NYEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb7a: ARABIC LETTER TCHEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb7b: ARABIC LETTER TCHEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb7c: ARABIC LETTER TCHEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb7d: ARABIC LETTER TCHEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb7e: ARABIC LETTER TCHEHEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb7f: ARABIC LETTER TCHEHEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb80: ARABIC LETTER TCHEHEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb81: ARABIC LETTER TCHEHEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb82: ARABIC LETTER DDAHAL ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb83: ARABIC LETTER DDAHAL FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb84: ARABIC LETTER DAHAL ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb85: ARABIC LETTER DAHAL FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb86: ARABIC LETTER DUL ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb87: ARABIC LETTER DUL FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb88: ARABIC LETTER DDAL ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb89: ARABIC LETTER DDAL FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb8a: ARABIC LETTER JEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb8b: ARABIC LETTER JEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb8c: ARABIC LETTER RREH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb8d: ARABIC LETTER RREH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb8e: ARABIC LETTER KEHEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb8f: ARABIC LETTER KEHEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb90: ARABIC LETTER KEHEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb91: ARABIC LETTER KEHEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb92: ARABIC LETTER GAF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb93: ARABIC LETTER GAF FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb94: ARABIC LETTER GAF INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb95: ARABIC LETTER GAF MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb96: ARABIC LETTER GUEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb97: ARABIC LETTER GUEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb98: ARABIC LETTER GUEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb99: ARABIC LETTER GUEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb9a: ARABIC LETTER NGOEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb9b: ARABIC LETTER NGOEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fb9c: ARABIC LETTER NGOEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fb9d: ARABIC LETTER NGOEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fb9e: ARABIC LETTER NOON GHUNNA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fb9f: ARABIC LETTER NOON GHUNNA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fba0: ARABIC LETTER RNOON ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fba1: ARABIC LETTER RNOON FINAL FORM*/ + RTUNI_ALPHA, /* U+00fba2: ARABIC LETTER RNOON INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fba3: ARABIC LETTER RNOON MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fba4: ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fba5: ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fba6: ARABIC LETTER HEH GOAL ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fba7: ARABIC LETTER HEH GOAL FINAL FORM*/ + RTUNI_ALPHA, /* U+00fba8: ARABIC LETTER HEH GOAL INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fba9: ARABIC LETTER HEH GOAL MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fbaa: ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbab: ARABIC LETTER HEH DOACHASHMEE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbac: ARABIC LETTER HEH DOACHASHMEE INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fbad: ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fbae: ARABIC LETTER YEH BARREE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbaf: ARABIC LETTER YEH BARREE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbb0: ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbb1: ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM*/ + 0, /* U+00fbb2: ARABIC SYMBOL DOT ABOVE*/ + 0, /* U+00fbb3: ARABIC SYMBOL DOT BELOW*/ + 0, /* U+00fbb4: ARABIC SYMBOL TWO DOTS ABOVE*/ + 0, /* U+00fbb5: ARABIC SYMBOL TWO DOTS BELOW*/ + 0, /* U+00fbb6: ARABIC SYMBOL THREE DOTS ABOVE*/ + 0, /* U+00fbb7: ARABIC SYMBOL THREE DOTS BELOW*/ + 0, /* U+00fbb8: ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS ABOVE*/ + 0, /* U+00fbb9: ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS BELOW*/ + 0, /* U+00fbba: ARABIC SYMBOL FOUR DOTS ABOVE*/ + 0, /* U+00fbbb: ARABIC SYMBOL FOUR DOTS BELOW*/ + 0, /* U+00fbbc: ARABIC SYMBOL DOUBLE VERTICAL BAR BELOW*/ + 0, /* U+00fbbd: ARABIC SYMBOL TWO DOTS VERTICALLY ABOVE*/ + 0, /* U+00fbbe: ARABIC SYMBOL TWO DOTS VERTICALLY BELOW*/ + 0, /* U+00fbbf: ARABIC SYMBOL RING*/ + 0, /* U+00fbc0: ARABIC SYMBOL SMALL TAH ABOVE*/ + 0, /* U+00fbc1: ARABIC SYMBOL SMALL TAH BELOW*/ + 0, /* U+00fbc2: */ + 0, /* U+00fbc3: */ + 0, /* U+00fbc4: */ + 0, /* U+00fbc5: */ + 0, /* U+00fbc6: */ + 0, /* U+00fbc7: */ + 0, /* U+00fbc8: */ + 0, /* U+00fbc9: */ + 0, /* U+00fbca: */ + 0, /* U+00fbcb: */ + 0, /* U+00fbcc: */ + 0, /* U+00fbcd: */ + 0, /* U+00fbce: */ + 0, /* U+00fbcf: */ + 0, /* U+00fbd0: */ + 0, /* U+00fbd1: */ + 0, /* U+00fbd2: */ + RTUNI_ALPHA, /* U+00fbd3: ARABIC LETTER NG ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbd4: ARABIC LETTER NG FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbd5: ARABIC LETTER NG INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fbd6: ARABIC LETTER NG MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fbd7: ARABIC LETTER U ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbd8: ARABIC LETTER U FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbd9: ARABIC LETTER OE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbda: ARABIC LETTER OE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbdb: ARABIC LETTER YU ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbdc: ARABIC LETTER YU FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbdd: ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbde: ARABIC LETTER VE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbdf: ARABIC LETTER VE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbe0: ARABIC LETTER KIRGHIZ OE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbe1: ARABIC LETTER KIRGHIZ OE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbe2: ARABIC LETTER KIRGHIZ YU ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbe3: ARABIC LETTER KIRGHIZ YU FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbe4: ARABIC LETTER E ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbe5: ARABIC LETTER E FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbe6: ARABIC LETTER E INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fbe7: ARABIC LETTER E MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fbe8: ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fbe9: ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fbea: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbeb: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbec: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbed: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbee: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbef: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbf0: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbf1: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbf2: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbf3: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbf4: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbf5: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbf6: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbf7: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbf8: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fbf9: ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbfa: ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbfb: ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fbfc: ARABIC LETTER FARSI YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fbfd: ARABIC LETTER FARSI YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fbfe: ARABIC LETTER FARSI YEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fbff: ARABIC LETTER FARSI YEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fc00: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc01: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc02: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc03: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc04: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc05: ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc06: ARABIC LIGATURE BEH WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc07: ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc08: ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc09: ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc0a: ARABIC LIGATURE BEH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc0b: ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc0c: ARABIC LIGATURE TEH WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc0d: ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc0e: ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc0f: ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc10: ARABIC LIGATURE TEH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc11: ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc12: ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc13: ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc14: ARABIC LIGATURE THEH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc15: ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc16: ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc17: ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc18: ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc19: ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc1a: ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc1b: ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc1c: ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc1d: ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc1e: ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc1f: ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc20: ARABIC LIGATURE SAD WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc21: ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc22: ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc23: ARABIC LIGATURE DAD WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc24: ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc25: ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc26: ARABIC LIGATURE TAH WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc27: ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc28: ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc29: ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc2a: ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc2b: ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc2c: ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc2d: ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc2e: ARABIC LIGATURE FEH WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc2f: ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc30: ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc31: ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc32: ARABIC LIGATURE FEH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc33: ARABIC LIGATURE QAF WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc34: ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc35: ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc36: ARABIC LIGATURE QAF WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc37: ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc38: ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc39: ARABIC LIGATURE KAF WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc3a: ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc3b: ARABIC LIGATURE KAF WITH LAM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc3c: ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc3d: ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc3e: ARABIC LIGATURE KAF WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc3f: ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc40: ARABIC LIGATURE LAM WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc41: ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc42: ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc43: ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc44: ARABIC LIGATURE LAM WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc45: ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc46: ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc47: ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc48: ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc49: ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc4a: ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc4b: ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc4c: ARABIC LIGATURE NOON WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc4d: ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc4e: ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc4f: ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc50: ARABIC LIGATURE NOON WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc51: ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc52: ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc53: ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc54: ARABIC LIGATURE HEH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc55: ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc56: ARABIC LIGATURE YEH WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc57: ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc58: ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc59: ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc5a: ARABIC LIGATURE YEH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc5b: ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc5c: ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc5d: ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc5e: ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc5f: ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc60: ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc61: ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc62: ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc63: ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fc64: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc65: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc66: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc67: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc68: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc69: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc6a: ARABIC LIGATURE BEH WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc6b: ARABIC LIGATURE BEH WITH ZAIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc6c: ARABIC LIGATURE BEH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc6d: ARABIC LIGATURE BEH WITH NOON FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc6e: ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc6f: ARABIC LIGATURE BEH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc70: ARABIC LIGATURE TEH WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc71: ARABIC LIGATURE TEH WITH ZAIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc72: ARABIC LIGATURE TEH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc73: ARABIC LIGATURE TEH WITH NOON FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc74: ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc75: ARABIC LIGATURE TEH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc76: ARABIC LIGATURE THEH WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc77: ARABIC LIGATURE THEH WITH ZAIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc78: ARABIC LIGATURE THEH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc79: ARABIC LIGATURE THEH WITH NOON FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc7a: ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc7b: ARABIC LIGATURE THEH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc7c: ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc7d: ARABIC LIGATURE FEH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc7e: ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc7f: ARABIC LIGATURE QAF WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc80: ARABIC LIGATURE KAF WITH ALEF FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc81: ARABIC LIGATURE KAF WITH LAM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc82: ARABIC LIGATURE KAF WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc83: ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc84: ARABIC LIGATURE KAF WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc85: ARABIC LIGATURE LAM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc86: ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc87: ARABIC LIGATURE LAM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc88: ARABIC LIGATURE MEEM WITH ALEF FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc89: ARABIC LIGATURE MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc8a: ARABIC LIGATURE NOON WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc8b: ARABIC LIGATURE NOON WITH ZAIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc8c: ARABIC LIGATURE NOON WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc8d: ARABIC LIGATURE NOON WITH NOON FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc8e: ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc8f: ARABIC LIGATURE NOON WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc90: ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc91: ARABIC LIGATURE YEH WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc92: ARABIC LIGATURE YEH WITH ZAIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc93: ARABIC LIGATURE YEH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc94: ARABIC LIGATURE YEH WITH NOON FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc95: ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc96: ARABIC LIGATURE YEH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fc97: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fc98: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fc99: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fc9a: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fc9b: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fc9c: ARABIC LIGATURE BEH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fc9d: ARABIC LIGATURE BEH WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fc9e: ARABIC LIGATURE BEH WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fc9f: ARABIC LIGATURE BEH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca0: ARABIC LIGATURE BEH WITH HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca1: ARABIC LIGATURE TEH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca2: ARABIC LIGATURE TEH WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca3: ARABIC LIGATURE TEH WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca4: ARABIC LIGATURE TEH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca5: ARABIC LIGATURE TEH WITH HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca6: ARABIC LIGATURE THEH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca7: ARABIC LIGATURE JEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca8: ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fca9: ARABIC LIGATURE HAH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcaa: ARABIC LIGATURE HAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcab: ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcac: ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcad: ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcae: ARABIC LIGATURE SEEN WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcaf: ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb0: ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb1: ARABIC LIGATURE SAD WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb2: ARABIC LIGATURE SAD WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb3: ARABIC LIGATURE SAD WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb4: ARABIC LIGATURE DAD WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb5: ARABIC LIGATURE DAD WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb6: ARABIC LIGATURE DAD WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb7: ARABIC LIGATURE DAD WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb8: ARABIC LIGATURE TAH WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcb9: ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcba: ARABIC LIGATURE AIN WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcbb: ARABIC LIGATURE AIN WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcbc: ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcbd: ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcbe: ARABIC LIGATURE FEH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcbf: ARABIC LIGATURE FEH WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc0: ARABIC LIGATURE FEH WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc1: ARABIC LIGATURE FEH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc2: ARABIC LIGATURE QAF WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc3: ARABIC LIGATURE QAF WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc4: ARABIC LIGATURE KAF WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc5: ARABIC LIGATURE KAF WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc6: ARABIC LIGATURE KAF WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc7: ARABIC LIGATURE KAF WITH LAM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc8: ARABIC LIGATURE KAF WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcc9: ARABIC LIGATURE LAM WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcca: ARABIC LIGATURE LAM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fccb: ARABIC LIGATURE LAM WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fccc: ARABIC LIGATURE LAM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fccd: ARABIC LIGATURE LAM WITH HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcce: ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fccf: ARABIC LIGATURE MEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd0: ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd1: ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd2: ARABIC LIGATURE NOON WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd3: ARABIC LIGATURE NOON WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd4: ARABIC LIGATURE NOON WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd5: ARABIC LIGATURE NOON WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd6: ARABIC LIGATURE NOON WITH HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd7: ARABIC LIGATURE HEH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd8: ARABIC LIGATURE HEH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcd9: ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcda: ARABIC LIGATURE YEH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcdb: ARABIC LIGATURE YEH WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcdc: ARABIC LIGATURE YEH WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcdd: ARABIC LIGATURE YEH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcde: ARABIC LIGATURE YEH WITH HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fcdf: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce0: ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce1: ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce2: ARABIC LIGATURE BEH WITH HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce3: ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce4: ARABIC LIGATURE TEH WITH HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce5: ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce6: ARABIC LIGATURE THEH WITH HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce7: ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce8: ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fce9: ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcea: ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fceb: ARABIC LIGATURE KAF WITH LAM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcec: ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fced: ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcee: ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcef: ARABIC LIGATURE NOON WITH HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcf0: ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcf1: ARABIC LIGATURE YEH WITH HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcf2: ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcf3: ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcf4: ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fcf5: ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcf6: ARABIC LIGATURE TAH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcf7: ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcf8: ARABIC LIGATURE AIN WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcf9: ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcfa: ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcfb: ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcfc: ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcfd: ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcfe: ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fcff: ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd00: ARABIC LIGATURE HAH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd01: ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd02: ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd03: ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd04: ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd05: ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd06: ARABIC LIGATURE SAD WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd07: ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd08: ARABIC LIGATURE DAD WITH YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd09: ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd0a: ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd0b: ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd0c: ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd0d: ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd0e: ARABIC LIGATURE SEEN WITH REH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd0f: ARABIC LIGATURE SAD WITH REH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd10: ARABIC LIGATURE DAD WITH REH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fd11: ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd12: ARABIC LIGATURE TAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd13: ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd14: ARABIC LIGATURE AIN WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd15: ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd16: ARABIC LIGATURE GHAIN WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd17: ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd18: ARABIC LIGATURE SEEN WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd19: ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd1a: ARABIC LIGATURE SHEEN WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd1b: ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd1c: ARABIC LIGATURE HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd1d: ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd1e: ARABIC LIGATURE JEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd1f: ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd20: ARABIC LIGATURE KHAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd21: ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd22: ARABIC LIGATURE SAD WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd23: ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd24: ARABIC LIGATURE DAD WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd25: ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd26: ARABIC LIGATURE SHEEN WITH HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd27: ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd28: ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd29: ARABIC LIGATURE SHEEN WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd2a: ARABIC LIGATURE SEEN WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd2b: ARABIC LIGATURE SAD WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd2c: ARABIC LIGATURE DAD WITH REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd2d: ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd2e: ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd2f: ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd30: ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd31: ARABIC LIGATURE SEEN WITH HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd32: ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd33: ARABIC LIGATURE TAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd34: ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fd35: ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fd36: ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fd37: ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fd38: ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fd39: ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fd3a: ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fd3b: ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fd3c: ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd3d: ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM*/ + 0, /* U+00fd3e: ORNATE LEFT PARENTHESIS*/ + 0, /* U+00fd3f: ORNATE RIGHT PARENTHESIS*/ + 0, /* U+00fd40: */ + 0, /* U+00fd41: */ + 0, /* U+00fd42: */ + 0, /* U+00fd43: */ + 0, /* U+00fd44: */ + 0, /* U+00fd45: */ + 0, /* U+00fd46: */ + 0, /* U+00fd47: */ + 0, /* U+00fd48: */ + 0, /* U+00fd49: */ + 0, /* U+00fd4a: */ + 0, /* U+00fd4b: */ + 0, /* U+00fd4c: */ + 0, /* U+00fd4d: */ + 0, /* U+00fd4e: */ + 0, /* U+00fd4f: */ + RTUNI_ALPHA, /* U+00fd50: ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd51: ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd52: ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd53: ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd54: ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd55: ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd56: ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd57: ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd58: ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd59: ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd5a: ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd5b: ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd5c: ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd5d: ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd5e: ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd5f: ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd60: ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd61: ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd62: ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd63: ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd64: ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd65: ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd66: ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd67: ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd68: ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd69: ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd6a: ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd6b: ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd6c: ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd6d: ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd6e: ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd6f: ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd70: ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd71: ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd72: ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd73: ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd74: ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd75: ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd76: ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd77: ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd78: ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd79: ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd7a: ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd7b: ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd7c: ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd7d: ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd7e: ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd7f: ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd80: ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd81: ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd82: ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd83: ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd84: ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd85: ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd86: ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd87: ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd88: ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd89: ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd8a: ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd8b: ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd8c: ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd8d: ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd8e: ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd8f: ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM*/ + 0, /* U+00fd90: */ + 0, /* U+00fd91: */ + RTUNI_ALPHA, /* U+00fd92: ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd93: ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd94: ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd95: ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd96: ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd97: ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd98: ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd99: ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd9a: ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd9b: ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd9c: ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd9d: ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fd9e: ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fd9f: ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda0: ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda1: ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda2: ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda3: ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda4: ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda5: ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda6: ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda7: ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda8: ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fda9: ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdaa: ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdab: ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdac: ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdad: ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdae: ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdaf: ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdb0: ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdb1: ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdb2: ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdb3: ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdb4: ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fdb5: ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fdb6: ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdb7: ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdb8: ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fdb9: ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdba: ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fdbb: ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdbc: ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdbd: ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdbe: ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdbf: ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdc0: ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdc1: ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdc2: ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdc3: ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fdc4: ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fdc5: ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fdc6: ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fdc7: ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM*/ + 0, /* U+00fdc8: */ + 0, /* U+00fdc9: */ + 0, /* U+00fdca: */ + 0, /* U+00fdcb: */ + 0, /* U+00fdcc: */ + 0, /* U+00fdcd: */ + 0, /* U+00fdce: */ + 0, /* U+00fdcf: */ + 0, /* U+00fdd0: */ + 0, /* U+00fdd1: */ + 0, /* U+00fdd2: */ + 0, /* U+00fdd3: */ + 0, /* U+00fdd4: */ + 0, /* U+00fdd5: */ + 0, /* U+00fdd6: */ + 0, /* U+00fdd7: */ + 0, /* U+00fdd8: */ + 0, /* U+00fdd9: */ + 0, /* U+00fdda: */ + 0, /* U+00fddb: */ + 0, /* U+00fddc: */ + 0, /* U+00fddd: */ + 0, /* U+00fdde: */ + 0, /* U+00fddf: */ + 0, /* U+00fde0: */ + 0, /* U+00fde1: */ + 0, /* U+00fde2: */ + 0, /* U+00fde3: */ + 0, /* U+00fde4: */ + 0, /* U+00fde5: */ + 0, /* U+00fde6: */ + 0, /* U+00fde7: */ + 0, /* U+00fde8: */ + 0, /* U+00fde9: */ + 0, /* U+00fdea: */ + 0, /* U+00fdeb: */ + 0, /* U+00fdec: */ + 0, /* U+00fded: */ + 0, /* U+00fdee: */ + 0, /* U+00fdef: */ + RTUNI_ALPHA, /* U+00fdf0: ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf1: ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf2: ARABIC LIGATURE ALLAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf3: ARABIC LIGATURE AKBAR ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf4: ARABIC LIGATURE MOHAMMAD ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf5: ARABIC LIGATURE SALAM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf6: ARABIC LIGATURE RASOUL ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf7: ARABIC LIGATURE ALAYHE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf8: ARABIC LIGATURE WASALLAM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdf9: ARABIC LIGATURE SALLA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fdfa: ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM*/ + RTUNI_ALPHA, /* U+00fdfb: ARABIC LIGATURE JALLAJALALOUHOU*/ + 0, /* U+00fdfc: RIAL SIGN*/ + 0, /* U+00fdfd: ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM*/ + 0, /* U+00fdfe: */ + 0, /* U+00fdff: */ + 0, /* U+00fe00: VARIATION SELECTOR-1*/ + 0, /* U+00fe01: VARIATION SELECTOR-2*/ + 0, /* U+00fe02: VARIATION SELECTOR-3*/ + 0, /* U+00fe03: VARIATION SELECTOR-4*/ + 0, /* U+00fe04: VARIATION SELECTOR-5*/ + 0, /* U+00fe05: VARIATION SELECTOR-6*/ + 0, /* U+00fe06: VARIATION SELECTOR-7*/ + 0, /* U+00fe07: VARIATION SELECTOR-8*/ + 0, /* U+00fe08: VARIATION SELECTOR-9*/ + 0, /* U+00fe09: VARIATION SELECTOR-10*/ + 0, /* U+00fe0a: VARIATION SELECTOR-11*/ + 0, /* U+00fe0b: VARIATION SELECTOR-12*/ + 0, /* U+00fe0c: VARIATION SELECTOR-13*/ + 0, /* U+00fe0d: VARIATION SELECTOR-14*/ + 0, /* U+00fe0e: VARIATION SELECTOR-15*/ + 0, /* U+00fe0f: VARIATION SELECTOR-16*/ + 0, /* U+00fe10: PRESENTATION FORM FOR VERTICAL COMMA*/ + 0, /* U+00fe11: PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA*/ + 0, /* U+00fe12: PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP*/ + 0, /* U+00fe13: PRESENTATION FORM FOR VERTICAL COLON*/ + 0, /* U+00fe14: PRESENTATION FORM FOR VERTICAL SEMICOLON*/ + 0, /* U+00fe15: PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK*/ + 0, /* U+00fe16: PRESENTATION FORM FOR VERTICAL QUESTION MARK*/ + 0, /* U+00fe17: PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET*/ + 0, /* U+00fe18: PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET*/ + 0, /* U+00fe19: PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS*/ + 0, /* U+00fe1a: */ + 0, /* U+00fe1b: */ + 0, /* U+00fe1c: */ + 0, /* U+00fe1d: */ + 0, /* U+00fe1e: */ + 0, /* U+00fe1f: */ + 0, /* U+00fe20: COMBINING LIGATURE LEFT HALF*/ + 0, /* U+00fe21: COMBINING LIGATURE RIGHT HALF*/ + 0, /* U+00fe22: COMBINING DOUBLE TILDE LEFT HALF*/ + 0, /* U+00fe23: COMBINING DOUBLE TILDE RIGHT HALF*/ + 0, /* U+00fe24: COMBINING MACRON LEFT HALF*/ + 0, /* U+00fe25: COMBINING MACRON RIGHT HALF*/ + 0, /* U+00fe26: COMBINING CONJOINING MACRON*/ + 0, /* U+00fe27: */ + 0, /* U+00fe28: */ + 0, /* U+00fe29: */ + 0, /* U+00fe2a: */ + 0, /* U+00fe2b: */ + 0, /* U+00fe2c: */ + 0, /* U+00fe2d: */ + 0, /* U+00fe2e: */ + 0, /* U+00fe2f: */ + 0, /* U+00fe30: PRESENTATION FORM FOR VERTICAL TWO DOT LEADER*/ + 0, /* U+00fe31: PRESENTATION FORM FOR VERTICAL EM DASH*/ + 0, /* U+00fe32: PRESENTATION FORM FOR VERTICAL EN DASH*/ + 0, /* U+00fe33: PRESENTATION FORM FOR VERTICAL LOW LINE*/ + 0, /* U+00fe34: PRESENTATION FORM FOR VERTICAL WAVY LOW LINE*/ + 0, /* U+00fe35: PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS*/ + 0, /* U+00fe36: PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS*/ + 0, /* U+00fe37: PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET*/ + 0, /* U+00fe38: PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET*/ + 0, /* U+00fe39: PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET*/ + 0, /* U+00fe3a: PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET*/ + 0, /* U+00fe3b: PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET*/ + 0, /* U+00fe3c: PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET*/ + 0, /* U+00fe3d: PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET*/ + 0, /* U+00fe3e: PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET*/ + 0, /* U+00fe3f: PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET*/ + 0, /* U+00fe40: PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET*/ + 0, /* U+00fe41: PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET*/ + 0, /* U+00fe42: PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET*/ + 0, /* U+00fe43: PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET*/ + 0, /* U+00fe44: PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET*/ + 0, /* U+00fe45: SESAME DOT*/ + 0, /* U+00fe46: WHITE SESAME DOT*/ + 0, /* U+00fe47: PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET*/ + 0, /* U+00fe48: PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET*/ + 0, /* U+00fe49: DASHED OVERLINE*/ + 0, /* U+00fe4a: CENTRELINE OVERLINE*/ + 0, /* U+00fe4b: WAVY OVERLINE*/ + 0, /* U+00fe4c: DOUBLE WAVY OVERLINE*/ + 0, /* U+00fe4d: DASHED LOW LINE*/ + 0, /* U+00fe4e: CENTRELINE LOW LINE*/ + 0, /* U+00fe4f: WAVY LOW LINE*/ + 0, /* U+00fe50: SMALL COMMA*/ + 0, /* U+00fe51: SMALL IDEOGRAPHIC COMMA*/ + 0, /* U+00fe52: SMALL FULL STOP*/ + 0, /* U+00fe53: */ + 0, /* U+00fe54: SMALL SEMICOLON*/ + 0, /* U+00fe55: SMALL COLON*/ + 0, /* U+00fe56: SMALL QUESTION MARK*/ + 0, /* U+00fe57: SMALL EXCLAMATION MARK*/ + 0, /* U+00fe58: SMALL EM DASH*/ + 0, /* U+00fe59: SMALL LEFT PARENTHESIS*/ + 0, /* U+00fe5a: SMALL RIGHT PARENTHESIS*/ + 0, /* U+00fe5b: SMALL LEFT CURLY BRACKET*/ + 0, /* U+00fe5c: SMALL RIGHT CURLY BRACKET*/ + 0, /* U+00fe5d: SMALL LEFT TORTOISE SHELL BRACKET*/ + 0, /* U+00fe5e: SMALL RIGHT TORTOISE SHELL BRACKET*/ + 0, /* U+00fe5f: SMALL NUMBER SIGN*/ + 0, /* U+00fe60: SMALL AMPERSAND*/ + 0, /* U+00fe61: SMALL ASTERISK*/ + 0, /* U+00fe62: SMALL PLUS SIGN*/ + 0, /* U+00fe63: SMALL HYPHEN-MINUS*/ + 0, /* U+00fe64: SMALL LESS-THAN SIGN*/ + 0, /* U+00fe65: SMALL GREATER-THAN SIGN*/ + 0, /* U+00fe66: SMALL EQUALS SIGN*/ + 0, /* U+00fe67: */ + 0, /* U+00fe68: SMALL REVERSE SOLIDUS*/ + 0, /* U+00fe69: SMALL DOLLAR SIGN*/ + 0, /* U+00fe6a: SMALL PERCENT SIGN*/ + 0, /* U+00fe6b: SMALL COMMERCIAL AT*/ + 0, /* U+00fe6c: */ + 0, /* U+00fe6d: */ + 0, /* U+00fe6e: */ + 0, /* U+00fe6f: */ + RTUNI_ALPHA, /* U+00fe70: ARABIC FATHATAN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe71: ARABIC TATWEEL WITH FATHATAN ABOVE*/ + RTUNI_ALPHA, /* U+00fe72: ARABIC DAMMATAN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe73: ARABIC TAIL FRAGMENT*/ + RTUNI_ALPHA, /* U+00fe74: ARABIC KASRATAN ISOLATED FORM*/ + 0, /* U+00fe75: */ + RTUNI_ALPHA, /* U+00fe76: ARABIC FATHA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe77: ARABIC FATHA MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe78: ARABIC DAMMA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe79: ARABIC DAMMA MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe7a: ARABIC KASRA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe7b: ARABIC KASRA MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe7c: ARABIC SHADDA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe7d: ARABIC SHADDA MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe7e: ARABIC SUKUN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe7f: ARABIC SUKUN MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe80: ARABIC LETTER HAMZA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe81: ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe82: ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe83: ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe84: ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe85: ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe86: ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe87: ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe88: ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe89: ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe8a: ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe8b: ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fe8c: ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe8d: ARABIC LETTER ALEF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe8e: ARABIC LETTER ALEF FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe8f: ARABIC LETTER BEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe90: ARABIC LETTER BEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe91: ARABIC LETTER BEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fe92: ARABIC LETTER BEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe93: ARABIC LETTER TEH MARBUTA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe94: ARABIC LETTER TEH MARBUTA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe95: ARABIC LETTER TEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe96: ARABIC LETTER TEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe97: ARABIC LETTER TEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fe98: ARABIC LETTER TEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe99: ARABIC LETTER THEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe9a: ARABIC LETTER THEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe9b: ARABIC LETTER THEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fe9c: ARABIC LETTER THEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fe9d: ARABIC LETTER JEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fe9e: ARABIC LETTER JEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fe9f: ARABIC LETTER JEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fea0: ARABIC LETTER JEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fea1: ARABIC LETTER HAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fea2: ARABIC LETTER HAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fea3: ARABIC LETTER HAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fea4: ARABIC LETTER HAH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fea5: ARABIC LETTER KHAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fea6: ARABIC LETTER KHAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fea7: ARABIC LETTER KHAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fea8: ARABIC LETTER KHAH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fea9: ARABIC LETTER DAL ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feaa: ARABIC LETTER DAL FINAL FORM*/ + RTUNI_ALPHA, /* U+00feab: ARABIC LETTER THAL ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feac: ARABIC LETTER THAL FINAL FORM*/ + RTUNI_ALPHA, /* U+00fead: ARABIC LETTER REH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feae: ARABIC LETTER REH FINAL FORM*/ + RTUNI_ALPHA, /* U+00feaf: ARABIC LETTER ZAIN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feb0: ARABIC LETTER ZAIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00feb1: ARABIC LETTER SEEN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feb2: ARABIC LETTER SEEN FINAL FORM*/ + RTUNI_ALPHA, /* U+00feb3: ARABIC LETTER SEEN INITIAL FORM*/ + RTUNI_ALPHA, /* U+00feb4: ARABIC LETTER SEEN MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00feb5: ARABIC LETTER SHEEN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feb6: ARABIC LETTER SHEEN FINAL FORM*/ + RTUNI_ALPHA, /* U+00feb7: ARABIC LETTER SHEEN INITIAL FORM*/ + RTUNI_ALPHA, /* U+00feb8: ARABIC LETTER SHEEN MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00feb9: ARABIC LETTER SAD ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feba: ARABIC LETTER SAD FINAL FORM*/ + RTUNI_ALPHA, /* U+00febb: ARABIC LETTER SAD INITIAL FORM*/ + RTUNI_ALPHA, /* U+00febc: ARABIC LETTER SAD MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00febd: ARABIC LETTER DAD ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00febe: ARABIC LETTER DAD FINAL FORM*/ + RTUNI_ALPHA, /* U+00febf: ARABIC LETTER DAD INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fec0: ARABIC LETTER DAD MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fec1: ARABIC LETTER TAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fec2: ARABIC LETTER TAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fec3: ARABIC LETTER TAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fec4: ARABIC LETTER TAH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fec5: ARABIC LETTER ZAH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fec6: ARABIC LETTER ZAH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fec7: ARABIC LETTER ZAH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fec8: ARABIC LETTER ZAH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fec9: ARABIC LETTER AIN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feca: ARABIC LETTER AIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fecb: ARABIC LETTER AIN INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fecc: ARABIC LETTER AIN MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fecd: ARABIC LETTER GHAIN ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fece: ARABIC LETTER GHAIN FINAL FORM*/ + RTUNI_ALPHA, /* U+00fecf: ARABIC LETTER GHAIN INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fed0: ARABIC LETTER GHAIN MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fed1: ARABIC LETTER FEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fed2: ARABIC LETTER FEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fed3: ARABIC LETTER FEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fed4: ARABIC LETTER FEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fed5: ARABIC LETTER QAF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fed6: ARABIC LETTER QAF FINAL FORM*/ + RTUNI_ALPHA, /* U+00fed7: ARABIC LETTER QAF INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fed8: ARABIC LETTER QAF MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fed9: ARABIC LETTER KAF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feda: ARABIC LETTER KAF FINAL FORM*/ + RTUNI_ALPHA, /* U+00fedb: ARABIC LETTER KAF INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fedc: ARABIC LETTER KAF MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fedd: ARABIC LETTER LAM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fede: ARABIC LETTER LAM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fedf: ARABIC LETTER LAM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fee0: ARABIC LETTER LAM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fee1: ARABIC LETTER MEEM ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fee2: ARABIC LETTER MEEM FINAL FORM*/ + RTUNI_ALPHA, /* U+00fee3: ARABIC LETTER MEEM INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fee4: ARABIC LETTER MEEM MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fee5: ARABIC LETTER NOON ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fee6: ARABIC LETTER NOON FINAL FORM*/ + RTUNI_ALPHA, /* U+00fee7: ARABIC LETTER NOON INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fee8: ARABIC LETTER NOON MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fee9: ARABIC LETTER HEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feea: ARABIC LETTER HEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00feeb: ARABIC LETTER HEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00feec: ARABIC LETTER HEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00feed: ARABIC LETTER WAW ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00feee: ARABIC LETTER WAW FINAL FORM*/ + RTUNI_ALPHA, /* U+00feef: ARABIC LETTER ALEF MAKSURA ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fef0: ARABIC LETTER ALEF MAKSURA FINAL FORM*/ + RTUNI_ALPHA, /* U+00fef1: ARABIC LETTER YEH ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fef2: ARABIC LETTER YEH FINAL FORM*/ + RTUNI_ALPHA, /* U+00fef3: ARABIC LETTER YEH INITIAL FORM*/ + RTUNI_ALPHA, /* U+00fef4: ARABIC LETTER YEH MEDIAL FORM*/ + RTUNI_ALPHA, /* U+00fef5: ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fef6: ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fef7: ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fef8: ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM*/ + RTUNI_ALPHA, /* U+00fef9: ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fefa: ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM*/ + RTUNI_ALPHA, /* U+00fefb: ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM*/ + RTUNI_ALPHA, /* U+00fefc: ARABIC LIGATURE LAM WITH ALEF FINAL FORM*/ + 0, /* U+00fefd: */ + 0, /* U+00fefe: */ + 0, /* U+00feff: ZERO WIDTH NO-BREAK SPACE*/ + 0, /* U+00ff00: */ + 0, /* U+00ff01: FULLWIDTH EXCLAMATION MARK*/ + 0, /* U+00ff02: FULLWIDTH QUOTATION MARK*/ + 0, /* U+00ff03: FULLWIDTH NUMBER SIGN*/ + 0, /* U+00ff04: FULLWIDTH DOLLAR SIGN*/ + 0, /* U+00ff05: FULLWIDTH PERCENT SIGN*/ + 0, /* U+00ff06: FULLWIDTH AMPERSAND*/ + 0, /* U+00ff07: FULLWIDTH APOSTROPHE*/ + 0, /* U+00ff08: FULLWIDTH LEFT PARENTHESIS*/ + 0, /* U+00ff09: FULLWIDTH RIGHT PARENTHESIS*/ + 0, /* U+00ff0a: FULLWIDTH ASTERISK*/ + 0, /* U+00ff0b: FULLWIDTH PLUS SIGN*/ + 0, /* U+00ff0c: FULLWIDTH COMMA*/ + 0, /* U+00ff0d: FULLWIDTH HYPHEN-MINUS*/ + 0, /* U+00ff0e: FULLWIDTH FULL STOP*/ + 0, /* U+00ff0f: FULLWIDTH SOLIDUS*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff10: FULLWIDTH DIGIT ZERO*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff11: FULLWIDTH DIGIT ONE*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff12: FULLWIDTH DIGIT TWO*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff13: FULLWIDTH DIGIT THREE*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff14: FULLWIDTH DIGIT FOUR*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff15: FULLWIDTH DIGIT FIVE*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff16: FULLWIDTH DIGIT SIX*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff17: FULLWIDTH DIGIT SEVEN*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff18: FULLWIDTH DIGIT EIGHT*/ + RTUNI_XDIGIT | RTUNI_DDIGIT, /* U+00ff19: FULLWIDTH DIGIT NINE*/ + 0, /* U+00ff1a: FULLWIDTH COLON*/ + 0, /* U+00ff1b: FULLWIDTH SEMICOLON*/ + 0, /* U+00ff1c: FULLWIDTH LESS-THAN SIGN*/ + 0, /* U+00ff1d: FULLWIDTH EQUALS SIGN*/ + 0, /* U+00ff1e: FULLWIDTH GREATER-THAN SIGN*/ + 0, /* U+00ff1f: FULLWIDTH QUESTION MARK*/ + 0, /* U+00ff20: FULLWIDTH COMMERCIAL AT*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff21: FULLWIDTH LATIN CAPITAL LETTER A*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff22: FULLWIDTH LATIN CAPITAL LETTER B*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff23: FULLWIDTH LATIN CAPITAL LETTER C*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff24: FULLWIDTH LATIN CAPITAL LETTER D*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff25: FULLWIDTH LATIN CAPITAL LETTER E*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_UPPER, /* U+00ff26: FULLWIDTH LATIN CAPITAL LETTER F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff27: FULLWIDTH LATIN CAPITAL LETTER G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff28: FULLWIDTH LATIN CAPITAL LETTER H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff29: FULLWIDTH LATIN CAPITAL LETTER I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2a: FULLWIDTH LATIN CAPITAL LETTER J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2b: FULLWIDTH LATIN CAPITAL LETTER K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2c: FULLWIDTH LATIN CAPITAL LETTER L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2d: FULLWIDTH LATIN CAPITAL LETTER M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2e: FULLWIDTH LATIN CAPITAL LETTER N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff2f: FULLWIDTH LATIN CAPITAL LETTER O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff30: FULLWIDTH LATIN CAPITAL LETTER P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff31: FULLWIDTH LATIN CAPITAL LETTER Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff32: FULLWIDTH LATIN CAPITAL LETTER R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff33: FULLWIDTH LATIN CAPITAL LETTER S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff34: FULLWIDTH LATIN CAPITAL LETTER T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff35: FULLWIDTH LATIN CAPITAL LETTER U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff36: FULLWIDTH LATIN CAPITAL LETTER V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff37: FULLWIDTH LATIN CAPITAL LETTER W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff38: FULLWIDTH LATIN CAPITAL LETTER X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff39: FULLWIDTH LATIN CAPITAL LETTER Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+00ff3a: FULLWIDTH LATIN CAPITAL LETTER Z*/ + 0, /* U+00ff3b: FULLWIDTH LEFT SQUARE BRACKET*/ + 0, /* U+00ff3c: FULLWIDTH REVERSE SOLIDUS*/ + 0, /* U+00ff3d: FULLWIDTH RIGHT SQUARE BRACKET*/ + 0, /* U+00ff3e: FULLWIDTH CIRCUMFLEX ACCENT*/ + 0, /* U+00ff3f: FULLWIDTH LOW LINE*/ + 0, /* U+00ff40: FULLWIDTH GRAVE ACCENT*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff41: FULLWIDTH LATIN SMALL LETTER A*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff42: FULLWIDTH LATIN SMALL LETTER B*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff43: FULLWIDTH LATIN SMALL LETTER C*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff44: FULLWIDTH LATIN SMALL LETTER D*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff45: FULLWIDTH LATIN SMALL LETTER E*/ + RTUNI_ALPHA | RTUNI_XDIGIT | RTUNI_LOWER, /* U+00ff46: FULLWIDTH LATIN SMALL LETTER F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff47: FULLWIDTH LATIN SMALL LETTER G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff48: FULLWIDTH LATIN SMALL LETTER H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff49: FULLWIDTH LATIN SMALL LETTER I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4a: FULLWIDTH LATIN SMALL LETTER J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4b: FULLWIDTH LATIN SMALL LETTER K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4c: FULLWIDTH LATIN SMALL LETTER L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4d: FULLWIDTH LATIN SMALL LETTER M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4e: FULLWIDTH LATIN SMALL LETTER N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff4f: FULLWIDTH LATIN SMALL LETTER O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff50: FULLWIDTH LATIN SMALL LETTER P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff51: FULLWIDTH LATIN SMALL LETTER Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff52: FULLWIDTH LATIN SMALL LETTER R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff53: FULLWIDTH LATIN SMALL LETTER S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff54: FULLWIDTH LATIN SMALL LETTER T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff55: FULLWIDTH LATIN SMALL LETTER U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff56: FULLWIDTH LATIN SMALL LETTER V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff57: FULLWIDTH LATIN SMALL LETTER W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff58: FULLWIDTH LATIN SMALL LETTER X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff59: FULLWIDTH LATIN SMALL LETTER Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+00ff5a: FULLWIDTH LATIN SMALL LETTER Z*/ + 0, /* U+00ff5b: FULLWIDTH LEFT CURLY BRACKET*/ + 0, /* U+00ff5c: FULLWIDTH VERTICAL LINE*/ + 0, /* U+00ff5d: FULLWIDTH RIGHT CURLY BRACKET*/ + 0, /* U+00ff5e: FULLWIDTH TILDE*/ + 0, /* U+00ff5f: FULLWIDTH LEFT WHITE PARENTHESIS*/ + 0, /* U+00ff60: FULLWIDTH RIGHT WHITE PARENTHESIS*/ + 0, /* U+00ff61: HALFWIDTH IDEOGRAPHIC FULL STOP*/ + 0, /* U+00ff62: HALFWIDTH LEFT CORNER BRACKET*/ + 0, /* U+00ff63: HALFWIDTH RIGHT CORNER BRACKET*/ + 0, /* U+00ff64: HALFWIDTH IDEOGRAPHIC COMMA*/ + 0, /* U+00ff65: HALFWIDTH KATAKANA MIDDLE DOT*/ + RTUNI_ALPHA, /* U+00ff66: HALFWIDTH KATAKANA LETTER WO*/ + RTUNI_ALPHA, /* U+00ff67: HALFWIDTH KATAKANA LETTER SMALL A*/ + RTUNI_ALPHA, /* U+00ff68: HALFWIDTH KATAKANA LETTER SMALL I*/ + RTUNI_ALPHA, /* U+00ff69: HALFWIDTH KATAKANA LETTER SMALL U*/ + RTUNI_ALPHA, /* U+00ff6a: HALFWIDTH KATAKANA LETTER SMALL E*/ + RTUNI_ALPHA, /* U+00ff6b: HALFWIDTH KATAKANA LETTER SMALL O*/ + RTUNI_ALPHA, /* U+00ff6c: HALFWIDTH KATAKANA LETTER SMALL YA*/ + RTUNI_ALPHA, /* U+00ff6d: HALFWIDTH KATAKANA LETTER SMALL YU*/ + RTUNI_ALPHA, /* U+00ff6e: HALFWIDTH KATAKANA LETTER SMALL YO*/ + RTUNI_ALPHA, /* U+00ff6f: HALFWIDTH KATAKANA LETTER SMALL TU*/ + RTUNI_ALPHA, /* U+00ff70: HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK*/ + RTUNI_ALPHA, /* U+00ff71: HALFWIDTH KATAKANA LETTER A*/ + RTUNI_ALPHA, /* U+00ff72: HALFWIDTH KATAKANA LETTER I*/ + RTUNI_ALPHA, /* U+00ff73: HALFWIDTH KATAKANA LETTER U*/ + RTUNI_ALPHA, /* U+00ff74: HALFWIDTH KATAKANA LETTER E*/ + RTUNI_ALPHA, /* U+00ff75: HALFWIDTH KATAKANA LETTER O*/ + RTUNI_ALPHA, /* U+00ff76: HALFWIDTH KATAKANA LETTER KA*/ + RTUNI_ALPHA, /* U+00ff77: HALFWIDTH KATAKANA LETTER KI*/ + RTUNI_ALPHA, /* U+00ff78: HALFWIDTH KATAKANA LETTER KU*/ + RTUNI_ALPHA, /* U+00ff79: HALFWIDTH KATAKANA LETTER KE*/ + RTUNI_ALPHA, /* U+00ff7a: HALFWIDTH KATAKANA LETTER KO*/ + RTUNI_ALPHA, /* U+00ff7b: HALFWIDTH KATAKANA LETTER SA*/ + RTUNI_ALPHA, /* U+00ff7c: HALFWIDTH KATAKANA LETTER SI*/ + RTUNI_ALPHA, /* U+00ff7d: HALFWIDTH KATAKANA LETTER SU*/ + RTUNI_ALPHA, /* U+00ff7e: HALFWIDTH KATAKANA LETTER SE*/ + RTUNI_ALPHA, /* U+00ff7f: HALFWIDTH KATAKANA LETTER SO*/ + RTUNI_ALPHA, /* U+00ff80: HALFWIDTH KATAKANA LETTER TA*/ + RTUNI_ALPHA, /* U+00ff81: HALFWIDTH KATAKANA LETTER TI*/ + RTUNI_ALPHA, /* U+00ff82: HALFWIDTH KATAKANA LETTER TU*/ + RTUNI_ALPHA, /* U+00ff83: HALFWIDTH KATAKANA LETTER TE*/ + RTUNI_ALPHA, /* U+00ff84: HALFWIDTH KATAKANA LETTER TO*/ + RTUNI_ALPHA, /* U+00ff85: HALFWIDTH KATAKANA LETTER NA*/ + RTUNI_ALPHA, /* U+00ff86: HALFWIDTH KATAKANA LETTER NI*/ + RTUNI_ALPHA, /* U+00ff87: HALFWIDTH KATAKANA LETTER NU*/ + RTUNI_ALPHA, /* U+00ff88: HALFWIDTH KATAKANA LETTER NE*/ + RTUNI_ALPHA, /* U+00ff89: HALFWIDTH KATAKANA LETTER NO*/ + RTUNI_ALPHA, /* U+00ff8a: HALFWIDTH KATAKANA LETTER HA*/ + RTUNI_ALPHA, /* U+00ff8b: HALFWIDTH KATAKANA LETTER HI*/ + RTUNI_ALPHA, /* U+00ff8c: HALFWIDTH KATAKANA LETTER HU*/ + RTUNI_ALPHA, /* U+00ff8d: HALFWIDTH KATAKANA LETTER HE*/ + RTUNI_ALPHA, /* U+00ff8e: HALFWIDTH KATAKANA LETTER HO*/ + RTUNI_ALPHA, /* U+00ff8f: HALFWIDTH KATAKANA LETTER MA*/ + RTUNI_ALPHA, /* U+00ff90: HALFWIDTH KATAKANA LETTER MI*/ + RTUNI_ALPHA, /* U+00ff91: HALFWIDTH KATAKANA LETTER MU*/ + RTUNI_ALPHA, /* U+00ff92: HALFWIDTH KATAKANA LETTER ME*/ + RTUNI_ALPHA, /* U+00ff93: HALFWIDTH KATAKANA LETTER MO*/ + RTUNI_ALPHA, /* U+00ff94: HALFWIDTH KATAKANA LETTER YA*/ + RTUNI_ALPHA, /* U+00ff95: HALFWIDTH KATAKANA LETTER YU*/ + RTUNI_ALPHA, /* U+00ff96: HALFWIDTH KATAKANA LETTER YO*/ + RTUNI_ALPHA, /* U+00ff97: HALFWIDTH KATAKANA LETTER RA*/ + RTUNI_ALPHA, /* U+00ff98: HALFWIDTH KATAKANA LETTER RI*/ + RTUNI_ALPHA, /* U+00ff99: HALFWIDTH KATAKANA LETTER RU*/ + RTUNI_ALPHA, /* U+00ff9a: HALFWIDTH KATAKANA LETTER RE*/ + RTUNI_ALPHA, /* U+00ff9b: HALFWIDTH KATAKANA LETTER RO*/ + RTUNI_ALPHA, /* U+00ff9c: HALFWIDTH KATAKANA LETTER WA*/ + RTUNI_ALPHA, /* U+00ff9d: HALFWIDTH KATAKANA LETTER N*/ + RTUNI_ALPHA, /* U+00ff9e: HALFWIDTH KATAKANA VOICED SOUND MARK*/ + RTUNI_ALPHA, /* U+00ff9f: HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK*/ + RTUNI_ALPHA, /* U+00ffa0: HALFWIDTH HANGUL FILLER*/ + RTUNI_ALPHA, /* U+00ffa1: HALFWIDTH HANGUL LETTER KIYEOK*/ + RTUNI_ALPHA, /* U+00ffa2: HALFWIDTH HANGUL LETTER SSANGKIYEOK*/ + RTUNI_ALPHA, /* U+00ffa3: HALFWIDTH HANGUL LETTER KIYEOK-SIOS*/ + RTUNI_ALPHA, /* U+00ffa4: HALFWIDTH HANGUL LETTER NIEUN*/ + RTUNI_ALPHA, /* U+00ffa5: HALFWIDTH HANGUL LETTER NIEUN-CIEUC*/ + RTUNI_ALPHA, /* U+00ffa6: HALFWIDTH HANGUL LETTER NIEUN-HIEUH*/ + RTUNI_ALPHA, /* U+00ffa7: HALFWIDTH HANGUL LETTER TIKEUT*/ + RTUNI_ALPHA, /* U+00ffa8: HALFWIDTH HANGUL LETTER SSANGTIKEUT*/ + RTUNI_ALPHA, /* U+00ffa9: HALFWIDTH HANGUL LETTER RIEUL*/ + RTUNI_ALPHA, /* U+00ffaa: HALFWIDTH HANGUL LETTER RIEUL-KIYEOK*/ + RTUNI_ALPHA, /* U+00ffab: HALFWIDTH HANGUL LETTER RIEUL-MIEUM*/ + RTUNI_ALPHA, /* U+00ffac: HALFWIDTH HANGUL LETTER RIEUL-PIEUP*/ + RTUNI_ALPHA, /* U+00ffad: HALFWIDTH HANGUL LETTER RIEUL-SIOS*/ + RTUNI_ALPHA, /* U+00ffae: HALFWIDTH HANGUL LETTER RIEUL-THIEUTH*/ + RTUNI_ALPHA, /* U+00ffaf: HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH*/ + RTUNI_ALPHA, /* U+00ffb0: HALFWIDTH HANGUL LETTER RIEUL-HIEUH*/ + RTUNI_ALPHA, /* U+00ffb1: HALFWIDTH HANGUL LETTER MIEUM*/ + RTUNI_ALPHA, /* U+00ffb2: HALFWIDTH HANGUL LETTER PIEUP*/ + RTUNI_ALPHA, /* U+00ffb3: HALFWIDTH HANGUL LETTER SSANGPIEUP*/ + RTUNI_ALPHA, /* U+00ffb4: HALFWIDTH HANGUL LETTER PIEUP-SIOS*/ + RTUNI_ALPHA, /* U+00ffb5: HALFWIDTH HANGUL LETTER SIOS*/ + RTUNI_ALPHA, /* U+00ffb6: HALFWIDTH HANGUL LETTER SSANGSIOS*/ + RTUNI_ALPHA, /* U+00ffb7: HALFWIDTH HANGUL LETTER IEUNG*/ + RTUNI_ALPHA, /* U+00ffb8: HALFWIDTH HANGUL LETTER CIEUC*/ + RTUNI_ALPHA, /* U+00ffb9: HALFWIDTH HANGUL LETTER SSANGCIEUC*/ + RTUNI_ALPHA, /* U+00ffba: HALFWIDTH HANGUL LETTER CHIEUCH*/ + RTUNI_ALPHA, /* U+00ffbb: HALFWIDTH HANGUL LETTER KHIEUKH*/ + RTUNI_ALPHA, /* U+00ffbc: HALFWIDTH HANGUL LETTER THIEUTH*/ + RTUNI_ALPHA, /* U+00ffbd: HALFWIDTH HANGUL LETTER PHIEUPH*/ + RTUNI_ALPHA, /* U+00ffbe: HALFWIDTH HANGUL LETTER HIEUH*/ + 0, /* U+00ffbf: */ + 0, /* U+00ffc0: */ + 0, /* U+00ffc1: */ + RTUNI_ALPHA, /* U+00ffc2: HALFWIDTH HANGUL LETTER A*/ + RTUNI_ALPHA, /* U+00ffc3: HALFWIDTH HANGUL LETTER AE*/ + RTUNI_ALPHA, /* U+00ffc4: HALFWIDTH HANGUL LETTER YA*/ + RTUNI_ALPHA, /* U+00ffc5: HALFWIDTH HANGUL LETTER YAE*/ + RTUNI_ALPHA, /* U+00ffc6: HALFWIDTH HANGUL LETTER EO*/ + RTUNI_ALPHA, /* U+00ffc7: HALFWIDTH HANGUL LETTER E*/ + 0, /* U+00ffc8: */ + 0, /* U+00ffc9: */ + RTUNI_ALPHA, /* U+00ffca: HALFWIDTH HANGUL LETTER YEO*/ + RTUNI_ALPHA, /* U+00ffcb: HALFWIDTH HANGUL LETTER YE*/ + RTUNI_ALPHA, /* U+00ffcc: HALFWIDTH HANGUL LETTER O*/ + RTUNI_ALPHA, /* U+00ffcd: HALFWIDTH HANGUL LETTER WA*/ + RTUNI_ALPHA, /* U+00ffce: HALFWIDTH HANGUL LETTER WAE*/ + RTUNI_ALPHA, /* U+00ffcf: HALFWIDTH HANGUL LETTER OE*/ + 0, /* U+00ffd0: */ + 0, /* U+00ffd1: */ + RTUNI_ALPHA, /* U+00ffd2: HALFWIDTH HANGUL LETTER YO*/ + RTUNI_ALPHA, /* U+00ffd3: HALFWIDTH HANGUL LETTER U*/ + RTUNI_ALPHA, /* U+00ffd4: HALFWIDTH HANGUL LETTER WEO*/ + RTUNI_ALPHA, /* U+00ffd5: HALFWIDTH HANGUL LETTER WE*/ + RTUNI_ALPHA, /* U+00ffd6: HALFWIDTH HANGUL LETTER WI*/ + RTUNI_ALPHA, /* U+00ffd7: HALFWIDTH HANGUL LETTER YU*/ + 0, /* U+00ffd8: */ + 0, /* U+00ffd9: */ + RTUNI_ALPHA, /* U+00ffda: HALFWIDTH HANGUL LETTER EU*/ + RTUNI_ALPHA, /* U+00ffdb: HALFWIDTH HANGUL LETTER YI*/ + RTUNI_ALPHA, /* U+00ffdc: HALFWIDTH HANGUL LETTER I*/ + 0, /* U+00ffdd: */ + 0, /* U+00ffde: */ + 0, /* U+00ffdf: */ + 0, /* U+00ffe0: FULLWIDTH CENT SIGN*/ + 0, /* U+00ffe1: FULLWIDTH POUND SIGN*/ + 0, /* U+00ffe2: FULLWIDTH NOT SIGN*/ + 0, /* U+00ffe3: FULLWIDTH MACRON*/ + 0, /* U+00ffe4: FULLWIDTH BROKEN BAR*/ + 0, /* U+00ffe5: FULLWIDTH YEN SIGN*/ + 0, /* U+00ffe6: FULLWIDTH WON SIGN*/ + 0, /* U+00ffe7: */ + 0, /* U+00ffe8: HALFWIDTH FORMS LIGHT VERTICAL*/ + 0, /* U+00ffe9: HALFWIDTH LEFTWARDS ARROW*/ + 0, /* U+00ffea: HALFWIDTH UPWARDS ARROW*/ + 0, /* U+00ffeb: HALFWIDTH RIGHTWARDS ARROW*/ + 0, /* U+00ffec: HALFWIDTH DOWNWARDS ARROW*/ + 0, /* U+00ffed: HALFWIDTH BLACK SQUARE*/ + 0, /* U+00ffee: HALFWIDTH WHITE CIRCLE*/ + 0, /* U+00ffef: */ + 0, /* U+00fff0: */ + 0, /* U+00fff1: */ + 0, /* U+00fff2: */ + 0, /* U+00fff3: */ + 0, /* U+00fff4: */ + 0, /* U+00fff5: */ + 0, /* U+00fff6: */ + 0, /* U+00fff7: */ + 0, /* U+00fff8: */ + 0, /* U+00fff9: INTERLINEAR ANNOTATION ANCHOR*/ + 0, /* U+00fffa: INTERLINEAR ANNOTATION SEPARATOR*/ + 0, /* U+00fffb: INTERLINEAR ANNOTATION TERMINATOR*/ + 0, /* U+00fffc: OBJECT REPLACEMENT CHARACTER*/ + 0, /* U+00fffd: REPLACEMENT CHARACTER*/ + 0, /* U+00fffe: */ + 0, /* U+00ffff: */ + RTUNI_ALPHA, /* U+010000: LINEAR B SYLLABLE B008 A*/ + RTUNI_ALPHA, /* U+010001: LINEAR B SYLLABLE B038 E*/ + RTUNI_ALPHA, /* U+010002: LINEAR B SYLLABLE B028 I*/ + RTUNI_ALPHA, /* U+010003: LINEAR B SYLLABLE B061 O*/ + RTUNI_ALPHA, /* U+010004: LINEAR B SYLLABLE B010 U*/ + RTUNI_ALPHA, /* U+010005: LINEAR B SYLLABLE B001 DA*/ + RTUNI_ALPHA, /* U+010006: LINEAR B SYLLABLE B045 DE*/ + RTUNI_ALPHA, /* U+010007: LINEAR B SYLLABLE B007 DI*/ + RTUNI_ALPHA, /* U+010008: LINEAR B SYLLABLE B014 DO*/ + RTUNI_ALPHA, /* U+010009: LINEAR B SYLLABLE B051 DU*/ + RTUNI_ALPHA, /* U+01000a: LINEAR B SYLLABLE B057 JA*/ + RTUNI_ALPHA, /* U+01000b: LINEAR B SYLLABLE B046 JE*/ + 0, /* U+01000c: */ + RTUNI_ALPHA, /* U+01000d: LINEAR B SYLLABLE B036 JO*/ + RTUNI_ALPHA, /* U+01000e: LINEAR B SYLLABLE B065 JU*/ + RTUNI_ALPHA, /* U+01000f: LINEAR B SYLLABLE B077 KA*/ + RTUNI_ALPHA, /* U+010010: LINEAR B SYLLABLE B044 KE*/ + RTUNI_ALPHA, /* U+010011: LINEAR B SYLLABLE B067 KI*/ + RTUNI_ALPHA, /* U+010012: LINEAR B SYLLABLE B070 KO*/ + RTUNI_ALPHA, /* U+010013: LINEAR B SYLLABLE B081 KU*/ + RTUNI_ALPHA, /* U+010014: LINEAR B SYLLABLE B080 MA*/ + RTUNI_ALPHA, /* U+010015: LINEAR B SYLLABLE B013 ME*/ + RTUNI_ALPHA, /* U+010016: LINEAR B SYLLABLE B073 MI*/ + RTUNI_ALPHA, /* U+010017: LINEAR B SYLLABLE B015 MO*/ + RTUNI_ALPHA, /* U+010018: LINEAR B SYLLABLE B023 MU*/ + RTUNI_ALPHA, /* U+010019: LINEAR B SYLLABLE B006 NA*/ + RTUNI_ALPHA, /* U+01001a: LINEAR B SYLLABLE B024 NE*/ + RTUNI_ALPHA, /* U+01001b: LINEAR B SYLLABLE B030 NI*/ + RTUNI_ALPHA, /* U+01001c: LINEAR B SYLLABLE B052 NO*/ + RTUNI_ALPHA, /* U+01001d: LINEAR B SYLLABLE B055 NU*/ + RTUNI_ALPHA, /* U+01001e: LINEAR B SYLLABLE B003 PA*/ + RTUNI_ALPHA, /* U+01001f: LINEAR B SYLLABLE B072 PE*/ + RTUNI_ALPHA, /* U+010020: LINEAR B SYLLABLE B039 PI*/ + RTUNI_ALPHA, /* U+010021: LINEAR B SYLLABLE B011 PO*/ + RTUNI_ALPHA, /* U+010022: LINEAR B SYLLABLE B050 PU*/ + RTUNI_ALPHA, /* U+010023: LINEAR B SYLLABLE B016 QA*/ + RTUNI_ALPHA, /* U+010024: LINEAR B SYLLABLE B078 QE*/ + RTUNI_ALPHA, /* U+010025: LINEAR B SYLLABLE B021 QI*/ + RTUNI_ALPHA, /* U+010026: LINEAR B SYLLABLE B032 QO*/ + 0, /* U+010027: */ + RTUNI_ALPHA, /* U+010028: LINEAR B SYLLABLE B060 RA*/ + RTUNI_ALPHA, /* U+010029: LINEAR B SYLLABLE B027 RE*/ + RTUNI_ALPHA, /* U+01002a: LINEAR B SYLLABLE B053 RI*/ + RTUNI_ALPHA, /* U+01002b: LINEAR B SYLLABLE B002 RO*/ + RTUNI_ALPHA, /* U+01002c: LINEAR B SYLLABLE B026 RU*/ + RTUNI_ALPHA, /* U+01002d: LINEAR B SYLLABLE B031 SA*/ + RTUNI_ALPHA, /* U+01002e: LINEAR B SYLLABLE B009 SE*/ + RTUNI_ALPHA, /* U+01002f: LINEAR B SYLLABLE B041 SI*/ + RTUNI_ALPHA, /* U+010030: LINEAR B SYLLABLE B012 SO*/ + RTUNI_ALPHA, /* U+010031: LINEAR B SYLLABLE B058 SU*/ + RTUNI_ALPHA, /* U+010032: LINEAR B SYLLABLE B059 TA*/ + RTUNI_ALPHA, /* U+010033: LINEAR B SYLLABLE B004 TE*/ + RTUNI_ALPHA, /* U+010034: LINEAR B SYLLABLE B037 TI*/ + RTUNI_ALPHA, /* U+010035: LINEAR B SYLLABLE B005 TO*/ + RTUNI_ALPHA, /* U+010036: LINEAR B SYLLABLE B069 TU*/ + RTUNI_ALPHA, /* U+010037: LINEAR B SYLLABLE B054 WA*/ + RTUNI_ALPHA, /* U+010038: LINEAR B SYLLABLE B075 WE*/ + RTUNI_ALPHA, /* U+010039: LINEAR B SYLLABLE B040 WI*/ + RTUNI_ALPHA, /* U+01003a: LINEAR B SYLLABLE B042 WO*/ + 0, /* U+01003b: */ + RTUNI_ALPHA, /* U+01003c: LINEAR B SYLLABLE B017 ZA*/ + RTUNI_ALPHA, /* U+01003d: LINEAR B SYLLABLE B074 ZE*/ + 0, /* U+01003e: */ + RTUNI_ALPHA, /* U+01003f: LINEAR B SYLLABLE B020 ZO*/ + RTUNI_ALPHA, /* U+010040: LINEAR B SYLLABLE B025 A2*/ + RTUNI_ALPHA, /* U+010041: LINEAR B SYLLABLE B043 A3*/ + RTUNI_ALPHA, /* U+010042: LINEAR B SYLLABLE B085 AU*/ + RTUNI_ALPHA, /* U+010043: LINEAR B SYLLABLE B071 DWE*/ + RTUNI_ALPHA, /* U+010044: LINEAR B SYLLABLE B090 DWO*/ + RTUNI_ALPHA, /* U+010045: LINEAR B SYLLABLE B048 NWA*/ + RTUNI_ALPHA, /* U+010046: LINEAR B SYLLABLE B029 PU2*/ + RTUNI_ALPHA, /* U+010047: LINEAR B SYLLABLE B062 PTE*/ + RTUNI_ALPHA, /* U+010048: LINEAR B SYLLABLE B076 RA2*/ + RTUNI_ALPHA, /* U+010049: LINEAR B SYLLABLE B033 RA3*/ + RTUNI_ALPHA, /* U+01004a: LINEAR B SYLLABLE B068 RO2*/ + RTUNI_ALPHA, /* U+01004b: LINEAR B SYLLABLE B066 TA2*/ + RTUNI_ALPHA, /* U+01004c: LINEAR B SYLLABLE B087 TWE*/ + RTUNI_ALPHA, /* U+01004d: LINEAR B SYLLABLE B091 TWO*/ + 0, /* U+01004e: */ + 0, /* U+01004f: */ + RTUNI_ALPHA, /* U+010050: LINEAR B SYMBOL B018*/ + RTUNI_ALPHA, /* U+010051: LINEAR B SYMBOL B019*/ + RTUNI_ALPHA, /* U+010052: LINEAR B SYMBOL B022*/ + RTUNI_ALPHA, /* U+010053: LINEAR B SYMBOL B034*/ + RTUNI_ALPHA, /* U+010054: LINEAR B SYMBOL B047*/ + RTUNI_ALPHA, /* U+010055: LINEAR B SYMBOL B049*/ + RTUNI_ALPHA, /* U+010056: LINEAR B SYMBOL B056*/ + RTUNI_ALPHA, /* U+010057: LINEAR B SYMBOL B063*/ + RTUNI_ALPHA, /* U+010058: LINEAR B SYMBOL B064*/ + RTUNI_ALPHA, /* U+010059: LINEAR B SYMBOL B079*/ + RTUNI_ALPHA, /* U+01005a: LINEAR B SYMBOL B082*/ + RTUNI_ALPHA, /* U+01005b: LINEAR B SYMBOL B083*/ + RTUNI_ALPHA, /* U+01005c: LINEAR B SYMBOL B086*/ + RTUNI_ALPHA, /* U+01005d: LINEAR B SYMBOL B089*/ + 0, /* U+01005e: */ + 0, /* U+01005f: */ + 0, /* U+010060: */ + 0, /* U+010061: */ + 0, /* U+010062: */ + 0, /* U+010063: */ + 0, /* U+010064: */ + 0, /* U+010065: */ + 0, /* U+010066: */ + 0, /* U+010067: */ + 0, /* U+010068: */ + 0, /* U+010069: */ + 0, /* U+01006a: */ + 0, /* U+01006b: */ + 0, /* U+01006c: */ + 0, /* U+01006d: */ + 0, /* U+01006e: */ + 0, /* U+01006f: */ + 0, /* U+010070: */ + 0, /* U+010071: */ + 0, /* U+010072: */ + 0, /* U+010073: */ + 0, /* U+010074: */ + 0, /* U+010075: */ + 0, /* U+010076: */ + 0, /* U+010077: */ + 0, /* U+010078: */ + 0, /* U+010079: */ + 0, /* U+01007a: */ + 0, /* U+01007b: */ + 0, /* U+01007c: */ + 0, /* U+01007d: */ + 0, /* U+01007e: */ + 0, /* U+01007f: */ + RTUNI_ALPHA, /* U+010080: LINEAR B IDEOGRAM B100 MAN*/ + RTUNI_ALPHA, /* U+010081: LINEAR B IDEOGRAM B102 WOMAN*/ + RTUNI_ALPHA, /* U+010082: LINEAR B IDEOGRAM B104 DEER*/ + RTUNI_ALPHA, /* U+010083: LINEAR B IDEOGRAM B105 EQUID*/ + RTUNI_ALPHA, /* U+010084: LINEAR B IDEOGRAM B105F MARE*/ + RTUNI_ALPHA, /* U+010085: LINEAR B IDEOGRAM B105M STALLION*/ + RTUNI_ALPHA, /* U+010086: LINEAR B IDEOGRAM B106F EWE*/ + RTUNI_ALPHA, /* U+010087: LINEAR B IDEOGRAM B106M RAM*/ + RTUNI_ALPHA, /* U+010088: LINEAR B IDEOGRAM B107F SHE-GOAT*/ + RTUNI_ALPHA, /* U+010089: LINEAR B IDEOGRAM B107M HE-GOAT*/ + RTUNI_ALPHA, /* U+01008a: LINEAR B IDEOGRAM B108F SOW*/ + RTUNI_ALPHA, /* U+01008b: LINEAR B IDEOGRAM B108M BOAR*/ + RTUNI_ALPHA, /* U+01008c: LINEAR B IDEOGRAM B109F COW*/ + RTUNI_ALPHA, /* U+01008d: LINEAR B IDEOGRAM B109M BULL*/ + RTUNI_ALPHA, /* U+01008e: LINEAR B IDEOGRAM B120 WHEAT*/ + RTUNI_ALPHA, /* U+01008f: LINEAR B IDEOGRAM B121 BARLEY*/ + RTUNI_ALPHA, /* U+010090: LINEAR B IDEOGRAM B122 OLIVE*/ + RTUNI_ALPHA, /* U+010091: LINEAR B IDEOGRAM B123 SPICE*/ + RTUNI_ALPHA, /* U+010092: LINEAR B IDEOGRAM B125 CYPERUS*/ + RTUNI_ALPHA, /* U+010093: LINEAR B MONOGRAM B127 KAPO*/ + RTUNI_ALPHA, /* U+010094: LINEAR B MONOGRAM B128 KANAKO*/ + RTUNI_ALPHA, /* U+010095: LINEAR B IDEOGRAM B130 OIL*/ + RTUNI_ALPHA, /* U+010096: LINEAR B IDEOGRAM B131 WINE*/ + RTUNI_ALPHA, /* U+010097: LINEAR B IDEOGRAM B132*/ + RTUNI_ALPHA, /* U+010098: LINEAR B MONOGRAM B133 AREPA*/ + RTUNI_ALPHA, /* U+010099: LINEAR B MONOGRAM B135 MERI*/ + RTUNI_ALPHA, /* U+01009a: LINEAR B IDEOGRAM B140 BRONZE*/ + RTUNI_ALPHA, /* U+01009b: LINEAR B IDEOGRAM B141 GOLD*/ + RTUNI_ALPHA, /* U+01009c: LINEAR B IDEOGRAM B142*/ + RTUNI_ALPHA, /* U+01009d: LINEAR B IDEOGRAM B145 WOOL*/ + RTUNI_ALPHA, /* U+01009e: LINEAR B IDEOGRAM B146*/ + RTUNI_ALPHA, /* U+01009f: LINEAR B IDEOGRAM B150*/ + RTUNI_ALPHA, /* U+0100a0: LINEAR B IDEOGRAM B151 HORN*/ + RTUNI_ALPHA, /* U+0100a1: LINEAR B IDEOGRAM B152*/ + RTUNI_ALPHA, /* U+0100a2: LINEAR B IDEOGRAM B153*/ + RTUNI_ALPHA, /* U+0100a3: LINEAR B IDEOGRAM B154*/ + RTUNI_ALPHA, /* U+0100a4: LINEAR B MONOGRAM B156 TURO2*/ + RTUNI_ALPHA, /* U+0100a5: LINEAR B IDEOGRAM B157*/ + RTUNI_ALPHA, /* U+0100a6: LINEAR B IDEOGRAM B158*/ + RTUNI_ALPHA, /* U+0100a7: LINEAR B IDEOGRAM B159 CLOTH*/ + RTUNI_ALPHA, /* U+0100a8: LINEAR B IDEOGRAM B160*/ + RTUNI_ALPHA, /* U+0100a9: LINEAR B IDEOGRAM B161*/ + RTUNI_ALPHA, /* U+0100aa: LINEAR B IDEOGRAM B162 GARMENT*/ + RTUNI_ALPHA, /* U+0100ab: LINEAR B IDEOGRAM B163 ARMOUR*/ + RTUNI_ALPHA, /* U+0100ac: LINEAR B IDEOGRAM B164*/ + RTUNI_ALPHA, /* U+0100ad: LINEAR B IDEOGRAM B165*/ + RTUNI_ALPHA, /* U+0100ae: LINEAR B IDEOGRAM B166*/ + RTUNI_ALPHA, /* U+0100af: LINEAR B IDEOGRAM B167*/ + RTUNI_ALPHA, /* U+0100b0: LINEAR B IDEOGRAM B168*/ + RTUNI_ALPHA, /* U+0100b1: LINEAR B IDEOGRAM B169*/ + RTUNI_ALPHA, /* U+0100b2: LINEAR B IDEOGRAM B170*/ + RTUNI_ALPHA, /* U+0100b3: LINEAR B IDEOGRAM B171*/ + RTUNI_ALPHA, /* U+0100b4: LINEAR B IDEOGRAM B172*/ + RTUNI_ALPHA, /* U+0100b5: LINEAR B IDEOGRAM B173 MONTH*/ + RTUNI_ALPHA, /* U+0100b6: LINEAR B IDEOGRAM B174*/ + RTUNI_ALPHA, /* U+0100b7: LINEAR B IDEOGRAM B176 TREE*/ + RTUNI_ALPHA, /* U+0100b8: LINEAR B IDEOGRAM B177*/ + RTUNI_ALPHA, /* U+0100b9: LINEAR B IDEOGRAM B178*/ + RTUNI_ALPHA, /* U+0100ba: LINEAR B IDEOGRAM B179*/ + RTUNI_ALPHA, /* U+0100bb: LINEAR B IDEOGRAM B180*/ + RTUNI_ALPHA, /* U+0100bc: LINEAR B IDEOGRAM B181*/ + RTUNI_ALPHA, /* U+0100bd: LINEAR B IDEOGRAM B182*/ + RTUNI_ALPHA, /* U+0100be: LINEAR B IDEOGRAM B183*/ + RTUNI_ALPHA, /* U+0100bf: LINEAR B IDEOGRAM B184*/ + RTUNI_ALPHA, /* U+0100c0: LINEAR B IDEOGRAM B185*/ + RTUNI_ALPHA, /* U+0100c1: LINEAR B IDEOGRAM B189*/ + RTUNI_ALPHA, /* U+0100c2: LINEAR B IDEOGRAM B190*/ + RTUNI_ALPHA, /* U+0100c3: LINEAR B IDEOGRAM B191 HELMET*/ + RTUNI_ALPHA, /* U+0100c4: LINEAR B IDEOGRAM B220 FOOTSTOOL*/ + RTUNI_ALPHA, /* U+0100c5: LINEAR B IDEOGRAM B225 BATHTUB*/ + RTUNI_ALPHA, /* U+0100c6: LINEAR B IDEOGRAM B230 SPEAR*/ + RTUNI_ALPHA, /* U+0100c7: LINEAR B IDEOGRAM B231 ARROW*/ + RTUNI_ALPHA, /* U+0100c8: LINEAR B IDEOGRAM B232*/ + RTUNI_ALPHA, /* U+0100c9: LINEAR B IDEOGRAM B233 SWORD*/ + RTUNI_ALPHA, /* U+0100ca: LINEAR B IDEOGRAM B234*/ + RTUNI_ALPHA, /* U+0100cb: LINEAR B IDEOGRAM B236*/ + RTUNI_ALPHA, /* U+0100cc: LINEAR B IDEOGRAM B240 WHEELED CHARIOT*/ + RTUNI_ALPHA, /* U+0100cd: LINEAR B IDEOGRAM B241 CHARIOT*/ + RTUNI_ALPHA, /* U+0100ce: LINEAR B IDEOGRAM B242 CHARIOT FRAME*/ + RTUNI_ALPHA, /* U+0100cf: LINEAR B IDEOGRAM B243 WHEEL*/ + RTUNI_ALPHA, /* U+0100d0: LINEAR B IDEOGRAM B245*/ + RTUNI_ALPHA, /* U+0100d1: LINEAR B IDEOGRAM B246*/ + RTUNI_ALPHA, /* U+0100d2: LINEAR B MONOGRAM B247 DIPTE*/ + RTUNI_ALPHA, /* U+0100d3: LINEAR B IDEOGRAM B248*/ + RTUNI_ALPHA, /* U+0100d4: LINEAR B IDEOGRAM B249*/ + RTUNI_ALPHA, /* U+0100d5: LINEAR B IDEOGRAM B251*/ + RTUNI_ALPHA, /* U+0100d6: LINEAR B IDEOGRAM B252*/ + RTUNI_ALPHA, /* U+0100d7: LINEAR B IDEOGRAM B253*/ + RTUNI_ALPHA, /* U+0100d8: LINEAR B IDEOGRAM B254 DART*/ + RTUNI_ALPHA, /* U+0100d9: LINEAR B IDEOGRAM B255*/ + RTUNI_ALPHA, /* U+0100da: LINEAR B IDEOGRAM B256*/ + RTUNI_ALPHA, /* U+0100db: LINEAR B IDEOGRAM B257*/ + RTUNI_ALPHA, /* U+0100dc: LINEAR B IDEOGRAM B258*/ + RTUNI_ALPHA, /* U+0100dd: LINEAR B IDEOGRAM B259*/ + RTUNI_ALPHA, /* U+0100de: LINEAR B IDEOGRAM VESSEL B155*/ + RTUNI_ALPHA, /* U+0100df: LINEAR B IDEOGRAM VESSEL B200*/ + RTUNI_ALPHA, /* U+0100e0: LINEAR B IDEOGRAM VESSEL B201*/ + RTUNI_ALPHA, /* U+0100e1: LINEAR B IDEOGRAM VESSEL B202*/ + RTUNI_ALPHA, /* U+0100e2: LINEAR B IDEOGRAM VESSEL B203*/ + RTUNI_ALPHA, /* U+0100e3: LINEAR B IDEOGRAM VESSEL B204*/ + RTUNI_ALPHA, /* U+0100e4: LINEAR B IDEOGRAM VESSEL B205*/ + RTUNI_ALPHA, /* U+0100e5: LINEAR B IDEOGRAM VESSEL B206*/ + RTUNI_ALPHA, /* U+0100e6: LINEAR B IDEOGRAM VESSEL B207*/ + RTUNI_ALPHA, /* U+0100e7: LINEAR B IDEOGRAM VESSEL B208*/ + RTUNI_ALPHA, /* U+0100e8: LINEAR B IDEOGRAM VESSEL B209*/ + RTUNI_ALPHA, /* U+0100e9: LINEAR B IDEOGRAM VESSEL B210*/ + RTUNI_ALPHA, /* U+0100ea: LINEAR B IDEOGRAM VESSEL B211*/ + RTUNI_ALPHA, /* U+0100eb: LINEAR B IDEOGRAM VESSEL B212*/ + RTUNI_ALPHA, /* U+0100ec: LINEAR B IDEOGRAM VESSEL B213*/ + RTUNI_ALPHA, /* U+0100ed: LINEAR B IDEOGRAM VESSEL B214*/ + RTUNI_ALPHA, /* U+0100ee: LINEAR B IDEOGRAM VESSEL B215*/ + RTUNI_ALPHA, /* U+0100ef: LINEAR B IDEOGRAM VESSEL B216*/ + RTUNI_ALPHA, /* U+0100f0: LINEAR B IDEOGRAM VESSEL B217*/ + RTUNI_ALPHA, /* U+0100f1: LINEAR B IDEOGRAM VESSEL B218*/ + RTUNI_ALPHA, /* U+0100f2: LINEAR B IDEOGRAM VESSEL B219*/ + RTUNI_ALPHA, /* U+0100f3: LINEAR B IDEOGRAM VESSEL B221*/ + RTUNI_ALPHA, /* U+0100f4: LINEAR B IDEOGRAM VESSEL B222*/ + RTUNI_ALPHA, /* U+0100f5: LINEAR B IDEOGRAM VESSEL B226*/ + RTUNI_ALPHA, /* U+0100f6: LINEAR B IDEOGRAM VESSEL B227*/ + RTUNI_ALPHA, /* U+0100f7: LINEAR B IDEOGRAM VESSEL B228*/ + RTUNI_ALPHA, /* U+0100f8: LINEAR B IDEOGRAM VESSEL B229*/ + RTUNI_ALPHA, /* U+0100f9: LINEAR B IDEOGRAM VESSEL B250*/ + RTUNI_ALPHA, /* U+0100fa: LINEAR B IDEOGRAM VESSEL B305*/ + 0, /* U+0100fb: */ + 0, /* U+0100fc: */ + 0, /* U+0100fd: */ + 0, /* U+0100fe: */ + 0, /* U+0100ff: */ + 0, /* U+010100: AEGEAN WORD SEPARATOR LINE*/ + 0, /* U+010101: AEGEAN WORD SEPARATOR DOT*/ + 0, /* U+010102: AEGEAN CHECK MARK*/ + 0, /* U+010103: */ + 0, /* U+010104: */ + 0, /* U+010105: */ + 0, /* U+010106: */ + 0, /* U+010107: AEGEAN NUMBER ONE*/ + 0, /* U+010108: AEGEAN NUMBER TWO*/ + 0, /* U+010109: AEGEAN NUMBER THREE*/ + 0, /* U+01010a: AEGEAN NUMBER FOUR*/ + 0, /* U+01010b: AEGEAN NUMBER FIVE*/ + 0, /* U+01010c: AEGEAN NUMBER SIX*/ + 0, /* U+01010d: AEGEAN NUMBER SEVEN*/ + 0, /* U+01010e: AEGEAN NUMBER EIGHT*/ + 0, /* U+01010f: AEGEAN NUMBER NINE*/ + 0, /* U+010110: AEGEAN NUMBER TEN*/ + 0, /* U+010111: AEGEAN NUMBER TWENTY*/ + 0, /* U+010112: AEGEAN NUMBER THIRTY*/ + 0, /* U+010113: AEGEAN NUMBER FORTY*/ + 0, /* U+010114: AEGEAN NUMBER FIFTY*/ + 0, /* U+010115: AEGEAN NUMBER SIXTY*/ + 0, /* U+010116: AEGEAN NUMBER SEVENTY*/ + 0, /* U+010117: AEGEAN NUMBER EIGHTY*/ + 0, /* U+010118: AEGEAN NUMBER NINETY*/ + 0, /* U+010119: AEGEAN NUMBER ONE HUNDRED*/ + 0, /* U+01011a: AEGEAN NUMBER TWO HUNDRED*/ + 0, /* U+01011b: AEGEAN NUMBER THREE HUNDRED*/ + 0, /* U+01011c: AEGEAN NUMBER FOUR HUNDRED*/ + 0, /* U+01011d: AEGEAN NUMBER FIVE HUNDRED*/ + 0, /* U+01011e: AEGEAN NUMBER SIX HUNDRED*/ + 0, /* U+01011f: AEGEAN NUMBER SEVEN HUNDRED*/ + 0, /* U+010120: AEGEAN NUMBER EIGHT HUNDRED*/ + 0, /* U+010121: AEGEAN NUMBER NINE HUNDRED*/ + 0, /* U+010122: AEGEAN NUMBER ONE THOUSAND*/ + 0, /* U+010123: AEGEAN NUMBER TWO THOUSAND*/ + 0, /* U+010124: AEGEAN NUMBER THREE THOUSAND*/ + 0, /* U+010125: AEGEAN NUMBER FOUR THOUSAND*/ + 0, /* U+010126: AEGEAN NUMBER FIVE THOUSAND*/ + 0, /* U+010127: AEGEAN NUMBER SIX THOUSAND*/ + 0, /* U+010128: AEGEAN NUMBER SEVEN THOUSAND*/ + 0, /* U+010129: AEGEAN NUMBER EIGHT THOUSAND*/ + 0, /* U+01012a: AEGEAN NUMBER NINE THOUSAND*/ + 0, /* U+01012b: AEGEAN NUMBER TEN THOUSAND*/ + 0, /* U+01012c: AEGEAN NUMBER TWENTY THOUSAND*/ + 0, /* U+01012d: AEGEAN NUMBER THIRTY THOUSAND*/ + 0, /* U+01012e: AEGEAN NUMBER FORTY THOUSAND*/ + 0, /* U+01012f: AEGEAN NUMBER FIFTY THOUSAND*/ + 0, /* U+010130: AEGEAN NUMBER SIXTY THOUSAND*/ + 0, /* U+010131: AEGEAN NUMBER SEVENTY THOUSAND*/ + 0, /* U+010132: AEGEAN NUMBER EIGHTY THOUSAND*/ + 0, /* U+010133: AEGEAN NUMBER NINETY THOUSAND*/ + 0, /* U+010134: */ + 0, /* U+010135: */ + 0, /* U+010136: */ + 0, /* U+010137: AEGEAN WEIGHT BASE UNIT*/ + 0, /* U+010138: AEGEAN WEIGHT FIRST SUBUNIT*/ + 0, /* U+010139: AEGEAN WEIGHT SECOND SUBUNIT*/ + 0, /* U+01013a: AEGEAN WEIGHT THIRD SUBUNIT*/ + 0, /* U+01013b: AEGEAN WEIGHT FOURTH SUBUNIT*/ + 0, /* U+01013c: AEGEAN DRY MEASURE FIRST SUBUNIT*/ + 0, /* U+01013d: AEGEAN LIQUID MEASURE FIRST SUBUNIT*/ + 0, /* U+01013e: AEGEAN MEASURE SECOND SUBUNIT*/ + 0, /* U+01013f: AEGEAN MEASURE THIRD SUBUNIT*/ + RTUNI_ALPHA, /* U+010140: GREEK ACROPHONIC ATTIC ONE QUARTER*/ + RTUNI_ALPHA, /* U+010141: GREEK ACROPHONIC ATTIC ONE HALF*/ + RTUNI_ALPHA, /* U+010142: GREEK ACROPHONIC ATTIC ONE DRACHMA*/ + RTUNI_ALPHA, /* U+010143: GREEK ACROPHONIC ATTIC FIVE*/ + RTUNI_ALPHA, /* U+010144: GREEK ACROPHONIC ATTIC FIFTY*/ + RTUNI_ALPHA, /* U+010145: GREEK ACROPHONIC ATTIC FIVE HUNDRED*/ + RTUNI_ALPHA, /* U+010146: GREEK ACROPHONIC ATTIC FIVE THOUSAND*/ + RTUNI_ALPHA, /* U+010147: GREEK ACROPHONIC ATTIC FIFTY THOUSAND*/ + RTUNI_ALPHA, /* U+010148: GREEK ACROPHONIC ATTIC FIVE TALENTS*/ + RTUNI_ALPHA, /* U+010149: GREEK ACROPHONIC ATTIC TEN TALENTS*/ + RTUNI_ALPHA, /* U+01014a: GREEK ACROPHONIC ATTIC FIFTY TALENTS*/ + RTUNI_ALPHA, /* U+01014b: GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS*/ + RTUNI_ALPHA, /* U+01014c: GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS*/ + RTUNI_ALPHA, /* U+01014d: GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS*/ + RTUNI_ALPHA, /* U+01014e: GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS*/ + RTUNI_ALPHA, /* U+01014f: GREEK ACROPHONIC ATTIC FIVE STATERS*/ + RTUNI_ALPHA, /* U+010150: GREEK ACROPHONIC ATTIC TEN STATERS*/ + RTUNI_ALPHA, /* U+010151: GREEK ACROPHONIC ATTIC FIFTY STATERS*/ + RTUNI_ALPHA, /* U+010152: GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS*/ + RTUNI_ALPHA, /* U+010153: GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS*/ + RTUNI_ALPHA, /* U+010154: GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS*/ + RTUNI_ALPHA, /* U+010155: GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS*/ + RTUNI_ALPHA, /* U+010156: GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS*/ + RTUNI_ALPHA, /* U+010157: GREEK ACROPHONIC ATTIC TEN MNAS*/ + RTUNI_ALPHA, /* U+010158: GREEK ACROPHONIC HERAEUM ONE PLETHRON*/ + RTUNI_ALPHA, /* U+010159: GREEK ACROPHONIC THESPIAN ONE*/ + RTUNI_ALPHA, /* U+01015a: GREEK ACROPHONIC HERMIONIAN ONE*/ + RTUNI_ALPHA, /* U+01015b: GREEK ACROPHONIC EPIDAUREAN TWO*/ + RTUNI_ALPHA, /* U+01015c: GREEK ACROPHONIC THESPIAN TWO*/ + RTUNI_ALPHA, /* U+01015d: GREEK ACROPHONIC CYRENAIC TWO DRACHMAS*/ + RTUNI_ALPHA, /* U+01015e: GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS*/ + RTUNI_ALPHA, /* U+01015f: GREEK ACROPHONIC TROEZENIAN FIVE*/ + RTUNI_ALPHA, /* U+010160: GREEK ACROPHONIC TROEZENIAN TEN*/ + RTUNI_ALPHA, /* U+010161: GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM*/ + RTUNI_ALPHA, /* U+010162: GREEK ACROPHONIC HERMIONIAN TEN*/ + RTUNI_ALPHA, /* U+010163: GREEK ACROPHONIC MESSENIAN TEN*/ + RTUNI_ALPHA, /* U+010164: GREEK ACROPHONIC THESPIAN TEN*/ + RTUNI_ALPHA, /* U+010165: GREEK ACROPHONIC THESPIAN THIRTY*/ + RTUNI_ALPHA, /* U+010166: GREEK ACROPHONIC TROEZENIAN FIFTY*/ + RTUNI_ALPHA, /* U+010167: GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM*/ + RTUNI_ALPHA, /* U+010168: GREEK ACROPHONIC HERMIONIAN FIFTY*/ + RTUNI_ALPHA, /* U+010169: GREEK ACROPHONIC THESPIAN FIFTY*/ + RTUNI_ALPHA, /* U+01016a: GREEK ACROPHONIC THESPIAN ONE HUNDRED*/ + RTUNI_ALPHA, /* U+01016b: GREEK ACROPHONIC THESPIAN THREE HUNDRED*/ + RTUNI_ALPHA, /* U+01016c: GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED*/ + RTUNI_ALPHA, /* U+01016d: GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED*/ + RTUNI_ALPHA, /* U+01016e: GREEK ACROPHONIC THESPIAN FIVE HUNDRED*/ + RTUNI_ALPHA, /* U+01016f: GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED*/ + RTUNI_ALPHA, /* U+010170: GREEK ACROPHONIC NAXIAN FIVE HUNDRED*/ + RTUNI_ALPHA, /* U+010171: GREEK ACROPHONIC THESPIAN ONE THOUSAND*/ + RTUNI_ALPHA, /* U+010172: GREEK ACROPHONIC THESPIAN FIVE THOUSAND*/ + RTUNI_ALPHA, /* U+010173: GREEK ACROPHONIC DELPHIC FIVE MNAS*/ + RTUNI_ALPHA, /* U+010174: GREEK ACROPHONIC STRATIAN FIFTY MNAS*/ + 0, /* U+010175: GREEK ONE HALF SIGN*/ + 0, /* U+010176: GREEK ONE HALF SIGN ALTERNATE FORM*/ + 0, /* U+010177: GREEK TWO THIRDS SIGN*/ + 0, /* U+010178: GREEK THREE QUARTERS SIGN*/ + 0, /* U+010179: GREEK YEAR SIGN*/ + 0, /* U+01017a: GREEK TALENT SIGN*/ + 0, /* U+01017b: GREEK DRACHMA SIGN*/ + 0, /* U+01017c: GREEK OBOL SIGN*/ + 0, /* U+01017d: GREEK TWO OBOLS SIGN*/ + 0, /* U+01017e: GREEK THREE OBOLS SIGN*/ + 0, /* U+01017f: GREEK FOUR OBOLS SIGN*/ + 0, /* U+010180: GREEK FIVE OBOLS SIGN*/ + 0, /* U+010181: GREEK METRETES SIGN*/ + 0, /* U+010182: GREEK KYATHOS BASE SIGN*/ + 0, /* U+010183: GREEK LITRA SIGN*/ + 0, /* U+010184: GREEK OUNKIA SIGN*/ + 0, /* U+010185: GREEK XESTES SIGN*/ + 0, /* U+010186: GREEK ARTABE SIGN*/ + 0, /* U+010187: GREEK AROURA SIGN*/ + 0, /* U+010188: GREEK GRAMMA SIGN*/ + 0, /* U+010189: GREEK TRYBLION BASE SIGN*/ + 0, /* U+01018a: GREEK ZERO SIGN*/ + 0, /* U+01018b: */ + 0, /* U+01018c: */ + 0, /* U+01018d: */ + 0, /* U+01018e: */ + 0, /* U+01018f: */ + 0, /* U+010190: ROMAN SEXTANS SIGN*/ + 0, /* U+010191: ROMAN UNCIA SIGN*/ + 0, /* U+010192: ROMAN SEMUNCIA SIGN*/ + 0, /* U+010193: ROMAN SEXTULA SIGN*/ + 0, /* U+010194: ROMAN DIMIDIA SEXTULA SIGN*/ + 0, /* U+010195: ROMAN SILIQUA SIGN*/ + 0, /* U+010196: ROMAN DENARIUS SIGN*/ + 0, /* U+010197: ROMAN QUINARIUS SIGN*/ + 0, /* U+010198: ROMAN SESTERTIUS SIGN*/ + 0, /* U+010199: ROMAN DUPONDIUS SIGN*/ + 0, /* U+01019a: ROMAN AS SIGN*/ + 0, /* U+01019b: ROMAN CENTURIAL SIGN*/ + 0, /* U+01019c: */ + 0, /* U+01019d: */ + 0, /* U+01019e: */ + 0, /* U+01019f: */ + 0, /* U+0101a0: */ + 0, /* U+0101a1: */ + 0, /* U+0101a2: */ + 0, /* U+0101a3: */ + 0, /* U+0101a4: */ + 0, /* U+0101a5: */ + 0, /* U+0101a6: */ + 0, /* U+0101a7: */ + 0, /* U+0101a8: */ + 0, /* U+0101a9: */ + 0, /* U+0101aa: */ + 0, /* U+0101ab: */ + 0, /* U+0101ac: */ + 0, /* U+0101ad: */ + 0, /* U+0101ae: */ + 0, /* U+0101af: */ + 0, /* U+0101b0: */ + 0, /* U+0101b1: */ + 0, /* U+0101b2: */ + 0, /* U+0101b3: */ + 0, /* U+0101b4: */ + 0, /* U+0101b5: */ + 0, /* U+0101b6: */ + 0, /* U+0101b7: */ + 0, /* U+0101b8: */ + 0, /* U+0101b9: */ + 0, /* U+0101ba: */ + 0, /* U+0101bb: */ + 0, /* U+0101bc: */ + 0, /* U+0101bd: */ + 0, /* U+0101be: */ + 0, /* U+0101bf: */ + 0, /* U+0101c0: */ + 0, /* U+0101c1: */ + 0, /* U+0101c2: */ + 0, /* U+0101c3: */ + 0, /* U+0101c4: */ + 0, /* U+0101c5: */ + 0, /* U+0101c6: */ + 0, /* U+0101c7: */ + 0, /* U+0101c8: */ + 0, /* U+0101c9: */ + 0, /* U+0101ca: */ + 0, /* U+0101cb: */ + 0, /* U+0101cc: */ + 0, /* U+0101cd: */ + 0, /* U+0101ce: */ + 0, /* U+0101cf: */ + 0, /* U+0101d0: PHAISTOS DISC SIGN PEDESTRIAN*/ + 0, /* U+0101d1: PHAISTOS DISC SIGN PLUMED HEAD*/ + 0, /* U+0101d2: PHAISTOS DISC SIGN TATTOOED HEAD*/ + 0, /* U+0101d3: PHAISTOS DISC SIGN CAPTIVE*/ + 0, /* U+0101d4: PHAISTOS DISC SIGN CHILD*/ + 0, /* U+0101d5: PHAISTOS DISC SIGN WOMAN*/ + 0, /* U+0101d6: PHAISTOS DISC SIGN HELMET*/ + 0, /* U+0101d7: PHAISTOS DISC SIGN GAUNTLET*/ + 0, /* U+0101d8: PHAISTOS DISC SIGN TIARA*/ + 0, /* U+0101d9: PHAISTOS DISC SIGN ARROW*/ + 0, /* U+0101da: PHAISTOS DISC SIGN BOW*/ + 0, /* U+0101db: PHAISTOS DISC SIGN SHIELD*/ + 0, /* U+0101dc: PHAISTOS DISC SIGN CLUB*/ + 0, /* U+0101dd: PHAISTOS DISC SIGN MANACLES*/ + 0, /* U+0101de: PHAISTOS DISC SIGN MATTOCK*/ + 0, /* U+0101df: PHAISTOS DISC SIGN SAW*/ + 0, /* U+0101e0: PHAISTOS DISC SIGN LID*/ + 0, /* U+0101e1: PHAISTOS DISC SIGN BOOMERANG*/ + 0, /* U+0101e2: PHAISTOS DISC SIGN CARPENTRY PLANE*/ + 0, /* U+0101e3: PHAISTOS DISC SIGN DOLIUM*/ + 0, /* U+0101e4: PHAISTOS DISC SIGN COMB*/ + 0, /* U+0101e5: PHAISTOS DISC SIGN SLING*/ + 0, /* U+0101e6: PHAISTOS DISC SIGN COLUMN*/ + 0, /* U+0101e7: PHAISTOS DISC SIGN BEEHIVE*/ + 0, /* U+0101e8: PHAISTOS DISC SIGN SHIP*/ + 0, /* U+0101e9: PHAISTOS DISC SIGN HORN*/ + 0, /* U+0101ea: PHAISTOS DISC SIGN HIDE*/ + 0, /* U+0101eb: PHAISTOS DISC SIGN BULLS LEG*/ + 0, /* U+0101ec: PHAISTOS DISC SIGN CAT*/ + 0, /* U+0101ed: PHAISTOS DISC SIGN RAM*/ + 0, /* U+0101ee: PHAISTOS DISC SIGN EAGLE*/ + 0, /* U+0101ef: PHAISTOS DISC SIGN DOVE*/ + 0, /* U+0101f0: PHAISTOS DISC SIGN TUNNY*/ + 0, /* U+0101f1: PHAISTOS DISC SIGN BEE*/ + 0, /* U+0101f2: PHAISTOS DISC SIGN PLANE TREE*/ + 0, /* U+0101f3: PHAISTOS DISC SIGN VINE*/ + 0, /* U+0101f4: PHAISTOS DISC SIGN PAPYRUS*/ + 0, /* U+0101f5: PHAISTOS DISC SIGN ROSETTE*/ + 0, /* U+0101f6: PHAISTOS DISC SIGN LILY*/ + 0, /* U+0101f7: PHAISTOS DISC SIGN OX BACK*/ + 0, /* U+0101f8: PHAISTOS DISC SIGN FLUTE*/ + 0, /* U+0101f9: PHAISTOS DISC SIGN GRATER*/ + 0, /* U+0101fa: PHAISTOS DISC SIGN STRAINER*/ + 0, /* U+0101fb: PHAISTOS DISC SIGN SMALL AXE*/ + 0, /* U+0101fc: PHAISTOS DISC SIGN WAVY BAND*/ + 0, /* U+0101fd: PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE*/ + 0, /* U+0101fe: */ + 0, /* U+0101ff: */ + 0, /* U+010200: */ + 0, /* U+010201: */ + 0, /* U+010202: */ + 0, /* U+010203: */ + 0, /* U+010204: */ + 0, /* U+010205: */ + 0, /* U+010206: */ + 0, /* U+010207: */ + 0, /* U+010208: */ + 0, /* U+010209: */ + 0, /* U+01020a: */ + 0, /* U+01020b: */ + 0, /* U+01020c: */ + 0, /* U+01020d: */ + 0, /* U+01020e: */ + 0, /* U+01020f: */ + 0, /* U+010210: */ + 0, /* U+010211: */ + 0, /* U+010212: */ + 0, /* U+010213: */ + 0, /* U+010214: */ + 0, /* U+010215: */ + 0, /* U+010216: */ + 0, /* U+010217: */ + 0, /* U+010218: */ + 0, /* U+010219: */ + 0, /* U+01021a: */ + 0, /* U+01021b: */ + 0, /* U+01021c: */ + 0, /* U+01021d: */ + 0, /* U+01021e: */ + 0, /* U+01021f: */ + 0, /* U+010220: */ + 0, /* U+010221: */ + 0, /* U+010222: */ + 0, /* U+010223: */ + 0, /* U+010224: */ + 0, /* U+010225: */ + 0, /* U+010226: */ + 0, /* U+010227: */ + 0, /* U+010228: */ + 0, /* U+010229: */ + 0, /* U+01022a: */ + 0, /* U+01022b: */ + 0, /* U+01022c: */ + 0, /* U+01022d: */ + 0, /* U+01022e: */ + 0, /* U+01022f: */ + 0, /* U+010230: */ + 0, /* U+010231: */ + 0, /* U+010232: */ + 0, /* U+010233: */ + 0, /* U+010234: */ + 0, /* U+010235: */ + 0, /* U+010236: */ + 0, /* U+010237: */ + 0, /* U+010238: */ + 0, /* U+010239: */ + 0, /* U+01023a: */ + 0, /* U+01023b: */ + 0, /* U+01023c: */ + 0, /* U+01023d: */ + 0, /* U+01023e: */ + 0, /* U+01023f: */ + 0, /* U+010240: */ + 0, /* U+010241: */ + 0, /* U+010242: */ + 0, /* U+010243: */ + 0, /* U+010244: */ + 0, /* U+010245: */ + 0, /* U+010246: */ + 0, /* U+010247: */ + 0, /* U+010248: */ + 0, /* U+010249: */ + 0, /* U+01024a: */ + 0, /* U+01024b: */ + 0, /* U+01024c: */ + 0, /* U+01024d: */ + 0, /* U+01024e: */ + 0, /* U+01024f: */ + 0, /* U+010250: */ + 0, /* U+010251: */ + 0, /* U+010252: */ + 0, /* U+010253: */ + 0, /* U+010254: */ + 0, /* U+010255: */ + 0, /* U+010256: */ + 0, /* U+010257: */ + 0, /* U+010258: */ + 0, /* U+010259: */ + 0, /* U+01025a: */ + 0, /* U+01025b: */ + 0, /* U+01025c: */ + 0, /* U+01025d: */ + 0, /* U+01025e: */ + 0, /* U+01025f: */ + 0, /* U+010260: */ + 0, /* U+010261: */ + 0, /* U+010262: */ + 0, /* U+010263: */ + 0, /* U+010264: */ + 0, /* U+010265: */ + 0, /* U+010266: */ + 0, /* U+010267: */ + 0, /* U+010268: */ + 0, /* U+010269: */ + 0, /* U+01026a: */ + 0, /* U+01026b: */ + 0, /* U+01026c: */ + 0, /* U+01026d: */ + 0, /* U+01026e: */ + 0, /* U+01026f: */ + 0, /* U+010270: */ + 0, /* U+010271: */ + 0, /* U+010272: */ + 0, /* U+010273: */ + 0, /* U+010274: */ + 0, /* U+010275: */ + 0, /* U+010276: */ + 0, /* U+010277: */ + 0, /* U+010278: */ + 0, /* U+010279: */ + 0, /* U+01027a: */ + 0, /* U+01027b: */ + 0, /* U+01027c: */ + 0, /* U+01027d: */ + 0, /* U+01027e: */ + 0, /* U+01027f: */ + RTUNI_ALPHA, /* U+010280: LYCIAN LETTER A*/ + RTUNI_ALPHA, /* U+010281: LYCIAN LETTER E*/ + RTUNI_ALPHA, /* U+010282: LYCIAN LETTER B*/ + RTUNI_ALPHA, /* U+010283: LYCIAN LETTER BH*/ + RTUNI_ALPHA, /* U+010284: LYCIAN LETTER G*/ + RTUNI_ALPHA, /* U+010285: LYCIAN LETTER D*/ + RTUNI_ALPHA, /* U+010286: LYCIAN LETTER I*/ + RTUNI_ALPHA, /* U+010287: LYCIAN LETTER W*/ + RTUNI_ALPHA, /* U+010288: LYCIAN LETTER Z*/ + RTUNI_ALPHA, /* U+010289: LYCIAN LETTER TH*/ + RTUNI_ALPHA, /* U+01028a: LYCIAN LETTER J*/ + RTUNI_ALPHA, /* U+01028b: LYCIAN LETTER K*/ + RTUNI_ALPHA, /* U+01028c: LYCIAN LETTER Q*/ + RTUNI_ALPHA, /* U+01028d: LYCIAN LETTER L*/ + RTUNI_ALPHA, /* U+01028e: LYCIAN LETTER M*/ + RTUNI_ALPHA, /* U+01028f: LYCIAN LETTER N*/ + RTUNI_ALPHA, /* U+010290: LYCIAN LETTER MM*/ + RTUNI_ALPHA, /* U+010291: LYCIAN LETTER NN*/ + RTUNI_ALPHA, /* U+010292: LYCIAN LETTER U*/ + RTUNI_ALPHA, /* U+010293: LYCIAN LETTER P*/ + RTUNI_ALPHA, /* U+010294: LYCIAN LETTER KK*/ + RTUNI_ALPHA, /* U+010295: LYCIAN LETTER R*/ + RTUNI_ALPHA, /* U+010296: LYCIAN LETTER S*/ + RTUNI_ALPHA, /* U+010297: LYCIAN LETTER T*/ + RTUNI_ALPHA, /* U+010298: LYCIAN LETTER TT*/ + RTUNI_ALPHA, /* U+010299: LYCIAN LETTER AN*/ + RTUNI_ALPHA, /* U+01029a: LYCIAN LETTER EN*/ + RTUNI_ALPHA, /* U+01029b: LYCIAN LETTER H*/ + RTUNI_ALPHA, /* U+01029c: LYCIAN LETTER X*/ + 0, /* U+01029d: */ + 0, /* U+01029e: */ + 0, /* U+01029f: */ + RTUNI_ALPHA, /* U+0102a0: CARIAN LETTER A*/ + RTUNI_ALPHA, /* U+0102a1: CARIAN LETTER P2*/ + RTUNI_ALPHA, /* U+0102a2: CARIAN LETTER D*/ + RTUNI_ALPHA, /* U+0102a3: CARIAN LETTER L*/ + RTUNI_ALPHA, /* U+0102a4: CARIAN LETTER UUU*/ + RTUNI_ALPHA, /* U+0102a5: CARIAN LETTER R*/ + RTUNI_ALPHA, /* U+0102a6: CARIAN LETTER LD*/ + RTUNI_ALPHA, /* U+0102a7: CARIAN LETTER A2*/ + RTUNI_ALPHA, /* U+0102a8: CARIAN LETTER Q*/ + RTUNI_ALPHA, /* U+0102a9: CARIAN LETTER B*/ + RTUNI_ALPHA, /* U+0102aa: CARIAN LETTER M*/ + RTUNI_ALPHA, /* U+0102ab: CARIAN LETTER O*/ + RTUNI_ALPHA, /* U+0102ac: CARIAN LETTER D2*/ + RTUNI_ALPHA, /* U+0102ad: CARIAN LETTER T*/ + RTUNI_ALPHA, /* U+0102ae: CARIAN LETTER SH*/ + RTUNI_ALPHA, /* U+0102af: CARIAN LETTER SH2*/ + RTUNI_ALPHA, /* U+0102b0: CARIAN LETTER S*/ + RTUNI_ALPHA, /* U+0102b1: CARIAN LETTER C-18*/ + RTUNI_ALPHA, /* U+0102b2: CARIAN LETTER U*/ + RTUNI_ALPHA, /* U+0102b3: CARIAN LETTER NN*/ + RTUNI_ALPHA, /* U+0102b4: CARIAN LETTER X*/ + RTUNI_ALPHA, /* U+0102b5: CARIAN LETTER N*/ + RTUNI_ALPHA, /* U+0102b6: CARIAN LETTER TT2*/ + RTUNI_ALPHA, /* U+0102b7: CARIAN LETTER P*/ + RTUNI_ALPHA, /* U+0102b8: CARIAN LETTER SS*/ + RTUNI_ALPHA, /* U+0102b9: CARIAN LETTER I*/ + RTUNI_ALPHA, /* U+0102ba: CARIAN LETTER E*/ + RTUNI_ALPHA, /* U+0102bb: CARIAN LETTER UUUU*/ + RTUNI_ALPHA, /* U+0102bc: CARIAN LETTER K*/ + RTUNI_ALPHA, /* U+0102bd: CARIAN LETTER K2*/ + RTUNI_ALPHA, /* U+0102be: CARIAN LETTER ND*/ + RTUNI_ALPHA, /* U+0102bf: CARIAN LETTER UU*/ + RTUNI_ALPHA, /* U+0102c0: CARIAN LETTER G*/ + RTUNI_ALPHA, /* U+0102c1: CARIAN LETTER G2*/ + RTUNI_ALPHA, /* U+0102c2: CARIAN LETTER ST*/ + RTUNI_ALPHA, /* U+0102c3: CARIAN LETTER ST2*/ + RTUNI_ALPHA, /* U+0102c4: CARIAN LETTER NG*/ + RTUNI_ALPHA, /* U+0102c5: CARIAN LETTER II*/ + RTUNI_ALPHA, /* U+0102c6: CARIAN LETTER C-39*/ + RTUNI_ALPHA, /* U+0102c7: CARIAN LETTER TT*/ + RTUNI_ALPHA, /* U+0102c8: CARIAN LETTER UUU2*/ + RTUNI_ALPHA, /* U+0102c9: CARIAN LETTER RR*/ + RTUNI_ALPHA, /* U+0102ca: CARIAN LETTER MB*/ + RTUNI_ALPHA, /* U+0102cb: CARIAN LETTER MB2*/ + RTUNI_ALPHA, /* U+0102cc: CARIAN LETTER MB3*/ + RTUNI_ALPHA, /* U+0102cd: CARIAN LETTER MB4*/ + RTUNI_ALPHA, /* U+0102ce: CARIAN LETTER LD2*/ + RTUNI_ALPHA, /* U+0102cf: CARIAN LETTER E2*/ + RTUNI_ALPHA, /* U+0102d0: CARIAN LETTER UUU3*/ + 0, /* U+0102d1: */ + 0, /* U+0102d2: */ + 0, /* U+0102d3: */ + 0, /* U+0102d4: */ + 0, /* U+0102d5: */ + 0, /* U+0102d6: */ + 0, /* U+0102d7: */ + 0, /* U+0102d8: */ + 0, /* U+0102d9: */ + 0, /* U+0102da: */ + 0, /* U+0102db: */ + 0, /* U+0102dc: */ + 0, /* U+0102dd: */ + 0, /* U+0102de: */ + 0, /* U+0102df: */ + 0, /* U+0102e0: */ + 0, /* U+0102e1: */ + 0, /* U+0102e2: */ + 0, /* U+0102e3: */ + 0, /* U+0102e4: */ + 0, /* U+0102e5: */ + 0, /* U+0102e6: */ + 0, /* U+0102e7: */ + 0, /* U+0102e8: */ + 0, /* U+0102e9: */ + 0, /* U+0102ea: */ + 0, /* U+0102eb: */ + 0, /* U+0102ec: */ + 0, /* U+0102ed: */ + 0, /* U+0102ee: */ + 0, /* U+0102ef: */ + 0, /* U+0102f0: */ + 0, /* U+0102f1: */ + 0, /* U+0102f2: */ + 0, /* U+0102f3: */ + 0, /* U+0102f4: */ + 0, /* U+0102f5: */ + 0, /* U+0102f6: */ + 0, /* U+0102f7: */ + 0, /* U+0102f8: */ + 0, /* U+0102f9: */ + 0, /* U+0102fa: */ + 0, /* U+0102fb: */ + 0, /* U+0102fc: */ + 0, /* U+0102fd: */ + 0, /* U+0102fe: */ + 0, /* U+0102ff: */ + RTUNI_ALPHA, /* U+010300: OLD ITALIC LETTER A*/ + RTUNI_ALPHA, /* U+010301: OLD ITALIC LETTER BE*/ + RTUNI_ALPHA, /* U+010302: OLD ITALIC LETTER KE*/ + RTUNI_ALPHA, /* U+010303: OLD ITALIC LETTER DE*/ + RTUNI_ALPHA, /* U+010304: OLD ITALIC LETTER E*/ + RTUNI_ALPHA, /* U+010305: OLD ITALIC LETTER VE*/ + RTUNI_ALPHA, /* U+010306: OLD ITALIC LETTER ZE*/ + RTUNI_ALPHA, /* U+010307: OLD ITALIC LETTER HE*/ + RTUNI_ALPHA, /* U+010308: OLD ITALIC LETTER THE*/ + RTUNI_ALPHA, /* U+010309: OLD ITALIC LETTER I*/ + RTUNI_ALPHA, /* U+01030a: OLD ITALIC LETTER KA*/ + RTUNI_ALPHA, /* U+01030b: OLD ITALIC LETTER EL*/ + RTUNI_ALPHA, /* U+01030c: OLD ITALIC LETTER EM*/ + RTUNI_ALPHA, /* U+01030d: OLD ITALIC LETTER EN*/ + RTUNI_ALPHA, /* U+01030e: OLD ITALIC LETTER ESH*/ + RTUNI_ALPHA, /* U+01030f: OLD ITALIC LETTER O*/ + RTUNI_ALPHA, /* U+010310: OLD ITALIC LETTER PE*/ + RTUNI_ALPHA, /* U+010311: OLD ITALIC LETTER SHE*/ + RTUNI_ALPHA, /* U+010312: OLD ITALIC LETTER KU*/ + RTUNI_ALPHA, /* U+010313: OLD ITALIC LETTER ER*/ + RTUNI_ALPHA, /* U+010314: OLD ITALIC LETTER ES*/ + RTUNI_ALPHA, /* U+010315: OLD ITALIC LETTER TE*/ + RTUNI_ALPHA, /* U+010316: OLD ITALIC LETTER U*/ + RTUNI_ALPHA, /* U+010317: OLD ITALIC LETTER EKS*/ + RTUNI_ALPHA, /* U+010318: OLD ITALIC LETTER PHE*/ + RTUNI_ALPHA, /* U+010319: OLD ITALIC LETTER KHE*/ + RTUNI_ALPHA, /* U+01031a: OLD ITALIC LETTER EF*/ + RTUNI_ALPHA, /* U+01031b: OLD ITALIC LETTER ERS*/ + RTUNI_ALPHA, /* U+01031c: OLD ITALIC LETTER CHE*/ + RTUNI_ALPHA, /* U+01031d: OLD ITALIC LETTER II*/ + RTUNI_ALPHA, /* U+01031e: OLD ITALIC LETTER UU*/ + 0, /* U+01031f: */ + 0, /* U+010320: OLD ITALIC NUMERAL ONE*/ + 0, /* U+010321: OLD ITALIC NUMERAL FIVE*/ + 0, /* U+010322: OLD ITALIC NUMERAL TEN*/ + 0, /* U+010323: OLD ITALIC NUMERAL FIFTY*/ + 0, /* U+010324: */ + 0, /* U+010325: */ + 0, /* U+010326: */ + 0, /* U+010327: */ + 0, /* U+010328: */ + 0, /* U+010329: */ + 0, /* U+01032a: */ + 0, /* U+01032b: */ + 0, /* U+01032c: */ + 0, /* U+01032d: */ + 0, /* U+01032e: */ + 0, /* U+01032f: */ + RTUNI_ALPHA, /* U+010330: GOTHIC LETTER AHSA*/ + RTUNI_ALPHA, /* U+010331: GOTHIC LETTER BAIRKAN*/ + RTUNI_ALPHA, /* U+010332: GOTHIC LETTER GIBA*/ + RTUNI_ALPHA, /* U+010333: GOTHIC LETTER DAGS*/ + RTUNI_ALPHA, /* U+010334: GOTHIC LETTER AIHVUS*/ + RTUNI_ALPHA, /* U+010335: GOTHIC LETTER QAIRTHRA*/ + RTUNI_ALPHA, /* U+010336: GOTHIC LETTER IUJA*/ + RTUNI_ALPHA, /* U+010337: GOTHIC LETTER HAGL*/ + RTUNI_ALPHA, /* U+010338: GOTHIC LETTER THIUTH*/ + RTUNI_ALPHA, /* U+010339: GOTHIC LETTER EIS*/ + RTUNI_ALPHA, /* U+01033a: GOTHIC LETTER KUSMA*/ + RTUNI_ALPHA, /* U+01033b: GOTHIC LETTER LAGUS*/ + RTUNI_ALPHA, /* U+01033c: GOTHIC LETTER MANNA*/ + RTUNI_ALPHA, /* U+01033d: GOTHIC LETTER NAUTHS*/ + RTUNI_ALPHA, /* U+01033e: GOTHIC LETTER JER*/ + RTUNI_ALPHA, /* U+01033f: GOTHIC LETTER URUS*/ + RTUNI_ALPHA, /* U+010340: GOTHIC LETTER PAIRTHRA*/ + RTUNI_ALPHA, /* U+010341: GOTHIC LETTER NINETY*/ + RTUNI_ALPHA, /* U+010342: GOTHIC LETTER RAIDA*/ + RTUNI_ALPHA, /* U+010343: GOTHIC LETTER SAUIL*/ + RTUNI_ALPHA, /* U+010344: GOTHIC LETTER TEIWS*/ + RTUNI_ALPHA, /* U+010345: GOTHIC LETTER WINJA*/ + RTUNI_ALPHA, /* U+010346: GOTHIC LETTER FAIHU*/ + RTUNI_ALPHA, /* U+010347: GOTHIC LETTER IGGWS*/ + RTUNI_ALPHA, /* U+010348: GOTHIC LETTER HWAIR*/ + RTUNI_ALPHA, /* U+010349: GOTHIC LETTER OTHAL*/ + RTUNI_ALPHA, /* U+01034a: GOTHIC LETTER NINE HUNDRED*/ + 0, /* U+01034b: */ + 0, /* U+01034c: */ + 0, /* U+01034d: */ + 0, /* U+01034e: */ + 0, /* U+01034f: */ + 0, /* U+010350: */ + 0, /* U+010351: */ + 0, /* U+010352: */ + 0, /* U+010353: */ + 0, /* U+010354: */ + 0, /* U+010355: */ + 0, /* U+010356: */ + 0, /* U+010357: */ + 0, /* U+010358: */ + 0, /* U+010359: */ + 0, /* U+01035a: */ + 0, /* U+01035b: */ + 0, /* U+01035c: */ + 0, /* U+01035d: */ + 0, /* U+01035e: */ + 0, /* U+01035f: */ + 0, /* U+010360: */ + 0, /* U+010361: */ + 0, /* U+010362: */ + 0, /* U+010363: */ + 0, /* U+010364: */ + 0, /* U+010365: */ + 0, /* U+010366: */ + 0, /* U+010367: */ + 0, /* U+010368: */ + 0, /* U+010369: */ + 0, /* U+01036a: */ + 0, /* U+01036b: */ + 0, /* U+01036c: */ + 0, /* U+01036d: */ + 0, /* U+01036e: */ + 0, /* U+01036f: */ + 0, /* U+010370: */ + 0, /* U+010371: */ + 0, /* U+010372: */ + 0, /* U+010373: */ + 0, /* U+010374: */ + 0, /* U+010375: */ + 0, /* U+010376: */ + 0, /* U+010377: */ + 0, /* U+010378: */ + 0, /* U+010379: */ + 0, /* U+01037a: */ + 0, /* U+01037b: */ + 0, /* U+01037c: */ + 0, /* U+01037d: */ + 0, /* U+01037e: */ + 0, /* U+01037f: */ + RTUNI_ALPHA, /* U+010380: UGARITIC LETTER ALPA*/ + RTUNI_ALPHA, /* U+010381: UGARITIC LETTER BETA*/ + RTUNI_ALPHA, /* U+010382: UGARITIC LETTER GAMLA*/ + RTUNI_ALPHA, /* U+010383: UGARITIC LETTER KHA*/ + RTUNI_ALPHA, /* U+010384: UGARITIC LETTER DELTA*/ + RTUNI_ALPHA, /* U+010385: UGARITIC LETTER HO*/ + RTUNI_ALPHA, /* U+010386: UGARITIC LETTER WO*/ + RTUNI_ALPHA, /* U+010387: UGARITIC LETTER ZETA*/ + RTUNI_ALPHA, /* U+010388: UGARITIC LETTER HOTA*/ + RTUNI_ALPHA, /* U+010389: UGARITIC LETTER TET*/ + RTUNI_ALPHA, /* U+01038a: UGARITIC LETTER YOD*/ + RTUNI_ALPHA, /* U+01038b: UGARITIC LETTER KAF*/ + RTUNI_ALPHA, /* U+01038c: UGARITIC LETTER SHIN*/ + RTUNI_ALPHA, /* U+01038d: UGARITIC LETTER LAMDA*/ + RTUNI_ALPHA, /* U+01038e: UGARITIC LETTER MEM*/ + RTUNI_ALPHA, /* U+01038f: UGARITIC LETTER DHAL*/ + RTUNI_ALPHA, /* U+010390: UGARITIC LETTER NUN*/ + RTUNI_ALPHA, /* U+010391: UGARITIC LETTER ZU*/ + RTUNI_ALPHA, /* U+010392: UGARITIC LETTER SAMKA*/ + RTUNI_ALPHA, /* U+010393: UGARITIC LETTER AIN*/ + RTUNI_ALPHA, /* U+010394: UGARITIC LETTER PU*/ + RTUNI_ALPHA, /* U+010395: UGARITIC LETTER SADE*/ + RTUNI_ALPHA, /* U+010396: UGARITIC LETTER QOPA*/ + RTUNI_ALPHA, /* U+010397: UGARITIC LETTER RASHA*/ + RTUNI_ALPHA, /* U+010398: UGARITIC LETTER THANNA*/ + RTUNI_ALPHA, /* U+010399: UGARITIC LETTER GHAIN*/ + RTUNI_ALPHA, /* U+01039a: UGARITIC LETTER TO*/ + RTUNI_ALPHA, /* U+01039b: UGARITIC LETTER I*/ + RTUNI_ALPHA, /* U+01039c: UGARITIC LETTER U*/ + RTUNI_ALPHA, /* U+01039d: UGARITIC LETTER SSU*/ + 0, /* U+01039e: */ + 0, /* U+01039f: UGARITIC WORD DIVIDER*/ + RTUNI_ALPHA, /* U+0103a0: OLD PERSIAN SIGN A*/ + RTUNI_ALPHA, /* U+0103a1: OLD PERSIAN SIGN I*/ + RTUNI_ALPHA, /* U+0103a2: OLD PERSIAN SIGN U*/ + RTUNI_ALPHA, /* U+0103a3: OLD PERSIAN SIGN KA*/ + RTUNI_ALPHA, /* U+0103a4: OLD PERSIAN SIGN KU*/ + RTUNI_ALPHA, /* U+0103a5: OLD PERSIAN SIGN GA*/ + RTUNI_ALPHA, /* U+0103a6: OLD PERSIAN SIGN GU*/ + RTUNI_ALPHA, /* U+0103a7: OLD PERSIAN SIGN XA*/ + RTUNI_ALPHA, /* U+0103a8: OLD PERSIAN SIGN CA*/ + RTUNI_ALPHA, /* U+0103a9: OLD PERSIAN SIGN JA*/ + RTUNI_ALPHA, /* U+0103aa: OLD PERSIAN SIGN JI*/ + RTUNI_ALPHA, /* U+0103ab: OLD PERSIAN SIGN TA*/ + RTUNI_ALPHA, /* U+0103ac: OLD PERSIAN SIGN TU*/ + RTUNI_ALPHA, /* U+0103ad: OLD PERSIAN SIGN DA*/ + RTUNI_ALPHA, /* U+0103ae: OLD PERSIAN SIGN DI*/ + RTUNI_ALPHA, /* U+0103af: OLD PERSIAN SIGN DU*/ + RTUNI_ALPHA, /* U+0103b0: OLD PERSIAN SIGN THA*/ + RTUNI_ALPHA, /* U+0103b1: OLD PERSIAN SIGN PA*/ + RTUNI_ALPHA, /* U+0103b2: OLD PERSIAN SIGN BA*/ + RTUNI_ALPHA, /* U+0103b3: OLD PERSIAN SIGN FA*/ + RTUNI_ALPHA, /* U+0103b4: OLD PERSIAN SIGN NA*/ + RTUNI_ALPHA, /* U+0103b5: OLD PERSIAN SIGN NU*/ + RTUNI_ALPHA, /* U+0103b6: OLD PERSIAN SIGN MA*/ + RTUNI_ALPHA, /* U+0103b7: OLD PERSIAN SIGN MI*/ + RTUNI_ALPHA, /* U+0103b8: OLD PERSIAN SIGN MU*/ + RTUNI_ALPHA, /* U+0103b9: OLD PERSIAN SIGN YA*/ + RTUNI_ALPHA, /* U+0103ba: OLD PERSIAN SIGN VA*/ + RTUNI_ALPHA, /* U+0103bb: OLD PERSIAN SIGN VI*/ + RTUNI_ALPHA, /* U+0103bc: OLD PERSIAN SIGN RA*/ + RTUNI_ALPHA, /* U+0103bd: OLD PERSIAN SIGN RU*/ + RTUNI_ALPHA, /* U+0103be: OLD PERSIAN SIGN LA*/ + RTUNI_ALPHA, /* U+0103bf: OLD PERSIAN SIGN SA*/ + RTUNI_ALPHA, /* U+0103c0: OLD PERSIAN SIGN ZA*/ + RTUNI_ALPHA, /* U+0103c1: OLD PERSIAN SIGN SHA*/ + RTUNI_ALPHA, /* U+0103c2: OLD PERSIAN SIGN SSA*/ + RTUNI_ALPHA, /* U+0103c3: OLD PERSIAN SIGN HA*/ + 0, /* U+0103c4: */ + 0, /* U+0103c5: */ + 0, /* U+0103c6: */ + 0, /* U+0103c7: */ + RTUNI_ALPHA, /* U+0103c8: OLD PERSIAN SIGN AURAMAZDAA*/ + RTUNI_ALPHA, /* U+0103c9: OLD PERSIAN SIGN AURAMAZDAA-2*/ + RTUNI_ALPHA, /* U+0103ca: OLD PERSIAN SIGN AURAMAZDAAHA*/ + RTUNI_ALPHA, /* U+0103cb: OLD PERSIAN SIGN XSHAAYATHIYA*/ + RTUNI_ALPHA, /* U+0103cc: OLD PERSIAN SIGN DAHYAAUSH*/ + RTUNI_ALPHA, /* U+0103cd: OLD PERSIAN SIGN DAHYAAUSH-2*/ + RTUNI_ALPHA, /* U+0103ce: OLD PERSIAN SIGN BAGA*/ + RTUNI_ALPHA, /* U+0103cf: OLD PERSIAN SIGN BUUMISH*/ + 0, /* U+0103d0: OLD PERSIAN WORD DIVIDER*/ + RTUNI_ALPHA, /* U+0103d1: OLD PERSIAN NUMBER ONE*/ + RTUNI_ALPHA, /* U+0103d2: OLD PERSIAN NUMBER TWO*/ + RTUNI_ALPHA, /* U+0103d3: OLD PERSIAN NUMBER TEN*/ + RTUNI_ALPHA, /* U+0103d4: OLD PERSIAN NUMBER TWENTY*/ + RTUNI_ALPHA, /* U+0103d5: OLD PERSIAN NUMBER HUNDRED*/ + 0, /* U+0103d6: */ + 0, /* U+0103d7: */ + 0, /* U+0103d8: */ + 0, /* U+0103d9: */ + 0, /* U+0103da: */ + 0, /* U+0103db: */ + 0, /* U+0103dc: */ + 0, /* U+0103dd: */ + 0, /* U+0103de: */ + 0, /* U+0103df: */ + 0, /* U+0103e0: */ + 0, /* U+0103e1: */ + 0, /* U+0103e2: */ + 0, /* U+0103e3: */ + 0, /* U+0103e4: */ + 0, /* U+0103e5: */ + 0, /* U+0103e6: */ + 0, /* U+0103e7: */ + 0, /* U+0103e8: */ + 0, /* U+0103e9: */ + 0, /* U+0103ea: */ + 0, /* U+0103eb: */ + 0, /* U+0103ec: */ + 0, /* U+0103ed: */ + 0, /* U+0103ee: */ + 0, /* U+0103ef: */ + 0, /* U+0103f0: */ + 0, /* U+0103f1: */ + 0, /* U+0103f2: */ + 0, /* U+0103f3: */ + 0, /* U+0103f4: */ + 0, /* U+0103f5: */ + 0, /* U+0103f6: */ + 0, /* U+0103f7: */ + 0, /* U+0103f8: */ + 0, /* U+0103f9: */ + 0, /* U+0103fa: */ + 0, /* U+0103fb: */ + 0, /* U+0103fc: */ + 0, /* U+0103fd: */ + 0, /* U+0103fe: */ + 0, /* U+0103ff: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010400: DESERET CAPITAL LETTER LONG I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010401: DESERET CAPITAL LETTER LONG E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010402: DESERET CAPITAL LETTER LONG A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010403: DESERET CAPITAL LETTER LONG AH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010404: DESERET CAPITAL LETTER LONG O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010405: DESERET CAPITAL LETTER LONG OO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010406: DESERET CAPITAL LETTER SHORT I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010407: DESERET CAPITAL LETTER SHORT E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010408: DESERET CAPITAL LETTER SHORT A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010409: DESERET CAPITAL LETTER SHORT AH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01040a: DESERET CAPITAL LETTER SHORT O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01040b: DESERET CAPITAL LETTER SHORT OO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01040c: DESERET CAPITAL LETTER AY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01040d: DESERET CAPITAL LETTER OW*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01040e: DESERET CAPITAL LETTER WU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01040f: DESERET CAPITAL LETTER YEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010410: DESERET CAPITAL LETTER H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010411: DESERET CAPITAL LETTER PEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010412: DESERET CAPITAL LETTER BEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010413: DESERET CAPITAL LETTER TEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010414: DESERET CAPITAL LETTER DEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010415: DESERET CAPITAL LETTER CHEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010416: DESERET CAPITAL LETTER JEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010417: DESERET CAPITAL LETTER KAY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010418: DESERET CAPITAL LETTER GAY*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010419: DESERET CAPITAL LETTER EF*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01041a: DESERET CAPITAL LETTER VEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01041b: DESERET CAPITAL LETTER ETH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01041c: DESERET CAPITAL LETTER THEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01041d: DESERET CAPITAL LETTER ES*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01041e: DESERET CAPITAL LETTER ZEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01041f: DESERET CAPITAL LETTER ESH*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010420: DESERET CAPITAL LETTER ZHEE*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010421: DESERET CAPITAL LETTER ER*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010422: DESERET CAPITAL LETTER EL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010423: DESERET CAPITAL LETTER EM*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010424: DESERET CAPITAL LETTER EN*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010425: DESERET CAPITAL LETTER ENG*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010426: DESERET CAPITAL LETTER OI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+010427: DESERET CAPITAL LETTER EW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010428: DESERET SMALL LETTER LONG I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010429: DESERET SMALL LETTER LONG E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01042a: DESERET SMALL LETTER LONG A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01042b: DESERET SMALL LETTER LONG AH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01042c: DESERET SMALL LETTER LONG O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01042d: DESERET SMALL LETTER LONG OO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01042e: DESERET SMALL LETTER SHORT I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01042f: DESERET SMALL LETTER SHORT E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010430: DESERET SMALL LETTER SHORT A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010431: DESERET SMALL LETTER SHORT AH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010432: DESERET SMALL LETTER SHORT O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010433: DESERET SMALL LETTER SHORT OO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010434: DESERET SMALL LETTER AY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010435: DESERET SMALL LETTER OW*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010436: DESERET SMALL LETTER WU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010437: DESERET SMALL LETTER YEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010438: DESERET SMALL LETTER H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010439: DESERET SMALL LETTER PEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01043a: DESERET SMALL LETTER BEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01043b: DESERET SMALL LETTER TEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01043c: DESERET SMALL LETTER DEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01043d: DESERET SMALL LETTER CHEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01043e: DESERET SMALL LETTER JEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01043f: DESERET SMALL LETTER KAY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010440: DESERET SMALL LETTER GAY*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010441: DESERET SMALL LETTER EF*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010442: DESERET SMALL LETTER VEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010443: DESERET SMALL LETTER ETH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010444: DESERET SMALL LETTER THEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010445: DESERET SMALL LETTER ES*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010446: DESERET SMALL LETTER ZEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010447: DESERET SMALL LETTER ESH*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010448: DESERET SMALL LETTER ZHEE*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+010449: DESERET SMALL LETTER ER*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01044a: DESERET SMALL LETTER EL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01044b: DESERET SMALL LETTER EM*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01044c: DESERET SMALL LETTER EN*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01044d: DESERET SMALL LETTER ENG*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01044e: DESERET SMALL LETTER OI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01044f: DESERET SMALL LETTER EW*/ + RTUNI_ALPHA, /* U+010450: SHAVIAN LETTER PEEP*/ + RTUNI_ALPHA, /* U+010451: SHAVIAN LETTER TOT*/ + RTUNI_ALPHA, /* U+010452: SHAVIAN LETTER KICK*/ + RTUNI_ALPHA, /* U+010453: SHAVIAN LETTER FEE*/ + RTUNI_ALPHA, /* U+010454: SHAVIAN LETTER THIGH*/ + RTUNI_ALPHA, /* U+010455: SHAVIAN LETTER SO*/ + RTUNI_ALPHA, /* U+010456: SHAVIAN LETTER SURE*/ + RTUNI_ALPHA, /* U+010457: SHAVIAN LETTER CHURCH*/ + RTUNI_ALPHA, /* U+010458: SHAVIAN LETTER YEA*/ + RTUNI_ALPHA, /* U+010459: SHAVIAN LETTER HUNG*/ + RTUNI_ALPHA, /* U+01045a: SHAVIAN LETTER BIB*/ + RTUNI_ALPHA, /* U+01045b: SHAVIAN LETTER DEAD*/ + RTUNI_ALPHA, /* U+01045c: SHAVIAN LETTER GAG*/ + RTUNI_ALPHA, /* U+01045d: SHAVIAN LETTER VOW*/ + RTUNI_ALPHA, /* U+01045e: SHAVIAN LETTER THEY*/ + RTUNI_ALPHA, /* U+01045f: SHAVIAN LETTER ZOO*/ + RTUNI_ALPHA, /* U+010460: SHAVIAN LETTER MEASURE*/ + RTUNI_ALPHA, /* U+010461: SHAVIAN LETTER JUDGE*/ + RTUNI_ALPHA, /* U+010462: SHAVIAN LETTER WOE*/ + RTUNI_ALPHA, /* U+010463: SHAVIAN LETTER HA-HA*/ + RTUNI_ALPHA, /* U+010464: SHAVIAN LETTER LOLL*/ + RTUNI_ALPHA, /* U+010465: SHAVIAN LETTER MIME*/ + RTUNI_ALPHA, /* U+010466: SHAVIAN LETTER IF*/ + RTUNI_ALPHA, /* U+010467: SHAVIAN LETTER EGG*/ + RTUNI_ALPHA, /* U+010468: SHAVIAN LETTER ASH*/ + RTUNI_ALPHA, /* U+010469: SHAVIAN LETTER ADO*/ + RTUNI_ALPHA, /* U+01046a: SHAVIAN LETTER ON*/ + RTUNI_ALPHA, /* U+01046b: SHAVIAN LETTER WOOL*/ + RTUNI_ALPHA, /* U+01046c: SHAVIAN LETTER OUT*/ + RTUNI_ALPHA, /* U+01046d: SHAVIAN LETTER AH*/ + RTUNI_ALPHA, /* U+01046e: SHAVIAN LETTER ROAR*/ + RTUNI_ALPHA, /* U+01046f: SHAVIAN LETTER NUN*/ + RTUNI_ALPHA, /* U+010470: SHAVIAN LETTER EAT*/ + RTUNI_ALPHA, /* U+010471: SHAVIAN LETTER AGE*/ + RTUNI_ALPHA, /* U+010472: SHAVIAN LETTER ICE*/ + RTUNI_ALPHA, /* U+010473: SHAVIAN LETTER UP*/ + RTUNI_ALPHA, /* U+010474: SHAVIAN LETTER OAK*/ + RTUNI_ALPHA, /* U+010475: SHAVIAN LETTER OOZE*/ + RTUNI_ALPHA, /* U+010476: SHAVIAN LETTER OIL*/ + RTUNI_ALPHA, /* U+010477: SHAVIAN LETTER AWE*/ + RTUNI_ALPHA, /* U+010478: SHAVIAN LETTER ARE*/ + RTUNI_ALPHA, /* U+010479: SHAVIAN LETTER OR*/ + RTUNI_ALPHA, /* U+01047a: SHAVIAN LETTER AIR*/ + RTUNI_ALPHA, /* U+01047b: SHAVIAN LETTER ERR*/ + RTUNI_ALPHA, /* U+01047c: SHAVIAN LETTER ARRAY*/ + RTUNI_ALPHA, /* U+01047d: SHAVIAN LETTER EAR*/ + RTUNI_ALPHA, /* U+01047e: SHAVIAN LETTER IAN*/ + RTUNI_ALPHA, /* U+01047f: SHAVIAN LETTER YEW*/ + RTUNI_ALPHA, /* U+010480: OSMANYA LETTER ALEF*/ + RTUNI_ALPHA, /* U+010481: OSMANYA LETTER BA*/ + RTUNI_ALPHA, /* U+010482: OSMANYA LETTER TA*/ + RTUNI_ALPHA, /* U+010483: OSMANYA LETTER JA*/ + RTUNI_ALPHA, /* U+010484: OSMANYA LETTER XA*/ + RTUNI_ALPHA, /* U+010485: OSMANYA LETTER KHA*/ + RTUNI_ALPHA, /* U+010486: OSMANYA LETTER DEEL*/ + RTUNI_ALPHA, /* U+010487: OSMANYA LETTER RA*/ + RTUNI_ALPHA, /* U+010488: OSMANYA LETTER SA*/ + RTUNI_ALPHA, /* U+010489: OSMANYA LETTER SHIIN*/ + RTUNI_ALPHA, /* U+01048a: OSMANYA LETTER DHA*/ + RTUNI_ALPHA, /* U+01048b: OSMANYA LETTER CAYN*/ + RTUNI_ALPHA, /* U+01048c: OSMANYA LETTER GA*/ + RTUNI_ALPHA, /* U+01048d: OSMANYA LETTER FA*/ + RTUNI_ALPHA, /* U+01048e: OSMANYA LETTER QAAF*/ + RTUNI_ALPHA, /* U+01048f: OSMANYA LETTER KAAF*/ + RTUNI_ALPHA, /* U+010490: OSMANYA LETTER LAAN*/ + RTUNI_ALPHA, /* U+010491: OSMANYA LETTER MIIN*/ + RTUNI_ALPHA, /* U+010492: OSMANYA LETTER NUUN*/ + RTUNI_ALPHA, /* U+010493: OSMANYA LETTER WAW*/ + RTUNI_ALPHA, /* U+010494: OSMANYA LETTER HA*/ + RTUNI_ALPHA, /* U+010495: OSMANYA LETTER YA*/ + RTUNI_ALPHA, /* U+010496: OSMANYA LETTER A*/ + RTUNI_ALPHA, /* U+010497: OSMANYA LETTER E*/ + RTUNI_ALPHA, /* U+010498: OSMANYA LETTER I*/ + RTUNI_ALPHA, /* U+010499: OSMANYA LETTER O*/ + RTUNI_ALPHA, /* U+01049a: OSMANYA LETTER U*/ + RTUNI_ALPHA, /* U+01049b: OSMANYA LETTER AA*/ + RTUNI_ALPHA, /* U+01049c: OSMANYA LETTER EE*/ + RTUNI_ALPHA, /* U+01049d: OSMANYA LETTER OO*/ + 0, /* U+01049e: */ + 0, /* U+01049f: */ + RTUNI_DDIGIT, /* U+0104a0: OSMANYA DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0104a1: OSMANYA DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0104a2: OSMANYA DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0104a3: OSMANYA DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0104a4: OSMANYA DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0104a5: OSMANYA DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0104a6: OSMANYA DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0104a7: OSMANYA DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0104a8: OSMANYA DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0104a9: OSMANYA DIGIT NINE*/ + 0, /* U+0104aa: */ + 0, /* U+0104ab: */ + 0, /* U+0104ac: */ + 0, /* U+0104ad: */ + 0, /* U+0104ae: */ + 0, /* U+0104af: */ + 0, /* U+0104b0: */ + 0, /* U+0104b1: */ + 0, /* U+0104b2: */ + 0, /* U+0104b3: */ + 0, /* U+0104b4: */ + 0, /* U+0104b5: */ + 0, /* U+0104b6: */ + 0, /* U+0104b7: */ + 0, /* U+0104b8: */ + 0, /* U+0104b9: */ + 0, /* U+0104ba: */ + 0, /* U+0104bb: */ + 0, /* U+0104bc: */ + 0, /* U+0104bd: */ + 0, /* U+0104be: */ + 0, /* U+0104bf: */ + 0, /* U+0104c0: */ + 0, /* U+0104c1: */ + 0, /* U+0104c2: */ + 0, /* U+0104c3: */ + 0, /* U+0104c4: */ + 0, /* U+0104c5: */ + 0, /* U+0104c6: */ + 0, /* U+0104c7: */ + 0, /* U+0104c8: */ + 0, /* U+0104c9: */ + 0, /* U+0104ca: */ + 0, /* U+0104cb: */ + 0, /* U+0104cc: */ + 0, /* U+0104cd: */ + 0, /* U+0104ce: */ + 0, /* U+0104cf: */ + 0, /* U+0104d0: */ + 0, /* U+0104d1: */ + 0, /* U+0104d2: */ + 0, /* U+0104d3: */ + 0, /* U+0104d4: */ + 0, /* U+0104d5: */ + 0, /* U+0104d6: */ + 0, /* U+0104d7: */ + 0, /* U+0104d8: */ + 0, /* U+0104d9: */ + 0, /* U+0104da: */ + 0, /* U+0104db: */ + 0, /* U+0104dc: */ + 0, /* U+0104dd: */ + 0, /* U+0104de: */ + 0, /* U+0104df: */ + 0, /* U+0104e0: */ + 0, /* U+0104e1: */ + 0, /* U+0104e2: */ + 0, /* U+0104e3: */ + 0, /* U+0104e4: */ + 0, /* U+0104e5: */ + 0, /* U+0104e6: */ + 0, /* U+0104e7: */ + 0, /* U+0104e8: */ + 0, /* U+0104e9: */ + 0, /* U+0104ea: */ + 0, /* U+0104eb: */ + 0, /* U+0104ec: */ + 0, /* U+0104ed: */ + 0, /* U+0104ee: */ + 0, /* U+0104ef: */ + 0, /* U+0104f0: */ + 0, /* U+0104f1: */ + 0, /* U+0104f2: */ + 0, /* U+0104f3: */ + 0, /* U+0104f4: */ + 0, /* U+0104f5: */ + 0, /* U+0104f6: */ + 0, /* U+0104f7: */ + 0, /* U+0104f8: */ + 0, /* U+0104f9: */ + 0, /* U+0104fa: */ + 0, /* U+0104fb: */ + 0, /* U+0104fc: */ + 0, /* U+0104fd: */ + 0, /* U+0104fe: */ + 0, /* U+0104ff: */ + 0, /* U+010500: */ + 0, /* U+010501: */ + 0, /* U+010502: */ + 0, /* U+010503: */ + 0, /* U+010504: */ + 0, /* U+010505: */ + 0, /* U+010506: */ + 0, /* U+010507: */ + 0, /* U+010508: */ + 0, /* U+010509: */ + 0, /* U+01050a: */ + 0, /* U+01050b: */ + 0, /* U+01050c: */ + 0, /* U+01050d: */ + 0, /* U+01050e: */ + 0, /* U+01050f: */ + 0, /* U+010510: */ + 0, /* U+010511: */ + 0, /* U+010512: */ + 0, /* U+010513: */ + 0, /* U+010514: */ + 0, /* U+010515: */ + 0, /* U+010516: */ + 0, /* U+010517: */ + 0, /* U+010518: */ + 0, /* U+010519: */ + 0, /* U+01051a: */ + 0, /* U+01051b: */ + 0, /* U+01051c: */ + 0, /* U+01051d: */ + 0, /* U+01051e: */ + 0, /* U+01051f: */ + 0, /* U+010520: */ + 0, /* U+010521: */ + 0, /* U+010522: */ + 0, /* U+010523: */ + 0, /* U+010524: */ + 0, /* U+010525: */ + 0, /* U+010526: */ + 0, /* U+010527: */ + 0, /* U+010528: */ + 0, /* U+010529: */ + 0, /* U+01052a: */ + 0, /* U+01052b: */ + 0, /* U+01052c: */ + 0, /* U+01052d: */ + 0, /* U+01052e: */ + 0, /* U+01052f: */ + 0, /* U+010530: */ + 0, /* U+010531: */ + 0, /* U+010532: */ + 0, /* U+010533: */ + 0, /* U+010534: */ + 0, /* U+010535: */ + 0, /* U+010536: */ + 0, /* U+010537: */ + 0, /* U+010538: */ + 0, /* U+010539: */ + 0, /* U+01053a: */ + 0, /* U+01053b: */ + 0, /* U+01053c: */ + 0, /* U+01053d: */ + 0, /* U+01053e: */ + 0, /* U+01053f: */ + 0, /* U+010540: */ + 0, /* U+010541: */ + 0, /* U+010542: */ + 0, /* U+010543: */ + 0, /* U+010544: */ + 0, /* U+010545: */ + 0, /* U+010546: */ + 0, /* U+010547: */ + 0, /* U+010548: */ + 0, /* U+010549: */ + 0, /* U+01054a: */ + 0, /* U+01054b: */ + 0, /* U+01054c: */ + 0, /* U+01054d: */ + 0, /* U+01054e: */ + 0, /* U+01054f: */ + 0, /* U+010550: */ + 0, /* U+010551: */ + 0, /* U+010552: */ + 0, /* U+010553: */ + 0, /* U+010554: */ + 0, /* U+010555: */ + 0, /* U+010556: */ + 0, /* U+010557: */ + 0, /* U+010558: */ + 0, /* U+010559: */ + 0, /* U+01055a: */ + 0, /* U+01055b: */ + 0, /* U+01055c: */ + 0, /* U+01055d: */ + 0, /* U+01055e: */ + 0, /* U+01055f: */ + 0, /* U+010560: */ + 0, /* U+010561: */ + 0, /* U+010562: */ + 0, /* U+010563: */ + 0, /* U+010564: */ + 0, /* U+010565: */ + 0, /* U+010566: */ + 0, /* U+010567: */ + 0, /* U+010568: */ + 0, /* U+010569: */ + 0, /* U+01056a: */ + 0, /* U+01056b: */ + 0, /* U+01056c: */ + 0, /* U+01056d: */ + 0, /* U+01056e: */ + 0, /* U+01056f: */ + 0, /* U+010570: */ + 0, /* U+010571: */ + 0, /* U+010572: */ + 0, /* U+010573: */ + 0, /* U+010574: */ + 0, /* U+010575: */ + 0, /* U+010576: */ + 0, /* U+010577: */ + 0, /* U+010578: */ + 0, /* U+010579: */ + 0, /* U+01057a: */ + 0, /* U+01057b: */ + 0, /* U+01057c: */ + 0, /* U+01057d: */ + 0, /* U+01057e: */ + 0, /* U+01057f: */ + 0, /* U+010580: */ + 0, /* U+010581: */ + 0, /* U+010582: */ + 0, /* U+010583: */ + 0, /* U+010584: */ + 0, /* U+010585: */ + 0, /* U+010586: */ + 0, /* U+010587: */ + 0, /* U+010588: */ + 0, /* U+010589: */ + 0, /* U+01058a: */ + 0, /* U+01058b: */ + 0, /* U+01058c: */ + 0, /* U+01058d: */ + 0, /* U+01058e: */ + 0, /* U+01058f: */ + 0, /* U+010590: */ + 0, /* U+010591: */ + 0, /* U+010592: */ + 0, /* U+010593: */ + 0, /* U+010594: */ + 0, /* U+010595: */ + 0, /* U+010596: */ + 0, /* U+010597: */ + 0, /* U+010598: */ + 0, /* U+010599: */ + 0, /* U+01059a: */ + 0, /* U+01059b: */ + 0, /* U+01059c: */ + 0, /* U+01059d: */ + 0, /* U+01059e: */ + 0, /* U+01059f: */ + 0, /* U+0105a0: */ + 0, /* U+0105a1: */ + 0, /* U+0105a2: */ + 0, /* U+0105a3: */ + 0, /* U+0105a4: */ + 0, /* U+0105a5: */ + 0, /* U+0105a6: */ + 0, /* U+0105a7: */ + 0, /* U+0105a8: */ + 0, /* U+0105a9: */ + 0, /* U+0105aa: */ + 0, /* U+0105ab: */ + 0, /* U+0105ac: */ + 0, /* U+0105ad: */ + 0, /* U+0105ae: */ + 0, /* U+0105af: */ + 0, /* U+0105b0: */ + 0, /* U+0105b1: */ + 0, /* U+0105b2: */ + 0, /* U+0105b3: */ + 0, /* U+0105b4: */ + 0, /* U+0105b5: */ + 0, /* U+0105b6: */ + 0, /* U+0105b7: */ + 0, /* U+0105b8: */ + 0, /* U+0105b9: */ + 0, /* U+0105ba: */ + 0, /* U+0105bb: */ + 0, /* U+0105bc: */ + 0, /* U+0105bd: */ + 0, /* U+0105be: */ + 0, /* U+0105bf: */ + 0, /* U+0105c0: */ + 0, /* U+0105c1: */ + 0, /* U+0105c2: */ + 0, /* U+0105c3: */ + 0, /* U+0105c4: */ + 0, /* U+0105c5: */ + 0, /* U+0105c6: */ + 0, /* U+0105c7: */ + 0, /* U+0105c8: */ + 0, /* U+0105c9: */ + 0, /* U+0105ca: */ + 0, /* U+0105cb: */ + 0, /* U+0105cc: */ + 0, /* U+0105cd: */ + 0, /* U+0105ce: */ + 0, /* U+0105cf: */ + 0, /* U+0105d0: */ + 0, /* U+0105d1: */ + 0, /* U+0105d2: */ + 0, /* U+0105d3: */ + 0, /* U+0105d4: */ + 0, /* U+0105d5: */ + 0, /* U+0105d6: */ + 0, /* U+0105d7: */ + 0, /* U+0105d8: */ + 0, /* U+0105d9: */ + 0, /* U+0105da: */ + 0, /* U+0105db: */ + 0, /* U+0105dc: */ + 0, /* U+0105dd: */ + 0, /* U+0105de: */ + 0, /* U+0105df: */ + 0, /* U+0105e0: */ + 0, /* U+0105e1: */ + 0, /* U+0105e2: */ + 0, /* U+0105e3: */ + 0, /* U+0105e4: */ + 0, /* U+0105e5: */ + 0, /* U+0105e6: */ + 0, /* U+0105e7: */ + 0, /* U+0105e8: */ + 0, /* U+0105e9: */ + 0, /* U+0105ea: */ + 0, /* U+0105eb: */ + 0, /* U+0105ec: */ + 0, /* U+0105ed: */ + 0, /* U+0105ee: */ + 0, /* U+0105ef: */ + 0, /* U+0105f0: */ + 0, /* U+0105f1: */ + 0, /* U+0105f2: */ + 0, /* U+0105f3: */ + 0, /* U+0105f4: */ + 0, /* U+0105f5: */ + 0, /* U+0105f6: */ + 0, /* U+0105f7: */ + 0, /* U+0105f8: */ + 0, /* U+0105f9: */ + 0, /* U+0105fa: */ + 0, /* U+0105fb: */ + 0, /* U+0105fc: */ + 0, /* U+0105fd: */ + 0, /* U+0105fe: */ + 0, /* U+0105ff: */ + 0, /* U+010600: */ + 0, /* U+010601: */ + 0, /* U+010602: */ + 0, /* U+010603: */ + 0, /* U+010604: */ + 0, /* U+010605: */ + 0, /* U+010606: */ + 0, /* U+010607: */ + 0, /* U+010608: */ + 0, /* U+010609: */ + 0, /* U+01060a: */ + 0, /* U+01060b: */ + 0, /* U+01060c: */ + 0, /* U+01060d: */ + 0, /* U+01060e: */ + 0, /* U+01060f: */ + 0, /* U+010610: */ + 0, /* U+010611: */ + 0, /* U+010612: */ + 0, /* U+010613: */ + 0, /* U+010614: */ + 0, /* U+010615: */ + 0, /* U+010616: */ + 0, /* U+010617: */ + 0, /* U+010618: */ + 0, /* U+010619: */ + 0, /* U+01061a: */ + 0, /* U+01061b: */ + 0, /* U+01061c: */ + 0, /* U+01061d: */ + 0, /* U+01061e: */ + 0, /* U+01061f: */ + 0, /* U+010620: */ + 0, /* U+010621: */ + 0, /* U+010622: */ + 0, /* U+010623: */ + 0, /* U+010624: */ + 0, /* U+010625: */ + 0, /* U+010626: */ + 0, /* U+010627: */ + 0, /* U+010628: */ + 0, /* U+010629: */ + 0, /* U+01062a: */ + 0, /* U+01062b: */ + 0, /* U+01062c: */ + 0, /* U+01062d: */ + 0, /* U+01062e: */ + 0, /* U+01062f: */ + 0, /* U+010630: */ + 0, /* U+010631: */ + 0, /* U+010632: */ + 0, /* U+010633: */ + 0, /* U+010634: */ + 0, /* U+010635: */ + 0, /* U+010636: */ + 0, /* U+010637: */ + 0, /* U+010638: */ + 0, /* U+010639: */ + 0, /* U+01063a: */ + 0, /* U+01063b: */ + 0, /* U+01063c: */ + 0, /* U+01063d: */ + 0, /* U+01063e: */ + 0, /* U+01063f: */ + 0, /* U+010640: */ + 0, /* U+010641: */ + 0, /* U+010642: */ + 0, /* U+010643: */ + 0, /* U+010644: */ + 0, /* U+010645: */ + 0, /* U+010646: */ + 0, /* U+010647: */ + 0, /* U+010648: */ + 0, /* U+010649: */ + 0, /* U+01064a: */ + 0, /* U+01064b: */ + 0, /* U+01064c: */ + 0, /* U+01064d: */ + 0, /* U+01064e: */ + 0, /* U+01064f: */ + 0, /* U+010650: */ + 0, /* U+010651: */ + 0, /* U+010652: */ + 0, /* U+010653: */ + 0, /* U+010654: */ + 0, /* U+010655: */ + 0, /* U+010656: */ + 0, /* U+010657: */ + 0, /* U+010658: */ + 0, /* U+010659: */ + 0, /* U+01065a: */ + 0, /* U+01065b: */ + 0, /* U+01065c: */ + 0, /* U+01065d: */ + 0, /* U+01065e: */ + 0, /* U+01065f: */ + 0, /* U+010660: */ + 0, /* U+010661: */ + 0, /* U+010662: */ + 0, /* U+010663: */ + 0, /* U+010664: */ + 0, /* U+010665: */ + 0, /* U+010666: */ + 0, /* U+010667: */ + 0, /* U+010668: */ + 0, /* U+010669: */ + 0, /* U+01066a: */ + 0, /* U+01066b: */ + 0, /* U+01066c: */ + 0, /* U+01066d: */ + 0, /* U+01066e: */ + 0, /* U+01066f: */ + 0, /* U+010670: */ + 0, /* U+010671: */ + 0, /* U+010672: */ + 0, /* U+010673: */ + 0, /* U+010674: */ + 0, /* U+010675: */ + 0, /* U+010676: */ + 0, /* U+010677: */ + 0, /* U+010678: */ + 0, /* U+010679: */ + 0, /* U+01067a: */ + 0, /* U+01067b: */ + 0, /* U+01067c: */ + 0, /* U+01067d: */ + 0, /* U+01067e: */ + 0, /* U+01067f: */ + 0, /* U+010680: */ + 0, /* U+010681: */ + 0, /* U+010682: */ + 0, /* U+010683: */ + 0, /* U+010684: */ + 0, /* U+010685: */ + 0, /* U+010686: */ + 0, /* U+010687: */ + 0, /* U+010688: */ + 0, /* U+010689: */ + 0, /* U+01068a: */ + 0, /* U+01068b: */ + 0, /* U+01068c: */ + 0, /* U+01068d: */ + 0, /* U+01068e: */ + 0, /* U+01068f: */ + 0, /* U+010690: */ + 0, /* U+010691: */ + 0, /* U+010692: */ + 0, /* U+010693: */ + 0, /* U+010694: */ + 0, /* U+010695: */ + 0, /* U+010696: */ + 0, /* U+010697: */ + 0, /* U+010698: */ + 0, /* U+010699: */ + 0, /* U+01069a: */ + 0, /* U+01069b: */ + 0, /* U+01069c: */ + 0, /* U+01069d: */ + 0, /* U+01069e: */ + 0, /* U+01069f: */ + 0, /* U+0106a0: */ + 0, /* U+0106a1: */ + 0, /* U+0106a2: */ + 0, /* U+0106a3: */ + 0, /* U+0106a4: */ + 0, /* U+0106a5: */ + 0, /* U+0106a6: */ + 0, /* U+0106a7: */ + 0, /* U+0106a8: */ + 0, /* U+0106a9: */ + 0, /* U+0106aa: */ + 0, /* U+0106ab: */ + 0, /* U+0106ac: */ + 0, /* U+0106ad: */ + 0, /* U+0106ae: */ + 0, /* U+0106af: */ + 0, /* U+0106b0: */ + 0, /* U+0106b1: */ + 0, /* U+0106b2: */ + 0, /* U+0106b3: */ + 0, /* U+0106b4: */ + 0, /* U+0106b5: */ + 0, /* U+0106b6: */ + 0, /* U+0106b7: */ + 0, /* U+0106b8: */ + 0, /* U+0106b9: */ + 0, /* U+0106ba: */ + 0, /* U+0106bb: */ + 0, /* U+0106bc: */ + 0, /* U+0106bd: */ + 0, /* U+0106be: */ + 0, /* U+0106bf: */ + 0, /* U+0106c0: */ + 0, /* U+0106c1: */ + 0, /* U+0106c2: */ + 0, /* U+0106c3: */ + 0, /* U+0106c4: */ + 0, /* U+0106c5: */ + 0, /* U+0106c6: */ + 0, /* U+0106c7: */ + 0, /* U+0106c8: */ + 0, /* U+0106c9: */ + 0, /* U+0106ca: */ + 0, /* U+0106cb: */ + 0, /* U+0106cc: */ + 0, /* U+0106cd: */ + 0, /* U+0106ce: */ + 0, /* U+0106cf: */ + 0, /* U+0106d0: */ + 0, /* U+0106d1: */ + 0, /* U+0106d2: */ + 0, /* U+0106d3: */ + 0, /* U+0106d4: */ + 0, /* U+0106d5: */ + 0, /* U+0106d6: */ + 0, /* U+0106d7: */ + 0, /* U+0106d8: */ + 0, /* U+0106d9: */ + 0, /* U+0106da: */ + 0, /* U+0106db: */ + 0, /* U+0106dc: */ + 0, /* U+0106dd: */ + 0, /* U+0106de: */ + 0, /* U+0106df: */ + 0, /* U+0106e0: */ + 0, /* U+0106e1: */ + 0, /* U+0106e2: */ + 0, /* U+0106e3: */ + 0, /* U+0106e4: */ + 0, /* U+0106e5: */ + 0, /* U+0106e6: */ + 0, /* U+0106e7: */ + 0, /* U+0106e8: */ + 0, /* U+0106e9: */ + 0, /* U+0106ea: */ + 0, /* U+0106eb: */ + 0, /* U+0106ec: */ + 0, /* U+0106ed: */ + 0, /* U+0106ee: */ + 0, /* U+0106ef: */ + 0, /* U+0106f0: */ + 0, /* U+0106f1: */ + 0, /* U+0106f2: */ + 0, /* U+0106f3: */ + 0, /* U+0106f4: */ + 0, /* U+0106f5: */ + 0, /* U+0106f6: */ + 0, /* U+0106f7: */ + 0, /* U+0106f8: */ + 0, /* U+0106f9: */ + 0, /* U+0106fa: */ + 0, /* U+0106fb: */ + 0, /* U+0106fc: */ + 0, /* U+0106fd: */ + 0, /* U+0106fe: */ + 0, /* U+0106ff: */ + 0, /* U+010700: */ + 0, /* U+010701: */ + 0, /* U+010702: */ + 0, /* U+010703: */ + 0, /* U+010704: */ + 0, /* U+010705: */ + 0, /* U+010706: */ + 0, /* U+010707: */ + 0, /* U+010708: */ + 0, /* U+010709: */ + 0, /* U+01070a: */ + 0, /* U+01070b: */ + 0, /* U+01070c: */ + 0, /* U+01070d: */ + 0, /* U+01070e: */ + 0, /* U+01070f: */ + 0, /* U+010710: */ + 0, /* U+010711: */ + 0, /* U+010712: */ + 0, /* U+010713: */ + 0, /* U+010714: */ + 0, /* U+010715: */ + 0, /* U+010716: */ + 0, /* U+010717: */ + 0, /* U+010718: */ + 0, /* U+010719: */ + 0, /* U+01071a: */ + 0, /* U+01071b: */ + 0, /* U+01071c: */ + 0, /* U+01071d: */ + 0, /* U+01071e: */ + 0, /* U+01071f: */ + 0, /* U+010720: */ + 0, /* U+010721: */ + 0, /* U+010722: */ + 0, /* U+010723: */ + 0, /* U+010724: */ + 0, /* U+010725: */ + 0, /* U+010726: */ + 0, /* U+010727: */ + 0, /* U+010728: */ + 0, /* U+010729: */ + 0, /* U+01072a: */ + 0, /* U+01072b: */ + 0, /* U+01072c: */ + 0, /* U+01072d: */ + 0, /* U+01072e: */ + 0, /* U+01072f: */ + 0, /* U+010730: */ + 0, /* U+010731: */ + 0, /* U+010732: */ + 0, /* U+010733: */ + 0, /* U+010734: */ + 0, /* U+010735: */ + 0, /* U+010736: */ + 0, /* U+010737: */ + 0, /* U+010738: */ + 0, /* U+010739: */ + 0, /* U+01073a: */ + 0, /* U+01073b: */ + 0, /* U+01073c: */ + 0, /* U+01073d: */ + 0, /* U+01073e: */ + 0, /* U+01073f: */ + 0, /* U+010740: */ + 0, /* U+010741: */ + 0, /* U+010742: */ + 0, /* U+010743: */ + 0, /* U+010744: */ + 0, /* U+010745: */ + 0, /* U+010746: */ + 0, /* U+010747: */ + 0, /* U+010748: */ + 0, /* U+010749: */ + 0, /* U+01074a: */ + 0, /* U+01074b: */ + 0, /* U+01074c: */ + 0, /* U+01074d: */ + 0, /* U+01074e: */ + 0, /* U+01074f: */ + 0, /* U+010750: */ + 0, /* U+010751: */ + 0, /* U+010752: */ + 0, /* U+010753: */ + 0, /* U+010754: */ + 0, /* U+010755: */ + 0, /* U+010756: */ + 0, /* U+010757: */ + 0, /* U+010758: */ + 0, /* U+010759: */ + 0, /* U+01075a: */ + 0, /* U+01075b: */ + 0, /* U+01075c: */ + 0, /* U+01075d: */ + 0, /* U+01075e: */ + 0, /* U+01075f: */ + 0, /* U+010760: */ + 0, /* U+010761: */ + 0, /* U+010762: */ + 0, /* U+010763: */ + 0, /* U+010764: */ + 0, /* U+010765: */ + 0, /* U+010766: */ + 0, /* U+010767: */ + 0, /* U+010768: */ + 0, /* U+010769: */ + 0, /* U+01076a: */ + 0, /* U+01076b: */ + 0, /* U+01076c: */ + 0, /* U+01076d: */ + 0, /* U+01076e: */ + 0, /* U+01076f: */ + 0, /* U+010770: */ + 0, /* U+010771: */ + 0, /* U+010772: */ + 0, /* U+010773: */ + 0, /* U+010774: */ + 0, /* U+010775: */ + 0, /* U+010776: */ + 0, /* U+010777: */ + 0, /* U+010778: */ + 0, /* U+010779: */ + 0, /* U+01077a: */ + 0, /* U+01077b: */ + 0, /* U+01077c: */ + 0, /* U+01077d: */ + 0, /* U+01077e: */ + 0, /* U+01077f: */ + 0, /* U+010780: */ + 0, /* U+010781: */ + 0, /* U+010782: */ + 0, /* U+010783: */ + 0, /* U+010784: */ + 0, /* U+010785: */ + 0, /* U+010786: */ + 0, /* U+010787: */ + 0, /* U+010788: */ + 0, /* U+010789: */ + 0, /* U+01078a: */ + 0, /* U+01078b: */ + 0, /* U+01078c: */ + 0, /* U+01078d: */ + 0, /* U+01078e: */ + 0, /* U+01078f: */ + 0, /* U+010790: */ + 0, /* U+010791: */ + 0, /* U+010792: */ + 0, /* U+010793: */ + 0, /* U+010794: */ + 0, /* U+010795: */ + 0, /* U+010796: */ + 0, /* U+010797: */ + 0, /* U+010798: */ + 0, /* U+010799: */ + 0, /* U+01079a: */ + 0, /* U+01079b: */ + 0, /* U+01079c: */ + 0, /* U+01079d: */ + 0, /* U+01079e: */ + 0, /* U+01079f: */ + 0, /* U+0107a0: */ + 0, /* U+0107a1: */ + 0, /* U+0107a2: */ + 0, /* U+0107a3: */ + 0, /* U+0107a4: */ + 0, /* U+0107a5: */ + 0, /* U+0107a6: */ + 0, /* U+0107a7: */ + 0, /* U+0107a8: */ + 0, /* U+0107a9: */ + 0, /* U+0107aa: */ + 0, /* U+0107ab: */ + 0, /* U+0107ac: */ + 0, /* U+0107ad: */ + 0, /* U+0107ae: */ + 0, /* U+0107af: */ + 0, /* U+0107b0: */ + 0, /* U+0107b1: */ + 0, /* U+0107b2: */ + 0, /* U+0107b3: */ + 0, /* U+0107b4: */ + 0, /* U+0107b5: */ + 0, /* U+0107b6: */ + 0, /* U+0107b7: */ + 0, /* U+0107b8: */ + 0, /* U+0107b9: */ + 0, /* U+0107ba: */ + 0, /* U+0107bb: */ + 0, /* U+0107bc: */ + 0, /* U+0107bd: */ + 0, /* U+0107be: */ + 0, /* U+0107bf: */ + 0, /* U+0107c0: */ + 0, /* U+0107c1: */ + 0, /* U+0107c2: */ + 0, /* U+0107c3: */ + 0, /* U+0107c4: */ + 0, /* U+0107c5: */ + 0, /* U+0107c6: */ + 0, /* U+0107c7: */ + 0, /* U+0107c8: */ + 0, /* U+0107c9: */ + 0, /* U+0107ca: */ + 0, /* U+0107cb: */ + 0, /* U+0107cc: */ + 0, /* U+0107cd: */ + 0, /* U+0107ce: */ + 0, /* U+0107cf: */ + 0, /* U+0107d0: */ + 0, /* U+0107d1: */ + 0, /* U+0107d2: */ + 0, /* U+0107d3: */ + 0, /* U+0107d4: */ + 0, /* U+0107d5: */ + 0, /* U+0107d6: */ + 0, /* U+0107d7: */ + 0, /* U+0107d8: */ + 0, /* U+0107d9: */ + 0, /* U+0107da: */ + 0, /* U+0107db: */ + 0, /* U+0107dc: */ + 0, /* U+0107dd: */ + 0, /* U+0107de: */ + 0, /* U+0107df: */ + 0, /* U+0107e0: */ + 0, /* U+0107e1: */ + 0, /* U+0107e2: */ + 0, /* U+0107e3: */ + 0, /* U+0107e4: */ + 0, /* U+0107e5: */ + 0, /* U+0107e6: */ + 0, /* U+0107e7: */ + 0, /* U+0107e8: */ + 0, /* U+0107e9: */ + 0, /* U+0107ea: */ + 0, /* U+0107eb: */ + 0, /* U+0107ec: */ + 0, /* U+0107ed: */ + 0, /* U+0107ee: */ + 0, /* U+0107ef: */ + 0, /* U+0107f0: */ + 0, /* U+0107f1: */ + 0, /* U+0107f2: */ + 0, /* U+0107f3: */ + 0, /* U+0107f4: */ + 0, /* U+0107f5: */ + 0, /* U+0107f6: */ + 0, /* U+0107f7: */ + 0, /* U+0107f8: */ + 0, /* U+0107f9: */ + 0, /* U+0107fa: */ + 0, /* U+0107fb: */ + 0, /* U+0107fc: */ + 0, /* U+0107fd: */ + 0, /* U+0107fe: */ + 0, /* U+0107ff: */ + RTUNI_ALPHA, /* U+010800: CYPRIOT SYLLABLE A*/ + RTUNI_ALPHA, /* U+010801: CYPRIOT SYLLABLE E*/ + RTUNI_ALPHA, /* U+010802: CYPRIOT SYLLABLE I*/ + RTUNI_ALPHA, /* U+010803: CYPRIOT SYLLABLE O*/ + RTUNI_ALPHA, /* U+010804: CYPRIOT SYLLABLE U*/ + RTUNI_ALPHA, /* U+010805: CYPRIOT SYLLABLE JA*/ + 0, /* U+010806: */ + 0, /* U+010807: */ + RTUNI_ALPHA, /* U+010808: CYPRIOT SYLLABLE JO*/ + 0, /* U+010809: */ + RTUNI_ALPHA, /* U+01080a: CYPRIOT SYLLABLE KA*/ + RTUNI_ALPHA, /* U+01080b: CYPRIOT SYLLABLE KE*/ + RTUNI_ALPHA, /* U+01080c: CYPRIOT SYLLABLE KI*/ + RTUNI_ALPHA, /* U+01080d: CYPRIOT SYLLABLE KO*/ + RTUNI_ALPHA, /* U+01080e: CYPRIOT SYLLABLE KU*/ + RTUNI_ALPHA, /* U+01080f: CYPRIOT SYLLABLE LA*/ + RTUNI_ALPHA, /* U+010810: CYPRIOT SYLLABLE LE*/ + RTUNI_ALPHA, /* U+010811: CYPRIOT SYLLABLE LI*/ + RTUNI_ALPHA, /* U+010812: CYPRIOT SYLLABLE LO*/ + RTUNI_ALPHA, /* U+010813: CYPRIOT SYLLABLE LU*/ + RTUNI_ALPHA, /* U+010814: CYPRIOT SYLLABLE MA*/ + RTUNI_ALPHA, /* U+010815: CYPRIOT SYLLABLE ME*/ + RTUNI_ALPHA, /* U+010816: CYPRIOT SYLLABLE MI*/ + RTUNI_ALPHA, /* U+010817: CYPRIOT SYLLABLE MO*/ + RTUNI_ALPHA, /* U+010818: CYPRIOT SYLLABLE MU*/ + RTUNI_ALPHA, /* U+010819: CYPRIOT SYLLABLE NA*/ + RTUNI_ALPHA, /* U+01081a: CYPRIOT SYLLABLE NE*/ + RTUNI_ALPHA, /* U+01081b: CYPRIOT SYLLABLE NI*/ + RTUNI_ALPHA, /* U+01081c: CYPRIOT SYLLABLE NO*/ + RTUNI_ALPHA, /* U+01081d: CYPRIOT SYLLABLE NU*/ + RTUNI_ALPHA, /* U+01081e: CYPRIOT SYLLABLE PA*/ + RTUNI_ALPHA, /* U+01081f: CYPRIOT SYLLABLE PE*/ + RTUNI_ALPHA, /* U+010820: CYPRIOT SYLLABLE PI*/ + RTUNI_ALPHA, /* U+010821: CYPRIOT SYLLABLE PO*/ + RTUNI_ALPHA, /* U+010822: CYPRIOT SYLLABLE PU*/ + RTUNI_ALPHA, /* U+010823: CYPRIOT SYLLABLE RA*/ + RTUNI_ALPHA, /* U+010824: CYPRIOT SYLLABLE RE*/ + RTUNI_ALPHA, /* U+010825: CYPRIOT SYLLABLE RI*/ + RTUNI_ALPHA, /* U+010826: CYPRIOT SYLLABLE RO*/ + RTUNI_ALPHA, /* U+010827: CYPRIOT SYLLABLE RU*/ + RTUNI_ALPHA, /* U+010828: CYPRIOT SYLLABLE SA*/ + RTUNI_ALPHA, /* U+010829: CYPRIOT SYLLABLE SE*/ + RTUNI_ALPHA, /* U+01082a: CYPRIOT SYLLABLE SI*/ + RTUNI_ALPHA, /* U+01082b: CYPRIOT SYLLABLE SO*/ + RTUNI_ALPHA, /* U+01082c: CYPRIOT SYLLABLE SU*/ + RTUNI_ALPHA, /* U+01082d: CYPRIOT SYLLABLE TA*/ + RTUNI_ALPHA, /* U+01082e: CYPRIOT SYLLABLE TE*/ + RTUNI_ALPHA, /* U+01082f: CYPRIOT SYLLABLE TI*/ + RTUNI_ALPHA, /* U+010830: CYPRIOT SYLLABLE TO*/ + RTUNI_ALPHA, /* U+010831: CYPRIOT SYLLABLE TU*/ + RTUNI_ALPHA, /* U+010832: CYPRIOT SYLLABLE WA*/ + RTUNI_ALPHA, /* U+010833: CYPRIOT SYLLABLE WE*/ + RTUNI_ALPHA, /* U+010834: CYPRIOT SYLLABLE WI*/ + RTUNI_ALPHA, /* U+010835: CYPRIOT SYLLABLE WO*/ + 0, /* U+010836: */ + RTUNI_ALPHA, /* U+010837: CYPRIOT SYLLABLE XA*/ + RTUNI_ALPHA, /* U+010838: CYPRIOT SYLLABLE XE*/ + 0, /* U+010839: */ + 0, /* U+01083a: */ + 0, /* U+01083b: */ + RTUNI_ALPHA, /* U+01083c: CYPRIOT SYLLABLE ZA*/ + 0, /* U+01083d: */ + 0, /* U+01083e: */ + RTUNI_ALPHA, /* U+01083f: CYPRIOT SYLLABLE ZO*/ + RTUNI_ALPHA, /* U+010840: IMPERIAL ARAMAIC LETTER ALEPH*/ + RTUNI_ALPHA, /* U+010841: IMPERIAL ARAMAIC LETTER BETH*/ + RTUNI_ALPHA, /* U+010842: IMPERIAL ARAMAIC LETTER GIMEL*/ + RTUNI_ALPHA, /* U+010843: IMPERIAL ARAMAIC LETTER DALETH*/ + RTUNI_ALPHA, /* U+010844: IMPERIAL ARAMAIC LETTER HE*/ + RTUNI_ALPHA, /* U+010845: IMPERIAL ARAMAIC LETTER WAW*/ + RTUNI_ALPHA, /* U+010846: IMPERIAL ARAMAIC LETTER ZAYIN*/ + RTUNI_ALPHA, /* U+010847: IMPERIAL ARAMAIC LETTER HETH*/ + RTUNI_ALPHA, /* U+010848: IMPERIAL ARAMAIC LETTER TETH*/ + RTUNI_ALPHA, /* U+010849: IMPERIAL ARAMAIC LETTER YODH*/ + RTUNI_ALPHA, /* U+01084a: IMPERIAL ARAMAIC LETTER KAPH*/ + RTUNI_ALPHA, /* U+01084b: IMPERIAL ARAMAIC LETTER LAMEDH*/ + RTUNI_ALPHA, /* U+01084c: IMPERIAL ARAMAIC LETTER MEM*/ + RTUNI_ALPHA, /* U+01084d: IMPERIAL ARAMAIC LETTER NUN*/ + RTUNI_ALPHA, /* U+01084e: IMPERIAL ARAMAIC LETTER SAMEKH*/ + RTUNI_ALPHA, /* U+01084f: IMPERIAL ARAMAIC LETTER AYIN*/ + RTUNI_ALPHA, /* U+010850: IMPERIAL ARAMAIC LETTER PE*/ + RTUNI_ALPHA, /* U+010851: IMPERIAL ARAMAIC LETTER SADHE*/ + RTUNI_ALPHA, /* U+010852: IMPERIAL ARAMAIC LETTER QOPH*/ + RTUNI_ALPHA, /* U+010853: IMPERIAL ARAMAIC LETTER RESH*/ + RTUNI_ALPHA, /* U+010854: IMPERIAL ARAMAIC LETTER SHIN*/ + RTUNI_ALPHA, /* U+010855: IMPERIAL ARAMAIC LETTER TAW*/ + 0, /* U+010856: */ + 0, /* U+010857: IMPERIAL ARAMAIC SECTION SIGN*/ + 0, /* U+010858: IMPERIAL ARAMAIC NUMBER ONE*/ + 0, /* U+010859: IMPERIAL ARAMAIC NUMBER TWO*/ + 0, /* U+01085a: IMPERIAL ARAMAIC NUMBER THREE*/ + 0, /* U+01085b: IMPERIAL ARAMAIC NUMBER TEN*/ + 0, /* U+01085c: IMPERIAL ARAMAIC NUMBER TWENTY*/ + 0, /* U+01085d: IMPERIAL ARAMAIC NUMBER ONE HUNDRED*/ + 0, /* U+01085e: IMPERIAL ARAMAIC NUMBER ONE THOUSAND*/ + 0, /* U+01085f: IMPERIAL ARAMAIC NUMBER TEN THOUSAND*/ + 0, /* U+010860: */ + 0, /* U+010861: */ + 0, /* U+010862: */ + 0, /* U+010863: */ + 0, /* U+010864: */ + 0, /* U+010865: */ + 0, /* U+010866: */ + 0, /* U+010867: */ + 0, /* U+010868: */ + 0, /* U+010869: */ + 0, /* U+01086a: */ + 0, /* U+01086b: */ + 0, /* U+01086c: */ + 0, /* U+01086d: */ + 0, /* U+01086e: */ + 0, /* U+01086f: */ + 0, /* U+010870: */ + 0, /* U+010871: */ + 0, /* U+010872: */ + 0, /* U+010873: */ + 0, /* U+010874: */ + 0, /* U+010875: */ + 0, /* U+010876: */ + 0, /* U+010877: */ + 0, /* U+010878: */ + 0, /* U+010879: */ + 0, /* U+01087a: */ + 0, /* U+01087b: */ + 0, /* U+01087c: */ + 0, /* U+01087d: */ + 0, /* U+01087e: */ + 0, /* U+01087f: */ + 0, /* U+010880: */ + 0, /* U+010881: */ + 0, /* U+010882: */ + 0, /* U+010883: */ + 0, /* U+010884: */ + 0, /* U+010885: */ + 0, /* U+010886: */ + 0, /* U+010887: */ + 0, /* U+010888: */ + 0, /* U+010889: */ + 0, /* U+01088a: */ + 0, /* U+01088b: */ + 0, /* U+01088c: */ + 0, /* U+01088d: */ + 0, /* U+01088e: */ + 0, /* U+01088f: */ + 0, /* U+010890: */ + 0, /* U+010891: */ + 0, /* U+010892: */ + 0, /* U+010893: */ + 0, /* U+010894: */ + 0, /* U+010895: */ + 0, /* U+010896: */ + 0, /* U+010897: */ + 0, /* U+010898: */ + 0, /* U+010899: */ + 0, /* U+01089a: */ + 0, /* U+01089b: */ + 0, /* U+01089c: */ + 0, /* U+01089d: */ + 0, /* U+01089e: */ + 0, /* U+01089f: */ + 0, /* U+0108a0: */ + 0, /* U+0108a1: */ + 0, /* U+0108a2: */ + 0, /* U+0108a3: */ + 0, /* U+0108a4: */ + 0, /* U+0108a5: */ + 0, /* U+0108a6: */ + 0, /* U+0108a7: */ + 0, /* U+0108a8: */ + 0, /* U+0108a9: */ + 0, /* U+0108aa: */ + 0, /* U+0108ab: */ + 0, /* U+0108ac: */ + 0, /* U+0108ad: */ + 0, /* U+0108ae: */ + 0, /* U+0108af: */ + 0, /* U+0108b0: */ + 0, /* U+0108b1: */ + 0, /* U+0108b2: */ + 0, /* U+0108b3: */ + 0, /* U+0108b4: */ + 0, /* U+0108b5: */ + 0, /* U+0108b6: */ + 0, /* U+0108b7: */ + 0, /* U+0108b8: */ + 0, /* U+0108b9: */ + 0, /* U+0108ba: */ + 0, /* U+0108bb: */ + 0, /* U+0108bc: */ + 0, /* U+0108bd: */ + 0, /* U+0108be: */ + 0, /* U+0108bf: */ + 0, /* U+0108c0: */ + 0, /* U+0108c1: */ + 0, /* U+0108c2: */ + 0, /* U+0108c3: */ + 0, /* U+0108c4: */ + 0, /* U+0108c5: */ + 0, /* U+0108c6: */ + 0, /* U+0108c7: */ + 0, /* U+0108c8: */ + 0, /* U+0108c9: */ + 0, /* U+0108ca: */ + 0, /* U+0108cb: */ + 0, /* U+0108cc: */ + 0, /* U+0108cd: */ + 0, /* U+0108ce: */ + 0, /* U+0108cf: */ + 0, /* U+0108d0: */ + 0, /* U+0108d1: */ + 0, /* U+0108d2: */ + 0, /* U+0108d3: */ + 0, /* U+0108d4: */ + 0, /* U+0108d5: */ + 0, /* U+0108d6: */ + 0, /* U+0108d7: */ + 0, /* U+0108d8: */ + 0, /* U+0108d9: */ + 0, /* U+0108da: */ + 0, /* U+0108db: */ + 0, /* U+0108dc: */ + 0, /* U+0108dd: */ + 0, /* U+0108de: */ + 0, /* U+0108df: */ + 0, /* U+0108e0: */ + 0, /* U+0108e1: */ + 0, /* U+0108e2: */ + 0, /* U+0108e3: */ + 0, /* U+0108e4: */ + 0, /* U+0108e5: */ + 0, /* U+0108e6: */ + 0, /* U+0108e7: */ + 0, /* U+0108e8: */ + 0, /* U+0108e9: */ + 0, /* U+0108ea: */ + 0, /* U+0108eb: */ + 0, /* U+0108ec: */ + 0, /* U+0108ed: */ + 0, /* U+0108ee: */ + 0, /* U+0108ef: */ + 0, /* U+0108f0: */ + 0, /* U+0108f1: */ + 0, /* U+0108f2: */ + 0, /* U+0108f3: */ + 0, /* U+0108f4: */ + 0, /* U+0108f5: */ + 0, /* U+0108f6: */ + 0, /* U+0108f7: */ + 0, /* U+0108f8: */ + 0, /* U+0108f9: */ + 0, /* U+0108fa: */ + 0, /* U+0108fb: */ + 0, /* U+0108fc: */ + 0, /* U+0108fd: */ + 0, /* U+0108fe: */ + 0, /* U+0108ff: */ + RTUNI_ALPHA, /* U+010900: PHOENICIAN LETTER ALF*/ + RTUNI_ALPHA, /* U+010901: PHOENICIAN LETTER BET*/ + RTUNI_ALPHA, /* U+010902: PHOENICIAN LETTER GAML*/ + RTUNI_ALPHA, /* U+010903: PHOENICIAN LETTER DELT*/ + RTUNI_ALPHA, /* U+010904: PHOENICIAN LETTER HE*/ + RTUNI_ALPHA, /* U+010905: PHOENICIAN LETTER WAU*/ + RTUNI_ALPHA, /* U+010906: PHOENICIAN LETTER ZAI*/ + RTUNI_ALPHA, /* U+010907: PHOENICIAN LETTER HET*/ + RTUNI_ALPHA, /* U+010908: PHOENICIAN LETTER TET*/ + RTUNI_ALPHA, /* U+010909: PHOENICIAN LETTER YOD*/ + RTUNI_ALPHA, /* U+01090a: PHOENICIAN LETTER KAF*/ + RTUNI_ALPHA, /* U+01090b: PHOENICIAN LETTER LAMD*/ + RTUNI_ALPHA, /* U+01090c: PHOENICIAN LETTER MEM*/ + RTUNI_ALPHA, /* U+01090d: PHOENICIAN LETTER NUN*/ + RTUNI_ALPHA, /* U+01090e: PHOENICIAN LETTER SEMK*/ + RTUNI_ALPHA, /* U+01090f: PHOENICIAN LETTER AIN*/ + RTUNI_ALPHA, /* U+010910: PHOENICIAN LETTER PE*/ + RTUNI_ALPHA, /* U+010911: PHOENICIAN LETTER SADE*/ + RTUNI_ALPHA, /* U+010912: PHOENICIAN LETTER QOF*/ + RTUNI_ALPHA, /* U+010913: PHOENICIAN LETTER ROSH*/ + RTUNI_ALPHA, /* U+010914: PHOENICIAN LETTER SHIN*/ + RTUNI_ALPHA, /* U+010915: PHOENICIAN LETTER TAU*/ + 0, /* U+010916: PHOENICIAN NUMBER ONE*/ + 0, /* U+010917: PHOENICIAN NUMBER TEN*/ + 0, /* U+010918: PHOENICIAN NUMBER TWENTY*/ + 0, /* U+010919: PHOENICIAN NUMBER ONE HUNDRED*/ + 0, /* U+01091a: PHOENICIAN NUMBER TWO*/ + 0, /* U+01091b: PHOENICIAN NUMBER THREE*/ + 0, /* U+01091c: */ + 0, /* U+01091d: */ + 0, /* U+01091e: */ + 0, /* U+01091f: PHOENICIAN WORD SEPARATOR*/ + RTUNI_ALPHA, /* U+010920: LYDIAN LETTER A*/ + RTUNI_ALPHA, /* U+010921: LYDIAN LETTER B*/ + RTUNI_ALPHA, /* U+010922: LYDIAN LETTER G*/ + RTUNI_ALPHA, /* U+010923: LYDIAN LETTER D*/ + RTUNI_ALPHA, /* U+010924: LYDIAN LETTER E*/ + RTUNI_ALPHA, /* U+010925: LYDIAN LETTER V*/ + RTUNI_ALPHA, /* U+010926: LYDIAN LETTER I*/ + RTUNI_ALPHA, /* U+010927: LYDIAN LETTER Y*/ + RTUNI_ALPHA, /* U+010928: LYDIAN LETTER K*/ + RTUNI_ALPHA, /* U+010929: LYDIAN LETTER L*/ + RTUNI_ALPHA, /* U+01092a: LYDIAN LETTER M*/ + RTUNI_ALPHA, /* U+01092b: LYDIAN LETTER N*/ + RTUNI_ALPHA, /* U+01092c: LYDIAN LETTER O*/ + RTUNI_ALPHA, /* U+01092d: LYDIAN LETTER R*/ + RTUNI_ALPHA, /* U+01092e: LYDIAN LETTER SS*/ + RTUNI_ALPHA, /* U+01092f: LYDIAN LETTER T*/ + RTUNI_ALPHA, /* U+010930: LYDIAN LETTER U*/ + RTUNI_ALPHA, /* U+010931: LYDIAN LETTER F*/ + RTUNI_ALPHA, /* U+010932: LYDIAN LETTER Q*/ + RTUNI_ALPHA, /* U+010933: LYDIAN LETTER S*/ + RTUNI_ALPHA, /* U+010934: LYDIAN LETTER TT*/ + RTUNI_ALPHA, /* U+010935: LYDIAN LETTER AN*/ + RTUNI_ALPHA, /* U+010936: LYDIAN LETTER EN*/ + RTUNI_ALPHA, /* U+010937: LYDIAN LETTER LY*/ + RTUNI_ALPHA, /* U+010938: LYDIAN LETTER NN*/ + RTUNI_ALPHA, /* U+010939: LYDIAN LETTER C*/ + 0, /* U+01093a: */ + 0, /* U+01093b: */ + 0, /* U+01093c: */ + 0, /* U+01093d: */ + 0, /* U+01093e: */ + 0, /* U+01093f: LYDIAN TRIANGULAR MARK*/ + 0, /* U+010940: */ + 0, /* U+010941: */ + 0, /* U+010942: */ + 0, /* U+010943: */ + 0, /* U+010944: */ + 0, /* U+010945: */ + 0, /* U+010946: */ + 0, /* U+010947: */ + 0, /* U+010948: */ + 0, /* U+010949: */ + 0, /* U+01094a: */ + 0, /* U+01094b: */ + 0, /* U+01094c: */ + 0, /* U+01094d: */ + 0, /* U+01094e: */ + 0, /* U+01094f: */ + 0, /* U+010950: */ + 0, /* U+010951: */ + 0, /* U+010952: */ + 0, /* U+010953: */ + 0, /* U+010954: */ + 0, /* U+010955: */ + 0, /* U+010956: */ + 0, /* U+010957: */ + 0, /* U+010958: */ + 0, /* U+010959: */ + 0, /* U+01095a: */ + 0, /* U+01095b: */ + 0, /* U+01095c: */ + 0, /* U+01095d: */ + 0, /* U+01095e: */ + 0, /* U+01095f: */ + 0, /* U+010960: */ + 0, /* U+010961: */ + 0, /* U+010962: */ + 0, /* U+010963: */ + 0, /* U+010964: */ + 0, /* U+010965: */ + 0, /* U+010966: */ + 0, /* U+010967: */ + 0, /* U+010968: */ + 0, /* U+010969: */ + 0, /* U+01096a: */ + 0, /* U+01096b: */ + 0, /* U+01096c: */ + 0, /* U+01096d: */ + 0, /* U+01096e: */ + 0, /* U+01096f: */ + 0, /* U+010970: */ + 0, /* U+010971: */ + 0, /* U+010972: */ + 0, /* U+010973: */ + 0, /* U+010974: */ + 0, /* U+010975: */ + 0, /* U+010976: */ + 0, /* U+010977: */ + 0, /* U+010978: */ + 0, /* U+010979: */ + 0, /* U+01097a: */ + 0, /* U+01097b: */ + 0, /* U+01097c: */ + 0, /* U+01097d: */ + 0, /* U+01097e: */ + 0, /* U+01097f: */ + RTUNI_ALPHA, /* U+010980: MEROITIC HIEROGLYPHIC LETTER A*/ + RTUNI_ALPHA, /* U+010981: MEROITIC HIEROGLYPHIC LETTER E*/ + RTUNI_ALPHA, /* U+010982: MEROITIC HIEROGLYPHIC LETTER I*/ + RTUNI_ALPHA, /* U+010983: MEROITIC HIEROGLYPHIC LETTER O*/ + RTUNI_ALPHA, /* U+010984: MEROITIC HIEROGLYPHIC LETTER YA*/ + RTUNI_ALPHA, /* U+010985: MEROITIC HIEROGLYPHIC LETTER WA*/ + RTUNI_ALPHA, /* U+010986: MEROITIC HIEROGLYPHIC LETTER BA*/ + RTUNI_ALPHA, /* U+010987: MEROITIC HIEROGLYPHIC LETTER BA-2*/ + RTUNI_ALPHA, /* U+010988: MEROITIC HIEROGLYPHIC LETTER PA*/ + RTUNI_ALPHA, /* U+010989: MEROITIC HIEROGLYPHIC LETTER MA*/ + RTUNI_ALPHA, /* U+01098a: MEROITIC HIEROGLYPHIC LETTER NA*/ + RTUNI_ALPHA, /* U+01098b: MEROITIC HIEROGLYPHIC LETTER NA-2*/ + RTUNI_ALPHA, /* U+01098c: MEROITIC HIEROGLYPHIC LETTER NE*/ + RTUNI_ALPHA, /* U+01098d: MEROITIC HIEROGLYPHIC LETTER NE-2*/ + RTUNI_ALPHA, /* U+01098e: MEROITIC HIEROGLYPHIC LETTER RA*/ + RTUNI_ALPHA, /* U+01098f: MEROITIC HIEROGLYPHIC LETTER RA-2*/ + RTUNI_ALPHA, /* U+010990: MEROITIC HIEROGLYPHIC LETTER LA*/ + RTUNI_ALPHA, /* U+010991: MEROITIC HIEROGLYPHIC LETTER KHA*/ + RTUNI_ALPHA, /* U+010992: MEROITIC HIEROGLYPHIC LETTER HHA*/ + RTUNI_ALPHA, /* U+010993: MEROITIC HIEROGLYPHIC LETTER SA*/ + RTUNI_ALPHA, /* U+010994: MEROITIC HIEROGLYPHIC LETTER SA-2*/ + RTUNI_ALPHA, /* U+010995: MEROITIC HIEROGLYPHIC LETTER SE*/ + RTUNI_ALPHA, /* U+010996: MEROITIC HIEROGLYPHIC LETTER KA*/ + RTUNI_ALPHA, /* U+010997: MEROITIC HIEROGLYPHIC LETTER QA*/ + RTUNI_ALPHA, /* U+010998: MEROITIC HIEROGLYPHIC LETTER TA*/ + RTUNI_ALPHA, /* U+010999: MEROITIC HIEROGLYPHIC LETTER TA-2*/ + RTUNI_ALPHA, /* U+01099a: MEROITIC HIEROGLYPHIC LETTER TE*/ + RTUNI_ALPHA, /* U+01099b: MEROITIC HIEROGLYPHIC LETTER TE-2*/ + RTUNI_ALPHA, /* U+01099c: MEROITIC HIEROGLYPHIC LETTER TO*/ + RTUNI_ALPHA, /* U+01099d: MEROITIC HIEROGLYPHIC LETTER DA*/ + RTUNI_ALPHA, /* U+01099e: MEROITIC HIEROGLYPHIC SYMBOL VIDJ*/ + RTUNI_ALPHA, /* U+01099f: MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2*/ + RTUNI_ALPHA, /* U+0109a0: MEROITIC CURSIVE LETTER A*/ + RTUNI_ALPHA, /* U+0109a1: MEROITIC CURSIVE LETTER E*/ + RTUNI_ALPHA, /* U+0109a2: MEROITIC CURSIVE LETTER I*/ + RTUNI_ALPHA, /* U+0109a3: MEROITIC CURSIVE LETTER O*/ + RTUNI_ALPHA, /* U+0109a4: MEROITIC CURSIVE LETTER YA*/ + RTUNI_ALPHA, /* U+0109a5: MEROITIC CURSIVE LETTER WA*/ + RTUNI_ALPHA, /* U+0109a6: MEROITIC CURSIVE LETTER BA*/ + RTUNI_ALPHA, /* U+0109a7: MEROITIC CURSIVE LETTER PA*/ + RTUNI_ALPHA, /* U+0109a8: MEROITIC CURSIVE LETTER MA*/ + RTUNI_ALPHA, /* U+0109a9: MEROITIC CURSIVE LETTER NA*/ + RTUNI_ALPHA, /* U+0109aa: MEROITIC CURSIVE LETTER NE*/ + RTUNI_ALPHA, /* U+0109ab: MEROITIC CURSIVE LETTER RA*/ + RTUNI_ALPHA, /* U+0109ac: MEROITIC CURSIVE LETTER LA*/ + RTUNI_ALPHA, /* U+0109ad: MEROITIC CURSIVE LETTER KHA*/ + RTUNI_ALPHA, /* U+0109ae: MEROITIC CURSIVE LETTER HHA*/ + RTUNI_ALPHA, /* U+0109af: MEROITIC CURSIVE LETTER SA*/ + RTUNI_ALPHA, /* U+0109b0: MEROITIC CURSIVE LETTER ARCHAIC SA*/ + RTUNI_ALPHA, /* U+0109b1: MEROITIC CURSIVE LETTER SE*/ + RTUNI_ALPHA, /* U+0109b2: MEROITIC CURSIVE LETTER KA*/ + RTUNI_ALPHA, /* U+0109b3: MEROITIC CURSIVE LETTER QA*/ + RTUNI_ALPHA, /* U+0109b4: MEROITIC CURSIVE LETTER TA*/ + RTUNI_ALPHA, /* U+0109b5: MEROITIC CURSIVE LETTER TE*/ + RTUNI_ALPHA, /* U+0109b6: MEROITIC CURSIVE LETTER TO*/ + RTUNI_ALPHA, /* U+0109b7: MEROITIC CURSIVE LETTER DA*/ + 0, /* U+0109b8: */ + 0, /* U+0109b9: */ + 0, /* U+0109ba: */ + 0, /* U+0109bb: */ + 0, /* U+0109bc: */ + 0, /* U+0109bd: */ + RTUNI_ALPHA, /* U+0109be: MEROITIC CURSIVE LOGOGRAM RMT*/ + RTUNI_ALPHA, /* U+0109bf: MEROITIC CURSIVE LOGOGRAM IMN*/ + 0, /* U+0109c0: */ + 0, /* U+0109c1: */ + 0, /* U+0109c2: */ + 0, /* U+0109c3: */ + 0, /* U+0109c4: */ + 0, /* U+0109c5: */ + 0, /* U+0109c6: */ + 0, /* U+0109c7: */ + 0, /* U+0109c8: */ + 0, /* U+0109c9: */ + 0, /* U+0109ca: */ + 0, /* U+0109cb: */ + 0, /* U+0109cc: */ + 0, /* U+0109cd: */ + 0, /* U+0109ce: */ + 0, /* U+0109cf: */ + 0, /* U+0109d0: */ + 0, /* U+0109d1: */ + 0, /* U+0109d2: */ + 0, /* U+0109d3: */ + 0, /* U+0109d4: */ + 0, /* U+0109d5: */ + 0, /* U+0109d6: */ + 0, /* U+0109d7: */ + 0, /* U+0109d8: */ + 0, /* U+0109d9: */ + 0, /* U+0109da: */ + 0, /* U+0109db: */ + 0, /* U+0109dc: */ + 0, /* U+0109dd: */ + 0, /* U+0109de: */ + 0, /* U+0109df: */ + 0, /* U+0109e0: */ + 0, /* U+0109e1: */ + 0, /* U+0109e2: */ + 0, /* U+0109e3: */ + 0, /* U+0109e4: */ + 0, /* U+0109e5: */ + 0, /* U+0109e6: */ + 0, /* U+0109e7: */ + 0, /* U+0109e8: */ + 0, /* U+0109e9: */ + 0, /* U+0109ea: */ + 0, /* U+0109eb: */ + 0, /* U+0109ec: */ + 0, /* U+0109ed: */ + 0, /* U+0109ee: */ + 0, /* U+0109ef: */ + 0, /* U+0109f0: */ + 0, /* U+0109f1: */ + 0, /* U+0109f2: */ + 0, /* U+0109f3: */ + 0, /* U+0109f4: */ + 0, /* U+0109f5: */ + 0, /* U+0109f6: */ + 0, /* U+0109f7: */ + 0, /* U+0109f8: */ + 0, /* U+0109f9: */ + 0, /* U+0109fa: */ + 0, /* U+0109fb: */ + 0, /* U+0109fc: */ + 0, /* U+0109fd: */ + 0, /* U+0109fe: */ + 0, /* U+0109ff: */ + RTUNI_ALPHA, /* U+010a00: KHAROSHTHI LETTER A*/ + RTUNI_ALPHA, /* U+010a01: KHAROSHTHI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+010a02: KHAROSHTHI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+010a03: KHAROSHTHI VOWEL SIGN VOCALIC R*/ + 0, /* U+010a04: */ + RTUNI_ALPHA, /* U+010a05: KHAROSHTHI VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+010a06: KHAROSHTHI VOWEL SIGN O*/ + 0, /* U+010a07: */ + 0, /* U+010a08: */ + 0, /* U+010a09: */ + 0, /* U+010a0a: */ + 0, /* U+010a0b: */ + RTUNI_ALPHA, /* U+010a0c: KHAROSHTHI VOWEL LENGTH MARK*/ + RTUNI_ALPHA, /* U+010a0d: KHAROSHTHI SIGN DOUBLE RING BELOW*/ + RTUNI_ALPHA, /* U+010a0e: KHAROSHTHI SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+010a0f: KHAROSHTHI SIGN VISARGA*/ + RTUNI_ALPHA, /* U+010a10: KHAROSHTHI LETTER KA*/ + RTUNI_ALPHA, /* U+010a11: KHAROSHTHI LETTER KHA*/ + RTUNI_ALPHA, /* U+010a12: KHAROSHTHI LETTER GA*/ + RTUNI_ALPHA, /* U+010a13: KHAROSHTHI LETTER GHA*/ + 0, /* U+010a14: */ + RTUNI_ALPHA, /* U+010a15: KHAROSHTHI LETTER CA*/ + RTUNI_ALPHA, /* U+010a16: KHAROSHTHI LETTER CHA*/ + RTUNI_ALPHA, /* U+010a17: KHAROSHTHI LETTER JA*/ + 0, /* U+010a18: */ + RTUNI_ALPHA, /* U+010a19: KHAROSHTHI LETTER NYA*/ + RTUNI_ALPHA, /* U+010a1a: KHAROSHTHI LETTER TTA*/ + RTUNI_ALPHA, /* U+010a1b: KHAROSHTHI LETTER TTHA*/ + RTUNI_ALPHA, /* U+010a1c: KHAROSHTHI LETTER DDA*/ + RTUNI_ALPHA, /* U+010a1d: KHAROSHTHI LETTER DDHA*/ + RTUNI_ALPHA, /* U+010a1e: KHAROSHTHI LETTER NNA*/ + RTUNI_ALPHA, /* U+010a1f: KHAROSHTHI LETTER TA*/ + RTUNI_ALPHA, /* U+010a20: KHAROSHTHI LETTER THA*/ + RTUNI_ALPHA, /* U+010a21: KHAROSHTHI LETTER DA*/ + RTUNI_ALPHA, /* U+010a22: KHAROSHTHI LETTER DHA*/ + RTUNI_ALPHA, /* U+010a23: KHAROSHTHI LETTER NA*/ + RTUNI_ALPHA, /* U+010a24: KHAROSHTHI LETTER PA*/ + RTUNI_ALPHA, /* U+010a25: KHAROSHTHI LETTER PHA*/ + RTUNI_ALPHA, /* U+010a26: KHAROSHTHI LETTER BA*/ + RTUNI_ALPHA, /* U+010a27: KHAROSHTHI LETTER BHA*/ + RTUNI_ALPHA, /* U+010a28: KHAROSHTHI LETTER MA*/ + RTUNI_ALPHA, /* U+010a29: KHAROSHTHI LETTER YA*/ + RTUNI_ALPHA, /* U+010a2a: KHAROSHTHI LETTER RA*/ + RTUNI_ALPHA, /* U+010a2b: KHAROSHTHI LETTER LA*/ + RTUNI_ALPHA, /* U+010a2c: KHAROSHTHI LETTER VA*/ + RTUNI_ALPHA, /* U+010a2d: KHAROSHTHI LETTER SHA*/ + RTUNI_ALPHA, /* U+010a2e: KHAROSHTHI LETTER SSA*/ + RTUNI_ALPHA, /* U+010a2f: KHAROSHTHI LETTER SA*/ + RTUNI_ALPHA, /* U+010a30: KHAROSHTHI LETTER ZA*/ + RTUNI_ALPHA, /* U+010a31: KHAROSHTHI LETTER HA*/ + RTUNI_ALPHA, /* U+010a32: KHAROSHTHI LETTER KKA*/ + RTUNI_ALPHA, /* U+010a33: KHAROSHTHI LETTER TTTHA*/ + 0, /* U+010a34: */ + 0, /* U+010a35: */ + 0, /* U+010a36: */ + 0, /* U+010a37: */ + 0, /* U+010a38: KHAROSHTHI SIGN BAR ABOVE*/ + 0, /* U+010a39: KHAROSHTHI SIGN CAUDA*/ + 0, /* U+010a3a: KHAROSHTHI SIGN DOT BELOW*/ + 0, /* U+010a3b: */ + 0, /* U+010a3c: */ + 0, /* U+010a3d: */ + 0, /* U+010a3e: */ + 0, /* U+010a3f: KHAROSHTHI VIRAMA*/ + 0, /* U+010a40: KHAROSHTHI DIGIT ONE*/ + 0, /* U+010a41: KHAROSHTHI DIGIT TWO*/ + 0, /* U+010a42: KHAROSHTHI DIGIT THREE*/ + 0, /* U+010a43: KHAROSHTHI DIGIT FOUR*/ + 0, /* U+010a44: KHAROSHTHI NUMBER TEN*/ + 0, /* U+010a45: KHAROSHTHI NUMBER TWENTY*/ + 0, /* U+010a46: KHAROSHTHI NUMBER ONE HUNDRED*/ + 0, /* U+010a47: KHAROSHTHI NUMBER ONE THOUSAND*/ + 0, /* U+010a48: */ + 0, /* U+010a49: */ + 0, /* U+010a4a: */ + 0, /* U+010a4b: */ + 0, /* U+010a4c: */ + 0, /* U+010a4d: */ + 0, /* U+010a4e: */ + 0, /* U+010a4f: */ + 0, /* U+010a50: KHAROSHTHI PUNCTUATION DOT*/ + 0, /* U+010a51: KHAROSHTHI PUNCTUATION SMALL CIRCLE*/ + 0, /* U+010a52: KHAROSHTHI PUNCTUATION CIRCLE*/ + 0, /* U+010a53: KHAROSHTHI PUNCTUATION CRESCENT BAR*/ + 0, /* U+010a54: KHAROSHTHI PUNCTUATION MANGALAM*/ + 0, /* U+010a55: KHAROSHTHI PUNCTUATION LOTUS*/ + 0, /* U+010a56: KHAROSHTHI PUNCTUATION DANDA*/ + 0, /* U+010a57: KHAROSHTHI PUNCTUATION DOUBLE DANDA*/ + 0, /* U+010a58: KHAROSHTHI PUNCTUATION LINES*/ + 0, /* U+010a59: */ + 0, /* U+010a5a: */ + 0, /* U+010a5b: */ + 0, /* U+010a5c: */ + 0, /* U+010a5d: */ + 0, /* U+010a5e: */ + 0, /* U+010a5f: */ + RTUNI_ALPHA, /* U+010a60: OLD SOUTH ARABIAN LETTER HE*/ + RTUNI_ALPHA, /* U+010a61: OLD SOUTH ARABIAN LETTER LAMEDH*/ + RTUNI_ALPHA, /* U+010a62: OLD SOUTH ARABIAN LETTER HETH*/ + RTUNI_ALPHA, /* U+010a63: OLD SOUTH ARABIAN LETTER MEM*/ + RTUNI_ALPHA, /* U+010a64: OLD SOUTH ARABIAN LETTER QOPH*/ + RTUNI_ALPHA, /* U+010a65: OLD SOUTH ARABIAN LETTER WAW*/ + RTUNI_ALPHA, /* U+010a66: OLD SOUTH ARABIAN LETTER SHIN*/ + RTUNI_ALPHA, /* U+010a67: OLD SOUTH ARABIAN LETTER RESH*/ + RTUNI_ALPHA, /* U+010a68: OLD SOUTH ARABIAN LETTER BETH*/ + RTUNI_ALPHA, /* U+010a69: OLD SOUTH ARABIAN LETTER TAW*/ + RTUNI_ALPHA, /* U+010a6a: OLD SOUTH ARABIAN LETTER SAT*/ + RTUNI_ALPHA, /* U+010a6b: OLD SOUTH ARABIAN LETTER KAPH*/ + RTUNI_ALPHA, /* U+010a6c: OLD SOUTH ARABIAN LETTER NUN*/ + RTUNI_ALPHA, /* U+010a6d: OLD SOUTH ARABIAN LETTER KHETH*/ + RTUNI_ALPHA, /* U+010a6e: OLD SOUTH ARABIAN LETTER SADHE*/ + RTUNI_ALPHA, /* U+010a6f: OLD SOUTH ARABIAN LETTER SAMEKH*/ + RTUNI_ALPHA, /* U+010a70: OLD SOUTH ARABIAN LETTER FE*/ + RTUNI_ALPHA, /* U+010a71: OLD SOUTH ARABIAN LETTER ALEF*/ + RTUNI_ALPHA, /* U+010a72: OLD SOUTH ARABIAN LETTER AYN*/ + RTUNI_ALPHA, /* U+010a73: OLD SOUTH ARABIAN LETTER DHADHE*/ + RTUNI_ALPHA, /* U+010a74: OLD SOUTH ARABIAN LETTER GIMEL*/ + RTUNI_ALPHA, /* U+010a75: OLD SOUTH ARABIAN LETTER DALETH*/ + RTUNI_ALPHA, /* U+010a76: OLD SOUTH ARABIAN LETTER GHAYN*/ + RTUNI_ALPHA, /* U+010a77: OLD SOUTH ARABIAN LETTER TETH*/ + RTUNI_ALPHA, /* U+010a78: OLD SOUTH ARABIAN LETTER ZAYN*/ + RTUNI_ALPHA, /* U+010a79: OLD SOUTH ARABIAN LETTER DHALETH*/ + RTUNI_ALPHA, /* U+010a7a: OLD SOUTH ARABIAN LETTER YODH*/ + RTUNI_ALPHA, /* U+010a7b: OLD SOUTH ARABIAN LETTER THAW*/ + RTUNI_ALPHA, /* U+010a7c: OLD SOUTH ARABIAN LETTER THETH*/ + 0, /* U+010a7d: OLD SOUTH ARABIAN NUMBER ONE*/ + 0, /* U+010a7e: OLD SOUTH ARABIAN NUMBER FIFTY*/ + 0, /* U+010a7f: OLD SOUTH ARABIAN NUMERIC INDICATOR*/ + 0, /* U+010a80: */ + 0, /* U+010a81: */ + 0, /* U+010a82: */ + 0, /* U+010a83: */ + 0, /* U+010a84: */ + 0, /* U+010a85: */ + 0, /* U+010a86: */ + 0, /* U+010a87: */ + 0, /* U+010a88: */ + 0, /* U+010a89: */ + 0, /* U+010a8a: */ + 0, /* U+010a8b: */ + 0, /* U+010a8c: */ + 0, /* U+010a8d: */ + 0, /* U+010a8e: */ + 0, /* U+010a8f: */ + 0, /* U+010a90: */ + 0, /* U+010a91: */ + 0, /* U+010a92: */ + 0, /* U+010a93: */ + 0, /* U+010a94: */ + 0, /* U+010a95: */ + 0, /* U+010a96: */ + 0, /* U+010a97: */ + 0, /* U+010a98: */ + 0, /* U+010a99: */ + 0, /* U+010a9a: */ + 0, /* U+010a9b: */ + 0, /* U+010a9c: */ + 0, /* U+010a9d: */ + 0, /* U+010a9e: */ + 0, /* U+010a9f: */ + 0, /* U+010aa0: */ + 0, /* U+010aa1: */ + 0, /* U+010aa2: */ + 0, /* U+010aa3: */ + 0, /* U+010aa4: */ + 0, /* U+010aa5: */ + 0, /* U+010aa6: */ + 0, /* U+010aa7: */ + 0, /* U+010aa8: */ + 0, /* U+010aa9: */ + 0, /* U+010aaa: */ + 0, /* U+010aab: */ + 0, /* U+010aac: */ + 0, /* U+010aad: */ + 0, /* U+010aae: */ + 0, /* U+010aaf: */ + 0, /* U+010ab0: */ + 0, /* U+010ab1: */ + 0, /* U+010ab2: */ + 0, /* U+010ab3: */ + 0, /* U+010ab4: */ + 0, /* U+010ab5: */ + 0, /* U+010ab6: */ + 0, /* U+010ab7: */ + 0, /* U+010ab8: */ + 0, /* U+010ab9: */ + 0, /* U+010aba: */ + 0, /* U+010abb: */ + 0, /* U+010abc: */ + 0, /* U+010abd: */ + 0, /* U+010abe: */ + 0, /* U+010abf: */ + 0, /* U+010ac0: */ + 0, /* U+010ac1: */ + 0, /* U+010ac2: */ + 0, /* U+010ac3: */ + 0, /* U+010ac4: */ + 0, /* U+010ac5: */ + 0, /* U+010ac6: */ + 0, /* U+010ac7: */ + 0, /* U+010ac8: */ + 0, /* U+010ac9: */ + 0, /* U+010aca: */ + 0, /* U+010acb: */ + 0, /* U+010acc: */ + 0, /* U+010acd: */ + 0, /* U+010ace: */ + 0, /* U+010acf: */ + 0, /* U+010ad0: */ + 0, /* U+010ad1: */ + 0, /* U+010ad2: */ + 0, /* U+010ad3: */ + 0, /* U+010ad4: */ + 0, /* U+010ad5: */ + 0, /* U+010ad6: */ + 0, /* U+010ad7: */ + 0, /* U+010ad8: */ + 0, /* U+010ad9: */ + 0, /* U+010ada: */ + 0, /* U+010adb: */ + 0, /* U+010adc: */ + 0, /* U+010add: */ + 0, /* U+010ade: */ + 0, /* U+010adf: */ + 0, /* U+010ae0: */ + 0, /* U+010ae1: */ + 0, /* U+010ae2: */ + 0, /* U+010ae3: */ + 0, /* U+010ae4: */ + 0, /* U+010ae5: */ + 0, /* U+010ae6: */ + 0, /* U+010ae7: */ + 0, /* U+010ae8: */ + 0, /* U+010ae9: */ + 0, /* U+010aea: */ + 0, /* U+010aeb: */ + 0, /* U+010aec: */ + 0, /* U+010aed: */ + 0, /* U+010aee: */ + 0, /* U+010aef: */ + 0, /* U+010af0: */ + 0, /* U+010af1: */ + 0, /* U+010af2: */ + 0, /* U+010af3: */ + 0, /* U+010af4: */ + 0, /* U+010af5: */ + 0, /* U+010af6: */ + 0, /* U+010af7: */ + 0, /* U+010af8: */ + 0, /* U+010af9: */ + 0, /* U+010afa: */ + 0, /* U+010afb: */ + 0, /* U+010afc: */ + 0, /* U+010afd: */ + 0, /* U+010afe: */ + 0, /* U+010aff: */ + RTUNI_ALPHA, /* U+010b00: AVESTAN LETTER A*/ + RTUNI_ALPHA, /* U+010b01: AVESTAN LETTER AA*/ + RTUNI_ALPHA, /* U+010b02: AVESTAN LETTER AO*/ + RTUNI_ALPHA, /* U+010b03: AVESTAN LETTER AAO*/ + RTUNI_ALPHA, /* U+010b04: AVESTAN LETTER AN*/ + RTUNI_ALPHA, /* U+010b05: AVESTAN LETTER AAN*/ + RTUNI_ALPHA, /* U+010b06: AVESTAN LETTER AE*/ + RTUNI_ALPHA, /* U+010b07: AVESTAN LETTER AEE*/ + RTUNI_ALPHA, /* U+010b08: AVESTAN LETTER E*/ + RTUNI_ALPHA, /* U+010b09: AVESTAN LETTER EE*/ + RTUNI_ALPHA, /* U+010b0a: AVESTAN LETTER O*/ + RTUNI_ALPHA, /* U+010b0b: AVESTAN LETTER OO*/ + RTUNI_ALPHA, /* U+010b0c: AVESTAN LETTER I*/ + RTUNI_ALPHA, /* U+010b0d: AVESTAN LETTER II*/ + RTUNI_ALPHA, /* U+010b0e: AVESTAN LETTER U*/ + RTUNI_ALPHA, /* U+010b0f: AVESTAN LETTER UU*/ + RTUNI_ALPHA, /* U+010b10: AVESTAN LETTER KE*/ + RTUNI_ALPHA, /* U+010b11: AVESTAN LETTER XE*/ + RTUNI_ALPHA, /* U+010b12: AVESTAN LETTER XYE*/ + RTUNI_ALPHA, /* U+010b13: AVESTAN LETTER XVE*/ + RTUNI_ALPHA, /* U+010b14: AVESTAN LETTER GE*/ + RTUNI_ALPHA, /* U+010b15: AVESTAN LETTER GGE*/ + RTUNI_ALPHA, /* U+010b16: AVESTAN LETTER GHE*/ + RTUNI_ALPHA, /* U+010b17: AVESTAN LETTER CE*/ + RTUNI_ALPHA, /* U+010b18: AVESTAN LETTER JE*/ + RTUNI_ALPHA, /* U+010b19: AVESTAN LETTER TE*/ + RTUNI_ALPHA, /* U+010b1a: AVESTAN LETTER THE*/ + RTUNI_ALPHA, /* U+010b1b: AVESTAN LETTER DE*/ + RTUNI_ALPHA, /* U+010b1c: AVESTAN LETTER DHE*/ + RTUNI_ALPHA, /* U+010b1d: AVESTAN LETTER TTE*/ + RTUNI_ALPHA, /* U+010b1e: AVESTAN LETTER PE*/ + RTUNI_ALPHA, /* U+010b1f: AVESTAN LETTER FE*/ + RTUNI_ALPHA, /* U+010b20: AVESTAN LETTER BE*/ + RTUNI_ALPHA, /* U+010b21: AVESTAN LETTER BHE*/ + RTUNI_ALPHA, /* U+010b22: AVESTAN LETTER NGE*/ + RTUNI_ALPHA, /* U+010b23: AVESTAN LETTER NGYE*/ + RTUNI_ALPHA, /* U+010b24: AVESTAN LETTER NGVE*/ + RTUNI_ALPHA, /* U+010b25: AVESTAN LETTER NE*/ + RTUNI_ALPHA, /* U+010b26: AVESTAN LETTER NYE*/ + RTUNI_ALPHA, /* U+010b27: AVESTAN LETTER NNE*/ + RTUNI_ALPHA, /* U+010b28: AVESTAN LETTER ME*/ + RTUNI_ALPHA, /* U+010b29: AVESTAN LETTER HME*/ + RTUNI_ALPHA, /* U+010b2a: AVESTAN LETTER YYE*/ + RTUNI_ALPHA, /* U+010b2b: AVESTAN LETTER YE*/ + RTUNI_ALPHA, /* U+010b2c: AVESTAN LETTER VE*/ + RTUNI_ALPHA, /* U+010b2d: AVESTAN LETTER RE*/ + RTUNI_ALPHA, /* U+010b2e: AVESTAN LETTER LE*/ + RTUNI_ALPHA, /* U+010b2f: AVESTAN LETTER SE*/ + RTUNI_ALPHA, /* U+010b30: AVESTAN LETTER ZE*/ + RTUNI_ALPHA, /* U+010b31: AVESTAN LETTER SHE*/ + RTUNI_ALPHA, /* U+010b32: AVESTAN LETTER ZHE*/ + RTUNI_ALPHA, /* U+010b33: AVESTAN LETTER SHYE*/ + RTUNI_ALPHA, /* U+010b34: AVESTAN LETTER SSHE*/ + RTUNI_ALPHA, /* U+010b35: AVESTAN LETTER HE*/ + 0, /* U+010b36: */ + 0, /* U+010b37: */ + 0, /* U+010b38: */ + 0, /* U+010b39: AVESTAN ABBREVIATION MARK*/ + 0, /* U+010b3a: TINY TWO DOTS OVER ONE DOT PUNCTUATION*/ + 0, /* U+010b3b: SMALL TWO DOTS OVER ONE DOT PUNCTUATION*/ + 0, /* U+010b3c: LARGE TWO DOTS OVER ONE DOT PUNCTUATION*/ + 0, /* U+010b3d: LARGE ONE DOT OVER TWO DOTS PUNCTUATION*/ + 0, /* U+010b3e: LARGE TWO RINGS OVER ONE RING PUNCTUATION*/ + 0, /* U+010b3f: LARGE ONE RING OVER TWO RINGS PUNCTUATION*/ + RTUNI_ALPHA, /* U+010b40: INSCRIPTIONAL PARTHIAN LETTER ALEPH*/ + RTUNI_ALPHA, /* U+010b41: INSCRIPTIONAL PARTHIAN LETTER BETH*/ + RTUNI_ALPHA, /* U+010b42: INSCRIPTIONAL PARTHIAN LETTER GIMEL*/ + RTUNI_ALPHA, /* U+010b43: INSCRIPTIONAL PARTHIAN LETTER DALETH*/ + RTUNI_ALPHA, /* U+010b44: INSCRIPTIONAL PARTHIAN LETTER HE*/ + RTUNI_ALPHA, /* U+010b45: INSCRIPTIONAL PARTHIAN LETTER WAW*/ + RTUNI_ALPHA, /* U+010b46: INSCRIPTIONAL PARTHIAN LETTER ZAYIN*/ + RTUNI_ALPHA, /* U+010b47: INSCRIPTIONAL PARTHIAN LETTER HETH*/ + RTUNI_ALPHA, /* U+010b48: INSCRIPTIONAL PARTHIAN LETTER TETH*/ + RTUNI_ALPHA, /* U+010b49: INSCRIPTIONAL PARTHIAN LETTER YODH*/ + RTUNI_ALPHA, /* U+010b4a: INSCRIPTIONAL PARTHIAN LETTER KAPH*/ + RTUNI_ALPHA, /* U+010b4b: INSCRIPTIONAL PARTHIAN LETTER LAMEDH*/ + RTUNI_ALPHA, /* U+010b4c: INSCRIPTIONAL PARTHIAN LETTER MEM*/ + RTUNI_ALPHA, /* U+010b4d: INSCRIPTIONAL PARTHIAN LETTER NUN*/ + RTUNI_ALPHA, /* U+010b4e: INSCRIPTIONAL PARTHIAN LETTER SAMEKH*/ + RTUNI_ALPHA, /* U+010b4f: INSCRIPTIONAL PARTHIAN LETTER AYIN*/ + RTUNI_ALPHA, /* U+010b50: INSCRIPTIONAL PARTHIAN LETTER PE*/ + RTUNI_ALPHA, /* U+010b51: INSCRIPTIONAL PARTHIAN LETTER SADHE*/ + RTUNI_ALPHA, /* U+010b52: INSCRIPTIONAL PARTHIAN LETTER QOPH*/ + RTUNI_ALPHA, /* U+010b53: INSCRIPTIONAL PARTHIAN LETTER RESH*/ + RTUNI_ALPHA, /* U+010b54: INSCRIPTIONAL PARTHIAN LETTER SHIN*/ + RTUNI_ALPHA, /* U+010b55: INSCRIPTIONAL PARTHIAN LETTER TAW*/ + 0, /* U+010b56: */ + 0, /* U+010b57: */ + 0, /* U+010b58: INSCRIPTIONAL PARTHIAN NUMBER ONE*/ + 0, /* U+010b59: INSCRIPTIONAL PARTHIAN NUMBER TWO*/ + 0, /* U+010b5a: INSCRIPTIONAL PARTHIAN NUMBER THREE*/ + 0, /* U+010b5b: INSCRIPTIONAL PARTHIAN NUMBER FOUR*/ + 0, /* U+010b5c: INSCRIPTIONAL PARTHIAN NUMBER TEN*/ + 0, /* U+010b5d: INSCRIPTIONAL PARTHIAN NUMBER TWENTY*/ + 0, /* U+010b5e: INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED*/ + 0, /* U+010b5f: INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND*/ + RTUNI_ALPHA, /* U+010b60: INSCRIPTIONAL PAHLAVI LETTER ALEPH*/ + RTUNI_ALPHA, /* U+010b61: INSCRIPTIONAL PAHLAVI LETTER BETH*/ + RTUNI_ALPHA, /* U+010b62: INSCRIPTIONAL PAHLAVI LETTER GIMEL*/ + RTUNI_ALPHA, /* U+010b63: INSCRIPTIONAL PAHLAVI LETTER DALETH*/ + RTUNI_ALPHA, /* U+010b64: INSCRIPTIONAL PAHLAVI LETTER HE*/ + RTUNI_ALPHA, /* U+010b65: INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH*/ + RTUNI_ALPHA, /* U+010b66: INSCRIPTIONAL PAHLAVI LETTER ZAYIN*/ + RTUNI_ALPHA, /* U+010b67: INSCRIPTIONAL PAHLAVI LETTER HETH*/ + RTUNI_ALPHA, /* U+010b68: INSCRIPTIONAL PAHLAVI LETTER TETH*/ + RTUNI_ALPHA, /* U+010b69: INSCRIPTIONAL PAHLAVI LETTER YODH*/ + RTUNI_ALPHA, /* U+010b6a: INSCRIPTIONAL PAHLAVI LETTER KAPH*/ + RTUNI_ALPHA, /* U+010b6b: INSCRIPTIONAL PAHLAVI LETTER LAMEDH*/ + RTUNI_ALPHA, /* U+010b6c: INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH*/ + RTUNI_ALPHA, /* U+010b6d: INSCRIPTIONAL PAHLAVI LETTER NUN*/ + RTUNI_ALPHA, /* U+010b6e: INSCRIPTIONAL PAHLAVI LETTER SAMEKH*/ + RTUNI_ALPHA, /* U+010b6f: INSCRIPTIONAL PAHLAVI LETTER PE*/ + RTUNI_ALPHA, /* U+010b70: INSCRIPTIONAL PAHLAVI LETTER SADHE*/ + RTUNI_ALPHA, /* U+010b71: INSCRIPTIONAL PAHLAVI LETTER SHIN*/ + RTUNI_ALPHA, /* U+010b72: INSCRIPTIONAL PAHLAVI LETTER TAW*/ + 0, /* U+010b73: */ + 0, /* U+010b74: */ + 0, /* U+010b75: */ + 0, /* U+010b76: */ + 0, /* U+010b77: */ + 0, /* U+010b78: INSCRIPTIONAL PAHLAVI NUMBER ONE*/ + 0, /* U+010b79: INSCRIPTIONAL PAHLAVI NUMBER TWO*/ + 0, /* U+010b7a: INSCRIPTIONAL PAHLAVI NUMBER THREE*/ + 0, /* U+010b7b: INSCRIPTIONAL PAHLAVI NUMBER FOUR*/ + 0, /* U+010b7c: INSCRIPTIONAL PAHLAVI NUMBER TEN*/ + 0, /* U+010b7d: INSCRIPTIONAL PAHLAVI NUMBER TWENTY*/ + 0, /* U+010b7e: INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED*/ + 0, /* U+010b7f: INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND*/ + 0, /* U+010b80: */ + 0, /* U+010b81: */ + 0, /* U+010b82: */ + 0, /* U+010b83: */ + 0, /* U+010b84: */ + 0, /* U+010b85: */ + 0, /* U+010b86: */ + 0, /* U+010b87: */ + 0, /* U+010b88: */ + 0, /* U+010b89: */ + 0, /* U+010b8a: */ + 0, /* U+010b8b: */ + 0, /* U+010b8c: */ + 0, /* U+010b8d: */ + 0, /* U+010b8e: */ + 0, /* U+010b8f: */ + 0, /* U+010b90: */ + 0, /* U+010b91: */ + 0, /* U+010b92: */ + 0, /* U+010b93: */ + 0, /* U+010b94: */ + 0, /* U+010b95: */ + 0, /* U+010b96: */ + 0, /* U+010b97: */ + 0, /* U+010b98: */ + 0, /* U+010b99: */ + 0, /* U+010b9a: */ + 0, /* U+010b9b: */ + 0, /* U+010b9c: */ + 0, /* U+010b9d: */ + 0, /* U+010b9e: */ + 0, /* U+010b9f: */ + 0, /* U+010ba0: */ + 0, /* U+010ba1: */ + 0, /* U+010ba2: */ + 0, /* U+010ba3: */ + 0, /* U+010ba4: */ + 0, /* U+010ba5: */ + 0, /* U+010ba6: */ + 0, /* U+010ba7: */ + 0, /* U+010ba8: */ + 0, /* U+010ba9: */ + 0, /* U+010baa: */ + 0, /* U+010bab: */ + 0, /* U+010bac: */ + 0, /* U+010bad: */ + 0, /* U+010bae: */ + 0, /* U+010baf: */ + 0, /* U+010bb0: */ + 0, /* U+010bb1: */ + 0, /* U+010bb2: */ + 0, /* U+010bb3: */ + 0, /* U+010bb4: */ + 0, /* U+010bb5: */ + 0, /* U+010bb6: */ + 0, /* U+010bb7: */ + 0, /* U+010bb8: */ + 0, /* U+010bb9: */ + 0, /* U+010bba: */ + 0, /* U+010bbb: */ + 0, /* U+010bbc: */ + 0, /* U+010bbd: */ + 0, /* U+010bbe: */ + 0, /* U+010bbf: */ + 0, /* U+010bc0: */ + 0, /* U+010bc1: */ + 0, /* U+010bc2: */ + 0, /* U+010bc3: */ + 0, /* U+010bc4: */ + 0, /* U+010bc5: */ + 0, /* U+010bc6: */ + 0, /* U+010bc7: */ + 0, /* U+010bc8: */ + 0, /* U+010bc9: */ + 0, /* U+010bca: */ + 0, /* U+010bcb: */ + 0, /* U+010bcc: */ + 0, /* U+010bcd: */ + 0, /* U+010bce: */ + 0, /* U+010bcf: */ + 0, /* U+010bd0: */ + 0, /* U+010bd1: */ + 0, /* U+010bd2: */ + 0, /* U+010bd3: */ + 0, /* U+010bd4: */ + 0, /* U+010bd5: */ + 0, /* U+010bd6: */ + 0, /* U+010bd7: */ + 0, /* U+010bd8: */ + 0, /* U+010bd9: */ + 0, /* U+010bda: */ + 0, /* U+010bdb: */ + 0, /* U+010bdc: */ + 0, /* U+010bdd: */ + 0, /* U+010bde: */ + 0, /* U+010bdf: */ + 0, /* U+010be0: */ + 0, /* U+010be1: */ + 0, /* U+010be2: */ + 0, /* U+010be3: */ + 0, /* U+010be4: */ + 0, /* U+010be5: */ + 0, /* U+010be6: */ + 0, /* U+010be7: */ + 0, /* U+010be8: */ + 0, /* U+010be9: */ + 0, /* U+010bea: */ + 0, /* U+010beb: */ + 0, /* U+010bec: */ + 0, /* U+010bed: */ + 0, /* U+010bee: */ + 0, /* U+010bef: */ + 0, /* U+010bf0: */ + 0, /* U+010bf1: */ + 0, /* U+010bf2: */ + 0, /* U+010bf3: */ + 0, /* U+010bf4: */ + 0, /* U+010bf5: */ + 0, /* U+010bf6: */ + 0, /* U+010bf7: */ + 0, /* U+010bf8: */ + 0, /* U+010bf9: */ + 0, /* U+010bfa: */ + 0, /* U+010bfb: */ + 0, /* U+010bfc: */ + 0, /* U+010bfd: */ + 0, /* U+010bfe: */ + 0, /* U+010bff: */ + RTUNI_ALPHA, /* U+010c00: OLD TURKIC LETTER ORKHON A*/ + RTUNI_ALPHA, /* U+010c01: OLD TURKIC LETTER YENISEI A*/ + RTUNI_ALPHA, /* U+010c02: OLD TURKIC LETTER YENISEI AE*/ + RTUNI_ALPHA, /* U+010c03: OLD TURKIC LETTER ORKHON I*/ + RTUNI_ALPHA, /* U+010c04: OLD TURKIC LETTER YENISEI I*/ + RTUNI_ALPHA, /* U+010c05: OLD TURKIC LETTER YENISEI E*/ + RTUNI_ALPHA, /* U+010c06: OLD TURKIC LETTER ORKHON O*/ + RTUNI_ALPHA, /* U+010c07: OLD TURKIC LETTER ORKHON OE*/ + RTUNI_ALPHA, /* U+010c08: OLD TURKIC LETTER YENISEI OE*/ + RTUNI_ALPHA, /* U+010c09: OLD TURKIC LETTER ORKHON AB*/ + RTUNI_ALPHA, /* U+010c0a: OLD TURKIC LETTER YENISEI AB*/ + RTUNI_ALPHA, /* U+010c0b: OLD TURKIC LETTER ORKHON AEB*/ + RTUNI_ALPHA, /* U+010c0c: OLD TURKIC LETTER YENISEI AEB*/ + RTUNI_ALPHA, /* U+010c0d: OLD TURKIC LETTER ORKHON AG*/ + RTUNI_ALPHA, /* U+010c0e: OLD TURKIC LETTER YENISEI AG*/ + RTUNI_ALPHA, /* U+010c0f: OLD TURKIC LETTER ORKHON AEG*/ + RTUNI_ALPHA, /* U+010c10: OLD TURKIC LETTER YENISEI AEG*/ + RTUNI_ALPHA, /* U+010c11: OLD TURKIC LETTER ORKHON AD*/ + RTUNI_ALPHA, /* U+010c12: OLD TURKIC LETTER YENISEI AD*/ + RTUNI_ALPHA, /* U+010c13: OLD TURKIC LETTER ORKHON AED*/ + RTUNI_ALPHA, /* U+010c14: OLD TURKIC LETTER ORKHON EZ*/ + RTUNI_ALPHA, /* U+010c15: OLD TURKIC LETTER YENISEI EZ*/ + RTUNI_ALPHA, /* U+010c16: OLD TURKIC LETTER ORKHON AY*/ + RTUNI_ALPHA, /* U+010c17: OLD TURKIC LETTER YENISEI AY*/ + RTUNI_ALPHA, /* U+010c18: OLD TURKIC LETTER ORKHON AEY*/ + RTUNI_ALPHA, /* U+010c19: OLD TURKIC LETTER YENISEI AEY*/ + RTUNI_ALPHA, /* U+010c1a: OLD TURKIC LETTER ORKHON AEK*/ + RTUNI_ALPHA, /* U+010c1b: OLD TURKIC LETTER YENISEI AEK*/ + RTUNI_ALPHA, /* U+010c1c: OLD TURKIC LETTER ORKHON OEK*/ + RTUNI_ALPHA, /* U+010c1d: OLD TURKIC LETTER YENISEI OEK*/ + RTUNI_ALPHA, /* U+010c1e: OLD TURKIC LETTER ORKHON AL*/ + RTUNI_ALPHA, /* U+010c1f: OLD TURKIC LETTER YENISEI AL*/ + RTUNI_ALPHA, /* U+010c20: OLD TURKIC LETTER ORKHON AEL*/ + RTUNI_ALPHA, /* U+010c21: OLD TURKIC LETTER ORKHON ELT*/ + RTUNI_ALPHA, /* U+010c22: OLD TURKIC LETTER ORKHON EM*/ + RTUNI_ALPHA, /* U+010c23: OLD TURKIC LETTER ORKHON AN*/ + RTUNI_ALPHA, /* U+010c24: OLD TURKIC LETTER ORKHON AEN*/ + RTUNI_ALPHA, /* U+010c25: OLD TURKIC LETTER YENISEI AEN*/ + RTUNI_ALPHA, /* U+010c26: OLD TURKIC LETTER ORKHON ENT*/ + RTUNI_ALPHA, /* U+010c27: OLD TURKIC LETTER YENISEI ENT*/ + RTUNI_ALPHA, /* U+010c28: OLD TURKIC LETTER ORKHON ENC*/ + RTUNI_ALPHA, /* U+010c29: OLD TURKIC LETTER YENISEI ENC*/ + RTUNI_ALPHA, /* U+010c2a: OLD TURKIC LETTER ORKHON ENY*/ + RTUNI_ALPHA, /* U+010c2b: OLD TURKIC LETTER YENISEI ENY*/ + RTUNI_ALPHA, /* U+010c2c: OLD TURKIC LETTER YENISEI ANG*/ + RTUNI_ALPHA, /* U+010c2d: OLD TURKIC LETTER ORKHON ENG*/ + RTUNI_ALPHA, /* U+010c2e: OLD TURKIC LETTER YENISEI AENG*/ + RTUNI_ALPHA, /* U+010c2f: OLD TURKIC LETTER ORKHON EP*/ + RTUNI_ALPHA, /* U+010c30: OLD TURKIC LETTER ORKHON OP*/ + RTUNI_ALPHA, /* U+010c31: OLD TURKIC LETTER ORKHON IC*/ + RTUNI_ALPHA, /* U+010c32: OLD TURKIC LETTER ORKHON EC*/ + RTUNI_ALPHA, /* U+010c33: OLD TURKIC LETTER YENISEI EC*/ + RTUNI_ALPHA, /* U+010c34: OLD TURKIC LETTER ORKHON AQ*/ + RTUNI_ALPHA, /* U+010c35: OLD TURKIC LETTER YENISEI AQ*/ + RTUNI_ALPHA, /* U+010c36: OLD TURKIC LETTER ORKHON IQ*/ + RTUNI_ALPHA, /* U+010c37: OLD TURKIC LETTER YENISEI IQ*/ + RTUNI_ALPHA, /* U+010c38: OLD TURKIC LETTER ORKHON OQ*/ + RTUNI_ALPHA, /* U+010c39: OLD TURKIC LETTER YENISEI OQ*/ + RTUNI_ALPHA, /* U+010c3a: OLD TURKIC LETTER ORKHON AR*/ + RTUNI_ALPHA, /* U+010c3b: OLD TURKIC LETTER YENISEI AR*/ + RTUNI_ALPHA, /* U+010c3c: OLD TURKIC LETTER ORKHON AER*/ + RTUNI_ALPHA, /* U+010c3d: OLD TURKIC LETTER ORKHON AS*/ + RTUNI_ALPHA, /* U+010c3e: OLD TURKIC LETTER ORKHON AES*/ + RTUNI_ALPHA, /* U+010c3f: OLD TURKIC LETTER ORKHON ASH*/ + RTUNI_ALPHA, /* U+010c40: OLD TURKIC LETTER YENISEI ASH*/ + RTUNI_ALPHA, /* U+010c41: OLD TURKIC LETTER ORKHON ESH*/ + RTUNI_ALPHA, /* U+010c42: OLD TURKIC LETTER YENISEI ESH*/ + RTUNI_ALPHA, /* U+010c43: OLD TURKIC LETTER ORKHON AT*/ + RTUNI_ALPHA, /* U+010c44: OLD TURKIC LETTER YENISEI AT*/ + RTUNI_ALPHA, /* U+010c45: OLD TURKIC LETTER ORKHON AET*/ + RTUNI_ALPHA, /* U+010c46: OLD TURKIC LETTER YENISEI AET*/ + RTUNI_ALPHA, /* U+010c47: OLD TURKIC LETTER ORKHON OT*/ + RTUNI_ALPHA, /* U+010c48: OLD TURKIC LETTER ORKHON BASH*/ + 0, /* U+010c49: */ + 0, /* U+010c4a: */ + 0, /* U+010c4b: */ + 0, /* U+010c4c: */ + 0, /* U+010c4d: */ + 0, /* U+010c4e: */ + 0, /* U+010c4f: */ + 0, /* U+010c50: */ + 0, /* U+010c51: */ + 0, /* U+010c52: */ + 0, /* U+010c53: */ + 0, /* U+010c54: */ + 0, /* U+010c55: */ + 0, /* U+010c56: */ + 0, /* U+010c57: */ + 0, /* U+010c58: */ + 0, /* U+010c59: */ + 0, /* U+010c5a: */ + 0, /* U+010c5b: */ + 0, /* U+010c5c: */ + 0, /* U+010c5d: */ + 0, /* U+010c5e: */ + 0, /* U+010c5f: */ + 0, /* U+010c60: */ + 0, /* U+010c61: */ + 0, /* U+010c62: */ + 0, /* U+010c63: */ + 0, /* U+010c64: */ + 0, /* U+010c65: */ + 0, /* U+010c66: */ + 0, /* U+010c67: */ + 0, /* U+010c68: */ + 0, /* U+010c69: */ + 0, /* U+010c6a: */ + 0, /* U+010c6b: */ + 0, /* U+010c6c: */ + 0, /* U+010c6d: */ + 0, /* U+010c6e: */ + 0, /* U+010c6f: */ + 0, /* U+010c70: */ + 0, /* U+010c71: */ + 0, /* U+010c72: */ + 0, /* U+010c73: */ + 0, /* U+010c74: */ + 0, /* U+010c75: */ + 0, /* U+010c76: */ + 0, /* U+010c77: */ + 0, /* U+010c78: */ + 0, /* U+010c79: */ + 0, /* U+010c7a: */ + 0, /* U+010c7b: */ + 0, /* U+010c7c: */ + 0, /* U+010c7d: */ + 0, /* U+010c7e: */ + 0, /* U+010c7f: */ + 0, /* U+010c80: */ + 0, /* U+010c81: */ + 0, /* U+010c82: */ + 0, /* U+010c83: */ + 0, /* U+010c84: */ + 0, /* U+010c85: */ + 0, /* U+010c86: */ + 0, /* U+010c87: */ + 0, /* U+010c88: */ + 0, /* U+010c89: */ + 0, /* U+010c8a: */ + 0, /* U+010c8b: */ + 0, /* U+010c8c: */ + 0, /* U+010c8d: */ + 0, /* U+010c8e: */ + 0, /* U+010c8f: */ + 0, /* U+010c90: */ + 0, /* U+010c91: */ + 0, /* U+010c92: */ + 0, /* U+010c93: */ + 0, /* U+010c94: */ + 0, /* U+010c95: */ + 0, /* U+010c96: */ + 0, /* U+010c97: */ + 0, /* U+010c98: */ + 0, /* U+010c99: */ + 0, /* U+010c9a: */ + 0, /* U+010c9b: */ + 0, /* U+010c9c: */ + 0, /* U+010c9d: */ + 0, /* U+010c9e: */ + 0, /* U+010c9f: */ + 0, /* U+010ca0: */ + 0, /* U+010ca1: */ + 0, /* U+010ca2: */ + 0, /* U+010ca3: */ + 0, /* U+010ca4: */ + 0, /* U+010ca5: */ + 0, /* U+010ca6: */ + 0, /* U+010ca7: */ + 0, /* U+010ca8: */ + 0, /* U+010ca9: */ + 0, /* U+010caa: */ + 0, /* U+010cab: */ + 0, /* U+010cac: */ + 0, /* U+010cad: */ + 0, /* U+010cae: */ + 0, /* U+010caf: */ + 0, /* U+010cb0: */ + 0, /* U+010cb1: */ + 0, /* U+010cb2: */ + 0, /* U+010cb3: */ + 0, /* U+010cb4: */ + 0, /* U+010cb5: */ + 0, /* U+010cb6: */ + 0, /* U+010cb7: */ + 0, /* U+010cb8: */ + 0, /* U+010cb9: */ + 0, /* U+010cba: */ + 0, /* U+010cbb: */ + 0, /* U+010cbc: */ + 0, /* U+010cbd: */ + 0, /* U+010cbe: */ + 0, /* U+010cbf: */ + 0, /* U+010cc0: */ + 0, /* U+010cc1: */ + 0, /* U+010cc2: */ + 0, /* U+010cc3: */ + 0, /* U+010cc4: */ + 0, /* U+010cc5: */ + 0, /* U+010cc6: */ + 0, /* U+010cc7: */ + 0, /* U+010cc8: */ + 0, /* U+010cc9: */ + 0, /* U+010cca: */ + 0, /* U+010ccb: */ + 0, /* U+010ccc: */ + 0, /* U+010ccd: */ + 0, /* U+010cce: */ + 0, /* U+010ccf: */ + 0, /* U+010cd0: */ + 0, /* U+010cd1: */ + 0, /* U+010cd2: */ + 0, /* U+010cd3: */ + 0, /* U+010cd4: */ + 0, /* U+010cd5: */ + 0, /* U+010cd6: */ + 0, /* U+010cd7: */ + 0, /* U+010cd8: */ + 0, /* U+010cd9: */ + 0, /* U+010cda: */ + 0, /* U+010cdb: */ + 0, /* U+010cdc: */ + 0, /* U+010cdd: */ + 0, /* U+010cde: */ + 0, /* U+010cdf: */ + 0, /* U+010ce0: */ + 0, /* U+010ce1: */ + 0, /* U+010ce2: */ + 0, /* U+010ce3: */ + 0, /* U+010ce4: */ + 0, /* U+010ce5: */ + 0, /* U+010ce6: */ + 0, /* U+010ce7: */ + 0, /* U+010ce8: */ + 0, /* U+010ce9: */ + 0, /* U+010cea: */ + 0, /* U+010ceb: */ + 0, /* U+010cec: */ + 0, /* U+010ced: */ + 0, /* U+010cee: */ + 0, /* U+010cef: */ + 0, /* U+010cf0: */ + 0, /* U+010cf1: */ + 0, /* U+010cf2: */ + 0, /* U+010cf3: */ + 0, /* U+010cf4: */ + 0, /* U+010cf5: */ + 0, /* U+010cf6: */ + 0, /* U+010cf7: */ + 0, /* U+010cf8: */ + 0, /* U+010cf9: */ + 0, /* U+010cfa: */ + 0, /* U+010cfb: */ + 0, /* U+010cfc: */ + 0, /* U+010cfd: */ + 0, /* U+010cfe: */ + 0, /* U+010cff: */ + 0, /* U+010d00: */ + 0, /* U+010d01: */ + 0, /* U+010d02: */ + 0, /* U+010d03: */ + 0, /* U+010d04: */ + 0, /* U+010d05: */ + 0, /* U+010d06: */ + 0, /* U+010d07: */ + 0, /* U+010d08: */ + 0, /* U+010d09: */ + 0, /* U+010d0a: */ + 0, /* U+010d0b: */ + 0, /* U+010d0c: */ + 0, /* U+010d0d: */ + 0, /* U+010d0e: */ + 0, /* U+010d0f: */ + 0, /* U+010d10: */ + 0, /* U+010d11: */ + 0, /* U+010d12: */ + 0, /* U+010d13: */ + 0, /* U+010d14: */ + 0, /* U+010d15: */ + 0, /* U+010d16: */ + 0, /* U+010d17: */ + 0, /* U+010d18: */ + 0, /* U+010d19: */ + 0, /* U+010d1a: */ + 0, /* U+010d1b: */ + 0, /* U+010d1c: */ + 0, /* U+010d1d: */ + 0, /* U+010d1e: */ + 0, /* U+010d1f: */ + 0, /* U+010d20: */ + 0, /* U+010d21: */ + 0, /* U+010d22: */ + 0, /* U+010d23: */ + 0, /* U+010d24: */ + 0, /* U+010d25: */ + 0, /* U+010d26: */ + 0, /* U+010d27: */ + 0, /* U+010d28: */ + 0, /* U+010d29: */ + 0, /* U+010d2a: */ + 0, /* U+010d2b: */ + 0, /* U+010d2c: */ + 0, /* U+010d2d: */ + 0, /* U+010d2e: */ + 0, /* U+010d2f: */ + 0, /* U+010d30: */ + 0, /* U+010d31: */ + 0, /* U+010d32: */ + 0, /* U+010d33: */ + 0, /* U+010d34: */ + 0, /* U+010d35: */ + 0, /* U+010d36: */ + 0, /* U+010d37: */ + 0, /* U+010d38: */ + 0, /* U+010d39: */ + 0, /* U+010d3a: */ + 0, /* U+010d3b: */ + 0, /* U+010d3c: */ + 0, /* U+010d3d: */ + 0, /* U+010d3e: */ + 0, /* U+010d3f: */ + 0, /* U+010d40: */ + 0, /* U+010d41: */ + 0, /* U+010d42: */ + 0, /* U+010d43: */ + 0, /* U+010d44: */ + 0, /* U+010d45: */ + 0, /* U+010d46: */ + 0, /* U+010d47: */ + 0, /* U+010d48: */ + 0, /* U+010d49: */ + 0, /* U+010d4a: */ + 0, /* U+010d4b: */ + 0, /* U+010d4c: */ + 0, /* U+010d4d: */ + 0, /* U+010d4e: */ + 0, /* U+010d4f: */ + 0, /* U+010d50: */ + 0, /* U+010d51: */ + 0, /* U+010d52: */ + 0, /* U+010d53: */ + 0, /* U+010d54: */ + 0, /* U+010d55: */ + 0, /* U+010d56: */ + 0, /* U+010d57: */ + 0, /* U+010d58: */ + 0, /* U+010d59: */ + 0, /* U+010d5a: */ + 0, /* U+010d5b: */ + 0, /* U+010d5c: */ + 0, /* U+010d5d: */ + 0, /* U+010d5e: */ + 0, /* U+010d5f: */ + 0, /* U+010d60: */ + 0, /* U+010d61: */ + 0, /* U+010d62: */ + 0, /* U+010d63: */ + 0, /* U+010d64: */ + 0, /* U+010d65: */ + 0, /* U+010d66: */ + 0, /* U+010d67: */ + 0, /* U+010d68: */ + 0, /* U+010d69: */ + 0, /* U+010d6a: */ + 0, /* U+010d6b: */ + 0, /* U+010d6c: */ + 0, /* U+010d6d: */ + 0, /* U+010d6e: */ + 0, /* U+010d6f: */ + 0, /* U+010d70: */ + 0, /* U+010d71: */ + 0, /* U+010d72: */ + 0, /* U+010d73: */ + 0, /* U+010d74: */ + 0, /* U+010d75: */ + 0, /* U+010d76: */ + 0, /* U+010d77: */ + 0, /* U+010d78: */ + 0, /* U+010d79: */ + 0, /* U+010d7a: */ + 0, /* U+010d7b: */ + 0, /* U+010d7c: */ + 0, /* U+010d7d: */ + 0, /* U+010d7e: */ + 0, /* U+010d7f: */ + 0, /* U+010d80: */ + 0, /* U+010d81: */ + 0, /* U+010d82: */ + 0, /* U+010d83: */ + 0, /* U+010d84: */ + 0, /* U+010d85: */ + 0, /* U+010d86: */ + 0, /* U+010d87: */ + 0, /* U+010d88: */ + 0, /* U+010d89: */ + 0, /* U+010d8a: */ + 0, /* U+010d8b: */ + 0, /* U+010d8c: */ + 0, /* U+010d8d: */ + 0, /* U+010d8e: */ + 0, /* U+010d8f: */ + 0, /* U+010d90: */ + 0, /* U+010d91: */ + 0, /* U+010d92: */ + 0, /* U+010d93: */ + 0, /* U+010d94: */ + 0, /* U+010d95: */ + 0, /* U+010d96: */ + 0, /* U+010d97: */ + 0, /* U+010d98: */ + 0, /* U+010d99: */ + 0, /* U+010d9a: */ + 0, /* U+010d9b: */ + 0, /* U+010d9c: */ + 0, /* U+010d9d: */ + 0, /* U+010d9e: */ + 0, /* U+010d9f: */ + 0, /* U+010da0: */ + 0, /* U+010da1: */ + 0, /* U+010da2: */ + 0, /* U+010da3: */ + 0, /* U+010da4: */ + 0, /* U+010da5: */ + 0, /* U+010da6: */ + 0, /* U+010da7: */ + 0, /* U+010da8: */ + 0, /* U+010da9: */ + 0, /* U+010daa: */ + 0, /* U+010dab: */ + 0, /* U+010dac: */ + 0, /* U+010dad: */ + 0, /* U+010dae: */ + 0, /* U+010daf: */ + 0, /* U+010db0: */ + 0, /* U+010db1: */ + 0, /* U+010db2: */ + 0, /* U+010db3: */ + 0, /* U+010db4: */ + 0, /* U+010db5: */ + 0, /* U+010db6: */ + 0, /* U+010db7: */ + 0, /* U+010db8: */ + 0, /* U+010db9: */ + 0, /* U+010dba: */ + 0, /* U+010dbb: */ + 0, /* U+010dbc: */ + 0, /* U+010dbd: */ + 0, /* U+010dbe: */ + 0, /* U+010dbf: */ + 0, /* U+010dc0: */ + 0, /* U+010dc1: */ + 0, /* U+010dc2: */ + 0, /* U+010dc3: */ + 0, /* U+010dc4: */ + 0, /* U+010dc5: */ + 0, /* U+010dc6: */ + 0, /* U+010dc7: */ + 0, /* U+010dc8: */ + 0, /* U+010dc9: */ + 0, /* U+010dca: */ + 0, /* U+010dcb: */ + 0, /* U+010dcc: */ + 0, /* U+010dcd: */ + 0, /* U+010dce: */ + 0, /* U+010dcf: */ + 0, /* U+010dd0: */ + 0, /* U+010dd1: */ + 0, /* U+010dd2: */ + 0, /* U+010dd3: */ + 0, /* U+010dd4: */ + 0, /* U+010dd5: */ + 0, /* U+010dd6: */ + 0, /* U+010dd7: */ + 0, /* U+010dd8: */ + 0, /* U+010dd9: */ + 0, /* U+010dda: */ + 0, /* U+010ddb: */ + 0, /* U+010ddc: */ + 0, /* U+010ddd: */ + 0, /* U+010dde: */ + 0, /* U+010ddf: */ + 0, /* U+010de0: */ + 0, /* U+010de1: */ + 0, /* U+010de2: */ + 0, /* U+010de3: */ + 0, /* U+010de4: */ + 0, /* U+010de5: */ + 0, /* U+010de6: */ + 0, /* U+010de7: */ + 0, /* U+010de8: */ + 0, /* U+010de9: */ + 0, /* U+010dea: */ + 0, /* U+010deb: */ + 0, /* U+010dec: */ + 0, /* U+010ded: */ + 0, /* U+010dee: */ + 0, /* U+010def: */ + 0, /* U+010df0: */ + 0, /* U+010df1: */ + 0, /* U+010df2: */ + 0, /* U+010df3: */ + 0, /* U+010df4: */ + 0, /* U+010df5: */ + 0, /* U+010df6: */ + 0, /* U+010df7: */ + 0, /* U+010df8: */ + 0, /* U+010df9: */ + 0, /* U+010dfa: */ + 0, /* U+010dfb: */ + 0, /* U+010dfc: */ + 0, /* U+010dfd: */ + 0, /* U+010dfe: */ + 0, /* U+010dff: */ + 0, /* U+010e00: */ + 0, /* U+010e01: */ + 0, /* U+010e02: */ + 0, /* U+010e03: */ + 0, /* U+010e04: */ + 0, /* U+010e05: */ + 0, /* U+010e06: */ + 0, /* U+010e07: */ + 0, /* U+010e08: */ + 0, /* U+010e09: */ + 0, /* U+010e0a: */ + 0, /* U+010e0b: */ + 0, /* U+010e0c: */ + 0, /* U+010e0d: */ + 0, /* U+010e0e: */ + 0, /* U+010e0f: */ + 0, /* U+010e10: */ + 0, /* U+010e11: */ + 0, /* U+010e12: */ + 0, /* U+010e13: */ + 0, /* U+010e14: */ + 0, /* U+010e15: */ + 0, /* U+010e16: */ + 0, /* U+010e17: */ + 0, /* U+010e18: */ + 0, /* U+010e19: */ + 0, /* U+010e1a: */ + 0, /* U+010e1b: */ + 0, /* U+010e1c: */ + 0, /* U+010e1d: */ + 0, /* U+010e1e: */ + 0, /* U+010e1f: */ + 0, /* U+010e20: */ + 0, /* U+010e21: */ + 0, /* U+010e22: */ + 0, /* U+010e23: */ + 0, /* U+010e24: */ + 0, /* U+010e25: */ + 0, /* U+010e26: */ + 0, /* U+010e27: */ + 0, /* U+010e28: */ + 0, /* U+010e29: */ + 0, /* U+010e2a: */ + 0, /* U+010e2b: */ + 0, /* U+010e2c: */ + 0, /* U+010e2d: */ + 0, /* U+010e2e: */ + 0, /* U+010e2f: */ + 0, /* U+010e30: */ + 0, /* U+010e31: */ + 0, /* U+010e32: */ + 0, /* U+010e33: */ + 0, /* U+010e34: */ + 0, /* U+010e35: */ + 0, /* U+010e36: */ + 0, /* U+010e37: */ + 0, /* U+010e38: */ + 0, /* U+010e39: */ + 0, /* U+010e3a: */ + 0, /* U+010e3b: */ + 0, /* U+010e3c: */ + 0, /* U+010e3d: */ + 0, /* U+010e3e: */ + 0, /* U+010e3f: */ + 0, /* U+010e40: */ + 0, /* U+010e41: */ + 0, /* U+010e42: */ + 0, /* U+010e43: */ + 0, /* U+010e44: */ + 0, /* U+010e45: */ + 0, /* U+010e46: */ + 0, /* U+010e47: */ + 0, /* U+010e48: */ + 0, /* U+010e49: */ + 0, /* U+010e4a: */ + 0, /* U+010e4b: */ + 0, /* U+010e4c: */ + 0, /* U+010e4d: */ + 0, /* U+010e4e: */ + 0, /* U+010e4f: */ + 0, /* U+010e50: */ + 0, /* U+010e51: */ + 0, /* U+010e52: */ + 0, /* U+010e53: */ + 0, /* U+010e54: */ + 0, /* U+010e55: */ + 0, /* U+010e56: */ + 0, /* U+010e57: */ + 0, /* U+010e58: */ + 0, /* U+010e59: */ + 0, /* U+010e5a: */ + 0, /* U+010e5b: */ + 0, /* U+010e5c: */ + 0, /* U+010e5d: */ + 0, /* U+010e5e: */ + 0, /* U+010e5f: */ + 0, /* U+010e60: RUMI DIGIT ONE*/ + 0, /* U+010e61: RUMI DIGIT TWO*/ + 0, /* U+010e62: RUMI DIGIT THREE*/ + 0, /* U+010e63: RUMI DIGIT FOUR*/ + 0, /* U+010e64: RUMI DIGIT FIVE*/ + 0, /* U+010e65: RUMI DIGIT SIX*/ + 0, /* U+010e66: RUMI DIGIT SEVEN*/ + 0, /* U+010e67: RUMI DIGIT EIGHT*/ + 0, /* U+010e68: RUMI DIGIT NINE*/ + 0, /* U+010e69: RUMI NUMBER TEN*/ + 0, /* U+010e6a: RUMI NUMBER TWENTY*/ + 0, /* U+010e6b: RUMI NUMBER THIRTY*/ + 0, /* U+010e6c: RUMI NUMBER FORTY*/ + 0, /* U+010e6d: RUMI NUMBER FIFTY*/ + 0, /* U+010e6e: RUMI NUMBER SIXTY*/ + 0, /* U+010e6f: RUMI NUMBER SEVENTY*/ + 0, /* U+010e70: RUMI NUMBER EIGHTY*/ + 0, /* U+010e71: RUMI NUMBER NINETY*/ + 0, /* U+010e72: RUMI NUMBER ONE HUNDRED*/ + 0, /* U+010e73: RUMI NUMBER TWO HUNDRED*/ + 0, /* U+010e74: RUMI NUMBER THREE HUNDRED*/ + 0, /* U+010e75: RUMI NUMBER FOUR HUNDRED*/ + 0, /* U+010e76: RUMI NUMBER FIVE HUNDRED*/ + 0, /* U+010e77: RUMI NUMBER SIX HUNDRED*/ + 0, /* U+010e78: RUMI NUMBER SEVEN HUNDRED*/ + 0, /* U+010e79: RUMI NUMBER EIGHT HUNDRED*/ + 0, /* U+010e7a: RUMI NUMBER NINE HUNDRED*/ + 0, /* U+010e7b: RUMI FRACTION ONE HALF*/ + 0, /* U+010e7c: RUMI FRACTION ONE QUARTER*/ + 0, /* U+010e7d: RUMI FRACTION ONE THIRD*/ + 0, /* U+010e7e: RUMI FRACTION TWO THIRDS*/ + 0, /* U+010e7f: */ + 0, /* U+010e80: */ + 0, /* U+010e81: */ + 0, /* U+010e82: */ + 0, /* U+010e83: */ + 0, /* U+010e84: */ + 0, /* U+010e85: */ + 0, /* U+010e86: */ + 0, /* U+010e87: */ + 0, /* U+010e88: */ + 0, /* U+010e89: */ + 0, /* U+010e8a: */ + 0, /* U+010e8b: */ + 0, /* U+010e8c: */ + 0, /* U+010e8d: */ + 0, /* U+010e8e: */ + 0, /* U+010e8f: */ + 0, /* U+010e90: */ + 0, /* U+010e91: */ + 0, /* U+010e92: */ + 0, /* U+010e93: */ + 0, /* U+010e94: */ + 0, /* U+010e95: */ + 0, /* U+010e96: */ + 0, /* U+010e97: */ + 0, /* U+010e98: */ + 0, /* U+010e99: */ + 0, /* U+010e9a: */ + 0, /* U+010e9b: */ + 0, /* U+010e9c: */ + 0, /* U+010e9d: */ + 0, /* U+010e9e: */ + 0, /* U+010e9f: */ + 0, /* U+010ea0: */ + 0, /* U+010ea1: */ + 0, /* U+010ea2: */ + 0, /* U+010ea3: */ + 0, /* U+010ea4: */ + 0, /* U+010ea5: */ + 0, /* U+010ea6: */ + 0, /* U+010ea7: */ + 0, /* U+010ea8: */ + 0, /* U+010ea9: */ + 0, /* U+010eaa: */ + 0, /* U+010eab: */ + 0, /* U+010eac: */ + 0, /* U+010ead: */ + 0, /* U+010eae: */ + 0, /* U+010eaf: */ + 0, /* U+010eb0: */ + 0, /* U+010eb1: */ + 0, /* U+010eb2: */ + 0, /* U+010eb3: */ + 0, /* U+010eb4: */ + 0, /* U+010eb5: */ + 0, /* U+010eb6: */ + 0, /* U+010eb7: */ + 0, /* U+010eb8: */ + 0, /* U+010eb9: */ + 0, /* U+010eba: */ + 0, /* U+010ebb: */ + 0, /* U+010ebc: */ + 0, /* U+010ebd: */ + 0, /* U+010ebe: */ + 0, /* U+010ebf: */ + 0, /* U+010ec0: */ + 0, /* U+010ec1: */ + 0, /* U+010ec2: */ + 0, /* U+010ec3: */ + 0, /* U+010ec4: */ + 0, /* U+010ec5: */ + 0, /* U+010ec6: */ + 0, /* U+010ec7: */ + 0, /* U+010ec8: */ + 0, /* U+010ec9: */ + 0, /* U+010eca: */ + 0, /* U+010ecb: */ + 0, /* U+010ecc: */ + 0, /* U+010ecd: */ + 0, /* U+010ece: */ + 0, /* U+010ecf: */ + 0, /* U+010ed0: */ + 0, /* U+010ed1: */ + 0, /* U+010ed2: */ + 0, /* U+010ed3: */ + 0, /* U+010ed4: */ + 0, /* U+010ed5: */ + 0, /* U+010ed6: */ + 0, /* U+010ed7: */ + 0, /* U+010ed8: */ + 0, /* U+010ed9: */ + 0, /* U+010eda: */ + 0, /* U+010edb: */ + 0, /* U+010edc: */ + 0, /* U+010edd: */ + 0, /* U+010ede: */ + 0, /* U+010edf: */ + 0, /* U+010ee0: */ + 0, /* U+010ee1: */ + 0, /* U+010ee2: */ + 0, /* U+010ee3: */ + 0, /* U+010ee4: */ + 0, /* U+010ee5: */ + 0, /* U+010ee6: */ + 0, /* U+010ee7: */ + 0, /* U+010ee8: */ + 0, /* U+010ee9: */ + 0, /* U+010eea: */ + 0, /* U+010eeb: */ + 0, /* U+010eec: */ + 0, /* U+010eed: */ + 0, /* U+010eee: */ + 0, /* U+010eef: */ + 0, /* U+010ef0: */ + 0, /* U+010ef1: */ + 0, /* U+010ef2: */ + 0, /* U+010ef3: */ + 0, /* U+010ef4: */ + 0, /* U+010ef5: */ + 0, /* U+010ef6: */ + 0, /* U+010ef7: */ + 0, /* U+010ef8: */ + 0, /* U+010ef9: */ + 0, /* U+010efa: */ + 0, /* U+010efb: */ + 0, /* U+010efc: */ + 0, /* U+010efd: */ + 0, /* U+010efe: */ + 0, /* U+010eff: */ + 0, /* U+010f00: */ + 0, /* U+010f01: */ + 0, /* U+010f02: */ + 0, /* U+010f03: */ + 0, /* U+010f04: */ + 0, /* U+010f05: */ + 0, /* U+010f06: */ + 0, /* U+010f07: */ + 0, /* U+010f08: */ + 0, /* U+010f09: */ + 0, /* U+010f0a: */ + 0, /* U+010f0b: */ + 0, /* U+010f0c: */ + 0, /* U+010f0d: */ + 0, /* U+010f0e: */ + 0, /* U+010f0f: */ + 0, /* U+010f10: */ + 0, /* U+010f11: */ + 0, /* U+010f12: */ + 0, /* U+010f13: */ + 0, /* U+010f14: */ + 0, /* U+010f15: */ + 0, /* U+010f16: */ + 0, /* U+010f17: */ + 0, /* U+010f18: */ + 0, /* U+010f19: */ + 0, /* U+010f1a: */ + 0, /* U+010f1b: */ + 0, /* U+010f1c: */ + 0, /* U+010f1d: */ + 0, /* U+010f1e: */ + 0, /* U+010f1f: */ + 0, /* U+010f20: */ + 0, /* U+010f21: */ + 0, /* U+010f22: */ + 0, /* U+010f23: */ + 0, /* U+010f24: */ + 0, /* U+010f25: */ + 0, /* U+010f26: */ + 0, /* U+010f27: */ + 0, /* U+010f28: */ + 0, /* U+010f29: */ + 0, /* U+010f2a: */ + 0, /* U+010f2b: */ + 0, /* U+010f2c: */ + 0, /* U+010f2d: */ + 0, /* U+010f2e: */ + 0, /* U+010f2f: */ + 0, /* U+010f30: */ + 0, /* U+010f31: */ + 0, /* U+010f32: */ + 0, /* U+010f33: */ + 0, /* U+010f34: */ + 0, /* U+010f35: */ + 0, /* U+010f36: */ + 0, /* U+010f37: */ + 0, /* U+010f38: */ + 0, /* U+010f39: */ + 0, /* U+010f3a: */ + 0, /* U+010f3b: */ + 0, /* U+010f3c: */ + 0, /* U+010f3d: */ + 0, /* U+010f3e: */ + 0, /* U+010f3f: */ + 0, /* U+010f40: */ + 0, /* U+010f41: */ + 0, /* U+010f42: */ + 0, /* U+010f43: */ + 0, /* U+010f44: */ + 0, /* U+010f45: */ + 0, /* U+010f46: */ + 0, /* U+010f47: */ + 0, /* U+010f48: */ + 0, /* U+010f49: */ + 0, /* U+010f4a: */ + 0, /* U+010f4b: */ + 0, /* U+010f4c: */ + 0, /* U+010f4d: */ + 0, /* U+010f4e: */ + 0, /* U+010f4f: */ + 0, /* U+010f50: */ + 0, /* U+010f51: */ + 0, /* U+010f52: */ + 0, /* U+010f53: */ + 0, /* U+010f54: */ + 0, /* U+010f55: */ + 0, /* U+010f56: */ + 0, /* U+010f57: */ + 0, /* U+010f58: */ + 0, /* U+010f59: */ + 0, /* U+010f5a: */ + 0, /* U+010f5b: */ + 0, /* U+010f5c: */ + 0, /* U+010f5d: */ + 0, /* U+010f5e: */ + 0, /* U+010f5f: */ + 0, /* U+010f60: */ + 0, /* U+010f61: */ + 0, /* U+010f62: */ + 0, /* U+010f63: */ + 0, /* U+010f64: */ + 0, /* U+010f65: */ + 0, /* U+010f66: */ + 0, /* U+010f67: */ + 0, /* U+010f68: */ + 0, /* U+010f69: */ + 0, /* U+010f6a: */ + 0, /* U+010f6b: */ + 0, /* U+010f6c: */ + 0, /* U+010f6d: */ + 0, /* U+010f6e: */ + 0, /* U+010f6f: */ + 0, /* U+010f70: */ + 0, /* U+010f71: */ + 0, /* U+010f72: */ + 0, /* U+010f73: */ + 0, /* U+010f74: */ + 0, /* U+010f75: */ + 0, /* U+010f76: */ + 0, /* U+010f77: */ + 0, /* U+010f78: */ + 0, /* U+010f79: */ + 0, /* U+010f7a: */ + 0, /* U+010f7b: */ + 0, /* U+010f7c: */ + 0, /* U+010f7d: */ + 0, /* U+010f7e: */ + 0, /* U+010f7f: */ + 0, /* U+010f80: */ + 0, /* U+010f81: */ + 0, /* U+010f82: */ + 0, /* U+010f83: */ + 0, /* U+010f84: */ + 0, /* U+010f85: */ + 0, /* U+010f86: */ + 0, /* U+010f87: */ + 0, /* U+010f88: */ + 0, /* U+010f89: */ + 0, /* U+010f8a: */ + 0, /* U+010f8b: */ + 0, /* U+010f8c: */ + 0, /* U+010f8d: */ + 0, /* U+010f8e: */ + 0, /* U+010f8f: */ + 0, /* U+010f90: */ + 0, /* U+010f91: */ + 0, /* U+010f92: */ + 0, /* U+010f93: */ + 0, /* U+010f94: */ + 0, /* U+010f95: */ + 0, /* U+010f96: */ + 0, /* U+010f97: */ + 0, /* U+010f98: */ + 0, /* U+010f99: */ + 0, /* U+010f9a: */ + 0, /* U+010f9b: */ + 0, /* U+010f9c: */ + 0, /* U+010f9d: */ + 0, /* U+010f9e: */ + 0, /* U+010f9f: */ + 0, /* U+010fa0: */ + 0, /* U+010fa1: */ + 0, /* U+010fa2: */ + 0, /* U+010fa3: */ + 0, /* U+010fa4: */ + 0, /* U+010fa5: */ + 0, /* U+010fa6: */ + 0, /* U+010fa7: */ + 0, /* U+010fa8: */ + 0, /* U+010fa9: */ + 0, /* U+010faa: */ + 0, /* U+010fab: */ + 0, /* U+010fac: */ + 0, /* U+010fad: */ + 0, /* U+010fae: */ + 0, /* U+010faf: */ + 0, /* U+010fb0: */ + 0, /* U+010fb1: */ + 0, /* U+010fb2: */ + 0, /* U+010fb3: */ + 0, /* U+010fb4: */ + 0, /* U+010fb5: */ + 0, /* U+010fb6: */ + 0, /* U+010fb7: */ + 0, /* U+010fb8: */ + 0, /* U+010fb9: */ + 0, /* U+010fba: */ + 0, /* U+010fbb: */ + 0, /* U+010fbc: */ + 0, /* U+010fbd: */ + 0, /* U+010fbe: */ + 0, /* U+010fbf: */ + 0, /* U+010fc0: */ + 0, /* U+010fc1: */ + 0, /* U+010fc2: */ + 0, /* U+010fc3: */ + 0, /* U+010fc4: */ + 0, /* U+010fc5: */ + 0, /* U+010fc6: */ + 0, /* U+010fc7: */ + 0, /* U+010fc8: */ + 0, /* U+010fc9: */ + 0, /* U+010fca: */ + 0, /* U+010fcb: */ + 0, /* U+010fcc: */ + 0, /* U+010fcd: */ + 0, /* U+010fce: */ + 0, /* U+010fcf: */ + 0, /* U+010fd0: */ + 0, /* U+010fd1: */ + 0, /* U+010fd2: */ + 0, /* U+010fd3: */ + 0, /* U+010fd4: */ + 0, /* U+010fd5: */ + 0, /* U+010fd6: */ + 0, /* U+010fd7: */ + 0, /* U+010fd8: */ + 0, /* U+010fd9: */ + 0, /* U+010fda: */ + 0, /* U+010fdb: */ + 0, /* U+010fdc: */ + 0, /* U+010fdd: */ + 0, /* U+010fde: */ + 0, /* U+010fdf: */ + 0, /* U+010fe0: */ + 0, /* U+010fe1: */ + 0, /* U+010fe2: */ + 0, /* U+010fe3: */ + 0, /* U+010fe4: */ + 0, /* U+010fe5: */ + 0, /* U+010fe6: */ + 0, /* U+010fe7: */ + 0, /* U+010fe8: */ + 0, /* U+010fe9: */ + 0, /* U+010fea: */ + 0, /* U+010feb: */ + 0, /* U+010fec: */ + 0, /* U+010fed: */ + 0, /* U+010fee: */ + 0, /* U+010fef: */ + 0, /* U+010ff0: */ + 0, /* U+010ff1: */ + 0, /* U+010ff2: */ + 0, /* U+010ff3: */ + 0, /* U+010ff4: */ + 0, /* U+010ff5: */ + 0, /* U+010ff6: */ + 0, /* U+010ff7: */ + 0, /* U+010ff8: */ + 0, /* U+010ff9: */ + 0, /* U+010ffa: */ + 0, /* U+010ffb: */ + 0, /* U+010ffc: */ + 0, /* U+010ffd: */ + 0, /* U+010ffe: */ + 0, /* U+010fff: */ + RTUNI_ALPHA, /* U+011000: BRAHMI SIGN CANDRABINDU*/ + RTUNI_ALPHA, /* U+011001: BRAHMI SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+011002: BRAHMI SIGN VISARGA*/ + RTUNI_ALPHA, /* U+011003: BRAHMI SIGN JIHVAMULIYA*/ + RTUNI_ALPHA, /* U+011004: BRAHMI SIGN UPADHMANIYA*/ + RTUNI_ALPHA, /* U+011005: BRAHMI LETTER A*/ + RTUNI_ALPHA, /* U+011006: BRAHMI LETTER AA*/ + RTUNI_ALPHA, /* U+011007: BRAHMI LETTER I*/ + RTUNI_ALPHA, /* U+011008: BRAHMI LETTER II*/ + RTUNI_ALPHA, /* U+011009: BRAHMI LETTER U*/ + RTUNI_ALPHA, /* U+01100a: BRAHMI LETTER UU*/ + RTUNI_ALPHA, /* U+01100b: BRAHMI LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+01100c: BRAHMI LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+01100d: BRAHMI LETTER VOCALIC L*/ + RTUNI_ALPHA, /* U+01100e: BRAHMI LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+01100f: BRAHMI LETTER E*/ + RTUNI_ALPHA, /* U+011010: BRAHMI LETTER AI*/ + RTUNI_ALPHA, /* U+011011: BRAHMI LETTER O*/ + RTUNI_ALPHA, /* U+011012: BRAHMI LETTER AU*/ + RTUNI_ALPHA, /* U+011013: BRAHMI LETTER KA*/ + RTUNI_ALPHA, /* U+011014: BRAHMI LETTER KHA*/ + RTUNI_ALPHA, /* U+011015: BRAHMI LETTER GA*/ + RTUNI_ALPHA, /* U+011016: BRAHMI LETTER GHA*/ + RTUNI_ALPHA, /* U+011017: BRAHMI LETTER NGA*/ + RTUNI_ALPHA, /* U+011018: BRAHMI LETTER CA*/ + RTUNI_ALPHA, /* U+011019: BRAHMI LETTER CHA*/ + RTUNI_ALPHA, /* U+01101a: BRAHMI LETTER JA*/ + RTUNI_ALPHA, /* U+01101b: BRAHMI LETTER JHA*/ + RTUNI_ALPHA, /* U+01101c: BRAHMI LETTER NYA*/ + RTUNI_ALPHA, /* U+01101d: BRAHMI LETTER TTA*/ + RTUNI_ALPHA, /* U+01101e: BRAHMI LETTER TTHA*/ + RTUNI_ALPHA, /* U+01101f: BRAHMI LETTER DDA*/ + RTUNI_ALPHA, /* U+011020: BRAHMI LETTER DDHA*/ + RTUNI_ALPHA, /* U+011021: BRAHMI LETTER NNA*/ + RTUNI_ALPHA, /* U+011022: BRAHMI LETTER TA*/ + RTUNI_ALPHA, /* U+011023: BRAHMI LETTER THA*/ + RTUNI_ALPHA, /* U+011024: BRAHMI LETTER DA*/ + RTUNI_ALPHA, /* U+011025: BRAHMI LETTER DHA*/ + RTUNI_ALPHA, /* U+011026: BRAHMI LETTER NA*/ + RTUNI_ALPHA, /* U+011027: BRAHMI LETTER PA*/ + RTUNI_ALPHA, /* U+011028: BRAHMI LETTER PHA*/ + RTUNI_ALPHA, /* U+011029: BRAHMI LETTER BA*/ + RTUNI_ALPHA, /* U+01102a: BRAHMI LETTER BHA*/ + RTUNI_ALPHA, /* U+01102b: BRAHMI LETTER MA*/ + RTUNI_ALPHA, /* U+01102c: BRAHMI LETTER YA*/ + RTUNI_ALPHA, /* U+01102d: BRAHMI LETTER RA*/ + RTUNI_ALPHA, /* U+01102e: BRAHMI LETTER LA*/ + RTUNI_ALPHA, /* U+01102f: BRAHMI LETTER VA*/ + RTUNI_ALPHA, /* U+011030: BRAHMI LETTER SHA*/ + RTUNI_ALPHA, /* U+011031: BRAHMI LETTER SSA*/ + RTUNI_ALPHA, /* U+011032: BRAHMI LETTER SA*/ + RTUNI_ALPHA, /* U+011033: BRAHMI LETTER HA*/ + RTUNI_ALPHA, /* U+011034: BRAHMI LETTER LLA*/ + RTUNI_ALPHA, /* U+011035: BRAHMI LETTER OLD TAMIL LLLA*/ + RTUNI_ALPHA, /* U+011036: BRAHMI LETTER OLD TAMIL RRA*/ + RTUNI_ALPHA, /* U+011037: BRAHMI LETTER OLD TAMIL NNNA*/ + RTUNI_ALPHA, /* U+011038: BRAHMI VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+011039: BRAHMI VOWEL SIGN BHATTIPROLU AA*/ + RTUNI_ALPHA, /* U+01103a: BRAHMI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+01103b: BRAHMI VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+01103c: BRAHMI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+01103d: BRAHMI VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+01103e: BRAHMI VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+01103f: BRAHMI VOWEL SIGN VOCALIC RR*/ + RTUNI_ALPHA, /* U+011040: BRAHMI VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+011041: BRAHMI VOWEL SIGN VOCALIC LL*/ + RTUNI_ALPHA, /* U+011042: BRAHMI VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+011043: BRAHMI VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+011044: BRAHMI VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+011045: BRAHMI VOWEL SIGN AU*/ + 0, /* U+011046: BRAHMI VIRAMA*/ + 0, /* U+011047: BRAHMI DANDA*/ + 0, /* U+011048: BRAHMI DOUBLE DANDA*/ + 0, /* U+011049: BRAHMI PUNCTUATION DOT*/ + 0, /* U+01104a: BRAHMI PUNCTUATION DOUBLE DOT*/ + 0, /* U+01104b: BRAHMI PUNCTUATION LINE*/ + 0, /* U+01104c: BRAHMI PUNCTUATION CRESCENT BAR*/ + 0, /* U+01104d: BRAHMI PUNCTUATION LOTUS*/ + 0, /* U+01104e: */ + 0, /* U+01104f: */ + 0, /* U+011050: */ + 0, /* U+011051: */ + 0, /* U+011052: BRAHMI NUMBER ONE*/ + 0, /* U+011053: BRAHMI NUMBER TWO*/ + 0, /* U+011054: BRAHMI NUMBER THREE*/ + 0, /* U+011055: BRAHMI NUMBER FOUR*/ + 0, /* U+011056: BRAHMI NUMBER FIVE*/ + 0, /* U+011057: BRAHMI NUMBER SIX*/ + 0, /* U+011058: BRAHMI NUMBER SEVEN*/ + 0, /* U+011059: BRAHMI NUMBER EIGHT*/ + 0, /* U+01105a: BRAHMI NUMBER NINE*/ + 0, /* U+01105b: BRAHMI NUMBER TEN*/ + 0, /* U+01105c: BRAHMI NUMBER TWENTY*/ + 0, /* U+01105d: BRAHMI NUMBER THIRTY*/ + 0, /* U+01105e: BRAHMI NUMBER FORTY*/ + 0, /* U+01105f: BRAHMI NUMBER FIFTY*/ + 0, /* U+011060: BRAHMI NUMBER SIXTY*/ + 0, /* U+011061: BRAHMI NUMBER SEVENTY*/ + 0, /* U+011062: BRAHMI NUMBER EIGHTY*/ + 0, /* U+011063: BRAHMI NUMBER NINETY*/ + 0, /* U+011064: BRAHMI NUMBER ONE HUNDRED*/ + 0, /* U+011065: BRAHMI NUMBER ONE THOUSAND*/ + RTUNI_DDIGIT, /* U+011066: BRAHMI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+011067: BRAHMI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+011068: BRAHMI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+011069: BRAHMI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+01106a: BRAHMI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+01106b: BRAHMI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+01106c: BRAHMI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+01106d: BRAHMI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+01106e: BRAHMI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+01106f: BRAHMI DIGIT NINE*/ + 0, /* U+011070: */ + 0, /* U+011071: */ + 0, /* U+011072: */ + 0, /* U+011073: */ + 0, /* U+011074: */ + 0, /* U+011075: */ + 0, /* U+011076: */ + 0, /* U+011077: */ + 0, /* U+011078: */ + 0, /* U+011079: */ + 0, /* U+01107a: */ + 0, /* U+01107b: */ + 0, /* U+01107c: */ + 0, /* U+01107d: */ + 0, /* U+01107e: */ + 0, /* U+01107f: */ + 0, /* U+011080: KAITHI SIGN CANDRABINDU*/ + 0, /* U+011081: KAITHI SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+011082: KAITHI SIGN VISARGA*/ + RTUNI_ALPHA, /* U+011083: KAITHI LETTER A*/ + RTUNI_ALPHA, /* U+011084: KAITHI LETTER AA*/ + RTUNI_ALPHA, /* U+011085: KAITHI LETTER I*/ + RTUNI_ALPHA, /* U+011086: KAITHI LETTER II*/ + RTUNI_ALPHA, /* U+011087: KAITHI LETTER U*/ + RTUNI_ALPHA, /* U+011088: KAITHI LETTER UU*/ + RTUNI_ALPHA, /* U+011089: KAITHI LETTER E*/ + RTUNI_ALPHA, /* U+01108a: KAITHI LETTER AI*/ + RTUNI_ALPHA, /* U+01108b: KAITHI LETTER O*/ + RTUNI_ALPHA, /* U+01108c: KAITHI LETTER AU*/ + RTUNI_ALPHA, /* U+01108d: KAITHI LETTER KA*/ + RTUNI_ALPHA, /* U+01108e: KAITHI LETTER KHA*/ + RTUNI_ALPHA, /* U+01108f: KAITHI LETTER GA*/ + RTUNI_ALPHA, /* U+011090: KAITHI LETTER GHA*/ + RTUNI_ALPHA, /* U+011091: KAITHI LETTER NGA*/ + RTUNI_ALPHA, /* U+011092: KAITHI LETTER CA*/ + RTUNI_ALPHA, /* U+011093: KAITHI LETTER CHA*/ + RTUNI_ALPHA, /* U+011094: KAITHI LETTER JA*/ + RTUNI_ALPHA, /* U+011095: KAITHI LETTER JHA*/ + RTUNI_ALPHA, /* U+011096: KAITHI LETTER NYA*/ + RTUNI_ALPHA, /* U+011097: KAITHI LETTER TTA*/ + RTUNI_ALPHA, /* U+011098: KAITHI LETTER TTHA*/ + RTUNI_ALPHA, /* U+011099: KAITHI LETTER DDA*/ + RTUNI_ALPHA, /* U+01109a: KAITHI LETTER DDDHA*/ + RTUNI_ALPHA, /* U+01109b: KAITHI LETTER DDHA*/ + RTUNI_ALPHA, /* U+01109c: KAITHI LETTER RHA*/ + RTUNI_ALPHA, /* U+01109d: KAITHI LETTER NNA*/ + RTUNI_ALPHA, /* U+01109e: KAITHI LETTER TA*/ + RTUNI_ALPHA, /* U+01109f: KAITHI LETTER THA*/ + RTUNI_ALPHA, /* U+0110a0: KAITHI LETTER DA*/ + RTUNI_ALPHA, /* U+0110a1: KAITHI LETTER DHA*/ + RTUNI_ALPHA, /* U+0110a2: KAITHI LETTER NA*/ + RTUNI_ALPHA, /* U+0110a3: KAITHI LETTER PA*/ + RTUNI_ALPHA, /* U+0110a4: KAITHI LETTER PHA*/ + RTUNI_ALPHA, /* U+0110a5: KAITHI LETTER BA*/ + RTUNI_ALPHA, /* U+0110a6: KAITHI LETTER BHA*/ + RTUNI_ALPHA, /* U+0110a7: KAITHI LETTER MA*/ + RTUNI_ALPHA, /* U+0110a8: KAITHI LETTER YA*/ + RTUNI_ALPHA, /* U+0110a9: KAITHI LETTER RA*/ + RTUNI_ALPHA, /* U+0110aa: KAITHI LETTER LA*/ + RTUNI_ALPHA, /* U+0110ab: KAITHI LETTER VA*/ + RTUNI_ALPHA, /* U+0110ac: KAITHI LETTER SHA*/ + RTUNI_ALPHA, /* U+0110ad: KAITHI LETTER SSA*/ + RTUNI_ALPHA, /* U+0110ae: KAITHI LETTER SA*/ + RTUNI_ALPHA, /* U+0110af: KAITHI LETTER HA*/ + RTUNI_ALPHA, /* U+0110b0: KAITHI VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+0110b1: KAITHI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+0110b2: KAITHI VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+0110b3: KAITHI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+0110b4: KAITHI VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+0110b5: KAITHI VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+0110b6: KAITHI VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+0110b7: KAITHI VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+0110b8: KAITHI VOWEL SIGN AU*/ + 0, /* U+0110b9: KAITHI SIGN VIRAMA*/ + 0, /* U+0110ba: KAITHI SIGN NUKTA*/ + 0, /* U+0110bb: KAITHI ABBREVIATION SIGN*/ + 0, /* U+0110bc: KAITHI ENUMERATION SIGN*/ + 0, /* U+0110bd: KAITHI NUMBER SIGN*/ + 0, /* U+0110be: KAITHI SECTION MARK*/ + 0, /* U+0110bf: KAITHI DOUBLE SECTION MARK*/ + 0, /* U+0110c0: KAITHI DANDA*/ + 0, /* U+0110c1: KAITHI DOUBLE DANDA*/ + 0, /* U+0110c2: */ + 0, /* U+0110c3: */ + 0, /* U+0110c4: */ + 0, /* U+0110c5: */ + 0, /* U+0110c6: */ + 0, /* U+0110c7: */ + 0, /* U+0110c8: */ + 0, /* U+0110c9: */ + 0, /* U+0110ca: */ + 0, /* U+0110cb: */ + 0, /* U+0110cc: */ + 0, /* U+0110cd: */ + 0, /* U+0110ce: */ + 0, /* U+0110cf: */ + RTUNI_ALPHA, /* U+0110d0: SORA SOMPENG LETTER SAH*/ + RTUNI_ALPHA, /* U+0110d1: SORA SOMPENG LETTER TAH*/ + RTUNI_ALPHA, /* U+0110d2: SORA SOMPENG LETTER BAH*/ + RTUNI_ALPHA, /* U+0110d3: SORA SOMPENG LETTER CAH*/ + RTUNI_ALPHA, /* U+0110d4: SORA SOMPENG LETTER DAH*/ + RTUNI_ALPHA, /* U+0110d5: SORA SOMPENG LETTER GAH*/ + RTUNI_ALPHA, /* U+0110d6: SORA SOMPENG LETTER MAH*/ + RTUNI_ALPHA, /* U+0110d7: SORA SOMPENG LETTER NGAH*/ + RTUNI_ALPHA, /* U+0110d8: SORA SOMPENG LETTER LAH*/ + RTUNI_ALPHA, /* U+0110d9: SORA SOMPENG LETTER NAH*/ + RTUNI_ALPHA, /* U+0110da: SORA SOMPENG LETTER VAH*/ + RTUNI_ALPHA, /* U+0110db: SORA SOMPENG LETTER PAH*/ + RTUNI_ALPHA, /* U+0110dc: SORA SOMPENG LETTER YAH*/ + RTUNI_ALPHA, /* U+0110dd: SORA SOMPENG LETTER RAH*/ + RTUNI_ALPHA, /* U+0110de: SORA SOMPENG LETTER HAH*/ + RTUNI_ALPHA, /* U+0110df: SORA SOMPENG LETTER KAH*/ + RTUNI_ALPHA, /* U+0110e0: SORA SOMPENG LETTER JAH*/ + RTUNI_ALPHA, /* U+0110e1: SORA SOMPENG LETTER NYAH*/ + RTUNI_ALPHA, /* U+0110e2: SORA SOMPENG LETTER AH*/ + RTUNI_ALPHA, /* U+0110e3: SORA SOMPENG LETTER EEH*/ + RTUNI_ALPHA, /* U+0110e4: SORA SOMPENG LETTER IH*/ + RTUNI_ALPHA, /* U+0110e5: SORA SOMPENG LETTER UH*/ + RTUNI_ALPHA, /* U+0110e6: SORA SOMPENG LETTER OH*/ + RTUNI_ALPHA, /* U+0110e7: SORA SOMPENG LETTER EH*/ + RTUNI_ALPHA, /* U+0110e8: SORA SOMPENG LETTER MAE*/ + 0, /* U+0110e9: */ + 0, /* U+0110ea: */ + 0, /* U+0110eb: */ + 0, /* U+0110ec: */ + 0, /* U+0110ed: */ + 0, /* U+0110ee: */ + 0, /* U+0110ef: */ + RTUNI_DDIGIT, /* U+0110f0: SORA SOMPENG DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0110f1: SORA SOMPENG DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0110f2: SORA SOMPENG DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0110f3: SORA SOMPENG DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0110f4: SORA SOMPENG DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0110f5: SORA SOMPENG DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0110f6: SORA SOMPENG DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0110f7: SORA SOMPENG DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0110f8: SORA SOMPENG DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0110f9: SORA SOMPENG DIGIT NINE*/ + 0, /* U+0110fa: */ + 0, /* U+0110fb: */ + 0, /* U+0110fc: */ + 0, /* U+0110fd: */ + 0, /* U+0110fe: */ + 0, /* U+0110ff: */ + RTUNI_ALPHA, /* U+011100: CHAKMA SIGN CANDRABINDU*/ + RTUNI_ALPHA, /* U+011101: CHAKMA SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+011102: CHAKMA SIGN VISARGA*/ + RTUNI_ALPHA, /* U+011103: CHAKMA LETTER AA*/ + RTUNI_ALPHA, /* U+011104: CHAKMA LETTER I*/ + RTUNI_ALPHA, /* U+011105: CHAKMA LETTER U*/ + RTUNI_ALPHA, /* U+011106: CHAKMA LETTER E*/ + RTUNI_ALPHA, /* U+011107: CHAKMA LETTER KAA*/ + RTUNI_ALPHA, /* U+011108: CHAKMA LETTER KHAA*/ + RTUNI_ALPHA, /* U+011109: CHAKMA LETTER GAA*/ + RTUNI_ALPHA, /* U+01110a: CHAKMA LETTER GHAA*/ + RTUNI_ALPHA, /* U+01110b: CHAKMA LETTER NGAA*/ + RTUNI_ALPHA, /* U+01110c: CHAKMA LETTER CAA*/ + RTUNI_ALPHA, /* U+01110d: CHAKMA LETTER CHAA*/ + RTUNI_ALPHA, /* U+01110e: CHAKMA LETTER JAA*/ + RTUNI_ALPHA, /* U+01110f: CHAKMA LETTER JHAA*/ + RTUNI_ALPHA, /* U+011110: CHAKMA LETTER NYAA*/ + RTUNI_ALPHA, /* U+011111: CHAKMA LETTER TTAA*/ + RTUNI_ALPHA, /* U+011112: CHAKMA LETTER TTHAA*/ + RTUNI_ALPHA, /* U+011113: CHAKMA LETTER DDAA*/ + RTUNI_ALPHA, /* U+011114: CHAKMA LETTER DDHAA*/ + RTUNI_ALPHA, /* U+011115: CHAKMA LETTER NNAA*/ + RTUNI_ALPHA, /* U+011116: CHAKMA LETTER TAA*/ + RTUNI_ALPHA, /* U+011117: CHAKMA LETTER THAA*/ + RTUNI_ALPHA, /* U+011118: CHAKMA LETTER DAA*/ + RTUNI_ALPHA, /* U+011119: CHAKMA LETTER DHAA*/ + RTUNI_ALPHA, /* U+01111a: CHAKMA LETTER NAA*/ + RTUNI_ALPHA, /* U+01111b: CHAKMA LETTER PAA*/ + RTUNI_ALPHA, /* U+01111c: CHAKMA LETTER PHAA*/ + RTUNI_ALPHA, /* U+01111d: CHAKMA LETTER BAA*/ + RTUNI_ALPHA, /* U+01111e: CHAKMA LETTER BHAA*/ + RTUNI_ALPHA, /* U+01111f: CHAKMA LETTER MAA*/ + RTUNI_ALPHA, /* U+011120: CHAKMA LETTER YYAA*/ + RTUNI_ALPHA, /* U+011121: CHAKMA LETTER YAA*/ + RTUNI_ALPHA, /* U+011122: CHAKMA LETTER RAA*/ + RTUNI_ALPHA, /* U+011123: CHAKMA LETTER LAA*/ + RTUNI_ALPHA, /* U+011124: CHAKMA LETTER WAA*/ + RTUNI_ALPHA, /* U+011125: CHAKMA LETTER SAA*/ + RTUNI_ALPHA, /* U+011126: CHAKMA LETTER HAA*/ + RTUNI_ALPHA, /* U+011127: CHAKMA VOWEL SIGN A*/ + RTUNI_ALPHA, /* U+011128: CHAKMA VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+011129: CHAKMA VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+01112a: CHAKMA VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+01112b: CHAKMA VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+01112c: CHAKMA VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+01112d: CHAKMA VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+01112e: CHAKMA VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+01112f: CHAKMA VOWEL SIGN AU*/ + RTUNI_ALPHA, /* U+011130: CHAKMA VOWEL SIGN OI*/ + RTUNI_ALPHA, /* U+011131: CHAKMA O MARK*/ + RTUNI_ALPHA, /* U+011132: CHAKMA AU MARK*/ + 0, /* U+011133: CHAKMA VIRAMA*/ + 0, /* U+011134: CHAKMA MAAYYAA*/ + 0, /* U+011135: */ + RTUNI_DDIGIT, /* U+011136: CHAKMA DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+011137: CHAKMA DIGIT ONE*/ + RTUNI_DDIGIT, /* U+011138: CHAKMA DIGIT TWO*/ + RTUNI_DDIGIT, /* U+011139: CHAKMA DIGIT THREE*/ + RTUNI_DDIGIT, /* U+01113a: CHAKMA DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+01113b: CHAKMA DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+01113c: CHAKMA DIGIT SIX*/ + RTUNI_DDIGIT, /* U+01113d: CHAKMA DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+01113e: CHAKMA DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+01113f: CHAKMA DIGIT NINE*/ + 0, /* U+011140: CHAKMA SECTION MARK*/ + 0, /* U+011141: CHAKMA DANDA*/ + 0, /* U+011142: CHAKMA DOUBLE DANDA*/ + 0, /* U+011143: CHAKMA QUESTION MARK*/ + 0, /* U+011144: */ + 0, /* U+011145: */ + 0, /* U+011146: */ + 0, /* U+011147: */ + 0, /* U+011148: */ + 0, /* U+011149: */ + 0, /* U+01114a: */ + 0, /* U+01114b: */ + 0, /* U+01114c: */ + 0, /* U+01114d: */ + 0, /* U+01114e: */ + 0, /* U+01114f: */ + 0, /* U+011150: */ + 0, /* U+011151: */ + 0, /* U+011152: */ + 0, /* U+011153: */ + 0, /* U+011154: */ + 0, /* U+011155: */ + 0, /* U+011156: */ + 0, /* U+011157: */ + 0, /* U+011158: */ + 0, /* U+011159: */ + 0, /* U+01115a: */ + 0, /* U+01115b: */ + 0, /* U+01115c: */ + 0, /* U+01115d: */ + 0, /* U+01115e: */ + 0, /* U+01115f: */ + 0, /* U+011160: */ + 0, /* U+011161: */ + 0, /* U+011162: */ + 0, /* U+011163: */ + 0, /* U+011164: */ + 0, /* U+011165: */ + 0, /* U+011166: */ + 0, /* U+011167: */ + 0, /* U+011168: */ + 0, /* U+011169: */ + 0, /* U+01116a: */ + 0, /* U+01116b: */ + 0, /* U+01116c: */ + 0, /* U+01116d: */ + 0, /* U+01116e: */ + 0, /* U+01116f: */ + 0, /* U+011170: */ + 0, /* U+011171: */ + 0, /* U+011172: */ + 0, /* U+011173: */ + 0, /* U+011174: */ + 0, /* U+011175: */ + 0, /* U+011176: */ + 0, /* U+011177: */ + 0, /* U+011178: */ + 0, /* U+011179: */ + 0, /* U+01117a: */ + 0, /* U+01117b: */ + 0, /* U+01117c: */ + 0, /* U+01117d: */ + 0, /* U+01117e: */ + 0, /* U+01117f: */ + RTUNI_ALPHA, /* U+011180: SHARADA SIGN CANDRABINDU*/ + RTUNI_ALPHA, /* U+011181: SHARADA SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+011182: SHARADA SIGN VISARGA*/ + RTUNI_ALPHA, /* U+011183: SHARADA LETTER A*/ + RTUNI_ALPHA, /* U+011184: SHARADA LETTER AA*/ + RTUNI_ALPHA, /* U+011185: SHARADA LETTER I*/ + RTUNI_ALPHA, /* U+011186: SHARADA LETTER II*/ + RTUNI_ALPHA, /* U+011187: SHARADA LETTER U*/ + RTUNI_ALPHA, /* U+011188: SHARADA LETTER UU*/ + RTUNI_ALPHA, /* U+011189: SHARADA LETTER VOCALIC R*/ + RTUNI_ALPHA, /* U+01118a: SHARADA LETTER VOCALIC RR*/ + RTUNI_ALPHA, /* U+01118b: SHARADA LETTER VOCALIC L*/ + RTUNI_ALPHA, /* U+01118c: SHARADA LETTER VOCALIC LL*/ + RTUNI_ALPHA, /* U+01118d: SHARADA LETTER E*/ + RTUNI_ALPHA, /* U+01118e: SHARADA LETTER AI*/ + RTUNI_ALPHA, /* U+01118f: SHARADA LETTER O*/ + RTUNI_ALPHA, /* U+011190: SHARADA LETTER AU*/ + RTUNI_ALPHA, /* U+011191: SHARADA LETTER KA*/ + RTUNI_ALPHA, /* U+011192: SHARADA LETTER KHA*/ + RTUNI_ALPHA, /* U+011193: SHARADA LETTER GA*/ + RTUNI_ALPHA, /* U+011194: SHARADA LETTER GHA*/ + RTUNI_ALPHA, /* U+011195: SHARADA LETTER NGA*/ + RTUNI_ALPHA, /* U+011196: SHARADA LETTER CA*/ + RTUNI_ALPHA, /* U+011197: SHARADA LETTER CHA*/ + RTUNI_ALPHA, /* U+011198: SHARADA LETTER JA*/ + RTUNI_ALPHA, /* U+011199: SHARADA LETTER JHA*/ + RTUNI_ALPHA, /* U+01119a: SHARADA LETTER NYA*/ + RTUNI_ALPHA, /* U+01119b: SHARADA LETTER TTA*/ + RTUNI_ALPHA, /* U+01119c: SHARADA LETTER TTHA*/ + RTUNI_ALPHA, /* U+01119d: SHARADA LETTER DDA*/ + RTUNI_ALPHA, /* U+01119e: SHARADA LETTER DDHA*/ + RTUNI_ALPHA, /* U+01119f: SHARADA LETTER NNA*/ + RTUNI_ALPHA, /* U+0111a0: SHARADA LETTER TA*/ + RTUNI_ALPHA, /* U+0111a1: SHARADA LETTER THA*/ + RTUNI_ALPHA, /* U+0111a2: SHARADA LETTER DA*/ + RTUNI_ALPHA, /* U+0111a3: SHARADA LETTER DHA*/ + RTUNI_ALPHA, /* U+0111a4: SHARADA LETTER NA*/ + RTUNI_ALPHA, /* U+0111a5: SHARADA LETTER PA*/ + RTUNI_ALPHA, /* U+0111a6: SHARADA LETTER PHA*/ + RTUNI_ALPHA, /* U+0111a7: SHARADA LETTER BA*/ + RTUNI_ALPHA, /* U+0111a8: SHARADA LETTER BHA*/ + RTUNI_ALPHA, /* U+0111a9: SHARADA LETTER MA*/ + RTUNI_ALPHA, /* U+0111aa: SHARADA LETTER YA*/ + RTUNI_ALPHA, /* U+0111ab: SHARADA LETTER RA*/ + RTUNI_ALPHA, /* U+0111ac: SHARADA LETTER LA*/ + RTUNI_ALPHA, /* U+0111ad: SHARADA LETTER LLA*/ + RTUNI_ALPHA, /* U+0111ae: SHARADA LETTER VA*/ + RTUNI_ALPHA, /* U+0111af: SHARADA LETTER SHA*/ + RTUNI_ALPHA, /* U+0111b0: SHARADA LETTER SSA*/ + RTUNI_ALPHA, /* U+0111b1: SHARADA LETTER SA*/ + RTUNI_ALPHA, /* U+0111b2: SHARADA LETTER HA*/ + RTUNI_ALPHA, /* U+0111b3: SHARADA VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+0111b4: SHARADA VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+0111b5: SHARADA VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+0111b6: SHARADA VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+0111b7: SHARADA VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+0111b8: SHARADA VOWEL SIGN VOCALIC R*/ + RTUNI_ALPHA, /* U+0111b9: SHARADA VOWEL SIGN VOCALIC RR*/ + RTUNI_ALPHA, /* U+0111ba: SHARADA VOWEL SIGN VOCALIC L*/ + RTUNI_ALPHA, /* U+0111bb: SHARADA VOWEL SIGN VOCALIC LL*/ + RTUNI_ALPHA, /* U+0111bc: SHARADA VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+0111bd: SHARADA VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+0111be: SHARADA VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+0111bf: SHARADA VOWEL SIGN AU*/ + 0, /* U+0111c0: SHARADA SIGN VIRAMA*/ + RTUNI_ALPHA, /* U+0111c1: SHARADA SIGN AVAGRAHA*/ + RTUNI_ALPHA, /* U+0111c2: SHARADA SIGN JIHVAMULIYA*/ + RTUNI_ALPHA, /* U+0111c3: SHARADA SIGN UPADHMANIYA*/ + RTUNI_ALPHA, /* U+0111c4: SHARADA OM*/ + 0, /* U+0111c5: SHARADA DANDA*/ + 0, /* U+0111c6: SHARADA DOUBLE DANDA*/ + 0, /* U+0111c7: SHARADA ABBREVIATION SIGN*/ + 0, /* U+0111c8: SHARADA SEPARATOR*/ + 0, /* U+0111c9: */ + 0, /* U+0111ca: */ + 0, /* U+0111cb: */ + 0, /* U+0111cc: */ + 0, /* U+0111cd: */ + 0, /* U+0111ce: */ + 0, /* U+0111cf: */ + RTUNI_DDIGIT, /* U+0111d0: SHARADA DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0111d1: SHARADA DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0111d2: SHARADA DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0111d3: SHARADA DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0111d4: SHARADA DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0111d5: SHARADA DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0111d6: SHARADA DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0111d7: SHARADA DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0111d8: SHARADA DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0111d9: SHARADA DIGIT NINE*/ + 0, /* U+0111da: */ + 0, /* U+0111db: */ + 0, /* U+0111dc: */ + 0, /* U+0111dd: */ + 0, /* U+0111de: */ + 0, /* U+0111df: */ + 0, /* U+0111e0: */ + 0, /* U+0111e1: */ + 0, /* U+0111e2: */ + 0, /* U+0111e3: */ + 0, /* U+0111e4: */ + 0, /* U+0111e5: */ + 0, /* U+0111e6: */ + 0, /* U+0111e7: */ + 0, /* U+0111e8: */ + 0, /* U+0111e9: */ + 0, /* U+0111ea: */ + 0, /* U+0111eb: */ + 0, /* U+0111ec: */ + 0, /* U+0111ed: */ + 0, /* U+0111ee: */ + 0, /* U+0111ef: */ + 0, /* U+0111f0: */ + 0, /* U+0111f1: */ + 0, /* U+0111f2: */ + 0, /* U+0111f3: */ + 0, /* U+0111f4: */ + 0, /* U+0111f5: */ + 0, /* U+0111f6: */ + 0, /* U+0111f7: */ + 0, /* U+0111f8: */ + 0, /* U+0111f9: */ + 0, /* U+0111fa: */ + 0, /* U+0111fb: */ + 0, /* U+0111fc: */ + 0, /* U+0111fd: */ + 0, /* U+0111fe: */ + 0, /* U+0111ff: */ + 0, /* U+011200: */ + 0, /* U+011201: */ + 0, /* U+011202: */ + 0, /* U+011203: */ + 0, /* U+011204: */ + 0, /* U+011205: */ + 0, /* U+011206: */ + 0, /* U+011207: */ + 0, /* U+011208: */ + 0, /* U+011209: */ + 0, /* U+01120a: */ + 0, /* U+01120b: */ + 0, /* U+01120c: */ + 0, /* U+01120d: */ + 0, /* U+01120e: */ + 0, /* U+01120f: */ + 0, /* U+011210: */ + 0, /* U+011211: */ + 0, /* U+011212: */ + 0, /* U+011213: */ + 0, /* U+011214: */ + 0, /* U+011215: */ + 0, /* U+011216: */ + 0, /* U+011217: */ + 0, /* U+011218: */ + 0, /* U+011219: */ + 0, /* U+01121a: */ + 0, /* U+01121b: */ + 0, /* U+01121c: */ + 0, /* U+01121d: */ + 0, /* U+01121e: */ + 0, /* U+01121f: */ + 0, /* U+011220: */ + 0, /* U+011221: */ + 0, /* U+011222: */ + 0, /* U+011223: */ + 0, /* U+011224: */ + 0, /* U+011225: */ + 0, /* U+011226: */ + 0, /* U+011227: */ + 0, /* U+011228: */ + 0, /* U+011229: */ + 0, /* U+01122a: */ + 0, /* U+01122b: */ + 0, /* U+01122c: */ + 0, /* U+01122d: */ + 0, /* U+01122e: */ + 0, /* U+01122f: */ + 0, /* U+011230: */ + 0, /* U+011231: */ + 0, /* U+011232: */ + 0, /* U+011233: */ + 0, /* U+011234: */ + 0, /* U+011235: */ + 0, /* U+011236: */ + 0, /* U+011237: */ + 0, /* U+011238: */ + 0, /* U+011239: */ + 0, /* U+01123a: */ + 0, /* U+01123b: */ + 0, /* U+01123c: */ + 0, /* U+01123d: */ + 0, /* U+01123e: */ + 0, /* U+01123f: */ + 0, /* U+011240: */ + 0, /* U+011241: */ + 0, /* U+011242: */ + 0, /* U+011243: */ + 0, /* U+011244: */ + 0, /* U+011245: */ + 0, /* U+011246: */ + 0, /* U+011247: */ + 0, /* U+011248: */ + 0, /* U+011249: */ + 0, /* U+01124a: */ + 0, /* U+01124b: */ + 0, /* U+01124c: */ + 0, /* U+01124d: */ + 0, /* U+01124e: */ + 0, /* U+01124f: */ + 0, /* U+011250: */ + 0, /* U+011251: */ + 0, /* U+011252: */ + 0, /* U+011253: */ + 0, /* U+011254: */ + 0, /* U+011255: */ + 0, /* U+011256: */ + 0, /* U+011257: */ + 0, /* U+011258: */ + 0, /* U+011259: */ + 0, /* U+01125a: */ + 0, /* U+01125b: */ + 0, /* U+01125c: */ + 0, /* U+01125d: */ + 0, /* U+01125e: */ + 0, /* U+01125f: */ + 0, /* U+011260: */ + 0, /* U+011261: */ + 0, /* U+011262: */ + 0, /* U+011263: */ + 0, /* U+011264: */ + 0, /* U+011265: */ + 0, /* U+011266: */ + 0, /* U+011267: */ + 0, /* U+011268: */ + 0, /* U+011269: */ + 0, /* U+01126a: */ + 0, /* U+01126b: */ + 0, /* U+01126c: */ + 0, /* U+01126d: */ + 0, /* U+01126e: */ + 0, /* U+01126f: */ + 0, /* U+011270: */ + 0, /* U+011271: */ + 0, /* U+011272: */ + 0, /* U+011273: */ + 0, /* U+011274: */ + 0, /* U+011275: */ + 0, /* U+011276: */ + 0, /* U+011277: */ + 0, /* U+011278: */ + 0, /* U+011279: */ + 0, /* U+01127a: */ + 0, /* U+01127b: */ + 0, /* U+01127c: */ + 0, /* U+01127d: */ + 0, /* U+01127e: */ + 0, /* U+01127f: */ + 0, /* U+011280: */ + 0, /* U+011281: */ + 0, /* U+011282: */ + 0, /* U+011283: */ + 0, /* U+011284: */ + 0, /* U+011285: */ + 0, /* U+011286: */ + 0, /* U+011287: */ + 0, /* U+011288: */ + 0, /* U+011289: */ + 0, /* U+01128a: */ + 0, /* U+01128b: */ + 0, /* U+01128c: */ + 0, /* U+01128d: */ + 0, /* U+01128e: */ + 0, /* U+01128f: */ + 0, /* U+011290: */ + 0, /* U+011291: */ + 0, /* U+011292: */ + 0, /* U+011293: */ + 0, /* U+011294: */ + 0, /* U+011295: */ + 0, /* U+011296: */ + 0, /* U+011297: */ + 0, /* U+011298: */ + 0, /* U+011299: */ + 0, /* U+01129a: */ + 0, /* U+01129b: */ + 0, /* U+01129c: */ + 0, /* U+01129d: */ + 0, /* U+01129e: */ + 0, /* U+01129f: */ + 0, /* U+0112a0: */ + 0, /* U+0112a1: */ + 0, /* U+0112a2: */ + 0, /* U+0112a3: */ + 0, /* U+0112a4: */ + 0, /* U+0112a5: */ + 0, /* U+0112a6: */ + 0, /* U+0112a7: */ + 0, /* U+0112a8: */ + 0, /* U+0112a9: */ + 0, /* U+0112aa: */ + 0, /* U+0112ab: */ + 0, /* U+0112ac: */ + 0, /* U+0112ad: */ + 0, /* U+0112ae: */ + 0, /* U+0112af: */ + 0, /* U+0112b0: */ + 0, /* U+0112b1: */ + 0, /* U+0112b2: */ + 0, /* U+0112b3: */ + 0, /* U+0112b4: */ + 0, /* U+0112b5: */ + 0, /* U+0112b6: */ + 0, /* U+0112b7: */ + 0, /* U+0112b8: */ + 0, /* U+0112b9: */ + 0, /* U+0112ba: */ + 0, /* U+0112bb: */ + 0, /* U+0112bc: */ + 0, /* U+0112bd: */ + 0, /* U+0112be: */ + 0, /* U+0112bf: */ + 0, /* U+0112c0: */ + 0, /* U+0112c1: */ + 0, /* U+0112c2: */ + 0, /* U+0112c3: */ + 0, /* U+0112c4: */ + 0, /* U+0112c5: */ + 0, /* U+0112c6: */ + 0, /* U+0112c7: */ + 0, /* U+0112c8: */ + 0, /* U+0112c9: */ + 0, /* U+0112ca: */ + 0, /* U+0112cb: */ + 0, /* U+0112cc: */ + 0, /* U+0112cd: */ + 0, /* U+0112ce: */ + 0, /* U+0112cf: */ + 0, /* U+0112d0: */ + 0, /* U+0112d1: */ + 0, /* U+0112d2: */ + 0, /* U+0112d3: */ + 0, /* U+0112d4: */ + 0, /* U+0112d5: */ + 0, /* U+0112d6: */ + 0, /* U+0112d7: */ + 0, /* U+0112d8: */ + 0, /* U+0112d9: */ + 0, /* U+0112da: */ + 0, /* U+0112db: */ + 0, /* U+0112dc: */ + 0, /* U+0112dd: */ + 0, /* U+0112de: */ + 0, /* U+0112df: */ + 0, /* U+0112e0: */ + 0, /* U+0112e1: */ + 0, /* U+0112e2: */ + 0, /* U+0112e3: */ + 0, /* U+0112e4: */ + 0, /* U+0112e5: */ + 0, /* U+0112e6: */ + 0, /* U+0112e7: */ + 0, /* U+0112e8: */ + 0, /* U+0112e9: */ + 0, /* U+0112ea: */ + 0, /* U+0112eb: */ + 0, /* U+0112ec: */ + 0, /* U+0112ed: */ + 0, /* U+0112ee: */ + 0, /* U+0112ef: */ + 0, /* U+0112f0: */ + 0, /* U+0112f1: */ + 0, /* U+0112f2: */ + 0, /* U+0112f3: */ + 0, /* U+0112f4: */ + 0, /* U+0112f5: */ + 0, /* U+0112f6: */ + 0, /* U+0112f7: */ + 0, /* U+0112f8: */ + 0, /* U+0112f9: */ + 0, /* U+0112fa: */ + 0, /* U+0112fb: */ + 0, /* U+0112fc: */ + 0, /* U+0112fd: */ + 0, /* U+0112fe: */ + 0, /* U+0112ff: */ + 0, /* U+011300: */ + 0, /* U+011301: */ + 0, /* U+011302: */ + 0, /* U+011303: */ + 0, /* U+011304: */ + 0, /* U+011305: */ + 0, /* U+011306: */ + 0, /* U+011307: */ + 0, /* U+011308: */ + 0, /* U+011309: */ + 0, /* U+01130a: */ + 0, /* U+01130b: */ + 0, /* U+01130c: */ + 0, /* U+01130d: */ + 0, /* U+01130e: */ + 0, /* U+01130f: */ + 0, /* U+011310: */ + 0, /* U+011311: */ + 0, /* U+011312: */ + 0, /* U+011313: */ + 0, /* U+011314: */ + 0, /* U+011315: */ + 0, /* U+011316: */ + 0, /* U+011317: */ + 0, /* U+011318: */ + 0, /* U+011319: */ + 0, /* U+01131a: */ + 0, /* U+01131b: */ + 0, /* U+01131c: */ + 0, /* U+01131d: */ + 0, /* U+01131e: */ + 0, /* U+01131f: */ + 0, /* U+011320: */ + 0, /* U+011321: */ + 0, /* U+011322: */ + 0, /* U+011323: */ + 0, /* U+011324: */ + 0, /* U+011325: */ + 0, /* U+011326: */ + 0, /* U+011327: */ + 0, /* U+011328: */ + 0, /* U+011329: */ + 0, /* U+01132a: */ + 0, /* U+01132b: */ + 0, /* U+01132c: */ + 0, /* U+01132d: */ + 0, /* U+01132e: */ + 0, /* U+01132f: */ + 0, /* U+011330: */ + 0, /* U+011331: */ + 0, /* U+011332: */ + 0, /* U+011333: */ + 0, /* U+011334: */ + 0, /* U+011335: */ + 0, /* U+011336: */ + 0, /* U+011337: */ + 0, /* U+011338: */ + 0, /* U+011339: */ + 0, /* U+01133a: */ + 0, /* U+01133b: */ + 0, /* U+01133c: */ + 0, /* U+01133d: */ + 0, /* U+01133e: */ + 0, /* U+01133f: */ + 0, /* U+011340: */ + 0, /* U+011341: */ + 0, /* U+011342: */ + 0, /* U+011343: */ + 0, /* U+011344: */ + 0, /* U+011345: */ + 0, /* U+011346: */ + 0, /* U+011347: */ + 0, /* U+011348: */ + 0, /* U+011349: */ + 0, /* U+01134a: */ + 0, /* U+01134b: */ + 0, /* U+01134c: */ + 0, /* U+01134d: */ + 0, /* U+01134e: */ + 0, /* U+01134f: */ + 0, /* U+011350: */ + 0, /* U+011351: */ + 0, /* U+011352: */ + 0, /* U+011353: */ + 0, /* U+011354: */ + 0, /* U+011355: */ + 0, /* U+011356: */ + 0, /* U+011357: */ + 0, /* U+011358: */ + 0, /* U+011359: */ + 0, /* U+01135a: */ + 0, /* U+01135b: */ + 0, /* U+01135c: */ + 0, /* U+01135d: */ + 0, /* U+01135e: */ + 0, /* U+01135f: */ + 0, /* U+011360: */ + 0, /* U+011361: */ + 0, /* U+011362: */ + 0, /* U+011363: */ + 0, /* U+011364: */ + 0, /* U+011365: */ + 0, /* U+011366: */ + 0, /* U+011367: */ + 0, /* U+011368: */ + 0, /* U+011369: */ + 0, /* U+01136a: */ + 0, /* U+01136b: */ + 0, /* U+01136c: */ + 0, /* U+01136d: */ + 0, /* U+01136e: */ + 0, /* U+01136f: */ + 0, /* U+011370: */ + 0, /* U+011371: */ + 0, /* U+011372: */ + 0, /* U+011373: */ + 0, /* U+011374: */ + 0, /* U+011375: */ + 0, /* U+011376: */ + 0, /* U+011377: */ + 0, /* U+011378: */ + 0, /* U+011379: */ + 0, /* U+01137a: */ + 0, /* U+01137b: */ + 0, /* U+01137c: */ + 0, /* U+01137d: */ + 0, /* U+01137e: */ + 0, /* U+01137f: */ + 0, /* U+011380: */ + 0, /* U+011381: */ + 0, /* U+011382: */ + 0, /* U+011383: */ + 0, /* U+011384: */ + 0, /* U+011385: */ + 0, /* U+011386: */ + 0, /* U+011387: */ + 0, /* U+011388: */ + 0, /* U+011389: */ + 0, /* U+01138a: */ + 0, /* U+01138b: */ + 0, /* U+01138c: */ + 0, /* U+01138d: */ + 0, /* U+01138e: */ + 0, /* U+01138f: */ + 0, /* U+011390: */ + 0, /* U+011391: */ + 0, /* U+011392: */ + 0, /* U+011393: */ + 0, /* U+011394: */ + 0, /* U+011395: */ + 0, /* U+011396: */ + 0, /* U+011397: */ + 0, /* U+011398: */ + 0, /* U+011399: */ + 0, /* U+01139a: */ + 0, /* U+01139b: */ + 0, /* U+01139c: */ + 0, /* U+01139d: */ + 0, /* U+01139e: */ + 0, /* U+01139f: */ + 0, /* U+0113a0: */ + 0, /* U+0113a1: */ + 0, /* U+0113a2: */ + 0, /* U+0113a3: */ + 0, /* U+0113a4: */ + 0, /* U+0113a5: */ + 0, /* U+0113a6: */ + 0, /* U+0113a7: */ + 0, /* U+0113a8: */ + 0, /* U+0113a9: */ + 0, /* U+0113aa: */ + 0, /* U+0113ab: */ + 0, /* U+0113ac: */ + 0, /* U+0113ad: */ + 0, /* U+0113ae: */ + 0, /* U+0113af: */ + 0, /* U+0113b0: */ + 0, /* U+0113b1: */ + 0, /* U+0113b2: */ + 0, /* U+0113b3: */ + 0, /* U+0113b4: */ + 0, /* U+0113b5: */ + 0, /* U+0113b6: */ + 0, /* U+0113b7: */ + 0, /* U+0113b8: */ + 0, /* U+0113b9: */ + 0, /* U+0113ba: */ + 0, /* U+0113bb: */ + 0, /* U+0113bc: */ + 0, /* U+0113bd: */ + 0, /* U+0113be: */ + 0, /* U+0113bf: */ + 0, /* U+0113c0: */ + 0, /* U+0113c1: */ + 0, /* U+0113c2: */ + 0, /* U+0113c3: */ + 0, /* U+0113c4: */ + 0, /* U+0113c5: */ + 0, /* U+0113c6: */ + 0, /* U+0113c7: */ + 0, /* U+0113c8: */ + 0, /* U+0113c9: */ + 0, /* U+0113ca: */ + 0, /* U+0113cb: */ + 0, /* U+0113cc: */ + 0, /* U+0113cd: */ + 0, /* U+0113ce: */ + 0, /* U+0113cf: */ + 0, /* U+0113d0: */ + 0, /* U+0113d1: */ + 0, /* U+0113d2: */ + 0, /* U+0113d3: */ + 0, /* U+0113d4: */ + 0, /* U+0113d5: */ + 0, /* U+0113d6: */ + 0, /* U+0113d7: */ + 0, /* U+0113d8: */ + 0, /* U+0113d9: */ + 0, /* U+0113da: */ + 0, /* U+0113db: */ + 0, /* U+0113dc: */ + 0, /* U+0113dd: */ + 0, /* U+0113de: */ + 0, /* U+0113df: */ + 0, /* U+0113e0: */ + 0, /* U+0113e1: */ + 0, /* U+0113e2: */ + 0, /* U+0113e3: */ + 0, /* U+0113e4: */ + 0, /* U+0113e5: */ + 0, /* U+0113e6: */ + 0, /* U+0113e7: */ + 0, /* U+0113e8: */ + 0, /* U+0113e9: */ + 0, /* U+0113ea: */ + 0, /* U+0113eb: */ + 0, /* U+0113ec: */ + 0, /* U+0113ed: */ + 0, /* U+0113ee: */ + 0, /* U+0113ef: */ + 0, /* U+0113f0: */ + 0, /* U+0113f1: */ + 0, /* U+0113f2: */ + 0, /* U+0113f3: */ + 0, /* U+0113f4: */ + 0, /* U+0113f5: */ + 0, /* U+0113f6: */ + 0, /* U+0113f7: */ + 0, /* U+0113f8: */ + 0, /* U+0113f9: */ + 0, /* U+0113fa: */ + 0, /* U+0113fb: */ + 0, /* U+0113fc: */ + 0, /* U+0113fd: */ + 0, /* U+0113fe: */ + 0, /* U+0113ff: */ + 0, /* U+011400: */ + 0, /* U+011401: */ + 0, /* U+011402: */ + 0, /* U+011403: */ + 0, /* U+011404: */ + 0, /* U+011405: */ + 0, /* U+011406: */ + 0, /* U+011407: */ + 0, /* U+011408: */ + 0, /* U+011409: */ + 0, /* U+01140a: */ + 0, /* U+01140b: */ + 0, /* U+01140c: */ + 0, /* U+01140d: */ + 0, /* U+01140e: */ + 0, /* U+01140f: */ + 0, /* U+011410: */ + 0, /* U+011411: */ + 0, /* U+011412: */ + 0, /* U+011413: */ + 0, /* U+011414: */ + 0, /* U+011415: */ + 0, /* U+011416: */ + 0, /* U+011417: */ + 0, /* U+011418: */ + 0, /* U+011419: */ + 0, /* U+01141a: */ + 0, /* U+01141b: */ + 0, /* U+01141c: */ + 0, /* U+01141d: */ + 0, /* U+01141e: */ + 0, /* U+01141f: */ + 0, /* U+011420: */ + 0, /* U+011421: */ + 0, /* U+011422: */ + 0, /* U+011423: */ + 0, /* U+011424: */ + 0, /* U+011425: */ + 0, /* U+011426: */ + 0, /* U+011427: */ + 0, /* U+011428: */ + 0, /* U+011429: */ + 0, /* U+01142a: */ + 0, /* U+01142b: */ + 0, /* U+01142c: */ + 0, /* U+01142d: */ + 0, /* U+01142e: */ + 0, /* U+01142f: */ + 0, /* U+011430: */ + 0, /* U+011431: */ + 0, /* U+011432: */ + 0, /* U+011433: */ + 0, /* U+011434: */ + 0, /* U+011435: */ + 0, /* U+011436: */ + 0, /* U+011437: */ + 0, /* U+011438: */ + 0, /* U+011439: */ + 0, /* U+01143a: */ + 0, /* U+01143b: */ + 0, /* U+01143c: */ + 0, /* U+01143d: */ + 0, /* U+01143e: */ + 0, /* U+01143f: */ + 0, /* U+011440: */ + 0, /* U+011441: */ + 0, /* U+011442: */ + 0, /* U+011443: */ + 0, /* U+011444: */ + 0, /* U+011445: */ + 0, /* U+011446: */ + 0, /* U+011447: */ + 0, /* U+011448: */ + 0, /* U+011449: */ + 0, /* U+01144a: */ + 0, /* U+01144b: */ + 0, /* U+01144c: */ + 0, /* U+01144d: */ + 0, /* U+01144e: */ + 0, /* U+01144f: */ + 0, /* U+011450: */ + 0, /* U+011451: */ + 0, /* U+011452: */ + 0, /* U+011453: */ + 0, /* U+011454: */ + 0, /* U+011455: */ + 0, /* U+011456: */ + 0, /* U+011457: */ + 0, /* U+011458: */ + 0, /* U+011459: */ + 0, /* U+01145a: */ + 0, /* U+01145b: */ + 0, /* U+01145c: */ + 0, /* U+01145d: */ + 0, /* U+01145e: */ + 0, /* U+01145f: */ + 0, /* U+011460: */ + 0, /* U+011461: */ + 0, /* U+011462: */ + 0, /* U+011463: */ + 0, /* U+011464: */ + 0, /* U+011465: */ + 0, /* U+011466: */ + 0, /* U+011467: */ + 0, /* U+011468: */ + 0, /* U+011469: */ + 0, /* U+01146a: */ + 0, /* U+01146b: */ + 0, /* U+01146c: */ + 0, /* U+01146d: */ + 0, /* U+01146e: */ + 0, /* U+01146f: */ + 0, /* U+011470: */ + 0, /* U+011471: */ + 0, /* U+011472: */ + 0, /* U+011473: */ + 0, /* U+011474: */ + 0, /* U+011475: */ + 0, /* U+011476: */ + 0, /* U+011477: */ + 0, /* U+011478: */ + 0, /* U+011479: */ + 0, /* U+01147a: */ + 0, /* U+01147b: */ + 0, /* U+01147c: */ + 0, /* U+01147d: */ + 0, /* U+01147e: */ + 0, /* U+01147f: */ + 0, /* U+011480: */ + 0, /* U+011481: */ + 0, /* U+011482: */ + 0, /* U+011483: */ + 0, /* U+011484: */ + 0, /* U+011485: */ + 0, /* U+011486: */ + 0, /* U+011487: */ + 0, /* U+011488: */ + 0, /* U+011489: */ + 0, /* U+01148a: */ + 0, /* U+01148b: */ + 0, /* U+01148c: */ + 0, /* U+01148d: */ + 0, /* U+01148e: */ + 0, /* U+01148f: */ + 0, /* U+011490: */ + 0, /* U+011491: */ + 0, /* U+011492: */ + 0, /* U+011493: */ + 0, /* U+011494: */ + 0, /* U+011495: */ + 0, /* U+011496: */ + 0, /* U+011497: */ + 0, /* U+011498: */ + 0, /* U+011499: */ + 0, /* U+01149a: */ + 0, /* U+01149b: */ + 0, /* U+01149c: */ + 0, /* U+01149d: */ + 0, /* U+01149e: */ + 0, /* U+01149f: */ + 0, /* U+0114a0: */ + 0, /* U+0114a1: */ + 0, /* U+0114a2: */ + 0, /* U+0114a3: */ + 0, /* U+0114a4: */ + 0, /* U+0114a5: */ + 0, /* U+0114a6: */ + 0, /* U+0114a7: */ + 0, /* U+0114a8: */ + 0, /* U+0114a9: */ + 0, /* U+0114aa: */ + 0, /* U+0114ab: */ + 0, /* U+0114ac: */ + 0, /* U+0114ad: */ + 0, /* U+0114ae: */ + 0, /* U+0114af: */ + 0, /* U+0114b0: */ + 0, /* U+0114b1: */ + 0, /* U+0114b2: */ + 0, /* U+0114b3: */ + 0, /* U+0114b4: */ + 0, /* U+0114b5: */ + 0, /* U+0114b6: */ + 0, /* U+0114b7: */ + 0, /* U+0114b8: */ + 0, /* U+0114b9: */ + 0, /* U+0114ba: */ + 0, /* U+0114bb: */ + 0, /* U+0114bc: */ + 0, /* U+0114bd: */ + 0, /* U+0114be: */ + 0, /* U+0114bf: */ + 0, /* U+0114c0: */ + 0, /* U+0114c1: */ + 0, /* U+0114c2: */ + 0, /* U+0114c3: */ + 0, /* U+0114c4: */ + 0, /* U+0114c5: */ + 0, /* U+0114c6: */ + 0, /* U+0114c7: */ + 0, /* U+0114c8: */ + 0, /* U+0114c9: */ + 0, /* U+0114ca: */ + 0, /* U+0114cb: */ + 0, /* U+0114cc: */ + 0, /* U+0114cd: */ + 0, /* U+0114ce: */ + 0, /* U+0114cf: */ + 0, /* U+0114d0: */ + 0, /* U+0114d1: */ + 0, /* U+0114d2: */ + 0, /* U+0114d3: */ + 0, /* U+0114d4: */ + 0, /* U+0114d5: */ + 0, /* U+0114d6: */ + 0, /* U+0114d7: */ + 0, /* U+0114d8: */ + 0, /* U+0114d9: */ + 0, /* U+0114da: */ + 0, /* U+0114db: */ + 0, /* U+0114dc: */ + 0, /* U+0114dd: */ + 0, /* U+0114de: */ + 0, /* U+0114df: */ + 0, /* U+0114e0: */ + 0, /* U+0114e1: */ + 0, /* U+0114e2: */ + 0, /* U+0114e3: */ + 0, /* U+0114e4: */ + 0, /* U+0114e5: */ + 0, /* U+0114e6: */ + 0, /* U+0114e7: */ + 0, /* U+0114e8: */ + 0, /* U+0114e9: */ + 0, /* U+0114ea: */ + 0, /* U+0114eb: */ + 0, /* U+0114ec: */ + 0, /* U+0114ed: */ + 0, /* U+0114ee: */ + 0, /* U+0114ef: */ + 0, /* U+0114f0: */ + 0, /* U+0114f1: */ + 0, /* U+0114f2: */ + 0, /* U+0114f3: */ + 0, /* U+0114f4: */ + 0, /* U+0114f5: */ + 0, /* U+0114f6: */ + 0, /* U+0114f7: */ + 0, /* U+0114f8: */ + 0, /* U+0114f9: */ + 0, /* U+0114fa: */ + 0, /* U+0114fb: */ + 0, /* U+0114fc: */ + 0, /* U+0114fd: */ + 0, /* U+0114fe: */ + 0, /* U+0114ff: */ + 0, /* U+011500: */ + 0, /* U+011501: */ + 0, /* U+011502: */ + 0, /* U+011503: */ + 0, /* U+011504: */ + 0, /* U+011505: */ + 0, /* U+011506: */ + 0, /* U+011507: */ + 0, /* U+011508: */ + 0, /* U+011509: */ + 0, /* U+01150a: */ + 0, /* U+01150b: */ + 0, /* U+01150c: */ + 0, /* U+01150d: */ + 0, /* U+01150e: */ + 0, /* U+01150f: */ + 0, /* U+011510: */ + 0, /* U+011511: */ + 0, /* U+011512: */ + 0, /* U+011513: */ + 0, /* U+011514: */ + 0, /* U+011515: */ + 0, /* U+011516: */ + 0, /* U+011517: */ + 0, /* U+011518: */ + 0, /* U+011519: */ + 0, /* U+01151a: */ + 0, /* U+01151b: */ + 0, /* U+01151c: */ + 0, /* U+01151d: */ + 0, /* U+01151e: */ + 0, /* U+01151f: */ + 0, /* U+011520: */ + 0, /* U+011521: */ + 0, /* U+011522: */ + 0, /* U+011523: */ + 0, /* U+011524: */ + 0, /* U+011525: */ + 0, /* U+011526: */ + 0, /* U+011527: */ + 0, /* U+011528: */ + 0, /* U+011529: */ + 0, /* U+01152a: */ + 0, /* U+01152b: */ + 0, /* U+01152c: */ + 0, /* U+01152d: */ + 0, /* U+01152e: */ + 0, /* U+01152f: */ + 0, /* U+011530: */ + 0, /* U+011531: */ + 0, /* U+011532: */ + 0, /* U+011533: */ + 0, /* U+011534: */ + 0, /* U+011535: */ + 0, /* U+011536: */ + 0, /* U+011537: */ + 0, /* U+011538: */ + 0, /* U+011539: */ + 0, /* U+01153a: */ + 0, /* U+01153b: */ + 0, /* U+01153c: */ + 0, /* U+01153d: */ + 0, /* U+01153e: */ + 0, /* U+01153f: */ + 0, /* U+011540: */ + 0, /* U+011541: */ + 0, /* U+011542: */ + 0, /* U+011543: */ + 0, /* U+011544: */ + 0, /* U+011545: */ + 0, /* U+011546: */ + 0, /* U+011547: */ + 0, /* U+011548: */ + 0, /* U+011549: */ + 0, /* U+01154a: */ + 0, /* U+01154b: */ + 0, /* U+01154c: */ + 0, /* U+01154d: */ + 0, /* U+01154e: */ + 0, /* U+01154f: */ + 0, /* U+011550: */ + 0, /* U+011551: */ + 0, /* U+011552: */ + 0, /* U+011553: */ + 0, /* U+011554: */ + 0, /* U+011555: */ + 0, /* U+011556: */ + 0, /* U+011557: */ + 0, /* U+011558: */ + 0, /* U+011559: */ + 0, /* U+01155a: */ + 0, /* U+01155b: */ + 0, /* U+01155c: */ + 0, /* U+01155d: */ + 0, /* U+01155e: */ + 0, /* U+01155f: */ + 0, /* U+011560: */ + 0, /* U+011561: */ + 0, /* U+011562: */ + 0, /* U+011563: */ + 0, /* U+011564: */ + 0, /* U+011565: */ + 0, /* U+011566: */ + 0, /* U+011567: */ + 0, /* U+011568: */ + 0, /* U+011569: */ + 0, /* U+01156a: */ + 0, /* U+01156b: */ + 0, /* U+01156c: */ + 0, /* U+01156d: */ + 0, /* U+01156e: */ + 0, /* U+01156f: */ + 0, /* U+011570: */ + 0, /* U+011571: */ + 0, /* U+011572: */ + 0, /* U+011573: */ + 0, /* U+011574: */ + 0, /* U+011575: */ + 0, /* U+011576: */ + 0, /* U+011577: */ + 0, /* U+011578: */ + 0, /* U+011579: */ + 0, /* U+01157a: */ + 0, /* U+01157b: */ + 0, /* U+01157c: */ + 0, /* U+01157d: */ + 0, /* U+01157e: */ + 0, /* U+01157f: */ + 0, /* U+011580: */ + 0, /* U+011581: */ + 0, /* U+011582: */ + 0, /* U+011583: */ + 0, /* U+011584: */ + 0, /* U+011585: */ + 0, /* U+011586: */ + 0, /* U+011587: */ + 0, /* U+011588: */ + 0, /* U+011589: */ + 0, /* U+01158a: */ + 0, /* U+01158b: */ + 0, /* U+01158c: */ + 0, /* U+01158d: */ + 0, /* U+01158e: */ + 0, /* U+01158f: */ + 0, /* U+011590: */ + 0, /* U+011591: */ + 0, /* U+011592: */ + 0, /* U+011593: */ + 0, /* U+011594: */ + 0, /* U+011595: */ + 0, /* U+011596: */ + 0, /* U+011597: */ + 0, /* U+011598: */ + 0, /* U+011599: */ + 0, /* U+01159a: */ + 0, /* U+01159b: */ + 0, /* U+01159c: */ + 0, /* U+01159d: */ + 0, /* U+01159e: */ + 0, /* U+01159f: */ + 0, /* U+0115a0: */ + 0, /* U+0115a1: */ + 0, /* U+0115a2: */ + 0, /* U+0115a3: */ + 0, /* U+0115a4: */ + 0, /* U+0115a5: */ + 0, /* U+0115a6: */ + 0, /* U+0115a7: */ + 0, /* U+0115a8: */ + 0, /* U+0115a9: */ + 0, /* U+0115aa: */ + 0, /* U+0115ab: */ + 0, /* U+0115ac: */ + 0, /* U+0115ad: */ + 0, /* U+0115ae: */ + 0, /* U+0115af: */ + 0, /* U+0115b0: */ + 0, /* U+0115b1: */ + 0, /* U+0115b2: */ + 0, /* U+0115b3: */ + 0, /* U+0115b4: */ + 0, /* U+0115b5: */ + 0, /* U+0115b6: */ + 0, /* U+0115b7: */ + 0, /* U+0115b8: */ + 0, /* U+0115b9: */ + 0, /* U+0115ba: */ + 0, /* U+0115bb: */ + 0, /* U+0115bc: */ + 0, /* U+0115bd: */ + 0, /* U+0115be: */ + 0, /* U+0115bf: */ + 0, /* U+0115c0: */ + 0, /* U+0115c1: */ + 0, /* U+0115c2: */ + 0, /* U+0115c3: */ + 0, /* U+0115c4: */ + 0, /* U+0115c5: */ + 0, /* U+0115c6: */ + 0, /* U+0115c7: */ + 0, /* U+0115c8: */ + 0, /* U+0115c9: */ + 0, /* U+0115ca: */ + 0, /* U+0115cb: */ + 0, /* U+0115cc: */ + 0, /* U+0115cd: */ + 0, /* U+0115ce: */ + 0, /* U+0115cf: */ + 0, /* U+0115d0: */ + 0, /* U+0115d1: */ + 0, /* U+0115d2: */ + 0, /* U+0115d3: */ + 0, /* U+0115d4: */ + 0, /* U+0115d5: */ + 0, /* U+0115d6: */ + 0, /* U+0115d7: */ + 0, /* U+0115d8: */ + 0, /* U+0115d9: */ + 0, /* U+0115da: */ + 0, /* U+0115db: */ + 0, /* U+0115dc: */ + 0, /* U+0115dd: */ + 0, /* U+0115de: */ + 0, /* U+0115df: */ + 0, /* U+0115e0: */ + 0, /* U+0115e1: */ + 0, /* U+0115e2: */ + 0, /* U+0115e3: */ + 0, /* U+0115e4: */ + 0, /* U+0115e5: */ + 0, /* U+0115e6: */ + 0, /* U+0115e7: */ + 0, /* U+0115e8: */ + 0, /* U+0115e9: */ + 0, /* U+0115ea: */ + 0, /* U+0115eb: */ + 0, /* U+0115ec: */ + 0, /* U+0115ed: */ + 0, /* U+0115ee: */ + 0, /* U+0115ef: */ + 0, /* U+0115f0: */ + 0, /* U+0115f1: */ + 0, /* U+0115f2: */ + 0, /* U+0115f3: */ + 0, /* U+0115f4: */ + 0, /* U+0115f5: */ + 0, /* U+0115f6: */ + 0, /* U+0115f7: */ + 0, /* U+0115f8: */ + 0, /* U+0115f9: */ + 0, /* U+0115fa: */ + 0, /* U+0115fb: */ + 0, /* U+0115fc: */ + 0, /* U+0115fd: */ + 0, /* U+0115fe: */ + 0, /* U+0115ff: */ + 0, /* U+011600: */ + 0, /* U+011601: */ + 0, /* U+011602: */ + 0, /* U+011603: */ + 0, /* U+011604: */ + 0, /* U+011605: */ + 0, /* U+011606: */ + 0, /* U+011607: */ + 0, /* U+011608: */ + 0, /* U+011609: */ + 0, /* U+01160a: */ + 0, /* U+01160b: */ + 0, /* U+01160c: */ + 0, /* U+01160d: */ + 0, /* U+01160e: */ + 0, /* U+01160f: */ + 0, /* U+011610: */ + 0, /* U+011611: */ + 0, /* U+011612: */ + 0, /* U+011613: */ + 0, /* U+011614: */ + 0, /* U+011615: */ + 0, /* U+011616: */ + 0, /* U+011617: */ + 0, /* U+011618: */ + 0, /* U+011619: */ + 0, /* U+01161a: */ + 0, /* U+01161b: */ + 0, /* U+01161c: */ + 0, /* U+01161d: */ + 0, /* U+01161e: */ + 0, /* U+01161f: */ + 0, /* U+011620: */ + 0, /* U+011621: */ + 0, /* U+011622: */ + 0, /* U+011623: */ + 0, /* U+011624: */ + 0, /* U+011625: */ + 0, /* U+011626: */ + 0, /* U+011627: */ + 0, /* U+011628: */ + 0, /* U+011629: */ + 0, /* U+01162a: */ + 0, /* U+01162b: */ + 0, /* U+01162c: */ + 0, /* U+01162d: */ + 0, /* U+01162e: */ + 0, /* U+01162f: */ + 0, /* U+011630: */ + 0, /* U+011631: */ + 0, /* U+011632: */ + 0, /* U+011633: */ + 0, /* U+011634: */ + 0, /* U+011635: */ + 0, /* U+011636: */ + 0, /* U+011637: */ + 0, /* U+011638: */ + 0, /* U+011639: */ + 0, /* U+01163a: */ + 0, /* U+01163b: */ + 0, /* U+01163c: */ + 0, /* U+01163d: */ + 0, /* U+01163e: */ + 0, /* U+01163f: */ + 0, /* U+011640: */ + 0, /* U+011641: */ + 0, /* U+011642: */ + 0, /* U+011643: */ + 0, /* U+011644: */ + 0, /* U+011645: */ + 0, /* U+011646: */ + 0, /* U+011647: */ + 0, /* U+011648: */ + 0, /* U+011649: */ + 0, /* U+01164a: */ + 0, /* U+01164b: */ + 0, /* U+01164c: */ + 0, /* U+01164d: */ + 0, /* U+01164e: */ + 0, /* U+01164f: */ + 0, /* U+011650: */ + 0, /* U+011651: */ + 0, /* U+011652: */ + 0, /* U+011653: */ + 0, /* U+011654: */ + 0, /* U+011655: */ + 0, /* U+011656: */ + 0, /* U+011657: */ + 0, /* U+011658: */ + 0, /* U+011659: */ + 0, /* U+01165a: */ + 0, /* U+01165b: */ + 0, /* U+01165c: */ + 0, /* U+01165d: */ + 0, /* U+01165e: */ + 0, /* U+01165f: */ + 0, /* U+011660: */ + 0, /* U+011661: */ + 0, /* U+011662: */ + 0, /* U+011663: */ + 0, /* U+011664: */ + 0, /* U+011665: */ + 0, /* U+011666: */ + 0, /* U+011667: */ + 0, /* U+011668: */ + 0, /* U+011669: */ + 0, /* U+01166a: */ + 0, /* U+01166b: */ + 0, /* U+01166c: */ + 0, /* U+01166d: */ + 0, /* U+01166e: */ + 0, /* U+01166f: */ + 0, /* U+011670: */ + 0, /* U+011671: */ + 0, /* U+011672: */ + 0, /* U+011673: */ + 0, /* U+011674: */ + 0, /* U+011675: */ + 0, /* U+011676: */ + 0, /* U+011677: */ + 0, /* U+011678: */ + 0, /* U+011679: */ + 0, /* U+01167a: */ + 0, /* U+01167b: */ + 0, /* U+01167c: */ + 0, /* U+01167d: */ + 0, /* U+01167e: */ + 0, /* U+01167f: */ + RTUNI_ALPHA, /* U+011680: TAKRI LETTER A*/ + RTUNI_ALPHA, /* U+011681: TAKRI LETTER AA*/ + RTUNI_ALPHA, /* U+011682: TAKRI LETTER I*/ + RTUNI_ALPHA, /* U+011683: TAKRI LETTER II*/ + RTUNI_ALPHA, /* U+011684: TAKRI LETTER U*/ + RTUNI_ALPHA, /* U+011685: TAKRI LETTER UU*/ + RTUNI_ALPHA, /* U+011686: TAKRI LETTER E*/ + RTUNI_ALPHA, /* U+011687: TAKRI LETTER AI*/ + RTUNI_ALPHA, /* U+011688: TAKRI LETTER O*/ + RTUNI_ALPHA, /* U+011689: TAKRI LETTER AU*/ + RTUNI_ALPHA, /* U+01168a: TAKRI LETTER KA*/ + RTUNI_ALPHA, /* U+01168b: TAKRI LETTER KHA*/ + RTUNI_ALPHA, /* U+01168c: TAKRI LETTER GA*/ + RTUNI_ALPHA, /* U+01168d: TAKRI LETTER GHA*/ + RTUNI_ALPHA, /* U+01168e: TAKRI LETTER NGA*/ + RTUNI_ALPHA, /* U+01168f: TAKRI LETTER CA*/ + RTUNI_ALPHA, /* U+011690: TAKRI LETTER CHA*/ + RTUNI_ALPHA, /* U+011691: TAKRI LETTER JA*/ + RTUNI_ALPHA, /* U+011692: TAKRI LETTER JHA*/ + RTUNI_ALPHA, /* U+011693: TAKRI LETTER NYA*/ + RTUNI_ALPHA, /* U+011694: TAKRI LETTER TTA*/ + RTUNI_ALPHA, /* U+011695: TAKRI LETTER TTHA*/ + RTUNI_ALPHA, /* U+011696: TAKRI LETTER DDA*/ + RTUNI_ALPHA, /* U+011697: TAKRI LETTER DDHA*/ + RTUNI_ALPHA, /* U+011698: TAKRI LETTER NNA*/ + RTUNI_ALPHA, /* U+011699: TAKRI LETTER TA*/ + RTUNI_ALPHA, /* U+01169a: TAKRI LETTER THA*/ + RTUNI_ALPHA, /* U+01169b: TAKRI LETTER DA*/ + RTUNI_ALPHA, /* U+01169c: TAKRI LETTER DHA*/ + RTUNI_ALPHA, /* U+01169d: TAKRI LETTER NA*/ + RTUNI_ALPHA, /* U+01169e: TAKRI LETTER PA*/ + RTUNI_ALPHA, /* U+01169f: TAKRI LETTER PHA*/ + RTUNI_ALPHA, /* U+0116a0: TAKRI LETTER BA*/ + RTUNI_ALPHA, /* U+0116a1: TAKRI LETTER BHA*/ + RTUNI_ALPHA, /* U+0116a2: TAKRI LETTER MA*/ + RTUNI_ALPHA, /* U+0116a3: TAKRI LETTER YA*/ + RTUNI_ALPHA, /* U+0116a4: TAKRI LETTER RA*/ + RTUNI_ALPHA, /* U+0116a5: TAKRI LETTER LA*/ + RTUNI_ALPHA, /* U+0116a6: TAKRI LETTER VA*/ + RTUNI_ALPHA, /* U+0116a7: TAKRI LETTER SHA*/ + RTUNI_ALPHA, /* U+0116a8: TAKRI LETTER SA*/ + RTUNI_ALPHA, /* U+0116a9: TAKRI LETTER HA*/ + RTUNI_ALPHA, /* U+0116aa: TAKRI LETTER RRA*/ + RTUNI_ALPHA, /* U+0116ab: TAKRI SIGN ANUSVARA*/ + RTUNI_ALPHA, /* U+0116ac: TAKRI SIGN VISARGA*/ + RTUNI_ALPHA, /* U+0116ad: TAKRI VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+0116ae: TAKRI VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+0116af: TAKRI VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+0116b0: TAKRI VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+0116b1: TAKRI VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+0116b2: TAKRI VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+0116b3: TAKRI VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+0116b4: TAKRI VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+0116b5: TAKRI VOWEL SIGN AU*/ + 0, /* U+0116b6: TAKRI SIGN VIRAMA*/ + 0, /* U+0116b7: TAKRI SIGN NUKTA*/ + 0, /* U+0116b8: */ + 0, /* U+0116b9: */ + 0, /* U+0116ba: */ + 0, /* U+0116bb: */ + 0, /* U+0116bc: */ + 0, /* U+0116bd: */ + 0, /* U+0116be: */ + 0, /* U+0116bf: */ + RTUNI_DDIGIT, /* U+0116c0: TAKRI DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+0116c1: TAKRI DIGIT ONE*/ + RTUNI_DDIGIT, /* U+0116c2: TAKRI DIGIT TWO*/ + RTUNI_DDIGIT, /* U+0116c3: TAKRI DIGIT THREE*/ + RTUNI_DDIGIT, /* U+0116c4: TAKRI DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+0116c5: TAKRI DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+0116c6: TAKRI DIGIT SIX*/ + RTUNI_DDIGIT, /* U+0116c7: TAKRI DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+0116c8: TAKRI DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+0116c9: TAKRI DIGIT NINE*/ + 0, /* U+0116ca: */ + 0, /* U+0116cb: */ + 0, /* U+0116cc: */ + 0, /* U+0116cd: */ + 0, /* U+0116ce: */ + 0, /* U+0116cf: */ + 0, /* U+0116d0: */ + 0, /* U+0116d1: */ + 0, /* U+0116d2: */ + 0, /* U+0116d3: */ + 0, /* U+0116d4: */ + 0, /* U+0116d5: */ + 0, /* U+0116d6: */ + 0, /* U+0116d7: */ + 0, /* U+0116d8: */ + 0, /* U+0116d9: */ + 0, /* U+0116da: */ + 0, /* U+0116db: */ + 0, /* U+0116dc: */ + 0, /* U+0116dd: */ + 0, /* U+0116de: */ + 0, /* U+0116df: */ + 0, /* U+0116e0: */ + 0, /* U+0116e1: */ + 0, /* U+0116e2: */ + 0, /* U+0116e3: */ + 0, /* U+0116e4: */ + 0, /* U+0116e5: */ + 0, /* U+0116e6: */ + 0, /* U+0116e7: */ + 0, /* U+0116e8: */ + 0, /* U+0116e9: */ + 0, /* U+0116ea: */ + 0, /* U+0116eb: */ + 0, /* U+0116ec: */ + 0, /* U+0116ed: */ + 0, /* U+0116ee: */ + 0, /* U+0116ef: */ + 0, /* U+0116f0: */ + 0, /* U+0116f1: */ + 0, /* U+0116f2: */ + 0, /* U+0116f3: */ + 0, /* U+0116f4: */ + 0, /* U+0116f5: */ + 0, /* U+0116f6: */ + 0, /* U+0116f7: */ + 0, /* U+0116f8: */ + 0, /* U+0116f9: */ + 0, /* U+0116fa: */ + 0, /* U+0116fb: */ + 0, /* U+0116fc: */ + 0, /* U+0116fd: */ + 0, /* U+0116fe: */ + 0, /* U+0116ff: */ + 0, /* U+011700: */ + 0, /* U+011701: */ + 0, /* U+011702: */ + 0, /* U+011703: */ + 0, /* U+011704: */ + 0, /* U+011705: */ + 0, /* U+011706: */ + 0, /* U+011707: */ + 0, /* U+011708: */ + 0, /* U+011709: */ + 0, /* U+01170a: */ + 0, /* U+01170b: */ + 0, /* U+01170c: */ + 0, /* U+01170d: */ + 0, /* U+01170e: */ + 0, /* U+01170f: */ + 0, /* U+011710: */ + 0, /* U+011711: */ + 0, /* U+011712: */ + 0, /* U+011713: */ + 0, /* U+011714: */ + 0, /* U+011715: */ + 0, /* U+011716: */ + 0, /* U+011717: */ + 0, /* U+011718: */ + 0, /* U+011719: */ + 0, /* U+01171a: */ + 0, /* U+01171b: */ + 0, /* U+01171c: */ + 0, /* U+01171d: */ + 0, /* U+01171e: */ + 0, /* U+01171f: */ + 0, /* U+011720: */ + 0, /* U+011721: */ + 0, /* U+011722: */ + 0, /* U+011723: */ + 0, /* U+011724: */ + 0, /* U+011725: */ + 0, /* U+011726: */ + 0, /* U+011727: */ + 0, /* U+011728: */ + 0, /* U+011729: */ + 0, /* U+01172a: */ + 0, /* U+01172b: */ + 0, /* U+01172c: */ + 0, /* U+01172d: */ + 0, /* U+01172e: */ + 0, /* U+01172f: */ + 0, /* U+011730: */ + 0, /* U+011731: */ + 0, /* U+011732: */ + 0, /* U+011733: */ + 0, /* U+011734: */ + 0, /* U+011735: */ + 0, /* U+011736: */ + 0, /* U+011737: */ + 0, /* U+011738: */ + 0, /* U+011739: */ + 0, /* U+01173a: */ + 0, /* U+01173b: */ + 0, /* U+01173c: */ + 0, /* U+01173d: */ + 0, /* U+01173e: */ + 0, /* U+01173f: */ + 0, /* U+011740: */ + 0, /* U+011741: */ + 0, /* U+011742: */ + 0, /* U+011743: */ + 0, /* U+011744: */ + 0, /* U+011745: */ + 0, /* U+011746: */ + 0, /* U+011747: */ + 0, /* U+011748: */ + 0, /* U+011749: */ + 0, /* U+01174a: */ + 0, /* U+01174b: */ + 0, /* U+01174c: */ + 0, /* U+01174d: */ + 0, /* U+01174e: */ + 0, /* U+01174f: */ + 0, /* U+011750: */ + 0, /* U+011751: */ + 0, /* U+011752: */ + 0, /* U+011753: */ + 0, /* U+011754: */ + 0, /* U+011755: */ + 0, /* U+011756: */ + 0, /* U+011757: */ + 0, /* U+011758: */ + 0, /* U+011759: */ + 0, /* U+01175a: */ + 0, /* U+01175b: */ + 0, /* U+01175c: */ + 0, /* U+01175d: */ + 0, /* U+01175e: */ + 0, /* U+01175f: */ + 0, /* U+011760: */ + 0, /* U+011761: */ + 0, /* U+011762: */ + 0, /* U+011763: */ + 0, /* U+011764: */ + 0, /* U+011765: */ + 0, /* U+011766: */ + 0, /* U+011767: */ + 0, /* U+011768: */ + 0, /* U+011769: */ + 0, /* U+01176a: */ + 0, /* U+01176b: */ + 0, /* U+01176c: */ + 0, /* U+01176d: */ + 0, /* U+01176e: */ + 0, /* U+01176f: */ + 0, /* U+011770: */ + 0, /* U+011771: */ + 0, /* U+011772: */ + 0, /* U+011773: */ + 0, /* U+011774: */ + 0, /* U+011775: */ + 0, /* U+011776: */ + 0, /* U+011777: */ + 0, /* U+011778: */ + 0, /* U+011779: */ + 0, /* U+01177a: */ + 0, /* U+01177b: */ + 0, /* U+01177c: */ + 0, /* U+01177d: */ + 0, /* U+01177e: */ + 0, /* U+01177f: */ + 0, /* U+011780: */ + 0, /* U+011781: */ + 0, /* U+011782: */ + 0, /* U+011783: */ + 0, /* U+011784: */ + 0, /* U+011785: */ + 0, /* U+011786: */ + 0, /* U+011787: */ + 0, /* U+011788: */ + 0, /* U+011789: */ + 0, /* U+01178a: */ + 0, /* U+01178b: */ + 0, /* U+01178c: */ + 0, /* U+01178d: */ + 0, /* U+01178e: */ + 0, /* U+01178f: */ + 0, /* U+011790: */ + 0, /* U+011791: */ + 0, /* U+011792: */ + 0, /* U+011793: */ + 0, /* U+011794: */ + 0, /* U+011795: */ + 0, /* U+011796: */ + 0, /* U+011797: */ + 0, /* U+011798: */ + 0, /* U+011799: */ + 0, /* U+01179a: */ + 0, /* U+01179b: */ + 0, /* U+01179c: */ + 0, /* U+01179d: */ + 0, /* U+01179e: */ + 0, /* U+01179f: */ + 0, /* U+0117a0: */ + 0, /* U+0117a1: */ + 0, /* U+0117a2: */ + 0, /* U+0117a3: */ + 0, /* U+0117a4: */ + 0, /* U+0117a5: */ + 0, /* U+0117a6: */ + 0, /* U+0117a7: */ + 0, /* U+0117a8: */ + 0, /* U+0117a9: */ + 0, /* U+0117aa: */ + 0, /* U+0117ab: */ + 0, /* U+0117ac: */ + 0, /* U+0117ad: */ + 0, /* U+0117ae: */ + 0, /* U+0117af: */ + 0, /* U+0117b0: */ + 0, /* U+0117b1: */ + 0, /* U+0117b2: */ + 0, /* U+0117b3: */ + 0, /* U+0117b4: */ + 0, /* U+0117b5: */ + 0, /* U+0117b6: */ + 0, /* U+0117b7: */ + 0, /* U+0117b8: */ + 0, /* U+0117b9: */ + 0, /* U+0117ba: */ + 0, /* U+0117bb: */ + 0, /* U+0117bc: */ + 0, /* U+0117bd: */ + 0, /* U+0117be: */ + 0, /* U+0117bf: */ + 0, /* U+0117c0: */ + 0, /* U+0117c1: */ + 0, /* U+0117c2: */ + 0, /* U+0117c3: */ + 0, /* U+0117c4: */ + 0, /* U+0117c5: */ + 0, /* U+0117c6: */ + 0, /* U+0117c7: */ + 0, /* U+0117c8: */ + 0, /* U+0117c9: */ + 0, /* U+0117ca: */ + 0, /* U+0117cb: */ + 0, /* U+0117cc: */ + 0, /* U+0117cd: */ + 0, /* U+0117ce: */ + 0, /* U+0117cf: */ + 0, /* U+0117d0: */ + 0, /* U+0117d1: */ + 0, /* U+0117d2: */ + 0, /* U+0117d3: */ + 0, /* U+0117d4: */ + 0, /* U+0117d5: */ + 0, /* U+0117d6: */ + 0, /* U+0117d7: */ + 0, /* U+0117d8: */ + 0, /* U+0117d9: */ + 0, /* U+0117da: */ + 0, /* U+0117db: */ + 0, /* U+0117dc: */ + 0, /* U+0117dd: */ + 0, /* U+0117de: */ + 0, /* U+0117df: */ + 0, /* U+0117e0: */ + 0, /* U+0117e1: */ + 0, /* U+0117e2: */ + 0, /* U+0117e3: */ + 0, /* U+0117e4: */ + 0, /* U+0117e5: */ + 0, /* U+0117e6: */ + 0, /* U+0117e7: */ + 0, /* U+0117e8: */ + 0, /* U+0117e9: */ + 0, /* U+0117ea: */ + 0, /* U+0117eb: */ + 0, /* U+0117ec: */ + 0, /* U+0117ed: */ + 0, /* U+0117ee: */ + 0, /* U+0117ef: */ + 0, /* U+0117f0: */ + 0, /* U+0117f1: */ + 0, /* U+0117f2: */ + 0, /* U+0117f3: */ + 0, /* U+0117f4: */ + 0, /* U+0117f5: */ + 0, /* U+0117f6: */ + 0, /* U+0117f7: */ + 0, /* U+0117f8: */ + 0, /* U+0117f9: */ + 0, /* U+0117fa: */ + 0, /* U+0117fb: */ + 0, /* U+0117fc: */ + 0, /* U+0117fd: */ + 0, /* U+0117fe: */ + 0, /* U+0117ff: */ + 0, /* U+011800: */ + 0, /* U+011801: */ + 0, /* U+011802: */ + 0, /* U+011803: */ + 0, /* U+011804: */ + 0, /* U+011805: */ + 0, /* U+011806: */ + 0, /* U+011807: */ + 0, /* U+011808: */ + 0, /* U+011809: */ + 0, /* U+01180a: */ + 0, /* U+01180b: */ + 0, /* U+01180c: */ + 0, /* U+01180d: */ + 0, /* U+01180e: */ + 0, /* U+01180f: */ + 0, /* U+011810: */ + 0, /* U+011811: */ + 0, /* U+011812: */ + 0, /* U+011813: */ + 0, /* U+011814: */ + 0, /* U+011815: */ + 0, /* U+011816: */ + 0, /* U+011817: */ + 0, /* U+011818: */ + 0, /* U+011819: */ + 0, /* U+01181a: */ + 0, /* U+01181b: */ + 0, /* U+01181c: */ + 0, /* U+01181d: */ + 0, /* U+01181e: */ + 0, /* U+01181f: */ + 0, /* U+011820: */ + 0, /* U+011821: */ + 0, /* U+011822: */ + 0, /* U+011823: */ + 0, /* U+011824: */ + 0, /* U+011825: */ + 0, /* U+011826: */ + 0, /* U+011827: */ + 0, /* U+011828: */ + 0, /* U+011829: */ + 0, /* U+01182a: */ + 0, /* U+01182b: */ + 0, /* U+01182c: */ + 0, /* U+01182d: */ + 0, /* U+01182e: */ + 0, /* U+01182f: */ + 0, /* U+011830: */ + 0, /* U+011831: */ + 0, /* U+011832: */ + 0, /* U+011833: */ + 0, /* U+011834: */ + 0, /* U+011835: */ + 0, /* U+011836: */ + 0, /* U+011837: */ + 0, /* U+011838: */ + 0, /* U+011839: */ + 0, /* U+01183a: */ + 0, /* U+01183b: */ + 0, /* U+01183c: */ + 0, /* U+01183d: */ + 0, /* U+01183e: */ + 0, /* U+01183f: */ + 0, /* U+011840: */ + 0, /* U+011841: */ + 0, /* U+011842: */ + 0, /* U+011843: */ + 0, /* U+011844: */ + 0, /* U+011845: */ + 0, /* U+011846: */ + 0, /* U+011847: */ + 0, /* U+011848: */ + 0, /* U+011849: */ + 0, /* U+01184a: */ + 0, /* U+01184b: */ + 0, /* U+01184c: */ + 0, /* U+01184d: */ + 0, /* U+01184e: */ + 0, /* U+01184f: */ + 0, /* U+011850: */ + 0, /* U+011851: */ + 0, /* U+011852: */ + 0, /* U+011853: */ + 0, /* U+011854: */ + 0, /* U+011855: */ + 0, /* U+011856: */ + 0, /* U+011857: */ + 0, /* U+011858: */ + 0, /* U+011859: */ + 0, /* U+01185a: */ + 0, /* U+01185b: */ + 0, /* U+01185c: */ + 0, /* U+01185d: */ + 0, /* U+01185e: */ + 0, /* U+01185f: */ + 0, /* U+011860: */ + 0, /* U+011861: */ + 0, /* U+011862: */ + 0, /* U+011863: */ + 0, /* U+011864: */ + 0, /* U+011865: */ + 0, /* U+011866: */ + 0, /* U+011867: */ + 0, /* U+011868: */ + 0, /* U+011869: */ + 0, /* U+01186a: */ + 0, /* U+01186b: */ + 0, /* U+01186c: */ + 0, /* U+01186d: */ + 0, /* U+01186e: */ + 0, /* U+01186f: */ + 0, /* U+011870: */ + 0, /* U+011871: */ + 0, /* U+011872: */ + 0, /* U+011873: */ + 0, /* U+011874: */ + 0, /* U+011875: */ + 0, /* U+011876: */ + 0, /* U+011877: */ + 0, /* U+011878: */ + 0, /* U+011879: */ + 0, /* U+01187a: */ + 0, /* U+01187b: */ + 0, /* U+01187c: */ + 0, /* U+01187d: */ + 0, /* U+01187e: */ + 0, /* U+01187f: */ + 0, /* U+011880: */ + 0, /* U+011881: */ + 0, /* U+011882: */ + 0, /* U+011883: */ + 0, /* U+011884: */ + 0, /* U+011885: */ + 0, /* U+011886: */ + 0, /* U+011887: */ + 0, /* U+011888: */ + 0, /* U+011889: */ + 0, /* U+01188a: */ + 0, /* U+01188b: */ + 0, /* U+01188c: */ + 0, /* U+01188d: */ + 0, /* U+01188e: */ + 0, /* U+01188f: */ + 0, /* U+011890: */ + 0, /* U+011891: */ + 0, /* U+011892: */ + 0, /* U+011893: */ + 0, /* U+011894: */ + 0, /* U+011895: */ + 0, /* U+011896: */ + 0, /* U+011897: */ + 0, /* U+011898: */ + 0, /* U+011899: */ + 0, /* U+01189a: */ + 0, /* U+01189b: */ + 0, /* U+01189c: */ + 0, /* U+01189d: */ + 0, /* U+01189e: */ + 0, /* U+01189f: */ + 0, /* U+0118a0: */ + 0, /* U+0118a1: */ + 0, /* U+0118a2: */ + 0, /* U+0118a3: */ + 0, /* U+0118a4: */ + 0, /* U+0118a5: */ + 0, /* U+0118a6: */ + 0, /* U+0118a7: */ + 0, /* U+0118a8: */ + 0, /* U+0118a9: */ + 0, /* U+0118aa: */ + 0, /* U+0118ab: */ + 0, /* U+0118ac: */ + 0, /* U+0118ad: */ + 0, /* U+0118ae: */ + 0, /* U+0118af: */ + 0, /* U+0118b0: */ + 0, /* U+0118b1: */ + 0, /* U+0118b2: */ + 0, /* U+0118b3: */ + 0, /* U+0118b4: */ + 0, /* U+0118b5: */ + 0, /* U+0118b6: */ + 0, /* U+0118b7: */ + 0, /* U+0118b8: */ + 0, /* U+0118b9: */ + 0, /* U+0118ba: */ + 0, /* U+0118bb: */ + 0, /* U+0118bc: */ + 0, /* U+0118bd: */ + 0, /* U+0118be: */ + 0, /* U+0118bf: */ + 0, /* U+0118c0: */ + 0, /* U+0118c1: */ + 0, /* U+0118c2: */ + 0, /* U+0118c3: */ + 0, /* U+0118c4: */ + 0, /* U+0118c5: */ + 0, /* U+0118c6: */ + 0, /* U+0118c7: */ + 0, /* U+0118c8: */ + 0, /* U+0118c9: */ + 0, /* U+0118ca: */ + 0, /* U+0118cb: */ + 0, /* U+0118cc: */ + 0, /* U+0118cd: */ + 0, /* U+0118ce: */ + 0, /* U+0118cf: */ + 0, /* U+0118d0: */ + 0, /* U+0118d1: */ + 0, /* U+0118d2: */ + 0, /* U+0118d3: */ + 0, /* U+0118d4: */ + 0, /* U+0118d5: */ + 0, /* U+0118d6: */ + 0, /* U+0118d7: */ + 0, /* U+0118d8: */ + 0, /* U+0118d9: */ + 0, /* U+0118da: */ + 0, /* U+0118db: */ + 0, /* U+0118dc: */ + 0, /* U+0118dd: */ + 0, /* U+0118de: */ + 0, /* U+0118df: */ + 0, /* U+0118e0: */ + 0, /* U+0118e1: */ + 0, /* U+0118e2: */ + 0, /* U+0118e3: */ + 0, /* U+0118e4: */ + 0, /* U+0118e5: */ + 0, /* U+0118e6: */ + 0, /* U+0118e7: */ + 0, /* U+0118e8: */ + 0, /* U+0118e9: */ + 0, /* U+0118ea: */ + 0, /* U+0118eb: */ + 0, /* U+0118ec: */ + 0, /* U+0118ed: */ + 0, /* U+0118ee: */ + 0, /* U+0118ef: */ + 0, /* U+0118f0: */ + 0, /* U+0118f1: */ + 0, /* U+0118f2: */ + 0, /* U+0118f3: */ + 0, /* U+0118f4: */ + 0, /* U+0118f5: */ + 0, /* U+0118f6: */ + 0, /* U+0118f7: */ + 0, /* U+0118f8: */ + 0, /* U+0118f9: */ + 0, /* U+0118fa: */ + 0, /* U+0118fb: */ + 0, /* U+0118fc: */ + 0, /* U+0118fd: */ + 0, /* U+0118fe: */ + 0, /* U+0118ff: */ + 0, /* U+011900: */ + 0, /* U+011901: */ + 0, /* U+011902: */ + 0, /* U+011903: */ + 0, /* U+011904: */ + 0, /* U+011905: */ + 0, /* U+011906: */ + 0, /* U+011907: */ + 0, /* U+011908: */ + 0, /* U+011909: */ + 0, /* U+01190a: */ + 0, /* U+01190b: */ + 0, /* U+01190c: */ + 0, /* U+01190d: */ + 0, /* U+01190e: */ + 0, /* U+01190f: */ + 0, /* U+011910: */ + 0, /* U+011911: */ + 0, /* U+011912: */ + 0, /* U+011913: */ + 0, /* U+011914: */ + 0, /* U+011915: */ + 0, /* U+011916: */ + 0, /* U+011917: */ + 0, /* U+011918: */ + 0, /* U+011919: */ + 0, /* U+01191a: */ + 0, /* U+01191b: */ + 0, /* U+01191c: */ + 0, /* U+01191d: */ + 0, /* U+01191e: */ + 0, /* U+01191f: */ + 0, /* U+011920: */ + 0, /* U+011921: */ + 0, /* U+011922: */ + 0, /* U+011923: */ + 0, /* U+011924: */ + 0, /* U+011925: */ + 0, /* U+011926: */ + 0, /* U+011927: */ + 0, /* U+011928: */ + 0, /* U+011929: */ + 0, /* U+01192a: */ + 0, /* U+01192b: */ + 0, /* U+01192c: */ + 0, /* U+01192d: */ + 0, /* U+01192e: */ + 0, /* U+01192f: */ + 0, /* U+011930: */ + 0, /* U+011931: */ + 0, /* U+011932: */ + 0, /* U+011933: */ + 0, /* U+011934: */ + 0, /* U+011935: */ + 0, /* U+011936: */ + 0, /* U+011937: */ + 0, /* U+011938: */ + 0, /* U+011939: */ + 0, /* U+01193a: */ + 0, /* U+01193b: */ + 0, /* U+01193c: */ + 0, /* U+01193d: */ + 0, /* U+01193e: */ + 0, /* U+01193f: */ + 0, /* U+011940: */ + 0, /* U+011941: */ + 0, /* U+011942: */ + 0, /* U+011943: */ + 0, /* U+011944: */ + 0, /* U+011945: */ + 0, /* U+011946: */ + 0, /* U+011947: */ + 0, /* U+011948: */ + 0, /* U+011949: */ + 0, /* U+01194a: */ + 0, /* U+01194b: */ + 0, /* U+01194c: */ + 0, /* U+01194d: */ + 0, /* U+01194e: */ + 0, /* U+01194f: */ + 0, /* U+011950: */ + 0, /* U+011951: */ + 0, /* U+011952: */ + 0, /* U+011953: */ + 0, /* U+011954: */ + 0, /* U+011955: */ + 0, /* U+011956: */ + 0, /* U+011957: */ + 0, /* U+011958: */ + 0, /* U+011959: */ + 0, /* U+01195a: */ + 0, /* U+01195b: */ + 0, /* U+01195c: */ + 0, /* U+01195d: */ + 0, /* U+01195e: */ + 0, /* U+01195f: */ + 0, /* U+011960: */ + 0, /* U+011961: */ + 0, /* U+011962: */ + 0, /* U+011963: */ + 0, /* U+011964: */ + 0, /* U+011965: */ + 0, /* U+011966: */ + 0, /* U+011967: */ + 0, /* U+011968: */ + 0, /* U+011969: */ + 0, /* U+01196a: */ + 0, /* U+01196b: */ + 0, /* U+01196c: */ + 0, /* U+01196d: */ + 0, /* U+01196e: */ + 0, /* U+01196f: */ + 0, /* U+011970: */ + 0, /* U+011971: */ + 0, /* U+011972: */ + 0, /* U+011973: */ + 0, /* U+011974: */ + 0, /* U+011975: */ + 0, /* U+011976: */ + 0, /* U+011977: */ + 0, /* U+011978: */ + 0, /* U+011979: */ + 0, /* U+01197a: */ + 0, /* U+01197b: */ + 0, /* U+01197c: */ + 0, /* U+01197d: */ + 0, /* U+01197e: */ + 0, /* U+01197f: */ + 0, /* U+011980: */ + 0, /* U+011981: */ + 0, /* U+011982: */ + 0, /* U+011983: */ + 0, /* U+011984: */ + 0, /* U+011985: */ + 0, /* U+011986: */ + 0, /* U+011987: */ + 0, /* U+011988: */ + 0, /* U+011989: */ + 0, /* U+01198a: */ + 0, /* U+01198b: */ + 0, /* U+01198c: */ + 0, /* U+01198d: */ + 0, /* U+01198e: */ + 0, /* U+01198f: */ + 0, /* U+011990: */ + 0, /* U+011991: */ + 0, /* U+011992: */ + 0, /* U+011993: */ + 0, /* U+011994: */ + 0, /* U+011995: */ + 0, /* U+011996: */ + 0, /* U+011997: */ + 0, /* U+011998: */ + 0, /* U+011999: */ + 0, /* U+01199a: */ + 0, /* U+01199b: */ + 0, /* U+01199c: */ + 0, /* U+01199d: */ + 0, /* U+01199e: */ + 0, /* U+01199f: */ + 0, /* U+0119a0: */ + 0, /* U+0119a1: */ + 0, /* U+0119a2: */ + 0, /* U+0119a3: */ + 0, /* U+0119a4: */ + 0, /* U+0119a5: */ + 0, /* U+0119a6: */ + 0, /* U+0119a7: */ + 0, /* U+0119a8: */ + 0, /* U+0119a9: */ + 0, /* U+0119aa: */ + 0, /* U+0119ab: */ + 0, /* U+0119ac: */ + 0, /* U+0119ad: */ + 0, /* U+0119ae: */ + 0, /* U+0119af: */ + 0, /* U+0119b0: */ + 0, /* U+0119b1: */ + 0, /* U+0119b2: */ + 0, /* U+0119b3: */ + 0, /* U+0119b4: */ + 0, /* U+0119b5: */ + 0, /* U+0119b6: */ + 0, /* U+0119b7: */ + 0, /* U+0119b8: */ + 0, /* U+0119b9: */ + 0, /* U+0119ba: */ + 0, /* U+0119bb: */ + 0, /* U+0119bc: */ + 0, /* U+0119bd: */ + 0, /* U+0119be: */ + 0, /* U+0119bf: */ + 0, /* U+0119c0: */ + 0, /* U+0119c1: */ + 0, /* U+0119c2: */ + 0, /* U+0119c3: */ + 0, /* U+0119c4: */ + 0, /* U+0119c5: */ + 0, /* U+0119c6: */ + 0, /* U+0119c7: */ + 0, /* U+0119c8: */ + 0, /* U+0119c9: */ + 0, /* U+0119ca: */ + 0, /* U+0119cb: */ + 0, /* U+0119cc: */ + 0, /* U+0119cd: */ + 0, /* U+0119ce: */ + 0, /* U+0119cf: */ + 0, /* U+0119d0: */ + 0, /* U+0119d1: */ + 0, /* U+0119d2: */ + 0, /* U+0119d3: */ + 0, /* U+0119d4: */ + 0, /* U+0119d5: */ + 0, /* U+0119d6: */ + 0, /* U+0119d7: */ + 0, /* U+0119d8: */ + 0, /* U+0119d9: */ + 0, /* U+0119da: */ + 0, /* U+0119db: */ + 0, /* U+0119dc: */ + 0, /* U+0119dd: */ + 0, /* U+0119de: */ + 0, /* U+0119df: */ + 0, /* U+0119e0: */ + 0, /* U+0119e1: */ + 0, /* U+0119e2: */ + 0, /* U+0119e3: */ + 0, /* U+0119e4: */ + 0, /* U+0119e5: */ + 0, /* U+0119e6: */ + 0, /* U+0119e7: */ + 0, /* U+0119e8: */ + 0, /* U+0119e9: */ + 0, /* U+0119ea: */ + 0, /* U+0119eb: */ + 0, /* U+0119ec: */ + 0, /* U+0119ed: */ + 0, /* U+0119ee: */ + 0, /* U+0119ef: */ + 0, /* U+0119f0: */ + 0, /* U+0119f1: */ + 0, /* U+0119f2: */ + 0, /* U+0119f3: */ + 0, /* U+0119f4: */ + 0, /* U+0119f5: */ + 0, /* U+0119f6: */ + 0, /* U+0119f7: */ + 0, /* U+0119f8: */ + 0, /* U+0119f9: */ + 0, /* U+0119fa: */ + 0, /* U+0119fb: */ + 0, /* U+0119fc: */ + 0, /* U+0119fd: */ + 0, /* U+0119fe: */ + 0, /* U+0119ff: */ + 0, /* U+011a00: */ + 0, /* U+011a01: */ + 0, /* U+011a02: */ + 0, /* U+011a03: */ + 0, /* U+011a04: */ + 0, /* U+011a05: */ + 0, /* U+011a06: */ + 0, /* U+011a07: */ + 0, /* U+011a08: */ + 0, /* U+011a09: */ + 0, /* U+011a0a: */ + 0, /* U+011a0b: */ + 0, /* U+011a0c: */ + 0, /* U+011a0d: */ + 0, /* U+011a0e: */ + 0, /* U+011a0f: */ + 0, /* U+011a10: */ + 0, /* U+011a11: */ + 0, /* U+011a12: */ + 0, /* U+011a13: */ + 0, /* U+011a14: */ + 0, /* U+011a15: */ + 0, /* U+011a16: */ + 0, /* U+011a17: */ + 0, /* U+011a18: */ + 0, /* U+011a19: */ + 0, /* U+011a1a: */ + 0, /* U+011a1b: */ + 0, /* U+011a1c: */ + 0, /* U+011a1d: */ + 0, /* U+011a1e: */ + 0, /* U+011a1f: */ + 0, /* U+011a20: */ + 0, /* U+011a21: */ + 0, /* U+011a22: */ + 0, /* U+011a23: */ + 0, /* U+011a24: */ + 0, /* U+011a25: */ + 0, /* U+011a26: */ + 0, /* U+011a27: */ + 0, /* U+011a28: */ + 0, /* U+011a29: */ + 0, /* U+011a2a: */ + 0, /* U+011a2b: */ + 0, /* U+011a2c: */ + 0, /* U+011a2d: */ + 0, /* U+011a2e: */ + 0, /* U+011a2f: */ + 0, /* U+011a30: */ + 0, /* U+011a31: */ + 0, /* U+011a32: */ + 0, /* U+011a33: */ + 0, /* U+011a34: */ + 0, /* U+011a35: */ + 0, /* U+011a36: */ + 0, /* U+011a37: */ + 0, /* U+011a38: */ + 0, /* U+011a39: */ + 0, /* U+011a3a: */ + 0, /* U+011a3b: */ + 0, /* U+011a3c: */ + 0, /* U+011a3d: */ + 0, /* U+011a3e: */ + 0, /* U+011a3f: */ + 0, /* U+011a40: */ + 0, /* U+011a41: */ + 0, /* U+011a42: */ + 0, /* U+011a43: */ + 0, /* U+011a44: */ + 0, /* U+011a45: */ + 0, /* U+011a46: */ + 0, /* U+011a47: */ + 0, /* U+011a48: */ + 0, /* U+011a49: */ + 0, /* U+011a4a: */ + 0, /* U+011a4b: */ + 0, /* U+011a4c: */ + 0, /* U+011a4d: */ + 0, /* U+011a4e: */ + 0, /* U+011a4f: */ + 0, /* U+011a50: */ + 0, /* U+011a51: */ + 0, /* U+011a52: */ + 0, /* U+011a53: */ + 0, /* U+011a54: */ + 0, /* U+011a55: */ + 0, /* U+011a56: */ + 0, /* U+011a57: */ + 0, /* U+011a58: */ + 0, /* U+011a59: */ + 0, /* U+011a5a: */ + 0, /* U+011a5b: */ + 0, /* U+011a5c: */ + 0, /* U+011a5d: */ + 0, /* U+011a5e: */ + 0, /* U+011a5f: */ + 0, /* U+011a60: */ + 0, /* U+011a61: */ + 0, /* U+011a62: */ + 0, /* U+011a63: */ + 0, /* U+011a64: */ + 0, /* U+011a65: */ + 0, /* U+011a66: */ + 0, /* U+011a67: */ + 0, /* U+011a68: */ + 0, /* U+011a69: */ + 0, /* U+011a6a: */ + 0, /* U+011a6b: */ + 0, /* U+011a6c: */ + 0, /* U+011a6d: */ + 0, /* U+011a6e: */ + 0, /* U+011a6f: */ + 0, /* U+011a70: */ + 0, /* U+011a71: */ + 0, /* U+011a72: */ + 0, /* U+011a73: */ + 0, /* U+011a74: */ + 0, /* U+011a75: */ + 0, /* U+011a76: */ + 0, /* U+011a77: */ + 0, /* U+011a78: */ + 0, /* U+011a79: */ + 0, /* U+011a7a: */ + 0, /* U+011a7b: */ + 0, /* U+011a7c: */ + 0, /* U+011a7d: */ + 0, /* U+011a7e: */ + 0, /* U+011a7f: */ + 0, /* U+011a80: */ + 0, /* U+011a81: */ + 0, /* U+011a82: */ + 0, /* U+011a83: */ + 0, /* U+011a84: */ + 0, /* U+011a85: */ + 0, /* U+011a86: */ + 0, /* U+011a87: */ + 0, /* U+011a88: */ + 0, /* U+011a89: */ + 0, /* U+011a8a: */ + 0, /* U+011a8b: */ + 0, /* U+011a8c: */ + 0, /* U+011a8d: */ + 0, /* U+011a8e: */ + 0, /* U+011a8f: */ + 0, /* U+011a90: */ + 0, /* U+011a91: */ + 0, /* U+011a92: */ + 0, /* U+011a93: */ + 0, /* U+011a94: */ + 0, /* U+011a95: */ + 0, /* U+011a96: */ + 0, /* U+011a97: */ + 0, /* U+011a98: */ + 0, /* U+011a99: */ + 0, /* U+011a9a: */ + 0, /* U+011a9b: */ + 0, /* U+011a9c: */ + 0, /* U+011a9d: */ + 0, /* U+011a9e: */ + 0, /* U+011a9f: */ + 0, /* U+011aa0: */ + 0, /* U+011aa1: */ + 0, /* U+011aa2: */ + 0, /* U+011aa3: */ + 0, /* U+011aa4: */ + 0, /* U+011aa5: */ + 0, /* U+011aa6: */ + 0, /* U+011aa7: */ + 0, /* U+011aa8: */ + 0, /* U+011aa9: */ + 0, /* U+011aaa: */ + 0, /* U+011aab: */ + 0, /* U+011aac: */ + 0, /* U+011aad: */ + 0, /* U+011aae: */ + 0, /* U+011aaf: */ + 0, /* U+011ab0: */ + 0, /* U+011ab1: */ + 0, /* U+011ab2: */ + 0, /* U+011ab3: */ + 0, /* U+011ab4: */ + 0, /* U+011ab5: */ + 0, /* U+011ab6: */ + 0, /* U+011ab7: */ + 0, /* U+011ab8: */ + 0, /* U+011ab9: */ + 0, /* U+011aba: */ + 0, /* U+011abb: */ + 0, /* U+011abc: */ + 0, /* U+011abd: */ + 0, /* U+011abe: */ + 0, /* U+011abf: */ + 0, /* U+011ac0: */ + 0, /* U+011ac1: */ + 0, /* U+011ac2: */ + 0, /* U+011ac3: */ + 0, /* U+011ac4: */ + 0, /* U+011ac5: */ + 0, /* U+011ac6: */ + 0, /* U+011ac7: */ + 0, /* U+011ac8: */ + 0, /* U+011ac9: */ + 0, /* U+011aca: */ + 0, /* U+011acb: */ + 0, /* U+011acc: */ + 0, /* U+011acd: */ + 0, /* U+011ace: */ + 0, /* U+011acf: */ + 0, /* U+011ad0: */ + 0, /* U+011ad1: */ + 0, /* U+011ad2: */ + 0, /* U+011ad3: */ + 0, /* U+011ad4: */ + 0, /* U+011ad5: */ + 0, /* U+011ad6: */ + 0, /* U+011ad7: */ + 0, /* U+011ad8: */ + 0, /* U+011ad9: */ + 0, /* U+011ada: */ + 0, /* U+011adb: */ + 0, /* U+011adc: */ + 0, /* U+011add: */ + 0, /* U+011ade: */ + 0, /* U+011adf: */ + 0, /* U+011ae0: */ + 0, /* U+011ae1: */ + 0, /* U+011ae2: */ + 0, /* U+011ae3: */ + 0, /* U+011ae4: */ + 0, /* U+011ae5: */ + 0, /* U+011ae6: */ + 0, /* U+011ae7: */ + 0, /* U+011ae8: */ + 0, /* U+011ae9: */ + 0, /* U+011aea: */ + 0, /* U+011aeb: */ + 0, /* U+011aec: */ + 0, /* U+011aed: */ + 0, /* U+011aee: */ + 0, /* U+011aef: */ + 0, /* U+011af0: */ + 0, /* U+011af1: */ + 0, /* U+011af2: */ + 0, /* U+011af3: */ + 0, /* U+011af4: */ + 0, /* U+011af5: */ + 0, /* U+011af6: */ + 0, /* U+011af7: */ + 0, /* U+011af8: */ + 0, /* U+011af9: */ + 0, /* U+011afa: */ + 0, /* U+011afb: */ + 0, /* U+011afc: */ + 0, /* U+011afd: */ + 0, /* U+011afe: */ + 0, /* U+011aff: */ + 0, /* U+011b00: */ + 0, /* U+011b01: */ + 0, /* U+011b02: */ + 0, /* U+011b03: */ + 0, /* U+011b04: */ + 0, /* U+011b05: */ + 0, /* U+011b06: */ + 0, /* U+011b07: */ + 0, /* U+011b08: */ + 0, /* U+011b09: */ + 0, /* U+011b0a: */ + 0, /* U+011b0b: */ + 0, /* U+011b0c: */ + 0, /* U+011b0d: */ + 0, /* U+011b0e: */ + 0, /* U+011b0f: */ + 0, /* U+011b10: */ + 0, /* U+011b11: */ + 0, /* U+011b12: */ + 0, /* U+011b13: */ + 0, /* U+011b14: */ + 0, /* U+011b15: */ + 0, /* U+011b16: */ + 0, /* U+011b17: */ + 0, /* U+011b18: */ + 0, /* U+011b19: */ + 0, /* U+011b1a: */ + 0, /* U+011b1b: */ + 0, /* U+011b1c: */ + 0, /* U+011b1d: */ + 0, /* U+011b1e: */ + 0, /* U+011b1f: */ + 0, /* U+011b20: */ + 0, /* U+011b21: */ + 0, /* U+011b22: */ + 0, /* U+011b23: */ + 0, /* U+011b24: */ + 0, /* U+011b25: */ + 0, /* U+011b26: */ + 0, /* U+011b27: */ + 0, /* U+011b28: */ + 0, /* U+011b29: */ + 0, /* U+011b2a: */ + 0, /* U+011b2b: */ + 0, /* U+011b2c: */ + 0, /* U+011b2d: */ + 0, /* U+011b2e: */ + 0, /* U+011b2f: */ + 0, /* U+011b30: */ + 0, /* U+011b31: */ + 0, /* U+011b32: */ + 0, /* U+011b33: */ + 0, /* U+011b34: */ + 0, /* U+011b35: */ + 0, /* U+011b36: */ + 0, /* U+011b37: */ + 0, /* U+011b38: */ + 0, /* U+011b39: */ + 0, /* U+011b3a: */ + 0, /* U+011b3b: */ + 0, /* U+011b3c: */ + 0, /* U+011b3d: */ + 0, /* U+011b3e: */ + 0, /* U+011b3f: */ + 0, /* U+011b40: */ + 0, /* U+011b41: */ + 0, /* U+011b42: */ + 0, /* U+011b43: */ + 0, /* U+011b44: */ + 0, /* U+011b45: */ + 0, /* U+011b46: */ + 0, /* U+011b47: */ + 0, /* U+011b48: */ + 0, /* U+011b49: */ + 0, /* U+011b4a: */ + 0, /* U+011b4b: */ + 0, /* U+011b4c: */ + 0, /* U+011b4d: */ + 0, /* U+011b4e: */ + 0, /* U+011b4f: */ + 0, /* U+011b50: */ + 0, /* U+011b51: */ + 0, /* U+011b52: */ + 0, /* U+011b53: */ + 0, /* U+011b54: */ + 0, /* U+011b55: */ + 0, /* U+011b56: */ + 0, /* U+011b57: */ + 0, /* U+011b58: */ + 0, /* U+011b59: */ + 0, /* U+011b5a: */ + 0, /* U+011b5b: */ + 0, /* U+011b5c: */ + 0, /* U+011b5d: */ + 0, /* U+011b5e: */ + 0, /* U+011b5f: */ + 0, /* U+011b60: */ + 0, /* U+011b61: */ + 0, /* U+011b62: */ + 0, /* U+011b63: */ + 0, /* U+011b64: */ + 0, /* U+011b65: */ + 0, /* U+011b66: */ + 0, /* U+011b67: */ + 0, /* U+011b68: */ + 0, /* U+011b69: */ + 0, /* U+011b6a: */ + 0, /* U+011b6b: */ + 0, /* U+011b6c: */ + 0, /* U+011b6d: */ + 0, /* U+011b6e: */ + 0, /* U+011b6f: */ + 0, /* U+011b70: */ + 0, /* U+011b71: */ + 0, /* U+011b72: */ + 0, /* U+011b73: */ + 0, /* U+011b74: */ + 0, /* U+011b75: */ + 0, /* U+011b76: */ + 0, /* U+011b77: */ + 0, /* U+011b78: */ + 0, /* U+011b79: */ + 0, /* U+011b7a: */ + 0, /* U+011b7b: */ + 0, /* U+011b7c: */ + 0, /* U+011b7d: */ + 0, /* U+011b7e: */ + 0, /* U+011b7f: */ + 0, /* U+011b80: */ + 0, /* U+011b81: */ + 0, /* U+011b82: */ + 0, /* U+011b83: */ + 0, /* U+011b84: */ + 0, /* U+011b85: */ + 0, /* U+011b86: */ + 0, /* U+011b87: */ + 0, /* U+011b88: */ + 0, /* U+011b89: */ + 0, /* U+011b8a: */ + 0, /* U+011b8b: */ + 0, /* U+011b8c: */ + 0, /* U+011b8d: */ + 0, /* U+011b8e: */ + 0, /* U+011b8f: */ + 0, /* U+011b90: */ + 0, /* U+011b91: */ + 0, /* U+011b92: */ + 0, /* U+011b93: */ + 0, /* U+011b94: */ + 0, /* U+011b95: */ + 0, /* U+011b96: */ + 0, /* U+011b97: */ + 0, /* U+011b98: */ + 0, /* U+011b99: */ + 0, /* U+011b9a: */ + 0, /* U+011b9b: */ + 0, /* U+011b9c: */ + 0, /* U+011b9d: */ + 0, /* U+011b9e: */ + 0, /* U+011b9f: */ + 0, /* U+011ba0: */ + 0, /* U+011ba1: */ + 0, /* U+011ba2: */ + 0, /* U+011ba3: */ + 0, /* U+011ba4: */ + 0, /* U+011ba5: */ + 0, /* U+011ba6: */ + 0, /* U+011ba7: */ + 0, /* U+011ba8: */ + 0, /* U+011ba9: */ + 0, /* U+011baa: */ + 0, /* U+011bab: */ + 0, /* U+011bac: */ + 0, /* U+011bad: */ + 0, /* U+011bae: */ + 0, /* U+011baf: */ + 0, /* U+011bb0: */ + 0, /* U+011bb1: */ + 0, /* U+011bb2: */ + 0, /* U+011bb3: */ + 0, /* U+011bb4: */ + 0, /* U+011bb5: */ + 0, /* U+011bb6: */ + 0, /* U+011bb7: */ + 0, /* U+011bb8: */ + 0, /* U+011bb9: */ + 0, /* U+011bba: */ + 0, /* U+011bbb: */ + 0, /* U+011bbc: */ + 0, /* U+011bbd: */ + 0, /* U+011bbe: */ + 0, /* U+011bbf: */ + 0, /* U+011bc0: */ + 0, /* U+011bc1: */ + 0, /* U+011bc2: */ + 0, /* U+011bc3: */ + 0, /* U+011bc4: */ + 0, /* U+011bc5: */ + 0, /* U+011bc6: */ + 0, /* U+011bc7: */ + 0, /* U+011bc8: */ + 0, /* U+011bc9: */ + 0, /* U+011bca: */ + 0, /* U+011bcb: */ + 0, /* U+011bcc: */ + 0, /* U+011bcd: */ + 0, /* U+011bce: */ + 0, /* U+011bcf: */ + 0, /* U+011bd0: */ + 0, /* U+011bd1: */ + 0, /* U+011bd2: */ + 0, /* U+011bd3: */ + 0, /* U+011bd4: */ + 0, /* U+011bd5: */ + 0, /* U+011bd6: */ + 0, /* U+011bd7: */ + 0, /* U+011bd8: */ + 0, /* U+011bd9: */ + 0, /* U+011bda: */ + 0, /* U+011bdb: */ + 0, /* U+011bdc: */ + 0, /* U+011bdd: */ + 0, /* U+011bde: */ + 0, /* U+011bdf: */ + 0, /* U+011be0: */ + 0, /* U+011be1: */ + 0, /* U+011be2: */ + 0, /* U+011be3: */ + 0, /* U+011be4: */ + 0, /* U+011be5: */ + 0, /* U+011be6: */ + 0, /* U+011be7: */ + 0, /* U+011be8: */ + 0, /* U+011be9: */ + 0, /* U+011bea: */ + 0, /* U+011beb: */ + 0, /* U+011bec: */ + 0, /* U+011bed: */ + 0, /* U+011bee: */ + 0, /* U+011bef: */ + 0, /* U+011bf0: */ + 0, /* U+011bf1: */ + 0, /* U+011bf2: */ + 0, /* U+011bf3: */ + 0, /* U+011bf4: */ + 0, /* U+011bf5: */ + 0, /* U+011bf6: */ + 0, /* U+011bf7: */ + 0, /* U+011bf8: */ + 0, /* U+011bf9: */ + 0, /* U+011bfa: */ + 0, /* U+011bfb: */ + 0, /* U+011bfc: */ + 0, /* U+011bfd: */ + 0, /* U+011bfe: */ + 0, /* U+011bff: */ + 0, /* U+011c00: */ + 0, /* U+011c01: */ + 0, /* U+011c02: */ + 0, /* U+011c03: */ + 0, /* U+011c04: */ + 0, /* U+011c05: */ + 0, /* U+011c06: */ + 0, /* U+011c07: */ + 0, /* U+011c08: */ + 0, /* U+011c09: */ + 0, /* U+011c0a: */ + 0, /* U+011c0b: */ + 0, /* U+011c0c: */ + 0, /* U+011c0d: */ + 0, /* U+011c0e: */ + 0, /* U+011c0f: */ + 0, /* U+011c10: */ + 0, /* U+011c11: */ + 0, /* U+011c12: */ + 0, /* U+011c13: */ + 0, /* U+011c14: */ + 0, /* U+011c15: */ + 0, /* U+011c16: */ + 0, /* U+011c17: */ + 0, /* U+011c18: */ + 0, /* U+011c19: */ + 0, /* U+011c1a: */ + 0, /* U+011c1b: */ + 0, /* U+011c1c: */ + 0, /* U+011c1d: */ + 0, /* U+011c1e: */ + 0, /* U+011c1f: */ + 0, /* U+011c20: */ + 0, /* U+011c21: */ + 0, /* U+011c22: */ + 0, /* U+011c23: */ + 0, /* U+011c24: */ + 0, /* U+011c25: */ + 0, /* U+011c26: */ + 0, /* U+011c27: */ + 0, /* U+011c28: */ + 0, /* U+011c29: */ + 0, /* U+011c2a: */ + 0, /* U+011c2b: */ + 0, /* U+011c2c: */ + 0, /* U+011c2d: */ + 0, /* U+011c2e: */ + 0, /* U+011c2f: */ + 0, /* U+011c30: */ + 0, /* U+011c31: */ + 0, /* U+011c32: */ + 0, /* U+011c33: */ + 0, /* U+011c34: */ + 0, /* U+011c35: */ + 0, /* U+011c36: */ + 0, /* U+011c37: */ + 0, /* U+011c38: */ + 0, /* U+011c39: */ + 0, /* U+011c3a: */ + 0, /* U+011c3b: */ + 0, /* U+011c3c: */ + 0, /* U+011c3d: */ + 0, /* U+011c3e: */ + 0, /* U+011c3f: */ + 0, /* U+011c40: */ + 0, /* U+011c41: */ + 0, /* U+011c42: */ + 0, /* U+011c43: */ + 0, /* U+011c44: */ + 0, /* U+011c45: */ + 0, /* U+011c46: */ + 0, /* U+011c47: */ + 0, /* U+011c48: */ + 0, /* U+011c49: */ + 0, /* U+011c4a: */ + 0, /* U+011c4b: */ + 0, /* U+011c4c: */ + 0, /* U+011c4d: */ + 0, /* U+011c4e: */ + 0, /* U+011c4f: */ + 0, /* U+011c50: */ + 0, /* U+011c51: */ + 0, /* U+011c52: */ + 0, /* U+011c53: */ + 0, /* U+011c54: */ + 0, /* U+011c55: */ + 0, /* U+011c56: */ + 0, /* U+011c57: */ + 0, /* U+011c58: */ + 0, /* U+011c59: */ + 0, /* U+011c5a: */ + 0, /* U+011c5b: */ + 0, /* U+011c5c: */ + 0, /* U+011c5d: */ + 0, /* U+011c5e: */ + 0, /* U+011c5f: */ + 0, /* U+011c60: */ + 0, /* U+011c61: */ + 0, /* U+011c62: */ + 0, /* U+011c63: */ + 0, /* U+011c64: */ + 0, /* U+011c65: */ + 0, /* U+011c66: */ + 0, /* U+011c67: */ + 0, /* U+011c68: */ + 0, /* U+011c69: */ + 0, /* U+011c6a: */ + 0, /* U+011c6b: */ + 0, /* U+011c6c: */ + 0, /* U+011c6d: */ + 0, /* U+011c6e: */ + 0, /* U+011c6f: */ + 0, /* U+011c70: */ + 0, /* U+011c71: */ + 0, /* U+011c72: */ + 0, /* U+011c73: */ + 0, /* U+011c74: */ + 0, /* U+011c75: */ + 0, /* U+011c76: */ + 0, /* U+011c77: */ + 0, /* U+011c78: */ + 0, /* U+011c79: */ + 0, /* U+011c7a: */ + 0, /* U+011c7b: */ + 0, /* U+011c7c: */ + 0, /* U+011c7d: */ + 0, /* U+011c7e: */ + 0, /* U+011c7f: */ + 0, /* U+011c80: */ + 0, /* U+011c81: */ + 0, /* U+011c82: */ + 0, /* U+011c83: */ + 0, /* U+011c84: */ + 0, /* U+011c85: */ + 0, /* U+011c86: */ + 0, /* U+011c87: */ + 0, /* U+011c88: */ + 0, /* U+011c89: */ + 0, /* U+011c8a: */ + 0, /* U+011c8b: */ + 0, /* U+011c8c: */ + 0, /* U+011c8d: */ + 0, /* U+011c8e: */ + 0, /* U+011c8f: */ + 0, /* U+011c90: */ + 0, /* U+011c91: */ + 0, /* U+011c92: */ + 0, /* U+011c93: */ + 0, /* U+011c94: */ + 0, /* U+011c95: */ + 0, /* U+011c96: */ + 0, /* U+011c97: */ + 0, /* U+011c98: */ + 0, /* U+011c99: */ + 0, /* U+011c9a: */ + 0, /* U+011c9b: */ + 0, /* U+011c9c: */ + 0, /* U+011c9d: */ + 0, /* U+011c9e: */ + 0, /* U+011c9f: */ + 0, /* U+011ca0: */ + 0, /* U+011ca1: */ + 0, /* U+011ca2: */ + 0, /* U+011ca3: */ + 0, /* U+011ca4: */ + 0, /* U+011ca5: */ + 0, /* U+011ca6: */ + 0, /* U+011ca7: */ + 0, /* U+011ca8: */ + 0, /* U+011ca9: */ + 0, /* U+011caa: */ + 0, /* U+011cab: */ + 0, /* U+011cac: */ + 0, /* U+011cad: */ + 0, /* U+011cae: */ + 0, /* U+011caf: */ + 0, /* U+011cb0: */ + 0, /* U+011cb1: */ + 0, /* U+011cb2: */ + 0, /* U+011cb3: */ + 0, /* U+011cb4: */ + 0, /* U+011cb5: */ + 0, /* U+011cb6: */ + 0, /* U+011cb7: */ + 0, /* U+011cb8: */ + 0, /* U+011cb9: */ + 0, /* U+011cba: */ + 0, /* U+011cbb: */ + 0, /* U+011cbc: */ + 0, /* U+011cbd: */ + 0, /* U+011cbe: */ + 0, /* U+011cbf: */ + 0, /* U+011cc0: */ + 0, /* U+011cc1: */ + 0, /* U+011cc2: */ + 0, /* U+011cc3: */ + 0, /* U+011cc4: */ + 0, /* U+011cc5: */ + 0, /* U+011cc6: */ + 0, /* U+011cc7: */ + 0, /* U+011cc8: */ + 0, /* U+011cc9: */ + 0, /* U+011cca: */ + 0, /* U+011ccb: */ + 0, /* U+011ccc: */ + 0, /* U+011ccd: */ + 0, /* U+011cce: */ + 0, /* U+011ccf: */ + 0, /* U+011cd0: */ + 0, /* U+011cd1: */ + 0, /* U+011cd2: */ + 0, /* U+011cd3: */ + 0, /* U+011cd4: */ + 0, /* U+011cd5: */ + 0, /* U+011cd6: */ + 0, /* U+011cd7: */ + 0, /* U+011cd8: */ + 0, /* U+011cd9: */ + 0, /* U+011cda: */ + 0, /* U+011cdb: */ + 0, /* U+011cdc: */ + 0, /* U+011cdd: */ + 0, /* U+011cde: */ + 0, /* U+011cdf: */ + 0, /* U+011ce0: */ + 0, /* U+011ce1: */ + 0, /* U+011ce2: */ + 0, /* U+011ce3: */ + 0, /* U+011ce4: */ + 0, /* U+011ce5: */ + 0, /* U+011ce6: */ + 0, /* U+011ce7: */ + 0, /* U+011ce8: */ + 0, /* U+011ce9: */ + 0, /* U+011cea: */ + 0, /* U+011ceb: */ + 0, /* U+011cec: */ + 0, /* U+011ced: */ + 0, /* U+011cee: */ + 0, /* U+011cef: */ + 0, /* U+011cf0: */ + 0, /* U+011cf1: */ + 0, /* U+011cf2: */ + 0, /* U+011cf3: */ + 0, /* U+011cf4: */ + 0, /* U+011cf5: */ + 0, /* U+011cf6: */ + 0, /* U+011cf7: */ + 0, /* U+011cf8: */ + 0, /* U+011cf9: */ + 0, /* U+011cfa: */ + 0, /* U+011cfb: */ + 0, /* U+011cfc: */ + 0, /* U+011cfd: */ + 0, /* U+011cfe: */ + 0, /* U+011cff: */ + 0, /* U+011d00: */ + 0, /* U+011d01: */ + 0, /* U+011d02: */ + 0, /* U+011d03: */ + 0, /* U+011d04: */ + 0, /* U+011d05: */ + 0, /* U+011d06: */ + 0, /* U+011d07: */ + 0, /* U+011d08: */ + 0, /* U+011d09: */ + 0, /* U+011d0a: */ + 0, /* U+011d0b: */ + 0, /* U+011d0c: */ + 0, /* U+011d0d: */ + 0, /* U+011d0e: */ + 0, /* U+011d0f: */ + 0, /* U+011d10: */ + 0, /* U+011d11: */ + 0, /* U+011d12: */ + 0, /* U+011d13: */ + 0, /* U+011d14: */ + 0, /* U+011d15: */ + 0, /* U+011d16: */ + 0, /* U+011d17: */ + 0, /* U+011d18: */ + 0, /* U+011d19: */ + 0, /* U+011d1a: */ + 0, /* U+011d1b: */ + 0, /* U+011d1c: */ + 0, /* U+011d1d: */ + 0, /* U+011d1e: */ + 0, /* U+011d1f: */ + 0, /* U+011d20: */ + 0, /* U+011d21: */ + 0, /* U+011d22: */ + 0, /* U+011d23: */ + 0, /* U+011d24: */ + 0, /* U+011d25: */ + 0, /* U+011d26: */ + 0, /* U+011d27: */ + 0, /* U+011d28: */ + 0, /* U+011d29: */ + 0, /* U+011d2a: */ + 0, /* U+011d2b: */ + 0, /* U+011d2c: */ + 0, /* U+011d2d: */ + 0, /* U+011d2e: */ + 0, /* U+011d2f: */ + 0, /* U+011d30: */ + 0, /* U+011d31: */ + 0, /* U+011d32: */ + 0, /* U+011d33: */ + 0, /* U+011d34: */ + 0, /* U+011d35: */ + 0, /* U+011d36: */ + 0, /* U+011d37: */ + 0, /* U+011d38: */ + 0, /* U+011d39: */ + 0, /* U+011d3a: */ + 0, /* U+011d3b: */ + 0, /* U+011d3c: */ + 0, /* U+011d3d: */ + 0, /* U+011d3e: */ + 0, /* U+011d3f: */ + 0, /* U+011d40: */ + 0, /* U+011d41: */ + 0, /* U+011d42: */ + 0, /* U+011d43: */ + 0, /* U+011d44: */ + 0, /* U+011d45: */ + 0, /* U+011d46: */ + 0, /* U+011d47: */ + 0, /* U+011d48: */ + 0, /* U+011d49: */ + 0, /* U+011d4a: */ + 0, /* U+011d4b: */ + 0, /* U+011d4c: */ + 0, /* U+011d4d: */ + 0, /* U+011d4e: */ + 0, /* U+011d4f: */ + 0, /* U+011d50: */ + 0, /* U+011d51: */ + 0, /* U+011d52: */ + 0, /* U+011d53: */ + 0, /* U+011d54: */ + 0, /* U+011d55: */ + 0, /* U+011d56: */ + 0, /* U+011d57: */ + 0, /* U+011d58: */ + 0, /* U+011d59: */ + 0, /* U+011d5a: */ + 0, /* U+011d5b: */ + 0, /* U+011d5c: */ + 0, /* U+011d5d: */ + 0, /* U+011d5e: */ + 0, /* U+011d5f: */ + 0, /* U+011d60: */ + 0, /* U+011d61: */ + 0, /* U+011d62: */ + 0, /* U+011d63: */ + 0, /* U+011d64: */ + 0, /* U+011d65: */ + 0, /* U+011d66: */ + 0, /* U+011d67: */ + 0, /* U+011d68: */ + 0, /* U+011d69: */ + 0, /* U+011d6a: */ + 0, /* U+011d6b: */ + 0, /* U+011d6c: */ + 0, /* U+011d6d: */ + 0, /* U+011d6e: */ + 0, /* U+011d6f: */ + 0, /* U+011d70: */ + 0, /* U+011d71: */ + 0, /* U+011d72: */ + 0, /* U+011d73: */ + 0, /* U+011d74: */ + 0, /* U+011d75: */ + 0, /* U+011d76: */ + 0, /* U+011d77: */ + 0, /* U+011d78: */ + 0, /* U+011d79: */ + 0, /* U+011d7a: */ + 0, /* U+011d7b: */ + 0, /* U+011d7c: */ + 0, /* U+011d7d: */ + 0, /* U+011d7e: */ + 0, /* U+011d7f: */ + 0, /* U+011d80: */ + 0, /* U+011d81: */ + 0, /* U+011d82: */ + 0, /* U+011d83: */ + 0, /* U+011d84: */ + 0, /* U+011d85: */ + 0, /* U+011d86: */ + 0, /* U+011d87: */ + 0, /* U+011d88: */ + 0, /* U+011d89: */ + 0, /* U+011d8a: */ + 0, /* U+011d8b: */ + 0, /* U+011d8c: */ + 0, /* U+011d8d: */ + 0, /* U+011d8e: */ + 0, /* U+011d8f: */ + 0, /* U+011d90: */ + 0, /* U+011d91: */ + 0, /* U+011d92: */ + 0, /* U+011d93: */ + 0, /* U+011d94: */ + 0, /* U+011d95: */ + 0, /* U+011d96: */ + 0, /* U+011d97: */ + 0, /* U+011d98: */ + 0, /* U+011d99: */ + 0, /* U+011d9a: */ + 0, /* U+011d9b: */ + 0, /* U+011d9c: */ + 0, /* U+011d9d: */ + 0, /* U+011d9e: */ + 0, /* U+011d9f: */ + 0, /* U+011da0: */ + 0, /* U+011da1: */ + 0, /* U+011da2: */ + 0, /* U+011da3: */ + 0, /* U+011da4: */ + 0, /* U+011da5: */ + 0, /* U+011da6: */ + 0, /* U+011da7: */ + 0, /* U+011da8: */ + 0, /* U+011da9: */ + 0, /* U+011daa: */ + 0, /* U+011dab: */ + 0, /* U+011dac: */ + 0, /* U+011dad: */ + 0, /* U+011dae: */ + 0, /* U+011daf: */ + 0, /* U+011db0: */ + 0, /* U+011db1: */ + 0, /* U+011db2: */ + 0, /* U+011db3: */ + 0, /* U+011db4: */ + 0, /* U+011db5: */ + 0, /* U+011db6: */ + 0, /* U+011db7: */ + 0, /* U+011db8: */ + 0, /* U+011db9: */ + 0, /* U+011dba: */ + 0, /* U+011dbb: */ + 0, /* U+011dbc: */ + 0, /* U+011dbd: */ + 0, /* U+011dbe: */ + 0, /* U+011dbf: */ + 0, /* U+011dc0: */ + 0, /* U+011dc1: */ + 0, /* U+011dc2: */ + 0, /* U+011dc3: */ + 0, /* U+011dc4: */ + 0, /* U+011dc5: */ + 0, /* U+011dc6: */ + 0, /* U+011dc7: */ + 0, /* U+011dc8: */ + 0, /* U+011dc9: */ + 0, /* U+011dca: */ + 0, /* U+011dcb: */ + 0, /* U+011dcc: */ + 0, /* U+011dcd: */ + 0, /* U+011dce: */ + 0, /* U+011dcf: */ + 0, /* U+011dd0: */ + 0, /* U+011dd1: */ + 0, /* U+011dd2: */ + 0, /* U+011dd3: */ + 0, /* U+011dd4: */ + 0, /* U+011dd5: */ + 0, /* U+011dd6: */ + 0, /* U+011dd7: */ + 0, /* U+011dd8: */ + 0, /* U+011dd9: */ + 0, /* U+011dda: */ + 0, /* U+011ddb: */ + 0, /* U+011ddc: */ + 0, /* U+011ddd: */ + 0, /* U+011dde: */ + 0, /* U+011ddf: */ + 0, /* U+011de0: */ + 0, /* U+011de1: */ + 0, /* U+011de2: */ + 0, /* U+011de3: */ + 0, /* U+011de4: */ + 0, /* U+011de5: */ + 0, /* U+011de6: */ + 0, /* U+011de7: */ + 0, /* U+011de8: */ + 0, /* U+011de9: */ + 0, /* U+011dea: */ + 0, /* U+011deb: */ + 0, /* U+011dec: */ + 0, /* U+011ded: */ + 0, /* U+011dee: */ + 0, /* U+011def: */ + 0, /* U+011df0: */ + 0, /* U+011df1: */ + 0, /* U+011df2: */ + 0, /* U+011df3: */ + 0, /* U+011df4: */ + 0, /* U+011df5: */ + 0, /* U+011df6: */ + 0, /* U+011df7: */ + 0, /* U+011df8: */ + 0, /* U+011df9: */ + 0, /* U+011dfa: */ + 0, /* U+011dfb: */ + 0, /* U+011dfc: */ + 0, /* U+011dfd: */ + 0, /* U+011dfe: */ + 0, /* U+011dff: */ + 0, /* U+011e00: */ + 0, /* U+011e01: */ + 0, /* U+011e02: */ + 0, /* U+011e03: */ + 0, /* U+011e04: */ + 0, /* U+011e05: */ + 0, /* U+011e06: */ + 0, /* U+011e07: */ + 0, /* U+011e08: */ + 0, /* U+011e09: */ + 0, /* U+011e0a: */ + 0, /* U+011e0b: */ + 0, /* U+011e0c: */ + 0, /* U+011e0d: */ + 0, /* U+011e0e: */ + 0, /* U+011e0f: */ + 0, /* U+011e10: */ + 0, /* U+011e11: */ + 0, /* U+011e12: */ + 0, /* U+011e13: */ + 0, /* U+011e14: */ + 0, /* U+011e15: */ + 0, /* U+011e16: */ + 0, /* U+011e17: */ + 0, /* U+011e18: */ + 0, /* U+011e19: */ + 0, /* U+011e1a: */ + 0, /* U+011e1b: */ + 0, /* U+011e1c: */ + 0, /* U+011e1d: */ + 0, /* U+011e1e: */ + 0, /* U+011e1f: */ + 0, /* U+011e20: */ + 0, /* U+011e21: */ + 0, /* U+011e22: */ + 0, /* U+011e23: */ + 0, /* U+011e24: */ + 0, /* U+011e25: */ + 0, /* U+011e26: */ + 0, /* U+011e27: */ + 0, /* U+011e28: */ + 0, /* U+011e29: */ + 0, /* U+011e2a: */ + 0, /* U+011e2b: */ + 0, /* U+011e2c: */ + 0, /* U+011e2d: */ + 0, /* U+011e2e: */ + 0, /* U+011e2f: */ + 0, /* U+011e30: */ + 0, /* U+011e31: */ + 0, /* U+011e32: */ + 0, /* U+011e33: */ + 0, /* U+011e34: */ + 0, /* U+011e35: */ + 0, /* U+011e36: */ + 0, /* U+011e37: */ + 0, /* U+011e38: */ + 0, /* U+011e39: */ + 0, /* U+011e3a: */ + 0, /* U+011e3b: */ + 0, /* U+011e3c: */ + 0, /* U+011e3d: */ + 0, /* U+011e3e: */ + 0, /* U+011e3f: */ + 0, /* U+011e40: */ + 0, /* U+011e41: */ + 0, /* U+011e42: */ + 0, /* U+011e43: */ + 0, /* U+011e44: */ + 0, /* U+011e45: */ + 0, /* U+011e46: */ + 0, /* U+011e47: */ + 0, /* U+011e48: */ + 0, /* U+011e49: */ + 0, /* U+011e4a: */ + 0, /* U+011e4b: */ + 0, /* U+011e4c: */ + 0, /* U+011e4d: */ + 0, /* U+011e4e: */ + 0, /* U+011e4f: */ + 0, /* U+011e50: */ + 0, /* U+011e51: */ + 0, /* U+011e52: */ + 0, /* U+011e53: */ + 0, /* U+011e54: */ + 0, /* U+011e55: */ + 0, /* U+011e56: */ + 0, /* U+011e57: */ + 0, /* U+011e58: */ + 0, /* U+011e59: */ + 0, /* U+011e5a: */ + 0, /* U+011e5b: */ + 0, /* U+011e5c: */ + 0, /* U+011e5d: */ + 0, /* U+011e5e: */ + 0, /* U+011e5f: */ + 0, /* U+011e60: */ + 0, /* U+011e61: */ + 0, /* U+011e62: */ + 0, /* U+011e63: */ + 0, /* U+011e64: */ + 0, /* U+011e65: */ + 0, /* U+011e66: */ + 0, /* U+011e67: */ + 0, /* U+011e68: */ + 0, /* U+011e69: */ + 0, /* U+011e6a: */ + 0, /* U+011e6b: */ + 0, /* U+011e6c: */ + 0, /* U+011e6d: */ + 0, /* U+011e6e: */ + 0, /* U+011e6f: */ + 0, /* U+011e70: */ + 0, /* U+011e71: */ + 0, /* U+011e72: */ + 0, /* U+011e73: */ + 0, /* U+011e74: */ + 0, /* U+011e75: */ + 0, /* U+011e76: */ + 0, /* U+011e77: */ + 0, /* U+011e78: */ + 0, /* U+011e79: */ + 0, /* U+011e7a: */ + 0, /* U+011e7b: */ + 0, /* U+011e7c: */ + 0, /* U+011e7d: */ + 0, /* U+011e7e: */ + 0, /* U+011e7f: */ + 0, /* U+011e80: */ + 0, /* U+011e81: */ + 0, /* U+011e82: */ + 0, /* U+011e83: */ + 0, /* U+011e84: */ + 0, /* U+011e85: */ + 0, /* U+011e86: */ + 0, /* U+011e87: */ + 0, /* U+011e88: */ + 0, /* U+011e89: */ + 0, /* U+011e8a: */ + 0, /* U+011e8b: */ + 0, /* U+011e8c: */ + 0, /* U+011e8d: */ + 0, /* U+011e8e: */ + 0, /* U+011e8f: */ + 0, /* U+011e90: */ + 0, /* U+011e91: */ + 0, /* U+011e92: */ + 0, /* U+011e93: */ + 0, /* U+011e94: */ + 0, /* U+011e95: */ + 0, /* U+011e96: */ + 0, /* U+011e97: */ + 0, /* U+011e98: */ + 0, /* U+011e99: */ + 0, /* U+011e9a: */ + 0, /* U+011e9b: */ + 0, /* U+011e9c: */ + 0, /* U+011e9d: */ + 0, /* U+011e9e: */ + 0, /* U+011e9f: */ + 0, /* U+011ea0: */ + 0, /* U+011ea1: */ + 0, /* U+011ea2: */ + 0, /* U+011ea3: */ + 0, /* U+011ea4: */ + 0, /* U+011ea5: */ + 0, /* U+011ea6: */ + 0, /* U+011ea7: */ + 0, /* U+011ea8: */ + 0, /* U+011ea9: */ + 0, /* U+011eaa: */ + 0, /* U+011eab: */ + 0, /* U+011eac: */ + 0, /* U+011ead: */ + 0, /* U+011eae: */ + 0, /* U+011eaf: */ + 0, /* U+011eb0: */ + 0, /* U+011eb1: */ + 0, /* U+011eb2: */ + 0, /* U+011eb3: */ + 0, /* U+011eb4: */ + 0, /* U+011eb5: */ + 0, /* U+011eb6: */ + 0, /* U+011eb7: */ + 0, /* U+011eb8: */ + 0, /* U+011eb9: */ + 0, /* U+011eba: */ + 0, /* U+011ebb: */ + 0, /* U+011ebc: */ + 0, /* U+011ebd: */ + 0, /* U+011ebe: */ + 0, /* U+011ebf: */ + 0, /* U+011ec0: */ + 0, /* U+011ec1: */ + 0, /* U+011ec2: */ + 0, /* U+011ec3: */ + 0, /* U+011ec4: */ + 0, /* U+011ec5: */ + 0, /* U+011ec6: */ + 0, /* U+011ec7: */ + 0, /* U+011ec8: */ + 0, /* U+011ec9: */ + 0, /* U+011eca: */ + 0, /* U+011ecb: */ + 0, /* U+011ecc: */ + 0, /* U+011ecd: */ + 0, /* U+011ece: */ + 0, /* U+011ecf: */ + 0, /* U+011ed0: */ + 0, /* U+011ed1: */ + 0, /* U+011ed2: */ + 0, /* U+011ed3: */ + 0, /* U+011ed4: */ + 0, /* U+011ed5: */ + 0, /* U+011ed6: */ + 0, /* U+011ed7: */ + 0, /* U+011ed8: */ + 0, /* U+011ed9: */ + 0, /* U+011eda: */ + 0, /* U+011edb: */ + 0, /* U+011edc: */ + 0, /* U+011edd: */ + 0, /* U+011ede: */ + 0, /* U+011edf: */ + 0, /* U+011ee0: */ + 0, /* U+011ee1: */ + 0, /* U+011ee2: */ + 0, /* U+011ee3: */ + 0, /* U+011ee4: */ + 0, /* U+011ee5: */ + 0, /* U+011ee6: */ + 0, /* U+011ee7: */ + 0, /* U+011ee8: */ + 0, /* U+011ee9: */ + 0, /* U+011eea: */ + 0, /* U+011eeb: */ + 0, /* U+011eec: */ + 0, /* U+011eed: */ + 0, /* U+011eee: */ + 0, /* U+011eef: */ + 0, /* U+011ef0: */ + 0, /* U+011ef1: */ + 0, /* U+011ef2: */ + 0, /* U+011ef3: */ + 0, /* U+011ef4: */ + 0, /* U+011ef5: */ + 0, /* U+011ef6: */ + 0, /* U+011ef7: */ + 0, /* U+011ef8: */ + 0, /* U+011ef9: */ + 0, /* U+011efa: */ + 0, /* U+011efb: */ + 0, /* U+011efc: */ + 0, /* U+011efd: */ + 0, /* U+011efe: */ + 0, /* U+011eff: */ + 0, /* U+011f00: */ + 0, /* U+011f01: */ + 0, /* U+011f02: */ + 0, /* U+011f03: */ + 0, /* U+011f04: */ + 0, /* U+011f05: */ + 0, /* U+011f06: */ + 0, /* U+011f07: */ + 0, /* U+011f08: */ + 0, /* U+011f09: */ + 0, /* U+011f0a: */ + 0, /* U+011f0b: */ + 0, /* U+011f0c: */ + 0, /* U+011f0d: */ + 0, /* U+011f0e: */ + 0, /* U+011f0f: */ + 0, /* U+011f10: */ + 0, /* U+011f11: */ + 0, /* U+011f12: */ + 0, /* U+011f13: */ + 0, /* U+011f14: */ + 0, /* U+011f15: */ + 0, /* U+011f16: */ + 0, /* U+011f17: */ + 0, /* U+011f18: */ + 0, /* U+011f19: */ + 0, /* U+011f1a: */ + 0, /* U+011f1b: */ + 0, /* U+011f1c: */ + 0, /* U+011f1d: */ + 0, /* U+011f1e: */ + 0, /* U+011f1f: */ + 0, /* U+011f20: */ + 0, /* U+011f21: */ + 0, /* U+011f22: */ + 0, /* U+011f23: */ + 0, /* U+011f24: */ + 0, /* U+011f25: */ + 0, /* U+011f26: */ + 0, /* U+011f27: */ + 0, /* U+011f28: */ + 0, /* U+011f29: */ + 0, /* U+011f2a: */ + 0, /* U+011f2b: */ + 0, /* U+011f2c: */ + 0, /* U+011f2d: */ + 0, /* U+011f2e: */ + 0, /* U+011f2f: */ + 0, /* U+011f30: */ + 0, /* U+011f31: */ + 0, /* U+011f32: */ + 0, /* U+011f33: */ + 0, /* U+011f34: */ + 0, /* U+011f35: */ + 0, /* U+011f36: */ + 0, /* U+011f37: */ + 0, /* U+011f38: */ + 0, /* U+011f39: */ + 0, /* U+011f3a: */ + 0, /* U+011f3b: */ + 0, /* U+011f3c: */ + 0, /* U+011f3d: */ + 0, /* U+011f3e: */ + 0, /* U+011f3f: */ + 0, /* U+011f40: */ + 0, /* U+011f41: */ + 0, /* U+011f42: */ + 0, /* U+011f43: */ + 0, /* U+011f44: */ + 0, /* U+011f45: */ + 0, /* U+011f46: */ + 0, /* U+011f47: */ + 0, /* U+011f48: */ + 0, /* U+011f49: */ + 0, /* U+011f4a: */ + 0, /* U+011f4b: */ + 0, /* U+011f4c: */ + 0, /* U+011f4d: */ + 0, /* U+011f4e: */ + 0, /* U+011f4f: */ + 0, /* U+011f50: */ + 0, /* U+011f51: */ + 0, /* U+011f52: */ + 0, /* U+011f53: */ + 0, /* U+011f54: */ + 0, /* U+011f55: */ + 0, /* U+011f56: */ + 0, /* U+011f57: */ + 0, /* U+011f58: */ + 0, /* U+011f59: */ + 0, /* U+011f5a: */ + 0, /* U+011f5b: */ + 0, /* U+011f5c: */ + 0, /* U+011f5d: */ + 0, /* U+011f5e: */ + 0, /* U+011f5f: */ + 0, /* U+011f60: */ + 0, /* U+011f61: */ + 0, /* U+011f62: */ + 0, /* U+011f63: */ + 0, /* U+011f64: */ + 0, /* U+011f65: */ + 0, /* U+011f66: */ + 0, /* U+011f67: */ + 0, /* U+011f68: */ + 0, /* U+011f69: */ + 0, /* U+011f6a: */ + 0, /* U+011f6b: */ + 0, /* U+011f6c: */ + 0, /* U+011f6d: */ + 0, /* U+011f6e: */ + 0, /* U+011f6f: */ + 0, /* U+011f70: */ + 0, /* U+011f71: */ + 0, /* U+011f72: */ + 0, /* U+011f73: */ + 0, /* U+011f74: */ + 0, /* U+011f75: */ + 0, /* U+011f76: */ + 0, /* U+011f77: */ + 0, /* U+011f78: */ + 0, /* U+011f79: */ + 0, /* U+011f7a: */ + 0, /* U+011f7b: */ + 0, /* U+011f7c: */ + 0, /* U+011f7d: */ + 0, /* U+011f7e: */ + 0, /* U+011f7f: */ + 0, /* U+011f80: */ + 0, /* U+011f81: */ + 0, /* U+011f82: */ + 0, /* U+011f83: */ + 0, /* U+011f84: */ + 0, /* U+011f85: */ + 0, /* U+011f86: */ + 0, /* U+011f87: */ + 0, /* U+011f88: */ + 0, /* U+011f89: */ + 0, /* U+011f8a: */ + 0, /* U+011f8b: */ + 0, /* U+011f8c: */ + 0, /* U+011f8d: */ + 0, /* U+011f8e: */ + 0, /* U+011f8f: */ + 0, /* U+011f90: */ + 0, /* U+011f91: */ + 0, /* U+011f92: */ + 0, /* U+011f93: */ + 0, /* U+011f94: */ + 0, /* U+011f95: */ + 0, /* U+011f96: */ + 0, /* U+011f97: */ + 0, /* U+011f98: */ + 0, /* U+011f99: */ + 0, /* U+011f9a: */ + 0, /* U+011f9b: */ + 0, /* U+011f9c: */ + 0, /* U+011f9d: */ + 0, /* U+011f9e: */ + 0, /* U+011f9f: */ + 0, /* U+011fa0: */ + 0, /* U+011fa1: */ + 0, /* U+011fa2: */ + 0, /* U+011fa3: */ + 0, /* U+011fa4: */ + 0, /* U+011fa5: */ + 0, /* U+011fa6: */ + 0, /* U+011fa7: */ + 0, /* U+011fa8: */ + 0, /* U+011fa9: */ + 0, /* U+011faa: */ + 0, /* U+011fab: */ + 0, /* U+011fac: */ + 0, /* U+011fad: */ + 0, /* U+011fae: */ + 0, /* U+011faf: */ + 0, /* U+011fb0: */ + 0, /* U+011fb1: */ + 0, /* U+011fb2: */ + 0, /* U+011fb3: */ + 0, /* U+011fb4: */ + 0, /* U+011fb5: */ + 0, /* U+011fb6: */ + 0, /* U+011fb7: */ + 0, /* U+011fb8: */ + 0, /* U+011fb9: */ + 0, /* U+011fba: */ + 0, /* U+011fbb: */ + 0, /* U+011fbc: */ + 0, /* U+011fbd: */ + 0, /* U+011fbe: */ + 0, /* U+011fbf: */ + 0, /* U+011fc0: */ + 0, /* U+011fc1: */ + 0, /* U+011fc2: */ + 0, /* U+011fc3: */ + 0, /* U+011fc4: */ + 0, /* U+011fc5: */ + 0, /* U+011fc6: */ + 0, /* U+011fc7: */ + 0, /* U+011fc8: */ + 0, /* U+011fc9: */ + 0, /* U+011fca: */ + 0, /* U+011fcb: */ + 0, /* U+011fcc: */ + 0, /* U+011fcd: */ + 0, /* U+011fce: */ + 0, /* U+011fcf: */ + 0, /* U+011fd0: */ + 0, /* U+011fd1: */ + 0, /* U+011fd2: */ + 0, /* U+011fd3: */ + 0, /* U+011fd4: */ + 0, /* U+011fd5: */ + 0, /* U+011fd6: */ + 0, /* U+011fd7: */ + 0, /* U+011fd8: */ + 0, /* U+011fd9: */ + 0, /* U+011fda: */ + 0, /* U+011fdb: */ + 0, /* U+011fdc: */ + 0, /* U+011fdd: */ + 0, /* U+011fde: */ + 0, /* U+011fdf: */ + 0, /* U+011fe0: */ + 0, /* U+011fe1: */ + 0, /* U+011fe2: */ + 0, /* U+011fe3: */ + 0, /* U+011fe4: */ + 0, /* U+011fe5: */ + 0, /* U+011fe6: */ + 0, /* U+011fe7: */ + 0, /* U+011fe8: */ + 0, /* U+011fe9: */ + 0, /* U+011fea: */ + 0, /* U+011feb: */ + 0, /* U+011fec: */ + 0, /* U+011fed: */ + 0, /* U+011fee: */ + 0, /* U+011fef: */ + 0, /* U+011ff0: */ + 0, /* U+011ff1: */ + 0, /* U+011ff2: */ + 0, /* U+011ff3: */ + 0, /* U+011ff4: */ + 0, /* U+011ff5: */ + 0, /* U+011ff6: */ + 0, /* U+011ff7: */ + 0, /* U+011ff8: */ + 0, /* U+011ff9: */ + 0, /* U+011ffa: */ + 0, /* U+011ffb: */ + 0, /* U+011ffc: */ + 0, /* U+011ffd: */ + 0, /* U+011ffe: */ + 0, /* U+011fff: */ + RTUNI_ALPHA, /* U+012000: CUNEIFORM SIGN A*/ + RTUNI_ALPHA, /* U+012001: CUNEIFORM SIGN A TIMES A*/ + RTUNI_ALPHA, /* U+012002: CUNEIFORM SIGN A TIMES BAD*/ + RTUNI_ALPHA, /* U+012003: CUNEIFORM SIGN A TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+012004: CUNEIFORM SIGN A TIMES HA*/ + RTUNI_ALPHA, /* U+012005: CUNEIFORM SIGN A TIMES IGI*/ + RTUNI_ALPHA, /* U+012006: CUNEIFORM SIGN A TIMES LAGAR GUNU*/ + RTUNI_ALPHA, /* U+012007: CUNEIFORM SIGN A TIMES MUSH*/ + RTUNI_ALPHA, /* U+012008: CUNEIFORM SIGN A TIMES SAG*/ + RTUNI_ALPHA, /* U+012009: CUNEIFORM SIGN A2*/ + RTUNI_ALPHA, /* U+01200a: CUNEIFORM SIGN AB*/ + RTUNI_ALPHA, /* U+01200b: CUNEIFORM SIGN AB TIMES ASH2*/ + RTUNI_ALPHA, /* U+01200c: CUNEIFORM SIGN AB TIMES DUN3 GUNU*/ + RTUNI_ALPHA, /* U+01200d: CUNEIFORM SIGN AB TIMES GAL*/ + RTUNI_ALPHA, /* U+01200e: CUNEIFORM SIGN AB TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+01200f: CUNEIFORM SIGN AB TIMES HA*/ + RTUNI_ALPHA, /* U+012010: CUNEIFORM SIGN AB TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+012011: CUNEIFORM SIGN AB TIMES IMIN*/ + RTUNI_ALPHA, /* U+012012: CUNEIFORM SIGN AB TIMES LAGAB*/ + RTUNI_ALPHA, /* U+012013: CUNEIFORM SIGN AB TIMES SHESH*/ + RTUNI_ALPHA, /* U+012014: CUNEIFORM SIGN AB TIMES U PLUS U PLUS U*/ + RTUNI_ALPHA, /* U+012015: CUNEIFORM SIGN AB GUNU*/ + RTUNI_ALPHA, /* U+012016: CUNEIFORM SIGN AB2*/ + RTUNI_ALPHA, /* U+012017: CUNEIFORM SIGN AB2 TIMES BALAG*/ + RTUNI_ALPHA, /* U+012018: CUNEIFORM SIGN AB2 TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+012019: CUNEIFORM SIGN AB2 TIMES ME PLUS EN*/ + RTUNI_ALPHA, /* U+01201a: CUNEIFORM SIGN AB2 TIMES SHA3*/ + RTUNI_ALPHA, /* U+01201b: CUNEIFORM SIGN AB2 TIMES TAK4*/ + RTUNI_ALPHA, /* U+01201c: CUNEIFORM SIGN AD*/ + RTUNI_ALPHA, /* U+01201d: CUNEIFORM SIGN AK*/ + RTUNI_ALPHA, /* U+01201e: CUNEIFORM SIGN AK TIMES ERIN2*/ + RTUNI_ALPHA, /* U+01201f: CUNEIFORM SIGN AK TIMES SHITA PLUS GISH*/ + RTUNI_ALPHA, /* U+012020: CUNEIFORM SIGN AL*/ + RTUNI_ALPHA, /* U+012021: CUNEIFORM SIGN AL TIMES AL*/ + RTUNI_ALPHA, /* U+012022: CUNEIFORM SIGN AL TIMES DIM2*/ + RTUNI_ALPHA, /* U+012023: CUNEIFORM SIGN AL TIMES GISH*/ + RTUNI_ALPHA, /* U+012024: CUNEIFORM SIGN AL TIMES HA*/ + RTUNI_ALPHA, /* U+012025: CUNEIFORM SIGN AL TIMES KAD3*/ + RTUNI_ALPHA, /* U+012026: CUNEIFORM SIGN AL TIMES KI*/ + RTUNI_ALPHA, /* U+012027: CUNEIFORM SIGN AL TIMES SHE*/ + RTUNI_ALPHA, /* U+012028: CUNEIFORM SIGN AL TIMES USH*/ + RTUNI_ALPHA, /* U+012029: CUNEIFORM SIGN ALAN*/ + RTUNI_ALPHA, /* U+01202a: CUNEIFORM SIGN ALEPH*/ + RTUNI_ALPHA, /* U+01202b: CUNEIFORM SIGN AMAR*/ + RTUNI_ALPHA, /* U+01202c: CUNEIFORM SIGN AMAR TIMES SHE*/ + RTUNI_ALPHA, /* U+01202d: CUNEIFORM SIGN AN*/ + RTUNI_ALPHA, /* U+01202e: CUNEIFORM SIGN AN OVER AN*/ + RTUNI_ALPHA, /* U+01202f: CUNEIFORM SIGN AN THREE TIMES*/ + RTUNI_ALPHA, /* U+012030: CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA*/ + RTUNI_ALPHA, /* U+012031: CUNEIFORM SIGN AN PLUS NAGA SQUARED*/ + RTUNI_ALPHA, /* U+012032: CUNEIFORM SIGN ANSHE*/ + RTUNI_ALPHA, /* U+012033: CUNEIFORM SIGN APIN*/ + RTUNI_ALPHA, /* U+012034: CUNEIFORM SIGN ARAD*/ + RTUNI_ALPHA, /* U+012035: CUNEIFORM SIGN ARAD TIMES KUR*/ + RTUNI_ALPHA, /* U+012036: CUNEIFORM SIGN ARKAB*/ + RTUNI_ALPHA, /* U+012037: CUNEIFORM SIGN ASAL2*/ + RTUNI_ALPHA, /* U+012038: CUNEIFORM SIGN ASH*/ + RTUNI_ALPHA, /* U+012039: CUNEIFORM SIGN ASH ZIDA TENU*/ + RTUNI_ALPHA, /* U+01203a: CUNEIFORM SIGN ASH KABA TENU*/ + RTUNI_ALPHA, /* U+01203b: CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP*/ + RTUNI_ALPHA, /* U+01203c: CUNEIFORM SIGN ASH OVER ASH OVER ASH*/ + RTUNI_ALPHA, /* U+01203d: CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH*/ + RTUNI_ALPHA, /* U+01203e: CUNEIFORM SIGN ASH2*/ + RTUNI_ALPHA, /* U+01203f: CUNEIFORM SIGN ASHGAB*/ + RTUNI_ALPHA, /* U+012040: CUNEIFORM SIGN BA*/ + RTUNI_ALPHA, /* U+012041: CUNEIFORM SIGN BAD*/ + RTUNI_ALPHA, /* U+012042: CUNEIFORM SIGN BAG3*/ + RTUNI_ALPHA, /* U+012043: CUNEIFORM SIGN BAHAR2*/ + RTUNI_ALPHA, /* U+012044: CUNEIFORM SIGN BAL*/ + RTUNI_ALPHA, /* U+012045: CUNEIFORM SIGN BAL OVER BAL*/ + RTUNI_ALPHA, /* U+012046: CUNEIFORM SIGN BALAG*/ + RTUNI_ALPHA, /* U+012047: CUNEIFORM SIGN BAR*/ + RTUNI_ALPHA, /* U+012048: CUNEIFORM SIGN BARA2*/ + RTUNI_ALPHA, /* U+012049: CUNEIFORM SIGN BI*/ + RTUNI_ALPHA, /* U+01204a: CUNEIFORM SIGN BI TIMES A*/ + RTUNI_ALPHA, /* U+01204b: CUNEIFORM SIGN BI TIMES GAR*/ + RTUNI_ALPHA, /* U+01204c: CUNEIFORM SIGN BI TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+01204d: CUNEIFORM SIGN BU*/ + RTUNI_ALPHA, /* U+01204e: CUNEIFORM SIGN BU OVER BU AB*/ + RTUNI_ALPHA, /* U+01204f: CUNEIFORM SIGN BU OVER BU UN*/ + RTUNI_ALPHA, /* U+012050: CUNEIFORM SIGN BU CROSSING BU*/ + RTUNI_ALPHA, /* U+012051: CUNEIFORM SIGN BULUG*/ + RTUNI_ALPHA, /* U+012052: CUNEIFORM SIGN BULUG OVER BULUG*/ + RTUNI_ALPHA, /* U+012053: CUNEIFORM SIGN BUR*/ + RTUNI_ALPHA, /* U+012054: CUNEIFORM SIGN BUR2*/ + RTUNI_ALPHA, /* U+012055: CUNEIFORM SIGN DA*/ + RTUNI_ALPHA, /* U+012056: CUNEIFORM SIGN DAG*/ + RTUNI_ALPHA, /* U+012057: CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH*/ + RTUNI_ALPHA, /* U+012058: CUNEIFORM SIGN DAG KISIM5 TIMES AMAR*/ + RTUNI_ALPHA, /* U+012059: CUNEIFORM SIGN DAG KISIM5 TIMES BALAG*/ + RTUNI_ALPHA, /* U+01205a: CUNEIFORM SIGN DAG KISIM5 TIMES BI*/ + RTUNI_ALPHA, /* U+01205b: CUNEIFORM SIGN DAG KISIM5 TIMES GA*/ + RTUNI_ALPHA, /* U+01205c: CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH*/ + RTUNI_ALPHA, /* U+01205d: CUNEIFORM SIGN DAG KISIM5 TIMES GI*/ + RTUNI_ALPHA, /* U+01205e: CUNEIFORM SIGN DAG KISIM5 TIMES GIR2*/ + RTUNI_ALPHA, /* U+01205f: CUNEIFORM SIGN DAG KISIM5 TIMES GUD*/ + RTUNI_ALPHA, /* U+012060: CUNEIFORM SIGN DAG KISIM5 TIMES HA*/ + RTUNI_ALPHA, /* U+012061: CUNEIFORM SIGN DAG KISIM5 TIMES IR*/ + RTUNI_ALPHA, /* U+012062: CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU*/ + RTUNI_ALPHA, /* U+012063: CUNEIFORM SIGN DAG KISIM5 TIMES KAK*/ + RTUNI_ALPHA, /* U+012064: CUNEIFORM SIGN DAG KISIM5 TIMES LA*/ + RTUNI_ALPHA, /* U+012065: CUNEIFORM SIGN DAG KISIM5 TIMES LU*/ + RTUNI_ALPHA, /* U+012066: CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2*/ + RTUNI_ALPHA, /* U+012067: CUNEIFORM SIGN DAG KISIM5 TIMES LUM*/ + RTUNI_ALPHA, /* U+012068: CUNEIFORM SIGN DAG KISIM5 TIMES NE*/ + RTUNI_ALPHA, /* U+012069: CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP*/ + RTUNI_ALPHA, /* U+01206a: CUNEIFORM SIGN DAG KISIM5 TIMES SI*/ + RTUNI_ALPHA, /* U+01206b: CUNEIFORM SIGN DAG KISIM5 TIMES TAK4*/ + RTUNI_ALPHA, /* U+01206c: CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2*/ + RTUNI_ALPHA, /* U+01206d: CUNEIFORM SIGN DAG KISIM5 TIMES USH*/ + RTUNI_ALPHA, /* U+01206e: CUNEIFORM SIGN DAM*/ + RTUNI_ALPHA, /* U+01206f: CUNEIFORM SIGN DAR*/ + RTUNI_ALPHA, /* U+012070: CUNEIFORM SIGN DARA3*/ + RTUNI_ALPHA, /* U+012071: CUNEIFORM SIGN DARA4*/ + RTUNI_ALPHA, /* U+012072: CUNEIFORM SIGN DI*/ + RTUNI_ALPHA, /* U+012073: CUNEIFORM SIGN DIB*/ + RTUNI_ALPHA, /* U+012074: CUNEIFORM SIGN DIM*/ + RTUNI_ALPHA, /* U+012075: CUNEIFORM SIGN DIM TIMES SHE*/ + RTUNI_ALPHA, /* U+012076: CUNEIFORM SIGN DIM2*/ + RTUNI_ALPHA, /* U+012077: CUNEIFORM SIGN DIN*/ + RTUNI_ALPHA, /* U+012078: CUNEIFORM SIGN DIN KASKAL U GUNU DISH*/ + RTUNI_ALPHA, /* U+012079: CUNEIFORM SIGN DISH*/ + RTUNI_ALPHA, /* U+01207a: CUNEIFORM SIGN DU*/ + RTUNI_ALPHA, /* U+01207b: CUNEIFORM SIGN DU OVER DU*/ + RTUNI_ALPHA, /* U+01207c: CUNEIFORM SIGN DU GUNU*/ + RTUNI_ALPHA, /* U+01207d: CUNEIFORM SIGN DU SHESHIG*/ + RTUNI_ALPHA, /* U+01207e: CUNEIFORM SIGN DUB*/ + RTUNI_ALPHA, /* U+01207f: CUNEIFORM SIGN DUB TIMES ESH2*/ + RTUNI_ALPHA, /* U+012080: CUNEIFORM SIGN DUB2*/ + RTUNI_ALPHA, /* U+012081: CUNEIFORM SIGN DUG*/ + RTUNI_ALPHA, /* U+012082: CUNEIFORM SIGN DUGUD*/ + RTUNI_ALPHA, /* U+012083: CUNEIFORM SIGN DUH*/ + RTUNI_ALPHA, /* U+012084: CUNEIFORM SIGN DUN*/ + RTUNI_ALPHA, /* U+012085: CUNEIFORM SIGN DUN3*/ + RTUNI_ALPHA, /* U+012086: CUNEIFORM SIGN DUN3 GUNU*/ + RTUNI_ALPHA, /* U+012087: CUNEIFORM SIGN DUN3 GUNU GUNU*/ + RTUNI_ALPHA, /* U+012088: CUNEIFORM SIGN DUN4*/ + RTUNI_ALPHA, /* U+012089: CUNEIFORM SIGN DUR2*/ + RTUNI_ALPHA, /* U+01208a: CUNEIFORM SIGN E*/ + RTUNI_ALPHA, /* U+01208b: CUNEIFORM SIGN E TIMES PAP*/ + RTUNI_ALPHA, /* U+01208c: CUNEIFORM SIGN E OVER E NUN OVER NUN*/ + RTUNI_ALPHA, /* U+01208d: CUNEIFORM SIGN E2*/ + RTUNI_ALPHA, /* U+01208e: CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA*/ + RTUNI_ALPHA, /* U+01208f: CUNEIFORM SIGN E2 TIMES GAR*/ + RTUNI_ALPHA, /* U+012090: CUNEIFORM SIGN E2 TIMES MI*/ + RTUNI_ALPHA, /* U+012091: CUNEIFORM SIGN E2 TIMES SAL*/ + RTUNI_ALPHA, /* U+012092: CUNEIFORM SIGN E2 TIMES SHE*/ + RTUNI_ALPHA, /* U+012093: CUNEIFORM SIGN E2 TIMES U*/ + RTUNI_ALPHA, /* U+012094: CUNEIFORM SIGN EDIN*/ + RTUNI_ALPHA, /* U+012095: CUNEIFORM SIGN EGIR*/ + RTUNI_ALPHA, /* U+012096: CUNEIFORM SIGN EL*/ + RTUNI_ALPHA, /* U+012097: CUNEIFORM SIGN EN*/ + RTUNI_ALPHA, /* U+012098: CUNEIFORM SIGN EN TIMES GAN2*/ + RTUNI_ALPHA, /* U+012099: CUNEIFORM SIGN EN TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+01209a: CUNEIFORM SIGN EN TIMES ME*/ + RTUNI_ALPHA, /* U+01209b: CUNEIFORM SIGN EN CROSSING EN*/ + RTUNI_ALPHA, /* U+01209c: CUNEIFORM SIGN EN OPPOSING EN*/ + RTUNI_ALPHA, /* U+01209d: CUNEIFORM SIGN EN SQUARED*/ + RTUNI_ALPHA, /* U+01209e: CUNEIFORM SIGN EREN*/ + RTUNI_ALPHA, /* U+01209f: CUNEIFORM SIGN ERIN2*/ + RTUNI_ALPHA, /* U+0120a0: CUNEIFORM SIGN ESH2*/ + RTUNI_ALPHA, /* U+0120a1: CUNEIFORM SIGN EZEN*/ + RTUNI_ALPHA, /* U+0120a2: CUNEIFORM SIGN EZEN TIMES A*/ + RTUNI_ALPHA, /* U+0120a3: CUNEIFORM SIGN EZEN TIMES A PLUS LAL*/ + RTUNI_ALPHA, /* U+0120a4: CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL*/ + RTUNI_ALPHA, /* U+0120a5: CUNEIFORM SIGN EZEN TIMES AN*/ + RTUNI_ALPHA, /* U+0120a6: CUNEIFORM SIGN EZEN TIMES BAD*/ + RTUNI_ALPHA, /* U+0120a7: CUNEIFORM SIGN EZEN TIMES DUN3 GUNU*/ + RTUNI_ALPHA, /* U+0120a8: CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU*/ + RTUNI_ALPHA, /* U+0120a9: CUNEIFORM SIGN EZEN TIMES HA*/ + RTUNI_ALPHA, /* U+0120aa: CUNEIFORM SIGN EZEN TIMES HA GUNU*/ + RTUNI_ALPHA, /* U+0120ab: CUNEIFORM SIGN EZEN TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+0120ac: CUNEIFORM SIGN EZEN TIMES KASKAL*/ + RTUNI_ALPHA, /* U+0120ad: CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED*/ + RTUNI_ALPHA, /* U+0120ae: CUNEIFORM SIGN EZEN TIMES KU3*/ + RTUNI_ALPHA, /* U+0120af: CUNEIFORM SIGN EZEN TIMES LA*/ + RTUNI_ALPHA, /* U+0120b0: CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL*/ + RTUNI_ALPHA, /* U+0120b1: CUNEIFORM SIGN EZEN TIMES LI*/ + RTUNI_ALPHA, /* U+0120b2: CUNEIFORM SIGN EZEN TIMES LU*/ + RTUNI_ALPHA, /* U+0120b3: CUNEIFORM SIGN EZEN TIMES U2*/ + RTUNI_ALPHA, /* U+0120b4: CUNEIFORM SIGN EZEN TIMES UD*/ + RTUNI_ALPHA, /* U+0120b5: CUNEIFORM SIGN GA*/ + RTUNI_ALPHA, /* U+0120b6: CUNEIFORM SIGN GA GUNU*/ + RTUNI_ALPHA, /* U+0120b7: CUNEIFORM SIGN GA2*/ + RTUNI_ALPHA, /* U+0120b8: CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA*/ + RTUNI_ALPHA, /* U+0120b9: CUNEIFORM SIGN GA2 TIMES A PLUS HA*/ + RTUNI_ALPHA, /* U+0120ba: CUNEIFORM SIGN GA2 TIMES A PLUS IGI*/ + RTUNI_ALPHA, /* U+0120bb: CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB*/ + RTUNI_ALPHA, /* U+0120bc: CUNEIFORM SIGN GA2 TIMES AN*/ + RTUNI_ALPHA, /* U+0120bd: CUNEIFORM SIGN GA2 TIMES ASH*/ + RTUNI_ALPHA, /* U+0120be: CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL*/ + RTUNI_ALPHA, /* U+0120bf: CUNEIFORM SIGN GA2 TIMES BAD*/ + RTUNI_ALPHA, /* U+0120c0: CUNEIFORM SIGN GA2 TIMES BAR PLUS RA*/ + RTUNI_ALPHA, /* U+0120c1: CUNEIFORM SIGN GA2 TIMES BUR*/ + RTUNI_ALPHA, /* U+0120c2: CUNEIFORM SIGN GA2 TIMES BUR PLUS RA*/ + RTUNI_ALPHA, /* U+0120c3: CUNEIFORM SIGN GA2 TIMES DA*/ + RTUNI_ALPHA, /* U+0120c4: CUNEIFORM SIGN GA2 TIMES DI*/ + RTUNI_ALPHA, /* U+0120c5: CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE*/ + RTUNI_ALPHA, /* U+0120c6: CUNEIFORM SIGN GA2 TIMES DUB*/ + RTUNI_ALPHA, /* U+0120c7: CUNEIFORM SIGN GA2 TIMES EL*/ + RTUNI_ALPHA, /* U+0120c8: CUNEIFORM SIGN GA2 TIMES EL PLUS LA*/ + RTUNI_ALPHA, /* U+0120c9: CUNEIFORM SIGN GA2 TIMES EN*/ + RTUNI_ALPHA, /* U+0120ca: CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+0120cb: CUNEIFORM SIGN GA2 TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+0120cc: CUNEIFORM SIGN GA2 TIMES GAR*/ + RTUNI_ALPHA, /* U+0120cd: CUNEIFORM SIGN GA2 TIMES GI*/ + RTUNI_ALPHA, /* U+0120ce: CUNEIFORM SIGN GA2 TIMES GI4*/ + RTUNI_ALPHA, /* U+0120cf: CUNEIFORM SIGN GA2 TIMES GI4 PLUS A*/ + RTUNI_ALPHA, /* U+0120d0: CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU*/ + RTUNI_ALPHA, /* U+0120d1: CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2*/ + RTUNI_ALPHA, /* U+0120d2: CUNEIFORM SIGN GA2 TIMES HAL*/ + RTUNI_ALPHA, /* U+0120d3: CUNEIFORM SIGN GA2 TIMES HAL PLUS LA*/ + RTUNI_ALPHA, /* U+0120d4: CUNEIFORM SIGN GA2 TIMES HI PLUS LI*/ + RTUNI_ALPHA, /* U+0120d5: CUNEIFORM SIGN GA2 TIMES HUB2*/ + RTUNI_ALPHA, /* U+0120d6: CUNEIFORM SIGN GA2 TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+0120d7: CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH*/ + RTUNI_ALPHA, /* U+0120d8: CUNEIFORM SIGN GA2 TIMES KAK*/ + RTUNI_ALPHA, /* U+0120d9: CUNEIFORM SIGN GA2 TIMES KASKAL*/ + RTUNI_ALPHA, /* U+0120da: CUNEIFORM SIGN GA2 TIMES KID*/ + RTUNI_ALPHA, /* U+0120db: CUNEIFORM SIGN GA2 TIMES KID PLUS LAL*/ + RTUNI_ALPHA, /* U+0120dc: CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN*/ + RTUNI_ALPHA, /* U+0120dd: CUNEIFORM SIGN GA2 TIMES LA*/ + RTUNI_ALPHA, /* U+0120de: CUNEIFORM SIGN GA2 TIMES ME PLUS EN*/ + RTUNI_ALPHA, /* U+0120df: CUNEIFORM SIGN GA2 TIMES MI*/ + RTUNI_ALPHA, /* U+0120e0: CUNEIFORM SIGN GA2 TIMES NUN*/ + RTUNI_ALPHA, /* U+0120e1: CUNEIFORM SIGN GA2 TIMES NUN OVER NUN*/ + RTUNI_ALPHA, /* U+0120e2: CUNEIFORM SIGN GA2 TIMES PA*/ + RTUNI_ALPHA, /* U+0120e3: CUNEIFORM SIGN GA2 TIMES SAL*/ + RTUNI_ALPHA, /* U+0120e4: CUNEIFORM SIGN GA2 TIMES SAR*/ + RTUNI_ALPHA, /* U+0120e5: CUNEIFORM SIGN GA2 TIMES SHE*/ + RTUNI_ALPHA, /* U+0120e6: CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR*/ + RTUNI_ALPHA, /* U+0120e7: CUNEIFORM SIGN GA2 TIMES SHID*/ + RTUNI_ALPHA, /* U+0120e8: CUNEIFORM SIGN GA2 TIMES SUM*/ + RTUNI_ALPHA, /* U+0120e9: CUNEIFORM SIGN GA2 TIMES TAK4*/ + RTUNI_ALPHA, /* U+0120ea: CUNEIFORM SIGN GA2 TIMES U*/ + RTUNI_ALPHA, /* U+0120eb: CUNEIFORM SIGN GA2 TIMES UD*/ + RTUNI_ALPHA, /* U+0120ec: CUNEIFORM SIGN GA2 TIMES UD PLUS DU*/ + RTUNI_ALPHA, /* U+0120ed: CUNEIFORM SIGN GA2 OVER GA2*/ + RTUNI_ALPHA, /* U+0120ee: CUNEIFORM SIGN GABA*/ + RTUNI_ALPHA, /* U+0120ef: CUNEIFORM SIGN GABA CROSSING GABA*/ + RTUNI_ALPHA, /* U+0120f0: CUNEIFORM SIGN GAD*/ + RTUNI_ALPHA, /* U+0120f1: CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR*/ + RTUNI_ALPHA, /* U+0120f2: CUNEIFORM SIGN GAL*/ + RTUNI_ALPHA, /* U+0120f3: CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR*/ + RTUNI_ALPHA, /* U+0120f4: CUNEIFORM SIGN GALAM*/ + RTUNI_ALPHA, /* U+0120f5: CUNEIFORM SIGN GAM*/ + RTUNI_ALPHA, /* U+0120f6: CUNEIFORM SIGN GAN*/ + RTUNI_ALPHA, /* U+0120f7: CUNEIFORM SIGN GAN2*/ + RTUNI_ALPHA, /* U+0120f8: CUNEIFORM SIGN GAN2 TENU*/ + RTUNI_ALPHA, /* U+0120f9: CUNEIFORM SIGN GAN2 OVER GAN2*/ + RTUNI_ALPHA, /* U+0120fa: CUNEIFORM SIGN GAN2 CROSSING GAN2*/ + RTUNI_ALPHA, /* U+0120fb: CUNEIFORM SIGN GAR*/ + RTUNI_ALPHA, /* U+0120fc: CUNEIFORM SIGN GAR3*/ + RTUNI_ALPHA, /* U+0120fd: CUNEIFORM SIGN GASHAN*/ + RTUNI_ALPHA, /* U+0120fe: CUNEIFORM SIGN GESHTIN*/ + RTUNI_ALPHA, /* U+0120ff: CUNEIFORM SIGN GESHTIN TIMES KUR*/ + RTUNI_ALPHA, /* U+012100: CUNEIFORM SIGN GI*/ + RTUNI_ALPHA, /* U+012101: CUNEIFORM SIGN GI TIMES E*/ + RTUNI_ALPHA, /* U+012102: CUNEIFORM SIGN GI TIMES U*/ + RTUNI_ALPHA, /* U+012103: CUNEIFORM SIGN GI CROSSING GI*/ + RTUNI_ALPHA, /* U+012104: CUNEIFORM SIGN GI4*/ + RTUNI_ALPHA, /* U+012105: CUNEIFORM SIGN GI4 OVER GI4*/ + RTUNI_ALPHA, /* U+012106: CUNEIFORM SIGN GI4 CROSSING GI4*/ + RTUNI_ALPHA, /* U+012107: CUNEIFORM SIGN GIDIM*/ + RTUNI_ALPHA, /* U+012108: CUNEIFORM SIGN GIR2*/ + RTUNI_ALPHA, /* U+012109: CUNEIFORM SIGN GIR2 GUNU*/ + RTUNI_ALPHA, /* U+01210a: CUNEIFORM SIGN GIR3*/ + RTUNI_ALPHA, /* U+01210b: CUNEIFORM SIGN GIR3 TIMES A PLUS IGI*/ + RTUNI_ALPHA, /* U+01210c: CUNEIFORM SIGN GIR3 TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+01210d: CUNEIFORM SIGN GIR3 TIMES IGI*/ + RTUNI_ALPHA, /* U+01210e: CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI*/ + RTUNI_ALPHA, /* U+01210f: CUNEIFORM SIGN GIR3 TIMES PA*/ + RTUNI_ALPHA, /* U+012110: CUNEIFORM SIGN GISAL*/ + RTUNI_ALPHA, /* U+012111: CUNEIFORM SIGN GISH*/ + RTUNI_ALPHA, /* U+012112: CUNEIFORM SIGN GISH CROSSING GISH*/ + RTUNI_ALPHA, /* U+012113: CUNEIFORM SIGN GISH TIMES BAD*/ + RTUNI_ALPHA, /* U+012114: CUNEIFORM SIGN GISH TIMES TAK4*/ + RTUNI_ALPHA, /* U+012115: CUNEIFORM SIGN GISH TENU*/ + RTUNI_ALPHA, /* U+012116: CUNEIFORM SIGN GU*/ + RTUNI_ALPHA, /* U+012117: CUNEIFORM SIGN GU CROSSING GU*/ + RTUNI_ALPHA, /* U+012118: CUNEIFORM SIGN GU2*/ + RTUNI_ALPHA, /* U+012119: CUNEIFORM SIGN GU2 TIMES KAK*/ + RTUNI_ALPHA, /* U+01211a: CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+01211b: CUNEIFORM SIGN GU2 TIMES NUN*/ + RTUNI_ALPHA, /* U+01211c: CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2*/ + RTUNI_ALPHA, /* U+01211d: CUNEIFORM SIGN GU2 GUNU*/ + RTUNI_ALPHA, /* U+01211e: CUNEIFORM SIGN GUD*/ + RTUNI_ALPHA, /* U+01211f: CUNEIFORM SIGN GUD TIMES A PLUS KUR*/ + RTUNI_ALPHA, /* U+012120: CUNEIFORM SIGN GUD TIMES KUR*/ + RTUNI_ALPHA, /* U+012121: CUNEIFORM SIGN GUD OVER GUD LUGAL*/ + RTUNI_ALPHA, /* U+012122: CUNEIFORM SIGN GUL*/ + RTUNI_ALPHA, /* U+012123: CUNEIFORM SIGN GUM*/ + RTUNI_ALPHA, /* U+012124: CUNEIFORM SIGN GUM TIMES SHE*/ + RTUNI_ALPHA, /* U+012125: CUNEIFORM SIGN GUR*/ + RTUNI_ALPHA, /* U+012126: CUNEIFORM SIGN GUR7*/ + RTUNI_ALPHA, /* U+012127: CUNEIFORM SIGN GURUN*/ + RTUNI_ALPHA, /* U+012128: CUNEIFORM SIGN GURUSH*/ + RTUNI_ALPHA, /* U+012129: CUNEIFORM SIGN HA*/ + RTUNI_ALPHA, /* U+01212a: CUNEIFORM SIGN HA TENU*/ + RTUNI_ALPHA, /* U+01212b: CUNEIFORM SIGN HA GUNU*/ + RTUNI_ALPHA, /* U+01212c: CUNEIFORM SIGN HAL*/ + RTUNI_ALPHA, /* U+01212d: CUNEIFORM SIGN HI*/ + RTUNI_ALPHA, /* U+01212e: CUNEIFORM SIGN HI TIMES ASH*/ + RTUNI_ALPHA, /* U+01212f: CUNEIFORM SIGN HI TIMES ASH2*/ + RTUNI_ALPHA, /* U+012130: CUNEIFORM SIGN HI TIMES BAD*/ + RTUNI_ALPHA, /* U+012131: CUNEIFORM SIGN HI TIMES DISH*/ + RTUNI_ALPHA, /* U+012132: CUNEIFORM SIGN HI TIMES GAD*/ + RTUNI_ALPHA, /* U+012133: CUNEIFORM SIGN HI TIMES KIN*/ + RTUNI_ALPHA, /* U+012134: CUNEIFORM SIGN HI TIMES NUN*/ + RTUNI_ALPHA, /* U+012135: CUNEIFORM SIGN HI TIMES SHE*/ + RTUNI_ALPHA, /* U+012136: CUNEIFORM SIGN HI TIMES U*/ + RTUNI_ALPHA, /* U+012137: CUNEIFORM SIGN HU*/ + RTUNI_ALPHA, /* U+012138: CUNEIFORM SIGN HUB2*/ + RTUNI_ALPHA, /* U+012139: CUNEIFORM SIGN HUB2 TIMES AN*/ + RTUNI_ALPHA, /* U+01213a: CUNEIFORM SIGN HUB2 TIMES HAL*/ + RTUNI_ALPHA, /* U+01213b: CUNEIFORM SIGN HUB2 TIMES KASKAL*/ + RTUNI_ALPHA, /* U+01213c: CUNEIFORM SIGN HUB2 TIMES LISH*/ + RTUNI_ALPHA, /* U+01213d: CUNEIFORM SIGN HUB2 TIMES UD*/ + RTUNI_ALPHA, /* U+01213e: CUNEIFORM SIGN HUL2*/ + RTUNI_ALPHA, /* U+01213f: CUNEIFORM SIGN I*/ + RTUNI_ALPHA, /* U+012140: CUNEIFORM SIGN I A*/ + RTUNI_ALPHA, /* U+012141: CUNEIFORM SIGN IB*/ + RTUNI_ALPHA, /* U+012142: CUNEIFORM SIGN IDIM*/ + RTUNI_ALPHA, /* U+012143: CUNEIFORM SIGN IDIM OVER IDIM BUR*/ + RTUNI_ALPHA, /* U+012144: CUNEIFORM SIGN IDIM OVER IDIM SQUARED*/ + RTUNI_ALPHA, /* U+012145: CUNEIFORM SIGN IG*/ + RTUNI_ALPHA, /* U+012146: CUNEIFORM SIGN IGI*/ + RTUNI_ALPHA, /* U+012147: CUNEIFORM SIGN IGI DIB*/ + RTUNI_ALPHA, /* U+012148: CUNEIFORM SIGN IGI RI*/ + RTUNI_ALPHA, /* U+012149: CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD*/ + RTUNI_ALPHA, /* U+01214a: CUNEIFORM SIGN IGI GUNU*/ + RTUNI_ALPHA, /* U+01214b: CUNEIFORM SIGN IL*/ + RTUNI_ALPHA, /* U+01214c: CUNEIFORM SIGN IL TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+01214d: CUNEIFORM SIGN IL2*/ + RTUNI_ALPHA, /* U+01214e: CUNEIFORM SIGN IM*/ + RTUNI_ALPHA, /* U+01214f: CUNEIFORM SIGN IM TIMES TAK4*/ + RTUNI_ALPHA, /* U+012150: CUNEIFORM SIGN IM CROSSING IM*/ + RTUNI_ALPHA, /* U+012151: CUNEIFORM SIGN IM OPPOSING IM*/ + RTUNI_ALPHA, /* U+012152: CUNEIFORM SIGN IM SQUARED*/ + RTUNI_ALPHA, /* U+012153: CUNEIFORM SIGN IMIN*/ + RTUNI_ALPHA, /* U+012154: CUNEIFORM SIGN IN*/ + RTUNI_ALPHA, /* U+012155: CUNEIFORM SIGN IR*/ + RTUNI_ALPHA, /* U+012156: CUNEIFORM SIGN ISH*/ + RTUNI_ALPHA, /* U+012157: CUNEIFORM SIGN KA*/ + RTUNI_ALPHA, /* U+012158: CUNEIFORM SIGN KA TIMES A*/ + RTUNI_ALPHA, /* U+012159: CUNEIFORM SIGN KA TIMES AD*/ + RTUNI_ALPHA, /* U+01215a: CUNEIFORM SIGN KA TIMES AD PLUS KU3*/ + RTUNI_ALPHA, /* U+01215b: CUNEIFORM SIGN KA TIMES ASH2*/ + RTUNI_ALPHA, /* U+01215c: CUNEIFORM SIGN KA TIMES BAD*/ + RTUNI_ALPHA, /* U+01215d: CUNEIFORM SIGN KA TIMES BALAG*/ + RTUNI_ALPHA, /* U+01215e: CUNEIFORM SIGN KA TIMES BAR*/ + RTUNI_ALPHA, /* U+01215f: CUNEIFORM SIGN KA TIMES BI*/ + RTUNI_ALPHA, /* U+012160: CUNEIFORM SIGN KA TIMES ERIN2*/ + RTUNI_ALPHA, /* U+012161: CUNEIFORM SIGN KA TIMES ESH2*/ + RTUNI_ALPHA, /* U+012162: CUNEIFORM SIGN KA TIMES GA*/ + RTUNI_ALPHA, /* U+012163: CUNEIFORM SIGN KA TIMES GAL*/ + RTUNI_ALPHA, /* U+012164: CUNEIFORM SIGN KA TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+012165: CUNEIFORM SIGN KA TIMES GAR*/ + RTUNI_ALPHA, /* U+012166: CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A*/ + RTUNI_ALPHA, /* U+012167: CUNEIFORM SIGN KA TIMES GI*/ + RTUNI_ALPHA, /* U+012168: CUNEIFORM SIGN KA TIMES GIR2*/ + RTUNI_ALPHA, /* U+012169: CUNEIFORM SIGN KA TIMES GISH PLUS SAR*/ + RTUNI_ALPHA, /* U+01216a: CUNEIFORM SIGN KA TIMES GISH CROSSING GISH*/ + RTUNI_ALPHA, /* U+01216b: CUNEIFORM SIGN KA TIMES GU*/ + RTUNI_ALPHA, /* U+01216c: CUNEIFORM SIGN KA TIMES GUR7*/ + RTUNI_ALPHA, /* U+01216d: CUNEIFORM SIGN KA TIMES IGI*/ + RTUNI_ALPHA, /* U+01216e: CUNEIFORM SIGN KA TIMES IM*/ + RTUNI_ALPHA, /* U+01216f: CUNEIFORM SIGN KA TIMES KAK*/ + RTUNI_ALPHA, /* U+012170: CUNEIFORM SIGN KA TIMES KI*/ + RTUNI_ALPHA, /* U+012171: CUNEIFORM SIGN KA TIMES KID*/ + RTUNI_ALPHA, /* U+012172: CUNEIFORM SIGN KA TIMES LI*/ + RTUNI_ALPHA, /* U+012173: CUNEIFORM SIGN KA TIMES LU*/ + RTUNI_ALPHA, /* U+012174: CUNEIFORM SIGN KA TIMES ME*/ + RTUNI_ALPHA, /* U+012175: CUNEIFORM SIGN KA TIMES ME PLUS DU*/ + RTUNI_ALPHA, /* U+012176: CUNEIFORM SIGN KA TIMES ME PLUS GI*/ + RTUNI_ALPHA, /* U+012177: CUNEIFORM SIGN KA TIMES ME PLUS TE*/ + RTUNI_ALPHA, /* U+012178: CUNEIFORM SIGN KA TIMES MI*/ + RTUNI_ALPHA, /* U+012179: CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ*/ + RTUNI_ALPHA, /* U+01217a: CUNEIFORM SIGN KA TIMES NE*/ + RTUNI_ALPHA, /* U+01217b: CUNEIFORM SIGN KA TIMES NUN*/ + RTUNI_ALPHA, /* U+01217c: CUNEIFORM SIGN KA TIMES PI*/ + RTUNI_ALPHA, /* U+01217d: CUNEIFORM SIGN KA TIMES RU*/ + RTUNI_ALPHA, /* U+01217e: CUNEIFORM SIGN KA TIMES SA*/ + RTUNI_ALPHA, /* U+01217f: CUNEIFORM SIGN KA TIMES SAR*/ + RTUNI_ALPHA, /* U+012180: CUNEIFORM SIGN KA TIMES SHA*/ + RTUNI_ALPHA, /* U+012181: CUNEIFORM SIGN KA TIMES SHE*/ + RTUNI_ALPHA, /* U+012182: CUNEIFORM SIGN KA TIMES SHID*/ + RTUNI_ALPHA, /* U+012183: CUNEIFORM SIGN KA TIMES SHU*/ + RTUNI_ALPHA, /* U+012184: CUNEIFORM SIGN KA TIMES SIG*/ + RTUNI_ALPHA, /* U+012185: CUNEIFORM SIGN KA TIMES SUHUR*/ + RTUNI_ALPHA, /* U+012186: CUNEIFORM SIGN KA TIMES TAR*/ + RTUNI_ALPHA, /* U+012187: CUNEIFORM SIGN KA TIMES U*/ + RTUNI_ALPHA, /* U+012188: CUNEIFORM SIGN KA TIMES U2*/ + RTUNI_ALPHA, /* U+012189: CUNEIFORM SIGN KA TIMES UD*/ + RTUNI_ALPHA, /* U+01218a: CUNEIFORM SIGN KA TIMES UMUM TIMES PA*/ + RTUNI_ALPHA, /* U+01218b: CUNEIFORM SIGN KA TIMES USH*/ + RTUNI_ALPHA, /* U+01218c: CUNEIFORM SIGN KA TIMES ZI*/ + RTUNI_ALPHA, /* U+01218d: CUNEIFORM SIGN KA2*/ + RTUNI_ALPHA, /* U+01218e: CUNEIFORM SIGN KA2 CROSSING KA2*/ + RTUNI_ALPHA, /* U+01218f: CUNEIFORM SIGN KAB*/ + RTUNI_ALPHA, /* U+012190: CUNEIFORM SIGN KAD2*/ + RTUNI_ALPHA, /* U+012191: CUNEIFORM SIGN KAD3*/ + RTUNI_ALPHA, /* U+012192: CUNEIFORM SIGN KAD4*/ + RTUNI_ALPHA, /* U+012193: CUNEIFORM SIGN KAD5*/ + RTUNI_ALPHA, /* U+012194: CUNEIFORM SIGN KAD5 OVER KAD5*/ + RTUNI_ALPHA, /* U+012195: CUNEIFORM SIGN KAK*/ + RTUNI_ALPHA, /* U+012196: CUNEIFORM SIGN KAK TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+012197: CUNEIFORM SIGN KAL*/ + RTUNI_ALPHA, /* U+012198: CUNEIFORM SIGN KAL TIMES BAD*/ + RTUNI_ALPHA, /* U+012199: CUNEIFORM SIGN KAL CROSSING KAL*/ + RTUNI_ALPHA, /* U+01219a: CUNEIFORM SIGN KAM2*/ + RTUNI_ALPHA, /* U+01219b: CUNEIFORM SIGN KAM4*/ + RTUNI_ALPHA, /* U+01219c: CUNEIFORM SIGN KASKAL*/ + RTUNI_ALPHA, /* U+01219d: CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U*/ + RTUNI_ALPHA, /* U+01219e: CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U*/ + RTUNI_ALPHA, /* U+01219f: CUNEIFORM SIGN KESH2*/ + RTUNI_ALPHA, /* U+0121a0: CUNEIFORM SIGN KI*/ + RTUNI_ALPHA, /* U+0121a1: CUNEIFORM SIGN KI TIMES BAD*/ + RTUNI_ALPHA, /* U+0121a2: CUNEIFORM SIGN KI TIMES U*/ + RTUNI_ALPHA, /* U+0121a3: CUNEIFORM SIGN KI TIMES UD*/ + RTUNI_ALPHA, /* U+0121a4: CUNEIFORM SIGN KID*/ + RTUNI_ALPHA, /* U+0121a5: CUNEIFORM SIGN KIN*/ + RTUNI_ALPHA, /* U+0121a6: CUNEIFORM SIGN KISAL*/ + RTUNI_ALPHA, /* U+0121a7: CUNEIFORM SIGN KISH*/ + RTUNI_ALPHA, /* U+0121a8: CUNEIFORM SIGN KISIM5*/ + RTUNI_ALPHA, /* U+0121a9: CUNEIFORM SIGN KISIM5 OVER KISIM5*/ + RTUNI_ALPHA, /* U+0121aa: CUNEIFORM SIGN KU*/ + RTUNI_ALPHA, /* U+0121ab: CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2*/ + RTUNI_ALPHA, /* U+0121ac: CUNEIFORM SIGN KU3*/ + RTUNI_ALPHA, /* U+0121ad: CUNEIFORM SIGN KU4*/ + RTUNI_ALPHA, /* U+0121ae: CUNEIFORM SIGN KU4 VARIANT FORM*/ + RTUNI_ALPHA, /* U+0121af: CUNEIFORM SIGN KU7*/ + RTUNI_ALPHA, /* U+0121b0: CUNEIFORM SIGN KUL*/ + RTUNI_ALPHA, /* U+0121b1: CUNEIFORM SIGN KUL GUNU*/ + RTUNI_ALPHA, /* U+0121b2: CUNEIFORM SIGN KUN*/ + RTUNI_ALPHA, /* U+0121b3: CUNEIFORM SIGN KUR*/ + RTUNI_ALPHA, /* U+0121b4: CUNEIFORM SIGN KUR OPPOSING KUR*/ + RTUNI_ALPHA, /* U+0121b5: CUNEIFORM SIGN KUSHU2*/ + RTUNI_ALPHA, /* U+0121b6: CUNEIFORM SIGN KWU318*/ + RTUNI_ALPHA, /* U+0121b7: CUNEIFORM SIGN LA*/ + RTUNI_ALPHA, /* U+0121b8: CUNEIFORM SIGN LAGAB*/ + RTUNI_ALPHA, /* U+0121b9: CUNEIFORM SIGN LAGAB TIMES A*/ + RTUNI_ALPHA, /* U+0121ba: CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA*/ + RTUNI_ALPHA, /* U+0121bb: CUNEIFORM SIGN LAGAB TIMES A PLUS GAR*/ + RTUNI_ALPHA, /* U+0121bc: CUNEIFORM SIGN LAGAB TIMES A PLUS LAL*/ + RTUNI_ALPHA, /* U+0121bd: CUNEIFORM SIGN LAGAB TIMES AL*/ + RTUNI_ALPHA, /* U+0121be: CUNEIFORM SIGN LAGAB TIMES AN*/ + RTUNI_ALPHA, /* U+0121bf: CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU*/ + RTUNI_ALPHA, /* U+0121c0: CUNEIFORM SIGN LAGAB TIMES BAD*/ + RTUNI_ALPHA, /* U+0121c1: CUNEIFORM SIGN LAGAB TIMES BI*/ + RTUNI_ALPHA, /* U+0121c2: CUNEIFORM SIGN LAGAB TIMES DAR*/ + RTUNI_ALPHA, /* U+0121c3: CUNEIFORM SIGN LAGAB TIMES EN*/ + RTUNI_ALPHA, /* U+0121c4: CUNEIFORM SIGN LAGAB TIMES GA*/ + RTUNI_ALPHA, /* U+0121c5: CUNEIFORM SIGN LAGAB TIMES GAR*/ + RTUNI_ALPHA, /* U+0121c6: CUNEIFORM SIGN LAGAB TIMES GUD*/ + RTUNI_ALPHA, /* U+0121c7: CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD*/ + RTUNI_ALPHA, /* U+0121c8: CUNEIFORM SIGN LAGAB TIMES HA*/ + RTUNI_ALPHA, /* U+0121c9: CUNEIFORM SIGN LAGAB TIMES HAL*/ + RTUNI_ALPHA, /* U+0121ca: CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN*/ + RTUNI_ALPHA, /* U+0121cb: CUNEIFORM SIGN LAGAB TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+0121cc: CUNEIFORM SIGN LAGAB TIMES IM*/ + RTUNI_ALPHA, /* U+0121cd: CUNEIFORM SIGN LAGAB TIMES IM PLUS HA*/ + RTUNI_ALPHA, /* U+0121ce: CUNEIFORM SIGN LAGAB TIMES IM PLUS LU*/ + RTUNI_ALPHA, /* U+0121cf: CUNEIFORM SIGN LAGAB TIMES KI*/ + RTUNI_ALPHA, /* U+0121d0: CUNEIFORM SIGN LAGAB TIMES KIN*/ + RTUNI_ALPHA, /* U+0121d1: CUNEIFORM SIGN LAGAB TIMES KU3*/ + RTUNI_ALPHA, /* U+0121d2: CUNEIFORM SIGN LAGAB TIMES KUL*/ + RTUNI_ALPHA, /* U+0121d3: CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A*/ + RTUNI_ALPHA, /* U+0121d4: CUNEIFORM SIGN LAGAB TIMES LAGAB*/ + RTUNI_ALPHA, /* U+0121d5: CUNEIFORM SIGN LAGAB TIMES LISH*/ + RTUNI_ALPHA, /* U+0121d6: CUNEIFORM SIGN LAGAB TIMES LU*/ + RTUNI_ALPHA, /* U+0121d7: CUNEIFORM SIGN LAGAB TIMES LUL*/ + RTUNI_ALPHA, /* U+0121d8: CUNEIFORM SIGN LAGAB TIMES ME*/ + RTUNI_ALPHA, /* U+0121d9: CUNEIFORM SIGN LAGAB TIMES ME PLUS EN*/ + RTUNI_ALPHA, /* U+0121da: CUNEIFORM SIGN LAGAB TIMES MUSH*/ + RTUNI_ALPHA, /* U+0121db: CUNEIFORM SIGN LAGAB TIMES NE*/ + RTUNI_ALPHA, /* U+0121dc: CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM*/ + RTUNI_ALPHA, /* U+0121dd: CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2*/ + RTUNI_ALPHA, /* U+0121de: CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU*/ + RTUNI_ALPHA, /* U+0121df: CUNEIFORM SIGN LAGAB TIMES SHU2*/ + RTUNI_ALPHA, /* U+0121e0: CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2*/ + RTUNI_ALPHA, /* U+0121e1: CUNEIFORM SIGN LAGAB TIMES SUM*/ + RTUNI_ALPHA, /* U+0121e2: CUNEIFORM SIGN LAGAB TIMES TAG*/ + RTUNI_ALPHA, /* U+0121e3: CUNEIFORM SIGN LAGAB TIMES TAK4*/ + RTUNI_ALPHA, /* U+0121e4: CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA*/ + RTUNI_ALPHA, /* U+0121e5: CUNEIFORM SIGN LAGAB TIMES U*/ + RTUNI_ALPHA, /* U+0121e6: CUNEIFORM SIGN LAGAB TIMES U PLUS A*/ + RTUNI_ALPHA, /* U+0121e7: CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U*/ + RTUNI_ALPHA, /* U+0121e8: CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH*/ + RTUNI_ALPHA, /* U+0121e9: CUNEIFORM SIGN LAGAB TIMES UD*/ + RTUNI_ALPHA, /* U+0121ea: CUNEIFORM SIGN LAGAB TIMES USH*/ + RTUNI_ALPHA, /* U+0121eb: CUNEIFORM SIGN LAGAB SQUARED*/ + RTUNI_ALPHA, /* U+0121ec: CUNEIFORM SIGN LAGAR*/ + RTUNI_ALPHA, /* U+0121ed: CUNEIFORM SIGN LAGAR TIMES SHE*/ + RTUNI_ALPHA, /* U+0121ee: CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM*/ + RTUNI_ALPHA, /* U+0121ef: CUNEIFORM SIGN LAGAR GUNU*/ + RTUNI_ALPHA, /* U+0121f0: CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE*/ + RTUNI_ALPHA, /* U+0121f1: CUNEIFORM SIGN LAHSHU*/ + RTUNI_ALPHA, /* U+0121f2: CUNEIFORM SIGN LAL*/ + RTUNI_ALPHA, /* U+0121f3: CUNEIFORM SIGN LAL TIMES LAL*/ + RTUNI_ALPHA, /* U+0121f4: CUNEIFORM SIGN LAM*/ + RTUNI_ALPHA, /* U+0121f5: CUNEIFORM SIGN LAM TIMES KUR*/ + RTUNI_ALPHA, /* U+0121f6: CUNEIFORM SIGN LAM TIMES KUR PLUS RU*/ + RTUNI_ALPHA, /* U+0121f7: CUNEIFORM SIGN LI*/ + RTUNI_ALPHA, /* U+0121f8: CUNEIFORM SIGN LIL*/ + RTUNI_ALPHA, /* U+0121f9: CUNEIFORM SIGN LIMMU2*/ + RTUNI_ALPHA, /* U+0121fa: CUNEIFORM SIGN LISH*/ + RTUNI_ALPHA, /* U+0121fb: CUNEIFORM SIGN LU*/ + RTUNI_ALPHA, /* U+0121fc: CUNEIFORM SIGN LU TIMES BAD*/ + RTUNI_ALPHA, /* U+0121fd: CUNEIFORM SIGN LU2*/ + RTUNI_ALPHA, /* U+0121fe: CUNEIFORM SIGN LU2 TIMES AL*/ + RTUNI_ALPHA, /* U+0121ff: CUNEIFORM SIGN LU2 TIMES BAD*/ + RTUNI_ALPHA, /* U+012200: CUNEIFORM SIGN LU2 TIMES ESH2*/ + RTUNI_ALPHA, /* U+012201: CUNEIFORM SIGN LU2 TIMES ESH2 TENU*/ + RTUNI_ALPHA, /* U+012202: CUNEIFORM SIGN LU2 TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+012203: CUNEIFORM SIGN LU2 TIMES HI TIMES BAD*/ + RTUNI_ALPHA, /* U+012204: CUNEIFORM SIGN LU2 TIMES IM*/ + RTUNI_ALPHA, /* U+012205: CUNEIFORM SIGN LU2 TIMES KAD2*/ + RTUNI_ALPHA, /* U+012206: CUNEIFORM SIGN LU2 TIMES KAD3*/ + RTUNI_ALPHA, /* U+012207: CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH*/ + RTUNI_ALPHA, /* U+012208: CUNEIFORM SIGN LU2 TIMES KI*/ + RTUNI_ALPHA, /* U+012209: CUNEIFORM SIGN LU2 TIMES LA PLUS ASH*/ + RTUNI_ALPHA, /* U+01220a: CUNEIFORM SIGN LU2 TIMES LAGAB*/ + RTUNI_ALPHA, /* U+01220b: CUNEIFORM SIGN LU2 TIMES ME PLUS EN*/ + RTUNI_ALPHA, /* U+01220c: CUNEIFORM SIGN LU2 TIMES NE*/ + RTUNI_ALPHA, /* U+01220d: CUNEIFORM SIGN LU2 TIMES NU*/ + RTUNI_ALPHA, /* U+01220e: CUNEIFORM SIGN LU2 TIMES SI PLUS ASH*/ + RTUNI_ALPHA, /* U+01220f: CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU*/ + RTUNI_ALPHA, /* U+012210: CUNEIFORM SIGN LU2 TIMES TUG2*/ + RTUNI_ALPHA, /* U+012211: CUNEIFORM SIGN LU2 TENU*/ + RTUNI_ALPHA, /* U+012212: CUNEIFORM SIGN LU2 CROSSING LU2*/ + RTUNI_ALPHA, /* U+012213: CUNEIFORM SIGN LU2 OPPOSING LU2*/ + RTUNI_ALPHA, /* U+012214: CUNEIFORM SIGN LU2 SQUARED*/ + RTUNI_ALPHA, /* U+012215: CUNEIFORM SIGN LU2 SHESHIG*/ + RTUNI_ALPHA, /* U+012216: CUNEIFORM SIGN LU3*/ + RTUNI_ALPHA, /* U+012217: CUNEIFORM SIGN LUGAL*/ + RTUNI_ALPHA, /* U+012218: CUNEIFORM SIGN LUGAL OVER LUGAL*/ + RTUNI_ALPHA, /* U+012219: CUNEIFORM SIGN LUGAL OPPOSING LUGAL*/ + RTUNI_ALPHA, /* U+01221a: CUNEIFORM SIGN LUGAL SHESHIG*/ + RTUNI_ALPHA, /* U+01221b: CUNEIFORM SIGN LUH*/ + RTUNI_ALPHA, /* U+01221c: CUNEIFORM SIGN LUL*/ + RTUNI_ALPHA, /* U+01221d: CUNEIFORM SIGN LUM*/ + RTUNI_ALPHA, /* U+01221e: CUNEIFORM SIGN LUM OVER LUM*/ + RTUNI_ALPHA, /* U+01221f: CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR*/ + RTUNI_ALPHA, /* U+012220: CUNEIFORM SIGN MA*/ + RTUNI_ALPHA, /* U+012221: CUNEIFORM SIGN MA TIMES TAK4*/ + RTUNI_ALPHA, /* U+012222: CUNEIFORM SIGN MA GUNU*/ + RTUNI_ALPHA, /* U+012223: CUNEIFORM SIGN MA2*/ + RTUNI_ALPHA, /* U+012224: CUNEIFORM SIGN MAH*/ + RTUNI_ALPHA, /* U+012225: CUNEIFORM SIGN MAR*/ + RTUNI_ALPHA, /* U+012226: CUNEIFORM SIGN MASH*/ + RTUNI_ALPHA, /* U+012227: CUNEIFORM SIGN MASH2*/ + RTUNI_ALPHA, /* U+012228: CUNEIFORM SIGN ME*/ + RTUNI_ALPHA, /* U+012229: CUNEIFORM SIGN MES*/ + RTUNI_ALPHA, /* U+01222a: CUNEIFORM SIGN MI*/ + RTUNI_ALPHA, /* U+01222b: CUNEIFORM SIGN MIN*/ + RTUNI_ALPHA, /* U+01222c: CUNEIFORM SIGN MU*/ + RTUNI_ALPHA, /* U+01222d: CUNEIFORM SIGN MU OVER MU*/ + RTUNI_ALPHA, /* U+01222e: CUNEIFORM SIGN MUG*/ + RTUNI_ALPHA, /* U+01222f: CUNEIFORM SIGN MUG GUNU*/ + RTUNI_ALPHA, /* U+012230: CUNEIFORM SIGN MUNSUB*/ + RTUNI_ALPHA, /* U+012231: CUNEIFORM SIGN MURGU2*/ + RTUNI_ALPHA, /* U+012232: CUNEIFORM SIGN MUSH*/ + RTUNI_ALPHA, /* U+012233: CUNEIFORM SIGN MUSH TIMES A*/ + RTUNI_ALPHA, /* U+012234: CUNEIFORM SIGN MUSH TIMES KUR*/ + RTUNI_ALPHA, /* U+012235: CUNEIFORM SIGN MUSH TIMES ZA*/ + RTUNI_ALPHA, /* U+012236: CUNEIFORM SIGN MUSH OVER MUSH*/ + RTUNI_ALPHA, /* U+012237: CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA*/ + RTUNI_ALPHA, /* U+012238: CUNEIFORM SIGN MUSH CROSSING MUSH*/ + RTUNI_ALPHA, /* U+012239: CUNEIFORM SIGN MUSH3*/ + RTUNI_ALPHA, /* U+01223a: CUNEIFORM SIGN MUSH3 TIMES A*/ + RTUNI_ALPHA, /* U+01223b: CUNEIFORM SIGN MUSH3 TIMES A PLUS DI*/ + RTUNI_ALPHA, /* U+01223c: CUNEIFORM SIGN MUSH3 TIMES DI*/ + RTUNI_ALPHA, /* U+01223d: CUNEIFORM SIGN MUSH3 GUNU*/ + RTUNI_ALPHA, /* U+01223e: CUNEIFORM SIGN NA*/ + RTUNI_ALPHA, /* U+01223f: CUNEIFORM SIGN NA2*/ + RTUNI_ALPHA, /* U+012240: CUNEIFORM SIGN NAGA*/ + RTUNI_ALPHA, /* U+012241: CUNEIFORM SIGN NAGA INVERTED*/ + RTUNI_ALPHA, /* U+012242: CUNEIFORM SIGN NAGA TIMES SHU TENU*/ + RTUNI_ALPHA, /* U+012243: CUNEIFORM SIGN NAGA OPPOSING NAGA*/ + RTUNI_ALPHA, /* U+012244: CUNEIFORM SIGN NAGAR*/ + RTUNI_ALPHA, /* U+012245: CUNEIFORM SIGN NAM NUTILLU*/ + RTUNI_ALPHA, /* U+012246: CUNEIFORM SIGN NAM*/ + RTUNI_ALPHA, /* U+012247: CUNEIFORM SIGN NAM2*/ + RTUNI_ALPHA, /* U+012248: CUNEIFORM SIGN NE*/ + RTUNI_ALPHA, /* U+012249: CUNEIFORM SIGN NE TIMES A*/ + RTUNI_ALPHA, /* U+01224a: CUNEIFORM SIGN NE TIMES UD*/ + RTUNI_ALPHA, /* U+01224b: CUNEIFORM SIGN NE SHESHIG*/ + RTUNI_ALPHA, /* U+01224c: CUNEIFORM SIGN NI*/ + RTUNI_ALPHA, /* U+01224d: CUNEIFORM SIGN NI TIMES E*/ + RTUNI_ALPHA, /* U+01224e: CUNEIFORM SIGN NI2*/ + RTUNI_ALPHA, /* U+01224f: CUNEIFORM SIGN NIM*/ + RTUNI_ALPHA, /* U+012250: CUNEIFORM SIGN NIM TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+012251: CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU*/ + RTUNI_ALPHA, /* U+012252: CUNEIFORM SIGN NINDA2*/ + RTUNI_ALPHA, /* U+012253: CUNEIFORM SIGN NINDA2 TIMES AN*/ + RTUNI_ALPHA, /* U+012254: CUNEIFORM SIGN NINDA2 TIMES ASH*/ + RTUNI_ALPHA, /* U+012255: CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH*/ + RTUNI_ALPHA, /* U+012256: CUNEIFORM SIGN NINDA2 TIMES GUD*/ + RTUNI_ALPHA, /* U+012257: CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU*/ + RTUNI_ALPHA, /* U+012258: CUNEIFORM SIGN NINDA2 TIMES NE*/ + RTUNI_ALPHA, /* U+012259: CUNEIFORM SIGN NINDA2 TIMES NUN*/ + RTUNI_ALPHA, /* U+01225a: CUNEIFORM SIGN NINDA2 TIMES SHE*/ + RTUNI_ALPHA, /* U+01225b: CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN*/ + RTUNI_ALPHA, /* U+01225c: CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH*/ + RTUNI_ALPHA, /* U+01225d: CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH*/ + RTUNI_ALPHA, /* U+01225e: CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH*/ + RTUNI_ALPHA, /* U+01225f: CUNEIFORM SIGN NINDA2 TIMES USH*/ + RTUNI_ALPHA, /* U+012260: CUNEIFORM SIGN NISAG*/ + RTUNI_ALPHA, /* U+012261: CUNEIFORM SIGN NU*/ + RTUNI_ALPHA, /* U+012262: CUNEIFORM SIGN NU11*/ + RTUNI_ALPHA, /* U+012263: CUNEIFORM SIGN NUN*/ + RTUNI_ALPHA, /* U+012264: CUNEIFORM SIGN NUN LAGAR TIMES GAR*/ + RTUNI_ALPHA, /* U+012265: CUNEIFORM SIGN NUN LAGAR TIMES MASH*/ + RTUNI_ALPHA, /* U+012266: CUNEIFORM SIGN NUN LAGAR TIMES SAL*/ + RTUNI_ALPHA, /* U+012267: CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL*/ + RTUNI_ALPHA, /* U+012268: CUNEIFORM SIGN NUN LAGAR TIMES USH*/ + RTUNI_ALPHA, /* U+012269: CUNEIFORM SIGN NUN TENU*/ + RTUNI_ALPHA, /* U+01226a: CUNEIFORM SIGN NUN OVER NUN*/ + RTUNI_ALPHA, /* U+01226b: CUNEIFORM SIGN NUN CROSSING NUN*/ + RTUNI_ALPHA, /* U+01226c: CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR*/ + RTUNI_ALPHA, /* U+01226d: CUNEIFORM SIGN NUNUZ*/ + RTUNI_ALPHA, /* U+01226e: CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB*/ + RTUNI_ALPHA, /* U+01226f: CUNEIFORM SIGN NUNUZ AB2 TIMES BI*/ + RTUNI_ALPHA, /* U+012270: CUNEIFORM SIGN NUNUZ AB2 TIMES DUG*/ + RTUNI_ALPHA, /* U+012271: CUNEIFORM SIGN NUNUZ AB2 TIMES GUD*/ + RTUNI_ALPHA, /* U+012272: CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+012273: CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3*/ + RTUNI_ALPHA, /* U+012274: CUNEIFORM SIGN NUNUZ AB2 TIMES LA*/ + RTUNI_ALPHA, /* U+012275: CUNEIFORM SIGN NUNUZ AB2 TIMES NE*/ + RTUNI_ALPHA, /* U+012276: CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3*/ + RTUNI_ALPHA, /* U+012277: CUNEIFORM SIGN NUNUZ AB2 TIMES U2*/ + RTUNI_ALPHA, /* U+012278: CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI*/ + RTUNI_ALPHA, /* U+012279: CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U*/ + RTUNI_ALPHA, /* U+01227a: CUNEIFORM SIGN PA*/ + RTUNI_ALPHA, /* U+01227b: CUNEIFORM SIGN PAD*/ + RTUNI_ALPHA, /* U+01227c: CUNEIFORM SIGN PAN*/ + RTUNI_ALPHA, /* U+01227d: CUNEIFORM SIGN PAP*/ + RTUNI_ALPHA, /* U+01227e: CUNEIFORM SIGN PESH2*/ + RTUNI_ALPHA, /* U+01227f: CUNEIFORM SIGN PI*/ + RTUNI_ALPHA, /* U+012280: CUNEIFORM SIGN PI TIMES A*/ + RTUNI_ALPHA, /* U+012281: CUNEIFORM SIGN PI TIMES AB*/ + RTUNI_ALPHA, /* U+012282: CUNEIFORM SIGN PI TIMES BI*/ + RTUNI_ALPHA, /* U+012283: CUNEIFORM SIGN PI TIMES BU*/ + RTUNI_ALPHA, /* U+012284: CUNEIFORM SIGN PI TIMES E*/ + RTUNI_ALPHA, /* U+012285: CUNEIFORM SIGN PI TIMES I*/ + RTUNI_ALPHA, /* U+012286: CUNEIFORM SIGN PI TIMES IB*/ + RTUNI_ALPHA, /* U+012287: CUNEIFORM SIGN PI TIMES U*/ + RTUNI_ALPHA, /* U+012288: CUNEIFORM SIGN PI TIMES U2*/ + RTUNI_ALPHA, /* U+012289: CUNEIFORM SIGN PI CROSSING PI*/ + RTUNI_ALPHA, /* U+01228a: CUNEIFORM SIGN PIRIG*/ + RTUNI_ALPHA, /* U+01228b: CUNEIFORM SIGN PIRIG TIMES KAL*/ + RTUNI_ALPHA, /* U+01228c: CUNEIFORM SIGN PIRIG TIMES UD*/ + RTUNI_ALPHA, /* U+01228d: CUNEIFORM SIGN PIRIG TIMES ZA*/ + RTUNI_ALPHA, /* U+01228e: CUNEIFORM SIGN PIRIG OPPOSING PIRIG*/ + RTUNI_ALPHA, /* U+01228f: CUNEIFORM SIGN RA*/ + RTUNI_ALPHA, /* U+012290: CUNEIFORM SIGN RAB*/ + RTUNI_ALPHA, /* U+012291: CUNEIFORM SIGN RI*/ + RTUNI_ALPHA, /* U+012292: CUNEIFORM SIGN RU*/ + RTUNI_ALPHA, /* U+012293: CUNEIFORM SIGN SA*/ + RTUNI_ALPHA, /* U+012294: CUNEIFORM SIGN SAG NUTILLU*/ + RTUNI_ALPHA, /* U+012295: CUNEIFORM SIGN SAG*/ + RTUNI_ALPHA, /* U+012296: CUNEIFORM SIGN SAG TIMES A*/ + RTUNI_ALPHA, /* U+012297: CUNEIFORM SIGN SAG TIMES DU*/ + RTUNI_ALPHA, /* U+012298: CUNEIFORM SIGN SAG TIMES DUB*/ + RTUNI_ALPHA, /* U+012299: CUNEIFORM SIGN SAG TIMES HA*/ + RTUNI_ALPHA, /* U+01229a: CUNEIFORM SIGN SAG TIMES KAK*/ + RTUNI_ALPHA, /* U+01229b: CUNEIFORM SIGN SAG TIMES KUR*/ + RTUNI_ALPHA, /* U+01229c: CUNEIFORM SIGN SAG TIMES LUM*/ + RTUNI_ALPHA, /* U+01229d: CUNEIFORM SIGN SAG TIMES MI*/ + RTUNI_ALPHA, /* U+01229e: CUNEIFORM SIGN SAG TIMES NUN*/ + RTUNI_ALPHA, /* U+01229f: CUNEIFORM SIGN SAG TIMES SAL*/ + RTUNI_ALPHA, /* U+0122a0: CUNEIFORM SIGN SAG TIMES SHID*/ + RTUNI_ALPHA, /* U+0122a1: CUNEIFORM SIGN SAG TIMES TAB*/ + RTUNI_ALPHA, /* U+0122a2: CUNEIFORM SIGN SAG TIMES U2*/ + RTUNI_ALPHA, /* U+0122a3: CUNEIFORM SIGN SAG TIMES UB*/ + RTUNI_ALPHA, /* U+0122a4: CUNEIFORM SIGN SAG TIMES UM*/ + RTUNI_ALPHA, /* U+0122a5: CUNEIFORM SIGN SAG TIMES UR*/ + RTUNI_ALPHA, /* U+0122a6: CUNEIFORM SIGN SAG TIMES USH*/ + RTUNI_ALPHA, /* U+0122a7: CUNEIFORM SIGN SAG OVER SAG*/ + RTUNI_ALPHA, /* U+0122a8: CUNEIFORM SIGN SAG GUNU*/ + RTUNI_ALPHA, /* U+0122a9: CUNEIFORM SIGN SAL*/ + RTUNI_ALPHA, /* U+0122aa: CUNEIFORM SIGN SAL LAGAB TIMES ASH2*/ + RTUNI_ALPHA, /* U+0122ab: CUNEIFORM SIGN SANGA2*/ + RTUNI_ALPHA, /* U+0122ac: CUNEIFORM SIGN SAR*/ + RTUNI_ALPHA, /* U+0122ad: CUNEIFORM SIGN SHA*/ + RTUNI_ALPHA, /* U+0122ae: CUNEIFORM SIGN SHA3*/ + RTUNI_ALPHA, /* U+0122af: CUNEIFORM SIGN SHA3 TIMES A*/ + RTUNI_ALPHA, /* U+0122b0: CUNEIFORM SIGN SHA3 TIMES BAD*/ + RTUNI_ALPHA, /* U+0122b1: CUNEIFORM SIGN SHA3 TIMES GISH*/ + RTUNI_ALPHA, /* U+0122b2: CUNEIFORM SIGN SHA3 TIMES NE*/ + RTUNI_ALPHA, /* U+0122b3: CUNEIFORM SIGN SHA3 TIMES SHU2*/ + RTUNI_ALPHA, /* U+0122b4: CUNEIFORM SIGN SHA3 TIMES TUR*/ + RTUNI_ALPHA, /* U+0122b5: CUNEIFORM SIGN SHA3 TIMES U*/ + RTUNI_ALPHA, /* U+0122b6: CUNEIFORM SIGN SHA3 TIMES U PLUS A*/ + RTUNI_ALPHA, /* U+0122b7: CUNEIFORM SIGN SHA6*/ + RTUNI_ALPHA, /* U+0122b8: CUNEIFORM SIGN SHAB6*/ + RTUNI_ALPHA, /* U+0122b9: CUNEIFORM SIGN SHAR2*/ + RTUNI_ALPHA, /* U+0122ba: CUNEIFORM SIGN SHE*/ + RTUNI_ALPHA, /* U+0122bb: CUNEIFORM SIGN SHE HU*/ + RTUNI_ALPHA, /* U+0122bc: CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR*/ + RTUNI_ALPHA, /* U+0122bd: CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR*/ + RTUNI_ALPHA, /* U+0122be: CUNEIFORM SIGN SHEG9*/ + RTUNI_ALPHA, /* U+0122bf: CUNEIFORM SIGN SHEN*/ + RTUNI_ALPHA, /* U+0122c0: CUNEIFORM SIGN SHESH*/ + RTUNI_ALPHA, /* U+0122c1: CUNEIFORM SIGN SHESH2*/ + RTUNI_ALPHA, /* U+0122c2: CUNEIFORM SIGN SHESHLAM*/ + RTUNI_ALPHA, /* U+0122c3: CUNEIFORM SIGN SHID*/ + RTUNI_ALPHA, /* U+0122c4: CUNEIFORM SIGN SHID TIMES A*/ + RTUNI_ALPHA, /* U+0122c5: CUNEIFORM SIGN SHID TIMES IM*/ + RTUNI_ALPHA, /* U+0122c6: CUNEIFORM SIGN SHIM*/ + RTUNI_ALPHA, /* U+0122c7: CUNEIFORM SIGN SHIM TIMES A*/ + RTUNI_ALPHA, /* U+0122c8: CUNEIFORM SIGN SHIM TIMES BAL*/ + RTUNI_ALPHA, /* U+0122c9: CUNEIFORM SIGN SHIM TIMES BULUG*/ + RTUNI_ALPHA, /* U+0122ca: CUNEIFORM SIGN SHIM TIMES DIN*/ + RTUNI_ALPHA, /* U+0122cb: CUNEIFORM SIGN SHIM TIMES GAR*/ + RTUNI_ALPHA, /* U+0122cc: CUNEIFORM SIGN SHIM TIMES IGI*/ + RTUNI_ALPHA, /* U+0122cd: CUNEIFORM SIGN SHIM TIMES IGI GUNU*/ + RTUNI_ALPHA, /* U+0122ce: CUNEIFORM SIGN SHIM TIMES KUSHU2*/ + RTUNI_ALPHA, /* U+0122cf: CUNEIFORM SIGN SHIM TIMES LUL*/ + RTUNI_ALPHA, /* U+0122d0: CUNEIFORM SIGN SHIM TIMES MUG*/ + RTUNI_ALPHA, /* U+0122d1: CUNEIFORM SIGN SHIM TIMES SAL*/ + RTUNI_ALPHA, /* U+0122d2: CUNEIFORM SIGN SHINIG*/ + RTUNI_ALPHA, /* U+0122d3: CUNEIFORM SIGN SHIR*/ + RTUNI_ALPHA, /* U+0122d4: CUNEIFORM SIGN SHIR TENU*/ + RTUNI_ALPHA, /* U+0122d5: CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR*/ + RTUNI_ALPHA, /* U+0122d6: CUNEIFORM SIGN SHITA*/ + RTUNI_ALPHA, /* U+0122d7: CUNEIFORM SIGN SHU*/ + RTUNI_ALPHA, /* U+0122d8: CUNEIFORM SIGN SHU OVER INVERTED SHU*/ + RTUNI_ALPHA, /* U+0122d9: CUNEIFORM SIGN SHU2*/ + RTUNI_ALPHA, /* U+0122da: CUNEIFORM SIGN SHUBUR*/ + RTUNI_ALPHA, /* U+0122db: CUNEIFORM SIGN SI*/ + RTUNI_ALPHA, /* U+0122dc: CUNEIFORM SIGN SI GUNU*/ + RTUNI_ALPHA, /* U+0122dd: CUNEIFORM SIGN SIG*/ + RTUNI_ALPHA, /* U+0122de: CUNEIFORM SIGN SIG4*/ + RTUNI_ALPHA, /* U+0122df: CUNEIFORM SIGN SIG4 OVER SIG4 SHU2*/ + RTUNI_ALPHA, /* U+0122e0: CUNEIFORM SIGN SIK2*/ + RTUNI_ALPHA, /* U+0122e1: CUNEIFORM SIGN SILA3*/ + RTUNI_ALPHA, /* U+0122e2: CUNEIFORM SIGN SU*/ + RTUNI_ALPHA, /* U+0122e3: CUNEIFORM SIGN SU OVER SU*/ + RTUNI_ALPHA, /* U+0122e4: CUNEIFORM SIGN SUD*/ + RTUNI_ALPHA, /* U+0122e5: CUNEIFORM SIGN SUD2*/ + RTUNI_ALPHA, /* U+0122e6: CUNEIFORM SIGN SUHUR*/ + RTUNI_ALPHA, /* U+0122e7: CUNEIFORM SIGN SUM*/ + RTUNI_ALPHA, /* U+0122e8: CUNEIFORM SIGN SUMASH*/ + RTUNI_ALPHA, /* U+0122e9: CUNEIFORM SIGN SUR*/ + RTUNI_ALPHA, /* U+0122ea: CUNEIFORM SIGN SUR9*/ + RTUNI_ALPHA, /* U+0122eb: CUNEIFORM SIGN TA*/ + RTUNI_ALPHA, /* U+0122ec: CUNEIFORM SIGN TA ASTERISK*/ + RTUNI_ALPHA, /* U+0122ed: CUNEIFORM SIGN TA TIMES HI*/ + RTUNI_ALPHA, /* U+0122ee: CUNEIFORM SIGN TA TIMES MI*/ + RTUNI_ALPHA, /* U+0122ef: CUNEIFORM SIGN TA GUNU*/ + RTUNI_ALPHA, /* U+0122f0: CUNEIFORM SIGN TAB*/ + RTUNI_ALPHA, /* U+0122f1: CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH*/ + RTUNI_ALPHA, /* U+0122f2: CUNEIFORM SIGN TAB SQUARED*/ + RTUNI_ALPHA, /* U+0122f3: CUNEIFORM SIGN TAG*/ + RTUNI_ALPHA, /* U+0122f4: CUNEIFORM SIGN TAG TIMES BI*/ + RTUNI_ALPHA, /* U+0122f5: CUNEIFORM SIGN TAG TIMES GUD*/ + RTUNI_ALPHA, /* U+0122f6: CUNEIFORM SIGN TAG TIMES SHE*/ + RTUNI_ALPHA, /* U+0122f7: CUNEIFORM SIGN TAG TIMES SHU*/ + RTUNI_ALPHA, /* U+0122f8: CUNEIFORM SIGN TAG TIMES TUG2*/ + RTUNI_ALPHA, /* U+0122f9: CUNEIFORM SIGN TAG TIMES UD*/ + RTUNI_ALPHA, /* U+0122fa: CUNEIFORM SIGN TAK4*/ + RTUNI_ALPHA, /* U+0122fb: CUNEIFORM SIGN TAR*/ + RTUNI_ALPHA, /* U+0122fc: CUNEIFORM SIGN TE*/ + RTUNI_ALPHA, /* U+0122fd: CUNEIFORM SIGN TE GUNU*/ + RTUNI_ALPHA, /* U+0122fe: CUNEIFORM SIGN TI*/ + RTUNI_ALPHA, /* U+0122ff: CUNEIFORM SIGN TI TENU*/ + RTUNI_ALPHA, /* U+012300: CUNEIFORM SIGN TIL*/ + RTUNI_ALPHA, /* U+012301: CUNEIFORM SIGN TIR*/ + RTUNI_ALPHA, /* U+012302: CUNEIFORM SIGN TIR TIMES TAK4*/ + RTUNI_ALPHA, /* U+012303: CUNEIFORM SIGN TIR OVER TIR*/ + RTUNI_ALPHA, /* U+012304: CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR*/ + RTUNI_ALPHA, /* U+012305: CUNEIFORM SIGN TU*/ + RTUNI_ALPHA, /* U+012306: CUNEIFORM SIGN TUG2*/ + RTUNI_ALPHA, /* U+012307: CUNEIFORM SIGN TUK*/ + RTUNI_ALPHA, /* U+012308: CUNEIFORM SIGN TUM*/ + RTUNI_ALPHA, /* U+012309: CUNEIFORM SIGN TUR*/ + RTUNI_ALPHA, /* U+01230a: CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA*/ + RTUNI_ALPHA, /* U+01230b: CUNEIFORM SIGN U*/ + RTUNI_ALPHA, /* U+01230c: CUNEIFORM SIGN U GUD*/ + RTUNI_ALPHA, /* U+01230d: CUNEIFORM SIGN U U U*/ + RTUNI_ALPHA, /* U+01230e: CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR*/ + RTUNI_ALPHA, /* U+01230f: CUNEIFORM SIGN U OVER U SUR OVER SUR*/ + RTUNI_ALPHA, /* U+012310: CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED*/ + RTUNI_ALPHA, /* U+012311: CUNEIFORM SIGN U2*/ + RTUNI_ALPHA, /* U+012312: CUNEIFORM SIGN UB*/ + RTUNI_ALPHA, /* U+012313: CUNEIFORM SIGN UD*/ + RTUNI_ALPHA, /* U+012314: CUNEIFORM SIGN UD KUSHU2*/ + RTUNI_ALPHA, /* U+012315: CUNEIFORM SIGN UD TIMES BAD*/ + RTUNI_ALPHA, /* U+012316: CUNEIFORM SIGN UD TIMES MI*/ + RTUNI_ALPHA, /* U+012317: CUNEIFORM SIGN UD TIMES U PLUS U PLUS U*/ + RTUNI_ALPHA, /* U+012318: CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU*/ + RTUNI_ALPHA, /* U+012319: CUNEIFORM SIGN UD GUNU*/ + RTUNI_ALPHA, /* U+01231a: CUNEIFORM SIGN UD SHESHIG*/ + RTUNI_ALPHA, /* U+01231b: CUNEIFORM SIGN UD SHESHIG TIMES BAD*/ + RTUNI_ALPHA, /* U+01231c: CUNEIFORM SIGN UDUG*/ + RTUNI_ALPHA, /* U+01231d: CUNEIFORM SIGN UM*/ + RTUNI_ALPHA, /* U+01231e: CUNEIFORM SIGN UM TIMES LAGAB*/ + RTUNI_ALPHA, /* U+01231f: CUNEIFORM SIGN UM TIMES ME PLUS DA*/ + RTUNI_ALPHA, /* U+012320: CUNEIFORM SIGN UM TIMES SHA3*/ + RTUNI_ALPHA, /* U+012321: CUNEIFORM SIGN UM TIMES U*/ + RTUNI_ALPHA, /* U+012322: CUNEIFORM SIGN UMBIN*/ + RTUNI_ALPHA, /* U+012323: CUNEIFORM SIGN UMUM*/ + RTUNI_ALPHA, /* U+012324: CUNEIFORM SIGN UMUM TIMES KASKAL*/ + RTUNI_ALPHA, /* U+012325: CUNEIFORM SIGN UMUM TIMES PA*/ + RTUNI_ALPHA, /* U+012326: CUNEIFORM SIGN UN*/ + RTUNI_ALPHA, /* U+012327: CUNEIFORM SIGN UN GUNU*/ + RTUNI_ALPHA, /* U+012328: CUNEIFORM SIGN UR*/ + RTUNI_ALPHA, /* U+012329: CUNEIFORM SIGN UR CROSSING UR*/ + RTUNI_ALPHA, /* U+01232a: CUNEIFORM SIGN UR SHESHIG*/ + RTUNI_ALPHA, /* U+01232b: CUNEIFORM SIGN UR2*/ + RTUNI_ALPHA, /* U+01232c: CUNEIFORM SIGN UR2 TIMES A PLUS HA*/ + RTUNI_ALPHA, /* U+01232d: CUNEIFORM SIGN UR2 TIMES A PLUS NA*/ + RTUNI_ALPHA, /* U+01232e: CUNEIFORM SIGN UR2 TIMES AL*/ + RTUNI_ALPHA, /* U+01232f: CUNEIFORM SIGN UR2 TIMES HA*/ + RTUNI_ALPHA, /* U+012330: CUNEIFORM SIGN UR2 TIMES NUN*/ + RTUNI_ALPHA, /* U+012331: CUNEIFORM SIGN UR2 TIMES U2*/ + RTUNI_ALPHA, /* U+012332: CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH*/ + RTUNI_ALPHA, /* U+012333: CUNEIFORM SIGN UR2 TIMES U2 PLUS BI*/ + RTUNI_ALPHA, /* U+012334: CUNEIFORM SIGN UR4*/ + RTUNI_ALPHA, /* U+012335: CUNEIFORM SIGN URI*/ + RTUNI_ALPHA, /* U+012336: CUNEIFORM SIGN URI3*/ + RTUNI_ALPHA, /* U+012337: CUNEIFORM SIGN URU*/ + RTUNI_ALPHA, /* U+012338: CUNEIFORM SIGN URU TIMES A*/ + RTUNI_ALPHA, /* U+012339: CUNEIFORM SIGN URU TIMES ASHGAB*/ + RTUNI_ALPHA, /* U+01233a: CUNEIFORM SIGN URU TIMES BAR*/ + RTUNI_ALPHA, /* U+01233b: CUNEIFORM SIGN URU TIMES DUN*/ + RTUNI_ALPHA, /* U+01233c: CUNEIFORM SIGN URU TIMES GA*/ + RTUNI_ALPHA, /* U+01233d: CUNEIFORM SIGN URU TIMES GAL*/ + RTUNI_ALPHA, /* U+01233e: CUNEIFORM SIGN URU TIMES GAN2 TENU*/ + RTUNI_ALPHA, /* U+01233f: CUNEIFORM SIGN URU TIMES GAR*/ + RTUNI_ALPHA, /* U+012340: CUNEIFORM SIGN URU TIMES GU*/ + RTUNI_ALPHA, /* U+012341: CUNEIFORM SIGN URU TIMES HA*/ + RTUNI_ALPHA, /* U+012342: CUNEIFORM SIGN URU TIMES IGI*/ + RTUNI_ALPHA, /* U+012343: CUNEIFORM SIGN URU TIMES IM*/ + RTUNI_ALPHA, /* U+012344: CUNEIFORM SIGN URU TIMES ISH*/ + RTUNI_ALPHA, /* U+012345: CUNEIFORM SIGN URU TIMES KI*/ + RTUNI_ALPHA, /* U+012346: CUNEIFORM SIGN URU TIMES LUM*/ + RTUNI_ALPHA, /* U+012347: CUNEIFORM SIGN URU TIMES MIN*/ + RTUNI_ALPHA, /* U+012348: CUNEIFORM SIGN URU TIMES PA*/ + RTUNI_ALPHA, /* U+012349: CUNEIFORM SIGN URU TIMES SHE*/ + RTUNI_ALPHA, /* U+01234a: CUNEIFORM SIGN URU TIMES SIG4*/ + RTUNI_ALPHA, /* U+01234b: CUNEIFORM SIGN URU TIMES TU*/ + RTUNI_ALPHA, /* U+01234c: CUNEIFORM SIGN URU TIMES U PLUS GUD*/ + RTUNI_ALPHA, /* U+01234d: CUNEIFORM SIGN URU TIMES UD*/ + RTUNI_ALPHA, /* U+01234e: CUNEIFORM SIGN URU TIMES URUDA*/ + RTUNI_ALPHA, /* U+01234f: CUNEIFORM SIGN URUDA*/ + RTUNI_ALPHA, /* U+012350: CUNEIFORM SIGN URUDA TIMES U*/ + RTUNI_ALPHA, /* U+012351: CUNEIFORM SIGN USH*/ + RTUNI_ALPHA, /* U+012352: CUNEIFORM SIGN USH TIMES A*/ + RTUNI_ALPHA, /* U+012353: CUNEIFORM SIGN USH TIMES KU*/ + RTUNI_ALPHA, /* U+012354: CUNEIFORM SIGN USH TIMES KUR*/ + RTUNI_ALPHA, /* U+012355: CUNEIFORM SIGN USH TIMES TAK4*/ + RTUNI_ALPHA, /* U+012356: CUNEIFORM SIGN USHX*/ + RTUNI_ALPHA, /* U+012357: CUNEIFORM SIGN USH2*/ + RTUNI_ALPHA, /* U+012358: CUNEIFORM SIGN USHUMX*/ + RTUNI_ALPHA, /* U+012359: CUNEIFORM SIGN UTUKI*/ + RTUNI_ALPHA, /* U+01235a: CUNEIFORM SIGN UZ3*/ + RTUNI_ALPHA, /* U+01235b: CUNEIFORM SIGN UZ3 TIMES KASKAL*/ + RTUNI_ALPHA, /* U+01235c: CUNEIFORM SIGN UZU*/ + RTUNI_ALPHA, /* U+01235d: CUNEIFORM SIGN ZA*/ + RTUNI_ALPHA, /* U+01235e: CUNEIFORM SIGN ZA TENU*/ + RTUNI_ALPHA, /* U+01235f: CUNEIFORM SIGN ZA SQUARED TIMES KUR*/ + RTUNI_ALPHA, /* U+012360: CUNEIFORM SIGN ZAG*/ + RTUNI_ALPHA, /* U+012361: CUNEIFORM SIGN ZAMX*/ + RTUNI_ALPHA, /* U+012362: CUNEIFORM SIGN ZE2*/ + RTUNI_ALPHA, /* U+012363: CUNEIFORM SIGN ZI*/ + RTUNI_ALPHA, /* U+012364: CUNEIFORM SIGN ZI OVER ZI*/ + RTUNI_ALPHA, /* U+012365: CUNEIFORM SIGN ZI3*/ + RTUNI_ALPHA, /* U+012366: CUNEIFORM SIGN ZIB*/ + RTUNI_ALPHA, /* U+012367: CUNEIFORM SIGN ZIB KABA TENU*/ + RTUNI_ALPHA, /* U+012368: CUNEIFORM SIGN ZIG*/ + RTUNI_ALPHA, /* U+012369: CUNEIFORM SIGN ZIZ2*/ + RTUNI_ALPHA, /* U+01236a: CUNEIFORM SIGN ZU*/ + RTUNI_ALPHA, /* U+01236b: CUNEIFORM SIGN ZU5*/ + RTUNI_ALPHA, /* U+01236c: CUNEIFORM SIGN ZU5 TIMES A*/ + RTUNI_ALPHA, /* U+01236d: CUNEIFORM SIGN ZUBUR*/ + RTUNI_ALPHA, /* U+01236e: CUNEIFORM SIGN ZUM*/ + 0, /* U+01236f: */ + 0, /* U+012370: */ + 0, /* U+012371: */ + 0, /* U+012372: */ + 0, /* U+012373: */ + 0, /* U+012374: */ + 0, /* U+012375: */ + 0, /* U+012376: */ + 0, /* U+012377: */ + 0, /* U+012378: */ + 0, /* U+012379: */ + 0, /* U+01237a: */ + 0, /* U+01237b: */ + 0, /* U+01237c: */ + 0, /* U+01237d: */ + 0, /* U+01237e: */ + 0, /* U+01237f: */ + 0, /* U+012380: */ + 0, /* U+012381: */ + 0, /* U+012382: */ + 0, /* U+012383: */ + 0, /* U+012384: */ + 0, /* U+012385: */ + 0, /* U+012386: */ + 0, /* U+012387: */ + 0, /* U+012388: */ + 0, /* U+012389: */ + 0, /* U+01238a: */ + 0, /* U+01238b: */ + 0, /* U+01238c: */ + 0, /* U+01238d: */ + 0, /* U+01238e: */ + 0, /* U+01238f: */ + 0, /* U+012390: */ + 0, /* U+012391: */ + 0, /* U+012392: */ + 0, /* U+012393: */ + 0, /* U+012394: */ + 0, /* U+012395: */ + 0, /* U+012396: */ + 0, /* U+012397: */ + 0, /* U+012398: */ + 0, /* U+012399: */ + 0, /* U+01239a: */ + 0, /* U+01239b: */ + 0, /* U+01239c: */ + 0, /* U+01239d: */ + 0, /* U+01239e: */ + 0, /* U+01239f: */ + 0, /* U+0123a0: */ + 0, /* U+0123a1: */ + 0, /* U+0123a2: */ + 0, /* U+0123a3: */ + 0, /* U+0123a4: */ + 0, /* U+0123a5: */ + 0, /* U+0123a6: */ + 0, /* U+0123a7: */ + 0, /* U+0123a8: */ + 0, /* U+0123a9: */ + 0, /* U+0123aa: */ + 0, /* U+0123ab: */ + 0, /* U+0123ac: */ + 0, /* U+0123ad: */ + 0, /* U+0123ae: */ + 0, /* U+0123af: */ + 0, /* U+0123b0: */ + 0, /* U+0123b1: */ + 0, /* U+0123b2: */ + 0, /* U+0123b3: */ + 0, /* U+0123b4: */ + 0, /* U+0123b5: */ + 0, /* U+0123b6: */ + 0, /* U+0123b7: */ + 0, /* U+0123b8: */ + 0, /* U+0123b9: */ + 0, /* U+0123ba: */ + 0, /* U+0123bb: */ + 0, /* U+0123bc: */ + 0, /* U+0123bd: */ + 0, /* U+0123be: */ + 0, /* U+0123bf: */ + 0, /* U+0123c0: */ + 0, /* U+0123c1: */ + 0, /* U+0123c2: */ + 0, /* U+0123c3: */ + 0, /* U+0123c4: */ + 0, /* U+0123c5: */ + 0, /* U+0123c6: */ + 0, /* U+0123c7: */ + 0, /* U+0123c8: */ + 0, /* U+0123c9: */ + 0, /* U+0123ca: */ + 0, /* U+0123cb: */ + 0, /* U+0123cc: */ + 0, /* U+0123cd: */ + 0, /* U+0123ce: */ + 0, /* U+0123cf: */ + 0, /* U+0123d0: */ + 0, /* U+0123d1: */ + 0, /* U+0123d2: */ + 0, /* U+0123d3: */ + 0, /* U+0123d4: */ + 0, /* U+0123d5: */ + 0, /* U+0123d6: */ + 0, /* U+0123d7: */ + 0, /* U+0123d8: */ + 0, /* U+0123d9: */ + 0, /* U+0123da: */ + 0, /* U+0123db: */ + 0, /* U+0123dc: */ + 0, /* U+0123dd: */ + 0, /* U+0123de: */ + 0, /* U+0123df: */ + 0, /* U+0123e0: */ + 0, /* U+0123e1: */ + 0, /* U+0123e2: */ + 0, /* U+0123e3: */ + 0, /* U+0123e4: */ + 0, /* U+0123e5: */ + 0, /* U+0123e6: */ + 0, /* U+0123e7: */ + 0, /* U+0123e8: */ + 0, /* U+0123e9: */ + 0, /* U+0123ea: */ + 0, /* U+0123eb: */ + 0, /* U+0123ec: */ + 0, /* U+0123ed: */ + 0, /* U+0123ee: */ + 0, /* U+0123ef: */ + 0, /* U+0123f0: */ + 0, /* U+0123f1: */ + 0, /* U+0123f2: */ + 0, /* U+0123f3: */ + 0, /* U+0123f4: */ + 0, /* U+0123f5: */ + 0, /* U+0123f6: */ + 0, /* U+0123f7: */ + 0, /* U+0123f8: */ + 0, /* U+0123f9: */ + 0, /* U+0123fa: */ + 0, /* U+0123fb: */ + 0, /* U+0123fc: */ + 0, /* U+0123fd: */ + 0, /* U+0123fe: */ + 0, /* U+0123ff: */ + RTUNI_ALPHA, /* U+012400: CUNEIFORM NUMERIC SIGN TWO ASH*/ + RTUNI_ALPHA, /* U+012401: CUNEIFORM NUMERIC SIGN THREE ASH*/ + RTUNI_ALPHA, /* U+012402: CUNEIFORM NUMERIC SIGN FOUR ASH*/ + RTUNI_ALPHA, /* U+012403: CUNEIFORM NUMERIC SIGN FIVE ASH*/ + RTUNI_ALPHA, /* U+012404: CUNEIFORM NUMERIC SIGN SIX ASH*/ + RTUNI_ALPHA, /* U+012405: CUNEIFORM NUMERIC SIGN SEVEN ASH*/ + RTUNI_ALPHA, /* U+012406: CUNEIFORM NUMERIC SIGN EIGHT ASH*/ + RTUNI_ALPHA, /* U+012407: CUNEIFORM NUMERIC SIGN NINE ASH*/ + RTUNI_ALPHA, /* U+012408: CUNEIFORM NUMERIC SIGN THREE DISH*/ + RTUNI_ALPHA, /* U+012409: CUNEIFORM NUMERIC SIGN FOUR DISH*/ + RTUNI_ALPHA, /* U+01240a: CUNEIFORM NUMERIC SIGN FIVE DISH*/ + RTUNI_ALPHA, /* U+01240b: CUNEIFORM NUMERIC SIGN SIX DISH*/ + RTUNI_ALPHA, /* U+01240c: CUNEIFORM NUMERIC SIGN SEVEN DISH*/ + RTUNI_ALPHA, /* U+01240d: CUNEIFORM NUMERIC SIGN EIGHT DISH*/ + RTUNI_ALPHA, /* U+01240e: CUNEIFORM NUMERIC SIGN NINE DISH*/ + RTUNI_ALPHA, /* U+01240f: CUNEIFORM NUMERIC SIGN FOUR U*/ + RTUNI_ALPHA, /* U+012410: CUNEIFORM NUMERIC SIGN FIVE U*/ + RTUNI_ALPHA, /* U+012411: CUNEIFORM NUMERIC SIGN SIX U*/ + RTUNI_ALPHA, /* U+012412: CUNEIFORM NUMERIC SIGN SEVEN U*/ + RTUNI_ALPHA, /* U+012413: CUNEIFORM NUMERIC SIGN EIGHT U*/ + RTUNI_ALPHA, /* U+012414: CUNEIFORM NUMERIC SIGN NINE U*/ + RTUNI_ALPHA, /* U+012415: CUNEIFORM NUMERIC SIGN ONE GESH2*/ + RTUNI_ALPHA, /* U+012416: CUNEIFORM NUMERIC SIGN TWO GESH2*/ + RTUNI_ALPHA, /* U+012417: CUNEIFORM NUMERIC SIGN THREE GESH2*/ + RTUNI_ALPHA, /* U+012418: CUNEIFORM NUMERIC SIGN FOUR GESH2*/ + RTUNI_ALPHA, /* U+012419: CUNEIFORM NUMERIC SIGN FIVE GESH2*/ + RTUNI_ALPHA, /* U+01241a: CUNEIFORM NUMERIC SIGN SIX GESH2*/ + RTUNI_ALPHA, /* U+01241b: CUNEIFORM NUMERIC SIGN SEVEN GESH2*/ + RTUNI_ALPHA, /* U+01241c: CUNEIFORM NUMERIC SIGN EIGHT GESH2*/ + RTUNI_ALPHA, /* U+01241d: CUNEIFORM NUMERIC SIGN NINE GESH2*/ + RTUNI_ALPHA, /* U+01241e: CUNEIFORM NUMERIC SIGN ONE GESHU*/ + RTUNI_ALPHA, /* U+01241f: CUNEIFORM NUMERIC SIGN TWO GESHU*/ + RTUNI_ALPHA, /* U+012420: CUNEIFORM NUMERIC SIGN THREE GESHU*/ + RTUNI_ALPHA, /* U+012421: CUNEIFORM NUMERIC SIGN FOUR GESHU*/ + RTUNI_ALPHA, /* U+012422: CUNEIFORM NUMERIC SIGN FIVE GESHU*/ + RTUNI_ALPHA, /* U+012423: CUNEIFORM NUMERIC SIGN TWO SHAR2*/ + RTUNI_ALPHA, /* U+012424: CUNEIFORM NUMERIC SIGN THREE SHAR2*/ + RTUNI_ALPHA, /* U+012425: CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM*/ + RTUNI_ALPHA, /* U+012426: CUNEIFORM NUMERIC SIGN FOUR SHAR2*/ + RTUNI_ALPHA, /* U+012427: CUNEIFORM NUMERIC SIGN FIVE SHAR2*/ + RTUNI_ALPHA, /* U+012428: CUNEIFORM NUMERIC SIGN SIX SHAR2*/ + RTUNI_ALPHA, /* U+012429: CUNEIFORM NUMERIC SIGN SEVEN SHAR2*/ + RTUNI_ALPHA, /* U+01242a: CUNEIFORM NUMERIC SIGN EIGHT SHAR2*/ + RTUNI_ALPHA, /* U+01242b: CUNEIFORM NUMERIC SIGN NINE SHAR2*/ + RTUNI_ALPHA, /* U+01242c: CUNEIFORM NUMERIC SIGN ONE SHARU*/ + RTUNI_ALPHA, /* U+01242d: CUNEIFORM NUMERIC SIGN TWO SHARU*/ + RTUNI_ALPHA, /* U+01242e: CUNEIFORM NUMERIC SIGN THREE SHARU*/ + RTUNI_ALPHA, /* U+01242f: CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM*/ + RTUNI_ALPHA, /* U+012430: CUNEIFORM NUMERIC SIGN FOUR SHARU*/ + RTUNI_ALPHA, /* U+012431: CUNEIFORM NUMERIC SIGN FIVE SHARU*/ + RTUNI_ALPHA, /* U+012432: CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH*/ + RTUNI_ALPHA, /* U+012433: CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN*/ + RTUNI_ALPHA, /* U+012434: CUNEIFORM NUMERIC SIGN ONE BURU*/ + RTUNI_ALPHA, /* U+012435: CUNEIFORM NUMERIC SIGN TWO BURU*/ + RTUNI_ALPHA, /* U+012436: CUNEIFORM NUMERIC SIGN THREE BURU*/ + RTUNI_ALPHA, /* U+012437: CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM*/ + RTUNI_ALPHA, /* U+012438: CUNEIFORM NUMERIC SIGN FOUR BURU*/ + RTUNI_ALPHA, /* U+012439: CUNEIFORM NUMERIC SIGN FIVE BURU*/ + RTUNI_ALPHA, /* U+01243a: CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16*/ + RTUNI_ALPHA, /* U+01243b: CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21*/ + RTUNI_ALPHA, /* U+01243c: CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU*/ + RTUNI_ALPHA, /* U+01243d: CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4*/ + RTUNI_ALPHA, /* U+01243e: CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A*/ + RTUNI_ALPHA, /* U+01243f: CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B*/ + RTUNI_ALPHA, /* U+012440: CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9*/ + RTUNI_ALPHA, /* U+012441: CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3*/ + RTUNI_ALPHA, /* U+012442: CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A*/ + RTUNI_ALPHA, /* U+012443: CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B*/ + RTUNI_ALPHA, /* U+012444: CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU*/ + RTUNI_ALPHA, /* U+012445: CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3*/ + RTUNI_ALPHA, /* U+012446: CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU*/ + RTUNI_ALPHA, /* U+012447: CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3*/ + RTUNI_ALPHA, /* U+012448: CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4*/ + RTUNI_ALPHA, /* U+012449: CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A*/ + RTUNI_ALPHA, /* U+01244a: CUNEIFORM NUMERIC SIGN TWO ASH TENU*/ + RTUNI_ALPHA, /* U+01244b: CUNEIFORM NUMERIC SIGN THREE ASH TENU*/ + RTUNI_ALPHA, /* U+01244c: CUNEIFORM NUMERIC SIGN FOUR ASH TENU*/ + RTUNI_ALPHA, /* U+01244d: CUNEIFORM NUMERIC SIGN FIVE ASH TENU*/ + RTUNI_ALPHA, /* U+01244e: CUNEIFORM NUMERIC SIGN SIX ASH TENU*/ + RTUNI_ALPHA, /* U+01244f: CUNEIFORM NUMERIC SIGN ONE BAN2*/ + RTUNI_ALPHA, /* U+012450: CUNEIFORM NUMERIC SIGN TWO BAN2*/ + RTUNI_ALPHA, /* U+012451: CUNEIFORM NUMERIC SIGN THREE BAN2*/ + RTUNI_ALPHA, /* U+012452: CUNEIFORM NUMERIC SIGN FOUR BAN2*/ + RTUNI_ALPHA, /* U+012453: CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM*/ + RTUNI_ALPHA, /* U+012454: CUNEIFORM NUMERIC SIGN FIVE BAN2*/ + RTUNI_ALPHA, /* U+012455: CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM*/ + RTUNI_ALPHA, /* U+012456: CUNEIFORM NUMERIC SIGN NIGIDAMIN*/ + RTUNI_ALPHA, /* U+012457: CUNEIFORM NUMERIC SIGN NIGIDAESH*/ + RTUNI_ALPHA, /* U+012458: CUNEIFORM NUMERIC SIGN ONE ESHE3*/ + RTUNI_ALPHA, /* U+012459: CUNEIFORM NUMERIC SIGN TWO ESHE3*/ + RTUNI_ALPHA, /* U+01245a: CUNEIFORM NUMERIC SIGN ONE THIRD DISH*/ + RTUNI_ALPHA, /* U+01245b: CUNEIFORM NUMERIC SIGN TWO THIRDS DISH*/ + RTUNI_ALPHA, /* U+01245c: CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH*/ + RTUNI_ALPHA, /* U+01245d: CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A*/ + RTUNI_ALPHA, /* U+01245e: CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A*/ + RTUNI_ALPHA, /* U+01245f: CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH*/ + RTUNI_ALPHA, /* U+012460: CUNEIFORM NUMERIC SIGN ONE QUARTER ASH*/ + RTUNI_ALPHA, /* U+012461: CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH*/ + RTUNI_ALPHA, /* U+012462: CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER*/ + 0, /* U+012463: */ + 0, /* U+012464: */ + 0, /* U+012465: */ + 0, /* U+012466: */ + 0, /* U+012467: */ + 0, /* U+012468: */ + 0, /* U+012469: */ + 0, /* U+01246a: */ + 0, /* U+01246b: */ + 0, /* U+01246c: */ + 0, /* U+01246d: */ + 0, /* U+01246e: */ + 0, /* U+01246f: */ + 0, /* U+012470: CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER*/ + 0, /* U+012471: CUNEIFORM PUNCTUATION SIGN VERTICAL COLON*/ + 0, /* U+012472: CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON*/ + 0, /* U+012473: CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON*/ + 0, /* U+012474: */ + 0, /* U+012475: */ + 0, /* U+012476: */ + 0, /* U+012477: */ + 0, /* U+012478: */ + 0, /* U+012479: */ + 0, /* U+01247a: */ + 0, /* U+01247b: */ + 0, /* U+01247c: */ + 0, /* U+01247d: */ + 0, /* U+01247e: */ + 0, /* U+01247f: */ + 0, /* U+012480: */ + 0, /* U+012481: */ + 0, /* U+012482: */ + 0, /* U+012483: */ + 0, /* U+012484: */ + 0, /* U+012485: */ + 0, /* U+012486: */ + 0, /* U+012487: */ + 0, /* U+012488: */ + 0, /* U+012489: */ + 0, /* U+01248a: */ + 0, /* U+01248b: */ + 0, /* U+01248c: */ + 0, /* U+01248d: */ + 0, /* U+01248e: */ + 0, /* U+01248f: */ + 0, /* U+012490: */ + 0, /* U+012491: */ + 0, /* U+012492: */ + 0, /* U+012493: */ + 0, /* U+012494: */ + 0, /* U+012495: */ + 0, /* U+012496: */ + 0, /* U+012497: */ + 0, /* U+012498: */ + 0, /* U+012499: */ + 0, /* U+01249a: */ + 0, /* U+01249b: */ + 0, /* U+01249c: */ + 0, /* U+01249d: */ + 0, /* U+01249e: */ + 0, /* U+01249f: */ + 0, /* U+0124a0: */ + 0, /* U+0124a1: */ + 0, /* U+0124a2: */ + 0, /* U+0124a3: */ + 0, /* U+0124a4: */ + 0, /* U+0124a5: */ + 0, /* U+0124a6: */ + 0, /* U+0124a7: */ + 0, /* U+0124a8: */ + 0, /* U+0124a9: */ + 0, /* U+0124aa: */ + 0, /* U+0124ab: */ + 0, /* U+0124ac: */ + 0, /* U+0124ad: */ + 0, /* U+0124ae: */ + 0, /* U+0124af: */ + 0, /* U+0124b0: */ + 0, /* U+0124b1: */ + 0, /* U+0124b2: */ + 0, /* U+0124b3: */ + 0, /* U+0124b4: */ + 0, /* U+0124b5: */ + 0, /* U+0124b6: */ + 0, /* U+0124b7: */ + 0, /* U+0124b8: */ + 0, /* U+0124b9: */ + 0, /* U+0124ba: */ + 0, /* U+0124bb: */ + 0, /* U+0124bc: */ + 0, /* U+0124bd: */ + 0, /* U+0124be: */ + 0, /* U+0124bf: */ + 0, /* U+0124c0: */ + 0, /* U+0124c1: */ + 0, /* U+0124c2: */ + 0, /* U+0124c3: */ + 0, /* U+0124c4: */ + 0, /* U+0124c5: */ + 0, /* U+0124c6: */ + 0, /* U+0124c7: */ + 0, /* U+0124c8: */ + 0, /* U+0124c9: */ + 0, /* U+0124ca: */ + 0, /* U+0124cb: */ + 0, /* U+0124cc: */ + 0, /* U+0124cd: */ + 0, /* U+0124ce: */ + 0, /* U+0124cf: */ + 0, /* U+0124d0: */ + 0, /* U+0124d1: */ + 0, /* U+0124d2: */ + 0, /* U+0124d3: */ + 0, /* U+0124d4: */ + 0, /* U+0124d5: */ + 0, /* U+0124d6: */ + 0, /* U+0124d7: */ + 0, /* U+0124d8: */ + 0, /* U+0124d9: */ + 0, /* U+0124da: */ + 0, /* U+0124db: */ + 0, /* U+0124dc: */ + 0, /* U+0124dd: */ + 0, /* U+0124de: */ + 0, /* U+0124df: */ + 0, /* U+0124e0: */ + 0, /* U+0124e1: */ + 0, /* U+0124e2: */ + 0, /* U+0124e3: */ + 0, /* U+0124e4: */ + 0, /* U+0124e5: */ + 0, /* U+0124e6: */ + 0, /* U+0124e7: */ + 0, /* U+0124e8: */ + 0, /* U+0124e9: */ + 0, /* U+0124ea: */ + 0, /* U+0124eb: */ + 0, /* U+0124ec: */ + 0, /* U+0124ed: */ + 0, /* U+0124ee: */ + 0, /* U+0124ef: */ + 0, /* U+0124f0: */ + 0, /* U+0124f1: */ + 0, /* U+0124f2: */ + 0, /* U+0124f3: */ + 0, /* U+0124f4: */ + 0, /* U+0124f5: */ + 0, /* U+0124f6: */ + 0, /* U+0124f7: */ + 0, /* U+0124f8: */ + 0, /* U+0124f9: */ + 0, /* U+0124fa: */ + 0, /* U+0124fb: */ + 0, /* U+0124fc: */ + 0, /* U+0124fd: */ + 0, /* U+0124fe: */ + 0, /* U+0124ff: */ + 0, /* U+012500: */ + 0, /* U+012501: */ + 0, /* U+012502: */ + 0, /* U+012503: */ + 0, /* U+012504: */ + 0, /* U+012505: */ + 0, /* U+012506: */ + 0, /* U+012507: */ + 0, /* U+012508: */ + 0, /* U+012509: */ + 0, /* U+01250a: */ + 0, /* U+01250b: */ + 0, /* U+01250c: */ + 0, /* U+01250d: */ + 0, /* U+01250e: */ + 0, /* U+01250f: */ + 0, /* U+012510: */ + 0, /* U+012511: */ + 0, /* U+012512: */ + 0, /* U+012513: */ + 0, /* U+012514: */ + 0, /* U+012515: */ + 0, /* U+012516: */ + 0, /* U+012517: */ + 0, /* U+012518: */ + 0, /* U+012519: */ + 0, /* U+01251a: */ + 0, /* U+01251b: */ + 0, /* U+01251c: */ + 0, /* U+01251d: */ + 0, /* U+01251e: */ + 0, /* U+01251f: */ + 0, /* U+012520: */ + 0, /* U+012521: */ + 0, /* U+012522: */ + 0, /* U+012523: */ + 0, /* U+012524: */ + 0, /* U+012525: */ + 0, /* U+012526: */ + 0, /* U+012527: */ + 0, /* U+012528: */ + 0, /* U+012529: */ + 0, /* U+01252a: */ + 0, /* U+01252b: */ + 0, /* U+01252c: */ + 0, /* U+01252d: */ + 0, /* U+01252e: */ + 0, /* U+01252f: */ + 0, /* U+012530: */ + 0, /* U+012531: */ + 0, /* U+012532: */ + 0, /* U+012533: */ + 0, /* U+012534: */ + 0, /* U+012535: */ + 0, /* U+012536: */ + 0, /* U+012537: */ + 0, /* U+012538: */ + 0, /* U+012539: */ + 0, /* U+01253a: */ + 0, /* U+01253b: */ + 0, /* U+01253c: */ + 0, /* U+01253d: */ + 0, /* U+01253e: */ + 0, /* U+01253f: */ + 0, /* U+012540: */ + 0, /* U+012541: */ + 0, /* U+012542: */ + 0, /* U+012543: */ + 0, /* U+012544: */ + 0, /* U+012545: */ + 0, /* U+012546: */ + 0, /* U+012547: */ + 0, /* U+012548: */ + 0, /* U+012549: */ + 0, /* U+01254a: */ + 0, /* U+01254b: */ + 0, /* U+01254c: */ + 0, /* U+01254d: */ + 0, /* U+01254e: */ + 0, /* U+01254f: */ + 0, /* U+012550: */ + 0, /* U+012551: */ + 0, /* U+012552: */ + 0, /* U+012553: */ + 0, /* U+012554: */ + 0, /* U+012555: */ + 0, /* U+012556: */ + 0, /* U+012557: */ + 0, /* U+012558: */ + 0, /* U+012559: */ + 0, /* U+01255a: */ + 0, /* U+01255b: */ + 0, /* U+01255c: */ + 0, /* U+01255d: */ + 0, /* U+01255e: */ + 0, /* U+01255f: */ + 0, /* U+012560: */ + 0, /* U+012561: */ + 0, /* U+012562: */ + 0, /* U+012563: */ + 0, /* U+012564: */ + 0, /* U+012565: */ + 0, /* U+012566: */ + 0, /* U+012567: */ + 0, /* U+012568: */ + 0, /* U+012569: */ + 0, /* U+01256a: */ + 0, /* U+01256b: */ + 0, /* U+01256c: */ + 0, /* U+01256d: */ + 0, /* U+01256e: */ + 0, /* U+01256f: */ + 0, /* U+012570: */ + 0, /* U+012571: */ + 0, /* U+012572: */ + 0, /* U+012573: */ + 0, /* U+012574: */ + 0, /* U+012575: */ + 0, /* U+012576: */ + 0, /* U+012577: */ + 0, /* U+012578: */ + 0, /* U+012579: */ + 0, /* U+01257a: */ + 0, /* U+01257b: */ + 0, /* U+01257c: */ + 0, /* U+01257d: */ + 0, /* U+01257e: */ + 0, /* U+01257f: */ + 0, /* U+012580: */ + 0, /* U+012581: */ + 0, /* U+012582: */ + 0, /* U+012583: */ + 0, /* U+012584: */ + 0, /* U+012585: */ + 0, /* U+012586: */ + 0, /* U+012587: */ + 0, /* U+012588: */ + 0, /* U+012589: */ + 0, /* U+01258a: */ + 0, /* U+01258b: */ + 0, /* U+01258c: */ + 0, /* U+01258d: */ + 0, /* U+01258e: */ + 0, /* U+01258f: */ + 0, /* U+012590: */ + 0, /* U+012591: */ + 0, /* U+012592: */ + 0, /* U+012593: */ + 0, /* U+012594: */ + 0, /* U+012595: */ + 0, /* U+012596: */ + 0, /* U+012597: */ + 0, /* U+012598: */ + 0, /* U+012599: */ + 0, /* U+01259a: */ + 0, /* U+01259b: */ + 0, /* U+01259c: */ + 0, /* U+01259d: */ + 0, /* U+01259e: */ + 0, /* U+01259f: */ + 0, /* U+0125a0: */ + 0, /* U+0125a1: */ + 0, /* U+0125a2: */ + 0, /* U+0125a3: */ + 0, /* U+0125a4: */ + 0, /* U+0125a5: */ + 0, /* U+0125a6: */ + 0, /* U+0125a7: */ + 0, /* U+0125a8: */ + 0, /* U+0125a9: */ + 0, /* U+0125aa: */ + 0, /* U+0125ab: */ + 0, /* U+0125ac: */ + 0, /* U+0125ad: */ + 0, /* U+0125ae: */ + 0, /* U+0125af: */ + 0, /* U+0125b0: */ + 0, /* U+0125b1: */ + 0, /* U+0125b2: */ + 0, /* U+0125b3: */ + 0, /* U+0125b4: */ + 0, /* U+0125b5: */ + 0, /* U+0125b6: */ + 0, /* U+0125b7: */ + 0, /* U+0125b8: */ + 0, /* U+0125b9: */ + 0, /* U+0125ba: */ + 0, /* U+0125bb: */ + 0, /* U+0125bc: */ + 0, /* U+0125bd: */ + 0, /* U+0125be: */ + 0, /* U+0125bf: */ + 0, /* U+0125c0: */ + 0, /* U+0125c1: */ + 0, /* U+0125c2: */ + 0, /* U+0125c3: */ + 0, /* U+0125c4: */ + 0, /* U+0125c5: */ + 0, /* U+0125c6: */ + 0, /* U+0125c7: */ + 0, /* U+0125c8: */ + 0, /* U+0125c9: */ + 0, /* U+0125ca: */ + 0, /* U+0125cb: */ + 0, /* U+0125cc: */ + 0, /* U+0125cd: */ + 0, /* U+0125ce: */ + 0, /* U+0125cf: */ + 0, /* U+0125d0: */ + 0, /* U+0125d1: */ + 0, /* U+0125d2: */ + 0, /* U+0125d3: */ + 0, /* U+0125d4: */ + 0, /* U+0125d5: */ + 0, /* U+0125d6: */ + 0, /* U+0125d7: */ + 0, /* U+0125d8: */ + 0, /* U+0125d9: */ + 0, /* U+0125da: */ + 0, /* U+0125db: */ + 0, /* U+0125dc: */ + 0, /* U+0125dd: */ + 0, /* U+0125de: */ + 0, /* U+0125df: */ + 0, /* U+0125e0: */ + 0, /* U+0125e1: */ + 0, /* U+0125e2: */ + 0, /* U+0125e3: */ + 0, /* U+0125e4: */ + 0, /* U+0125e5: */ + 0, /* U+0125e6: */ + 0, /* U+0125e7: */ + 0, /* U+0125e8: */ + 0, /* U+0125e9: */ + 0, /* U+0125ea: */ + 0, /* U+0125eb: */ + 0, /* U+0125ec: */ + 0, /* U+0125ed: */ + 0, /* U+0125ee: */ + 0, /* U+0125ef: */ + 0, /* U+0125f0: */ + 0, /* U+0125f1: */ + 0, /* U+0125f2: */ + 0, /* U+0125f3: */ + 0, /* U+0125f4: */ + 0, /* U+0125f5: */ + 0, /* U+0125f6: */ + 0, /* U+0125f7: */ + 0, /* U+0125f8: */ + 0, /* U+0125f9: */ + 0, /* U+0125fa: */ + 0, /* U+0125fb: */ + 0, /* U+0125fc: */ + 0, /* U+0125fd: */ + 0, /* U+0125fe: */ + 0, /* U+0125ff: */ + 0, /* U+012600: */ + 0, /* U+012601: */ + 0, /* U+012602: */ + 0, /* U+012603: */ + 0, /* U+012604: */ + 0, /* U+012605: */ + 0, /* U+012606: */ + 0, /* U+012607: */ + 0, /* U+012608: */ + 0, /* U+012609: */ + 0, /* U+01260a: */ + 0, /* U+01260b: */ + 0, /* U+01260c: */ + 0, /* U+01260d: */ + 0, /* U+01260e: */ + 0, /* U+01260f: */ + 0, /* U+012610: */ + 0, /* U+012611: */ + 0, /* U+012612: */ + 0, /* U+012613: */ + 0, /* U+012614: */ + 0, /* U+012615: */ + 0, /* U+012616: */ + 0, /* U+012617: */ + 0, /* U+012618: */ + 0, /* U+012619: */ + 0, /* U+01261a: */ + 0, /* U+01261b: */ + 0, /* U+01261c: */ + 0, /* U+01261d: */ + 0, /* U+01261e: */ + 0, /* U+01261f: */ + 0, /* U+012620: */ + 0, /* U+012621: */ + 0, /* U+012622: */ + 0, /* U+012623: */ + 0, /* U+012624: */ + 0, /* U+012625: */ + 0, /* U+012626: */ + 0, /* U+012627: */ + 0, /* U+012628: */ + 0, /* U+012629: */ + 0, /* U+01262a: */ + 0, /* U+01262b: */ + 0, /* U+01262c: */ + 0, /* U+01262d: */ + 0, /* U+01262e: */ + 0, /* U+01262f: */ + 0, /* U+012630: */ + 0, /* U+012631: */ + 0, /* U+012632: */ + 0, /* U+012633: */ + 0, /* U+012634: */ + 0, /* U+012635: */ + 0, /* U+012636: */ + 0, /* U+012637: */ + 0, /* U+012638: */ + 0, /* U+012639: */ + 0, /* U+01263a: */ + 0, /* U+01263b: */ + 0, /* U+01263c: */ + 0, /* U+01263d: */ + 0, /* U+01263e: */ + 0, /* U+01263f: */ + 0, /* U+012640: */ + 0, /* U+012641: */ + 0, /* U+012642: */ + 0, /* U+012643: */ + 0, /* U+012644: */ + 0, /* U+012645: */ + 0, /* U+012646: */ + 0, /* U+012647: */ + 0, /* U+012648: */ + 0, /* U+012649: */ + 0, /* U+01264a: */ + 0, /* U+01264b: */ + 0, /* U+01264c: */ + 0, /* U+01264d: */ + 0, /* U+01264e: */ + 0, /* U+01264f: */ + 0, /* U+012650: */ + 0, /* U+012651: */ + 0, /* U+012652: */ + 0, /* U+012653: */ + 0, /* U+012654: */ + 0, /* U+012655: */ + 0, /* U+012656: */ + 0, /* U+012657: */ + 0, /* U+012658: */ + 0, /* U+012659: */ + 0, /* U+01265a: */ + 0, /* U+01265b: */ + 0, /* U+01265c: */ + 0, /* U+01265d: */ + 0, /* U+01265e: */ + 0, /* U+01265f: */ + 0, /* U+012660: */ + 0, /* U+012661: */ + 0, /* U+012662: */ + 0, /* U+012663: */ + 0, /* U+012664: */ + 0, /* U+012665: */ + 0, /* U+012666: */ + 0, /* U+012667: */ + 0, /* U+012668: */ + 0, /* U+012669: */ + 0, /* U+01266a: */ + 0, /* U+01266b: */ + 0, /* U+01266c: */ + 0, /* U+01266d: */ + 0, /* U+01266e: */ + 0, /* U+01266f: */ + 0, /* U+012670: */ + 0, /* U+012671: */ + 0, /* U+012672: */ + 0, /* U+012673: */ + 0, /* U+012674: */ + 0, /* U+012675: */ + 0, /* U+012676: */ + 0, /* U+012677: */ + 0, /* U+012678: */ + 0, /* U+012679: */ + 0, /* U+01267a: */ + 0, /* U+01267b: */ + 0, /* U+01267c: */ + 0, /* U+01267d: */ + 0, /* U+01267e: */ + 0, /* U+01267f: */ + 0, /* U+012680: */ + 0, /* U+012681: */ + 0, /* U+012682: */ + 0, /* U+012683: */ + 0, /* U+012684: */ + 0, /* U+012685: */ + 0, /* U+012686: */ + 0, /* U+012687: */ + 0, /* U+012688: */ + 0, /* U+012689: */ + 0, /* U+01268a: */ + 0, /* U+01268b: */ + 0, /* U+01268c: */ + 0, /* U+01268d: */ + 0, /* U+01268e: */ + 0, /* U+01268f: */ + 0, /* U+012690: */ + 0, /* U+012691: */ + 0, /* U+012692: */ + 0, /* U+012693: */ + 0, /* U+012694: */ + 0, /* U+012695: */ + 0, /* U+012696: */ + 0, /* U+012697: */ + 0, /* U+012698: */ + 0, /* U+012699: */ + 0, /* U+01269a: */ + 0, /* U+01269b: */ + 0, /* U+01269c: */ + 0, /* U+01269d: */ + 0, /* U+01269e: */ + 0, /* U+01269f: */ + 0, /* U+0126a0: */ + 0, /* U+0126a1: */ + 0, /* U+0126a2: */ + 0, /* U+0126a3: */ + 0, /* U+0126a4: */ + 0, /* U+0126a5: */ + 0, /* U+0126a6: */ + 0, /* U+0126a7: */ + 0, /* U+0126a8: */ + 0, /* U+0126a9: */ + 0, /* U+0126aa: */ + 0, /* U+0126ab: */ + 0, /* U+0126ac: */ + 0, /* U+0126ad: */ + 0, /* U+0126ae: */ + 0, /* U+0126af: */ + 0, /* U+0126b0: */ + 0, /* U+0126b1: */ + 0, /* U+0126b2: */ + 0, /* U+0126b3: */ + 0, /* U+0126b4: */ + 0, /* U+0126b5: */ + 0, /* U+0126b6: */ + 0, /* U+0126b7: */ + 0, /* U+0126b8: */ + 0, /* U+0126b9: */ + 0, /* U+0126ba: */ + 0, /* U+0126bb: */ + 0, /* U+0126bc: */ + 0, /* U+0126bd: */ + 0, /* U+0126be: */ + 0, /* U+0126bf: */ + 0, /* U+0126c0: */ + 0, /* U+0126c1: */ + 0, /* U+0126c2: */ + 0, /* U+0126c3: */ + 0, /* U+0126c4: */ + 0, /* U+0126c5: */ + 0, /* U+0126c6: */ + 0, /* U+0126c7: */ + 0, /* U+0126c8: */ + 0, /* U+0126c9: */ + 0, /* U+0126ca: */ + 0, /* U+0126cb: */ + 0, /* U+0126cc: */ + 0, /* U+0126cd: */ + 0, /* U+0126ce: */ + 0, /* U+0126cf: */ + 0, /* U+0126d0: */ + 0, /* U+0126d1: */ + 0, /* U+0126d2: */ + 0, /* U+0126d3: */ + 0, /* U+0126d4: */ + 0, /* U+0126d5: */ + 0, /* U+0126d6: */ + 0, /* U+0126d7: */ + 0, /* U+0126d8: */ + 0, /* U+0126d9: */ + 0, /* U+0126da: */ + 0, /* U+0126db: */ + 0, /* U+0126dc: */ + 0, /* U+0126dd: */ + 0, /* U+0126de: */ + 0, /* U+0126df: */ + 0, /* U+0126e0: */ + 0, /* U+0126e1: */ + 0, /* U+0126e2: */ + 0, /* U+0126e3: */ + 0, /* U+0126e4: */ + 0, /* U+0126e5: */ + 0, /* U+0126e6: */ + 0, /* U+0126e7: */ + 0, /* U+0126e8: */ + 0, /* U+0126e9: */ + 0, /* U+0126ea: */ + 0, /* U+0126eb: */ + 0, /* U+0126ec: */ + 0, /* U+0126ed: */ + 0, /* U+0126ee: */ + 0, /* U+0126ef: */ + 0, /* U+0126f0: */ + 0, /* U+0126f1: */ + 0, /* U+0126f2: */ + 0, /* U+0126f3: */ + 0, /* U+0126f4: */ + 0, /* U+0126f5: */ + 0, /* U+0126f6: */ + 0, /* U+0126f7: */ + 0, /* U+0126f8: */ + 0, /* U+0126f9: */ + 0, /* U+0126fa: */ + 0, /* U+0126fb: */ + 0, /* U+0126fc: */ + 0, /* U+0126fd: */ + 0, /* U+0126fe: */ + 0, /* U+0126ff: */ + 0, /* U+012700: */ + 0, /* U+012701: */ + 0, /* U+012702: */ + 0, /* U+012703: */ + 0, /* U+012704: */ + 0, /* U+012705: */ + 0, /* U+012706: */ + 0, /* U+012707: */ + 0, /* U+012708: */ + 0, /* U+012709: */ + 0, /* U+01270a: */ + 0, /* U+01270b: */ + 0, /* U+01270c: */ + 0, /* U+01270d: */ + 0, /* U+01270e: */ + 0, /* U+01270f: */ + 0, /* U+012710: */ + 0, /* U+012711: */ + 0, /* U+012712: */ + 0, /* U+012713: */ + 0, /* U+012714: */ + 0, /* U+012715: */ + 0, /* U+012716: */ + 0, /* U+012717: */ + 0, /* U+012718: */ + 0, /* U+012719: */ + 0, /* U+01271a: */ + 0, /* U+01271b: */ + 0, /* U+01271c: */ + 0, /* U+01271d: */ + 0, /* U+01271e: */ + 0, /* U+01271f: */ + 0, /* U+012720: */ + 0, /* U+012721: */ + 0, /* U+012722: */ + 0, /* U+012723: */ + 0, /* U+012724: */ + 0, /* U+012725: */ + 0, /* U+012726: */ + 0, /* U+012727: */ + 0, /* U+012728: */ + 0, /* U+012729: */ + 0, /* U+01272a: */ + 0, /* U+01272b: */ + 0, /* U+01272c: */ + 0, /* U+01272d: */ + 0, /* U+01272e: */ + 0, /* U+01272f: */ + 0, /* U+012730: */ + 0, /* U+012731: */ + 0, /* U+012732: */ + 0, /* U+012733: */ + 0, /* U+012734: */ + 0, /* U+012735: */ + 0, /* U+012736: */ + 0, /* U+012737: */ + 0, /* U+012738: */ + 0, /* U+012739: */ + 0, /* U+01273a: */ + 0, /* U+01273b: */ + 0, /* U+01273c: */ + 0, /* U+01273d: */ + 0, /* U+01273e: */ + 0, /* U+01273f: */ + 0, /* U+012740: */ + 0, /* U+012741: */ + 0, /* U+012742: */ + 0, /* U+012743: */ + 0, /* U+012744: */ + 0, /* U+012745: */ + 0, /* U+012746: */ + 0, /* U+012747: */ + 0, /* U+012748: */ + 0, /* U+012749: */ + 0, /* U+01274a: */ + 0, /* U+01274b: */ + 0, /* U+01274c: */ + 0, /* U+01274d: */ + 0, /* U+01274e: */ + 0, /* U+01274f: */ + 0, /* U+012750: */ + 0, /* U+012751: */ + 0, /* U+012752: */ + 0, /* U+012753: */ + 0, /* U+012754: */ + 0, /* U+012755: */ + 0, /* U+012756: */ + 0, /* U+012757: */ + 0, /* U+012758: */ + 0, /* U+012759: */ + 0, /* U+01275a: */ + 0, /* U+01275b: */ + 0, /* U+01275c: */ + 0, /* U+01275d: */ + 0, /* U+01275e: */ + 0, /* U+01275f: */ + 0, /* U+012760: */ + 0, /* U+012761: */ + 0, /* U+012762: */ + 0, /* U+012763: */ + 0, /* U+012764: */ + 0, /* U+012765: */ + 0, /* U+012766: */ + 0, /* U+012767: */ + 0, /* U+012768: */ + 0, /* U+012769: */ + 0, /* U+01276a: */ + 0, /* U+01276b: */ + 0, /* U+01276c: */ + 0, /* U+01276d: */ + 0, /* U+01276e: */ + 0, /* U+01276f: */ + 0, /* U+012770: */ + 0, /* U+012771: */ + 0, /* U+012772: */ + 0, /* U+012773: */ + 0, /* U+012774: */ + 0, /* U+012775: */ + 0, /* U+012776: */ + 0, /* U+012777: */ + 0, /* U+012778: */ + 0, /* U+012779: */ + 0, /* U+01277a: */ + 0, /* U+01277b: */ + 0, /* U+01277c: */ + 0, /* U+01277d: */ + 0, /* U+01277e: */ + 0, /* U+01277f: */ + 0, /* U+012780: */ + 0, /* U+012781: */ + 0, /* U+012782: */ + 0, /* U+012783: */ + 0, /* U+012784: */ + 0, /* U+012785: */ + 0, /* U+012786: */ + 0, /* U+012787: */ + 0, /* U+012788: */ + 0, /* U+012789: */ + 0, /* U+01278a: */ + 0, /* U+01278b: */ + 0, /* U+01278c: */ + 0, /* U+01278d: */ + 0, /* U+01278e: */ + 0, /* U+01278f: */ + 0, /* U+012790: */ + 0, /* U+012791: */ + 0, /* U+012792: */ + 0, /* U+012793: */ + 0, /* U+012794: */ + 0, /* U+012795: */ + 0, /* U+012796: */ + 0, /* U+012797: */ + 0, /* U+012798: */ + 0, /* U+012799: */ + 0, /* U+01279a: */ + 0, /* U+01279b: */ + 0, /* U+01279c: */ + 0, /* U+01279d: */ + 0, /* U+01279e: */ + 0, /* U+01279f: */ + 0, /* U+0127a0: */ + 0, /* U+0127a1: */ + 0, /* U+0127a2: */ + 0, /* U+0127a3: */ + 0, /* U+0127a4: */ + 0, /* U+0127a5: */ + 0, /* U+0127a6: */ + 0, /* U+0127a7: */ + 0, /* U+0127a8: */ + 0, /* U+0127a9: */ + 0, /* U+0127aa: */ + 0, /* U+0127ab: */ + 0, /* U+0127ac: */ + 0, /* U+0127ad: */ + 0, /* U+0127ae: */ + 0, /* U+0127af: */ + 0, /* U+0127b0: */ + 0, /* U+0127b1: */ + 0, /* U+0127b2: */ + 0, /* U+0127b3: */ + 0, /* U+0127b4: */ + 0, /* U+0127b5: */ + 0, /* U+0127b6: */ + 0, /* U+0127b7: */ + 0, /* U+0127b8: */ + 0, /* U+0127b9: */ + 0, /* U+0127ba: */ + 0, /* U+0127bb: */ + 0, /* U+0127bc: */ + 0, /* U+0127bd: */ + 0, /* U+0127be: */ + 0, /* U+0127bf: */ + 0, /* U+0127c0: */ + 0, /* U+0127c1: */ + 0, /* U+0127c2: */ + 0, /* U+0127c3: */ + 0, /* U+0127c4: */ + 0, /* U+0127c5: */ + 0, /* U+0127c6: */ + 0, /* U+0127c7: */ + 0, /* U+0127c8: */ + 0, /* U+0127c9: */ + 0, /* U+0127ca: */ + 0, /* U+0127cb: */ + 0, /* U+0127cc: */ + 0, /* U+0127cd: */ + 0, /* U+0127ce: */ + 0, /* U+0127cf: */ + 0, /* U+0127d0: */ + 0, /* U+0127d1: */ + 0, /* U+0127d2: */ + 0, /* U+0127d3: */ + 0, /* U+0127d4: */ + 0, /* U+0127d5: */ + 0, /* U+0127d6: */ + 0, /* U+0127d7: */ + 0, /* U+0127d8: */ + 0, /* U+0127d9: */ + 0, /* U+0127da: */ + 0, /* U+0127db: */ + 0, /* U+0127dc: */ + 0, /* U+0127dd: */ + 0, /* U+0127de: */ + 0, /* U+0127df: */ + 0, /* U+0127e0: */ + 0, /* U+0127e1: */ + 0, /* U+0127e2: */ + 0, /* U+0127e3: */ + 0, /* U+0127e4: */ + 0, /* U+0127e5: */ + 0, /* U+0127e6: */ + 0, /* U+0127e7: */ + 0, /* U+0127e8: */ + 0, /* U+0127e9: */ + 0, /* U+0127ea: */ + 0, /* U+0127eb: */ + 0, /* U+0127ec: */ + 0, /* U+0127ed: */ + 0, /* U+0127ee: */ + 0, /* U+0127ef: */ + 0, /* U+0127f0: */ + 0, /* U+0127f1: */ + 0, /* U+0127f2: */ + 0, /* U+0127f3: */ + 0, /* U+0127f4: */ + 0, /* U+0127f5: */ + 0, /* U+0127f6: */ + 0, /* U+0127f7: */ + 0, /* U+0127f8: */ + 0, /* U+0127f9: */ + 0, /* U+0127fa: */ + 0, /* U+0127fb: */ + 0, /* U+0127fc: */ + 0, /* U+0127fd: */ + 0, /* U+0127fe: */ + 0, /* U+0127ff: */ + 0, /* U+012800: */ + 0, /* U+012801: */ + 0, /* U+012802: */ + 0, /* U+012803: */ + 0, /* U+012804: */ + 0, /* U+012805: */ + 0, /* U+012806: */ + 0, /* U+012807: */ + 0, /* U+012808: */ + 0, /* U+012809: */ + 0, /* U+01280a: */ + 0, /* U+01280b: */ + 0, /* U+01280c: */ + 0, /* U+01280d: */ + 0, /* U+01280e: */ + 0, /* U+01280f: */ + 0, /* U+012810: */ + 0, /* U+012811: */ + 0, /* U+012812: */ + 0, /* U+012813: */ + 0, /* U+012814: */ + 0, /* U+012815: */ + 0, /* U+012816: */ + 0, /* U+012817: */ + 0, /* U+012818: */ + 0, /* U+012819: */ + 0, /* U+01281a: */ + 0, /* U+01281b: */ + 0, /* U+01281c: */ + 0, /* U+01281d: */ + 0, /* U+01281e: */ + 0, /* U+01281f: */ + 0, /* U+012820: */ + 0, /* U+012821: */ + 0, /* U+012822: */ + 0, /* U+012823: */ + 0, /* U+012824: */ + 0, /* U+012825: */ + 0, /* U+012826: */ + 0, /* U+012827: */ + 0, /* U+012828: */ + 0, /* U+012829: */ + 0, /* U+01282a: */ + 0, /* U+01282b: */ + 0, /* U+01282c: */ + 0, /* U+01282d: */ + 0, /* U+01282e: */ + 0, /* U+01282f: */ + 0, /* U+012830: */ + 0, /* U+012831: */ + 0, /* U+012832: */ + 0, /* U+012833: */ + 0, /* U+012834: */ + 0, /* U+012835: */ + 0, /* U+012836: */ + 0, /* U+012837: */ + 0, /* U+012838: */ + 0, /* U+012839: */ + 0, /* U+01283a: */ + 0, /* U+01283b: */ + 0, /* U+01283c: */ + 0, /* U+01283d: */ + 0, /* U+01283e: */ + 0, /* U+01283f: */ + 0, /* U+012840: */ + 0, /* U+012841: */ + 0, /* U+012842: */ + 0, /* U+012843: */ + 0, /* U+012844: */ + 0, /* U+012845: */ + 0, /* U+012846: */ + 0, /* U+012847: */ + 0, /* U+012848: */ + 0, /* U+012849: */ + 0, /* U+01284a: */ + 0, /* U+01284b: */ + 0, /* U+01284c: */ + 0, /* U+01284d: */ + 0, /* U+01284e: */ + 0, /* U+01284f: */ + 0, /* U+012850: */ + 0, /* U+012851: */ + 0, /* U+012852: */ + 0, /* U+012853: */ + 0, /* U+012854: */ + 0, /* U+012855: */ + 0, /* U+012856: */ + 0, /* U+012857: */ + 0, /* U+012858: */ + 0, /* U+012859: */ + 0, /* U+01285a: */ + 0, /* U+01285b: */ + 0, /* U+01285c: */ + 0, /* U+01285d: */ + 0, /* U+01285e: */ + 0, /* U+01285f: */ + 0, /* U+012860: */ + 0, /* U+012861: */ + 0, /* U+012862: */ + 0, /* U+012863: */ + 0, /* U+012864: */ + 0, /* U+012865: */ + 0, /* U+012866: */ + 0, /* U+012867: */ + 0, /* U+012868: */ + 0, /* U+012869: */ + 0, /* U+01286a: */ + 0, /* U+01286b: */ + 0, /* U+01286c: */ + 0, /* U+01286d: */ + 0, /* U+01286e: */ + 0, /* U+01286f: */ + 0, /* U+012870: */ + 0, /* U+012871: */ + 0, /* U+012872: */ + 0, /* U+012873: */ + 0, /* U+012874: */ + 0, /* U+012875: */ + 0, /* U+012876: */ + 0, /* U+012877: */ + 0, /* U+012878: */ + 0, /* U+012879: */ + 0, /* U+01287a: */ + 0, /* U+01287b: */ + 0, /* U+01287c: */ + 0, /* U+01287d: */ + 0, /* U+01287e: */ + 0, /* U+01287f: */ + 0, /* U+012880: */ + 0, /* U+012881: */ + 0, /* U+012882: */ + 0, /* U+012883: */ + 0, /* U+012884: */ + 0, /* U+012885: */ + 0, /* U+012886: */ + 0, /* U+012887: */ + 0, /* U+012888: */ + 0, /* U+012889: */ + 0, /* U+01288a: */ + 0, /* U+01288b: */ + 0, /* U+01288c: */ + 0, /* U+01288d: */ + 0, /* U+01288e: */ + 0, /* U+01288f: */ + 0, /* U+012890: */ + 0, /* U+012891: */ + 0, /* U+012892: */ + 0, /* U+012893: */ + 0, /* U+012894: */ + 0, /* U+012895: */ + 0, /* U+012896: */ + 0, /* U+012897: */ + 0, /* U+012898: */ + 0, /* U+012899: */ + 0, /* U+01289a: */ + 0, /* U+01289b: */ + 0, /* U+01289c: */ + 0, /* U+01289d: */ + 0, /* U+01289e: */ + 0, /* U+01289f: */ + 0, /* U+0128a0: */ + 0, /* U+0128a1: */ + 0, /* U+0128a2: */ + 0, /* U+0128a3: */ + 0, /* U+0128a4: */ + 0, /* U+0128a5: */ + 0, /* U+0128a6: */ + 0, /* U+0128a7: */ + 0, /* U+0128a8: */ + 0, /* U+0128a9: */ + 0, /* U+0128aa: */ + 0, /* U+0128ab: */ + 0, /* U+0128ac: */ + 0, /* U+0128ad: */ + 0, /* U+0128ae: */ + 0, /* U+0128af: */ + 0, /* U+0128b0: */ + 0, /* U+0128b1: */ + 0, /* U+0128b2: */ + 0, /* U+0128b3: */ + 0, /* U+0128b4: */ + 0, /* U+0128b5: */ + 0, /* U+0128b6: */ + 0, /* U+0128b7: */ + 0, /* U+0128b8: */ + 0, /* U+0128b9: */ + 0, /* U+0128ba: */ + 0, /* U+0128bb: */ + 0, /* U+0128bc: */ + 0, /* U+0128bd: */ + 0, /* U+0128be: */ + 0, /* U+0128bf: */ + 0, /* U+0128c0: */ + 0, /* U+0128c1: */ + 0, /* U+0128c2: */ + 0, /* U+0128c3: */ + 0, /* U+0128c4: */ + 0, /* U+0128c5: */ + 0, /* U+0128c6: */ + 0, /* U+0128c7: */ + 0, /* U+0128c8: */ + 0, /* U+0128c9: */ + 0, /* U+0128ca: */ + 0, /* U+0128cb: */ + 0, /* U+0128cc: */ + 0, /* U+0128cd: */ + 0, /* U+0128ce: */ + 0, /* U+0128cf: */ + 0, /* U+0128d0: */ + 0, /* U+0128d1: */ + 0, /* U+0128d2: */ + 0, /* U+0128d3: */ + 0, /* U+0128d4: */ + 0, /* U+0128d5: */ + 0, /* U+0128d6: */ + 0, /* U+0128d7: */ + 0, /* U+0128d8: */ + 0, /* U+0128d9: */ + 0, /* U+0128da: */ + 0, /* U+0128db: */ + 0, /* U+0128dc: */ + 0, /* U+0128dd: */ + 0, /* U+0128de: */ + 0, /* U+0128df: */ + 0, /* U+0128e0: */ + 0, /* U+0128e1: */ + 0, /* U+0128e2: */ + 0, /* U+0128e3: */ + 0, /* U+0128e4: */ + 0, /* U+0128e5: */ + 0, /* U+0128e6: */ + 0, /* U+0128e7: */ + 0, /* U+0128e8: */ + 0, /* U+0128e9: */ + 0, /* U+0128ea: */ + 0, /* U+0128eb: */ + 0, /* U+0128ec: */ + 0, /* U+0128ed: */ + 0, /* U+0128ee: */ + 0, /* U+0128ef: */ + 0, /* U+0128f0: */ + 0, /* U+0128f1: */ + 0, /* U+0128f2: */ + 0, /* U+0128f3: */ + 0, /* U+0128f4: */ + 0, /* U+0128f5: */ + 0, /* U+0128f6: */ + 0, /* U+0128f7: */ + 0, /* U+0128f8: */ + 0, /* U+0128f9: */ + 0, /* U+0128fa: */ + 0, /* U+0128fb: */ + 0, /* U+0128fc: */ + 0, /* U+0128fd: */ + 0, /* U+0128fe: */ + 0, /* U+0128ff: */ + 0, /* U+012900: */ + 0, /* U+012901: */ + 0, /* U+012902: */ + 0, /* U+012903: */ + 0, /* U+012904: */ + 0, /* U+012905: */ + 0, /* U+012906: */ + 0, /* U+012907: */ + 0, /* U+012908: */ + 0, /* U+012909: */ + 0, /* U+01290a: */ + 0, /* U+01290b: */ + 0, /* U+01290c: */ + 0, /* U+01290d: */ + 0, /* U+01290e: */ + 0, /* U+01290f: */ + 0, /* U+012910: */ + 0, /* U+012911: */ + 0, /* U+012912: */ + 0, /* U+012913: */ + 0, /* U+012914: */ + 0, /* U+012915: */ + 0, /* U+012916: */ + 0, /* U+012917: */ + 0, /* U+012918: */ + 0, /* U+012919: */ + 0, /* U+01291a: */ + 0, /* U+01291b: */ + 0, /* U+01291c: */ + 0, /* U+01291d: */ + 0, /* U+01291e: */ + 0, /* U+01291f: */ + 0, /* U+012920: */ + 0, /* U+012921: */ + 0, /* U+012922: */ + 0, /* U+012923: */ + 0, /* U+012924: */ + 0, /* U+012925: */ + 0, /* U+012926: */ + 0, /* U+012927: */ + 0, /* U+012928: */ + 0, /* U+012929: */ + 0, /* U+01292a: */ + 0, /* U+01292b: */ + 0, /* U+01292c: */ + 0, /* U+01292d: */ + 0, /* U+01292e: */ + 0, /* U+01292f: */ + 0, /* U+012930: */ + 0, /* U+012931: */ + 0, /* U+012932: */ + 0, /* U+012933: */ + 0, /* U+012934: */ + 0, /* U+012935: */ + 0, /* U+012936: */ + 0, /* U+012937: */ + 0, /* U+012938: */ + 0, /* U+012939: */ + 0, /* U+01293a: */ + 0, /* U+01293b: */ + 0, /* U+01293c: */ + 0, /* U+01293d: */ + 0, /* U+01293e: */ + 0, /* U+01293f: */ + 0, /* U+012940: */ + 0, /* U+012941: */ + 0, /* U+012942: */ + 0, /* U+012943: */ + 0, /* U+012944: */ + 0, /* U+012945: */ + 0, /* U+012946: */ + 0, /* U+012947: */ + 0, /* U+012948: */ + 0, /* U+012949: */ + 0, /* U+01294a: */ + 0, /* U+01294b: */ + 0, /* U+01294c: */ + 0, /* U+01294d: */ + 0, /* U+01294e: */ + 0, /* U+01294f: */ + 0, /* U+012950: */ + 0, /* U+012951: */ + 0, /* U+012952: */ + 0, /* U+012953: */ + 0, /* U+012954: */ + 0, /* U+012955: */ + 0, /* U+012956: */ + 0, /* U+012957: */ + 0, /* U+012958: */ + 0, /* U+012959: */ + 0, /* U+01295a: */ + 0, /* U+01295b: */ + 0, /* U+01295c: */ + 0, /* U+01295d: */ + 0, /* U+01295e: */ + 0, /* U+01295f: */ + 0, /* U+012960: */ + 0, /* U+012961: */ + 0, /* U+012962: */ + 0, /* U+012963: */ + 0, /* U+012964: */ + 0, /* U+012965: */ + 0, /* U+012966: */ + 0, /* U+012967: */ + 0, /* U+012968: */ + 0, /* U+012969: */ + 0, /* U+01296a: */ + 0, /* U+01296b: */ + 0, /* U+01296c: */ + 0, /* U+01296d: */ + 0, /* U+01296e: */ + 0, /* U+01296f: */ + 0, /* U+012970: */ + 0, /* U+012971: */ + 0, /* U+012972: */ + 0, /* U+012973: */ + 0, /* U+012974: */ + 0, /* U+012975: */ + 0, /* U+012976: */ + 0, /* U+012977: */ + 0, /* U+012978: */ + 0, /* U+012979: */ + 0, /* U+01297a: */ + 0, /* U+01297b: */ + 0, /* U+01297c: */ + 0, /* U+01297d: */ + 0, /* U+01297e: */ + 0, /* U+01297f: */ + 0, /* U+012980: */ + 0, /* U+012981: */ + 0, /* U+012982: */ + 0, /* U+012983: */ + 0, /* U+012984: */ + 0, /* U+012985: */ + 0, /* U+012986: */ + 0, /* U+012987: */ + 0, /* U+012988: */ + 0, /* U+012989: */ + 0, /* U+01298a: */ + 0, /* U+01298b: */ + 0, /* U+01298c: */ + 0, /* U+01298d: */ + 0, /* U+01298e: */ + 0, /* U+01298f: */ + 0, /* U+012990: */ + 0, /* U+012991: */ + 0, /* U+012992: */ + 0, /* U+012993: */ + 0, /* U+012994: */ + 0, /* U+012995: */ + 0, /* U+012996: */ + 0, /* U+012997: */ + 0, /* U+012998: */ + 0, /* U+012999: */ + 0, /* U+01299a: */ + 0, /* U+01299b: */ + 0, /* U+01299c: */ + 0, /* U+01299d: */ + 0, /* U+01299e: */ + 0, /* U+01299f: */ + 0, /* U+0129a0: */ + 0, /* U+0129a1: */ + 0, /* U+0129a2: */ + 0, /* U+0129a3: */ + 0, /* U+0129a4: */ + 0, /* U+0129a5: */ + 0, /* U+0129a6: */ + 0, /* U+0129a7: */ + 0, /* U+0129a8: */ + 0, /* U+0129a9: */ + 0, /* U+0129aa: */ + 0, /* U+0129ab: */ + 0, /* U+0129ac: */ + 0, /* U+0129ad: */ + 0, /* U+0129ae: */ + 0, /* U+0129af: */ + 0, /* U+0129b0: */ + 0, /* U+0129b1: */ + 0, /* U+0129b2: */ + 0, /* U+0129b3: */ + 0, /* U+0129b4: */ + 0, /* U+0129b5: */ + 0, /* U+0129b6: */ + 0, /* U+0129b7: */ + 0, /* U+0129b8: */ + 0, /* U+0129b9: */ + 0, /* U+0129ba: */ + 0, /* U+0129bb: */ + 0, /* U+0129bc: */ + 0, /* U+0129bd: */ + 0, /* U+0129be: */ + 0, /* U+0129bf: */ + 0, /* U+0129c0: */ + 0, /* U+0129c1: */ + 0, /* U+0129c2: */ + 0, /* U+0129c3: */ + 0, /* U+0129c4: */ + 0, /* U+0129c5: */ + 0, /* U+0129c6: */ + 0, /* U+0129c7: */ + 0, /* U+0129c8: */ + 0, /* U+0129c9: */ + 0, /* U+0129ca: */ + 0, /* U+0129cb: */ + 0, /* U+0129cc: */ + 0, /* U+0129cd: */ + 0, /* U+0129ce: */ + 0, /* U+0129cf: */ + 0, /* U+0129d0: */ + 0, /* U+0129d1: */ + 0, /* U+0129d2: */ + 0, /* U+0129d3: */ + 0, /* U+0129d4: */ + 0, /* U+0129d5: */ + 0, /* U+0129d6: */ + 0, /* U+0129d7: */ + 0, /* U+0129d8: */ + 0, /* U+0129d9: */ + 0, /* U+0129da: */ + 0, /* U+0129db: */ + 0, /* U+0129dc: */ + 0, /* U+0129dd: */ + 0, /* U+0129de: */ + 0, /* U+0129df: */ + 0, /* U+0129e0: */ + 0, /* U+0129e1: */ + 0, /* U+0129e2: */ + 0, /* U+0129e3: */ + 0, /* U+0129e4: */ + 0, /* U+0129e5: */ + 0, /* U+0129e6: */ + 0, /* U+0129e7: */ + 0, /* U+0129e8: */ + 0, /* U+0129e9: */ + 0, /* U+0129ea: */ + 0, /* U+0129eb: */ + 0, /* U+0129ec: */ + 0, /* U+0129ed: */ + 0, /* U+0129ee: */ + 0, /* U+0129ef: */ + 0, /* U+0129f0: */ + 0, /* U+0129f1: */ + 0, /* U+0129f2: */ + 0, /* U+0129f3: */ + 0, /* U+0129f4: */ + 0, /* U+0129f5: */ + 0, /* U+0129f6: */ + 0, /* U+0129f7: */ + 0, /* U+0129f8: */ + 0, /* U+0129f9: */ + 0, /* U+0129fa: */ + 0, /* U+0129fb: */ + 0, /* U+0129fc: */ + 0, /* U+0129fd: */ + 0, /* U+0129fe: */ + 0, /* U+0129ff: */ + 0, /* U+012a00: */ + 0, /* U+012a01: */ + 0, /* U+012a02: */ + 0, /* U+012a03: */ + 0, /* U+012a04: */ + 0, /* U+012a05: */ + 0, /* U+012a06: */ + 0, /* U+012a07: */ + 0, /* U+012a08: */ + 0, /* U+012a09: */ + 0, /* U+012a0a: */ + 0, /* U+012a0b: */ + 0, /* U+012a0c: */ + 0, /* U+012a0d: */ + 0, /* U+012a0e: */ + 0, /* U+012a0f: */ + 0, /* U+012a10: */ + 0, /* U+012a11: */ + 0, /* U+012a12: */ + 0, /* U+012a13: */ + 0, /* U+012a14: */ + 0, /* U+012a15: */ + 0, /* U+012a16: */ + 0, /* U+012a17: */ + 0, /* U+012a18: */ + 0, /* U+012a19: */ + 0, /* U+012a1a: */ + 0, /* U+012a1b: */ + 0, /* U+012a1c: */ + 0, /* U+012a1d: */ + 0, /* U+012a1e: */ + 0, /* U+012a1f: */ + 0, /* U+012a20: */ + 0, /* U+012a21: */ + 0, /* U+012a22: */ + 0, /* U+012a23: */ + 0, /* U+012a24: */ + 0, /* U+012a25: */ + 0, /* U+012a26: */ + 0, /* U+012a27: */ + 0, /* U+012a28: */ + 0, /* U+012a29: */ + 0, /* U+012a2a: */ + 0, /* U+012a2b: */ + 0, /* U+012a2c: */ + 0, /* U+012a2d: */ + 0, /* U+012a2e: */ + 0, /* U+012a2f: */ + 0, /* U+012a30: */ + 0, /* U+012a31: */ + 0, /* U+012a32: */ + 0, /* U+012a33: */ + 0, /* U+012a34: */ + 0, /* U+012a35: */ + 0, /* U+012a36: */ + 0, /* U+012a37: */ + 0, /* U+012a38: */ + 0, /* U+012a39: */ + 0, /* U+012a3a: */ + 0, /* U+012a3b: */ + 0, /* U+012a3c: */ + 0, /* U+012a3d: */ + 0, /* U+012a3e: */ + 0, /* U+012a3f: */ + 0, /* U+012a40: */ + 0, /* U+012a41: */ + 0, /* U+012a42: */ + 0, /* U+012a43: */ + 0, /* U+012a44: */ + 0, /* U+012a45: */ + 0, /* U+012a46: */ + 0, /* U+012a47: */ + 0, /* U+012a48: */ + 0, /* U+012a49: */ + 0, /* U+012a4a: */ + 0, /* U+012a4b: */ + 0, /* U+012a4c: */ + 0, /* U+012a4d: */ + 0, /* U+012a4e: */ + 0, /* U+012a4f: */ + 0, /* U+012a50: */ + 0, /* U+012a51: */ + 0, /* U+012a52: */ + 0, /* U+012a53: */ + 0, /* U+012a54: */ + 0, /* U+012a55: */ + 0, /* U+012a56: */ + 0, /* U+012a57: */ + 0, /* U+012a58: */ + 0, /* U+012a59: */ + 0, /* U+012a5a: */ + 0, /* U+012a5b: */ + 0, /* U+012a5c: */ + 0, /* U+012a5d: */ + 0, /* U+012a5e: */ + 0, /* U+012a5f: */ + 0, /* U+012a60: */ + 0, /* U+012a61: */ + 0, /* U+012a62: */ + 0, /* U+012a63: */ + 0, /* U+012a64: */ + 0, /* U+012a65: */ + 0, /* U+012a66: */ + 0, /* U+012a67: */ + 0, /* U+012a68: */ + 0, /* U+012a69: */ + 0, /* U+012a6a: */ + 0, /* U+012a6b: */ + 0, /* U+012a6c: */ + 0, /* U+012a6d: */ + 0, /* U+012a6e: */ + 0, /* U+012a6f: */ + 0, /* U+012a70: */ + 0, /* U+012a71: */ + 0, /* U+012a72: */ + 0, /* U+012a73: */ + 0, /* U+012a74: */ + 0, /* U+012a75: */ + 0, /* U+012a76: */ + 0, /* U+012a77: */ + 0, /* U+012a78: */ + 0, /* U+012a79: */ + 0, /* U+012a7a: */ + 0, /* U+012a7b: */ + 0, /* U+012a7c: */ + 0, /* U+012a7d: */ + 0, /* U+012a7e: */ + 0, /* U+012a7f: */ + 0, /* U+012a80: */ + 0, /* U+012a81: */ + 0, /* U+012a82: */ + 0, /* U+012a83: */ + 0, /* U+012a84: */ + 0, /* U+012a85: */ + 0, /* U+012a86: */ + 0, /* U+012a87: */ + 0, /* U+012a88: */ + 0, /* U+012a89: */ + 0, /* U+012a8a: */ + 0, /* U+012a8b: */ + 0, /* U+012a8c: */ + 0, /* U+012a8d: */ + 0, /* U+012a8e: */ + 0, /* U+012a8f: */ + 0, /* U+012a90: */ + 0, /* U+012a91: */ + 0, /* U+012a92: */ + 0, /* U+012a93: */ + 0, /* U+012a94: */ + 0, /* U+012a95: */ + 0, /* U+012a96: */ + 0, /* U+012a97: */ + 0, /* U+012a98: */ + 0, /* U+012a99: */ + 0, /* U+012a9a: */ + 0, /* U+012a9b: */ + 0, /* U+012a9c: */ + 0, /* U+012a9d: */ + 0, /* U+012a9e: */ + 0, /* U+012a9f: */ + 0, /* U+012aa0: */ + 0, /* U+012aa1: */ + 0, /* U+012aa2: */ + 0, /* U+012aa3: */ + 0, /* U+012aa4: */ + 0, /* U+012aa5: */ + 0, /* U+012aa6: */ + 0, /* U+012aa7: */ + 0, /* U+012aa8: */ + 0, /* U+012aa9: */ + 0, /* U+012aaa: */ + 0, /* U+012aab: */ + 0, /* U+012aac: */ + 0, /* U+012aad: */ + 0, /* U+012aae: */ + 0, /* U+012aaf: */ + 0, /* U+012ab0: */ + 0, /* U+012ab1: */ + 0, /* U+012ab2: */ + 0, /* U+012ab3: */ + 0, /* U+012ab4: */ + 0, /* U+012ab5: */ + 0, /* U+012ab6: */ + 0, /* U+012ab7: */ + 0, /* U+012ab8: */ + 0, /* U+012ab9: */ + 0, /* U+012aba: */ + 0, /* U+012abb: */ + 0, /* U+012abc: */ + 0, /* U+012abd: */ + 0, /* U+012abe: */ + 0, /* U+012abf: */ + 0, /* U+012ac0: */ + 0, /* U+012ac1: */ + 0, /* U+012ac2: */ + 0, /* U+012ac3: */ + 0, /* U+012ac4: */ + 0, /* U+012ac5: */ + 0, /* U+012ac6: */ + 0, /* U+012ac7: */ + 0, /* U+012ac8: */ + 0, /* U+012ac9: */ + 0, /* U+012aca: */ + 0, /* U+012acb: */ + 0, /* U+012acc: */ + 0, /* U+012acd: */ + 0, /* U+012ace: */ + 0, /* U+012acf: */ + 0, /* U+012ad0: */ + 0, /* U+012ad1: */ + 0, /* U+012ad2: */ + 0, /* U+012ad3: */ + 0, /* U+012ad4: */ + 0, /* U+012ad5: */ + 0, /* U+012ad6: */ + 0, /* U+012ad7: */ + 0, /* U+012ad8: */ + 0, /* U+012ad9: */ + 0, /* U+012ada: */ + 0, /* U+012adb: */ + 0, /* U+012adc: */ + 0, /* U+012add: */ + 0, /* U+012ade: */ + 0, /* U+012adf: */ + 0, /* U+012ae0: */ + 0, /* U+012ae1: */ + 0, /* U+012ae2: */ + 0, /* U+012ae3: */ + 0, /* U+012ae4: */ + 0, /* U+012ae5: */ + 0, /* U+012ae6: */ + 0, /* U+012ae7: */ + 0, /* U+012ae8: */ + 0, /* U+012ae9: */ + 0, /* U+012aea: */ + 0, /* U+012aeb: */ + 0, /* U+012aec: */ + 0, /* U+012aed: */ + 0, /* U+012aee: */ + 0, /* U+012aef: */ + 0, /* U+012af0: */ + 0, /* U+012af1: */ + 0, /* U+012af2: */ + 0, /* U+012af3: */ + 0, /* U+012af4: */ + 0, /* U+012af5: */ + 0, /* U+012af6: */ + 0, /* U+012af7: */ + 0, /* U+012af8: */ + 0, /* U+012af9: */ + 0, /* U+012afa: */ + 0, /* U+012afb: */ + 0, /* U+012afc: */ + 0, /* U+012afd: */ + 0, /* U+012afe: */ + 0, /* U+012aff: */ + 0, /* U+012b00: */ + 0, /* U+012b01: */ + 0, /* U+012b02: */ + 0, /* U+012b03: */ + 0, /* U+012b04: */ + 0, /* U+012b05: */ + 0, /* U+012b06: */ + 0, /* U+012b07: */ + 0, /* U+012b08: */ + 0, /* U+012b09: */ + 0, /* U+012b0a: */ + 0, /* U+012b0b: */ + 0, /* U+012b0c: */ + 0, /* U+012b0d: */ + 0, /* U+012b0e: */ + 0, /* U+012b0f: */ + 0, /* U+012b10: */ + 0, /* U+012b11: */ + 0, /* U+012b12: */ + 0, /* U+012b13: */ + 0, /* U+012b14: */ + 0, /* U+012b15: */ + 0, /* U+012b16: */ + 0, /* U+012b17: */ + 0, /* U+012b18: */ + 0, /* U+012b19: */ + 0, /* U+012b1a: */ + 0, /* U+012b1b: */ + 0, /* U+012b1c: */ + 0, /* U+012b1d: */ + 0, /* U+012b1e: */ + 0, /* U+012b1f: */ + 0, /* U+012b20: */ + 0, /* U+012b21: */ + 0, /* U+012b22: */ + 0, /* U+012b23: */ + 0, /* U+012b24: */ + 0, /* U+012b25: */ + 0, /* U+012b26: */ + 0, /* U+012b27: */ + 0, /* U+012b28: */ + 0, /* U+012b29: */ + 0, /* U+012b2a: */ + 0, /* U+012b2b: */ + 0, /* U+012b2c: */ + 0, /* U+012b2d: */ + 0, /* U+012b2e: */ + 0, /* U+012b2f: */ + 0, /* U+012b30: */ + 0, /* U+012b31: */ + 0, /* U+012b32: */ + 0, /* U+012b33: */ + 0, /* U+012b34: */ + 0, /* U+012b35: */ + 0, /* U+012b36: */ + 0, /* U+012b37: */ + 0, /* U+012b38: */ + 0, /* U+012b39: */ + 0, /* U+012b3a: */ + 0, /* U+012b3b: */ + 0, /* U+012b3c: */ + 0, /* U+012b3d: */ + 0, /* U+012b3e: */ + 0, /* U+012b3f: */ + 0, /* U+012b40: */ + 0, /* U+012b41: */ + 0, /* U+012b42: */ + 0, /* U+012b43: */ + 0, /* U+012b44: */ + 0, /* U+012b45: */ + 0, /* U+012b46: */ + 0, /* U+012b47: */ + 0, /* U+012b48: */ + 0, /* U+012b49: */ + 0, /* U+012b4a: */ + 0, /* U+012b4b: */ + 0, /* U+012b4c: */ + 0, /* U+012b4d: */ + 0, /* U+012b4e: */ + 0, /* U+012b4f: */ + 0, /* U+012b50: */ + 0, /* U+012b51: */ + 0, /* U+012b52: */ + 0, /* U+012b53: */ + 0, /* U+012b54: */ + 0, /* U+012b55: */ + 0, /* U+012b56: */ + 0, /* U+012b57: */ + 0, /* U+012b58: */ + 0, /* U+012b59: */ + 0, /* U+012b5a: */ + 0, /* U+012b5b: */ + 0, /* U+012b5c: */ + 0, /* U+012b5d: */ + 0, /* U+012b5e: */ + 0, /* U+012b5f: */ + 0, /* U+012b60: */ + 0, /* U+012b61: */ + 0, /* U+012b62: */ + 0, /* U+012b63: */ + 0, /* U+012b64: */ + 0, /* U+012b65: */ + 0, /* U+012b66: */ + 0, /* U+012b67: */ + 0, /* U+012b68: */ + 0, /* U+012b69: */ + 0, /* U+012b6a: */ + 0, /* U+012b6b: */ + 0, /* U+012b6c: */ + 0, /* U+012b6d: */ + 0, /* U+012b6e: */ + 0, /* U+012b6f: */ + 0, /* U+012b70: */ + 0, /* U+012b71: */ + 0, /* U+012b72: */ + 0, /* U+012b73: */ + 0, /* U+012b74: */ + 0, /* U+012b75: */ + 0, /* U+012b76: */ + 0, /* U+012b77: */ + 0, /* U+012b78: */ + 0, /* U+012b79: */ + 0, /* U+012b7a: */ + 0, /* U+012b7b: */ + 0, /* U+012b7c: */ + 0, /* U+012b7d: */ + 0, /* U+012b7e: */ + 0, /* U+012b7f: */ + 0, /* U+012b80: */ + 0, /* U+012b81: */ + 0, /* U+012b82: */ + 0, /* U+012b83: */ + 0, /* U+012b84: */ + 0, /* U+012b85: */ + 0, /* U+012b86: */ + 0, /* U+012b87: */ + 0, /* U+012b88: */ + 0, /* U+012b89: */ + 0, /* U+012b8a: */ + 0, /* U+012b8b: */ + 0, /* U+012b8c: */ + 0, /* U+012b8d: */ + 0, /* U+012b8e: */ + 0, /* U+012b8f: */ + 0, /* U+012b90: */ + 0, /* U+012b91: */ + 0, /* U+012b92: */ + 0, /* U+012b93: */ + 0, /* U+012b94: */ + 0, /* U+012b95: */ + 0, /* U+012b96: */ + 0, /* U+012b97: */ + 0, /* U+012b98: */ + 0, /* U+012b99: */ + 0, /* U+012b9a: */ + 0, /* U+012b9b: */ + 0, /* U+012b9c: */ + 0, /* U+012b9d: */ + 0, /* U+012b9e: */ + 0, /* U+012b9f: */ + 0, /* U+012ba0: */ + 0, /* U+012ba1: */ + 0, /* U+012ba2: */ + 0, /* U+012ba3: */ + 0, /* U+012ba4: */ + 0, /* U+012ba5: */ + 0, /* U+012ba6: */ + 0, /* U+012ba7: */ + 0, /* U+012ba8: */ + 0, /* U+012ba9: */ + 0, /* U+012baa: */ + 0, /* U+012bab: */ + 0, /* U+012bac: */ + 0, /* U+012bad: */ + 0, /* U+012bae: */ + 0, /* U+012baf: */ + 0, /* U+012bb0: */ + 0, /* U+012bb1: */ + 0, /* U+012bb2: */ + 0, /* U+012bb3: */ + 0, /* U+012bb4: */ + 0, /* U+012bb5: */ + 0, /* U+012bb6: */ + 0, /* U+012bb7: */ + 0, /* U+012bb8: */ + 0, /* U+012bb9: */ + 0, /* U+012bba: */ + 0, /* U+012bbb: */ + 0, /* U+012bbc: */ + 0, /* U+012bbd: */ + 0, /* U+012bbe: */ + 0, /* U+012bbf: */ + 0, /* U+012bc0: */ + 0, /* U+012bc1: */ + 0, /* U+012bc2: */ + 0, /* U+012bc3: */ + 0, /* U+012bc4: */ + 0, /* U+012bc5: */ + 0, /* U+012bc6: */ + 0, /* U+012bc7: */ + 0, /* U+012bc8: */ + 0, /* U+012bc9: */ + 0, /* U+012bca: */ + 0, /* U+012bcb: */ + 0, /* U+012bcc: */ + 0, /* U+012bcd: */ + 0, /* U+012bce: */ + 0, /* U+012bcf: */ + 0, /* U+012bd0: */ + 0, /* U+012bd1: */ + 0, /* U+012bd2: */ + 0, /* U+012bd3: */ + 0, /* U+012bd4: */ + 0, /* U+012bd5: */ + 0, /* U+012bd6: */ + 0, /* U+012bd7: */ + 0, /* U+012bd8: */ + 0, /* U+012bd9: */ + 0, /* U+012bda: */ + 0, /* U+012bdb: */ + 0, /* U+012bdc: */ + 0, /* U+012bdd: */ + 0, /* U+012bde: */ + 0, /* U+012bdf: */ + 0, /* U+012be0: */ + 0, /* U+012be1: */ + 0, /* U+012be2: */ + 0, /* U+012be3: */ + 0, /* U+012be4: */ + 0, /* U+012be5: */ + 0, /* U+012be6: */ + 0, /* U+012be7: */ + 0, /* U+012be8: */ + 0, /* U+012be9: */ + 0, /* U+012bea: */ + 0, /* U+012beb: */ + 0, /* U+012bec: */ + 0, /* U+012bed: */ + 0, /* U+012bee: */ + 0, /* U+012bef: */ + 0, /* U+012bf0: */ + 0, /* U+012bf1: */ + 0, /* U+012bf2: */ + 0, /* U+012bf3: */ + 0, /* U+012bf4: */ + 0, /* U+012bf5: */ + 0, /* U+012bf6: */ + 0, /* U+012bf7: */ + 0, /* U+012bf8: */ + 0, /* U+012bf9: */ + 0, /* U+012bfa: */ + 0, /* U+012bfb: */ + 0, /* U+012bfc: */ + 0, /* U+012bfd: */ + 0, /* U+012bfe: */ + 0, /* U+012bff: */ + 0, /* U+012c00: */ + 0, /* U+012c01: */ + 0, /* U+012c02: */ + 0, /* U+012c03: */ + 0, /* U+012c04: */ + 0, /* U+012c05: */ + 0, /* U+012c06: */ + 0, /* U+012c07: */ + 0, /* U+012c08: */ + 0, /* U+012c09: */ + 0, /* U+012c0a: */ + 0, /* U+012c0b: */ + 0, /* U+012c0c: */ + 0, /* U+012c0d: */ + 0, /* U+012c0e: */ + 0, /* U+012c0f: */ + 0, /* U+012c10: */ + 0, /* U+012c11: */ + 0, /* U+012c12: */ + 0, /* U+012c13: */ + 0, /* U+012c14: */ + 0, /* U+012c15: */ + 0, /* U+012c16: */ + 0, /* U+012c17: */ + 0, /* U+012c18: */ + 0, /* U+012c19: */ + 0, /* U+012c1a: */ + 0, /* U+012c1b: */ + 0, /* U+012c1c: */ + 0, /* U+012c1d: */ + 0, /* U+012c1e: */ + 0, /* U+012c1f: */ + 0, /* U+012c20: */ + 0, /* U+012c21: */ + 0, /* U+012c22: */ + 0, /* U+012c23: */ + 0, /* U+012c24: */ + 0, /* U+012c25: */ + 0, /* U+012c26: */ + 0, /* U+012c27: */ + 0, /* U+012c28: */ + 0, /* U+012c29: */ + 0, /* U+012c2a: */ + 0, /* U+012c2b: */ + 0, /* U+012c2c: */ + 0, /* U+012c2d: */ + 0, /* U+012c2e: */ + 0, /* U+012c2f: */ + 0, /* U+012c30: */ + 0, /* U+012c31: */ + 0, /* U+012c32: */ + 0, /* U+012c33: */ + 0, /* U+012c34: */ + 0, /* U+012c35: */ + 0, /* U+012c36: */ + 0, /* U+012c37: */ + 0, /* U+012c38: */ + 0, /* U+012c39: */ + 0, /* U+012c3a: */ + 0, /* U+012c3b: */ + 0, /* U+012c3c: */ + 0, /* U+012c3d: */ + 0, /* U+012c3e: */ + 0, /* U+012c3f: */ + 0, /* U+012c40: */ + 0, /* U+012c41: */ + 0, /* U+012c42: */ + 0, /* U+012c43: */ + 0, /* U+012c44: */ + 0, /* U+012c45: */ + 0, /* U+012c46: */ + 0, /* U+012c47: */ + 0, /* U+012c48: */ + 0, /* U+012c49: */ + 0, /* U+012c4a: */ + 0, /* U+012c4b: */ + 0, /* U+012c4c: */ + 0, /* U+012c4d: */ + 0, /* U+012c4e: */ + 0, /* U+012c4f: */ + 0, /* U+012c50: */ + 0, /* U+012c51: */ + 0, /* U+012c52: */ + 0, /* U+012c53: */ + 0, /* U+012c54: */ + 0, /* U+012c55: */ + 0, /* U+012c56: */ + 0, /* U+012c57: */ + 0, /* U+012c58: */ + 0, /* U+012c59: */ + 0, /* U+012c5a: */ + 0, /* U+012c5b: */ + 0, /* U+012c5c: */ + 0, /* U+012c5d: */ + 0, /* U+012c5e: */ + 0, /* U+012c5f: */ + 0, /* U+012c60: */ + 0, /* U+012c61: */ + 0, /* U+012c62: */ + 0, /* U+012c63: */ + 0, /* U+012c64: */ + 0, /* U+012c65: */ + 0, /* U+012c66: */ + 0, /* U+012c67: */ + 0, /* U+012c68: */ + 0, /* U+012c69: */ + 0, /* U+012c6a: */ + 0, /* U+012c6b: */ + 0, /* U+012c6c: */ + 0, /* U+012c6d: */ + 0, /* U+012c6e: */ + 0, /* U+012c6f: */ + 0, /* U+012c70: */ + 0, /* U+012c71: */ + 0, /* U+012c72: */ + 0, /* U+012c73: */ + 0, /* U+012c74: */ + 0, /* U+012c75: */ + 0, /* U+012c76: */ + 0, /* U+012c77: */ + 0, /* U+012c78: */ + 0, /* U+012c79: */ + 0, /* U+012c7a: */ + 0, /* U+012c7b: */ + 0, /* U+012c7c: */ + 0, /* U+012c7d: */ + 0, /* U+012c7e: */ + 0, /* U+012c7f: */ + 0, /* U+012c80: */ + 0, /* U+012c81: */ + 0, /* U+012c82: */ + 0, /* U+012c83: */ + 0, /* U+012c84: */ + 0, /* U+012c85: */ + 0, /* U+012c86: */ + 0, /* U+012c87: */ + 0, /* U+012c88: */ + 0, /* U+012c89: */ + 0, /* U+012c8a: */ + 0, /* U+012c8b: */ + 0, /* U+012c8c: */ + 0, /* U+012c8d: */ + 0, /* U+012c8e: */ + 0, /* U+012c8f: */ + 0, /* U+012c90: */ + 0, /* U+012c91: */ + 0, /* U+012c92: */ + 0, /* U+012c93: */ + 0, /* U+012c94: */ + 0, /* U+012c95: */ + 0, /* U+012c96: */ + 0, /* U+012c97: */ + 0, /* U+012c98: */ + 0, /* U+012c99: */ + 0, /* U+012c9a: */ + 0, /* U+012c9b: */ + 0, /* U+012c9c: */ + 0, /* U+012c9d: */ + 0, /* U+012c9e: */ + 0, /* U+012c9f: */ + 0, /* U+012ca0: */ + 0, /* U+012ca1: */ + 0, /* U+012ca2: */ + 0, /* U+012ca3: */ + 0, /* U+012ca4: */ + 0, /* U+012ca5: */ + 0, /* U+012ca6: */ + 0, /* U+012ca7: */ + 0, /* U+012ca8: */ + 0, /* U+012ca9: */ + 0, /* U+012caa: */ + 0, /* U+012cab: */ + 0, /* U+012cac: */ + 0, /* U+012cad: */ + 0, /* U+012cae: */ + 0, /* U+012caf: */ + 0, /* U+012cb0: */ + 0, /* U+012cb1: */ + 0, /* U+012cb2: */ + 0, /* U+012cb3: */ + 0, /* U+012cb4: */ + 0, /* U+012cb5: */ + 0, /* U+012cb6: */ + 0, /* U+012cb7: */ + 0, /* U+012cb8: */ + 0, /* U+012cb9: */ + 0, /* U+012cba: */ + 0, /* U+012cbb: */ + 0, /* U+012cbc: */ + 0, /* U+012cbd: */ + 0, /* U+012cbe: */ + 0, /* U+012cbf: */ + 0, /* U+012cc0: */ + 0, /* U+012cc1: */ + 0, /* U+012cc2: */ + 0, /* U+012cc3: */ + 0, /* U+012cc4: */ + 0, /* U+012cc5: */ + 0, /* U+012cc6: */ + 0, /* U+012cc7: */ + 0, /* U+012cc8: */ + 0, /* U+012cc9: */ + 0, /* U+012cca: */ + 0, /* U+012ccb: */ + 0, /* U+012ccc: */ + 0, /* U+012ccd: */ + 0, /* U+012cce: */ + 0, /* U+012ccf: */ + 0, /* U+012cd0: */ + 0, /* U+012cd1: */ + 0, /* U+012cd2: */ + 0, /* U+012cd3: */ + 0, /* U+012cd4: */ + 0, /* U+012cd5: */ + 0, /* U+012cd6: */ + 0, /* U+012cd7: */ + 0, /* U+012cd8: */ + 0, /* U+012cd9: */ + 0, /* U+012cda: */ + 0, /* U+012cdb: */ + 0, /* U+012cdc: */ + 0, /* U+012cdd: */ + 0, /* U+012cde: */ + 0, /* U+012cdf: */ + 0, /* U+012ce0: */ + 0, /* U+012ce1: */ + 0, /* U+012ce2: */ + 0, /* U+012ce3: */ + 0, /* U+012ce4: */ + 0, /* U+012ce5: */ + 0, /* U+012ce6: */ + 0, /* U+012ce7: */ + 0, /* U+012ce8: */ + 0, /* U+012ce9: */ + 0, /* U+012cea: */ + 0, /* U+012ceb: */ + 0, /* U+012cec: */ + 0, /* U+012ced: */ + 0, /* U+012cee: */ + 0, /* U+012cef: */ + 0, /* U+012cf0: */ + 0, /* U+012cf1: */ + 0, /* U+012cf2: */ + 0, /* U+012cf3: */ + 0, /* U+012cf4: */ + 0, /* U+012cf5: */ + 0, /* U+012cf6: */ + 0, /* U+012cf7: */ + 0, /* U+012cf8: */ + 0, /* U+012cf9: */ + 0, /* U+012cfa: */ + 0, /* U+012cfb: */ + 0, /* U+012cfc: */ + 0, /* U+012cfd: */ + 0, /* U+012cfe: */ + 0, /* U+012cff: */ + 0, /* U+012d00: */ + 0, /* U+012d01: */ + 0, /* U+012d02: */ + 0, /* U+012d03: */ + 0, /* U+012d04: */ + 0, /* U+012d05: */ + 0, /* U+012d06: */ + 0, /* U+012d07: */ + 0, /* U+012d08: */ + 0, /* U+012d09: */ + 0, /* U+012d0a: */ + 0, /* U+012d0b: */ + 0, /* U+012d0c: */ + 0, /* U+012d0d: */ + 0, /* U+012d0e: */ + 0, /* U+012d0f: */ + 0, /* U+012d10: */ + 0, /* U+012d11: */ + 0, /* U+012d12: */ + 0, /* U+012d13: */ + 0, /* U+012d14: */ + 0, /* U+012d15: */ + 0, /* U+012d16: */ + 0, /* U+012d17: */ + 0, /* U+012d18: */ + 0, /* U+012d19: */ + 0, /* U+012d1a: */ + 0, /* U+012d1b: */ + 0, /* U+012d1c: */ + 0, /* U+012d1d: */ + 0, /* U+012d1e: */ + 0, /* U+012d1f: */ + 0, /* U+012d20: */ + 0, /* U+012d21: */ + 0, /* U+012d22: */ + 0, /* U+012d23: */ + 0, /* U+012d24: */ + 0, /* U+012d25: */ + 0, /* U+012d26: */ + 0, /* U+012d27: */ + 0, /* U+012d28: */ + 0, /* U+012d29: */ + 0, /* U+012d2a: */ + 0, /* U+012d2b: */ + 0, /* U+012d2c: */ + 0, /* U+012d2d: */ + 0, /* U+012d2e: */ + 0, /* U+012d2f: */ + 0, /* U+012d30: */ + 0, /* U+012d31: */ + 0, /* U+012d32: */ + 0, /* U+012d33: */ + 0, /* U+012d34: */ + 0, /* U+012d35: */ + 0, /* U+012d36: */ + 0, /* U+012d37: */ + 0, /* U+012d38: */ + 0, /* U+012d39: */ + 0, /* U+012d3a: */ + 0, /* U+012d3b: */ + 0, /* U+012d3c: */ + 0, /* U+012d3d: */ + 0, /* U+012d3e: */ + 0, /* U+012d3f: */ + 0, /* U+012d40: */ + 0, /* U+012d41: */ + 0, /* U+012d42: */ + 0, /* U+012d43: */ + 0, /* U+012d44: */ + 0, /* U+012d45: */ + 0, /* U+012d46: */ + 0, /* U+012d47: */ + 0, /* U+012d48: */ + 0, /* U+012d49: */ + 0, /* U+012d4a: */ + 0, /* U+012d4b: */ + 0, /* U+012d4c: */ + 0, /* U+012d4d: */ + 0, /* U+012d4e: */ + 0, /* U+012d4f: */ + 0, /* U+012d50: */ + 0, /* U+012d51: */ + 0, /* U+012d52: */ + 0, /* U+012d53: */ + 0, /* U+012d54: */ + 0, /* U+012d55: */ + 0, /* U+012d56: */ + 0, /* U+012d57: */ + 0, /* U+012d58: */ + 0, /* U+012d59: */ + 0, /* U+012d5a: */ + 0, /* U+012d5b: */ + 0, /* U+012d5c: */ + 0, /* U+012d5d: */ + 0, /* U+012d5e: */ + 0, /* U+012d5f: */ + 0, /* U+012d60: */ + 0, /* U+012d61: */ + 0, /* U+012d62: */ + 0, /* U+012d63: */ + 0, /* U+012d64: */ + 0, /* U+012d65: */ + 0, /* U+012d66: */ + 0, /* U+012d67: */ + 0, /* U+012d68: */ + 0, /* U+012d69: */ + 0, /* U+012d6a: */ + 0, /* U+012d6b: */ + 0, /* U+012d6c: */ + 0, /* U+012d6d: */ + 0, /* U+012d6e: */ + 0, /* U+012d6f: */ + 0, /* U+012d70: */ + 0, /* U+012d71: */ + 0, /* U+012d72: */ + 0, /* U+012d73: */ + 0, /* U+012d74: */ + 0, /* U+012d75: */ + 0, /* U+012d76: */ + 0, /* U+012d77: */ + 0, /* U+012d78: */ + 0, /* U+012d79: */ + 0, /* U+012d7a: */ + 0, /* U+012d7b: */ + 0, /* U+012d7c: */ + 0, /* U+012d7d: */ + 0, /* U+012d7e: */ + 0, /* U+012d7f: */ + 0, /* U+012d80: */ + 0, /* U+012d81: */ + 0, /* U+012d82: */ + 0, /* U+012d83: */ + 0, /* U+012d84: */ + 0, /* U+012d85: */ + 0, /* U+012d86: */ + 0, /* U+012d87: */ + 0, /* U+012d88: */ + 0, /* U+012d89: */ + 0, /* U+012d8a: */ + 0, /* U+012d8b: */ + 0, /* U+012d8c: */ + 0, /* U+012d8d: */ + 0, /* U+012d8e: */ + 0, /* U+012d8f: */ + 0, /* U+012d90: */ + 0, /* U+012d91: */ + 0, /* U+012d92: */ + 0, /* U+012d93: */ + 0, /* U+012d94: */ + 0, /* U+012d95: */ + 0, /* U+012d96: */ + 0, /* U+012d97: */ + 0, /* U+012d98: */ + 0, /* U+012d99: */ + 0, /* U+012d9a: */ + 0, /* U+012d9b: */ + 0, /* U+012d9c: */ + 0, /* U+012d9d: */ + 0, /* U+012d9e: */ + 0, /* U+012d9f: */ + 0, /* U+012da0: */ + 0, /* U+012da1: */ + 0, /* U+012da2: */ + 0, /* U+012da3: */ + 0, /* U+012da4: */ + 0, /* U+012da5: */ + 0, /* U+012da6: */ + 0, /* U+012da7: */ + 0, /* U+012da8: */ + 0, /* U+012da9: */ + 0, /* U+012daa: */ + 0, /* U+012dab: */ + 0, /* U+012dac: */ + 0, /* U+012dad: */ + 0, /* U+012dae: */ + 0, /* U+012daf: */ + 0, /* U+012db0: */ + 0, /* U+012db1: */ + 0, /* U+012db2: */ + 0, /* U+012db3: */ + 0, /* U+012db4: */ + 0, /* U+012db5: */ + 0, /* U+012db6: */ + 0, /* U+012db7: */ + 0, /* U+012db8: */ + 0, /* U+012db9: */ + 0, /* U+012dba: */ + 0, /* U+012dbb: */ + 0, /* U+012dbc: */ + 0, /* U+012dbd: */ + 0, /* U+012dbe: */ + 0, /* U+012dbf: */ + 0, /* U+012dc0: */ + 0, /* U+012dc1: */ + 0, /* U+012dc2: */ + 0, /* U+012dc3: */ + 0, /* U+012dc4: */ + 0, /* U+012dc5: */ + 0, /* U+012dc6: */ + 0, /* U+012dc7: */ + 0, /* U+012dc8: */ + 0, /* U+012dc9: */ + 0, /* U+012dca: */ + 0, /* U+012dcb: */ + 0, /* U+012dcc: */ + 0, /* U+012dcd: */ + 0, /* U+012dce: */ + 0, /* U+012dcf: */ + 0, /* U+012dd0: */ + 0, /* U+012dd1: */ + 0, /* U+012dd2: */ + 0, /* U+012dd3: */ + 0, /* U+012dd4: */ + 0, /* U+012dd5: */ + 0, /* U+012dd6: */ + 0, /* U+012dd7: */ + 0, /* U+012dd8: */ + 0, /* U+012dd9: */ + 0, /* U+012dda: */ + 0, /* U+012ddb: */ + 0, /* U+012ddc: */ + 0, /* U+012ddd: */ + 0, /* U+012dde: */ + 0, /* U+012ddf: */ + 0, /* U+012de0: */ + 0, /* U+012de1: */ + 0, /* U+012de2: */ + 0, /* U+012de3: */ + 0, /* U+012de4: */ + 0, /* U+012de5: */ + 0, /* U+012de6: */ + 0, /* U+012de7: */ + 0, /* U+012de8: */ + 0, /* U+012de9: */ + 0, /* U+012dea: */ + 0, /* U+012deb: */ + 0, /* U+012dec: */ + 0, /* U+012ded: */ + 0, /* U+012dee: */ + 0, /* U+012def: */ + 0, /* U+012df0: */ + 0, /* U+012df1: */ + 0, /* U+012df2: */ + 0, /* U+012df3: */ + 0, /* U+012df4: */ + 0, /* U+012df5: */ + 0, /* U+012df6: */ + 0, /* U+012df7: */ + 0, /* U+012df8: */ + 0, /* U+012df9: */ + 0, /* U+012dfa: */ + 0, /* U+012dfb: */ + 0, /* U+012dfc: */ + 0, /* U+012dfd: */ + 0, /* U+012dfe: */ + 0, /* U+012dff: */ + 0, /* U+012e00: */ + 0, /* U+012e01: */ + 0, /* U+012e02: */ + 0, /* U+012e03: */ + 0, /* U+012e04: */ + 0, /* U+012e05: */ + 0, /* U+012e06: */ + 0, /* U+012e07: */ + 0, /* U+012e08: */ + 0, /* U+012e09: */ + 0, /* U+012e0a: */ + 0, /* U+012e0b: */ + 0, /* U+012e0c: */ + 0, /* U+012e0d: */ + 0, /* U+012e0e: */ + 0, /* U+012e0f: */ + 0, /* U+012e10: */ + 0, /* U+012e11: */ + 0, /* U+012e12: */ + 0, /* U+012e13: */ + 0, /* U+012e14: */ + 0, /* U+012e15: */ + 0, /* U+012e16: */ + 0, /* U+012e17: */ + 0, /* U+012e18: */ + 0, /* U+012e19: */ + 0, /* U+012e1a: */ + 0, /* U+012e1b: */ + 0, /* U+012e1c: */ + 0, /* U+012e1d: */ + 0, /* U+012e1e: */ + 0, /* U+012e1f: */ + 0, /* U+012e20: */ + 0, /* U+012e21: */ + 0, /* U+012e22: */ + 0, /* U+012e23: */ + 0, /* U+012e24: */ + 0, /* U+012e25: */ + 0, /* U+012e26: */ + 0, /* U+012e27: */ + 0, /* U+012e28: */ + 0, /* U+012e29: */ + 0, /* U+012e2a: */ + 0, /* U+012e2b: */ + 0, /* U+012e2c: */ + 0, /* U+012e2d: */ + 0, /* U+012e2e: */ + 0, /* U+012e2f: */ + 0, /* U+012e30: */ + 0, /* U+012e31: */ + 0, /* U+012e32: */ + 0, /* U+012e33: */ + 0, /* U+012e34: */ + 0, /* U+012e35: */ + 0, /* U+012e36: */ + 0, /* U+012e37: */ + 0, /* U+012e38: */ + 0, /* U+012e39: */ + 0, /* U+012e3a: */ + 0, /* U+012e3b: */ + 0, /* U+012e3c: */ + 0, /* U+012e3d: */ + 0, /* U+012e3e: */ + 0, /* U+012e3f: */ + 0, /* U+012e40: */ + 0, /* U+012e41: */ + 0, /* U+012e42: */ + 0, /* U+012e43: */ + 0, /* U+012e44: */ + 0, /* U+012e45: */ + 0, /* U+012e46: */ + 0, /* U+012e47: */ + 0, /* U+012e48: */ + 0, /* U+012e49: */ + 0, /* U+012e4a: */ + 0, /* U+012e4b: */ + 0, /* U+012e4c: */ + 0, /* U+012e4d: */ + 0, /* U+012e4e: */ + 0, /* U+012e4f: */ + 0, /* U+012e50: */ + 0, /* U+012e51: */ + 0, /* U+012e52: */ + 0, /* U+012e53: */ + 0, /* U+012e54: */ + 0, /* U+012e55: */ + 0, /* U+012e56: */ + 0, /* U+012e57: */ + 0, /* U+012e58: */ + 0, /* U+012e59: */ + 0, /* U+012e5a: */ + 0, /* U+012e5b: */ + 0, /* U+012e5c: */ + 0, /* U+012e5d: */ + 0, /* U+012e5e: */ + 0, /* U+012e5f: */ + 0, /* U+012e60: */ + 0, /* U+012e61: */ + 0, /* U+012e62: */ + 0, /* U+012e63: */ + 0, /* U+012e64: */ + 0, /* U+012e65: */ + 0, /* U+012e66: */ + 0, /* U+012e67: */ + 0, /* U+012e68: */ + 0, /* U+012e69: */ + 0, /* U+012e6a: */ + 0, /* U+012e6b: */ + 0, /* U+012e6c: */ + 0, /* U+012e6d: */ + 0, /* U+012e6e: */ + 0, /* U+012e6f: */ + 0, /* U+012e70: */ + 0, /* U+012e71: */ + 0, /* U+012e72: */ + 0, /* U+012e73: */ + 0, /* U+012e74: */ + 0, /* U+012e75: */ + 0, /* U+012e76: */ + 0, /* U+012e77: */ + 0, /* U+012e78: */ + 0, /* U+012e79: */ + 0, /* U+012e7a: */ + 0, /* U+012e7b: */ + 0, /* U+012e7c: */ + 0, /* U+012e7d: */ + 0, /* U+012e7e: */ + 0, /* U+012e7f: */ + 0, /* U+012e80: */ + 0, /* U+012e81: */ + 0, /* U+012e82: */ + 0, /* U+012e83: */ + 0, /* U+012e84: */ + 0, /* U+012e85: */ + 0, /* U+012e86: */ + 0, /* U+012e87: */ + 0, /* U+012e88: */ + 0, /* U+012e89: */ + 0, /* U+012e8a: */ + 0, /* U+012e8b: */ + 0, /* U+012e8c: */ + 0, /* U+012e8d: */ + 0, /* U+012e8e: */ + 0, /* U+012e8f: */ + 0, /* U+012e90: */ + 0, /* U+012e91: */ + 0, /* U+012e92: */ + 0, /* U+012e93: */ + 0, /* U+012e94: */ + 0, /* U+012e95: */ + 0, /* U+012e96: */ + 0, /* U+012e97: */ + 0, /* U+012e98: */ + 0, /* U+012e99: */ + 0, /* U+012e9a: */ + 0, /* U+012e9b: */ + 0, /* U+012e9c: */ + 0, /* U+012e9d: */ + 0, /* U+012e9e: */ + 0, /* U+012e9f: */ + 0, /* U+012ea0: */ + 0, /* U+012ea1: */ + 0, /* U+012ea2: */ + 0, /* U+012ea3: */ + 0, /* U+012ea4: */ + 0, /* U+012ea5: */ + 0, /* U+012ea6: */ + 0, /* U+012ea7: */ + 0, /* U+012ea8: */ + 0, /* U+012ea9: */ + 0, /* U+012eaa: */ + 0, /* U+012eab: */ + 0, /* U+012eac: */ + 0, /* U+012ead: */ + 0, /* U+012eae: */ + 0, /* U+012eaf: */ + 0, /* U+012eb0: */ + 0, /* U+012eb1: */ + 0, /* U+012eb2: */ + 0, /* U+012eb3: */ + 0, /* U+012eb4: */ + 0, /* U+012eb5: */ + 0, /* U+012eb6: */ + 0, /* U+012eb7: */ + 0, /* U+012eb8: */ + 0, /* U+012eb9: */ + 0, /* U+012eba: */ + 0, /* U+012ebb: */ + 0, /* U+012ebc: */ + 0, /* U+012ebd: */ + 0, /* U+012ebe: */ + 0, /* U+012ebf: */ + 0, /* U+012ec0: */ + 0, /* U+012ec1: */ + 0, /* U+012ec2: */ + 0, /* U+012ec3: */ + 0, /* U+012ec4: */ + 0, /* U+012ec5: */ + 0, /* U+012ec6: */ + 0, /* U+012ec7: */ + 0, /* U+012ec8: */ + 0, /* U+012ec9: */ + 0, /* U+012eca: */ + 0, /* U+012ecb: */ + 0, /* U+012ecc: */ + 0, /* U+012ecd: */ + 0, /* U+012ece: */ + 0, /* U+012ecf: */ + 0, /* U+012ed0: */ + 0, /* U+012ed1: */ + 0, /* U+012ed2: */ + 0, /* U+012ed3: */ + 0, /* U+012ed4: */ + 0, /* U+012ed5: */ + 0, /* U+012ed6: */ + 0, /* U+012ed7: */ + 0, /* U+012ed8: */ + 0, /* U+012ed9: */ + 0, /* U+012eda: */ + 0, /* U+012edb: */ + 0, /* U+012edc: */ + 0, /* U+012edd: */ + 0, /* U+012ede: */ + 0, /* U+012edf: */ + 0, /* U+012ee0: */ + 0, /* U+012ee1: */ + 0, /* U+012ee2: */ + 0, /* U+012ee3: */ + 0, /* U+012ee4: */ + 0, /* U+012ee5: */ + 0, /* U+012ee6: */ + 0, /* U+012ee7: */ + 0, /* U+012ee8: */ + 0, /* U+012ee9: */ + 0, /* U+012eea: */ + 0, /* U+012eeb: */ + 0, /* U+012eec: */ + 0, /* U+012eed: */ + 0, /* U+012eee: */ + 0, /* U+012eef: */ + 0, /* U+012ef0: */ + 0, /* U+012ef1: */ + 0, /* U+012ef2: */ + 0, /* U+012ef3: */ + 0, /* U+012ef4: */ + 0, /* U+012ef5: */ + 0, /* U+012ef6: */ + 0, /* U+012ef7: */ + 0, /* U+012ef8: */ + 0, /* U+012ef9: */ + 0, /* U+012efa: */ + 0, /* U+012efb: */ + 0, /* U+012efc: */ + 0, /* U+012efd: */ + 0, /* U+012efe: */ + 0, /* U+012eff: */ + 0, /* U+012f00: */ + 0, /* U+012f01: */ + 0, /* U+012f02: */ + 0, /* U+012f03: */ + 0, /* U+012f04: */ + 0, /* U+012f05: */ + 0, /* U+012f06: */ + 0, /* U+012f07: */ + 0, /* U+012f08: */ + 0, /* U+012f09: */ + 0, /* U+012f0a: */ + 0, /* U+012f0b: */ + 0, /* U+012f0c: */ + 0, /* U+012f0d: */ + 0, /* U+012f0e: */ + 0, /* U+012f0f: */ + 0, /* U+012f10: */ + 0, /* U+012f11: */ + 0, /* U+012f12: */ + 0, /* U+012f13: */ + 0, /* U+012f14: */ + 0, /* U+012f15: */ + 0, /* U+012f16: */ + 0, /* U+012f17: */ + 0, /* U+012f18: */ + 0, /* U+012f19: */ + 0, /* U+012f1a: */ + 0, /* U+012f1b: */ + 0, /* U+012f1c: */ + 0, /* U+012f1d: */ + 0, /* U+012f1e: */ + 0, /* U+012f1f: */ + 0, /* U+012f20: */ + 0, /* U+012f21: */ + 0, /* U+012f22: */ + 0, /* U+012f23: */ + 0, /* U+012f24: */ + 0, /* U+012f25: */ + 0, /* U+012f26: */ + 0, /* U+012f27: */ + 0, /* U+012f28: */ + 0, /* U+012f29: */ + 0, /* U+012f2a: */ + 0, /* U+012f2b: */ + 0, /* U+012f2c: */ + 0, /* U+012f2d: */ + 0, /* U+012f2e: */ + 0, /* U+012f2f: */ + 0, /* U+012f30: */ + 0, /* U+012f31: */ + 0, /* U+012f32: */ + 0, /* U+012f33: */ + 0, /* U+012f34: */ + 0, /* U+012f35: */ + 0, /* U+012f36: */ + 0, /* U+012f37: */ + 0, /* U+012f38: */ + 0, /* U+012f39: */ + 0, /* U+012f3a: */ + 0, /* U+012f3b: */ + 0, /* U+012f3c: */ + 0, /* U+012f3d: */ + 0, /* U+012f3e: */ + 0, /* U+012f3f: */ + 0, /* U+012f40: */ + 0, /* U+012f41: */ + 0, /* U+012f42: */ + 0, /* U+012f43: */ + 0, /* U+012f44: */ + 0, /* U+012f45: */ + 0, /* U+012f46: */ + 0, /* U+012f47: */ + 0, /* U+012f48: */ + 0, /* U+012f49: */ + 0, /* U+012f4a: */ + 0, /* U+012f4b: */ + 0, /* U+012f4c: */ + 0, /* U+012f4d: */ + 0, /* U+012f4e: */ + 0, /* U+012f4f: */ + 0, /* U+012f50: */ + 0, /* U+012f51: */ + 0, /* U+012f52: */ + 0, /* U+012f53: */ + 0, /* U+012f54: */ + 0, /* U+012f55: */ + 0, /* U+012f56: */ + 0, /* U+012f57: */ + 0, /* U+012f58: */ + 0, /* U+012f59: */ + 0, /* U+012f5a: */ + 0, /* U+012f5b: */ + 0, /* U+012f5c: */ + 0, /* U+012f5d: */ + 0, /* U+012f5e: */ + 0, /* U+012f5f: */ + 0, /* U+012f60: */ + 0, /* U+012f61: */ + 0, /* U+012f62: */ + 0, /* U+012f63: */ + 0, /* U+012f64: */ + 0, /* U+012f65: */ + 0, /* U+012f66: */ + 0, /* U+012f67: */ + 0, /* U+012f68: */ + 0, /* U+012f69: */ + 0, /* U+012f6a: */ + 0, /* U+012f6b: */ + 0, /* U+012f6c: */ + 0, /* U+012f6d: */ + 0, /* U+012f6e: */ + 0, /* U+012f6f: */ + 0, /* U+012f70: */ + 0, /* U+012f71: */ + 0, /* U+012f72: */ + 0, /* U+012f73: */ + 0, /* U+012f74: */ + 0, /* U+012f75: */ + 0, /* U+012f76: */ + 0, /* U+012f77: */ + 0, /* U+012f78: */ + 0, /* U+012f79: */ + 0, /* U+012f7a: */ + 0, /* U+012f7b: */ + 0, /* U+012f7c: */ + 0, /* U+012f7d: */ + 0, /* U+012f7e: */ + 0, /* U+012f7f: */ + 0, /* U+012f80: */ + 0, /* U+012f81: */ + 0, /* U+012f82: */ + 0, /* U+012f83: */ + 0, /* U+012f84: */ + 0, /* U+012f85: */ + 0, /* U+012f86: */ + 0, /* U+012f87: */ + 0, /* U+012f88: */ + 0, /* U+012f89: */ + 0, /* U+012f8a: */ + 0, /* U+012f8b: */ + 0, /* U+012f8c: */ + 0, /* U+012f8d: */ + 0, /* U+012f8e: */ + 0, /* U+012f8f: */ + 0, /* U+012f90: */ + 0, /* U+012f91: */ + 0, /* U+012f92: */ + 0, /* U+012f93: */ + 0, /* U+012f94: */ + 0, /* U+012f95: */ + 0, /* U+012f96: */ + 0, /* U+012f97: */ + 0, /* U+012f98: */ + 0, /* U+012f99: */ + 0, /* U+012f9a: */ + 0, /* U+012f9b: */ + 0, /* U+012f9c: */ + 0, /* U+012f9d: */ + 0, /* U+012f9e: */ + 0, /* U+012f9f: */ + 0, /* U+012fa0: */ + 0, /* U+012fa1: */ + 0, /* U+012fa2: */ + 0, /* U+012fa3: */ + 0, /* U+012fa4: */ + 0, /* U+012fa5: */ + 0, /* U+012fa6: */ + 0, /* U+012fa7: */ + 0, /* U+012fa8: */ + 0, /* U+012fa9: */ + 0, /* U+012faa: */ + 0, /* U+012fab: */ + 0, /* U+012fac: */ + 0, /* U+012fad: */ + 0, /* U+012fae: */ + 0, /* U+012faf: */ + 0, /* U+012fb0: */ + 0, /* U+012fb1: */ + 0, /* U+012fb2: */ + 0, /* U+012fb3: */ + 0, /* U+012fb4: */ + 0, /* U+012fb5: */ + 0, /* U+012fb6: */ + 0, /* U+012fb7: */ + 0, /* U+012fb8: */ + 0, /* U+012fb9: */ + 0, /* U+012fba: */ + 0, /* U+012fbb: */ + 0, /* U+012fbc: */ + 0, /* U+012fbd: */ + 0, /* U+012fbe: */ + 0, /* U+012fbf: */ + 0, /* U+012fc0: */ + 0, /* U+012fc1: */ + 0, /* U+012fc2: */ + 0, /* U+012fc3: */ + 0, /* U+012fc4: */ + 0, /* U+012fc5: */ + 0, /* U+012fc6: */ + 0, /* U+012fc7: */ + 0, /* U+012fc8: */ + 0, /* U+012fc9: */ + 0, /* U+012fca: */ + 0, /* U+012fcb: */ + 0, /* U+012fcc: */ + 0, /* U+012fcd: */ + 0, /* U+012fce: */ + 0, /* U+012fcf: */ + 0, /* U+012fd0: */ + 0, /* U+012fd1: */ + 0, /* U+012fd2: */ + 0, /* U+012fd3: */ + 0, /* U+012fd4: */ + 0, /* U+012fd5: */ + 0, /* U+012fd6: */ + 0, /* U+012fd7: */ + 0, /* U+012fd8: */ + 0, /* U+012fd9: */ + 0, /* U+012fda: */ + 0, /* U+012fdb: */ + 0, /* U+012fdc: */ + 0, /* U+012fdd: */ + 0, /* U+012fde: */ + 0, /* U+012fdf: */ + 0, /* U+012fe0: */ + 0, /* U+012fe1: */ + 0, /* U+012fe2: */ + 0, /* U+012fe3: */ + 0, /* U+012fe4: */ + 0, /* U+012fe5: */ + 0, /* U+012fe6: */ + 0, /* U+012fe7: */ + 0, /* U+012fe8: */ + 0, /* U+012fe9: */ + 0, /* U+012fea: */ + 0, /* U+012feb: */ + 0, /* U+012fec: */ + 0, /* U+012fed: */ + 0, /* U+012fee: */ + 0, /* U+012fef: */ + 0, /* U+012ff0: */ + 0, /* U+012ff1: */ + 0, /* U+012ff2: */ + 0, /* U+012ff3: */ + 0, /* U+012ff4: */ + 0, /* U+012ff5: */ + 0, /* U+012ff6: */ + 0, /* U+012ff7: */ + 0, /* U+012ff8: */ + 0, /* U+012ff9: */ + 0, /* U+012ffa: */ + 0, /* U+012ffb: */ + 0, /* U+012ffc: */ + 0, /* U+012ffd: */ + 0, /* U+012ffe: */ + 0, /* U+012fff: */ + RTUNI_ALPHA, /* U+013000: EGYPTIAN HIEROGLYPH A001*/ + RTUNI_ALPHA, /* U+013001: EGYPTIAN HIEROGLYPH A002*/ + RTUNI_ALPHA, /* U+013002: EGYPTIAN HIEROGLYPH A003*/ + RTUNI_ALPHA, /* U+013003: EGYPTIAN HIEROGLYPH A004*/ + RTUNI_ALPHA, /* U+013004: EGYPTIAN HIEROGLYPH A005*/ + RTUNI_ALPHA, /* U+013005: EGYPTIAN HIEROGLYPH A005A*/ + RTUNI_ALPHA, /* U+013006: EGYPTIAN HIEROGLYPH A006*/ + RTUNI_ALPHA, /* U+013007: EGYPTIAN HIEROGLYPH A006A*/ + RTUNI_ALPHA, /* U+013008: EGYPTIAN HIEROGLYPH A006B*/ + RTUNI_ALPHA, /* U+013009: EGYPTIAN HIEROGLYPH A007*/ + RTUNI_ALPHA, /* U+01300a: EGYPTIAN HIEROGLYPH A008*/ + RTUNI_ALPHA, /* U+01300b: EGYPTIAN HIEROGLYPH A009*/ + RTUNI_ALPHA, /* U+01300c: EGYPTIAN HIEROGLYPH A010*/ + RTUNI_ALPHA, /* U+01300d: EGYPTIAN HIEROGLYPH A011*/ + RTUNI_ALPHA, /* U+01300e: EGYPTIAN HIEROGLYPH A012*/ + RTUNI_ALPHA, /* U+01300f: EGYPTIAN HIEROGLYPH A013*/ + RTUNI_ALPHA, /* U+013010: EGYPTIAN HIEROGLYPH A014*/ + RTUNI_ALPHA, /* U+013011: EGYPTIAN HIEROGLYPH A014A*/ + RTUNI_ALPHA, /* U+013012: EGYPTIAN HIEROGLYPH A015*/ + RTUNI_ALPHA, /* U+013013: EGYPTIAN HIEROGLYPH A016*/ + RTUNI_ALPHA, /* U+013014: EGYPTIAN HIEROGLYPH A017*/ + RTUNI_ALPHA, /* U+013015: EGYPTIAN HIEROGLYPH A017A*/ + RTUNI_ALPHA, /* U+013016: EGYPTIAN HIEROGLYPH A018*/ + RTUNI_ALPHA, /* U+013017: EGYPTIAN HIEROGLYPH A019*/ + RTUNI_ALPHA, /* U+013018: EGYPTIAN HIEROGLYPH A020*/ + RTUNI_ALPHA, /* U+013019: EGYPTIAN HIEROGLYPH A021*/ + RTUNI_ALPHA, /* U+01301a: EGYPTIAN HIEROGLYPH A022*/ + RTUNI_ALPHA, /* U+01301b: EGYPTIAN HIEROGLYPH A023*/ + RTUNI_ALPHA, /* U+01301c: EGYPTIAN HIEROGLYPH A024*/ + RTUNI_ALPHA, /* U+01301d: EGYPTIAN HIEROGLYPH A025*/ + RTUNI_ALPHA, /* U+01301e: EGYPTIAN HIEROGLYPH A026*/ + RTUNI_ALPHA, /* U+01301f: EGYPTIAN HIEROGLYPH A027*/ + RTUNI_ALPHA, /* U+013020: EGYPTIAN HIEROGLYPH A028*/ + RTUNI_ALPHA, /* U+013021: EGYPTIAN HIEROGLYPH A029*/ + RTUNI_ALPHA, /* U+013022: EGYPTIAN HIEROGLYPH A030*/ + RTUNI_ALPHA, /* U+013023: EGYPTIAN HIEROGLYPH A031*/ + RTUNI_ALPHA, /* U+013024: EGYPTIAN HIEROGLYPH A032*/ + RTUNI_ALPHA, /* U+013025: EGYPTIAN HIEROGLYPH A032A*/ + RTUNI_ALPHA, /* U+013026: EGYPTIAN HIEROGLYPH A033*/ + RTUNI_ALPHA, /* U+013027: EGYPTIAN HIEROGLYPH A034*/ + RTUNI_ALPHA, /* U+013028: EGYPTIAN HIEROGLYPH A035*/ + RTUNI_ALPHA, /* U+013029: EGYPTIAN HIEROGLYPH A036*/ + RTUNI_ALPHA, /* U+01302a: EGYPTIAN HIEROGLYPH A037*/ + RTUNI_ALPHA, /* U+01302b: EGYPTIAN HIEROGLYPH A038*/ + RTUNI_ALPHA, /* U+01302c: EGYPTIAN HIEROGLYPH A039*/ + RTUNI_ALPHA, /* U+01302d: EGYPTIAN HIEROGLYPH A040*/ + RTUNI_ALPHA, /* U+01302e: EGYPTIAN HIEROGLYPH A040A*/ + RTUNI_ALPHA, /* U+01302f: EGYPTIAN HIEROGLYPH A041*/ + RTUNI_ALPHA, /* U+013030: EGYPTIAN HIEROGLYPH A042*/ + RTUNI_ALPHA, /* U+013031: EGYPTIAN HIEROGLYPH A042A*/ + RTUNI_ALPHA, /* U+013032: EGYPTIAN HIEROGLYPH A043*/ + RTUNI_ALPHA, /* U+013033: EGYPTIAN HIEROGLYPH A043A*/ + RTUNI_ALPHA, /* U+013034: EGYPTIAN HIEROGLYPH A044*/ + RTUNI_ALPHA, /* U+013035: EGYPTIAN HIEROGLYPH A045*/ + RTUNI_ALPHA, /* U+013036: EGYPTIAN HIEROGLYPH A045A*/ + RTUNI_ALPHA, /* U+013037: EGYPTIAN HIEROGLYPH A046*/ + RTUNI_ALPHA, /* U+013038: EGYPTIAN HIEROGLYPH A047*/ + RTUNI_ALPHA, /* U+013039: EGYPTIAN HIEROGLYPH A048*/ + RTUNI_ALPHA, /* U+01303a: EGYPTIAN HIEROGLYPH A049*/ + RTUNI_ALPHA, /* U+01303b: EGYPTIAN HIEROGLYPH A050*/ + RTUNI_ALPHA, /* U+01303c: EGYPTIAN HIEROGLYPH A051*/ + RTUNI_ALPHA, /* U+01303d: EGYPTIAN HIEROGLYPH A052*/ + RTUNI_ALPHA, /* U+01303e: EGYPTIAN HIEROGLYPH A053*/ + RTUNI_ALPHA, /* U+01303f: EGYPTIAN HIEROGLYPH A054*/ + RTUNI_ALPHA, /* U+013040: EGYPTIAN HIEROGLYPH A055*/ + RTUNI_ALPHA, /* U+013041: EGYPTIAN HIEROGLYPH A056*/ + RTUNI_ALPHA, /* U+013042: EGYPTIAN HIEROGLYPH A057*/ + RTUNI_ALPHA, /* U+013043: EGYPTIAN HIEROGLYPH A058*/ + RTUNI_ALPHA, /* U+013044: EGYPTIAN HIEROGLYPH A059*/ + RTUNI_ALPHA, /* U+013045: EGYPTIAN HIEROGLYPH A060*/ + RTUNI_ALPHA, /* U+013046: EGYPTIAN HIEROGLYPH A061*/ + RTUNI_ALPHA, /* U+013047: EGYPTIAN HIEROGLYPH A062*/ + RTUNI_ALPHA, /* U+013048: EGYPTIAN HIEROGLYPH A063*/ + RTUNI_ALPHA, /* U+013049: EGYPTIAN HIEROGLYPH A064*/ + RTUNI_ALPHA, /* U+01304a: EGYPTIAN HIEROGLYPH A065*/ + RTUNI_ALPHA, /* U+01304b: EGYPTIAN HIEROGLYPH A066*/ + RTUNI_ALPHA, /* U+01304c: EGYPTIAN HIEROGLYPH A067*/ + RTUNI_ALPHA, /* U+01304d: EGYPTIAN HIEROGLYPH A068*/ + RTUNI_ALPHA, /* U+01304e: EGYPTIAN HIEROGLYPH A069*/ + RTUNI_ALPHA, /* U+01304f: EGYPTIAN HIEROGLYPH A070*/ + RTUNI_ALPHA, /* U+013050: EGYPTIAN HIEROGLYPH B001*/ + RTUNI_ALPHA, /* U+013051: EGYPTIAN HIEROGLYPH B002*/ + RTUNI_ALPHA, /* U+013052: EGYPTIAN HIEROGLYPH B003*/ + RTUNI_ALPHA, /* U+013053: EGYPTIAN HIEROGLYPH B004*/ + RTUNI_ALPHA, /* U+013054: EGYPTIAN HIEROGLYPH B005*/ + RTUNI_ALPHA, /* U+013055: EGYPTIAN HIEROGLYPH B005A*/ + RTUNI_ALPHA, /* U+013056: EGYPTIAN HIEROGLYPH B006*/ + RTUNI_ALPHA, /* U+013057: EGYPTIAN HIEROGLYPH B007*/ + RTUNI_ALPHA, /* U+013058: EGYPTIAN HIEROGLYPH B008*/ + RTUNI_ALPHA, /* U+013059: EGYPTIAN HIEROGLYPH B009*/ + RTUNI_ALPHA, /* U+01305a: EGYPTIAN HIEROGLYPH C001*/ + RTUNI_ALPHA, /* U+01305b: EGYPTIAN HIEROGLYPH C002*/ + RTUNI_ALPHA, /* U+01305c: EGYPTIAN HIEROGLYPH C002A*/ + RTUNI_ALPHA, /* U+01305d: EGYPTIAN HIEROGLYPH C002B*/ + RTUNI_ALPHA, /* U+01305e: EGYPTIAN HIEROGLYPH C002C*/ + RTUNI_ALPHA, /* U+01305f: EGYPTIAN HIEROGLYPH C003*/ + RTUNI_ALPHA, /* U+013060: EGYPTIAN HIEROGLYPH C004*/ + RTUNI_ALPHA, /* U+013061: EGYPTIAN HIEROGLYPH C005*/ + RTUNI_ALPHA, /* U+013062: EGYPTIAN HIEROGLYPH C006*/ + RTUNI_ALPHA, /* U+013063: EGYPTIAN HIEROGLYPH C007*/ + RTUNI_ALPHA, /* U+013064: EGYPTIAN HIEROGLYPH C008*/ + RTUNI_ALPHA, /* U+013065: EGYPTIAN HIEROGLYPH C009*/ + RTUNI_ALPHA, /* U+013066: EGYPTIAN HIEROGLYPH C010*/ + RTUNI_ALPHA, /* U+013067: EGYPTIAN HIEROGLYPH C010A*/ + RTUNI_ALPHA, /* U+013068: EGYPTIAN HIEROGLYPH C011*/ + RTUNI_ALPHA, /* U+013069: EGYPTIAN HIEROGLYPH C012*/ + RTUNI_ALPHA, /* U+01306a: EGYPTIAN HIEROGLYPH C013*/ + RTUNI_ALPHA, /* U+01306b: EGYPTIAN HIEROGLYPH C014*/ + RTUNI_ALPHA, /* U+01306c: EGYPTIAN HIEROGLYPH C015*/ + RTUNI_ALPHA, /* U+01306d: EGYPTIAN HIEROGLYPH C016*/ + RTUNI_ALPHA, /* U+01306e: EGYPTIAN HIEROGLYPH C017*/ + RTUNI_ALPHA, /* U+01306f: EGYPTIAN HIEROGLYPH C018*/ + RTUNI_ALPHA, /* U+013070: EGYPTIAN HIEROGLYPH C019*/ + RTUNI_ALPHA, /* U+013071: EGYPTIAN HIEROGLYPH C020*/ + RTUNI_ALPHA, /* U+013072: EGYPTIAN HIEROGLYPH C021*/ + RTUNI_ALPHA, /* U+013073: EGYPTIAN HIEROGLYPH C022*/ + RTUNI_ALPHA, /* U+013074: EGYPTIAN HIEROGLYPH C023*/ + RTUNI_ALPHA, /* U+013075: EGYPTIAN HIEROGLYPH C024*/ + RTUNI_ALPHA, /* U+013076: EGYPTIAN HIEROGLYPH D001*/ + RTUNI_ALPHA, /* U+013077: EGYPTIAN HIEROGLYPH D002*/ + RTUNI_ALPHA, /* U+013078: EGYPTIAN HIEROGLYPH D003*/ + RTUNI_ALPHA, /* U+013079: EGYPTIAN HIEROGLYPH D004*/ + RTUNI_ALPHA, /* U+01307a: EGYPTIAN HIEROGLYPH D005*/ + RTUNI_ALPHA, /* U+01307b: EGYPTIAN HIEROGLYPH D006*/ + RTUNI_ALPHA, /* U+01307c: EGYPTIAN HIEROGLYPH D007*/ + RTUNI_ALPHA, /* U+01307d: EGYPTIAN HIEROGLYPH D008*/ + RTUNI_ALPHA, /* U+01307e: EGYPTIAN HIEROGLYPH D008A*/ + RTUNI_ALPHA, /* U+01307f: EGYPTIAN HIEROGLYPH D009*/ + RTUNI_ALPHA, /* U+013080: EGYPTIAN HIEROGLYPH D010*/ + RTUNI_ALPHA, /* U+013081: EGYPTIAN HIEROGLYPH D011*/ + RTUNI_ALPHA, /* U+013082: EGYPTIAN HIEROGLYPH D012*/ + RTUNI_ALPHA, /* U+013083: EGYPTIAN HIEROGLYPH D013*/ + RTUNI_ALPHA, /* U+013084: EGYPTIAN HIEROGLYPH D014*/ + RTUNI_ALPHA, /* U+013085: EGYPTIAN HIEROGLYPH D015*/ + RTUNI_ALPHA, /* U+013086: EGYPTIAN HIEROGLYPH D016*/ + RTUNI_ALPHA, /* U+013087: EGYPTIAN HIEROGLYPH D017*/ + RTUNI_ALPHA, /* U+013088: EGYPTIAN HIEROGLYPH D018*/ + RTUNI_ALPHA, /* U+013089: EGYPTIAN HIEROGLYPH D019*/ + RTUNI_ALPHA, /* U+01308a: EGYPTIAN HIEROGLYPH D020*/ + RTUNI_ALPHA, /* U+01308b: EGYPTIAN HIEROGLYPH D021*/ + RTUNI_ALPHA, /* U+01308c: EGYPTIAN HIEROGLYPH D022*/ + RTUNI_ALPHA, /* U+01308d: EGYPTIAN HIEROGLYPH D023*/ + RTUNI_ALPHA, /* U+01308e: EGYPTIAN HIEROGLYPH D024*/ + RTUNI_ALPHA, /* U+01308f: EGYPTIAN HIEROGLYPH D025*/ + RTUNI_ALPHA, /* U+013090: EGYPTIAN HIEROGLYPH D026*/ + RTUNI_ALPHA, /* U+013091: EGYPTIAN HIEROGLYPH D027*/ + RTUNI_ALPHA, /* U+013092: EGYPTIAN HIEROGLYPH D027A*/ + RTUNI_ALPHA, /* U+013093: EGYPTIAN HIEROGLYPH D028*/ + RTUNI_ALPHA, /* U+013094: EGYPTIAN HIEROGLYPH D029*/ + RTUNI_ALPHA, /* U+013095: EGYPTIAN HIEROGLYPH D030*/ + RTUNI_ALPHA, /* U+013096: EGYPTIAN HIEROGLYPH D031*/ + RTUNI_ALPHA, /* U+013097: EGYPTIAN HIEROGLYPH D031A*/ + RTUNI_ALPHA, /* U+013098: EGYPTIAN HIEROGLYPH D032*/ + RTUNI_ALPHA, /* U+013099: EGYPTIAN HIEROGLYPH D033*/ + RTUNI_ALPHA, /* U+01309a: EGYPTIAN HIEROGLYPH D034*/ + RTUNI_ALPHA, /* U+01309b: EGYPTIAN HIEROGLYPH D034A*/ + RTUNI_ALPHA, /* U+01309c: EGYPTIAN HIEROGLYPH D035*/ + RTUNI_ALPHA, /* U+01309d: EGYPTIAN HIEROGLYPH D036*/ + RTUNI_ALPHA, /* U+01309e: EGYPTIAN HIEROGLYPH D037*/ + RTUNI_ALPHA, /* U+01309f: EGYPTIAN HIEROGLYPH D038*/ + RTUNI_ALPHA, /* U+0130a0: EGYPTIAN HIEROGLYPH D039*/ + RTUNI_ALPHA, /* U+0130a1: EGYPTIAN HIEROGLYPH D040*/ + RTUNI_ALPHA, /* U+0130a2: EGYPTIAN HIEROGLYPH D041*/ + RTUNI_ALPHA, /* U+0130a3: EGYPTIAN HIEROGLYPH D042*/ + RTUNI_ALPHA, /* U+0130a4: EGYPTIAN HIEROGLYPH D043*/ + RTUNI_ALPHA, /* U+0130a5: EGYPTIAN HIEROGLYPH D044*/ + RTUNI_ALPHA, /* U+0130a6: EGYPTIAN HIEROGLYPH D045*/ + RTUNI_ALPHA, /* U+0130a7: EGYPTIAN HIEROGLYPH D046*/ + RTUNI_ALPHA, /* U+0130a8: EGYPTIAN HIEROGLYPH D046A*/ + RTUNI_ALPHA, /* U+0130a9: EGYPTIAN HIEROGLYPH D047*/ + RTUNI_ALPHA, /* U+0130aa: EGYPTIAN HIEROGLYPH D048*/ + RTUNI_ALPHA, /* U+0130ab: EGYPTIAN HIEROGLYPH D048A*/ + RTUNI_ALPHA, /* U+0130ac: EGYPTIAN HIEROGLYPH D049*/ + RTUNI_ALPHA, /* U+0130ad: EGYPTIAN HIEROGLYPH D050*/ + RTUNI_ALPHA, /* U+0130ae: EGYPTIAN HIEROGLYPH D050A*/ + RTUNI_ALPHA, /* U+0130af: EGYPTIAN HIEROGLYPH D050B*/ + RTUNI_ALPHA, /* U+0130b0: EGYPTIAN HIEROGLYPH D050C*/ + RTUNI_ALPHA, /* U+0130b1: EGYPTIAN HIEROGLYPH D050D*/ + RTUNI_ALPHA, /* U+0130b2: EGYPTIAN HIEROGLYPH D050E*/ + RTUNI_ALPHA, /* U+0130b3: EGYPTIAN HIEROGLYPH D050F*/ + RTUNI_ALPHA, /* U+0130b4: EGYPTIAN HIEROGLYPH D050G*/ + RTUNI_ALPHA, /* U+0130b5: EGYPTIAN HIEROGLYPH D050H*/ + RTUNI_ALPHA, /* U+0130b6: EGYPTIAN HIEROGLYPH D050I*/ + RTUNI_ALPHA, /* U+0130b7: EGYPTIAN HIEROGLYPH D051*/ + RTUNI_ALPHA, /* U+0130b8: EGYPTIAN HIEROGLYPH D052*/ + RTUNI_ALPHA, /* U+0130b9: EGYPTIAN HIEROGLYPH D052A*/ + RTUNI_ALPHA, /* U+0130ba: EGYPTIAN HIEROGLYPH D053*/ + RTUNI_ALPHA, /* U+0130bb: EGYPTIAN HIEROGLYPH D054*/ + RTUNI_ALPHA, /* U+0130bc: EGYPTIAN HIEROGLYPH D054A*/ + RTUNI_ALPHA, /* U+0130bd: EGYPTIAN HIEROGLYPH D055*/ + RTUNI_ALPHA, /* U+0130be: EGYPTIAN HIEROGLYPH D056*/ + RTUNI_ALPHA, /* U+0130bf: EGYPTIAN HIEROGLYPH D057*/ + RTUNI_ALPHA, /* U+0130c0: EGYPTIAN HIEROGLYPH D058*/ + RTUNI_ALPHA, /* U+0130c1: EGYPTIAN HIEROGLYPH D059*/ + RTUNI_ALPHA, /* U+0130c2: EGYPTIAN HIEROGLYPH D060*/ + RTUNI_ALPHA, /* U+0130c3: EGYPTIAN HIEROGLYPH D061*/ + RTUNI_ALPHA, /* U+0130c4: EGYPTIAN HIEROGLYPH D062*/ + RTUNI_ALPHA, /* U+0130c5: EGYPTIAN HIEROGLYPH D063*/ + RTUNI_ALPHA, /* U+0130c6: EGYPTIAN HIEROGLYPH D064*/ + RTUNI_ALPHA, /* U+0130c7: EGYPTIAN HIEROGLYPH D065*/ + RTUNI_ALPHA, /* U+0130c8: EGYPTIAN HIEROGLYPH D066*/ + RTUNI_ALPHA, /* U+0130c9: EGYPTIAN HIEROGLYPH D067*/ + RTUNI_ALPHA, /* U+0130ca: EGYPTIAN HIEROGLYPH D067A*/ + RTUNI_ALPHA, /* U+0130cb: EGYPTIAN HIEROGLYPH D067B*/ + RTUNI_ALPHA, /* U+0130cc: EGYPTIAN HIEROGLYPH D067C*/ + RTUNI_ALPHA, /* U+0130cd: EGYPTIAN HIEROGLYPH D067D*/ + RTUNI_ALPHA, /* U+0130ce: EGYPTIAN HIEROGLYPH D067E*/ + RTUNI_ALPHA, /* U+0130cf: EGYPTIAN HIEROGLYPH D067F*/ + RTUNI_ALPHA, /* U+0130d0: EGYPTIAN HIEROGLYPH D067G*/ + RTUNI_ALPHA, /* U+0130d1: EGYPTIAN HIEROGLYPH D067H*/ + RTUNI_ALPHA, /* U+0130d2: EGYPTIAN HIEROGLYPH E001*/ + RTUNI_ALPHA, /* U+0130d3: EGYPTIAN HIEROGLYPH E002*/ + RTUNI_ALPHA, /* U+0130d4: EGYPTIAN HIEROGLYPH E003*/ + RTUNI_ALPHA, /* U+0130d5: EGYPTIAN HIEROGLYPH E004*/ + RTUNI_ALPHA, /* U+0130d6: EGYPTIAN HIEROGLYPH E005*/ + RTUNI_ALPHA, /* U+0130d7: EGYPTIAN HIEROGLYPH E006*/ + RTUNI_ALPHA, /* U+0130d8: EGYPTIAN HIEROGLYPH E007*/ + RTUNI_ALPHA, /* U+0130d9: EGYPTIAN HIEROGLYPH E008*/ + RTUNI_ALPHA, /* U+0130da: EGYPTIAN HIEROGLYPH E008A*/ + RTUNI_ALPHA, /* U+0130db: EGYPTIAN HIEROGLYPH E009*/ + RTUNI_ALPHA, /* U+0130dc: EGYPTIAN HIEROGLYPH E009A*/ + RTUNI_ALPHA, /* U+0130dd: EGYPTIAN HIEROGLYPH E010*/ + RTUNI_ALPHA, /* U+0130de: EGYPTIAN HIEROGLYPH E011*/ + RTUNI_ALPHA, /* U+0130df: EGYPTIAN HIEROGLYPH E012*/ + RTUNI_ALPHA, /* U+0130e0: EGYPTIAN HIEROGLYPH E013*/ + RTUNI_ALPHA, /* U+0130e1: EGYPTIAN HIEROGLYPH E014*/ + RTUNI_ALPHA, /* U+0130e2: EGYPTIAN HIEROGLYPH E015*/ + RTUNI_ALPHA, /* U+0130e3: EGYPTIAN HIEROGLYPH E016*/ + RTUNI_ALPHA, /* U+0130e4: EGYPTIAN HIEROGLYPH E016A*/ + RTUNI_ALPHA, /* U+0130e5: EGYPTIAN HIEROGLYPH E017*/ + RTUNI_ALPHA, /* U+0130e6: EGYPTIAN HIEROGLYPH E017A*/ + RTUNI_ALPHA, /* U+0130e7: EGYPTIAN HIEROGLYPH E018*/ + RTUNI_ALPHA, /* U+0130e8: EGYPTIAN HIEROGLYPH E019*/ + RTUNI_ALPHA, /* U+0130e9: EGYPTIAN HIEROGLYPH E020*/ + RTUNI_ALPHA, /* U+0130ea: EGYPTIAN HIEROGLYPH E020A*/ + RTUNI_ALPHA, /* U+0130eb: EGYPTIAN HIEROGLYPH E021*/ + RTUNI_ALPHA, /* U+0130ec: EGYPTIAN HIEROGLYPH E022*/ + RTUNI_ALPHA, /* U+0130ed: EGYPTIAN HIEROGLYPH E023*/ + RTUNI_ALPHA, /* U+0130ee: EGYPTIAN HIEROGLYPH E024*/ + RTUNI_ALPHA, /* U+0130ef: EGYPTIAN HIEROGLYPH E025*/ + RTUNI_ALPHA, /* U+0130f0: EGYPTIAN HIEROGLYPH E026*/ + RTUNI_ALPHA, /* U+0130f1: EGYPTIAN HIEROGLYPH E027*/ + RTUNI_ALPHA, /* U+0130f2: EGYPTIAN HIEROGLYPH E028*/ + RTUNI_ALPHA, /* U+0130f3: EGYPTIAN HIEROGLYPH E028A*/ + RTUNI_ALPHA, /* U+0130f4: EGYPTIAN HIEROGLYPH E029*/ + RTUNI_ALPHA, /* U+0130f5: EGYPTIAN HIEROGLYPH E030*/ + RTUNI_ALPHA, /* U+0130f6: EGYPTIAN HIEROGLYPH E031*/ + RTUNI_ALPHA, /* U+0130f7: EGYPTIAN HIEROGLYPH E032*/ + RTUNI_ALPHA, /* U+0130f8: EGYPTIAN HIEROGLYPH E033*/ + RTUNI_ALPHA, /* U+0130f9: EGYPTIAN HIEROGLYPH E034*/ + RTUNI_ALPHA, /* U+0130fa: EGYPTIAN HIEROGLYPH E034A*/ + RTUNI_ALPHA, /* U+0130fb: EGYPTIAN HIEROGLYPH E036*/ + RTUNI_ALPHA, /* U+0130fc: EGYPTIAN HIEROGLYPH E037*/ + RTUNI_ALPHA, /* U+0130fd: EGYPTIAN HIEROGLYPH E038*/ + RTUNI_ALPHA, /* U+0130fe: EGYPTIAN HIEROGLYPH F001*/ + RTUNI_ALPHA, /* U+0130ff: EGYPTIAN HIEROGLYPH F001A*/ + RTUNI_ALPHA, /* U+013100: EGYPTIAN HIEROGLYPH F002*/ + RTUNI_ALPHA, /* U+013101: EGYPTIAN HIEROGLYPH F003*/ + RTUNI_ALPHA, /* U+013102: EGYPTIAN HIEROGLYPH F004*/ + RTUNI_ALPHA, /* U+013103: EGYPTIAN HIEROGLYPH F005*/ + RTUNI_ALPHA, /* U+013104: EGYPTIAN HIEROGLYPH F006*/ + RTUNI_ALPHA, /* U+013105: EGYPTIAN HIEROGLYPH F007*/ + RTUNI_ALPHA, /* U+013106: EGYPTIAN HIEROGLYPH F008*/ + RTUNI_ALPHA, /* U+013107: EGYPTIAN HIEROGLYPH F009*/ + RTUNI_ALPHA, /* U+013108: EGYPTIAN HIEROGLYPH F010*/ + RTUNI_ALPHA, /* U+013109: EGYPTIAN HIEROGLYPH F011*/ + RTUNI_ALPHA, /* U+01310a: EGYPTIAN HIEROGLYPH F012*/ + RTUNI_ALPHA, /* U+01310b: EGYPTIAN HIEROGLYPH F013*/ + RTUNI_ALPHA, /* U+01310c: EGYPTIAN HIEROGLYPH F013A*/ + RTUNI_ALPHA, /* U+01310d: EGYPTIAN HIEROGLYPH F014*/ + RTUNI_ALPHA, /* U+01310e: EGYPTIAN HIEROGLYPH F015*/ + RTUNI_ALPHA, /* U+01310f: EGYPTIAN HIEROGLYPH F016*/ + RTUNI_ALPHA, /* U+013110: EGYPTIAN HIEROGLYPH F017*/ + RTUNI_ALPHA, /* U+013111: EGYPTIAN HIEROGLYPH F018*/ + RTUNI_ALPHA, /* U+013112: EGYPTIAN HIEROGLYPH F019*/ + RTUNI_ALPHA, /* U+013113: EGYPTIAN HIEROGLYPH F020*/ + RTUNI_ALPHA, /* U+013114: EGYPTIAN HIEROGLYPH F021*/ + RTUNI_ALPHA, /* U+013115: EGYPTIAN HIEROGLYPH F021A*/ + RTUNI_ALPHA, /* U+013116: EGYPTIAN HIEROGLYPH F022*/ + RTUNI_ALPHA, /* U+013117: EGYPTIAN HIEROGLYPH F023*/ + RTUNI_ALPHA, /* U+013118: EGYPTIAN HIEROGLYPH F024*/ + RTUNI_ALPHA, /* U+013119: EGYPTIAN HIEROGLYPH F025*/ + RTUNI_ALPHA, /* U+01311a: EGYPTIAN HIEROGLYPH F026*/ + RTUNI_ALPHA, /* U+01311b: EGYPTIAN HIEROGLYPH F027*/ + RTUNI_ALPHA, /* U+01311c: EGYPTIAN HIEROGLYPH F028*/ + RTUNI_ALPHA, /* U+01311d: EGYPTIAN HIEROGLYPH F029*/ + RTUNI_ALPHA, /* U+01311e: EGYPTIAN HIEROGLYPH F030*/ + RTUNI_ALPHA, /* U+01311f: EGYPTIAN HIEROGLYPH F031*/ + RTUNI_ALPHA, /* U+013120: EGYPTIAN HIEROGLYPH F031A*/ + RTUNI_ALPHA, /* U+013121: EGYPTIAN HIEROGLYPH F032*/ + RTUNI_ALPHA, /* U+013122: EGYPTIAN HIEROGLYPH F033*/ + RTUNI_ALPHA, /* U+013123: EGYPTIAN HIEROGLYPH F034*/ + RTUNI_ALPHA, /* U+013124: EGYPTIAN HIEROGLYPH F035*/ + RTUNI_ALPHA, /* U+013125: EGYPTIAN HIEROGLYPH F036*/ + RTUNI_ALPHA, /* U+013126: EGYPTIAN HIEROGLYPH F037*/ + RTUNI_ALPHA, /* U+013127: EGYPTIAN HIEROGLYPH F037A*/ + RTUNI_ALPHA, /* U+013128: EGYPTIAN HIEROGLYPH F038*/ + RTUNI_ALPHA, /* U+013129: EGYPTIAN HIEROGLYPH F038A*/ + RTUNI_ALPHA, /* U+01312a: EGYPTIAN HIEROGLYPH F039*/ + RTUNI_ALPHA, /* U+01312b: EGYPTIAN HIEROGLYPH F040*/ + RTUNI_ALPHA, /* U+01312c: EGYPTIAN HIEROGLYPH F041*/ + RTUNI_ALPHA, /* U+01312d: EGYPTIAN HIEROGLYPH F042*/ + RTUNI_ALPHA, /* U+01312e: EGYPTIAN HIEROGLYPH F043*/ + RTUNI_ALPHA, /* U+01312f: EGYPTIAN HIEROGLYPH F044*/ + RTUNI_ALPHA, /* U+013130: EGYPTIAN HIEROGLYPH F045*/ + RTUNI_ALPHA, /* U+013131: EGYPTIAN HIEROGLYPH F045A*/ + RTUNI_ALPHA, /* U+013132: EGYPTIAN HIEROGLYPH F046*/ + RTUNI_ALPHA, /* U+013133: EGYPTIAN HIEROGLYPH F046A*/ + RTUNI_ALPHA, /* U+013134: EGYPTIAN HIEROGLYPH F047*/ + RTUNI_ALPHA, /* U+013135: EGYPTIAN HIEROGLYPH F047A*/ + RTUNI_ALPHA, /* U+013136: EGYPTIAN HIEROGLYPH F048*/ + RTUNI_ALPHA, /* U+013137: EGYPTIAN HIEROGLYPH F049*/ + RTUNI_ALPHA, /* U+013138: EGYPTIAN HIEROGLYPH F050*/ + RTUNI_ALPHA, /* U+013139: EGYPTIAN HIEROGLYPH F051*/ + RTUNI_ALPHA, /* U+01313a: EGYPTIAN HIEROGLYPH F051A*/ + RTUNI_ALPHA, /* U+01313b: EGYPTIAN HIEROGLYPH F051B*/ + RTUNI_ALPHA, /* U+01313c: EGYPTIAN HIEROGLYPH F051C*/ + RTUNI_ALPHA, /* U+01313d: EGYPTIAN HIEROGLYPH F052*/ + RTUNI_ALPHA, /* U+01313e: EGYPTIAN HIEROGLYPH F053*/ + RTUNI_ALPHA, /* U+01313f: EGYPTIAN HIEROGLYPH G001*/ + RTUNI_ALPHA, /* U+013140: EGYPTIAN HIEROGLYPH G002*/ + RTUNI_ALPHA, /* U+013141: EGYPTIAN HIEROGLYPH G003*/ + RTUNI_ALPHA, /* U+013142: EGYPTIAN HIEROGLYPH G004*/ + RTUNI_ALPHA, /* U+013143: EGYPTIAN HIEROGLYPH G005*/ + RTUNI_ALPHA, /* U+013144: EGYPTIAN HIEROGLYPH G006*/ + RTUNI_ALPHA, /* U+013145: EGYPTIAN HIEROGLYPH G006A*/ + RTUNI_ALPHA, /* U+013146: EGYPTIAN HIEROGLYPH G007*/ + RTUNI_ALPHA, /* U+013147: EGYPTIAN HIEROGLYPH G007A*/ + RTUNI_ALPHA, /* U+013148: EGYPTIAN HIEROGLYPH G007B*/ + RTUNI_ALPHA, /* U+013149: EGYPTIAN HIEROGLYPH G008*/ + RTUNI_ALPHA, /* U+01314a: EGYPTIAN HIEROGLYPH G009*/ + RTUNI_ALPHA, /* U+01314b: EGYPTIAN HIEROGLYPH G010*/ + RTUNI_ALPHA, /* U+01314c: EGYPTIAN HIEROGLYPH G011*/ + RTUNI_ALPHA, /* U+01314d: EGYPTIAN HIEROGLYPH G011A*/ + RTUNI_ALPHA, /* U+01314e: EGYPTIAN HIEROGLYPH G012*/ + RTUNI_ALPHA, /* U+01314f: EGYPTIAN HIEROGLYPH G013*/ + RTUNI_ALPHA, /* U+013150: EGYPTIAN HIEROGLYPH G014*/ + RTUNI_ALPHA, /* U+013151: EGYPTIAN HIEROGLYPH G015*/ + RTUNI_ALPHA, /* U+013152: EGYPTIAN HIEROGLYPH G016*/ + RTUNI_ALPHA, /* U+013153: EGYPTIAN HIEROGLYPH G017*/ + RTUNI_ALPHA, /* U+013154: EGYPTIAN HIEROGLYPH G018*/ + RTUNI_ALPHA, /* U+013155: EGYPTIAN HIEROGLYPH G019*/ + RTUNI_ALPHA, /* U+013156: EGYPTIAN HIEROGLYPH G020*/ + RTUNI_ALPHA, /* U+013157: EGYPTIAN HIEROGLYPH G020A*/ + RTUNI_ALPHA, /* U+013158: EGYPTIAN HIEROGLYPH G021*/ + RTUNI_ALPHA, /* U+013159: EGYPTIAN HIEROGLYPH G022*/ + RTUNI_ALPHA, /* U+01315a: EGYPTIAN HIEROGLYPH G023*/ + RTUNI_ALPHA, /* U+01315b: EGYPTIAN HIEROGLYPH G024*/ + RTUNI_ALPHA, /* U+01315c: EGYPTIAN HIEROGLYPH G025*/ + RTUNI_ALPHA, /* U+01315d: EGYPTIAN HIEROGLYPH G026*/ + RTUNI_ALPHA, /* U+01315e: EGYPTIAN HIEROGLYPH G026A*/ + RTUNI_ALPHA, /* U+01315f: EGYPTIAN HIEROGLYPH G027*/ + RTUNI_ALPHA, /* U+013160: EGYPTIAN HIEROGLYPH G028*/ + RTUNI_ALPHA, /* U+013161: EGYPTIAN HIEROGLYPH G029*/ + RTUNI_ALPHA, /* U+013162: EGYPTIAN HIEROGLYPH G030*/ + RTUNI_ALPHA, /* U+013163: EGYPTIAN HIEROGLYPH G031*/ + RTUNI_ALPHA, /* U+013164: EGYPTIAN HIEROGLYPH G032*/ + RTUNI_ALPHA, /* U+013165: EGYPTIAN HIEROGLYPH G033*/ + RTUNI_ALPHA, /* U+013166: EGYPTIAN HIEROGLYPH G034*/ + RTUNI_ALPHA, /* U+013167: EGYPTIAN HIEROGLYPH G035*/ + RTUNI_ALPHA, /* U+013168: EGYPTIAN HIEROGLYPH G036*/ + RTUNI_ALPHA, /* U+013169: EGYPTIAN HIEROGLYPH G036A*/ + RTUNI_ALPHA, /* U+01316a: EGYPTIAN HIEROGLYPH G037*/ + RTUNI_ALPHA, /* U+01316b: EGYPTIAN HIEROGLYPH G037A*/ + RTUNI_ALPHA, /* U+01316c: EGYPTIAN HIEROGLYPH G038*/ + RTUNI_ALPHA, /* U+01316d: EGYPTIAN HIEROGLYPH G039*/ + RTUNI_ALPHA, /* U+01316e: EGYPTIAN HIEROGLYPH G040*/ + RTUNI_ALPHA, /* U+01316f: EGYPTIAN HIEROGLYPH G041*/ + RTUNI_ALPHA, /* U+013170: EGYPTIAN HIEROGLYPH G042*/ + RTUNI_ALPHA, /* U+013171: EGYPTIAN HIEROGLYPH G043*/ + RTUNI_ALPHA, /* U+013172: EGYPTIAN HIEROGLYPH G043A*/ + RTUNI_ALPHA, /* U+013173: EGYPTIAN HIEROGLYPH G044*/ + RTUNI_ALPHA, /* U+013174: EGYPTIAN HIEROGLYPH G045*/ + RTUNI_ALPHA, /* U+013175: EGYPTIAN HIEROGLYPH G045A*/ + RTUNI_ALPHA, /* U+013176: EGYPTIAN HIEROGLYPH G046*/ + RTUNI_ALPHA, /* U+013177: EGYPTIAN HIEROGLYPH G047*/ + RTUNI_ALPHA, /* U+013178: EGYPTIAN HIEROGLYPH G048*/ + RTUNI_ALPHA, /* U+013179: EGYPTIAN HIEROGLYPH G049*/ + RTUNI_ALPHA, /* U+01317a: EGYPTIAN HIEROGLYPH G050*/ + RTUNI_ALPHA, /* U+01317b: EGYPTIAN HIEROGLYPH G051*/ + RTUNI_ALPHA, /* U+01317c: EGYPTIAN HIEROGLYPH G052*/ + RTUNI_ALPHA, /* U+01317d: EGYPTIAN HIEROGLYPH G053*/ + RTUNI_ALPHA, /* U+01317e: EGYPTIAN HIEROGLYPH G054*/ + RTUNI_ALPHA, /* U+01317f: EGYPTIAN HIEROGLYPH H001*/ + RTUNI_ALPHA, /* U+013180: EGYPTIAN HIEROGLYPH H002*/ + RTUNI_ALPHA, /* U+013181: EGYPTIAN HIEROGLYPH H003*/ + RTUNI_ALPHA, /* U+013182: EGYPTIAN HIEROGLYPH H004*/ + RTUNI_ALPHA, /* U+013183: EGYPTIAN HIEROGLYPH H005*/ + RTUNI_ALPHA, /* U+013184: EGYPTIAN HIEROGLYPH H006*/ + RTUNI_ALPHA, /* U+013185: EGYPTIAN HIEROGLYPH H006A*/ + RTUNI_ALPHA, /* U+013186: EGYPTIAN HIEROGLYPH H007*/ + RTUNI_ALPHA, /* U+013187: EGYPTIAN HIEROGLYPH H008*/ + RTUNI_ALPHA, /* U+013188: EGYPTIAN HIEROGLYPH I001*/ + RTUNI_ALPHA, /* U+013189: EGYPTIAN HIEROGLYPH I002*/ + RTUNI_ALPHA, /* U+01318a: EGYPTIAN HIEROGLYPH I003*/ + RTUNI_ALPHA, /* U+01318b: EGYPTIAN HIEROGLYPH I004*/ + RTUNI_ALPHA, /* U+01318c: EGYPTIAN HIEROGLYPH I005*/ + RTUNI_ALPHA, /* U+01318d: EGYPTIAN HIEROGLYPH I005A*/ + RTUNI_ALPHA, /* U+01318e: EGYPTIAN HIEROGLYPH I006*/ + RTUNI_ALPHA, /* U+01318f: EGYPTIAN HIEROGLYPH I007*/ + RTUNI_ALPHA, /* U+013190: EGYPTIAN HIEROGLYPH I008*/ + RTUNI_ALPHA, /* U+013191: EGYPTIAN HIEROGLYPH I009*/ + RTUNI_ALPHA, /* U+013192: EGYPTIAN HIEROGLYPH I009A*/ + RTUNI_ALPHA, /* U+013193: EGYPTIAN HIEROGLYPH I010*/ + RTUNI_ALPHA, /* U+013194: EGYPTIAN HIEROGLYPH I010A*/ + RTUNI_ALPHA, /* U+013195: EGYPTIAN HIEROGLYPH I011*/ + RTUNI_ALPHA, /* U+013196: EGYPTIAN HIEROGLYPH I011A*/ + RTUNI_ALPHA, /* U+013197: EGYPTIAN HIEROGLYPH I012*/ + RTUNI_ALPHA, /* U+013198: EGYPTIAN HIEROGLYPH I013*/ + RTUNI_ALPHA, /* U+013199: EGYPTIAN HIEROGLYPH I014*/ + RTUNI_ALPHA, /* U+01319a: EGYPTIAN HIEROGLYPH I015*/ + RTUNI_ALPHA, /* U+01319b: EGYPTIAN HIEROGLYPH K001*/ + RTUNI_ALPHA, /* U+01319c: EGYPTIAN HIEROGLYPH K002*/ + RTUNI_ALPHA, /* U+01319d: EGYPTIAN HIEROGLYPH K003*/ + RTUNI_ALPHA, /* U+01319e: EGYPTIAN HIEROGLYPH K004*/ + RTUNI_ALPHA, /* U+01319f: EGYPTIAN HIEROGLYPH K005*/ + RTUNI_ALPHA, /* U+0131a0: EGYPTIAN HIEROGLYPH K006*/ + RTUNI_ALPHA, /* U+0131a1: EGYPTIAN HIEROGLYPH K007*/ + RTUNI_ALPHA, /* U+0131a2: EGYPTIAN HIEROGLYPH K008*/ + RTUNI_ALPHA, /* U+0131a3: EGYPTIAN HIEROGLYPH L001*/ + RTUNI_ALPHA, /* U+0131a4: EGYPTIAN HIEROGLYPH L002*/ + RTUNI_ALPHA, /* U+0131a5: EGYPTIAN HIEROGLYPH L002A*/ + RTUNI_ALPHA, /* U+0131a6: EGYPTIAN HIEROGLYPH L003*/ + RTUNI_ALPHA, /* U+0131a7: EGYPTIAN HIEROGLYPH L004*/ + RTUNI_ALPHA, /* U+0131a8: EGYPTIAN HIEROGLYPH L005*/ + RTUNI_ALPHA, /* U+0131a9: EGYPTIAN HIEROGLYPH L006*/ + RTUNI_ALPHA, /* U+0131aa: EGYPTIAN HIEROGLYPH L006A*/ + RTUNI_ALPHA, /* U+0131ab: EGYPTIAN HIEROGLYPH L007*/ + RTUNI_ALPHA, /* U+0131ac: EGYPTIAN HIEROGLYPH L008*/ + RTUNI_ALPHA, /* U+0131ad: EGYPTIAN HIEROGLYPH M001*/ + RTUNI_ALPHA, /* U+0131ae: EGYPTIAN HIEROGLYPH M001A*/ + RTUNI_ALPHA, /* U+0131af: EGYPTIAN HIEROGLYPH M001B*/ + RTUNI_ALPHA, /* U+0131b0: EGYPTIAN HIEROGLYPH M002*/ + RTUNI_ALPHA, /* U+0131b1: EGYPTIAN HIEROGLYPH M003*/ + RTUNI_ALPHA, /* U+0131b2: EGYPTIAN HIEROGLYPH M003A*/ + RTUNI_ALPHA, /* U+0131b3: EGYPTIAN HIEROGLYPH M004*/ + RTUNI_ALPHA, /* U+0131b4: EGYPTIAN HIEROGLYPH M005*/ + RTUNI_ALPHA, /* U+0131b5: EGYPTIAN HIEROGLYPH M006*/ + RTUNI_ALPHA, /* U+0131b6: EGYPTIAN HIEROGLYPH M007*/ + RTUNI_ALPHA, /* U+0131b7: EGYPTIAN HIEROGLYPH M008*/ + RTUNI_ALPHA, /* U+0131b8: EGYPTIAN HIEROGLYPH M009*/ + RTUNI_ALPHA, /* U+0131b9: EGYPTIAN HIEROGLYPH M010*/ + RTUNI_ALPHA, /* U+0131ba: EGYPTIAN HIEROGLYPH M010A*/ + RTUNI_ALPHA, /* U+0131bb: EGYPTIAN HIEROGLYPH M011*/ + RTUNI_ALPHA, /* U+0131bc: EGYPTIAN HIEROGLYPH M012*/ + RTUNI_ALPHA, /* U+0131bd: EGYPTIAN HIEROGLYPH M012A*/ + RTUNI_ALPHA, /* U+0131be: EGYPTIAN HIEROGLYPH M012B*/ + RTUNI_ALPHA, /* U+0131bf: EGYPTIAN HIEROGLYPH M012C*/ + RTUNI_ALPHA, /* U+0131c0: EGYPTIAN HIEROGLYPH M012D*/ + RTUNI_ALPHA, /* U+0131c1: EGYPTIAN HIEROGLYPH M012E*/ + RTUNI_ALPHA, /* U+0131c2: EGYPTIAN HIEROGLYPH M012F*/ + RTUNI_ALPHA, /* U+0131c3: EGYPTIAN HIEROGLYPH M012G*/ + RTUNI_ALPHA, /* U+0131c4: EGYPTIAN HIEROGLYPH M012H*/ + RTUNI_ALPHA, /* U+0131c5: EGYPTIAN HIEROGLYPH M013*/ + RTUNI_ALPHA, /* U+0131c6: EGYPTIAN HIEROGLYPH M014*/ + RTUNI_ALPHA, /* U+0131c7: EGYPTIAN HIEROGLYPH M015*/ + RTUNI_ALPHA, /* U+0131c8: EGYPTIAN HIEROGLYPH M015A*/ + RTUNI_ALPHA, /* U+0131c9: EGYPTIAN HIEROGLYPH M016*/ + RTUNI_ALPHA, /* U+0131ca: EGYPTIAN HIEROGLYPH M016A*/ + RTUNI_ALPHA, /* U+0131cb: EGYPTIAN HIEROGLYPH M017*/ + RTUNI_ALPHA, /* U+0131cc: EGYPTIAN HIEROGLYPH M017A*/ + RTUNI_ALPHA, /* U+0131cd: EGYPTIAN HIEROGLYPH M018*/ + RTUNI_ALPHA, /* U+0131ce: EGYPTIAN HIEROGLYPH M019*/ + RTUNI_ALPHA, /* U+0131cf: EGYPTIAN HIEROGLYPH M020*/ + RTUNI_ALPHA, /* U+0131d0: EGYPTIAN HIEROGLYPH M021*/ + RTUNI_ALPHA, /* U+0131d1: EGYPTIAN HIEROGLYPH M022*/ + RTUNI_ALPHA, /* U+0131d2: EGYPTIAN HIEROGLYPH M022A*/ + RTUNI_ALPHA, /* U+0131d3: EGYPTIAN HIEROGLYPH M023*/ + RTUNI_ALPHA, /* U+0131d4: EGYPTIAN HIEROGLYPH M024*/ + RTUNI_ALPHA, /* U+0131d5: EGYPTIAN HIEROGLYPH M024A*/ + RTUNI_ALPHA, /* U+0131d6: EGYPTIAN HIEROGLYPH M025*/ + RTUNI_ALPHA, /* U+0131d7: EGYPTIAN HIEROGLYPH M026*/ + RTUNI_ALPHA, /* U+0131d8: EGYPTIAN HIEROGLYPH M027*/ + RTUNI_ALPHA, /* U+0131d9: EGYPTIAN HIEROGLYPH M028*/ + RTUNI_ALPHA, /* U+0131da: EGYPTIAN HIEROGLYPH M028A*/ + RTUNI_ALPHA, /* U+0131db: EGYPTIAN HIEROGLYPH M029*/ + RTUNI_ALPHA, /* U+0131dc: EGYPTIAN HIEROGLYPH M030*/ + RTUNI_ALPHA, /* U+0131dd: EGYPTIAN HIEROGLYPH M031*/ + RTUNI_ALPHA, /* U+0131de: EGYPTIAN HIEROGLYPH M031A*/ + RTUNI_ALPHA, /* U+0131df: EGYPTIAN HIEROGLYPH M032*/ + RTUNI_ALPHA, /* U+0131e0: EGYPTIAN HIEROGLYPH M033*/ + RTUNI_ALPHA, /* U+0131e1: EGYPTIAN HIEROGLYPH M033A*/ + RTUNI_ALPHA, /* U+0131e2: EGYPTIAN HIEROGLYPH M033B*/ + RTUNI_ALPHA, /* U+0131e3: EGYPTIAN HIEROGLYPH M034*/ + RTUNI_ALPHA, /* U+0131e4: EGYPTIAN HIEROGLYPH M035*/ + RTUNI_ALPHA, /* U+0131e5: EGYPTIAN HIEROGLYPH M036*/ + RTUNI_ALPHA, /* U+0131e6: EGYPTIAN HIEROGLYPH M037*/ + RTUNI_ALPHA, /* U+0131e7: EGYPTIAN HIEROGLYPH M038*/ + RTUNI_ALPHA, /* U+0131e8: EGYPTIAN HIEROGLYPH M039*/ + RTUNI_ALPHA, /* U+0131e9: EGYPTIAN HIEROGLYPH M040*/ + RTUNI_ALPHA, /* U+0131ea: EGYPTIAN HIEROGLYPH M040A*/ + RTUNI_ALPHA, /* U+0131eb: EGYPTIAN HIEROGLYPH M041*/ + RTUNI_ALPHA, /* U+0131ec: EGYPTIAN HIEROGLYPH M042*/ + RTUNI_ALPHA, /* U+0131ed: EGYPTIAN HIEROGLYPH M043*/ + RTUNI_ALPHA, /* U+0131ee: EGYPTIAN HIEROGLYPH M044*/ + RTUNI_ALPHA, /* U+0131ef: EGYPTIAN HIEROGLYPH N001*/ + RTUNI_ALPHA, /* U+0131f0: EGYPTIAN HIEROGLYPH N002*/ + RTUNI_ALPHA, /* U+0131f1: EGYPTIAN HIEROGLYPH N003*/ + RTUNI_ALPHA, /* U+0131f2: EGYPTIAN HIEROGLYPH N004*/ + RTUNI_ALPHA, /* U+0131f3: EGYPTIAN HIEROGLYPH N005*/ + RTUNI_ALPHA, /* U+0131f4: EGYPTIAN HIEROGLYPH N006*/ + RTUNI_ALPHA, /* U+0131f5: EGYPTIAN HIEROGLYPH N007*/ + RTUNI_ALPHA, /* U+0131f6: EGYPTIAN HIEROGLYPH N008*/ + RTUNI_ALPHA, /* U+0131f7: EGYPTIAN HIEROGLYPH N009*/ + RTUNI_ALPHA, /* U+0131f8: EGYPTIAN HIEROGLYPH N010*/ + RTUNI_ALPHA, /* U+0131f9: EGYPTIAN HIEROGLYPH N011*/ + RTUNI_ALPHA, /* U+0131fa: EGYPTIAN HIEROGLYPH N012*/ + RTUNI_ALPHA, /* U+0131fb: EGYPTIAN HIEROGLYPH N013*/ + RTUNI_ALPHA, /* U+0131fc: EGYPTIAN HIEROGLYPH N014*/ + RTUNI_ALPHA, /* U+0131fd: EGYPTIAN HIEROGLYPH N015*/ + RTUNI_ALPHA, /* U+0131fe: EGYPTIAN HIEROGLYPH N016*/ + RTUNI_ALPHA, /* U+0131ff: EGYPTIAN HIEROGLYPH N017*/ + RTUNI_ALPHA, /* U+013200: EGYPTIAN HIEROGLYPH N018*/ + RTUNI_ALPHA, /* U+013201: EGYPTIAN HIEROGLYPH N018A*/ + RTUNI_ALPHA, /* U+013202: EGYPTIAN HIEROGLYPH N018B*/ + RTUNI_ALPHA, /* U+013203: EGYPTIAN HIEROGLYPH N019*/ + RTUNI_ALPHA, /* U+013204: EGYPTIAN HIEROGLYPH N020*/ + RTUNI_ALPHA, /* U+013205: EGYPTIAN HIEROGLYPH N021*/ + RTUNI_ALPHA, /* U+013206: EGYPTIAN HIEROGLYPH N022*/ + RTUNI_ALPHA, /* U+013207: EGYPTIAN HIEROGLYPH N023*/ + RTUNI_ALPHA, /* U+013208: EGYPTIAN HIEROGLYPH N024*/ + RTUNI_ALPHA, /* U+013209: EGYPTIAN HIEROGLYPH N025*/ + RTUNI_ALPHA, /* U+01320a: EGYPTIAN HIEROGLYPH N025A*/ + RTUNI_ALPHA, /* U+01320b: EGYPTIAN HIEROGLYPH N026*/ + RTUNI_ALPHA, /* U+01320c: EGYPTIAN HIEROGLYPH N027*/ + RTUNI_ALPHA, /* U+01320d: EGYPTIAN HIEROGLYPH N028*/ + RTUNI_ALPHA, /* U+01320e: EGYPTIAN HIEROGLYPH N029*/ + RTUNI_ALPHA, /* U+01320f: EGYPTIAN HIEROGLYPH N030*/ + RTUNI_ALPHA, /* U+013210: EGYPTIAN HIEROGLYPH N031*/ + RTUNI_ALPHA, /* U+013211: EGYPTIAN HIEROGLYPH N032*/ + RTUNI_ALPHA, /* U+013212: EGYPTIAN HIEROGLYPH N033*/ + RTUNI_ALPHA, /* U+013213: EGYPTIAN HIEROGLYPH N033A*/ + RTUNI_ALPHA, /* U+013214: EGYPTIAN HIEROGLYPH N034*/ + RTUNI_ALPHA, /* U+013215: EGYPTIAN HIEROGLYPH N034A*/ + RTUNI_ALPHA, /* U+013216: EGYPTIAN HIEROGLYPH N035*/ + RTUNI_ALPHA, /* U+013217: EGYPTIAN HIEROGLYPH N035A*/ + RTUNI_ALPHA, /* U+013218: EGYPTIAN HIEROGLYPH N036*/ + RTUNI_ALPHA, /* U+013219: EGYPTIAN HIEROGLYPH N037*/ + RTUNI_ALPHA, /* U+01321a: EGYPTIAN HIEROGLYPH N037A*/ + RTUNI_ALPHA, /* U+01321b: EGYPTIAN HIEROGLYPH N038*/ + RTUNI_ALPHA, /* U+01321c: EGYPTIAN HIEROGLYPH N039*/ + RTUNI_ALPHA, /* U+01321d: EGYPTIAN HIEROGLYPH N040*/ + RTUNI_ALPHA, /* U+01321e: EGYPTIAN HIEROGLYPH N041*/ + RTUNI_ALPHA, /* U+01321f: EGYPTIAN HIEROGLYPH N042*/ + RTUNI_ALPHA, /* U+013220: EGYPTIAN HIEROGLYPH NL001*/ + RTUNI_ALPHA, /* U+013221: EGYPTIAN HIEROGLYPH NL002*/ + RTUNI_ALPHA, /* U+013222: EGYPTIAN HIEROGLYPH NL003*/ + RTUNI_ALPHA, /* U+013223: EGYPTIAN HIEROGLYPH NL004*/ + RTUNI_ALPHA, /* U+013224: EGYPTIAN HIEROGLYPH NL005*/ + RTUNI_ALPHA, /* U+013225: EGYPTIAN HIEROGLYPH NL005A*/ + RTUNI_ALPHA, /* U+013226: EGYPTIAN HIEROGLYPH NL006*/ + RTUNI_ALPHA, /* U+013227: EGYPTIAN HIEROGLYPH NL007*/ + RTUNI_ALPHA, /* U+013228: EGYPTIAN HIEROGLYPH NL008*/ + RTUNI_ALPHA, /* U+013229: EGYPTIAN HIEROGLYPH NL009*/ + RTUNI_ALPHA, /* U+01322a: EGYPTIAN HIEROGLYPH NL010*/ + RTUNI_ALPHA, /* U+01322b: EGYPTIAN HIEROGLYPH NL011*/ + RTUNI_ALPHA, /* U+01322c: EGYPTIAN HIEROGLYPH NL012*/ + RTUNI_ALPHA, /* U+01322d: EGYPTIAN HIEROGLYPH NL013*/ + RTUNI_ALPHA, /* U+01322e: EGYPTIAN HIEROGLYPH NL014*/ + RTUNI_ALPHA, /* U+01322f: EGYPTIAN HIEROGLYPH NL015*/ + RTUNI_ALPHA, /* U+013230: EGYPTIAN HIEROGLYPH NL016*/ + RTUNI_ALPHA, /* U+013231: EGYPTIAN HIEROGLYPH NL017*/ + RTUNI_ALPHA, /* U+013232: EGYPTIAN HIEROGLYPH NL017A*/ + RTUNI_ALPHA, /* U+013233: EGYPTIAN HIEROGLYPH NL018*/ + RTUNI_ALPHA, /* U+013234: EGYPTIAN HIEROGLYPH NL019*/ + RTUNI_ALPHA, /* U+013235: EGYPTIAN HIEROGLYPH NL020*/ + RTUNI_ALPHA, /* U+013236: EGYPTIAN HIEROGLYPH NU001*/ + RTUNI_ALPHA, /* U+013237: EGYPTIAN HIEROGLYPH NU002*/ + RTUNI_ALPHA, /* U+013238: EGYPTIAN HIEROGLYPH NU003*/ + RTUNI_ALPHA, /* U+013239: EGYPTIAN HIEROGLYPH NU004*/ + RTUNI_ALPHA, /* U+01323a: EGYPTIAN HIEROGLYPH NU005*/ + RTUNI_ALPHA, /* U+01323b: EGYPTIAN HIEROGLYPH NU006*/ + RTUNI_ALPHA, /* U+01323c: EGYPTIAN HIEROGLYPH NU007*/ + RTUNI_ALPHA, /* U+01323d: EGYPTIAN HIEROGLYPH NU008*/ + RTUNI_ALPHA, /* U+01323e: EGYPTIAN HIEROGLYPH NU009*/ + RTUNI_ALPHA, /* U+01323f: EGYPTIAN HIEROGLYPH NU010*/ + RTUNI_ALPHA, /* U+013240: EGYPTIAN HIEROGLYPH NU010A*/ + RTUNI_ALPHA, /* U+013241: EGYPTIAN HIEROGLYPH NU011*/ + RTUNI_ALPHA, /* U+013242: EGYPTIAN HIEROGLYPH NU011A*/ + RTUNI_ALPHA, /* U+013243: EGYPTIAN HIEROGLYPH NU012*/ + RTUNI_ALPHA, /* U+013244: EGYPTIAN HIEROGLYPH NU013*/ + RTUNI_ALPHA, /* U+013245: EGYPTIAN HIEROGLYPH NU014*/ + RTUNI_ALPHA, /* U+013246: EGYPTIAN HIEROGLYPH NU015*/ + RTUNI_ALPHA, /* U+013247: EGYPTIAN HIEROGLYPH NU016*/ + RTUNI_ALPHA, /* U+013248: EGYPTIAN HIEROGLYPH NU017*/ + RTUNI_ALPHA, /* U+013249: EGYPTIAN HIEROGLYPH NU018*/ + RTUNI_ALPHA, /* U+01324a: EGYPTIAN HIEROGLYPH NU018A*/ + RTUNI_ALPHA, /* U+01324b: EGYPTIAN HIEROGLYPH NU019*/ + RTUNI_ALPHA, /* U+01324c: EGYPTIAN HIEROGLYPH NU020*/ + RTUNI_ALPHA, /* U+01324d: EGYPTIAN HIEROGLYPH NU021*/ + RTUNI_ALPHA, /* U+01324e: EGYPTIAN HIEROGLYPH NU022*/ + RTUNI_ALPHA, /* U+01324f: EGYPTIAN HIEROGLYPH NU022A*/ + RTUNI_ALPHA, /* U+013250: EGYPTIAN HIEROGLYPH O001*/ + RTUNI_ALPHA, /* U+013251: EGYPTIAN HIEROGLYPH O001A*/ + RTUNI_ALPHA, /* U+013252: EGYPTIAN HIEROGLYPH O002*/ + RTUNI_ALPHA, /* U+013253: EGYPTIAN HIEROGLYPH O003*/ + RTUNI_ALPHA, /* U+013254: EGYPTIAN HIEROGLYPH O004*/ + RTUNI_ALPHA, /* U+013255: EGYPTIAN HIEROGLYPH O005*/ + RTUNI_ALPHA, /* U+013256: EGYPTIAN HIEROGLYPH O005A*/ + RTUNI_ALPHA, /* U+013257: EGYPTIAN HIEROGLYPH O006*/ + RTUNI_ALPHA, /* U+013258: EGYPTIAN HIEROGLYPH O006A*/ + RTUNI_ALPHA, /* U+013259: EGYPTIAN HIEROGLYPH O006B*/ + RTUNI_ALPHA, /* U+01325a: EGYPTIAN HIEROGLYPH O006C*/ + RTUNI_ALPHA, /* U+01325b: EGYPTIAN HIEROGLYPH O006D*/ + RTUNI_ALPHA, /* U+01325c: EGYPTIAN HIEROGLYPH O006E*/ + RTUNI_ALPHA, /* U+01325d: EGYPTIAN HIEROGLYPH O006F*/ + RTUNI_ALPHA, /* U+01325e: EGYPTIAN HIEROGLYPH O007*/ + RTUNI_ALPHA, /* U+01325f: EGYPTIAN HIEROGLYPH O008*/ + RTUNI_ALPHA, /* U+013260: EGYPTIAN HIEROGLYPH O009*/ + RTUNI_ALPHA, /* U+013261: EGYPTIAN HIEROGLYPH O010*/ + RTUNI_ALPHA, /* U+013262: EGYPTIAN HIEROGLYPH O010A*/ + RTUNI_ALPHA, /* U+013263: EGYPTIAN HIEROGLYPH O010B*/ + RTUNI_ALPHA, /* U+013264: EGYPTIAN HIEROGLYPH O010C*/ + RTUNI_ALPHA, /* U+013265: EGYPTIAN HIEROGLYPH O011*/ + RTUNI_ALPHA, /* U+013266: EGYPTIAN HIEROGLYPH O012*/ + RTUNI_ALPHA, /* U+013267: EGYPTIAN HIEROGLYPH O013*/ + RTUNI_ALPHA, /* U+013268: EGYPTIAN HIEROGLYPH O014*/ + RTUNI_ALPHA, /* U+013269: EGYPTIAN HIEROGLYPH O015*/ + RTUNI_ALPHA, /* U+01326a: EGYPTIAN HIEROGLYPH O016*/ + RTUNI_ALPHA, /* U+01326b: EGYPTIAN HIEROGLYPH O017*/ + RTUNI_ALPHA, /* U+01326c: EGYPTIAN HIEROGLYPH O018*/ + RTUNI_ALPHA, /* U+01326d: EGYPTIAN HIEROGLYPH O019*/ + RTUNI_ALPHA, /* U+01326e: EGYPTIAN HIEROGLYPH O019A*/ + RTUNI_ALPHA, /* U+01326f: EGYPTIAN HIEROGLYPH O020*/ + RTUNI_ALPHA, /* U+013270: EGYPTIAN HIEROGLYPH O020A*/ + RTUNI_ALPHA, /* U+013271: EGYPTIAN HIEROGLYPH O021*/ + RTUNI_ALPHA, /* U+013272: EGYPTIAN HIEROGLYPH O022*/ + RTUNI_ALPHA, /* U+013273: EGYPTIAN HIEROGLYPH O023*/ + RTUNI_ALPHA, /* U+013274: EGYPTIAN HIEROGLYPH O024*/ + RTUNI_ALPHA, /* U+013275: EGYPTIAN HIEROGLYPH O024A*/ + RTUNI_ALPHA, /* U+013276: EGYPTIAN HIEROGLYPH O025*/ + RTUNI_ALPHA, /* U+013277: EGYPTIAN HIEROGLYPH O025A*/ + RTUNI_ALPHA, /* U+013278: EGYPTIAN HIEROGLYPH O026*/ + RTUNI_ALPHA, /* U+013279: EGYPTIAN HIEROGLYPH O027*/ + RTUNI_ALPHA, /* U+01327a: EGYPTIAN HIEROGLYPH O028*/ + RTUNI_ALPHA, /* U+01327b: EGYPTIAN HIEROGLYPH O029*/ + RTUNI_ALPHA, /* U+01327c: EGYPTIAN HIEROGLYPH O029A*/ + RTUNI_ALPHA, /* U+01327d: EGYPTIAN HIEROGLYPH O030*/ + RTUNI_ALPHA, /* U+01327e: EGYPTIAN HIEROGLYPH O030A*/ + RTUNI_ALPHA, /* U+01327f: EGYPTIAN HIEROGLYPH O031*/ + RTUNI_ALPHA, /* U+013280: EGYPTIAN HIEROGLYPH O032*/ + RTUNI_ALPHA, /* U+013281: EGYPTIAN HIEROGLYPH O033*/ + RTUNI_ALPHA, /* U+013282: EGYPTIAN HIEROGLYPH O033A*/ + RTUNI_ALPHA, /* U+013283: EGYPTIAN HIEROGLYPH O034*/ + RTUNI_ALPHA, /* U+013284: EGYPTIAN HIEROGLYPH O035*/ + RTUNI_ALPHA, /* U+013285: EGYPTIAN HIEROGLYPH O036*/ + RTUNI_ALPHA, /* U+013286: EGYPTIAN HIEROGLYPH O036A*/ + RTUNI_ALPHA, /* U+013287: EGYPTIAN HIEROGLYPH O036B*/ + RTUNI_ALPHA, /* U+013288: EGYPTIAN HIEROGLYPH O036C*/ + RTUNI_ALPHA, /* U+013289: EGYPTIAN HIEROGLYPH O036D*/ + RTUNI_ALPHA, /* U+01328a: EGYPTIAN HIEROGLYPH O037*/ + RTUNI_ALPHA, /* U+01328b: EGYPTIAN HIEROGLYPH O038*/ + RTUNI_ALPHA, /* U+01328c: EGYPTIAN HIEROGLYPH O039*/ + RTUNI_ALPHA, /* U+01328d: EGYPTIAN HIEROGLYPH O040*/ + RTUNI_ALPHA, /* U+01328e: EGYPTIAN HIEROGLYPH O041*/ + RTUNI_ALPHA, /* U+01328f: EGYPTIAN HIEROGLYPH O042*/ + RTUNI_ALPHA, /* U+013290: EGYPTIAN HIEROGLYPH O043*/ + RTUNI_ALPHA, /* U+013291: EGYPTIAN HIEROGLYPH O044*/ + RTUNI_ALPHA, /* U+013292: EGYPTIAN HIEROGLYPH O045*/ + RTUNI_ALPHA, /* U+013293: EGYPTIAN HIEROGLYPH O046*/ + RTUNI_ALPHA, /* U+013294: EGYPTIAN HIEROGLYPH O047*/ + RTUNI_ALPHA, /* U+013295: EGYPTIAN HIEROGLYPH O048*/ + RTUNI_ALPHA, /* U+013296: EGYPTIAN HIEROGLYPH O049*/ + RTUNI_ALPHA, /* U+013297: EGYPTIAN HIEROGLYPH O050*/ + RTUNI_ALPHA, /* U+013298: EGYPTIAN HIEROGLYPH O050A*/ + RTUNI_ALPHA, /* U+013299: EGYPTIAN HIEROGLYPH O050B*/ + RTUNI_ALPHA, /* U+01329a: EGYPTIAN HIEROGLYPH O051*/ + RTUNI_ALPHA, /* U+01329b: EGYPTIAN HIEROGLYPH P001*/ + RTUNI_ALPHA, /* U+01329c: EGYPTIAN HIEROGLYPH P001A*/ + RTUNI_ALPHA, /* U+01329d: EGYPTIAN HIEROGLYPH P002*/ + RTUNI_ALPHA, /* U+01329e: EGYPTIAN HIEROGLYPH P003*/ + RTUNI_ALPHA, /* U+01329f: EGYPTIAN HIEROGLYPH P003A*/ + RTUNI_ALPHA, /* U+0132a0: EGYPTIAN HIEROGLYPH P004*/ + RTUNI_ALPHA, /* U+0132a1: EGYPTIAN HIEROGLYPH P005*/ + RTUNI_ALPHA, /* U+0132a2: EGYPTIAN HIEROGLYPH P006*/ + RTUNI_ALPHA, /* U+0132a3: EGYPTIAN HIEROGLYPH P007*/ + RTUNI_ALPHA, /* U+0132a4: EGYPTIAN HIEROGLYPH P008*/ + RTUNI_ALPHA, /* U+0132a5: EGYPTIAN HIEROGLYPH P009*/ + RTUNI_ALPHA, /* U+0132a6: EGYPTIAN HIEROGLYPH P010*/ + RTUNI_ALPHA, /* U+0132a7: EGYPTIAN HIEROGLYPH P011*/ + RTUNI_ALPHA, /* U+0132a8: EGYPTIAN HIEROGLYPH Q001*/ + RTUNI_ALPHA, /* U+0132a9: EGYPTIAN HIEROGLYPH Q002*/ + RTUNI_ALPHA, /* U+0132aa: EGYPTIAN HIEROGLYPH Q003*/ + RTUNI_ALPHA, /* U+0132ab: EGYPTIAN HIEROGLYPH Q004*/ + RTUNI_ALPHA, /* U+0132ac: EGYPTIAN HIEROGLYPH Q005*/ + RTUNI_ALPHA, /* U+0132ad: EGYPTIAN HIEROGLYPH Q006*/ + RTUNI_ALPHA, /* U+0132ae: EGYPTIAN HIEROGLYPH Q007*/ + RTUNI_ALPHA, /* U+0132af: EGYPTIAN HIEROGLYPH R001*/ + RTUNI_ALPHA, /* U+0132b0: EGYPTIAN HIEROGLYPH R002*/ + RTUNI_ALPHA, /* U+0132b1: EGYPTIAN HIEROGLYPH R002A*/ + RTUNI_ALPHA, /* U+0132b2: EGYPTIAN HIEROGLYPH R003*/ + RTUNI_ALPHA, /* U+0132b3: EGYPTIAN HIEROGLYPH R003A*/ + RTUNI_ALPHA, /* U+0132b4: EGYPTIAN HIEROGLYPH R003B*/ + RTUNI_ALPHA, /* U+0132b5: EGYPTIAN HIEROGLYPH R004*/ + RTUNI_ALPHA, /* U+0132b6: EGYPTIAN HIEROGLYPH R005*/ + RTUNI_ALPHA, /* U+0132b7: EGYPTIAN HIEROGLYPH R006*/ + RTUNI_ALPHA, /* U+0132b8: EGYPTIAN HIEROGLYPH R007*/ + RTUNI_ALPHA, /* U+0132b9: EGYPTIAN HIEROGLYPH R008*/ + RTUNI_ALPHA, /* U+0132ba: EGYPTIAN HIEROGLYPH R009*/ + RTUNI_ALPHA, /* U+0132bb: EGYPTIAN HIEROGLYPH R010*/ + RTUNI_ALPHA, /* U+0132bc: EGYPTIAN HIEROGLYPH R010A*/ + RTUNI_ALPHA, /* U+0132bd: EGYPTIAN HIEROGLYPH R011*/ + RTUNI_ALPHA, /* U+0132be: EGYPTIAN HIEROGLYPH R012*/ + RTUNI_ALPHA, /* U+0132bf: EGYPTIAN HIEROGLYPH R013*/ + RTUNI_ALPHA, /* U+0132c0: EGYPTIAN HIEROGLYPH R014*/ + RTUNI_ALPHA, /* U+0132c1: EGYPTIAN HIEROGLYPH R015*/ + RTUNI_ALPHA, /* U+0132c2: EGYPTIAN HIEROGLYPH R016*/ + RTUNI_ALPHA, /* U+0132c3: EGYPTIAN HIEROGLYPH R016A*/ + RTUNI_ALPHA, /* U+0132c4: EGYPTIAN HIEROGLYPH R017*/ + RTUNI_ALPHA, /* U+0132c5: EGYPTIAN HIEROGLYPH R018*/ + RTUNI_ALPHA, /* U+0132c6: EGYPTIAN HIEROGLYPH R019*/ + RTUNI_ALPHA, /* U+0132c7: EGYPTIAN HIEROGLYPH R020*/ + RTUNI_ALPHA, /* U+0132c8: EGYPTIAN HIEROGLYPH R021*/ + RTUNI_ALPHA, /* U+0132c9: EGYPTIAN HIEROGLYPH R022*/ + RTUNI_ALPHA, /* U+0132ca: EGYPTIAN HIEROGLYPH R023*/ + RTUNI_ALPHA, /* U+0132cb: EGYPTIAN HIEROGLYPH R024*/ + RTUNI_ALPHA, /* U+0132cc: EGYPTIAN HIEROGLYPH R025*/ + RTUNI_ALPHA, /* U+0132cd: EGYPTIAN HIEROGLYPH R026*/ + RTUNI_ALPHA, /* U+0132ce: EGYPTIAN HIEROGLYPH R027*/ + RTUNI_ALPHA, /* U+0132cf: EGYPTIAN HIEROGLYPH R028*/ + RTUNI_ALPHA, /* U+0132d0: EGYPTIAN HIEROGLYPH R029*/ + RTUNI_ALPHA, /* U+0132d1: EGYPTIAN HIEROGLYPH S001*/ + RTUNI_ALPHA, /* U+0132d2: EGYPTIAN HIEROGLYPH S002*/ + RTUNI_ALPHA, /* U+0132d3: EGYPTIAN HIEROGLYPH S002A*/ + RTUNI_ALPHA, /* U+0132d4: EGYPTIAN HIEROGLYPH S003*/ + RTUNI_ALPHA, /* U+0132d5: EGYPTIAN HIEROGLYPH S004*/ + RTUNI_ALPHA, /* U+0132d6: EGYPTIAN HIEROGLYPH S005*/ + RTUNI_ALPHA, /* U+0132d7: EGYPTIAN HIEROGLYPH S006*/ + RTUNI_ALPHA, /* U+0132d8: EGYPTIAN HIEROGLYPH S006A*/ + RTUNI_ALPHA, /* U+0132d9: EGYPTIAN HIEROGLYPH S007*/ + RTUNI_ALPHA, /* U+0132da: EGYPTIAN HIEROGLYPH S008*/ + RTUNI_ALPHA, /* U+0132db: EGYPTIAN HIEROGLYPH S009*/ + RTUNI_ALPHA, /* U+0132dc: EGYPTIAN HIEROGLYPH S010*/ + RTUNI_ALPHA, /* U+0132dd: EGYPTIAN HIEROGLYPH S011*/ + RTUNI_ALPHA, /* U+0132de: EGYPTIAN HIEROGLYPH S012*/ + RTUNI_ALPHA, /* U+0132df: EGYPTIAN HIEROGLYPH S013*/ + RTUNI_ALPHA, /* U+0132e0: EGYPTIAN HIEROGLYPH S014*/ + RTUNI_ALPHA, /* U+0132e1: EGYPTIAN HIEROGLYPH S014A*/ + RTUNI_ALPHA, /* U+0132e2: EGYPTIAN HIEROGLYPH S014B*/ + RTUNI_ALPHA, /* U+0132e3: EGYPTIAN HIEROGLYPH S015*/ + RTUNI_ALPHA, /* U+0132e4: EGYPTIAN HIEROGLYPH S016*/ + RTUNI_ALPHA, /* U+0132e5: EGYPTIAN HIEROGLYPH S017*/ + RTUNI_ALPHA, /* U+0132e6: EGYPTIAN HIEROGLYPH S017A*/ + RTUNI_ALPHA, /* U+0132e7: EGYPTIAN HIEROGLYPH S018*/ + RTUNI_ALPHA, /* U+0132e8: EGYPTIAN HIEROGLYPH S019*/ + RTUNI_ALPHA, /* U+0132e9: EGYPTIAN HIEROGLYPH S020*/ + RTUNI_ALPHA, /* U+0132ea: EGYPTIAN HIEROGLYPH S021*/ + RTUNI_ALPHA, /* U+0132eb: EGYPTIAN HIEROGLYPH S022*/ + RTUNI_ALPHA, /* U+0132ec: EGYPTIAN HIEROGLYPH S023*/ + RTUNI_ALPHA, /* U+0132ed: EGYPTIAN HIEROGLYPH S024*/ + RTUNI_ALPHA, /* U+0132ee: EGYPTIAN HIEROGLYPH S025*/ + RTUNI_ALPHA, /* U+0132ef: EGYPTIAN HIEROGLYPH S026*/ + RTUNI_ALPHA, /* U+0132f0: EGYPTIAN HIEROGLYPH S026A*/ + RTUNI_ALPHA, /* U+0132f1: EGYPTIAN HIEROGLYPH S026B*/ + RTUNI_ALPHA, /* U+0132f2: EGYPTIAN HIEROGLYPH S027*/ + RTUNI_ALPHA, /* U+0132f3: EGYPTIAN HIEROGLYPH S028*/ + RTUNI_ALPHA, /* U+0132f4: EGYPTIAN HIEROGLYPH S029*/ + RTUNI_ALPHA, /* U+0132f5: EGYPTIAN HIEROGLYPH S030*/ + RTUNI_ALPHA, /* U+0132f6: EGYPTIAN HIEROGLYPH S031*/ + RTUNI_ALPHA, /* U+0132f7: EGYPTIAN HIEROGLYPH S032*/ + RTUNI_ALPHA, /* U+0132f8: EGYPTIAN HIEROGLYPH S033*/ + RTUNI_ALPHA, /* U+0132f9: EGYPTIAN HIEROGLYPH S034*/ + RTUNI_ALPHA, /* U+0132fa: EGYPTIAN HIEROGLYPH S035*/ + RTUNI_ALPHA, /* U+0132fb: EGYPTIAN HIEROGLYPH S035A*/ + RTUNI_ALPHA, /* U+0132fc: EGYPTIAN HIEROGLYPH S036*/ + RTUNI_ALPHA, /* U+0132fd: EGYPTIAN HIEROGLYPH S037*/ + RTUNI_ALPHA, /* U+0132fe: EGYPTIAN HIEROGLYPH S038*/ + RTUNI_ALPHA, /* U+0132ff: EGYPTIAN HIEROGLYPH S039*/ + RTUNI_ALPHA, /* U+013300: EGYPTIAN HIEROGLYPH S040*/ + RTUNI_ALPHA, /* U+013301: EGYPTIAN HIEROGLYPH S041*/ + RTUNI_ALPHA, /* U+013302: EGYPTIAN HIEROGLYPH S042*/ + RTUNI_ALPHA, /* U+013303: EGYPTIAN HIEROGLYPH S043*/ + RTUNI_ALPHA, /* U+013304: EGYPTIAN HIEROGLYPH S044*/ + RTUNI_ALPHA, /* U+013305: EGYPTIAN HIEROGLYPH S045*/ + RTUNI_ALPHA, /* U+013306: EGYPTIAN HIEROGLYPH S046*/ + RTUNI_ALPHA, /* U+013307: EGYPTIAN HIEROGLYPH T001*/ + RTUNI_ALPHA, /* U+013308: EGYPTIAN HIEROGLYPH T002*/ + RTUNI_ALPHA, /* U+013309: EGYPTIAN HIEROGLYPH T003*/ + RTUNI_ALPHA, /* U+01330a: EGYPTIAN HIEROGLYPH T003A*/ + RTUNI_ALPHA, /* U+01330b: EGYPTIAN HIEROGLYPH T004*/ + RTUNI_ALPHA, /* U+01330c: EGYPTIAN HIEROGLYPH T005*/ + RTUNI_ALPHA, /* U+01330d: EGYPTIAN HIEROGLYPH T006*/ + RTUNI_ALPHA, /* U+01330e: EGYPTIAN HIEROGLYPH T007*/ + RTUNI_ALPHA, /* U+01330f: EGYPTIAN HIEROGLYPH T007A*/ + RTUNI_ALPHA, /* U+013310: EGYPTIAN HIEROGLYPH T008*/ + RTUNI_ALPHA, /* U+013311: EGYPTIAN HIEROGLYPH T008A*/ + RTUNI_ALPHA, /* U+013312: EGYPTIAN HIEROGLYPH T009*/ + RTUNI_ALPHA, /* U+013313: EGYPTIAN HIEROGLYPH T009A*/ + RTUNI_ALPHA, /* U+013314: EGYPTIAN HIEROGLYPH T010*/ + RTUNI_ALPHA, /* U+013315: EGYPTIAN HIEROGLYPH T011*/ + RTUNI_ALPHA, /* U+013316: EGYPTIAN HIEROGLYPH T011A*/ + RTUNI_ALPHA, /* U+013317: EGYPTIAN HIEROGLYPH T012*/ + RTUNI_ALPHA, /* U+013318: EGYPTIAN HIEROGLYPH T013*/ + RTUNI_ALPHA, /* U+013319: EGYPTIAN HIEROGLYPH T014*/ + RTUNI_ALPHA, /* U+01331a: EGYPTIAN HIEROGLYPH T015*/ + RTUNI_ALPHA, /* U+01331b: EGYPTIAN HIEROGLYPH T016*/ + RTUNI_ALPHA, /* U+01331c: EGYPTIAN HIEROGLYPH T016A*/ + RTUNI_ALPHA, /* U+01331d: EGYPTIAN HIEROGLYPH T017*/ + RTUNI_ALPHA, /* U+01331e: EGYPTIAN HIEROGLYPH T018*/ + RTUNI_ALPHA, /* U+01331f: EGYPTIAN HIEROGLYPH T019*/ + RTUNI_ALPHA, /* U+013320: EGYPTIAN HIEROGLYPH T020*/ + RTUNI_ALPHA, /* U+013321: EGYPTIAN HIEROGLYPH T021*/ + RTUNI_ALPHA, /* U+013322: EGYPTIAN HIEROGLYPH T022*/ + RTUNI_ALPHA, /* U+013323: EGYPTIAN HIEROGLYPH T023*/ + RTUNI_ALPHA, /* U+013324: EGYPTIAN HIEROGLYPH T024*/ + RTUNI_ALPHA, /* U+013325: EGYPTIAN HIEROGLYPH T025*/ + RTUNI_ALPHA, /* U+013326: EGYPTIAN HIEROGLYPH T026*/ + RTUNI_ALPHA, /* U+013327: EGYPTIAN HIEROGLYPH T027*/ + RTUNI_ALPHA, /* U+013328: EGYPTIAN HIEROGLYPH T028*/ + RTUNI_ALPHA, /* U+013329: EGYPTIAN HIEROGLYPH T029*/ + RTUNI_ALPHA, /* U+01332a: EGYPTIAN HIEROGLYPH T030*/ + RTUNI_ALPHA, /* U+01332b: EGYPTIAN HIEROGLYPH T031*/ + RTUNI_ALPHA, /* U+01332c: EGYPTIAN HIEROGLYPH T032*/ + RTUNI_ALPHA, /* U+01332d: EGYPTIAN HIEROGLYPH T032A*/ + RTUNI_ALPHA, /* U+01332e: EGYPTIAN HIEROGLYPH T033*/ + RTUNI_ALPHA, /* U+01332f: EGYPTIAN HIEROGLYPH T033A*/ + RTUNI_ALPHA, /* U+013330: EGYPTIAN HIEROGLYPH T034*/ + RTUNI_ALPHA, /* U+013331: EGYPTIAN HIEROGLYPH T035*/ + RTUNI_ALPHA, /* U+013332: EGYPTIAN HIEROGLYPH T036*/ + RTUNI_ALPHA, /* U+013333: EGYPTIAN HIEROGLYPH U001*/ + RTUNI_ALPHA, /* U+013334: EGYPTIAN HIEROGLYPH U002*/ + RTUNI_ALPHA, /* U+013335: EGYPTIAN HIEROGLYPH U003*/ + RTUNI_ALPHA, /* U+013336: EGYPTIAN HIEROGLYPH U004*/ + RTUNI_ALPHA, /* U+013337: EGYPTIAN HIEROGLYPH U005*/ + RTUNI_ALPHA, /* U+013338: EGYPTIAN HIEROGLYPH U006*/ + RTUNI_ALPHA, /* U+013339: EGYPTIAN HIEROGLYPH U006A*/ + RTUNI_ALPHA, /* U+01333a: EGYPTIAN HIEROGLYPH U006B*/ + RTUNI_ALPHA, /* U+01333b: EGYPTIAN HIEROGLYPH U007*/ + RTUNI_ALPHA, /* U+01333c: EGYPTIAN HIEROGLYPH U008*/ + RTUNI_ALPHA, /* U+01333d: EGYPTIAN HIEROGLYPH U009*/ + RTUNI_ALPHA, /* U+01333e: EGYPTIAN HIEROGLYPH U010*/ + RTUNI_ALPHA, /* U+01333f: EGYPTIAN HIEROGLYPH U011*/ + RTUNI_ALPHA, /* U+013340: EGYPTIAN HIEROGLYPH U012*/ + RTUNI_ALPHA, /* U+013341: EGYPTIAN HIEROGLYPH U013*/ + RTUNI_ALPHA, /* U+013342: EGYPTIAN HIEROGLYPH U014*/ + RTUNI_ALPHA, /* U+013343: EGYPTIAN HIEROGLYPH U015*/ + RTUNI_ALPHA, /* U+013344: EGYPTIAN HIEROGLYPH U016*/ + RTUNI_ALPHA, /* U+013345: EGYPTIAN HIEROGLYPH U017*/ + RTUNI_ALPHA, /* U+013346: EGYPTIAN HIEROGLYPH U018*/ + RTUNI_ALPHA, /* U+013347: EGYPTIAN HIEROGLYPH U019*/ + RTUNI_ALPHA, /* U+013348: EGYPTIAN HIEROGLYPH U020*/ + RTUNI_ALPHA, /* U+013349: EGYPTIAN HIEROGLYPH U021*/ + RTUNI_ALPHA, /* U+01334a: EGYPTIAN HIEROGLYPH U022*/ + RTUNI_ALPHA, /* U+01334b: EGYPTIAN HIEROGLYPH U023*/ + RTUNI_ALPHA, /* U+01334c: EGYPTIAN HIEROGLYPH U023A*/ + RTUNI_ALPHA, /* U+01334d: EGYPTIAN HIEROGLYPH U024*/ + RTUNI_ALPHA, /* U+01334e: EGYPTIAN HIEROGLYPH U025*/ + RTUNI_ALPHA, /* U+01334f: EGYPTIAN HIEROGLYPH U026*/ + RTUNI_ALPHA, /* U+013350: EGYPTIAN HIEROGLYPH U027*/ + RTUNI_ALPHA, /* U+013351: EGYPTIAN HIEROGLYPH U028*/ + RTUNI_ALPHA, /* U+013352: EGYPTIAN HIEROGLYPH U029*/ + RTUNI_ALPHA, /* U+013353: EGYPTIAN HIEROGLYPH U029A*/ + RTUNI_ALPHA, /* U+013354: EGYPTIAN HIEROGLYPH U030*/ + RTUNI_ALPHA, /* U+013355: EGYPTIAN HIEROGLYPH U031*/ + RTUNI_ALPHA, /* U+013356: EGYPTIAN HIEROGLYPH U032*/ + RTUNI_ALPHA, /* U+013357: EGYPTIAN HIEROGLYPH U032A*/ + RTUNI_ALPHA, /* U+013358: EGYPTIAN HIEROGLYPH U033*/ + RTUNI_ALPHA, /* U+013359: EGYPTIAN HIEROGLYPH U034*/ + RTUNI_ALPHA, /* U+01335a: EGYPTIAN HIEROGLYPH U035*/ + RTUNI_ALPHA, /* U+01335b: EGYPTIAN HIEROGLYPH U036*/ + RTUNI_ALPHA, /* U+01335c: EGYPTIAN HIEROGLYPH U037*/ + RTUNI_ALPHA, /* U+01335d: EGYPTIAN HIEROGLYPH U038*/ + RTUNI_ALPHA, /* U+01335e: EGYPTIAN HIEROGLYPH U039*/ + RTUNI_ALPHA, /* U+01335f: EGYPTIAN HIEROGLYPH U040*/ + RTUNI_ALPHA, /* U+013360: EGYPTIAN HIEROGLYPH U041*/ + RTUNI_ALPHA, /* U+013361: EGYPTIAN HIEROGLYPH U042*/ + RTUNI_ALPHA, /* U+013362: EGYPTIAN HIEROGLYPH V001*/ + RTUNI_ALPHA, /* U+013363: EGYPTIAN HIEROGLYPH V001A*/ + RTUNI_ALPHA, /* U+013364: EGYPTIAN HIEROGLYPH V001B*/ + RTUNI_ALPHA, /* U+013365: EGYPTIAN HIEROGLYPH V001C*/ + RTUNI_ALPHA, /* U+013366: EGYPTIAN HIEROGLYPH V001D*/ + RTUNI_ALPHA, /* U+013367: EGYPTIAN HIEROGLYPH V001E*/ + RTUNI_ALPHA, /* U+013368: EGYPTIAN HIEROGLYPH V001F*/ + RTUNI_ALPHA, /* U+013369: EGYPTIAN HIEROGLYPH V001G*/ + RTUNI_ALPHA, /* U+01336a: EGYPTIAN HIEROGLYPH V001H*/ + RTUNI_ALPHA, /* U+01336b: EGYPTIAN HIEROGLYPH V001I*/ + RTUNI_ALPHA, /* U+01336c: EGYPTIAN HIEROGLYPH V002*/ + RTUNI_ALPHA, /* U+01336d: EGYPTIAN HIEROGLYPH V002A*/ + RTUNI_ALPHA, /* U+01336e: EGYPTIAN HIEROGLYPH V003*/ + RTUNI_ALPHA, /* U+01336f: EGYPTIAN HIEROGLYPH V004*/ + RTUNI_ALPHA, /* U+013370: EGYPTIAN HIEROGLYPH V005*/ + RTUNI_ALPHA, /* U+013371: EGYPTIAN HIEROGLYPH V006*/ + RTUNI_ALPHA, /* U+013372: EGYPTIAN HIEROGLYPH V007*/ + RTUNI_ALPHA, /* U+013373: EGYPTIAN HIEROGLYPH V007A*/ + RTUNI_ALPHA, /* U+013374: EGYPTIAN HIEROGLYPH V007B*/ + RTUNI_ALPHA, /* U+013375: EGYPTIAN HIEROGLYPH V008*/ + RTUNI_ALPHA, /* U+013376: EGYPTIAN HIEROGLYPH V009*/ + RTUNI_ALPHA, /* U+013377: EGYPTIAN HIEROGLYPH V010*/ + RTUNI_ALPHA, /* U+013378: EGYPTIAN HIEROGLYPH V011*/ + RTUNI_ALPHA, /* U+013379: EGYPTIAN HIEROGLYPH V011A*/ + RTUNI_ALPHA, /* U+01337a: EGYPTIAN HIEROGLYPH V011B*/ + RTUNI_ALPHA, /* U+01337b: EGYPTIAN HIEROGLYPH V011C*/ + RTUNI_ALPHA, /* U+01337c: EGYPTIAN HIEROGLYPH V012*/ + RTUNI_ALPHA, /* U+01337d: EGYPTIAN HIEROGLYPH V012A*/ + RTUNI_ALPHA, /* U+01337e: EGYPTIAN HIEROGLYPH V012B*/ + RTUNI_ALPHA, /* U+01337f: EGYPTIAN HIEROGLYPH V013*/ + RTUNI_ALPHA, /* U+013380: EGYPTIAN HIEROGLYPH V014*/ + RTUNI_ALPHA, /* U+013381: EGYPTIAN HIEROGLYPH V015*/ + RTUNI_ALPHA, /* U+013382: EGYPTIAN HIEROGLYPH V016*/ + RTUNI_ALPHA, /* U+013383: EGYPTIAN HIEROGLYPH V017*/ + RTUNI_ALPHA, /* U+013384: EGYPTIAN HIEROGLYPH V018*/ + RTUNI_ALPHA, /* U+013385: EGYPTIAN HIEROGLYPH V019*/ + RTUNI_ALPHA, /* U+013386: EGYPTIAN HIEROGLYPH V020*/ + RTUNI_ALPHA, /* U+013387: EGYPTIAN HIEROGLYPH V020A*/ + RTUNI_ALPHA, /* U+013388: EGYPTIAN HIEROGLYPH V020B*/ + RTUNI_ALPHA, /* U+013389: EGYPTIAN HIEROGLYPH V020C*/ + RTUNI_ALPHA, /* U+01338a: EGYPTIAN HIEROGLYPH V020D*/ + RTUNI_ALPHA, /* U+01338b: EGYPTIAN HIEROGLYPH V020E*/ + RTUNI_ALPHA, /* U+01338c: EGYPTIAN HIEROGLYPH V020F*/ + RTUNI_ALPHA, /* U+01338d: EGYPTIAN HIEROGLYPH V020G*/ + RTUNI_ALPHA, /* U+01338e: EGYPTIAN HIEROGLYPH V020H*/ + RTUNI_ALPHA, /* U+01338f: EGYPTIAN HIEROGLYPH V020I*/ + RTUNI_ALPHA, /* U+013390: EGYPTIAN HIEROGLYPH V020J*/ + RTUNI_ALPHA, /* U+013391: EGYPTIAN HIEROGLYPH V020K*/ + RTUNI_ALPHA, /* U+013392: EGYPTIAN HIEROGLYPH V020L*/ + RTUNI_ALPHA, /* U+013393: EGYPTIAN HIEROGLYPH V021*/ + RTUNI_ALPHA, /* U+013394: EGYPTIAN HIEROGLYPH V022*/ + RTUNI_ALPHA, /* U+013395: EGYPTIAN HIEROGLYPH V023*/ + RTUNI_ALPHA, /* U+013396: EGYPTIAN HIEROGLYPH V023A*/ + RTUNI_ALPHA, /* U+013397: EGYPTIAN HIEROGLYPH V024*/ + RTUNI_ALPHA, /* U+013398: EGYPTIAN HIEROGLYPH V025*/ + RTUNI_ALPHA, /* U+013399: EGYPTIAN HIEROGLYPH V026*/ + RTUNI_ALPHA, /* U+01339a: EGYPTIAN HIEROGLYPH V027*/ + RTUNI_ALPHA, /* U+01339b: EGYPTIAN HIEROGLYPH V028*/ + RTUNI_ALPHA, /* U+01339c: EGYPTIAN HIEROGLYPH V028A*/ + RTUNI_ALPHA, /* U+01339d: EGYPTIAN HIEROGLYPH V029*/ + RTUNI_ALPHA, /* U+01339e: EGYPTIAN HIEROGLYPH V029A*/ + RTUNI_ALPHA, /* U+01339f: EGYPTIAN HIEROGLYPH V030*/ + RTUNI_ALPHA, /* U+0133a0: EGYPTIAN HIEROGLYPH V030A*/ + RTUNI_ALPHA, /* U+0133a1: EGYPTIAN HIEROGLYPH V031*/ + RTUNI_ALPHA, /* U+0133a2: EGYPTIAN HIEROGLYPH V031A*/ + RTUNI_ALPHA, /* U+0133a3: EGYPTIAN HIEROGLYPH V032*/ + RTUNI_ALPHA, /* U+0133a4: EGYPTIAN HIEROGLYPH V033*/ + RTUNI_ALPHA, /* U+0133a5: EGYPTIAN HIEROGLYPH V033A*/ + RTUNI_ALPHA, /* U+0133a6: EGYPTIAN HIEROGLYPH V034*/ + RTUNI_ALPHA, /* U+0133a7: EGYPTIAN HIEROGLYPH V035*/ + RTUNI_ALPHA, /* U+0133a8: EGYPTIAN HIEROGLYPH V036*/ + RTUNI_ALPHA, /* U+0133a9: EGYPTIAN HIEROGLYPH V037*/ + RTUNI_ALPHA, /* U+0133aa: EGYPTIAN HIEROGLYPH V037A*/ + RTUNI_ALPHA, /* U+0133ab: EGYPTIAN HIEROGLYPH V038*/ + RTUNI_ALPHA, /* U+0133ac: EGYPTIAN HIEROGLYPH V039*/ + RTUNI_ALPHA, /* U+0133ad: EGYPTIAN HIEROGLYPH V040*/ + RTUNI_ALPHA, /* U+0133ae: EGYPTIAN HIEROGLYPH V040A*/ + RTUNI_ALPHA, /* U+0133af: EGYPTIAN HIEROGLYPH W001*/ + RTUNI_ALPHA, /* U+0133b0: EGYPTIAN HIEROGLYPH W002*/ + RTUNI_ALPHA, /* U+0133b1: EGYPTIAN HIEROGLYPH W003*/ + RTUNI_ALPHA, /* U+0133b2: EGYPTIAN HIEROGLYPH W003A*/ + RTUNI_ALPHA, /* U+0133b3: EGYPTIAN HIEROGLYPH W004*/ + RTUNI_ALPHA, /* U+0133b4: EGYPTIAN HIEROGLYPH W005*/ + RTUNI_ALPHA, /* U+0133b5: EGYPTIAN HIEROGLYPH W006*/ + RTUNI_ALPHA, /* U+0133b6: EGYPTIAN HIEROGLYPH W007*/ + RTUNI_ALPHA, /* U+0133b7: EGYPTIAN HIEROGLYPH W008*/ + RTUNI_ALPHA, /* U+0133b8: EGYPTIAN HIEROGLYPH W009*/ + RTUNI_ALPHA, /* U+0133b9: EGYPTIAN HIEROGLYPH W009A*/ + RTUNI_ALPHA, /* U+0133ba: EGYPTIAN HIEROGLYPH W010*/ + RTUNI_ALPHA, /* U+0133bb: EGYPTIAN HIEROGLYPH W010A*/ + RTUNI_ALPHA, /* U+0133bc: EGYPTIAN HIEROGLYPH W011*/ + RTUNI_ALPHA, /* U+0133bd: EGYPTIAN HIEROGLYPH W012*/ + RTUNI_ALPHA, /* U+0133be: EGYPTIAN HIEROGLYPH W013*/ + RTUNI_ALPHA, /* U+0133bf: EGYPTIAN HIEROGLYPH W014*/ + RTUNI_ALPHA, /* U+0133c0: EGYPTIAN HIEROGLYPH W014A*/ + RTUNI_ALPHA, /* U+0133c1: EGYPTIAN HIEROGLYPH W015*/ + RTUNI_ALPHA, /* U+0133c2: EGYPTIAN HIEROGLYPH W016*/ + RTUNI_ALPHA, /* U+0133c3: EGYPTIAN HIEROGLYPH W017*/ + RTUNI_ALPHA, /* U+0133c4: EGYPTIAN HIEROGLYPH W017A*/ + RTUNI_ALPHA, /* U+0133c5: EGYPTIAN HIEROGLYPH W018*/ + RTUNI_ALPHA, /* U+0133c6: EGYPTIAN HIEROGLYPH W018A*/ + RTUNI_ALPHA, /* U+0133c7: EGYPTIAN HIEROGLYPH W019*/ + RTUNI_ALPHA, /* U+0133c8: EGYPTIAN HIEROGLYPH W020*/ + RTUNI_ALPHA, /* U+0133c9: EGYPTIAN HIEROGLYPH W021*/ + RTUNI_ALPHA, /* U+0133ca: EGYPTIAN HIEROGLYPH W022*/ + RTUNI_ALPHA, /* U+0133cb: EGYPTIAN HIEROGLYPH W023*/ + RTUNI_ALPHA, /* U+0133cc: EGYPTIAN HIEROGLYPH W024*/ + RTUNI_ALPHA, /* U+0133cd: EGYPTIAN HIEROGLYPH W024A*/ + RTUNI_ALPHA, /* U+0133ce: EGYPTIAN HIEROGLYPH W025*/ + RTUNI_ALPHA, /* U+0133cf: EGYPTIAN HIEROGLYPH X001*/ + RTUNI_ALPHA, /* U+0133d0: EGYPTIAN HIEROGLYPH X002*/ + RTUNI_ALPHA, /* U+0133d1: EGYPTIAN HIEROGLYPH X003*/ + RTUNI_ALPHA, /* U+0133d2: EGYPTIAN HIEROGLYPH X004*/ + RTUNI_ALPHA, /* U+0133d3: EGYPTIAN HIEROGLYPH X004A*/ + RTUNI_ALPHA, /* U+0133d4: EGYPTIAN HIEROGLYPH X004B*/ + RTUNI_ALPHA, /* U+0133d5: EGYPTIAN HIEROGLYPH X005*/ + RTUNI_ALPHA, /* U+0133d6: EGYPTIAN HIEROGLYPH X006*/ + RTUNI_ALPHA, /* U+0133d7: EGYPTIAN HIEROGLYPH X006A*/ + RTUNI_ALPHA, /* U+0133d8: EGYPTIAN HIEROGLYPH X007*/ + RTUNI_ALPHA, /* U+0133d9: EGYPTIAN HIEROGLYPH X008*/ + RTUNI_ALPHA, /* U+0133da: EGYPTIAN HIEROGLYPH X008A*/ + RTUNI_ALPHA, /* U+0133db: EGYPTIAN HIEROGLYPH Y001*/ + RTUNI_ALPHA, /* U+0133dc: EGYPTIAN HIEROGLYPH Y001A*/ + RTUNI_ALPHA, /* U+0133dd: EGYPTIAN HIEROGLYPH Y002*/ + RTUNI_ALPHA, /* U+0133de: EGYPTIAN HIEROGLYPH Y003*/ + RTUNI_ALPHA, /* U+0133df: EGYPTIAN HIEROGLYPH Y004*/ + RTUNI_ALPHA, /* U+0133e0: EGYPTIAN HIEROGLYPH Y005*/ + RTUNI_ALPHA, /* U+0133e1: EGYPTIAN HIEROGLYPH Y006*/ + RTUNI_ALPHA, /* U+0133e2: EGYPTIAN HIEROGLYPH Y007*/ + RTUNI_ALPHA, /* U+0133e3: EGYPTIAN HIEROGLYPH Y008*/ + RTUNI_ALPHA, /* U+0133e4: EGYPTIAN HIEROGLYPH Z001*/ + RTUNI_ALPHA, /* U+0133e5: EGYPTIAN HIEROGLYPH Z002*/ + RTUNI_ALPHA, /* U+0133e6: EGYPTIAN HIEROGLYPH Z002A*/ + RTUNI_ALPHA, /* U+0133e7: EGYPTIAN HIEROGLYPH Z002B*/ + RTUNI_ALPHA, /* U+0133e8: EGYPTIAN HIEROGLYPH Z002C*/ + RTUNI_ALPHA, /* U+0133e9: EGYPTIAN HIEROGLYPH Z002D*/ + RTUNI_ALPHA, /* U+0133ea: EGYPTIAN HIEROGLYPH Z003*/ + RTUNI_ALPHA, /* U+0133eb: EGYPTIAN HIEROGLYPH Z003A*/ + RTUNI_ALPHA, /* U+0133ec: EGYPTIAN HIEROGLYPH Z003B*/ + RTUNI_ALPHA, /* U+0133ed: EGYPTIAN HIEROGLYPH Z004*/ + RTUNI_ALPHA, /* U+0133ee: EGYPTIAN HIEROGLYPH Z004A*/ + RTUNI_ALPHA, /* U+0133ef: EGYPTIAN HIEROGLYPH Z005*/ + RTUNI_ALPHA, /* U+0133f0: EGYPTIAN HIEROGLYPH Z005A*/ + RTUNI_ALPHA, /* U+0133f1: EGYPTIAN HIEROGLYPH Z006*/ + RTUNI_ALPHA, /* U+0133f2: EGYPTIAN HIEROGLYPH Z007*/ + RTUNI_ALPHA, /* U+0133f3: EGYPTIAN HIEROGLYPH Z008*/ + RTUNI_ALPHA, /* U+0133f4: EGYPTIAN HIEROGLYPH Z009*/ + RTUNI_ALPHA, /* U+0133f5: EGYPTIAN HIEROGLYPH Z010*/ + RTUNI_ALPHA, /* U+0133f6: EGYPTIAN HIEROGLYPH Z011*/ + RTUNI_ALPHA, /* U+0133f7: EGYPTIAN HIEROGLYPH Z012*/ + RTUNI_ALPHA, /* U+0133f8: EGYPTIAN HIEROGLYPH Z013*/ + RTUNI_ALPHA, /* U+0133f9: EGYPTIAN HIEROGLYPH Z014*/ + RTUNI_ALPHA, /* U+0133fa: EGYPTIAN HIEROGLYPH Z015*/ + RTUNI_ALPHA, /* U+0133fb: EGYPTIAN HIEROGLYPH Z015A*/ + RTUNI_ALPHA, /* U+0133fc: EGYPTIAN HIEROGLYPH Z015B*/ + RTUNI_ALPHA, /* U+0133fd: EGYPTIAN HIEROGLYPH Z015C*/ + RTUNI_ALPHA, /* U+0133fe: EGYPTIAN HIEROGLYPH Z015D*/ + RTUNI_ALPHA, /* U+0133ff: EGYPTIAN HIEROGLYPH Z015E*/ + RTUNI_ALPHA, /* U+013400: EGYPTIAN HIEROGLYPH Z015F*/ + RTUNI_ALPHA, /* U+013401: EGYPTIAN HIEROGLYPH Z015G*/ + RTUNI_ALPHA, /* U+013402: EGYPTIAN HIEROGLYPH Z015H*/ + RTUNI_ALPHA, /* U+013403: EGYPTIAN HIEROGLYPH Z015I*/ + RTUNI_ALPHA, /* U+013404: EGYPTIAN HIEROGLYPH Z016*/ + RTUNI_ALPHA, /* U+013405: EGYPTIAN HIEROGLYPH Z016A*/ + RTUNI_ALPHA, /* U+013406: EGYPTIAN HIEROGLYPH Z016B*/ + RTUNI_ALPHA, /* U+013407: EGYPTIAN HIEROGLYPH Z016C*/ + RTUNI_ALPHA, /* U+013408: EGYPTIAN HIEROGLYPH Z016D*/ + RTUNI_ALPHA, /* U+013409: EGYPTIAN HIEROGLYPH Z016E*/ + RTUNI_ALPHA, /* U+01340a: EGYPTIAN HIEROGLYPH Z016F*/ + RTUNI_ALPHA, /* U+01340b: EGYPTIAN HIEROGLYPH Z016G*/ + RTUNI_ALPHA, /* U+01340c: EGYPTIAN HIEROGLYPH Z016H*/ + RTUNI_ALPHA, /* U+01340d: EGYPTIAN HIEROGLYPH AA001*/ + RTUNI_ALPHA, /* U+01340e: EGYPTIAN HIEROGLYPH AA002*/ + RTUNI_ALPHA, /* U+01340f: EGYPTIAN HIEROGLYPH AA003*/ + RTUNI_ALPHA, /* U+013410: EGYPTIAN HIEROGLYPH AA004*/ + RTUNI_ALPHA, /* U+013411: EGYPTIAN HIEROGLYPH AA005*/ + RTUNI_ALPHA, /* U+013412: EGYPTIAN HIEROGLYPH AA006*/ + RTUNI_ALPHA, /* U+013413: EGYPTIAN HIEROGLYPH AA007*/ + RTUNI_ALPHA, /* U+013414: EGYPTIAN HIEROGLYPH AA007A*/ + RTUNI_ALPHA, /* U+013415: EGYPTIAN HIEROGLYPH AA007B*/ + RTUNI_ALPHA, /* U+013416: EGYPTIAN HIEROGLYPH AA008*/ + RTUNI_ALPHA, /* U+013417: EGYPTIAN HIEROGLYPH AA009*/ + RTUNI_ALPHA, /* U+013418: EGYPTIAN HIEROGLYPH AA010*/ + RTUNI_ALPHA, /* U+013419: EGYPTIAN HIEROGLYPH AA011*/ + RTUNI_ALPHA, /* U+01341a: EGYPTIAN HIEROGLYPH AA012*/ + RTUNI_ALPHA, /* U+01341b: EGYPTIAN HIEROGLYPH AA013*/ + RTUNI_ALPHA, /* U+01341c: EGYPTIAN HIEROGLYPH AA014*/ + RTUNI_ALPHA, /* U+01341d: EGYPTIAN HIEROGLYPH AA015*/ + RTUNI_ALPHA, /* U+01341e: EGYPTIAN HIEROGLYPH AA016*/ + RTUNI_ALPHA, /* U+01341f: EGYPTIAN HIEROGLYPH AA017*/ + RTUNI_ALPHA, /* U+013420: EGYPTIAN HIEROGLYPH AA018*/ + RTUNI_ALPHA, /* U+013421: EGYPTIAN HIEROGLYPH AA019*/ + RTUNI_ALPHA, /* U+013422: EGYPTIAN HIEROGLYPH AA020*/ + RTUNI_ALPHA, /* U+013423: EGYPTIAN HIEROGLYPH AA021*/ + RTUNI_ALPHA, /* U+013424: EGYPTIAN HIEROGLYPH AA022*/ + RTUNI_ALPHA, /* U+013425: EGYPTIAN HIEROGLYPH AA023*/ + RTUNI_ALPHA, /* U+013426: EGYPTIAN HIEROGLYPH AA024*/ + RTUNI_ALPHA, /* U+013427: EGYPTIAN HIEROGLYPH AA025*/ + RTUNI_ALPHA, /* U+013428: EGYPTIAN HIEROGLYPH AA026*/ + RTUNI_ALPHA, /* U+013429: EGYPTIAN HIEROGLYPH AA027*/ + RTUNI_ALPHA, /* U+01342a: EGYPTIAN HIEROGLYPH AA028*/ + RTUNI_ALPHA, /* U+01342b: EGYPTIAN HIEROGLYPH AA029*/ + RTUNI_ALPHA, /* U+01342c: EGYPTIAN HIEROGLYPH AA030*/ + RTUNI_ALPHA, /* U+01342d: EGYPTIAN HIEROGLYPH AA031*/ + RTUNI_ALPHA, /* U+01342e: EGYPTIAN HIEROGLYPH AA032*/ +}; + +static const uint8_t g_afRTUniFlags0x016800[] = +{ + RTUNI_ALPHA, /* U+016800: BAMUM LETTER PHASE-A NGKUE MFON*/ + RTUNI_ALPHA, /* U+016801: BAMUM LETTER PHASE-A GBIEE FON*/ + RTUNI_ALPHA, /* U+016802: BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE*/ + RTUNI_ALPHA, /* U+016803: BAMUM LETTER PHASE-A PON MFON PIPAEMBA*/ + RTUNI_ALPHA, /* U+016804: BAMUM LETTER PHASE-A NAA MFON*/ + RTUNI_ALPHA, /* U+016805: BAMUM LETTER PHASE-A SHUENSHUET*/ + RTUNI_ALPHA, /* U+016806: BAMUM LETTER PHASE-A TITA MFON*/ + RTUNI_ALPHA, /* U+016807: BAMUM LETTER PHASE-A NZA MFON*/ + RTUNI_ALPHA, /* U+016808: BAMUM LETTER PHASE-A SHINDA PA NJI*/ + RTUNI_ALPHA, /* U+016809: BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE*/ + RTUNI_ALPHA, /* U+01680a: BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA*/ + RTUNI_ALPHA, /* U+01680b: BAMUM LETTER PHASE-A MAEMBGBIEE*/ + RTUNI_ALPHA, /* U+01680c: BAMUM LETTER PHASE-A TU MAEMBA*/ + RTUNI_ALPHA, /* U+01680d: BAMUM LETTER PHASE-A NGANGU*/ + RTUNI_ALPHA, /* U+01680e: BAMUM LETTER PHASE-A MAEMVEUX*/ + RTUNI_ALPHA, /* U+01680f: BAMUM LETTER PHASE-A MANSUAE*/ + RTUNI_ALPHA, /* U+016810: BAMUM LETTER PHASE-A MVEUAENGAM*/ + RTUNI_ALPHA, /* U+016811: BAMUM LETTER PHASE-A SEUNYAM*/ + RTUNI_ALPHA, /* U+016812: BAMUM LETTER PHASE-A NTOQPEN*/ + RTUNI_ALPHA, /* U+016813: BAMUM LETTER PHASE-A KEUKEUTNDA*/ + RTUNI_ALPHA, /* U+016814: BAMUM LETTER PHASE-A NKINDI*/ + RTUNI_ALPHA, /* U+016815: BAMUM LETTER PHASE-A SUU*/ + RTUNI_ALPHA, /* U+016816: BAMUM LETTER PHASE-A NGKUENZEUM*/ + RTUNI_ALPHA, /* U+016817: BAMUM LETTER PHASE-A LAPAQ*/ + RTUNI_ALPHA, /* U+016818: BAMUM LETTER PHASE-A LET KUT*/ + RTUNI_ALPHA, /* U+016819: BAMUM LETTER PHASE-A NTAP MFAA*/ + RTUNI_ALPHA, /* U+01681a: BAMUM LETTER PHASE-A MAEKEUP*/ + RTUNI_ALPHA, /* U+01681b: BAMUM LETTER PHASE-A PASHAE*/ + RTUNI_ALPHA, /* U+01681c: BAMUM LETTER PHASE-A GHEUAERAE*/ + RTUNI_ALPHA, /* U+01681d: BAMUM LETTER PHASE-A PAMSHAE*/ + RTUNI_ALPHA, /* U+01681e: BAMUM LETTER PHASE-A MON NGGEUAET*/ + RTUNI_ALPHA, /* U+01681f: BAMUM LETTER PHASE-A NZUN MEUT*/ + RTUNI_ALPHA, /* U+016820: BAMUM LETTER PHASE-A U YUQ NAE*/ + RTUNI_ALPHA, /* U+016821: BAMUM LETTER PHASE-A GHEUAEGHEUAE*/ + RTUNI_ALPHA, /* U+016822: BAMUM LETTER PHASE-A NTAP NTAA*/ + RTUNI_ALPHA, /* U+016823: BAMUM LETTER PHASE-A SISA*/ + RTUNI_ALPHA, /* U+016824: BAMUM LETTER PHASE-A MGBASA*/ + RTUNI_ALPHA, /* U+016825: BAMUM LETTER PHASE-A MEUNJOMNDEUQ*/ + RTUNI_ALPHA, /* U+016826: BAMUM LETTER PHASE-A MOOMPUQ*/ + RTUNI_ALPHA, /* U+016827: BAMUM LETTER PHASE-A KAFA*/ + RTUNI_ALPHA, /* U+016828: BAMUM LETTER PHASE-A PA LEERAEWA*/ + RTUNI_ALPHA, /* U+016829: BAMUM LETTER PHASE-A NDA LEERAEWA*/ + RTUNI_ALPHA, /* U+01682a: BAMUM LETTER PHASE-A PET*/ + RTUNI_ALPHA, /* U+01682b: BAMUM LETTER PHASE-A MAEMKPEN*/ + RTUNI_ALPHA, /* U+01682c: BAMUM LETTER PHASE-A NIKA*/ + RTUNI_ALPHA, /* U+01682d: BAMUM LETTER PHASE-A PUP*/ + RTUNI_ALPHA, /* U+01682e: BAMUM LETTER PHASE-A TUAEP*/ + RTUNI_ALPHA, /* U+01682f: BAMUM LETTER PHASE-A LUAEP*/ + RTUNI_ALPHA, /* U+016830: BAMUM LETTER PHASE-A SONJAM*/ + RTUNI_ALPHA, /* U+016831: BAMUM LETTER PHASE-A TEUTEUWEN*/ + RTUNI_ALPHA, /* U+016832: BAMUM LETTER PHASE-A MAENYI*/ + RTUNI_ALPHA, /* U+016833: BAMUM LETTER PHASE-A KET*/ + RTUNI_ALPHA, /* U+016834: BAMUM LETTER PHASE-A NDAANGGEUAET*/ + RTUNI_ALPHA, /* U+016835: BAMUM LETTER PHASE-A KUOQ*/ + RTUNI_ALPHA, /* U+016836: BAMUM LETTER PHASE-A MOOMEUT*/ + RTUNI_ALPHA, /* U+016837: BAMUM LETTER PHASE-A SHUM*/ + RTUNI_ALPHA, /* U+016838: BAMUM LETTER PHASE-A LOMMAE*/ + RTUNI_ALPHA, /* U+016839: BAMUM LETTER PHASE-A FIRI*/ + RTUNI_ALPHA, /* U+01683a: BAMUM LETTER PHASE-A ROM*/ + RTUNI_ALPHA, /* U+01683b: BAMUM LETTER PHASE-A KPOQ*/ + RTUNI_ALPHA, /* U+01683c: BAMUM LETTER PHASE-A SOQ*/ + RTUNI_ALPHA, /* U+01683d: BAMUM LETTER PHASE-A MAP PIEET*/ + RTUNI_ALPHA, /* U+01683e: BAMUM LETTER PHASE-A SHIRAE*/ + RTUNI_ALPHA, /* U+01683f: BAMUM LETTER PHASE-A NTAP*/ + RTUNI_ALPHA, /* U+016840: BAMUM LETTER PHASE-A SHOQ NSHUT YUM*/ + RTUNI_ALPHA, /* U+016841: BAMUM LETTER PHASE-A NYIT MONGKEUAEQ*/ + RTUNI_ALPHA, /* U+016842: BAMUM LETTER PHASE-A PAARAE*/ + RTUNI_ALPHA, /* U+016843: BAMUM LETTER PHASE-A NKAARAE*/ + RTUNI_ALPHA, /* U+016844: BAMUM LETTER PHASE-A UNKNOWN*/ + RTUNI_ALPHA, /* U+016845: BAMUM LETTER PHASE-A NGGEN*/ + RTUNI_ALPHA, /* U+016846: BAMUM LETTER PHASE-A MAESI*/ + RTUNI_ALPHA, /* U+016847: BAMUM LETTER PHASE-A NJAM*/ + RTUNI_ALPHA, /* U+016848: BAMUM LETTER PHASE-A MBANYI*/ + RTUNI_ALPHA, /* U+016849: BAMUM LETTER PHASE-A NYET*/ + RTUNI_ALPHA, /* U+01684a: BAMUM LETTER PHASE-A TEUAEN*/ + RTUNI_ALPHA, /* U+01684b: BAMUM LETTER PHASE-A SOT*/ + RTUNI_ALPHA, /* U+01684c: BAMUM LETTER PHASE-A PAAM*/ + RTUNI_ALPHA, /* U+01684d: BAMUM LETTER PHASE-A NSHIEE*/ + RTUNI_ALPHA, /* U+01684e: BAMUM LETTER PHASE-A MAEM*/ + RTUNI_ALPHA, /* U+01684f: BAMUM LETTER PHASE-A NYI*/ + RTUNI_ALPHA, /* U+016850: BAMUM LETTER PHASE-A KAQ*/ + RTUNI_ALPHA, /* U+016851: BAMUM LETTER PHASE-A NSHA*/ + RTUNI_ALPHA, /* U+016852: BAMUM LETTER PHASE-A VEE*/ + RTUNI_ALPHA, /* U+016853: BAMUM LETTER PHASE-A LU*/ + RTUNI_ALPHA, /* U+016854: BAMUM LETTER PHASE-A NEN*/ + RTUNI_ALPHA, /* U+016855: BAMUM LETTER PHASE-A NAQ*/ + RTUNI_ALPHA, /* U+016856: BAMUM LETTER PHASE-A MBAQ*/ + RTUNI_ALPHA, /* U+016857: BAMUM LETTER PHASE-B NSHUET*/ + RTUNI_ALPHA, /* U+016858: BAMUM LETTER PHASE-B TU MAEMGBIEE*/ + RTUNI_ALPHA, /* U+016859: BAMUM LETTER PHASE-B SIEE*/ + RTUNI_ALPHA, /* U+01685a: BAMUM LETTER PHASE-B SET TU*/ + RTUNI_ALPHA, /* U+01685b: BAMUM LETTER PHASE-B LOM NTEUM*/ + RTUNI_ALPHA, /* U+01685c: BAMUM LETTER PHASE-B MBA MAELEE*/ + RTUNI_ALPHA, /* U+01685d: BAMUM LETTER PHASE-B KIEEM*/ + RTUNI_ALPHA, /* U+01685e: BAMUM LETTER PHASE-B YEURAE*/ + RTUNI_ALPHA, /* U+01685f: BAMUM LETTER PHASE-B MBAARAE*/ + RTUNI_ALPHA, /* U+016860: BAMUM LETTER PHASE-B KAM*/ + RTUNI_ALPHA, /* U+016861: BAMUM LETTER PHASE-B PEESHI*/ + RTUNI_ALPHA, /* U+016862: BAMUM LETTER PHASE-B YAFU LEERAEWA*/ + RTUNI_ALPHA, /* U+016863: BAMUM LETTER PHASE-B LAM NSHUT NYAM*/ + RTUNI_ALPHA, /* U+016864: BAMUM LETTER PHASE-B NTIEE SHEUOQ*/ + RTUNI_ALPHA, /* U+016865: BAMUM LETTER PHASE-B NDU NJAA*/ + RTUNI_ALPHA, /* U+016866: BAMUM LETTER PHASE-B GHEUGHEUAEM*/ + RTUNI_ALPHA, /* U+016867: BAMUM LETTER PHASE-B PIT*/ + RTUNI_ALPHA, /* U+016868: BAMUM LETTER PHASE-B TU NSIEE*/ + RTUNI_ALPHA, /* U+016869: BAMUM LETTER PHASE-B SHET NJAQ*/ + RTUNI_ALPHA, /* U+01686a: BAMUM LETTER PHASE-B SHEUAEQTU*/ + RTUNI_ALPHA, /* U+01686b: BAMUM LETTER PHASE-B MFON TEUAEQ*/ + RTUNI_ALPHA, /* U+01686c: BAMUM LETTER PHASE-B MBIT MBAAKET*/ + RTUNI_ALPHA, /* U+01686d: BAMUM LETTER PHASE-B NYI NTEUM*/ + RTUNI_ALPHA, /* U+01686e: BAMUM LETTER PHASE-B KEUPUQ*/ + RTUNI_ALPHA, /* U+01686f: BAMUM LETTER PHASE-B GHEUGHEN*/ + RTUNI_ALPHA, /* U+016870: BAMUM LETTER PHASE-B KEUYEUX*/ + RTUNI_ALPHA, /* U+016871: BAMUM LETTER PHASE-B LAANAE*/ + RTUNI_ALPHA, /* U+016872: BAMUM LETTER PHASE-B PARUM*/ + RTUNI_ALPHA, /* U+016873: BAMUM LETTER PHASE-B VEUM*/ + RTUNI_ALPHA, /* U+016874: BAMUM LETTER PHASE-B NGKINDI MVOP*/ + RTUNI_ALPHA, /* U+016875: BAMUM LETTER PHASE-B NGGEU MBU*/ + RTUNI_ALPHA, /* U+016876: BAMUM LETTER PHASE-B WUAET*/ + RTUNI_ALPHA, /* U+016877: BAMUM LETTER PHASE-B SAKEUAE*/ + RTUNI_ALPHA, /* U+016878: BAMUM LETTER PHASE-B TAAM*/ + RTUNI_ALPHA, /* U+016879: BAMUM LETTER PHASE-B MEUQ*/ + RTUNI_ALPHA, /* U+01687a: BAMUM LETTER PHASE-B NGGUOQ*/ + RTUNI_ALPHA, /* U+01687b: BAMUM LETTER PHASE-B NGGUOQ LARGE*/ + RTUNI_ALPHA, /* U+01687c: BAMUM LETTER PHASE-B MFIYAQ*/ + RTUNI_ALPHA, /* U+01687d: BAMUM LETTER PHASE-B SUE*/ + RTUNI_ALPHA, /* U+01687e: BAMUM LETTER PHASE-B MBEURI*/ + RTUNI_ALPHA, /* U+01687f: BAMUM LETTER PHASE-B MONTIEEN*/ + RTUNI_ALPHA, /* U+016880: BAMUM LETTER PHASE-B NYAEMAE*/ + RTUNI_ALPHA, /* U+016881: BAMUM LETTER PHASE-B PUNGAAM*/ + RTUNI_ALPHA, /* U+016882: BAMUM LETTER PHASE-B MEUT NGGEET*/ + RTUNI_ALPHA, /* U+016883: BAMUM LETTER PHASE-B FEUX*/ + RTUNI_ALPHA, /* U+016884: BAMUM LETTER PHASE-B MBUOQ*/ + RTUNI_ALPHA, /* U+016885: BAMUM LETTER PHASE-B FEE*/ + RTUNI_ALPHA, /* U+016886: BAMUM LETTER PHASE-B KEUAEM*/ + RTUNI_ALPHA, /* U+016887: BAMUM LETTER PHASE-B MA NJEUAENA*/ + RTUNI_ALPHA, /* U+016888: BAMUM LETTER PHASE-B MA NJUQA*/ + RTUNI_ALPHA, /* U+016889: BAMUM LETTER PHASE-B LET*/ + RTUNI_ALPHA, /* U+01688a: BAMUM LETTER PHASE-B NGGAAM*/ + RTUNI_ALPHA, /* U+01688b: BAMUM LETTER PHASE-B NSEN*/ + RTUNI_ALPHA, /* U+01688c: BAMUM LETTER PHASE-B MA*/ + RTUNI_ALPHA, /* U+01688d: BAMUM LETTER PHASE-B KIQ*/ + RTUNI_ALPHA, /* U+01688e: BAMUM LETTER PHASE-B NGOM*/ + RTUNI_ALPHA, /* U+01688f: BAMUM LETTER PHASE-C NGKUE MAEMBA*/ + RTUNI_ALPHA, /* U+016890: BAMUM LETTER PHASE-C NZA*/ + RTUNI_ALPHA, /* U+016891: BAMUM LETTER PHASE-C YUM*/ + RTUNI_ALPHA, /* U+016892: BAMUM LETTER PHASE-C WANGKUOQ*/ + RTUNI_ALPHA, /* U+016893: BAMUM LETTER PHASE-C NGGEN*/ + RTUNI_ALPHA, /* U+016894: BAMUM LETTER PHASE-C NDEUAEREE*/ + RTUNI_ALPHA, /* U+016895: BAMUM LETTER PHASE-C NGKAQ*/ + RTUNI_ALPHA, /* U+016896: BAMUM LETTER PHASE-C GHARAE*/ + RTUNI_ALPHA, /* U+016897: BAMUM LETTER PHASE-C MBEEKEET*/ + RTUNI_ALPHA, /* U+016898: BAMUM LETTER PHASE-C GBAYI*/ + RTUNI_ALPHA, /* U+016899: BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN*/ + RTUNI_ALPHA, /* U+01689a: BAMUM LETTER PHASE-C NTU MBIT*/ + RTUNI_ALPHA, /* U+01689b: BAMUM LETTER PHASE-C MBEUM*/ + RTUNI_ALPHA, /* U+01689c: BAMUM LETTER PHASE-C PIRIEEN*/ + RTUNI_ALPHA, /* U+01689d: BAMUM LETTER PHASE-C NDOMBU*/ + RTUNI_ALPHA, /* U+01689e: BAMUM LETTER PHASE-C MBAA CABBAGE-TREE*/ + RTUNI_ALPHA, /* U+01689f: BAMUM LETTER PHASE-C KEUSHEUAEP*/ + RTUNI_ALPHA, /* U+0168a0: BAMUM LETTER PHASE-C GHAP*/ + RTUNI_ALPHA, /* U+0168a1: BAMUM LETTER PHASE-C KEUKAQ*/ + RTUNI_ALPHA, /* U+0168a2: BAMUM LETTER PHASE-C YU MUOMAE*/ + RTUNI_ALPHA, /* U+0168a3: BAMUM LETTER PHASE-C NZEUM*/ + RTUNI_ALPHA, /* U+0168a4: BAMUM LETTER PHASE-C MBUE*/ + RTUNI_ALPHA, /* U+0168a5: BAMUM LETTER PHASE-C NSEUAEN*/ + RTUNI_ALPHA, /* U+0168a6: BAMUM LETTER PHASE-C MBIT*/ + RTUNI_ALPHA, /* U+0168a7: BAMUM LETTER PHASE-C YEUQ*/ + RTUNI_ALPHA, /* U+0168a8: BAMUM LETTER PHASE-C KPARAQ*/ + RTUNI_ALPHA, /* U+0168a9: BAMUM LETTER PHASE-C KAA*/ + RTUNI_ALPHA, /* U+0168aa: BAMUM LETTER PHASE-C SEUX*/ + RTUNI_ALPHA, /* U+0168ab: BAMUM LETTER PHASE-C NDIDA*/ + RTUNI_ALPHA, /* U+0168ac: BAMUM LETTER PHASE-C TAASHAE*/ + RTUNI_ALPHA, /* U+0168ad: BAMUM LETTER PHASE-C NJUEQ*/ + RTUNI_ALPHA, /* U+0168ae: BAMUM LETTER PHASE-C TITA YUE*/ + RTUNI_ALPHA, /* U+0168af: BAMUM LETTER PHASE-C SUAET*/ + RTUNI_ALPHA, /* U+0168b0: BAMUM LETTER PHASE-C NGGUAEN NYAM*/ + RTUNI_ALPHA, /* U+0168b1: BAMUM LETTER PHASE-C VEUX*/ + RTUNI_ALPHA, /* U+0168b2: BAMUM LETTER PHASE-C NANSANAQ*/ + RTUNI_ALPHA, /* U+0168b3: BAMUM LETTER PHASE-C MA KEUAERI*/ + RTUNI_ALPHA, /* U+0168b4: BAMUM LETTER PHASE-C NTAA*/ + RTUNI_ALPHA, /* U+0168b5: BAMUM LETTER PHASE-C NGGUON*/ + RTUNI_ALPHA, /* U+0168b6: BAMUM LETTER PHASE-C LAP*/ + RTUNI_ALPHA, /* U+0168b7: BAMUM LETTER PHASE-C MBIRIEEN*/ + RTUNI_ALPHA, /* U+0168b8: BAMUM LETTER PHASE-C MGBASAQ*/ + RTUNI_ALPHA, /* U+0168b9: BAMUM LETTER PHASE-C NTEUNGBA*/ + RTUNI_ALPHA, /* U+0168ba: BAMUM LETTER PHASE-C TEUTEUX*/ + RTUNI_ALPHA, /* U+0168bb: BAMUM LETTER PHASE-C NGGUM*/ + RTUNI_ALPHA, /* U+0168bc: BAMUM LETTER PHASE-C FUE*/ + RTUNI_ALPHA, /* U+0168bd: BAMUM LETTER PHASE-C NDEUT*/ + RTUNI_ALPHA, /* U+0168be: BAMUM LETTER PHASE-C NSA*/ + RTUNI_ALPHA, /* U+0168bf: BAMUM LETTER PHASE-C NSHAQ*/ + RTUNI_ALPHA, /* U+0168c0: BAMUM LETTER PHASE-C BUNG*/ + RTUNI_ALPHA, /* U+0168c1: BAMUM LETTER PHASE-C VEUAEPEN*/ + RTUNI_ALPHA, /* U+0168c2: BAMUM LETTER PHASE-C MBERAE*/ + RTUNI_ALPHA, /* U+0168c3: BAMUM LETTER PHASE-C RU*/ + RTUNI_ALPHA, /* U+0168c4: BAMUM LETTER PHASE-C NJAEM*/ + RTUNI_ALPHA, /* U+0168c5: BAMUM LETTER PHASE-C LAM*/ + RTUNI_ALPHA, /* U+0168c6: BAMUM LETTER PHASE-C TITUAEP*/ + RTUNI_ALPHA, /* U+0168c7: BAMUM LETTER PHASE-C NSUOT NGOM*/ + RTUNI_ALPHA, /* U+0168c8: BAMUM LETTER PHASE-C NJEEEE*/ + RTUNI_ALPHA, /* U+0168c9: BAMUM LETTER PHASE-C KET*/ + RTUNI_ALPHA, /* U+0168ca: BAMUM LETTER PHASE-C NGGU*/ + RTUNI_ALPHA, /* U+0168cb: BAMUM LETTER PHASE-C MAESI*/ + RTUNI_ALPHA, /* U+0168cc: BAMUM LETTER PHASE-C MBUAEM*/ + RTUNI_ALPHA, /* U+0168cd: BAMUM LETTER PHASE-C LU*/ + RTUNI_ALPHA, /* U+0168ce: BAMUM LETTER PHASE-C KUT*/ + RTUNI_ALPHA, /* U+0168cf: BAMUM LETTER PHASE-C NJAM*/ + RTUNI_ALPHA, /* U+0168d0: BAMUM LETTER PHASE-C NGOM*/ + RTUNI_ALPHA, /* U+0168d1: BAMUM LETTER PHASE-C WUP*/ + RTUNI_ALPHA, /* U+0168d2: BAMUM LETTER PHASE-C NGGUEET*/ + RTUNI_ALPHA, /* U+0168d3: BAMUM LETTER PHASE-C NSOM*/ + RTUNI_ALPHA, /* U+0168d4: BAMUM LETTER PHASE-C NTEN*/ + RTUNI_ALPHA, /* U+0168d5: BAMUM LETTER PHASE-C KUOP NKAARAE*/ + RTUNI_ALPHA, /* U+0168d6: BAMUM LETTER PHASE-C NSUN*/ + RTUNI_ALPHA, /* U+0168d7: BAMUM LETTER PHASE-C NDAM*/ + RTUNI_ALPHA, /* U+0168d8: BAMUM LETTER PHASE-C MA NSIEE*/ + RTUNI_ALPHA, /* U+0168d9: BAMUM LETTER PHASE-C YAA*/ + RTUNI_ALPHA, /* U+0168da: BAMUM LETTER PHASE-C NDAP*/ + RTUNI_ALPHA, /* U+0168db: BAMUM LETTER PHASE-C SHUEQ*/ + RTUNI_ALPHA, /* U+0168dc: BAMUM LETTER PHASE-C SETFON*/ + RTUNI_ALPHA, /* U+0168dd: BAMUM LETTER PHASE-C MBI*/ + RTUNI_ALPHA, /* U+0168de: BAMUM LETTER PHASE-C MAEMBA*/ + RTUNI_ALPHA, /* U+0168df: BAMUM LETTER PHASE-C MBANYI*/ + RTUNI_ALPHA, /* U+0168e0: BAMUM LETTER PHASE-C KEUSEUX*/ + RTUNI_ALPHA, /* U+0168e1: BAMUM LETTER PHASE-C MBEUX*/ + RTUNI_ALPHA, /* U+0168e2: BAMUM LETTER PHASE-C KEUM*/ + RTUNI_ALPHA, /* U+0168e3: BAMUM LETTER PHASE-C MBAA PICKET*/ + RTUNI_ALPHA, /* U+0168e4: BAMUM LETTER PHASE-C YUWOQ*/ + RTUNI_ALPHA, /* U+0168e5: BAMUM LETTER PHASE-C NJEUX*/ + RTUNI_ALPHA, /* U+0168e6: BAMUM LETTER PHASE-C MIEE*/ + RTUNI_ALPHA, /* U+0168e7: BAMUM LETTER PHASE-C MUAE*/ + RTUNI_ALPHA, /* U+0168e8: BAMUM LETTER PHASE-C SHIQ*/ + RTUNI_ALPHA, /* U+0168e9: BAMUM LETTER PHASE-C KEN LAW*/ + RTUNI_ALPHA, /* U+0168ea: BAMUM LETTER PHASE-C KEN FATIGUE*/ + RTUNI_ALPHA, /* U+0168eb: BAMUM LETTER PHASE-C NGAQ*/ + RTUNI_ALPHA, /* U+0168ec: BAMUM LETTER PHASE-C NAQ*/ + RTUNI_ALPHA, /* U+0168ed: BAMUM LETTER PHASE-C LIQ*/ + RTUNI_ALPHA, /* U+0168ee: BAMUM LETTER PHASE-C PIN*/ + RTUNI_ALPHA, /* U+0168ef: BAMUM LETTER PHASE-C PEN*/ + RTUNI_ALPHA, /* U+0168f0: BAMUM LETTER PHASE-C TET*/ + RTUNI_ALPHA, /* U+0168f1: BAMUM LETTER PHASE-D MBUO*/ + RTUNI_ALPHA, /* U+0168f2: BAMUM LETTER PHASE-D WAP*/ + RTUNI_ALPHA, /* U+0168f3: BAMUM LETTER PHASE-D NJI*/ + RTUNI_ALPHA, /* U+0168f4: BAMUM LETTER PHASE-D MFON*/ + RTUNI_ALPHA, /* U+0168f5: BAMUM LETTER PHASE-D NJIEE*/ + RTUNI_ALPHA, /* U+0168f6: BAMUM LETTER PHASE-D LIEE*/ + RTUNI_ALPHA, /* U+0168f7: BAMUM LETTER PHASE-D NJEUT*/ + RTUNI_ALPHA, /* U+0168f8: BAMUM LETTER PHASE-D NSHEE*/ + RTUNI_ALPHA, /* U+0168f9: BAMUM LETTER PHASE-D NGGAAMAE*/ + RTUNI_ALPHA, /* U+0168fa: BAMUM LETTER PHASE-D NYAM*/ + RTUNI_ALPHA, /* U+0168fb: BAMUM LETTER PHASE-D WUAEN*/ + RTUNI_ALPHA, /* U+0168fc: BAMUM LETTER PHASE-D NGKUN*/ + RTUNI_ALPHA, /* U+0168fd: BAMUM LETTER PHASE-D SHEE*/ + RTUNI_ALPHA, /* U+0168fe: BAMUM LETTER PHASE-D NGKAP*/ + RTUNI_ALPHA, /* U+0168ff: BAMUM LETTER PHASE-D KEUAETMEUN*/ + RTUNI_ALPHA, /* U+016900: BAMUM LETTER PHASE-D TEUT*/ + RTUNI_ALPHA, /* U+016901: BAMUM LETTER PHASE-D SHEUAE*/ + RTUNI_ALPHA, /* U+016902: BAMUM LETTER PHASE-D NJAP*/ + RTUNI_ALPHA, /* U+016903: BAMUM LETTER PHASE-D SUE*/ + RTUNI_ALPHA, /* U+016904: BAMUM LETTER PHASE-D KET*/ + RTUNI_ALPHA, /* U+016905: BAMUM LETTER PHASE-D YAEMMAE*/ + RTUNI_ALPHA, /* U+016906: BAMUM LETTER PHASE-D KUOM*/ + RTUNI_ALPHA, /* U+016907: BAMUM LETTER PHASE-D SAP*/ + RTUNI_ALPHA, /* U+016908: BAMUM LETTER PHASE-D MFEUT*/ + RTUNI_ALPHA, /* U+016909: BAMUM LETTER PHASE-D NDEUX*/ + RTUNI_ALPHA, /* U+01690a: BAMUM LETTER PHASE-D MALEERI*/ + RTUNI_ALPHA, /* U+01690b: BAMUM LETTER PHASE-D MEUT*/ + RTUNI_ALPHA, /* U+01690c: BAMUM LETTER PHASE-D SEUAEQ*/ + RTUNI_ALPHA, /* U+01690d: BAMUM LETTER PHASE-D YEN*/ + RTUNI_ALPHA, /* U+01690e: BAMUM LETTER PHASE-D NJEUAEM*/ + RTUNI_ALPHA, /* U+01690f: BAMUM LETTER PHASE-D KEUOT MBUAE*/ + RTUNI_ALPHA, /* U+016910: BAMUM LETTER PHASE-D NGKEURI*/ + RTUNI_ALPHA, /* U+016911: BAMUM LETTER PHASE-D TU*/ + RTUNI_ALPHA, /* U+016912: BAMUM LETTER PHASE-D GHAA*/ + RTUNI_ALPHA, /* U+016913: BAMUM LETTER PHASE-D NGKYEE*/ + RTUNI_ALPHA, /* U+016914: BAMUM LETTER PHASE-D FEUFEUAET*/ + RTUNI_ALPHA, /* U+016915: BAMUM LETTER PHASE-D NDEE*/ + RTUNI_ALPHA, /* U+016916: BAMUM LETTER PHASE-D MGBOFUM*/ + RTUNI_ALPHA, /* U+016917: BAMUM LETTER PHASE-D LEUAEP*/ + RTUNI_ALPHA, /* U+016918: BAMUM LETTER PHASE-D NDON*/ + RTUNI_ALPHA, /* U+016919: BAMUM LETTER PHASE-D MONI*/ + RTUNI_ALPHA, /* U+01691a: BAMUM LETTER PHASE-D MGBEUN*/ + RTUNI_ALPHA, /* U+01691b: BAMUM LETTER PHASE-D PUUT*/ + RTUNI_ALPHA, /* U+01691c: BAMUM LETTER PHASE-D MGBIEE*/ + RTUNI_ALPHA, /* U+01691d: BAMUM LETTER PHASE-D MFO*/ + RTUNI_ALPHA, /* U+01691e: BAMUM LETTER PHASE-D LUM*/ + RTUNI_ALPHA, /* U+01691f: BAMUM LETTER PHASE-D NSIEEP*/ + RTUNI_ALPHA, /* U+016920: BAMUM LETTER PHASE-D MBAA*/ + RTUNI_ALPHA, /* U+016921: BAMUM LETTER PHASE-D KWAET*/ + RTUNI_ALPHA, /* U+016922: BAMUM LETTER PHASE-D NYET*/ + RTUNI_ALPHA, /* U+016923: BAMUM LETTER PHASE-D TEUAEN*/ + RTUNI_ALPHA, /* U+016924: BAMUM LETTER PHASE-D SOT*/ + RTUNI_ALPHA, /* U+016925: BAMUM LETTER PHASE-D YUWOQ*/ + RTUNI_ALPHA, /* U+016926: BAMUM LETTER PHASE-D KEUM*/ + RTUNI_ALPHA, /* U+016927: BAMUM LETTER PHASE-D RAEM*/ + RTUNI_ALPHA, /* U+016928: BAMUM LETTER PHASE-D TEEEE*/ + RTUNI_ALPHA, /* U+016929: BAMUM LETTER PHASE-D NGKEUAEQ*/ + RTUNI_ALPHA, /* U+01692a: BAMUM LETTER PHASE-D MFEUAE*/ + RTUNI_ALPHA, /* U+01692b: BAMUM LETTER PHASE-D NSIEET*/ + RTUNI_ALPHA, /* U+01692c: BAMUM LETTER PHASE-D KEUP*/ + RTUNI_ALPHA, /* U+01692d: BAMUM LETTER PHASE-D PIP*/ + RTUNI_ALPHA, /* U+01692e: BAMUM LETTER PHASE-D PEUTAE*/ + RTUNI_ALPHA, /* U+01692f: BAMUM LETTER PHASE-D NYUE*/ + RTUNI_ALPHA, /* U+016930: BAMUM LETTER PHASE-D LET*/ + RTUNI_ALPHA, /* U+016931: BAMUM LETTER PHASE-D NGGAAM*/ + RTUNI_ALPHA, /* U+016932: BAMUM LETTER PHASE-D MFIEE*/ + RTUNI_ALPHA, /* U+016933: BAMUM LETTER PHASE-D NGGWAEN*/ + RTUNI_ALPHA, /* U+016934: BAMUM LETTER PHASE-D YUOM*/ + RTUNI_ALPHA, /* U+016935: BAMUM LETTER PHASE-D PAP*/ + RTUNI_ALPHA, /* U+016936: BAMUM LETTER PHASE-D YUOP*/ + RTUNI_ALPHA, /* U+016937: BAMUM LETTER PHASE-D NDAM*/ + RTUNI_ALPHA, /* U+016938: BAMUM LETTER PHASE-D NTEUM*/ + RTUNI_ALPHA, /* U+016939: BAMUM LETTER PHASE-D SUAE*/ + RTUNI_ALPHA, /* U+01693a: BAMUM LETTER PHASE-D KUN*/ + RTUNI_ALPHA, /* U+01693b: BAMUM LETTER PHASE-D NGGEUX*/ + RTUNI_ALPHA, /* U+01693c: BAMUM LETTER PHASE-D NGKIEE*/ + RTUNI_ALPHA, /* U+01693d: BAMUM LETTER PHASE-D TUOT*/ + RTUNI_ALPHA, /* U+01693e: BAMUM LETTER PHASE-D MEUN*/ + RTUNI_ALPHA, /* U+01693f: BAMUM LETTER PHASE-D KUQ*/ + RTUNI_ALPHA, /* U+016940: BAMUM LETTER PHASE-D NSUM*/ + RTUNI_ALPHA, /* U+016941: BAMUM LETTER PHASE-D TEUN*/ + RTUNI_ALPHA, /* U+016942: BAMUM LETTER PHASE-D MAENJET*/ + RTUNI_ALPHA, /* U+016943: BAMUM LETTER PHASE-D NGGAP*/ + RTUNI_ALPHA, /* U+016944: BAMUM LETTER PHASE-D LEUM*/ + RTUNI_ALPHA, /* U+016945: BAMUM LETTER PHASE-D NGGUOM*/ + RTUNI_ALPHA, /* U+016946: BAMUM LETTER PHASE-D NSHUT*/ + RTUNI_ALPHA, /* U+016947: BAMUM LETTER PHASE-D NJUEQ*/ + RTUNI_ALPHA, /* U+016948: BAMUM LETTER PHASE-D GHEUAE*/ + RTUNI_ALPHA, /* U+016949: BAMUM LETTER PHASE-D KU*/ + RTUNI_ALPHA, /* U+01694a: BAMUM LETTER PHASE-D REN OLD*/ + RTUNI_ALPHA, /* U+01694b: BAMUM LETTER PHASE-D TAE*/ + RTUNI_ALPHA, /* U+01694c: BAMUM LETTER PHASE-D TOQ*/ + RTUNI_ALPHA, /* U+01694d: BAMUM LETTER PHASE-D NYI*/ + RTUNI_ALPHA, /* U+01694e: BAMUM LETTER PHASE-D RII*/ + RTUNI_ALPHA, /* U+01694f: BAMUM LETTER PHASE-D LEEEE*/ + RTUNI_ALPHA, /* U+016950: BAMUM LETTER PHASE-D MEEEE*/ + RTUNI_ALPHA, /* U+016951: BAMUM LETTER PHASE-D M*/ + RTUNI_ALPHA, /* U+016952: BAMUM LETTER PHASE-D SUU*/ + RTUNI_ALPHA, /* U+016953: BAMUM LETTER PHASE-D MU*/ + RTUNI_ALPHA, /* U+016954: BAMUM LETTER PHASE-D SHII*/ + RTUNI_ALPHA, /* U+016955: BAMUM LETTER PHASE-D SHEUX*/ + RTUNI_ALPHA, /* U+016956: BAMUM LETTER PHASE-D KYEE*/ + RTUNI_ALPHA, /* U+016957: BAMUM LETTER PHASE-D NU*/ + RTUNI_ALPHA, /* U+016958: BAMUM LETTER PHASE-D SHU*/ + RTUNI_ALPHA, /* U+016959: BAMUM LETTER PHASE-D NTEE*/ + RTUNI_ALPHA, /* U+01695a: BAMUM LETTER PHASE-D PEE*/ + RTUNI_ALPHA, /* U+01695b: BAMUM LETTER PHASE-D NI*/ + RTUNI_ALPHA, /* U+01695c: BAMUM LETTER PHASE-D SHOQ*/ + RTUNI_ALPHA, /* U+01695d: BAMUM LETTER PHASE-D PUQ*/ + RTUNI_ALPHA, /* U+01695e: BAMUM LETTER PHASE-D MVOP*/ + RTUNI_ALPHA, /* U+01695f: BAMUM LETTER PHASE-D LOQ*/ + RTUNI_ALPHA, /* U+016960: BAMUM LETTER PHASE-D REN MUCH*/ + RTUNI_ALPHA, /* U+016961: BAMUM LETTER PHASE-D TI*/ + RTUNI_ALPHA, /* U+016962: BAMUM LETTER PHASE-D NTUU*/ + RTUNI_ALPHA, /* U+016963: BAMUM LETTER PHASE-D MBAA SEVEN*/ + RTUNI_ALPHA, /* U+016964: BAMUM LETTER PHASE-D SAQ*/ + RTUNI_ALPHA, /* U+016965: BAMUM LETTER PHASE-D FAA*/ + RTUNI_ALPHA, /* U+016966: BAMUM LETTER PHASE-E NDAP*/ + RTUNI_ALPHA, /* U+016967: BAMUM LETTER PHASE-E TOON*/ + RTUNI_ALPHA, /* U+016968: BAMUM LETTER PHASE-E MBEUM*/ + RTUNI_ALPHA, /* U+016969: BAMUM LETTER PHASE-E LAP*/ + RTUNI_ALPHA, /* U+01696a: BAMUM LETTER PHASE-E VOM*/ + RTUNI_ALPHA, /* U+01696b: BAMUM LETTER PHASE-E LOON*/ + RTUNI_ALPHA, /* U+01696c: BAMUM LETTER PHASE-E PAA*/ + RTUNI_ALPHA, /* U+01696d: BAMUM LETTER PHASE-E SOM*/ + RTUNI_ALPHA, /* U+01696e: BAMUM LETTER PHASE-E RAQ*/ + RTUNI_ALPHA, /* U+01696f: BAMUM LETTER PHASE-E NSHUOP*/ + RTUNI_ALPHA, /* U+016970: BAMUM LETTER PHASE-E NDUN*/ + RTUNI_ALPHA, /* U+016971: BAMUM LETTER PHASE-E PUAE*/ + RTUNI_ALPHA, /* U+016972: BAMUM LETTER PHASE-E TAM*/ + RTUNI_ALPHA, /* U+016973: BAMUM LETTER PHASE-E NGKA*/ + RTUNI_ALPHA, /* U+016974: BAMUM LETTER PHASE-E KPEUX*/ + RTUNI_ALPHA, /* U+016975: BAMUM LETTER PHASE-E WUO*/ + RTUNI_ALPHA, /* U+016976: BAMUM LETTER PHASE-E SEE*/ + RTUNI_ALPHA, /* U+016977: BAMUM LETTER PHASE-E NGGEUAET*/ + RTUNI_ALPHA, /* U+016978: BAMUM LETTER PHASE-E PAAM*/ + RTUNI_ALPHA, /* U+016979: BAMUM LETTER PHASE-E TOO*/ + RTUNI_ALPHA, /* U+01697a: BAMUM LETTER PHASE-E KUOP*/ + RTUNI_ALPHA, /* U+01697b: BAMUM LETTER PHASE-E LOM*/ + RTUNI_ALPHA, /* U+01697c: BAMUM LETTER PHASE-E NSHIEE*/ + RTUNI_ALPHA, /* U+01697d: BAMUM LETTER PHASE-E NGOP*/ + RTUNI_ALPHA, /* U+01697e: BAMUM LETTER PHASE-E MAEM*/ + RTUNI_ALPHA, /* U+01697f: BAMUM LETTER PHASE-E NGKEUX*/ + RTUNI_ALPHA, /* U+016980: BAMUM LETTER PHASE-E NGOQ*/ + RTUNI_ALPHA, /* U+016981: BAMUM LETTER PHASE-E NSHUE*/ + RTUNI_ALPHA, /* U+016982: BAMUM LETTER PHASE-E RIMGBA*/ + RTUNI_ALPHA, /* U+016983: BAMUM LETTER PHASE-E NJEUX*/ + RTUNI_ALPHA, /* U+016984: BAMUM LETTER PHASE-E PEEM*/ + RTUNI_ALPHA, /* U+016985: BAMUM LETTER PHASE-E SAA*/ + RTUNI_ALPHA, /* U+016986: BAMUM LETTER PHASE-E NGGURAE*/ + RTUNI_ALPHA, /* U+016987: BAMUM LETTER PHASE-E MGBA*/ + RTUNI_ALPHA, /* U+016988: BAMUM LETTER PHASE-E GHEUX*/ + RTUNI_ALPHA, /* U+016989: BAMUM LETTER PHASE-E NGKEUAEM*/ + RTUNI_ALPHA, /* U+01698a: BAMUM LETTER PHASE-E NJAEMLI*/ + RTUNI_ALPHA, /* U+01698b: BAMUM LETTER PHASE-E MAP*/ + RTUNI_ALPHA, /* U+01698c: BAMUM LETTER PHASE-E LOOT*/ + RTUNI_ALPHA, /* U+01698d: BAMUM LETTER PHASE-E NGGEEEE*/ + RTUNI_ALPHA, /* U+01698e: BAMUM LETTER PHASE-E NDIQ*/ + RTUNI_ALPHA, /* U+01698f: BAMUM LETTER PHASE-E TAEN NTEUM*/ + RTUNI_ALPHA, /* U+016990: BAMUM LETTER PHASE-E SET*/ + RTUNI_ALPHA, /* U+016991: BAMUM LETTER PHASE-E PUM*/ + RTUNI_ALPHA, /* U+016992: BAMUM LETTER PHASE-E NDAA SOFTNESS*/ + RTUNI_ALPHA, /* U+016993: BAMUM LETTER PHASE-E NGGUAESHAE NYAM*/ + RTUNI_ALPHA, /* U+016994: BAMUM LETTER PHASE-E YIEE*/ + RTUNI_ALPHA, /* U+016995: BAMUM LETTER PHASE-E GHEUN*/ + RTUNI_ALPHA, /* U+016996: BAMUM LETTER PHASE-E TUAE*/ + RTUNI_ALPHA, /* U+016997: BAMUM LETTER PHASE-E YEUAE*/ + RTUNI_ALPHA, /* U+016998: BAMUM LETTER PHASE-E PO*/ + RTUNI_ALPHA, /* U+016999: BAMUM LETTER PHASE-E TUMAE*/ + RTUNI_ALPHA, /* U+01699a: BAMUM LETTER PHASE-E KEUAE*/ + RTUNI_ALPHA, /* U+01699b: BAMUM LETTER PHASE-E SUAEN*/ + RTUNI_ALPHA, /* U+01699c: BAMUM LETTER PHASE-E TEUAEQ*/ + RTUNI_ALPHA, /* U+01699d: BAMUM LETTER PHASE-E VEUAE*/ + RTUNI_ALPHA, /* U+01699e: BAMUM LETTER PHASE-E WEUX*/ + RTUNI_ALPHA, /* U+01699f: BAMUM LETTER PHASE-E LAAM*/ + RTUNI_ALPHA, /* U+0169a0: BAMUM LETTER PHASE-E PU*/ + RTUNI_ALPHA, /* U+0169a1: BAMUM LETTER PHASE-E TAAQ*/ + RTUNI_ALPHA, /* U+0169a2: BAMUM LETTER PHASE-E GHAAMAE*/ + RTUNI_ALPHA, /* U+0169a3: BAMUM LETTER PHASE-E NGEUREUT*/ + RTUNI_ALPHA, /* U+0169a4: BAMUM LETTER PHASE-E SHEUAEQ*/ + RTUNI_ALPHA, /* U+0169a5: BAMUM LETTER PHASE-E MGBEN*/ + RTUNI_ALPHA, /* U+0169a6: BAMUM LETTER PHASE-E MBEE*/ + RTUNI_ALPHA, /* U+0169a7: BAMUM LETTER PHASE-E NZAQ*/ + RTUNI_ALPHA, /* U+0169a8: BAMUM LETTER PHASE-E NKOM*/ + RTUNI_ALPHA, /* U+0169a9: BAMUM LETTER PHASE-E GBET*/ + RTUNI_ALPHA, /* U+0169aa: BAMUM LETTER PHASE-E TUM*/ + RTUNI_ALPHA, /* U+0169ab: BAMUM LETTER PHASE-E KUET*/ + RTUNI_ALPHA, /* U+0169ac: BAMUM LETTER PHASE-E YAP*/ + RTUNI_ALPHA, /* U+0169ad: BAMUM LETTER PHASE-E NYI CLEAVER*/ + RTUNI_ALPHA, /* U+0169ae: BAMUM LETTER PHASE-E YIT*/ + RTUNI_ALPHA, /* U+0169af: BAMUM LETTER PHASE-E MFEUQ*/ + RTUNI_ALPHA, /* U+0169b0: BAMUM LETTER PHASE-E NDIAQ*/ + RTUNI_ALPHA, /* U+0169b1: BAMUM LETTER PHASE-E PIEEQ*/ + RTUNI_ALPHA, /* U+0169b2: BAMUM LETTER PHASE-E YUEQ*/ + RTUNI_ALPHA, /* U+0169b3: BAMUM LETTER PHASE-E LEUAEM*/ + RTUNI_ALPHA, /* U+0169b4: BAMUM LETTER PHASE-E FUE*/ + RTUNI_ALPHA, /* U+0169b5: BAMUM LETTER PHASE-E GBEUX*/ + RTUNI_ALPHA, /* U+0169b6: BAMUM LETTER PHASE-E NGKUP*/ + RTUNI_ALPHA, /* U+0169b7: BAMUM LETTER PHASE-E KET*/ + RTUNI_ALPHA, /* U+0169b8: BAMUM LETTER PHASE-E MAE*/ + RTUNI_ALPHA, /* U+0169b9: BAMUM LETTER PHASE-E NGKAAMI*/ + RTUNI_ALPHA, /* U+0169ba: BAMUM LETTER PHASE-E GHET*/ + RTUNI_ALPHA, /* U+0169bb: BAMUM LETTER PHASE-E FA*/ + RTUNI_ALPHA, /* U+0169bc: BAMUM LETTER PHASE-E NTUM*/ + RTUNI_ALPHA, /* U+0169bd: BAMUM LETTER PHASE-E PEUT*/ + RTUNI_ALPHA, /* U+0169be: BAMUM LETTER PHASE-E YEUM*/ + RTUNI_ALPHA, /* U+0169bf: BAMUM LETTER PHASE-E NGGEUAE*/ + RTUNI_ALPHA, /* U+0169c0: BAMUM LETTER PHASE-E NYI BETWEEN*/ + RTUNI_ALPHA, /* U+0169c1: BAMUM LETTER PHASE-E NZUQ*/ + RTUNI_ALPHA, /* U+0169c2: BAMUM LETTER PHASE-E POON*/ + RTUNI_ALPHA, /* U+0169c3: BAMUM LETTER PHASE-E MIEE*/ + RTUNI_ALPHA, /* U+0169c4: BAMUM LETTER PHASE-E FUET*/ + RTUNI_ALPHA, /* U+0169c5: BAMUM LETTER PHASE-E NAE*/ + RTUNI_ALPHA, /* U+0169c6: BAMUM LETTER PHASE-E MUAE*/ + RTUNI_ALPHA, /* U+0169c7: BAMUM LETTER PHASE-E GHEUAE*/ + RTUNI_ALPHA, /* U+0169c8: BAMUM LETTER PHASE-E FU I*/ + RTUNI_ALPHA, /* U+0169c9: BAMUM LETTER PHASE-E MVI*/ + RTUNI_ALPHA, /* U+0169ca: BAMUM LETTER PHASE-E PUAQ*/ + RTUNI_ALPHA, /* U+0169cb: BAMUM LETTER PHASE-E NGKUM*/ + RTUNI_ALPHA, /* U+0169cc: BAMUM LETTER PHASE-E KUT*/ + RTUNI_ALPHA, /* U+0169cd: BAMUM LETTER PHASE-E PIET*/ + RTUNI_ALPHA, /* U+0169ce: BAMUM LETTER PHASE-E NTAP*/ + RTUNI_ALPHA, /* U+0169cf: BAMUM LETTER PHASE-E YEUAET*/ + RTUNI_ALPHA, /* U+0169d0: BAMUM LETTER PHASE-E NGGUP*/ + RTUNI_ALPHA, /* U+0169d1: BAMUM LETTER PHASE-E PA PEOPLE*/ + RTUNI_ALPHA, /* U+0169d2: BAMUM LETTER PHASE-E FU CALL*/ + RTUNI_ALPHA, /* U+0169d3: BAMUM LETTER PHASE-E FOM*/ + RTUNI_ALPHA, /* U+0169d4: BAMUM LETTER PHASE-E NJEE*/ + RTUNI_ALPHA, /* U+0169d5: BAMUM LETTER PHASE-E A*/ + RTUNI_ALPHA, /* U+0169d6: BAMUM LETTER PHASE-E TOQ*/ + RTUNI_ALPHA, /* U+0169d7: BAMUM LETTER PHASE-E O*/ + RTUNI_ALPHA, /* U+0169d8: BAMUM LETTER PHASE-E I*/ + RTUNI_ALPHA, /* U+0169d9: BAMUM LETTER PHASE-E LAQ*/ + RTUNI_ALPHA, /* U+0169da: BAMUM LETTER PHASE-E PA PLURAL*/ + RTUNI_ALPHA, /* U+0169db: BAMUM LETTER PHASE-E TAA*/ + RTUNI_ALPHA, /* U+0169dc: BAMUM LETTER PHASE-E TAQ*/ + RTUNI_ALPHA, /* U+0169dd: BAMUM LETTER PHASE-E NDAA MY HOUSE*/ + RTUNI_ALPHA, /* U+0169de: BAMUM LETTER PHASE-E SHIQ*/ + RTUNI_ALPHA, /* U+0169df: BAMUM LETTER PHASE-E YEUX*/ + RTUNI_ALPHA, /* U+0169e0: BAMUM LETTER PHASE-E NGUAE*/ + RTUNI_ALPHA, /* U+0169e1: BAMUM LETTER PHASE-E YUAEN*/ + RTUNI_ALPHA, /* U+0169e2: BAMUM LETTER PHASE-E YOQ SWIMMING*/ + RTUNI_ALPHA, /* U+0169e3: BAMUM LETTER PHASE-E YOQ COVER*/ + RTUNI_ALPHA, /* U+0169e4: BAMUM LETTER PHASE-E YUQ*/ + RTUNI_ALPHA, /* U+0169e5: BAMUM LETTER PHASE-E YUN*/ + RTUNI_ALPHA, /* U+0169e6: BAMUM LETTER PHASE-E KEUX*/ + RTUNI_ALPHA, /* U+0169e7: BAMUM LETTER PHASE-E PEUX*/ + RTUNI_ALPHA, /* U+0169e8: BAMUM LETTER PHASE-E NJEE EPOCH*/ + RTUNI_ALPHA, /* U+0169e9: BAMUM LETTER PHASE-E PUE*/ + RTUNI_ALPHA, /* U+0169ea: BAMUM LETTER PHASE-E WUE*/ + RTUNI_ALPHA, /* U+0169eb: BAMUM LETTER PHASE-E FEE*/ + RTUNI_ALPHA, /* U+0169ec: BAMUM LETTER PHASE-E VEE*/ + RTUNI_ALPHA, /* U+0169ed: BAMUM LETTER PHASE-E LU*/ + RTUNI_ALPHA, /* U+0169ee: BAMUM LETTER PHASE-E MI*/ + RTUNI_ALPHA, /* U+0169ef: BAMUM LETTER PHASE-E REUX*/ + RTUNI_ALPHA, /* U+0169f0: BAMUM LETTER PHASE-E RAE*/ + RTUNI_ALPHA, /* U+0169f1: BAMUM LETTER PHASE-E NGUAET*/ + RTUNI_ALPHA, /* U+0169f2: BAMUM LETTER PHASE-E NGA*/ + RTUNI_ALPHA, /* U+0169f3: BAMUM LETTER PHASE-E SHO*/ + RTUNI_ALPHA, /* U+0169f4: BAMUM LETTER PHASE-E SHOQ*/ + RTUNI_ALPHA, /* U+0169f5: BAMUM LETTER PHASE-E FU REMEDY*/ + RTUNI_ALPHA, /* U+0169f6: BAMUM LETTER PHASE-E NA*/ + RTUNI_ALPHA, /* U+0169f7: BAMUM LETTER PHASE-E PI*/ + RTUNI_ALPHA, /* U+0169f8: BAMUM LETTER PHASE-E LOQ*/ + RTUNI_ALPHA, /* U+0169f9: BAMUM LETTER PHASE-E KO*/ + RTUNI_ALPHA, /* U+0169fa: BAMUM LETTER PHASE-E MEN*/ + RTUNI_ALPHA, /* U+0169fb: BAMUM LETTER PHASE-E MA*/ + RTUNI_ALPHA, /* U+0169fc: BAMUM LETTER PHASE-E MAQ*/ + RTUNI_ALPHA, /* U+0169fd: BAMUM LETTER PHASE-E TEU*/ + RTUNI_ALPHA, /* U+0169fe: BAMUM LETTER PHASE-E KI*/ + RTUNI_ALPHA, /* U+0169ff: BAMUM LETTER PHASE-E MON*/ + RTUNI_ALPHA, /* U+016a00: BAMUM LETTER PHASE-E TEN*/ + RTUNI_ALPHA, /* U+016a01: BAMUM LETTER PHASE-E FAQ*/ + RTUNI_ALPHA, /* U+016a02: BAMUM LETTER PHASE-E GHOM*/ + RTUNI_ALPHA, /* U+016a03: BAMUM LETTER PHASE-F KA*/ + RTUNI_ALPHA, /* U+016a04: BAMUM LETTER PHASE-F U*/ + RTUNI_ALPHA, /* U+016a05: BAMUM LETTER PHASE-F KU*/ + RTUNI_ALPHA, /* U+016a06: BAMUM LETTER PHASE-F EE*/ + RTUNI_ALPHA, /* U+016a07: BAMUM LETTER PHASE-F REE*/ + RTUNI_ALPHA, /* U+016a08: BAMUM LETTER PHASE-F TAE*/ + RTUNI_ALPHA, /* U+016a09: BAMUM LETTER PHASE-F NYI*/ + RTUNI_ALPHA, /* U+016a0a: BAMUM LETTER PHASE-F LA*/ + RTUNI_ALPHA, /* U+016a0b: BAMUM LETTER PHASE-F RII*/ + RTUNI_ALPHA, /* U+016a0c: BAMUM LETTER PHASE-F RIEE*/ + RTUNI_ALPHA, /* U+016a0d: BAMUM LETTER PHASE-F MEEEE*/ + RTUNI_ALPHA, /* U+016a0e: BAMUM LETTER PHASE-F TAA*/ + RTUNI_ALPHA, /* U+016a0f: BAMUM LETTER PHASE-F NDAA*/ + RTUNI_ALPHA, /* U+016a10: BAMUM LETTER PHASE-F NJAEM*/ + RTUNI_ALPHA, /* U+016a11: BAMUM LETTER PHASE-F M*/ + RTUNI_ALPHA, /* U+016a12: BAMUM LETTER PHASE-F SUU*/ + RTUNI_ALPHA, /* U+016a13: BAMUM LETTER PHASE-F SHII*/ + RTUNI_ALPHA, /* U+016a14: BAMUM LETTER PHASE-F SI*/ + RTUNI_ALPHA, /* U+016a15: BAMUM LETTER PHASE-F SEUX*/ + RTUNI_ALPHA, /* U+016a16: BAMUM LETTER PHASE-F KYEE*/ + RTUNI_ALPHA, /* U+016a17: BAMUM LETTER PHASE-F KET*/ + RTUNI_ALPHA, /* U+016a18: BAMUM LETTER PHASE-F NUAE*/ + RTUNI_ALPHA, /* U+016a19: BAMUM LETTER PHASE-F NU*/ + RTUNI_ALPHA, /* U+016a1a: BAMUM LETTER PHASE-F NJUAE*/ + RTUNI_ALPHA, /* U+016a1b: BAMUM LETTER PHASE-F YOQ*/ + RTUNI_ALPHA, /* U+016a1c: BAMUM LETTER PHASE-F SHU*/ + RTUNI_ALPHA, /* U+016a1d: BAMUM LETTER PHASE-F YA*/ + RTUNI_ALPHA, /* U+016a1e: BAMUM LETTER PHASE-F NSHA*/ + RTUNI_ALPHA, /* U+016a1f: BAMUM LETTER PHASE-F PEUX*/ + RTUNI_ALPHA, /* U+016a20: BAMUM LETTER PHASE-F NTEE*/ + RTUNI_ALPHA, /* U+016a21: BAMUM LETTER PHASE-F WUE*/ + RTUNI_ALPHA, /* U+016a22: BAMUM LETTER PHASE-F PEE*/ + RTUNI_ALPHA, /* U+016a23: BAMUM LETTER PHASE-F RU*/ + RTUNI_ALPHA, /* U+016a24: BAMUM LETTER PHASE-F NI*/ + RTUNI_ALPHA, /* U+016a25: BAMUM LETTER PHASE-F REUX*/ + RTUNI_ALPHA, /* U+016a26: BAMUM LETTER PHASE-F KEN*/ + RTUNI_ALPHA, /* U+016a27: BAMUM LETTER PHASE-F NGKWAEN*/ + RTUNI_ALPHA, /* U+016a28: BAMUM LETTER PHASE-F NGGA*/ + RTUNI_ALPHA, /* U+016a29: BAMUM LETTER PHASE-F SHO*/ + RTUNI_ALPHA, /* U+016a2a: BAMUM LETTER PHASE-F PUAE*/ + RTUNI_ALPHA, /* U+016a2b: BAMUM LETTER PHASE-F FOM*/ + RTUNI_ALPHA, /* U+016a2c: BAMUM LETTER PHASE-F WA*/ + RTUNI_ALPHA, /* U+016a2d: BAMUM LETTER PHASE-F LI*/ + RTUNI_ALPHA, /* U+016a2e: BAMUM LETTER PHASE-F LOQ*/ + RTUNI_ALPHA, /* U+016a2f: BAMUM LETTER PHASE-F KO*/ + RTUNI_ALPHA, /* U+016a30: BAMUM LETTER PHASE-F MBEN*/ + RTUNI_ALPHA, /* U+016a31: BAMUM LETTER PHASE-F REN*/ + RTUNI_ALPHA, /* U+016a32: BAMUM LETTER PHASE-F MA*/ + RTUNI_ALPHA, /* U+016a33: BAMUM LETTER PHASE-F MO*/ + RTUNI_ALPHA, /* U+016a34: BAMUM LETTER PHASE-F MBAA*/ + RTUNI_ALPHA, /* U+016a35: BAMUM LETTER PHASE-F TET*/ + RTUNI_ALPHA, /* U+016a36: BAMUM LETTER PHASE-F KPA*/ + RTUNI_ALPHA, /* U+016a37: BAMUM LETTER PHASE-F SAMBA*/ + RTUNI_ALPHA, /* U+016a38: BAMUM LETTER PHASE-F VUEQ*/ + 0, /* U+016a39: */ + 0, /* U+016a3a: */ + 0, /* U+016a3b: */ + 0, /* U+016a3c: */ + 0, /* U+016a3d: */ + 0, /* U+016a3e: */ + 0, /* U+016a3f: */ + 0, /* U+016a40: */ + 0, /* U+016a41: */ + 0, /* U+016a42: */ + 0, /* U+016a43: */ + 0, /* U+016a44: */ + 0, /* U+016a45: */ + 0, /* U+016a46: */ + 0, /* U+016a47: */ + 0, /* U+016a48: */ + 0, /* U+016a49: */ + 0, /* U+016a4a: */ + 0, /* U+016a4b: */ + 0, /* U+016a4c: */ + 0, /* U+016a4d: */ + 0, /* U+016a4e: */ + 0, /* U+016a4f: */ + 0, /* U+016a50: */ + 0, /* U+016a51: */ + 0, /* U+016a52: */ + 0, /* U+016a53: */ + 0, /* U+016a54: */ + 0, /* U+016a55: */ + 0, /* U+016a56: */ + 0, /* U+016a57: */ + 0, /* U+016a58: */ + 0, /* U+016a59: */ + 0, /* U+016a5a: */ + 0, /* U+016a5b: */ + 0, /* U+016a5c: */ + 0, /* U+016a5d: */ + 0, /* U+016a5e: */ + 0, /* U+016a5f: */ + 0, /* U+016a60: */ + 0, /* U+016a61: */ + 0, /* U+016a62: */ + 0, /* U+016a63: */ + 0, /* U+016a64: */ + 0, /* U+016a65: */ + 0, /* U+016a66: */ + 0, /* U+016a67: */ + 0, /* U+016a68: */ + 0, /* U+016a69: */ + 0, /* U+016a6a: */ + 0, /* U+016a6b: */ + 0, /* U+016a6c: */ + 0, /* U+016a6d: */ + 0, /* U+016a6e: */ + 0, /* U+016a6f: */ + 0, /* U+016a70: */ + 0, /* U+016a71: */ + 0, /* U+016a72: */ + 0, /* U+016a73: */ + 0, /* U+016a74: */ + 0, /* U+016a75: */ + 0, /* U+016a76: */ + 0, /* U+016a77: */ + 0, /* U+016a78: */ + 0, /* U+016a79: */ + 0, /* U+016a7a: */ + 0, /* U+016a7b: */ + 0, /* U+016a7c: */ + 0, /* U+016a7d: */ + 0, /* U+016a7e: */ + 0, /* U+016a7f: */ + 0, /* U+016a80: */ + 0, /* U+016a81: */ + 0, /* U+016a82: */ + 0, /* U+016a83: */ + 0, /* U+016a84: */ + 0, /* U+016a85: */ + 0, /* U+016a86: */ + 0, /* U+016a87: */ + 0, /* U+016a88: */ + 0, /* U+016a89: */ + 0, /* U+016a8a: */ + 0, /* U+016a8b: */ + 0, /* U+016a8c: */ + 0, /* U+016a8d: */ + 0, /* U+016a8e: */ + 0, /* U+016a8f: */ + 0, /* U+016a90: */ + 0, /* U+016a91: */ + 0, /* U+016a92: */ + 0, /* U+016a93: */ + 0, /* U+016a94: */ + 0, /* U+016a95: */ + 0, /* U+016a96: */ + 0, /* U+016a97: */ + 0, /* U+016a98: */ + 0, /* U+016a99: */ + 0, /* U+016a9a: */ + 0, /* U+016a9b: */ + 0, /* U+016a9c: */ + 0, /* U+016a9d: */ + 0, /* U+016a9e: */ + 0, /* U+016a9f: */ + 0, /* U+016aa0: */ + 0, /* U+016aa1: */ + 0, /* U+016aa2: */ + 0, /* U+016aa3: */ + 0, /* U+016aa4: */ + 0, /* U+016aa5: */ + 0, /* U+016aa6: */ + 0, /* U+016aa7: */ + 0, /* U+016aa8: */ + 0, /* U+016aa9: */ + 0, /* U+016aaa: */ + 0, /* U+016aab: */ + 0, /* U+016aac: */ + 0, /* U+016aad: */ + 0, /* U+016aae: */ + 0, /* U+016aaf: */ + 0, /* U+016ab0: */ + 0, /* U+016ab1: */ + 0, /* U+016ab2: */ + 0, /* U+016ab3: */ + 0, /* U+016ab4: */ + 0, /* U+016ab5: */ + 0, /* U+016ab6: */ + 0, /* U+016ab7: */ + 0, /* U+016ab8: */ + 0, /* U+016ab9: */ + 0, /* U+016aba: */ + 0, /* U+016abb: */ + 0, /* U+016abc: */ + 0, /* U+016abd: */ + 0, /* U+016abe: */ + 0, /* U+016abf: */ + 0, /* U+016ac0: */ + 0, /* U+016ac1: */ + 0, /* U+016ac2: */ + 0, /* U+016ac3: */ + 0, /* U+016ac4: */ + 0, /* U+016ac5: */ + 0, /* U+016ac6: */ + 0, /* U+016ac7: */ + 0, /* U+016ac8: */ + 0, /* U+016ac9: */ + 0, /* U+016aca: */ + 0, /* U+016acb: */ + 0, /* U+016acc: */ + 0, /* U+016acd: */ + 0, /* U+016ace: */ + 0, /* U+016acf: */ + 0, /* U+016ad0: */ + 0, /* U+016ad1: */ + 0, /* U+016ad2: */ + 0, /* U+016ad3: */ + 0, /* U+016ad4: */ + 0, /* U+016ad5: */ + 0, /* U+016ad6: */ + 0, /* U+016ad7: */ + 0, /* U+016ad8: */ + 0, /* U+016ad9: */ + 0, /* U+016ada: */ + 0, /* U+016adb: */ + 0, /* U+016adc: */ + 0, /* U+016add: */ + 0, /* U+016ade: */ + 0, /* U+016adf: */ + 0, /* U+016ae0: */ + 0, /* U+016ae1: */ + 0, /* U+016ae2: */ + 0, /* U+016ae3: */ + 0, /* U+016ae4: */ + 0, /* U+016ae5: */ + 0, /* U+016ae6: */ + 0, /* U+016ae7: */ + 0, /* U+016ae8: */ + 0, /* U+016ae9: */ + 0, /* U+016aea: */ + 0, /* U+016aeb: */ + 0, /* U+016aec: */ + 0, /* U+016aed: */ + 0, /* U+016aee: */ + 0, /* U+016aef: */ + 0, /* U+016af0: */ + 0, /* U+016af1: */ + 0, /* U+016af2: */ + 0, /* U+016af3: */ + 0, /* U+016af4: */ + 0, /* U+016af5: */ + 0, /* U+016af6: */ + 0, /* U+016af7: */ + 0, /* U+016af8: */ + 0, /* U+016af9: */ + 0, /* U+016afa: */ + 0, /* U+016afb: */ + 0, /* U+016afc: */ + 0, /* U+016afd: */ + 0, /* U+016afe: */ + 0, /* U+016aff: */ + 0, /* U+016b00: */ + 0, /* U+016b01: */ + 0, /* U+016b02: */ + 0, /* U+016b03: */ + 0, /* U+016b04: */ + 0, /* U+016b05: */ + 0, /* U+016b06: */ + 0, /* U+016b07: */ + 0, /* U+016b08: */ + 0, /* U+016b09: */ + 0, /* U+016b0a: */ + 0, /* U+016b0b: */ + 0, /* U+016b0c: */ + 0, /* U+016b0d: */ + 0, /* U+016b0e: */ + 0, /* U+016b0f: */ + 0, /* U+016b10: */ + 0, /* U+016b11: */ + 0, /* U+016b12: */ + 0, /* U+016b13: */ + 0, /* U+016b14: */ + 0, /* U+016b15: */ + 0, /* U+016b16: */ + 0, /* U+016b17: */ + 0, /* U+016b18: */ + 0, /* U+016b19: */ + 0, /* U+016b1a: */ + 0, /* U+016b1b: */ + 0, /* U+016b1c: */ + 0, /* U+016b1d: */ + 0, /* U+016b1e: */ + 0, /* U+016b1f: */ + 0, /* U+016b20: */ + 0, /* U+016b21: */ + 0, /* U+016b22: */ + 0, /* U+016b23: */ + 0, /* U+016b24: */ + 0, /* U+016b25: */ + 0, /* U+016b26: */ + 0, /* U+016b27: */ + 0, /* U+016b28: */ + 0, /* U+016b29: */ + 0, /* U+016b2a: */ + 0, /* U+016b2b: */ + 0, /* U+016b2c: */ + 0, /* U+016b2d: */ + 0, /* U+016b2e: */ + 0, /* U+016b2f: */ + 0, /* U+016b30: */ + 0, /* U+016b31: */ + 0, /* U+016b32: */ + 0, /* U+016b33: */ + 0, /* U+016b34: */ + 0, /* U+016b35: */ + 0, /* U+016b36: */ + 0, /* U+016b37: */ + 0, /* U+016b38: */ + 0, /* U+016b39: */ + 0, /* U+016b3a: */ + 0, /* U+016b3b: */ + 0, /* U+016b3c: */ + 0, /* U+016b3d: */ + 0, /* U+016b3e: */ + 0, /* U+016b3f: */ + 0, /* U+016b40: */ + 0, /* U+016b41: */ + 0, /* U+016b42: */ + 0, /* U+016b43: */ + 0, /* U+016b44: */ + 0, /* U+016b45: */ + 0, /* U+016b46: */ + 0, /* U+016b47: */ + 0, /* U+016b48: */ + 0, /* U+016b49: */ + 0, /* U+016b4a: */ + 0, /* U+016b4b: */ + 0, /* U+016b4c: */ + 0, /* U+016b4d: */ + 0, /* U+016b4e: */ + 0, /* U+016b4f: */ + 0, /* U+016b50: */ + 0, /* U+016b51: */ + 0, /* U+016b52: */ + 0, /* U+016b53: */ + 0, /* U+016b54: */ + 0, /* U+016b55: */ + 0, /* U+016b56: */ + 0, /* U+016b57: */ + 0, /* U+016b58: */ + 0, /* U+016b59: */ + 0, /* U+016b5a: */ + 0, /* U+016b5b: */ + 0, /* U+016b5c: */ + 0, /* U+016b5d: */ + 0, /* U+016b5e: */ + 0, /* U+016b5f: */ + 0, /* U+016b60: */ + 0, /* U+016b61: */ + 0, /* U+016b62: */ + 0, /* U+016b63: */ + 0, /* U+016b64: */ + 0, /* U+016b65: */ + 0, /* U+016b66: */ + 0, /* U+016b67: */ + 0, /* U+016b68: */ + 0, /* U+016b69: */ + 0, /* U+016b6a: */ + 0, /* U+016b6b: */ + 0, /* U+016b6c: */ + 0, /* U+016b6d: */ + 0, /* U+016b6e: */ + 0, /* U+016b6f: */ + 0, /* U+016b70: */ + 0, /* U+016b71: */ + 0, /* U+016b72: */ + 0, /* U+016b73: */ + 0, /* U+016b74: */ + 0, /* U+016b75: */ + 0, /* U+016b76: */ + 0, /* U+016b77: */ + 0, /* U+016b78: */ + 0, /* U+016b79: */ + 0, /* U+016b7a: */ + 0, /* U+016b7b: */ + 0, /* U+016b7c: */ + 0, /* U+016b7d: */ + 0, /* U+016b7e: */ + 0, /* U+016b7f: */ + 0, /* U+016b80: */ + 0, /* U+016b81: */ + 0, /* U+016b82: */ + 0, /* U+016b83: */ + 0, /* U+016b84: */ + 0, /* U+016b85: */ + 0, /* U+016b86: */ + 0, /* U+016b87: */ + 0, /* U+016b88: */ + 0, /* U+016b89: */ + 0, /* U+016b8a: */ + 0, /* U+016b8b: */ + 0, /* U+016b8c: */ + 0, /* U+016b8d: */ + 0, /* U+016b8e: */ + 0, /* U+016b8f: */ + 0, /* U+016b90: */ + 0, /* U+016b91: */ + 0, /* U+016b92: */ + 0, /* U+016b93: */ + 0, /* U+016b94: */ + 0, /* U+016b95: */ + 0, /* U+016b96: */ + 0, /* U+016b97: */ + 0, /* U+016b98: */ + 0, /* U+016b99: */ + 0, /* U+016b9a: */ + 0, /* U+016b9b: */ + 0, /* U+016b9c: */ + 0, /* U+016b9d: */ + 0, /* U+016b9e: */ + 0, /* U+016b9f: */ + 0, /* U+016ba0: */ + 0, /* U+016ba1: */ + 0, /* U+016ba2: */ + 0, /* U+016ba3: */ + 0, /* U+016ba4: */ + 0, /* U+016ba5: */ + 0, /* U+016ba6: */ + 0, /* U+016ba7: */ + 0, /* U+016ba8: */ + 0, /* U+016ba9: */ + 0, /* U+016baa: */ + 0, /* U+016bab: */ + 0, /* U+016bac: */ + 0, /* U+016bad: */ + 0, /* U+016bae: */ + 0, /* U+016baf: */ + 0, /* U+016bb0: */ + 0, /* U+016bb1: */ + 0, /* U+016bb2: */ + 0, /* U+016bb3: */ + 0, /* U+016bb4: */ + 0, /* U+016bb5: */ + 0, /* U+016bb6: */ + 0, /* U+016bb7: */ + 0, /* U+016bb8: */ + 0, /* U+016bb9: */ + 0, /* U+016bba: */ + 0, /* U+016bbb: */ + 0, /* U+016bbc: */ + 0, /* U+016bbd: */ + 0, /* U+016bbe: */ + 0, /* U+016bbf: */ + 0, /* U+016bc0: */ + 0, /* U+016bc1: */ + 0, /* U+016bc2: */ + 0, /* U+016bc3: */ + 0, /* U+016bc4: */ + 0, /* U+016bc5: */ + 0, /* U+016bc6: */ + 0, /* U+016bc7: */ + 0, /* U+016bc8: */ + 0, /* U+016bc9: */ + 0, /* U+016bca: */ + 0, /* U+016bcb: */ + 0, /* U+016bcc: */ + 0, /* U+016bcd: */ + 0, /* U+016bce: */ + 0, /* U+016bcf: */ + 0, /* U+016bd0: */ + 0, /* U+016bd1: */ + 0, /* U+016bd2: */ + 0, /* U+016bd3: */ + 0, /* U+016bd4: */ + 0, /* U+016bd5: */ + 0, /* U+016bd6: */ + 0, /* U+016bd7: */ + 0, /* U+016bd8: */ + 0, /* U+016bd9: */ + 0, /* U+016bda: */ + 0, /* U+016bdb: */ + 0, /* U+016bdc: */ + 0, /* U+016bdd: */ + 0, /* U+016bde: */ + 0, /* U+016bdf: */ + 0, /* U+016be0: */ + 0, /* U+016be1: */ + 0, /* U+016be2: */ + 0, /* U+016be3: */ + 0, /* U+016be4: */ + 0, /* U+016be5: */ + 0, /* U+016be6: */ + 0, /* U+016be7: */ + 0, /* U+016be8: */ + 0, /* U+016be9: */ + 0, /* U+016bea: */ + 0, /* U+016beb: */ + 0, /* U+016bec: */ + 0, /* U+016bed: */ + 0, /* U+016bee: */ + 0, /* U+016bef: */ + 0, /* U+016bf0: */ + 0, /* U+016bf1: */ + 0, /* U+016bf2: */ + 0, /* U+016bf3: */ + 0, /* U+016bf4: */ + 0, /* U+016bf5: */ + 0, /* U+016bf6: */ + 0, /* U+016bf7: */ + 0, /* U+016bf8: */ + 0, /* U+016bf9: */ + 0, /* U+016bfa: */ + 0, /* U+016bfb: */ + 0, /* U+016bfc: */ + 0, /* U+016bfd: */ + 0, /* U+016bfe: */ + 0, /* U+016bff: */ + 0, /* U+016c00: */ + 0, /* U+016c01: */ + 0, /* U+016c02: */ + 0, /* U+016c03: */ + 0, /* U+016c04: */ + 0, /* U+016c05: */ + 0, /* U+016c06: */ + 0, /* U+016c07: */ + 0, /* U+016c08: */ + 0, /* U+016c09: */ + 0, /* U+016c0a: */ + 0, /* U+016c0b: */ + 0, /* U+016c0c: */ + 0, /* U+016c0d: */ + 0, /* U+016c0e: */ + 0, /* U+016c0f: */ + 0, /* U+016c10: */ + 0, /* U+016c11: */ + 0, /* U+016c12: */ + 0, /* U+016c13: */ + 0, /* U+016c14: */ + 0, /* U+016c15: */ + 0, /* U+016c16: */ + 0, /* U+016c17: */ + 0, /* U+016c18: */ + 0, /* U+016c19: */ + 0, /* U+016c1a: */ + 0, /* U+016c1b: */ + 0, /* U+016c1c: */ + 0, /* U+016c1d: */ + 0, /* U+016c1e: */ + 0, /* U+016c1f: */ + 0, /* U+016c20: */ + 0, /* U+016c21: */ + 0, /* U+016c22: */ + 0, /* U+016c23: */ + 0, /* U+016c24: */ + 0, /* U+016c25: */ + 0, /* U+016c26: */ + 0, /* U+016c27: */ + 0, /* U+016c28: */ + 0, /* U+016c29: */ + 0, /* U+016c2a: */ + 0, /* U+016c2b: */ + 0, /* U+016c2c: */ + 0, /* U+016c2d: */ + 0, /* U+016c2e: */ + 0, /* U+016c2f: */ + 0, /* U+016c30: */ + 0, /* U+016c31: */ + 0, /* U+016c32: */ + 0, /* U+016c33: */ + 0, /* U+016c34: */ + 0, /* U+016c35: */ + 0, /* U+016c36: */ + 0, /* U+016c37: */ + 0, /* U+016c38: */ + 0, /* U+016c39: */ + 0, /* U+016c3a: */ + 0, /* U+016c3b: */ + 0, /* U+016c3c: */ + 0, /* U+016c3d: */ + 0, /* U+016c3e: */ + 0, /* U+016c3f: */ + 0, /* U+016c40: */ + 0, /* U+016c41: */ + 0, /* U+016c42: */ + 0, /* U+016c43: */ + 0, /* U+016c44: */ + 0, /* U+016c45: */ + 0, /* U+016c46: */ + 0, /* U+016c47: */ + 0, /* U+016c48: */ + 0, /* U+016c49: */ + 0, /* U+016c4a: */ + 0, /* U+016c4b: */ + 0, /* U+016c4c: */ + 0, /* U+016c4d: */ + 0, /* U+016c4e: */ + 0, /* U+016c4f: */ + 0, /* U+016c50: */ + 0, /* U+016c51: */ + 0, /* U+016c52: */ + 0, /* U+016c53: */ + 0, /* U+016c54: */ + 0, /* U+016c55: */ + 0, /* U+016c56: */ + 0, /* U+016c57: */ + 0, /* U+016c58: */ + 0, /* U+016c59: */ + 0, /* U+016c5a: */ + 0, /* U+016c5b: */ + 0, /* U+016c5c: */ + 0, /* U+016c5d: */ + 0, /* U+016c5e: */ + 0, /* U+016c5f: */ + 0, /* U+016c60: */ + 0, /* U+016c61: */ + 0, /* U+016c62: */ + 0, /* U+016c63: */ + 0, /* U+016c64: */ + 0, /* U+016c65: */ + 0, /* U+016c66: */ + 0, /* U+016c67: */ + 0, /* U+016c68: */ + 0, /* U+016c69: */ + 0, /* U+016c6a: */ + 0, /* U+016c6b: */ + 0, /* U+016c6c: */ + 0, /* U+016c6d: */ + 0, /* U+016c6e: */ + 0, /* U+016c6f: */ + 0, /* U+016c70: */ + 0, /* U+016c71: */ + 0, /* U+016c72: */ + 0, /* U+016c73: */ + 0, /* U+016c74: */ + 0, /* U+016c75: */ + 0, /* U+016c76: */ + 0, /* U+016c77: */ + 0, /* U+016c78: */ + 0, /* U+016c79: */ + 0, /* U+016c7a: */ + 0, /* U+016c7b: */ + 0, /* U+016c7c: */ + 0, /* U+016c7d: */ + 0, /* U+016c7e: */ + 0, /* U+016c7f: */ + 0, /* U+016c80: */ + 0, /* U+016c81: */ + 0, /* U+016c82: */ + 0, /* U+016c83: */ + 0, /* U+016c84: */ + 0, /* U+016c85: */ + 0, /* U+016c86: */ + 0, /* U+016c87: */ + 0, /* U+016c88: */ + 0, /* U+016c89: */ + 0, /* U+016c8a: */ + 0, /* U+016c8b: */ + 0, /* U+016c8c: */ + 0, /* U+016c8d: */ + 0, /* U+016c8e: */ + 0, /* U+016c8f: */ + 0, /* U+016c90: */ + 0, /* U+016c91: */ + 0, /* U+016c92: */ + 0, /* U+016c93: */ + 0, /* U+016c94: */ + 0, /* U+016c95: */ + 0, /* U+016c96: */ + 0, /* U+016c97: */ + 0, /* U+016c98: */ + 0, /* U+016c99: */ + 0, /* U+016c9a: */ + 0, /* U+016c9b: */ + 0, /* U+016c9c: */ + 0, /* U+016c9d: */ + 0, /* U+016c9e: */ + 0, /* U+016c9f: */ + 0, /* U+016ca0: */ + 0, /* U+016ca1: */ + 0, /* U+016ca2: */ + 0, /* U+016ca3: */ + 0, /* U+016ca4: */ + 0, /* U+016ca5: */ + 0, /* U+016ca6: */ + 0, /* U+016ca7: */ + 0, /* U+016ca8: */ + 0, /* U+016ca9: */ + 0, /* U+016caa: */ + 0, /* U+016cab: */ + 0, /* U+016cac: */ + 0, /* U+016cad: */ + 0, /* U+016cae: */ + 0, /* U+016caf: */ + 0, /* U+016cb0: */ + 0, /* U+016cb1: */ + 0, /* U+016cb2: */ + 0, /* U+016cb3: */ + 0, /* U+016cb4: */ + 0, /* U+016cb5: */ + 0, /* U+016cb6: */ + 0, /* U+016cb7: */ + 0, /* U+016cb8: */ + 0, /* U+016cb9: */ + 0, /* U+016cba: */ + 0, /* U+016cbb: */ + 0, /* U+016cbc: */ + 0, /* U+016cbd: */ + 0, /* U+016cbe: */ + 0, /* U+016cbf: */ + 0, /* U+016cc0: */ + 0, /* U+016cc1: */ + 0, /* U+016cc2: */ + 0, /* U+016cc3: */ + 0, /* U+016cc4: */ + 0, /* U+016cc5: */ + 0, /* U+016cc6: */ + 0, /* U+016cc7: */ + 0, /* U+016cc8: */ + 0, /* U+016cc9: */ + 0, /* U+016cca: */ + 0, /* U+016ccb: */ + 0, /* U+016ccc: */ + 0, /* U+016ccd: */ + 0, /* U+016cce: */ + 0, /* U+016ccf: */ + 0, /* U+016cd0: */ + 0, /* U+016cd1: */ + 0, /* U+016cd2: */ + 0, /* U+016cd3: */ + 0, /* U+016cd4: */ + 0, /* U+016cd5: */ + 0, /* U+016cd6: */ + 0, /* U+016cd7: */ + 0, /* U+016cd8: */ + 0, /* U+016cd9: */ + 0, /* U+016cda: */ + 0, /* U+016cdb: */ + 0, /* U+016cdc: */ + 0, /* U+016cdd: */ + 0, /* U+016cde: */ + 0, /* U+016cdf: */ + 0, /* U+016ce0: */ + 0, /* U+016ce1: */ + 0, /* U+016ce2: */ + 0, /* U+016ce3: */ + 0, /* U+016ce4: */ + 0, /* U+016ce5: */ + 0, /* U+016ce6: */ + 0, /* U+016ce7: */ + 0, /* U+016ce8: */ + 0, /* U+016ce9: */ + 0, /* U+016cea: */ + 0, /* U+016ceb: */ + 0, /* U+016cec: */ + 0, /* U+016ced: */ + 0, /* U+016cee: */ + 0, /* U+016cef: */ + 0, /* U+016cf0: */ + 0, /* U+016cf1: */ + 0, /* U+016cf2: */ + 0, /* U+016cf3: */ + 0, /* U+016cf4: */ + 0, /* U+016cf5: */ + 0, /* U+016cf6: */ + 0, /* U+016cf7: */ + 0, /* U+016cf8: */ + 0, /* U+016cf9: */ + 0, /* U+016cfa: */ + 0, /* U+016cfb: */ + 0, /* U+016cfc: */ + 0, /* U+016cfd: */ + 0, /* U+016cfe: */ + 0, /* U+016cff: */ + 0, /* U+016d00: */ + 0, /* U+016d01: */ + 0, /* U+016d02: */ + 0, /* U+016d03: */ + 0, /* U+016d04: */ + 0, /* U+016d05: */ + 0, /* U+016d06: */ + 0, /* U+016d07: */ + 0, /* U+016d08: */ + 0, /* U+016d09: */ + 0, /* U+016d0a: */ + 0, /* U+016d0b: */ + 0, /* U+016d0c: */ + 0, /* U+016d0d: */ + 0, /* U+016d0e: */ + 0, /* U+016d0f: */ + 0, /* U+016d10: */ + 0, /* U+016d11: */ + 0, /* U+016d12: */ + 0, /* U+016d13: */ + 0, /* U+016d14: */ + 0, /* U+016d15: */ + 0, /* U+016d16: */ + 0, /* U+016d17: */ + 0, /* U+016d18: */ + 0, /* U+016d19: */ + 0, /* U+016d1a: */ + 0, /* U+016d1b: */ + 0, /* U+016d1c: */ + 0, /* U+016d1d: */ + 0, /* U+016d1e: */ + 0, /* U+016d1f: */ + 0, /* U+016d20: */ + 0, /* U+016d21: */ + 0, /* U+016d22: */ + 0, /* U+016d23: */ + 0, /* U+016d24: */ + 0, /* U+016d25: */ + 0, /* U+016d26: */ + 0, /* U+016d27: */ + 0, /* U+016d28: */ + 0, /* U+016d29: */ + 0, /* U+016d2a: */ + 0, /* U+016d2b: */ + 0, /* U+016d2c: */ + 0, /* U+016d2d: */ + 0, /* U+016d2e: */ + 0, /* U+016d2f: */ + 0, /* U+016d30: */ + 0, /* U+016d31: */ + 0, /* U+016d32: */ + 0, /* U+016d33: */ + 0, /* U+016d34: */ + 0, /* U+016d35: */ + 0, /* U+016d36: */ + 0, /* U+016d37: */ + 0, /* U+016d38: */ + 0, /* U+016d39: */ + 0, /* U+016d3a: */ + 0, /* U+016d3b: */ + 0, /* U+016d3c: */ + 0, /* U+016d3d: */ + 0, /* U+016d3e: */ + 0, /* U+016d3f: */ + 0, /* U+016d40: */ + 0, /* U+016d41: */ + 0, /* U+016d42: */ + 0, /* U+016d43: */ + 0, /* U+016d44: */ + 0, /* U+016d45: */ + 0, /* U+016d46: */ + 0, /* U+016d47: */ + 0, /* U+016d48: */ + 0, /* U+016d49: */ + 0, /* U+016d4a: */ + 0, /* U+016d4b: */ + 0, /* U+016d4c: */ + 0, /* U+016d4d: */ + 0, /* U+016d4e: */ + 0, /* U+016d4f: */ + 0, /* U+016d50: */ + 0, /* U+016d51: */ + 0, /* U+016d52: */ + 0, /* U+016d53: */ + 0, /* U+016d54: */ + 0, /* U+016d55: */ + 0, /* U+016d56: */ + 0, /* U+016d57: */ + 0, /* U+016d58: */ + 0, /* U+016d59: */ + 0, /* U+016d5a: */ + 0, /* U+016d5b: */ + 0, /* U+016d5c: */ + 0, /* U+016d5d: */ + 0, /* U+016d5e: */ + 0, /* U+016d5f: */ + 0, /* U+016d60: */ + 0, /* U+016d61: */ + 0, /* U+016d62: */ + 0, /* U+016d63: */ + 0, /* U+016d64: */ + 0, /* U+016d65: */ + 0, /* U+016d66: */ + 0, /* U+016d67: */ + 0, /* U+016d68: */ + 0, /* U+016d69: */ + 0, /* U+016d6a: */ + 0, /* U+016d6b: */ + 0, /* U+016d6c: */ + 0, /* U+016d6d: */ + 0, /* U+016d6e: */ + 0, /* U+016d6f: */ + 0, /* U+016d70: */ + 0, /* U+016d71: */ + 0, /* U+016d72: */ + 0, /* U+016d73: */ + 0, /* U+016d74: */ + 0, /* U+016d75: */ + 0, /* U+016d76: */ + 0, /* U+016d77: */ + 0, /* U+016d78: */ + 0, /* U+016d79: */ + 0, /* U+016d7a: */ + 0, /* U+016d7b: */ + 0, /* U+016d7c: */ + 0, /* U+016d7d: */ + 0, /* U+016d7e: */ + 0, /* U+016d7f: */ + 0, /* U+016d80: */ + 0, /* U+016d81: */ + 0, /* U+016d82: */ + 0, /* U+016d83: */ + 0, /* U+016d84: */ + 0, /* U+016d85: */ + 0, /* U+016d86: */ + 0, /* U+016d87: */ + 0, /* U+016d88: */ + 0, /* U+016d89: */ + 0, /* U+016d8a: */ + 0, /* U+016d8b: */ + 0, /* U+016d8c: */ + 0, /* U+016d8d: */ + 0, /* U+016d8e: */ + 0, /* U+016d8f: */ + 0, /* U+016d90: */ + 0, /* U+016d91: */ + 0, /* U+016d92: */ + 0, /* U+016d93: */ + 0, /* U+016d94: */ + 0, /* U+016d95: */ + 0, /* U+016d96: */ + 0, /* U+016d97: */ + 0, /* U+016d98: */ + 0, /* U+016d99: */ + 0, /* U+016d9a: */ + 0, /* U+016d9b: */ + 0, /* U+016d9c: */ + 0, /* U+016d9d: */ + 0, /* U+016d9e: */ + 0, /* U+016d9f: */ + 0, /* U+016da0: */ + 0, /* U+016da1: */ + 0, /* U+016da2: */ + 0, /* U+016da3: */ + 0, /* U+016da4: */ + 0, /* U+016da5: */ + 0, /* U+016da6: */ + 0, /* U+016da7: */ + 0, /* U+016da8: */ + 0, /* U+016da9: */ + 0, /* U+016daa: */ + 0, /* U+016dab: */ + 0, /* U+016dac: */ + 0, /* U+016dad: */ + 0, /* U+016dae: */ + 0, /* U+016daf: */ + 0, /* U+016db0: */ + 0, /* U+016db1: */ + 0, /* U+016db2: */ + 0, /* U+016db3: */ + 0, /* U+016db4: */ + 0, /* U+016db5: */ + 0, /* U+016db6: */ + 0, /* U+016db7: */ + 0, /* U+016db8: */ + 0, /* U+016db9: */ + 0, /* U+016dba: */ + 0, /* U+016dbb: */ + 0, /* U+016dbc: */ + 0, /* U+016dbd: */ + 0, /* U+016dbe: */ + 0, /* U+016dbf: */ + 0, /* U+016dc0: */ + 0, /* U+016dc1: */ + 0, /* U+016dc2: */ + 0, /* U+016dc3: */ + 0, /* U+016dc4: */ + 0, /* U+016dc5: */ + 0, /* U+016dc6: */ + 0, /* U+016dc7: */ + 0, /* U+016dc8: */ + 0, /* U+016dc9: */ + 0, /* U+016dca: */ + 0, /* U+016dcb: */ + 0, /* U+016dcc: */ + 0, /* U+016dcd: */ + 0, /* U+016dce: */ + 0, /* U+016dcf: */ + 0, /* U+016dd0: */ + 0, /* U+016dd1: */ + 0, /* U+016dd2: */ + 0, /* U+016dd3: */ + 0, /* U+016dd4: */ + 0, /* U+016dd5: */ + 0, /* U+016dd6: */ + 0, /* U+016dd7: */ + 0, /* U+016dd8: */ + 0, /* U+016dd9: */ + 0, /* U+016dda: */ + 0, /* U+016ddb: */ + 0, /* U+016ddc: */ + 0, /* U+016ddd: */ + 0, /* U+016dde: */ + 0, /* U+016ddf: */ + 0, /* U+016de0: */ + 0, /* U+016de1: */ + 0, /* U+016de2: */ + 0, /* U+016de3: */ + 0, /* U+016de4: */ + 0, /* U+016de5: */ + 0, /* U+016de6: */ + 0, /* U+016de7: */ + 0, /* U+016de8: */ + 0, /* U+016de9: */ + 0, /* U+016dea: */ + 0, /* U+016deb: */ + 0, /* U+016dec: */ + 0, /* U+016ded: */ + 0, /* U+016dee: */ + 0, /* U+016def: */ + 0, /* U+016df0: */ + 0, /* U+016df1: */ + 0, /* U+016df2: */ + 0, /* U+016df3: */ + 0, /* U+016df4: */ + 0, /* U+016df5: */ + 0, /* U+016df6: */ + 0, /* U+016df7: */ + 0, /* U+016df8: */ + 0, /* U+016df9: */ + 0, /* U+016dfa: */ + 0, /* U+016dfb: */ + 0, /* U+016dfc: */ + 0, /* U+016dfd: */ + 0, /* U+016dfe: */ + 0, /* U+016dff: */ + 0, /* U+016e00: */ + 0, /* U+016e01: */ + 0, /* U+016e02: */ + 0, /* U+016e03: */ + 0, /* U+016e04: */ + 0, /* U+016e05: */ + 0, /* U+016e06: */ + 0, /* U+016e07: */ + 0, /* U+016e08: */ + 0, /* U+016e09: */ + 0, /* U+016e0a: */ + 0, /* U+016e0b: */ + 0, /* U+016e0c: */ + 0, /* U+016e0d: */ + 0, /* U+016e0e: */ + 0, /* U+016e0f: */ + 0, /* U+016e10: */ + 0, /* U+016e11: */ + 0, /* U+016e12: */ + 0, /* U+016e13: */ + 0, /* U+016e14: */ + 0, /* U+016e15: */ + 0, /* U+016e16: */ + 0, /* U+016e17: */ + 0, /* U+016e18: */ + 0, /* U+016e19: */ + 0, /* U+016e1a: */ + 0, /* U+016e1b: */ + 0, /* U+016e1c: */ + 0, /* U+016e1d: */ + 0, /* U+016e1e: */ + 0, /* U+016e1f: */ + 0, /* U+016e20: */ + 0, /* U+016e21: */ + 0, /* U+016e22: */ + 0, /* U+016e23: */ + 0, /* U+016e24: */ + 0, /* U+016e25: */ + 0, /* U+016e26: */ + 0, /* U+016e27: */ + 0, /* U+016e28: */ + 0, /* U+016e29: */ + 0, /* U+016e2a: */ + 0, /* U+016e2b: */ + 0, /* U+016e2c: */ + 0, /* U+016e2d: */ + 0, /* U+016e2e: */ + 0, /* U+016e2f: */ + 0, /* U+016e30: */ + 0, /* U+016e31: */ + 0, /* U+016e32: */ + 0, /* U+016e33: */ + 0, /* U+016e34: */ + 0, /* U+016e35: */ + 0, /* U+016e36: */ + 0, /* U+016e37: */ + 0, /* U+016e38: */ + 0, /* U+016e39: */ + 0, /* U+016e3a: */ + 0, /* U+016e3b: */ + 0, /* U+016e3c: */ + 0, /* U+016e3d: */ + 0, /* U+016e3e: */ + 0, /* U+016e3f: */ + 0, /* U+016e40: */ + 0, /* U+016e41: */ + 0, /* U+016e42: */ + 0, /* U+016e43: */ + 0, /* U+016e44: */ + 0, /* U+016e45: */ + 0, /* U+016e46: */ + 0, /* U+016e47: */ + 0, /* U+016e48: */ + 0, /* U+016e49: */ + 0, /* U+016e4a: */ + 0, /* U+016e4b: */ + 0, /* U+016e4c: */ + 0, /* U+016e4d: */ + 0, /* U+016e4e: */ + 0, /* U+016e4f: */ + 0, /* U+016e50: */ + 0, /* U+016e51: */ + 0, /* U+016e52: */ + 0, /* U+016e53: */ + 0, /* U+016e54: */ + 0, /* U+016e55: */ + 0, /* U+016e56: */ + 0, /* U+016e57: */ + 0, /* U+016e58: */ + 0, /* U+016e59: */ + 0, /* U+016e5a: */ + 0, /* U+016e5b: */ + 0, /* U+016e5c: */ + 0, /* U+016e5d: */ + 0, /* U+016e5e: */ + 0, /* U+016e5f: */ + 0, /* U+016e60: */ + 0, /* U+016e61: */ + 0, /* U+016e62: */ + 0, /* U+016e63: */ + 0, /* U+016e64: */ + 0, /* U+016e65: */ + 0, /* U+016e66: */ + 0, /* U+016e67: */ + 0, /* U+016e68: */ + 0, /* U+016e69: */ + 0, /* U+016e6a: */ + 0, /* U+016e6b: */ + 0, /* U+016e6c: */ + 0, /* U+016e6d: */ + 0, /* U+016e6e: */ + 0, /* U+016e6f: */ + 0, /* U+016e70: */ + 0, /* U+016e71: */ + 0, /* U+016e72: */ + 0, /* U+016e73: */ + 0, /* U+016e74: */ + 0, /* U+016e75: */ + 0, /* U+016e76: */ + 0, /* U+016e77: */ + 0, /* U+016e78: */ + 0, /* U+016e79: */ + 0, /* U+016e7a: */ + 0, /* U+016e7b: */ + 0, /* U+016e7c: */ + 0, /* U+016e7d: */ + 0, /* U+016e7e: */ + 0, /* U+016e7f: */ + 0, /* U+016e80: */ + 0, /* U+016e81: */ + 0, /* U+016e82: */ + 0, /* U+016e83: */ + 0, /* U+016e84: */ + 0, /* U+016e85: */ + 0, /* U+016e86: */ + 0, /* U+016e87: */ + 0, /* U+016e88: */ + 0, /* U+016e89: */ + 0, /* U+016e8a: */ + 0, /* U+016e8b: */ + 0, /* U+016e8c: */ + 0, /* U+016e8d: */ + 0, /* U+016e8e: */ + 0, /* U+016e8f: */ + 0, /* U+016e90: */ + 0, /* U+016e91: */ + 0, /* U+016e92: */ + 0, /* U+016e93: */ + 0, /* U+016e94: */ + 0, /* U+016e95: */ + 0, /* U+016e96: */ + 0, /* U+016e97: */ + 0, /* U+016e98: */ + 0, /* U+016e99: */ + 0, /* U+016e9a: */ + 0, /* U+016e9b: */ + 0, /* U+016e9c: */ + 0, /* U+016e9d: */ + 0, /* U+016e9e: */ + 0, /* U+016e9f: */ + 0, /* U+016ea0: */ + 0, /* U+016ea1: */ + 0, /* U+016ea2: */ + 0, /* U+016ea3: */ + 0, /* U+016ea4: */ + 0, /* U+016ea5: */ + 0, /* U+016ea6: */ + 0, /* U+016ea7: */ + 0, /* U+016ea8: */ + 0, /* U+016ea9: */ + 0, /* U+016eaa: */ + 0, /* U+016eab: */ + 0, /* U+016eac: */ + 0, /* U+016ead: */ + 0, /* U+016eae: */ + 0, /* U+016eaf: */ + 0, /* U+016eb0: */ + 0, /* U+016eb1: */ + 0, /* U+016eb2: */ + 0, /* U+016eb3: */ + 0, /* U+016eb4: */ + 0, /* U+016eb5: */ + 0, /* U+016eb6: */ + 0, /* U+016eb7: */ + 0, /* U+016eb8: */ + 0, /* U+016eb9: */ + 0, /* U+016eba: */ + 0, /* U+016ebb: */ + 0, /* U+016ebc: */ + 0, /* U+016ebd: */ + 0, /* U+016ebe: */ + 0, /* U+016ebf: */ + 0, /* U+016ec0: */ + 0, /* U+016ec1: */ + 0, /* U+016ec2: */ + 0, /* U+016ec3: */ + 0, /* U+016ec4: */ + 0, /* U+016ec5: */ + 0, /* U+016ec6: */ + 0, /* U+016ec7: */ + 0, /* U+016ec8: */ + 0, /* U+016ec9: */ + 0, /* U+016eca: */ + 0, /* U+016ecb: */ + 0, /* U+016ecc: */ + 0, /* U+016ecd: */ + 0, /* U+016ece: */ + 0, /* U+016ecf: */ + 0, /* U+016ed0: */ + 0, /* U+016ed1: */ + 0, /* U+016ed2: */ + 0, /* U+016ed3: */ + 0, /* U+016ed4: */ + 0, /* U+016ed5: */ + 0, /* U+016ed6: */ + 0, /* U+016ed7: */ + 0, /* U+016ed8: */ + 0, /* U+016ed9: */ + 0, /* U+016eda: */ + 0, /* U+016edb: */ + 0, /* U+016edc: */ + 0, /* U+016edd: */ + 0, /* U+016ede: */ + 0, /* U+016edf: */ + 0, /* U+016ee0: */ + 0, /* U+016ee1: */ + 0, /* U+016ee2: */ + 0, /* U+016ee3: */ + 0, /* U+016ee4: */ + 0, /* U+016ee5: */ + 0, /* U+016ee6: */ + 0, /* U+016ee7: */ + 0, /* U+016ee8: */ + 0, /* U+016ee9: */ + 0, /* U+016eea: */ + 0, /* U+016eeb: */ + 0, /* U+016eec: */ + 0, /* U+016eed: */ + 0, /* U+016eee: */ + 0, /* U+016eef: */ + 0, /* U+016ef0: */ + 0, /* U+016ef1: */ + 0, /* U+016ef2: */ + 0, /* U+016ef3: */ + 0, /* U+016ef4: */ + 0, /* U+016ef5: */ + 0, /* U+016ef6: */ + 0, /* U+016ef7: */ + 0, /* U+016ef8: */ + 0, /* U+016ef9: */ + 0, /* U+016efa: */ + 0, /* U+016efb: */ + 0, /* U+016efc: */ + 0, /* U+016efd: */ + 0, /* U+016efe: */ + 0, /* U+016eff: */ + RTUNI_ALPHA, /* U+016f00: MIAO LETTER PA*/ + RTUNI_ALPHA, /* U+016f01: MIAO LETTER BA*/ + RTUNI_ALPHA, /* U+016f02: MIAO LETTER YI PA*/ + RTUNI_ALPHA, /* U+016f03: MIAO LETTER PLA*/ + RTUNI_ALPHA, /* U+016f04: MIAO LETTER MA*/ + RTUNI_ALPHA, /* U+016f05: MIAO LETTER MHA*/ + RTUNI_ALPHA, /* U+016f06: MIAO LETTER ARCHAIC MA*/ + RTUNI_ALPHA, /* U+016f07: MIAO LETTER FA*/ + RTUNI_ALPHA, /* U+016f08: MIAO LETTER VA*/ + RTUNI_ALPHA, /* U+016f09: MIAO LETTER VFA*/ + RTUNI_ALPHA, /* U+016f0a: MIAO LETTER TA*/ + RTUNI_ALPHA, /* U+016f0b: MIAO LETTER DA*/ + RTUNI_ALPHA, /* U+016f0c: MIAO LETTER YI TTA*/ + RTUNI_ALPHA, /* U+016f0d: MIAO LETTER YI TA*/ + RTUNI_ALPHA, /* U+016f0e: MIAO LETTER TTA*/ + RTUNI_ALPHA, /* U+016f0f: MIAO LETTER DDA*/ + RTUNI_ALPHA, /* U+016f10: MIAO LETTER NA*/ + RTUNI_ALPHA, /* U+016f11: MIAO LETTER NHA*/ + RTUNI_ALPHA, /* U+016f12: MIAO LETTER YI NNA*/ + RTUNI_ALPHA, /* U+016f13: MIAO LETTER ARCHAIC NA*/ + RTUNI_ALPHA, /* U+016f14: MIAO LETTER NNA*/ + RTUNI_ALPHA, /* U+016f15: MIAO LETTER NNHA*/ + RTUNI_ALPHA, /* U+016f16: MIAO LETTER LA*/ + RTUNI_ALPHA, /* U+016f17: MIAO LETTER LYA*/ + RTUNI_ALPHA, /* U+016f18: MIAO LETTER LHA*/ + RTUNI_ALPHA, /* U+016f19: MIAO LETTER LHYA*/ + RTUNI_ALPHA, /* U+016f1a: MIAO LETTER TLHA*/ + RTUNI_ALPHA, /* U+016f1b: MIAO LETTER DLHA*/ + RTUNI_ALPHA, /* U+016f1c: MIAO LETTER TLHYA*/ + RTUNI_ALPHA, /* U+016f1d: MIAO LETTER DLHYA*/ + RTUNI_ALPHA, /* U+016f1e: MIAO LETTER KA*/ + RTUNI_ALPHA, /* U+016f1f: MIAO LETTER GA*/ + RTUNI_ALPHA, /* U+016f20: MIAO LETTER YI KA*/ + RTUNI_ALPHA, /* U+016f21: MIAO LETTER QA*/ + RTUNI_ALPHA, /* U+016f22: MIAO LETTER QGA*/ + RTUNI_ALPHA, /* U+016f23: MIAO LETTER NGA*/ + RTUNI_ALPHA, /* U+016f24: MIAO LETTER NGHA*/ + RTUNI_ALPHA, /* U+016f25: MIAO LETTER ARCHAIC NGA*/ + RTUNI_ALPHA, /* U+016f26: MIAO LETTER HA*/ + RTUNI_ALPHA, /* U+016f27: MIAO LETTER XA*/ + RTUNI_ALPHA, /* U+016f28: MIAO LETTER GHA*/ + RTUNI_ALPHA, /* U+016f29: MIAO LETTER GHHA*/ + RTUNI_ALPHA, /* U+016f2a: MIAO LETTER TSSA*/ + RTUNI_ALPHA, /* U+016f2b: MIAO LETTER DZZA*/ + RTUNI_ALPHA, /* U+016f2c: MIAO LETTER NYA*/ + RTUNI_ALPHA, /* U+016f2d: MIAO LETTER NYHA*/ + RTUNI_ALPHA, /* U+016f2e: MIAO LETTER TSHA*/ + RTUNI_ALPHA, /* U+016f2f: MIAO LETTER DZHA*/ + RTUNI_ALPHA, /* U+016f30: MIAO LETTER YI TSHA*/ + RTUNI_ALPHA, /* U+016f31: MIAO LETTER YI DZHA*/ + RTUNI_ALPHA, /* U+016f32: MIAO LETTER REFORMED TSHA*/ + RTUNI_ALPHA, /* U+016f33: MIAO LETTER SHA*/ + RTUNI_ALPHA, /* U+016f34: MIAO LETTER SSA*/ + RTUNI_ALPHA, /* U+016f35: MIAO LETTER ZHA*/ + RTUNI_ALPHA, /* U+016f36: MIAO LETTER ZSHA*/ + RTUNI_ALPHA, /* U+016f37: MIAO LETTER TSA*/ + RTUNI_ALPHA, /* U+016f38: MIAO LETTER DZA*/ + RTUNI_ALPHA, /* U+016f39: MIAO LETTER YI TSA*/ + RTUNI_ALPHA, /* U+016f3a: MIAO LETTER SA*/ + RTUNI_ALPHA, /* U+016f3b: MIAO LETTER ZA*/ + RTUNI_ALPHA, /* U+016f3c: MIAO LETTER ZSA*/ + RTUNI_ALPHA, /* U+016f3d: MIAO LETTER ZZA*/ + RTUNI_ALPHA, /* U+016f3e: MIAO LETTER ZZSA*/ + RTUNI_ALPHA, /* U+016f3f: MIAO LETTER ARCHAIC ZZA*/ + RTUNI_ALPHA, /* U+016f40: MIAO LETTER ZZYA*/ + RTUNI_ALPHA, /* U+016f41: MIAO LETTER ZZSYA*/ + RTUNI_ALPHA, /* U+016f42: MIAO LETTER WA*/ + RTUNI_ALPHA, /* U+016f43: MIAO LETTER AH*/ + RTUNI_ALPHA, /* U+016f44: MIAO LETTER HHA*/ + 0, /* U+016f45: */ + 0, /* U+016f46: */ + 0, /* U+016f47: */ + 0, /* U+016f48: */ + 0, /* U+016f49: */ + 0, /* U+016f4a: */ + 0, /* U+016f4b: */ + 0, /* U+016f4c: */ + 0, /* U+016f4d: */ + 0, /* U+016f4e: */ + 0, /* U+016f4f: */ + RTUNI_ALPHA, /* U+016f50: MIAO LETTER NASALIZATION*/ + RTUNI_ALPHA, /* U+016f51: MIAO SIGN ASPIRATION*/ + RTUNI_ALPHA, /* U+016f52: MIAO SIGN REFORMED VOICING*/ + RTUNI_ALPHA, /* U+016f53: MIAO SIGN REFORMED ASPIRATION*/ + RTUNI_ALPHA, /* U+016f54: MIAO VOWEL SIGN A*/ + RTUNI_ALPHA, /* U+016f55: MIAO VOWEL SIGN AA*/ + RTUNI_ALPHA, /* U+016f56: MIAO VOWEL SIGN AHH*/ + RTUNI_ALPHA, /* U+016f57: MIAO VOWEL SIGN AN*/ + RTUNI_ALPHA, /* U+016f58: MIAO VOWEL SIGN ANG*/ + RTUNI_ALPHA, /* U+016f59: MIAO VOWEL SIGN O*/ + RTUNI_ALPHA, /* U+016f5a: MIAO VOWEL SIGN OO*/ + RTUNI_ALPHA, /* U+016f5b: MIAO VOWEL SIGN WO*/ + RTUNI_ALPHA, /* U+016f5c: MIAO VOWEL SIGN W*/ + RTUNI_ALPHA, /* U+016f5d: MIAO VOWEL SIGN E*/ + RTUNI_ALPHA, /* U+016f5e: MIAO VOWEL SIGN EN*/ + RTUNI_ALPHA, /* U+016f5f: MIAO VOWEL SIGN ENG*/ + RTUNI_ALPHA, /* U+016f60: MIAO VOWEL SIGN OEY*/ + RTUNI_ALPHA, /* U+016f61: MIAO VOWEL SIGN I*/ + RTUNI_ALPHA, /* U+016f62: MIAO VOWEL SIGN IA*/ + RTUNI_ALPHA, /* U+016f63: MIAO VOWEL SIGN IAN*/ + RTUNI_ALPHA, /* U+016f64: MIAO VOWEL SIGN IANG*/ + RTUNI_ALPHA, /* U+016f65: MIAO VOWEL SIGN IO*/ + RTUNI_ALPHA, /* U+016f66: MIAO VOWEL SIGN IE*/ + RTUNI_ALPHA, /* U+016f67: MIAO VOWEL SIGN II*/ + RTUNI_ALPHA, /* U+016f68: MIAO VOWEL SIGN IU*/ + RTUNI_ALPHA, /* U+016f69: MIAO VOWEL SIGN ING*/ + RTUNI_ALPHA, /* U+016f6a: MIAO VOWEL SIGN U*/ + RTUNI_ALPHA, /* U+016f6b: MIAO VOWEL SIGN UA*/ + RTUNI_ALPHA, /* U+016f6c: MIAO VOWEL SIGN UAN*/ + RTUNI_ALPHA, /* U+016f6d: MIAO VOWEL SIGN UANG*/ + RTUNI_ALPHA, /* U+016f6e: MIAO VOWEL SIGN UU*/ + RTUNI_ALPHA, /* U+016f6f: MIAO VOWEL SIGN UEI*/ + RTUNI_ALPHA, /* U+016f70: MIAO VOWEL SIGN UNG*/ + RTUNI_ALPHA, /* U+016f71: MIAO VOWEL SIGN Y*/ + RTUNI_ALPHA, /* U+016f72: MIAO VOWEL SIGN YI*/ + RTUNI_ALPHA, /* U+016f73: MIAO VOWEL SIGN AE*/ + RTUNI_ALPHA, /* U+016f74: MIAO VOWEL SIGN AEE*/ + RTUNI_ALPHA, /* U+016f75: MIAO VOWEL SIGN ERR*/ + RTUNI_ALPHA, /* U+016f76: MIAO VOWEL SIGN ROUNDED ERR*/ + RTUNI_ALPHA, /* U+016f77: MIAO VOWEL SIGN ER*/ + RTUNI_ALPHA, /* U+016f78: MIAO VOWEL SIGN ROUNDED ER*/ + RTUNI_ALPHA, /* U+016f79: MIAO VOWEL SIGN AI*/ + RTUNI_ALPHA, /* U+016f7a: MIAO VOWEL SIGN EI*/ + RTUNI_ALPHA, /* U+016f7b: MIAO VOWEL SIGN AU*/ + RTUNI_ALPHA, /* U+016f7c: MIAO VOWEL SIGN OU*/ + RTUNI_ALPHA, /* U+016f7d: MIAO VOWEL SIGN N*/ + RTUNI_ALPHA, /* U+016f7e: MIAO VOWEL SIGN NG*/ + 0, /* U+016f7f: */ + 0, /* U+016f80: */ + 0, /* U+016f81: */ + 0, /* U+016f82: */ + 0, /* U+016f83: */ + 0, /* U+016f84: */ + 0, /* U+016f85: */ + 0, /* U+016f86: */ + 0, /* U+016f87: */ + 0, /* U+016f88: */ + 0, /* U+016f89: */ + 0, /* U+016f8a: */ + 0, /* U+016f8b: */ + 0, /* U+016f8c: */ + 0, /* U+016f8d: */ + 0, /* U+016f8e: */ + 0, /* U+016f8f: MIAO TONE RIGHT*/ + 0, /* U+016f90: MIAO TONE TOP RIGHT*/ + 0, /* U+016f91: MIAO TONE ABOVE*/ + 0, /* U+016f92: MIAO TONE BELOW*/ + RTUNI_ALPHA, /* U+016f93: MIAO LETTER TONE-2*/ + RTUNI_ALPHA, /* U+016f94: MIAO LETTER TONE-3*/ + RTUNI_ALPHA, /* U+016f95: MIAO LETTER TONE-4*/ + RTUNI_ALPHA, /* U+016f96: MIAO LETTER TONE-5*/ + RTUNI_ALPHA, /* U+016f97: MIAO LETTER TONE-6*/ + RTUNI_ALPHA, /* U+016f98: MIAO LETTER TONE-7*/ + RTUNI_ALPHA, /* U+016f99: MIAO LETTER TONE-8*/ + RTUNI_ALPHA, /* U+016f9a: MIAO LETTER REFORMED TONE-1*/ + RTUNI_ALPHA, /* U+016f9b: MIAO LETTER REFORMED TONE-2*/ + RTUNI_ALPHA, /* U+016f9c: MIAO LETTER REFORMED TONE-4*/ + RTUNI_ALPHA, /* U+016f9d: MIAO LETTER REFORMED TONE-5*/ + RTUNI_ALPHA, /* U+016f9e: MIAO LETTER REFORMED TONE-6*/ + RTUNI_ALPHA, /* U+016f9f: MIAO LETTER REFORMED TONE-8*/ +}; + +static const uint8_t g_afRTUniFlags0x01b000[] = +{ + RTUNI_ALPHA, /* U+01b000: KATAKANA LETTER ARCHAIC E*/ + RTUNI_ALPHA, /* U+01b001: HIRAGANA LETTER ARCHAIC YE*/ +}; + +static const uint8_t g_afRTUniFlags0x01d400[] = +{ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d400: MATHEMATICAL BOLD CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d401: MATHEMATICAL BOLD CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d402: MATHEMATICAL BOLD CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d403: MATHEMATICAL BOLD CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d404: MATHEMATICAL BOLD CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d405: MATHEMATICAL BOLD CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d406: MATHEMATICAL BOLD CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d407: MATHEMATICAL BOLD CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d408: MATHEMATICAL BOLD CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d409: MATHEMATICAL BOLD CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40a: MATHEMATICAL BOLD CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40b: MATHEMATICAL BOLD CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40c: MATHEMATICAL BOLD CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40d: MATHEMATICAL BOLD CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40e: MATHEMATICAL BOLD CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d40f: MATHEMATICAL BOLD CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d410: MATHEMATICAL BOLD CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d411: MATHEMATICAL BOLD CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d412: MATHEMATICAL BOLD CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d413: MATHEMATICAL BOLD CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d414: MATHEMATICAL BOLD CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d415: MATHEMATICAL BOLD CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d416: MATHEMATICAL BOLD CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d417: MATHEMATICAL BOLD CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d418: MATHEMATICAL BOLD CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d419: MATHEMATICAL BOLD CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41a: MATHEMATICAL BOLD SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41b: MATHEMATICAL BOLD SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41c: MATHEMATICAL BOLD SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41d: MATHEMATICAL BOLD SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41e: MATHEMATICAL BOLD SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d41f: MATHEMATICAL BOLD SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d420: MATHEMATICAL BOLD SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d421: MATHEMATICAL BOLD SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d422: MATHEMATICAL BOLD SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d423: MATHEMATICAL BOLD SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d424: MATHEMATICAL BOLD SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d425: MATHEMATICAL BOLD SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d426: MATHEMATICAL BOLD SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d427: MATHEMATICAL BOLD SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d428: MATHEMATICAL BOLD SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d429: MATHEMATICAL BOLD SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42a: MATHEMATICAL BOLD SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42b: MATHEMATICAL BOLD SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42c: MATHEMATICAL BOLD SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42d: MATHEMATICAL BOLD SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42e: MATHEMATICAL BOLD SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d42f: MATHEMATICAL BOLD SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d430: MATHEMATICAL BOLD SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d431: MATHEMATICAL BOLD SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d432: MATHEMATICAL BOLD SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d433: MATHEMATICAL BOLD SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d434: MATHEMATICAL ITALIC CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d435: MATHEMATICAL ITALIC CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d436: MATHEMATICAL ITALIC CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d437: MATHEMATICAL ITALIC CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d438: MATHEMATICAL ITALIC CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d439: MATHEMATICAL ITALIC CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43a: MATHEMATICAL ITALIC CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43b: MATHEMATICAL ITALIC CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43c: MATHEMATICAL ITALIC CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43d: MATHEMATICAL ITALIC CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43e: MATHEMATICAL ITALIC CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d43f: MATHEMATICAL ITALIC CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d440: MATHEMATICAL ITALIC CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d441: MATHEMATICAL ITALIC CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d442: MATHEMATICAL ITALIC CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d443: MATHEMATICAL ITALIC CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d444: MATHEMATICAL ITALIC CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d445: MATHEMATICAL ITALIC CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d446: MATHEMATICAL ITALIC CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d447: MATHEMATICAL ITALIC CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d448: MATHEMATICAL ITALIC CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d449: MATHEMATICAL ITALIC CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d44a: MATHEMATICAL ITALIC CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d44b: MATHEMATICAL ITALIC CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d44c: MATHEMATICAL ITALIC CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d44d: MATHEMATICAL ITALIC CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d44e: MATHEMATICAL ITALIC SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d44f: MATHEMATICAL ITALIC SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d450: MATHEMATICAL ITALIC SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d451: MATHEMATICAL ITALIC SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d452: MATHEMATICAL ITALIC SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d453: MATHEMATICAL ITALIC SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d454: MATHEMATICAL ITALIC SMALL G*/ + 0, /* U+01d455: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d456: MATHEMATICAL ITALIC SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d457: MATHEMATICAL ITALIC SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d458: MATHEMATICAL ITALIC SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d459: MATHEMATICAL ITALIC SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45a: MATHEMATICAL ITALIC SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45b: MATHEMATICAL ITALIC SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45c: MATHEMATICAL ITALIC SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45d: MATHEMATICAL ITALIC SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45e: MATHEMATICAL ITALIC SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d45f: MATHEMATICAL ITALIC SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d460: MATHEMATICAL ITALIC SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d461: MATHEMATICAL ITALIC SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d462: MATHEMATICAL ITALIC SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d463: MATHEMATICAL ITALIC SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d464: MATHEMATICAL ITALIC SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d465: MATHEMATICAL ITALIC SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d466: MATHEMATICAL ITALIC SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d467: MATHEMATICAL ITALIC SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d468: MATHEMATICAL BOLD ITALIC CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d469: MATHEMATICAL BOLD ITALIC CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46a: MATHEMATICAL BOLD ITALIC CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46b: MATHEMATICAL BOLD ITALIC CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46c: MATHEMATICAL BOLD ITALIC CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46d: MATHEMATICAL BOLD ITALIC CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46e: MATHEMATICAL BOLD ITALIC CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d46f: MATHEMATICAL BOLD ITALIC CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d470: MATHEMATICAL BOLD ITALIC CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d471: MATHEMATICAL BOLD ITALIC CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d472: MATHEMATICAL BOLD ITALIC CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d473: MATHEMATICAL BOLD ITALIC CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d474: MATHEMATICAL BOLD ITALIC CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d475: MATHEMATICAL BOLD ITALIC CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d476: MATHEMATICAL BOLD ITALIC CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d477: MATHEMATICAL BOLD ITALIC CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d478: MATHEMATICAL BOLD ITALIC CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d479: MATHEMATICAL BOLD ITALIC CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47a: MATHEMATICAL BOLD ITALIC CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47b: MATHEMATICAL BOLD ITALIC CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47c: MATHEMATICAL BOLD ITALIC CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47d: MATHEMATICAL BOLD ITALIC CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47e: MATHEMATICAL BOLD ITALIC CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d47f: MATHEMATICAL BOLD ITALIC CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d480: MATHEMATICAL BOLD ITALIC CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d481: MATHEMATICAL BOLD ITALIC CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d482: MATHEMATICAL BOLD ITALIC SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d483: MATHEMATICAL BOLD ITALIC SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d484: MATHEMATICAL BOLD ITALIC SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d485: MATHEMATICAL BOLD ITALIC SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d486: MATHEMATICAL BOLD ITALIC SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d487: MATHEMATICAL BOLD ITALIC SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d488: MATHEMATICAL BOLD ITALIC SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d489: MATHEMATICAL BOLD ITALIC SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48a: MATHEMATICAL BOLD ITALIC SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48b: MATHEMATICAL BOLD ITALIC SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48c: MATHEMATICAL BOLD ITALIC SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48d: MATHEMATICAL BOLD ITALIC SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48e: MATHEMATICAL BOLD ITALIC SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d48f: MATHEMATICAL BOLD ITALIC SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d490: MATHEMATICAL BOLD ITALIC SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d491: MATHEMATICAL BOLD ITALIC SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d492: MATHEMATICAL BOLD ITALIC SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d493: MATHEMATICAL BOLD ITALIC SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d494: MATHEMATICAL BOLD ITALIC SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d495: MATHEMATICAL BOLD ITALIC SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d496: MATHEMATICAL BOLD ITALIC SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d497: MATHEMATICAL BOLD ITALIC SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d498: MATHEMATICAL BOLD ITALIC SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d499: MATHEMATICAL BOLD ITALIC SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d49a: MATHEMATICAL BOLD ITALIC SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d49b: MATHEMATICAL BOLD ITALIC SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d49c: MATHEMATICAL SCRIPT CAPITAL A*/ + 0, /* U+01d49d: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d49e: MATHEMATICAL SCRIPT CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d49f: MATHEMATICAL SCRIPT CAPITAL D*/ + 0, /* U+01d4a0: */ + 0, /* U+01d4a1: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4a2: MATHEMATICAL SCRIPT CAPITAL G*/ + 0, /* U+01d4a3: */ + 0, /* U+01d4a4: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4a5: MATHEMATICAL SCRIPT CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4a6: MATHEMATICAL SCRIPT CAPITAL K*/ + 0, /* U+01d4a7: */ + 0, /* U+01d4a8: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4a9: MATHEMATICAL SCRIPT CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4aa: MATHEMATICAL SCRIPT CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4ab: MATHEMATICAL SCRIPT CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4ac: MATHEMATICAL SCRIPT CAPITAL Q*/ + 0, /* U+01d4ad: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4ae: MATHEMATICAL SCRIPT CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4af: MATHEMATICAL SCRIPT CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b0: MATHEMATICAL SCRIPT CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b1: MATHEMATICAL SCRIPT CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b2: MATHEMATICAL SCRIPT CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b3: MATHEMATICAL SCRIPT CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b4: MATHEMATICAL SCRIPT CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4b5: MATHEMATICAL SCRIPT CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4b6: MATHEMATICAL SCRIPT SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4b7: MATHEMATICAL SCRIPT SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4b8: MATHEMATICAL SCRIPT SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4b9: MATHEMATICAL SCRIPT SMALL D*/ + 0, /* U+01d4ba: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4bb: MATHEMATICAL SCRIPT SMALL F*/ + 0, /* U+01d4bc: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4bd: MATHEMATICAL SCRIPT SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4be: MATHEMATICAL SCRIPT SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4bf: MATHEMATICAL SCRIPT SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c0: MATHEMATICAL SCRIPT SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c1: MATHEMATICAL SCRIPT SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c2: MATHEMATICAL SCRIPT SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c3: MATHEMATICAL SCRIPT SMALL N*/ + 0, /* U+01d4c4: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c5: MATHEMATICAL SCRIPT SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c6: MATHEMATICAL SCRIPT SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c7: MATHEMATICAL SCRIPT SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c8: MATHEMATICAL SCRIPT SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4c9: MATHEMATICAL SCRIPT SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ca: MATHEMATICAL SCRIPT SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4cb: MATHEMATICAL SCRIPT SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4cc: MATHEMATICAL SCRIPT SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4cd: MATHEMATICAL SCRIPT SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ce: MATHEMATICAL SCRIPT SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4cf: MATHEMATICAL SCRIPT SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d0: MATHEMATICAL BOLD SCRIPT CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d1: MATHEMATICAL BOLD SCRIPT CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d2: MATHEMATICAL BOLD SCRIPT CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d3: MATHEMATICAL BOLD SCRIPT CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d4: MATHEMATICAL BOLD SCRIPT CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d5: MATHEMATICAL BOLD SCRIPT CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d6: MATHEMATICAL BOLD SCRIPT CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d7: MATHEMATICAL BOLD SCRIPT CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d8: MATHEMATICAL BOLD SCRIPT CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4d9: MATHEMATICAL BOLD SCRIPT CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4da: MATHEMATICAL BOLD SCRIPT CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4db: MATHEMATICAL BOLD SCRIPT CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4dc: MATHEMATICAL BOLD SCRIPT CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4dd: MATHEMATICAL BOLD SCRIPT CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4de: MATHEMATICAL BOLD SCRIPT CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4df: MATHEMATICAL BOLD SCRIPT CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e0: MATHEMATICAL BOLD SCRIPT CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e1: MATHEMATICAL BOLD SCRIPT CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e2: MATHEMATICAL BOLD SCRIPT CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e3: MATHEMATICAL BOLD SCRIPT CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e4: MATHEMATICAL BOLD SCRIPT CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e5: MATHEMATICAL BOLD SCRIPT CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e6: MATHEMATICAL BOLD SCRIPT CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e7: MATHEMATICAL BOLD SCRIPT CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e8: MATHEMATICAL BOLD SCRIPT CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d4e9: MATHEMATICAL BOLD SCRIPT CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ea: MATHEMATICAL BOLD SCRIPT SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4eb: MATHEMATICAL BOLD SCRIPT SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ec: MATHEMATICAL BOLD SCRIPT SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ed: MATHEMATICAL BOLD SCRIPT SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ee: MATHEMATICAL BOLD SCRIPT SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ef: MATHEMATICAL BOLD SCRIPT SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f0: MATHEMATICAL BOLD SCRIPT SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f1: MATHEMATICAL BOLD SCRIPT SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f2: MATHEMATICAL BOLD SCRIPT SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f3: MATHEMATICAL BOLD SCRIPT SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f4: MATHEMATICAL BOLD SCRIPT SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f5: MATHEMATICAL BOLD SCRIPT SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f6: MATHEMATICAL BOLD SCRIPT SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f7: MATHEMATICAL BOLD SCRIPT SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f8: MATHEMATICAL BOLD SCRIPT SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4f9: MATHEMATICAL BOLD SCRIPT SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4fa: MATHEMATICAL BOLD SCRIPT SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4fb: MATHEMATICAL BOLD SCRIPT SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4fc: MATHEMATICAL BOLD SCRIPT SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4fd: MATHEMATICAL BOLD SCRIPT SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4fe: MATHEMATICAL BOLD SCRIPT SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d4ff: MATHEMATICAL BOLD SCRIPT SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d500: MATHEMATICAL BOLD SCRIPT SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d501: MATHEMATICAL BOLD SCRIPT SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d502: MATHEMATICAL BOLD SCRIPT SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d503: MATHEMATICAL BOLD SCRIPT SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d504: MATHEMATICAL FRAKTUR CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d505: MATHEMATICAL FRAKTUR CAPITAL B*/ + 0, /* U+01d506: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d507: MATHEMATICAL FRAKTUR CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d508: MATHEMATICAL FRAKTUR CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d509: MATHEMATICAL FRAKTUR CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d50a: MATHEMATICAL FRAKTUR CAPITAL G*/ + 0, /* U+01d50b: */ + 0, /* U+01d50c: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d50d: MATHEMATICAL FRAKTUR CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d50e: MATHEMATICAL FRAKTUR CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d50f: MATHEMATICAL FRAKTUR CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d510: MATHEMATICAL FRAKTUR CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d511: MATHEMATICAL FRAKTUR CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d512: MATHEMATICAL FRAKTUR CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d513: MATHEMATICAL FRAKTUR CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d514: MATHEMATICAL FRAKTUR CAPITAL Q*/ + 0, /* U+01d515: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d516: MATHEMATICAL FRAKTUR CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d517: MATHEMATICAL FRAKTUR CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d518: MATHEMATICAL FRAKTUR CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d519: MATHEMATICAL FRAKTUR CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d51a: MATHEMATICAL FRAKTUR CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d51b: MATHEMATICAL FRAKTUR CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d51c: MATHEMATICAL FRAKTUR CAPITAL Y*/ + 0, /* U+01d51d: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d51e: MATHEMATICAL FRAKTUR SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d51f: MATHEMATICAL FRAKTUR SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d520: MATHEMATICAL FRAKTUR SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d521: MATHEMATICAL FRAKTUR SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d522: MATHEMATICAL FRAKTUR SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d523: MATHEMATICAL FRAKTUR SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d524: MATHEMATICAL FRAKTUR SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d525: MATHEMATICAL FRAKTUR SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d526: MATHEMATICAL FRAKTUR SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d527: MATHEMATICAL FRAKTUR SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d528: MATHEMATICAL FRAKTUR SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d529: MATHEMATICAL FRAKTUR SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52a: MATHEMATICAL FRAKTUR SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52b: MATHEMATICAL FRAKTUR SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52c: MATHEMATICAL FRAKTUR SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52d: MATHEMATICAL FRAKTUR SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52e: MATHEMATICAL FRAKTUR SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d52f: MATHEMATICAL FRAKTUR SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d530: MATHEMATICAL FRAKTUR SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d531: MATHEMATICAL FRAKTUR SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d532: MATHEMATICAL FRAKTUR SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d533: MATHEMATICAL FRAKTUR SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d534: MATHEMATICAL FRAKTUR SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d535: MATHEMATICAL FRAKTUR SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d536: MATHEMATICAL FRAKTUR SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d537: MATHEMATICAL FRAKTUR SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d538: MATHEMATICAL DOUBLE-STRUCK CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d539: MATHEMATICAL DOUBLE-STRUCK CAPITAL B*/ + 0, /* U+01d53a: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d53b: MATHEMATICAL DOUBLE-STRUCK CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d53c: MATHEMATICAL DOUBLE-STRUCK CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d53d: MATHEMATICAL DOUBLE-STRUCK CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d53e: MATHEMATICAL DOUBLE-STRUCK CAPITAL G*/ + 0, /* U+01d53f: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d540: MATHEMATICAL DOUBLE-STRUCK CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d541: MATHEMATICAL DOUBLE-STRUCK CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d542: MATHEMATICAL DOUBLE-STRUCK CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d543: MATHEMATICAL DOUBLE-STRUCK CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d544: MATHEMATICAL DOUBLE-STRUCK CAPITAL M*/ + 0, /* U+01d545: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d546: MATHEMATICAL DOUBLE-STRUCK CAPITAL O*/ + 0, /* U+01d547: */ + 0, /* U+01d548: */ + 0, /* U+01d549: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54a: MATHEMATICAL DOUBLE-STRUCK CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54b: MATHEMATICAL DOUBLE-STRUCK CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54c: MATHEMATICAL DOUBLE-STRUCK CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54d: MATHEMATICAL DOUBLE-STRUCK CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54e: MATHEMATICAL DOUBLE-STRUCK CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d54f: MATHEMATICAL DOUBLE-STRUCK CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d550: MATHEMATICAL DOUBLE-STRUCK CAPITAL Y*/ + 0, /* U+01d551: */ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d552: MATHEMATICAL DOUBLE-STRUCK SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d553: MATHEMATICAL DOUBLE-STRUCK SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d554: MATHEMATICAL DOUBLE-STRUCK SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d555: MATHEMATICAL DOUBLE-STRUCK SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d556: MATHEMATICAL DOUBLE-STRUCK SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d557: MATHEMATICAL DOUBLE-STRUCK SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d558: MATHEMATICAL DOUBLE-STRUCK SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d559: MATHEMATICAL DOUBLE-STRUCK SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55a: MATHEMATICAL DOUBLE-STRUCK SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55b: MATHEMATICAL DOUBLE-STRUCK SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55c: MATHEMATICAL DOUBLE-STRUCK SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55d: MATHEMATICAL DOUBLE-STRUCK SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55e: MATHEMATICAL DOUBLE-STRUCK SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d55f: MATHEMATICAL DOUBLE-STRUCK SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d560: MATHEMATICAL DOUBLE-STRUCK SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d561: MATHEMATICAL DOUBLE-STRUCK SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d562: MATHEMATICAL DOUBLE-STRUCK SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d563: MATHEMATICAL DOUBLE-STRUCK SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d564: MATHEMATICAL DOUBLE-STRUCK SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d565: MATHEMATICAL DOUBLE-STRUCK SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d566: MATHEMATICAL DOUBLE-STRUCK SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d567: MATHEMATICAL DOUBLE-STRUCK SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d568: MATHEMATICAL DOUBLE-STRUCK SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d569: MATHEMATICAL DOUBLE-STRUCK SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d56a: MATHEMATICAL DOUBLE-STRUCK SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d56b: MATHEMATICAL DOUBLE-STRUCK SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d56c: MATHEMATICAL BOLD FRAKTUR CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d56d: MATHEMATICAL BOLD FRAKTUR CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d56e: MATHEMATICAL BOLD FRAKTUR CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d56f: MATHEMATICAL BOLD FRAKTUR CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d570: MATHEMATICAL BOLD FRAKTUR CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d571: MATHEMATICAL BOLD FRAKTUR CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d572: MATHEMATICAL BOLD FRAKTUR CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d573: MATHEMATICAL BOLD FRAKTUR CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d574: MATHEMATICAL BOLD FRAKTUR CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d575: MATHEMATICAL BOLD FRAKTUR CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d576: MATHEMATICAL BOLD FRAKTUR CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d577: MATHEMATICAL BOLD FRAKTUR CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d578: MATHEMATICAL BOLD FRAKTUR CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d579: MATHEMATICAL BOLD FRAKTUR CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57a: MATHEMATICAL BOLD FRAKTUR CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57b: MATHEMATICAL BOLD FRAKTUR CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57c: MATHEMATICAL BOLD FRAKTUR CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57d: MATHEMATICAL BOLD FRAKTUR CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57e: MATHEMATICAL BOLD FRAKTUR CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d57f: MATHEMATICAL BOLD FRAKTUR CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d580: MATHEMATICAL BOLD FRAKTUR CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d581: MATHEMATICAL BOLD FRAKTUR CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d582: MATHEMATICAL BOLD FRAKTUR CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d583: MATHEMATICAL BOLD FRAKTUR CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d584: MATHEMATICAL BOLD FRAKTUR CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d585: MATHEMATICAL BOLD FRAKTUR CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d586: MATHEMATICAL BOLD FRAKTUR SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d587: MATHEMATICAL BOLD FRAKTUR SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d588: MATHEMATICAL BOLD FRAKTUR SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d589: MATHEMATICAL BOLD FRAKTUR SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58a: MATHEMATICAL BOLD FRAKTUR SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58b: MATHEMATICAL BOLD FRAKTUR SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58c: MATHEMATICAL BOLD FRAKTUR SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58d: MATHEMATICAL BOLD FRAKTUR SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58e: MATHEMATICAL BOLD FRAKTUR SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d58f: MATHEMATICAL BOLD FRAKTUR SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d590: MATHEMATICAL BOLD FRAKTUR SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d591: MATHEMATICAL BOLD FRAKTUR SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d592: MATHEMATICAL BOLD FRAKTUR SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d593: MATHEMATICAL BOLD FRAKTUR SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d594: MATHEMATICAL BOLD FRAKTUR SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d595: MATHEMATICAL BOLD FRAKTUR SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d596: MATHEMATICAL BOLD FRAKTUR SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d597: MATHEMATICAL BOLD FRAKTUR SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d598: MATHEMATICAL BOLD FRAKTUR SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d599: MATHEMATICAL BOLD FRAKTUR SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59a: MATHEMATICAL BOLD FRAKTUR SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59b: MATHEMATICAL BOLD FRAKTUR SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59c: MATHEMATICAL BOLD FRAKTUR SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59d: MATHEMATICAL BOLD FRAKTUR SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59e: MATHEMATICAL BOLD FRAKTUR SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d59f: MATHEMATICAL BOLD FRAKTUR SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a0: MATHEMATICAL SANS-SERIF CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a1: MATHEMATICAL SANS-SERIF CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a2: MATHEMATICAL SANS-SERIF CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a3: MATHEMATICAL SANS-SERIF CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a4: MATHEMATICAL SANS-SERIF CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a5: MATHEMATICAL SANS-SERIF CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a6: MATHEMATICAL SANS-SERIF CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a7: MATHEMATICAL SANS-SERIF CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a8: MATHEMATICAL SANS-SERIF CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5a9: MATHEMATICAL SANS-SERIF CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5aa: MATHEMATICAL SANS-SERIF CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ab: MATHEMATICAL SANS-SERIF CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ac: MATHEMATICAL SANS-SERIF CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ad: MATHEMATICAL SANS-SERIF CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ae: MATHEMATICAL SANS-SERIF CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5af: MATHEMATICAL SANS-SERIF CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b0: MATHEMATICAL SANS-SERIF CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b1: MATHEMATICAL SANS-SERIF CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b2: MATHEMATICAL SANS-SERIF CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b3: MATHEMATICAL SANS-SERIF CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b4: MATHEMATICAL SANS-SERIF CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b5: MATHEMATICAL SANS-SERIF CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b6: MATHEMATICAL SANS-SERIF CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b7: MATHEMATICAL SANS-SERIF CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b8: MATHEMATICAL SANS-SERIF CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5b9: MATHEMATICAL SANS-SERIF CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ba: MATHEMATICAL SANS-SERIF SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5bb: MATHEMATICAL SANS-SERIF SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5bc: MATHEMATICAL SANS-SERIF SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5bd: MATHEMATICAL SANS-SERIF SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5be: MATHEMATICAL SANS-SERIF SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5bf: MATHEMATICAL SANS-SERIF SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c0: MATHEMATICAL SANS-SERIF SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c1: MATHEMATICAL SANS-SERIF SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c2: MATHEMATICAL SANS-SERIF SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c3: MATHEMATICAL SANS-SERIF SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c4: MATHEMATICAL SANS-SERIF SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c5: MATHEMATICAL SANS-SERIF SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c6: MATHEMATICAL SANS-SERIF SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c7: MATHEMATICAL SANS-SERIF SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c8: MATHEMATICAL SANS-SERIF SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5c9: MATHEMATICAL SANS-SERIF SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ca: MATHEMATICAL SANS-SERIF SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5cb: MATHEMATICAL SANS-SERIF SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5cc: MATHEMATICAL SANS-SERIF SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5cd: MATHEMATICAL SANS-SERIF SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ce: MATHEMATICAL SANS-SERIF SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5cf: MATHEMATICAL SANS-SERIF SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5d0: MATHEMATICAL SANS-SERIF SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5d1: MATHEMATICAL SANS-SERIF SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5d2: MATHEMATICAL SANS-SERIF SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5d3: MATHEMATICAL SANS-SERIF SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d4: MATHEMATICAL SANS-SERIF BOLD CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d5: MATHEMATICAL SANS-SERIF BOLD CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d6: MATHEMATICAL SANS-SERIF BOLD CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d7: MATHEMATICAL SANS-SERIF BOLD CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d8: MATHEMATICAL SANS-SERIF BOLD CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5d9: MATHEMATICAL SANS-SERIF BOLD CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5da: MATHEMATICAL SANS-SERIF BOLD CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5db: MATHEMATICAL SANS-SERIF BOLD CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5dc: MATHEMATICAL SANS-SERIF BOLD CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5dd: MATHEMATICAL SANS-SERIF BOLD CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5de: MATHEMATICAL SANS-SERIF BOLD CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5df: MATHEMATICAL SANS-SERIF BOLD CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e0: MATHEMATICAL SANS-SERIF BOLD CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e1: MATHEMATICAL SANS-SERIF BOLD CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e2: MATHEMATICAL SANS-SERIF BOLD CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e3: MATHEMATICAL SANS-SERIF BOLD CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e4: MATHEMATICAL SANS-SERIF BOLD CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e5: MATHEMATICAL SANS-SERIF BOLD CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e6: MATHEMATICAL SANS-SERIF BOLD CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e7: MATHEMATICAL SANS-SERIF BOLD CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e8: MATHEMATICAL SANS-SERIF BOLD CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5e9: MATHEMATICAL SANS-SERIF BOLD CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ea: MATHEMATICAL SANS-SERIF BOLD CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5eb: MATHEMATICAL SANS-SERIF BOLD CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ec: MATHEMATICAL SANS-SERIF BOLD CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d5ed: MATHEMATICAL SANS-SERIF BOLD CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ee: MATHEMATICAL SANS-SERIF BOLD SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ef: MATHEMATICAL SANS-SERIF BOLD SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f0: MATHEMATICAL SANS-SERIF BOLD SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f1: MATHEMATICAL SANS-SERIF BOLD SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f2: MATHEMATICAL SANS-SERIF BOLD SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f3: MATHEMATICAL SANS-SERIF BOLD SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f4: MATHEMATICAL SANS-SERIF BOLD SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f5: MATHEMATICAL SANS-SERIF BOLD SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f6: MATHEMATICAL SANS-SERIF BOLD SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f7: MATHEMATICAL SANS-SERIF BOLD SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f8: MATHEMATICAL SANS-SERIF BOLD SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5f9: MATHEMATICAL SANS-SERIF BOLD SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5fa: MATHEMATICAL SANS-SERIF BOLD SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5fb: MATHEMATICAL SANS-SERIF BOLD SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5fc: MATHEMATICAL SANS-SERIF BOLD SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5fd: MATHEMATICAL SANS-SERIF BOLD SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5fe: MATHEMATICAL SANS-SERIF BOLD SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d5ff: MATHEMATICAL SANS-SERIF BOLD SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d600: MATHEMATICAL SANS-SERIF BOLD SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d601: MATHEMATICAL SANS-SERIF BOLD SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d602: MATHEMATICAL SANS-SERIF BOLD SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d603: MATHEMATICAL SANS-SERIF BOLD SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d604: MATHEMATICAL SANS-SERIF BOLD SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d605: MATHEMATICAL SANS-SERIF BOLD SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d606: MATHEMATICAL SANS-SERIF BOLD SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d607: MATHEMATICAL SANS-SERIF BOLD SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d608: MATHEMATICAL SANS-SERIF ITALIC CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d609: MATHEMATICAL SANS-SERIF ITALIC CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60a: MATHEMATICAL SANS-SERIF ITALIC CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60b: MATHEMATICAL SANS-SERIF ITALIC CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60c: MATHEMATICAL SANS-SERIF ITALIC CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60d: MATHEMATICAL SANS-SERIF ITALIC CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60e: MATHEMATICAL SANS-SERIF ITALIC CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d60f: MATHEMATICAL SANS-SERIF ITALIC CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d610: MATHEMATICAL SANS-SERIF ITALIC CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d611: MATHEMATICAL SANS-SERIF ITALIC CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d612: MATHEMATICAL SANS-SERIF ITALIC CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d613: MATHEMATICAL SANS-SERIF ITALIC CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d614: MATHEMATICAL SANS-SERIF ITALIC CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d615: MATHEMATICAL SANS-SERIF ITALIC CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d616: MATHEMATICAL SANS-SERIF ITALIC CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d617: MATHEMATICAL SANS-SERIF ITALIC CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d618: MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d619: MATHEMATICAL SANS-SERIF ITALIC CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61a: MATHEMATICAL SANS-SERIF ITALIC CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61b: MATHEMATICAL SANS-SERIF ITALIC CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61c: MATHEMATICAL SANS-SERIF ITALIC CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61d: MATHEMATICAL SANS-SERIF ITALIC CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61e: MATHEMATICAL SANS-SERIF ITALIC CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d61f: MATHEMATICAL SANS-SERIF ITALIC CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d620: MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d621: MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d622: MATHEMATICAL SANS-SERIF ITALIC SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d623: MATHEMATICAL SANS-SERIF ITALIC SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d624: MATHEMATICAL SANS-SERIF ITALIC SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d625: MATHEMATICAL SANS-SERIF ITALIC SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d626: MATHEMATICAL SANS-SERIF ITALIC SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d627: MATHEMATICAL SANS-SERIF ITALIC SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d628: MATHEMATICAL SANS-SERIF ITALIC SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d629: MATHEMATICAL SANS-SERIF ITALIC SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62a: MATHEMATICAL SANS-SERIF ITALIC SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62b: MATHEMATICAL SANS-SERIF ITALIC SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62c: MATHEMATICAL SANS-SERIF ITALIC SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62d: MATHEMATICAL SANS-SERIF ITALIC SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62e: MATHEMATICAL SANS-SERIF ITALIC SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d62f: MATHEMATICAL SANS-SERIF ITALIC SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d630: MATHEMATICAL SANS-SERIF ITALIC SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d631: MATHEMATICAL SANS-SERIF ITALIC SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d632: MATHEMATICAL SANS-SERIF ITALIC SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d633: MATHEMATICAL SANS-SERIF ITALIC SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d634: MATHEMATICAL SANS-SERIF ITALIC SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d635: MATHEMATICAL SANS-SERIF ITALIC SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d636: MATHEMATICAL SANS-SERIF ITALIC SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d637: MATHEMATICAL SANS-SERIF ITALIC SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d638: MATHEMATICAL SANS-SERIF ITALIC SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d639: MATHEMATICAL SANS-SERIF ITALIC SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d63a: MATHEMATICAL SANS-SERIF ITALIC SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d63b: MATHEMATICAL SANS-SERIF ITALIC SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d63c: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d63d: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d63e: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d63f: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d640: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d641: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d642: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d643: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d644: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d645: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d646: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d647: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d648: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d649: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64a: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64b: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64c: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64d: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64e: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d64f: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d650: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d651: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d652: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d653: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d654: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d655: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d656: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d657: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d658: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d659: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65a: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65b: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65c: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65d: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65e: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d65f: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d660: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d661: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d662: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d663: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d664: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d665: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d666: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d667: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d668: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d669: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66a: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66b: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66c: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66d: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66e: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d66f: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d670: MATHEMATICAL MONOSPACE CAPITAL A*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d671: MATHEMATICAL MONOSPACE CAPITAL B*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d672: MATHEMATICAL MONOSPACE CAPITAL C*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d673: MATHEMATICAL MONOSPACE CAPITAL D*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d674: MATHEMATICAL MONOSPACE CAPITAL E*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d675: MATHEMATICAL MONOSPACE CAPITAL F*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d676: MATHEMATICAL MONOSPACE CAPITAL G*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d677: MATHEMATICAL MONOSPACE CAPITAL H*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d678: MATHEMATICAL MONOSPACE CAPITAL I*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d679: MATHEMATICAL MONOSPACE CAPITAL J*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67a: MATHEMATICAL MONOSPACE CAPITAL K*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67b: MATHEMATICAL MONOSPACE CAPITAL L*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67c: MATHEMATICAL MONOSPACE CAPITAL M*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67d: MATHEMATICAL MONOSPACE CAPITAL N*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67e: MATHEMATICAL MONOSPACE CAPITAL O*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d67f: MATHEMATICAL MONOSPACE CAPITAL P*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d680: MATHEMATICAL MONOSPACE CAPITAL Q*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d681: MATHEMATICAL MONOSPACE CAPITAL R*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d682: MATHEMATICAL MONOSPACE CAPITAL S*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d683: MATHEMATICAL MONOSPACE CAPITAL T*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d684: MATHEMATICAL MONOSPACE CAPITAL U*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d685: MATHEMATICAL MONOSPACE CAPITAL V*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d686: MATHEMATICAL MONOSPACE CAPITAL W*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d687: MATHEMATICAL MONOSPACE CAPITAL X*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d688: MATHEMATICAL MONOSPACE CAPITAL Y*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d689: MATHEMATICAL MONOSPACE CAPITAL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68a: MATHEMATICAL MONOSPACE SMALL A*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68b: MATHEMATICAL MONOSPACE SMALL B*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68c: MATHEMATICAL MONOSPACE SMALL C*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68d: MATHEMATICAL MONOSPACE SMALL D*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68e: MATHEMATICAL MONOSPACE SMALL E*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d68f: MATHEMATICAL MONOSPACE SMALL F*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d690: MATHEMATICAL MONOSPACE SMALL G*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d691: MATHEMATICAL MONOSPACE SMALL H*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d692: MATHEMATICAL MONOSPACE SMALL I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d693: MATHEMATICAL MONOSPACE SMALL J*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d694: MATHEMATICAL MONOSPACE SMALL K*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d695: MATHEMATICAL MONOSPACE SMALL L*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d696: MATHEMATICAL MONOSPACE SMALL M*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d697: MATHEMATICAL MONOSPACE SMALL N*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d698: MATHEMATICAL MONOSPACE SMALL O*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d699: MATHEMATICAL MONOSPACE SMALL P*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69a: MATHEMATICAL MONOSPACE SMALL Q*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69b: MATHEMATICAL MONOSPACE SMALL R*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69c: MATHEMATICAL MONOSPACE SMALL S*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69d: MATHEMATICAL MONOSPACE SMALL T*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69e: MATHEMATICAL MONOSPACE SMALL U*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d69f: MATHEMATICAL MONOSPACE SMALL V*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a0: MATHEMATICAL MONOSPACE SMALL W*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a1: MATHEMATICAL MONOSPACE SMALL X*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a2: MATHEMATICAL MONOSPACE SMALL Y*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a3: MATHEMATICAL MONOSPACE SMALL Z*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a4: MATHEMATICAL ITALIC SMALL DOTLESS I*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6a5: MATHEMATICAL ITALIC SMALL DOTLESS J*/ + 0, /* U+01d6a6: */ + 0, /* U+01d6a7: */ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6a8: MATHEMATICAL BOLD CAPITAL ALPHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6a9: MATHEMATICAL BOLD CAPITAL BETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6aa: MATHEMATICAL BOLD CAPITAL GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ab: MATHEMATICAL BOLD CAPITAL DELTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ac: MATHEMATICAL BOLD CAPITAL EPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ad: MATHEMATICAL BOLD CAPITAL ZETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ae: MATHEMATICAL BOLD CAPITAL ETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6af: MATHEMATICAL BOLD CAPITAL THETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b0: MATHEMATICAL BOLD CAPITAL IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b1: MATHEMATICAL BOLD CAPITAL KAPPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b2: MATHEMATICAL BOLD CAPITAL LAMDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b3: MATHEMATICAL BOLD CAPITAL MU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b4: MATHEMATICAL BOLD CAPITAL NU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b5: MATHEMATICAL BOLD CAPITAL XI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b6: MATHEMATICAL BOLD CAPITAL OMICRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b7: MATHEMATICAL BOLD CAPITAL PI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b8: MATHEMATICAL BOLD CAPITAL RHO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6b9: MATHEMATICAL BOLD CAPITAL THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ba: MATHEMATICAL BOLD CAPITAL SIGMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6bb: MATHEMATICAL BOLD CAPITAL TAU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6bc: MATHEMATICAL BOLD CAPITAL UPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6bd: MATHEMATICAL BOLD CAPITAL PHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6be: MATHEMATICAL BOLD CAPITAL CHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6bf: MATHEMATICAL BOLD CAPITAL PSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6c0: MATHEMATICAL BOLD CAPITAL OMEGA*/ + 0, /* U+01d6c1: MATHEMATICAL BOLD NABLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c2: MATHEMATICAL BOLD SMALL ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c3: MATHEMATICAL BOLD SMALL BETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c4: MATHEMATICAL BOLD SMALL GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c5: MATHEMATICAL BOLD SMALL DELTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c6: MATHEMATICAL BOLD SMALL EPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c7: MATHEMATICAL BOLD SMALL ZETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c8: MATHEMATICAL BOLD SMALL ETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6c9: MATHEMATICAL BOLD SMALL THETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6ca: MATHEMATICAL BOLD SMALL IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6cb: MATHEMATICAL BOLD SMALL KAPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6cc: MATHEMATICAL BOLD SMALL LAMDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6cd: MATHEMATICAL BOLD SMALL MU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6ce: MATHEMATICAL BOLD SMALL NU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6cf: MATHEMATICAL BOLD SMALL XI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d0: MATHEMATICAL BOLD SMALL OMICRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d1: MATHEMATICAL BOLD SMALL PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d2: MATHEMATICAL BOLD SMALL RHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d3: MATHEMATICAL BOLD SMALL FINAL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d4: MATHEMATICAL BOLD SMALL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d5: MATHEMATICAL BOLD SMALL TAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d6: MATHEMATICAL BOLD SMALL UPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d7: MATHEMATICAL BOLD SMALL PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d8: MATHEMATICAL BOLD SMALL CHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6d9: MATHEMATICAL BOLD SMALL PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6da: MATHEMATICAL BOLD SMALL OMEGA*/ + 0, /* U+01d6db: MATHEMATICAL BOLD PARTIAL DIFFERENTIAL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6dc: MATHEMATICAL BOLD EPSILON SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6dd: MATHEMATICAL BOLD THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6de: MATHEMATICAL BOLD KAPPA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6df: MATHEMATICAL BOLD PHI SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6e0: MATHEMATICAL BOLD RHO SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6e1: MATHEMATICAL BOLD PI SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e2: MATHEMATICAL ITALIC CAPITAL ALPHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e3: MATHEMATICAL ITALIC CAPITAL BETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e4: MATHEMATICAL ITALIC CAPITAL GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e5: MATHEMATICAL ITALIC CAPITAL DELTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e6: MATHEMATICAL ITALIC CAPITAL EPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e7: MATHEMATICAL ITALIC CAPITAL ZETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e8: MATHEMATICAL ITALIC CAPITAL ETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6e9: MATHEMATICAL ITALIC CAPITAL THETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ea: MATHEMATICAL ITALIC CAPITAL IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6eb: MATHEMATICAL ITALIC CAPITAL KAPPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ec: MATHEMATICAL ITALIC CAPITAL LAMDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ed: MATHEMATICAL ITALIC CAPITAL MU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ee: MATHEMATICAL ITALIC CAPITAL NU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6ef: MATHEMATICAL ITALIC CAPITAL XI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f0: MATHEMATICAL ITALIC CAPITAL OMICRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f1: MATHEMATICAL ITALIC CAPITAL PI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f2: MATHEMATICAL ITALIC CAPITAL RHO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f3: MATHEMATICAL ITALIC CAPITAL THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f4: MATHEMATICAL ITALIC CAPITAL SIGMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f5: MATHEMATICAL ITALIC CAPITAL TAU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f6: MATHEMATICAL ITALIC CAPITAL UPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f7: MATHEMATICAL ITALIC CAPITAL PHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f8: MATHEMATICAL ITALIC CAPITAL CHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6f9: MATHEMATICAL ITALIC CAPITAL PSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d6fa: MATHEMATICAL ITALIC CAPITAL OMEGA*/ + 0, /* U+01d6fb: MATHEMATICAL ITALIC NABLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6fc: MATHEMATICAL ITALIC SMALL ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6fd: MATHEMATICAL ITALIC SMALL BETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6fe: MATHEMATICAL ITALIC SMALL GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d6ff: MATHEMATICAL ITALIC SMALL DELTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d700: MATHEMATICAL ITALIC SMALL EPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d701: MATHEMATICAL ITALIC SMALL ZETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d702: MATHEMATICAL ITALIC SMALL ETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d703: MATHEMATICAL ITALIC SMALL THETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d704: MATHEMATICAL ITALIC SMALL IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d705: MATHEMATICAL ITALIC SMALL KAPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d706: MATHEMATICAL ITALIC SMALL LAMDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d707: MATHEMATICAL ITALIC SMALL MU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d708: MATHEMATICAL ITALIC SMALL NU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d709: MATHEMATICAL ITALIC SMALL XI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70a: MATHEMATICAL ITALIC SMALL OMICRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70b: MATHEMATICAL ITALIC SMALL PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70c: MATHEMATICAL ITALIC SMALL RHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70d: MATHEMATICAL ITALIC SMALL FINAL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70e: MATHEMATICAL ITALIC SMALL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d70f: MATHEMATICAL ITALIC SMALL TAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d710: MATHEMATICAL ITALIC SMALL UPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d711: MATHEMATICAL ITALIC SMALL PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d712: MATHEMATICAL ITALIC SMALL CHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d713: MATHEMATICAL ITALIC SMALL PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d714: MATHEMATICAL ITALIC SMALL OMEGA*/ + 0, /* U+01d715: MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d716: MATHEMATICAL ITALIC EPSILON SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d717: MATHEMATICAL ITALIC THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d718: MATHEMATICAL ITALIC KAPPA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d719: MATHEMATICAL ITALIC PHI SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d71a: MATHEMATICAL ITALIC RHO SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d71b: MATHEMATICAL ITALIC PI SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d71c: MATHEMATICAL BOLD ITALIC CAPITAL ALPHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d71d: MATHEMATICAL BOLD ITALIC CAPITAL BETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d71e: MATHEMATICAL BOLD ITALIC CAPITAL GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d71f: MATHEMATICAL BOLD ITALIC CAPITAL DELTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d720: MATHEMATICAL BOLD ITALIC CAPITAL EPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d721: MATHEMATICAL BOLD ITALIC CAPITAL ZETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d722: MATHEMATICAL BOLD ITALIC CAPITAL ETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d723: MATHEMATICAL BOLD ITALIC CAPITAL THETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d724: MATHEMATICAL BOLD ITALIC CAPITAL IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d725: MATHEMATICAL BOLD ITALIC CAPITAL KAPPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d726: MATHEMATICAL BOLD ITALIC CAPITAL LAMDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d727: MATHEMATICAL BOLD ITALIC CAPITAL MU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d728: MATHEMATICAL BOLD ITALIC CAPITAL NU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d729: MATHEMATICAL BOLD ITALIC CAPITAL XI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72a: MATHEMATICAL BOLD ITALIC CAPITAL OMICRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72b: MATHEMATICAL BOLD ITALIC CAPITAL PI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72c: MATHEMATICAL BOLD ITALIC CAPITAL RHO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72d: MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72e: MATHEMATICAL BOLD ITALIC CAPITAL SIGMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d72f: MATHEMATICAL BOLD ITALIC CAPITAL TAU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d730: MATHEMATICAL BOLD ITALIC CAPITAL UPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d731: MATHEMATICAL BOLD ITALIC CAPITAL PHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d732: MATHEMATICAL BOLD ITALIC CAPITAL CHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d733: MATHEMATICAL BOLD ITALIC CAPITAL PSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d734: MATHEMATICAL BOLD ITALIC CAPITAL OMEGA*/ + 0, /* U+01d735: MATHEMATICAL BOLD ITALIC NABLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d736: MATHEMATICAL BOLD ITALIC SMALL ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d737: MATHEMATICAL BOLD ITALIC SMALL BETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d738: MATHEMATICAL BOLD ITALIC SMALL GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d739: MATHEMATICAL BOLD ITALIC SMALL DELTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73a: MATHEMATICAL BOLD ITALIC SMALL EPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73b: MATHEMATICAL BOLD ITALIC SMALL ZETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73c: MATHEMATICAL BOLD ITALIC SMALL ETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73d: MATHEMATICAL BOLD ITALIC SMALL THETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73e: MATHEMATICAL BOLD ITALIC SMALL IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d73f: MATHEMATICAL BOLD ITALIC SMALL KAPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d740: MATHEMATICAL BOLD ITALIC SMALL LAMDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d741: MATHEMATICAL BOLD ITALIC SMALL MU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d742: MATHEMATICAL BOLD ITALIC SMALL NU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d743: MATHEMATICAL BOLD ITALIC SMALL XI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d744: MATHEMATICAL BOLD ITALIC SMALL OMICRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d745: MATHEMATICAL BOLD ITALIC SMALL PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d746: MATHEMATICAL BOLD ITALIC SMALL RHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d747: MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d748: MATHEMATICAL BOLD ITALIC SMALL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d749: MATHEMATICAL BOLD ITALIC SMALL TAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d74a: MATHEMATICAL BOLD ITALIC SMALL UPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d74b: MATHEMATICAL BOLD ITALIC SMALL PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d74c: MATHEMATICAL BOLD ITALIC SMALL CHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d74d: MATHEMATICAL BOLD ITALIC SMALL PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d74e: MATHEMATICAL BOLD ITALIC SMALL OMEGA*/ + 0, /* U+01d74f: MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d750: MATHEMATICAL BOLD ITALIC EPSILON SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d751: MATHEMATICAL BOLD ITALIC THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d752: MATHEMATICAL BOLD ITALIC KAPPA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d753: MATHEMATICAL BOLD ITALIC PHI SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d754: MATHEMATICAL BOLD ITALIC RHO SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d755: MATHEMATICAL BOLD ITALIC PI SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d756: MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d757: MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d758: MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d759: MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75a: MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75b: MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75c: MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75d: MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75e: MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d75f: MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d760: MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d761: MATHEMATICAL SANS-SERIF BOLD CAPITAL MU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d762: MATHEMATICAL SANS-SERIF BOLD CAPITAL NU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d763: MATHEMATICAL SANS-SERIF BOLD CAPITAL XI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d764: MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d765: MATHEMATICAL SANS-SERIF BOLD CAPITAL PI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d766: MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d767: MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d768: MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d769: MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d76a: MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d76b: MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d76c: MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d76d: MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d76e: MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA*/ + 0, /* U+01d76f: MATHEMATICAL SANS-SERIF BOLD NABLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d770: MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d771: MATHEMATICAL SANS-SERIF BOLD SMALL BETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d772: MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d773: MATHEMATICAL SANS-SERIF BOLD SMALL DELTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d774: MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d775: MATHEMATICAL SANS-SERIF BOLD SMALL ZETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d776: MATHEMATICAL SANS-SERIF BOLD SMALL ETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d777: MATHEMATICAL SANS-SERIF BOLD SMALL THETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d778: MATHEMATICAL SANS-SERIF BOLD SMALL IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d779: MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77a: MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77b: MATHEMATICAL SANS-SERIF BOLD SMALL MU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77c: MATHEMATICAL SANS-SERIF BOLD SMALL NU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77d: MATHEMATICAL SANS-SERIF BOLD SMALL XI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77e: MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d77f: MATHEMATICAL SANS-SERIF BOLD SMALL PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d780: MATHEMATICAL SANS-SERIF BOLD SMALL RHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d781: MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d782: MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d783: MATHEMATICAL SANS-SERIF BOLD SMALL TAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d784: MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d785: MATHEMATICAL SANS-SERIF BOLD SMALL PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d786: MATHEMATICAL SANS-SERIF BOLD SMALL CHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d787: MATHEMATICAL SANS-SERIF BOLD SMALL PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d788: MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA*/ + 0, /* U+01d789: MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78a: MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78b: MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78c: MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78d: MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78e: MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d78f: MATHEMATICAL SANS-SERIF BOLD PI SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d790: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d791: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d792: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d793: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d794: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d795: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d796: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d797: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d798: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d799: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79a: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79b: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79c: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79d: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79e: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d79f: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a0: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a1: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a2: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a3: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a4: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a5: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a6: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a7: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7a8: MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA*/ + 0, /* U+01d7a9: MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7aa: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7ab: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7ac: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7ad: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7ae: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7af: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b0: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b1: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b2: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b3: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b4: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b5: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b6: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b7: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b8: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7b9: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7ba: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7bb: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7bc: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7bd: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7be: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7bf: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c0: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c1: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c2: MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA*/ + 0, /* U+01d7c3: MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c4: MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c5: MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c6: MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c7: MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c8: MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7c9: MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL*/ + RTUNI_ALPHA | RTUNI_UPPER, /* U+01d7ca: MATHEMATICAL BOLD CAPITAL DIGAMMA*/ + RTUNI_ALPHA | RTUNI_LOWER, /* U+01d7cb: MATHEMATICAL BOLD SMALL DIGAMMA*/ + 0, /* U+01d7cc: */ + 0, /* U+01d7cd: */ + RTUNI_DDIGIT, /* U+01d7ce: MATHEMATICAL BOLD DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+01d7cf: MATHEMATICAL BOLD DIGIT ONE*/ + RTUNI_DDIGIT, /* U+01d7d0: MATHEMATICAL BOLD DIGIT TWO*/ + RTUNI_DDIGIT, /* U+01d7d1: MATHEMATICAL BOLD DIGIT THREE*/ + RTUNI_DDIGIT, /* U+01d7d2: MATHEMATICAL BOLD DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+01d7d3: MATHEMATICAL BOLD DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+01d7d4: MATHEMATICAL BOLD DIGIT SIX*/ + RTUNI_DDIGIT, /* U+01d7d5: MATHEMATICAL BOLD DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+01d7d6: MATHEMATICAL BOLD DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+01d7d7: MATHEMATICAL BOLD DIGIT NINE*/ + RTUNI_DDIGIT, /* U+01d7d8: MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+01d7d9: MATHEMATICAL DOUBLE-STRUCK DIGIT ONE*/ + RTUNI_DDIGIT, /* U+01d7da: MATHEMATICAL DOUBLE-STRUCK DIGIT TWO*/ + RTUNI_DDIGIT, /* U+01d7db: MATHEMATICAL DOUBLE-STRUCK DIGIT THREE*/ + RTUNI_DDIGIT, /* U+01d7dc: MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+01d7dd: MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+01d7de: MATHEMATICAL DOUBLE-STRUCK DIGIT SIX*/ + RTUNI_DDIGIT, /* U+01d7df: MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+01d7e0: MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+01d7e1: MATHEMATICAL DOUBLE-STRUCK DIGIT NINE*/ + RTUNI_DDIGIT, /* U+01d7e2: MATHEMATICAL SANS-SERIF DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+01d7e3: MATHEMATICAL SANS-SERIF DIGIT ONE*/ + RTUNI_DDIGIT, /* U+01d7e4: MATHEMATICAL SANS-SERIF DIGIT TWO*/ + RTUNI_DDIGIT, /* U+01d7e5: MATHEMATICAL SANS-SERIF DIGIT THREE*/ + RTUNI_DDIGIT, /* U+01d7e6: MATHEMATICAL SANS-SERIF DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+01d7e7: MATHEMATICAL SANS-SERIF DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+01d7e8: MATHEMATICAL SANS-SERIF DIGIT SIX*/ + RTUNI_DDIGIT, /* U+01d7e9: MATHEMATICAL SANS-SERIF DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+01d7ea: MATHEMATICAL SANS-SERIF DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+01d7eb: MATHEMATICAL SANS-SERIF DIGIT NINE*/ + RTUNI_DDIGIT, /* U+01d7ec: MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+01d7ed: MATHEMATICAL SANS-SERIF BOLD DIGIT ONE*/ + RTUNI_DDIGIT, /* U+01d7ee: MATHEMATICAL SANS-SERIF BOLD DIGIT TWO*/ + RTUNI_DDIGIT, /* U+01d7ef: MATHEMATICAL SANS-SERIF BOLD DIGIT THREE*/ + RTUNI_DDIGIT, /* U+01d7f0: MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+01d7f1: MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+01d7f2: MATHEMATICAL SANS-SERIF BOLD DIGIT SIX*/ + RTUNI_DDIGIT, /* U+01d7f3: MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+01d7f4: MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+01d7f5: MATHEMATICAL SANS-SERIF BOLD DIGIT NINE*/ + RTUNI_DDIGIT, /* U+01d7f6: MATHEMATICAL MONOSPACE DIGIT ZERO*/ + RTUNI_DDIGIT, /* U+01d7f7: MATHEMATICAL MONOSPACE DIGIT ONE*/ + RTUNI_DDIGIT, /* U+01d7f8: MATHEMATICAL MONOSPACE DIGIT TWO*/ + RTUNI_DDIGIT, /* U+01d7f9: MATHEMATICAL MONOSPACE DIGIT THREE*/ + RTUNI_DDIGIT, /* U+01d7fa: MATHEMATICAL MONOSPACE DIGIT FOUR*/ + RTUNI_DDIGIT, /* U+01d7fb: MATHEMATICAL MONOSPACE DIGIT FIVE*/ + RTUNI_DDIGIT, /* U+01d7fc: MATHEMATICAL MONOSPACE DIGIT SIX*/ + RTUNI_DDIGIT, /* U+01d7fd: MATHEMATICAL MONOSPACE DIGIT SEVEN*/ + RTUNI_DDIGIT, /* U+01d7fe: MATHEMATICAL MONOSPACE DIGIT EIGHT*/ + RTUNI_DDIGIT, /* U+01d7ff: MATHEMATICAL MONOSPACE DIGIT NINE*/ +}; + +static const uint8_t g_afRTUniFlags0x01ee00[] = +{ + RTUNI_ALPHA, /* U+01ee00: ARABIC MATHEMATICAL ALEF*/ + RTUNI_ALPHA, /* U+01ee01: ARABIC MATHEMATICAL BEH*/ + RTUNI_ALPHA, /* U+01ee02: ARABIC MATHEMATICAL JEEM*/ + RTUNI_ALPHA, /* U+01ee03: ARABIC MATHEMATICAL DAL*/ + 0, /* U+01ee04: */ + RTUNI_ALPHA, /* U+01ee05: ARABIC MATHEMATICAL WAW*/ + RTUNI_ALPHA, /* U+01ee06: ARABIC MATHEMATICAL ZAIN*/ + RTUNI_ALPHA, /* U+01ee07: ARABIC MATHEMATICAL HAH*/ + RTUNI_ALPHA, /* U+01ee08: ARABIC MATHEMATICAL TAH*/ + RTUNI_ALPHA, /* U+01ee09: ARABIC MATHEMATICAL YEH*/ + RTUNI_ALPHA, /* U+01ee0a: ARABIC MATHEMATICAL KAF*/ + RTUNI_ALPHA, /* U+01ee0b: ARABIC MATHEMATICAL LAM*/ + RTUNI_ALPHA, /* U+01ee0c: ARABIC MATHEMATICAL MEEM*/ + RTUNI_ALPHA, /* U+01ee0d: ARABIC MATHEMATICAL NOON*/ + RTUNI_ALPHA, /* U+01ee0e: ARABIC MATHEMATICAL SEEN*/ + RTUNI_ALPHA, /* U+01ee0f: ARABIC MATHEMATICAL AIN*/ + RTUNI_ALPHA, /* U+01ee10: ARABIC MATHEMATICAL FEH*/ + RTUNI_ALPHA, /* U+01ee11: ARABIC MATHEMATICAL SAD*/ + RTUNI_ALPHA, /* U+01ee12: ARABIC MATHEMATICAL QAF*/ + RTUNI_ALPHA, /* U+01ee13: ARABIC MATHEMATICAL REH*/ + RTUNI_ALPHA, /* U+01ee14: ARABIC MATHEMATICAL SHEEN*/ + RTUNI_ALPHA, /* U+01ee15: ARABIC MATHEMATICAL TEH*/ + RTUNI_ALPHA, /* U+01ee16: ARABIC MATHEMATICAL THEH*/ + RTUNI_ALPHA, /* U+01ee17: ARABIC MATHEMATICAL KHAH*/ + RTUNI_ALPHA, /* U+01ee18: ARABIC MATHEMATICAL THAL*/ + RTUNI_ALPHA, /* U+01ee19: ARABIC MATHEMATICAL DAD*/ + RTUNI_ALPHA, /* U+01ee1a: ARABIC MATHEMATICAL ZAH*/ + RTUNI_ALPHA, /* U+01ee1b: ARABIC MATHEMATICAL GHAIN*/ + RTUNI_ALPHA, /* U+01ee1c: ARABIC MATHEMATICAL DOTLESS BEH*/ + RTUNI_ALPHA, /* U+01ee1d: ARABIC MATHEMATICAL DOTLESS NOON*/ + RTUNI_ALPHA, /* U+01ee1e: ARABIC MATHEMATICAL DOTLESS FEH*/ + RTUNI_ALPHA, /* U+01ee1f: ARABIC MATHEMATICAL DOTLESS QAF*/ + 0, /* U+01ee20: */ + RTUNI_ALPHA, /* U+01ee21: ARABIC MATHEMATICAL INITIAL BEH*/ + RTUNI_ALPHA, /* U+01ee22: ARABIC MATHEMATICAL INITIAL JEEM*/ + 0, /* U+01ee23: */ + RTUNI_ALPHA, /* U+01ee24: ARABIC MATHEMATICAL INITIAL HEH*/ + 0, /* U+01ee25: */ + 0, /* U+01ee26: */ + RTUNI_ALPHA, /* U+01ee27: ARABIC MATHEMATICAL INITIAL HAH*/ + 0, /* U+01ee28: */ + RTUNI_ALPHA, /* U+01ee29: ARABIC MATHEMATICAL INITIAL YEH*/ + RTUNI_ALPHA, /* U+01ee2a: ARABIC MATHEMATICAL INITIAL KAF*/ + RTUNI_ALPHA, /* U+01ee2b: ARABIC MATHEMATICAL INITIAL LAM*/ + RTUNI_ALPHA, /* U+01ee2c: ARABIC MATHEMATICAL INITIAL MEEM*/ + RTUNI_ALPHA, /* U+01ee2d: ARABIC MATHEMATICAL INITIAL NOON*/ + RTUNI_ALPHA, /* U+01ee2e: ARABIC MATHEMATICAL INITIAL SEEN*/ + RTUNI_ALPHA, /* U+01ee2f: ARABIC MATHEMATICAL INITIAL AIN*/ + RTUNI_ALPHA, /* U+01ee30: ARABIC MATHEMATICAL INITIAL FEH*/ + RTUNI_ALPHA, /* U+01ee31: ARABIC MATHEMATICAL INITIAL SAD*/ + RTUNI_ALPHA, /* U+01ee32: ARABIC MATHEMATICAL INITIAL QAF*/ + 0, /* U+01ee33: */ + RTUNI_ALPHA, /* U+01ee34: ARABIC MATHEMATICAL INITIAL SHEEN*/ + RTUNI_ALPHA, /* U+01ee35: ARABIC MATHEMATICAL INITIAL TEH*/ + RTUNI_ALPHA, /* U+01ee36: ARABIC MATHEMATICAL INITIAL THEH*/ + RTUNI_ALPHA, /* U+01ee37: ARABIC MATHEMATICAL INITIAL KHAH*/ + 0, /* U+01ee38: */ + RTUNI_ALPHA, /* U+01ee39: ARABIC MATHEMATICAL INITIAL DAD*/ + 0, /* U+01ee3a: */ + RTUNI_ALPHA, /* U+01ee3b: ARABIC MATHEMATICAL INITIAL GHAIN*/ + 0, /* U+01ee3c: */ + 0, /* U+01ee3d: */ + 0, /* U+01ee3e: */ + 0, /* U+01ee3f: */ + 0, /* U+01ee40: */ + 0, /* U+01ee41: */ + RTUNI_ALPHA, /* U+01ee42: ARABIC MATHEMATICAL TAILED JEEM*/ + 0, /* U+01ee43: */ + 0, /* U+01ee44: */ + 0, /* U+01ee45: */ + 0, /* U+01ee46: */ + RTUNI_ALPHA, /* U+01ee47: ARABIC MATHEMATICAL TAILED HAH*/ + 0, /* U+01ee48: */ + RTUNI_ALPHA, /* U+01ee49: ARABIC MATHEMATICAL TAILED YEH*/ + 0, /* U+01ee4a: */ + RTUNI_ALPHA, /* U+01ee4b: ARABIC MATHEMATICAL TAILED LAM*/ + 0, /* U+01ee4c: */ + RTUNI_ALPHA, /* U+01ee4d: ARABIC MATHEMATICAL TAILED NOON*/ + RTUNI_ALPHA, /* U+01ee4e: ARABIC MATHEMATICAL TAILED SEEN*/ + RTUNI_ALPHA, /* U+01ee4f: ARABIC MATHEMATICAL TAILED AIN*/ + 0, /* U+01ee50: */ + RTUNI_ALPHA, /* U+01ee51: ARABIC MATHEMATICAL TAILED SAD*/ + RTUNI_ALPHA, /* U+01ee52: ARABIC MATHEMATICAL TAILED QAF*/ + 0, /* U+01ee53: */ + RTUNI_ALPHA, /* U+01ee54: ARABIC MATHEMATICAL TAILED SHEEN*/ + 0, /* U+01ee55: */ + 0, /* U+01ee56: */ + RTUNI_ALPHA, /* U+01ee57: ARABIC MATHEMATICAL TAILED KHAH*/ + 0, /* U+01ee58: */ + RTUNI_ALPHA, /* U+01ee59: ARABIC MATHEMATICAL TAILED DAD*/ + 0, /* U+01ee5a: */ + RTUNI_ALPHA, /* U+01ee5b: ARABIC MATHEMATICAL TAILED GHAIN*/ + 0, /* U+01ee5c: */ + RTUNI_ALPHA, /* U+01ee5d: ARABIC MATHEMATICAL TAILED DOTLESS NOON*/ + 0, /* U+01ee5e: */ + RTUNI_ALPHA, /* U+01ee5f: ARABIC MATHEMATICAL TAILED DOTLESS QAF*/ + 0, /* U+01ee60: */ + RTUNI_ALPHA, /* U+01ee61: ARABIC MATHEMATICAL STRETCHED BEH*/ + RTUNI_ALPHA, /* U+01ee62: ARABIC MATHEMATICAL STRETCHED JEEM*/ + 0, /* U+01ee63: */ + RTUNI_ALPHA, /* U+01ee64: ARABIC MATHEMATICAL STRETCHED HEH*/ + 0, /* U+01ee65: */ + 0, /* U+01ee66: */ + RTUNI_ALPHA, /* U+01ee67: ARABIC MATHEMATICAL STRETCHED HAH*/ + RTUNI_ALPHA, /* U+01ee68: ARABIC MATHEMATICAL STRETCHED TAH*/ + RTUNI_ALPHA, /* U+01ee69: ARABIC MATHEMATICAL STRETCHED YEH*/ + RTUNI_ALPHA, /* U+01ee6a: ARABIC MATHEMATICAL STRETCHED KAF*/ + 0, /* U+01ee6b: */ + RTUNI_ALPHA, /* U+01ee6c: ARABIC MATHEMATICAL STRETCHED MEEM*/ + RTUNI_ALPHA, /* U+01ee6d: ARABIC MATHEMATICAL STRETCHED NOON*/ + RTUNI_ALPHA, /* U+01ee6e: ARABIC MATHEMATICAL STRETCHED SEEN*/ + RTUNI_ALPHA, /* U+01ee6f: ARABIC MATHEMATICAL STRETCHED AIN*/ + RTUNI_ALPHA, /* U+01ee70: ARABIC MATHEMATICAL STRETCHED FEH*/ + RTUNI_ALPHA, /* U+01ee71: ARABIC MATHEMATICAL STRETCHED SAD*/ + RTUNI_ALPHA, /* U+01ee72: ARABIC MATHEMATICAL STRETCHED QAF*/ + 0, /* U+01ee73: */ + RTUNI_ALPHA, /* U+01ee74: ARABIC MATHEMATICAL STRETCHED SHEEN*/ + RTUNI_ALPHA, /* U+01ee75: ARABIC MATHEMATICAL STRETCHED TEH*/ + RTUNI_ALPHA, /* U+01ee76: ARABIC MATHEMATICAL STRETCHED THEH*/ + RTUNI_ALPHA, /* U+01ee77: ARABIC MATHEMATICAL STRETCHED KHAH*/ + 0, /* U+01ee78: */ + RTUNI_ALPHA, /* U+01ee79: ARABIC MATHEMATICAL STRETCHED DAD*/ + RTUNI_ALPHA, /* U+01ee7a: ARABIC MATHEMATICAL STRETCHED ZAH*/ + RTUNI_ALPHA, /* U+01ee7b: ARABIC MATHEMATICAL STRETCHED GHAIN*/ + RTUNI_ALPHA, /* U+01ee7c: ARABIC MATHEMATICAL STRETCHED DOTLESS BEH*/ + 0, /* U+01ee7d: */ + RTUNI_ALPHA, /* U+01ee7e: ARABIC MATHEMATICAL STRETCHED DOTLESS FEH*/ + 0, /* U+01ee7f: */ + RTUNI_ALPHA, /* U+01ee80: ARABIC MATHEMATICAL LOOPED ALEF*/ + RTUNI_ALPHA, /* U+01ee81: ARABIC MATHEMATICAL LOOPED BEH*/ + RTUNI_ALPHA, /* U+01ee82: ARABIC MATHEMATICAL LOOPED JEEM*/ + RTUNI_ALPHA, /* U+01ee83: ARABIC MATHEMATICAL LOOPED DAL*/ + RTUNI_ALPHA, /* U+01ee84: ARABIC MATHEMATICAL LOOPED HEH*/ + RTUNI_ALPHA, /* U+01ee85: ARABIC MATHEMATICAL LOOPED WAW*/ + RTUNI_ALPHA, /* U+01ee86: ARABIC MATHEMATICAL LOOPED ZAIN*/ + RTUNI_ALPHA, /* U+01ee87: ARABIC MATHEMATICAL LOOPED HAH*/ + RTUNI_ALPHA, /* U+01ee88: ARABIC MATHEMATICAL LOOPED TAH*/ + RTUNI_ALPHA, /* U+01ee89: ARABIC MATHEMATICAL LOOPED YEH*/ + 0, /* U+01ee8a: */ + RTUNI_ALPHA, /* U+01ee8b: ARABIC MATHEMATICAL LOOPED LAM*/ + RTUNI_ALPHA, /* U+01ee8c: ARABIC MATHEMATICAL LOOPED MEEM*/ + RTUNI_ALPHA, /* U+01ee8d: ARABIC MATHEMATICAL LOOPED NOON*/ + RTUNI_ALPHA, /* U+01ee8e: ARABIC MATHEMATICAL LOOPED SEEN*/ + RTUNI_ALPHA, /* U+01ee8f: ARABIC MATHEMATICAL LOOPED AIN*/ + RTUNI_ALPHA, /* U+01ee90: ARABIC MATHEMATICAL LOOPED FEH*/ + RTUNI_ALPHA, /* U+01ee91: ARABIC MATHEMATICAL LOOPED SAD*/ + RTUNI_ALPHA, /* U+01ee92: ARABIC MATHEMATICAL LOOPED QAF*/ + RTUNI_ALPHA, /* U+01ee93: ARABIC MATHEMATICAL LOOPED REH*/ + RTUNI_ALPHA, /* U+01ee94: ARABIC MATHEMATICAL LOOPED SHEEN*/ + RTUNI_ALPHA, /* U+01ee95: ARABIC MATHEMATICAL LOOPED TEH*/ + RTUNI_ALPHA, /* U+01ee96: ARABIC MATHEMATICAL LOOPED THEH*/ + RTUNI_ALPHA, /* U+01ee97: ARABIC MATHEMATICAL LOOPED KHAH*/ + RTUNI_ALPHA, /* U+01ee98: ARABIC MATHEMATICAL LOOPED THAL*/ + RTUNI_ALPHA, /* U+01ee99: ARABIC MATHEMATICAL LOOPED DAD*/ + RTUNI_ALPHA, /* U+01ee9a: ARABIC MATHEMATICAL LOOPED ZAH*/ + RTUNI_ALPHA, /* U+01ee9b: ARABIC MATHEMATICAL LOOPED GHAIN*/ + 0, /* U+01ee9c: */ + 0, /* U+01ee9d: */ + 0, /* U+01ee9e: */ + 0, /* U+01ee9f: */ + 0, /* U+01eea0: */ + RTUNI_ALPHA, /* U+01eea1: ARABIC MATHEMATICAL DOUBLE-STRUCK BEH*/ + RTUNI_ALPHA, /* U+01eea2: ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM*/ + RTUNI_ALPHA, /* U+01eea3: ARABIC MATHEMATICAL DOUBLE-STRUCK DAL*/ + 0, /* U+01eea4: */ + RTUNI_ALPHA, /* U+01eea5: ARABIC MATHEMATICAL DOUBLE-STRUCK WAW*/ + RTUNI_ALPHA, /* U+01eea6: ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN*/ + RTUNI_ALPHA, /* U+01eea7: ARABIC MATHEMATICAL DOUBLE-STRUCK HAH*/ + RTUNI_ALPHA, /* U+01eea8: ARABIC MATHEMATICAL DOUBLE-STRUCK TAH*/ + RTUNI_ALPHA, /* U+01eea9: ARABIC MATHEMATICAL DOUBLE-STRUCK YEH*/ + 0, /* U+01eeaa: */ + RTUNI_ALPHA, /* U+01eeab: ARABIC MATHEMATICAL DOUBLE-STRUCK LAM*/ + RTUNI_ALPHA, /* U+01eeac: ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM*/ + RTUNI_ALPHA, /* U+01eead: ARABIC MATHEMATICAL DOUBLE-STRUCK NOON*/ + RTUNI_ALPHA, /* U+01eeae: ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN*/ + RTUNI_ALPHA, /* U+01eeaf: ARABIC MATHEMATICAL DOUBLE-STRUCK AIN*/ + RTUNI_ALPHA, /* U+01eeb0: ARABIC MATHEMATICAL DOUBLE-STRUCK FEH*/ + RTUNI_ALPHA, /* U+01eeb1: ARABIC MATHEMATICAL DOUBLE-STRUCK SAD*/ + RTUNI_ALPHA, /* U+01eeb2: ARABIC MATHEMATICAL DOUBLE-STRUCK QAF*/ + RTUNI_ALPHA, /* U+01eeb3: ARABIC MATHEMATICAL DOUBLE-STRUCK REH*/ + RTUNI_ALPHA, /* U+01eeb4: ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN*/ + RTUNI_ALPHA, /* U+01eeb5: ARABIC MATHEMATICAL DOUBLE-STRUCK TEH*/ + RTUNI_ALPHA, /* U+01eeb6: ARABIC MATHEMATICAL DOUBLE-STRUCK THEH*/ + RTUNI_ALPHA, /* U+01eeb7: ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH*/ + RTUNI_ALPHA, /* U+01eeb8: ARABIC MATHEMATICAL DOUBLE-STRUCK THAL*/ + RTUNI_ALPHA, /* U+01eeb9: ARABIC MATHEMATICAL DOUBLE-STRUCK DAD*/ + RTUNI_ALPHA, /* U+01eeba: ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH*/ + RTUNI_ALPHA, /* U+01eebb: ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN*/ +}; + +static const uint8_t g_afRTUniFlags0x020000[] = +{ + RTUNI_ALPHA, /* U+020000: <CJK Ideograph Extension B, First>*/ +}; + +static const uint8_t g_afRTUniFlags0x02a6d6[] = +{ + RTUNI_ALPHA, /* U+02a6d6: <CJK Ideograph Extension B, Last>*/ + 0, /* U+02a6d7: */ + 0, /* U+02a6d8: */ + 0, /* U+02a6d9: */ + 0, /* U+02a6da: */ + 0, /* U+02a6db: */ + 0, /* U+02a6dc: */ + 0, /* U+02a6dd: */ + 0, /* U+02a6de: */ + 0, /* U+02a6df: */ + 0, /* U+02a6e0: */ + 0, /* U+02a6e1: */ + 0, /* U+02a6e2: */ + 0, /* U+02a6e3: */ + 0, /* U+02a6e4: */ + 0, /* U+02a6e5: */ + 0, /* U+02a6e6: */ + 0, /* U+02a6e7: */ + 0, /* U+02a6e8: */ + 0, /* U+02a6e9: */ + 0, /* U+02a6ea: */ + 0, /* U+02a6eb: */ + 0, /* U+02a6ec: */ + 0, /* U+02a6ed: */ + 0, /* U+02a6ee: */ + 0, /* U+02a6ef: */ + 0, /* U+02a6f0: */ + 0, /* U+02a6f1: */ + 0, /* U+02a6f2: */ + 0, /* U+02a6f3: */ + 0, /* U+02a6f4: */ + 0, /* U+02a6f5: */ + 0, /* U+02a6f6: */ + 0, /* U+02a6f7: */ + 0, /* U+02a6f8: */ + 0, /* U+02a6f9: */ + 0, /* U+02a6fa: */ + 0, /* U+02a6fb: */ + 0, /* U+02a6fc: */ + 0, /* U+02a6fd: */ + 0, /* U+02a6fe: */ + 0, /* U+02a6ff: */ + RTUNI_ALPHA, /* U+02a700: <CJK Ideograph Extension C, First>*/ +}; + +static const uint8_t g_afRTUniFlags0x02b734[] = +{ + RTUNI_ALPHA, /* U+02b734: <CJK Ideograph Extension C, Last>*/ + 0, /* U+02b735: */ + 0, /* U+02b736: */ + 0, /* U+02b737: */ + 0, /* U+02b738: */ + 0, /* U+02b739: */ + 0, /* U+02b73a: */ + 0, /* U+02b73b: */ + 0, /* U+02b73c: */ + 0, /* U+02b73d: */ + 0, /* U+02b73e: */ + 0, /* U+02b73f: */ + RTUNI_ALPHA, /* U+02b740: <CJK Ideograph Extension D, First>*/ + RTUNI_ALPHA, /* U+02b741: */ + RTUNI_ALPHA, /* U+02b742: */ + RTUNI_ALPHA, /* U+02b743: */ + RTUNI_ALPHA, /* U+02b744: */ + RTUNI_ALPHA, /* U+02b745: */ + RTUNI_ALPHA, /* U+02b746: */ + RTUNI_ALPHA, /* U+02b747: */ + RTUNI_ALPHA, /* U+02b748: */ + RTUNI_ALPHA, /* U+02b749: */ + RTUNI_ALPHA, /* U+02b74a: */ + RTUNI_ALPHA, /* U+02b74b: */ + RTUNI_ALPHA, /* U+02b74c: */ + RTUNI_ALPHA, /* U+02b74d: */ + RTUNI_ALPHA, /* U+02b74e: */ + RTUNI_ALPHA, /* U+02b74f: */ + RTUNI_ALPHA, /* U+02b750: */ + RTUNI_ALPHA, /* U+02b751: */ + RTUNI_ALPHA, /* U+02b752: */ + RTUNI_ALPHA, /* U+02b753: */ + RTUNI_ALPHA, /* U+02b754: */ + RTUNI_ALPHA, /* U+02b755: */ + RTUNI_ALPHA, /* U+02b756: */ + RTUNI_ALPHA, /* U+02b757: */ + RTUNI_ALPHA, /* U+02b758: */ + RTUNI_ALPHA, /* U+02b759: */ + RTUNI_ALPHA, /* U+02b75a: */ + RTUNI_ALPHA, /* U+02b75b: */ + RTUNI_ALPHA, /* U+02b75c: */ + RTUNI_ALPHA, /* U+02b75d: */ + RTUNI_ALPHA, /* U+02b75e: */ + RTUNI_ALPHA, /* U+02b75f: */ + RTUNI_ALPHA, /* U+02b760: */ + RTUNI_ALPHA, /* U+02b761: */ + RTUNI_ALPHA, /* U+02b762: */ + RTUNI_ALPHA, /* U+02b763: */ + RTUNI_ALPHA, /* U+02b764: */ + RTUNI_ALPHA, /* U+02b765: */ + RTUNI_ALPHA, /* U+02b766: */ + RTUNI_ALPHA, /* U+02b767: */ + RTUNI_ALPHA, /* U+02b768: */ + RTUNI_ALPHA, /* U+02b769: */ + RTUNI_ALPHA, /* U+02b76a: */ + RTUNI_ALPHA, /* U+02b76b: */ + RTUNI_ALPHA, /* U+02b76c: */ + RTUNI_ALPHA, /* U+02b76d: */ + RTUNI_ALPHA, /* U+02b76e: */ + RTUNI_ALPHA, /* U+02b76f: */ + RTUNI_ALPHA, /* U+02b770: */ + RTUNI_ALPHA, /* U+02b771: */ + RTUNI_ALPHA, /* U+02b772: */ + RTUNI_ALPHA, /* U+02b773: */ + RTUNI_ALPHA, /* U+02b774: */ + RTUNI_ALPHA, /* U+02b775: */ + RTUNI_ALPHA, /* U+02b776: */ + RTUNI_ALPHA, /* U+02b777: */ + RTUNI_ALPHA, /* U+02b778: */ + RTUNI_ALPHA, /* U+02b779: */ + RTUNI_ALPHA, /* U+02b77a: */ + RTUNI_ALPHA, /* U+02b77b: */ + RTUNI_ALPHA, /* U+02b77c: */ + RTUNI_ALPHA, /* U+02b77d: */ + RTUNI_ALPHA, /* U+02b77e: */ + RTUNI_ALPHA, /* U+02b77f: */ + RTUNI_ALPHA, /* U+02b780: */ + RTUNI_ALPHA, /* U+02b781: */ + RTUNI_ALPHA, /* U+02b782: */ + RTUNI_ALPHA, /* U+02b783: */ + RTUNI_ALPHA, /* U+02b784: */ + RTUNI_ALPHA, /* U+02b785: */ + RTUNI_ALPHA, /* U+02b786: */ + RTUNI_ALPHA, /* U+02b787: */ + RTUNI_ALPHA, /* U+02b788: */ + RTUNI_ALPHA, /* U+02b789: */ + RTUNI_ALPHA, /* U+02b78a: */ + RTUNI_ALPHA, /* U+02b78b: */ + RTUNI_ALPHA, /* U+02b78c: */ + RTUNI_ALPHA, /* U+02b78d: */ + RTUNI_ALPHA, /* U+02b78e: */ + RTUNI_ALPHA, /* U+02b78f: */ + RTUNI_ALPHA, /* U+02b790: */ + RTUNI_ALPHA, /* U+02b791: */ + RTUNI_ALPHA, /* U+02b792: */ + RTUNI_ALPHA, /* U+02b793: */ + RTUNI_ALPHA, /* U+02b794: */ + RTUNI_ALPHA, /* U+02b795: */ + RTUNI_ALPHA, /* U+02b796: */ + RTUNI_ALPHA, /* U+02b797: */ + RTUNI_ALPHA, /* U+02b798: */ + RTUNI_ALPHA, /* U+02b799: */ + RTUNI_ALPHA, /* U+02b79a: */ + RTUNI_ALPHA, /* U+02b79b: */ + RTUNI_ALPHA, /* U+02b79c: */ + RTUNI_ALPHA, /* U+02b79d: */ + RTUNI_ALPHA, /* U+02b79e: */ + RTUNI_ALPHA, /* U+02b79f: */ + RTUNI_ALPHA, /* U+02b7a0: */ + RTUNI_ALPHA, /* U+02b7a1: */ + RTUNI_ALPHA, /* U+02b7a2: */ + RTUNI_ALPHA, /* U+02b7a3: */ + RTUNI_ALPHA, /* U+02b7a4: */ + RTUNI_ALPHA, /* U+02b7a5: */ + RTUNI_ALPHA, /* U+02b7a6: */ + RTUNI_ALPHA, /* U+02b7a7: */ + RTUNI_ALPHA, /* U+02b7a8: */ + RTUNI_ALPHA, /* U+02b7a9: */ + RTUNI_ALPHA, /* U+02b7aa: */ + RTUNI_ALPHA, /* U+02b7ab: */ + RTUNI_ALPHA, /* U+02b7ac: */ + RTUNI_ALPHA, /* U+02b7ad: */ + RTUNI_ALPHA, /* U+02b7ae: */ + RTUNI_ALPHA, /* U+02b7af: */ + RTUNI_ALPHA, /* U+02b7b0: */ + RTUNI_ALPHA, /* U+02b7b1: */ + RTUNI_ALPHA, /* U+02b7b2: */ + RTUNI_ALPHA, /* U+02b7b3: */ + RTUNI_ALPHA, /* U+02b7b4: */ + RTUNI_ALPHA, /* U+02b7b5: */ + RTUNI_ALPHA, /* U+02b7b6: */ + RTUNI_ALPHA, /* U+02b7b7: */ + RTUNI_ALPHA, /* U+02b7b8: */ + RTUNI_ALPHA, /* U+02b7b9: */ + RTUNI_ALPHA, /* U+02b7ba: */ + RTUNI_ALPHA, /* U+02b7bb: */ + RTUNI_ALPHA, /* U+02b7bc: */ + RTUNI_ALPHA, /* U+02b7bd: */ + RTUNI_ALPHA, /* U+02b7be: */ + RTUNI_ALPHA, /* U+02b7bf: */ + RTUNI_ALPHA, /* U+02b7c0: */ + RTUNI_ALPHA, /* U+02b7c1: */ + RTUNI_ALPHA, /* U+02b7c2: */ + RTUNI_ALPHA, /* U+02b7c3: */ + RTUNI_ALPHA, /* U+02b7c4: */ + RTUNI_ALPHA, /* U+02b7c5: */ + RTUNI_ALPHA, /* U+02b7c6: */ + RTUNI_ALPHA, /* U+02b7c7: */ + RTUNI_ALPHA, /* U+02b7c8: */ + RTUNI_ALPHA, /* U+02b7c9: */ + RTUNI_ALPHA, /* U+02b7ca: */ + RTUNI_ALPHA, /* U+02b7cb: */ + RTUNI_ALPHA, /* U+02b7cc: */ + RTUNI_ALPHA, /* U+02b7cd: */ + RTUNI_ALPHA, /* U+02b7ce: */ + RTUNI_ALPHA, /* U+02b7cf: */ + RTUNI_ALPHA, /* U+02b7d0: */ + RTUNI_ALPHA, /* U+02b7d1: */ + RTUNI_ALPHA, /* U+02b7d2: */ + RTUNI_ALPHA, /* U+02b7d3: */ + RTUNI_ALPHA, /* U+02b7d4: */ + RTUNI_ALPHA, /* U+02b7d5: */ + RTUNI_ALPHA, /* U+02b7d6: */ + RTUNI_ALPHA, /* U+02b7d7: */ + RTUNI_ALPHA, /* U+02b7d8: */ + RTUNI_ALPHA, /* U+02b7d9: */ + RTUNI_ALPHA, /* U+02b7da: */ + RTUNI_ALPHA, /* U+02b7db: */ + RTUNI_ALPHA, /* U+02b7dc: */ + RTUNI_ALPHA, /* U+02b7dd: */ + RTUNI_ALPHA, /* U+02b7de: */ + RTUNI_ALPHA, /* U+02b7df: */ + RTUNI_ALPHA, /* U+02b7e0: */ + RTUNI_ALPHA, /* U+02b7e1: */ + RTUNI_ALPHA, /* U+02b7e2: */ + RTUNI_ALPHA, /* U+02b7e3: */ + RTUNI_ALPHA, /* U+02b7e4: */ + RTUNI_ALPHA, /* U+02b7e5: */ + RTUNI_ALPHA, /* U+02b7e6: */ + RTUNI_ALPHA, /* U+02b7e7: */ + RTUNI_ALPHA, /* U+02b7e8: */ + RTUNI_ALPHA, /* U+02b7e9: */ + RTUNI_ALPHA, /* U+02b7ea: */ + RTUNI_ALPHA, /* U+02b7eb: */ + RTUNI_ALPHA, /* U+02b7ec: */ + RTUNI_ALPHA, /* U+02b7ed: */ + RTUNI_ALPHA, /* U+02b7ee: */ + RTUNI_ALPHA, /* U+02b7ef: */ + RTUNI_ALPHA, /* U+02b7f0: */ + RTUNI_ALPHA, /* U+02b7f1: */ + RTUNI_ALPHA, /* U+02b7f2: */ + RTUNI_ALPHA, /* U+02b7f3: */ + RTUNI_ALPHA, /* U+02b7f4: */ + RTUNI_ALPHA, /* U+02b7f5: */ + RTUNI_ALPHA, /* U+02b7f6: */ + RTUNI_ALPHA, /* U+02b7f7: */ + RTUNI_ALPHA, /* U+02b7f8: */ + RTUNI_ALPHA, /* U+02b7f9: */ + RTUNI_ALPHA, /* U+02b7fa: */ + RTUNI_ALPHA, /* U+02b7fb: */ + RTUNI_ALPHA, /* U+02b7fc: */ + RTUNI_ALPHA, /* U+02b7fd: */ + RTUNI_ALPHA, /* U+02b7fe: */ + RTUNI_ALPHA, /* U+02b7ff: */ + RTUNI_ALPHA, /* U+02b800: */ + RTUNI_ALPHA, /* U+02b801: */ + RTUNI_ALPHA, /* U+02b802: */ + RTUNI_ALPHA, /* U+02b803: */ + RTUNI_ALPHA, /* U+02b804: */ + RTUNI_ALPHA, /* U+02b805: */ + RTUNI_ALPHA, /* U+02b806: */ + RTUNI_ALPHA, /* U+02b807: */ + RTUNI_ALPHA, /* U+02b808: */ + RTUNI_ALPHA, /* U+02b809: */ + RTUNI_ALPHA, /* U+02b80a: */ + RTUNI_ALPHA, /* U+02b80b: */ + RTUNI_ALPHA, /* U+02b80c: */ + RTUNI_ALPHA, /* U+02b80d: */ + RTUNI_ALPHA, /* U+02b80e: */ + RTUNI_ALPHA, /* U+02b80f: */ + RTUNI_ALPHA, /* U+02b810: */ + RTUNI_ALPHA, /* U+02b811: */ + RTUNI_ALPHA, /* U+02b812: */ + RTUNI_ALPHA, /* U+02b813: */ + RTUNI_ALPHA, /* U+02b814: */ + RTUNI_ALPHA, /* U+02b815: */ + RTUNI_ALPHA, /* U+02b816: */ + RTUNI_ALPHA, /* U+02b817: */ + RTUNI_ALPHA, /* U+02b818: */ + RTUNI_ALPHA, /* U+02b819: */ + RTUNI_ALPHA, /* U+02b81a: */ + RTUNI_ALPHA, /* U+02b81b: */ + RTUNI_ALPHA, /* U+02b81c: */ + RTUNI_ALPHA, /* U+02b81d: <CJK Ideograph Extension D, Last>*/ +}; + +static const uint8_t g_afRTUniFlags0x02f800[] = +{ + RTUNI_ALPHA, /* U+02f800: CJK COMPATIBILITY IDEOGRAPH-2F800*/ + RTUNI_ALPHA, /* U+02f801: CJK COMPATIBILITY IDEOGRAPH-2F801*/ + RTUNI_ALPHA, /* U+02f802: CJK COMPATIBILITY IDEOGRAPH-2F802*/ + RTUNI_ALPHA, /* U+02f803: CJK COMPATIBILITY IDEOGRAPH-2F803*/ + RTUNI_ALPHA, /* U+02f804: CJK COMPATIBILITY IDEOGRAPH-2F804*/ + RTUNI_ALPHA, /* U+02f805: CJK COMPATIBILITY IDEOGRAPH-2F805*/ + RTUNI_ALPHA, /* U+02f806: CJK COMPATIBILITY IDEOGRAPH-2F806*/ + RTUNI_ALPHA, /* U+02f807: CJK COMPATIBILITY IDEOGRAPH-2F807*/ + RTUNI_ALPHA, /* U+02f808: CJK COMPATIBILITY IDEOGRAPH-2F808*/ + RTUNI_ALPHA, /* U+02f809: CJK COMPATIBILITY IDEOGRAPH-2F809*/ + RTUNI_ALPHA, /* U+02f80a: CJK COMPATIBILITY IDEOGRAPH-2F80A*/ + RTUNI_ALPHA, /* U+02f80b: CJK COMPATIBILITY IDEOGRAPH-2F80B*/ + RTUNI_ALPHA, /* U+02f80c: CJK COMPATIBILITY IDEOGRAPH-2F80C*/ + RTUNI_ALPHA, /* U+02f80d: CJK COMPATIBILITY IDEOGRAPH-2F80D*/ + RTUNI_ALPHA, /* U+02f80e: CJK COMPATIBILITY IDEOGRAPH-2F80E*/ + RTUNI_ALPHA, /* U+02f80f: CJK COMPATIBILITY IDEOGRAPH-2F80F*/ + RTUNI_ALPHA, /* U+02f810: CJK COMPATIBILITY IDEOGRAPH-2F810*/ + RTUNI_ALPHA, /* U+02f811: CJK COMPATIBILITY IDEOGRAPH-2F811*/ + RTUNI_ALPHA, /* U+02f812: CJK COMPATIBILITY IDEOGRAPH-2F812*/ + RTUNI_ALPHA, /* U+02f813: CJK COMPATIBILITY IDEOGRAPH-2F813*/ + RTUNI_ALPHA, /* U+02f814: CJK COMPATIBILITY IDEOGRAPH-2F814*/ + RTUNI_ALPHA, /* U+02f815: CJK COMPATIBILITY IDEOGRAPH-2F815*/ + RTUNI_ALPHA, /* U+02f816: CJK COMPATIBILITY IDEOGRAPH-2F816*/ + RTUNI_ALPHA, /* U+02f817: CJK COMPATIBILITY IDEOGRAPH-2F817*/ + RTUNI_ALPHA, /* U+02f818: CJK COMPATIBILITY IDEOGRAPH-2F818*/ + RTUNI_ALPHA, /* U+02f819: CJK COMPATIBILITY IDEOGRAPH-2F819*/ + RTUNI_ALPHA, /* U+02f81a: CJK COMPATIBILITY IDEOGRAPH-2F81A*/ + RTUNI_ALPHA, /* U+02f81b: CJK COMPATIBILITY IDEOGRAPH-2F81B*/ + RTUNI_ALPHA, /* U+02f81c: CJK COMPATIBILITY IDEOGRAPH-2F81C*/ + RTUNI_ALPHA, /* U+02f81d: CJK COMPATIBILITY IDEOGRAPH-2F81D*/ + RTUNI_ALPHA, /* U+02f81e: CJK COMPATIBILITY IDEOGRAPH-2F81E*/ + RTUNI_ALPHA, /* U+02f81f: CJK COMPATIBILITY IDEOGRAPH-2F81F*/ + RTUNI_ALPHA, /* U+02f820: CJK COMPATIBILITY IDEOGRAPH-2F820*/ + RTUNI_ALPHA, /* U+02f821: CJK COMPATIBILITY IDEOGRAPH-2F821*/ + RTUNI_ALPHA, /* U+02f822: CJK COMPATIBILITY IDEOGRAPH-2F822*/ + RTUNI_ALPHA, /* U+02f823: CJK COMPATIBILITY IDEOGRAPH-2F823*/ + RTUNI_ALPHA, /* U+02f824: CJK COMPATIBILITY IDEOGRAPH-2F824*/ + RTUNI_ALPHA, /* U+02f825: CJK COMPATIBILITY IDEOGRAPH-2F825*/ + RTUNI_ALPHA, /* U+02f826: CJK COMPATIBILITY IDEOGRAPH-2F826*/ + RTUNI_ALPHA, /* U+02f827: CJK COMPATIBILITY IDEOGRAPH-2F827*/ + RTUNI_ALPHA, /* U+02f828: CJK COMPATIBILITY IDEOGRAPH-2F828*/ + RTUNI_ALPHA, /* U+02f829: CJK COMPATIBILITY IDEOGRAPH-2F829*/ + RTUNI_ALPHA, /* U+02f82a: CJK COMPATIBILITY IDEOGRAPH-2F82A*/ + RTUNI_ALPHA, /* U+02f82b: CJK COMPATIBILITY IDEOGRAPH-2F82B*/ + RTUNI_ALPHA, /* U+02f82c: CJK COMPATIBILITY IDEOGRAPH-2F82C*/ + RTUNI_ALPHA, /* U+02f82d: CJK COMPATIBILITY IDEOGRAPH-2F82D*/ + RTUNI_ALPHA, /* U+02f82e: CJK COMPATIBILITY IDEOGRAPH-2F82E*/ + RTUNI_ALPHA, /* U+02f82f: CJK COMPATIBILITY IDEOGRAPH-2F82F*/ + RTUNI_ALPHA, /* U+02f830: CJK COMPATIBILITY IDEOGRAPH-2F830*/ + RTUNI_ALPHA, /* U+02f831: CJK COMPATIBILITY IDEOGRAPH-2F831*/ + RTUNI_ALPHA, /* U+02f832: CJK COMPATIBILITY IDEOGRAPH-2F832*/ + RTUNI_ALPHA, /* U+02f833: CJK COMPATIBILITY IDEOGRAPH-2F833*/ + RTUNI_ALPHA, /* U+02f834: CJK COMPATIBILITY IDEOGRAPH-2F834*/ + RTUNI_ALPHA, /* U+02f835: CJK COMPATIBILITY IDEOGRAPH-2F835*/ + RTUNI_ALPHA, /* U+02f836: CJK COMPATIBILITY IDEOGRAPH-2F836*/ + RTUNI_ALPHA, /* U+02f837: CJK COMPATIBILITY IDEOGRAPH-2F837*/ + RTUNI_ALPHA, /* U+02f838: CJK COMPATIBILITY IDEOGRAPH-2F838*/ + RTUNI_ALPHA, /* U+02f839: CJK COMPATIBILITY IDEOGRAPH-2F839*/ + RTUNI_ALPHA, /* U+02f83a: CJK COMPATIBILITY IDEOGRAPH-2F83A*/ + RTUNI_ALPHA, /* U+02f83b: CJK COMPATIBILITY IDEOGRAPH-2F83B*/ + RTUNI_ALPHA, /* U+02f83c: CJK COMPATIBILITY IDEOGRAPH-2F83C*/ + RTUNI_ALPHA, /* U+02f83d: CJK COMPATIBILITY IDEOGRAPH-2F83D*/ + RTUNI_ALPHA, /* U+02f83e: CJK COMPATIBILITY IDEOGRAPH-2F83E*/ + RTUNI_ALPHA, /* U+02f83f: CJK COMPATIBILITY IDEOGRAPH-2F83F*/ + RTUNI_ALPHA, /* U+02f840: CJK COMPATIBILITY IDEOGRAPH-2F840*/ + RTUNI_ALPHA, /* U+02f841: CJK COMPATIBILITY IDEOGRAPH-2F841*/ + RTUNI_ALPHA, /* U+02f842: CJK COMPATIBILITY IDEOGRAPH-2F842*/ + RTUNI_ALPHA, /* U+02f843: CJK COMPATIBILITY IDEOGRAPH-2F843*/ + RTUNI_ALPHA, /* U+02f844: CJK COMPATIBILITY IDEOGRAPH-2F844*/ + RTUNI_ALPHA, /* U+02f845: CJK COMPATIBILITY IDEOGRAPH-2F845*/ + RTUNI_ALPHA, /* U+02f846: CJK COMPATIBILITY IDEOGRAPH-2F846*/ + RTUNI_ALPHA, /* U+02f847: CJK COMPATIBILITY IDEOGRAPH-2F847*/ + RTUNI_ALPHA, /* U+02f848: CJK COMPATIBILITY IDEOGRAPH-2F848*/ + RTUNI_ALPHA, /* U+02f849: CJK COMPATIBILITY IDEOGRAPH-2F849*/ + RTUNI_ALPHA, /* U+02f84a: CJK COMPATIBILITY IDEOGRAPH-2F84A*/ + RTUNI_ALPHA, /* U+02f84b: CJK COMPATIBILITY IDEOGRAPH-2F84B*/ + RTUNI_ALPHA, /* U+02f84c: CJK COMPATIBILITY IDEOGRAPH-2F84C*/ + RTUNI_ALPHA, /* U+02f84d: CJK COMPATIBILITY IDEOGRAPH-2F84D*/ + RTUNI_ALPHA, /* U+02f84e: CJK COMPATIBILITY IDEOGRAPH-2F84E*/ + RTUNI_ALPHA, /* U+02f84f: CJK COMPATIBILITY IDEOGRAPH-2F84F*/ + RTUNI_ALPHA, /* U+02f850: CJK COMPATIBILITY IDEOGRAPH-2F850*/ + RTUNI_ALPHA, /* U+02f851: CJK COMPATIBILITY IDEOGRAPH-2F851*/ + RTUNI_ALPHA, /* U+02f852: CJK COMPATIBILITY IDEOGRAPH-2F852*/ + RTUNI_ALPHA, /* U+02f853: CJK COMPATIBILITY IDEOGRAPH-2F853*/ + RTUNI_ALPHA, /* U+02f854: CJK COMPATIBILITY IDEOGRAPH-2F854*/ + RTUNI_ALPHA, /* U+02f855: CJK COMPATIBILITY IDEOGRAPH-2F855*/ + RTUNI_ALPHA, /* U+02f856: CJK COMPATIBILITY IDEOGRAPH-2F856*/ + RTUNI_ALPHA, /* U+02f857: CJK COMPATIBILITY IDEOGRAPH-2F857*/ + RTUNI_ALPHA, /* U+02f858: CJK COMPATIBILITY IDEOGRAPH-2F858*/ + RTUNI_ALPHA, /* U+02f859: CJK COMPATIBILITY IDEOGRAPH-2F859*/ + RTUNI_ALPHA, /* U+02f85a: CJK COMPATIBILITY IDEOGRAPH-2F85A*/ + RTUNI_ALPHA, /* U+02f85b: CJK COMPATIBILITY IDEOGRAPH-2F85B*/ + RTUNI_ALPHA, /* U+02f85c: CJK COMPATIBILITY IDEOGRAPH-2F85C*/ + RTUNI_ALPHA, /* U+02f85d: CJK COMPATIBILITY IDEOGRAPH-2F85D*/ + RTUNI_ALPHA, /* U+02f85e: CJK COMPATIBILITY IDEOGRAPH-2F85E*/ + RTUNI_ALPHA, /* U+02f85f: CJK COMPATIBILITY IDEOGRAPH-2F85F*/ + RTUNI_ALPHA, /* U+02f860: CJK COMPATIBILITY IDEOGRAPH-2F860*/ + RTUNI_ALPHA, /* U+02f861: CJK COMPATIBILITY IDEOGRAPH-2F861*/ + RTUNI_ALPHA, /* U+02f862: CJK COMPATIBILITY IDEOGRAPH-2F862*/ + RTUNI_ALPHA, /* U+02f863: CJK COMPATIBILITY IDEOGRAPH-2F863*/ + RTUNI_ALPHA, /* U+02f864: CJK COMPATIBILITY IDEOGRAPH-2F864*/ + RTUNI_ALPHA, /* U+02f865: CJK COMPATIBILITY IDEOGRAPH-2F865*/ + RTUNI_ALPHA, /* U+02f866: CJK COMPATIBILITY IDEOGRAPH-2F866*/ + RTUNI_ALPHA, /* U+02f867: CJK COMPATIBILITY IDEOGRAPH-2F867*/ + RTUNI_ALPHA, /* U+02f868: CJK COMPATIBILITY IDEOGRAPH-2F868*/ + RTUNI_ALPHA, /* U+02f869: CJK COMPATIBILITY IDEOGRAPH-2F869*/ + RTUNI_ALPHA, /* U+02f86a: CJK COMPATIBILITY IDEOGRAPH-2F86A*/ + RTUNI_ALPHA, /* U+02f86b: CJK COMPATIBILITY IDEOGRAPH-2F86B*/ + RTUNI_ALPHA, /* U+02f86c: CJK COMPATIBILITY IDEOGRAPH-2F86C*/ + RTUNI_ALPHA, /* U+02f86d: CJK COMPATIBILITY IDEOGRAPH-2F86D*/ + RTUNI_ALPHA, /* U+02f86e: CJK COMPATIBILITY IDEOGRAPH-2F86E*/ + RTUNI_ALPHA, /* U+02f86f: CJK COMPATIBILITY IDEOGRAPH-2F86F*/ + RTUNI_ALPHA, /* U+02f870: CJK COMPATIBILITY IDEOGRAPH-2F870*/ + RTUNI_ALPHA, /* U+02f871: CJK COMPATIBILITY IDEOGRAPH-2F871*/ + RTUNI_ALPHA, /* U+02f872: CJK COMPATIBILITY IDEOGRAPH-2F872*/ + RTUNI_ALPHA, /* U+02f873: CJK COMPATIBILITY IDEOGRAPH-2F873*/ + RTUNI_ALPHA, /* U+02f874: CJK COMPATIBILITY IDEOGRAPH-2F874*/ + RTUNI_ALPHA, /* U+02f875: CJK COMPATIBILITY IDEOGRAPH-2F875*/ + RTUNI_ALPHA, /* U+02f876: CJK COMPATIBILITY IDEOGRAPH-2F876*/ + RTUNI_ALPHA, /* U+02f877: CJK COMPATIBILITY IDEOGRAPH-2F877*/ + RTUNI_ALPHA, /* U+02f878: CJK COMPATIBILITY IDEOGRAPH-2F878*/ + RTUNI_ALPHA, /* U+02f879: CJK COMPATIBILITY IDEOGRAPH-2F879*/ + RTUNI_ALPHA, /* U+02f87a: CJK COMPATIBILITY IDEOGRAPH-2F87A*/ + RTUNI_ALPHA, /* U+02f87b: CJK COMPATIBILITY IDEOGRAPH-2F87B*/ + RTUNI_ALPHA, /* U+02f87c: CJK COMPATIBILITY IDEOGRAPH-2F87C*/ + RTUNI_ALPHA, /* U+02f87d: CJK COMPATIBILITY IDEOGRAPH-2F87D*/ + RTUNI_ALPHA, /* U+02f87e: CJK COMPATIBILITY IDEOGRAPH-2F87E*/ + RTUNI_ALPHA, /* U+02f87f: CJK COMPATIBILITY IDEOGRAPH-2F87F*/ + RTUNI_ALPHA, /* U+02f880: CJK COMPATIBILITY IDEOGRAPH-2F880*/ + RTUNI_ALPHA, /* U+02f881: CJK COMPATIBILITY IDEOGRAPH-2F881*/ + RTUNI_ALPHA, /* U+02f882: CJK COMPATIBILITY IDEOGRAPH-2F882*/ + RTUNI_ALPHA, /* U+02f883: CJK COMPATIBILITY IDEOGRAPH-2F883*/ + RTUNI_ALPHA, /* U+02f884: CJK COMPATIBILITY IDEOGRAPH-2F884*/ + RTUNI_ALPHA, /* U+02f885: CJK COMPATIBILITY IDEOGRAPH-2F885*/ + RTUNI_ALPHA, /* U+02f886: CJK COMPATIBILITY IDEOGRAPH-2F886*/ + RTUNI_ALPHA, /* U+02f887: CJK COMPATIBILITY IDEOGRAPH-2F887*/ + RTUNI_ALPHA, /* U+02f888: CJK COMPATIBILITY IDEOGRAPH-2F888*/ + RTUNI_ALPHA, /* U+02f889: CJK COMPATIBILITY IDEOGRAPH-2F889*/ + RTUNI_ALPHA, /* U+02f88a: CJK COMPATIBILITY IDEOGRAPH-2F88A*/ + RTUNI_ALPHA, /* U+02f88b: CJK COMPATIBILITY IDEOGRAPH-2F88B*/ + RTUNI_ALPHA, /* U+02f88c: CJK COMPATIBILITY IDEOGRAPH-2F88C*/ + RTUNI_ALPHA, /* U+02f88d: CJK COMPATIBILITY IDEOGRAPH-2F88D*/ + RTUNI_ALPHA, /* U+02f88e: CJK COMPATIBILITY IDEOGRAPH-2F88E*/ + RTUNI_ALPHA, /* U+02f88f: CJK COMPATIBILITY IDEOGRAPH-2F88F*/ + RTUNI_ALPHA, /* U+02f890: CJK COMPATIBILITY IDEOGRAPH-2F890*/ + RTUNI_ALPHA, /* U+02f891: CJK COMPATIBILITY IDEOGRAPH-2F891*/ + RTUNI_ALPHA, /* U+02f892: CJK COMPATIBILITY IDEOGRAPH-2F892*/ + RTUNI_ALPHA, /* U+02f893: CJK COMPATIBILITY IDEOGRAPH-2F893*/ + RTUNI_ALPHA, /* U+02f894: CJK COMPATIBILITY IDEOGRAPH-2F894*/ + RTUNI_ALPHA, /* U+02f895: CJK COMPATIBILITY IDEOGRAPH-2F895*/ + RTUNI_ALPHA, /* U+02f896: CJK COMPATIBILITY IDEOGRAPH-2F896*/ + RTUNI_ALPHA, /* U+02f897: CJK COMPATIBILITY IDEOGRAPH-2F897*/ + RTUNI_ALPHA, /* U+02f898: CJK COMPATIBILITY IDEOGRAPH-2F898*/ + RTUNI_ALPHA, /* U+02f899: CJK COMPATIBILITY IDEOGRAPH-2F899*/ + RTUNI_ALPHA, /* U+02f89a: CJK COMPATIBILITY IDEOGRAPH-2F89A*/ + RTUNI_ALPHA, /* U+02f89b: CJK COMPATIBILITY IDEOGRAPH-2F89B*/ + RTUNI_ALPHA, /* U+02f89c: CJK COMPATIBILITY IDEOGRAPH-2F89C*/ + RTUNI_ALPHA, /* U+02f89d: CJK COMPATIBILITY IDEOGRAPH-2F89D*/ + RTUNI_ALPHA, /* U+02f89e: CJK COMPATIBILITY IDEOGRAPH-2F89E*/ + RTUNI_ALPHA, /* U+02f89f: CJK COMPATIBILITY IDEOGRAPH-2F89F*/ + RTUNI_ALPHA, /* U+02f8a0: CJK COMPATIBILITY IDEOGRAPH-2F8A0*/ + RTUNI_ALPHA, /* U+02f8a1: CJK COMPATIBILITY IDEOGRAPH-2F8A1*/ + RTUNI_ALPHA, /* U+02f8a2: CJK COMPATIBILITY IDEOGRAPH-2F8A2*/ + RTUNI_ALPHA, /* U+02f8a3: CJK COMPATIBILITY IDEOGRAPH-2F8A3*/ + RTUNI_ALPHA, /* U+02f8a4: CJK COMPATIBILITY IDEOGRAPH-2F8A4*/ + RTUNI_ALPHA, /* U+02f8a5: CJK COMPATIBILITY IDEOGRAPH-2F8A5*/ + RTUNI_ALPHA, /* U+02f8a6: CJK COMPATIBILITY IDEOGRAPH-2F8A6*/ + RTUNI_ALPHA, /* U+02f8a7: CJK COMPATIBILITY IDEOGRAPH-2F8A7*/ + RTUNI_ALPHA, /* U+02f8a8: CJK COMPATIBILITY IDEOGRAPH-2F8A8*/ + RTUNI_ALPHA, /* U+02f8a9: CJK COMPATIBILITY IDEOGRAPH-2F8A9*/ + RTUNI_ALPHA, /* U+02f8aa: CJK COMPATIBILITY IDEOGRAPH-2F8AA*/ + RTUNI_ALPHA, /* U+02f8ab: CJK COMPATIBILITY IDEOGRAPH-2F8AB*/ + RTUNI_ALPHA, /* U+02f8ac: CJK COMPATIBILITY IDEOGRAPH-2F8AC*/ + RTUNI_ALPHA, /* U+02f8ad: CJK COMPATIBILITY IDEOGRAPH-2F8AD*/ + RTUNI_ALPHA, /* U+02f8ae: CJK COMPATIBILITY IDEOGRAPH-2F8AE*/ + RTUNI_ALPHA, /* U+02f8af: CJK COMPATIBILITY IDEOGRAPH-2F8AF*/ + RTUNI_ALPHA, /* U+02f8b0: CJK COMPATIBILITY IDEOGRAPH-2F8B0*/ + RTUNI_ALPHA, /* U+02f8b1: CJK COMPATIBILITY IDEOGRAPH-2F8B1*/ + RTUNI_ALPHA, /* U+02f8b2: CJK COMPATIBILITY IDEOGRAPH-2F8B2*/ + RTUNI_ALPHA, /* U+02f8b3: CJK COMPATIBILITY IDEOGRAPH-2F8B3*/ + RTUNI_ALPHA, /* U+02f8b4: CJK COMPATIBILITY IDEOGRAPH-2F8B4*/ + RTUNI_ALPHA, /* U+02f8b5: CJK COMPATIBILITY IDEOGRAPH-2F8B5*/ + RTUNI_ALPHA, /* U+02f8b6: CJK COMPATIBILITY IDEOGRAPH-2F8B6*/ + RTUNI_ALPHA, /* U+02f8b7: CJK COMPATIBILITY IDEOGRAPH-2F8B7*/ + RTUNI_ALPHA, /* U+02f8b8: CJK COMPATIBILITY IDEOGRAPH-2F8B8*/ + RTUNI_ALPHA, /* U+02f8b9: CJK COMPATIBILITY IDEOGRAPH-2F8B9*/ + RTUNI_ALPHA, /* U+02f8ba: CJK COMPATIBILITY IDEOGRAPH-2F8BA*/ + RTUNI_ALPHA, /* U+02f8bb: CJK COMPATIBILITY IDEOGRAPH-2F8BB*/ + RTUNI_ALPHA, /* U+02f8bc: CJK COMPATIBILITY IDEOGRAPH-2F8BC*/ + RTUNI_ALPHA, /* U+02f8bd: CJK COMPATIBILITY IDEOGRAPH-2F8BD*/ + RTUNI_ALPHA, /* U+02f8be: CJK COMPATIBILITY IDEOGRAPH-2F8BE*/ + RTUNI_ALPHA, /* U+02f8bf: CJK COMPATIBILITY IDEOGRAPH-2F8BF*/ + RTUNI_ALPHA, /* U+02f8c0: CJK COMPATIBILITY IDEOGRAPH-2F8C0*/ + RTUNI_ALPHA, /* U+02f8c1: CJK COMPATIBILITY IDEOGRAPH-2F8C1*/ + RTUNI_ALPHA, /* U+02f8c2: CJK COMPATIBILITY IDEOGRAPH-2F8C2*/ + RTUNI_ALPHA, /* U+02f8c3: CJK COMPATIBILITY IDEOGRAPH-2F8C3*/ + RTUNI_ALPHA, /* U+02f8c4: CJK COMPATIBILITY IDEOGRAPH-2F8C4*/ + RTUNI_ALPHA, /* U+02f8c5: CJK COMPATIBILITY IDEOGRAPH-2F8C5*/ + RTUNI_ALPHA, /* U+02f8c6: CJK COMPATIBILITY IDEOGRAPH-2F8C6*/ + RTUNI_ALPHA, /* U+02f8c7: CJK COMPATIBILITY IDEOGRAPH-2F8C7*/ + RTUNI_ALPHA, /* U+02f8c8: CJK COMPATIBILITY IDEOGRAPH-2F8C8*/ + RTUNI_ALPHA, /* U+02f8c9: CJK COMPATIBILITY IDEOGRAPH-2F8C9*/ + RTUNI_ALPHA, /* U+02f8ca: CJK COMPATIBILITY IDEOGRAPH-2F8CA*/ + RTUNI_ALPHA, /* U+02f8cb: CJK COMPATIBILITY IDEOGRAPH-2F8CB*/ + RTUNI_ALPHA, /* U+02f8cc: CJK COMPATIBILITY IDEOGRAPH-2F8CC*/ + RTUNI_ALPHA, /* U+02f8cd: CJK COMPATIBILITY IDEOGRAPH-2F8CD*/ + RTUNI_ALPHA, /* U+02f8ce: CJK COMPATIBILITY IDEOGRAPH-2F8CE*/ + RTUNI_ALPHA, /* U+02f8cf: CJK COMPATIBILITY IDEOGRAPH-2F8CF*/ + RTUNI_ALPHA, /* U+02f8d0: CJK COMPATIBILITY IDEOGRAPH-2F8D0*/ + RTUNI_ALPHA, /* U+02f8d1: CJK COMPATIBILITY IDEOGRAPH-2F8D1*/ + RTUNI_ALPHA, /* U+02f8d2: CJK COMPATIBILITY IDEOGRAPH-2F8D2*/ + RTUNI_ALPHA, /* U+02f8d3: CJK COMPATIBILITY IDEOGRAPH-2F8D3*/ + RTUNI_ALPHA, /* U+02f8d4: CJK COMPATIBILITY IDEOGRAPH-2F8D4*/ + RTUNI_ALPHA, /* U+02f8d5: CJK COMPATIBILITY IDEOGRAPH-2F8D5*/ + RTUNI_ALPHA, /* U+02f8d6: CJK COMPATIBILITY IDEOGRAPH-2F8D6*/ + RTUNI_ALPHA, /* U+02f8d7: CJK COMPATIBILITY IDEOGRAPH-2F8D7*/ + RTUNI_ALPHA, /* U+02f8d8: CJK COMPATIBILITY IDEOGRAPH-2F8D8*/ + RTUNI_ALPHA, /* U+02f8d9: CJK COMPATIBILITY IDEOGRAPH-2F8D9*/ + RTUNI_ALPHA, /* U+02f8da: CJK COMPATIBILITY IDEOGRAPH-2F8DA*/ + RTUNI_ALPHA, /* U+02f8db: CJK COMPATIBILITY IDEOGRAPH-2F8DB*/ + RTUNI_ALPHA, /* U+02f8dc: CJK COMPATIBILITY IDEOGRAPH-2F8DC*/ + RTUNI_ALPHA, /* U+02f8dd: CJK COMPATIBILITY IDEOGRAPH-2F8DD*/ + RTUNI_ALPHA, /* U+02f8de: CJK COMPATIBILITY IDEOGRAPH-2F8DE*/ + RTUNI_ALPHA, /* U+02f8df: CJK COMPATIBILITY IDEOGRAPH-2F8DF*/ + RTUNI_ALPHA, /* U+02f8e0: CJK COMPATIBILITY IDEOGRAPH-2F8E0*/ + RTUNI_ALPHA, /* U+02f8e1: CJK COMPATIBILITY IDEOGRAPH-2F8E1*/ + RTUNI_ALPHA, /* U+02f8e2: CJK COMPATIBILITY IDEOGRAPH-2F8E2*/ + RTUNI_ALPHA, /* U+02f8e3: CJK COMPATIBILITY IDEOGRAPH-2F8E3*/ + RTUNI_ALPHA, /* U+02f8e4: CJK COMPATIBILITY IDEOGRAPH-2F8E4*/ + RTUNI_ALPHA, /* U+02f8e5: CJK COMPATIBILITY IDEOGRAPH-2F8E5*/ + RTUNI_ALPHA, /* U+02f8e6: CJK COMPATIBILITY IDEOGRAPH-2F8E6*/ + RTUNI_ALPHA, /* U+02f8e7: CJK COMPATIBILITY IDEOGRAPH-2F8E7*/ + RTUNI_ALPHA, /* U+02f8e8: CJK COMPATIBILITY IDEOGRAPH-2F8E8*/ + RTUNI_ALPHA, /* U+02f8e9: CJK COMPATIBILITY IDEOGRAPH-2F8E9*/ + RTUNI_ALPHA, /* U+02f8ea: CJK COMPATIBILITY IDEOGRAPH-2F8EA*/ + RTUNI_ALPHA, /* U+02f8eb: CJK COMPATIBILITY IDEOGRAPH-2F8EB*/ + RTUNI_ALPHA, /* U+02f8ec: CJK COMPATIBILITY IDEOGRAPH-2F8EC*/ + RTUNI_ALPHA, /* U+02f8ed: CJK COMPATIBILITY IDEOGRAPH-2F8ED*/ + RTUNI_ALPHA, /* U+02f8ee: CJK COMPATIBILITY IDEOGRAPH-2F8EE*/ + RTUNI_ALPHA, /* U+02f8ef: CJK COMPATIBILITY IDEOGRAPH-2F8EF*/ + RTUNI_ALPHA, /* U+02f8f0: CJK COMPATIBILITY IDEOGRAPH-2F8F0*/ + RTUNI_ALPHA, /* U+02f8f1: CJK COMPATIBILITY IDEOGRAPH-2F8F1*/ + RTUNI_ALPHA, /* U+02f8f2: CJK COMPATIBILITY IDEOGRAPH-2F8F2*/ + RTUNI_ALPHA, /* U+02f8f3: CJK COMPATIBILITY IDEOGRAPH-2F8F3*/ + RTUNI_ALPHA, /* U+02f8f4: CJK COMPATIBILITY IDEOGRAPH-2F8F4*/ + RTUNI_ALPHA, /* U+02f8f5: CJK COMPATIBILITY IDEOGRAPH-2F8F5*/ + RTUNI_ALPHA, /* U+02f8f6: CJK COMPATIBILITY IDEOGRAPH-2F8F6*/ + RTUNI_ALPHA, /* U+02f8f7: CJK COMPATIBILITY IDEOGRAPH-2F8F7*/ + RTUNI_ALPHA, /* U+02f8f8: CJK COMPATIBILITY IDEOGRAPH-2F8F8*/ + RTUNI_ALPHA, /* U+02f8f9: CJK COMPATIBILITY IDEOGRAPH-2F8F9*/ + RTUNI_ALPHA, /* U+02f8fa: CJK COMPATIBILITY IDEOGRAPH-2F8FA*/ + RTUNI_ALPHA, /* U+02f8fb: CJK COMPATIBILITY IDEOGRAPH-2F8FB*/ + RTUNI_ALPHA, /* U+02f8fc: CJK COMPATIBILITY IDEOGRAPH-2F8FC*/ + RTUNI_ALPHA, /* U+02f8fd: CJK COMPATIBILITY IDEOGRAPH-2F8FD*/ + RTUNI_ALPHA, /* U+02f8fe: CJK COMPATIBILITY IDEOGRAPH-2F8FE*/ + RTUNI_ALPHA, /* U+02f8ff: CJK COMPATIBILITY IDEOGRAPH-2F8FF*/ + RTUNI_ALPHA, /* U+02f900: CJK COMPATIBILITY IDEOGRAPH-2F900*/ + RTUNI_ALPHA, /* U+02f901: CJK COMPATIBILITY IDEOGRAPH-2F901*/ + RTUNI_ALPHA, /* U+02f902: CJK COMPATIBILITY IDEOGRAPH-2F902*/ + RTUNI_ALPHA, /* U+02f903: CJK COMPATIBILITY IDEOGRAPH-2F903*/ + RTUNI_ALPHA, /* U+02f904: CJK COMPATIBILITY IDEOGRAPH-2F904*/ + RTUNI_ALPHA, /* U+02f905: CJK COMPATIBILITY IDEOGRAPH-2F905*/ + RTUNI_ALPHA, /* U+02f906: CJK COMPATIBILITY IDEOGRAPH-2F906*/ + RTUNI_ALPHA, /* U+02f907: CJK COMPATIBILITY IDEOGRAPH-2F907*/ + RTUNI_ALPHA, /* U+02f908: CJK COMPATIBILITY IDEOGRAPH-2F908*/ + RTUNI_ALPHA, /* U+02f909: CJK COMPATIBILITY IDEOGRAPH-2F909*/ + RTUNI_ALPHA, /* U+02f90a: CJK COMPATIBILITY IDEOGRAPH-2F90A*/ + RTUNI_ALPHA, /* U+02f90b: CJK COMPATIBILITY IDEOGRAPH-2F90B*/ + RTUNI_ALPHA, /* U+02f90c: CJK COMPATIBILITY IDEOGRAPH-2F90C*/ + RTUNI_ALPHA, /* U+02f90d: CJK COMPATIBILITY IDEOGRAPH-2F90D*/ + RTUNI_ALPHA, /* U+02f90e: CJK COMPATIBILITY IDEOGRAPH-2F90E*/ + RTUNI_ALPHA, /* U+02f90f: CJK COMPATIBILITY IDEOGRAPH-2F90F*/ + RTUNI_ALPHA, /* U+02f910: CJK COMPATIBILITY IDEOGRAPH-2F910*/ + RTUNI_ALPHA, /* U+02f911: CJK COMPATIBILITY IDEOGRAPH-2F911*/ + RTUNI_ALPHA, /* U+02f912: CJK COMPATIBILITY IDEOGRAPH-2F912*/ + RTUNI_ALPHA, /* U+02f913: CJK COMPATIBILITY IDEOGRAPH-2F913*/ + RTUNI_ALPHA, /* U+02f914: CJK COMPATIBILITY IDEOGRAPH-2F914*/ + RTUNI_ALPHA, /* U+02f915: CJK COMPATIBILITY IDEOGRAPH-2F915*/ + RTUNI_ALPHA, /* U+02f916: CJK COMPATIBILITY IDEOGRAPH-2F916*/ + RTUNI_ALPHA, /* U+02f917: CJK COMPATIBILITY IDEOGRAPH-2F917*/ + RTUNI_ALPHA, /* U+02f918: CJK COMPATIBILITY IDEOGRAPH-2F918*/ + RTUNI_ALPHA, /* U+02f919: CJK COMPATIBILITY IDEOGRAPH-2F919*/ + RTUNI_ALPHA, /* U+02f91a: CJK COMPATIBILITY IDEOGRAPH-2F91A*/ + RTUNI_ALPHA, /* U+02f91b: CJK COMPATIBILITY IDEOGRAPH-2F91B*/ + RTUNI_ALPHA, /* U+02f91c: CJK COMPATIBILITY IDEOGRAPH-2F91C*/ + RTUNI_ALPHA, /* U+02f91d: CJK COMPATIBILITY IDEOGRAPH-2F91D*/ + RTUNI_ALPHA, /* U+02f91e: CJK COMPATIBILITY IDEOGRAPH-2F91E*/ + RTUNI_ALPHA, /* U+02f91f: CJK COMPATIBILITY IDEOGRAPH-2F91F*/ + RTUNI_ALPHA, /* U+02f920: CJK COMPATIBILITY IDEOGRAPH-2F920*/ + RTUNI_ALPHA, /* U+02f921: CJK COMPATIBILITY IDEOGRAPH-2F921*/ + RTUNI_ALPHA, /* U+02f922: CJK COMPATIBILITY IDEOGRAPH-2F922*/ + RTUNI_ALPHA, /* U+02f923: CJK COMPATIBILITY IDEOGRAPH-2F923*/ + RTUNI_ALPHA, /* U+02f924: CJK COMPATIBILITY IDEOGRAPH-2F924*/ + RTUNI_ALPHA, /* U+02f925: CJK COMPATIBILITY IDEOGRAPH-2F925*/ + RTUNI_ALPHA, /* U+02f926: CJK COMPATIBILITY IDEOGRAPH-2F926*/ + RTUNI_ALPHA, /* U+02f927: CJK COMPATIBILITY IDEOGRAPH-2F927*/ + RTUNI_ALPHA, /* U+02f928: CJK COMPATIBILITY IDEOGRAPH-2F928*/ + RTUNI_ALPHA, /* U+02f929: CJK COMPATIBILITY IDEOGRAPH-2F929*/ + RTUNI_ALPHA, /* U+02f92a: CJK COMPATIBILITY IDEOGRAPH-2F92A*/ + RTUNI_ALPHA, /* U+02f92b: CJK COMPATIBILITY IDEOGRAPH-2F92B*/ + RTUNI_ALPHA, /* U+02f92c: CJK COMPATIBILITY IDEOGRAPH-2F92C*/ + RTUNI_ALPHA, /* U+02f92d: CJK COMPATIBILITY IDEOGRAPH-2F92D*/ + RTUNI_ALPHA, /* U+02f92e: CJK COMPATIBILITY IDEOGRAPH-2F92E*/ + RTUNI_ALPHA, /* U+02f92f: CJK COMPATIBILITY IDEOGRAPH-2F92F*/ + RTUNI_ALPHA, /* U+02f930: CJK COMPATIBILITY IDEOGRAPH-2F930*/ + RTUNI_ALPHA, /* U+02f931: CJK COMPATIBILITY IDEOGRAPH-2F931*/ + RTUNI_ALPHA, /* U+02f932: CJK COMPATIBILITY IDEOGRAPH-2F932*/ + RTUNI_ALPHA, /* U+02f933: CJK COMPATIBILITY IDEOGRAPH-2F933*/ + RTUNI_ALPHA, /* U+02f934: CJK COMPATIBILITY IDEOGRAPH-2F934*/ + RTUNI_ALPHA, /* U+02f935: CJK COMPATIBILITY IDEOGRAPH-2F935*/ + RTUNI_ALPHA, /* U+02f936: CJK COMPATIBILITY IDEOGRAPH-2F936*/ + RTUNI_ALPHA, /* U+02f937: CJK COMPATIBILITY IDEOGRAPH-2F937*/ + RTUNI_ALPHA, /* U+02f938: CJK COMPATIBILITY IDEOGRAPH-2F938*/ + RTUNI_ALPHA, /* U+02f939: CJK COMPATIBILITY IDEOGRAPH-2F939*/ + RTUNI_ALPHA, /* U+02f93a: CJK COMPATIBILITY IDEOGRAPH-2F93A*/ + RTUNI_ALPHA, /* U+02f93b: CJK COMPATIBILITY IDEOGRAPH-2F93B*/ + RTUNI_ALPHA, /* U+02f93c: CJK COMPATIBILITY IDEOGRAPH-2F93C*/ + RTUNI_ALPHA, /* U+02f93d: CJK COMPATIBILITY IDEOGRAPH-2F93D*/ + RTUNI_ALPHA, /* U+02f93e: CJK COMPATIBILITY IDEOGRAPH-2F93E*/ + RTUNI_ALPHA, /* U+02f93f: CJK COMPATIBILITY IDEOGRAPH-2F93F*/ + RTUNI_ALPHA, /* U+02f940: CJK COMPATIBILITY IDEOGRAPH-2F940*/ + RTUNI_ALPHA, /* U+02f941: CJK COMPATIBILITY IDEOGRAPH-2F941*/ + RTUNI_ALPHA, /* U+02f942: CJK COMPATIBILITY IDEOGRAPH-2F942*/ + RTUNI_ALPHA, /* U+02f943: CJK COMPATIBILITY IDEOGRAPH-2F943*/ + RTUNI_ALPHA, /* U+02f944: CJK COMPATIBILITY IDEOGRAPH-2F944*/ + RTUNI_ALPHA, /* U+02f945: CJK COMPATIBILITY IDEOGRAPH-2F945*/ + RTUNI_ALPHA, /* U+02f946: CJK COMPATIBILITY IDEOGRAPH-2F946*/ + RTUNI_ALPHA, /* U+02f947: CJK COMPATIBILITY IDEOGRAPH-2F947*/ + RTUNI_ALPHA, /* U+02f948: CJK COMPATIBILITY IDEOGRAPH-2F948*/ + RTUNI_ALPHA, /* U+02f949: CJK COMPATIBILITY IDEOGRAPH-2F949*/ + RTUNI_ALPHA, /* U+02f94a: CJK COMPATIBILITY IDEOGRAPH-2F94A*/ + RTUNI_ALPHA, /* U+02f94b: CJK COMPATIBILITY IDEOGRAPH-2F94B*/ + RTUNI_ALPHA, /* U+02f94c: CJK COMPATIBILITY IDEOGRAPH-2F94C*/ + RTUNI_ALPHA, /* U+02f94d: CJK COMPATIBILITY IDEOGRAPH-2F94D*/ + RTUNI_ALPHA, /* U+02f94e: CJK COMPATIBILITY IDEOGRAPH-2F94E*/ + RTUNI_ALPHA, /* U+02f94f: CJK COMPATIBILITY IDEOGRAPH-2F94F*/ + RTUNI_ALPHA, /* U+02f950: CJK COMPATIBILITY IDEOGRAPH-2F950*/ + RTUNI_ALPHA, /* U+02f951: CJK COMPATIBILITY IDEOGRAPH-2F951*/ + RTUNI_ALPHA, /* U+02f952: CJK COMPATIBILITY IDEOGRAPH-2F952*/ + RTUNI_ALPHA, /* U+02f953: CJK COMPATIBILITY IDEOGRAPH-2F953*/ + RTUNI_ALPHA, /* U+02f954: CJK COMPATIBILITY IDEOGRAPH-2F954*/ + RTUNI_ALPHA, /* U+02f955: CJK COMPATIBILITY IDEOGRAPH-2F955*/ + RTUNI_ALPHA, /* U+02f956: CJK COMPATIBILITY IDEOGRAPH-2F956*/ + RTUNI_ALPHA, /* U+02f957: CJK COMPATIBILITY IDEOGRAPH-2F957*/ + RTUNI_ALPHA, /* U+02f958: CJK COMPATIBILITY IDEOGRAPH-2F958*/ + RTUNI_ALPHA, /* U+02f959: CJK COMPATIBILITY IDEOGRAPH-2F959*/ + RTUNI_ALPHA, /* U+02f95a: CJK COMPATIBILITY IDEOGRAPH-2F95A*/ + RTUNI_ALPHA, /* U+02f95b: CJK COMPATIBILITY IDEOGRAPH-2F95B*/ + RTUNI_ALPHA, /* U+02f95c: CJK COMPATIBILITY IDEOGRAPH-2F95C*/ + RTUNI_ALPHA, /* U+02f95d: CJK COMPATIBILITY IDEOGRAPH-2F95D*/ + RTUNI_ALPHA, /* U+02f95e: CJK COMPATIBILITY IDEOGRAPH-2F95E*/ + RTUNI_ALPHA, /* U+02f95f: CJK COMPATIBILITY IDEOGRAPH-2F95F*/ + RTUNI_ALPHA, /* U+02f960: CJK COMPATIBILITY IDEOGRAPH-2F960*/ + RTUNI_ALPHA, /* U+02f961: CJK COMPATIBILITY IDEOGRAPH-2F961*/ + RTUNI_ALPHA, /* U+02f962: CJK COMPATIBILITY IDEOGRAPH-2F962*/ + RTUNI_ALPHA, /* U+02f963: CJK COMPATIBILITY IDEOGRAPH-2F963*/ + RTUNI_ALPHA, /* U+02f964: CJK COMPATIBILITY IDEOGRAPH-2F964*/ + RTUNI_ALPHA, /* U+02f965: CJK COMPATIBILITY IDEOGRAPH-2F965*/ + RTUNI_ALPHA, /* U+02f966: CJK COMPATIBILITY IDEOGRAPH-2F966*/ + RTUNI_ALPHA, /* U+02f967: CJK COMPATIBILITY IDEOGRAPH-2F967*/ + RTUNI_ALPHA, /* U+02f968: CJK COMPATIBILITY IDEOGRAPH-2F968*/ + RTUNI_ALPHA, /* U+02f969: CJK COMPATIBILITY IDEOGRAPH-2F969*/ + RTUNI_ALPHA, /* U+02f96a: CJK COMPATIBILITY IDEOGRAPH-2F96A*/ + RTUNI_ALPHA, /* U+02f96b: CJK COMPATIBILITY IDEOGRAPH-2F96B*/ + RTUNI_ALPHA, /* U+02f96c: CJK COMPATIBILITY IDEOGRAPH-2F96C*/ + RTUNI_ALPHA, /* U+02f96d: CJK COMPATIBILITY IDEOGRAPH-2F96D*/ + RTUNI_ALPHA, /* U+02f96e: CJK COMPATIBILITY IDEOGRAPH-2F96E*/ + RTUNI_ALPHA, /* U+02f96f: CJK COMPATIBILITY IDEOGRAPH-2F96F*/ + RTUNI_ALPHA, /* U+02f970: CJK COMPATIBILITY IDEOGRAPH-2F970*/ + RTUNI_ALPHA, /* U+02f971: CJK COMPATIBILITY IDEOGRAPH-2F971*/ + RTUNI_ALPHA, /* U+02f972: CJK COMPATIBILITY IDEOGRAPH-2F972*/ + RTUNI_ALPHA, /* U+02f973: CJK COMPATIBILITY IDEOGRAPH-2F973*/ + RTUNI_ALPHA, /* U+02f974: CJK COMPATIBILITY IDEOGRAPH-2F974*/ + RTUNI_ALPHA, /* U+02f975: CJK COMPATIBILITY IDEOGRAPH-2F975*/ + RTUNI_ALPHA, /* U+02f976: CJK COMPATIBILITY IDEOGRAPH-2F976*/ + RTUNI_ALPHA, /* U+02f977: CJK COMPATIBILITY IDEOGRAPH-2F977*/ + RTUNI_ALPHA, /* U+02f978: CJK COMPATIBILITY IDEOGRAPH-2F978*/ + RTUNI_ALPHA, /* U+02f979: CJK COMPATIBILITY IDEOGRAPH-2F979*/ + RTUNI_ALPHA, /* U+02f97a: CJK COMPATIBILITY IDEOGRAPH-2F97A*/ + RTUNI_ALPHA, /* U+02f97b: CJK COMPATIBILITY IDEOGRAPH-2F97B*/ + RTUNI_ALPHA, /* U+02f97c: CJK COMPATIBILITY IDEOGRAPH-2F97C*/ + RTUNI_ALPHA, /* U+02f97d: CJK COMPATIBILITY IDEOGRAPH-2F97D*/ + RTUNI_ALPHA, /* U+02f97e: CJK COMPATIBILITY IDEOGRAPH-2F97E*/ + RTUNI_ALPHA, /* U+02f97f: CJK COMPATIBILITY IDEOGRAPH-2F97F*/ + RTUNI_ALPHA, /* U+02f980: CJK COMPATIBILITY IDEOGRAPH-2F980*/ + RTUNI_ALPHA, /* U+02f981: CJK COMPATIBILITY IDEOGRAPH-2F981*/ + RTUNI_ALPHA, /* U+02f982: CJK COMPATIBILITY IDEOGRAPH-2F982*/ + RTUNI_ALPHA, /* U+02f983: CJK COMPATIBILITY IDEOGRAPH-2F983*/ + RTUNI_ALPHA, /* U+02f984: CJK COMPATIBILITY IDEOGRAPH-2F984*/ + RTUNI_ALPHA, /* U+02f985: CJK COMPATIBILITY IDEOGRAPH-2F985*/ + RTUNI_ALPHA, /* U+02f986: CJK COMPATIBILITY IDEOGRAPH-2F986*/ + RTUNI_ALPHA, /* U+02f987: CJK COMPATIBILITY IDEOGRAPH-2F987*/ + RTUNI_ALPHA, /* U+02f988: CJK COMPATIBILITY IDEOGRAPH-2F988*/ + RTUNI_ALPHA, /* U+02f989: CJK COMPATIBILITY IDEOGRAPH-2F989*/ + RTUNI_ALPHA, /* U+02f98a: CJK COMPATIBILITY IDEOGRAPH-2F98A*/ + RTUNI_ALPHA, /* U+02f98b: CJK COMPATIBILITY IDEOGRAPH-2F98B*/ + RTUNI_ALPHA, /* U+02f98c: CJK COMPATIBILITY IDEOGRAPH-2F98C*/ + RTUNI_ALPHA, /* U+02f98d: CJK COMPATIBILITY IDEOGRAPH-2F98D*/ + RTUNI_ALPHA, /* U+02f98e: CJK COMPATIBILITY IDEOGRAPH-2F98E*/ + RTUNI_ALPHA, /* U+02f98f: CJK COMPATIBILITY IDEOGRAPH-2F98F*/ + RTUNI_ALPHA, /* U+02f990: CJK COMPATIBILITY IDEOGRAPH-2F990*/ + RTUNI_ALPHA, /* U+02f991: CJK COMPATIBILITY IDEOGRAPH-2F991*/ + RTUNI_ALPHA, /* U+02f992: CJK COMPATIBILITY IDEOGRAPH-2F992*/ + RTUNI_ALPHA, /* U+02f993: CJK COMPATIBILITY IDEOGRAPH-2F993*/ + RTUNI_ALPHA, /* U+02f994: CJK COMPATIBILITY IDEOGRAPH-2F994*/ + RTUNI_ALPHA, /* U+02f995: CJK COMPATIBILITY IDEOGRAPH-2F995*/ + RTUNI_ALPHA, /* U+02f996: CJK COMPATIBILITY IDEOGRAPH-2F996*/ + RTUNI_ALPHA, /* U+02f997: CJK COMPATIBILITY IDEOGRAPH-2F997*/ + RTUNI_ALPHA, /* U+02f998: CJK COMPATIBILITY IDEOGRAPH-2F998*/ + RTUNI_ALPHA, /* U+02f999: CJK COMPATIBILITY IDEOGRAPH-2F999*/ + RTUNI_ALPHA, /* U+02f99a: CJK COMPATIBILITY IDEOGRAPH-2F99A*/ + RTUNI_ALPHA, /* U+02f99b: CJK COMPATIBILITY IDEOGRAPH-2F99B*/ + RTUNI_ALPHA, /* U+02f99c: CJK COMPATIBILITY IDEOGRAPH-2F99C*/ + RTUNI_ALPHA, /* U+02f99d: CJK COMPATIBILITY IDEOGRAPH-2F99D*/ + RTUNI_ALPHA, /* U+02f99e: CJK COMPATIBILITY IDEOGRAPH-2F99E*/ + RTUNI_ALPHA, /* U+02f99f: CJK COMPATIBILITY IDEOGRAPH-2F99F*/ + RTUNI_ALPHA, /* U+02f9a0: CJK COMPATIBILITY IDEOGRAPH-2F9A0*/ + RTUNI_ALPHA, /* U+02f9a1: CJK COMPATIBILITY IDEOGRAPH-2F9A1*/ + RTUNI_ALPHA, /* U+02f9a2: CJK COMPATIBILITY IDEOGRAPH-2F9A2*/ + RTUNI_ALPHA, /* U+02f9a3: CJK COMPATIBILITY IDEOGRAPH-2F9A3*/ + RTUNI_ALPHA, /* U+02f9a4: CJK COMPATIBILITY IDEOGRAPH-2F9A4*/ + RTUNI_ALPHA, /* U+02f9a5: CJK COMPATIBILITY IDEOGRAPH-2F9A5*/ + RTUNI_ALPHA, /* U+02f9a6: CJK COMPATIBILITY IDEOGRAPH-2F9A6*/ + RTUNI_ALPHA, /* U+02f9a7: CJK COMPATIBILITY IDEOGRAPH-2F9A7*/ + RTUNI_ALPHA, /* U+02f9a8: CJK COMPATIBILITY IDEOGRAPH-2F9A8*/ + RTUNI_ALPHA, /* U+02f9a9: CJK COMPATIBILITY IDEOGRAPH-2F9A9*/ + RTUNI_ALPHA, /* U+02f9aa: CJK COMPATIBILITY IDEOGRAPH-2F9AA*/ + RTUNI_ALPHA, /* U+02f9ab: CJK COMPATIBILITY IDEOGRAPH-2F9AB*/ + RTUNI_ALPHA, /* U+02f9ac: CJK COMPATIBILITY IDEOGRAPH-2F9AC*/ + RTUNI_ALPHA, /* U+02f9ad: CJK COMPATIBILITY IDEOGRAPH-2F9AD*/ + RTUNI_ALPHA, /* U+02f9ae: CJK COMPATIBILITY IDEOGRAPH-2F9AE*/ + RTUNI_ALPHA, /* U+02f9af: CJK COMPATIBILITY IDEOGRAPH-2F9AF*/ + RTUNI_ALPHA, /* U+02f9b0: CJK COMPATIBILITY IDEOGRAPH-2F9B0*/ + RTUNI_ALPHA, /* U+02f9b1: CJK COMPATIBILITY IDEOGRAPH-2F9B1*/ + RTUNI_ALPHA, /* U+02f9b2: CJK COMPATIBILITY IDEOGRAPH-2F9B2*/ + RTUNI_ALPHA, /* U+02f9b3: CJK COMPATIBILITY IDEOGRAPH-2F9B3*/ + RTUNI_ALPHA, /* U+02f9b4: CJK COMPATIBILITY IDEOGRAPH-2F9B4*/ + RTUNI_ALPHA, /* U+02f9b5: CJK COMPATIBILITY IDEOGRAPH-2F9B5*/ + RTUNI_ALPHA, /* U+02f9b6: CJK COMPATIBILITY IDEOGRAPH-2F9B6*/ + RTUNI_ALPHA, /* U+02f9b7: CJK COMPATIBILITY IDEOGRAPH-2F9B7*/ + RTUNI_ALPHA, /* U+02f9b8: CJK COMPATIBILITY IDEOGRAPH-2F9B8*/ + RTUNI_ALPHA, /* U+02f9b9: CJK COMPATIBILITY IDEOGRAPH-2F9B9*/ + RTUNI_ALPHA, /* U+02f9ba: CJK COMPATIBILITY IDEOGRAPH-2F9BA*/ + RTUNI_ALPHA, /* U+02f9bb: CJK COMPATIBILITY IDEOGRAPH-2F9BB*/ + RTUNI_ALPHA, /* U+02f9bc: CJK COMPATIBILITY IDEOGRAPH-2F9BC*/ + RTUNI_ALPHA, /* U+02f9bd: CJK COMPATIBILITY IDEOGRAPH-2F9BD*/ + RTUNI_ALPHA, /* U+02f9be: CJK COMPATIBILITY IDEOGRAPH-2F9BE*/ + RTUNI_ALPHA, /* U+02f9bf: CJK COMPATIBILITY IDEOGRAPH-2F9BF*/ + RTUNI_ALPHA, /* U+02f9c0: CJK COMPATIBILITY IDEOGRAPH-2F9C0*/ + RTUNI_ALPHA, /* U+02f9c1: CJK COMPATIBILITY IDEOGRAPH-2F9C1*/ + RTUNI_ALPHA, /* U+02f9c2: CJK COMPATIBILITY IDEOGRAPH-2F9C2*/ + RTUNI_ALPHA, /* U+02f9c3: CJK COMPATIBILITY IDEOGRAPH-2F9C3*/ + RTUNI_ALPHA, /* U+02f9c4: CJK COMPATIBILITY IDEOGRAPH-2F9C4*/ + RTUNI_ALPHA, /* U+02f9c5: CJK COMPATIBILITY IDEOGRAPH-2F9C5*/ + RTUNI_ALPHA, /* U+02f9c6: CJK COMPATIBILITY IDEOGRAPH-2F9C6*/ + RTUNI_ALPHA, /* U+02f9c7: CJK COMPATIBILITY IDEOGRAPH-2F9C7*/ + RTUNI_ALPHA, /* U+02f9c8: CJK COMPATIBILITY IDEOGRAPH-2F9C8*/ + RTUNI_ALPHA, /* U+02f9c9: CJK COMPATIBILITY IDEOGRAPH-2F9C9*/ + RTUNI_ALPHA, /* U+02f9ca: CJK COMPATIBILITY IDEOGRAPH-2F9CA*/ + RTUNI_ALPHA, /* U+02f9cb: CJK COMPATIBILITY IDEOGRAPH-2F9CB*/ + RTUNI_ALPHA, /* U+02f9cc: CJK COMPATIBILITY IDEOGRAPH-2F9CC*/ + RTUNI_ALPHA, /* U+02f9cd: CJK COMPATIBILITY IDEOGRAPH-2F9CD*/ + RTUNI_ALPHA, /* U+02f9ce: CJK COMPATIBILITY IDEOGRAPH-2F9CE*/ + RTUNI_ALPHA, /* U+02f9cf: CJK COMPATIBILITY IDEOGRAPH-2F9CF*/ + RTUNI_ALPHA, /* U+02f9d0: CJK COMPATIBILITY IDEOGRAPH-2F9D0*/ + RTUNI_ALPHA, /* U+02f9d1: CJK COMPATIBILITY IDEOGRAPH-2F9D1*/ + RTUNI_ALPHA, /* U+02f9d2: CJK COMPATIBILITY IDEOGRAPH-2F9D2*/ + RTUNI_ALPHA, /* U+02f9d3: CJK COMPATIBILITY IDEOGRAPH-2F9D3*/ + RTUNI_ALPHA, /* U+02f9d4: CJK COMPATIBILITY IDEOGRAPH-2F9D4*/ + RTUNI_ALPHA, /* U+02f9d5: CJK COMPATIBILITY IDEOGRAPH-2F9D5*/ + RTUNI_ALPHA, /* U+02f9d6: CJK COMPATIBILITY IDEOGRAPH-2F9D6*/ + RTUNI_ALPHA, /* U+02f9d7: CJK COMPATIBILITY IDEOGRAPH-2F9D7*/ + RTUNI_ALPHA, /* U+02f9d8: CJK COMPATIBILITY IDEOGRAPH-2F9D8*/ + RTUNI_ALPHA, /* U+02f9d9: CJK COMPATIBILITY IDEOGRAPH-2F9D9*/ + RTUNI_ALPHA, /* U+02f9da: CJK COMPATIBILITY IDEOGRAPH-2F9DA*/ + RTUNI_ALPHA, /* U+02f9db: CJK COMPATIBILITY IDEOGRAPH-2F9DB*/ + RTUNI_ALPHA, /* U+02f9dc: CJK COMPATIBILITY IDEOGRAPH-2F9DC*/ + RTUNI_ALPHA, /* U+02f9dd: CJK COMPATIBILITY IDEOGRAPH-2F9DD*/ + RTUNI_ALPHA, /* U+02f9de: CJK COMPATIBILITY IDEOGRAPH-2F9DE*/ + RTUNI_ALPHA, /* U+02f9df: CJK COMPATIBILITY IDEOGRAPH-2F9DF*/ + RTUNI_ALPHA, /* U+02f9e0: CJK COMPATIBILITY IDEOGRAPH-2F9E0*/ + RTUNI_ALPHA, /* U+02f9e1: CJK COMPATIBILITY IDEOGRAPH-2F9E1*/ + RTUNI_ALPHA, /* U+02f9e2: CJK COMPATIBILITY IDEOGRAPH-2F9E2*/ + RTUNI_ALPHA, /* U+02f9e3: CJK COMPATIBILITY IDEOGRAPH-2F9E3*/ + RTUNI_ALPHA, /* U+02f9e4: CJK COMPATIBILITY IDEOGRAPH-2F9E4*/ + RTUNI_ALPHA, /* U+02f9e5: CJK COMPATIBILITY IDEOGRAPH-2F9E5*/ + RTUNI_ALPHA, /* U+02f9e6: CJK COMPATIBILITY IDEOGRAPH-2F9E6*/ + RTUNI_ALPHA, /* U+02f9e7: CJK COMPATIBILITY IDEOGRAPH-2F9E7*/ + RTUNI_ALPHA, /* U+02f9e8: CJK COMPATIBILITY IDEOGRAPH-2F9E8*/ + RTUNI_ALPHA, /* U+02f9e9: CJK COMPATIBILITY IDEOGRAPH-2F9E9*/ + RTUNI_ALPHA, /* U+02f9ea: CJK COMPATIBILITY IDEOGRAPH-2F9EA*/ + RTUNI_ALPHA, /* U+02f9eb: CJK COMPATIBILITY IDEOGRAPH-2F9EB*/ + RTUNI_ALPHA, /* U+02f9ec: CJK COMPATIBILITY IDEOGRAPH-2F9EC*/ + RTUNI_ALPHA, /* U+02f9ed: CJK COMPATIBILITY IDEOGRAPH-2F9ED*/ + RTUNI_ALPHA, /* U+02f9ee: CJK COMPATIBILITY IDEOGRAPH-2F9EE*/ + RTUNI_ALPHA, /* U+02f9ef: CJK COMPATIBILITY IDEOGRAPH-2F9EF*/ + RTUNI_ALPHA, /* U+02f9f0: CJK COMPATIBILITY IDEOGRAPH-2F9F0*/ + RTUNI_ALPHA, /* U+02f9f1: CJK COMPATIBILITY IDEOGRAPH-2F9F1*/ + RTUNI_ALPHA, /* U+02f9f2: CJK COMPATIBILITY IDEOGRAPH-2F9F2*/ + RTUNI_ALPHA, /* U+02f9f3: CJK COMPATIBILITY IDEOGRAPH-2F9F3*/ + RTUNI_ALPHA, /* U+02f9f4: CJK COMPATIBILITY IDEOGRAPH-2F9F4*/ + RTUNI_ALPHA, /* U+02f9f5: CJK COMPATIBILITY IDEOGRAPH-2F9F5*/ + RTUNI_ALPHA, /* U+02f9f6: CJK COMPATIBILITY IDEOGRAPH-2F9F6*/ + RTUNI_ALPHA, /* U+02f9f7: CJK COMPATIBILITY IDEOGRAPH-2F9F7*/ + RTUNI_ALPHA, /* U+02f9f8: CJK COMPATIBILITY IDEOGRAPH-2F9F8*/ + RTUNI_ALPHA, /* U+02f9f9: CJK COMPATIBILITY IDEOGRAPH-2F9F9*/ + RTUNI_ALPHA, /* U+02f9fa: CJK COMPATIBILITY IDEOGRAPH-2F9FA*/ + RTUNI_ALPHA, /* U+02f9fb: CJK COMPATIBILITY IDEOGRAPH-2F9FB*/ + RTUNI_ALPHA, /* U+02f9fc: CJK COMPATIBILITY IDEOGRAPH-2F9FC*/ + RTUNI_ALPHA, /* U+02f9fd: CJK COMPATIBILITY IDEOGRAPH-2F9FD*/ + RTUNI_ALPHA, /* U+02f9fe: CJK COMPATIBILITY IDEOGRAPH-2F9FE*/ + RTUNI_ALPHA, /* U+02f9ff: CJK COMPATIBILITY IDEOGRAPH-2F9FF*/ + RTUNI_ALPHA, /* U+02fa00: CJK COMPATIBILITY IDEOGRAPH-2FA00*/ + RTUNI_ALPHA, /* U+02fa01: CJK COMPATIBILITY IDEOGRAPH-2FA01*/ + RTUNI_ALPHA, /* U+02fa02: CJK COMPATIBILITY IDEOGRAPH-2FA02*/ + RTUNI_ALPHA, /* U+02fa03: CJK COMPATIBILITY IDEOGRAPH-2FA03*/ + RTUNI_ALPHA, /* U+02fa04: CJK COMPATIBILITY IDEOGRAPH-2FA04*/ + RTUNI_ALPHA, /* U+02fa05: CJK COMPATIBILITY IDEOGRAPH-2FA05*/ + RTUNI_ALPHA, /* U+02fa06: CJK COMPATIBILITY IDEOGRAPH-2FA06*/ + RTUNI_ALPHA, /* U+02fa07: CJK COMPATIBILITY IDEOGRAPH-2FA07*/ + RTUNI_ALPHA, /* U+02fa08: CJK COMPATIBILITY IDEOGRAPH-2FA08*/ + RTUNI_ALPHA, /* U+02fa09: CJK COMPATIBILITY IDEOGRAPH-2FA09*/ + RTUNI_ALPHA, /* U+02fa0a: CJK COMPATIBILITY IDEOGRAPH-2FA0A*/ + RTUNI_ALPHA, /* U+02fa0b: CJK COMPATIBILITY IDEOGRAPH-2FA0B*/ + RTUNI_ALPHA, /* U+02fa0c: CJK COMPATIBILITY IDEOGRAPH-2FA0C*/ + RTUNI_ALPHA, /* U+02fa0d: CJK COMPATIBILITY IDEOGRAPH-2FA0D*/ + RTUNI_ALPHA, /* U+02fa0e: CJK COMPATIBILITY IDEOGRAPH-2FA0E*/ + RTUNI_ALPHA, /* U+02fa0f: CJK COMPATIBILITY IDEOGRAPH-2FA0F*/ + RTUNI_ALPHA, /* U+02fa10: CJK COMPATIBILITY IDEOGRAPH-2FA10*/ + RTUNI_ALPHA, /* U+02fa11: CJK COMPATIBILITY IDEOGRAPH-2FA11*/ + RTUNI_ALPHA, /* U+02fa12: CJK COMPATIBILITY IDEOGRAPH-2FA12*/ + RTUNI_ALPHA, /* U+02fa13: CJK COMPATIBILITY IDEOGRAPH-2FA13*/ + RTUNI_ALPHA, /* U+02fa14: CJK COMPATIBILITY IDEOGRAPH-2FA14*/ + RTUNI_ALPHA, /* U+02fa15: CJK COMPATIBILITY IDEOGRAPH-2FA15*/ + RTUNI_ALPHA, /* U+02fa16: CJK COMPATIBILITY IDEOGRAPH-2FA16*/ + RTUNI_ALPHA, /* U+02fa17: CJK COMPATIBILITY IDEOGRAPH-2FA17*/ + RTUNI_ALPHA, /* U+02fa18: CJK COMPATIBILITY IDEOGRAPH-2FA18*/ + RTUNI_ALPHA, /* U+02fa19: CJK COMPATIBILITY IDEOGRAPH-2FA19*/ + RTUNI_ALPHA, /* U+02fa1a: CJK COMPATIBILITY IDEOGRAPH-2FA1A*/ + RTUNI_ALPHA, /* U+02fa1b: CJK COMPATIBILITY IDEOGRAPH-2FA1B*/ + RTUNI_ALPHA, /* U+02fa1c: CJK COMPATIBILITY IDEOGRAPH-2FA1C*/ + RTUNI_ALPHA, /* U+02fa1d: CJK COMPATIBILITY IDEOGRAPH-2FA1D*/ +}; + + +RT_DECL_DATA_CONST(const RTUNIFLAGSRANGE) g_aRTUniFlagsRanges[] = +{ + { 0x000000, 0x003401, &g_afRTUniFlags0x000000[0] }, + { 0x004db5, 0x004e01, &g_afRTUniFlags0x004db5[0] }, + { 0x009fcc, 0x00d7fc, &g_afRTUniFlags0x009fcc[0] }, + { 0x00f900, 0x01342f, &g_afRTUniFlags0x00f900[0] }, + { 0x016800, 0x016fa0, &g_afRTUniFlags0x016800[0] }, + { 0x01b000, 0x01b002, &g_afRTUniFlags0x01b000[0] }, + { 0x01d400, 0x01d800, &g_afRTUniFlags0x01d400[0] }, + { 0x01ee00, 0x01eebc, &g_afRTUniFlags0x01ee00[0] }, + { 0x020000, 0x020001, &g_afRTUniFlags0x020000[0] }, + { 0x02a6d6, 0x02a701, &g_afRTUniFlags0x02a6d6[0] }, + { 0x02b734, 0x02b81e, &g_afRTUniFlags0x02b734[0] }, + { 0x02f800, 0x02fa1e, &g_afRTUniFlags0x02f800[0] }, + { ~(RTUNICP)0, ~(RTUNICP)0, NULL } +}; + diff --git a/src/VBox/Runtime/common/string/unidata-lower.cpp b/src/VBox/Runtime/common/string/unidata-lower.cpp new file mode 100644 index 00000000..1b843ba5 --- /dev/null +++ b/src/VBox/Runtime/common/string/unidata-lower.cpp @@ -0,0 +1,3901 @@ +/* $Id: unidata-lower.cpp $ */ +/** @file + * IPRT - Unicode Tables. + * + * Automatically Generated from d:\src\unicode\6.3.0\ + * by ..\..\..\..\..\out\win.amd64\debug\obj\uniread\uniread.exe (May 22 2014 19:07:40) + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#include <iprt/uni.h> + +static const RTUNICP g_afRTUniLower0x000000[] = +{ + 0x00, /* U+000000: <control>*/ + 0x01, /* U+000001: <control>*/ + 0x02, /* U+000002: <control>*/ + 0x03, /* U+000003: <control>*/ + 0x04, /* U+000004: <control>*/ + 0x05, /* U+000005: <control>*/ + 0x06, /* U+000006: <control>*/ + 0x07, /* U+000007: <control>*/ + 0x08, /* U+000008: <control>*/ + 0x09, /* U+000009: <control>*/ + 0x0a, /* U+00000a: <control>*/ + 0x0b, /* U+00000b: <control>*/ + 0x0c, /* U+00000c: <control>*/ + 0x0d, /* U+00000d: <control>*/ + 0x0e, /* U+00000e: <control>*/ + 0x0f, /* U+00000f: <control>*/ + 0x10, /* U+000010: <control>*/ + 0x11, /* U+000011: <control>*/ + 0x12, /* U+000012: <control>*/ + 0x13, /* U+000013: <control>*/ + 0x14, /* U+000014: <control>*/ + 0x15, /* U+000015: <control>*/ + 0x16, /* U+000016: <control>*/ + 0x17, /* U+000017: <control>*/ + 0x18, /* U+000018: <control>*/ + 0x19, /* U+000019: <control>*/ + 0x1a, /* U+00001a: <control>*/ + 0x1b, /* U+00001b: <control>*/ + 0x1c, /* U+00001c: <control>*/ + 0x1d, /* U+00001d: <control>*/ + 0x1e, /* U+00001e: <control>*/ + 0x1f, /* U+00001f: <control>*/ + 0x20, /* U+000020: SPACE*/ + 0x21, /* U+000021: EXCLAMATION MARK*/ + 0x22, /* U+000022: QUOTATION MARK*/ + 0x23, /* U+000023: NUMBER SIGN*/ + 0x24, /* U+000024: DOLLAR SIGN*/ + 0x25, /* U+000025: PERCENT SIGN*/ + 0x26, /* U+000026: AMPERSAND*/ + 0x27, /* U+000027: APOSTROPHE*/ + 0x28, /* U+000028: LEFT PARENTHESIS*/ + 0x29, /* U+000029: RIGHT PARENTHESIS*/ + 0x2a, /* U+00002a: ASTERISK*/ + 0x2b, /* U+00002b: PLUS SIGN*/ + 0x2c, /* U+00002c: COMMA*/ + 0x2d, /* U+00002d: HYPHEN-MINUS*/ + 0x2e, /* U+00002e: FULL STOP*/ + 0x2f, /* U+00002f: SOLIDUS*/ + 0x30, /* U+000030: DIGIT ZERO*/ + 0x31, /* U+000031: DIGIT ONE*/ + 0x32, /* U+000032: DIGIT TWO*/ + 0x33, /* U+000033: DIGIT THREE*/ + 0x34, /* U+000034: DIGIT FOUR*/ + 0x35, /* U+000035: DIGIT FIVE*/ + 0x36, /* U+000036: DIGIT SIX*/ + 0x37, /* U+000037: DIGIT SEVEN*/ + 0x38, /* U+000038: DIGIT EIGHT*/ + 0x39, /* U+000039: DIGIT NINE*/ + 0x3a, /* U+00003a: COLON*/ + 0x3b, /* U+00003b: SEMICOLON*/ + 0x3c, /* U+00003c: LESS-THAN SIGN*/ + 0x3d, /* U+00003d: EQUALS SIGN*/ + 0x3e, /* U+00003e: GREATER-THAN SIGN*/ + 0x3f, /* U+00003f: QUESTION MARK*/ + 0x40, /* U+000040: COMMERCIAL AT*/ + 0x61, /* U+000041: LATIN CAPITAL LETTER A*/ + 0x62, /* U+000042: LATIN CAPITAL LETTER B*/ + 0x63, /* U+000043: LATIN CAPITAL LETTER C*/ + 0x64, /* U+000044: LATIN CAPITAL LETTER D*/ + 0x65, /* U+000045: LATIN CAPITAL LETTER E*/ + 0x66, /* U+000046: LATIN CAPITAL LETTER F*/ + 0x67, /* U+000047: LATIN CAPITAL LETTER G*/ + 0x68, /* U+000048: LATIN CAPITAL LETTER H*/ + 0x69, /* U+000049: LATIN CAPITAL LETTER I*/ + 0x6a, /* U+00004a: LATIN CAPITAL LETTER J*/ + 0x6b, /* U+00004b: LATIN CAPITAL LETTER K*/ + 0x6c, /* U+00004c: LATIN CAPITAL LETTER L*/ + 0x6d, /* U+00004d: LATIN CAPITAL LETTER M*/ + 0x6e, /* U+00004e: LATIN CAPITAL LETTER N*/ + 0x6f, /* U+00004f: LATIN CAPITAL LETTER O*/ + 0x70, /* U+000050: LATIN CAPITAL LETTER P*/ + 0x71, /* U+000051: LATIN CAPITAL LETTER Q*/ + 0x72, /* U+000052: LATIN CAPITAL LETTER R*/ + 0x73, /* U+000053: LATIN CAPITAL LETTER S*/ + 0x74, /* U+000054: LATIN CAPITAL LETTER T*/ + 0x75, /* U+000055: LATIN CAPITAL LETTER U*/ + 0x76, /* U+000056: LATIN CAPITAL LETTER V*/ + 0x77, /* U+000057: LATIN CAPITAL LETTER W*/ + 0x78, /* U+000058: LATIN CAPITAL LETTER X*/ + 0x79, /* U+000059: LATIN CAPITAL LETTER Y*/ + 0x7a, /* U+00005a: LATIN CAPITAL LETTER Z*/ + 0x5b, /* U+00005b: LEFT SQUARE BRACKET*/ + 0x5c, /* U+00005c: REVERSE SOLIDUS*/ + 0x5d, /* U+00005d: RIGHT SQUARE BRACKET*/ + 0x5e, /* U+00005e: CIRCUMFLEX ACCENT*/ + 0x5f, /* U+00005f: LOW LINE*/ + 0x60, /* U+000060: GRAVE ACCENT*/ + 0x61, /* U+000061: LATIN SMALL LETTER A*/ + 0x62, /* U+000062: LATIN SMALL LETTER B*/ + 0x63, /* U+000063: LATIN SMALL LETTER C*/ + 0x64, /* U+000064: LATIN SMALL LETTER D*/ + 0x65, /* U+000065: LATIN SMALL LETTER E*/ + 0x66, /* U+000066: LATIN SMALL LETTER F*/ + 0x67, /* U+000067: LATIN SMALL LETTER G*/ + 0x68, /* U+000068: LATIN SMALL LETTER H*/ + 0x69, /* U+000069: LATIN SMALL LETTER I*/ + 0x6a, /* U+00006a: LATIN SMALL LETTER J*/ + 0x6b, /* U+00006b: LATIN SMALL LETTER K*/ + 0x6c, /* U+00006c: LATIN SMALL LETTER L*/ + 0x6d, /* U+00006d: LATIN SMALL LETTER M*/ + 0x6e, /* U+00006e: LATIN SMALL LETTER N*/ + 0x6f, /* U+00006f: LATIN SMALL LETTER O*/ + 0x70, /* U+000070: LATIN SMALL LETTER P*/ + 0x71, /* U+000071: LATIN SMALL LETTER Q*/ + 0x72, /* U+000072: LATIN SMALL LETTER R*/ + 0x73, /* U+000073: LATIN SMALL LETTER S*/ + 0x74, /* U+000074: LATIN SMALL LETTER T*/ + 0x75, /* U+000075: LATIN SMALL LETTER U*/ + 0x76, /* U+000076: LATIN SMALL LETTER V*/ + 0x77, /* U+000077: LATIN SMALL LETTER W*/ + 0x78, /* U+000078: LATIN SMALL LETTER X*/ + 0x79, /* U+000079: LATIN SMALL LETTER Y*/ + 0x7a, /* U+00007a: LATIN SMALL LETTER Z*/ + 0x7b, /* U+00007b: LEFT CURLY BRACKET*/ + 0x7c, /* U+00007c: VERTICAL LINE*/ + 0x7d, /* U+00007d: RIGHT CURLY BRACKET*/ + 0x7e, /* U+00007e: TILDE*/ + 0x7f, /* U+00007f: <control>*/ + 0x80, /* U+000080: <control>*/ + 0x81, /* U+000081: <control>*/ + 0x82, /* U+000082: <control>*/ + 0x83, /* U+000083: <control>*/ + 0x84, /* U+000084: <control>*/ + 0x85, /* U+000085: <control>*/ + 0x86, /* U+000086: <control>*/ + 0x87, /* U+000087: <control>*/ + 0x88, /* U+000088: <control>*/ + 0x89, /* U+000089: <control>*/ + 0x8a, /* U+00008a: <control>*/ + 0x8b, /* U+00008b: <control>*/ + 0x8c, /* U+00008c: <control>*/ + 0x8d, /* U+00008d: <control>*/ + 0x8e, /* U+00008e: <control>*/ + 0x8f, /* U+00008f: <control>*/ + 0x90, /* U+000090: <control>*/ + 0x91, /* U+000091: <control>*/ + 0x92, /* U+000092: <control>*/ + 0x93, /* U+000093: <control>*/ + 0x94, /* U+000094: <control>*/ + 0x95, /* U+000095: <control>*/ + 0x96, /* U+000096: <control>*/ + 0x97, /* U+000097: <control>*/ + 0x98, /* U+000098: <control>*/ + 0x99, /* U+000099: <control>*/ + 0x9a, /* U+00009a: <control>*/ + 0x9b, /* U+00009b: <control>*/ + 0x9c, /* U+00009c: <control>*/ + 0x9d, /* U+00009d: <control>*/ + 0x9e, /* U+00009e: <control>*/ + 0x9f, /* U+00009f: <control>*/ + 0xa0, /* U+0000a0: NO-BREAK SPACE*/ + 0xa1, /* U+0000a1: INVERTED EXCLAMATION MARK*/ + 0xa2, /* U+0000a2: CENT SIGN*/ + 0xa3, /* U+0000a3: POUND SIGN*/ + 0xa4, /* U+0000a4: CURRENCY SIGN*/ + 0xa5, /* U+0000a5: YEN SIGN*/ + 0xa6, /* U+0000a6: BROKEN BAR*/ + 0xa7, /* U+0000a7: SECTION SIGN*/ + 0xa8, /* U+0000a8: DIAERESIS*/ + 0xa9, /* U+0000a9: COPYRIGHT SIGN*/ + 0xaa, /* U+0000aa: FEMININE ORDINAL INDICATOR*/ + 0xab, /* U+0000ab: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK*/ + 0xac, /* U+0000ac: NOT SIGN*/ + 0xad, /* U+0000ad: SOFT HYPHEN*/ + 0xae, /* U+0000ae: REGISTERED SIGN*/ + 0xaf, /* U+0000af: MACRON*/ + 0xb0, /* U+0000b0: DEGREE SIGN*/ + 0xb1, /* U+0000b1: PLUS-MINUS SIGN*/ + 0xb2, /* U+0000b2: SUPERSCRIPT TWO*/ + 0xb3, /* U+0000b3: SUPERSCRIPT THREE*/ + 0xb4, /* U+0000b4: ACUTE ACCENT*/ + 0xb5, /* U+0000b5: MICRO SIGN*/ + 0xb6, /* U+0000b6: PILCROW SIGN*/ + 0xb7, /* U+0000b7: MIDDLE DOT*/ + 0xb8, /* U+0000b8: CEDILLA*/ + 0xb9, /* U+0000b9: SUPERSCRIPT ONE*/ + 0xba, /* U+0000ba: MASCULINE ORDINAL INDICATOR*/ + 0xbb, /* U+0000bb: RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK*/ + 0xbc, /* U+0000bc: VULGAR FRACTION ONE QUARTER*/ + 0xbd, /* U+0000bd: VULGAR FRACTION ONE HALF*/ + 0xbe, /* U+0000be: VULGAR FRACTION THREE QUARTERS*/ + 0xbf, /* U+0000bf: INVERTED QUESTION MARK*/ + 0xe0, /* U+0000c0: LATIN CAPITAL LETTER A WITH GRAVE*/ + 0xe1, /* U+0000c1: LATIN CAPITAL LETTER A WITH ACUTE*/ + 0xe2, /* U+0000c2: LATIN CAPITAL LETTER A WITH CIRCUMFLEX*/ + 0xe3, /* U+0000c3: LATIN CAPITAL LETTER A WITH TILDE*/ + 0xe4, /* U+0000c4: LATIN CAPITAL LETTER A WITH DIAERESIS*/ + 0xe5, /* U+0000c5: LATIN CAPITAL LETTER A WITH RING ABOVE*/ + 0xe6, /* U+0000c6: LATIN CAPITAL LETTER AE*/ + 0xe7, /* U+0000c7: LATIN CAPITAL LETTER C WITH CEDILLA*/ + 0xe8, /* U+0000c8: LATIN CAPITAL LETTER E WITH GRAVE*/ + 0xe9, /* U+0000c9: LATIN CAPITAL LETTER E WITH ACUTE*/ + 0xea, /* U+0000ca: LATIN CAPITAL LETTER E WITH CIRCUMFLEX*/ + 0xeb, /* U+0000cb: LATIN CAPITAL LETTER E WITH DIAERESIS*/ + 0xec, /* U+0000cc: LATIN CAPITAL LETTER I WITH GRAVE*/ + 0xed, /* U+0000cd: LATIN CAPITAL LETTER I WITH ACUTE*/ + 0xee, /* U+0000ce: LATIN CAPITAL LETTER I WITH CIRCUMFLEX*/ + 0xef, /* U+0000cf: LATIN CAPITAL LETTER I WITH DIAERESIS*/ + 0xf0, /* U+0000d0: LATIN CAPITAL LETTER ETH*/ + 0xf1, /* U+0000d1: LATIN CAPITAL LETTER N WITH TILDE*/ + 0xf2, /* U+0000d2: LATIN CAPITAL LETTER O WITH GRAVE*/ + 0xf3, /* U+0000d3: LATIN CAPITAL LETTER O WITH ACUTE*/ + 0xf4, /* U+0000d4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX*/ + 0xf5, /* U+0000d5: LATIN CAPITAL LETTER O WITH TILDE*/ + 0xf6, /* U+0000d6: LATIN CAPITAL LETTER O WITH DIAERESIS*/ + 0xd7, /* U+0000d7: MULTIPLICATION SIGN*/ + 0xf8, /* U+0000d8: LATIN CAPITAL LETTER O WITH STROKE*/ + 0xf9, /* U+0000d9: LATIN CAPITAL LETTER U WITH GRAVE*/ + 0xfa, /* U+0000da: LATIN CAPITAL LETTER U WITH ACUTE*/ + 0xfb, /* U+0000db: LATIN CAPITAL LETTER U WITH CIRCUMFLEX*/ + 0xfc, /* U+0000dc: LATIN CAPITAL LETTER U WITH DIAERESIS*/ + 0xfd, /* U+0000dd: LATIN CAPITAL LETTER Y WITH ACUTE*/ + 0xfe, /* U+0000de: LATIN CAPITAL LETTER THORN*/ + 0xdf, /* U+0000df: LATIN SMALL LETTER SHARP S*/ + 0xe0, /* U+0000e0: LATIN SMALL LETTER A WITH GRAVE*/ + 0xe1, /* U+0000e1: LATIN SMALL LETTER A WITH ACUTE*/ + 0xe2, /* U+0000e2: LATIN SMALL LETTER A WITH CIRCUMFLEX*/ + 0xe3, /* U+0000e3: LATIN SMALL LETTER A WITH TILDE*/ + 0xe4, /* U+0000e4: LATIN SMALL LETTER A WITH DIAERESIS*/ + 0xe5, /* U+0000e5: LATIN SMALL LETTER A WITH RING ABOVE*/ + 0xe6, /* U+0000e6: LATIN SMALL LETTER AE*/ + 0xe7, /* U+0000e7: LATIN SMALL LETTER C WITH CEDILLA*/ + 0xe8, /* U+0000e8: LATIN SMALL LETTER E WITH GRAVE*/ + 0xe9, /* U+0000e9: LATIN SMALL LETTER E WITH ACUTE*/ + 0xea, /* U+0000ea: LATIN SMALL LETTER E WITH CIRCUMFLEX*/ + 0xeb, /* U+0000eb: LATIN SMALL LETTER E WITH DIAERESIS*/ + 0xec, /* U+0000ec: LATIN SMALL LETTER I WITH GRAVE*/ + 0xed, /* U+0000ed: LATIN SMALL LETTER I WITH ACUTE*/ + 0xee, /* U+0000ee: LATIN SMALL LETTER I WITH CIRCUMFLEX*/ + 0xef, /* U+0000ef: LATIN SMALL LETTER I WITH DIAERESIS*/ + 0xf0, /* U+0000f0: LATIN SMALL LETTER ETH*/ + 0xf1, /* U+0000f1: LATIN SMALL LETTER N WITH TILDE*/ + 0xf2, /* U+0000f2: LATIN SMALL LETTER O WITH GRAVE*/ + 0xf3, /* U+0000f3: LATIN SMALL LETTER O WITH ACUTE*/ + 0xf4, /* U+0000f4: LATIN SMALL LETTER O WITH CIRCUMFLEX*/ + 0xf5, /* U+0000f5: LATIN SMALL LETTER O WITH TILDE*/ + 0xf6, /* U+0000f6: LATIN SMALL LETTER O WITH DIAERESIS*/ + 0xf7, /* U+0000f7: DIVISION SIGN*/ + 0xf8, /* U+0000f8: LATIN SMALL LETTER O WITH STROKE*/ + 0xf9, /* U+0000f9: LATIN SMALL LETTER U WITH GRAVE*/ + 0xfa, /* U+0000fa: LATIN SMALL LETTER U WITH ACUTE*/ + 0xfb, /* U+0000fb: LATIN SMALL LETTER U WITH CIRCUMFLEX*/ + 0xfc, /* U+0000fc: LATIN SMALL LETTER U WITH DIAERESIS*/ + 0xfd, /* U+0000fd: LATIN SMALL LETTER Y WITH ACUTE*/ + 0xfe, /* U+0000fe: LATIN SMALL LETTER THORN*/ + 0xff, /* U+0000ff: LATIN SMALL LETTER Y WITH DIAERESIS*/ + 0x101, /* U+000100: LATIN CAPITAL LETTER A WITH MACRON*/ + 0x101, /* U+000101: LATIN SMALL LETTER A WITH MACRON*/ + 0x103, /* U+000102: LATIN CAPITAL LETTER A WITH BREVE*/ + 0x103, /* U+000103: LATIN SMALL LETTER A WITH BREVE*/ + 0x105, /* U+000104: LATIN CAPITAL LETTER A WITH OGONEK*/ + 0x105, /* U+000105: LATIN SMALL LETTER A WITH OGONEK*/ + 0x107, /* U+000106: LATIN CAPITAL LETTER C WITH ACUTE*/ + 0x107, /* U+000107: LATIN SMALL LETTER C WITH ACUTE*/ + 0x109, /* U+000108: LATIN CAPITAL LETTER C WITH CIRCUMFLEX*/ + 0x109, /* U+000109: LATIN SMALL LETTER C WITH CIRCUMFLEX*/ + 0x10b, /* U+00010a: LATIN CAPITAL LETTER C WITH DOT ABOVE*/ + 0x10b, /* U+00010b: LATIN SMALL LETTER C WITH DOT ABOVE*/ + 0x10d, /* U+00010c: LATIN CAPITAL LETTER C WITH CARON*/ + 0x10d, /* U+00010d: LATIN SMALL LETTER C WITH CARON*/ + 0x10f, /* U+00010e: LATIN CAPITAL LETTER D WITH CARON*/ + 0x10f, /* U+00010f: LATIN SMALL LETTER D WITH CARON*/ + 0x111, /* U+000110: LATIN CAPITAL LETTER D WITH STROKE*/ + 0x111, /* U+000111: LATIN SMALL LETTER D WITH STROKE*/ + 0x113, /* U+000112: LATIN CAPITAL LETTER E WITH MACRON*/ + 0x113, /* U+000113: LATIN SMALL LETTER E WITH MACRON*/ + 0x115, /* U+000114: LATIN CAPITAL LETTER E WITH BREVE*/ + 0x115, /* U+000115: LATIN SMALL LETTER E WITH BREVE*/ + 0x117, /* U+000116: LATIN CAPITAL LETTER E WITH DOT ABOVE*/ + 0x117, /* U+000117: LATIN SMALL LETTER E WITH DOT ABOVE*/ + 0x119, /* U+000118: LATIN CAPITAL LETTER E WITH OGONEK*/ + 0x119, /* U+000119: LATIN SMALL LETTER E WITH OGONEK*/ + 0x11b, /* U+00011a: LATIN CAPITAL LETTER E WITH CARON*/ + 0x11b, /* U+00011b: LATIN SMALL LETTER E WITH CARON*/ + 0x11d, /* U+00011c: LATIN CAPITAL LETTER G WITH CIRCUMFLEX*/ + 0x11d, /* U+00011d: LATIN SMALL LETTER G WITH CIRCUMFLEX*/ + 0x11f, /* U+00011e: LATIN CAPITAL LETTER G WITH BREVE*/ + 0x11f, /* U+00011f: LATIN SMALL LETTER G WITH BREVE*/ + 0x121, /* U+000120: LATIN CAPITAL LETTER G WITH DOT ABOVE*/ + 0x121, /* U+000121: LATIN SMALL LETTER G WITH DOT ABOVE*/ + 0x123, /* U+000122: LATIN CAPITAL LETTER G WITH CEDILLA*/ + 0x123, /* U+000123: LATIN SMALL LETTER G WITH CEDILLA*/ + 0x125, /* U+000124: LATIN CAPITAL LETTER H WITH CIRCUMFLEX*/ + 0x125, /* U+000125: LATIN SMALL LETTER H WITH CIRCUMFLEX*/ + 0x127, /* U+000126: LATIN CAPITAL LETTER H WITH STROKE*/ + 0x127, /* U+000127: LATIN SMALL LETTER H WITH STROKE*/ + 0x129, /* U+000128: LATIN CAPITAL LETTER I WITH TILDE*/ + 0x129, /* U+000129: LATIN SMALL LETTER I WITH TILDE*/ + 0x12b, /* U+00012a: LATIN CAPITAL LETTER I WITH MACRON*/ + 0x12b, /* U+00012b: LATIN SMALL LETTER I WITH MACRON*/ + 0x12d, /* U+00012c: LATIN CAPITAL LETTER I WITH BREVE*/ + 0x12d, /* U+00012d: LATIN SMALL LETTER I WITH BREVE*/ + 0x12f, /* U+00012e: LATIN CAPITAL LETTER I WITH OGONEK*/ + 0x12f, /* U+00012f: LATIN SMALL LETTER I WITH OGONEK*/ + 0x69, /* U+000130: LATIN CAPITAL LETTER I WITH DOT ABOVE*/ + 0x131, /* U+000131: LATIN SMALL LETTER DOTLESS I*/ + 0x133, /* U+000132: LATIN CAPITAL LIGATURE IJ*/ + 0x133, /* U+000133: LATIN SMALL LIGATURE IJ*/ + 0x135, /* U+000134: LATIN CAPITAL LETTER J WITH CIRCUMFLEX*/ + 0x135, /* U+000135: LATIN SMALL LETTER J WITH CIRCUMFLEX*/ + 0x137, /* U+000136: LATIN CAPITAL LETTER K WITH CEDILLA*/ + 0x137, /* U+000137: LATIN SMALL LETTER K WITH CEDILLA*/ + 0x138, /* U+000138: LATIN SMALL LETTER KRA*/ + 0x13a, /* U+000139: LATIN CAPITAL LETTER L WITH ACUTE*/ + 0x13a, /* U+00013a: LATIN SMALL LETTER L WITH ACUTE*/ + 0x13c, /* U+00013b: LATIN CAPITAL LETTER L WITH CEDILLA*/ + 0x13c, /* U+00013c: LATIN SMALL LETTER L WITH CEDILLA*/ + 0x13e, /* U+00013d: LATIN CAPITAL LETTER L WITH CARON*/ + 0x13e, /* U+00013e: LATIN SMALL LETTER L WITH CARON*/ + 0x140, /* U+00013f: LATIN CAPITAL LETTER L WITH MIDDLE DOT*/ + 0x140, /* U+000140: LATIN SMALL LETTER L WITH MIDDLE DOT*/ + 0x142, /* U+000141: LATIN CAPITAL LETTER L WITH STROKE*/ + 0x142, /* U+000142: LATIN SMALL LETTER L WITH STROKE*/ + 0x144, /* U+000143: LATIN CAPITAL LETTER N WITH ACUTE*/ + 0x144, /* U+000144: LATIN SMALL LETTER N WITH ACUTE*/ + 0x146, /* U+000145: LATIN CAPITAL LETTER N WITH CEDILLA*/ + 0x146, /* U+000146: LATIN SMALL LETTER N WITH CEDILLA*/ + 0x148, /* U+000147: LATIN CAPITAL LETTER N WITH CARON*/ + 0x148, /* U+000148: LATIN SMALL LETTER N WITH CARON*/ + 0x149, /* U+000149: LATIN SMALL LETTER N PRECEDED BY APOSTROPHE*/ + 0x14b, /* U+00014a: LATIN CAPITAL LETTER ENG*/ + 0x14b, /* U+00014b: LATIN SMALL LETTER ENG*/ + 0x14d, /* U+00014c: LATIN CAPITAL LETTER O WITH MACRON*/ + 0x14d, /* U+00014d: LATIN SMALL LETTER O WITH MACRON*/ + 0x14f, /* U+00014e: LATIN CAPITAL LETTER O WITH BREVE*/ + 0x14f, /* U+00014f: LATIN SMALL LETTER O WITH BREVE*/ + 0x151, /* U+000150: LATIN CAPITAL LETTER O WITH DOUBLE ACUTE*/ + 0x151, /* U+000151: LATIN SMALL LETTER O WITH DOUBLE ACUTE*/ + 0x153, /* U+000152: LATIN CAPITAL LIGATURE OE*/ + 0x153, /* U+000153: LATIN SMALL LIGATURE OE*/ + 0x155, /* U+000154: LATIN CAPITAL LETTER R WITH ACUTE*/ + 0x155, /* U+000155: LATIN SMALL LETTER R WITH ACUTE*/ + 0x157, /* U+000156: LATIN CAPITAL LETTER R WITH CEDILLA*/ + 0x157, /* U+000157: LATIN SMALL LETTER R WITH CEDILLA*/ + 0x159, /* U+000158: LATIN CAPITAL LETTER R WITH CARON*/ + 0x159, /* U+000159: LATIN SMALL LETTER R WITH CARON*/ + 0x15b, /* U+00015a: LATIN CAPITAL LETTER S WITH ACUTE*/ + 0x15b, /* U+00015b: LATIN SMALL LETTER S WITH ACUTE*/ + 0x15d, /* U+00015c: LATIN CAPITAL LETTER S WITH CIRCUMFLEX*/ + 0x15d, /* U+00015d: LATIN SMALL LETTER S WITH CIRCUMFLEX*/ + 0x15f, /* U+00015e: LATIN CAPITAL LETTER S WITH CEDILLA*/ + 0x15f, /* U+00015f: LATIN SMALL LETTER S WITH CEDILLA*/ + 0x161, /* U+000160: LATIN CAPITAL LETTER S WITH CARON*/ + 0x161, /* U+000161: LATIN SMALL LETTER S WITH CARON*/ + 0x163, /* U+000162: LATIN CAPITAL LETTER T WITH CEDILLA*/ + 0x163, /* U+000163: LATIN SMALL LETTER T WITH CEDILLA*/ + 0x165, /* U+000164: LATIN CAPITAL LETTER T WITH CARON*/ + 0x165, /* U+000165: LATIN SMALL LETTER T WITH CARON*/ + 0x167, /* U+000166: LATIN CAPITAL LETTER T WITH STROKE*/ + 0x167, /* U+000167: LATIN SMALL LETTER T WITH STROKE*/ + 0x169, /* U+000168: LATIN CAPITAL LETTER U WITH TILDE*/ + 0x169, /* U+000169: LATIN SMALL LETTER U WITH TILDE*/ + 0x16b, /* U+00016a: LATIN CAPITAL LETTER U WITH MACRON*/ + 0x16b, /* U+00016b: LATIN SMALL LETTER U WITH MACRON*/ + 0x16d, /* U+00016c: LATIN CAPITAL LETTER U WITH BREVE*/ + 0x16d, /* U+00016d: LATIN SMALL LETTER U WITH BREVE*/ + 0x16f, /* U+00016e: LATIN CAPITAL LETTER U WITH RING ABOVE*/ + 0x16f, /* U+00016f: LATIN SMALL LETTER U WITH RING ABOVE*/ + 0x171, /* U+000170: LATIN CAPITAL LETTER U WITH DOUBLE ACUTE*/ + 0x171, /* U+000171: LATIN SMALL LETTER U WITH DOUBLE ACUTE*/ + 0x173, /* U+000172: LATIN CAPITAL LETTER U WITH OGONEK*/ + 0x173, /* U+000173: LATIN SMALL LETTER U WITH OGONEK*/ + 0x175, /* U+000174: LATIN CAPITAL LETTER W WITH CIRCUMFLEX*/ + 0x175, /* U+000175: LATIN SMALL LETTER W WITH CIRCUMFLEX*/ + 0x177, /* U+000176: LATIN CAPITAL LETTER Y WITH CIRCUMFLEX*/ + 0x177, /* U+000177: LATIN SMALL LETTER Y WITH CIRCUMFLEX*/ + 0xff, /* U+000178: LATIN CAPITAL LETTER Y WITH DIAERESIS*/ + 0x17a, /* U+000179: LATIN CAPITAL LETTER Z WITH ACUTE*/ + 0x17a, /* U+00017a: LATIN SMALL LETTER Z WITH ACUTE*/ + 0x17c, /* U+00017b: LATIN CAPITAL LETTER Z WITH DOT ABOVE*/ + 0x17c, /* U+00017c: LATIN SMALL LETTER Z WITH DOT ABOVE*/ + 0x17e, /* U+00017d: LATIN CAPITAL LETTER Z WITH CARON*/ + 0x17e, /* U+00017e: LATIN SMALL LETTER Z WITH CARON*/ + 0x17f, /* U+00017f: LATIN SMALL LETTER LONG S*/ + 0x180, /* U+000180: LATIN SMALL LETTER B WITH STROKE*/ + 0x253, /* U+000181: LATIN CAPITAL LETTER B WITH HOOK*/ + 0x183, /* U+000182: LATIN CAPITAL LETTER B WITH TOPBAR*/ + 0x183, /* U+000183: LATIN SMALL LETTER B WITH TOPBAR*/ + 0x185, /* U+000184: LATIN CAPITAL LETTER TONE SIX*/ + 0x185, /* U+000185: LATIN SMALL LETTER TONE SIX*/ + 0x254, /* U+000186: LATIN CAPITAL LETTER OPEN O*/ + 0x188, /* U+000187: LATIN CAPITAL LETTER C WITH HOOK*/ + 0x188, /* U+000188: LATIN SMALL LETTER C WITH HOOK*/ + 0x256, /* U+000189: LATIN CAPITAL LETTER AFRICAN D*/ + 0x257, /* U+00018a: LATIN CAPITAL LETTER D WITH HOOK*/ + 0x18c, /* U+00018b: LATIN CAPITAL LETTER D WITH TOPBAR*/ + 0x18c, /* U+00018c: LATIN SMALL LETTER D WITH TOPBAR*/ + 0x18d, /* U+00018d: LATIN SMALL LETTER TURNED DELTA*/ + 0x1dd, /* U+00018e: LATIN CAPITAL LETTER REVERSED E*/ + 0x259, /* U+00018f: LATIN CAPITAL LETTER SCHWA*/ + 0x25b, /* U+000190: LATIN CAPITAL LETTER OPEN E*/ + 0x192, /* U+000191: LATIN CAPITAL LETTER F WITH HOOK*/ + 0x192, /* U+000192: LATIN SMALL LETTER F WITH HOOK*/ + 0x260, /* U+000193: LATIN CAPITAL LETTER G WITH HOOK*/ + 0x263, /* U+000194: LATIN CAPITAL LETTER GAMMA*/ + 0x195, /* U+000195: LATIN SMALL LETTER HV*/ + 0x269, /* U+000196: LATIN CAPITAL LETTER IOTA*/ + 0x268, /* U+000197: LATIN CAPITAL LETTER I WITH STROKE*/ + 0x199, /* U+000198: LATIN CAPITAL LETTER K WITH HOOK*/ + 0x199, /* U+000199: LATIN SMALL LETTER K WITH HOOK*/ + 0x19a, /* U+00019a: LATIN SMALL LETTER L WITH BAR*/ + 0x19b, /* U+00019b: LATIN SMALL LETTER LAMBDA WITH STROKE*/ + 0x26f, /* U+00019c: LATIN CAPITAL LETTER TURNED M*/ + 0x272, /* U+00019d: LATIN CAPITAL LETTER N WITH LEFT HOOK*/ + 0x19e, /* U+00019e: LATIN SMALL LETTER N WITH LONG RIGHT LEG*/ + 0x275, /* U+00019f: LATIN CAPITAL LETTER O WITH MIDDLE TILDE*/ + 0x1a1, /* U+0001a0: LATIN CAPITAL LETTER O WITH HORN*/ + 0x1a1, /* U+0001a1: LATIN SMALL LETTER O WITH HORN*/ + 0x1a3, /* U+0001a2: LATIN CAPITAL LETTER OI*/ + 0x1a3, /* U+0001a3: LATIN SMALL LETTER OI*/ + 0x1a5, /* U+0001a4: LATIN CAPITAL LETTER P WITH HOOK*/ + 0x1a5, /* U+0001a5: LATIN SMALL LETTER P WITH HOOK*/ + 0x280, /* U+0001a6: LATIN LETTER YR*/ + 0x1a8, /* U+0001a7: LATIN CAPITAL LETTER TONE TWO*/ + 0x1a8, /* U+0001a8: LATIN SMALL LETTER TONE TWO*/ + 0x283, /* U+0001a9: LATIN CAPITAL LETTER ESH*/ + 0x1aa, /* U+0001aa: LATIN LETTER REVERSED ESH LOOP*/ + 0x1ab, /* U+0001ab: LATIN SMALL LETTER T WITH PALATAL HOOK*/ + 0x1ad, /* U+0001ac: LATIN CAPITAL LETTER T WITH HOOK*/ + 0x1ad, /* U+0001ad: LATIN SMALL LETTER T WITH HOOK*/ + 0x288, /* U+0001ae: LATIN CAPITAL LETTER T WITH RETROFLEX HOOK*/ + 0x1b0, /* U+0001af: LATIN CAPITAL LETTER U WITH HORN*/ + 0x1b0, /* U+0001b0: LATIN SMALL LETTER U WITH HORN*/ + 0x28a, /* U+0001b1: LATIN CAPITAL LETTER UPSILON*/ + 0x28b, /* U+0001b2: LATIN CAPITAL LETTER V WITH HOOK*/ + 0x1b4, /* U+0001b3: LATIN CAPITAL LETTER Y WITH HOOK*/ + 0x1b4, /* U+0001b4: LATIN SMALL LETTER Y WITH HOOK*/ + 0x1b6, /* U+0001b5: LATIN CAPITAL LETTER Z WITH STROKE*/ + 0x1b6, /* U+0001b6: LATIN SMALL LETTER Z WITH STROKE*/ + 0x292, /* U+0001b7: LATIN CAPITAL LETTER EZH*/ + 0x1b9, /* U+0001b8: LATIN CAPITAL LETTER EZH REVERSED*/ + 0x1b9, /* U+0001b9: LATIN SMALL LETTER EZH REVERSED*/ + 0x1ba, /* U+0001ba: LATIN SMALL LETTER EZH WITH TAIL*/ + 0x1bb, /* U+0001bb: LATIN LETTER TWO WITH STROKE*/ + 0x1bd, /* U+0001bc: LATIN CAPITAL LETTER TONE FIVE*/ + 0x1bd, /* U+0001bd: LATIN SMALL LETTER TONE FIVE*/ + 0x1be, /* U+0001be: LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE*/ + 0x1bf, /* U+0001bf: LATIN LETTER WYNN*/ + 0x1c0, /* U+0001c0: LATIN LETTER DENTAL CLICK*/ + 0x1c1, /* U+0001c1: LATIN LETTER LATERAL CLICK*/ + 0x1c2, /* U+0001c2: LATIN LETTER ALVEOLAR CLICK*/ + 0x1c3, /* U+0001c3: LATIN LETTER RETROFLEX CLICK*/ + 0x1c6, /* U+0001c4: LATIN CAPITAL LETTER DZ WITH CARON*/ + 0x1c6, /* U+0001c5: LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON*/ + 0x1c6, /* U+0001c6: LATIN SMALL LETTER DZ WITH CARON*/ + 0x1c9, /* U+0001c7: LATIN CAPITAL LETTER LJ*/ + 0x1c9, /* U+0001c8: LATIN CAPITAL LETTER L WITH SMALL LETTER J*/ + 0x1c9, /* U+0001c9: LATIN SMALL LETTER LJ*/ + 0x1cc, /* U+0001ca: LATIN CAPITAL LETTER NJ*/ + 0x1cc, /* U+0001cb: LATIN CAPITAL LETTER N WITH SMALL LETTER J*/ + 0x1cc, /* U+0001cc: LATIN SMALL LETTER NJ*/ + 0x1ce, /* U+0001cd: LATIN CAPITAL LETTER A WITH CARON*/ + 0x1ce, /* U+0001ce: LATIN SMALL LETTER A WITH CARON*/ + 0x1d0, /* U+0001cf: LATIN CAPITAL LETTER I WITH CARON*/ + 0x1d0, /* U+0001d0: LATIN SMALL LETTER I WITH CARON*/ + 0x1d2, /* U+0001d1: LATIN CAPITAL LETTER O WITH CARON*/ + 0x1d2, /* U+0001d2: LATIN SMALL LETTER O WITH CARON*/ + 0x1d4, /* U+0001d3: LATIN CAPITAL LETTER U WITH CARON*/ + 0x1d4, /* U+0001d4: LATIN SMALL LETTER U WITH CARON*/ + 0x1d6, /* U+0001d5: LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON*/ + 0x1d6, /* U+0001d6: LATIN SMALL LETTER U WITH DIAERESIS AND MACRON*/ + 0x1d8, /* U+0001d7: LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE*/ + 0x1d8, /* U+0001d8: LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE*/ + 0x1da, /* U+0001d9: LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON*/ + 0x1da, /* U+0001da: LATIN SMALL LETTER U WITH DIAERESIS AND CARON*/ + 0x1dc, /* U+0001db: LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE*/ + 0x1dc, /* U+0001dc: LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE*/ + 0x1dd, /* U+0001dd: LATIN SMALL LETTER TURNED E*/ + 0x1df, /* U+0001de: LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON*/ + 0x1df, /* U+0001df: LATIN SMALL LETTER A WITH DIAERESIS AND MACRON*/ + 0x1e1, /* U+0001e0: LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON*/ + 0x1e1, /* U+0001e1: LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON*/ + 0x1e3, /* U+0001e2: LATIN CAPITAL LETTER AE WITH MACRON*/ + 0x1e3, /* U+0001e3: LATIN SMALL LETTER AE WITH MACRON*/ + 0x1e5, /* U+0001e4: LATIN CAPITAL LETTER G WITH STROKE*/ + 0x1e5, /* U+0001e5: LATIN SMALL LETTER G WITH STROKE*/ + 0x1e7, /* U+0001e6: LATIN CAPITAL LETTER G WITH CARON*/ + 0x1e7, /* U+0001e7: LATIN SMALL LETTER G WITH CARON*/ + 0x1e9, /* U+0001e8: LATIN CAPITAL LETTER K WITH CARON*/ + 0x1e9, /* U+0001e9: LATIN SMALL LETTER K WITH CARON*/ + 0x1eb, /* U+0001ea: LATIN CAPITAL LETTER O WITH OGONEK*/ + 0x1eb, /* U+0001eb: LATIN SMALL LETTER O WITH OGONEK*/ + 0x1ed, /* U+0001ec: LATIN CAPITAL LETTER O WITH OGONEK AND MACRON*/ + 0x1ed, /* U+0001ed: LATIN SMALL LETTER O WITH OGONEK AND MACRON*/ + 0x1ef, /* U+0001ee: LATIN CAPITAL LETTER EZH WITH CARON*/ + 0x1ef, /* U+0001ef: LATIN SMALL LETTER EZH WITH CARON*/ + 0x1f0, /* U+0001f0: LATIN SMALL LETTER J WITH CARON*/ + 0x1f3, /* U+0001f1: LATIN CAPITAL LETTER DZ*/ + 0x1f3, /* U+0001f2: LATIN CAPITAL LETTER D WITH SMALL LETTER Z*/ + 0x1f3, /* U+0001f3: LATIN SMALL LETTER DZ*/ + 0x1f5, /* U+0001f4: LATIN CAPITAL LETTER G WITH ACUTE*/ + 0x1f5, /* U+0001f5: LATIN SMALL LETTER G WITH ACUTE*/ + 0x195, /* U+0001f6: LATIN CAPITAL LETTER HWAIR*/ + 0x1bf, /* U+0001f7: LATIN CAPITAL LETTER WYNN*/ + 0x1f9, /* U+0001f8: LATIN CAPITAL LETTER N WITH GRAVE*/ + 0x1f9, /* U+0001f9: LATIN SMALL LETTER N WITH GRAVE*/ + 0x1fb, /* U+0001fa: LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE*/ + 0x1fb, /* U+0001fb: LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE*/ + 0x1fd, /* U+0001fc: LATIN CAPITAL LETTER AE WITH ACUTE*/ + 0x1fd, /* U+0001fd: LATIN SMALL LETTER AE WITH ACUTE*/ + 0x1ff, /* U+0001fe: LATIN CAPITAL LETTER O WITH STROKE AND ACUTE*/ + 0x1ff, /* U+0001ff: LATIN SMALL LETTER O WITH STROKE AND ACUTE*/ + 0x201, /* U+000200: LATIN CAPITAL LETTER A WITH DOUBLE GRAVE*/ + 0x201, /* U+000201: LATIN SMALL LETTER A WITH DOUBLE GRAVE*/ + 0x203, /* U+000202: LATIN CAPITAL LETTER A WITH INVERTED BREVE*/ + 0x203, /* U+000203: LATIN SMALL LETTER A WITH INVERTED BREVE*/ + 0x205, /* U+000204: LATIN CAPITAL LETTER E WITH DOUBLE GRAVE*/ + 0x205, /* U+000205: LATIN SMALL LETTER E WITH DOUBLE GRAVE*/ + 0x207, /* U+000206: LATIN CAPITAL LETTER E WITH INVERTED BREVE*/ + 0x207, /* U+000207: LATIN SMALL LETTER E WITH INVERTED BREVE*/ + 0x209, /* U+000208: LATIN CAPITAL LETTER I WITH DOUBLE GRAVE*/ + 0x209, /* U+000209: LATIN SMALL LETTER I WITH DOUBLE GRAVE*/ + 0x20b, /* U+00020a: LATIN CAPITAL LETTER I WITH INVERTED BREVE*/ + 0x20b, /* U+00020b: LATIN SMALL LETTER I WITH INVERTED BREVE*/ + 0x20d, /* U+00020c: LATIN CAPITAL LETTER O WITH DOUBLE GRAVE*/ + 0x20d, /* U+00020d: LATIN SMALL LETTER O WITH DOUBLE GRAVE*/ + 0x20f, /* U+00020e: LATIN CAPITAL LETTER O WITH INVERTED BREVE*/ + 0x20f, /* U+00020f: LATIN SMALL LETTER O WITH INVERTED BREVE*/ + 0x211, /* U+000210: LATIN CAPITAL LETTER R WITH DOUBLE GRAVE*/ + 0x211, /* U+000211: LATIN SMALL LETTER R WITH DOUBLE GRAVE*/ + 0x213, /* U+000212: LATIN CAPITAL LETTER R WITH INVERTED BREVE*/ + 0x213, /* U+000213: LATIN SMALL LETTER R WITH INVERTED BREVE*/ + 0x215, /* U+000214: LATIN CAPITAL LETTER U WITH DOUBLE GRAVE*/ + 0x215, /* U+000215: LATIN SMALL LETTER U WITH DOUBLE GRAVE*/ + 0x217, /* U+000216: LATIN CAPITAL LETTER U WITH INVERTED BREVE*/ + 0x217, /* U+000217: LATIN SMALL LETTER U WITH INVERTED BREVE*/ + 0x219, /* U+000218: LATIN CAPITAL LETTER S WITH COMMA BELOW*/ + 0x219, /* U+000219: LATIN SMALL LETTER S WITH COMMA BELOW*/ + 0x21b, /* U+00021a: LATIN CAPITAL LETTER T WITH COMMA BELOW*/ + 0x21b, /* U+00021b: LATIN SMALL LETTER T WITH COMMA BELOW*/ + 0x21d, /* U+00021c: LATIN CAPITAL LETTER YOGH*/ + 0x21d, /* U+00021d: LATIN SMALL LETTER YOGH*/ + 0x21f, /* U+00021e: LATIN CAPITAL LETTER H WITH CARON*/ + 0x21f, /* U+00021f: LATIN SMALL LETTER H WITH CARON*/ + 0x19e, /* U+000220: LATIN CAPITAL LETTER N WITH LONG RIGHT LEG*/ + 0x221, /* U+000221: LATIN SMALL LETTER D WITH CURL*/ + 0x223, /* U+000222: LATIN CAPITAL LETTER OU*/ + 0x223, /* U+000223: LATIN SMALL LETTER OU*/ + 0x225, /* U+000224: LATIN CAPITAL LETTER Z WITH HOOK*/ + 0x225, /* U+000225: LATIN SMALL LETTER Z WITH HOOK*/ + 0x227, /* U+000226: LATIN CAPITAL LETTER A WITH DOT ABOVE*/ + 0x227, /* U+000227: LATIN SMALL LETTER A WITH DOT ABOVE*/ + 0x229, /* U+000228: LATIN CAPITAL LETTER E WITH CEDILLA*/ + 0x229, /* U+000229: LATIN SMALL LETTER E WITH CEDILLA*/ + 0x22b, /* U+00022a: LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON*/ + 0x22b, /* U+00022b: LATIN SMALL LETTER O WITH DIAERESIS AND MACRON*/ + 0x22d, /* U+00022c: LATIN CAPITAL LETTER O WITH TILDE AND MACRON*/ + 0x22d, /* U+00022d: LATIN SMALL LETTER O WITH TILDE AND MACRON*/ + 0x22f, /* U+00022e: LATIN CAPITAL LETTER O WITH DOT ABOVE*/ + 0x22f, /* U+00022f: LATIN SMALL LETTER O WITH DOT ABOVE*/ + 0x231, /* U+000230: LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON*/ + 0x231, /* U+000231: LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON*/ + 0x233, /* U+000232: LATIN CAPITAL LETTER Y WITH MACRON*/ + 0x233, /* U+000233: LATIN SMALL LETTER Y WITH MACRON*/ + 0x234, /* U+000234: LATIN SMALL LETTER L WITH CURL*/ + 0x235, /* U+000235: LATIN SMALL LETTER N WITH CURL*/ + 0x236, /* U+000236: LATIN SMALL LETTER T WITH CURL*/ + 0x237, /* U+000237: LATIN SMALL LETTER DOTLESS J*/ + 0x238, /* U+000238: LATIN SMALL LETTER DB DIGRAPH*/ + 0x239, /* U+000239: LATIN SMALL LETTER QP DIGRAPH*/ + 0x2c65, /* U+00023a: LATIN CAPITAL LETTER A WITH STROKE*/ + 0x23c, /* U+00023b: LATIN CAPITAL LETTER C WITH STROKE*/ + 0x23c, /* U+00023c: LATIN SMALL LETTER C WITH STROKE*/ + 0x19a, /* U+00023d: LATIN CAPITAL LETTER L WITH BAR*/ + 0x2c66, /* U+00023e: LATIN CAPITAL LETTER T WITH DIAGONAL STROKE*/ + 0x23f, /* U+00023f: LATIN SMALL LETTER S WITH SWASH TAIL*/ + 0x240, /* U+000240: LATIN SMALL LETTER Z WITH SWASH TAIL*/ + 0x242, /* U+000241: LATIN CAPITAL LETTER GLOTTAL STOP*/ + 0x242, /* U+000242: LATIN SMALL LETTER GLOTTAL STOP*/ + 0x180, /* U+000243: LATIN CAPITAL LETTER B WITH STROKE*/ + 0x289, /* U+000244: LATIN CAPITAL LETTER U BAR*/ + 0x28c, /* U+000245: LATIN CAPITAL LETTER TURNED V*/ + 0x247, /* U+000246: LATIN CAPITAL LETTER E WITH STROKE*/ + 0x247, /* U+000247: LATIN SMALL LETTER E WITH STROKE*/ + 0x249, /* U+000248: LATIN CAPITAL LETTER J WITH STROKE*/ + 0x249, /* U+000249: LATIN SMALL LETTER J WITH STROKE*/ + 0x24b, /* U+00024a: LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL*/ + 0x24b, /* U+00024b: LATIN SMALL LETTER Q WITH HOOK TAIL*/ + 0x24d, /* U+00024c: LATIN CAPITAL LETTER R WITH STROKE*/ + 0x24d, /* U+00024d: LATIN SMALL LETTER R WITH STROKE*/ + 0x24f, /* U+00024e: LATIN CAPITAL LETTER Y WITH STROKE*/ + 0x24f, /* U+00024f: LATIN SMALL LETTER Y WITH STROKE*/ + 0x250, /* U+000250: LATIN SMALL LETTER TURNED A*/ + 0x251, /* U+000251: LATIN SMALL LETTER ALPHA*/ + 0x252, /* U+000252: LATIN SMALL LETTER TURNED ALPHA*/ + 0x253, /* U+000253: LATIN SMALL LETTER B WITH HOOK*/ + 0x254, /* U+000254: LATIN SMALL LETTER OPEN O*/ + 0x255, /* U+000255: LATIN SMALL LETTER C WITH CURL*/ + 0x256, /* U+000256: LATIN SMALL LETTER D WITH TAIL*/ + 0x257, /* U+000257: LATIN SMALL LETTER D WITH HOOK*/ + 0x258, /* U+000258: LATIN SMALL LETTER REVERSED E*/ + 0x259, /* U+000259: LATIN SMALL LETTER SCHWA*/ + 0x25a, /* U+00025a: LATIN SMALL LETTER SCHWA WITH HOOK*/ + 0x25b, /* U+00025b: LATIN SMALL LETTER OPEN E*/ + 0x25c, /* U+00025c: LATIN SMALL LETTER REVERSED OPEN E*/ + 0x25d, /* U+00025d: LATIN SMALL LETTER REVERSED OPEN E WITH HOOK*/ + 0x25e, /* U+00025e: LATIN SMALL LETTER CLOSED REVERSED OPEN E*/ + 0x25f, /* U+00025f: LATIN SMALL LETTER DOTLESS J WITH STROKE*/ + 0x260, /* U+000260: LATIN SMALL LETTER G WITH HOOK*/ + 0x261, /* U+000261: LATIN SMALL LETTER SCRIPT G*/ + 0x262, /* U+000262: LATIN LETTER SMALL CAPITAL G*/ + 0x263, /* U+000263: LATIN SMALL LETTER GAMMA*/ + 0x264, /* U+000264: LATIN SMALL LETTER RAMS HORN*/ + 0x265, /* U+000265: LATIN SMALL LETTER TURNED H*/ + 0x266, /* U+000266: LATIN SMALL LETTER H WITH HOOK*/ + 0x267, /* U+000267: LATIN SMALL LETTER HENG WITH HOOK*/ + 0x268, /* U+000268: LATIN SMALL LETTER I WITH STROKE*/ + 0x269, /* U+000269: LATIN SMALL LETTER IOTA*/ + 0x26a, /* U+00026a: LATIN LETTER SMALL CAPITAL I*/ + 0x26b, /* U+00026b: LATIN SMALL LETTER L WITH MIDDLE TILDE*/ + 0x26c, /* U+00026c: LATIN SMALL LETTER L WITH BELT*/ + 0x26d, /* U+00026d: LATIN SMALL LETTER L WITH RETROFLEX HOOK*/ + 0x26e, /* U+00026e: LATIN SMALL LETTER LEZH*/ + 0x26f, /* U+00026f: LATIN SMALL LETTER TURNED M*/ + 0x270, /* U+000270: LATIN SMALL LETTER TURNED M WITH LONG LEG*/ + 0x271, /* U+000271: LATIN SMALL LETTER M WITH HOOK*/ + 0x272, /* U+000272: LATIN SMALL LETTER N WITH LEFT HOOK*/ + 0x273, /* U+000273: LATIN SMALL LETTER N WITH RETROFLEX HOOK*/ + 0x274, /* U+000274: LATIN LETTER SMALL CAPITAL N*/ + 0x275, /* U+000275: LATIN SMALL LETTER BARRED O*/ + 0x276, /* U+000276: LATIN LETTER SMALL CAPITAL OE*/ + 0x277, /* U+000277: LATIN SMALL LETTER CLOSED OMEGA*/ + 0x278, /* U+000278: LATIN SMALL LETTER PHI*/ + 0x279, /* U+000279: LATIN SMALL LETTER TURNED R*/ + 0x27a, /* U+00027a: LATIN SMALL LETTER TURNED R WITH LONG LEG*/ + 0x27b, /* U+00027b: LATIN SMALL LETTER TURNED R WITH HOOK*/ + 0x27c, /* U+00027c: LATIN SMALL LETTER R WITH LONG LEG*/ + 0x27d, /* U+00027d: LATIN SMALL LETTER R WITH TAIL*/ + 0x27e, /* U+00027e: LATIN SMALL LETTER R WITH FISHHOOK*/ + 0x27f, /* U+00027f: LATIN SMALL LETTER REVERSED R WITH FISHHOOK*/ + 0x280, /* U+000280: LATIN LETTER SMALL CAPITAL R*/ + 0x281, /* U+000281: LATIN LETTER SMALL CAPITAL INVERTED R*/ + 0x282, /* U+000282: LATIN SMALL LETTER S WITH HOOK*/ + 0x283, /* U+000283: LATIN SMALL LETTER ESH*/ + 0x284, /* U+000284: LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK*/ + 0x285, /* U+000285: LATIN SMALL LETTER SQUAT REVERSED ESH*/ + 0x286, /* U+000286: LATIN SMALL LETTER ESH WITH CURL*/ + 0x287, /* U+000287: LATIN SMALL LETTER TURNED T*/ + 0x288, /* U+000288: LATIN SMALL LETTER T WITH RETROFLEX HOOK*/ + 0x289, /* U+000289: LATIN SMALL LETTER U BAR*/ + 0x28a, /* U+00028a: LATIN SMALL LETTER UPSILON*/ + 0x28b, /* U+00028b: LATIN SMALL LETTER V WITH HOOK*/ + 0x28c, /* U+00028c: LATIN SMALL LETTER TURNED V*/ + 0x28d, /* U+00028d: LATIN SMALL LETTER TURNED W*/ + 0x28e, /* U+00028e: LATIN SMALL LETTER TURNED Y*/ + 0x28f, /* U+00028f: LATIN LETTER SMALL CAPITAL Y*/ + 0x290, /* U+000290: LATIN SMALL LETTER Z WITH RETROFLEX HOOK*/ + 0x291, /* U+000291: LATIN SMALL LETTER Z WITH CURL*/ + 0x292, /* U+000292: LATIN SMALL LETTER EZH*/ + 0x293, /* U+000293: LATIN SMALL LETTER EZH WITH CURL*/ + 0x294, /* U+000294: LATIN LETTER GLOTTAL STOP*/ + 0x295, /* U+000295: LATIN LETTER PHARYNGEAL VOICED FRICATIVE*/ + 0x296, /* U+000296: LATIN LETTER INVERTED GLOTTAL STOP*/ + 0x297, /* U+000297: LATIN LETTER STRETCHED C*/ + 0x298, /* U+000298: LATIN LETTER BILABIAL CLICK*/ + 0x299, /* U+000299: LATIN LETTER SMALL CAPITAL B*/ + 0x29a, /* U+00029a: LATIN SMALL LETTER CLOSED OPEN E*/ + 0x29b, /* U+00029b: LATIN LETTER SMALL CAPITAL G WITH HOOK*/ + 0x29c, /* U+00029c: LATIN LETTER SMALL CAPITAL H*/ + 0x29d, /* U+00029d: LATIN SMALL LETTER J WITH CROSSED-TAIL*/ + 0x29e, /* U+00029e: LATIN SMALL LETTER TURNED K*/ + 0x29f, /* U+00029f: LATIN LETTER SMALL CAPITAL L*/ + 0x2a0, /* U+0002a0: LATIN SMALL LETTER Q WITH HOOK*/ + 0x2a1, /* U+0002a1: LATIN LETTER GLOTTAL STOP WITH STROKE*/ + 0x2a2, /* U+0002a2: LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE*/ + 0x2a3, /* U+0002a3: LATIN SMALL LETTER DZ DIGRAPH*/ + 0x2a4, /* U+0002a4: LATIN SMALL LETTER DEZH DIGRAPH*/ + 0x2a5, /* U+0002a5: LATIN SMALL LETTER DZ DIGRAPH WITH CURL*/ + 0x2a6, /* U+0002a6: LATIN SMALL LETTER TS DIGRAPH*/ + 0x2a7, /* U+0002a7: LATIN SMALL LETTER TESH DIGRAPH*/ + 0x2a8, /* U+0002a8: LATIN SMALL LETTER TC DIGRAPH WITH CURL*/ + 0x2a9, /* U+0002a9: LATIN SMALL LETTER FENG DIGRAPH*/ + 0x2aa, /* U+0002aa: LATIN SMALL LETTER LS DIGRAPH*/ + 0x2ab, /* U+0002ab: LATIN SMALL LETTER LZ DIGRAPH*/ + 0x2ac, /* U+0002ac: LATIN LETTER BILABIAL PERCUSSIVE*/ + 0x2ad, /* U+0002ad: LATIN LETTER BIDENTAL PERCUSSIVE*/ + 0x2ae, /* U+0002ae: LATIN SMALL LETTER TURNED H WITH FISHHOOK*/ + 0x2af, /* U+0002af: LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL*/ + 0x2b0, /* U+0002b0: MODIFIER LETTER SMALL H*/ + 0x2b1, /* U+0002b1: MODIFIER LETTER SMALL H WITH HOOK*/ + 0x2b2, /* U+0002b2: MODIFIER LETTER SMALL J*/ + 0x2b3, /* U+0002b3: MODIFIER LETTER SMALL R*/ + 0x2b4, /* U+0002b4: MODIFIER LETTER SMALL TURNED R*/ + 0x2b5, /* U+0002b5: MODIFIER LETTER SMALL TURNED R WITH HOOK*/ + 0x2b6, /* U+0002b6: MODIFIER LETTER SMALL CAPITAL INVERTED R*/ + 0x2b7, /* U+0002b7: MODIFIER LETTER SMALL W*/ + 0x2b8, /* U+0002b8: MODIFIER LETTER SMALL Y*/ + 0x2b9, /* U+0002b9: MODIFIER LETTER PRIME*/ + 0x2ba, /* U+0002ba: MODIFIER LETTER DOUBLE PRIME*/ + 0x2bb, /* U+0002bb: MODIFIER LETTER TURNED COMMA*/ + 0x2bc, /* U+0002bc: MODIFIER LETTER APOSTROPHE*/ + 0x2bd, /* U+0002bd: MODIFIER LETTER REVERSED COMMA*/ + 0x2be, /* U+0002be: MODIFIER LETTER RIGHT HALF RING*/ + 0x2bf, /* U+0002bf: MODIFIER LETTER LEFT HALF RING*/ + 0x2c0, /* U+0002c0: MODIFIER LETTER GLOTTAL STOP*/ + 0x2c1, /* U+0002c1: MODIFIER LETTER REVERSED GLOTTAL STOP*/ + 0x2c2, /* U+0002c2: MODIFIER LETTER LEFT ARROWHEAD*/ + 0x2c3, /* U+0002c3: MODIFIER LETTER RIGHT ARROWHEAD*/ + 0x2c4, /* U+0002c4: MODIFIER LETTER UP ARROWHEAD*/ + 0x2c5, /* U+0002c5: MODIFIER LETTER DOWN ARROWHEAD*/ + 0x2c6, /* U+0002c6: MODIFIER LETTER CIRCUMFLEX ACCENT*/ + 0x2c7, /* U+0002c7: CARON*/ + 0x2c8, /* U+0002c8: MODIFIER LETTER VERTICAL LINE*/ + 0x2c9, /* U+0002c9: MODIFIER LETTER MACRON*/ + 0x2ca, /* U+0002ca: MODIFIER LETTER ACUTE ACCENT*/ + 0x2cb, /* U+0002cb: MODIFIER LETTER GRAVE ACCENT*/ + 0x2cc, /* U+0002cc: MODIFIER LETTER LOW VERTICAL LINE*/ + 0x2cd, /* U+0002cd: MODIFIER LETTER LOW MACRON*/ + 0x2ce, /* U+0002ce: MODIFIER LETTER LOW GRAVE ACCENT*/ + 0x2cf, /* U+0002cf: MODIFIER LETTER LOW ACUTE ACCENT*/ + 0x2d0, /* U+0002d0: MODIFIER LETTER TRIANGULAR COLON*/ + 0x2d1, /* U+0002d1: MODIFIER LETTER HALF TRIANGULAR COLON*/ + 0x2d2, /* U+0002d2: MODIFIER LETTER CENTRED RIGHT HALF RING*/ + 0x2d3, /* U+0002d3: MODIFIER LETTER CENTRED LEFT HALF RING*/ + 0x2d4, /* U+0002d4: MODIFIER LETTER UP TACK*/ + 0x2d5, /* U+0002d5: MODIFIER LETTER DOWN TACK*/ + 0x2d6, /* U+0002d6: MODIFIER LETTER PLUS SIGN*/ + 0x2d7, /* U+0002d7: MODIFIER LETTER MINUS SIGN*/ + 0x2d8, /* U+0002d8: BREVE*/ + 0x2d9, /* U+0002d9: DOT ABOVE*/ + 0x2da, /* U+0002da: RING ABOVE*/ + 0x2db, /* U+0002db: OGONEK*/ + 0x2dc, /* U+0002dc: SMALL TILDE*/ + 0x2dd, /* U+0002dd: DOUBLE ACUTE ACCENT*/ + 0x2de, /* U+0002de: MODIFIER LETTER RHOTIC HOOK*/ + 0x2df, /* U+0002df: MODIFIER LETTER CROSS ACCENT*/ + 0x2e0, /* U+0002e0: MODIFIER LETTER SMALL GAMMA*/ + 0x2e1, /* U+0002e1: MODIFIER LETTER SMALL L*/ + 0x2e2, /* U+0002e2: MODIFIER LETTER SMALL S*/ + 0x2e3, /* U+0002e3: MODIFIER LETTER SMALL X*/ + 0x2e4, /* U+0002e4: MODIFIER LETTER SMALL REVERSED GLOTTAL STOP*/ + 0x2e5, /* U+0002e5: MODIFIER LETTER EXTRA-HIGH TONE BAR*/ + 0x2e6, /* U+0002e6: MODIFIER LETTER HIGH TONE BAR*/ + 0x2e7, /* U+0002e7: MODIFIER LETTER MID TONE BAR*/ + 0x2e8, /* U+0002e8: MODIFIER LETTER LOW TONE BAR*/ + 0x2e9, /* U+0002e9: MODIFIER LETTER EXTRA-LOW TONE BAR*/ + 0x2ea, /* U+0002ea: MODIFIER LETTER YIN DEPARTING TONE MARK*/ + 0x2eb, /* U+0002eb: MODIFIER LETTER YANG DEPARTING TONE MARK*/ + 0x2ec, /* U+0002ec: MODIFIER LETTER VOICING*/ + 0x2ed, /* U+0002ed: MODIFIER LETTER UNASPIRATED*/ + 0x2ee, /* U+0002ee: MODIFIER LETTER DOUBLE APOSTROPHE*/ + 0x2ef, /* U+0002ef: MODIFIER LETTER LOW DOWN ARROWHEAD*/ + 0x2f0, /* U+0002f0: MODIFIER LETTER LOW UP ARROWHEAD*/ + 0x2f1, /* U+0002f1: MODIFIER LETTER LOW LEFT ARROWHEAD*/ + 0x2f2, /* U+0002f2: MODIFIER LETTER LOW RIGHT ARROWHEAD*/ + 0x2f3, /* U+0002f3: MODIFIER LETTER LOW RING*/ + 0x2f4, /* U+0002f4: MODIFIER LETTER MIDDLE GRAVE ACCENT*/ + 0x2f5, /* U+0002f5: MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT*/ + 0x2f6, /* U+0002f6: MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT*/ + 0x2f7, /* U+0002f7: MODIFIER LETTER LOW TILDE*/ + 0x2f8, /* U+0002f8: MODIFIER LETTER RAISED COLON*/ + 0x2f9, /* U+0002f9: MODIFIER LETTER BEGIN HIGH TONE*/ + 0x2fa, /* U+0002fa: MODIFIER LETTER END HIGH TONE*/ + 0x2fb, /* U+0002fb: MODIFIER LETTER BEGIN LOW TONE*/ + 0x2fc, /* U+0002fc: MODIFIER LETTER END LOW TONE*/ + 0x2fd, /* U+0002fd: MODIFIER LETTER SHELF*/ + 0x2fe, /* U+0002fe: MODIFIER LETTER OPEN SHELF*/ + 0x2ff, /* U+0002ff: MODIFIER LETTER LOW LEFT ARROW*/ + 0x300, /* U+000300: COMBINING GRAVE ACCENT*/ + 0x301, /* U+000301: COMBINING ACUTE ACCENT*/ + 0x302, /* U+000302: COMBINING CIRCUMFLEX ACCENT*/ + 0x303, /* U+000303: COMBINING TILDE*/ + 0x304, /* U+000304: COMBINING MACRON*/ + 0x305, /* U+000305: COMBINING OVERLINE*/ + 0x306, /* U+000306: COMBINING BREVE*/ + 0x307, /* U+000307: COMBINING DOT ABOVE*/ + 0x308, /* U+000308: COMBINING DIAERESIS*/ + 0x309, /* U+000309: COMBINING HOOK ABOVE*/ + 0x30a, /* U+00030a: COMBINING RING ABOVE*/ + 0x30b, /* U+00030b: COMBINING DOUBLE ACUTE ACCENT*/ + 0x30c, /* U+00030c: COMBINING CARON*/ + 0x30d, /* U+00030d: COMBINING VERTICAL LINE ABOVE*/ + 0x30e, /* U+00030e: COMBINING DOUBLE VERTICAL LINE ABOVE*/ + 0x30f, /* U+00030f: COMBINING DOUBLE GRAVE ACCENT*/ + 0x310, /* U+000310: COMBINING CANDRABINDU*/ + 0x311, /* U+000311: COMBINING INVERTED BREVE*/ + 0x312, /* U+000312: COMBINING TURNED COMMA ABOVE*/ + 0x313, /* U+000313: COMBINING COMMA ABOVE*/ + 0x314, /* U+000314: COMBINING REVERSED COMMA ABOVE*/ + 0x315, /* U+000315: COMBINING COMMA ABOVE RIGHT*/ + 0x316, /* U+000316: COMBINING GRAVE ACCENT BELOW*/ + 0x317, /* U+000317: COMBINING ACUTE ACCENT BELOW*/ + 0x318, /* U+000318: COMBINING LEFT TACK BELOW*/ + 0x319, /* U+000319: COMBINING RIGHT TACK BELOW*/ + 0x31a, /* U+00031a: COMBINING LEFT ANGLE ABOVE*/ + 0x31b, /* U+00031b: COMBINING HORN*/ + 0x31c, /* U+00031c: COMBINING LEFT HALF RING BELOW*/ + 0x31d, /* U+00031d: COMBINING UP TACK BELOW*/ + 0x31e, /* U+00031e: COMBINING DOWN TACK BELOW*/ + 0x31f, /* U+00031f: COMBINING PLUS SIGN BELOW*/ + 0x320, /* U+000320: COMBINING MINUS SIGN BELOW*/ + 0x321, /* U+000321: COMBINING PALATALIZED HOOK BELOW*/ + 0x322, /* U+000322: COMBINING RETROFLEX HOOK BELOW*/ + 0x323, /* U+000323: COMBINING DOT BELOW*/ + 0x324, /* U+000324: COMBINING DIAERESIS BELOW*/ + 0x325, /* U+000325: COMBINING RING BELOW*/ + 0x326, /* U+000326: COMBINING COMMA BELOW*/ + 0x327, /* U+000327: COMBINING CEDILLA*/ + 0x328, /* U+000328: COMBINING OGONEK*/ + 0x329, /* U+000329: COMBINING VERTICAL LINE BELOW*/ + 0x32a, /* U+00032a: COMBINING BRIDGE BELOW*/ + 0x32b, /* U+00032b: COMBINING INVERTED DOUBLE ARCH BELOW*/ + 0x32c, /* U+00032c: COMBINING CARON BELOW*/ + 0x32d, /* U+00032d: COMBINING CIRCUMFLEX ACCENT BELOW*/ + 0x32e, /* U+00032e: COMBINING BREVE BELOW*/ + 0x32f, /* U+00032f: COMBINING INVERTED BREVE BELOW*/ + 0x330, /* U+000330: COMBINING TILDE BELOW*/ + 0x331, /* U+000331: COMBINING MACRON BELOW*/ + 0x332, /* U+000332: COMBINING LOW LINE*/ + 0x333, /* U+000333: COMBINING DOUBLE LOW LINE*/ + 0x334, /* U+000334: COMBINING TILDE OVERLAY*/ + 0x335, /* U+000335: COMBINING SHORT STROKE OVERLAY*/ + 0x336, /* U+000336: COMBINING LONG STROKE OVERLAY*/ + 0x337, /* U+000337: COMBINING SHORT SOLIDUS OVERLAY*/ + 0x338, /* U+000338: COMBINING LONG SOLIDUS OVERLAY*/ + 0x339, /* U+000339: COMBINING RIGHT HALF RING BELOW*/ + 0x33a, /* U+00033a: COMBINING INVERTED BRIDGE BELOW*/ + 0x33b, /* U+00033b: COMBINING SQUARE BELOW*/ + 0x33c, /* U+00033c: COMBINING SEAGULL BELOW*/ + 0x33d, /* U+00033d: COMBINING X ABOVE*/ + 0x33e, /* U+00033e: COMBINING VERTICAL TILDE*/ + 0x33f, /* U+00033f: COMBINING DOUBLE OVERLINE*/ + 0x340, /* U+000340: COMBINING GRAVE TONE MARK*/ + 0x341, /* U+000341: COMBINING ACUTE TONE MARK*/ + 0x342, /* U+000342: COMBINING GREEK PERISPOMENI*/ + 0x343, /* U+000343: COMBINING GREEK KORONIS*/ + 0x344, /* U+000344: COMBINING GREEK DIALYTIKA TONOS*/ + 0x345, /* U+000345: COMBINING GREEK YPOGEGRAMMENI*/ + 0x346, /* U+000346: COMBINING BRIDGE ABOVE*/ + 0x347, /* U+000347: COMBINING EQUALS SIGN BELOW*/ + 0x348, /* U+000348: COMBINING DOUBLE VERTICAL LINE BELOW*/ + 0x349, /* U+000349: COMBINING LEFT ANGLE BELOW*/ + 0x34a, /* U+00034a: COMBINING NOT TILDE ABOVE*/ + 0x34b, /* U+00034b: COMBINING HOMOTHETIC ABOVE*/ + 0x34c, /* U+00034c: COMBINING ALMOST EQUAL TO ABOVE*/ + 0x34d, /* U+00034d: COMBINING LEFT RIGHT ARROW BELOW*/ + 0x34e, /* U+00034e: COMBINING UPWARDS ARROW BELOW*/ + 0x34f, /* U+00034f: COMBINING GRAPHEME JOINER*/ + 0x350, /* U+000350: COMBINING RIGHT ARROWHEAD ABOVE*/ + 0x351, /* U+000351: COMBINING LEFT HALF RING ABOVE*/ + 0x352, /* U+000352: COMBINING FERMATA*/ + 0x353, /* U+000353: COMBINING X BELOW*/ + 0x354, /* U+000354: COMBINING LEFT ARROWHEAD BELOW*/ + 0x355, /* U+000355: COMBINING RIGHT ARROWHEAD BELOW*/ + 0x356, /* U+000356: COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW*/ + 0x357, /* U+000357: COMBINING RIGHT HALF RING ABOVE*/ + 0x358, /* U+000358: COMBINING DOT ABOVE RIGHT*/ + 0x359, /* U+000359: COMBINING ASTERISK BELOW*/ + 0x35a, /* U+00035a: COMBINING DOUBLE RING BELOW*/ + 0x35b, /* U+00035b: COMBINING ZIGZAG ABOVE*/ + 0x35c, /* U+00035c: COMBINING DOUBLE BREVE BELOW*/ + 0x35d, /* U+00035d: COMBINING DOUBLE BREVE*/ + 0x35e, /* U+00035e: COMBINING DOUBLE MACRON*/ + 0x35f, /* U+00035f: COMBINING DOUBLE MACRON BELOW*/ + 0x360, /* U+000360: COMBINING DOUBLE TILDE*/ + 0x361, /* U+000361: COMBINING DOUBLE INVERTED BREVE*/ + 0x362, /* U+000362: COMBINING DOUBLE RIGHTWARDS ARROW BELOW*/ + 0x363, /* U+000363: COMBINING LATIN SMALL LETTER A*/ + 0x364, /* U+000364: COMBINING LATIN SMALL LETTER E*/ + 0x365, /* U+000365: COMBINING LATIN SMALL LETTER I*/ + 0x366, /* U+000366: COMBINING LATIN SMALL LETTER O*/ + 0x367, /* U+000367: COMBINING LATIN SMALL LETTER U*/ + 0x368, /* U+000368: COMBINING LATIN SMALL LETTER C*/ + 0x369, /* U+000369: COMBINING LATIN SMALL LETTER D*/ + 0x36a, /* U+00036a: COMBINING LATIN SMALL LETTER H*/ + 0x36b, /* U+00036b: COMBINING LATIN SMALL LETTER M*/ + 0x36c, /* U+00036c: COMBINING LATIN SMALL LETTER R*/ + 0x36d, /* U+00036d: COMBINING LATIN SMALL LETTER T*/ + 0x36e, /* U+00036e: COMBINING LATIN SMALL LETTER V*/ + 0x36f, /* U+00036f: COMBINING LATIN SMALL LETTER X*/ + 0x371, /* U+000370: GREEK CAPITAL LETTER HETA*/ + 0x371, /* U+000371: GREEK SMALL LETTER HETA*/ + 0x373, /* U+000372: GREEK CAPITAL LETTER ARCHAIC SAMPI*/ + 0x373, /* U+000373: GREEK SMALL LETTER ARCHAIC SAMPI*/ + 0x374, /* U+000374: GREEK NUMERAL SIGN*/ + 0x375, /* U+000375: GREEK LOWER NUMERAL SIGN*/ + 0x377, /* U+000376: GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA*/ + 0x377, /* U+000377: GREEK SMALL LETTER PAMPHYLIAN DIGAMMA*/ + 0x378, /* U+000378: */ + 0x379, /* U+000379: */ + 0x37a, /* U+00037a: GREEK YPOGEGRAMMENI*/ + 0x37b, /* U+00037b: GREEK SMALL REVERSED LUNATE SIGMA SYMBOL*/ + 0x37c, /* U+00037c: GREEK SMALL DOTTED LUNATE SIGMA SYMBOL*/ + 0x37d, /* U+00037d: GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL*/ + 0x37e, /* U+00037e: GREEK QUESTION MARK*/ + 0x37f, /* U+00037f: */ + 0x380, /* U+000380: */ + 0x381, /* U+000381: */ + 0x382, /* U+000382: */ + 0x383, /* U+000383: */ + 0x384, /* U+000384: GREEK TONOS*/ + 0x385, /* U+000385: GREEK DIALYTIKA TONOS*/ + 0x3ac, /* U+000386: GREEK CAPITAL LETTER ALPHA WITH TONOS*/ + 0x387, /* U+000387: GREEK ANO TELEIA*/ + 0x3ad, /* U+000388: GREEK CAPITAL LETTER EPSILON WITH TONOS*/ + 0x3ae, /* U+000389: GREEK CAPITAL LETTER ETA WITH TONOS*/ + 0x3af, /* U+00038a: GREEK CAPITAL LETTER IOTA WITH TONOS*/ + 0x38b, /* U+00038b: */ + 0x3cc, /* U+00038c: GREEK CAPITAL LETTER OMICRON WITH TONOS*/ + 0x38d, /* U+00038d: */ + 0x3cd, /* U+00038e: GREEK CAPITAL LETTER UPSILON WITH TONOS*/ + 0x3ce, /* U+00038f: GREEK CAPITAL LETTER OMEGA WITH TONOS*/ + 0x390, /* U+000390: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS*/ + 0x3b1, /* U+000391: GREEK CAPITAL LETTER ALPHA*/ + 0x3b2, /* U+000392: GREEK CAPITAL LETTER BETA*/ + 0x3b3, /* U+000393: GREEK CAPITAL LETTER GAMMA*/ + 0x3b4, /* U+000394: GREEK CAPITAL LETTER DELTA*/ + 0x3b5, /* U+000395: GREEK CAPITAL LETTER EPSILON*/ + 0x3b6, /* U+000396: GREEK CAPITAL LETTER ZETA*/ + 0x3b7, /* U+000397: GREEK CAPITAL LETTER ETA*/ + 0x3b8, /* U+000398: GREEK CAPITAL LETTER THETA*/ + 0x3b9, /* U+000399: GREEK CAPITAL LETTER IOTA*/ + 0x3ba, /* U+00039a: GREEK CAPITAL LETTER KAPPA*/ + 0x3bb, /* U+00039b: GREEK CAPITAL LETTER LAMDA*/ + 0x3bc, /* U+00039c: GREEK CAPITAL LETTER MU*/ + 0x3bd, /* U+00039d: GREEK CAPITAL LETTER NU*/ + 0x3be, /* U+00039e: GREEK CAPITAL LETTER XI*/ + 0x3bf, /* U+00039f: GREEK CAPITAL LETTER OMICRON*/ + 0x3c0, /* U+0003a0: GREEK CAPITAL LETTER PI*/ + 0x3c1, /* U+0003a1: GREEK CAPITAL LETTER RHO*/ + 0x3a2, /* U+0003a2: */ + 0x3c3, /* U+0003a3: GREEK CAPITAL LETTER SIGMA*/ + 0x3c4, /* U+0003a4: GREEK CAPITAL LETTER TAU*/ + 0x3c5, /* U+0003a5: GREEK CAPITAL LETTER UPSILON*/ + 0x3c6, /* U+0003a6: GREEK CAPITAL LETTER PHI*/ + 0x3c7, /* U+0003a7: GREEK CAPITAL LETTER CHI*/ + 0x3c8, /* U+0003a8: GREEK CAPITAL LETTER PSI*/ + 0x3c9, /* U+0003a9: GREEK CAPITAL LETTER OMEGA*/ + 0x3ca, /* U+0003aa: GREEK CAPITAL LETTER IOTA WITH DIALYTIKA*/ + 0x3cb, /* U+0003ab: GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA*/ + 0x3ac, /* U+0003ac: GREEK SMALL LETTER ALPHA WITH TONOS*/ + 0x3ad, /* U+0003ad: GREEK SMALL LETTER EPSILON WITH TONOS*/ + 0x3ae, /* U+0003ae: GREEK SMALL LETTER ETA WITH TONOS*/ + 0x3af, /* U+0003af: GREEK SMALL LETTER IOTA WITH TONOS*/ + 0x3b0, /* U+0003b0: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS*/ + 0x3b1, /* U+0003b1: GREEK SMALL LETTER ALPHA*/ + 0x3b2, /* U+0003b2: GREEK SMALL LETTER BETA*/ + 0x3b3, /* U+0003b3: GREEK SMALL LETTER GAMMA*/ + 0x3b4, /* U+0003b4: GREEK SMALL LETTER DELTA*/ + 0x3b5, /* U+0003b5: GREEK SMALL LETTER EPSILON*/ + 0x3b6, /* U+0003b6: GREEK SMALL LETTER ZETA*/ + 0x3b7, /* U+0003b7: GREEK SMALL LETTER ETA*/ + 0x3b8, /* U+0003b8: GREEK SMALL LETTER THETA*/ + 0x3b9, /* U+0003b9: GREEK SMALL LETTER IOTA*/ + 0x3ba, /* U+0003ba: GREEK SMALL LETTER KAPPA*/ + 0x3bb, /* U+0003bb: GREEK SMALL LETTER LAMDA*/ + 0x3bc, /* U+0003bc: GREEK SMALL LETTER MU*/ + 0x3bd, /* U+0003bd: GREEK SMALL LETTER NU*/ + 0x3be, /* U+0003be: GREEK SMALL LETTER XI*/ + 0x3bf, /* U+0003bf: GREEK SMALL LETTER OMICRON*/ + 0x3c0, /* U+0003c0: GREEK SMALL LETTER PI*/ + 0x3c1, /* U+0003c1: GREEK SMALL LETTER RHO*/ + 0x3c2, /* U+0003c2: GREEK SMALL LETTER FINAL SIGMA*/ + 0x3c3, /* U+0003c3: GREEK SMALL LETTER SIGMA*/ + 0x3c4, /* U+0003c4: GREEK SMALL LETTER TAU*/ + 0x3c5, /* U+0003c5: GREEK SMALL LETTER UPSILON*/ + 0x3c6, /* U+0003c6: GREEK SMALL LETTER PHI*/ + 0x3c7, /* U+0003c7: GREEK SMALL LETTER CHI*/ + 0x3c8, /* U+0003c8: GREEK SMALL LETTER PSI*/ + 0x3c9, /* U+0003c9: GREEK SMALL LETTER OMEGA*/ + 0x3ca, /* U+0003ca: GREEK SMALL LETTER IOTA WITH DIALYTIKA*/ + 0x3cb, /* U+0003cb: GREEK SMALL LETTER UPSILON WITH DIALYTIKA*/ + 0x3cc, /* U+0003cc: GREEK SMALL LETTER OMICRON WITH TONOS*/ + 0x3cd, /* U+0003cd: GREEK SMALL LETTER UPSILON WITH TONOS*/ + 0x3ce, /* U+0003ce: GREEK SMALL LETTER OMEGA WITH TONOS*/ + 0x3d7, /* U+0003cf: GREEK CAPITAL KAI SYMBOL*/ + 0x3d0, /* U+0003d0: GREEK BETA SYMBOL*/ + 0x3d1, /* U+0003d1: GREEK THETA SYMBOL*/ + 0x3d2, /* U+0003d2: GREEK UPSILON WITH HOOK SYMBOL*/ + 0x3d3, /* U+0003d3: GREEK UPSILON WITH ACUTE AND HOOK SYMBOL*/ + 0x3d4, /* U+0003d4: GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL*/ + 0x3d5, /* U+0003d5: GREEK PHI SYMBOL*/ + 0x3d6, /* U+0003d6: GREEK PI SYMBOL*/ + 0x3d7, /* U+0003d7: GREEK KAI SYMBOL*/ + 0x3d9, /* U+0003d8: GREEK LETTER ARCHAIC KOPPA*/ + 0x3d9, /* U+0003d9: GREEK SMALL LETTER ARCHAIC KOPPA*/ + 0x3db, /* U+0003da: GREEK LETTER STIGMA*/ + 0x3db, /* U+0003db: GREEK SMALL LETTER STIGMA*/ + 0x3dd, /* U+0003dc: GREEK LETTER DIGAMMA*/ + 0x3dd, /* U+0003dd: GREEK SMALL LETTER DIGAMMA*/ + 0x3df, /* U+0003de: GREEK LETTER KOPPA*/ + 0x3df, /* U+0003df: GREEK SMALL LETTER KOPPA*/ + 0x3e1, /* U+0003e0: GREEK LETTER SAMPI*/ + 0x3e1, /* U+0003e1: GREEK SMALL LETTER SAMPI*/ + 0x3e3, /* U+0003e2: COPTIC CAPITAL LETTER SHEI*/ + 0x3e3, /* U+0003e3: COPTIC SMALL LETTER SHEI*/ + 0x3e5, /* U+0003e4: COPTIC CAPITAL LETTER FEI*/ + 0x3e5, /* U+0003e5: COPTIC SMALL LETTER FEI*/ + 0x3e7, /* U+0003e6: COPTIC CAPITAL LETTER KHEI*/ + 0x3e7, /* U+0003e7: COPTIC SMALL LETTER KHEI*/ + 0x3e9, /* U+0003e8: COPTIC CAPITAL LETTER HORI*/ + 0x3e9, /* U+0003e9: COPTIC SMALL LETTER HORI*/ + 0x3eb, /* U+0003ea: COPTIC CAPITAL LETTER GANGIA*/ + 0x3eb, /* U+0003eb: COPTIC SMALL LETTER GANGIA*/ + 0x3ed, /* U+0003ec: COPTIC CAPITAL LETTER SHIMA*/ + 0x3ed, /* U+0003ed: COPTIC SMALL LETTER SHIMA*/ + 0x3ef, /* U+0003ee: COPTIC CAPITAL LETTER DEI*/ + 0x3ef, /* U+0003ef: COPTIC SMALL LETTER DEI*/ + 0x3f0, /* U+0003f0: GREEK KAPPA SYMBOL*/ + 0x3f1, /* U+0003f1: GREEK RHO SYMBOL*/ + 0x3f2, /* U+0003f2: GREEK LUNATE SIGMA SYMBOL*/ + 0x3f3, /* U+0003f3: GREEK LETTER YOT*/ + 0x3b8, /* U+0003f4: GREEK CAPITAL THETA SYMBOL*/ + 0x3f5, /* U+0003f5: GREEK LUNATE EPSILON SYMBOL*/ + 0x3f6, /* U+0003f6: GREEK REVERSED LUNATE EPSILON SYMBOL*/ + 0x3f8, /* U+0003f7: GREEK CAPITAL LETTER SHO*/ + 0x3f8, /* U+0003f8: GREEK SMALL LETTER SHO*/ + 0x3f2, /* U+0003f9: GREEK CAPITAL LUNATE SIGMA SYMBOL*/ + 0x3fb, /* U+0003fa: GREEK CAPITAL LETTER SAN*/ + 0x3fb, /* U+0003fb: GREEK SMALL LETTER SAN*/ + 0x3fc, /* U+0003fc: GREEK RHO WITH STROKE SYMBOL*/ + 0x37b, /* U+0003fd: GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL*/ + 0x37c, /* U+0003fe: GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL*/ + 0x37d, /* U+0003ff: GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL*/ + 0x450, /* U+000400: CYRILLIC CAPITAL LETTER IE WITH GRAVE*/ + 0x451, /* U+000401: CYRILLIC CAPITAL LETTER IO*/ + 0x452, /* U+000402: CYRILLIC CAPITAL LETTER DJE*/ + 0x453, /* U+000403: CYRILLIC CAPITAL LETTER GJE*/ + 0x454, /* U+000404: CYRILLIC CAPITAL LETTER UKRAINIAN IE*/ + 0x455, /* U+000405: CYRILLIC CAPITAL LETTER DZE*/ + 0x456, /* U+000406: CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I*/ + 0x457, /* U+000407: CYRILLIC CAPITAL LETTER YI*/ + 0x458, /* U+000408: CYRILLIC CAPITAL LETTER JE*/ + 0x459, /* U+000409: CYRILLIC CAPITAL LETTER LJE*/ + 0x45a, /* U+00040a: CYRILLIC CAPITAL LETTER NJE*/ + 0x45b, /* U+00040b: CYRILLIC CAPITAL LETTER TSHE*/ + 0x45c, /* U+00040c: CYRILLIC CAPITAL LETTER KJE*/ + 0x45d, /* U+00040d: CYRILLIC CAPITAL LETTER I WITH GRAVE*/ + 0x45e, /* U+00040e: CYRILLIC CAPITAL LETTER SHORT U*/ + 0x45f, /* U+00040f: CYRILLIC CAPITAL LETTER DZHE*/ + 0x430, /* U+000410: CYRILLIC CAPITAL LETTER A*/ + 0x431, /* U+000411: CYRILLIC CAPITAL LETTER BE*/ + 0x432, /* U+000412: CYRILLIC CAPITAL LETTER VE*/ + 0x433, /* U+000413: CYRILLIC CAPITAL LETTER GHE*/ + 0x434, /* U+000414: CYRILLIC CAPITAL LETTER DE*/ + 0x435, /* U+000415: CYRILLIC CAPITAL LETTER IE*/ + 0x436, /* U+000416: CYRILLIC CAPITAL LETTER ZHE*/ + 0x437, /* U+000417: CYRILLIC CAPITAL LETTER ZE*/ + 0x438, /* U+000418: CYRILLIC CAPITAL LETTER I*/ + 0x439, /* U+000419: CYRILLIC CAPITAL LETTER SHORT I*/ + 0x43a, /* U+00041a: CYRILLIC CAPITAL LETTER KA*/ + 0x43b, /* U+00041b: CYRILLIC CAPITAL LETTER EL*/ + 0x43c, /* U+00041c: CYRILLIC CAPITAL LETTER EM*/ + 0x43d, /* U+00041d: CYRILLIC CAPITAL LETTER EN*/ + 0x43e, /* U+00041e: CYRILLIC CAPITAL LETTER O*/ + 0x43f, /* U+00041f: CYRILLIC CAPITAL LETTER PE*/ + 0x440, /* U+000420: CYRILLIC CAPITAL LETTER ER*/ + 0x441, /* U+000421: CYRILLIC CAPITAL LETTER ES*/ + 0x442, /* U+000422: CYRILLIC CAPITAL LETTER TE*/ + 0x443, /* U+000423: CYRILLIC CAPITAL LETTER U*/ + 0x444, /* U+000424: CYRILLIC CAPITAL LETTER EF*/ + 0x445, /* U+000425: CYRILLIC CAPITAL LETTER HA*/ + 0x446, /* U+000426: CYRILLIC CAPITAL LETTER TSE*/ + 0x447, /* U+000427: CYRILLIC CAPITAL LETTER CHE*/ + 0x448, /* U+000428: CYRILLIC CAPITAL LETTER SHA*/ + 0x449, /* U+000429: CYRILLIC CAPITAL LETTER SHCHA*/ + 0x44a, /* U+00042a: CYRILLIC CAPITAL LETTER HARD SIGN*/ + 0x44b, /* U+00042b: CYRILLIC CAPITAL LETTER YERU*/ + 0x44c, /* U+00042c: CYRILLIC CAPITAL LETTER SOFT SIGN*/ + 0x44d, /* U+00042d: CYRILLIC CAPITAL LETTER E*/ + 0x44e, /* U+00042e: CYRILLIC CAPITAL LETTER YU*/ + 0x44f, /* U+00042f: CYRILLIC CAPITAL LETTER YA*/ + 0x430, /* U+000430: CYRILLIC SMALL LETTER A*/ + 0x431, /* U+000431: CYRILLIC SMALL LETTER BE*/ + 0x432, /* U+000432: CYRILLIC SMALL LETTER VE*/ + 0x433, /* U+000433: CYRILLIC SMALL LETTER GHE*/ + 0x434, /* U+000434: CYRILLIC SMALL LETTER DE*/ + 0x435, /* U+000435: CYRILLIC SMALL LETTER IE*/ + 0x436, /* U+000436: CYRILLIC SMALL LETTER ZHE*/ + 0x437, /* U+000437: CYRILLIC SMALL LETTER ZE*/ + 0x438, /* U+000438: CYRILLIC SMALL LETTER I*/ + 0x439, /* U+000439: CYRILLIC SMALL LETTER SHORT I*/ + 0x43a, /* U+00043a: CYRILLIC SMALL LETTER KA*/ + 0x43b, /* U+00043b: CYRILLIC SMALL LETTER EL*/ + 0x43c, /* U+00043c: CYRILLIC SMALL LETTER EM*/ + 0x43d, /* U+00043d: CYRILLIC SMALL LETTER EN*/ + 0x43e, /* U+00043e: CYRILLIC SMALL LETTER O*/ + 0x43f, /* U+00043f: CYRILLIC SMALL LETTER PE*/ + 0x440, /* U+000440: CYRILLIC SMALL LETTER ER*/ + 0x441, /* U+000441: CYRILLIC SMALL LETTER ES*/ + 0x442, /* U+000442: CYRILLIC SMALL LETTER TE*/ + 0x443, /* U+000443: CYRILLIC SMALL LETTER U*/ + 0x444, /* U+000444: CYRILLIC SMALL LETTER EF*/ + 0x445, /* U+000445: CYRILLIC SMALL LETTER HA*/ + 0x446, /* U+000446: CYRILLIC SMALL LETTER TSE*/ + 0x447, /* U+000447: CYRILLIC SMALL LETTER CHE*/ + 0x448, /* U+000448: CYRILLIC SMALL LETTER SHA*/ + 0x449, /* U+000449: CYRILLIC SMALL LETTER SHCHA*/ + 0x44a, /* U+00044a: CYRILLIC SMALL LETTER HARD SIGN*/ + 0x44b, /* U+00044b: CYRILLIC SMALL LETTER YERU*/ + 0x44c, /* U+00044c: CYRILLIC SMALL LETTER SOFT SIGN*/ + 0x44d, /* U+00044d: CYRILLIC SMALL LETTER E*/ + 0x44e, /* U+00044e: CYRILLIC SMALL LETTER YU*/ + 0x44f, /* U+00044f: CYRILLIC SMALL LETTER YA*/ + 0x450, /* U+000450: CYRILLIC SMALL LETTER IE WITH GRAVE*/ + 0x451, /* U+000451: CYRILLIC SMALL LETTER IO*/ + 0x452, /* U+000452: CYRILLIC SMALL LETTER DJE*/ + 0x453, /* U+000453: CYRILLIC SMALL LETTER GJE*/ + 0x454, /* U+000454: CYRILLIC SMALL LETTER UKRAINIAN IE*/ + 0x455, /* U+000455: CYRILLIC SMALL LETTER DZE*/ + 0x456, /* U+000456: CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I*/ + 0x457, /* U+000457: CYRILLIC SMALL LETTER YI*/ + 0x458, /* U+000458: CYRILLIC SMALL LETTER JE*/ + 0x459, /* U+000459: CYRILLIC SMALL LETTER LJE*/ + 0x45a, /* U+00045a: CYRILLIC SMALL LETTER NJE*/ + 0x45b, /* U+00045b: CYRILLIC SMALL LETTER TSHE*/ + 0x45c, /* U+00045c: CYRILLIC SMALL LETTER KJE*/ + 0x45d, /* U+00045d: CYRILLIC SMALL LETTER I WITH GRAVE*/ + 0x45e, /* U+00045e: CYRILLIC SMALL LETTER SHORT U*/ + 0x45f, /* U+00045f: CYRILLIC SMALL LETTER DZHE*/ + 0x461, /* U+000460: CYRILLIC CAPITAL LETTER OMEGA*/ + 0x461, /* U+000461: CYRILLIC SMALL LETTER OMEGA*/ + 0x463, /* U+000462: CYRILLIC CAPITAL LETTER YAT*/ + 0x463, /* U+000463: CYRILLIC SMALL LETTER YAT*/ + 0x465, /* U+000464: CYRILLIC CAPITAL LETTER IOTIFIED E*/ + 0x465, /* U+000465: CYRILLIC SMALL LETTER IOTIFIED E*/ + 0x467, /* U+000466: CYRILLIC CAPITAL LETTER LITTLE YUS*/ + 0x467, /* U+000467: CYRILLIC SMALL LETTER LITTLE YUS*/ + 0x469, /* U+000468: CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS*/ + 0x469, /* U+000469: CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS*/ + 0x46b, /* U+00046a: CYRILLIC CAPITAL LETTER BIG YUS*/ + 0x46b, /* U+00046b: CYRILLIC SMALL LETTER BIG YUS*/ + 0x46d, /* U+00046c: CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS*/ + 0x46d, /* U+00046d: CYRILLIC SMALL LETTER IOTIFIED BIG YUS*/ + 0x46f, /* U+00046e: CYRILLIC CAPITAL LETTER KSI*/ + 0x46f, /* U+00046f: CYRILLIC SMALL LETTER KSI*/ + 0x471, /* U+000470: CYRILLIC CAPITAL LETTER PSI*/ + 0x471, /* U+000471: CYRILLIC SMALL LETTER PSI*/ + 0x473, /* U+000472: CYRILLIC CAPITAL LETTER FITA*/ + 0x473, /* U+000473: CYRILLIC SMALL LETTER FITA*/ + 0x475, /* U+000474: CYRILLIC CAPITAL LETTER IZHITSA*/ + 0x475, /* U+000475: CYRILLIC SMALL LETTER IZHITSA*/ + 0x477, /* U+000476: CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ + 0x477, /* U+000477: CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ + 0x479, /* U+000478: CYRILLIC CAPITAL LETTER UK*/ + 0x479, /* U+000479: CYRILLIC SMALL LETTER UK*/ + 0x47b, /* U+00047a: CYRILLIC CAPITAL LETTER ROUND OMEGA*/ + 0x47b, /* U+00047b: CYRILLIC SMALL LETTER ROUND OMEGA*/ + 0x47d, /* U+00047c: CYRILLIC CAPITAL LETTER OMEGA WITH TITLO*/ + 0x47d, /* U+00047d: CYRILLIC SMALL LETTER OMEGA WITH TITLO*/ + 0x47f, /* U+00047e: CYRILLIC CAPITAL LETTER OT*/ + 0x47f, /* U+00047f: CYRILLIC SMALL LETTER OT*/ + 0x481, /* U+000480: CYRILLIC CAPITAL LETTER KOPPA*/ + 0x481, /* U+000481: CYRILLIC SMALL LETTER KOPPA*/ + 0x482, /* U+000482: CYRILLIC THOUSANDS SIGN*/ + 0x483, /* U+000483: COMBINING CYRILLIC TITLO*/ + 0x484, /* U+000484: COMBINING CYRILLIC PALATALIZATION*/ + 0x485, /* U+000485: COMBINING CYRILLIC DASIA PNEUMATA*/ + 0x486, /* U+000486: COMBINING CYRILLIC PSILI PNEUMATA*/ + 0x487, /* U+000487: COMBINING CYRILLIC POKRYTIE*/ + 0x488, /* U+000488: COMBINING CYRILLIC HUNDRED THOUSANDS SIGN*/ + 0x489, /* U+000489: COMBINING CYRILLIC MILLIONS SIGN*/ + 0x48b, /* U+00048a: CYRILLIC CAPITAL LETTER SHORT I WITH TAIL*/ + 0x48b, /* U+00048b: CYRILLIC SMALL LETTER SHORT I WITH TAIL*/ + 0x48d, /* U+00048c: CYRILLIC CAPITAL LETTER SEMISOFT SIGN*/ + 0x48d, /* U+00048d: CYRILLIC SMALL LETTER SEMISOFT SIGN*/ + 0x48f, /* U+00048e: CYRILLIC CAPITAL LETTER ER WITH TICK*/ + 0x48f, /* U+00048f: CYRILLIC SMALL LETTER ER WITH TICK*/ + 0x491, /* U+000490: CYRILLIC CAPITAL LETTER GHE WITH UPTURN*/ + 0x491, /* U+000491: CYRILLIC SMALL LETTER GHE WITH UPTURN*/ + 0x493, /* U+000492: CYRILLIC CAPITAL LETTER GHE WITH STROKE*/ + 0x493, /* U+000493: CYRILLIC SMALL LETTER GHE WITH STROKE*/ + 0x495, /* U+000494: CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK*/ + 0x495, /* U+000495: CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK*/ + 0x497, /* U+000496: CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER*/ + 0x497, /* U+000497: CYRILLIC SMALL LETTER ZHE WITH DESCENDER*/ + 0x499, /* U+000498: CYRILLIC CAPITAL LETTER ZE WITH DESCENDER*/ + 0x499, /* U+000499: CYRILLIC SMALL LETTER ZE WITH DESCENDER*/ + 0x49b, /* U+00049a: CYRILLIC CAPITAL LETTER KA WITH DESCENDER*/ + 0x49b, /* U+00049b: CYRILLIC SMALL LETTER KA WITH DESCENDER*/ + 0x49d, /* U+00049c: CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE*/ + 0x49d, /* U+00049d: CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE*/ + 0x49f, /* U+00049e: CYRILLIC CAPITAL LETTER KA WITH STROKE*/ + 0x49f, /* U+00049f: CYRILLIC SMALL LETTER KA WITH STROKE*/ + 0x4a1, /* U+0004a0: CYRILLIC CAPITAL LETTER BASHKIR KA*/ + 0x4a1, /* U+0004a1: CYRILLIC SMALL LETTER BASHKIR KA*/ + 0x4a3, /* U+0004a2: CYRILLIC CAPITAL LETTER EN WITH DESCENDER*/ + 0x4a3, /* U+0004a3: CYRILLIC SMALL LETTER EN WITH DESCENDER*/ + 0x4a5, /* U+0004a4: CYRILLIC CAPITAL LIGATURE EN GHE*/ + 0x4a5, /* U+0004a5: CYRILLIC SMALL LIGATURE EN GHE*/ + 0x4a7, /* U+0004a6: CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK*/ + 0x4a7, /* U+0004a7: CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK*/ + 0x4a9, /* U+0004a8: CYRILLIC CAPITAL LETTER ABKHASIAN HA*/ + 0x4a9, /* U+0004a9: CYRILLIC SMALL LETTER ABKHASIAN HA*/ + 0x4ab, /* U+0004aa: CYRILLIC CAPITAL LETTER ES WITH DESCENDER*/ + 0x4ab, /* U+0004ab: CYRILLIC SMALL LETTER ES WITH DESCENDER*/ + 0x4ad, /* U+0004ac: CYRILLIC CAPITAL LETTER TE WITH DESCENDER*/ + 0x4ad, /* U+0004ad: CYRILLIC SMALL LETTER TE WITH DESCENDER*/ + 0x4af, /* U+0004ae: CYRILLIC CAPITAL LETTER STRAIGHT U*/ + 0x4af, /* U+0004af: CYRILLIC SMALL LETTER STRAIGHT U*/ + 0x4b1, /* U+0004b0: CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE*/ + 0x4b1, /* U+0004b1: CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE*/ + 0x4b3, /* U+0004b2: CYRILLIC CAPITAL LETTER HA WITH DESCENDER*/ + 0x4b3, /* U+0004b3: CYRILLIC SMALL LETTER HA WITH DESCENDER*/ + 0x4b5, /* U+0004b4: CYRILLIC CAPITAL LIGATURE TE TSE*/ + 0x4b5, /* U+0004b5: CYRILLIC SMALL LIGATURE TE TSE*/ + 0x4b7, /* U+0004b6: CYRILLIC CAPITAL LETTER CHE WITH DESCENDER*/ + 0x4b7, /* U+0004b7: CYRILLIC SMALL LETTER CHE WITH DESCENDER*/ + 0x4b9, /* U+0004b8: CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE*/ + 0x4b9, /* U+0004b9: CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE*/ + 0x4bb, /* U+0004ba: CYRILLIC CAPITAL LETTER SHHA*/ + 0x4bb, /* U+0004bb: CYRILLIC SMALL LETTER SHHA*/ + 0x4bd, /* U+0004bc: CYRILLIC CAPITAL LETTER ABKHASIAN CHE*/ + 0x4bd, /* U+0004bd: CYRILLIC SMALL LETTER ABKHASIAN CHE*/ + 0x4bf, /* U+0004be: CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER*/ + 0x4bf, /* U+0004bf: CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER*/ + 0x4cf, /* U+0004c0: CYRILLIC LETTER PALOCHKA*/ + 0x4c2, /* U+0004c1: CYRILLIC CAPITAL LETTER ZHE WITH BREVE*/ + 0x4c2, /* U+0004c2: CYRILLIC SMALL LETTER ZHE WITH BREVE*/ + 0x4c4, /* U+0004c3: CYRILLIC CAPITAL LETTER KA WITH HOOK*/ + 0x4c4, /* U+0004c4: CYRILLIC SMALL LETTER KA WITH HOOK*/ + 0x4c6, /* U+0004c5: CYRILLIC CAPITAL LETTER EL WITH TAIL*/ + 0x4c6, /* U+0004c6: CYRILLIC SMALL LETTER EL WITH TAIL*/ + 0x4c8, /* U+0004c7: CYRILLIC CAPITAL LETTER EN WITH HOOK*/ + 0x4c8, /* U+0004c8: CYRILLIC SMALL LETTER EN WITH HOOK*/ + 0x4ca, /* U+0004c9: CYRILLIC CAPITAL LETTER EN WITH TAIL*/ + 0x4ca, /* U+0004ca: CYRILLIC SMALL LETTER EN WITH TAIL*/ + 0x4cc, /* U+0004cb: CYRILLIC CAPITAL LETTER KHAKASSIAN CHE*/ + 0x4cc, /* U+0004cc: CYRILLIC SMALL LETTER KHAKASSIAN CHE*/ + 0x4ce, /* U+0004cd: CYRILLIC CAPITAL LETTER EM WITH TAIL*/ + 0x4ce, /* U+0004ce: CYRILLIC SMALL LETTER EM WITH TAIL*/ + 0x4cf, /* U+0004cf: CYRILLIC SMALL LETTER PALOCHKA*/ + 0x4d1, /* U+0004d0: CYRILLIC CAPITAL LETTER A WITH BREVE*/ + 0x4d1, /* U+0004d1: CYRILLIC SMALL LETTER A WITH BREVE*/ + 0x4d3, /* U+0004d2: CYRILLIC CAPITAL LETTER A WITH DIAERESIS*/ + 0x4d3, /* U+0004d3: CYRILLIC SMALL LETTER A WITH DIAERESIS*/ + 0x4d5, /* U+0004d4: CYRILLIC CAPITAL LIGATURE A IE*/ + 0x4d5, /* U+0004d5: CYRILLIC SMALL LIGATURE A IE*/ + 0x4d7, /* U+0004d6: CYRILLIC CAPITAL LETTER IE WITH BREVE*/ + 0x4d7, /* U+0004d7: CYRILLIC SMALL LETTER IE WITH BREVE*/ + 0x4d9, /* U+0004d8: CYRILLIC CAPITAL LETTER SCHWA*/ + 0x4d9, /* U+0004d9: CYRILLIC SMALL LETTER SCHWA*/ + 0x4db, /* U+0004da: CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS*/ + 0x4db, /* U+0004db: CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS*/ + 0x4dd, /* U+0004dc: CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS*/ + 0x4dd, /* U+0004dd: CYRILLIC SMALL LETTER ZHE WITH DIAERESIS*/ + 0x4df, /* U+0004de: CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS*/ + 0x4df, /* U+0004df: CYRILLIC SMALL LETTER ZE WITH DIAERESIS*/ + 0x4e1, /* U+0004e0: CYRILLIC CAPITAL LETTER ABKHASIAN DZE*/ + 0x4e1, /* U+0004e1: CYRILLIC SMALL LETTER ABKHASIAN DZE*/ + 0x4e3, /* U+0004e2: CYRILLIC CAPITAL LETTER I WITH MACRON*/ + 0x4e3, /* U+0004e3: CYRILLIC SMALL LETTER I WITH MACRON*/ + 0x4e5, /* U+0004e4: CYRILLIC CAPITAL LETTER I WITH DIAERESIS*/ + 0x4e5, /* U+0004e5: CYRILLIC SMALL LETTER I WITH DIAERESIS*/ + 0x4e7, /* U+0004e6: CYRILLIC CAPITAL LETTER O WITH DIAERESIS*/ + 0x4e7, /* U+0004e7: CYRILLIC SMALL LETTER O WITH DIAERESIS*/ + 0x4e9, /* U+0004e8: CYRILLIC CAPITAL LETTER BARRED O*/ + 0x4e9, /* U+0004e9: CYRILLIC SMALL LETTER BARRED O*/ + 0x4eb, /* U+0004ea: CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS*/ + 0x4eb, /* U+0004eb: CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS*/ + 0x4ed, /* U+0004ec: CYRILLIC CAPITAL LETTER E WITH DIAERESIS*/ + 0x4ed, /* U+0004ed: CYRILLIC SMALL LETTER E WITH DIAERESIS*/ + 0x4ef, /* U+0004ee: CYRILLIC CAPITAL LETTER U WITH MACRON*/ + 0x4ef, /* U+0004ef: CYRILLIC SMALL LETTER U WITH MACRON*/ + 0x4f1, /* U+0004f0: CYRILLIC CAPITAL LETTER U WITH DIAERESIS*/ + 0x4f1, /* U+0004f1: CYRILLIC SMALL LETTER U WITH DIAERESIS*/ + 0x4f3, /* U+0004f2: CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE*/ + 0x4f3, /* U+0004f3: CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE*/ + 0x4f5, /* U+0004f4: CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS*/ + 0x4f5, /* U+0004f5: CYRILLIC SMALL LETTER CHE WITH DIAERESIS*/ + 0x4f7, /* U+0004f6: CYRILLIC CAPITAL LETTER GHE WITH DESCENDER*/ + 0x4f7, /* U+0004f7: CYRILLIC SMALL LETTER GHE WITH DESCENDER*/ + 0x4f9, /* U+0004f8: CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS*/ + 0x4f9, /* U+0004f9: CYRILLIC SMALL LETTER YERU WITH DIAERESIS*/ + 0x4fb, /* U+0004fa: CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK*/ + 0x4fb, /* U+0004fb: CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK*/ + 0x4fd, /* U+0004fc: CYRILLIC CAPITAL LETTER HA WITH HOOK*/ + 0x4fd, /* U+0004fd: CYRILLIC SMALL LETTER HA WITH HOOK*/ + 0x4ff, /* U+0004fe: CYRILLIC CAPITAL LETTER HA WITH STROKE*/ + 0x4ff, /* U+0004ff: CYRILLIC SMALL LETTER HA WITH STROKE*/ + 0x501, /* U+000500: CYRILLIC CAPITAL LETTER KOMI DE*/ + 0x501, /* U+000501: CYRILLIC SMALL LETTER KOMI DE*/ + 0x503, /* U+000502: CYRILLIC CAPITAL LETTER KOMI DJE*/ + 0x503, /* U+000503: CYRILLIC SMALL LETTER KOMI DJE*/ + 0x505, /* U+000504: CYRILLIC CAPITAL LETTER KOMI ZJE*/ + 0x505, /* U+000505: CYRILLIC SMALL LETTER KOMI ZJE*/ + 0x507, /* U+000506: CYRILLIC CAPITAL LETTER KOMI DZJE*/ + 0x507, /* U+000507: CYRILLIC SMALL LETTER KOMI DZJE*/ + 0x509, /* U+000508: CYRILLIC CAPITAL LETTER KOMI LJE*/ + 0x509, /* U+000509: CYRILLIC SMALL LETTER KOMI LJE*/ + 0x50b, /* U+00050a: CYRILLIC CAPITAL LETTER KOMI NJE*/ + 0x50b, /* U+00050b: CYRILLIC SMALL LETTER KOMI NJE*/ + 0x50d, /* U+00050c: CYRILLIC CAPITAL LETTER KOMI SJE*/ + 0x50d, /* U+00050d: CYRILLIC SMALL LETTER KOMI SJE*/ + 0x50f, /* U+00050e: CYRILLIC CAPITAL LETTER KOMI TJE*/ + 0x50f, /* U+00050f: CYRILLIC SMALL LETTER KOMI TJE*/ + 0x511, /* U+000510: CYRILLIC CAPITAL LETTER REVERSED ZE*/ + 0x511, /* U+000511: CYRILLIC SMALL LETTER REVERSED ZE*/ + 0x513, /* U+000512: CYRILLIC CAPITAL LETTER EL WITH HOOK*/ + 0x513, /* U+000513: CYRILLIC SMALL LETTER EL WITH HOOK*/ + 0x515, /* U+000514: CYRILLIC CAPITAL LETTER LHA*/ + 0x515, /* U+000515: CYRILLIC SMALL LETTER LHA*/ + 0x517, /* U+000516: CYRILLIC CAPITAL LETTER RHA*/ + 0x517, /* U+000517: CYRILLIC SMALL LETTER RHA*/ + 0x519, /* U+000518: CYRILLIC CAPITAL LETTER YAE*/ + 0x519, /* U+000519: CYRILLIC SMALL LETTER YAE*/ + 0x51b, /* U+00051a: CYRILLIC CAPITAL LETTER QA*/ + 0x51b, /* U+00051b: CYRILLIC SMALL LETTER QA*/ + 0x51d, /* U+00051c: CYRILLIC CAPITAL LETTER WE*/ + 0x51d, /* U+00051d: CYRILLIC SMALL LETTER WE*/ + 0x51f, /* U+00051e: CYRILLIC CAPITAL LETTER ALEUT KA*/ + 0x51f, /* U+00051f: CYRILLIC SMALL LETTER ALEUT KA*/ + 0x521, /* U+000520: CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK*/ + 0x521, /* U+000521: CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK*/ + 0x523, /* U+000522: CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK*/ + 0x523, /* U+000523: CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK*/ + 0x525, /* U+000524: CYRILLIC CAPITAL LETTER PE WITH DESCENDER*/ + 0x525, /* U+000525: CYRILLIC SMALL LETTER PE WITH DESCENDER*/ + 0x527, /* U+000526: CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER*/ + 0x527, /* U+000527: CYRILLIC SMALL LETTER SHHA WITH DESCENDER*/ + 0x528, /* U+000528: */ + 0x529, /* U+000529: */ + 0x52a, /* U+00052a: */ + 0x52b, /* U+00052b: */ + 0x52c, /* U+00052c: */ + 0x52d, /* U+00052d: */ + 0x52e, /* U+00052e: */ + 0x52f, /* U+00052f: */ + 0x530, /* U+000530: */ + 0x561, /* U+000531: ARMENIAN CAPITAL LETTER AYB*/ + 0x562, /* U+000532: ARMENIAN CAPITAL LETTER BEN*/ + 0x563, /* U+000533: ARMENIAN CAPITAL LETTER GIM*/ + 0x564, /* U+000534: ARMENIAN CAPITAL LETTER DA*/ + 0x565, /* U+000535: ARMENIAN CAPITAL LETTER ECH*/ + 0x566, /* U+000536: ARMENIAN CAPITAL LETTER ZA*/ + 0x567, /* U+000537: ARMENIAN CAPITAL LETTER EH*/ + 0x568, /* U+000538: ARMENIAN CAPITAL LETTER ET*/ + 0x569, /* U+000539: ARMENIAN CAPITAL LETTER TO*/ + 0x56a, /* U+00053a: ARMENIAN CAPITAL LETTER ZHE*/ + 0x56b, /* U+00053b: ARMENIAN CAPITAL LETTER INI*/ + 0x56c, /* U+00053c: ARMENIAN CAPITAL LETTER LIWN*/ + 0x56d, /* U+00053d: ARMENIAN CAPITAL LETTER XEH*/ + 0x56e, /* U+00053e: ARMENIAN CAPITAL LETTER CA*/ + 0x56f, /* U+00053f: ARMENIAN CAPITAL LETTER KEN*/ + 0x570, /* U+000540: ARMENIAN CAPITAL LETTER HO*/ + 0x571, /* U+000541: ARMENIAN CAPITAL LETTER JA*/ + 0x572, /* U+000542: ARMENIAN CAPITAL LETTER GHAD*/ + 0x573, /* U+000543: ARMENIAN CAPITAL LETTER CHEH*/ + 0x574, /* U+000544: ARMENIAN CAPITAL LETTER MEN*/ + 0x575, /* U+000545: ARMENIAN CAPITAL LETTER YI*/ + 0x576, /* U+000546: ARMENIAN CAPITAL LETTER NOW*/ + 0x577, /* U+000547: ARMENIAN CAPITAL LETTER SHA*/ + 0x578, /* U+000548: ARMENIAN CAPITAL LETTER VO*/ + 0x579, /* U+000549: ARMENIAN CAPITAL LETTER CHA*/ + 0x57a, /* U+00054a: ARMENIAN CAPITAL LETTER PEH*/ + 0x57b, /* U+00054b: ARMENIAN CAPITAL LETTER JHEH*/ + 0x57c, /* U+00054c: ARMENIAN CAPITAL LETTER RA*/ + 0x57d, /* U+00054d: ARMENIAN CAPITAL LETTER SEH*/ + 0x57e, /* U+00054e: ARMENIAN CAPITAL LETTER VEW*/ + 0x57f, /* U+00054f: ARMENIAN CAPITAL LETTER TIWN*/ + 0x580, /* U+000550: ARMENIAN CAPITAL LETTER REH*/ + 0x581, /* U+000551: ARMENIAN CAPITAL LETTER CO*/ + 0x582, /* U+000552: ARMENIAN CAPITAL LETTER YIWN*/ + 0x583, /* U+000553: ARMENIAN CAPITAL LETTER PIWR*/ + 0x584, /* U+000554: ARMENIAN CAPITAL LETTER KEH*/ + 0x585, /* U+000555: ARMENIAN CAPITAL LETTER OH*/ + 0x586, /* U+000556: ARMENIAN CAPITAL LETTER FEH*/ +}; + +static const RTUNICP g_afRTUniLower0x0010a0[] = +{ + 0x2d00, /* U+0010a0: GEORGIAN CAPITAL LETTER AN*/ + 0x2d01, /* U+0010a1: GEORGIAN CAPITAL LETTER BAN*/ + 0x2d02, /* U+0010a2: GEORGIAN CAPITAL LETTER GAN*/ + 0x2d03, /* U+0010a3: GEORGIAN CAPITAL LETTER DON*/ + 0x2d04, /* U+0010a4: GEORGIAN CAPITAL LETTER EN*/ + 0x2d05, /* U+0010a5: GEORGIAN CAPITAL LETTER VIN*/ + 0x2d06, /* U+0010a6: GEORGIAN CAPITAL LETTER ZEN*/ + 0x2d07, /* U+0010a7: GEORGIAN CAPITAL LETTER TAN*/ + 0x2d08, /* U+0010a8: GEORGIAN CAPITAL LETTER IN*/ + 0x2d09, /* U+0010a9: GEORGIAN CAPITAL LETTER KAN*/ + 0x2d0a, /* U+0010aa: GEORGIAN CAPITAL LETTER LAS*/ + 0x2d0b, /* U+0010ab: GEORGIAN CAPITAL LETTER MAN*/ + 0x2d0c, /* U+0010ac: GEORGIAN CAPITAL LETTER NAR*/ + 0x2d0d, /* U+0010ad: GEORGIAN CAPITAL LETTER ON*/ + 0x2d0e, /* U+0010ae: GEORGIAN CAPITAL LETTER PAR*/ + 0x2d0f, /* U+0010af: GEORGIAN CAPITAL LETTER ZHAR*/ + 0x2d10, /* U+0010b0: GEORGIAN CAPITAL LETTER RAE*/ + 0x2d11, /* U+0010b1: GEORGIAN CAPITAL LETTER SAN*/ + 0x2d12, /* U+0010b2: GEORGIAN CAPITAL LETTER TAR*/ + 0x2d13, /* U+0010b3: GEORGIAN CAPITAL LETTER UN*/ + 0x2d14, /* U+0010b4: GEORGIAN CAPITAL LETTER PHAR*/ + 0x2d15, /* U+0010b5: GEORGIAN CAPITAL LETTER KHAR*/ + 0x2d16, /* U+0010b6: GEORGIAN CAPITAL LETTER GHAN*/ + 0x2d17, /* U+0010b7: GEORGIAN CAPITAL LETTER QAR*/ + 0x2d18, /* U+0010b8: GEORGIAN CAPITAL LETTER SHIN*/ + 0x2d19, /* U+0010b9: GEORGIAN CAPITAL LETTER CHIN*/ + 0x2d1a, /* U+0010ba: GEORGIAN CAPITAL LETTER CAN*/ + 0x2d1b, /* U+0010bb: GEORGIAN CAPITAL LETTER JIL*/ + 0x2d1c, /* U+0010bc: GEORGIAN CAPITAL LETTER CIL*/ + 0x2d1d, /* U+0010bd: GEORGIAN CAPITAL LETTER CHAR*/ + 0x2d1e, /* U+0010be: GEORGIAN CAPITAL LETTER XAN*/ + 0x2d1f, /* U+0010bf: GEORGIAN CAPITAL LETTER JHAN*/ + 0x2d20, /* U+0010c0: GEORGIAN CAPITAL LETTER HAE*/ + 0x2d21, /* U+0010c1: GEORGIAN CAPITAL LETTER HE*/ + 0x2d22, /* U+0010c2: GEORGIAN CAPITAL LETTER HIE*/ + 0x2d23, /* U+0010c3: GEORGIAN CAPITAL LETTER WE*/ + 0x2d24, /* U+0010c4: GEORGIAN CAPITAL LETTER HAR*/ + 0x2d25, /* U+0010c5: GEORGIAN CAPITAL LETTER HOE*/ + 0x10c6, /* U+0010c6: */ + 0x2d27, /* U+0010c7: GEORGIAN CAPITAL LETTER YN*/ + 0x10c8, /* U+0010c8: */ + 0x10c9, /* U+0010c9: */ + 0x10ca, /* U+0010ca: */ + 0x10cb, /* U+0010cb: */ + 0x10cc, /* U+0010cc: */ + 0x2d2d, /* U+0010cd: GEORGIAN CAPITAL LETTER AEN*/ +}; + +static const RTUNICP g_afRTUniLower0x001e00[] = +{ + 0x1e01, /* U+001e00: LATIN CAPITAL LETTER A WITH RING BELOW*/ + 0x1e01, /* U+001e01: LATIN SMALL LETTER A WITH RING BELOW*/ + 0x1e03, /* U+001e02: LATIN CAPITAL LETTER B WITH DOT ABOVE*/ + 0x1e03, /* U+001e03: LATIN SMALL LETTER B WITH DOT ABOVE*/ + 0x1e05, /* U+001e04: LATIN CAPITAL LETTER B WITH DOT BELOW*/ + 0x1e05, /* U+001e05: LATIN SMALL LETTER B WITH DOT BELOW*/ + 0x1e07, /* U+001e06: LATIN CAPITAL LETTER B WITH LINE BELOW*/ + 0x1e07, /* U+001e07: LATIN SMALL LETTER B WITH LINE BELOW*/ + 0x1e09, /* U+001e08: LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE*/ + 0x1e09, /* U+001e09: LATIN SMALL LETTER C WITH CEDILLA AND ACUTE*/ + 0x1e0b, /* U+001e0a: LATIN CAPITAL LETTER D WITH DOT ABOVE*/ + 0x1e0b, /* U+001e0b: LATIN SMALL LETTER D WITH DOT ABOVE*/ + 0x1e0d, /* U+001e0c: LATIN CAPITAL LETTER D WITH DOT BELOW*/ + 0x1e0d, /* U+001e0d: LATIN SMALL LETTER D WITH DOT BELOW*/ + 0x1e0f, /* U+001e0e: LATIN CAPITAL LETTER D WITH LINE BELOW*/ + 0x1e0f, /* U+001e0f: LATIN SMALL LETTER D WITH LINE BELOW*/ + 0x1e11, /* U+001e10: LATIN CAPITAL LETTER D WITH CEDILLA*/ + 0x1e11, /* U+001e11: LATIN SMALL LETTER D WITH CEDILLA*/ + 0x1e13, /* U+001e12: LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW*/ + 0x1e13, /* U+001e13: LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW*/ + 0x1e15, /* U+001e14: LATIN CAPITAL LETTER E WITH MACRON AND GRAVE*/ + 0x1e15, /* U+001e15: LATIN SMALL LETTER E WITH MACRON AND GRAVE*/ + 0x1e17, /* U+001e16: LATIN CAPITAL LETTER E WITH MACRON AND ACUTE*/ + 0x1e17, /* U+001e17: LATIN SMALL LETTER E WITH MACRON AND ACUTE*/ + 0x1e19, /* U+001e18: LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW*/ + 0x1e19, /* U+001e19: LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW*/ + 0x1e1b, /* U+001e1a: LATIN CAPITAL LETTER E WITH TILDE BELOW*/ + 0x1e1b, /* U+001e1b: LATIN SMALL LETTER E WITH TILDE BELOW*/ + 0x1e1d, /* U+001e1c: LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE*/ + 0x1e1d, /* U+001e1d: LATIN SMALL LETTER E WITH CEDILLA AND BREVE*/ + 0x1e1f, /* U+001e1e: LATIN CAPITAL LETTER F WITH DOT ABOVE*/ + 0x1e1f, /* U+001e1f: LATIN SMALL LETTER F WITH DOT ABOVE*/ + 0x1e21, /* U+001e20: LATIN CAPITAL LETTER G WITH MACRON*/ + 0x1e21, /* U+001e21: LATIN SMALL LETTER G WITH MACRON*/ + 0x1e23, /* U+001e22: LATIN CAPITAL LETTER H WITH DOT ABOVE*/ + 0x1e23, /* U+001e23: LATIN SMALL LETTER H WITH DOT ABOVE*/ + 0x1e25, /* U+001e24: LATIN CAPITAL LETTER H WITH DOT BELOW*/ + 0x1e25, /* U+001e25: LATIN SMALL LETTER H WITH DOT BELOW*/ + 0x1e27, /* U+001e26: LATIN CAPITAL LETTER H WITH DIAERESIS*/ + 0x1e27, /* U+001e27: LATIN SMALL LETTER H WITH DIAERESIS*/ + 0x1e29, /* U+001e28: LATIN CAPITAL LETTER H WITH CEDILLA*/ + 0x1e29, /* U+001e29: LATIN SMALL LETTER H WITH CEDILLA*/ + 0x1e2b, /* U+001e2a: LATIN CAPITAL LETTER H WITH BREVE BELOW*/ + 0x1e2b, /* U+001e2b: LATIN SMALL LETTER H WITH BREVE BELOW*/ + 0x1e2d, /* U+001e2c: LATIN CAPITAL LETTER I WITH TILDE BELOW*/ + 0x1e2d, /* U+001e2d: LATIN SMALL LETTER I WITH TILDE BELOW*/ + 0x1e2f, /* U+001e2e: LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE*/ + 0x1e2f, /* U+001e2f: LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE*/ + 0x1e31, /* U+001e30: LATIN CAPITAL LETTER K WITH ACUTE*/ + 0x1e31, /* U+001e31: LATIN SMALL LETTER K WITH ACUTE*/ + 0x1e33, /* U+001e32: LATIN CAPITAL LETTER K WITH DOT BELOW*/ + 0x1e33, /* U+001e33: LATIN SMALL LETTER K WITH DOT BELOW*/ + 0x1e35, /* U+001e34: LATIN CAPITAL LETTER K WITH LINE BELOW*/ + 0x1e35, /* U+001e35: LATIN SMALL LETTER K WITH LINE BELOW*/ + 0x1e37, /* U+001e36: LATIN CAPITAL LETTER L WITH DOT BELOW*/ + 0x1e37, /* U+001e37: LATIN SMALL LETTER L WITH DOT BELOW*/ + 0x1e39, /* U+001e38: LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON*/ + 0x1e39, /* U+001e39: LATIN SMALL LETTER L WITH DOT BELOW AND MACRON*/ + 0x1e3b, /* U+001e3a: LATIN CAPITAL LETTER L WITH LINE BELOW*/ + 0x1e3b, /* U+001e3b: LATIN SMALL LETTER L WITH LINE BELOW*/ + 0x1e3d, /* U+001e3c: LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW*/ + 0x1e3d, /* U+001e3d: LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW*/ + 0x1e3f, /* U+001e3e: LATIN CAPITAL LETTER M WITH ACUTE*/ + 0x1e3f, /* U+001e3f: LATIN SMALL LETTER M WITH ACUTE*/ + 0x1e41, /* U+001e40: LATIN CAPITAL LETTER M WITH DOT ABOVE*/ + 0x1e41, /* U+001e41: LATIN SMALL LETTER M WITH DOT ABOVE*/ + 0x1e43, /* U+001e42: LATIN CAPITAL LETTER M WITH DOT BELOW*/ + 0x1e43, /* U+001e43: LATIN SMALL LETTER M WITH DOT BELOW*/ + 0x1e45, /* U+001e44: LATIN CAPITAL LETTER N WITH DOT ABOVE*/ + 0x1e45, /* U+001e45: LATIN SMALL LETTER N WITH DOT ABOVE*/ + 0x1e47, /* U+001e46: LATIN CAPITAL LETTER N WITH DOT BELOW*/ + 0x1e47, /* U+001e47: LATIN SMALL LETTER N WITH DOT BELOW*/ + 0x1e49, /* U+001e48: LATIN CAPITAL LETTER N WITH LINE BELOW*/ + 0x1e49, /* U+001e49: LATIN SMALL LETTER N WITH LINE BELOW*/ + 0x1e4b, /* U+001e4a: LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW*/ + 0x1e4b, /* U+001e4b: LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW*/ + 0x1e4d, /* U+001e4c: LATIN CAPITAL LETTER O WITH TILDE AND ACUTE*/ + 0x1e4d, /* U+001e4d: LATIN SMALL LETTER O WITH TILDE AND ACUTE*/ + 0x1e4f, /* U+001e4e: LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS*/ + 0x1e4f, /* U+001e4f: LATIN SMALL LETTER O WITH TILDE AND DIAERESIS*/ + 0x1e51, /* U+001e50: LATIN CAPITAL LETTER O WITH MACRON AND GRAVE*/ + 0x1e51, /* U+001e51: LATIN SMALL LETTER O WITH MACRON AND GRAVE*/ + 0x1e53, /* U+001e52: LATIN CAPITAL LETTER O WITH MACRON AND ACUTE*/ + 0x1e53, /* U+001e53: LATIN SMALL LETTER O WITH MACRON AND ACUTE*/ + 0x1e55, /* U+001e54: LATIN CAPITAL LETTER P WITH ACUTE*/ + 0x1e55, /* U+001e55: LATIN SMALL LETTER P WITH ACUTE*/ + 0x1e57, /* U+001e56: LATIN CAPITAL LETTER P WITH DOT ABOVE*/ + 0x1e57, /* U+001e57: LATIN SMALL LETTER P WITH DOT ABOVE*/ + 0x1e59, /* U+001e58: LATIN CAPITAL LETTER R WITH DOT ABOVE*/ + 0x1e59, /* U+001e59: LATIN SMALL LETTER R WITH DOT ABOVE*/ + 0x1e5b, /* U+001e5a: LATIN CAPITAL LETTER R WITH DOT BELOW*/ + 0x1e5b, /* U+001e5b: LATIN SMALL LETTER R WITH DOT BELOW*/ + 0x1e5d, /* U+001e5c: LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON*/ + 0x1e5d, /* U+001e5d: LATIN SMALL LETTER R WITH DOT BELOW AND MACRON*/ + 0x1e5f, /* U+001e5e: LATIN CAPITAL LETTER R WITH LINE BELOW*/ + 0x1e5f, /* U+001e5f: LATIN SMALL LETTER R WITH LINE BELOW*/ + 0x1e61, /* U+001e60: LATIN CAPITAL LETTER S WITH DOT ABOVE*/ + 0x1e61, /* U+001e61: LATIN SMALL LETTER S WITH DOT ABOVE*/ + 0x1e63, /* U+001e62: LATIN CAPITAL LETTER S WITH DOT BELOW*/ + 0x1e63, /* U+001e63: LATIN SMALL LETTER S WITH DOT BELOW*/ + 0x1e65, /* U+001e64: LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE*/ + 0x1e65, /* U+001e65: LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE*/ + 0x1e67, /* U+001e66: LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE*/ + 0x1e67, /* U+001e67: LATIN SMALL LETTER S WITH CARON AND DOT ABOVE*/ + 0x1e69, /* U+001e68: LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE*/ + 0x1e69, /* U+001e69: LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE*/ + 0x1e6b, /* U+001e6a: LATIN CAPITAL LETTER T WITH DOT ABOVE*/ + 0x1e6b, /* U+001e6b: LATIN SMALL LETTER T WITH DOT ABOVE*/ + 0x1e6d, /* U+001e6c: LATIN CAPITAL LETTER T WITH DOT BELOW*/ + 0x1e6d, /* U+001e6d: LATIN SMALL LETTER T WITH DOT BELOW*/ + 0x1e6f, /* U+001e6e: LATIN CAPITAL LETTER T WITH LINE BELOW*/ + 0x1e6f, /* U+001e6f: LATIN SMALL LETTER T WITH LINE BELOW*/ + 0x1e71, /* U+001e70: LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW*/ + 0x1e71, /* U+001e71: LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW*/ + 0x1e73, /* U+001e72: LATIN CAPITAL LETTER U WITH DIAERESIS BELOW*/ + 0x1e73, /* U+001e73: LATIN SMALL LETTER U WITH DIAERESIS BELOW*/ + 0x1e75, /* U+001e74: LATIN CAPITAL LETTER U WITH TILDE BELOW*/ + 0x1e75, /* U+001e75: LATIN SMALL LETTER U WITH TILDE BELOW*/ + 0x1e77, /* U+001e76: LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW*/ + 0x1e77, /* U+001e77: LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW*/ + 0x1e79, /* U+001e78: LATIN CAPITAL LETTER U WITH TILDE AND ACUTE*/ + 0x1e79, /* U+001e79: LATIN SMALL LETTER U WITH TILDE AND ACUTE*/ + 0x1e7b, /* U+001e7a: LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS*/ + 0x1e7b, /* U+001e7b: LATIN SMALL LETTER U WITH MACRON AND DIAERESIS*/ + 0x1e7d, /* U+001e7c: LATIN CAPITAL LETTER V WITH TILDE*/ + 0x1e7d, /* U+001e7d: LATIN SMALL LETTER V WITH TILDE*/ + 0x1e7f, /* U+001e7e: LATIN CAPITAL LETTER V WITH DOT BELOW*/ + 0x1e7f, /* U+001e7f: LATIN SMALL LETTER V WITH DOT BELOW*/ + 0x1e81, /* U+001e80: LATIN CAPITAL LETTER W WITH GRAVE*/ + 0x1e81, /* U+001e81: LATIN SMALL LETTER W WITH GRAVE*/ + 0x1e83, /* U+001e82: LATIN CAPITAL LETTER W WITH ACUTE*/ + 0x1e83, /* U+001e83: LATIN SMALL LETTER W WITH ACUTE*/ + 0x1e85, /* U+001e84: LATIN CAPITAL LETTER W WITH DIAERESIS*/ + 0x1e85, /* U+001e85: LATIN SMALL LETTER W WITH DIAERESIS*/ + 0x1e87, /* U+001e86: LATIN CAPITAL LETTER W WITH DOT ABOVE*/ + 0x1e87, /* U+001e87: LATIN SMALL LETTER W WITH DOT ABOVE*/ + 0x1e89, /* U+001e88: LATIN CAPITAL LETTER W WITH DOT BELOW*/ + 0x1e89, /* U+001e89: LATIN SMALL LETTER W WITH DOT BELOW*/ + 0x1e8b, /* U+001e8a: LATIN CAPITAL LETTER X WITH DOT ABOVE*/ + 0x1e8b, /* U+001e8b: LATIN SMALL LETTER X WITH DOT ABOVE*/ + 0x1e8d, /* U+001e8c: LATIN CAPITAL LETTER X WITH DIAERESIS*/ + 0x1e8d, /* U+001e8d: LATIN SMALL LETTER X WITH DIAERESIS*/ + 0x1e8f, /* U+001e8e: LATIN CAPITAL LETTER Y WITH DOT ABOVE*/ + 0x1e8f, /* U+001e8f: LATIN SMALL LETTER Y WITH DOT ABOVE*/ + 0x1e91, /* U+001e90: LATIN CAPITAL LETTER Z WITH CIRCUMFLEX*/ + 0x1e91, /* U+001e91: LATIN SMALL LETTER Z WITH CIRCUMFLEX*/ + 0x1e93, /* U+001e92: LATIN CAPITAL LETTER Z WITH DOT BELOW*/ + 0x1e93, /* U+001e93: LATIN SMALL LETTER Z WITH DOT BELOW*/ + 0x1e95, /* U+001e94: LATIN CAPITAL LETTER Z WITH LINE BELOW*/ + 0x1e95, /* U+001e95: LATIN SMALL LETTER Z WITH LINE BELOW*/ + 0x1e96, /* U+001e96: LATIN SMALL LETTER H WITH LINE BELOW*/ + 0x1e97, /* U+001e97: LATIN SMALL LETTER T WITH DIAERESIS*/ + 0x1e98, /* U+001e98: LATIN SMALL LETTER W WITH RING ABOVE*/ + 0x1e99, /* U+001e99: LATIN SMALL LETTER Y WITH RING ABOVE*/ + 0x1e9a, /* U+001e9a: LATIN SMALL LETTER A WITH RIGHT HALF RING*/ + 0x1e9b, /* U+001e9b: LATIN SMALL LETTER LONG S WITH DOT ABOVE*/ + 0x1e9c, /* U+001e9c: LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE*/ + 0x1e9d, /* U+001e9d: LATIN SMALL LETTER LONG S WITH HIGH STROKE*/ + 0xdf, /* U+001e9e: LATIN CAPITAL LETTER SHARP S*/ + 0x1e9f, /* U+001e9f: LATIN SMALL LETTER DELTA*/ + 0x1ea1, /* U+001ea0: LATIN CAPITAL LETTER A WITH DOT BELOW*/ + 0x1ea1, /* U+001ea1: LATIN SMALL LETTER A WITH DOT BELOW*/ + 0x1ea3, /* U+001ea2: LATIN CAPITAL LETTER A WITH HOOK ABOVE*/ + 0x1ea3, /* U+001ea3: LATIN SMALL LETTER A WITH HOOK ABOVE*/ + 0x1ea5, /* U+001ea4: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE*/ + 0x1ea5, /* U+001ea5: LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE*/ + 0x1ea7, /* U+001ea6: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE*/ + 0x1ea7, /* U+001ea7: LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE*/ + 0x1ea9, /* U+001ea8: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ea9, /* U+001ea9: LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1eab, /* U+001eaa: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE*/ + 0x1eab, /* U+001eab: LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE*/ + 0x1ead, /* U+001eac: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1ead, /* U+001ead: LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1eaf, /* U+001eae: LATIN CAPITAL LETTER A WITH BREVE AND ACUTE*/ + 0x1eaf, /* U+001eaf: LATIN SMALL LETTER A WITH BREVE AND ACUTE*/ + 0x1eb1, /* U+001eb0: LATIN CAPITAL LETTER A WITH BREVE AND GRAVE*/ + 0x1eb1, /* U+001eb1: LATIN SMALL LETTER A WITH BREVE AND GRAVE*/ + 0x1eb3, /* U+001eb2: LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE*/ + 0x1eb3, /* U+001eb3: LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE*/ + 0x1eb5, /* U+001eb4: LATIN CAPITAL LETTER A WITH BREVE AND TILDE*/ + 0x1eb5, /* U+001eb5: LATIN SMALL LETTER A WITH BREVE AND TILDE*/ + 0x1eb7, /* U+001eb6: LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW*/ + 0x1eb7, /* U+001eb7: LATIN SMALL LETTER A WITH BREVE AND DOT BELOW*/ + 0x1eb9, /* U+001eb8: LATIN CAPITAL LETTER E WITH DOT BELOW*/ + 0x1eb9, /* U+001eb9: LATIN SMALL LETTER E WITH DOT BELOW*/ + 0x1ebb, /* U+001eba: LATIN CAPITAL LETTER E WITH HOOK ABOVE*/ + 0x1ebb, /* U+001ebb: LATIN SMALL LETTER E WITH HOOK ABOVE*/ + 0x1ebd, /* U+001ebc: LATIN CAPITAL LETTER E WITH TILDE*/ + 0x1ebd, /* U+001ebd: LATIN SMALL LETTER E WITH TILDE*/ + 0x1ebf, /* U+001ebe: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE*/ + 0x1ebf, /* U+001ebf: LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE*/ + 0x1ec1, /* U+001ec0: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE*/ + 0x1ec1, /* U+001ec1: LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE*/ + 0x1ec3, /* U+001ec2: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ec3, /* U+001ec3: LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ec5, /* U+001ec4: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE*/ + 0x1ec5, /* U+001ec5: LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE*/ + 0x1ec7, /* U+001ec6: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1ec7, /* U+001ec7: LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1ec9, /* U+001ec8: LATIN CAPITAL LETTER I WITH HOOK ABOVE*/ + 0x1ec9, /* U+001ec9: LATIN SMALL LETTER I WITH HOOK ABOVE*/ + 0x1ecb, /* U+001eca: LATIN CAPITAL LETTER I WITH DOT BELOW*/ + 0x1ecb, /* U+001ecb: LATIN SMALL LETTER I WITH DOT BELOW*/ + 0x1ecd, /* U+001ecc: LATIN CAPITAL LETTER O WITH DOT BELOW*/ + 0x1ecd, /* U+001ecd: LATIN SMALL LETTER O WITH DOT BELOW*/ + 0x1ecf, /* U+001ece: LATIN CAPITAL LETTER O WITH HOOK ABOVE*/ + 0x1ecf, /* U+001ecf: LATIN SMALL LETTER O WITH HOOK ABOVE*/ + 0x1ed1, /* U+001ed0: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE*/ + 0x1ed1, /* U+001ed1: LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE*/ + 0x1ed3, /* U+001ed2: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE*/ + 0x1ed3, /* U+001ed3: LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE*/ + 0x1ed5, /* U+001ed4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ed5, /* U+001ed5: LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ed7, /* U+001ed6: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE*/ + 0x1ed7, /* U+001ed7: LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE*/ + 0x1ed9, /* U+001ed8: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1ed9, /* U+001ed9: LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1edb, /* U+001eda: LATIN CAPITAL LETTER O WITH HORN AND ACUTE*/ + 0x1edb, /* U+001edb: LATIN SMALL LETTER O WITH HORN AND ACUTE*/ + 0x1edd, /* U+001edc: LATIN CAPITAL LETTER O WITH HORN AND GRAVE*/ + 0x1edd, /* U+001edd: LATIN SMALL LETTER O WITH HORN AND GRAVE*/ + 0x1edf, /* U+001ede: LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE*/ + 0x1edf, /* U+001edf: LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE*/ + 0x1ee1, /* U+001ee0: LATIN CAPITAL LETTER O WITH HORN AND TILDE*/ + 0x1ee1, /* U+001ee1: LATIN SMALL LETTER O WITH HORN AND TILDE*/ + 0x1ee3, /* U+001ee2: LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW*/ + 0x1ee3, /* U+001ee3: LATIN SMALL LETTER O WITH HORN AND DOT BELOW*/ + 0x1ee5, /* U+001ee4: LATIN CAPITAL LETTER U WITH DOT BELOW*/ + 0x1ee5, /* U+001ee5: LATIN SMALL LETTER U WITH DOT BELOW*/ + 0x1ee7, /* U+001ee6: LATIN CAPITAL LETTER U WITH HOOK ABOVE*/ + 0x1ee7, /* U+001ee7: LATIN SMALL LETTER U WITH HOOK ABOVE*/ + 0x1ee9, /* U+001ee8: LATIN CAPITAL LETTER U WITH HORN AND ACUTE*/ + 0x1ee9, /* U+001ee9: LATIN SMALL LETTER U WITH HORN AND ACUTE*/ + 0x1eeb, /* U+001eea: LATIN CAPITAL LETTER U WITH HORN AND GRAVE*/ + 0x1eeb, /* U+001eeb: LATIN SMALL LETTER U WITH HORN AND GRAVE*/ + 0x1eed, /* U+001eec: LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE*/ + 0x1eed, /* U+001eed: LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE*/ + 0x1eef, /* U+001eee: LATIN CAPITAL LETTER U WITH HORN AND TILDE*/ + 0x1eef, /* U+001eef: LATIN SMALL LETTER U WITH HORN AND TILDE*/ + 0x1ef1, /* U+001ef0: LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW*/ + 0x1ef1, /* U+001ef1: LATIN SMALL LETTER U WITH HORN AND DOT BELOW*/ + 0x1ef3, /* U+001ef2: LATIN CAPITAL LETTER Y WITH GRAVE*/ + 0x1ef3, /* U+001ef3: LATIN SMALL LETTER Y WITH GRAVE*/ + 0x1ef5, /* U+001ef4: LATIN CAPITAL LETTER Y WITH DOT BELOW*/ + 0x1ef5, /* U+001ef5: LATIN SMALL LETTER Y WITH DOT BELOW*/ + 0x1ef7, /* U+001ef6: LATIN CAPITAL LETTER Y WITH HOOK ABOVE*/ + 0x1ef7, /* U+001ef7: LATIN SMALL LETTER Y WITH HOOK ABOVE*/ + 0x1ef9, /* U+001ef8: LATIN CAPITAL LETTER Y WITH TILDE*/ + 0x1ef9, /* U+001ef9: LATIN SMALL LETTER Y WITH TILDE*/ + 0x1efb, /* U+001efa: LATIN CAPITAL LETTER MIDDLE-WELSH LL*/ + 0x1efb, /* U+001efb: LATIN SMALL LETTER MIDDLE-WELSH LL*/ + 0x1efd, /* U+001efc: LATIN CAPITAL LETTER MIDDLE-WELSH V*/ + 0x1efd, /* U+001efd: LATIN SMALL LETTER MIDDLE-WELSH V*/ + 0x1eff, /* U+001efe: LATIN CAPITAL LETTER Y WITH LOOP*/ + 0x1eff, /* U+001eff: LATIN SMALL LETTER Y WITH LOOP*/ + 0x1f00, /* U+001f00: GREEK SMALL LETTER ALPHA WITH PSILI*/ + 0x1f01, /* U+001f01: GREEK SMALL LETTER ALPHA WITH DASIA*/ + 0x1f02, /* U+001f02: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA*/ + 0x1f03, /* U+001f03: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA*/ + 0x1f04, /* U+001f04: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA*/ + 0x1f05, /* U+001f05: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA*/ + 0x1f06, /* U+001f06: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ + 0x1f07, /* U+001f07: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ + 0x1f00, /* U+001f08: GREEK CAPITAL LETTER ALPHA WITH PSILI*/ + 0x1f01, /* U+001f09: GREEK CAPITAL LETTER ALPHA WITH DASIA*/ + 0x1f02, /* U+001f0a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA*/ + 0x1f03, /* U+001f0b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA*/ + 0x1f04, /* U+001f0c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA*/ + 0x1f05, /* U+001f0d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA*/ + 0x1f06, /* U+001f0e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ + 0x1f07, /* U+001f0f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ + 0x1f10, /* U+001f10: GREEK SMALL LETTER EPSILON WITH PSILI*/ + 0x1f11, /* U+001f11: GREEK SMALL LETTER EPSILON WITH DASIA*/ + 0x1f12, /* U+001f12: GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA*/ + 0x1f13, /* U+001f13: GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA*/ + 0x1f14, /* U+001f14: GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA*/ + 0x1f15, /* U+001f15: GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA*/ + 0x1f16, /* U+001f16: */ + 0x1f17, /* U+001f17: */ + 0x1f10, /* U+001f18: GREEK CAPITAL LETTER EPSILON WITH PSILI*/ + 0x1f11, /* U+001f19: GREEK CAPITAL LETTER EPSILON WITH DASIA*/ + 0x1f12, /* U+001f1a: GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA*/ + 0x1f13, /* U+001f1b: GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA*/ + 0x1f14, /* U+001f1c: GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA*/ + 0x1f15, /* U+001f1d: GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA*/ + 0x1f1e, /* U+001f1e: */ + 0x1f1f, /* U+001f1f: */ + 0x1f20, /* U+001f20: GREEK SMALL LETTER ETA WITH PSILI*/ + 0x1f21, /* U+001f21: GREEK SMALL LETTER ETA WITH DASIA*/ + 0x1f22, /* U+001f22: GREEK SMALL LETTER ETA WITH PSILI AND VARIA*/ + 0x1f23, /* U+001f23: GREEK SMALL LETTER ETA WITH DASIA AND VARIA*/ + 0x1f24, /* U+001f24: GREEK SMALL LETTER ETA WITH PSILI AND OXIA*/ + 0x1f25, /* U+001f25: GREEK SMALL LETTER ETA WITH DASIA AND OXIA*/ + 0x1f26, /* U+001f26: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI*/ + 0x1f27, /* U+001f27: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI*/ + 0x1f20, /* U+001f28: GREEK CAPITAL LETTER ETA WITH PSILI*/ + 0x1f21, /* U+001f29: GREEK CAPITAL LETTER ETA WITH DASIA*/ + 0x1f22, /* U+001f2a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA*/ + 0x1f23, /* U+001f2b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA*/ + 0x1f24, /* U+001f2c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA*/ + 0x1f25, /* U+001f2d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA*/ + 0x1f26, /* U+001f2e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI*/ + 0x1f27, /* U+001f2f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI*/ + 0x1f30, /* U+001f30: GREEK SMALL LETTER IOTA WITH PSILI*/ + 0x1f31, /* U+001f31: GREEK SMALL LETTER IOTA WITH DASIA*/ + 0x1f32, /* U+001f32: GREEK SMALL LETTER IOTA WITH PSILI AND VARIA*/ + 0x1f33, /* U+001f33: GREEK SMALL LETTER IOTA WITH DASIA AND VARIA*/ + 0x1f34, /* U+001f34: GREEK SMALL LETTER IOTA WITH PSILI AND OXIA*/ + 0x1f35, /* U+001f35: GREEK SMALL LETTER IOTA WITH DASIA AND OXIA*/ + 0x1f36, /* U+001f36: GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI*/ + 0x1f37, /* U+001f37: GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI*/ + 0x1f30, /* U+001f38: GREEK CAPITAL LETTER IOTA WITH PSILI*/ + 0x1f31, /* U+001f39: GREEK CAPITAL LETTER IOTA WITH DASIA*/ + 0x1f32, /* U+001f3a: GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA*/ + 0x1f33, /* U+001f3b: GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA*/ + 0x1f34, /* U+001f3c: GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA*/ + 0x1f35, /* U+001f3d: GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA*/ + 0x1f36, /* U+001f3e: GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI*/ + 0x1f37, /* U+001f3f: GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI*/ + 0x1f40, /* U+001f40: GREEK SMALL LETTER OMICRON WITH PSILI*/ + 0x1f41, /* U+001f41: GREEK SMALL LETTER OMICRON WITH DASIA*/ + 0x1f42, /* U+001f42: GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA*/ + 0x1f43, /* U+001f43: GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA*/ + 0x1f44, /* U+001f44: GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA*/ + 0x1f45, /* U+001f45: GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA*/ + 0x1f46, /* U+001f46: */ + 0x1f47, /* U+001f47: */ + 0x1f40, /* U+001f48: GREEK CAPITAL LETTER OMICRON WITH PSILI*/ + 0x1f41, /* U+001f49: GREEK CAPITAL LETTER OMICRON WITH DASIA*/ + 0x1f42, /* U+001f4a: GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA*/ + 0x1f43, /* U+001f4b: GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA*/ + 0x1f44, /* U+001f4c: GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA*/ + 0x1f45, /* U+001f4d: GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA*/ + 0x1f4e, /* U+001f4e: */ + 0x1f4f, /* U+001f4f: */ + 0x1f50, /* U+001f50: GREEK SMALL LETTER UPSILON WITH PSILI*/ + 0x1f51, /* U+001f51: GREEK SMALL LETTER UPSILON WITH DASIA*/ + 0x1f52, /* U+001f52: GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA*/ + 0x1f53, /* U+001f53: GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA*/ + 0x1f54, /* U+001f54: GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA*/ + 0x1f55, /* U+001f55: GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA*/ + 0x1f56, /* U+001f56: GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI*/ + 0x1f57, /* U+001f57: GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ + 0x1f58, /* U+001f58: */ + 0x1f51, /* U+001f59: GREEK CAPITAL LETTER UPSILON WITH DASIA*/ + 0x1f5a, /* U+001f5a: */ + 0x1f53, /* U+001f5b: GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA*/ + 0x1f5c, /* U+001f5c: */ + 0x1f55, /* U+001f5d: GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA*/ + 0x1f5e, /* U+001f5e: */ + 0x1f57, /* U+001f5f: GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ + 0x1f60, /* U+001f60: GREEK SMALL LETTER OMEGA WITH PSILI*/ + 0x1f61, /* U+001f61: GREEK SMALL LETTER OMEGA WITH DASIA*/ + 0x1f62, /* U+001f62: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA*/ + 0x1f63, /* U+001f63: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA*/ + 0x1f64, /* U+001f64: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA*/ + 0x1f65, /* U+001f65: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA*/ + 0x1f66, /* U+001f66: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ + 0x1f67, /* U+001f67: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ + 0x1f60, /* U+001f68: GREEK CAPITAL LETTER OMEGA WITH PSILI*/ + 0x1f61, /* U+001f69: GREEK CAPITAL LETTER OMEGA WITH DASIA*/ + 0x1f62, /* U+001f6a: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA*/ + 0x1f63, /* U+001f6b: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA*/ + 0x1f64, /* U+001f6c: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA*/ + 0x1f65, /* U+001f6d: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA*/ + 0x1f66, /* U+001f6e: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ + 0x1f67, /* U+001f6f: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ + 0x1f70, /* U+001f70: GREEK SMALL LETTER ALPHA WITH VARIA*/ + 0x1f71, /* U+001f71: GREEK SMALL LETTER ALPHA WITH OXIA*/ + 0x1f72, /* U+001f72: GREEK SMALL LETTER EPSILON WITH VARIA*/ + 0x1f73, /* U+001f73: GREEK SMALL LETTER EPSILON WITH OXIA*/ + 0x1f74, /* U+001f74: GREEK SMALL LETTER ETA WITH VARIA*/ + 0x1f75, /* U+001f75: GREEK SMALL LETTER ETA WITH OXIA*/ + 0x1f76, /* U+001f76: GREEK SMALL LETTER IOTA WITH VARIA*/ + 0x1f77, /* U+001f77: GREEK SMALL LETTER IOTA WITH OXIA*/ + 0x1f78, /* U+001f78: GREEK SMALL LETTER OMICRON WITH VARIA*/ + 0x1f79, /* U+001f79: GREEK SMALL LETTER OMICRON WITH OXIA*/ + 0x1f7a, /* U+001f7a: GREEK SMALL LETTER UPSILON WITH VARIA*/ + 0x1f7b, /* U+001f7b: GREEK SMALL LETTER UPSILON WITH OXIA*/ + 0x1f7c, /* U+001f7c: GREEK SMALL LETTER OMEGA WITH VARIA*/ + 0x1f7d, /* U+001f7d: GREEK SMALL LETTER OMEGA WITH OXIA*/ + 0x1f7e, /* U+001f7e: */ + 0x1f7f, /* U+001f7f: */ + 0x1f80, /* U+001f80: GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI*/ + 0x1f81, /* U+001f81: GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI*/ + 0x1f82, /* U+001f82: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + 0x1f83, /* U+001f83: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + 0x1f84, /* U+001f84: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + 0x1f85, /* U+001f85: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + 0x1f86, /* U+001f86: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f87, /* U+001f87: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f80, /* U+001f88: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI*/ + 0x1f81, /* U+001f89: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI*/ + 0x1f82, /* U+001f8a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + 0x1f83, /* U+001f8b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + 0x1f84, /* U+001f8c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + 0x1f85, /* U+001f8d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + 0x1f86, /* U+001f8e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1f87, /* U+001f8f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1f90, /* U+001f90: GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI*/ + 0x1f91, /* U+001f91: GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI*/ + 0x1f92, /* U+001f92: GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + 0x1f93, /* U+001f93: GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + 0x1f94, /* U+001f94: GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + 0x1f95, /* U+001f95: GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + 0x1f96, /* U+001f96: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f97, /* U+001f97: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f90, /* U+001f98: GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI*/ + 0x1f91, /* U+001f99: GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI*/ + 0x1f92, /* U+001f9a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + 0x1f93, /* U+001f9b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + 0x1f94, /* U+001f9c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + 0x1f95, /* U+001f9d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + 0x1f96, /* U+001f9e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1f97, /* U+001f9f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1fa0, /* U+001fa0: GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI*/ + 0x1fa1, /* U+001fa1: GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI*/ + 0x1fa2, /* U+001fa2: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + 0x1fa3, /* U+001fa3: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + 0x1fa4, /* U+001fa4: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + 0x1fa5, /* U+001fa5: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + 0x1fa6, /* U+001fa6: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1fa7, /* U+001fa7: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1fa0, /* U+001fa8: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI*/ + 0x1fa1, /* U+001fa9: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI*/ + 0x1fa2, /* U+001faa: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + 0x1fa3, /* U+001fab: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + 0x1fa4, /* U+001fac: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + 0x1fa5, /* U+001fad: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + 0x1fa6, /* U+001fae: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1fa7, /* U+001faf: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1fb0, /* U+001fb0: GREEK SMALL LETTER ALPHA WITH VRACHY*/ + 0x1fb1, /* U+001fb1: GREEK SMALL LETTER ALPHA WITH MACRON*/ + 0x1fb2, /* U+001fb2: GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI*/ + 0x1fb3, /* U+001fb3: GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI*/ + 0x1fb4, /* U+001fb4: GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI*/ + 0x1fb5, /* U+001fb5: */ + 0x1fb6, /* U+001fb6: GREEK SMALL LETTER ALPHA WITH PERISPOMENI*/ + 0x1fb7, /* U+001fb7: GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1fb0, /* U+001fb8: GREEK CAPITAL LETTER ALPHA WITH VRACHY*/ + 0x1fb1, /* U+001fb9: GREEK CAPITAL LETTER ALPHA WITH MACRON*/ + 0x1f70, /* U+001fba: GREEK CAPITAL LETTER ALPHA WITH VARIA*/ + 0x1f71, /* U+001fbb: GREEK CAPITAL LETTER ALPHA WITH OXIA*/ + 0x1fb3, /* U+001fbc: GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI*/ + 0x1fbd, /* U+001fbd: GREEK KORONIS*/ + 0x1fbe, /* U+001fbe: GREEK PROSGEGRAMMENI*/ + 0x1fbf, /* U+001fbf: GREEK PSILI*/ + 0x1fc0, /* U+001fc0: GREEK PERISPOMENI*/ + 0x1fc1, /* U+001fc1: GREEK DIALYTIKA AND PERISPOMENI*/ + 0x1fc2, /* U+001fc2: GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI*/ + 0x1fc3, /* U+001fc3: GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI*/ + 0x1fc4, /* U+001fc4: GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI*/ + 0x1fc5, /* U+001fc5: */ + 0x1fc6, /* U+001fc6: GREEK SMALL LETTER ETA WITH PERISPOMENI*/ + 0x1fc7, /* U+001fc7: GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f72, /* U+001fc8: GREEK CAPITAL LETTER EPSILON WITH VARIA*/ + 0x1f73, /* U+001fc9: GREEK CAPITAL LETTER EPSILON WITH OXIA*/ + 0x1f74, /* U+001fca: GREEK CAPITAL LETTER ETA WITH VARIA*/ + 0x1f75, /* U+001fcb: GREEK CAPITAL LETTER ETA WITH OXIA*/ + 0x1fc3, /* U+001fcc: GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI*/ + 0x1fcd, /* U+001fcd: GREEK PSILI AND VARIA*/ + 0x1fce, /* U+001fce: GREEK PSILI AND OXIA*/ + 0x1fcf, /* U+001fcf: GREEK PSILI AND PERISPOMENI*/ + 0x1fd0, /* U+001fd0: GREEK SMALL LETTER IOTA WITH VRACHY*/ + 0x1fd1, /* U+001fd1: GREEK SMALL LETTER IOTA WITH MACRON*/ + 0x1fd2, /* U+001fd2: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA*/ + 0x1fd3, /* U+001fd3: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA*/ + 0x1fd4, /* U+001fd4: */ + 0x1fd5, /* U+001fd5: */ + 0x1fd6, /* U+001fd6: GREEK SMALL LETTER IOTA WITH PERISPOMENI*/ + 0x1fd7, /* U+001fd7: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI*/ + 0x1fd0, /* U+001fd8: GREEK CAPITAL LETTER IOTA WITH VRACHY*/ + 0x1fd1, /* U+001fd9: GREEK CAPITAL LETTER IOTA WITH MACRON*/ + 0x1f76, /* U+001fda: GREEK CAPITAL LETTER IOTA WITH VARIA*/ + 0x1f77, /* U+001fdb: GREEK CAPITAL LETTER IOTA WITH OXIA*/ + 0x1fdc, /* U+001fdc: */ + 0x1fdd, /* U+001fdd: GREEK DASIA AND VARIA*/ + 0x1fde, /* U+001fde: GREEK DASIA AND OXIA*/ + 0x1fdf, /* U+001fdf: GREEK DASIA AND PERISPOMENI*/ + 0x1fe0, /* U+001fe0: GREEK SMALL LETTER UPSILON WITH VRACHY*/ + 0x1fe1, /* U+001fe1: GREEK SMALL LETTER UPSILON WITH MACRON*/ + 0x1fe2, /* U+001fe2: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA*/ + 0x1fe3, /* U+001fe3: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA*/ + 0x1fe4, /* U+001fe4: GREEK SMALL LETTER RHO WITH PSILI*/ + 0x1fe5, /* U+001fe5: GREEK SMALL LETTER RHO WITH DASIA*/ + 0x1fe6, /* U+001fe6: GREEK SMALL LETTER UPSILON WITH PERISPOMENI*/ + 0x1fe7, /* U+001fe7: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI*/ + 0x1fe0, /* U+001fe8: GREEK CAPITAL LETTER UPSILON WITH VRACHY*/ + 0x1fe1, /* U+001fe9: GREEK CAPITAL LETTER UPSILON WITH MACRON*/ + 0x1f7a, /* U+001fea: GREEK CAPITAL LETTER UPSILON WITH VARIA*/ + 0x1f7b, /* U+001feb: GREEK CAPITAL LETTER UPSILON WITH OXIA*/ + 0x1fe5, /* U+001fec: GREEK CAPITAL LETTER RHO WITH DASIA*/ + 0x1fed, /* U+001fed: GREEK DIALYTIKA AND VARIA*/ + 0x1fee, /* U+001fee: GREEK DIALYTIKA AND OXIA*/ + 0x1fef, /* U+001fef: GREEK VARIA*/ + 0x1ff0, /* U+001ff0: */ + 0x1ff1, /* U+001ff1: */ + 0x1ff2, /* U+001ff2: GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI*/ + 0x1ff3, /* U+001ff3: GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI*/ + 0x1ff4, /* U+001ff4: GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI*/ + 0x1ff5, /* U+001ff5: */ + 0x1ff6, /* U+001ff6: GREEK SMALL LETTER OMEGA WITH PERISPOMENI*/ + 0x1ff7, /* U+001ff7: GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f78, /* U+001ff8: GREEK CAPITAL LETTER OMICRON WITH VARIA*/ + 0x1f79, /* U+001ff9: GREEK CAPITAL LETTER OMICRON WITH OXIA*/ + 0x1f7c, /* U+001ffa: GREEK CAPITAL LETTER OMEGA WITH VARIA*/ + 0x1f7d, /* U+001ffb: GREEK CAPITAL LETTER OMEGA WITH OXIA*/ + 0x1ff3, /* U+001ffc: GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI*/ + 0x1ffd, /* U+001ffd: GREEK OXIA*/ + 0x1ffe, /* U+001ffe: GREEK DASIA*/ + 0x1fff, /* U+001fff: */ + 0x2000, /* U+002000: EN QUAD*/ + 0x2001, /* U+002001: EM QUAD*/ + 0x2002, /* U+002002: EN SPACE*/ + 0x2003, /* U+002003: EM SPACE*/ + 0x2004, /* U+002004: THREE-PER-EM SPACE*/ + 0x2005, /* U+002005: FOUR-PER-EM SPACE*/ + 0x2006, /* U+002006: SIX-PER-EM SPACE*/ + 0x2007, /* U+002007: FIGURE SPACE*/ + 0x2008, /* U+002008: PUNCTUATION SPACE*/ + 0x2009, /* U+002009: THIN SPACE*/ + 0x200a, /* U+00200a: HAIR SPACE*/ + 0x200b, /* U+00200b: ZERO WIDTH SPACE*/ + 0x200c, /* U+00200c: ZERO WIDTH NON-JOINER*/ + 0x200d, /* U+00200d: ZERO WIDTH JOINER*/ + 0x200e, /* U+00200e: LEFT-TO-RIGHT MARK*/ + 0x200f, /* U+00200f: RIGHT-TO-LEFT MARK*/ + 0x2010, /* U+002010: HYPHEN*/ + 0x2011, /* U+002011: NON-BREAKING HYPHEN*/ + 0x2012, /* U+002012: FIGURE DASH*/ + 0x2013, /* U+002013: EN DASH*/ + 0x2014, /* U+002014: EM DASH*/ + 0x2015, /* U+002015: HORIZONTAL BAR*/ + 0x2016, /* U+002016: DOUBLE VERTICAL LINE*/ + 0x2017, /* U+002017: DOUBLE LOW LINE*/ + 0x2018, /* U+002018: LEFT SINGLE QUOTATION MARK*/ + 0x2019, /* U+002019: RIGHT SINGLE QUOTATION MARK*/ + 0x201a, /* U+00201a: SINGLE LOW-9 QUOTATION MARK*/ + 0x201b, /* U+00201b: SINGLE HIGH-REVERSED-9 QUOTATION MARK*/ + 0x201c, /* U+00201c: LEFT DOUBLE QUOTATION MARK*/ + 0x201d, /* U+00201d: RIGHT DOUBLE QUOTATION MARK*/ + 0x201e, /* U+00201e: DOUBLE LOW-9 QUOTATION MARK*/ + 0x201f, /* U+00201f: DOUBLE HIGH-REVERSED-9 QUOTATION MARK*/ + 0x2020, /* U+002020: DAGGER*/ + 0x2021, /* U+002021: DOUBLE DAGGER*/ + 0x2022, /* U+002022: BULLET*/ + 0x2023, /* U+002023: TRIANGULAR BULLET*/ + 0x2024, /* U+002024: ONE DOT LEADER*/ + 0x2025, /* U+002025: TWO DOT LEADER*/ + 0x2026, /* U+002026: HORIZONTAL ELLIPSIS*/ + 0x2027, /* U+002027: HYPHENATION POINT*/ + 0x2028, /* U+002028: LINE SEPARATOR*/ + 0x2029, /* U+002029: PARAGRAPH SEPARATOR*/ + 0x202a, /* U+00202a: LEFT-TO-RIGHT EMBEDDING*/ + 0x202b, /* U+00202b: RIGHT-TO-LEFT EMBEDDING*/ + 0x202c, /* U+00202c: POP DIRECTIONAL FORMATTING*/ + 0x202d, /* U+00202d: LEFT-TO-RIGHT OVERRIDE*/ + 0x202e, /* U+00202e: RIGHT-TO-LEFT OVERRIDE*/ + 0x202f, /* U+00202f: NARROW NO-BREAK SPACE*/ + 0x2030, /* U+002030: PER MILLE SIGN*/ + 0x2031, /* U+002031: PER TEN THOUSAND SIGN*/ + 0x2032, /* U+002032: PRIME*/ + 0x2033, /* U+002033: DOUBLE PRIME*/ + 0x2034, /* U+002034: TRIPLE PRIME*/ + 0x2035, /* U+002035: REVERSED PRIME*/ + 0x2036, /* U+002036: REVERSED DOUBLE PRIME*/ + 0x2037, /* U+002037: REVERSED TRIPLE PRIME*/ + 0x2038, /* U+002038: CARET*/ + 0x2039, /* U+002039: SINGLE LEFT-POINTING ANGLE QUOTATION MARK*/ + 0x203a, /* U+00203a: SINGLE RIGHT-POINTING ANGLE QUOTATION MARK*/ + 0x203b, /* U+00203b: REFERENCE MARK*/ + 0x203c, /* U+00203c: DOUBLE EXCLAMATION MARK*/ + 0x203d, /* U+00203d: INTERROBANG*/ + 0x203e, /* U+00203e: OVERLINE*/ + 0x203f, /* U+00203f: UNDERTIE*/ + 0x2040, /* U+002040: CHARACTER TIE*/ + 0x2041, /* U+002041: CARET INSERTION POINT*/ + 0x2042, /* U+002042: ASTERISM*/ + 0x2043, /* U+002043: HYPHEN BULLET*/ + 0x2044, /* U+002044: FRACTION SLASH*/ + 0x2045, /* U+002045: LEFT SQUARE BRACKET WITH QUILL*/ + 0x2046, /* U+002046: RIGHT SQUARE BRACKET WITH QUILL*/ + 0x2047, /* U+002047: DOUBLE QUESTION MARK*/ + 0x2048, /* U+002048: QUESTION EXCLAMATION MARK*/ + 0x2049, /* U+002049: EXCLAMATION QUESTION MARK*/ + 0x204a, /* U+00204a: TIRONIAN SIGN ET*/ + 0x204b, /* U+00204b: REVERSED PILCROW SIGN*/ + 0x204c, /* U+00204c: BLACK LEFTWARDS BULLET*/ + 0x204d, /* U+00204d: BLACK RIGHTWARDS BULLET*/ + 0x204e, /* U+00204e: LOW ASTERISK*/ + 0x204f, /* U+00204f: REVERSED SEMICOLON*/ + 0x2050, /* U+002050: CLOSE UP*/ + 0x2051, /* U+002051: TWO ASTERISKS ALIGNED VERTICALLY*/ + 0x2052, /* U+002052: COMMERCIAL MINUS SIGN*/ + 0x2053, /* U+002053: SWUNG DASH*/ + 0x2054, /* U+002054: INVERTED UNDERTIE*/ + 0x2055, /* U+002055: FLOWER PUNCTUATION MARK*/ + 0x2056, /* U+002056: THREE DOT PUNCTUATION*/ + 0x2057, /* U+002057: QUADRUPLE PRIME*/ + 0x2058, /* U+002058: FOUR DOT PUNCTUATION*/ + 0x2059, /* U+002059: FIVE DOT PUNCTUATION*/ + 0x205a, /* U+00205a: TWO DOT PUNCTUATION*/ + 0x205b, /* U+00205b: FOUR DOT MARK*/ + 0x205c, /* U+00205c: DOTTED CROSS*/ + 0x205d, /* U+00205d: TRICOLON*/ + 0x205e, /* U+00205e: VERTICAL FOUR DOTS*/ + 0x205f, /* U+00205f: MEDIUM MATHEMATICAL SPACE*/ + 0x2060, /* U+002060: WORD JOINER*/ + 0x2061, /* U+002061: FUNCTION APPLICATION*/ + 0x2062, /* U+002062: INVISIBLE TIMES*/ + 0x2063, /* U+002063: INVISIBLE SEPARATOR*/ + 0x2064, /* U+002064: INVISIBLE PLUS*/ + 0x2065, /* U+002065: */ + 0x2066, /* U+002066: LEFT-TO-RIGHT ISOLATE*/ + 0x2067, /* U+002067: RIGHT-TO-LEFT ISOLATE*/ + 0x2068, /* U+002068: FIRST STRONG ISOLATE*/ + 0x2069, /* U+002069: POP DIRECTIONAL ISOLATE*/ + 0x206a, /* U+00206a: INHIBIT SYMMETRIC SWAPPING*/ + 0x206b, /* U+00206b: ACTIVATE SYMMETRIC SWAPPING*/ + 0x206c, /* U+00206c: INHIBIT ARABIC FORM SHAPING*/ + 0x206d, /* U+00206d: ACTIVATE ARABIC FORM SHAPING*/ + 0x206e, /* U+00206e: NATIONAL DIGIT SHAPES*/ + 0x206f, /* U+00206f: NOMINAL DIGIT SHAPES*/ + 0x2070, /* U+002070: SUPERSCRIPT ZERO*/ + 0x2071, /* U+002071: SUPERSCRIPT LATIN SMALL LETTER I*/ + 0x2072, /* U+002072: */ + 0x2073, /* U+002073: */ + 0x2074, /* U+002074: SUPERSCRIPT FOUR*/ + 0x2075, /* U+002075: SUPERSCRIPT FIVE*/ + 0x2076, /* U+002076: SUPERSCRIPT SIX*/ + 0x2077, /* U+002077: SUPERSCRIPT SEVEN*/ + 0x2078, /* U+002078: SUPERSCRIPT EIGHT*/ + 0x2079, /* U+002079: SUPERSCRIPT NINE*/ + 0x207a, /* U+00207a: SUPERSCRIPT PLUS SIGN*/ + 0x207b, /* U+00207b: SUPERSCRIPT MINUS*/ + 0x207c, /* U+00207c: SUPERSCRIPT EQUALS SIGN*/ + 0x207d, /* U+00207d: SUPERSCRIPT LEFT PARENTHESIS*/ + 0x207e, /* U+00207e: SUPERSCRIPT RIGHT PARENTHESIS*/ + 0x207f, /* U+00207f: SUPERSCRIPT LATIN SMALL LETTER N*/ + 0x2080, /* U+002080: SUBSCRIPT ZERO*/ + 0x2081, /* U+002081: SUBSCRIPT ONE*/ + 0x2082, /* U+002082: SUBSCRIPT TWO*/ + 0x2083, /* U+002083: SUBSCRIPT THREE*/ + 0x2084, /* U+002084: SUBSCRIPT FOUR*/ + 0x2085, /* U+002085: SUBSCRIPT FIVE*/ + 0x2086, /* U+002086: SUBSCRIPT SIX*/ + 0x2087, /* U+002087: SUBSCRIPT SEVEN*/ + 0x2088, /* U+002088: SUBSCRIPT EIGHT*/ + 0x2089, /* U+002089: SUBSCRIPT NINE*/ + 0x208a, /* U+00208a: SUBSCRIPT PLUS SIGN*/ + 0x208b, /* U+00208b: SUBSCRIPT MINUS*/ + 0x208c, /* U+00208c: SUBSCRIPT EQUALS SIGN*/ + 0x208d, /* U+00208d: SUBSCRIPT LEFT PARENTHESIS*/ + 0x208e, /* U+00208e: SUBSCRIPT RIGHT PARENTHESIS*/ + 0x208f, /* U+00208f: */ + 0x2090, /* U+002090: LATIN SUBSCRIPT SMALL LETTER A*/ + 0x2091, /* U+002091: LATIN SUBSCRIPT SMALL LETTER E*/ + 0x2092, /* U+002092: LATIN SUBSCRIPT SMALL LETTER O*/ + 0x2093, /* U+002093: LATIN SUBSCRIPT SMALL LETTER X*/ + 0x2094, /* U+002094: LATIN SUBSCRIPT SMALL LETTER SCHWA*/ + 0x2095, /* U+002095: LATIN SUBSCRIPT SMALL LETTER H*/ + 0x2096, /* U+002096: LATIN SUBSCRIPT SMALL LETTER K*/ + 0x2097, /* U+002097: LATIN SUBSCRIPT SMALL LETTER L*/ + 0x2098, /* U+002098: LATIN SUBSCRIPT SMALL LETTER M*/ + 0x2099, /* U+002099: LATIN SUBSCRIPT SMALL LETTER N*/ + 0x209a, /* U+00209a: LATIN SUBSCRIPT SMALL LETTER P*/ + 0x209b, /* U+00209b: LATIN SUBSCRIPT SMALL LETTER S*/ + 0x209c, /* U+00209c: LATIN SUBSCRIPT SMALL LETTER T*/ + 0x209d, /* U+00209d: */ + 0x209e, /* U+00209e: */ + 0x209f, /* U+00209f: */ + 0x20a0, /* U+0020a0: EURO-CURRENCY SIGN*/ + 0x20a1, /* U+0020a1: COLON SIGN*/ + 0x20a2, /* U+0020a2: CRUZEIRO SIGN*/ + 0x20a3, /* U+0020a3: FRENCH FRANC SIGN*/ + 0x20a4, /* U+0020a4: LIRA SIGN*/ + 0x20a5, /* U+0020a5: MILL SIGN*/ + 0x20a6, /* U+0020a6: NAIRA SIGN*/ + 0x20a7, /* U+0020a7: PESETA SIGN*/ + 0x20a8, /* U+0020a8: RUPEE SIGN*/ + 0x20a9, /* U+0020a9: WON SIGN*/ + 0x20aa, /* U+0020aa: NEW SHEQEL SIGN*/ + 0x20ab, /* U+0020ab: DONG SIGN*/ + 0x20ac, /* U+0020ac: EURO SIGN*/ + 0x20ad, /* U+0020ad: KIP SIGN*/ + 0x20ae, /* U+0020ae: TUGRIK SIGN*/ + 0x20af, /* U+0020af: DRACHMA SIGN*/ + 0x20b0, /* U+0020b0: GERMAN PENNY SIGN*/ + 0x20b1, /* U+0020b1: PESO SIGN*/ + 0x20b2, /* U+0020b2: GUARANI SIGN*/ + 0x20b3, /* U+0020b3: AUSTRAL SIGN*/ + 0x20b4, /* U+0020b4: HRYVNIA SIGN*/ + 0x20b5, /* U+0020b5: CEDI SIGN*/ + 0x20b6, /* U+0020b6: LIVRE TOURNOIS SIGN*/ + 0x20b7, /* U+0020b7: SPESMILO SIGN*/ + 0x20b8, /* U+0020b8: TENGE SIGN*/ + 0x20b9, /* U+0020b9: INDIAN RUPEE SIGN*/ + 0x20ba, /* U+0020ba: TURKISH LIRA SIGN*/ + 0x20bb, /* U+0020bb: */ + 0x20bc, /* U+0020bc: */ + 0x20bd, /* U+0020bd: */ + 0x20be, /* U+0020be: */ + 0x20bf, /* U+0020bf: */ + 0x20c0, /* U+0020c0: */ + 0x20c1, /* U+0020c1: */ + 0x20c2, /* U+0020c2: */ + 0x20c3, /* U+0020c3: */ + 0x20c4, /* U+0020c4: */ + 0x20c5, /* U+0020c5: */ + 0x20c6, /* U+0020c6: */ + 0x20c7, /* U+0020c7: */ + 0x20c8, /* U+0020c8: */ + 0x20c9, /* U+0020c9: */ + 0x20ca, /* U+0020ca: */ + 0x20cb, /* U+0020cb: */ + 0x20cc, /* U+0020cc: */ + 0x20cd, /* U+0020cd: */ + 0x20ce, /* U+0020ce: */ + 0x20cf, /* U+0020cf: */ + 0x20d0, /* U+0020d0: COMBINING LEFT HARPOON ABOVE*/ + 0x20d1, /* U+0020d1: COMBINING RIGHT HARPOON ABOVE*/ + 0x20d2, /* U+0020d2: COMBINING LONG VERTICAL LINE OVERLAY*/ + 0x20d3, /* U+0020d3: COMBINING SHORT VERTICAL LINE OVERLAY*/ + 0x20d4, /* U+0020d4: COMBINING ANTICLOCKWISE ARROW ABOVE*/ + 0x20d5, /* U+0020d5: COMBINING CLOCKWISE ARROW ABOVE*/ + 0x20d6, /* U+0020d6: COMBINING LEFT ARROW ABOVE*/ + 0x20d7, /* U+0020d7: COMBINING RIGHT ARROW ABOVE*/ + 0x20d8, /* U+0020d8: COMBINING RING OVERLAY*/ + 0x20d9, /* U+0020d9: COMBINING CLOCKWISE RING OVERLAY*/ + 0x20da, /* U+0020da: COMBINING ANTICLOCKWISE RING OVERLAY*/ + 0x20db, /* U+0020db: COMBINING THREE DOTS ABOVE*/ + 0x20dc, /* U+0020dc: COMBINING FOUR DOTS ABOVE*/ + 0x20dd, /* U+0020dd: COMBINING ENCLOSING CIRCLE*/ + 0x20de, /* U+0020de: COMBINING ENCLOSING SQUARE*/ + 0x20df, /* U+0020df: COMBINING ENCLOSING DIAMOND*/ + 0x20e0, /* U+0020e0: COMBINING ENCLOSING CIRCLE BACKSLASH*/ + 0x20e1, /* U+0020e1: COMBINING LEFT RIGHT ARROW ABOVE*/ + 0x20e2, /* U+0020e2: COMBINING ENCLOSING SCREEN*/ + 0x20e3, /* U+0020e3: COMBINING ENCLOSING KEYCAP*/ + 0x20e4, /* U+0020e4: COMBINING ENCLOSING UPWARD POINTING TRIANGLE*/ + 0x20e5, /* U+0020e5: COMBINING REVERSE SOLIDUS OVERLAY*/ + 0x20e6, /* U+0020e6: COMBINING DOUBLE VERTICAL STROKE OVERLAY*/ + 0x20e7, /* U+0020e7: COMBINING ANNUITY SYMBOL*/ + 0x20e8, /* U+0020e8: COMBINING TRIPLE UNDERDOT*/ + 0x20e9, /* U+0020e9: COMBINING WIDE BRIDGE ABOVE*/ + 0x20ea, /* U+0020ea: COMBINING LEFTWARDS ARROW OVERLAY*/ + 0x20eb, /* U+0020eb: COMBINING LONG DOUBLE SOLIDUS OVERLAY*/ + 0x20ec, /* U+0020ec: COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0x20ed, /* U+0020ed: COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0x20ee, /* U+0020ee: COMBINING LEFT ARROW BELOW*/ + 0x20ef, /* U+0020ef: COMBINING RIGHT ARROW BELOW*/ + 0x20f0, /* U+0020f0: COMBINING ASTERISK ABOVE*/ + 0x20f1, /* U+0020f1: */ + 0x20f2, /* U+0020f2: */ + 0x20f3, /* U+0020f3: */ + 0x20f4, /* U+0020f4: */ + 0x20f5, /* U+0020f5: */ + 0x20f6, /* U+0020f6: */ + 0x20f7, /* U+0020f7: */ + 0x20f8, /* U+0020f8: */ + 0x20f9, /* U+0020f9: */ + 0x20fa, /* U+0020fa: */ + 0x20fb, /* U+0020fb: */ + 0x20fc, /* U+0020fc: */ + 0x20fd, /* U+0020fd: */ + 0x20fe, /* U+0020fe: */ + 0x20ff, /* U+0020ff: */ + 0x2100, /* U+002100: ACCOUNT OF*/ + 0x2101, /* U+002101: ADDRESSED TO THE SUBJECT*/ + 0x2102, /* U+002102: DOUBLE-STRUCK CAPITAL C*/ + 0x2103, /* U+002103: DEGREE CELSIUS*/ + 0x2104, /* U+002104: CENTRE LINE SYMBOL*/ + 0x2105, /* U+002105: CARE OF*/ + 0x2106, /* U+002106: CADA UNA*/ + 0x2107, /* U+002107: EULER CONSTANT*/ + 0x2108, /* U+002108: SCRUPLE*/ + 0x2109, /* U+002109: DEGREE FAHRENHEIT*/ + 0x210a, /* U+00210a: SCRIPT SMALL G*/ + 0x210b, /* U+00210b: SCRIPT CAPITAL H*/ + 0x210c, /* U+00210c: BLACK-LETTER CAPITAL H*/ + 0x210d, /* U+00210d: DOUBLE-STRUCK CAPITAL H*/ + 0x210e, /* U+00210e: PLANCK CONSTANT*/ + 0x210f, /* U+00210f: PLANCK CONSTANT OVER TWO PI*/ + 0x2110, /* U+002110: SCRIPT CAPITAL I*/ + 0x2111, /* U+002111: BLACK-LETTER CAPITAL I*/ + 0x2112, /* U+002112: SCRIPT CAPITAL L*/ + 0x2113, /* U+002113: SCRIPT SMALL L*/ + 0x2114, /* U+002114: L B BAR SYMBOL*/ + 0x2115, /* U+002115: DOUBLE-STRUCK CAPITAL N*/ + 0x2116, /* U+002116: NUMERO SIGN*/ + 0x2117, /* U+002117: SOUND RECORDING COPYRIGHT*/ + 0x2118, /* U+002118: SCRIPT CAPITAL P*/ + 0x2119, /* U+002119: DOUBLE-STRUCK CAPITAL P*/ + 0x211a, /* U+00211a: DOUBLE-STRUCK CAPITAL Q*/ + 0x211b, /* U+00211b: SCRIPT CAPITAL R*/ + 0x211c, /* U+00211c: BLACK-LETTER CAPITAL R*/ + 0x211d, /* U+00211d: DOUBLE-STRUCK CAPITAL R*/ + 0x211e, /* U+00211e: PRESCRIPTION TAKE*/ + 0x211f, /* U+00211f: RESPONSE*/ + 0x2120, /* U+002120: SERVICE MARK*/ + 0x2121, /* U+002121: TELEPHONE SIGN*/ + 0x2122, /* U+002122: TRADE MARK SIGN*/ + 0x2123, /* U+002123: VERSICLE*/ + 0x2124, /* U+002124: DOUBLE-STRUCK CAPITAL Z*/ + 0x2125, /* U+002125: OUNCE SIGN*/ + 0x3c9, /* U+002126: OHM SIGN*/ + 0x2127, /* U+002127: INVERTED OHM SIGN*/ + 0x2128, /* U+002128: BLACK-LETTER CAPITAL Z*/ + 0x2129, /* U+002129: TURNED GREEK SMALL LETTER IOTA*/ + 0x6b, /* U+00212a: KELVIN SIGN*/ + 0xe5, /* U+00212b: ANGSTROM SIGN*/ + 0x212c, /* U+00212c: SCRIPT CAPITAL B*/ + 0x212d, /* U+00212d: BLACK-LETTER CAPITAL C*/ + 0x212e, /* U+00212e: ESTIMATED SYMBOL*/ + 0x212f, /* U+00212f: SCRIPT SMALL E*/ + 0x2130, /* U+002130: SCRIPT CAPITAL E*/ + 0x2131, /* U+002131: SCRIPT CAPITAL F*/ + 0x214e, /* U+002132: TURNED CAPITAL F*/ + 0x2133, /* U+002133: SCRIPT CAPITAL M*/ + 0x2134, /* U+002134: SCRIPT SMALL O*/ + 0x2135, /* U+002135: ALEF SYMBOL*/ + 0x2136, /* U+002136: BET SYMBOL*/ + 0x2137, /* U+002137: GIMEL SYMBOL*/ + 0x2138, /* U+002138: DALET SYMBOL*/ + 0x2139, /* U+002139: INFORMATION SOURCE*/ + 0x213a, /* U+00213a: ROTATED CAPITAL Q*/ + 0x213b, /* U+00213b: FACSIMILE SIGN*/ + 0x213c, /* U+00213c: DOUBLE-STRUCK SMALL PI*/ + 0x213d, /* U+00213d: DOUBLE-STRUCK SMALL GAMMA*/ + 0x213e, /* U+00213e: DOUBLE-STRUCK CAPITAL GAMMA*/ + 0x213f, /* U+00213f: DOUBLE-STRUCK CAPITAL PI*/ + 0x2140, /* U+002140: DOUBLE-STRUCK N-ARY SUMMATION*/ + 0x2141, /* U+002141: TURNED SANS-SERIF CAPITAL G*/ + 0x2142, /* U+002142: TURNED SANS-SERIF CAPITAL L*/ + 0x2143, /* U+002143: REVERSED SANS-SERIF CAPITAL L*/ + 0x2144, /* U+002144: TURNED SANS-SERIF CAPITAL Y*/ + 0x2145, /* U+002145: DOUBLE-STRUCK ITALIC CAPITAL D*/ + 0x2146, /* U+002146: DOUBLE-STRUCK ITALIC SMALL D*/ + 0x2147, /* U+002147: DOUBLE-STRUCK ITALIC SMALL E*/ + 0x2148, /* U+002148: DOUBLE-STRUCK ITALIC SMALL I*/ + 0x2149, /* U+002149: DOUBLE-STRUCK ITALIC SMALL J*/ + 0x214a, /* U+00214a: PROPERTY LINE*/ + 0x214b, /* U+00214b: TURNED AMPERSAND*/ + 0x214c, /* U+00214c: PER SIGN*/ + 0x214d, /* U+00214d: AKTIESELSKAB*/ + 0x214e, /* U+00214e: TURNED SMALL F*/ + 0x214f, /* U+00214f: SYMBOL FOR SAMARITAN SOURCE*/ + 0x2150, /* U+002150: VULGAR FRACTION ONE SEVENTH*/ + 0x2151, /* U+002151: VULGAR FRACTION ONE NINTH*/ + 0x2152, /* U+002152: VULGAR FRACTION ONE TENTH*/ + 0x2153, /* U+002153: VULGAR FRACTION ONE THIRD*/ + 0x2154, /* U+002154: VULGAR FRACTION TWO THIRDS*/ + 0x2155, /* U+002155: VULGAR FRACTION ONE FIFTH*/ + 0x2156, /* U+002156: VULGAR FRACTION TWO FIFTHS*/ + 0x2157, /* U+002157: VULGAR FRACTION THREE FIFTHS*/ + 0x2158, /* U+002158: VULGAR FRACTION FOUR FIFTHS*/ + 0x2159, /* U+002159: VULGAR FRACTION ONE SIXTH*/ + 0x215a, /* U+00215a: VULGAR FRACTION FIVE SIXTHS*/ + 0x215b, /* U+00215b: VULGAR FRACTION ONE EIGHTH*/ + 0x215c, /* U+00215c: VULGAR FRACTION THREE EIGHTHS*/ + 0x215d, /* U+00215d: VULGAR FRACTION FIVE EIGHTHS*/ + 0x215e, /* U+00215e: VULGAR FRACTION SEVEN EIGHTHS*/ + 0x215f, /* U+00215f: FRACTION NUMERATOR ONE*/ + 0x2170, /* U+002160: ROMAN NUMERAL ONE*/ + 0x2171, /* U+002161: ROMAN NUMERAL TWO*/ + 0x2172, /* U+002162: ROMAN NUMERAL THREE*/ + 0x2173, /* U+002163: ROMAN NUMERAL FOUR*/ + 0x2174, /* U+002164: ROMAN NUMERAL FIVE*/ + 0x2175, /* U+002165: ROMAN NUMERAL SIX*/ + 0x2176, /* U+002166: ROMAN NUMERAL SEVEN*/ + 0x2177, /* U+002167: ROMAN NUMERAL EIGHT*/ + 0x2178, /* U+002168: ROMAN NUMERAL NINE*/ + 0x2179, /* U+002169: ROMAN NUMERAL TEN*/ + 0x217a, /* U+00216a: ROMAN NUMERAL ELEVEN*/ + 0x217b, /* U+00216b: ROMAN NUMERAL TWELVE*/ + 0x217c, /* U+00216c: ROMAN NUMERAL FIFTY*/ + 0x217d, /* U+00216d: ROMAN NUMERAL ONE HUNDRED*/ + 0x217e, /* U+00216e: ROMAN NUMERAL FIVE HUNDRED*/ + 0x217f, /* U+00216f: ROMAN NUMERAL ONE THOUSAND*/ + 0x2170, /* U+002170: SMALL ROMAN NUMERAL ONE*/ + 0x2171, /* U+002171: SMALL ROMAN NUMERAL TWO*/ + 0x2172, /* U+002172: SMALL ROMAN NUMERAL THREE*/ + 0x2173, /* U+002173: SMALL ROMAN NUMERAL FOUR*/ + 0x2174, /* U+002174: SMALL ROMAN NUMERAL FIVE*/ + 0x2175, /* U+002175: SMALL ROMAN NUMERAL SIX*/ + 0x2176, /* U+002176: SMALL ROMAN NUMERAL SEVEN*/ + 0x2177, /* U+002177: SMALL ROMAN NUMERAL EIGHT*/ + 0x2178, /* U+002178: SMALL ROMAN NUMERAL NINE*/ + 0x2179, /* U+002179: SMALL ROMAN NUMERAL TEN*/ + 0x217a, /* U+00217a: SMALL ROMAN NUMERAL ELEVEN*/ + 0x217b, /* U+00217b: SMALL ROMAN NUMERAL TWELVE*/ + 0x217c, /* U+00217c: SMALL ROMAN NUMERAL FIFTY*/ + 0x217d, /* U+00217d: SMALL ROMAN NUMERAL ONE HUNDRED*/ + 0x217e, /* U+00217e: SMALL ROMAN NUMERAL FIVE HUNDRED*/ + 0x217f, /* U+00217f: SMALL ROMAN NUMERAL ONE THOUSAND*/ + 0x2180, /* U+002180: ROMAN NUMERAL ONE THOUSAND C D*/ + 0x2181, /* U+002181: ROMAN NUMERAL FIVE THOUSAND*/ + 0x2182, /* U+002182: ROMAN NUMERAL TEN THOUSAND*/ + 0x2184, /* U+002183: ROMAN NUMERAL REVERSED ONE HUNDRED*/ + 0x2184, /* U+002184: LATIN SMALL LETTER REVERSED C*/ + 0x2185, /* U+002185: ROMAN NUMERAL SIX LATE FORM*/ + 0x2186, /* U+002186: ROMAN NUMERAL FIFTY EARLY FORM*/ + 0x2187, /* U+002187: ROMAN NUMERAL FIFTY THOUSAND*/ + 0x2188, /* U+002188: ROMAN NUMERAL ONE HUNDRED THOUSAND*/ + 0x2189, /* U+002189: VULGAR FRACTION ZERO THIRDS*/ + 0x218a, /* U+00218a: */ + 0x218b, /* U+00218b: */ + 0x218c, /* U+00218c: */ + 0x218d, /* U+00218d: */ + 0x218e, /* U+00218e: */ + 0x218f, /* U+00218f: */ + 0x2190, /* U+002190: LEFTWARDS ARROW*/ + 0x2191, /* U+002191: UPWARDS ARROW*/ + 0x2192, /* U+002192: RIGHTWARDS ARROW*/ + 0x2193, /* U+002193: DOWNWARDS ARROW*/ + 0x2194, /* U+002194: LEFT RIGHT ARROW*/ + 0x2195, /* U+002195: UP DOWN ARROW*/ + 0x2196, /* U+002196: NORTH WEST ARROW*/ + 0x2197, /* U+002197: NORTH EAST ARROW*/ + 0x2198, /* U+002198: SOUTH EAST ARROW*/ + 0x2199, /* U+002199: SOUTH WEST ARROW*/ + 0x219a, /* U+00219a: LEFTWARDS ARROW WITH STROKE*/ + 0x219b, /* U+00219b: RIGHTWARDS ARROW WITH STROKE*/ + 0x219c, /* U+00219c: LEFTWARDS WAVE ARROW*/ + 0x219d, /* U+00219d: RIGHTWARDS WAVE ARROW*/ + 0x219e, /* U+00219e: LEFTWARDS TWO HEADED ARROW*/ + 0x219f, /* U+00219f: UPWARDS TWO HEADED ARROW*/ + 0x21a0, /* U+0021a0: RIGHTWARDS TWO HEADED ARROW*/ + 0x21a1, /* U+0021a1: DOWNWARDS TWO HEADED ARROW*/ + 0x21a2, /* U+0021a2: LEFTWARDS ARROW WITH TAIL*/ + 0x21a3, /* U+0021a3: RIGHTWARDS ARROW WITH TAIL*/ + 0x21a4, /* U+0021a4: LEFTWARDS ARROW FROM BAR*/ + 0x21a5, /* U+0021a5: UPWARDS ARROW FROM BAR*/ + 0x21a6, /* U+0021a6: RIGHTWARDS ARROW FROM BAR*/ + 0x21a7, /* U+0021a7: DOWNWARDS ARROW FROM BAR*/ + 0x21a8, /* U+0021a8: UP DOWN ARROW WITH BASE*/ + 0x21a9, /* U+0021a9: LEFTWARDS ARROW WITH HOOK*/ + 0x21aa, /* U+0021aa: RIGHTWARDS ARROW WITH HOOK*/ + 0x21ab, /* U+0021ab: LEFTWARDS ARROW WITH LOOP*/ + 0x21ac, /* U+0021ac: RIGHTWARDS ARROW WITH LOOP*/ + 0x21ad, /* U+0021ad: LEFT RIGHT WAVE ARROW*/ + 0x21ae, /* U+0021ae: LEFT RIGHT ARROW WITH STROKE*/ + 0x21af, /* U+0021af: DOWNWARDS ZIGZAG ARROW*/ + 0x21b0, /* U+0021b0: UPWARDS ARROW WITH TIP LEFTWARDS*/ + 0x21b1, /* U+0021b1: UPWARDS ARROW WITH TIP RIGHTWARDS*/ + 0x21b2, /* U+0021b2: DOWNWARDS ARROW WITH TIP LEFTWARDS*/ + 0x21b3, /* U+0021b3: DOWNWARDS ARROW WITH TIP RIGHTWARDS*/ + 0x21b4, /* U+0021b4: RIGHTWARDS ARROW WITH CORNER DOWNWARDS*/ + 0x21b5, /* U+0021b5: DOWNWARDS ARROW WITH CORNER LEFTWARDS*/ + 0x21b6, /* U+0021b6: ANTICLOCKWISE TOP SEMICIRCLE ARROW*/ + 0x21b7, /* U+0021b7: CLOCKWISE TOP SEMICIRCLE ARROW*/ + 0x21b8, /* U+0021b8: NORTH WEST ARROW TO LONG BAR*/ + 0x21b9, /* U+0021b9: LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR*/ + 0x21ba, /* U+0021ba: ANTICLOCKWISE OPEN CIRCLE ARROW*/ + 0x21bb, /* U+0021bb: CLOCKWISE OPEN CIRCLE ARROW*/ + 0x21bc, /* U+0021bc: LEFTWARDS HARPOON WITH BARB UPWARDS*/ + 0x21bd, /* U+0021bd: LEFTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0x21be, /* U+0021be: UPWARDS HARPOON WITH BARB RIGHTWARDS*/ + 0x21bf, /* U+0021bf: UPWARDS HARPOON WITH BARB LEFTWARDS*/ + 0x21c0, /* U+0021c0: RIGHTWARDS HARPOON WITH BARB UPWARDS*/ + 0x21c1, /* U+0021c1: RIGHTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0x21c2, /* U+0021c2: DOWNWARDS HARPOON WITH BARB RIGHTWARDS*/ + 0x21c3, /* U+0021c3: DOWNWARDS HARPOON WITH BARB LEFTWARDS*/ + 0x21c4, /* U+0021c4: RIGHTWARDS ARROW OVER LEFTWARDS ARROW*/ + 0x21c5, /* U+0021c5: UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW*/ + 0x21c6, /* U+0021c6: LEFTWARDS ARROW OVER RIGHTWARDS ARROW*/ + 0x21c7, /* U+0021c7: LEFTWARDS PAIRED ARROWS*/ + 0x21c8, /* U+0021c8: UPWARDS PAIRED ARROWS*/ + 0x21c9, /* U+0021c9: RIGHTWARDS PAIRED ARROWS*/ + 0x21ca, /* U+0021ca: DOWNWARDS PAIRED ARROWS*/ + 0x21cb, /* U+0021cb: LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON*/ + 0x21cc, /* U+0021cc: RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON*/ + 0x21cd, /* U+0021cd: LEFTWARDS DOUBLE ARROW WITH STROKE*/ + 0x21ce, /* U+0021ce: LEFT RIGHT DOUBLE ARROW WITH STROKE*/ + 0x21cf, /* U+0021cf: RIGHTWARDS DOUBLE ARROW WITH STROKE*/ + 0x21d0, /* U+0021d0: LEFTWARDS DOUBLE ARROW*/ + 0x21d1, /* U+0021d1: UPWARDS DOUBLE ARROW*/ + 0x21d2, /* U+0021d2: RIGHTWARDS DOUBLE ARROW*/ + 0x21d3, /* U+0021d3: DOWNWARDS DOUBLE ARROW*/ + 0x21d4, /* U+0021d4: LEFT RIGHT DOUBLE ARROW*/ + 0x21d5, /* U+0021d5: UP DOWN DOUBLE ARROW*/ + 0x21d6, /* U+0021d6: NORTH WEST DOUBLE ARROW*/ + 0x21d7, /* U+0021d7: NORTH EAST DOUBLE ARROW*/ + 0x21d8, /* U+0021d8: SOUTH EAST DOUBLE ARROW*/ + 0x21d9, /* U+0021d9: SOUTH WEST DOUBLE ARROW*/ + 0x21da, /* U+0021da: LEFTWARDS TRIPLE ARROW*/ + 0x21db, /* U+0021db: RIGHTWARDS TRIPLE ARROW*/ + 0x21dc, /* U+0021dc: LEFTWARDS SQUIGGLE ARROW*/ + 0x21dd, /* U+0021dd: RIGHTWARDS SQUIGGLE ARROW*/ + 0x21de, /* U+0021de: UPWARDS ARROW WITH DOUBLE STROKE*/ + 0x21df, /* U+0021df: DOWNWARDS ARROW WITH DOUBLE STROKE*/ + 0x21e0, /* U+0021e0: LEFTWARDS DASHED ARROW*/ + 0x21e1, /* U+0021e1: UPWARDS DASHED ARROW*/ + 0x21e2, /* U+0021e2: RIGHTWARDS DASHED ARROW*/ + 0x21e3, /* U+0021e3: DOWNWARDS DASHED ARROW*/ + 0x21e4, /* U+0021e4: LEFTWARDS ARROW TO BAR*/ + 0x21e5, /* U+0021e5: RIGHTWARDS ARROW TO BAR*/ + 0x21e6, /* U+0021e6: LEFTWARDS WHITE ARROW*/ + 0x21e7, /* U+0021e7: UPWARDS WHITE ARROW*/ + 0x21e8, /* U+0021e8: RIGHTWARDS WHITE ARROW*/ + 0x21e9, /* U+0021e9: DOWNWARDS WHITE ARROW*/ + 0x21ea, /* U+0021ea: UPWARDS WHITE ARROW FROM BAR*/ + 0x21eb, /* U+0021eb: UPWARDS WHITE ARROW ON PEDESTAL*/ + 0x21ec, /* U+0021ec: UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR*/ + 0x21ed, /* U+0021ed: UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR*/ + 0x21ee, /* U+0021ee: UPWARDS WHITE DOUBLE ARROW*/ + 0x21ef, /* U+0021ef: UPWARDS WHITE DOUBLE ARROW ON PEDESTAL*/ + 0x21f0, /* U+0021f0: RIGHTWARDS WHITE ARROW FROM WALL*/ + 0x21f1, /* U+0021f1: NORTH WEST ARROW TO CORNER*/ + 0x21f2, /* U+0021f2: SOUTH EAST ARROW TO CORNER*/ + 0x21f3, /* U+0021f3: UP DOWN WHITE ARROW*/ + 0x21f4, /* U+0021f4: RIGHT ARROW WITH SMALL CIRCLE*/ + 0x21f5, /* U+0021f5: DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW*/ + 0x21f6, /* U+0021f6: THREE RIGHTWARDS ARROWS*/ + 0x21f7, /* U+0021f7: LEFTWARDS ARROW WITH VERTICAL STROKE*/ + 0x21f8, /* U+0021f8: RIGHTWARDS ARROW WITH VERTICAL STROKE*/ + 0x21f9, /* U+0021f9: LEFT RIGHT ARROW WITH VERTICAL STROKE*/ + 0x21fa, /* U+0021fa: LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ + 0x21fb, /* U+0021fb: RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ + 0x21fc, /* U+0021fc: LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE*/ + 0x21fd, /* U+0021fd: LEFTWARDS OPEN-HEADED ARROW*/ + 0x21fe, /* U+0021fe: RIGHTWARDS OPEN-HEADED ARROW*/ + 0x21ff, /* U+0021ff: LEFT RIGHT OPEN-HEADED ARROW*/ + 0x2200, /* U+002200: FOR ALL*/ + 0x2201, /* U+002201: COMPLEMENT*/ + 0x2202, /* U+002202: PARTIAL DIFFERENTIAL*/ + 0x2203, /* U+002203: THERE EXISTS*/ + 0x2204, /* U+002204: THERE DOES NOT EXIST*/ + 0x2205, /* U+002205: EMPTY SET*/ + 0x2206, /* U+002206: INCREMENT*/ + 0x2207, /* U+002207: NABLA*/ + 0x2208, /* U+002208: ELEMENT OF*/ + 0x2209, /* U+002209: NOT AN ELEMENT OF*/ + 0x220a, /* U+00220a: SMALL ELEMENT OF*/ + 0x220b, /* U+00220b: CONTAINS AS MEMBER*/ + 0x220c, /* U+00220c: DOES NOT CONTAIN AS MEMBER*/ + 0x220d, /* U+00220d: SMALL CONTAINS AS MEMBER*/ + 0x220e, /* U+00220e: END OF PROOF*/ + 0x220f, /* U+00220f: N-ARY PRODUCT*/ + 0x2210, /* U+002210: N-ARY COPRODUCT*/ + 0x2211, /* U+002211: N-ARY SUMMATION*/ + 0x2212, /* U+002212: MINUS SIGN*/ + 0x2213, /* U+002213: MINUS-OR-PLUS SIGN*/ + 0x2214, /* U+002214: DOT PLUS*/ + 0x2215, /* U+002215: DIVISION SLASH*/ + 0x2216, /* U+002216: SET MINUS*/ + 0x2217, /* U+002217: ASTERISK OPERATOR*/ + 0x2218, /* U+002218: RING OPERATOR*/ + 0x2219, /* U+002219: BULLET OPERATOR*/ + 0x221a, /* U+00221a: SQUARE ROOT*/ + 0x221b, /* U+00221b: CUBE ROOT*/ + 0x221c, /* U+00221c: FOURTH ROOT*/ + 0x221d, /* U+00221d: PROPORTIONAL TO*/ + 0x221e, /* U+00221e: INFINITY*/ + 0x221f, /* U+00221f: RIGHT ANGLE*/ + 0x2220, /* U+002220: ANGLE*/ + 0x2221, /* U+002221: MEASURED ANGLE*/ + 0x2222, /* U+002222: SPHERICAL ANGLE*/ + 0x2223, /* U+002223: DIVIDES*/ + 0x2224, /* U+002224: DOES NOT DIVIDE*/ + 0x2225, /* U+002225: PARALLEL TO*/ + 0x2226, /* U+002226: NOT PARALLEL TO*/ + 0x2227, /* U+002227: LOGICAL AND*/ + 0x2228, /* U+002228: LOGICAL OR*/ + 0x2229, /* U+002229: INTERSECTION*/ + 0x222a, /* U+00222a: UNION*/ + 0x222b, /* U+00222b: INTEGRAL*/ + 0x222c, /* U+00222c: DOUBLE INTEGRAL*/ + 0x222d, /* U+00222d: TRIPLE INTEGRAL*/ + 0x222e, /* U+00222e: CONTOUR INTEGRAL*/ + 0x222f, /* U+00222f: SURFACE INTEGRAL*/ + 0x2230, /* U+002230: VOLUME INTEGRAL*/ + 0x2231, /* U+002231: CLOCKWISE INTEGRAL*/ + 0x2232, /* U+002232: CLOCKWISE CONTOUR INTEGRAL*/ + 0x2233, /* U+002233: ANTICLOCKWISE CONTOUR INTEGRAL*/ + 0x2234, /* U+002234: THEREFORE*/ + 0x2235, /* U+002235: BECAUSE*/ + 0x2236, /* U+002236: RATIO*/ + 0x2237, /* U+002237: PROPORTION*/ + 0x2238, /* U+002238: DOT MINUS*/ + 0x2239, /* U+002239: EXCESS*/ + 0x223a, /* U+00223a: GEOMETRIC PROPORTION*/ + 0x223b, /* U+00223b: HOMOTHETIC*/ + 0x223c, /* U+00223c: TILDE OPERATOR*/ + 0x223d, /* U+00223d: REVERSED TILDE*/ + 0x223e, /* U+00223e: INVERTED LAZY S*/ + 0x223f, /* U+00223f: SINE WAVE*/ + 0x2240, /* U+002240: WREATH PRODUCT*/ + 0x2241, /* U+002241: NOT TILDE*/ + 0x2242, /* U+002242: MINUS TILDE*/ + 0x2243, /* U+002243: ASYMPTOTICALLY EQUAL TO*/ + 0x2244, /* U+002244: NOT ASYMPTOTICALLY EQUAL TO*/ + 0x2245, /* U+002245: APPROXIMATELY EQUAL TO*/ + 0x2246, /* U+002246: APPROXIMATELY BUT NOT ACTUALLY EQUAL TO*/ + 0x2247, /* U+002247: NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO*/ + 0x2248, /* U+002248: ALMOST EQUAL TO*/ + 0x2249, /* U+002249: NOT ALMOST EQUAL TO*/ + 0x224a, /* U+00224a: ALMOST EQUAL OR EQUAL TO*/ + 0x224b, /* U+00224b: TRIPLE TILDE*/ + 0x224c, /* U+00224c: ALL EQUAL TO*/ + 0x224d, /* U+00224d: EQUIVALENT TO*/ + 0x224e, /* U+00224e: GEOMETRICALLY EQUIVALENT TO*/ + 0x224f, /* U+00224f: DIFFERENCE BETWEEN*/ + 0x2250, /* U+002250: APPROACHES THE LIMIT*/ + 0x2251, /* U+002251: GEOMETRICALLY EQUAL TO*/ + 0x2252, /* U+002252: APPROXIMATELY EQUAL TO OR THE IMAGE OF*/ + 0x2253, /* U+002253: IMAGE OF OR APPROXIMATELY EQUAL TO*/ + 0x2254, /* U+002254: COLON EQUALS*/ + 0x2255, /* U+002255: EQUALS COLON*/ + 0x2256, /* U+002256: RING IN EQUAL TO*/ + 0x2257, /* U+002257: RING EQUAL TO*/ + 0x2258, /* U+002258: CORRESPONDS TO*/ + 0x2259, /* U+002259: ESTIMATES*/ + 0x225a, /* U+00225a: EQUIANGULAR TO*/ + 0x225b, /* U+00225b: STAR EQUALS*/ + 0x225c, /* U+00225c: DELTA EQUAL TO*/ + 0x225d, /* U+00225d: EQUAL TO BY DEFINITION*/ + 0x225e, /* U+00225e: MEASURED BY*/ + 0x225f, /* U+00225f: QUESTIONED EQUAL TO*/ + 0x2260, /* U+002260: NOT EQUAL TO*/ + 0x2261, /* U+002261: IDENTICAL TO*/ + 0x2262, /* U+002262: NOT IDENTICAL TO*/ + 0x2263, /* U+002263: STRICTLY EQUIVALENT TO*/ + 0x2264, /* U+002264: LESS-THAN OR EQUAL TO*/ + 0x2265, /* U+002265: GREATER-THAN OR EQUAL TO*/ + 0x2266, /* U+002266: LESS-THAN OVER EQUAL TO*/ + 0x2267, /* U+002267: GREATER-THAN OVER EQUAL TO*/ + 0x2268, /* U+002268: LESS-THAN BUT NOT EQUAL TO*/ + 0x2269, /* U+002269: GREATER-THAN BUT NOT EQUAL TO*/ + 0x226a, /* U+00226a: MUCH LESS-THAN*/ + 0x226b, /* U+00226b: MUCH GREATER-THAN*/ + 0x226c, /* U+00226c: BETWEEN*/ + 0x226d, /* U+00226d: NOT EQUIVALENT TO*/ + 0x226e, /* U+00226e: NOT LESS-THAN*/ + 0x226f, /* U+00226f: NOT GREATER-THAN*/ + 0x2270, /* U+002270: NEITHER LESS-THAN NOR EQUAL TO*/ + 0x2271, /* U+002271: NEITHER GREATER-THAN NOR EQUAL TO*/ + 0x2272, /* U+002272: LESS-THAN OR EQUIVALENT TO*/ + 0x2273, /* U+002273: GREATER-THAN OR EQUIVALENT TO*/ + 0x2274, /* U+002274: NEITHER LESS-THAN NOR EQUIVALENT TO*/ + 0x2275, /* U+002275: NEITHER GREATER-THAN NOR EQUIVALENT TO*/ + 0x2276, /* U+002276: LESS-THAN OR GREATER-THAN*/ + 0x2277, /* U+002277: GREATER-THAN OR LESS-THAN*/ + 0x2278, /* U+002278: NEITHER LESS-THAN NOR GREATER-THAN*/ + 0x2279, /* U+002279: NEITHER GREATER-THAN NOR LESS-THAN*/ + 0x227a, /* U+00227a: PRECEDES*/ + 0x227b, /* U+00227b: SUCCEEDS*/ + 0x227c, /* U+00227c: PRECEDES OR EQUAL TO*/ + 0x227d, /* U+00227d: SUCCEEDS OR EQUAL TO*/ + 0x227e, /* U+00227e: PRECEDES OR EQUIVALENT TO*/ + 0x227f, /* U+00227f: SUCCEEDS OR EQUIVALENT TO*/ + 0x2280, /* U+002280: DOES NOT PRECEDE*/ + 0x2281, /* U+002281: DOES NOT SUCCEED*/ + 0x2282, /* U+002282: SUBSET OF*/ + 0x2283, /* U+002283: SUPERSET OF*/ + 0x2284, /* U+002284: NOT A SUBSET OF*/ + 0x2285, /* U+002285: NOT A SUPERSET OF*/ + 0x2286, /* U+002286: SUBSET OF OR EQUAL TO*/ + 0x2287, /* U+002287: SUPERSET OF OR EQUAL TO*/ + 0x2288, /* U+002288: NEITHER A SUBSET OF NOR EQUAL TO*/ + 0x2289, /* U+002289: NEITHER A SUPERSET OF NOR EQUAL TO*/ + 0x228a, /* U+00228a: SUBSET OF WITH NOT EQUAL TO*/ + 0x228b, /* U+00228b: SUPERSET OF WITH NOT EQUAL TO*/ + 0x228c, /* U+00228c: MULTISET*/ + 0x228d, /* U+00228d: MULTISET MULTIPLICATION*/ + 0x228e, /* U+00228e: MULTISET UNION*/ + 0x228f, /* U+00228f: SQUARE IMAGE OF*/ + 0x2290, /* U+002290: SQUARE ORIGINAL OF*/ + 0x2291, /* U+002291: SQUARE IMAGE OF OR EQUAL TO*/ + 0x2292, /* U+002292: SQUARE ORIGINAL OF OR EQUAL TO*/ + 0x2293, /* U+002293: SQUARE CAP*/ + 0x2294, /* U+002294: SQUARE CUP*/ + 0x2295, /* U+002295: CIRCLED PLUS*/ + 0x2296, /* U+002296: CIRCLED MINUS*/ + 0x2297, /* U+002297: CIRCLED TIMES*/ + 0x2298, /* U+002298: CIRCLED DIVISION SLASH*/ + 0x2299, /* U+002299: CIRCLED DOT OPERATOR*/ + 0x229a, /* U+00229a: CIRCLED RING OPERATOR*/ + 0x229b, /* U+00229b: CIRCLED ASTERISK OPERATOR*/ + 0x229c, /* U+00229c: CIRCLED EQUALS*/ + 0x229d, /* U+00229d: CIRCLED DASH*/ + 0x229e, /* U+00229e: SQUARED PLUS*/ + 0x229f, /* U+00229f: SQUARED MINUS*/ + 0x22a0, /* U+0022a0: SQUARED TIMES*/ + 0x22a1, /* U+0022a1: SQUARED DOT OPERATOR*/ + 0x22a2, /* U+0022a2: RIGHT TACK*/ + 0x22a3, /* U+0022a3: LEFT TACK*/ + 0x22a4, /* U+0022a4: DOWN TACK*/ + 0x22a5, /* U+0022a5: UP TACK*/ + 0x22a6, /* U+0022a6: ASSERTION*/ + 0x22a7, /* U+0022a7: MODELS*/ + 0x22a8, /* U+0022a8: TRUE*/ + 0x22a9, /* U+0022a9: FORCES*/ + 0x22aa, /* U+0022aa: TRIPLE VERTICAL BAR RIGHT TURNSTILE*/ + 0x22ab, /* U+0022ab: DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ + 0x22ac, /* U+0022ac: DOES NOT PROVE*/ + 0x22ad, /* U+0022ad: NOT TRUE*/ + 0x22ae, /* U+0022ae: DOES NOT FORCE*/ + 0x22af, /* U+0022af: NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ + 0x22b0, /* U+0022b0: PRECEDES UNDER RELATION*/ + 0x22b1, /* U+0022b1: SUCCEEDS UNDER RELATION*/ + 0x22b2, /* U+0022b2: NORMAL SUBGROUP OF*/ + 0x22b3, /* U+0022b3: CONTAINS AS NORMAL SUBGROUP*/ + 0x22b4, /* U+0022b4: NORMAL SUBGROUP OF OR EQUAL TO*/ + 0x22b5, /* U+0022b5: CONTAINS AS NORMAL SUBGROUP OR EQUAL TO*/ + 0x22b6, /* U+0022b6: ORIGINAL OF*/ + 0x22b7, /* U+0022b7: IMAGE OF*/ + 0x22b8, /* U+0022b8: MULTIMAP*/ + 0x22b9, /* U+0022b9: HERMITIAN CONJUGATE MATRIX*/ + 0x22ba, /* U+0022ba: INTERCALATE*/ + 0x22bb, /* U+0022bb: XOR*/ + 0x22bc, /* U+0022bc: NAND*/ + 0x22bd, /* U+0022bd: NOR*/ + 0x22be, /* U+0022be: RIGHT ANGLE WITH ARC*/ + 0x22bf, /* U+0022bf: RIGHT TRIANGLE*/ + 0x22c0, /* U+0022c0: N-ARY LOGICAL AND*/ + 0x22c1, /* U+0022c1: N-ARY LOGICAL OR*/ + 0x22c2, /* U+0022c2: N-ARY INTERSECTION*/ + 0x22c3, /* U+0022c3: N-ARY UNION*/ + 0x22c4, /* U+0022c4: DIAMOND OPERATOR*/ + 0x22c5, /* U+0022c5: DOT OPERATOR*/ + 0x22c6, /* U+0022c6: STAR OPERATOR*/ + 0x22c7, /* U+0022c7: DIVISION TIMES*/ + 0x22c8, /* U+0022c8: BOWTIE*/ + 0x22c9, /* U+0022c9: LEFT NORMAL FACTOR SEMIDIRECT PRODUCT*/ + 0x22ca, /* U+0022ca: RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT*/ + 0x22cb, /* U+0022cb: LEFT SEMIDIRECT PRODUCT*/ + 0x22cc, /* U+0022cc: RIGHT SEMIDIRECT PRODUCT*/ + 0x22cd, /* U+0022cd: REVERSED TILDE EQUALS*/ + 0x22ce, /* U+0022ce: CURLY LOGICAL OR*/ + 0x22cf, /* U+0022cf: CURLY LOGICAL AND*/ + 0x22d0, /* U+0022d0: DOUBLE SUBSET*/ + 0x22d1, /* U+0022d1: DOUBLE SUPERSET*/ + 0x22d2, /* U+0022d2: DOUBLE INTERSECTION*/ + 0x22d3, /* U+0022d3: DOUBLE UNION*/ + 0x22d4, /* U+0022d4: PITCHFORK*/ + 0x22d5, /* U+0022d5: EQUAL AND PARALLEL TO*/ + 0x22d6, /* U+0022d6: LESS-THAN WITH DOT*/ + 0x22d7, /* U+0022d7: GREATER-THAN WITH DOT*/ + 0x22d8, /* U+0022d8: VERY MUCH LESS-THAN*/ + 0x22d9, /* U+0022d9: VERY MUCH GREATER-THAN*/ + 0x22da, /* U+0022da: LESS-THAN EQUAL TO OR GREATER-THAN*/ + 0x22db, /* U+0022db: GREATER-THAN EQUAL TO OR LESS-THAN*/ + 0x22dc, /* U+0022dc: EQUAL TO OR LESS-THAN*/ + 0x22dd, /* U+0022dd: EQUAL TO OR GREATER-THAN*/ + 0x22de, /* U+0022de: EQUAL TO OR PRECEDES*/ + 0x22df, /* U+0022df: EQUAL TO OR SUCCEEDS*/ + 0x22e0, /* U+0022e0: DOES NOT PRECEDE OR EQUAL*/ + 0x22e1, /* U+0022e1: DOES NOT SUCCEED OR EQUAL*/ + 0x22e2, /* U+0022e2: NOT SQUARE IMAGE OF OR EQUAL TO*/ + 0x22e3, /* U+0022e3: NOT SQUARE ORIGINAL OF OR EQUAL TO*/ + 0x22e4, /* U+0022e4: SQUARE IMAGE OF OR NOT EQUAL TO*/ + 0x22e5, /* U+0022e5: SQUARE ORIGINAL OF OR NOT EQUAL TO*/ + 0x22e6, /* U+0022e6: LESS-THAN BUT NOT EQUIVALENT TO*/ + 0x22e7, /* U+0022e7: GREATER-THAN BUT NOT EQUIVALENT TO*/ + 0x22e8, /* U+0022e8: PRECEDES BUT NOT EQUIVALENT TO*/ + 0x22e9, /* U+0022e9: SUCCEEDS BUT NOT EQUIVALENT TO*/ + 0x22ea, /* U+0022ea: NOT NORMAL SUBGROUP OF*/ + 0x22eb, /* U+0022eb: DOES NOT CONTAIN AS NORMAL SUBGROUP*/ + 0x22ec, /* U+0022ec: NOT NORMAL SUBGROUP OF OR EQUAL TO*/ + 0x22ed, /* U+0022ed: DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL*/ + 0x22ee, /* U+0022ee: VERTICAL ELLIPSIS*/ + 0x22ef, /* U+0022ef: MIDLINE HORIZONTAL ELLIPSIS*/ + 0x22f0, /* U+0022f0: UP RIGHT DIAGONAL ELLIPSIS*/ + 0x22f1, /* U+0022f1: DOWN RIGHT DIAGONAL ELLIPSIS*/ + 0x22f2, /* U+0022f2: ELEMENT OF WITH LONG HORIZONTAL STROKE*/ + 0x22f3, /* U+0022f3: ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0x22f4, /* U+0022f4: SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0x22f5, /* U+0022f5: ELEMENT OF WITH DOT ABOVE*/ + 0x22f6, /* U+0022f6: ELEMENT OF WITH OVERBAR*/ + 0x22f7, /* U+0022f7: SMALL ELEMENT OF WITH OVERBAR*/ + 0x22f8, /* U+0022f8: ELEMENT OF WITH UNDERBAR*/ + 0x22f9, /* U+0022f9: ELEMENT OF WITH TWO HORIZONTAL STROKES*/ + 0x22fa, /* U+0022fa: CONTAINS WITH LONG HORIZONTAL STROKE*/ + 0x22fb, /* U+0022fb: CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0x22fc, /* U+0022fc: SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0x22fd, /* U+0022fd: CONTAINS WITH OVERBAR*/ + 0x22fe, /* U+0022fe: SMALL CONTAINS WITH OVERBAR*/ + 0x22ff, /* U+0022ff: Z NOTATION BAG MEMBERSHIP*/ + 0x2300, /* U+002300: DIAMETER SIGN*/ + 0x2301, /* U+002301: ELECTRIC ARROW*/ + 0x2302, /* U+002302: HOUSE*/ + 0x2303, /* U+002303: UP ARROWHEAD*/ + 0x2304, /* U+002304: DOWN ARROWHEAD*/ + 0x2305, /* U+002305: PROJECTIVE*/ + 0x2306, /* U+002306: PERSPECTIVE*/ + 0x2307, /* U+002307: WAVY LINE*/ + 0x2308, /* U+002308: LEFT CEILING*/ + 0x2309, /* U+002309: RIGHT CEILING*/ + 0x230a, /* U+00230a: LEFT FLOOR*/ + 0x230b, /* U+00230b: RIGHT FLOOR*/ + 0x230c, /* U+00230c: BOTTOM RIGHT CROP*/ + 0x230d, /* U+00230d: BOTTOM LEFT CROP*/ + 0x230e, /* U+00230e: TOP RIGHT CROP*/ + 0x230f, /* U+00230f: TOP LEFT CROP*/ + 0x2310, /* U+002310: REVERSED NOT SIGN*/ + 0x2311, /* U+002311: SQUARE LOZENGE*/ + 0x2312, /* U+002312: ARC*/ + 0x2313, /* U+002313: SEGMENT*/ + 0x2314, /* U+002314: SECTOR*/ + 0x2315, /* U+002315: TELEPHONE RECORDER*/ + 0x2316, /* U+002316: POSITION INDICATOR*/ + 0x2317, /* U+002317: VIEWDATA SQUARE*/ + 0x2318, /* U+002318: PLACE OF INTEREST SIGN*/ + 0x2319, /* U+002319: TURNED NOT SIGN*/ + 0x231a, /* U+00231a: WATCH*/ + 0x231b, /* U+00231b: HOURGLASS*/ + 0x231c, /* U+00231c: TOP LEFT CORNER*/ + 0x231d, /* U+00231d: TOP RIGHT CORNER*/ + 0x231e, /* U+00231e: BOTTOM LEFT CORNER*/ + 0x231f, /* U+00231f: BOTTOM RIGHT CORNER*/ + 0x2320, /* U+002320: TOP HALF INTEGRAL*/ + 0x2321, /* U+002321: BOTTOM HALF INTEGRAL*/ + 0x2322, /* U+002322: FROWN*/ + 0x2323, /* U+002323: SMILE*/ + 0x2324, /* U+002324: UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS*/ + 0x2325, /* U+002325: OPTION KEY*/ + 0x2326, /* U+002326: ERASE TO THE RIGHT*/ + 0x2327, /* U+002327: X IN A RECTANGLE BOX*/ + 0x2328, /* U+002328: KEYBOARD*/ + 0x2329, /* U+002329: LEFT-POINTING ANGLE BRACKET*/ + 0x232a, /* U+00232a: RIGHT-POINTING ANGLE BRACKET*/ + 0x232b, /* U+00232b: ERASE TO THE LEFT*/ + 0x232c, /* U+00232c: BENZENE RING*/ + 0x232d, /* U+00232d: CYLINDRICITY*/ + 0x232e, /* U+00232e: ALL AROUND-PROFILE*/ + 0x232f, /* U+00232f: SYMMETRY*/ + 0x2330, /* U+002330: TOTAL RUNOUT*/ + 0x2331, /* U+002331: DIMENSION ORIGIN*/ + 0x2332, /* U+002332: CONICAL TAPER*/ + 0x2333, /* U+002333: SLOPE*/ + 0x2334, /* U+002334: COUNTERBORE*/ + 0x2335, /* U+002335: COUNTERSINK*/ + 0x2336, /* U+002336: APL FUNCTIONAL SYMBOL I-BEAM*/ + 0x2337, /* U+002337: APL FUNCTIONAL SYMBOL SQUISH QUAD*/ + 0x2338, /* U+002338: APL FUNCTIONAL SYMBOL QUAD EQUAL*/ + 0x2339, /* U+002339: APL FUNCTIONAL SYMBOL QUAD DIVIDE*/ + 0x233a, /* U+00233a: APL FUNCTIONAL SYMBOL QUAD DIAMOND*/ + 0x233b, /* U+00233b: APL FUNCTIONAL SYMBOL QUAD JOT*/ + 0x233c, /* U+00233c: APL FUNCTIONAL SYMBOL QUAD CIRCLE*/ + 0x233d, /* U+00233d: APL FUNCTIONAL SYMBOL CIRCLE STILE*/ + 0x233e, /* U+00233e: APL FUNCTIONAL SYMBOL CIRCLE JOT*/ + 0x233f, /* U+00233f: APL FUNCTIONAL SYMBOL SLASH BAR*/ + 0x2340, /* U+002340: APL FUNCTIONAL SYMBOL BACKSLASH BAR*/ + 0x2341, /* U+002341: APL FUNCTIONAL SYMBOL QUAD SLASH*/ + 0x2342, /* U+002342: APL FUNCTIONAL SYMBOL QUAD BACKSLASH*/ + 0x2343, /* U+002343: APL FUNCTIONAL SYMBOL QUAD LESS-THAN*/ + 0x2344, /* U+002344: APL FUNCTIONAL SYMBOL QUAD GREATER-THAN*/ + 0x2345, /* U+002345: APL FUNCTIONAL SYMBOL LEFTWARDS VANE*/ + 0x2346, /* U+002346: APL FUNCTIONAL SYMBOL RIGHTWARDS VANE*/ + 0x2347, /* U+002347: APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW*/ + 0x2348, /* U+002348: APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW*/ + 0x2349, /* U+002349: APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH*/ + 0x234a, /* U+00234a: APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR*/ + 0x234b, /* U+00234b: APL FUNCTIONAL SYMBOL DELTA STILE*/ + 0x234c, /* U+00234c: APL FUNCTIONAL SYMBOL QUAD DOWN CARET*/ + 0x234d, /* U+00234d: APL FUNCTIONAL SYMBOL QUAD DELTA*/ + 0x234e, /* U+00234e: APL FUNCTIONAL SYMBOL DOWN TACK JOT*/ + 0x234f, /* U+00234f: APL FUNCTIONAL SYMBOL UPWARDS VANE*/ + 0x2350, /* U+002350: APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW*/ + 0x2351, /* U+002351: APL FUNCTIONAL SYMBOL UP TACK OVERBAR*/ + 0x2352, /* U+002352: APL FUNCTIONAL SYMBOL DEL STILE*/ + 0x2353, /* U+002353: APL FUNCTIONAL SYMBOL QUAD UP CARET*/ + 0x2354, /* U+002354: APL FUNCTIONAL SYMBOL QUAD DEL*/ + 0x2355, /* U+002355: APL FUNCTIONAL SYMBOL UP TACK JOT*/ + 0x2356, /* U+002356: APL FUNCTIONAL SYMBOL DOWNWARDS VANE*/ + 0x2357, /* U+002357: APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW*/ + 0x2358, /* U+002358: APL FUNCTIONAL SYMBOL QUOTE UNDERBAR*/ + 0x2359, /* U+002359: APL FUNCTIONAL SYMBOL DELTA UNDERBAR*/ + 0x235a, /* U+00235a: APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR*/ + 0x235b, /* U+00235b: APL FUNCTIONAL SYMBOL JOT UNDERBAR*/ + 0x235c, /* U+00235c: APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR*/ + 0x235d, /* U+00235d: APL FUNCTIONAL SYMBOL UP SHOE JOT*/ + 0x235e, /* U+00235e: APL FUNCTIONAL SYMBOL QUOTE QUAD*/ + 0x235f, /* U+00235f: APL FUNCTIONAL SYMBOL CIRCLE STAR*/ + 0x2360, /* U+002360: APL FUNCTIONAL SYMBOL QUAD COLON*/ + 0x2361, /* U+002361: APL FUNCTIONAL SYMBOL UP TACK DIAERESIS*/ + 0x2362, /* U+002362: APL FUNCTIONAL SYMBOL DEL DIAERESIS*/ + 0x2363, /* U+002363: APL FUNCTIONAL SYMBOL STAR DIAERESIS*/ + 0x2364, /* U+002364: APL FUNCTIONAL SYMBOL JOT DIAERESIS*/ + 0x2365, /* U+002365: APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS*/ + 0x2366, /* U+002366: APL FUNCTIONAL SYMBOL DOWN SHOE STILE*/ + 0x2367, /* U+002367: APL FUNCTIONAL SYMBOL LEFT SHOE STILE*/ + 0x2368, /* U+002368: APL FUNCTIONAL SYMBOL TILDE DIAERESIS*/ + 0x2369, /* U+002369: APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS*/ + 0x236a, /* U+00236a: APL FUNCTIONAL SYMBOL COMMA BAR*/ + 0x236b, /* U+00236b: APL FUNCTIONAL SYMBOL DEL TILDE*/ + 0x236c, /* U+00236c: APL FUNCTIONAL SYMBOL ZILDE*/ + 0x236d, /* U+00236d: APL FUNCTIONAL SYMBOL STILE TILDE*/ + 0x236e, /* U+00236e: APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR*/ + 0x236f, /* U+00236f: APL FUNCTIONAL SYMBOL QUAD NOT EQUAL*/ + 0x2370, /* U+002370: APL FUNCTIONAL SYMBOL QUAD QUESTION*/ + 0x2371, /* U+002371: APL FUNCTIONAL SYMBOL DOWN CARET TILDE*/ + 0x2372, /* U+002372: APL FUNCTIONAL SYMBOL UP CARET TILDE*/ + 0x2373, /* U+002373: APL FUNCTIONAL SYMBOL IOTA*/ + 0x2374, /* U+002374: APL FUNCTIONAL SYMBOL RHO*/ + 0x2375, /* U+002375: APL FUNCTIONAL SYMBOL OMEGA*/ + 0x2376, /* U+002376: APL FUNCTIONAL SYMBOL ALPHA UNDERBAR*/ + 0x2377, /* U+002377: APL FUNCTIONAL SYMBOL EPSILON UNDERBAR*/ + 0x2378, /* U+002378: APL FUNCTIONAL SYMBOL IOTA UNDERBAR*/ + 0x2379, /* U+002379: APL FUNCTIONAL SYMBOL OMEGA UNDERBAR*/ + 0x237a, /* U+00237a: APL FUNCTIONAL SYMBOL ALPHA*/ + 0x237b, /* U+00237b: NOT CHECK MARK*/ + 0x237c, /* U+00237c: RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW*/ + 0x237d, /* U+00237d: SHOULDERED OPEN BOX*/ + 0x237e, /* U+00237e: BELL SYMBOL*/ + 0x237f, /* U+00237f: VERTICAL LINE WITH MIDDLE DOT*/ + 0x2380, /* U+002380: INSERTION SYMBOL*/ + 0x2381, /* U+002381: CONTINUOUS UNDERLINE SYMBOL*/ + 0x2382, /* U+002382: DISCONTINUOUS UNDERLINE SYMBOL*/ + 0x2383, /* U+002383: EMPHASIS SYMBOL*/ + 0x2384, /* U+002384: COMPOSITION SYMBOL*/ + 0x2385, /* U+002385: WHITE SQUARE WITH CENTRE VERTICAL LINE*/ + 0x2386, /* U+002386: ENTER SYMBOL*/ + 0x2387, /* U+002387: ALTERNATIVE KEY SYMBOL*/ + 0x2388, /* U+002388: HELM SYMBOL*/ + 0x2389, /* U+002389: CIRCLED HORIZONTAL BAR WITH NOTCH*/ + 0x238a, /* U+00238a: CIRCLED TRIANGLE DOWN*/ + 0x238b, /* U+00238b: BROKEN CIRCLE WITH NORTHWEST ARROW*/ + 0x238c, /* U+00238c: UNDO SYMBOL*/ + 0x238d, /* U+00238d: MONOSTABLE SYMBOL*/ + 0x238e, /* U+00238e: HYSTERESIS SYMBOL*/ + 0x238f, /* U+00238f: OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL*/ + 0x2390, /* U+002390: OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL*/ + 0x2391, /* U+002391: PASSIVE-PULL-DOWN-OUTPUT SYMBOL*/ + 0x2392, /* U+002392: PASSIVE-PULL-UP-OUTPUT SYMBOL*/ + 0x2393, /* U+002393: DIRECT CURRENT SYMBOL FORM TWO*/ + 0x2394, /* U+002394: SOFTWARE-FUNCTION SYMBOL*/ + 0x2395, /* U+002395: APL FUNCTIONAL SYMBOL QUAD*/ + 0x2396, /* U+002396: DECIMAL SEPARATOR KEY SYMBOL*/ + 0x2397, /* U+002397: PREVIOUS PAGE*/ + 0x2398, /* U+002398: NEXT PAGE*/ + 0x2399, /* U+002399: PRINT SCREEN SYMBOL*/ + 0x239a, /* U+00239a: CLEAR SCREEN SYMBOL*/ + 0x239b, /* U+00239b: LEFT PARENTHESIS UPPER HOOK*/ + 0x239c, /* U+00239c: LEFT PARENTHESIS EXTENSION*/ + 0x239d, /* U+00239d: LEFT PARENTHESIS LOWER HOOK*/ + 0x239e, /* U+00239e: RIGHT PARENTHESIS UPPER HOOK*/ + 0x239f, /* U+00239f: RIGHT PARENTHESIS EXTENSION*/ + 0x23a0, /* U+0023a0: RIGHT PARENTHESIS LOWER HOOK*/ + 0x23a1, /* U+0023a1: LEFT SQUARE BRACKET UPPER CORNER*/ + 0x23a2, /* U+0023a2: LEFT SQUARE BRACKET EXTENSION*/ + 0x23a3, /* U+0023a3: LEFT SQUARE BRACKET LOWER CORNER*/ + 0x23a4, /* U+0023a4: RIGHT SQUARE BRACKET UPPER CORNER*/ + 0x23a5, /* U+0023a5: RIGHT SQUARE BRACKET EXTENSION*/ + 0x23a6, /* U+0023a6: RIGHT SQUARE BRACKET LOWER CORNER*/ + 0x23a7, /* U+0023a7: LEFT CURLY BRACKET UPPER HOOK*/ + 0x23a8, /* U+0023a8: LEFT CURLY BRACKET MIDDLE PIECE*/ + 0x23a9, /* U+0023a9: LEFT CURLY BRACKET LOWER HOOK*/ + 0x23aa, /* U+0023aa: CURLY BRACKET EXTENSION*/ + 0x23ab, /* U+0023ab: RIGHT CURLY BRACKET UPPER HOOK*/ + 0x23ac, /* U+0023ac: RIGHT CURLY BRACKET MIDDLE PIECE*/ + 0x23ad, /* U+0023ad: RIGHT CURLY BRACKET LOWER HOOK*/ + 0x23ae, /* U+0023ae: INTEGRAL EXTENSION*/ + 0x23af, /* U+0023af: HORIZONTAL LINE EXTENSION*/ + 0x23b0, /* U+0023b0: UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION*/ + 0x23b1, /* U+0023b1: UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION*/ + 0x23b2, /* U+0023b2: SUMMATION TOP*/ + 0x23b3, /* U+0023b3: SUMMATION BOTTOM*/ + 0x23b4, /* U+0023b4: TOP SQUARE BRACKET*/ + 0x23b5, /* U+0023b5: BOTTOM SQUARE BRACKET*/ + 0x23b6, /* U+0023b6: BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET*/ + 0x23b7, /* U+0023b7: RADICAL SYMBOL BOTTOM*/ + 0x23b8, /* U+0023b8: LEFT VERTICAL BOX LINE*/ + 0x23b9, /* U+0023b9: RIGHT VERTICAL BOX LINE*/ + 0x23ba, /* U+0023ba: HORIZONTAL SCAN LINE-1*/ + 0x23bb, /* U+0023bb: HORIZONTAL SCAN LINE-3*/ + 0x23bc, /* U+0023bc: HORIZONTAL SCAN LINE-7*/ + 0x23bd, /* U+0023bd: HORIZONTAL SCAN LINE-9*/ + 0x23be, /* U+0023be: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT*/ + 0x23bf, /* U+0023bf: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT*/ + 0x23c0, /* U+0023c0: DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE*/ + 0x23c1, /* U+0023c1: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE*/ + 0x23c2, /* U+0023c2: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE*/ + 0x23c3, /* U+0023c3: DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE*/ + 0x23c4, /* U+0023c4: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE*/ + 0x23c5, /* U+0023c5: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE*/ + 0x23c6, /* U+0023c6: DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE*/ + 0x23c7, /* U+0023c7: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE*/ + 0x23c8, /* U+0023c8: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE*/ + 0x23c9, /* U+0023c9: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL*/ + 0x23ca, /* U+0023ca: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL*/ + 0x23cb, /* U+0023cb: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT*/ + 0x23cc, /* U+0023cc: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT*/ + 0x23cd, /* U+0023cd: SQUARE FOOT*/ + 0x23ce, /* U+0023ce: RETURN SYMBOL*/ + 0x23cf, /* U+0023cf: EJECT SYMBOL*/ + 0x23d0, /* U+0023d0: VERTICAL LINE EXTENSION*/ + 0x23d1, /* U+0023d1: METRICAL BREVE*/ + 0x23d2, /* U+0023d2: METRICAL LONG OVER SHORT*/ + 0x23d3, /* U+0023d3: METRICAL SHORT OVER LONG*/ + 0x23d4, /* U+0023d4: METRICAL LONG OVER TWO SHORTS*/ + 0x23d5, /* U+0023d5: METRICAL TWO SHORTS OVER LONG*/ + 0x23d6, /* U+0023d6: METRICAL TWO SHORTS JOINED*/ + 0x23d7, /* U+0023d7: METRICAL TRISEME*/ + 0x23d8, /* U+0023d8: METRICAL TETRASEME*/ + 0x23d9, /* U+0023d9: METRICAL PENTASEME*/ + 0x23da, /* U+0023da: EARTH GROUND*/ + 0x23db, /* U+0023db: FUSE*/ + 0x23dc, /* U+0023dc: TOP PARENTHESIS*/ + 0x23dd, /* U+0023dd: BOTTOM PARENTHESIS*/ + 0x23de, /* U+0023de: TOP CURLY BRACKET*/ + 0x23df, /* U+0023df: BOTTOM CURLY BRACKET*/ + 0x23e0, /* U+0023e0: TOP TORTOISE SHELL BRACKET*/ + 0x23e1, /* U+0023e1: BOTTOM TORTOISE SHELL BRACKET*/ + 0x23e2, /* U+0023e2: WHITE TRAPEZIUM*/ + 0x23e3, /* U+0023e3: BENZENE RING WITH CIRCLE*/ + 0x23e4, /* U+0023e4: STRAIGHTNESS*/ + 0x23e5, /* U+0023e5: FLATNESS*/ + 0x23e6, /* U+0023e6: AC CURRENT*/ + 0x23e7, /* U+0023e7: ELECTRICAL INTERSECTION*/ + 0x23e8, /* U+0023e8: DECIMAL EXPONENT SYMBOL*/ + 0x23e9, /* U+0023e9: BLACK RIGHT-POINTING DOUBLE TRIANGLE*/ + 0x23ea, /* U+0023ea: BLACK LEFT-POINTING DOUBLE TRIANGLE*/ + 0x23eb, /* U+0023eb: BLACK UP-POINTING DOUBLE TRIANGLE*/ + 0x23ec, /* U+0023ec: BLACK DOWN-POINTING DOUBLE TRIANGLE*/ + 0x23ed, /* U+0023ed: BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR*/ + 0x23ee, /* U+0023ee: BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR*/ + 0x23ef, /* U+0023ef: BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR*/ + 0x23f0, /* U+0023f0: ALARM CLOCK*/ + 0x23f1, /* U+0023f1: STOPWATCH*/ + 0x23f2, /* U+0023f2: TIMER CLOCK*/ + 0x23f3, /* U+0023f3: HOURGLASS WITH FLOWING SAND*/ + 0x23f4, /* U+0023f4: */ + 0x23f5, /* U+0023f5: */ + 0x23f6, /* U+0023f6: */ + 0x23f7, /* U+0023f7: */ + 0x23f8, /* U+0023f8: */ + 0x23f9, /* U+0023f9: */ + 0x23fa, /* U+0023fa: */ + 0x23fb, /* U+0023fb: */ + 0x23fc, /* U+0023fc: */ + 0x23fd, /* U+0023fd: */ + 0x23fe, /* U+0023fe: */ + 0x23ff, /* U+0023ff: */ + 0x2400, /* U+002400: SYMBOL FOR NULL*/ + 0x2401, /* U+002401: SYMBOL FOR START OF HEADING*/ + 0x2402, /* U+002402: SYMBOL FOR START OF TEXT*/ + 0x2403, /* U+002403: SYMBOL FOR END OF TEXT*/ + 0x2404, /* U+002404: SYMBOL FOR END OF TRANSMISSION*/ + 0x2405, /* U+002405: SYMBOL FOR ENQUIRY*/ + 0x2406, /* U+002406: SYMBOL FOR ACKNOWLEDGE*/ + 0x2407, /* U+002407: SYMBOL FOR BELL*/ + 0x2408, /* U+002408: SYMBOL FOR BACKSPACE*/ + 0x2409, /* U+002409: SYMBOL FOR HORIZONTAL TABULATION*/ + 0x240a, /* U+00240a: SYMBOL FOR LINE FEED*/ + 0x240b, /* U+00240b: SYMBOL FOR VERTICAL TABULATION*/ + 0x240c, /* U+00240c: SYMBOL FOR FORM FEED*/ + 0x240d, /* U+00240d: SYMBOL FOR CARRIAGE RETURN*/ + 0x240e, /* U+00240e: SYMBOL FOR SHIFT OUT*/ + 0x240f, /* U+00240f: SYMBOL FOR SHIFT IN*/ + 0x2410, /* U+002410: SYMBOL FOR DATA LINK ESCAPE*/ + 0x2411, /* U+002411: SYMBOL FOR DEVICE CONTROL ONE*/ + 0x2412, /* U+002412: SYMBOL FOR DEVICE CONTROL TWO*/ + 0x2413, /* U+002413: SYMBOL FOR DEVICE CONTROL THREE*/ + 0x2414, /* U+002414: SYMBOL FOR DEVICE CONTROL FOUR*/ + 0x2415, /* U+002415: SYMBOL FOR NEGATIVE ACKNOWLEDGE*/ + 0x2416, /* U+002416: SYMBOL FOR SYNCHRONOUS IDLE*/ + 0x2417, /* U+002417: SYMBOL FOR END OF TRANSMISSION BLOCK*/ + 0x2418, /* U+002418: SYMBOL FOR CANCEL*/ + 0x2419, /* U+002419: SYMBOL FOR END OF MEDIUM*/ + 0x241a, /* U+00241a: SYMBOL FOR SUBSTITUTE*/ + 0x241b, /* U+00241b: SYMBOL FOR ESCAPE*/ + 0x241c, /* U+00241c: SYMBOL FOR FILE SEPARATOR*/ + 0x241d, /* U+00241d: SYMBOL FOR GROUP SEPARATOR*/ + 0x241e, /* U+00241e: SYMBOL FOR RECORD SEPARATOR*/ + 0x241f, /* U+00241f: SYMBOL FOR UNIT SEPARATOR*/ + 0x2420, /* U+002420: SYMBOL FOR SPACE*/ + 0x2421, /* U+002421: SYMBOL FOR DELETE*/ + 0x2422, /* U+002422: BLANK SYMBOL*/ + 0x2423, /* U+002423: OPEN BOX*/ + 0x2424, /* U+002424: SYMBOL FOR NEWLINE*/ + 0x2425, /* U+002425: SYMBOL FOR DELETE FORM TWO*/ + 0x2426, /* U+002426: SYMBOL FOR SUBSTITUTE FORM TWO*/ + 0x2427, /* U+002427: */ + 0x2428, /* U+002428: */ + 0x2429, /* U+002429: */ + 0x242a, /* U+00242a: */ + 0x242b, /* U+00242b: */ + 0x242c, /* U+00242c: */ + 0x242d, /* U+00242d: */ + 0x242e, /* U+00242e: */ + 0x242f, /* U+00242f: */ + 0x2430, /* U+002430: */ + 0x2431, /* U+002431: */ + 0x2432, /* U+002432: */ + 0x2433, /* U+002433: */ + 0x2434, /* U+002434: */ + 0x2435, /* U+002435: */ + 0x2436, /* U+002436: */ + 0x2437, /* U+002437: */ + 0x2438, /* U+002438: */ + 0x2439, /* U+002439: */ + 0x243a, /* U+00243a: */ + 0x243b, /* U+00243b: */ + 0x243c, /* U+00243c: */ + 0x243d, /* U+00243d: */ + 0x243e, /* U+00243e: */ + 0x243f, /* U+00243f: */ + 0x2440, /* U+002440: OCR HOOK*/ + 0x2441, /* U+002441: OCR CHAIR*/ + 0x2442, /* U+002442: OCR FORK*/ + 0x2443, /* U+002443: OCR INVERTED FORK*/ + 0x2444, /* U+002444: OCR BELT BUCKLE*/ + 0x2445, /* U+002445: OCR BOW TIE*/ + 0x2446, /* U+002446: OCR BRANCH BANK IDENTIFICATION*/ + 0x2447, /* U+002447: OCR AMOUNT OF CHECK*/ + 0x2448, /* U+002448: OCR DASH*/ + 0x2449, /* U+002449: OCR CUSTOMER ACCOUNT NUMBER*/ + 0x244a, /* U+00244a: OCR DOUBLE BACKSLASH*/ + 0x244b, /* U+00244b: */ + 0x244c, /* U+00244c: */ + 0x244d, /* U+00244d: */ + 0x244e, /* U+00244e: */ + 0x244f, /* U+00244f: */ + 0x2450, /* U+002450: */ + 0x2451, /* U+002451: */ + 0x2452, /* U+002452: */ + 0x2453, /* U+002453: */ + 0x2454, /* U+002454: */ + 0x2455, /* U+002455: */ + 0x2456, /* U+002456: */ + 0x2457, /* U+002457: */ + 0x2458, /* U+002458: */ + 0x2459, /* U+002459: */ + 0x245a, /* U+00245a: */ + 0x245b, /* U+00245b: */ + 0x245c, /* U+00245c: */ + 0x245d, /* U+00245d: */ + 0x245e, /* U+00245e: */ + 0x245f, /* U+00245f: */ + 0x2460, /* U+002460: CIRCLED DIGIT ONE*/ + 0x2461, /* U+002461: CIRCLED DIGIT TWO*/ + 0x2462, /* U+002462: CIRCLED DIGIT THREE*/ + 0x2463, /* U+002463: CIRCLED DIGIT FOUR*/ + 0x2464, /* U+002464: CIRCLED DIGIT FIVE*/ + 0x2465, /* U+002465: CIRCLED DIGIT SIX*/ + 0x2466, /* U+002466: CIRCLED DIGIT SEVEN*/ + 0x2467, /* U+002467: CIRCLED DIGIT EIGHT*/ + 0x2468, /* U+002468: CIRCLED DIGIT NINE*/ + 0x2469, /* U+002469: CIRCLED NUMBER TEN*/ + 0x246a, /* U+00246a: CIRCLED NUMBER ELEVEN*/ + 0x246b, /* U+00246b: CIRCLED NUMBER TWELVE*/ + 0x246c, /* U+00246c: CIRCLED NUMBER THIRTEEN*/ + 0x246d, /* U+00246d: CIRCLED NUMBER FOURTEEN*/ + 0x246e, /* U+00246e: CIRCLED NUMBER FIFTEEN*/ + 0x246f, /* U+00246f: CIRCLED NUMBER SIXTEEN*/ + 0x2470, /* U+002470: CIRCLED NUMBER SEVENTEEN*/ + 0x2471, /* U+002471: CIRCLED NUMBER EIGHTEEN*/ + 0x2472, /* U+002472: CIRCLED NUMBER NINETEEN*/ + 0x2473, /* U+002473: CIRCLED NUMBER TWENTY*/ + 0x2474, /* U+002474: PARENTHESIZED DIGIT ONE*/ + 0x2475, /* U+002475: PARENTHESIZED DIGIT TWO*/ + 0x2476, /* U+002476: PARENTHESIZED DIGIT THREE*/ + 0x2477, /* U+002477: PARENTHESIZED DIGIT FOUR*/ + 0x2478, /* U+002478: PARENTHESIZED DIGIT FIVE*/ + 0x2479, /* U+002479: PARENTHESIZED DIGIT SIX*/ + 0x247a, /* U+00247a: PARENTHESIZED DIGIT SEVEN*/ + 0x247b, /* U+00247b: PARENTHESIZED DIGIT EIGHT*/ + 0x247c, /* U+00247c: PARENTHESIZED DIGIT NINE*/ + 0x247d, /* U+00247d: PARENTHESIZED NUMBER TEN*/ + 0x247e, /* U+00247e: PARENTHESIZED NUMBER ELEVEN*/ + 0x247f, /* U+00247f: PARENTHESIZED NUMBER TWELVE*/ + 0x2480, /* U+002480: PARENTHESIZED NUMBER THIRTEEN*/ + 0x2481, /* U+002481: PARENTHESIZED NUMBER FOURTEEN*/ + 0x2482, /* U+002482: PARENTHESIZED NUMBER FIFTEEN*/ + 0x2483, /* U+002483: PARENTHESIZED NUMBER SIXTEEN*/ + 0x2484, /* U+002484: PARENTHESIZED NUMBER SEVENTEEN*/ + 0x2485, /* U+002485: PARENTHESIZED NUMBER EIGHTEEN*/ + 0x2486, /* U+002486: PARENTHESIZED NUMBER NINETEEN*/ + 0x2487, /* U+002487: PARENTHESIZED NUMBER TWENTY*/ + 0x2488, /* U+002488: DIGIT ONE FULL STOP*/ + 0x2489, /* U+002489: DIGIT TWO FULL STOP*/ + 0x248a, /* U+00248a: DIGIT THREE FULL STOP*/ + 0x248b, /* U+00248b: DIGIT FOUR FULL STOP*/ + 0x248c, /* U+00248c: DIGIT FIVE FULL STOP*/ + 0x248d, /* U+00248d: DIGIT SIX FULL STOP*/ + 0x248e, /* U+00248e: DIGIT SEVEN FULL STOP*/ + 0x248f, /* U+00248f: DIGIT EIGHT FULL STOP*/ + 0x2490, /* U+002490: DIGIT NINE FULL STOP*/ + 0x2491, /* U+002491: NUMBER TEN FULL STOP*/ + 0x2492, /* U+002492: NUMBER ELEVEN FULL STOP*/ + 0x2493, /* U+002493: NUMBER TWELVE FULL STOP*/ + 0x2494, /* U+002494: NUMBER THIRTEEN FULL STOP*/ + 0x2495, /* U+002495: NUMBER FOURTEEN FULL STOP*/ + 0x2496, /* U+002496: NUMBER FIFTEEN FULL STOP*/ + 0x2497, /* U+002497: NUMBER SIXTEEN FULL STOP*/ + 0x2498, /* U+002498: NUMBER SEVENTEEN FULL STOP*/ + 0x2499, /* U+002499: NUMBER EIGHTEEN FULL STOP*/ + 0x249a, /* U+00249a: NUMBER NINETEEN FULL STOP*/ + 0x249b, /* U+00249b: NUMBER TWENTY FULL STOP*/ + 0x249c, /* U+00249c: PARENTHESIZED LATIN SMALL LETTER A*/ + 0x249d, /* U+00249d: PARENTHESIZED LATIN SMALL LETTER B*/ + 0x249e, /* U+00249e: PARENTHESIZED LATIN SMALL LETTER C*/ + 0x249f, /* U+00249f: PARENTHESIZED LATIN SMALL LETTER D*/ + 0x24a0, /* U+0024a0: PARENTHESIZED LATIN SMALL LETTER E*/ + 0x24a1, /* U+0024a1: PARENTHESIZED LATIN SMALL LETTER F*/ + 0x24a2, /* U+0024a2: PARENTHESIZED LATIN SMALL LETTER G*/ + 0x24a3, /* U+0024a3: PARENTHESIZED LATIN SMALL LETTER H*/ + 0x24a4, /* U+0024a4: PARENTHESIZED LATIN SMALL LETTER I*/ + 0x24a5, /* U+0024a5: PARENTHESIZED LATIN SMALL LETTER J*/ + 0x24a6, /* U+0024a6: PARENTHESIZED LATIN SMALL LETTER K*/ + 0x24a7, /* U+0024a7: PARENTHESIZED LATIN SMALL LETTER L*/ + 0x24a8, /* U+0024a8: PARENTHESIZED LATIN SMALL LETTER M*/ + 0x24a9, /* U+0024a9: PARENTHESIZED LATIN SMALL LETTER N*/ + 0x24aa, /* U+0024aa: PARENTHESIZED LATIN SMALL LETTER O*/ + 0x24ab, /* U+0024ab: PARENTHESIZED LATIN SMALL LETTER P*/ + 0x24ac, /* U+0024ac: PARENTHESIZED LATIN SMALL LETTER Q*/ + 0x24ad, /* U+0024ad: PARENTHESIZED LATIN SMALL LETTER R*/ + 0x24ae, /* U+0024ae: PARENTHESIZED LATIN SMALL LETTER S*/ + 0x24af, /* U+0024af: PARENTHESIZED LATIN SMALL LETTER T*/ + 0x24b0, /* U+0024b0: PARENTHESIZED LATIN SMALL LETTER U*/ + 0x24b1, /* U+0024b1: PARENTHESIZED LATIN SMALL LETTER V*/ + 0x24b2, /* U+0024b2: PARENTHESIZED LATIN SMALL LETTER W*/ + 0x24b3, /* U+0024b3: PARENTHESIZED LATIN SMALL LETTER X*/ + 0x24b4, /* U+0024b4: PARENTHESIZED LATIN SMALL LETTER Y*/ + 0x24b5, /* U+0024b5: PARENTHESIZED LATIN SMALL LETTER Z*/ + 0x24d0, /* U+0024b6: CIRCLED LATIN CAPITAL LETTER A*/ + 0x24d1, /* U+0024b7: CIRCLED LATIN CAPITAL LETTER B*/ + 0x24d2, /* U+0024b8: CIRCLED LATIN CAPITAL LETTER C*/ + 0x24d3, /* U+0024b9: CIRCLED LATIN CAPITAL LETTER D*/ + 0x24d4, /* U+0024ba: CIRCLED LATIN CAPITAL LETTER E*/ + 0x24d5, /* U+0024bb: CIRCLED LATIN CAPITAL LETTER F*/ + 0x24d6, /* U+0024bc: CIRCLED LATIN CAPITAL LETTER G*/ + 0x24d7, /* U+0024bd: CIRCLED LATIN CAPITAL LETTER H*/ + 0x24d8, /* U+0024be: CIRCLED LATIN CAPITAL LETTER I*/ + 0x24d9, /* U+0024bf: CIRCLED LATIN CAPITAL LETTER J*/ + 0x24da, /* U+0024c0: CIRCLED LATIN CAPITAL LETTER K*/ + 0x24db, /* U+0024c1: CIRCLED LATIN CAPITAL LETTER L*/ + 0x24dc, /* U+0024c2: CIRCLED LATIN CAPITAL LETTER M*/ + 0x24dd, /* U+0024c3: CIRCLED LATIN CAPITAL LETTER N*/ + 0x24de, /* U+0024c4: CIRCLED LATIN CAPITAL LETTER O*/ + 0x24df, /* U+0024c5: CIRCLED LATIN CAPITAL LETTER P*/ + 0x24e0, /* U+0024c6: CIRCLED LATIN CAPITAL LETTER Q*/ + 0x24e1, /* U+0024c7: CIRCLED LATIN CAPITAL LETTER R*/ + 0x24e2, /* U+0024c8: CIRCLED LATIN CAPITAL LETTER S*/ + 0x24e3, /* U+0024c9: CIRCLED LATIN CAPITAL LETTER T*/ + 0x24e4, /* U+0024ca: CIRCLED LATIN CAPITAL LETTER U*/ + 0x24e5, /* U+0024cb: CIRCLED LATIN CAPITAL LETTER V*/ + 0x24e6, /* U+0024cc: CIRCLED LATIN CAPITAL LETTER W*/ + 0x24e7, /* U+0024cd: CIRCLED LATIN CAPITAL LETTER X*/ + 0x24e8, /* U+0024ce: CIRCLED LATIN CAPITAL LETTER Y*/ + 0x24e9, /* U+0024cf: CIRCLED LATIN CAPITAL LETTER Z*/ +}; + +static const RTUNICP g_afRTUniLower0x002c00[] = +{ + 0x2c30, /* U+002c00: GLAGOLITIC CAPITAL LETTER AZU*/ + 0x2c31, /* U+002c01: GLAGOLITIC CAPITAL LETTER BUKY*/ + 0x2c32, /* U+002c02: GLAGOLITIC CAPITAL LETTER VEDE*/ + 0x2c33, /* U+002c03: GLAGOLITIC CAPITAL LETTER GLAGOLI*/ + 0x2c34, /* U+002c04: GLAGOLITIC CAPITAL LETTER DOBRO*/ + 0x2c35, /* U+002c05: GLAGOLITIC CAPITAL LETTER YESTU*/ + 0x2c36, /* U+002c06: GLAGOLITIC CAPITAL LETTER ZHIVETE*/ + 0x2c37, /* U+002c07: GLAGOLITIC CAPITAL LETTER DZELO*/ + 0x2c38, /* U+002c08: GLAGOLITIC CAPITAL LETTER ZEMLJA*/ + 0x2c39, /* U+002c09: GLAGOLITIC CAPITAL LETTER IZHE*/ + 0x2c3a, /* U+002c0a: GLAGOLITIC CAPITAL LETTER INITIAL IZHE*/ + 0x2c3b, /* U+002c0b: GLAGOLITIC CAPITAL LETTER I*/ + 0x2c3c, /* U+002c0c: GLAGOLITIC CAPITAL LETTER DJERVI*/ + 0x2c3d, /* U+002c0d: GLAGOLITIC CAPITAL LETTER KAKO*/ + 0x2c3e, /* U+002c0e: GLAGOLITIC CAPITAL LETTER LJUDIJE*/ + 0x2c3f, /* U+002c0f: GLAGOLITIC CAPITAL LETTER MYSLITE*/ + 0x2c40, /* U+002c10: GLAGOLITIC CAPITAL LETTER NASHI*/ + 0x2c41, /* U+002c11: GLAGOLITIC CAPITAL LETTER ONU*/ + 0x2c42, /* U+002c12: GLAGOLITIC CAPITAL LETTER POKOJI*/ + 0x2c43, /* U+002c13: GLAGOLITIC CAPITAL LETTER RITSI*/ + 0x2c44, /* U+002c14: GLAGOLITIC CAPITAL LETTER SLOVO*/ + 0x2c45, /* U+002c15: GLAGOLITIC CAPITAL LETTER TVRIDO*/ + 0x2c46, /* U+002c16: GLAGOLITIC CAPITAL LETTER UKU*/ + 0x2c47, /* U+002c17: GLAGOLITIC CAPITAL LETTER FRITU*/ + 0x2c48, /* U+002c18: GLAGOLITIC CAPITAL LETTER HERU*/ + 0x2c49, /* U+002c19: GLAGOLITIC CAPITAL LETTER OTU*/ + 0x2c4a, /* U+002c1a: GLAGOLITIC CAPITAL LETTER PE*/ + 0x2c4b, /* U+002c1b: GLAGOLITIC CAPITAL LETTER SHTA*/ + 0x2c4c, /* U+002c1c: GLAGOLITIC CAPITAL LETTER TSI*/ + 0x2c4d, /* U+002c1d: GLAGOLITIC CAPITAL LETTER CHRIVI*/ + 0x2c4e, /* U+002c1e: GLAGOLITIC CAPITAL LETTER SHA*/ + 0x2c4f, /* U+002c1f: GLAGOLITIC CAPITAL LETTER YERU*/ + 0x2c50, /* U+002c20: GLAGOLITIC CAPITAL LETTER YERI*/ + 0x2c51, /* U+002c21: GLAGOLITIC CAPITAL LETTER YATI*/ + 0x2c52, /* U+002c22: GLAGOLITIC CAPITAL LETTER SPIDERY HA*/ + 0x2c53, /* U+002c23: GLAGOLITIC CAPITAL LETTER YU*/ + 0x2c54, /* U+002c24: GLAGOLITIC CAPITAL LETTER SMALL YUS*/ + 0x2c55, /* U+002c25: GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL*/ + 0x2c56, /* U+002c26: GLAGOLITIC CAPITAL LETTER YO*/ + 0x2c57, /* U+002c27: GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS*/ + 0x2c58, /* U+002c28: GLAGOLITIC CAPITAL LETTER BIG YUS*/ + 0x2c59, /* U+002c29: GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS*/ + 0x2c5a, /* U+002c2a: GLAGOLITIC CAPITAL LETTER FITA*/ + 0x2c5b, /* U+002c2b: GLAGOLITIC CAPITAL LETTER IZHITSA*/ + 0x2c5c, /* U+002c2c: GLAGOLITIC CAPITAL LETTER SHTAPIC*/ + 0x2c5d, /* U+002c2d: GLAGOLITIC CAPITAL LETTER TROKUTASTI A*/ + 0x2c5e, /* U+002c2e: GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE*/ + 0x2c2f, /* U+002c2f: */ + 0x2c30, /* U+002c30: GLAGOLITIC SMALL LETTER AZU*/ + 0x2c31, /* U+002c31: GLAGOLITIC SMALL LETTER BUKY*/ + 0x2c32, /* U+002c32: GLAGOLITIC SMALL LETTER VEDE*/ + 0x2c33, /* U+002c33: GLAGOLITIC SMALL LETTER GLAGOLI*/ + 0x2c34, /* U+002c34: GLAGOLITIC SMALL LETTER DOBRO*/ + 0x2c35, /* U+002c35: GLAGOLITIC SMALL LETTER YESTU*/ + 0x2c36, /* U+002c36: GLAGOLITIC SMALL LETTER ZHIVETE*/ + 0x2c37, /* U+002c37: GLAGOLITIC SMALL LETTER DZELO*/ + 0x2c38, /* U+002c38: GLAGOLITIC SMALL LETTER ZEMLJA*/ + 0x2c39, /* U+002c39: GLAGOLITIC SMALL LETTER IZHE*/ + 0x2c3a, /* U+002c3a: GLAGOLITIC SMALL LETTER INITIAL IZHE*/ + 0x2c3b, /* U+002c3b: GLAGOLITIC SMALL LETTER I*/ + 0x2c3c, /* U+002c3c: GLAGOLITIC SMALL LETTER DJERVI*/ + 0x2c3d, /* U+002c3d: GLAGOLITIC SMALL LETTER KAKO*/ + 0x2c3e, /* U+002c3e: GLAGOLITIC SMALL LETTER LJUDIJE*/ + 0x2c3f, /* U+002c3f: GLAGOLITIC SMALL LETTER MYSLITE*/ + 0x2c40, /* U+002c40: GLAGOLITIC SMALL LETTER NASHI*/ + 0x2c41, /* U+002c41: GLAGOLITIC SMALL LETTER ONU*/ + 0x2c42, /* U+002c42: GLAGOLITIC SMALL LETTER POKOJI*/ + 0x2c43, /* U+002c43: GLAGOLITIC SMALL LETTER RITSI*/ + 0x2c44, /* U+002c44: GLAGOLITIC SMALL LETTER SLOVO*/ + 0x2c45, /* U+002c45: GLAGOLITIC SMALL LETTER TVRIDO*/ + 0x2c46, /* U+002c46: GLAGOLITIC SMALL LETTER UKU*/ + 0x2c47, /* U+002c47: GLAGOLITIC SMALL LETTER FRITU*/ + 0x2c48, /* U+002c48: GLAGOLITIC SMALL LETTER HERU*/ + 0x2c49, /* U+002c49: GLAGOLITIC SMALL LETTER OTU*/ + 0x2c4a, /* U+002c4a: GLAGOLITIC SMALL LETTER PE*/ + 0x2c4b, /* U+002c4b: GLAGOLITIC SMALL LETTER SHTA*/ + 0x2c4c, /* U+002c4c: GLAGOLITIC SMALL LETTER TSI*/ + 0x2c4d, /* U+002c4d: GLAGOLITIC SMALL LETTER CHRIVI*/ + 0x2c4e, /* U+002c4e: GLAGOLITIC SMALL LETTER SHA*/ + 0x2c4f, /* U+002c4f: GLAGOLITIC SMALL LETTER YERU*/ + 0x2c50, /* U+002c50: GLAGOLITIC SMALL LETTER YERI*/ + 0x2c51, /* U+002c51: GLAGOLITIC SMALL LETTER YATI*/ + 0x2c52, /* U+002c52: GLAGOLITIC SMALL LETTER SPIDERY HA*/ + 0x2c53, /* U+002c53: GLAGOLITIC SMALL LETTER YU*/ + 0x2c54, /* U+002c54: GLAGOLITIC SMALL LETTER SMALL YUS*/ + 0x2c55, /* U+002c55: GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL*/ + 0x2c56, /* U+002c56: GLAGOLITIC SMALL LETTER YO*/ + 0x2c57, /* U+002c57: GLAGOLITIC SMALL LETTER IOTATED SMALL YUS*/ + 0x2c58, /* U+002c58: GLAGOLITIC SMALL LETTER BIG YUS*/ + 0x2c59, /* U+002c59: GLAGOLITIC SMALL LETTER IOTATED BIG YUS*/ + 0x2c5a, /* U+002c5a: GLAGOLITIC SMALL LETTER FITA*/ + 0x2c5b, /* U+002c5b: GLAGOLITIC SMALL LETTER IZHITSA*/ + 0x2c5c, /* U+002c5c: GLAGOLITIC SMALL LETTER SHTAPIC*/ + 0x2c5d, /* U+002c5d: GLAGOLITIC SMALL LETTER TROKUTASTI A*/ + 0x2c5e, /* U+002c5e: GLAGOLITIC SMALL LETTER LATINATE MYSLITE*/ + 0x2c5f, /* U+002c5f: */ + 0x2c61, /* U+002c60: LATIN CAPITAL LETTER L WITH DOUBLE BAR*/ + 0x2c61, /* U+002c61: LATIN SMALL LETTER L WITH DOUBLE BAR*/ + 0x26b, /* U+002c62: LATIN CAPITAL LETTER L WITH MIDDLE TILDE*/ + 0x1d7d, /* U+002c63: LATIN CAPITAL LETTER P WITH STROKE*/ + 0x27d, /* U+002c64: LATIN CAPITAL LETTER R WITH TAIL*/ + 0x2c65, /* U+002c65: LATIN SMALL LETTER A WITH STROKE*/ + 0x2c66, /* U+002c66: LATIN SMALL LETTER T WITH DIAGONAL STROKE*/ + 0x2c68, /* U+002c67: LATIN CAPITAL LETTER H WITH DESCENDER*/ + 0x2c68, /* U+002c68: LATIN SMALL LETTER H WITH DESCENDER*/ + 0x2c6a, /* U+002c69: LATIN CAPITAL LETTER K WITH DESCENDER*/ + 0x2c6a, /* U+002c6a: LATIN SMALL LETTER K WITH DESCENDER*/ + 0x2c6c, /* U+002c6b: LATIN CAPITAL LETTER Z WITH DESCENDER*/ + 0x2c6c, /* U+002c6c: LATIN SMALL LETTER Z WITH DESCENDER*/ + 0x251, /* U+002c6d: LATIN CAPITAL LETTER ALPHA*/ + 0x271, /* U+002c6e: LATIN CAPITAL LETTER M WITH HOOK*/ + 0x250, /* U+002c6f: LATIN CAPITAL LETTER TURNED A*/ + 0x252, /* U+002c70: LATIN CAPITAL LETTER TURNED ALPHA*/ + 0x2c71, /* U+002c71: LATIN SMALL LETTER V WITH RIGHT HOOK*/ + 0x2c73, /* U+002c72: LATIN CAPITAL LETTER W WITH HOOK*/ + 0x2c73, /* U+002c73: LATIN SMALL LETTER W WITH HOOK*/ + 0x2c74, /* U+002c74: LATIN SMALL LETTER V WITH CURL*/ + 0x2c76, /* U+002c75: LATIN CAPITAL LETTER HALF H*/ + 0x2c76, /* U+002c76: LATIN SMALL LETTER HALF H*/ + 0x2c77, /* U+002c77: LATIN SMALL LETTER TAILLESS PHI*/ + 0x2c78, /* U+002c78: LATIN SMALL LETTER E WITH NOTCH*/ + 0x2c79, /* U+002c79: LATIN SMALL LETTER TURNED R WITH TAIL*/ + 0x2c7a, /* U+002c7a: LATIN SMALL LETTER O WITH LOW RING INSIDE*/ + 0x2c7b, /* U+002c7b: LATIN LETTER SMALL CAPITAL TURNED E*/ + 0x2c7c, /* U+002c7c: LATIN SUBSCRIPT SMALL LETTER J*/ + 0x2c7d, /* U+002c7d: MODIFIER LETTER CAPITAL V*/ + 0x23f, /* U+002c7e: LATIN CAPITAL LETTER S WITH SWASH TAIL*/ + 0x240, /* U+002c7f: LATIN CAPITAL LETTER Z WITH SWASH TAIL*/ + 0x2c81, /* U+002c80: COPTIC CAPITAL LETTER ALFA*/ + 0x2c81, /* U+002c81: COPTIC SMALL LETTER ALFA*/ + 0x2c83, /* U+002c82: COPTIC CAPITAL LETTER VIDA*/ + 0x2c83, /* U+002c83: COPTIC SMALL LETTER VIDA*/ + 0x2c85, /* U+002c84: COPTIC CAPITAL LETTER GAMMA*/ + 0x2c85, /* U+002c85: COPTIC SMALL LETTER GAMMA*/ + 0x2c87, /* U+002c86: COPTIC CAPITAL LETTER DALDA*/ + 0x2c87, /* U+002c87: COPTIC SMALL LETTER DALDA*/ + 0x2c89, /* U+002c88: COPTIC CAPITAL LETTER EIE*/ + 0x2c89, /* U+002c89: COPTIC SMALL LETTER EIE*/ + 0x2c8b, /* U+002c8a: COPTIC CAPITAL LETTER SOU*/ + 0x2c8b, /* U+002c8b: COPTIC SMALL LETTER SOU*/ + 0x2c8d, /* U+002c8c: COPTIC CAPITAL LETTER ZATA*/ + 0x2c8d, /* U+002c8d: COPTIC SMALL LETTER ZATA*/ + 0x2c8f, /* U+002c8e: COPTIC CAPITAL LETTER HATE*/ + 0x2c8f, /* U+002c8f: COPTIC SMALL LETTER HATE*/ + 0x2c91, /* U+002c90: COPTIC CAPITAL LETTER THETHE*/ + 0x2c91, /* U+002c91: COPTIC SMALL LETTER THETHE*/ + 0x2c93, /* U+002c92: COPTIC CAPITAL LETTER IAUDA*/ + 0x2c93, /* U+002c93: COPTIC SMALL LETTER IAUDA*/ + 0x2c95, /* U+002c94: COPTIC CAPITAL LETTER KAPA*/ + 0x2c95, /* U+002c95: COPTIC SMALL LETTER KAPA*/ + 0x2c97, /* U+002c96: COPTIC CAPITAL LETTER LAULA*/ + 0x2c97, /* U+002c97: COPTIC SMALL LETTER LAULA*/ + 0x2c99, /* U+002c98: COPTIC CAPITAL LETTER MI*/ + 0x2c99, /* U+002c99: COPTIC SMALL LETTER MI*/ + 0x2c9b, /* U+002c9a: COPTIC CAPITAL LETTER NI*/ + 0x2c9b, /* U+002c9b: COPTIC SMALL LETTER NI*/ + 0x2c9d, /* U+002c9c: COPTIC CAPITAL LETTER KSI*/ + 0x2c9d, /* U+002c9d: COPTIC SMALL LETTER KSI*/ + 0x2c9f, /* U+002c9e: COPTIC CAPITAL LETTER O*/ + 0x2c9f, /* U+002c9f: COPTIC SMALL LETTER O*/ + 0x2ca1, /* U+002ca0: COPTIC CAPITAL LETTER PI*/ + 0x2ca1, /* U+002ca1: COPTIC SMALL LETTER PI*/ + 0x2ca3, /* U+002ca2: COPTIC CAPITAL LETTER RO*/ + 0x2ca3, /* U+002ca3: COPTIC SMALL LETTER RO*/ + 0x2ca5, /* U+002ca4: COPTIC CAPITAL LETTER SIMA*/ + 0x2ca5, /* U+002ca5: COPTIC SMALL LETTER SIMA*/ + 0x2ca7, /* U+002ca6: COPTIC CAPITAL LETTER TAU*/ + 0x2ca7, /* U+002ca7: COPTIC SMALL LETTER TAU*/ + 0x2ca9, /* U+002ca8: COPTIC CAPITAL LETTER UA*/ + 0x2ca9, /* U+002ca9: COPTIC SMALL LETTER UA*/ + 0x2cab, /* U+002caa: COPTIC CAPITAL LETTER FI*/ + 0x2cab, /* U+002cab: COPTIC SMALL LETTER FI*/ + 0x2cad, /* U+002cac: COPTIC CAPITAL LETTER KHI*/ + 0x2cad, /* U+002cad: COPTIC SMALL LETTER KHI*/ + 0x2caf, /* U+002cae: COPTIC CAPITAL LETTER PSI*/ + 0x2caf, /* U+002caf: COPTIC SMALL LETTER PSI*/ + 0x2cb1, /* U+002cb0: COPTIC CAPITAL LETTER OOU*/ + 0x2cb1, /* U+002cb1: COPTIC SMALL LETTER OOU*/ + 0x2cb3, /* U+002cb2: COPTIC CAPITAL LETTER DIALECT-P ALEF*/ + 0x2cb3, /* U+002cb3: COPTIC SMALL LETTER DIALECT-P ALEF*/ + 0x2cb5, /* U+002cb4: COPTIC CAPITAL LETTER OLD COPTIC AIN*/ + 0x2cb5, /* U+002cb5: COPTIC SMALL LETTER OLD COPTIC AIN*/ + 0x2cb7, /* U+002cb6: COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE*/ + 0x2cb7, /* U+002cb7: COPTIC SMALL LETTER CRYPTOGRAMMIC EIE*/ + 0x2cb9, /* U+002cb8: COPTIC CAPITAL LETTER DIALECT-P KAPA*/ + 0x2cb9, /* U+002cb9: COPTIC SMALL LETTER DIALECT-P KAPA*/ + 0x2cbb, /* U+002cba: COPTIC CAPITAL LETTER DIALECT-P NI*/ + 0x2cbb, /* U+002cbb: COPTIC SMALL LETTER DIALECT-P NI*/ + 0x2cbd, /* U+002cbc: COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI*/ + 0x2cbd, /* U+002cbd: COPTIC SMALL LETTER CRYPTOGRAMMIC NI*/ + 0x2cbf, /* U+002cbe: COPTIC CAPITAL LETTER OLD COPTIC OOU*/ + 0x2cbf, /* U+002cbf: COPTIC SMALL LETTER OLD COPTIC OOU*/ + 0x2cc1, /* U+002cc0: COPTIC CAPITAL LETTER SAMPI*/ + 0x2cc1, /* U+002cc1: COPTIC SMALL LETTER SAMPI*/ + 0x2cc3, /* U+002cc2: COPTIC CAPITAL LETTER CROSSED SHEI*/ + 0x2cc3, /* U+002cc3: COPTIC SMALL LETTER CROSSED SHEI*/ + 0x2cc5, /* U+002cc4: COPTIC CAPITAL LETTER OLD COPTIC SHEI*/ + 0x2cc5, /* U+002cc5: COPTIC SMALL LETTER OLD COPTIC SHEI*/ + 0x2cc7, /* U+002cc6: COPTIC CAPITAL LETTER OLD COPTIC ESH*/ + 0x2cc7, /* U+002cc7: COPTIC SMALL LETTER OLD COPTIC ESH*/ + 0x2cc9, /* U+002cc8: COPTIC CAPITAL LETTER AKHMIMIC KHEI*/ + 0x2cc9, /* U+002cc9: COPTIC SMALL LETTER AKHMIMIC KHEI*/ + 0x2ccb, /* U+002cca: COPTIC CAPITAL LETTER DIALECT-P HORI*/ + 0x2ccb, /* U+002ccb: COPTIC SMALL LETTER DIALECT-P HORI*/ + 0x2ccd, /* U+002ccc: COPTIC CAPITAL LETTER OLD COPTIC HORI*/ + 0x2ccd, /* U+002ccd: COPTIC SMALL LETTER OLD COPTIC HORI*/ + 0x2ccf, /* U+002cce: COPTIC CAPITAL LETTER OLD COPTIC HA*/ + 0x2ccf, /* U+002ccf: COPTIC SMALL LETTER OLD COPTIC HA*/ + 0x2cd1, /* U+002cd0: COPTIC CAPITAL LETTER L-SHAPED HA*/ + 0x2cd1, /* U+002cd1: COPTIC SMALL LETTER L-SHAPED HA*/ + 0x2cd3, /* U+002cd2: COPTIC CAPITAL LETTER OLD COPTIC HEI*/ + 0x2cd3, /* U+002cd3: COPTIC SMALL LETTER OLD COPTIC HEI*/ + 0x2cd5, /* U+002cd4: COPTIC CAPITAL LETTER OLD COPTIC HAT*/ + 0x2cd5, /* U+002cd5: COPTIC SMALL LETTER OLD COPTIC HAT*/ + 0x2cd7, /* U+002cd6: COPTIC CAPITAL LETTER OLD COPTIC GANGIA*/ + 0x2cd7, /* U+002cd7: COPTIC SMALL LETTER OLD COPTIC GANGIA*/ + 0x2cd9, /* U+002cd8: COPTIC CAPITAL LETTER OLD COPTIC DJA*/ + 0x2cd9, /* U+002cd9: COPTIC SMALL LETTER OLD COPTIC DJA*/ + 0x2cdb, /* U+002cda: COPTIC CAPITAL LETTER OLD COPTIC SHIMA*/ + 0x2cdb, /* U+002cdb: COPTIC SMALL LETTER OLD COPTIC SHIMA*/ + 0x2cdd, /* U+002cdc: COPTIC CAPITAL LETTER OLD NUBIAN SHIMA*/ + 0x2cdd, /* U+002cdd: COPTIC SMALL LETTER OLD NUBIAN SHIMA*/ + 0x2cdf, /* U+002cde: COPTIC CAPITAL LETTER OLD NUBIAN NGI*/ + 0x2cdf, /* U+002cdf: COPTIC SMALL LETTER OLD NUBIAN NGI*/ + 0x2ce1, /* U+002ce0: COPTIC CAPITAL LETTER OLD NUBIAN NYI*/ + 0x2ce1, /* U+002ce1: COPTIC SMALL LETTER OLD NUBIAN NYI*/ + 0x2ce3, /* U+002ce2: COPTIC CAPITAL LETTER OLD NUBIAN WAU*/ + 0x2ce3, /* U+002ce3: COPTIC SMALL LETTER OLD NUBIAN WAU*/ + 0x2ce4, /* U+002ce4: COPTIC SYMBOL KAI*/ + 0x2ce5, /* U+002ce5: COPTIC SYMBOL MI RO*/ + 0x2ce6, /* U+002ce6: COPTIC SYMBOL PI RO*/ + 0x2ce7, /* U+002ce7: COPTIC SYMBOL STAUROS*/ + 0x2ce8, /* U+002ce8: COPTIC SYMBOL TAU RO*/ + 0x2ce9, /* U+002ce9: COPTIC SYMBOL KHI RO*/ + 0x2cea, /* U+002cea: COPTIC SYMBOL SHIMA SIMA*/ + 0x2cec, /* U+002ceb: COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI*/ + 0x2cec, /* U+002cec: COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI*/ + 0x2cee, /* U+002ced: COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA*/ + 0x2cee, /* U+002cee: COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA*/ + 0x2cef, /* U+002cef: COPTIC COMBINING NI ABOVE*/ + 0x2cf0, /* U+002cf0: COPTIC COMBINING SPIRITUS ASPER*/ + 0x2cf1, /* U+002cf1: COPTIC COMBINING SPIRITUS LENIS*/ + 0x2cf3, /* U+002cf2: COPTIC CAPITAL LETTER BOHAIRIC KHEI*/ +}; + +static const RTUNICP g_afRTUniLower0x00a640[] = +{ + 0xa641, /* U+00a640: CYRILLIC CAPITAL LETTER ZEMLYA*/ + 0xa641, /* U+00a641: CYRILLIC SMALL LETTER ZEMLYA*/ + 0xa643, /* U+00a642: CYRILLIC CAPITAL LETTER DZELO*/ + 0xa643, /* U+00a643: CYRILLIC SMALL LETTER DZELO*/ + 0xa645, /* U+00a644: CYRILLIC CAPITAL LETTER REVERSED DZE*/ + 0xa645, /* U+00a645: CYRILLIC SMALL LETTER REVERSED DZE*/ + 0xa647, /* U+00a646: CYRILLIC CAPITAL LETTER IOTA*/ + 0xa647, /* U+00a647: CYRILLIC SMALL LETTER IOTA*/ + 0xa649, /* U+00a648: CYRILLIC CAPITAL LETTER DJERV*/ + 0xa649, /* U+00a649: CYRILLIC SMALL LETTER DJERV*/ + 0xa64b, /* U+00a64a: CYRILLIC CAPITAL LETTER MONOGRAPH UK*/ + 0xa64b, /* U+00a64b: CYRILLIC SMALL LETTER MONOGRAPH UK*/ + 0xa64d, /* U+00a64c: CYRILLIC CAPITAL LETTER BROAD OMEGA*/ + 0xa64d, /* U+00a64d: CYRILLIC SMALL LETTER BROAD OMEGA*/ + 0xa64f, /* U+00a64e: CYRILLIC CAPITAL LETTER NEUTRAL YER*/ + 0xa64f, /* U+00a64f: CYRILLIC SMALL LETTER NEUTRAL YER*/ + 0xa651, /* U+00a650: CYRILLIC CAPITAL LETTER YERU WITH BACK YER*/ + 0xa651, /* U+00a651: CYRILLIC SMALL LETTER YERU WITH BACK YER*/ + 0xa653, /* U+00a652: CYRILLIC CAPITAL LETTER IOTIFIED YAT*/ + 0xa653, /* U+00a653: CYRILLIC SMALL LETTER IOTIFIED YAT*/ + 0xa655, /* U+00a654: CYRILLIC CAPITAL LETTER REVERSED YU*/ + 0xa655, /* U+00a655: CYRILLIC SMALL LETTER REVERSED YU*/ + 0xa657, /* U+00a656: CYRILLIC CAPITAL LETTER IOTIFIED A*/ + 0xa657, /* U+00a657: CYRILLIC SMALL LETTER IOTIFIED A*/ + 0xa659, /* U+00a658: CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS*/ + 0xa659, /* U+00a659: CYRILLIC SMALL LETTER CLOSED LITTLE YUS*/ + 0xa65b, /* U+00a65a: CYRILLIC CAPITAL LETTER BLENDED YUS*/ + 0xa65b, /* U+00a65b: CYRILLIC SMALL LETTER BLENDED YUS*/ + 0xa65d, /* U+00a65c: CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS*/ + 0xa65d, /* U+00a65d: CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS*/ + 0xa65f, /* U+00a65e: CYRILLIC CAPITAL LETTER YN*/ + 0xa65f, /* U+00a65f: CYRILLIC SMALL LETTER YN*/ + 0xa661, /* U+00a660: CYRILLIC CAPITAL LETTER REVERSED TSE*/ + 0xa661, /* U+00a661: CYRILLIC SMALL LETTER REVERSED TSE*/ + 0xa663, /* U+00a662: CYRILLIC CAPITAL LETTER SOFT DE*/ + 0xa663, /* U+00a663: CYRILLIC SMALL LETTER SOFT DE*/ + 0xa665, /* U+00a664: CYRILLIC CAPITAL LETTER SOFT EL*/ + 0xa665, /* U+00a665: CYRILLIC SMALL LETTER SOFT EL*/ + 0xa667, /* U+00a666: CYRILLIC CAPITAL LETTER SOFT EM*/ + 0xa667, /* U+00a667: CYRILLIC SMALL LETTER SOFT EM*/ + 0xa669, /* U+00a668: CYRILLIC CAPITAL LETTER MONOCULAR O*/ + 0xa669, /* U+00a669: CYRILLIC SMALL LETTER MONOCULAR O*/ + 0xa66b, /* U+00a66a: CYRILLIC CAPITAL LETTER BINOCULAR O*/ + 0xa66b, /* U+00a66b: CYRILLIC SMALL LETTER BINOCULAR O*/ + 0xa66d, /* U+00a66c: CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O*/ + 0xa66d, /* U+00a66d: CYRILLIC SMALL LETTER DOUBLE MONOCULAR O*/ + 0xa66e, /* U+00a66e: CYRILLIC LETTER MULTIOCULAR O*/ + 0xa66f, /* U+00a66f: COMBINING CYRILLIC VZMET*/ + 0xa670, /* U+00a670: COMBINING CYRILLIC TEN MILLIONS SIGN*/ + 0xa671, /* U+00a671: COMBINING CYRILLIC HUNDRED MILLIONS SIGN*/ + 0xa672, /* U+00a672: COMBINING CYRILLIC THOUSAND MILLIONS SIGN*/ + 0xa673, /* U+00a673: SLAVONIC ASTERISK*/ + 0xa674, /* U+00a674: COMBINING CYRILLIC LETTER UKRAINIAN IE*/ + 0xa675, /* U+00a675: COMBINING CYRILLIC LETTER I*/ + 0xa676, /* U+00a676: COMBINING CYRILLIC LETTER YI*/ + 0xa677, /* U+00a677: COMBINING CYRILLIC LETTER U*/ + 0xa678, /* U+00a678: COMBINING CYRILLIC LETTER HARD SIGN*/ + 0xa679, /* U+00a679: COMBINING CYRILLIC LETTER YERU*/ + 0xa67a, /* U+00a67a: COMBINING CYRILLIC LETTER SOFT SIGN*/ + 0xa67b, /* U+00a67b: COMBINING CYRILLIC LETTER OMEGA*/ + 0xa67c, /* U+00a67c: COMBINING CYRILLIC KAVYKA*/ + 0xa67d, /* U+00a67d: COMBINING CYRILLIC PAYEROK*/ + 0xa67e, /* U+00a67e: CYRILLIC KAVYKA*/ + 0xa67f, /* U+00a67f: CYRILLIC PAYEROK*/ + 0xa681, /* U+00a680: CYRILLIC CAPITAL LETTER DWE*/ + 0xa681, /* U+00a681: CYRILLIC SMALL LETTER DWE*/ + 0xa683, /* U+00a682: CYRILLIC CAPITAL LETTER DZWE*/ + 0xa683, /* U+00a683: CYRILLIC SMALL LETTER DZWE*/ + 0xa685, /* U+00a684: CYRILLIC CAPITAL LETTER ZHWE*/ + 0xa685, /* U+00a685: CYRILLIC SMALL LETTER ZHWE*/ + 0xa687, /* U+00a686: CYRILLIC CAPITAL LETTER CCHE*/ + 0xa687, /* U+00a687: CYRILLIC SMALL LETTER CCHE*/ + 0xa689, /* U+00a688: CYRILLIC CAPITAL LETTER DZZE*/ + 0xa689, /* U+00a689: CYRILLIC SMALL LETTER DZZE*/ + 0xa68b, /* U+00a68a: CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK*/ + 0xa68b, /* U+00a68b: CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK*/ + 0xa68d, /* U+00a68c: CYRILLIC CAPITAL LETTER TWE*/ + 0xa68d, /* U+00a68d: CYRILLIC SMALL LETTER TWE*/ + 0xa68f, /* U+00a68e: CYRILLIC CAPITAL LETTER TSWE*/ + 0xa68f, /* U+00a68f: CYRILLIC SMALL LETTER TSWE*/ + 0xa691, /* U+00a690: CYRILLIC CAPITAL LETTER TSSE*/ + 0xa691, /* U+00a691: CYRILLIC SMALL LETTER TSSE*/ + 0xa693, /* U+00a692: CYRILLIC CAPITAL LETTER TCHE*/ + 0xa693, /* U+00a693: CYRILLIC SMALL LETTER TCHE*/ + 0xa695, /* U+00a694: CYRILLIC CAPITAL LETTER HWE*/ + 0xa695, /* U+00a695: CYRILLIC SMALL LETTER HWE*/ + 0xa697, /* U+00a696: CYRILLIC CAPITAL LETTER SHWE*/ + 0xa697, /* U+00a697: CYRILLIC SMALL LETTER SHWE*/ + 0xa698, /* U+00a698: */ + 0xa699, /* U+00a699: */ + 0xa69a, /* U+00a69a: */ + 0xa69b, /* U+00a69b: */ + 0xa69c, /* U+00a69c: */ + 0xa69d, /* U+00a69d: */ + 0xa69e, /* U+00a69e: */ + 0xa69f, /* U+00a69f: COMBINING CYRILLIC LETTER IOTIFIED E*/ + 0xa6a0, /* U+00a6a0: BAMUM LETTER A*/ + 0xa6a1, /* U+00a6a1: BAMUM LETTER KA*/ + 0xa6a2, /* U+00a6a2: BAMUM LETTER U*/ + 0xa6a3, /* U+00a6a3: BAMUM LETTER KU*/ + 0xa6a4, /* U+00a6a4: BAMUM LETTER EE*/ + 0xa6a5, /* U+00a6a5: BAMUM LETTER REE*/ + 0xa6a6, /* U+00a6a6: BAMUM LETTER TAE*/ + 0xa6a7, /* U+00a6a7: BAMUM LETTER O*/ + 0xa6a8, /* U+00a6a8: BAMUM LETTER NYI*/ + 0xa6a9, /* U+00a6a9: BAMUM LETTER I*/ + 0xa6aa, /* U+00a6aa: BAMUM LETTER LA*/ + 0xa6ab, /* U+00a6ab: BAMUM LETTER PA*/ + 0xa6ac, /* U+00a6ac: BAMUM LETTER RII*/ + 0xa6ad, /* U+00a6ad: BAMUM LETTER RIEE*/ + 0xa6ae, /* U+00a6ae: BAMUM LETTER LEEEE*/ + 0xa6af, /* U+00a6af: BAMUM LETTER MEEEE*/ + 0xa6b0, /* U+00a6b0: BAMUM LETTER TAA*/ + 0xa6b1, /* U+00a6b1: BAMUM LETTER NDAA*/ + 0xa6b2, /* U+00a6b2: BAMUM LETTER NJAEM*/ + 0xa6b3, /* U+00a6b3: BAMUM LETTER M*/ + 0xa6b4, /* U+00a6b4: BAMUM LETTER SUU*/ + 0xa6b5, /* U+00a6b5: BAMUM LETTER MU*/ + 0xa6b6, /* U+00a6b6: BAMUM LETTER SHII*/ + 0xa6b7, /* U+00a6b7: BAMUM LETTER SI*/ + 0xa6b8, /* U+00a6b8: BAMUM LETTER SHEUX*/ + 0xa6b9, /* U+00a6b9: BAMUM LETTER SEUX*/ + 0xa6ba, /* U+00a6ba: BAMUM LETTER KYEE*/ + 0xa6bb, /* U+00a6bb: BAMUM LETTER KET*/ + 0xa6bc, /* U+00a6bc: BAMUM LETTER NUAE*/ + 0xa6bd, /* U+00a6bd: BAMUM LETTER NU*/ + 0xa6be, /* U+00a6be: BAMUM LETTER NJUAE*/ + 0xa6bf, /* U+00a6bf: BAMUM LETTER YOQ*/ + 0xa6c0, /* U+00a6c0: BAMUM LETTER SHU*/ + 0xa6c1, /* U+00a6c1: BAMUM LETTER YUQ*/ + 0xa6c2, /* U+00a6c2: BAMUM LETTER YA*/ + 0xa6c3, /* U+00a6c3: BAMUM LETTER NSHA*/ + 0xa6c4, /* U+00a6c4: BAMUM LETTER KEUX*/ + 0xa6c5, /* U+00a6c5: BAMUM LETTER PEUX*/ + 0xa6c6, /* U+00a6c6: BAMUM LETTER NJEE*/ + 0xa6c7, /* U+00a6c7: BAMUM LETTER NTEE*/ + 0xa6c8, /* U+00a6c8: BAMUM LETTER PUE*/ + 0xa6c9, /* U+00a6c9: BAMUM LETTER WUE*/ + 0xa6ca, /* U+00a6ca: BAMUM LETTER PEE*/ + 0xa6cb, /* U+00a6cb: BAMUM LETTER FEE*/ + 0xa6cc, /* U+00a6cc: BAMUM LETTER RU*/ + 0xa6cd, /* U+00a6cd: BAMUM LETTER LU*/ + 0xa6ce, /* U+00a6ce: BAMUM LETTER MI*/ + 0xa6cf, /* U+00a6cf: BAMUM LETTER NI*/ + 0xa6d0, /* U+00a6d0: BAMUM LETTER REUX*/ + 0xa6d1, /* U+00a6d1: BAMUM LETTER RAE*/ + 0xa6d2, /* U+00a6d2: BAMUM LETTER KEN*/ + 0xa6d3, /* U+00a6d3: BAMUM LETTER NGKWAEN*/ + 0xa6d4, /* U+00a6d4: BAMUM LETTER NGGA*/ + 0xa6d5, /* U+00a6d5: BAMUM LETTER NGA*/ + 0xa6d6, /* U+00a6d6: BAMUM LETTER SHO*/ + 0xa6d7, /* U+00a6d7: BAMUM LETTER PUAE*/ + 0xa6d8, /* U+00a6d8: BAMUM LETTER FU*/ + 0xa6d9, /* U+00a6d9: BAMUM LETTER FOM*/ + 0xa6da, /* U+00a6da: BAMUM LETTER WA*/ + 0xa6db, /* U+00a6db: BAMUM LETTER NA*/ + 0xa6dc, /* U+00a6dc: BAMUM LETTER LI*/ + 0xa6dd, /* U+00a6dd: BAMUM LETTER PI*/ + 0xa6de, /* U+00a6de: BAMUM LETTER LOQ*/ + 0xa6df, /* U+00a6df: BAMUM LETTER KO*/ + 0xa6e0, /* U+00a6e0: BAMUM LETTER MBEN*/ + 0xa6e1, /* U+00a6e1: BAMUM LETTER REN*/ + 0xa6e2, /* U+00a6e2: BAMUM LETTER MEN*/ + 0xa6e3, /* U+00a6e3: BAMUM LETTER MA*/ + 0xa6e4, /* U+00a6e4: BAMUM LETTER TI*/ + 0xa6e5, /* U+00a6e5: BAMUM LETTER KI*/ + 0xa6e6, /* U+00a6e6: BAMUM LETTER MO*/ + 0xa6e7, /* U+00a6e7: BAMUM LETTER MBAA*/ + 0xa6e8, /* U+00a6e8: BAMUM LETTER TET*/ + 0xa6e9, /* U+00a6e9: BAMUM LETTER KPA*/ + 0xa6ea, /* U+00a6ea: BAMUM LETTER TEN*/ + 0xa6eb, /* U+00a6eb: BAMUM LETTER NTUU*/ + 0xa6ec, /* U+00a6ec: BAMUM LETTER SAMBA*/ + 0xa6ed, /* U+00a6ed: BAMUM LETTER FAAMAE*/ + 0xa6ee, /* U+00a6ee: BAMUM LETTER KOVUU*/ + 0xa6ef, /* U+00a6ef: BAMUM LETTER KOGHOM*/ + 0xa6f0, /* U+00a6f0: BAMUM COMBINING MARK KOQNDON*/ + 0xa6f1, /* U+00a6f1: BAMUM COMBINING MARK TUKWENTIS*/ + 0xa6f2, /* U+00a6f2: BAMUM NJAEMLI*/ + 0xa6f3, /* U+00a6f3: BAMUM FULL STOP*/ + 0xa6f4, /* U+00a6f4: BAMUM COLON*/ + 0xa6f5, /* U+00a6f5: BAMUM COMMA*/ + 0xa6f6, /* U+00a6f6: BAMUM SEMICOLON*/ + 0xa6f7, /* U+00a6f7: BAMUM QUESTION MARK*/ + 0xa6f8, /* U+00a6f8: */ + 0xa6f9, /* U+00a6f9: */ + 0xa6fa, /* U+00a6fa: */ + 0xa6fb, /* U+00a6fb: */ + 0xa6fc, /* U+00a6fc: */ + 0xa6fd, /* U+00a6fd: */ + 0xa6fe, /* U+00a6fe: */ + 0xa6ff, /* U+00a6ff: */ + 0xa700, /* U+00a700: MODIFIER LETTER CHINESE TONE YIN PING*/ + 0xa701, /* U+00a701: MODIFIER LETTER CHINESE TONE YANG PING*/ + 0xa702, /* U+00a702: MODIFIER LETTER CHINESE TONE YIN SHANG*/ + 0xa703, /* U+00a703: MODIFIER LETTER CHINESE TONE YANG SHANG*/ + 0xa704, /* U+00a704: MODIFIER LETTER CHINESE TONE YIN QU*/ + 0xa705, /* U+00a705: MODIFIER LETTER CHINESE TONE YANG QU*/ + 0xa706, /* U+00a706: MODIFIER LETTER CHINESE TONE YIN RU*/ + 0xa707, /* U+00a707: MODIFIER LETTER CHINESE TONE YANG RU*/ + 0xa708, /* U+00a708: MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR*/ + 0xa709, /* U+00a709: MODIFIER LETTER HIGH DOTTED TONE BAR*/ + 0xa70a, /* U+00a70a: MODIFIER LETTER MID DOTTED TONE BAR*/ + 0xa70b, /* U+00a70b: MODIFIER LETTER LOW DOTTED TONE BAR*/ + 0xa70c, /* U+00a70c: MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR*/ + 0xa70d, /* U+00a70d: MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR*/ + 0xa70e, /* U+00a70e: MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR*/ + 0xa70f, /* U+00a70f: MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR*/ + 0xa710, /* U+00a710: MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR*/ + 0xa711, /* U+00a711: MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR*/ + 0xa712, /* U+00a712: MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR*/ + 0xa713, /* U+00a713: MODIFIER LETTER HIGH LEFT-STEM TONE BAR*/ + 0xa714, /* U+00a714: MODIFIER LETTER MID LEFT-STEM TONE BAR*/ + 0xa715, /* U+00a715: MODIFIER LETTER LOW LEFT-STEM TONE BAR*/ + 0xa716, /* U+00a716: MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR*/ + 0xa717, /* U+00a717: MODIFIER LETTER DOT VERTICAL BAR*/ + 0xa718, /* U+00a718: MODIFIER LETTER DOT SLASH*/ + 0xa719, /* U+00a719: MODIFIER LETTER DOT HORIZONTAL BAR*/ + 0xa71a, /* U+00a71a: MODIFIER LETTER LOWER RIGHT CORNER ANGLE*/ + 0xa71b, /* U+00a71b: MODIFIER LETTER RAISED UP ARROW*/ + 0xa71c, /* U+00a71c: MODIFIER LETTER RAISED DOWN ARROW*/ + 0xa71d, /* U+00a71d: MODIFIER LETTER RAISED EXCLAMATION MARK*/ + 0xa71e, /* U+00a71e: MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK*/ + 0xa71f, /* U+00a71f: MODIFIER LETTER LOW INVERTED EXCLAMATION MARK*/ + 0xa720, /* U+00a720: MODIFIER LETTER STRESS AND HIGH TONE*/ + 0xa721, /* U+00a721: MODIFIER LETTER STRESS AND LOW TONE*/ + 0xa723, /* U+00a722: LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF*/ + 0xa723, /* U+00a723: LATIN SMALL LETTER EGYPTOLOGICAL ALEF*/ + 0xa725, /* U+00a724: LATIN CAPITAL LETTER EGYPTOLOGICAL AIN*/ + 0xa725, /* U+00a725: LATIN SMALL LETTER EGYPTOLOGICAL AIN*/ + 0xa727, /* U+00a726: LATIN CAPITAL LETTER HENG*/ + 0xa727, /* U+00a727: LATIN SMALL LETTER HENG*/ + 0xa729, /* U+00a728: LATIN CAPITAL LETTER TZ*/ + 0xa729, /* U+00a729: LATIN SMALL LETTER TZ*/ + 0xa72b, /* U+00a72a: LATIN CAPITAL LETTER TRESILLO*/ + 0xa72b, /* U+00a72b: LATIN SMALL LETTER TRESILLO*/ + 0xa72d, /* U+00a72c: LATIN CAPITAL LETTER CUATRILLO*/ + 0xa72d, /* U+00a72d: LATIN SMALL LETTER CUATRILLO*/ + 0xa72f, /* U+00a72e: LATIN CAPITAL LETTER CUATRILLO WITH COMMA*/ + 0xa72f, /* U+00a72f: LATIN SMALL LETTER CUATRILLO WITH COMMA*/ + 0xa730, /* U+00a730: LATIN LETTER SMALL CAPITAL F*/ + 0xa731, /* U+00a731: LATIN LETTER SMALL CAPITAL S*/ + 0xa733, /* U+00a732: LATIN CAPITAL LETTER AA*/ + 0xa733, /* U+00a733: LATIN SMALL LETTER AA*/ + 0xa735, /* U+00a734: LATIN CAPITAL LETTER AO*/ + 0xa735, /* U+00a735: LATIN SMALL LETTER AO*/ + 0xa737, /* U+00a736: LATIN CAPITAL LETTER AU*/ + 0xa737, /* U+00a737: LATIN SMALL LETTER AU*/ + 0xa739, /* U+00a738: LATIN CAPITAL LETTER AV*/ + 0xa739, /* U+00a739: LATIN SMALL LETTER AV*/ + 0xa73b, /* U+00a73a: LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR*/ + 0xa73b, /* U+00a73b: LATIN SMALL LETTER AV WITH HORIZONTAL BAR*/ + 0xa73d, /* U+00a73c: LATIN CAPITAL LETTER AY*/ + 0xa73d, /* U+00a73d: LATIN SMALL LETTER AY*/ + 0xa73f, /* U+00a73e: LATIN CAPITAL LETTER REVERSED C WITH DOT*/ + 0xa73f, /* U+00a73f: LATIN SMALL LETTER REVERSED C WITH DOT*/ + 0xa741, /* U+00a740: LATIN CAPITAL LETTER K WITH STROKE*/ + 0xa741, /* U+00a741: LATIN SMALL LETTER K WITH STROKE*/ + 0xa743, /* U+00a742: LATIN CAPITAL LETTER K WITH DIAGONAL STROKE*/ + 0xa743, /* U+00a743: LATIN SMALL LETTER K WITH DIAGONAL STROKE*/ + 0xa745, /* U+00a744: LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE*/ + 0xa745, /* U+00a745: LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE*/ + 0xa747, /* U+00a746: LATIN CAPITAL LETTER BROKEN L*/ + 0xa747, /* U+00a747: LATIN SMALL LETTER BROKEN L*/ + 0xa749, /* U+00a748: LATIN CAPITAL LETTER L WITH HIGH STROKE*/ + 0xa749, /* U+00a749: LATIN SMALL LETTER L WITH HIGH STROKE*/ + 0xa74b, /* U+00a74a: LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY*/ + 0xa74b, /* U+00a74b: LATIN SMALL LETTER O WITH LONG STROKE OVERLAY*/ + 0xa74d, /* U+00a74c: LATIN CAPITAL LETTER O WITH LOOP*/ + 0xa74d, /* U+00a74d: LATIN SMALL LETTER O WITH LOOP*/ + 0xa74f, /* U+00a74e: LATIN CAPITAL LETTER OO*/ + 0xa74f, /* U+00a74f: LATIN SMALL LETTER OO*/ + 0xa751, /* U+00a750: LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER*/ + 0xa751, /* U+00a751: LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER*/ + 0xa753, /* U+00a752: LATIN CAPITAL LETTER P WITH FLOURISH*/ + 0xa753, /* U+00a753: LATIN SMALL LETTER P WITH FLOURISH*/ + 0xa755, /* U+00a754: LATIN CAPITAL LETTER P WITH SQUIRREL TAIL*/ + 0xa755, /* U+00a755: LATIN SMALL LETTER P WITH SQUIRREL TAIL*/ + 0xa757, /* U+00a756: LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER*/ + 0xa757, /* U+00a757: LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER*/ + 0xa759, /* U+00a758: LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE*/ + 0xa759, /* U+00a759: LATIN SMALL LETTER Q WITH DIAGONAL STROKE*/ + 0xa75b, /* U+00a75a: LATIN CAPITAL LETTER R ROTUNDA*/ + 0xa75b, /* U+00a75b: LATIN SMALL LETTER R ROTUNDA*/ + 0xa75d, /* U+00a75c: LATIN CAPITAL LETTER RUM ROTUNDA*/ + 0xa75d, /* U+00a75d: LATIN SMALL LETTER RUM ROTUNDA*/ + 0xa75f, /* U+00a75e: LATIN CAPITAL LETTER V WITH DIAGONAL STROKE*/ + 0xa75f, /* U+00a75f: LATIN SMALL LETTER V WITH DIAGONAL STROKE*/ + 0xa761, /* U+00a760: LATIN CAPITAL LETTER VY*/ + 0xa761, /* U+00a761: LATIN SMALL LETTER VY*/ + 0xa763, /* U+00a762: LATIN CAPITAL LETTER VISIGOTHIC Z*/ + 0xa763, /* U+00a763: LATIN SMALL LETTER VISIGOTHIC Z*/ + 0xa765, /* U+00a764: LATIN CAPITAL LETTER THORN WITH STROKE*/ + 0xa765, /* U+00a765: LATIN SMALL LETTER THORN WITH STROKE*/ + 0xa767, /* U+00a766: LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER*/ + 0xa767, /* U+00a767: LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER*/ + 0xa769, /* U+00a768: LATIN CAPITAL LETTER VEND*/ + 0xa769, /* U+00a769: LATIN SMALL LETTER VEND*/ + 0xa76b, /* U+00a76a: LATIN CAPITAL LETTER ET*/ + 0xa76b, /* U+00a76b: LATIN SMALL LETTER ET*/ + 0xa76d, /* U+00a76c: LATIN CAPITAL LETTER IS*/ + 0xa76d, /* U+00a76d: LATIN SMALL LETTER IS*/ + 0xa76f, /* U+00a76e: LATIN CAPITAL LETTER CON*/ + 0xa76f, /* U+00a76f: LATIN SMALL LETTER CON*/ + 0xa770, /* U+00a770: MODIFIER LETTER US*/ + 0xa771, /* U+00a771: LATIN SMALL LETTER DUM*/ + 0xa772, /* U+00a772: LATIN SMALL LETTER LUM*/ + 0xa773, /* U+00a773: LATIN SMALL LETTER MUM*/ + 0xa774, /* U+00a774: LATIN SMALL LETTER NUM*/ + 0xa775, /* U+00a775: LATIN SMALL LETTER RUM*/ + 0xa776, /* U+00a776: LATIN LETTER SMALL CAPITAL RUM*/ + 0xa777, /* U+00a777: LATIN SMALL LETTER TUM*/ + 0xa778, /* U+00a778: LATIN SMALL LETTER UM*/ + 0xa77a, /* U+00a779: LATIN CAPITAL LETTER INSULAR D*/ + 0xa77a, /* U+00a77a: LATIN SMALL LETTER INSULAR D*/ + 0xa77c, /* U+00a77b: LATIN CAPITAL LETTER INSULAR F*/ + 0xa77c, /* U+00a77c: LATIN SMALL LETTER INSULAR F*/ + 0x1d79, /* U+00a77d: LATIN CAPITAL LETTER INSULAR G*/ + 0xa77f, /* U+00a77e: LATIN CAPITAL LETTER TURNED INSULAR G*/ + 0xa77f, /* U+00a77f: LATIN SMALL LETTER TURNED INSULAR G*/ + 0xa781, /* U+00a780: LATIN CAPITAL LETTER TURNED L*/ + 0xa781, /* U+00a781: LATIN SMALL LETTER TURNED L*/ + 0xa783, /* U+00a782: LATIN CAPITAL LETTER INSULAR R*/ + 0xa783, /* U+00a783: LATIN SMALL LETTER INSULAR R*/ + 0xa785, /* U+00a784: LATIN CAPITAL LETTER INSULAR S*/ + 0xa785, /* U+00a785: LATIN SMALL LETTER INSULAR S*/ + 0xa787, /* U+00a786: LATIN CAPITAL LETTER INSULAR T*/ + 0xa787, /* U+00a787: LATIN SMALL LETTER INSULAR T*/ + 0xa788, /* U+00a788: MODIFIER LETTER LOW CIRCUMFLEX ACCENT*/ + 0xa789, /* U+00a789: MODIFIER LETTER COLON*/ + 0xa78a, /* U+00a78a: MODIFIER LETTER SHORT EQUALS SIGN*/ + 0xa78c, /* U+00a78b: LATIN CAPITAL LETTER SALTILLO*/ + 0xa78c, /* U+00a78c: LATIN SMALL LETTER SALTILLO*/ + 0x265, /* U+00a78d: LATIN CAPITAL LETTER TURNED H*/ + 0xa78e, /* U+00a78e: LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT*/ + 0xa78f, /* U+00a78f: */ + 0xa791, /* U+00a790: LATIN CAPITAL LETTER N WITH DESCENDER*/ + 0xa791, /* U+00a791: LATIN SMALL LETTER N WITH DESCENDER*/ + 0xa793, /* U+00a792: LATIN CAPITAL LETTER C WITH BAR*/ + 0xa793, /* U+00a793: LATIN SMALL LETTER C WITH BAR*/ + 0xa794, /* U+00a794: */ + 0xa795, /* U+00a795: */ + 0xa796, /* U+00a796: */ + 0xa797, /* U+00a797: */ + 0xa798, /* U+00a798: */ + 0xa799, /* U+00a799: */ + 0xa79a, /* U+00a79a: */ + 0xa79b, /* U+00a79b: */ + 0xa79c, /* U+00a79c: */ + 0xa79d, /* U+00a79d: */ + 0xa79e, /* U+00a79e: */ + 0xa79f, /* U+00a79f: */ + 0xa7a1, /* U+00a7a0: LATIN CAPITAL LETTER G WITH OBLIQUE STROKE*/ + 0xa7a1, /* U+00a7a1: LATIN SMALL LETTER G WITH OBLIQUE STROKE*/ + 0xa7a3, /* U+00a7a2: LATIN CAPITAL LETTER K WITH OBLIQUE STROKE*/ + 0xa7a3, /* U+00a7a3: LATIN SMALL LETTER K WITH OBLIQUE STROKE*/ + 0xa7a5, /* U+00a7a4: LATIN CAPITAL LETTER N WITH OBLIQUE STROKE*/ + 0xa7a5, /* U+00a7a5: LATIN SMALL LETTER N WITH OBLIQUE STROKE*/ + 0xa7a7, /* U+00a7a6: LATIN CAPITAL LETTER R WITH OBLIQUE STROKE*/ + 0xa7a7, /* U+00a7a7: LATIN SMALL LETTER R WITH OBLIQUE STROKE*/ + 0xa7a9, /* U+00a7a8: LATIN CAPITAL LETTER S WITH OBLIQUE STROKE*/ + 0xa7a9, /* U+00a7a9: LATIN SMALL LETTER S WITH OBLIQUE STROKE*/ + 0x266, /* U+00a7aa: LATIN CAPITAL LETTER H WITH HOOK*/ +}; + +static const RTUNICP g_afRTUniLower0x00ff21[] = +{ + 0xff41, /* U+00ff21: FULLWIDTH LATIN CAPITAL LETTER A*/ + 0xff42, /* U+00ff22: FULLWIDTH LATIN CAPITAL LETTER B*/ + 0xff43, /* U+00ff23: FULLWIDTH LATIN CAPITAL LETTER C*/ + 0xff44, /* U+00ff24: FULLWIDTH LATIN CAPITAL LETTER D*/ + 0xff45, /* U+00ff25: FULLWIDTH LATIN CAPITAL LETTER E*/ + 0xff46, /* U+00ff26: FULLWIDTH LATIN CAPITAL LETTER F*/ + 0xff47, /* U+00ff27: FULLWIDTH LATIN CAPITAL LETTER G*/ + 0xff48, /* U+00ff28: FULLWIDTH LATIN CAPITAL LETTER H*/ + 0xff49, /* U+00ff29: FULLWIDTH LATIN CAPITAL LETTER I*/ + 0xff4a, /* U+00ff2a: FULLWIDTH LATIN CAPITAL LETTER J*/ + 0xff4b, /* U+00ff2b: FULLWIDTH LATIN CAPITAL LETTER K*/ + 0xff4c, /* U+00ff2c: FULLWIDTH LATIN CAPITAL LETTER L*/ + 0xff4d, /* U+00ff2d: FULLWIDTH LATIN CAPITAL LETTER M*/ + 0xff4e, /* U+00ff2e: FULLWIDTH LATIN CAPITAL LETTER N*/ + 0xff4f, /* U+00ff2f: FULLWIDTH LATIN CAPITAL LETTER O*/ + 0xff50, /* U+00ff30: FULLWIDTH LATIN CAPITAL LETTER P*/ + 0xff51, /* U+00ff31: FULLWIDTH LATIN CAPITAL LETTER Q*/ + 0xff52, /* U+00ff32: FULLWIDTH LATIN CAPITAL LETTER R*/ + 0xff53, /* U+00ff33: FULLWIDTH LATIN CAPITAL LETTER S*/ + 0xff54, /* U+00ff34: FULLWIDTH LATIN CAPITAL LETTER T*/ + 0xff55, /* U+00ff35: FULLWIDTH LATIN CAPITAL LETTER U*/ + 0xff56, /* U+00ff36: FULLWIDTH LATIN CAPITAL LETTER V*/ + 0xff57, /* U+00ff37: FULLWIDTH LATIN CAPITAL LETTER W*/ + 0xff58, /* U+00ff38: FULLWIDTH LATIN CAPITAL LETTER X*/ + 0xff59, /* U+00ff39: FULLWIDTH LATIN CAPITAL LETTER Y*/ + 0xff5a, /* U+00ff3a: FULLWIDTH LATIN CAPITAL LETTER Z*/ +}; + +static const RTUNICP g_afRTUniLower0x010400[] = +{ + 0x10428, /* U+010400: DESERET CAPITAL LETTER LONG I*/ + 0x10429, /* U+010401: DESERET CAPITAL LETTER LONG E*/ + 0x1042a, /* U+010402: DESERET CAPITAL LETTER LONG A*/ + 0x1042b, /* U+010403: DESERET CAPITAL LETTER LONG AH*/ + 0x1042c, /* U+010404: DESERET CAPITAL LETTER LONG O*/ + 0x1042d, /* U+010405: DESERET CAPITAL LETTER LONG OO*/ + 0x1042e, /* U+010406: DESERET CAPITAL LETTER SHORT I*/ + 0x1042f, /* U+010407: DESERET CAPITAL LETTER SHORT E*/ + 0x10430, /* U+010408: DESERET CAPITAL LETTER SHORT A*/ + 0x10431, /* U+010409: DESERET CAPITAL LETTER SHORT AH*/ + 0x10432, /* U+01040a: DESERET CAPITAL LETTER SHORT O*/ + 0x10433, /* U+01040b: DESERET CAPITAL LETTER SHORT OO*/ + 0x10434, /* U+01040c: DESERET CAPITAL LETTER AY*/ + 0x10435, /* U+01040d: DESERET CAPITAL LETTER OW*/ + 0x10436, /* U+01040e: DESERET CAPITAL LETTER WU*/ + 0x10437, /* U+01040f: DESERET CAPITAL LETTER YEE*/ + 0x10438, /* U+010410: DESERET CAPITAL LETTER H*/ + 0x10439, /* U+010411: DESERET CAPITAL LETTER PEE*/ + 0x1043a, /* U+010412: DESERET CAPITAL LETTER BEE*/ + 0x1043b, /* U+010413: DESERET CAPITAL LETTER TEE*/ + 0x1043c, /* U+010414: DESERET CAPITAL LETTER DEE*/ + 0x1043d, /* U+010415: DESERET CAPITAL LETTER CHEE*/ + 0x1043e, /* U+010416: DESERET CAPITAL LETTER JEE*/ + 0x1043f, /* U+010417: DESERET CAPITAL LETTER KAY*/ + 0x10440, /* U+010418: DESERET CAPITAL LETTER GAY*/ + 0x10441, /* U+010419: DESERET CAPITAL LETTER EF*/ + 0x10442, /* U+01041a: DESERET CAPITAL LETTER VEE*/ + 0x10443, /* U+01041b: DESERET CAPITAL LETTER ETH*/ + 0x10444, /* U+01041c: DESERET CAPITAL LETTER THEE*/ + 0x10445, /* U+01041d: DESERET CAPITAL LETTER ES*/ + 0x10446, /* U+01041e: DESERET CAPITAL LETTER ZEE*/ + 0x10447, /* U+01041f: DESERET CAPITAL LETTER ESH*/ + 0x10448, /* U+010420: DESERET CAPITAL LETTER ZHEE*/ + 0x10449, /* U+010421: DESERET CAPITAL LETTER ER*/ + 0x1044a, /* U+010422: DESERET CAPITAL LETTER EL*/ + 0x1044b, /* U+010423: DESERET CAPITAL LETTER EM*/ + 0x1044c, /* U+010424: DESERET CAPITAL LETTER EN*/ + 0x1044d, /* U+010425: DESERET CAPITAL LETTER ENG*/ + 0x1044e, /* U+010426: DESERET CAPITAL LETTER OI*/ + 0x1044f, /* U+010427: DESERET CAPITAL LETTER EW*/ +}; + + +RT_DECL_DATA_CONST(const RTUNICASERANGE) g_aRTUniLowerRanges[] = +{ + { 0x000000, 0x000557, &g_afRTUniLower0x000000[0] }, + { 0x0010a0, 0x0010ce, &g_afRTUniLower0x0010a0[0] }, + { 0x001e00, 0x0024d0, &g_afRTUniLower0x001e00[0] }, + { 0x002c00, 0x002cf3, &g_afRTUniLower0x002c00[0] }, + { 0x00a640, 0x00a7ab, &g_afRTUniLower0x00a640[0] }, + { 0x00ff21, 0x00ff3b, &g_afRTUniLower0x00ff21[0] }, + { 0x010400, 0x010428, &g_afRTUniLower0x010400[0] }, + { ~(RTUNICP)0, ~(RTUNICP)0, NULL } +}; + diff --git a/src/VBox/Runtime/common/string/unidata-upper.cpp b/src/VBox/Runtime/common/string/unidata-upper.cpp new file mode 100644 index 00000000..12ca6f30 --- /dev/null +++ b/src/VBox/Runtime/common/string/unidata-upper.cpp @@ -0,0 +1,4068 @@ +/* $Id: unidata-upper.cpp $ */ +/** @file + * IPRT - Unicode Tables. + * + * Automatically Generated from d:\src\unicode\6.3.0\ + * by ..\..\..\..\..\out\win.amd64\debug\obj\uniread\uniread.exe (May 22 2014 19:07:40) + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + +#include <iprt/uni.h> + +static const RTUNICP g_afRTUniUpper0x000000[] = +{ + 0x00, /* U+000000: <control>*/ + 0x01, /* U+000001: <control>*/ + 0x02, /* U+000002: <control>*/ + 0x03, /* U+000003: <control>*/ + 0x04, /* U+000004: <control>*/ + 0x05, /* U+000005: <control>*/ + 0x06, /* U+000006: <control>*/ + 0x07, /* U+000007: <control>*/ + 0x08, /* U+000008: <control>*/ + 0x09, /* U+000009: <control>*/ + 0x0a, /* U+00000a: <control>*/ + 0x0b, /* U+00000b: <control>*/ + 0x0c, /* U+00000c: <control>*/ + 0x0d, /* U+00000d: <control>*/ + 0x0e, /* U+00000e: <control>*/ + 0x0f, /* U+00000f: <control>*/ + 0x10, /* U+000010: <control>*/ + 0x11, /* U+000011: <control>*/ + 0x12, /* U+000012: <control>*/ + 0x13, /* U+000013: <control>*/ + 0x14, /* U+000014: <control>*/ + 0x15, /* U+000015: <control>*/ + 0x16, /* U+000016: <control>*/ + 0x17, /* U+000017: <control>*/ + 0x18, /* U+000018: <control>*/ + 0x19, /* U+000019: <control>*/ + 0x1a, /* U+00001a: <control>*/ + 0x1b, /* U+00001b: <control>*/ + 0x1c, /* U+00001c: <control>*/ + 0x1d, /* U+00001d: <control>*/ + 0x1e, /* U+00001e: <control>*/ + 0x1f, /* U+00001f: <control>*/ + 0x20, /* U+000020: SPACE*/ + 0x21, /* U+000021: EXCLAMATION MARK*/ + 0x22, /* U+000022: QUOTATION MARK*/ + 0x23, /* U+000023: NUMBER SIGN*/ + 0x24, /* U+000024: DOLLAR SIGN*/ + 0x25, /* U+000025: PERCENT SIGN*/ + 0x26, /* U+000026: AMPERSAND*/ + 0x27, /* U+000027: APOSTROPHE*/ + 0x28, /* U+000028: LEFT PARENTHESIS*/ + 0x29, /* U+000029: RIGHT PARENTHESIS*/ + 0x2a, /* U+00002a: ASTERISK*/ + 0x2b, /* U+00002b: PLUS SIGN*/ + 0x2c, /* U+00002c: COMMA*/ + 0x2d, /* U+00002d: HYPHEN-MINUS*/ + 0x2e, /* U+00002e: FULL STOP*/ + 0x2f, /* U+00002f: SOLIDUS*/ + 0x30, /* U+000030: DIGIT ZERO*/ + 0x31, /* U+000031: DIGIT ONE*/ + 0x32, /* U+000032: DIGIT TWO*/ + 0x33, /* U+000033: DIGIT THREE*/ + 0x34, /* U+000034: DIGIT FOUR*/ + 0x35, /* U+000035: DIGIT FIVE*/ + 0x36, /* U+000036: DIGIT SIX*/ + 0x37, /* U+000037: DIGIT SEVEN*/ + 0x38, /* U+000038: DIGIT EIGHT*/ + 0x39, /* U+000039: DIGIT NINE*/ + 0x3a, /* U+00003a: COLON*/ + 0x3b, /* U+00003b: SEMICOLON*/ + 0x3c, /* U+00003c: LESS-THAN SIGN*/ + 0x3d, /* U+00003d: EQUALS SIGN*/ + 0x3e, /* U+00003e: GREATER-THAN SIGN*/ + 0x3f, /* U+00003f: QUESTION MARK*/ + 0x40, /* U+000040: COMMERCIAL AT*/ + 0x41, /* U+000041: LATIN CAPITAL LETTER A*/ + 0x42, /* U+000042: LATIN CAPITAL LETTER B*/ + 0x43, /* U+000043: LATIN CAPITAL LETTER C*/ + 0x44, /* U+000044: LATIN CAPITAL LETTER D*/ + 0x45, /* U+000045: LATIN CAPITAL LETTER E*/ + 0x46, /* U+000046: LATIN CAPITAL LETTER F*/ + 0x47, /* U+000047: LATIN CAPITAL LETTER G*/ + 0x48, /* U+000048: LATIN CAPITAL LETTER H*/ + 0x49, /* U+000049: LATIN CAPITAL LETTER I*/ + 0x4a, /* U+00004a: LATIN CAPITAL LETTER J*/ + 0x4b, /* U+00004b: LATIN CAPITAL LETTER K*/ + 0x4c, /* U+00004c: LATIN CAPITAL LETTER L*/ + 0x4d, /* U+00004d: LATIN CAPITAL LETTER M*/ + 0x4e, /* U+00004e: LATIN CAPITAL LETTER N*/ + 0x4f, /* U+00004f: LATIN CAPITAL LETTER O*/ + 0x50, /* U+000050: LATIN CAPITAL LETTER P*/ + 0x51, /* U+000051: LATIN CAPITAL LETTER Q*/ + 0x52, /* U+000052: LATIN CAPITAL LETTER R*/ + 0x53, /* U+000053: LATIN CAPITAL LETTER S*/ + 0x54, /* U+000054: LATIN CAPITAL LETTER T*/ + 0x55, /* U+000055: LATIN CAPITAL LETTER U*/ + 0x56, /* U+000056: LATIN CAPITAL LETTER V*/ + 0x57, /* U+000057: LATIN CAPITAL LETTER W*/ + 0x58, /* U+000058: LATIN CAPITAL LETTER X*/ + 0x59, /* U+000059: LATIN CAPITAL LETTER Y*/ + 0x5a, /* U+00005a: LATIN CAPITAL LETTER Z*/ + 0x5b, /* U+00005b: LEFT SQUARE BRACKET*/ + 0x5c, /* U+00005c: REVERSE SOLIDUS*/ + 0x5d, /* U+00005d: RIGHT SQUARE BRACKET*/ + 0x5e, /* U+00005e: CIRCUMFLEX ACCENT*/ + 0x5f, /* U+00005f: LOW LINE*/ + 0x60, /* U+000060: GRAVE ACCENT*/ + 0x41, /* U+000061: LATIN SMALL LETTER A*/ + 0x42, /* U+000062: LATIN SMALL LETTER B*/ + 0x43, /* U+000063: LATIN SMALL LETTER C*/ + 0x44, /* U+000064: LATIN SMALL LETTER D*/ + 0x45, /* U+000065: LATIN SMALL LETTER E*/ + 0x46, /* U+000066: LATIN SMALL LETTER F*/ + 0x47, /* U+000067: LATIN SMALL LETTER G*/ + 0x48, /* U+000068: LATIN SMALL LETTER H*/ + 0x49, /* U+000069: LATIN SMALL LETTER I*/ + 0x4a, /* U+00006a: LATIN SMALL LETTER J*/ + 0x4b, /* U+00006b: LATIN SMALL LETTER K*/ + 0x4c, /* U+00006c: LATIN SMALL LETTER L*/ + 0x4d, /* U+00006d: LATIN SMALL LETTER M*/ + 0x4e, /* U+00006e: LATIN SMALL LETTER N*/ + 0x4f, /* U+00006f: LATIN SMALL LETTER O*/ + 0x50, /* U+000070: LATIN SMALL LETTER P*/ + 0x51, /* U+000071: LATIN SMALL LETTER Q*/ + 0x52, /* U+000072: LATIN SMALL LETTER R*/ + 0x53, /* U+000073: LATIN SMALL LETTER S*/ + 0x54, /* U+000074: LATIN SMALL LETTER T*/ + 0x55, /* U+000075: LATIN SMALL LETTER U*/ + 0x56, /* U+000076: LATIN SMALL LETTER V*/ + 0x57, /* U+000077: LATIN SMALL LETTER W*/ + 0x58, /* U+000078: LATIN SMALL LETTER X*/ + 0x59, /* U+000079: LATIN SMALL LETTER Y*/ + 0x5a, /* U+00007a: LATIN SMALL LETTER Z*/ + 0x7b, /* U+00007b: LEFT CURLY BRACKET*/ + 0x7c, /* U+00007c: VERTICAL LINE*/ + 0x7d, /* U+00007d: RIGHT CURLY BRACKET*/ + 0x7e, /* U+00007e: TILDE*/ + 0x7f, /* U+00007f: <control>*/ + 0x80, /* U+000080: <control>*/ + 0x81, /* U+000081: <control>*/ + 0x82, /* U+000082: <control>*/ + 0x83, /* U+000083: <control>*/ + 0x84, /* U+000084: <control>*/ + 0x85, /* U+000085: <control>*/ + 0x86, /* U+000086: <control>*/ + 0x87, /* U+000087: <control>*/ + 0x88, /* U+000088: <control>*/ + 0x89, /* U+000089: <control>*/ + 0x8a, /* U+00008a: <control>*/ + 0x8b, /* U+00008b: <control>*/ + 0x8c, /* U+00008c: <control>*/ + 0x8d, /* U+00008d: <control>*/ + 0x8e, /* U+00008e: <control>*/ + 0x8f, /* U+00008f: <control>*/ + 0x90, /* U+000090: <control>*/ + 0x91, /* U+000091: <control>*/ + 0x92, /* U+000092: <control>*/ + 0x93, /* U+000093: <control>*/ + 0x94, /* U+000094: <control>*/ + 0x95, /* U+000095: <control>*/ + 0x96, /* U+000096: <control>*/ + 0x97, /* U+000097: <control>*/ + 0x98, /* U+000098: <control>*/ + 0x99, /* U+000099: <control>*/ + 0x9a, /* U+00009a: <control>*/ + 0x9b, /* U+00009b: <control>*/ + 0x9c, /* U+00009c: <control>*/ + 0x9d, /* U+00009d: <control>*/ + 0x9e, /* U+00009e: <control>*/ + 0x9f, /* U+00009f: <control>*/ + 0xa0, /* U+0000a0: NO-BREAK SPACE*/ + 0xa1, /* U+0000a1: INVERTED EXCLAMATION MARK*/ + 0xa2, /* U+0000a2: CENT SIGN*/ + 0xa3, /* U+0000a3: POUND SIGN*/ + 0xa4, /* U+0000a4: CURRENCY SIGN*/ + 0xa5, /* U+0000a5: YEN SIGN*/ + 0xa6, /* U+0000a6: BROKEN BAR*/ + 0xa7, /* U+0000a7: SECTION SIGN*/ + 0xa8, /* U+0000a8: DIAERESIS*/ + 0xa9, /* U+0000a9: COPYRIGHT SIGN*/ + 0xaa, /* U+0000aa: FEMININE ORDINAL INDICATOR*/ + 0xab, /* U+0000ab: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK*/ + 0xac, /* U+0000ac: NOT SIGN*/ + 0xad, /* U+0000ad: SOFT HYPHEN*/ + 0xae, /* U+0000ae: REGISTERED SIGN*/ + 0xaf, /* U+0000af: MACRON*/ + 0xb0, /* U+0000b0: DEGREE SIGN*/ + 0xb1, /* U+0000b1: PLUS-MINUS SIGN*/ + 0xb2, /* U+0000b2: SUPERSCRIPT TWO*/ + 0xb3, /* U+0000b3: SUPERSCRIPT THREE*/ + 0xb4, /* U+0000b4: ACUTE ACCENT*/ + 0x39c, /* U+0000b5: MICRO SIGN*/ + 0xb6, /* U+0000b6: PILCROW SIGN*/ + 0xb7, /* U+0000b7: MIDDLE DOT*/ + 0xb8, /* U+0000b8: CEDILLA*/ + 0xb9, /* U+0000b9: SUPERSCRIPT ONE*/ + 0xba, /* U+0000ba: MASCULINE ORDINAL INDICATOR*/ + 0xbb, /* U+0000bb: RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK*/ + 0xbc, /* U+0000bc: VULGAR FRACTION ONE QUARTER*/ + 0xbd, /* U+0000bd: VULGAR FRACTION ONE HALF*/ + 0xbe, /* U+0000be: VULGAR FRACTION THREE QUARTERS*/ + 0xbf, /* U+0000bf: INVERTED QUESTION MARK*/ + 0xc0, /* U+0000c0: LATIN CAPITAL LETTER A WITH GRAVE*/ + 0xc1, /* U+0000c1: LATIN CAPITAL LETTER A WITH ACUTE*/ + 0xc2, /* U+0000c2: LATIN CAPITAL LETTER A WITH CIRCUMFLEX*/ + 0xc3, /* U+0000c3: LATIN CAPITAL LETTER A WITH TILDE*/ + 0xc4, /* U+0000c4: LATIN CAPITAL LETTER A WITH DIAERESIS*/ + 0xc5, /* U+0000c5: LATIN CAPITAL LETTER A WITH RING ABOVE*/ + 0xc6, /* U+0000c6: LATIN CAPITAL LETTER AE*/ + 0xc7, /* U+0000c7: LATIN CAPITAL LETTER C WITH CEDILLA*/ + 0xc8, /* U+0000c8: LATIN CAPITAL LETTER E WITH GRAVE*/ + 0xc9, /* U+0000c9: LATIN CAPITAL LETTER E WITH ACUTE*/ + 0xca, /* U+0000ca: LATIN CAPITAL LETTER E WITH CIRCUMFLEX*/ + 0xcb, /* U+0000cb: LATIN CAPITAL LETTER E WITH DIAERESIS*/ + 0xcc, /* U+0000cc: LATIN CAPITAL LETTER I WITH GRAVE*/ + 0xcd, /* U+0000cd: LATIN CAPITAL LETTER I WITH ACUTE*/ + 0xce, /* U+0000ce: LATIN CAPITAL LETTER I WITH CIRCUMFLEX*/ + 0xcf, /* U+0000cf: LATIN CAPITAL LETTER I WITH DIAERESIS*/ + 0xd0, /* U+0000d0: LATIN CAPITAL LETTER ETH*/ + 0xd1, /* U+0000d1: LATIN CAPITAL LETTER N WITH TILDE*/ + 0xd2, /* U+0000d2: LATIN CAPITAL LETTER O WITH GRAVE*/ + 0xd3, /* U+0000d3: LATIN CAPITAL LETTER O WITH ACUTE*/ + 0xd4, /* U+0000d4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX*/ + 0xd5, /* U+0000d5: LATIN CAPITAL LETTER O WITH TILDE*/ + 0xd6, /* U+0000d6: LATIN CAPITAL LETTER O WITH DIAERESIS*/ + 0xd7, /* U+0000d7: MULTIPLICATION SIGN*/ + 0xd8, /* U+0000d8: LATIN CAPITAL LETTER O WITH STROKE*/ + 0xd9, /* U+0000d9: LATIN CAPITAL LETTER U WITH GRAVE*/ + 0xda, /* U+0000da: LATIN CAPITAL LETTER U WITH ACUTE*/ + 0xdb, /* U+0000db: LATIN CAPITAL LETTER U WITH CIRCUMFLEX*/ + 0xdc, /* U+0000dc: LATIN CAPITAL LETTER U WITH DIAERESIS*/ + 0xdd, /* U+0000dd: LATIN CAPITAL LETTER Y WITH ACUTE*/ + 0xde, /* U+0000de: LATIN CAPITAL LETTER THORN*/ + 0xdf, /* U+0000df: LATIN SMALL LETTER SHARP S*/ + 0xc0, /* U+0000e0: LATIN SMALL LETTER A WITH GRAVE*/ + 0xc1, /* U+0000e1: LATIN SMALL LETTER A WITH ACUTE*/ + 0xc2, /* U+0000e2: LATIN SMALL LETTER A WITH CIRCUMFLEX*/ + 0xc3, /* U+0000e3: LATIN SMALL LETTER A WITH TILDE*/ + 0xc4, /* U+0000e4: LATIN SMALL LETTER A WITH DIAERESIS*/ + 0xc5, /* U+0000e5: LATIN SMALL LETTER A WITH RING ABOVE*/ + 0xc6, /* U+0000e6: LATIN SMALL LETTER AE*/ + 0xc7, /* U+0000e7: LATIN SMALL LETTER C WITH CEDILLA*/ + 0xc8, /* U+0000e8: LATIN SMALL LETTER E WITH GRAVE*/ + 0xc9, /* U+0000e9: LATIN SMALL LETTER E WITH ACUTE*/ + 0xca, /* U+0000ea: LATIN SMALL LETTER E WITH CIRCUMFLEX*/ + 0xcb, /* U+0000eb: LATIN SMALL LETTER E WITH DIAERESIS*/ + 0xcc, /* U+0000ec: LATIN SMALL LETTER I WITH GRAVE*/ + 0xcd, /* U+0000ed: LATIN SMALL LETTER I WITH ACUTE*/ + 0xce, /* U+0000ee: LATIN SMALL LETTER I WITH CIRCUMFLEX*/ + 0xcf, /* U+0000ef: LATIN SMALL LETTER I WITH DIAERESIS*/ + 0xd0, /* U+0000f0: LATIN SMALL LETTER ETH*/ + 0xd1, /* U+0000f1: LATIN SMALL LETTER N WITH TILDE*/ + 0xd2, /* U+0000f2: LATIN SMALL LETTER O WITH GRAVE*/ + 0xd3, /* U+0000f3: LATIN SMALL LETTER O WITH ACUTE*/ + 0xd4, /* U+0000f4: LATIN SMALL LETTER O WITH CIRCUMFLEX*/ + 0xd5, /* U+0000f5: LATIN SMALL LETTER O WITH TILDE*/ + 0xd6, /* U+0000f6: LATIN SMALL LETTER O WITH DIAERESIS*/ + 0xf7, /* U+0000f7: DIVISION SIGN*/ + 0xd8, /* U+0000f8: LATIN SMALL LETTER O WITH STROKE*/ + 0xd9, /* U+0000f9: LATIN SMALL LETTER U WITH GRAVE*/ + 0xda, /* U+0000fa: LATIN SMALL LETTER U WITH ACUTE*/ + 0xdb, /* U+0000fb: LATIN SMALL LETTER U WITH CIRCUMFLEX*/ + 0xdc, /* U+0000fc: LATIN SMALL LETTER U WITH DIAERESIS*/ + 0xdd, /* U+0000fd: LATIN SMALL LETTER Y WITH ACUTE*/ + 0xde, /* U+0000fe: LATIN SMALL LETTER THORN*/ + 0x178, /* U+0000ff: LATIN SMALL LETTER Y WITH DIAERESIS*/ + 0x100, /* U+000100: LATIN CAPITAL LETTER A WITH MACRON*/ + 0x100, /* U+000101: LATIN SMALL LETTER A WITH MACRON*/ + 0x102, /* U+000102: LATIN CAPITAL LETTER A WITH BREVE*/ + 0x102, /* U+000103: LATIN SMALL LETTER A WITH BREVE*/ + 0x104, /* U+000104: LATIN CAPITAL LETTER A WITH OGONEK*/ + 0x104, /* U+000105: LATIN SMALL LETTER A WITH OGONEK*/ + 0x106, /* U+000106: LATIN CAPITAL LETTER C WITH ACUTE*/ + 0x106, /* U+000107: LATIN SMALL LETTER C WITH ACUTE*/ + 0x108, /* U+000108: LATIN CAPITAL LETTER C WITH CIRCUMFLEX*/ + 0x108, /* U+000109: LATIN SMALL LETTER C WITH CIRCUMFLEX*/ + 0x10a, /* U+00010a: LATIN CAPITAL LETTER C WITH DOT ABOVE*/ + 0x10a, /* U+00010b: LATIN SMALL LETTER C WITH DOT ABOVE*/ + 0x10c, /* U+00010c: LATIN CAPITAL LETTER C WITH CARON*/ + 0x10c, /* U+00010d: LATIN SMALL LETTER C WITH CARON*/ + 0x10e, /* U+00010e: LATIN CAPITAL LETTER D WITH CARON*/ + 0x10e, /* U+00010f: LATIN SMALL LETTER D WITH CARON*/ + 0x110, /* U+000110: LATIN CAPITAL LETTER D WITH STROKE*/ + 0x110, /* U+000111: LATIN SMALL LETTER D WITH STROKE*/ + 0x112, /* U+000112: LATIN CAPITAL LETTER E WITH MACRON*/ + 0x112, /* U+000113: LATIN SMALL LETTER E WITH MACRON*/ + 0x114, /* U+000114: LATIN CAPITAL LETTER E WITH BREVE*/ + 0x114, /* U+000115: LATIN SMALL LETTER E WITH BREVE*/ + 0x116, /* U+000116: LATIN CAPITAL LETTER E WITH DOT ABOVE*/ + 0x116, /* U+000117: LATIN SMALL LETTER E WITH DOT ABOVE*/ + 0x118, /* U+000118: LATIN CAPITAL LETTER E WITH OGONEK*/ + 0x118, /* U+000119: LATIN SMALL LETTER E WITH OGONEK*/ + 0x11a, /* U+00011a: LATIN CAPITAL LETTER E WITH CARON*/ + 0x11a, /* U+00011b: LATIN SMALL LETTER E WITH CARON*/ + 0x11c, /* U+00011c: LATIN CAPITAL LETTER G WITH CIRCUMFLEX*/ + 0x11c, /* U+00011d: LATIN SMALL LETTER G WITH CIRCUMFLEX*/ + 0x11e, /* U+00011e: LATIN CAPITAL LETTER G WITH BREVE*/ + 0x11e, /* U+00011f: LATIN SMALL LETTER G WITH BREVE*/ + 0x120, /* U+000120: LATIN CAPITAL LETTER G WITH DOT ABOVE*/ + 0x120, /* U+000121: LATIN SMALL LETTER G WITH DOT ABOVE*/ + 0x122, /* U+000122: LATIN CAPITAL LETTER G WITH CEDILLA*/ + 0x122, /* U+000123: LATIN SMALL LETTER G WITH CEDILLA*/ + 0x124, /* U+000124: LATIN CAPITAL LETTER H WITH CIRCUMFLEX*/ + 0x124, /* U+000125: LATIN SMALL LETTER H WITH CIRCUMFLEX*/ + 0x126, /* U+000126: LATIN CAPITAL LETTER H WITH STROKE*/ + 0x126, /* U+000127: LATIN SMALL LETTER H WITH STROKE*/ + 0x128, /* U+000128: LATIN CAPITAL LETTER I WITH TILDE*/ + 0x128, /* U+000129: LATIN SMALL LETTER I WITH TILDE*/ + 0x12a, /* U+00012a: LATIN CAPITAL LETTER I WITH MACRON*/ + 0x12a, /* U+00012b: LATIN SMALL LETTER I WITH MACRON*/ + 0x12c, /* U+00012c: LATIN CAPITAL LETTER I WITH BREVE*/ + 0x12c, /* U+00012d: LATIN SMALL LETTER I WITH BREVE*/ + 0x12e, /* U+00012e: LATIN CAPITAL LETTER I WITH OGONEK*/ + 0x12e, /* U+00012f: LATIN SMALL LETTER I WITH OGONEK*/ + 0x130, /* U+000130: LATIN CAPITAL LETTER I WITH DOT ABOVE*/ + 0x49, /* U+000131: LATIN SMALL LETTER DOTLESS I*/ + 0x132, /* U+000132: LATIN CAPITAL LIGATURE IJ*/ + 0x132, /* U+000133: LATIN SMALL LIGATURE IJ*/ + 0x134, /* U+000134: LATIN CAPITAL LETTER J WITH CIRCUMFLEX*/ + 0x134, /* U+000135: LATIN SMALL LETTER J WITH CIRCUMFLEX*/ + 0x136, /* U+000136: LATIN CAPITAL LETTER K WITH CEDILLA*/ + 0x136, /* U+000137: LATIN SMALL LETTER K WITH CEDILLA*/ + 0x138, /* U+000138: LATIN SMALL LETTER KRA*/ + 0x139, /* U+000139: LATIN CAPITAL LETTER L WITH ACUTE*/ + 0x139, /* U+00013a: LATIN SMALL LETTER L WITH ACUTE*/ + 0x13b, /* U+00013b: LATIN CAPITAL LETTER L WITH CEDILLA*/ + 0x13b, /* U+00013c: LATIN SMALL LETTER L WITH CEDILLA*/ + 0x13d, /* U+00013d: LATIN CAPITAL LETTER L WITH CARON*/ + 0x13d, /* U+00013e: LATIN SMALL LETTER L WITH CARON*/ + 0x13f, /* U+00013f: LATIN CAPITAL LETTER L WITH MIDDLE DOT*/ + 0x13f, /* U+000140: LATIN SMALL LETTER L WITH MIDDLE DOT*/ + 0x141, /* U+000141: LATIN CAPITAL LETTER L WITH STROKE*/ + 0x141, /* U+000142: LATIN SMALL LETTER L WITH STROKE*/ + 0x143, /* U+000143: LATIN CAPITAL LETTER N WITH ACUTE*/ + 0x143, /* U+000144: LATIN SMALL LETTER N WITH ACUTE*/ + 0x145, /* U+000145: LATIN CAPITAL LETTER N WITH CEDILLA*/ + 0x145, /* U+000146: LATIN SMALL LETTER N WITH CEDILLA*/ + 0x147, /* U+000147: LATIN CAPITAL LETTER N WITH CARON*/ + 0x147, /* U+000148: LATIN SMALL LETTER N WITH CARON*/ + 0x149, /* U+000149: LATIN SMALL LETTER N PRECEDED BY APOSTROPHE*/ + 0x14a, /* U+00014a: LATIN CAPITAL LETTER ENG*/ + 0x14a, /* U+00014b: LATIN SMALL LETTER ENG*/ + 0x14c, /* U+00014c: LATIN CAPITAL LETTER O WITH MACRON*/ + 0x14c, /* U+00014d: LATIN SMALL LETTER O WITH MACRON*/ + 0x14e, /* U+00014e: LATIN CAPITAL LETTER O WITH BREVE*/ + 0x14e, /* U+00014f: LATIN SMALL LETTER O WITH BREVE*/ + 0x150, /* U+000150: LATIN CAPITAL LETTER O WITH DOUBLE ACUTE*/ + 0x150, /* U+000151: LATIN SMALL LETTER O WITH DOUBLE ACUTE*/ + 0x152, /* U+000152: LATIN CAPITAL LIGATURE OE*/ + 0x152, /* U+000153: LATIN SMALL LIGATURE OE*/ + 0x154, /* U+000154: LATIN CAPITAL LETTER R WITH ACUTE*/ + 0x154, /* U+000155: LATIN SMALL LETTER R WITH ACUTE*/ + 0x156, /* U+000156: LATIN CAPITAL LETTER R WITH CEDILLA*/ + 0x156, /* U+000157: LATIN SMALL LETTER R WITH CEDILLA*/ + 0x158, /* U+000158: LATIN CAPITAL LETTER R WITH CARON*/ + 0x158, /* U+000159: LATIN SMALL LETTER R WITH CARON*/ + 0x15a, /* U+00015a: LATIN CAPITAL LETTER S WITH ACUTE*/ + 0x15a, /* U+00015b: LATIN SMALL LETTER S WITH ACUTE*/ + 0x15c, /* U+00015c: LATIN CAPITAL LETTER S WITH CIRCUMFLEX*/ + 0x15c, /* U+00015d: LATIN SMALL LETTER S WITH CIRCUMFLEX*/ + 0x15e, /* U+00015e: LATIN CAPITAL LETTER S WITH CEDILLA*/ + 0x15e, /* U+00015f: LATIN SMALL LETTER S WITH CEDILLA*/ + 0x160, /* U+000160: LATIN CAPITAL LETTER S WITH CARON*/ + 0x160, /* U+000161: LATIN SMALL LETTER S WITH CARON*/ + 0x162, /* U+000162: LATIN CAPITAL LETTER T WITH CEDILLA*/ + 0x162, /* U+000163: LATIN SMALL LETTER T WITH CEDILLA*/ + 0x164, /* U+000164: LATIN CAPITAL LETTER T WITH CARON*/ + 0x164, /* U+000165: LATIN SMALL LETTER T WITH CARON*/ + 0x166, /* U+000166: LATIN CAPITAL LETTER T WITH STROKE*/ + 0x166, /* U+000167: LATIN SMALL LETTER T WITH STROKE*/ + 0x168, /* U+000168: LATIN CAPITAL LETTER U WITH TILDE*/ + 0x168, /* U+000169: LATIN SMALL LETTER U WITH TILDE*/ + 0x16a, /* U+00016a: LATIN CAPITAL LETTER U WITH MACRON*/ + 0x16a, /* U+00016b: LATIN SMALL LETTER U WITH MACRON*/ + 0x16c, /* U+00016c: LATIN CAPITAL LETTER U WITH BREVE*/ + 0x16c, /* U+00016d: LATIN SMALL LETTER U WITH BREVE*/ + 0x16e, /* U+00016e: LATIN CAPITAL LETTER U WITH RING ABOVE*/ + 0x16e, /* U+00016f: LATIN SMALL LETTER U WITH RING ABOVE*/ + 0x170, /* U+000170: LATIN CAPITAL LETTER U WITH DOUBLE ACUTE*/ + 0x170, /* U+000171: LATIN SMALL LETTER U WITH DOUBLE ACUTE*/ + 0x172, /* U+000172: LATIN CAPITAL LETTER U WITH OGONEK*/ + 0x172, /* U+000173: LATIN SMALL LETTER U WITH OGONEK*/ + 0x174, /* U+000174: LATIN CAPITAL LETTER W WITH CIRCUMFLEX*/ + 0x174, /* U+000175: LATIN SMALL LETTER W WITH CIRCUMFLEX*/ + 0x176, /* U+000176: LATIN CAPITAL LETTER Y WITH CIRCUMFLEX*/ + 0x176, /* U+000177: LATIN SMALL LETTER Y WITH CIRCUMFLEX*/ + 0x178, /* U+000178: LATIN CAPITAL LETTER Y WITH DIAERESIS*/ + 0x179, /* U+000179: LATIN CAPITAL LETTER Z WITH ACUTE*/ + 0x179, /* U+00017a: LATIN SMALL LETTER Z WITH ACUTE*/ + 0x17b, /* U+00017b: LATIN CAPITAL LETTER Z WITH DOT ABOVE*/ + 0x17b, /* U+00017c: LATIN SMALL LETTER Z WITH DOT ABOVE*/ + 0x17d, /* U+00017d: LATIN CAPITAL LETTER Z WITH CARON*/ + 0x17d, /* U+00017e: LATIN SMALL LETTER Z WITH CARON*/ + 0x53, /* U+00017f: LATIN SMALL LETTER LONG S*/ + 0x243, /* U+000180: LATIN SMALL LETTER B WITH STROKE*/ + 0x181, /* U+000181: LATIN CAPITAL LETTER B WITH HOOK*/ + 0x182, /* U+000182: LATIN CAPITAL LETTER B WITH TOPBAR*/ + 0x182, /* U+000183: LATIN SMALL LETTER B WITH TOPBAR*/ + 0x184, /* U+000184: LATIN CAPITAL LETTER TONE SIX*/ + 0x184, /* U+000185: LATIN SMALL LETTER TONE SIX*/ + 0x186, /* U+000186: LATIN CAPITAL LETTER OPEN O*/ + 0x187, /* U+000187: LATIN CAPITAL LETTER C WITH HOOK*/ + 0x187, /* U+000188: LATIN SMALL LETTER C WITH HOOK*/ + 0x189, /* U+000189: LATIN CAPITAL LETTER AFRICAN D*/ + 0x18a, /* U+00018a: LATIN CAPITAL LETTER D WITH HOOK*/ + 0x18b, /* U+00018b: LATIN CAPITAL LETTER D WITH TOPBAR*/ + 0x18b, /* U+00018c: LATIN SMALL LETTER D WITH TOPBAR*/ + 0x18d, /* U+00018d: LATIN SMALL LETTER TURNED DELTA*/ + 0x18e, /* U+00018e: LATIN CAPITAL LETTER REVERSED E*/ + 0x18f, /* U+00018f: LATIN CAPITAL LETTER SCHWA*/ + 0x190, /* U+000190: LATIN CAPITAL LETTER OPEN E*/ + 0x191, /* U+000191: LATIN CAPITAL LETTER F WITH HOOK*/ + 0x191, /* U+000192: LATIN SMALL LETTER F WITH HOOK*/ + 0x193, /* U+000193: LATIN CAPITAL LETTER G WITH HOOK*/ + 0x194, /* U+000194: LATIN CAPITAL LETTER GAMMA*/ + 0x1f6, /* U+000195: LATIN SMALL LETTER HV*/ + 0x196, /* U+000196: LATIN CAPITAL LETTER IOTA*/ + 0x197, /* U+000197: LATIN CAPITAL LETTER I WITH STROKE*/ + 0x198, /* U+000198: LATIN CAPITAL LETTER K WITH HOOK*/ + 0x198, /* U+000199: LATIN SMALL LETTER K WITH HOOK*/ + 0x23d, /* U+00019a: LATIN SMALL LETTER L WITH BAR*/ + 0x19b, /* U+00019b: LATIN SMALL LETTER LAMBDA WITH STROKE*/ + 0x19c, /* U+00019c: LATIN CAPITAL LETTER TURNED M*/ + 0x19d, /* U+00019d: LATIN CAPITAL LETTER N WITH LEFT HOOK*/ + 0x220, /* U+00019e: LATIN SMALL LETTER N WITH LONG RIGHT LEG*/ + 0x19f, /* U+00019f: LATIN CAPITAL LETTER O WITH MIDDLE TILDE*/ + 0x1a0, /* U+0001a0: LATIN CAPITAL LETTER O WITH HORN*/ + 0x1a0, /* U+0001a1: LATIN SMALL LETTER O WITH HORN*/ + 0x1a2, /* U+0001a2: LATIN CAPITAL LETTER OI*/ + 0x1a2, /* U+0001a3: LATIN SMALL LETTER OI*/ + 0x1a4, /* U+0001a4: LATIN CAPITAL LETTER P WITH HOOK*/ + 0x1a4, /* U+0001a5: LATIN SMALL LETTER P WITH HOOK*/ + 0x1a6, /* U+0001a6: LATIN LETTER YR*/ + 0x1a7, /* U+0001a7: LATIN CAPITAL LETTER TONE TWO*/ + 0x1a7, /* U+0001a8: LATIN SMALL LETTER TONE TWO*/ + 0x1a9, /* U+0001a9: LATIN CAPITAL LETTER ESH*/ + 0x1aa, /* U+0001aa: LATIN LETTER REVERSED ESH LOOP*/ + 0x1ab, /* U+0001ab: LATIN SMALL LETTER T WITH PALATAL HOOK*/ + 0x1ac, /* U+0001ac: LATIN CAPITAL LETTER T WITH HOOK*/ + 0x1ac, /* U+0001ad: LATIN SMALL LETTER T WITH HOOK*/ + 0x1ae, /* U+0001ae: LATIN CAPITAL LETTER T WITH RETROFLEX HOOK*/ + 0x1af, /* U+0001af: LATIN CAPITAL LETTER U WITH HORN*/ + 0x1af, /* U+0001b0: LATIN SMALL LETTER U WITH HORN*/ + 0x1b1, /* U+0001b1: LATIN CAPITAL LETTER UPSILON*/ + 0x1b2, /* U+0001b2: LATIN CAPITAL LETTER V WITH HOOK*/ + 0x1b3, /* U+0001b3: LATIN CAPITAL LETTER Y WITH HOOK*/ + 0x1b3, /* U+0001b4: LATIN SMALL LETTER Y WITH HOOK*/ + 0x1b5, /* U+0001b5: LATIN CAPITAL LETTER Z WITH STROKE*/ + 0x1b5, /* U+0001b6: LATIN SMALL LETTER Z WITH STROKE*/ + 0x1b7, /* U+0001b7: LATIN CAPITAL LETTER EZH*/ + 0x1b8, /* U+0001b8: LATIN CAPITAL LETTER EZH REVERSED*/ + 0x1b8, /* U+0001b9: LATIN SMALL LETTER EZH REVERSED*/ + 0x1ba, /* U+0001ba: LATIN SMALL LETTER EZH WITH TAIL*/ + 0x1bb, /* U+0001bb: LATIN LETTER TWO WITH STROKE*/ + 0x1bc, /* U+0001bc: LATIN CAPITAL LETTER TONE FIVE*/ + 0x1bc, /* U+0001bd: LATIN SMALL LETTER TONE FIVE*/ + 0x1be, /* U+0001be: LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE*/ + 0x1f7, /* U+0001bf: LATIN LETTER WYNN*/ + 0x1c0, /* U+0001c0: LATIN LETTER DENTAL CLICK*/ + 0x1c1, /* U+0001c1: LATIN LETTER LATERAL CLICK*/ + 0x1c2, /* U+0001c2: LATIN LETTER ALVEOLAR CLICK*/ + 0x1c3, /* U+0001c3: LATIN LETTER RETROFLEX CLICK*/ + 0x1c4, /* U+0001c4: LATIN CAPITAL LETTER DZ WITH CARON*/ + 0x1c4, /* U+0001c5: LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON*/ + 0x1c4, /* U+0001c6: LATIN SMALL LETTER DZ WITH CARON*/ + 0x1c7, /* U+0001c7: LATIN CAPITAL LETTER LJ*/ + 0x1c7, /* U+0001c8: LATIN CAPITAL LETTER L WITH SMALL LETTER J*/ + 0x1c7, /* U+0001c9: LATIN SMALL LETTER LJ*/ + 0x1ca, /* U+0001ca: LATIN CAPITAL LETTER NJ*/ + 0x1ca, /* U+0001cb: LATIN CAPITAL LETTER N WITH SMALL LETTER J*/ + 0x1ca, /* U+0001cc: LATIN SMALL LETTER NJ*/ + 0x1cd, /* U+0001cd: LATIN CAPITAL LETTER A WITH CARON*/ + 0x1cd, /* U+0001ce: LATIN SMALL LETTER A WITH CARON*/ + 0x1cf, /* U+0001cf: LATIN CAPITAL LETTER I WITH CARON*/ + 0x1cf, /* U+0001d0: LATIN SMALL LETTER I WITH CARON*/ + 0x1d1, /* U+0001d1: LATIN CAPITAL LETTER O WITH CARON*/ + 0x1d1, /* U+0001d2: LATIN SMALL LETTER O WITH CARON*/ + 0x1d3, /* U+0001d3: LATIN CAPITAL LETTER U WITH CARON*/ + 0x1d3, /* U+0001d4: LATIN SMALL LETTER U WITH CARON*/ + 0x1d5, /* U+0001d5: LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON*/ + 0x1d5, /* U+0001d6: LATIN SMALL LETTER U WITH DIAERESIS AND MACRON*/ + 0x1d7, /* U+0001d7: LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE*/ + 0x1d7, /* U+0001d8: LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE*/ + 0x1d9, /* U+0001d9: LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON*/ + 0x1d9, /* U+0001da: LATIN SMALL LETTER U WITH DIAERESIS AND CARON*/ + 0x1db, /* U+0001db: LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE*/ + 0x1db, /* U+0001dc: LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE*/ + 0x18e, /* U+0001dd: LATIN SMALL LETTER TURNED E*/ + 0x1de, /* U+0001de: LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON*/ + 0x1de, /* U+0001df: LATIN SMALL LETTER A WITH DIAERESIS AND MACRON*/ + 0x1e0, /* U+0001e0: LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON*/ + 0x1e0, /* U+0001e1: LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON*/ + 0x1e2, /* U+0001e2: LATIN CAPITAL LETTER AE WITH MACRON*/ + 0x1e2, /* U+0001e3: LATIN SMALL LETTER AE WITH MACRON*/ + 0x1e4, /* U+0001e4: LATIN CAPITAL LETTER G WITH STROKE*/ + 0x1e4, /* U+0001e5: LATIN SMALL LETTER G WITH STROKE*/ + 0x1e6, /* U+0001e6: LATIN CAPITAL LETTER G WITH CARON*/ + 0x1e6, /* U+0001e7: LATIN SMALL LETTER G WITH CARON*/ + 0x1e8, /* U+0001e8: LATIN CAPITAL LETTER K WITH CARON*/ + 0x1e8, /* U+0001e9: LATIN SMALL LETTER K WITH CARON*/ + 0x1ea, /* U+0001ea: LATIN CAPITAL LETTER O WITH OGONEK*/ + 0x1ea, /* U+0001eb: LATIN SMALL LETTER O WITH OGONEK*/ + 0x1ec, /* U+0001ec: LATIN CAPITAL LETTER O WITH OGONEK AND MACRON*/ + 0x1ec, /* U+0001ed: LATIN SMALL LETTER O WITH OGONEK AND MACRON*/ + 0x1ee, /* U+0001ee: LATIN CAPITAL LETTER EZH WITH CARON*/ + 0x1ee, /* U+0001ef: LATIN SMALL LETTER EZH WITH CARON*/ + 0x1f0, /* U+0001f0: LATIN SMALL LETTER J WITH CARON*/ + 0x1f1, /* U+0001f1: LATIN CAPITAL LETTER DZ*/ + 0x1f1, /* U+0001f2: LATIN CAPITAL LETTER D WITH SMALL LETTER Z*/ + 0x1f1, /* U+0001f3: LATIN SMALL LETTER DZ*/ + 0x1f4, /* U+0001f4: LATIN CAPITAL LETTER G WITH ACUTE*/ + 0x1f4, /* U+0001f5: LATIN SMALL LETTER G WITH ACUTE*/ + 0x1f6, /* U+0001f6: LATIN CAPITAL LETTER HWAIR*/ + 0x1f7, /* U+0001f7: LATIN CAPITAL LETTER WYNN*/ + 0x1f8, /* U+0001f8: LATIN CAPITAL LETTER N WITH GRAVE*/ + 0x1f8, /* U+0001f9: LATIN SMALL LETTER N WITH GRAVE*/ + 0x1fa, /* U+0001fa: LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE*/ + 0x1fa, /* U+0001fb: LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE*/ + 0x1fc, /* U+0001fc: LATIN CAPITAL LETTER AE WITH ACUTE*/ + 0x1fc, /* U+0001fd: LATIN SMALL LETTER AE WITH ACUTE*/ + 0x1fe, /* U+0001fe: LATIN CAPITAL LETTER O WITH STROKE AND ACUTE*/ + 0x1fe, /* U+0001ff: LATIN SMALL LETTER O WITH STROKE AND ACUTE*/ + 0x200, /* U+000200: LATIN CAPITAL LETTER A WITH DOUBLE GRAVE*/ + 0x200, /* U+000201: LATIN SMALL LETTER A WITH DOUBLE GRAVE*/ + 0x202, /* U+000202: LATIN CAPITAL LETTER A WITH INVERTED BREVE*/ + 0x202, /* U+000203: LATIN SMALL LETTER A WITH INVERTED BREVE*/ + 0x204, /* U+000204: LATIN CAPITAL LETTER E WITH DOUBLE GRAVE*/ + 0x204, /* U+000205: LATIN SMALL LETTER E WITH DOUBLE GRAVE*/ + 0x206, /* U+000206: LATIN CAPITAL LETTER E WITH INVERTED BREVE*/ + 0x206, /* U+000207: LATIN SMALL LETTER E WITH INVERTED BREVE*/ + 0x208, /* U+000208: LATIN CAPITAL LETTER I WITH DOUBLE GRAVE*/ + 0x208, /* U+000209: LATIN SMALL LETTER I WITH DOUBLE GRAVE*/ + 0x20a, /* U+00020a: LATIN CAPITAL LETTER I WITH INVERTED BREVE*/ + 0x20a, /* U+00020b: LATIN SMALL LETTER I WITH INVERTED BREVE*/ + 0x20c, /* U+00020c: LATIN CAPITAL LETTER O WITH DOUBLE GRAVE*/ + 0x20c, /* U+00020d: LATIN SMALL LETTER O WITH DOUBLE GRAVE*/ + 0x20e, /* U+00020e: LATIN CAPITAL LETTER O WITH INVERTED BREVE*/ + 0x20e, /* U+00020f: LATIN SMALL LETTER O WITH INVERTED BREVE*/ + 0x210, /* U+000210: LATIN CAPITAL LETTER R WITH DOUBLE GRAVE*/ + 0x210, /* U+000211: LATIN SMALL LETTER R WITH DOUBLE GRAVE*/ + 0x212, /* U+000212: LATIN CAPITAL LETTER R WITH INVERTED BREVE*/ + 0x212, /* U+000213: LATIN SMALL LETTER R WITH INVERTED BREVE*/ + 0x214, /* U+000214: LATIN CAPITAL LETTER U WITH DOUBLE GRAVE*/ + 0x214, /* U+000215: LATIN SMALL LETTER U WITH DOUBLE GRAVE*/ + 0x216, /* U+000216: LATIN CAPITAL LETTER U WITH INVERTED BREVE*/ + 0x216, /* U+000217: LATIN SMALL LETTER U WITH INVERTED BREVE*/ + 0x218, /* U+000218: LATIN CAPITAL LETTER S WITH COMMA BELOW*/ + 0x218, /* U+000219: LATIN SMALL LETTER S WITH COMMA BELOW*/ + 0x21a, /* U+00021a: LATIN CAPITAL LETTER T WITH COMMA BELOW*/ + 0x21a, /* U+00021b: LATIN SMALL LETTER T WITH COMMA BELOW*/ + 0x21c, /* U+00021c: LATIN CAPITAL LETTER YOGH*/ + 0x21c, /* U+00021d: LATIN SMALL LETTER YOGH*/ + 0x21e, /* U+00021e: LATIN CAPITAL LETTER H WITH CARON*/ + 0x21e, /* U+00021f: LATIN SMALL LETTER H WITH CARON*/ + 0x220, /* U+000220: LATIN CAPITAL LETTER N WITH LONG RIGHT LEG*/ + 0x221, /* U+000221: LATIN SMALL LETTER D WITH CURL*/ + 0x222, /* U+000222: LATIN CAPITAL LETTER OU*/ + 0x222, /* U+000223: LATIN SMALL LETTER OU*/ + 0x224, /* U+000224: LATIN CAPITAL LETTER Z WITH HOOK*/ + 0x224, /* U+000225: LATIN SMALL LETTER Z WITH HOOK*/ + 0x226, /* U+000226: LATIN CAPITAL LETTER A WITH DOT ABOVE*/ + 0x226, /* U+000227: LATIN SMALL LETTER A WITH DOT ABOVE*/ + 0x228, /* U+000228: LATIN CAPITAL LETTER E WITH CEDILLA*/ + 0x228, /* U+000229: LATIN SMALL LETTER E WITH CEDILLA*/ + 0x22a, /* U+00022a: LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON*/ + 0x22a, /* U+00022b: LATIN SMALL LETTER O WITH DIAERESIS AND MACRON*/ + 0x22c, /* U+00022c: LATIN CAPITAL LETTER O WITH TILDE AND MACRON*/ + 0x22c, /* U+00022d: LATIN SMALL LETTER O WITH TILDE AND MACRON*/ + 0x22e, /* U+00022e: LATIN CAPITAL LETTER O WITH DOT ABOVE*/ + 0x22e, /* U+00022f: LATIN SMALL LETTER O WITH DOT ABOVE*/ + 0x230, /* U+000230: LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON*/ + 0x230, /* U+000231: LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON*/ + 0x232, /* U+000232: LATIN CAPITAL LETTER Y WITH MACRON*/ + 0x232, /* U+000233: LATIN SMALL LETTER Y WITH MACRON*/ + 0x234, /* U+000234: LATIN SMALL LETTER L WITH CURL*/ + 0x235, /* U+000235: LATIN SMALL LETTER N WITH CURL*/ + 0x236, /* U+000236: LATIN SMALL LETTER T WITH CURL*/ + 0x237, /* U+000237: LATIN SMALL LETTER DOTLESS J*/ + 0x238, /* U+000238: LATIN SMALL LETTER DB DIGRAPH*/ + 0x239, /* U+000239: LATIN SMALL LETTER QP DIGRAPH*/ + 0x23a, /* U+00023a: LATIN CAPITAL LETTER A WITH STROKE*/ + 0x23b, /* U+00023b: LATIN CAPITAL LETTER C WITH STROKE*/ + 0x23b, /* U+00023c: LATIN SMALL LETTER C WITH STROKE*/ + 0x23d, /* U+00023d: LATIN CAPITAL LETTER L WITH BAR*/ + 0x23e, /* U+00023e: LATIN CAPITAL LETTER T WITH DIAGONAL STROKE*/ + 0x2c7e, /* U+00023f: LATIN SMALL LETTER S WITH SWASH TAIL*/ + 0x2c7f, /* U+000240: LATIN SMALL LETTER Z WITH SWASH TAIL*/ + 0x241, /* U+000241: LATIN CAPITAL LETTER GLOTTAL STOP*/ + 0x241, /* U+000242: LATIN SMALL LETTER GLOTTAL STOP*/ + 0x243, /* U+000243: LATIN CAPITAL LETTER B WITH STROKE*/ + 0x244, /* U+000244: LATIN CAPITAL LETTER U BAR*/ + 0x245, /* U+000245: LATIN CAPITAL LETTER TURNED V*/ + 0x246, /* U+000246: LATIN CAPITAL LETTER E WITH STROKE*/ + 0x246, /* U+000247: LATIN SMALL LETTER E WITH STROKE*/ + 0x248, /* U+000248: LATIN CAPITAL LETTER J WITH STROKE*/ + 0x248, /* U+000249: LATIN SMALL LETTER J WITH STROKE*/ + 0x24a, /* U+00024a: LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL*/ + 0x24a, /* U+00024b: LATIN SMALL LETTER Q WITH HOOK TAIL*/ + 0x24c, /* U+00024c: LATIN CAPITAL LETTER R WITH STROKE*/ + 0x24c, /* U+00024d: LATIN SMALL LETTER R WITH STROKE*/ + 0x24e, /* U+00024e: LATIN CAPITAL LETTER Y WITH STROKE*/ + 0x24e, /* U+00024f: LATIN SMALL LETTER Y WITH STROKE*/ + 0x2c6f, /* U+000250: LATIN SMALL LETTER TURNED A*/ + 0x2c6d, /* U+000251: LATIN SMALL LETTER ALPHA*/ + 0x2c70, /* U+000252: LATIN SMALL LETTER TURNED ALPHA*/ + 0x181, /* U+000253: LATIN SMALL LETTER B WITH HOOK*/ + 0x186, /* U+000254: LATIN SMALL LETTER OPEN O*/ + 0x255, /* U+000255: LATIN SMALL LETTER C WITH CURL*/ + 0x189, /* U+000256: LATIN SMALL LETTER D WITH TAIL*/ + 0x18a, /* U+000257: LATIN SMALL LETTER D WITH HOOK*/ + 0x258, /* U+000258: LATIN SMALL LETTER REVERSED E*/ + 0x18f, /* U+000259: LATIN SMALL LETTER SCHWA*/ + 0x25a, /* U+00025a: LATIN SMALL LETTER SCHWA WITH HOOK*/ + 0x190, /* U+00025b: LATIN SMALL LETTER OPEN E*/ + 0x25c, /* U+00025c: LATIN SMALL LETTER REVERSED OPEN E*/ + 0x25d, /* U+00025d: LATIN SMALL LETTER REVERSED OPEN E WITH HOOK*/ + 0x25e, /* U+00025e: LATIN SMALL LETTER CLOSED REVERSED OPEN E*/ + 0x25f, /* U+00025f: LATIN SMALL LETTER DOTLESS J WITH STROKE*/ + 0x193, /* U+000260: LATIN SMALL LETTER G WITH HOOK*/ + 0x261, /* U+000261: LATIN SMALL LETTER SCRIPT G*/ + 0x262, /* U+000262: LATIN LETTER SMALL CAPITAL G*/ + 0x194, /* U+000263: LATIN SMALL LETTER GAMMA*/ + 0x264, /* U+000264: LATIN SMALL LETTER RAMS HORN*/ + 0xa78d, /* U+000265: LATIN SMALL LETTER TURNED H*/ + 0xa7aa, /* U+000266: LATIN SMALL LETTER H WITH HOOK*/ + 0x267, /* U+000267: LATIN SMALL LETTER HENG WITH HOOK*/ + 0x197, /* U+000268: LATIN SMALL LETTER I WITH STROKE*/ + 0x196, /* U+000269: LATIN SMALL LETTER IOTA*/ + 0x26a, /* U+00026a: LATIN LETTER SMALL CAPITAL I*/ + 0x2c62, /* U+00026b: LATIN SMALL LETTER L WITH MIDDLE TILDE*/ + 0x26c, /* U+00026c: LATIN SMALL LETTER L WITH BELT*/ + 0x26d, /* U+00026d: LATIN SMALL LETTER L WITH RETROFLEX HOOK*/ + 0x26e, /* U+00026e: LATIN SMALL LETTER LEZH*/ + 0x19c, /* U+00026f: LATIN SMALL LETTER TURNED M*/ + 0x270, /* U+000270: LATIN SMALL LETTER TURNED M WITH LONG LEG*/ + 0x2c6e, /* U+000271: LATIN SMALL LETTER M WITH HOOK*/ + 0x19d, /* U+000272: LATIN SMALL LETTER N WITH LEFT HOOK*/ + 0x273, /* U+000273: LATIN SMALL LETTER N WITH RETROFLEX HOOK*/ + 0x274, /* U+000274: LATIN LETTER SMALL CAPITAL N*/ + 0x19f, /* U+000275: LATIN SMALL LETTER BARRED O*/ + 0x276, /* U+000276: LATIN LETTER SMALL CAPITAL OE*/ + 0x277, /* U+000277: LATIN SMALL LETTER CLOSED OMEGA*/ + 0x278, /* U+000278: LATIN SMALL LETTER PHI*/ + 0x279, /* U+000279: LATIN SMALL LETTER TURNED R*/ + 0x27a, /* U+00027a: LATIN SMALL LETTER TURNED R WITH LONG LEG*/ + 0x27b, /* U+00027b: LATIN SMALL LETTER TURNED R WITH HOOK*/ + 0x27c, /* U+00027c: LATIN SMALL LETTER R WITH LONG LEG*/ + 0x2c64, /* U+00027d: LATIN SMALL LETTER R WITH TAIL*/ + 0x27e, /* U+00027e: LATIN SMALL LETTER R WITH FISHHOOK*/ + 0x27f, /* U+00027f: LATIN SMALL LETTER REVERSED R WITH FISHHOOK*/ + 0x1a6, /* U+000280: LATIN LETTER SMALL CAPITAL R*/ + 0x281, /* U+000281: LATIN LETTER SMALL CAPITAL INVERTED R*/ + 0x282, /* U+000282: LATIN SMALL LETTER S WITH HOOK*/ + 0x1a9, /* U+000283: LATIN SMALL LETTER ESH*/ + 0x284, /* U+000284: LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK*/ + 0x285, /* U+000285: LATIN SMALL LETTER SQUAT REVERSED ESH*/ + 0x286, /* U+000286: LATIN SMALL LETTER ESH WITH CURL*/ + 0x287, /* U+000287: LATIN SMALL LETTER TURNED T*/ + 0x1ae, /* U+000288: LATIN SMALL LETTER T WITH RETROFLEX HOOK*/ + 0x244, /* U+000289: LATIN SMALL LETTER U BAR*/ + 0x1b1, /* U+00028a: LATIN SMALL LETTER UPSILON*/ + 0x1b2, /* U+00028b: LATIN SMALL LETTER V WITH HOOK*/ + 0x245, /* U+00028c: LATIN SMALL LETTER TURNED V*/ + 0x28d, /* U+00028d: LATIN SMALL LETTER TURNED W*/ + 0x28e, /* U+00028e: LATIN SMALL LETTER TURNED Y*/ + 0x28f, /* U+00028f: LATIN LETTER SMALL CAPITAL Y*/ + 0x290, /* U+000290: LATIN SMALL LETTER Z WITH RETROFLEX HOOK*/ + 0x291, /* U+000291: LATIN SMALL LETTER Z WITH CURL*/ + 0x1b7, /* U+000292: LATIN SMALL LETTER EZH*/ + 0x293, /* U+000293: LATIN SMALL LETTER EZH WITH CURL*/ + 0x294, /* U+000294: LATIN LETTER GLOTTAL STOP*/ + 0x295, /* U+000295: LATIN LETTER PHARYNGEAL VOICED FRICATIVE*/ + 0x296, /* U+000296: LATIN LETTER INVERTED GLOTTAL STOP*/ + 0x297, /* U+000297: LATIN LETTER STRETCHED C*/ + 0x298, /* U+000298: LATIN LETTER BILABIAL CLICK*/ + 0x299, /* U+000299: LATIN LETTER SMALL CAPITAL B*/ + 0x29a, /* U+00029a: LATIN SMALL LETTER CLOSED OPEN E*/ + 0x29b, /* U+00029b: LATIN LETTER SMALL CAPITAL G WITH HOOK*/ + 0x29c, /* U+00029c: LATIN LETTER SMALL CAPITAL H*/ + 0x29d, /* U+00029d: LATIN SMALL LETTER J WITH CROSSED-TAIL*/ + 0x29e, /* U+00029e: LATIN SMALL LETTER TURNED K*/ + 0x29f, /* U+00029f: LATIN LETTER SMALL CAPITAL L*/ + 0x2a0, /* U+0002a0: LATIN SMALL LETTER Q WITH HOOK*/ + 0x2a1, /* U+0002a1: LATIN LETTER GLOTTAL STOP WITH STROKE*/ + 0x2a2, /* U+0002a2: LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE*/ + 0x2a3, /* U+0002a3: LATIN SMALL LETTER DZ DIGRAPH*/ + 0x2a4, /* U+0002a4: LATIN SMALL LETTER DEZH DIGRAPH*/ + 0x2a5, /* U+0002a5: LATIN SMALL LETTER DZ DIGRAPH WITH CURL*/ + 0x2a6, /* U+0002a6: LATIN SMALL LETTER TS DIGRAPH*/ + 0x2a7, /* U+0002a7: LATIN SMALL LETTER TESH DIGRAPH*/ + 0x2a8, /* U+0002a8: LATIN SMALL LETTER TC DIGRAPH WITH CURL*/ + 0x2a9, /* U+0002a9: LATIN SMALL LETTER FENG DIGRAPH*/ + 0x2aa, /* U+0002aa: LATIN SMALL LETTER LS DIGRAPH*/ + 0x2ab, /* U+0002ab: LATIN SMALL LETTER LZ DIGRAPH*/ + 0x2ac, /* U+0002ac: LATIN LETTER BILABIAL PERCUSSIVE*/ + 0x2ad, /* U+0002ad: LATIN LETTER BIDENTAL PERCUSSIVE*/ + 0x2ae, /* U+0002ae: LATIN SMALL LETTER TURNED H WITH FISHHOOK*/ + 0x2af, /* U+0002af: LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL*/ + 0x2b0, /* U+0002b0: MODIFIER LETTER SMALL H*/ + 0x2b1, /* U+0002b1: MODIFIER LETTER SMALL H WITH HOOK*/ + 0x2b2, /* U+0002b2: MODIFIER LETTER SMALL J*/ + 0x2b3, /* U+0002b3: MODIFIER LETTER SMALL R*/ + 0x2b4, /* U+0002b4: MODIFIER LETTER SMALL TURNED R*/ + 0x2b5, /* U+0002b5: MODIFIER LETTER SMALL TURNED R WITH HOOK*/ + 0x2b6, /* U+0002b6: MODIFIER LETTER SMALL CAPITAL INVERTED R*/ + 0x2b7, /* U+0002b7: MODIFIER LETTER SMALL W*/ + 0x2b8, /* U+0002b8: MODIFIER LETTER SMALL Y*/ + 0x2b9, /* U+0002b9: MODIFIER LETTER PRIME*/ + 0x2ba, /* U+0002ba: MODIFIER LETTER DOUBLE PRIME*/ + 0x2bb, /* U+0002bb: MODIFIER LETTER TURNED COMMA*/ + 0x2bc, /* U+0002bc: MODIFIER LETTER APOSTROPHE*/ + 0x2bd, /* U+0002bd: MODIFIER LETTER REVERSED COMMA*/ + 0x2be, /* U+0002be: MODIFIER LETTER RIGHT HALF RING*/ + 0x2bf, /* U+0002bf: MODIFIER LETTER LEFT HALF RING*/ + 0x2c0, /* U+0002c0: MODIFIER LETTER GLOTTAL STOP*/ + 0x2c1, /* U+0002c1: MODIFIER LETTER REVERSED GLOTTAL STOP*/ + 0x2c2, /* U+0002c2: MODIFIER LETTER LEFT ARROWHEAD*/ + 0x2c3, /* U+0002c3: MODIFIER LETTER RIGHT ARROWHEAD*/ + 0x2c4, /* U+0002c4: MODIFIER LETTER UP ARROWHEAD*/ + 0x2c5, /* U+0002c5: MODIFIER LETTER DOWN ARROWHEAD*/ + 0x2c6, /* U+0002c6: MODIFIER LETTER CIRCUMFLEX ACCENT*/ + 0x2c7, /* U+0002c7: CARON*/ + 0x2c8, /* U+0002c8: MODIFIER LETTER VERTICAL LINE*/ + 0x2c9, /* U+0002c9: MODIFIER LETTER MACRON*/ + 0x2ca, /* U+0002ca: MODIFIER LETTER ACUTE ACCENT*/ + 0x2cb, /* U+0002cb: MODIFIER LETTER GRAVE ACCENT*/ + 0x2cc, /* U+0002cc: MODIFIER LETTER LOW VERTICAL LINE*/ + 0x2cd, /* U+0002cd: MODIFIER LETTER LOW MACRON*/ + 0x2ce, /* U+0002ce: MODIFIER LETTER LOW GRAVE ACCENT*/ + 0x2cf, /* U+0002cf: MODIFIER LETTER LOW ACUTE ACCENT*/ + 0x2d0, /* U+0002d0: MODIFIER LETTER TRIANGULAR COLON*/ + 0x2d1, /* U+0002d1: MODIFIER LETTER HALF TRIANGULAR COLON*/ + 0x2d2, /* U+0002d2: MODIFIER LETTER CENTRED RIGHT HALF RING*/ + 0x2d3, /* U+0002d3: MODIFIER LETTER CENTRED LEFT HALF RING*/ + 0x2d4, /* U+0002d4: MODIFIER LETTER UP TACK*/ + 0x2d5, /* U+0002d5: MODIFIER LETTER DOWN TACK*/ + 0x2d6, /* U+0002d6: MODIFIER LETTER PLUS SIGN*/ + 0x2d7, /* U+0002d7: MODIFIER LETTER MINUS SIGN*/ + 0x2d8, /* U+0002d8: BREVE*/ + 0x2d9, /* U+0002d9: DOT ABOVE*/ + 0x2da, /* U+0002da: RING ABOVE*/ + 0x2db, /* U+0002db: OGONEK*/ + 0x2dc, /* U+0002dc: SMALL TILDE*/ + 0x2dd, /* U+0002dd: DOUBLE ACUTE ACCENT*/ + 0x2de, /* U+0002de: MODIFIER LETTER RHOTIC HOOK*/ + 0x2df, /* U+0002df: MODIFIER LETTER CROSS ACCENT*/ + 0x2e0, /* U+0002e0: MODIFIER LETTER SMALL GAMMA*/ + 0x2e1, /* U+0002e1: MODIFIER LETTER SMALL L*/ + 0x2e2, /* U+0002e2: MODIFIER LETTER SMALL S*/ + 0x2e3, /* U+0002e3: MODIFIER LETTER SMALL X*/ + 0x2e4, /* U+0002e4: MODIFIER LETTER SMALL REVERSED GLOTTAL STOP*/ + 0x2e5, /* U+0002e5: MODIFIER LETTER EXTRA-HIGH TONE BAR*/ + 0x2e6, /* U+0002e6: MODIFIER LETTER HIGH TONE BAR*/ + 0x2e7, /* U+0002e7: MODIFIER LETTER MID TONE BAR*/ + 0x2e8, /* U+0002e8: MODIFIER LETTER LOW TONE BAR*/ + 0x2e9, /* U+0002e9: MODIFIER LETTER EXTRA-LOW TONE BAR*/ + 0x2ea, /* U+0002ea: MODIFIER LETTER YIN DEPARTING TONE MARK*/ + 0x2eb, /* U+0002eb: MODIFIER LETTER YANG DEPARTING TONE MARK*/ + 0x2ec, /* U+0002ec: MODIFIER LETTER VOICING*/ + 0x2ed, /* U+0002ed: MODIFIER LETTER UNASPIRATED*/ + 0x2ee, /* U+0002ee: MODIFIER LETTER DOUBLE APOSTROPHE*/ + 0x2ef, /* U+0002ef: MODIFIER LETTER LOW DOWN ARROWHEAD*/ + 0x2f0, /* U+0002f0: MODIFIER LETTER LOW UP ARROWHEAD*/ + 0x2f1, /* U+0002f1: MODIFIER LETTER LOW LEFT ARROWHEAD*/ + 0x2f2, /* U+0002f2: MODIFIER LETTER LOW RIGHT ARROWHEAD*/ + 0x2f3, /* U+0002f3: MODIFIER LETTER LOW RING*/ + 0x2f4, /* U+0002f4: MODIFIER LETTER MIDDLE GRAVE ACCENT*/ + 0x2f5, /* U+0002f5: MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT*/ + 0x2f6, /* U+0002f6: MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT*/ + 0x2f7, /* U+0002f7: MODIFIER LETTER LOW TILDE*/ + 0x2f8, /* U+0002f8: MODIFIER LETTER RAISED COLON*/ + 0x2f9, /* U+0002f9: MODIFIER LETTER BEGIN HIGH TONE*/ + 0x2fa, /* U+0002fa: MODIFIER LETTER END HIGH TONE*/ + 0x2fb, /* U+0002fb: MODIFIER LETTER BEGIN LOW TONE*/ + 0x2fc, /* U+0002fc: MODIFIER LETTER END LOW TONE*/ + 0x2fd, /* U+0002fd: MODIFIER LETTER SHELF*/ + 0x2fe, /* U+0002fe: MODIFIER LETTER OPEN SHELF*/ + 0x2ff, /* U+0002ff: MODIFIER LETTER LOW LEFT ARROW*/ + 0x300, /* U+000300: COMBINING GRAVE ACCENT*/ + 0x301, /* U+000301: COMBINING ACUTE ACCENT*/ + 0x302, /* U+000302: COMBINING CIRCUMFLEX ACCENT*/ + 0x303, /* U+000303: COMBINING TILDE*/ + 0x304, /* U+000304: COMBINING MACRON*/ + 0x305, /* U+000305: COMBINING OVERLINE*/ + 0x306, /* U+000306: COMBINING BREVE*/ + 0x307, /* U+000307: COMBINING DOT ABOVE*/ + 0x308, /* U+000308: COMBINING DIAERESIS*/ + 0x309, /* U+000309: COMBINING HOOK ABOVE*/ + 0x30a, /* U+00030a: COMBINING RING ABOVE*/ + 0x30b, /* U+00030b: COMBINING DOUBLE ACUTE ACCENT*/ + 0x30c, /* U+00030c: COMBINING CARON*/ + 0x30d, /* U+00030d: COMBINING VERTICAL LINE ABOVE*/ + 0x30e, /* U+00030e: COMBINING DOUBLE VERTICAL LINE ABOVE*/ + 0x30f, /* U+00030f: COMBINING DOUBLE GRAVE ACCENT*/ + 0x310, /* U+000310: COMBINING CANDRABINDU*/ + 0x311, /* U+000311: COMBINING INVERTED BREVE*/ + 0x312, /* U+000312: COMBINING TURNED COMMA ABOVE*/ + 0x313, /* U+000313: COMBINING COMMA ABOVE*/ + 0x314, /* U+000314: COMBINING REVERSED COMMA ABOVE*/ + 0x315, /* U+000315: COMBINING COMMA ABOVE RIGHT*/ + 0x316, /* U+000316: COMBINING GRAVE ACCENT BELOW*/ + 0x317, /* U+000317: COMBINING ACUTE ACCENT BELOW*/ + 0x318, /* U+000318: COMBINING LEFT TACK BELOW*/ + 0x319, /* U+000319: COMBINING RIGHT TACK BELOW*/ + 0x31a, /* U+00031a: COMBINING LEFT ANGLE ABOVE*/ + 0x31b, /* U+00031b: COMBINING HORN*/ + 0x31c, /* U+00031c: COMBINING LEFT HALF RING BELOW*/ + 0x31d, /* U+00031d: COMBINING UP TACK BELOW*/ + 0x31e, /* U+00031e: COMBINING DOWN TACK BELOW*/ + 0x31f, /* U+00031f: COMBINING PLUS SIGN BELOW*/ + 0x320, /* U+000320: COMBINING MINUS SIGN BELOW*/ + 0x321, /* U+000321: COMBINING PALATALIZED HOOK BELOW*/ + 0x322, /* U+000322: COMBINING RETROFLEX HOOK BELOW*/ + 0x323, /* U+000323: COMBINING DOT BELOW*/ + 0x324, /* U+000324: COMBINING DIAERESIS BELOW*/ + 0x325, /* U+000325: COMBINING RING BELOW*/ + 0x326, /* U+000326: COMBINING COMMA BELOW*/ + 0x327, /* U+000327: COMBINING CEDILLA*/ + 0x328, /* U+000328: COMBINING OGONEK*/ + 0x329, /* U+000329: COMBINING VERTICAL LINE BELOW*/ + 0x32a, /* U+00032a: COMBINING BRIDGE BELOW*/ + 0x32b, /* U+00032b: COMBINING INVERTED DOUBLE ARCH BELOW*/ + 0x32c, /* U+00032c: COMBINING CARON BELOW*/ + 0x32d, /* U+00032d: COMBINING CIRCUMFLEX ACCENT BELOW*/ + 0x32e, /* U+00032e: COMBINING BREVE BELOW*/ + 0x32f, /* U+00032f: COMBINING INVERTED BREVE BELOW*/ + 0x330, /* U+000330: COMBINING TILDE BELOW*/ + 0x331, /* U+000331: COMBINING MACRON BELOW*/ + 0x332, /* U+000332: COMBINING LOW LINE*/ + 0x333, /* U+000333: COMBINING DOUBLE LOW LINE*/ + 0x334, /* U+000334: COMBINING TILDE OVERLAY*/ + 0x335, /* U+000335: COMBINING SHORT STROKE OVERLAY*/ + 0x336, /* U+000336: COMBINING LONG STROKE OVERLAY*/ + 0x337, /* U+000337: COMBINING SHORT SOLIDUS OVERLAY*/ + 0x338, /* U+000338: COMBINING LONG SOLIDUS OVERLAY*/ + 0x339, /* U+000339: COMBINING RIGHT HALF RING BELOW*/ + 0x33a, /* U+00033a: COMBINING INVERTED BRIDGE BELOW*/ + 0x33b, /* U+00033b: COMBINING SQUARE BELOW*/ + 0x33c, /* U+00033c: COMBINING SEAGULL BELOW*/ + 0x33d, /* U+00033d: COMBINING X ABOVE*/ + 0x33e, /* U+00033e: COMBINING VERTICAL TILDE*/ + 0x33f, /* U+00033f: COMBINING DOUBLE OVERLINE*/ + 0x340, /* U+000340: COMBINING GRAVE TONE MARK*/ + 0x341, /* U+000341: COMBINING ACUTE TONE MARK*/ + 0x342, /* U+000342: COMBINING GREEK PERISPOMENI*/ + 0x343, /* U+000343: COMBINING GREEK KORONIS*/ + 0x344, /* U+000344: COMBINING GREEK DIALYTIKA TONOS*/ + 0x399, /* U+000345: COMBINING GREEK YPOGEGRAMMENI*/ + 0x346, /* U+000346: COMBINING BRIDGE ABOVE*/ + 0x347, /* U+000347: COMBINING EQUALS SIGN BELOW*/ + 0x348, /* U+000348: COMBINING DOUBLE VERTICAL LINE BELOW*/ + 0x349, /* U+000349: COMBINING LEFT ANGLE BELOW*/ + 0x34a, /* U+00034a: COMBINING NOT TILDE ABOVE*/ + 0x34b, /* U+00034b: COMBINING HOMOTHETIC ABOVE*/ + 0x34c, /* U+00034c: COMBINING ALMOST EQUAL TO ABOVE*/ + 0x34d, /* U+00034d: COMBINING LEFT RIGHT ARROW BELOW*/ + 0x34e, /* U+00034e: COMBINING UPWARDS ARROW BELOW*/ + 0x34f, /* U+00034f: COMBINING GRAPHEME JOINER*/ + 0x350, /* U+000350: COMBINING RIGHT ARROWHEAD ABOVE*/ + 0x351, /* U+000351: COMBINING LEFT HALF RING ABOVE*/ + 0x352, /* U+000352: COMBINING FERMATA*/ + 0x353, /* U+000353: COMBINING X BELOW*/ + 0x354, /* U+000354: COMBINING LEFT ARROWHEAD BELOW*/ + 0x355, /* U+000355: COMBINING RIGHT ARROWHEAD BELOW*/ + 0x356, /* U+000356: COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW*/ + 0x357, /* U+000357: COMBINING RIGHT HALF RING ABOVE*/ + 0x358, /* U+000358: COMBINING DOT ABOVE RIGHT*/ + 0x359, /* U+000359: COMBINING ASTERISK BELOW*/ + 0x35a, /* U+00035a: COMBINING DOUBLE RING BELOW*/ + 0x35b, /* U+00035b: COMBINING ZIGZAG ABOVE*/ + 0x35c, /* U+00035c: COMBINING DOUBLE BREVE BELOW*/ + 0x35d, /* U+00035d: COMBINING DOUBLE BREVE*/ + 0x35e, /* U+00035e: COMBINING DOUBLE MACRON*/ + 0x35f, /* U+00035f: COMBINING DOUBLE MACRON BELOW*/ + 0x360, /* U+000360: COMBINING DOUBLE TILDE*/ + 0x361, /* U+000361: COMBINING DOUBLE INVERTED BREVE*/ + 0x362, /* U+000362: COMBINING DOUBLE RIGHTWARDS ARROW BELOW*/ + 0x363, /* U+000363: COMBINING LATIN SMALL LETTER A*/ + 0x364, /* U+000364: COMBINING LATIN SMALL LETTER E*/ + 0x365, /* U+000365: COMBINING LATIN SMALL LETTER I*/ + 0x366, /* U+000366: COMBINING LATIN SMALL LETTER O*/ + 0x367, /* U+000367: COMBINING LATIN SMALL LETTER U*/ + 0x368, /* U+000368: COMBINING LATIN SMALL LETTER C*/ + 0x369, /* U+000369: COMBINING LATIN SMALL LETTER D*/ + 0x36a, /* U+00036a: COMBINING LATIN SMALL LETTER H*/ + 0x36b, /* U+00036b: COMBINING LATIN SMALL LETTER M*/ + 0x36c, /* U+00036c: COMBINING LATIN SMALL LETTER R*/ + 0x36d, /* U+00036d: COMBINING LATIN SMALL LETTER T*/ + 0x36e, /* U+00036e: COMBINING LATIN SMALL LETTER V*/ + 0x36f, /* U+00036f: COMBINING LATIN SMALL LETTER X*/ + 0x370, /* U+000370: GREEK CAPITAL LETTER HETA*/ + 0x370, /* U+000371: GREEK SMALL LETTER HETA*/ + 0x372, /* U+000372: GREEK CAPITAL LETTER ARCHAIC SAMPI*/ + 0x372, /* U+000373: GREEK SMALL LETTER ARCHAIC SAMPI*/ + 0x374, /* U+000374: GREEK NUMERAL SIGN*/ + 0x375, /* U+000375: GREEK LOWER NUMERAL SIGN*/ + 0x376, /* U+000376: GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA*/ + 0x376, /* U+000377: GREEK SMALL LETTER PAMPHYLIAN DIGAMMA*/ + 0x378, /* U+000378: */ + 0x379, /* U+000379: */ + 0x37a, /* U+00037a: GREEK YPOGEGRAMMENI*/ + 0x3fd, /* U+00037b: GREEK SMALL REVERSED LUNATE SIGMA SYMBOL*/ + 0x3fe, /* U+00037c: GREEK SMALL DOTTED LUNATE SIGMA SYMBOL*/ + 0x3ff, /* U+00037d: GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL*/ + 0x37e, /* U+00037e: GREEK QUESTION MARK*/ + 0x37f, /* U+00037f: */ + 0x380, /* U+000380: */ + 0x381, /* U+000381: */ + 0x382, /* U+000382: */ + 0x383, /* U+000383: */ + 0x384, /* U+000384: GREEK TONOS*/ + 0x385, /* U+000385: GREEK DIALYTIKA TONOS*/ + 0x386, /* U+000386: GREEK CAPITAL LETTER ALPHA WITH TONOS*/ + 0x387, /* U+000387: GREEK ANO TELEIA*/ + 0x388, /* U+000388: GREEK CAPITAL LETTER EPSILON WITH TONOS*/ + 0x389, /* U+000389: GREEK CAPITAL LETTER ETA WITH TONOS*/ + 0x38a, /* U+00038a: GREEK CAPITAL LETTER IOTA WITH TONOS*/ + 0x38b, /* U+00038b: */ + 0x38c, /* U+00038c: GREEK CAPITAL LETTER OMICRON WITH TONOS*/ + 0x38d, /* U+00038d: */ + 0x38e, /* U+00038e: GREEK CAPITAL LETTER UPSILON WITH TONOS*/ + 0x38f, /* U+00038f: GREEK CAPITAL LETTER OMEGA WITH TONOS*/ + 0x390, /* U+000390: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS*/ + 0x391, /* U+000391: GREEK CAPITAL LETTER ALPHA*/ + 0x392, /* U+000392: GREEK CAPITAL LETTER BETA*/ + 0x393, /* U+000393: GREEK CAPITAL LETTER GAMMA*/ + 0x394, /* U+000394: GREEK CAPITAL LETTER DELTA*/ + 0x395, /* U+000395: GREEK CAPITAL LETTER EPSILON*/ + 0x396, /* U+000396: GREEK CAPITAL LETTER ZETA*/ + 0x397, /* U+000397: GREEK CAPITAL LETTER ETA*/ + 0x398, /* U+000398: GREEK CAPITAL LETTER THETA*/ + 0x399, /* U+000399: GREEK CAPITAL LETTER IOTA*/ + 0x39a, /* U+00039a: GREEK CAPITAL LETTER KAPPA*/ + 0x39b, /* U+00039b: GREEK CAPITAL LETTER LAMDA*/ + 0x39c, /* U+00039c: GREEK CAPITAL LETTER MU*/ + 0x39d, /* U+00039d: GREEK CAPITAL LETTER NU*/ + 0x39e, /* U+00039e: GREEK CAPITAL LETTER XI*/ + 0x39f, /* U+00039f: GREEK CAPITAL LETTER OMICRON*/ + 0x3a0, /* U+0003a0: GREEK CAPITAL LETTER PI*/ + 0x3a1, /* U+0003a1: GREEK CAPITAL LETTER RHO*/ + 0x3a2, /* U+0003a2: */ + 0x3a3, /* U+0003a3: GREEK CAPITAL LETTER SIGMA*/ + 0x3a4, /* U+0003a4: GREEK CAPITAL LETTER TAU*/ + 0x3a5, /* U+0003a5: GREEK CAPITAL LETTER UPSILON*/ + 0x3a6, /* U+0003a6: GREEK CAPITAL LETTER PHI*/ + 0x3a7, /* U+0003a7: GREEK CAPITAL LETTER CHI*/ + 0x3a8, /* U+0003a8: GREEK CAPITAL LETTER PSI*/ + 0x3a9, /* U+0003a9: GREEK CAPITAL LETTER OMEGA*/ + 0x3aa, /* U+0003aa: GREEK CAPITAL LETTER IOTA WITH DIALYTIKA*/ + 0x3ab, /* U+0003ab: GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA*/ + 0x386, /* U+0003ac: GREEK SMALL LETTER ALPHA WITH TONOS*/ + 0x388, /* U+0003ad: GREEK SMALL LETTER EPSILON WITH TONOS*/ + 0x389, /* U+0003ae: GREEK SMALL LETTER ETA WITH TONOS*/ + 0x38a, /* U+0003af: GREEK SMALL LETTER IOTA WITH TONOS*/ + 0x3b0, /* U+0003b0: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS*/ + 0x391, /* U+0003b1: GREEK SMALL LETTER ALPHA*/ + 0x392, /* U+0003b2: GREEK SMALL LETTER BETA*/ + 0x393, /* U+0003b3: GREEK SMALL LETTER GAMMA*/ + 0x394, /* U+0003b4: GREEK SMALL LETTER DELTA*/ + 0x395, /* U+0003b5: GREEK SMALL LETTER EPSILON*/ + 0x396, /* U+0003b6: GREEK SMALL LETTER ZETA*/ + 0x397, /* U+0003b7: GREEK SMALL LETTER ETA*/ + 0x398, /* U+0003b8: GREEK SMALL LETTER THETA*/ + 0x399, /* U+0003b9: GREEK SMALL LETTER IOTA*/ + 0x39a, /* U+0003ba: GREEK SMALL LETTER KAPPA*/ + 0x39b, /* U+0003bb: GREEK SMALL LETTER LAMDA*/ + 0x39c, /* U+0003bc: GREEK SMALL LETTER MU*/ + 0x39d, /* U+0003bd: GREEK SMALL LETTER NU*/ + 0x39e, /* U+0003be: GREEK SMALL LETTER XI*/ + 0x39f, /* U+0003bf: GREEK SMALL LETTER OMICRON*/ + 0x3a0, /* U+0003c0: GREEK SMALL LETTER PI*/ + 0x3a1, /* U+0003c1: GREEK SMALL LETTER RHO*/ + 0x3a3, /* U+0003c2: GREEK SMALL LETTER FINAL SIGMA*/ + 0x3a3, /* U+0003c3: GREEK SMALL LETTER SIGMA*/ + 0x3a4, /* U+0003c4: GREEK SMALL LETTER TAU*/ + 0x3a5, /* U+0003c5: GREEK SMALL LETTER UPSILON*/ + 0x3a6, /* U+0003c6: GREEK SMALL LETTER PHI*/ + 0x3a7, /* U+0003c7: GREEK SMALL LETTER CHI*/ + 0x3a8, /* U+0003c8: GREEK SMALL LETTER PSI*/ + 0x3a9, /* U+0003c9: GREEK SMALL LETTER OMEGA*/ + 0x3aa, /* U+0003ca: GREEK SMALL LETTER IOTA WITH DIALYTIKA*/ + 0x3ab, /* U+0003cb: GREEK SMALL LETTER UPSILON WITH DIALYTIKA*/ + 0x38c, /* U+0003cc: GREEK SMALL LETTER OMICRON WITH TONOS*/ + 0x38e, /* U+0003cd: GREEK SMALL LETTER UPSILON WITH TONOS*/ + 0x38f, /* U+0003ce: GREEK SMALL LETTER OMEGA WITH TONOS*/ + 0x3cf, /* U+0003cf: GREEK CAPITAL KAI SYMBOL*/ + 0x392, /* U+0003d0: GREEK BETA SYMBOL*/ + 0x398, /* U+0003d1: GREEK THETA SYMBOL*/ + 0x3d2, /* U+0003d2: GREEK UPSILON WITH HOOK SYMBOL*/ + 0x3d3, /* U+0003d3: GREEK UPSILON WITH ACUTE AND HOOK SYMBOL*/ + 0x3d4, /* U+0003d4: GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL*/ + 0x3a6, /* U+0003d5: GREEK PHI SYMBOL*/ + 0x3a0, /* U+0003d6: GREEK PI SYMBOL*/ + 0x3cf, /* U+0003d7: GREEK KAI SYMBOL*/ + 0x3d8, /* U+0003d8: GREEK LETTER ARCHAIC KOPPA*/ + 0x3d8, /* U+0003d9: GREEK SMALL LETTER ARCHAIC KOPPA*/ + 0x3da, /* U+0003da: GREEK LETTER STIGMA*/ + 0x3da, /* U+0003db: GREEK SMALL LETTER STIGMA*/ + 0x3dc, /* U+0003dc: GREEK LETTER DIGAMMA*/ + 0x3dc, /* U+0003dd: GREEK SMALL LETTER DIGAMMA*/ + 0x3de, /* U+0003de: GREEK LETTER KOPPA*/ + 0x3de, /* U+0003df: GREEK SMALL LETTER KOPPA*/ + 0x3e0, /* U+0003e0: GREEK LETTER SAMPI*/ + 0x3e0, /* U+0003e1: GREEK SMALL LETTER SAMPI*/ + 0x3e2, /* U+0003e2: COPTIC CAPITAL LETTER SHEI*/ + 0x3e2, /* U+0003e3: COPTIC SMALL LETTER SHEI*/ + 0x3e4, /* U+0003e4: COPTIC CAPITAL LETTER FEI*/ + 0x3e4, /* U+0003e5: COPTIC SMALL LETTER FEI*/ + 0x3e6, /* U+0003e6: COPTIC CAPITAL LETTER KHEI*/ + 0x3e6, /* U+0003e7: COPTIC SMALL LETTER KHEI*/ + 0x3e8, /* U+0003e8: COPTIC CAPITAL LETTER HORI*/ + 0x3e8, /* U+0003e9: COPTIC SMALL LETTER HORI*/ + 0x3ea, /* U+0003ea: COPTIC CAPITAL LETTER GANGIA*/ + 0x3ea, /* U+0003eb: COPTIC SMALL LETTER GANGIA*/ + 0x3ec, /* U+0003ec: COPTIC CAPITAL LETTER SHIMA*/ + 0x3ec, /* U+0003ed: COPTIC SMALL LETTER SHIMA*/ + 0x3ee, /* U+0003ee: COPTIC CAPITAL LETTER DEI*/ + 0x3ee, /* U+0003ef: COPTIC SMALL LETTER DEI*/ + 0x39a, /* U+0003f0: GREEK KAPPA SYMBOL*/ + 0x3a1, /* U+0003f1: GREEK RHO SYMBOL*/ + 0x3f9, /* U+0003f2: GREEK LUNATE SIGMA SYMBOL*/ + 0x3f3, /* U+0003f3: GREEK LETTER YOT*/ + 0x3f4, /* U+0003f4: GREEK CAPITAL THETA SYMBOL*/ + 0x395, /* U+0003f5: GREEK LUNATE EPSILON SYMBOL*/ + 0x3f6, /* U+0003f6: GREEK REVERSED LUNATE EPSILON SYMBOL*/ + 0x3f7, /* U+0003f7: GREEK CAPITAL LETTER SHO*/ + 0x3f7, /* U+0003f8: GREEK SMALL LETTER SHO*/ + 0x3f9, /* U+0003f9: GREEK CAPITAL LUNATE SIGMA SYMBOL*/ + 0x3fa, /* U+0003fa: GREEK CAPITAL LETTER SAN*/ + 0x3fa, /* U+0003fb: GREEK SMALL LETTER SAN*/ + 0x3fc, /* U+0003fc: GREEK RHO WITH STROKE SYMBOL*/ + 0x3fd, /* U+0003fd: GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL*/ + 0x3fe, /* U+0003fe: GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL*/ + 0x3ff, /* U+0003ff: GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL*/ + 0x400, /* U+000400: CYRILLIC CAPITAL LETTER IE WITH GRAVE*/ + 0x401, /* U+000401: CYRILLIC CAPITAL LETTER IO*/ + 0x402, /* U+000402: CYRILLIC CAPITAL LETTER DJE*/ + 0x403, /* U+000403: CYRILLIC CAPITAL LETTER GJE*/ + 0x404, /* U+000404: CYRILLIC CAPITAL LETTER UKRAINIAN IE*/ + 0x405, /* U+000405: CYRILLIC CAPITAL LETTER DZE*/ + 0x406, /* U+000406: CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I*/ + 0x407, /* U+000407: CYRILLIC CAPITAL LETTER YI*/ + 0x408, /* U+000408: CYRILLIC CAPITAL LETTER JE*/ + 0x409, /* U+000409: CYRILLIC CAPITAL LETTER LJE*/ + 0x40a, /* U+00040a: CYRILLIC CAPITAL LETTER NJE*/ + 0x40b, /* U+00040b: CYRILLIC CAPITAL LETTER TSHE*/ + 0x40c, /* U+00040c: CYRILLIC CAPITAL LETTER KJE*/ + 0x40d, /* U+00040d: CYRILLIC CAPITAL LETTER I WITH GRAVE*/ + 0x40e, /* U+00040e: CYRILLIC CAPITAL LETTER SHORT U*/ + 0x40f, /* U+00040f: CYRILLIC CAPITAL LETTER DZHE*/ + 0x410, /* U+000410: CYRILLIC CAPITAL LETTER A*/ + 0x411, /* U+000411: CYRILLIC CAPITAL LETTER BE*/ + 0x412, /* U+000412: CYRILLIC CAPITAL LETTER VE*/ + 0x413, /* U+000413: CYRILLIC CAPITAL LETTER GHE*/ + 0x414, /* U+000414: CYRILLIC CAPITAL LETTER DE*/ + 0x415, /* U+000415: CYRILLIC CAPITAL LETTER IE*/ + 0x416, /* U+000416: CYRILLIC CAPITAL LETTER ZHE*/ + 0x417, /* U+000417: CYRILLIC CAPITAL LETTER ZE*/ + 0x418, /* U+000418: CYRILLIC CAPITAL LETTER I*/ + 0x419, /* U+000419: CYRILLIC CAPITAL LETTER SHORT I*/ + 0x41a, /* U+00041a: CYRILLIC CAPITAL LETTER KA*/ + 0x41b, /* U+00041b: CYRILLIC CAPITAL LETTER EL*/ + 0x41c, /* U+00041c: CYRILLIC CAPITAL LETTER EM*/ + 0x41d, /* U+00041d: CYRILLIC CAPITAL LETTER EN*/ + 0x41e, /* U+00041e: CYRILLIC CAPITAL LETTER O*/ + 0x41f, /* U+00041f: CYRILLIC CAPITAL LETTER PE*/ + 0x420, /* U+000420: CYRILLIC CAPITAL LETTER ER*/ + 0x421, /* U+000421: CYRILLIC CAPITAL LETTER ES*/ + 0x422, /* U+000422: CYRILLIC CAPITAL LETTER TE*/ + 0x423, /* U+000423: CYRILLIC CAPITAL LETTER U*/ + 0x424, /* U+000424: CYRILLIC CAPITAL LETTER EF*/ + 0x425, /* U+000425: CYRILLIC CAPITAL LETTER HA*/ + 0x426, /* U+000426: CYRILLIC CAPITAL LETTER TSE*/ + 0x427, /* U+000427: CYRILLIC CAPITAL LETTER CHE*/ + 0x428, /* U+000428: CYRILLIC CAPITAL LETTER SHA*/ + 0x429, /* U+000429: CYRILLIC CAPITAL LETTER SHCHA*/ + 0x42a, /* U+00042a: CYRILLIC CAPITAL LETTER HARD SIGN*/ + 0x42b, /* U+00042b: CYRILLIC CAPITAL LETTER YERU*/ + 0x42c, /* U+00042c: CYRILLIC CAPITAL LETTER SOFT SIGN*/ + 0x42d, /* U+00042d: CYRILLIC CAPITAL LETTER E*/ + 0x42e, /* U+00042e: CYRILLIC CAPITAL LETTER YU*/ + 0x42f, /* U+00042f: CYRILLIC CAPITAL LETTER YA*/ + 0x410, /* U+000430: CYRILLIC SMALL LETTER A*/ + 0x411, /* U+000431: CYRILLIC SMALL LETTER BE*/ + 0x412, /* U+000432: CYRILLIC SMALL LETTER VE*/ + 0x413, /* U+000433: CYRILLIC SMALL LETTER GHE*/ + 0x414, /* U+000434: CYRILLIC SMALL LETTER DE*/ + 0x415, /* U+000435: CYRILLIC SMALL LETTER IE*/ + 0x416, /* U+000436: CYRILLIC SMALL LETTER ZHE*/ + 0x417, /* U+000437: CYRILLIC SMALL LETTER ZE*/ + 0x418, /* U+000438: CYRILLIC SMALL LETTER I*/ + 0x419, /* U+000439: CYRILLIC SMALL LETTER SHORT I*/ + 0x41a, /* U+00043a: CYRILLIC SMALL LETTER KA*/ + 0x41b, /* U+00043b: CYRILLIC SMALL LETTER EL*/ + 0x41c, /* U+00043c: CYRILLIC SMALL LETTER EM*/ + 0x41d, /* U+00043d: CYRILLIC SMALL LETTER EN*/ + 0x41e, /* U+00043e: CYRILLIC SMALL LETTER O*/ + 0x41f, /* U+00043f: CYRILLIC SMALL LETTER PE*/ + 0x420, /* U+000440: CYRILLIC SMALL LETTER ER*/ + 0x421, /* U+000441: CYRILLIC SMALL LETTER ES*/ + 0x422, /* U+000442: CYRILLIC SMALL LETTER TE*/ + 0x423, /* U+000443: CYRILLIC SMALL LETTER U*/ + 0x424, /* U+000444: CYRILLIC SMALL LETTER EF*/ + 0x425, /* U+000445: CYRILLIC SMALL LETTER HA*/ + 0x426, /* U+000446: CYRILLIC SMALL LETTER TSE*/ + 0x427, /* U+000447: CYRILLIC SMALL LETTER CHE*/ + 0x428, /* U+000448: CYRILLIC SMALL LETTER SHA*/ + 0x429, /* U+000449: CYRILLIC SMALL LETTER SHCHA*/ + 0x42a, /* U+00044a: CYRILLIC SMALL LETTER HARD SIGN*/ + 0x42b, /* U+00044b: CYRILLIC SMALL LETTER YERU*/ + 0x42c, /* U+00044c: CYRILLIC SMALL LETTER SOFT SIGN*/ + 0x42d, /* U+00044d: CYRILLIC SMALL LETTER E*/ + 0x42e, /* U+00044e: CYRILLIC SMALL LETTER YU*/ + 0x42f, /* U+00044f: CYRILLIC SMALL LETTER YA*/ + 0x400, /* U+000450: CYRILLIC SMALL LETTER IE WITH GRAVE*/ + 0x401, /* U+000451: CYRILLIC SMALL LETTER IO*/ + 0x402, /* U+000452: CYRILLIC SMALL LETTER DJE*/ + 0x403, /* U+000453: CYRILLIC SMALL LETTER GJE*/ + 0x404, /* U+000454: CYRILLIC SMALL LETTER UKRAINIAN IE*/ + 0x405, /* U+000455: CYRILLIC SMALL LETTER DZE*/ + 0x406, /* U+000456: CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I*/ + 0x407, /* U+000457: CYRILLIC SMALL LETTER YI*/ + 0x408, /* U+000458: CYRILLIC SMALL LETTER JE*/ + 0x409, /* U+000459: CYRILLIC SMALL LETTER LJE*/ + 0x40a, /* U+00045a: CYRILLIC SMALL LETTER NJE*/ + 0x40b, /* U+00045b: CYRILLIC SMALL LETTER TSHE*/ + 0x40c, /* U+00045c: CYRILLIC SMALL LETTER KJE*/ + 0x40d, /* U+00045d: CYRILLIC SMALL LETTER I WITH GRAVE*/ + 0x40e, /* U+00045e: CYRILLIC SMALL LETTER SHORT U*/ + 0x40f, /* U+00045f: CYRILLIC SMALL LETTER DZHE*/ + 0x460, /* U+000460: CYRILLIC CAPITAL LETTER OMEGA*/ + 0x460, /* U+000461: CYRILLIC SMALL LETTER OMEGA*/ + 0x462, /* U+000462: CYRILLIC CAPITAL LETTER YAT*/ + 0x462, /* U+000463: CYRILLIC SMALL LETTER YAT*/ + 0x464, /* U+000464: CYRILLIC CAPITAL LETTER IOTIFIED E*/ + 0x464, /* U+000465: CYRILLIC SMALL LETTER IOTIFIED E*/ + 0x466, /* U+000466: CYRILLIC CAPITAL LETTER LITTLE YUS*/ + 0x466, /* U+000467: CYRILLIC SMALL LETTER LITTLE YUS*/ + 0x468, /* U+000468: CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS*/ + 0x468, /* U+000469: CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS*/ + 0x46a, /* U+00046a: CYRILLIC CAPITAL LETTER BIG YUS*/ + 0x46a, /* U+00046b: CYRILLIC SMALL LETTER BIG YUS*/ + 0x46c, /* U+00046c: CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS*/ + 0x46c, /* U+00046d: CYRILLIC SMALL LETTER IOTIFIED BIG YUS*/ + 0x46e, /* U+00046e: CYRILLIC CAPITAL LETTER KSI*/ + 0x46e, /* U+00046f: CYRILLIC SMALL LETTER KSI*/ + 0x470, /* U+000470: CYRILLIC CAPITAL LETTER PSI*/ + 0x470, /* U+000471: CYRILLIC SMALL LETTER PSI*/ + 0x472, /* U+000472: CYRILLIC CAPITAL LETTER FITA*/ + 0x472, /* U+000473: CYRILLIC SMALL LETTER FITA*/ + 0x474, /* U+000474: CYRILLIC CAPITAL LETTER IZHITSA*/ + 0x474, /* U+000475: CYRILLIC SMALL LETTER IZHITSA*/ + 0x476, /* U+000476: CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ + 0x476, /* U+000477: CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/ + 0x478, /* U+000478: CYRILLIC CAPITAL LETTER UK*/ + 0x478, /* U+000479: CYRILLIC SMALL LETTER UK*/ + 0x47a, /* U+00047a: CYRILLIC CAPITAL LETTER ROUND OMEGA*/ + 0x47a, /* U+00047b: CYRILLIC SMALL LETTER ROUND OMEGA*/ + 0x47c, /* U+00047c: CYRILLIC CAPITAL LETTER OMEGA WITH TITLO*/ + 0x47c, /* U+00047d: CYRILLIC SMALL LETTER OMEGA WITH TITLO*/ + 0x47e, /* U+00047e: CYRILLIC CAPITAL LETTER OT*/ + 0x47e, /* U+00047f: CYRILLIC SMALL LETTER OT*/ + 0x480, /* U+000480: CYRILLIC CAPITAL LETTER KOPPA*/ + 0x480, /* U+000481: CYRILLIC SMALL LETTER KOPPA*/ + 0x482, /* U+000482: CYRILLIC THOUSANDS SIGN*/ + 0x483, /* U+000483: COMBINING CYRILLIC TITLO*/ + 0x484, /* U+000484: COMBINING CYRILLIC PALATALIZATION*/ + 0x485, /* U+000485: COMBINING CYRILLIC DASIA PNEUMATA*/ + 0x486, /* U+000486: COMBINING CYRILLIC PSILI PNEUMATA*/ + 0x487, /* U+000487: COMBINING CYRILLIC POKRYTIE*/ + 0x488, /* U+000488: COMBINING CYRILLIC HUNDRED THOUSANDS SIGN*/ + 0x489, /* U+000489: COMBINING CYRILLIC MILLIONS SIGN*/ + 0x48a, /* U+00048a: CYRILLIC CAPITAL LETTER SHORT I WITH TAIL*/ + 0x48a, /* U+00048b: CYRILLIC SMALL LETTER SHORT I WITH TAIL*/ + 0x48c, /* U+00048c: CYRILLIC CAPITAL LETTER SEMISOFT SIGN*/ + 0x48c, /* U+00048d: CYRILLIC SMALL LETTER SEMISOFT SIGN*/ + 0x48e, /* U+00048e: CYRILLIC CAPITAL LETTER ER WITH TICK*/ + 0x48e, /* U+00048f: CYRILLIC SMALL LETTER ER WITH TICK*/ + 0x490, /* U+000490: CYRILLIC CAPITAL LETTER GHE WITH UPTURN*/ + 0x490, /* U+000491: CYRILLIC SMALL LETTER GHE WITH UPTURN*/ + 0x492, /* U+000492: CYRILLIC CAPITAL LETTER GHE WITH STROKE*/ + 0x492, /* U+000493: CYRILLIC SMALL LETTER GHE WITH STROKE*/ + 0x494, /* U+000494: CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK*/ + 0x494, /* U+000495: CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK*/ + 0x496, /* U+000496: CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER*/ + 0x496, /* U+000497: CYRILLIC SMALL LETTER ZHE WITH DESCENDER*/ + 0x498, /* U+000498: CYRILLIC CAPITAL LETTER ZE WITH DESCENDER*/ + 0x498, /* U+000499: CYRILLIC SMALL LETTER ZE WITH DESCENDER*/ + 0x49a, /* U+00049a: CYRILLIC CAPITAL LETTER KA WITH DESCENDER*/ + 0x49a, /* U+00049b: CYRILLIC SMALL LETTER KA WITH DESCENDER*/ + 0x49c, /* U+00049c: CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE*/ + 0x49c, /* U+00049d: CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE*/ + 0x49e, /* U+00049e: CYRILLIC CAPITAL LETTER KA WITH STROKE*/ + 0x49e, /* U+00049f: CYRILLIC SMALL LETTER KA WITH STROKE*/ + 0x4a0, /* U+0004a0: CYRILLIC CAPITAL LETTER BASHKIR KA*/ + 0x4a0, /* U+0004a1: CYRILLIC SMALL LETTER BASHKIR KA*/ + 0x4a2, /* U+0004a2: CYRILLIC CAPITAL LETTER EN WITH DESCENDER*/ + 0x4a2, /* U+0004a3: CYRILLIC SMALL LETTER EN WITH DESCENDER*/ + 0x4a4, /* U+0004a4: CYRILLIC CAPITAL LIGATURE EN GHE*/ + 0x4a4, /* U+0004a5: CYRILLIC SMALL LIGATURE EN GHE*/ + 0x4a6, /* U+0004a6: CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK*/ + 0x4a6, /* U+0004a7: CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK*/ + 0x4a8, /* U+0004a8: CYRILLIC CAPITAL LETTER ABKHASIAN HA*/ + 0x4a8, /* U+0004a9: CYRILLIC SMALL LETTER ABKHASIAN HA*/ + 0x4aa, /* U+0004aa: CYRILLIC CAPITAL LETTER ES WITH DESCENDER*/ + 0x4aa, /* U+0004ab: CYRILLIC SMALL LETTER ES WITH DESCENDER*/ + 0x4ac, /* U+0004ac: CYRILLIC CAPITAL LETTER TE WITH DESCENDER*/ + 0x4ac, /* U+0004ad: CYRILLIC SMALL LETTER TE WITH DESCENDER*/ + 0x4ae, /* U+0004ae: CYRILLIC CAPITAL LETTER STRAIGHT U*/ + 0x4ae, /* U+0004af: CYRILLIC SMALL LETTER STRAIGHT U*/ + 0x4b0, /* U+0004b0: CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE*/ + 0x4b0, /* U+0004b1: CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE*/ + 0x4b2, /* U+0004b2: CYRILLIC CAPITAL LETTER HA WITH DESCENDER*/ + 0x4b2, /* U+0004b3: CYRILLIC SMALL LETTER HA WITH DESCENDER*/ + 0x4b4, /* U+0004b4: CYRILLIC CAPITAL LIGATURE TE TSE*/ + 0x4b4, /* U+0004b5: CYRILLIC SMALL LIGATURE TE TSE*/ + 0x4b6, /* U+0004b6: CYRILLIC CAPITAL LETTER CHE WITH DESCENDER*/ + 0x4b6, /* U+0004b7: CYRILLIC SMALL LETTER CHE WITH DESCENDER*/ + 0x4b8, /* U+0004b8: CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE*/ + 0x4b8, /* U+0004b9: CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE*/ + 0x4ba, /* U+0004ba: CYRILLIC CAPITAL LETTER SHHA*/ + 0x4ba, /* U+0004bb: CYRILLIC SMALL LETTER SHHA*/ + 0x4bc, /* U+0004bc: CYRILLIC CAPITAL LETTER ABKHASIAN CHE*/ + 0x4bc, /* U+0004bd: CYRILLIC SMALL LETTER ABKHASIAN CHE*/ + 0x4be, /* U+0004be: CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER*/ + 0x4be, /* U+0004bf: CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER*/ + 0x4c0, /* U+0004c0: CYRILLIC LETTER PALOCHKA*/ + 0x4c1, /* U+0004c1: CYRILLIC CAPITAL LETTER ZHE WITH BREVE*/ + 0x4c1, /* U+0004c2: CYRILLIC SMALL LETTER ZHE WITH BREVE*/ + 0x4c3, /* U+0004c3: CYRILLIC CAPITAL LETTER KA WITH HOOK*/ + 0x4c3, /* U+0004c4: CYRILLIC SMALL LETTER KA WITH HOOK*/ + 0x4c5, /* U+0004c5: CYRILLIC CAPITAL LETTER EL WITH TAIL*/ + 0x4c5, /* U+0004c6: CYRILLIC SMALL LETTER EL WITH TAIL*/ + 0x4c7, /* U+0004c7: CYRILLIC CAPITAL LETTER EN WITH HOOK*/ + 0x4c7, /* U+0004c8: CYRILLIC SMALL LETTER EN WITH HOOK*/ + 0x4c9, /* U+0004c9: CYRILLIC CAPITAL LETTER EN WITH TAIL*/ + 0x4c9, /* U+0004ca: CYRILLIC SMALL LETTER EN WITH TAIL*/ + 0x4cb, /* U+0004cb: CYRILLIC CAPITAL LETTER KHAKASSIAN CHE*/ + 0x4cb, /* U+0004cc: CYRILLIC SMALL LETTER KHAKASSIAN CHE*/ + 0x4cd, /* U+0004cd: CYRILLIC CAPITAL LETTER EM WITH TAIL*/ + 0x4cd, /* U+0004ce: CYRILLIC SMALL LETTER EM WITH TAIL*/ + 0x4c0, /* U+0004cf: CYRILLIC SMALL LETTER PALOCHKA*/ + 0x4d0, /* U+0004d0: CYRILLIC CAPITAL LETTER A WITH BREVE*/ + 0x4d0, /* U+0004d1: CYRILLIC SMALL LETTER A WITH BREVE*/ + 0x4d2, /* U+0004d2: CYRILLIC CAPITAL LETTER A WITH DIAERESIS*/ + 0x4d2, /* U+0004d3: CYRILLIC SMALL LETTER A WITH DIAERESIS*/ + 0x4d4, /* U+0004d4: CYRILLIC CAPITAL LIGATURE A IE*/ + 0x4d4, /* U+0004d5: CYRILLIC SMALL LIGATURE A IE*/ + 0x4d6, /* U+0004d6: CYRILLIC CAPITAL LETTER IE WITH BREVE*/ + 0x4d6, /* U+0004d7: CYRILLIC SMALL LETTER IE WITH BREVE*/ + 0x4d8, /* U+0004d8: CYRILLIC CAPITAL LETTER SCHWA*/ + 0x4d8, /* U+0004d9: CYRILLIC SMALL LETTER SCHWA*/ + 0x4da, /* U+0004da: CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS*/ + 0x4da, /* U+0004db: CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS*/ + 0x4dc, /* U+0004dc: CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS*/ + 0x4dc, /* U+0004dd: CYRILLIC SMALL LETTER ZHE WITH DIAERESIS*/ + 0x4de, /* U+0004de: CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS*/ + 0x4de, /* U+0004df: CYRILLIC SMALL LETTER ZE WITH DIAERESIS*/ + 0x4e0, /* U+0004e0: CYRILLIC CAPITAL LETTER ABKHASIAN DZE*/ + 0x4e0, /* U+0004e1: CYRILLIC SMALL LETTER ABKHASIAN DZE*/ + 0x4e2, /* U+0004e2: CYRILLIC CAPITAL LETTER I WITH MACRON*/ + 0x4e2, /* U+0004e3: CYRILLIC SMALL LETTER I WITH MACRON*/ + 0x4e4, /* U+0004e4: CYRILLIC CAPITAL LETTER I WITH DIAERESIS*/ + 0x4e4, /* U+0004e5: CYRILLIC SMALL LETTER I WITH DIAERESIS*/ + 0x4e6, /* U+0004e6: CYRILLIC CAPITAL LETTER O WITH DIAERESIS*/ + 0x4e6, /* U+0004e7: CYRILLIC SMALL LETTER O WITH DIAERESIS*/ + 0x4e8, /* U+0004e8: CYRILLIC CAPITAL LETTER BARRED O*/ + 0x4e8, /* U+0004e9: CYRILLIC SMALL LETTER BARRED O*/ + 0x4ea, /* U+0004ea: CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS*/ + 0x4ea, /* U+0004eb: CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS*/ + 0x4ec, /* U+0004ec: CYRILLIC CAPITAL LETTER E WITH DIAERESIS*/ + 0x4ec, /* U+0004ed: CYRILLIC SMALL LETTER E WITH DIAERESIS*/ + 0x4ee, /* U+0004ee: CYRILLIC CAPITAL LETTER U WITH MACRON*/ + 0x4ee, /* U+0004ef: CYRILLIC SMALL LETTER U WITH MACRON*/ + 0x4f0, /* U+0004f0: CYRILLIC CAPITAL LETTER U WITH DIAERESIS*/ + 0x4f0, /* U+0004f1: CYRILLIC SMALL LETTER U WITH DIAERESIS*/ + 0x4f2, /* U+0004f2: CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE*/ + 0x4f2, /* U+0004f3: CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE*/ + 0x4f4, /* U+0004f4: CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS*/ + 0x4f4, /* U+0004f5: CYRILLIC SMALL LETTER CHE WITH DIAERESIS*/ + 0x4f6, /* U+0004f6: CYRILLIC CAPITAL LETTER GHE WITH DESCENDER*/ + 0x4f6, /* U+0004f7: CYRILLIC SMALL LETTER GHE WITH DESCENDER*/ + 0x4f8, /* U+0004f8: CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS*/ + 0x4f8, /* U+0004f9: CYRILLIC SMALL LETTER YERU WITH DIAERESIS*/ + 0x4fa, /* U+0004fa: CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK*/ + 0x4fa, /* U+0004fb: CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK*/ + 0x4fc, /* U+0004fc: CYRILLIC CAPITAL LETTER HA WITH HOOK*/ + 0x4fc, /* U+0004fd: CYRILLIC SMALL LETTER HA WITH HOOK*/ + 0x4fe, /* U+0004fe: CYRILLIC CAPITAL LETTER HA WITH STROKE*/ + 0x4fe, /* U+0004ff: CYRILLIC SMALL LETTER HA WITH STROKE*/ + 0x500, /* U+000500: CYRILLIC CAPITAL LETTER KOMI DE*/ + 0x500, /* U+000501: CYRILLIC SMALL LETTER KOMI DE*/ + 0x502, /* U+000502: CYRILLIC CAPITAL LETTER KOMI DJE*/ + 0x502, /* U+000503: CYRILLIC SMALL LETTER KOMI DJE*/ + 0x504, /* U+000504: CYRILLIC CAPITAL LETTER KOMI ZJE*/ + 0x504, /* U+000505: CYRILLIC SMALL LETTER KOMI ZJE*/ + 0x506, /* U+000506: CYRILLIC CAPITAL LETTER KOMI DZJE*/ + 0x506, /* U+000507: CYRILLIC SMALL LETTER KOMI DZJE*/ + 0x508, /* U+000508: CYRILLIC CAPITAL LETTER KOMI LJE*/ + 0x508, /* U+000509: CYRILLIC SMALL LETTER KOMI LJE*/ + 0x50a, /* U+00050a: CYRILLIC CAPITAL LETTER KOMI NJE*/ + 0x50a, /* U+00050b: CYRILLIC SMALL LETTER KOMI NJE*/ + 0x50c, /* U+00050c: CYRILLIC CAPITAL LETTER KOMI SJE*/ + 0x50c, /* U+00050d: CYRILLIC SMALL LETTER KOMI SJE*/ + 0x50e, /* U+00050e: CYRILLIC CAPITAL LETTER KOMI TJE*/ + 0x50e, /* U+00050f: CYRILLIC SMALL LETTER KOMI TJE*/ + 0x510, /* U+000510: CYRILLIC CAPITAL LETTER REVERSED ZE*/ + 0x510, /* U+000511: CYRILLIC SMALL LETTER REVERSED ZE*/ + 0x512, /* U+000512: CYRILLIC CAPITAL LETTER EL WITH HOOK*/ + 0x512, /* U+000513: CYRILLIC SMALL LETTER EL WITH HOOK*/ + 0x514, /* U+000514: CYRILLIC CAPITAL LETTER LHA*/ + 0x514, /* U+000515: CYRILLIC SMALL LETTER LHA*/ + 0x516, /* U+000516: CYRILLIC CAPITAL LETTER RHA*/ + 0x516, /* U+000517: CYRILLIC SMALL LETTER RHA*/ + 0x518, /* U+000518: CYRILLIC CAPITAL LETTER YAE*/ + 0x518, /* U+000519: CYRILLIC SMALL LETTER YAE*/ + 0x51a, /* U+00051a: CYRILLIC CAPITAL LETTER QA*/ + 0x51a, /* U+00051b: CYRILLIC SMALL LETTER QA*/ + 0x51c, /* U+00051c: CYRILLIC CAPITAL LETTER WE*/ + 0x51c, /* U+00051d: CYRILLIC SMALL LETTER WE*/ + 0x51e, /* U+00051e: CYRILLIC CAPITAL LETTER ALEUT KA*/ + 0x51e, /* U+00051f: CYRILLIC SMALL LETTER ALEUT KA*/ + 0x520, /* U+000520: CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK*/ + 0x520, /* U+000521: CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK*/ + 0x522, /* U+000522: CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK*/ + 0x522, /* U+000523: CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK*/ + 0x524, /* U+000524: CYRILLIC CAPITAL LETTER PE WITH DESCENDER*/ + 0x524, /* U+000525: CYRILLIC SMALL LETTER PE WITH DESCENDER*/ + 0x526, /* U+000526: CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER*/ + 0x526, /* U+000527: CYRILLIC SMALL LETTER SHHA WITH DESCENDER*/ + 0x528, /* U+000528: */ + 0x529, /* U+000529: */ + 0x52a, /* U+00052a: */ + 0x52b, /* U+00052b: */ + 0x52c, /* U+00052c: */ + 0x52d, /* U+00052d: */ + 0x52e, /* U+00052e: */ + 0x52f, /* U+00052f: */ + 0x530, /* U+000530: */ + 0x531, /* U+000531: ARMENIAN CAPITAL LETTER AYB*/ + 0x532, /* U+000532: ARMENIAN CAPITAL LETTER BEN*/ + 0x533, /* U+000533: ARMENIAN CAPITAL LETTER GIM*/ + 0x534, /* U+000534: ARMENIAN CAPITAL LETTER DA*/ + 0x535, /* U+000535: ARMENIAN CAPITAL LETTER ECH*/ + 0x536, /* U+000536: ARMENIAN CAPITAL LETTER ZA*/ + 0x537, /* U+000537: ARMENIAN CAPITAL LETTER EH*/ + 0x538, /* U+000538: ARMENIAN CAPITAL LETTER ET*/ + 0x539, /* U+000539: ARMENIAN CAPITAL LETTER TO*/ + 0x53a, /* U+00053a: ARMENIAN CAPITAL LETTER ZHE*/ + 0x53b, /* U+00053b: ARMENIAN CAPITAL LETTER INI*/ + 0x53c, /* U+00053c: ARMENIAN CAPITAL LETTER LIWN*/ + 0x53d, /* U+00053d: ARMENIAN CAPITAL LETTER XEH*/ + 0x53e, /* U+00053e: ARMENIAN CAPITAL LETTER CA*/ + 0x53f, /* U+00053f: ARMENIAN CAPITAL LETTER KEN*/ + 0x540, /* U+000540: ARMENIAN CAPITAL LETTER HO*/ + 0x541, /* U+000541: ARMENIAN CAPITAL LETTER JA*/ + 0x542, /* U+000542: ARMENIAN CAPITAL LETTER GHAD*/ + 0x543, /* U+000543: ARMENIAN CAPITAL LETTER CHEH*/ + 0x544, /* U+000544: ARMENIAN CAPITAL LETTER MEN*/ + 0x545, /* U+000545: ARMENIAN CAPITAL LETTER YI*/ + 0x546, /* U+000546: ARMENIAN CAPITAL LETTER NOW*/ + 0x547, /* U+000547: ARMENIAN CAPITAL LETTER SHA*/ + 0x548, /* U+000548: ARMENIAN CAPITAL LETTER VO*/ + 0x549, /* U+000549: ARMENIAN CAPITAL LETTER CHA*/ + 0x54a, /* U+00054a: ARMENIAN CAPITAL LETTER PEH*/ + 0x54b, /* U+00054b: ARMENIAN CAPITAL LETTER JHEH*/ + 0x54c, /* U+00054c: ARMENIAN CAPITAL LETTER RA*/ + 0x54d, /* U+00054d: ARMENIAN CAPITAL LETTER SEH*/ + 0x54e, /* U+00054e: ARMENIAN CAPITAL LETTER VEW*/ + 0x54f, /* U+00054f: ARMENIAN CAPITAL LETTER TIWN*/ + 0x550, /* U+000550: ARMENIAN CAPITAL LETTER REH*/ + 0x551, /* U+000551: ARMENIAN CAPITAL LETTER CO*/ + 0x552, /* U+000552: ARMENIAN CAPITAL LETTER YIWN*/ + 0x553, /* U+000553: ARMENIAN CAPITAL LETTER PIWR*/ + 0x554, /* U+000554: ARMENIAN CAPITAL LETTER KEH*/ + 0x555, /* U+000555: ARMENIAN CAPITAL LETTER OH*/ + 0x556, /* U+000556: ARMENIAN CAPITAL LETTER FEH*/ + 0x557, /* U+000557: */ + 0x558, /* U+000558: */ + 0x559, /* U+000559: ARMENIAN MODIFIER LETTER LEFT HALF RING*/ + 0x55a, /* U+00055a: ARMENIAN APOSTROPHE*/ + 0x55b, /* U+00055b: ARMENIAN EMPHASIS MARK*/ + 0x55c, /* U+00055c: ARMENIAN EXCLAMATION MARK*/ + 0x55d, /* U+00055d: ARMENIAN COMMA*/ + 0x55e, /* U+00055e: ARMENIAN QUESTION MARK*/ + 0x55f, /* U+00055f: ARMENIAN ABBREVIATION MARK*/ + 0x560, /* U+000560: */ + 0x531, /* U+000561: ARMENIAN SMALL LETTER AYB*/ + 0x532, /* U+000562: ARMENIAN SMALL LETTER BEN*/ + 0x533, /* U+000563: ARMENIAN SMALL LETTER GIM*/ + 0x534, /* U+000564: ARMENIAN SMALL LETTER DA*/ + 0x535, /* U+000565: ARMENIAN SMALL LETTER ECH*/ + 0x536, /* U+000566: ARMENIAN SMALL LETTER ZA*/ + 0x537, /* U+000567: ARMENIAN SMALL LETTER EH*/ + 0x538, /* U+000568: ARMENIAN SMALL LETTER ET*/ + 0x539, /* U+000569: ARMENIAN SMALL LETTER TO*/ + 0x53a, /* U+00056a: ARMENIAN SMALL LETTER ZHE*/ + 0x53b, /* U+00056b: ARMENIAN SMALL LETTER INI*/ + 0x53c, /* U+00056c: ARMENIAN SMALL LETTER LIWN*/ + 0x53d, /* U+00056d: ARMENIAN SMALL LETTER XEH*/ + 0x53e, /* U+00056e: ARMENIAN SMALL LETTER CA*/ + 0x53f, /* U+00056f: ARMENIAN SMALL LETTER KEN*/ + 0x540, /* U+000570: ARMENIAN SMALL LETTER HO*/ + 0x541, /* U+000571: ARMENIAN SMALL LETTER JA*/ + 0x542, /* U+000572: ARMENIAN SMALL LETTER GHAD*/ + 0x543, /* U+000573: ARMENIAN SMALL LETTER CHEH*/ + 0x544, /* U+000574: ARMENIAN SMALL LETTER MEN*/ + 0x545, /* U+000575: ARMENIAN SMALL LETTER YI*/ + 0x546, /* U+000576: ARMENIAN SMALL LETTER NOW*/ + 0x547, /* U+000577: ARMENIAN SMALL LETTER SHA*/ + 0x548, /* U+000578: ARMENIAN SMALL LETTER VO*/ + 0x549, /* U+000579: ARMENIAN SMALL LETTER CHA*/ + 0x54a, /* U+00057a: ARMENIAN SMALL LETTER PEH*/ + 0x54b, /* U+00057b: ARMENIAN SMALL LETTER JHEH*/ + 0x54c, /* U+00057c: ARMENIAN SMALL LETTER RA*/ + 0x54d, /* U+00057d: ARMENIAN SMALL LETTER SEH*/ + 0x54e, /* U+00057e: ARMENIAN SMALL LETTER VEW*/ + 0x54f, /* U+00057f: ARMENIAN SMALL LETTER TIWN*/ + 0x550, /* U+000580: ARMENIAN SMALL LETTER REH*/ + 0x551, /* U+000581: ARMENIAN SMALL LETTER CO*/ + 0x552, /* U+000582: ARMENIAN SMALL LETTER YIWN*/ + 0x553, /* U+000583: ARMENIAN SMALL LETTER PIWR*/ + 0x554, /* U+000584: ARMENIAN SMALL LETTER KEH*/ + 0x555, /* U+000585: ARMENIAN SMALL LETTER OH*/ + 0x556, /* U+000586: ARMENIAN SMALL LETTER FEH*/ +}; + +static const RTUNICP g_afRTUniUpper0x001d79[] = +{ + 0xa77d, /* U+001d79: LATIN SMALL LETTER INSULAR G*/ + 0x1d7a, /* U+001d7a: LATIN SMALL LETTER TH WITH STRIKETHROUGH*/ + 0x1d7b, /* U+001d7b: LATIN SMALL CAPITAL LETTER I WITH STROKE*/ + 0x1d7c, /* U+001d7c: LATIN SMALL LETTER IOTA WITH STROKE*/ + 0x2c63, /* U+001d7d: LATIN SMALL LETTER P WITH STROKE*/ + 0x1d7e, /* U+001d7e: LATIN SMALL CAPITAL LETTER U WITH STROKE*/ + 0x1d7f, /* U+001d7f: LATIN SMALL LETTER UPSILON WITH STROKE*/ + 0x1d80, /* U+001d80: LATIN SMALL LETTER B WITH PALATAL HOOK*/ + 0x1d81, /* U+001d81: LATIN SMALL LETTER D WITH PALATAL HOOK*/ + 0x1d82, /* U+001d82: LATIN SMALL LETTER F WITH PALATAL HOOK*/ + 0x1d83, /* U+001d83: LATIN SMALL LETTER G WITH PALATAL HOOK*/ + 0x1d84, /* U+001d84: LATIN SMALL LETTER K WITH PALATAL HOOK*/ + 0x1d85, /* U+001d85: LATIN SMALL LETTER L WITH PALATAL HOOK*/ + 0x1d86, /* U+001d86: LATIN SMALL LETTER M WITH PALATAL HOOK*/ + 0x1d87, /* U+001d87: LATIN SMALL LETTER N WITH PALATAL HOOK*/ + 0x1d88, /* U+001d88: LATIN SMALL LETTER P WITH PALATAL HOOK*/ + 0x1d89, /* U+001d89: LATIN SMALL LETTER R WITH PALATAL HOOK*/ + 0x1d8a, /* U+001d8a: LATIN SMALL LETTER S WITH PALATAL HOOK*/ + 0x1d8b, /* U+001d8b: LATIN SMALL LETTER ESH WITH PALATAL HOOK*/ + 0x1d8c, /* U+001d8c: LATIN SMALL LETTER V WITH PALATAL HOOK*/ + 0x1d8d, /* U+001d8d: LATIN SMALL LETTER X WITH PALATAL HOOK*/ + 0x1d8e, /* U+001d8e: LATIN SMALL LETTER Z WITH PALATAL HOOK*/ + 0x1d8f, /* U+001d8f: LATIN SMALL LETTER A WITH RETROFLEX HOOK*/ + 0x1d90, /* U+001d90: LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK*/ + 0x1d91, /* U+001d91: LATIN SMALL LETTER D WITH HOOK AND TAIL*/ + 0x1d92, /* U+001d92: LATIN SMALL LETTER E WITH RETROFLEX HOOK*/ + 0x1d93, /* U+001d93: LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK*/ + 0x1d94, /* U+001d94: LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK*/ + 0x1d95, /* U+001d95: LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK*/ + 0x1d96, /* U+001d96: LATIN SMALL LETTER I WITH RETROFLEX HOOK*/ + 0x1d97, /* U+001d97: LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK*/ + 0x1d98, /* U+001d98: LATIN SMALL LETTER ESH WITH RETROFLEX HOOK*/ + 0x1d99, /* U+001d99: LATIN SMALL LETTER U WITH RETROFLEX HOOK*/ + 0x1d9a, /* U+001d9a: LATIN SMALL LETTER EZH WITH RETROFLEX HOOK*/ + 0x1d9b, /* U+001d9b: MODIFIER LETTER SMALL TURNED ALPHA*/ + 0x1d9c, /* U+001d9c: MODIFIER LETTER SMALL C*/ + 0x1d9d, /* U+001d9d: MODIFIER LETTER SMALL C WITH CURL*/ + 0x1d9e, /* U+001d9e: MODIFIER LETTER SMALL ETH*/ + 0x1d9f, /* U+001d9f: MODIFIER LETTER SMALL REVERSED OPEN E*/ + 0x1da0, /* U+001da0: MODIFIER LETTER SMALL F*/ + 0x1da1, /* U+001da1: MODIFIER LETTER SMALL DOTLESS J WITH STROKE*/ + 0x1da2, /* U+001da2: MODIFIER LETTER SMALL SCRIPT G*/ + 0x1da3, /* U+001da3: MODIFIER LETTER SMALL TURNED H*/ + 0x1da4, /* U+001da4: MODIFIER LETTER SMALL I WITH STROKE*/ + 0x1da5, /* U+001da5: MODIFIER LETTER SMALL IOTA*/ + 0x1da6, /* U+001da6: MODIFIER LETTER SMALL CAPITAL I*/ + 0x1da7, /* U+001da7: MODIFIER LETTER SMALL CAPITAL I WITH STROKE*/ + 0x1da8, /* U+001da8: MODIFIER LETTER SMALL J WITH CROSSED-TAIL*/ + 0x1da9, /* U+001da9: MODIFIER LETTER SMALL L WITH RETROFLEX HOOK*/ + 0x1daa, /* U+001daa: MODIFIER LETTER SMALL L WITH PALATAL HOOK*/ + 0x1dab, /* U+001dab: MODIFIER LETTER SMALL CAPITAL L*/ + 0x1dac, /* U+001dac: MODIFIER LETTER SMALL M WITH HOOK*/ + 0x1dad, /* U+001dad: MODIFIER LETTER SMALL TURNED M WITH LONG LEG*/ + 0x1dae, /* U+001dae: MODIFIER LETTER SMALL N WITH LEFT HOOK*/ + 0x1daf, /* U+001daf: MODIFIER LETTER SMALL N WITH RETROFLEX HOOK*/ + 0x1db0, /* U+001db0: MODIFIER LETTER SMALL CAPITAL N*/ + 0x1db1, /* U+001db1: MODIFIER LETTER SMALL BARRED O*/ + 0x1db2, /* U+001db2: MODIFIER LETTER SMALL PHI*/ + 0x1db3, /* U+001db3: MODIFIER LETTER SMALL S WITH HOOK*/ + 0x1db4, /* U+001db4: MODIFIER LETTER SMALL ESH*/ + 0x1db5, /* U+001db5: MODIFIER LETTER SMALL T WITH PALATAL HOOK*/ + 0x1db6, /* U+001db6: MODIFIER LETTER SMALL U BAR*/ + 0x1db7, /* U+001db7: MODIFIER LETTER SMALL UPSILON*/ + 0x1db8, /* U+001db8: MODIFIER LETTER SMALL CAPITAL U*/ + 0x1db9, /* U+001db9: MODIFIER LETTER SMALL V WITH HOOK*/ + 0x1dba, /* U+001dba: MODIFIER LETTER SMALL TURNED V*/ + 0x1dbb, /* U+001dbb: MODIFIER LETTER SMALL Z*/ + 0x1dbc, /* U+001dbc: MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK*/ + 0x1dbd, /* U+001dbd: MODIFIER LETTER SMALL Z WITH CURL*/ + 0x1dbe, /* U+001dbe: MODIFIER LETTER SMALL EZH*/ + 0x1dbf, /* U+001dbf: MODIFIER LETTER SMALL THETA*/ + 0x1dc0, /* U+001dc0: COMBINING DOTTED GRAVE ACCENT*/ + 0x1dc1, /* U+001dc1: COMBINING DOTTED ACUTE ACCENT*/ + 0x1dc2, /* U+001dc2: COMBINING SNAKE BELOW*/ + 0x1dc3, /* U+001dc3: COMBINING SUSPENSION MARK*/ + 0x1dc4, /* U+001dc4: COMBINING MACRON-ACUTE*/ + 0x1dc5, /* U+001dc5: COMBINING GRAVE-MACRON*/ + 0x1dc6, /* U+001dc6: COMBINING MACRON-GRAVE*/ + 0x1dc7, /* U+001dc7: COMBINING ACUTE-MACRON*/ + 0x1dc8, /* U+001dc8: COMBINING GRAVE-ACUTE-GRAVE*/ + 0x1dc9, /* U+001dc9: COMBINING ACUTE-GRAVE-ACUTE*/ + 0x1dca, /* U+001dca: COMBINING LATIN SMALL LETTER R BELOW*/ + 0x1dcb, /* U+001dcb: COMBINING BREVE-MACRON*/ + 0x1dcc, /* U+001dcc: COMBINING MACRON-BREVE*/ + 0x1dcd, /* U+001dcd: COMBINING DOUBLE CIRCUMFLEX ABOVE*/ + 0x1dce, /* U+001dce: COMBINING OGONEK ABOVE*/ + 0x1dcf, /* U+001dcf: COMBINING ZIGZAG BELOW*/ + 0x1dd0, /* U+001dd0: COMBINING IS BELOW*/ + 0x1dd1, /* U+001dd1: COMBINING UR ABOVE*/ + 0x1dd2, /* U+001dd2: COMBINING US ABOVE*/ + 0x1dd3, /* U+001dd3: COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE*/ + 0x1dd4, /* U+001dd4: COMBINING LATIN SMALL LETTER AE*/ + 0x1dd5, /* U+001dd5: COMBINING LATIN SMALL LETTER AO*/ + 0x1dd6, /* U+001dd6: COMBINING LATIN SMALL LETTER AV*/ + 0x1dd7, /* U+001dd7: COMBINING LATIN SMALL LETTER C CEDILLA*/ + 0x1dd8, /* U+001dd8: COMBINING LATIN SMALL LETTER INSULAR D*/ + 0x1dd9, /* U+001dd9: COMBINING LATIN SMALL LETTER ETH*/ + 0x1dda, /* U+001dda: COMBINING LATIN SMALL LETTER G*/ + 0x1ddb, /* U+001ddb: COMBINING LATIN LETTER SMALL CAPITAL G*/ + 0x1ddc, /* U+001ddc: COMBINING LATIN SMALL LETTER K*/ + 0x1ddd, /* U+001ddd: COMBINING LATIN SMALL LETTER L*/ + 0x1dde, /* U+001dde: COMBINING LATIN LETTER SMALL CAPITAL L*/ + 0x1ddf, /* U+001ddf: COMBINING LATIN LETTER SMALL CAPITAL M*/ + 0x1de0, /* U+001de0: COMBINING LATIN SMALL LETTER N*/ + 0x1de1, /* U+001de1: COMBINING LATIN LETTER SMALL CAPITAL N*/ + 0x1de2, /* U+001de2: COMBINING LATIN LETTER SMALL CAPITAL R*/ + 0x1de3, /* U+001de3: COMBINING LATIN SMALL LETTER R ROTUNDA*/ + 0x1de4, /* U+001de4: COMBINING LATIN SMALL LETTER S*/ + 0x1de5, /* U+001de5: COMBINING LATIN SMALL LETTER LONG S*/ + 0x1de6, /* U+001de6: COMBINING LATIN SMALL LETTER Z*/ + 0x1de7, /* U+001de7: */ + 0x1de8, /* U+001de8: */ + 0x1de9, /* U+001de9: */ + 0x1dea, /* U+001dea: */ + 0x1deb, /* U+001deb: */ + 0x1dec, /* U+001dec: */ + 0x1ded, /* U+001ded: */ + 0x1dee, /* U+001dee: */ + 0x1def, /* U+001def: */ + 0x1df0, /* U+001df0: */ + 0x1df1, /* U+001df1: */ + 0x1df2, /* U+001df2: */ + 0x1df3, /* U+001df3: */ + 0x1df4, /* U+001df4: */ + 0x1df5, /* U+001df5: */ + 0x1df6, /* U+001df6: */ + 0x1df7, /* U+001df7: */ + 0x1df8, /* U+001df8: */ + 0x1df9, /* U+001df9: */ + 0x1dfa, /* U+001dfa: */ + 0x1dfb, /* U+001dfb: */ + 0x1dfc, /* U+001dfc: COMBINING DOUBLE INVERTED BREVE BELOW*/ + 0x1dfd, /* U+001dfd: COMBINING ALMOST EQUAL TO BELOW*/ + 0x1dfe, /* U+001dfe: COMBINING LEFT ARROWHEAD ABOVE*/ + 0x1dff, /* U+001dff: COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW*/ + 0x1e00, /* U+001e00: LATIN CAPITAL LETTER A WITH RING BELOW*/ + 0x1e00, /* U+001e01: LATIN SMALL LETTER A WITH RING BELOW*/ + 0x1e02, /* U+001e02: LATIN CAPITAL LETTER B WITH DOT ABOVE*/ + 0x1e02, /* U+001e03: LATIN SMALL LETTER B WITH DOT ABOVE*/ + 0x1e04, /* U+001e04: LATIN CAPITAL LETTER B WITH DOT BELOW*/ + 0x1e04, /* U+001e05: LATIN SMALL LETTER B WITH DOT BELOW*/ + 0x1e06, /* U+001e06: LATIN CAPITAL LETTER B WITH LINE BELOW*/ + 0x1e06, /* U+001e07: LATIN SMALL LETTER B WITH LINE BELOW*/ + 0x1e08, /* U+001e08: LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE*/ + 0x1e08, /* U+001e09: LATIN SMALL LETTER C WITH CEDILLA AND ACUTE*/ + 0x1e0a, /* U+001e0a: LATIN CAPITAL LETTER D WITH DOT ABOVE*/ + 0x1e0a, /* U+001e0b: LATIN SMALL LETTER D WITH DOT ABOVE*/ + 0x1e0c, /* U+001e0c: LATIN CAPITAL LETTER D WITH DOT BELOW*/ + 0x1e0c, /* U+001e0d: LATIN SMALL LETTER D WITH DOT BELOW*/ + 0x1e0e, /* U+001e0e: LATIN CAPITAL LETTER D WITH LINE BELOW*/ + 0x1e0e, /* U+001e0f: LATIN SMALL LETTER D WITH LINE BELOW*/ + 0x1e10, /* U+001e10: LATIN CAPITAL LETTER D WITH CEDILLA*/ + 0x1e10, /* U+001e11: LATIN SMALL LETTER D WITH CEDILLA*/ + 0x1e12, /* U+001e12: LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW*/ + 0x1e12, /* U+001e13: LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW*/ + 0x1e14, /* U+001e14: LATIN CAPITAL LETTER E WITH MACRON AND GRAVE*/ + 0x1e14, /* U+001e15: LATIN SMALL LETTER E WITH MACRON AND GRAVE*/ + 0x1e16, /* U+001e16: LATIN CAPITAL LETTER E WITH MACRON AND ACUTE*/ + 0x1e16, /* U+001e17: LATIN SMALL LETTER E WITH MACRON AND ACUTE*/ + 0x1e18, /* U+001e18: LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW*/ + 0x1e18, /* U+001e19: LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW*/ + 0x1e1a, /* U+001e1a: LATIN CAPITAL LETTER E WITH TILDE BELOW*/ + 0x1e1a, /* U+001e1b: LATIN SMALL LETTER E WITH TILDE BELOW*/ + 0x1e1c, /* U+001e1c: LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE*/ + 0x1e1c, /* U+001e1d: LATIN SMALL LETTER E WITH CEDILLA AND BREVE*/ + 0x1e1e, /* U+001e1e: LATIN CAPITAL LETTER F WITH DOT ABOVE*/ + 0x1e1e, /* U+001e1f: LATIN SMALL LETTER F WITH DOT ABOVE*/ + 0x1e20, /* U+001e20: LATIN CAPITAL LETTER G WITH MACRON*/ + 0x1e20, /* U+001e21: LATIN SMALL LETTER G WITH MACRON*/ + 0x1e22, /* U+001e22: LATIN CAPITAL LETTER H WITH DOT ABOVE*/ + 0x1e22, /* U+001e23: LATIN SMALL LETTER H WITH DOT ABOVE*/ + 0x1e24, /* U+001e24: LATIN CAPITAL LETTER H WITH DOT BELOW*/ + 0x1e24, /* U+001e25: LATIN SMALL LETTER H WITH DOT BELOW*/ + 0x1e26, /* U+001e26: LATIN CAPITAL LETTER H WITH DIAERESIS*/ + 0x1e26, /* U+001e27: LATIN SMALL LETTER H WITH DIAERESIS*/ + 0x1e28, /* U+001e28: LATIN CAPITAL LETTER H WITH CEDILLA*/ + 0x1e28, /* U+001e29: LATIN SMALL LETTER H WITH CEDILLA*/ + 0x1e2a, /* U+001e2a: LATIN CAPITAL LETTER H WITH BREVE BELOW*/ + 0x1e2a, /* U+001e2b: LATIN SMALL LETTER H WITH BREVE BELOW*/ + 0x1e2c, /* U+001e2c: LATIN CAPITAL LETTER I WITH TILDE BELOW*/ + 0x1e2c, /* U+001e2d: LATIN SMALL LETTER I WITH TILDE BELOW*/ + 0x1e2e, /* U+001e2e: LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE*/ + 0x1e2e, /* U+001e2f: LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE*/ + 0x1e30, /* U+001e30: LATIN CAPITAL LETTER K WITH ACUTE*/ + 0x1e30, /* U+001e31: LATIN SMALL LETTER K WITH ACUTE*/ + 0x1e32, /* U+001e32: LATIN CAPITAL LETTER K WITH DOT BELOW*/ + 0x1e32, /* U+001e33: LATIN SMALL LETTER K WITH DOT BELOW*/ + 0x1e34, /* U+001e34: LATIN CAPITAL LETTER K WITH LINE BELOW*/ + 0x1e34, /* U+001e35: LATIN SMALL LETTER K WITH LINE BELOW*/ + 0x1e36, /* U+001e36: LATIN CAPITAL LETTER L WITH DOT BELOW*/ + 0x1e36, /* U+001e37: LATIN SMALL LETTER L WITH DOT BELOW*/ + 0x1e38, /* U+001e38: LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON*/ + 0x1e38, /* U+001e39: LATIN SMALL LETTER L WITH DOT BELOW AND MACRON*/ + 0x1e3a, /* U+001e3a: LATIN CAPITAL LETTER L WITH LINE BELOW*/ + 0x1e3a, /* U+001e3b: LATIN SMALL LETTER L WITH LINE BELOW*/ + 0x1e3c, /* U+001e3c: LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW*/ + 0x1e3c, /* U+001e3d: LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW*/ + 0x1e3e, /* U+001e3e: LATIN CAPITAL LETTER M WITH ACUTE*/ + 0x1e3e, /* U+001e3f: LATIN SMALL LETTER M WITH ACUTE*/ + 0x1e40, /* U+001e40: LATIN CAPITAL LETTER M WITH DOT ABOVE*/ + 0x1e40, /* U+001e41: LATIN SMALL LETTER M WITH DOT ABOVE*/ + 0x1e42, /* U+001e42: LATIN CAPITAL LETTER M WITH DOT BELOW*/ + 0x1e42, /* U+001e43: LATIN SMALL LETTER M WITH DOT BELOW*/ + 0x1e44, /* U+001e44: LATIN CAPITAL LETTER N WITH DOT ABOVE*/ + 0x1e44, /* U+001e45: LATIN SMALL LETTER N WITH DOT ABOVE*/ + 0x1e46, /* U+001e46: LATIN CAPITAL LETTER N WITH DOT BELOW*/ + 0x1e46, /* U+001e47: LATIN SMALL LETTER N WITH DOT BELOW*/ + 0x1e48, /* U+001e48: LATIN CAPITAL LETTER N WITH LINE BELOW*/ + 0x1e48, /* U+001e49: LATIN SMALL LETTER N WITH LINE BELOW*/ + 0x1e4a, /* U+001e4a: LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW*/ + 0x1e4a, /* U+001e4b: LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW*/ + 0x1e4c, /* U+001e4c: LATIN CAPITAL LETTER O WITH TILDE AND ACUTE*/ + 0x1e4c, /* U+001e4d: LATIN SMALL LETTER O WITH TILDE AND ACUTE*/ + 0x1e4e, /* U+001e4e: LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS*/ + 0x1e4e, /* U+001e4f: LATIN SMALL LETTER O WITH TILDE AND DIAERESIS*/ + 0x1e50, /* U+001e50: LATIN CAPITAL LETTER O WITH MACRON AND GRAVE*/ + 0x1e50, /* U+001e51: LATIN SMALL LETTER O WITH MACRON AND GRAVE*/ + 0x1e52, /* U+001e52: LATIN CAPITAL LETTER O WITH MACRON AND ACUTE*/ + 0x1e52, /* U+001e53: LATIN SMALL LETTER O WITH MACRON AND ACUTE*/ + 0x1e54, /* U+001e54: LATIN CAPITAL LETTER P WITH ACUTE*/ + 0x1e54, /* U+001e55: LATIN SMALL LETTER P WITH ACUTE*/ + 0x1e56, /* U+001e56: LATIN CAPITAL LETTER P WITH DOT ABOVE*/ + 0x1e56, /* U+001e57: LATIN SMALL LETTER P WITH DOT ABOVE*/ + 0x1e58, /* U+001e58: LATIN CAPITAL LETTER R WITH DOT ABOVE*/ + 0x1e58, /* U+001e59: LATIN SMALL LETTER R WITH DOT ABOVE*/ + 0x1e5a, /* U+001e5a: LATIN CAPITAL LETTER R WITH DOT BELOW*/ + 0x1e5a, /* U+001e5b: LATIN SMALL LETTER R WITH DOT BELOW*/ + 0x1e5c, /* U+001e5c: LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON*/ + 0x1e5c, /* U+001e5d: LATIN SMALL LETTER R WITH DOT BELOW AND MACRON*/ + 0x1e5e, /* U+001e5e: LATIN CAPITAL LETTER R WITH LINE BELOW*/ + 0x1e5e, /* U+001e5f: LATIN SMALL LETTER R WITH LINE BELOW*/ + 0x1e60, /* U+001e60: LATIN CAPITAL LETTER S WITH DOT ABOVE*/ + 0x1e60, /* U+001e61: LATIN SMALL LETTER S WITH DOT ABOVE*/ + 0x1e62, /* U+001e62: LATIN CAPITAL LETTER S WITH DOT BELOW*/ + 0x1e62, /* U+001e63: LATIN SMALL LETTER S WITH DOT BELOW*/ + 0x1e64, /* U+001e64: LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE*/ + 0x1e64, /* U+001e65: LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE*/ + 0x1e66, /* U+001e66: LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE*/ + 0x1e66, /* U+001e67: LATIN SMALL LETTER S WITH CARON AND DOT ABOVE*/ + 0x1e68, /* U+001e68: LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE*/ + 0x1e68, /* U+001e69: LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE*/ + 0x1e6a, /* U+001e6a: LATIN CAPITAL LETTER T WITH DOT ABOVE*/ + 0x1e6a, /* U+001e6b: LATIN SMALL LETTER T WITH DOT ABOVE*/ + 0x1e6c, /* U+001e6c: LATIN CAPITAL LETTER T WITH DOT BELOW*/ + 0x1e6c, /* U+001e6d: LATIN SMALL LETTER T WITH DOT BELOW*/ + 0x1e6e, /* U+001e6e: LATIN CAPITAL LETTER T WITH LINE BELOW*/ + 0x1e6e, /* U+001e6f: LATIN SMALL LETTER T WITH LINE BELOW*/ + 0x1e70, /* U+001e70: LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW*/ + 0x1e70, /* U+001e71: LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW*/ + 0x1e72, /* U+001e72: LATIN CAPITAL LETTER U WITH DIAERESIS BELOW*/ + 0x1e72, /* U+001e73: LATIN SMALL LETTER U WITH DIAERESIS BELOW*/ + 0x1e74, /* U+001e74: LATIN CAPITAL LETTER U WITH TILDE BELOW*/ + 0x1e74, /* U+001e75: LATIN SMALL LETTER U WITH TILDE BELOW*/ + 0x1e76, /* U+001e76: LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW*/ + 0x1e76, /* U+001e77: LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW*/ + 0x1e78, /* U+001e78: LATIN CAPITAL LETTER U WITH TILDE AND ACUTE*/ + 0x1e78, /* U+001e79: LATIN SMALL LETTER U WITH TILDE AND ACUTE*/ + 0x1e7a, /* U+001e7a: LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS*/ + 0x1e7a, /* U+001e7b: LATIN SMALL LETTER U WITH MACRON AND DIAERESIS*/ + 0x1e7c, /* U+001e7c: LATIN CAPITAL LETTER V WITH TILDE*/ + 0x1e7c, /* U+001e7d: LATIN SMALL LETTER V WITH TILDE*/ + 0x1e7e, /* U+001e7e: LATIN CAPITAL LETTER V WITH DOT BELOW*/ + 0x1e7e, /* U+001e7f: LATIN SMALL LETTER V WITH DOT BELOW*/ + 0x1e80, /* U+001e80: LATIN CAPITAL LETTER W WITH GRAVE*/ + 0x1e80, /* U+001e81: LATIN SMALL LETTER W WITH GRAVE*/ + 0x1e82, /* U+001e82: LATIN CAPITAL LETTER W WITH ACUTE*/ + 0x1e82, /* U+001e83: LATIN SMALL LETTER W WITH ACUTE*/ + 0x1e84, /* U+001e84: LATIN CAPITAL LETTER W WITH DIAERESIS*/ + 0x1e84, /* U+001e85: LATIN SMALL LETTER W WITH DIAERESIS*/ + 0x1e86, /* U+001e86: LATIN CAPITAL LETTER W WITH DOT ABOVE*/ + 0x1e86, /* U+001e87: LATIN SMALL LETTER W WITH DOT ABOVE*/ + 0x1e88, /* U+001e88: LATIN CAPITAL LETTER W WITH DOT BELOW*/ + 0x1e88, /* U+001e89: LATIN SMALL LETTER W WITH DOT BELOW*/ + 0x1e8a, /* U+001e8a: LATIN CAPITAL LETTER X WITH DOT ABOVE*/ + 0x1e8a, /* U+001e8b: LATIN SMALL LETTER X WITH DOT ABOVE*/ + 0x1e8c, /* U+001e8c: LATIN CAPITAL LETTER X WITH DIAERESIS*/ + 0x1e8c, /* U+001e8d: LATIN SMALL LETTER X WITH DIAERESIS*/ + 0x1e8e, /* U+001e8e: LATIN CAPITAL LETTER Y WITH DOT ABOVE*/ + 0x1e8e, /* U+001e8f: LATIN SMALL LETTER Y WITH DOT ABOVE*/ + 0x1e90, /* U+001e90: LATIN CAPITAL LETTER Z WITH CIRCUMFLEX*/ + 0x1e90, /* U+001e91: LATIN SMALL LETTER Z WITH CIRCUMFLEX*/ + 0x1e92, /* U+001e92: LATIN CAPITAL LETTER Z WITH DOT BELOW*/ + 0x1e92, /* U+001e93: LATIN SMALL LETTER Z WITH DOT BELOW*/ + 0x1e94, /* U+001e94: LATIN CAPITAL LETTER Z WITH LINE BELOW*/ + 0x1e94, /* U+001e95: LATIN SMALL LETTER Z WITH LINE BELOW*/ + 0x1e96, /* U+001e96: LATIN SMALL LETTER H WITH LINE BELOW*/ + 0x1e97, /* U+001e97: LATIN SMALL LETTER T WITH DIAERESIS*/ + 0x1e98, /* U+001e98: LATIN SMALL LETTER W WITH RING ABOVE*/ + 0x1e99, /* U+001e99: LATIN SMALL LETTER Y WITH RING ABOVE*/ + 0x1e9a, /* U+001e9a: LATIN SMALL LETTER A WITH RIGHT HALF RING*/ + 0x1e60, /* U+001e9b: LATIN SMALL LETTER LONG S WITH DOT ABOVE*/ + 0x1e9c, /* U+001e9c: LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE*/ + 0x1e9d, /* U+001e9d: LATIN SMALL LETTER LONG S WITH HIGH STROKE*/ + 0x1e9e, /* U+001e9e: LATIN CAPITAL LETTER SHARP S*/ + 0x1e9f, /* U+001e9f: LATIN SMALL LETTER DELTA*/ + 0x1ea0, /* U+001ea0: LATIN CAPITAL LETTER A WITH DOT BELOW*/ + 0x1ea0, /* U+001ea1: LATIN SMALL LETTER A WITH DOT BELOW*/ + 0x1ea2, /* U+001ea2: LATIN CAPITAL LETTER A WITH HOOK ABOVE*/ + 0x1ea2, /* U+001ea3: LATIN SMALL LETTER A WITH HOOK ABOVE*/ + 0x1ea4, /* U+001ea4: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE*/ + 0x1ea4, /* U+001ea5: LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE*/ + 0x1ea6, /* U+001ea6: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE*/ + 0x1ea6, /* U+001ea7: LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE*/ + 0x1ea8, /* U+001ea8: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ea8, /* U+001ea9: LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1eaa, /* U+001eaa: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE*/ + 0x1eaa, /* U+001eab: LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE*/ + 0x1eac, /* U+001eac: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1eac, /* U+001ead: LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1eae, /* U+001eae: LATIN CAPITAL LETTER A WITH BREVE AND ACUTE*/ + 0x1eae, /* U+001eaf: LATIN SMALL LETTER A WITH BREVE AND ACUTE*/ + 0x1eb0, /* U+001eb0: LATIN CAPITAL LETTER A WITH BREVE AND GRAVE*/ + 0x1eb0, /* U+001eb1: LATIN SMALL LETTER A WITH BREVE AND GRAVE*/ + 0x1eb2, /* U+001eb2: LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE*/ + 0x1eb2, /* U+001eb3: LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE*/ + 0x1eb4, /* U+001eb4: LATIN CAPITAL LETTER A WITH BREVE AND TILDE*/ + 0x1eb4, /* U+001eb5: LATIN SMALL LETTER A WITH BREVE AND TILDE*/ + 0x1eb6, /* U+001eb6: LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW*/ + 0x1eb6, /* U+001eb7: LATIN SMALL LETTER A WITH BREVE AND DOT BELOW*/ + 0x1eb8, /* U+001eb8: LATIN CAPITAL LETTER E WITH DOT BELOW*/ + 0x1eb8, /* U+001eb9: LATIN SMALL LETTER E WITH DOT BELOW*/ + 0x1eba, /* U+001eba: LATIN CAPITAL LETTER E WITH HOOK ABOVE*/ + 0x1eba, /* U+001ebb: LATIN SMALL LETTER E WITH HOOK ABOVE*/ + 0x1ebc, /* U+001ebc: LATIN CAPITAL LETTER E WITH TILDE*/ + 0x1ebc, /* U+001ebd: LATIN SMALL LETTER E WITH TILDE*/ + 0x1ebe, /* U+001ebe: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE*/ + 0x1ebe, /* U+001ebf: LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE*/ + 0x1ec0, /* U+001ec0: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE*/ + 0x1ec0, /* U+001ec1: LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE*/ + 0x1ec2, /* U+001ec2: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ec2, /* U+001ec3: LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ec4, /* U+001ec4: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE*/ + 0x1ec4, /* U+001ec5: LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE*/ + 0x1ec6, /* U+001ec6: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1ec6, /* U+001ec7: LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1ec8, /* U+001ec8: LATIN CAPITAL LETTER I WITH HOOK ABOVE*/ + 0x1ec8, /* U+001ec9: LATIN SMALL LETTER I WITH HOOK ABOVE*/ + 0x1eca, /* U+001eca: LATIN CAPITAL LETTER I WITH DOT BELOW*/ + 0x1eca, /* U+001ecb: LATIN SMALL LETTER I WITH DOT BELOW*/ + 0x1ecc, /* U+001ecc: LATIN CAPITAL LETTER O WITH DOT BELOW*/ + 0x1ecc, /* U+001ecd: LATIN SMALL LETTER O WITH DOT BELOW*/ + 0x1ece, /* U+001ece: LATIN CAPITAL LETTER O WITH HOOK ABOVE*/ + 0x1ece, /* U+001ecf: LATIN SMALL LETTER O WITH HOOK ABOVE*/ + 0x1ed0, /* U+001ed0: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE*/ + 0x1ed0, /* U+001ed1: LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE*/ + 0x1ed2, /* U+001ed2: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE*/ + 0x1ed2, /* U+001ed3: LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE*/ + 0x1ed4, /* U+001ed4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ed4, /* U+001ed5: LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/ + 0x1ed6, /* U+001ed6: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE*/ + 0x1ed6, /* U+001ed7: LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE*/ + 0x1ed8, /* U+001ed8: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1ed8, /* U+001ed9: LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/ + 0x1eda, /* U+001eda: LATIN CAPITAL LETTER O WITH HORN AND ACUTE*/ + 0x1eda, /* U+001edb: LATIN SMALL LETTER O WITH HORN AND ACUTE*/ + 0x1edc, /* U+001edc: LATIN CAPITAL LETTER O WITH HORN AND GRAVE*/ + 0x1edc, /* U+001edd: LATIN SMALL LETTER O WITH HORN AND GRAVE*/ + 0x1ede, /* U+001ede: LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE*/ + 0x1ede, /* U+001edf: LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE*/ + 0x1ee0, /* U+001ee0: LATIN CAPITAL LETTER O WITH HORN AND TILDE*/ + 0x1ee0, /* U+001ee1: LATIN SMALL LETTER O WITH HORN AND TILDE*/ + 0x1ee2, /* U+001ee2: LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW*/ + 0x1ee2, /* U+001ee3: LATIN SMALL LETTER O WITH HORN AND DOT BELOW*/ + 0x1ee4, /* U+001ee4: LATIN CAPITAL LETTER U WITH DOT BELOW*/ + 0x1ee4, /* U+001ee5: LATIN SMALL LETTER U WITH DOT BELOW*/ + 0x1ee6, /* U+001ee6: LATIN CAPITAL LETTER U WITH HOOK ABOVE*/ + 0x1ee6, /* U+001ee7: LATIN SMALL LETTER U WITH HOOK ABOVE*/ + 0x1ee8, /* U+001ee8: LATIN CAPITAL LETTER U WITH HORN AND ACUTE*/ + 0x1ee8, /* U+001ee9: LATIN SMALL LETTER U WITH HORN AND ACUTE*/ + 0x1eea, /* U+001eea: LATIN CAPITAL LETTER U WITH HORN AND GRAVE*/ + 0x1eea, /* U+001eeb: LATIN SMALL LETTER U WITH HORN AND GRAVE*/ + 0x1eec, /* U+001eec: LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE*/ + 0x1eec, /* U+001eed: LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE*/ + 0x1eee, /* U+001eee: LATIN CAPITAL LETTER U WITH HORN AND TILDE*/ + 0x1eee, /* U+001eef: LATIN SMALL LETTER U WITH HORN AND TILDE*/ + 0x1ef0, /* U+001ef0: LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW*/ + 0x1ef0, /* U+001ef1: LATIN SMALL LETTER U WITH HORN AND DOT BELOW*/ + 0x1ef2, /* U+001ef2: LATIN CAPITAL LETTER Y WITH GRAVE*/ + 0x1ef2, /* U+001ef3: LATIN SMALL LETTER Y WITH GRAVE*/ + 0x1ef4, /* U+001ef4: LATIN CAPITAL LETTER Y WITH DOT BELOW*/ + 0x1ef4, /* U+001ef5: LATIN SMALL LETTER Y WITH DOT BELOW*/ + 0x1ef6, /* U+001ef6: LATIN CAPITAL LETTER Y WITH HOOK ABOVE*/ + 0x1ef6, /* U+001ef7: LATIN SMALL LETTER Y WITH HOOK ABOVE*/ + 0x1ef8, /* U+001ef8: LATIN CAPITAL LETTER Y WITH TILDE*/ + 0x1ef8, /* U+001ef9: LATIN SMALL LETTER Y WITH TILDE*/ + 0x1efa, /* U+001efa: LATIN CAPITAL LETTER MIDDLE-WELSH LL*/ + 0x1efa, /* U+001efb: LATIN SMALL LETTER MIDDLE-WELSH LL*/ + 0x1efc, /* U+001efc: LATIN CAPITAL LETTER MIDDLE-WELSH V*/ + 0x1efc, /* U+001efd: LATIN SMALL LETTER MIDDLE-WELSH V*/ + 0x1efe, /* U+001efe: LATIN CAPITAL LETTER Y WITH LOOP*/ + 0x1efe, /* U+001eff: LATIN SMALL LETTER Y WITH LOOP*/ + 0x1f08, /* U+001f00: GREEK SMALL LETTER ALPHA WITH PSILI*/ + 0x1f09, /* U+001f01: GREEK SMALL LETTER ALPHA WITH DASIA*/ + 0x1f0a, /* U+001f02: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA*/ + 0x1f0b, /* U+001f03: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA*/ + 0x1f0c, /* U+001f04: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA*/ + 0x1f0d, /* U+001f05: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA*/ + 0x1f0e, /* U+001f06: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ + 0x1f0f, /* U+001f07: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ + 0x1f08, /* U+001f08: GREEK CAPITAL LETTER ALPHA WITH PSILI*/ + 0x1f09, /* U+001f09: GREEK CAPITAL LETTER ALPHA WITH DASIA*/ + 0x1f0a, /* U+001f0a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA*/ + 0x1f0b, /* U+001f0b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA*/ + 0x1f0c, /* U+001f0c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA*/ + 0x1f0d, /* U+001f0d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA*/ + 0x1f0e, /* U+001f0e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI*/ + 0x1f0f, /* U+001f0f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI*/ + 0x1f18, /* U+001f10: GREEK SMALL LETTER EPSILON WITH PSILI*/ + 0x1f19, /* U+001f11: GREEK SMALL LETTER EPSILON WITH DASIA*/ + 0x1f1a, /* U+001f12: GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA*/ + 0x1f1b, /* U+001f13: GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA*/ + 0x1f1c, /* U+001f14: GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA*/ + 0x1f1d, /* U+001f15: GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA*/ + 0x1f16, /* U+001f16: */ + 0x1f17, /* U+001f17: */ + 0x1f18, /* U+001f18: GREEK CAPITAL LETTER EPSILON WITH PSILI*/ + 0x1f19, /* U+001f19: GREEK CAPITAL LETTER EPSILON WITH DASIA*/ + 0x1f1a, /* U+001f1a: GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA*/ + 0x1f1b, /* U+001f1b: GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA*/ + 0x1f1c, /* U+001f1c: GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA*/ + 0x1f1d, /* U+001f1d: GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA*/ + 0x1f1e, /* U+001f1e: */ + 0x1f1f, /* U+001f1f: */ + 0x1f28, /* U+001f20: GREEK SMALL LETTER ETA WITH PSILI*/ + 0x1f29, /* U+001f21: GREEK SMALL LETTER ETA WITH DASIA*/ + 0x1f2a, /* U+001f22: GREEK SMALL LETTER ETA WITH PSILI AND VARIA*/ + 0x1f2b, /* U+001f23: GREEK SMALL LETTER ETA WITH DASIA AND VARIA*/ + 0x1f2c, /* U+001f24: GREEK SMALL LETTER ETA WITH PSILI AND OXIA*/ + 0x1f2d, /* U+001f25: GREEK SMALL LETTER ETA WITH DASIA AND OXIA*/ + 0x1f2e, /* U+001f26: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI*/ + 0x1f2f, /* U+001f27: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI*/ + 0x1f28, /* U+001f28: GREEK CAPITAL LETTER ETA WITH PSILI*/ + 0x1f29, /* U+001f29: GREEK CAPITAL LETTER ETA WITH DASIA*/ + 0x1f2a, /* U+001f2a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA*/ + 0x1f2b, /* U+001f2b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA*/ + 0x1f2c, /* U+001f2c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA*/ + 0x1f2d, /* U+001f2d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA*/ + 0x1f2e, /* U+001f2e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI*/ + 0x1f2f, /* U+001f2f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI*/ + 0x1f38, /* U+001f30: GREEK SMALL LETTER IOTA WITH PSILI*/ + 0x1f39, /* U+001f31: GREEK SMALL LETTER IOTA WITH DASIA*/ + 0x1f3a, /* U+001f32: GREEK SMALL LETTER IOTA WITH PSILI AND VARIA*/ + 0x1f3b, /* U+001f33: GREEK SMALL LETTER IOTA WITH DASIA AND VARIA*/ + 0x1f3c, /* U+001f34: GREEK SMALL LETTER IOTA WITH PSILI AND OXIA*/ + 0x1f3d, /* U+001f35: GREEK SMALL LETTER IOTA WITH DASIA AND OXIA*/ + 0x1f3e, /* U+001f36: GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI*/ + 0x1f3f, /* U+001f37: GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI*/ + 0x1f38, /* U+001f38: GREEK CAPITAL LETTER IOTA WITH PSILI*/ + 0x1f39, /* U+001f39: GREEK CAPITAL LETTER IOTA WITH DASIA*/ + 0x1f3a, /* U+001f3a: GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA*/ + 0x1f3b, /* U+001f3b: GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA*/ + 0x1f3c, /* U+001f3c: GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA*/ + 0x1f3d, /* U+001f3d: GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA*/ + 0x1f3e, /* U+001f3e: GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI*/ + 0x1f3f, /* U+001f3f: GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI*/ + 0x1f48, /* U+001f40: GREEK SMALL LETTER OMICRON WITH PSILI*/ + 0x1f49, /* U+001f41: GREEK SMALL LETTER OMICRON WITH DASIA*/ + 0x1f4a, /* U+001f42: GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA*/ + 0x1f4b, /* U+001f43: GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA*/ + 0x1f4c, /* U+001f44: GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA*/ + 0x1f4d, /* U+001f45: GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA*/ + 0x1f46, /* U+001f46: */ + 0x1f47, /* U+001f47: */ + 0x1f48, /* U+001f48: GREEK CAPITAL LETTER OMICRON WITH PSILI*/ + 0x1f49, /* U+001f49: GREEK CAPITAL LETTER OMICRON WITH DASIA*/ + 0x1f4a, /* U+001f4a: GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA*/ + 0x1f4b, /* U+001f4b: GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA*/ + 0x1f4c, /* U+001f4c: GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA*/ + 0x1f4d, /* U+001f4d: GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA*/ + 0x1f4e, /* U+001f4e: */ + 0x1f4f, /* U+001f4f: */ + 0x1f50, /* U+001f50: GREEK SMALL LETTER UPSILON WITH PSILI*/ + 0x1f59, /* U+001f51: GREEK SMALL LETTER UPSILON WITH DASIA*/ + 0x1f52, /* U+001f52: GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA*/ + 0x1f5b, /* U+001f53: GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA*/ + 0x1f54, /* U+001f54: GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA*/ + 0x1f5d, /* U+001f55: GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA*/ + 0x1f56, /* U+001f56: GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI*/ + 0x1f5f, /* U+001f57: GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ + 0x1f58, /* U+001f58: */ + 0x1f59, /* U+001f59: GREEK CAPITAL LETTER UPSILON WITH DASIA*/ + 0x1f5a, /* U+001f5a: */ + 0x1f5b, /* U+001f5b: GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA*/ + 0x1f5c, /* U+001f5c: */ + 0x1f5d, /* U+001f5d: GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA*/ + 0x1f5e, /* U+001f5e: */ + 0x1f5f, /* U+001f5f: GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI*/ + 0x1f68, /* U+001f60: GREEK SMALL LETTER OMEGA WITH PSILI*/ + 0x1f69, /* U+001f61: GREEK SMALL LETTER OMEGA WITH DASIA*/ + 0x1f6a, /* U+001f62: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA*/ + 0x1f6b, /* U+001f63: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA*/ + 0x1f6c, /* U+001f64: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA*/ + 0x1f6d, /* U+001f65: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA*/ + 0x1f6e, /* U+001f66: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ + 0x1f6f, /* U+001f67: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ + 0x1f68, /* U+001f68: GREEK CAPITAL LETTER OMEGA WITH PSILI*/ + 0x1f69, /* U+001f69: GREEK CAPITAL LETTER OMEGA WITH DASIA*/ + 0x1f6a, /* U+001f6a: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA*/ + 0x1f6b, /* U+001f6b: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA*/ + 0x1f6c, /* U+001f6c: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA*/ + 0x1f6d, /* U+001f6d: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA*/ + 0x1f6e, /* U+001f6e: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI*/ + 0x1f6f, /* U+001f6f: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI*/ + 0x1fba, /* U+001f70: GREEK SMALL LETTER ALPHA WITH VARIA*/ + 0x1fbb, /* U+001f71: GREEK SMALL LETTER ALPHA WITH OXIA*/ + 0x1fc8, /* U+001f72: GREEK SMALL LETTER EPSILON WITH VARIA*/ + 0x1fc9, /* U+001f73: GREEK SMALL LETTER EPSILON WITH OXIA*/ + 0x1fca, /* U+001f74: GREEK SMALL LETTER ETA WITH VARIA*/ + 0x1fcb, /* U+001f75: GREEK SMALL LETTER ETA WITH OXIA*/ + 0x1fda, /* U+001f76: GREEK SMALL LETTER IOTA WITH VARIA*/ + 0x1fdb, /* U+001f77: GREEK SMALL LETTER IOTA WITH OXIA*/ + 0x1ff8, /* U+001f78: GREEK SMALL LETTER OMICRON WITH VARIA*/ + 0x1ff9, /* U+001f79: GREEK SMALL LETTER OMICRON WITH OXIA*/ + 0x1fea, /* U+001f7a: GREEK SMALL LETTER UPSILON WITH VARIA*/ + 0x1feb, /* U+001f7b: GREEK SMALL LETTER UPSILON WITH OXIA*/ + 0x1ffa, /* U+001f7c: GREEK SMALL LETTER OMEGA WITH VARIA*/ + 0x1ffb, /* U+001f7d: GREEK SMALL LETTER OMEGA WITH OXIA*/ + 0x1f7e, /* U+001f7e: */ + 0x1f7f, /* U+001f7f: */ + 0x1f88, /* U+001f80: GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI*/ + 0x1f89, /* U+001f81: GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI*/ + 0x1f8a, /* U+001f82: GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + 0x1f8b, /* U+001f83: GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + 0x1f8c, /* U+001f84: GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + 0x1f8d, /* U+001f85: GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + 0x1f8e, /* U+001f86: GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f8f, /* U+001f87: GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f88, /* U+001f88: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI*/ + 0x1f89, /* U+001f89: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI*/ + 0x1f8a, /* U+001f8a: GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + 0x1f8b, /* U+001f8b: GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + 0x1f8c, /* U+001f8c: GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + 0x1f8d, /* U+001f8d: GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + 0x1f8e, /* U+001f8e: GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1f8f, /* U+001f8f: GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1f98, /* U+001f90: GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI*/ + 0x1f99, /* U+001f91: GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI*/ + 0x1f9a, /* U+001f92: GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + 0x1f9b, /* U+001f93: GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + 0x1f9c, /* U+001f94: GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + 0x1f9d, /* U+001f95: GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + 0x1f9e, /* U+001f96: GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f9f, /* U+001f97: GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1f98, /* U+001f98: GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI*/ + 0x1f99, /* U+001f99: GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI*/ + 0x1f9a, /* U+001f9a: GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + 0x1f9b, /* U+001f9b: GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + 0x1f9c, /* U+001f9c: GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + 0x1f9d, /* U+001f9d: GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + 0x1f9e, /* U+001f9e: GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1f9f, /* U+001f9f: GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1fa8, /* U+001fa0: GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI*/ + 0x1fa9, /* U+001fa1: GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI*/ + 0x1faa, /* U+001fa2: GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/ + 0x1fab, /* U+001fa3: GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/ + 0x1fac, /* U+001fa4: GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/ + 0x1fad, /* U+001fa5: GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/ + 0x1fae, /* U+001fa6: GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1faf, /* U+001fa7: GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1fa8, /* U+001fa8: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI*/ + 0x1fa9, /* U+001fa9: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI*/ + 0x1faa, /* U+001faa: GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/ + 0x1fab, /* U+001fab: GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/ + 0x1fac, /* U+001fac: GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/ + 0x1fad, /* U+001fad: GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/ + 0x1fae, /* U+001fae: GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1faf, /* U+001faf: GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/ + 0x1fb8, /* U+001fb0: GREEK SMALL LETTER ALPHA WITH VRACHY*/ + 0x1fb9, /* U+001fb1: GREEK SMALL LETTER ALPHA WITH MACRON*/ + 0x1fb2, /* U+001fb2: GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI*/ + 0x1fbc, /* U+001fb3: GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI*/ + 0x1fb4, /* U+001fb4: GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI*/ + 0x1fb5, /* U+001fb5: */ + 0x1fb6, /* U+001fb6: GREEK SMALL LETTER ALPHA WITH PERISPOMENI*/ + 0x1fb7, /* U+001fb7: GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1fb8, /* U+001fb8: GREEK CAPITAL LETTER ALPHA WITH VRACHY*/ + 0x1fb9, /* U+001fb9: GREEK CAPITAL LETTER ALPHA WITH MACRON*/ + 0x1fba, /* U+001fba: GREEK CAPITAL LETTER ALPHA WITH VARIA*/ + 0x1fbb, /* U+001fbb: GREEK CAPITAL LETTER ALPHA WITH OXIA*/ + 0x1fbc, /* U+001fbc: GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI*/ + 0x1fbd, /* U+001fbd: GREEK KORONIS*/ + 0x399, /* U+001fbe: GREEK PROSGEGRAMMENI*/ + 0x1fbf, /* U+001fbf: GREEK PSILI*/ + 0x1fc0, /* U+001fc0: GREEK PERISPOMENI*/ + 0x1fc1, /* U+001fc1: GREEK DIALYTIKA AND PERISPOMENI*/ + 0x1fc2, /* U+001fc2: GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI*/ + 0x1fcc, /* U+001fc3: GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI*/ + 0x1fc4, /* U+001fc4: GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI*/ + 0x1fc5, /* U+001fc5: */ + 0x1fc6, /* U+001fc6: GREEK SMALL LETTER ETA WITH PERISPOMENI*/ + 0x1fc7, /* U+001fc7: GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1fc8, /* U+001fc8: GREEK CAPITAL LETTER EPSILON WITH VARIA*/ + 0x1fc9, /* U+001fc9: GREEK CAPITAL LETTER EPSILON WITH OXIA*/ + 0x1fca, /* U+001fca: GREEK CAPITAL LETTER ETA WITH VARIA*/ + 0x1fcb, /* U+001fcb: GREEK CAPITAL LETTER ETA WITH OXIA*/ + 0x1fcc, /* U+001fcc: GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI*/ + 0x1fcd, /* U+001fcd: GREEK PSILI AND VARIA*/ + 0x1fce, /* U+001fce: GREEK PSILI AND OXIA*/ + 0x1fcf, /* U+001fcf: GREEK PSILI AND PERISPOMENI*/ + 0x1fd8, /* U+001fd0: GREEK SMALL LETTER IOTA WITH VRACHY*/ + 0x1fd9, /* U+001fd1: GREEK SMALL LETTER IOTA WITH MACRON*/ + 0x1fd2, /* U+001fd2: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA*/ + 0x1fd3, /* U+001fd3: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA*/ + 0x1fd4, /* U+001fd4: */ + 0x1fd5, /* U+001fd5: */ + 0x1fd6, /* U+001fd6: GREEK SMALL LETTER IOTA WITH PERISPOMENI*/ + 0x1fd7, /* U+001fd7: GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI*/ + 0x1fd8, /* U+001fd8: GREEK CAPITAL LETTER IOTA WITH VRACHY*/ + 0x1fd9, /* U+001fd9: GREEK CAPITAL LETTER IOTA WITH MACRON*/ + 0x1fda, /* U+001fda: GREEK CAPITAL LETTER IOTA WITH VARIA*/ + 0x1fdb, /* U+001fdb: GREEK CAPITAL LETTER IOTA WITH OXIA*/ + 0x1fdc, /* U+001fdc: */ + 0x1fdd, /* U+001fdd: GREEK DASIA AND VARIA*/ + 0x1fde, /* U+001fde: GREEK DASIA AND OXIA*/ + 0x1fdf, /* U+001fdf: GREEK DASIA AND PERISPOMENI*/ + 0x1fe8, /* U+001fe0: GREEK SMALL LETTER UPSILON WITH VRACHY*/ + 0x1fe9, /* U+001fe1: GREEK SMALL LETTER UPSILON WITH MACRON*/ + 0x1fe2, /* U+001fe2: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA*/ + 0x1fe3, /* U+001fe3: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA*/ + 0x1fe4, /* U+001fe4: GREEK SMALL LETTER RHO WITH PSILI*/ + 0x1fec, /* U+001fe5: GREEK SMALL LETTER RHO WITH DASIA*/ + 0x1fe6, /* U+001fe6: GREEK SMALL LETTER UPSILON WITH PERISPOMENI*/ + 0x1fe7, /* U+001fe7: GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI*/ + 0x1fe8, /* U+001fe8: GREEK CAPITAL LETTER UPSILON WITH VRACHY*/ + 0x1fe9, /* U+001fe9: GREEK CAPITAL LETTER UPSILON WITH MACRON*/ + 0x1fea, /* U+001fea: GREEK CAPITAL LETTER UPSILON WITH VARIA*/ + 0x1feb, /* U+001feb: GREEK CAPITAL LETTER UPSILON WITH OXIA*/ + 0x1fec, /* U+001fec: GREEK CAPITAL LETTER RHO WITH DASIA*/ + 0x1fed, /* U+001fed: GREEK DIALYTIKA AND VARIA*/ + 0x1fee, /* U+001fee: GREEK DIALYTIKA AND OXIA*/ + 0x1fef, /* U+001fef: GREEK VARIA*/ + 0x1ff0, /* U+001ff0: */ + 0x1ff1, /* U+001ff1: */ + 0x1ff2, /* U+001ff2: GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI*/ + 0x1ffc, /* U+001ff3: GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI*/ + 0x1ff4, /* U+001ff4: GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI*/ + 0x1ff5, /* U+001ff5: */ + 0x1ff6, /* U+001ff6: GREEK SMALL LETTER OMEGA WITH PERISPOMENI*/ + 0x1ff7, /* U+001ff7: GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI*/ + 0x1ff8, /* U+001ff8: GREEK CAPITAL LETTER OMICRON WITH VARIA*/ + 0x1ff9, /* U+001ff9: GREEK CAPITAL LETTER OMICRON WITH OXIA*/ + 0x1ffa, /* U+001ffa: GREEK CAPITAL LETTER OMEGA WITH VARIA*/ + 0x1ffb, /* U+001ffb: GREEK CAPITAL LETTER OMEGA WITH OXIA*/ + 0x1ffc, /* U+001ffc: GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI*/ + 0x1ffd, /* U+001ffd: GREEK OXIA*/ + 0x1ffe, /* U+001ffe: GREEK DASIA*/ + 0x1fff, /* U+001fff: */ + 0x2000, /* U+002000: EN QUAD*/ + 0x2001, /* U+002001: EM QUAD*/ + 0x2002, /* U+002002: EN SPACE*/ + 0x2003, /* U+002003: EM SPACE*/ + 0x2004, /* U+002004: THREE-PER-EM SPACE*/ + 0x2005, /* U+002005: FOUR-PER-EM SPACE*/ + 0x2006, /* U+002006: SIX-PER-EM SPACE*/ + 0x2007, /* U+002007: FIGURE SPACE*/ + 0x2008, /* U+002008: PUNCTUATION SPACE*/ + 0x2009, /* U+002009: THIN SPACE*/ + 0x200a, /* U+00200a: HAIR SPACE*/ + 0x200b, /* U+00200b: ZERO WIDTH SPACE*/ + 0x200c, /* U+00200c: ZERO WIDTH NON-JOINER*/ + 0x200d, /* U+00200d: ZERO WIDTH JOINER*/ + 0x200e, /* U+00200e: LEFT-TO-RIGHT MARK*/ + 0x200f, /* U+00200f: RIGHT-TO-LEFT MARK*/ + 0x2010, /* U+002010: HYPHEN*/ + 0x2011, /* U+002011: NON-BREAKING HYPHEN*/ + 0x2012, /* U+002012: FIGURE DASH*/ + 0x2013, /* U+002013: EN DASH*/ + 0x2014, /* U+002014: EM DASH*/ + 0x2015, /* U+002015: HORIZONTAL BAR*/ + 0x2016, /* U+002016: DOUBLE VERTICAL LINE*/ + 0x2017, /* U+002017: DOUBLE LOW LINE*/ + 0x2018, /* U+002018: LEFT SINGLE QUOTATION MARK*/ + 0x2019, /* U+002019: RIGHT SINGLE QUOTATION MARK*/ + 0x201a, /* U+00201a: SINGLE LOW-9 QUOTATION MARK*/ + 0x201b, /* U+00201b: SINGLE HIGH-REVERSED-9 QUOTATION MARK*/ + 0x201c, /* U+00201c: LEFT DOUBLE QUOTATION MARK*/ + 0x201d, /* U+00201d: RIGHT DOUBLE QUOTATION MARK*/ + 0x201e, /* U+00201e: DOUBLE LOW-9 QUOTATION MARK*/ + 0x201f, /* U+00201f: DOUBLE HIGH-REVERSED-9 QUOTATION MARK*/ + 0x2020, /* U+002020: DAGGER*/ + 0x2021, /* U+002021: DOUBLE DAGGER*/ + 0x2022, /* U+002022: BULLET*/ + 0x2023, /* U+002023: TRIANGULAR BULLET*/ + 0x2024, /* U+002024: ONE DOT LEADER*/ + 0x2025, /* U+002025: TWO DOT LEADER*/ + 0x2026, /* U+002026: HORIZONTAL ELLIPSIS*/ + 0x2027, /* U+002027: HYPHENATION POINT*/ + 0x2028, /* U+002028: LINE SEPARATOR*/ + 0x2029, /* U+002029: PARAGRAPH SEPARATOR*/ + 0x202a, /* U+00202a: LEFT-TO-RIGHT EMBEDDING*/ + 0x202b, /* U+00202b: RIGHT-TO-LEFT EMBEDDING*/ + 0x202c, /* U+00202c: POP DIRECTIONAL FORMATTING*/ + 0x202d, /* U+00202d: LEFT-TO-RIGHT OVERRIDE*/ + 0x202e, /* U+00202e: RIGHT-TO-LEFT OVERRIDE*/ + 0x202f, /* U+00202f: NARROW NO-BREAK SPACE*/ + 0x2030, /* U+002030: PER MILLE SIGN*/ + 0x2031, /* U+002031: PER TEN THOUSAND SIGN*/ + 0x2032, /* U+002032: PRIME*/ + 0x2033, /* U+002033: DOUBLE PRIME*/ + 0x2034, /* U+002034: TRIPLE PRIME*/ + 0x2035, /* U+002035: REVERSED PRIME*/ + 0x2036, /* U+002036: REVERSED DOUBLE PRIME*/ + 0x2037, /* U+002037: REVERSED TRIPLE PRIME*/ + 0x2038, /* U+002038: CARET*/ + 0x2039, /* U+002039: SINGLE LEFT-POINTING ANGLE QUOTATION MARK*/ + 0x203a, /* U+00203a: SINGLE RIGHT-POINTING ANGLE QUOTATION MARK*/ + 0x203b, /* U+00203b: REFERENCE MARK*/ + 0x203c, /* U+00203c: DOUBLE EXCLAMATION MARK*/ + 0x203d, /* U+00203d: INTERROBANG*/ + 0x203e, /* U+00203e: OVERLINE*/ + 0x203f, /* U+00203f: UNDERTIE*/ + 0x2040, /* U+002040: CHARACTER TIE*/ + 0x2041, /* U+002041: CARET INSERTION POINT*/ + 0x2042, /* U+002042: ASTERISM*/ + 0x2043, /* U+002043: HYPHEN BULLET*/ + 0x2044, /* U+002044: FRACTION SLASH*/ + 0x2045, /* U+002045: LEFT SQUARE BRACKET WITH QUILL*/ + 0x2046, /* U+002046: RIGHT SQUARE BRACKET WITH QUILL*/ + 0x2047, /* U+002047: DOUBLE QUESTION MARK*/ + 0x2048, /* U+002048: QUESTION EXCLAMATION MARK*/ + 0x2049, /* U+002049: EXCLAMATION QUESTION MARK*/ + 0x204a, /* U+00204a: TIRONIAN SIGN ET*/ + 0x204b, /* U+00204b: REVERSED PILCROW SIGN*/ + 0x204c, /* U+00204c: BLACK LEFTWARDS BULLET*/ + 0x204d, /* U+00204d: BLACK RIGHTWARDS BULLET*/ + 0x204e, /* U+00204e: LOW ASTERISK*/ + 0x204f, /* U+00204f: REVERSED SEMICOLON*/ + 0x2050, /* U+002050: CLOSE UP*/ + 0x2051, /* U+002051: TWO ASTERISKS ALIGNED VERTICALLY*/ + 0x2052, /* U+002052: COMMERCIAL MINUS SIGN*/ + 0x2053, /* U+002053: SWUNG DASH*/ + 0x2054, /* U+002054: INVERTED UNDERTIE*/ + 0x2055, /* U+002055: FLOWER PUNCTUATION MARK*/ + 0x2056, /* U+002056: THREE DOT PUNCTUATION*/ + 0x2057, /* U+002057: QUADRUPLE PRIME*/ + 0x2058, /* U+002058: FOUR DOT PUNCTUATION*/ + 0x2059, /* U+002059: FIVE DOT PUNCTUATION*/ + 0x205a, /* U+00205a: TWO DOT PUNCTUATION*/ + 0x205b, /* U+00205b: FOUR DOT MARK*/ + 0x205c, /* U+00205c: DOTTED CROSS*/ + 0x205d, /* U+00205d: TRICOLON*/ + 0x205e, /* U+00205e: VERTICAL FOUR DOTS*/ + 0x205f, /* U+00205f: MEDIUM MATHEMATICAL SPACE*/ + 0x2060, /* U+002060: WORD JOINER*/ + 0x2061, /* U+002061: FUNCTION APPLICATION*/ + 0x2062, /* U+002062: INVISIBLE TIMES*/ + 0x2063, /* U+002063: INVISIBLE SEPARATOR*/ + 0x2064, /* U+002064: INVISIBLE PLUS*/ + 0x2065, /* U+002065: */ + 0x2066, /* U+002066: LEFT-TO-RIGHT ISOLATE*/ + 0x2067, /* U+002067: RIGHT-TO-LEFT ISOLATE*/ + 0x2068, /* U+002068: FIRST STRONG ISOLATE*/ + 0x2069, /* U+002069: POP DIRECTIONAL ISOLATE*/ + 0x206a, /* U+00206a: INHIBIT SYMMETRIC SWAPPING*/ + 0x206b, /* U+00206b: ACTIVATE SYMMETRIC SWAPPING*/ + 0x206c, /* U+00206c: INHIBIT ARABIC FORM SHAPING*/ + 0x206d, /* U+00206d: ACTIVATE ARABIC FORM SHAPING*/ + 0x206e, /* U+00206e: NATIONAL DIGIT SHAPES*/ + 0x206f, /* U+00206f: NOMINAL DIGIT SHAPES*/ + 0x2070, /* U+002070: SUPERSCRIPT ZERO*/ + 0x2071, /* U+002071: SUPERSCRIPT LATIN SMALL LETTER I*/ + 0x2072, /* U+002072: */ + 0x2073, /* U+002073: */ + 0x2074, /* U+002074: SUPERSCRIPT FOUR*/ + 0x2075, /* U+002075: SUPERSCRIPT FIVE*/ + 0x2076, /* U+002076: SUPERSCRIPT SIX*/ + 0x2077, /* U+002077: SUPERSCRIPT SEVEN*/ + 0x2078, /* U+002078: SUPERSCRIPT EIGHT*/ + 0x2079, /* U+002079: SUPERSCRIPT NINE*/ + 0x207a, /* U+00207a: SUPERSCRIPT PLUS SIGN*/ + 0x207b, /* U+00207b: SUPERSCRIPT MINUS*/ + 0x207c, /* U+00207c: SUPERSCRIPT EQUALS SIGN*/ + 0x207d, /* U+00207d: SUPERSCRIPT LEFT PARENTHESIS*/ + 0x207e, /* U+00207e: SUPERSCRIPT RIGHT PARENTHESIS*/ + 0x207f, /* U+00207f: SUPERSCRIPT LATIN SMALL LETTER N*/ + 0x2080, /* U+002080: SUBSCRIPT ZERO*/ + 0x2081, /* U+002081: SUBSCRIPT ONE*/ + 0x2082, /* U+002082: SUBSCRIPT TWO*/ + 0x2083, /* U+002083: SUBSCRIPT THREE*/ + 0x2084, /* U+002084: SUBSCRIPT FOUR*/ + 0x2085, /* U+002085: SUBSCRIPT FIVE*/ + 0x2086, /* U+002086: SUBSCRIPT SIX*/ + 0x2087, /* U+002087: SUBSCRIPT SEVEN*/ + 0x2088, /* U+002088: SUBSCRIPT EIGHT*/ + 0x2089, /* U+002089: SUBSCRIPT NINE*/ + 0x208a, /* U+00208a: SUBSCRIPT PLUS SIGN*/ + 0x208b, /* U+00208b: SUBSCRIPT MINUS*/ + 0x208c, /* U+00208c: SUBSCRIPT EQUALS SIGN*/ + 0x208d, /* U+00208d: SUBSCRIPT LEFT PARENTHESIS*/ + 0x208e, /* U+00208e: SUBSCRIPT RIGHT PARENTHESIS*/ + 0x208f, /* U+00208f: */ + 0x2090, /* U+002090: LATIN SUBSCRIPT SMALL LETTER A*/ + 0x2091, /* U+002091: LATIN SUBSCRIPT SMALL LETTER E*/ + 0x2092, /* U+002092: LATIN SUBSCRIPT SMALL LETTER O*/ + 0x2093, /* U+002093: LATIN SUBSCRIPT SMALL LETTER X*/ + 0x2094, /* U+002094: LATIN SUBSCRIPT SMALL LETTER SCHWA*/ + 0x2095, /* U+002095: LATIN SUBSCRIPT SMALL LETTER H*/ + 0x2096, /* U+002096: LATIN SUBSCRIPT SMALL LETTER K*/ + 0x2097, /* U+002097: LATIN SUBSCRIPT SMALL LETTER L*/ + 0x2098, /* U+002098: LATIN SUBSCRIPT SMALL LETTER M*/ + 0x2099, /* U+002099: LATIN SUBSCRIPT SMALL LETTER N*/ + 0x209a, /* U+00209a: LATIN SUBSCRIPT SMALL LETTER P*/ + 0x209b, /* U+00209b: LATIN SUBSCRIPT SMALL LETTER S*/ + 0x209c, /* U+00209c: LATIN SUBSCRIPT SMALL LETTER T*/ + 0x209d, /* U+00209d: */ + 0x209e, /* U+00209e: */ + 0x209f, /* U+00209f: */ + 0x20a0, /* U+0020a0: EURO-CURRENCY SIGN*/ + 0x20a1, /* U+0020a1: COLON SIGN*/ + 0x20a2, /* U+0020a2: CRUZEIRO SIGN*/ + 0x20a3, /* U+0020a3: FRENCH FRANC SIGN*/ + 0x20a4, /* U+0020a4: LIRA SIGN*/ + 0x20a5, /* U+0020a5: MILL SIGN*/ + 0x20a6, /* U+0020a6: NAIRA SIGN*/ + 0x20a7, /* U+0020a7: PESETA SIGN*/ + 0x20a8, /* U+0020a8: RUPEE SIGN*/ + 0x20a9, /* U+0020a9: WON SIGN*/ + 0x20aa, /* U+0020aa: NEW SHEQEL SIGN*/ + 0x20ab, /* U+0020ab: DONG SIGN*/ + 0x20ac, /* U+0020ac: EURO SIGN*/ + 0x20ad, /* U+0020ad: KIP SIGN*/ + 0x20ae, /* U+0020ae: TUGRIK SIGN*/ + 0x20af, /* U+0020af: DRACHMA SIGN*/ + 0x20b0, /* U+0020b0: GERMAN PENNY SIGN*/ + 0x20b1, /* U+0020b1: PESO SIGN*/ + 0x20b2, /* U+0020b2: GUARANI SIGN*/ + 0x20b3, /* U+0020b3: AUSTRAL SIGN*/ + 0x20b4, /* U+0020b4: HRYVNIA SIGN*/ + 0x20b5, /* U+0020b5: CEDI SIGN*/ + 0x20b6, /* U+0020b6: LIVRE TOURNOIS SIGN*/ + 0x20b7, /* U+0020b7: SPESMILO SIGN*/ + 0x20b8, /* U+0020b8: TENGE SIGN*/ + 0x20b9, /* U+0020b9: INDIAN RUPEE SIGN*/ + 0x20ba, /* U+0020ba: TURKISH LIRA SIGN*/ + 0x20bb, /* U+0020bb: */ + 0x20bc, /* U+0020bc: */ + 0x20bd, /* U+0020bd: */ + 0x20be, /* U+0020be: */ + 0x20bf, /* U+0020bf: */ + 0x20c0, /* U+0020c0: */ + 0x20c1, /* U+0020c1: */ + 0x20c2, /* U+0020c2: */ + 0x20c3, /* U+0020c3: */ + 0x20c4, /* U+0020c4: */ + 0x20c5, /* U+0020c5: */ + 0x20c6, /* U+0020c6: */ + 0x20c7, /* U+0020c7: */ + 0x20c8, /* U+0020c8: */ + 0x20c9, /* U+0020c9: */ + 0x20ca, /* U+0020ca: */ + 0x20cb, /* U+0020cb: */ + 0x20cc, /* U+0020cc: */ + 0x20cd, /* U+0020cd: */ + 0x20ce, /* U+0020ce: */ + 0x20cf, /* U+0020cf: */ + 0x20d0, /* U+0020d0: COMBINING LEFT HARPOON ABOVE*/ + 0x20d1, /* U+0020d1: COMBINING RIGHT HARPOON ABOVE*/ + 0x20d2, /* U+0020d2: COMBINING LONG VERTICAL LINE OVERLAY*/ + 0x20d3, /* U+0020d3: COMBINING SHORT VERTICAL LINE OVERLAY*/ + 0x20d4, /* U+0020d4: COMBINING ANTICLOCKWISE ARROW ABOVE*/ + 0x20d5, /* U+0020d5: COMBINING CLOCKWISE ARROW ABOVE*/ + 0x20d6, /* U+0020d6: COMBINING LEFT ARROW ABOVE*/ + 0x20d7, /* U+0020d7: COMBINING RIGHT ARROW ABOVE*/ + 0x20d8, /* U+0020d8: COMBINING RING OVERLAY*/ + 0x20d9, /* U+0020d9: COMBINING CLOCKWISE RING OVERLAY*/ + 0x20da, /* U+0020da: COMBINING ANTICLOCKWISE RING OVERLAY*/ + 0x20db, /* U+0020db: COMBINING THREE DOTS ABOVE*/ + 0x20dc, /* U+0020dc: COMBINING FOUR DOTS ABOVE*/ + 0x20dd, /* U+0020dd: COMBINING ENCLOSING CIRCLE*/ + 0x20de, /* U+0020de: COMBINING ENCLOSING SQUARE*/ + 0x20df, /* U+0020df: COMBINING ENCLOSING DIAMOND*/ + 0x20e0, /* U+0020e0: COMBINING ENCLOSING CIRCLE BACKSLASH*/ + 0x20e1, /* U+0020e1: COMBINING LEFT RIGHT ARROW ABOVE*/ + 0x20e2, /* U+0020e2: COMBINING ENCLOSING SCREEN*/ + 0x20e3, /* U+0020e3: COMBINING ENCLOSING KEYCAP*/ + 0x20e4, /* U+0020e4: COMBINING ENCLOSING UPWARD POINTING TRIANGLE*/ + 0x20e5, /* U+0020e5: COMBINING REVERSE SOLIDUS OVERLAY*/ + 0x20e6, /* U+0020e6: COMBINING DOUBLE VERTICAL STROKE OVERLAY*/ + 0x20e7, /* U+0020e7: COMBINING ANNUITY SYMBOL*/ + 0x20e8, /* U+0020e8: COMBINING TRIPLE UNDERDOT*/ + 0x20e9, /* U+0020e9: COMBINING WIDE BRIDGE ABOVE*/ + 0x20ea, /* U+0020ea: COMBINING LEFTWARDS ARROW OVERLAY*/ + 0x20eb, /* U+0020eb: COMBINING LONG DOUBLE SOLIDUS OVERLAY*/ + 0x20ec, /* U+0020ec: COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0x20ed, /* U+0020ed: COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0x20ee, /* U+0020ee: COMBINING LEFT ARROW BELOW*/ + 0x20ef, /* U+0020ef: COMBINING RIGHT ARROW BELOW*/ + 0x20f0, /* U+0020f0: COMBINING ASTERISK ABOVE*/ + 0x20f1, /* U+0020f1: */ + 0x20f2, /* U+0020f2: */ + 0x20f3, /* U+0020f3: */ + 0x20f4, /* U+0020f4: */ + 0x20f5, /* U+0020f5: */ + 0x20f6, /* U+0020f6: */ + 0x20f7, /* U+0020f7: */ + 0x20f8, /* U+0020f8: */ + 0x20f9, /* U+0020f9: */ + 0x20fa, /* U+0020fa: */ + 0x20fb, /* U+0020fb: */ + 0x20fc, /* U+0020fc: */ + 0x20fd, /* U+0020fd: */ + 0x20fe, /* U+0020fe: */ + 0x20ff, /* U+0020ff: */ + 0x2100, /* U+002100: ACCOUNT OF*/ + 0x2101, /* U+002101: ADDRESSED TO THE SUBJECT*/ + 0x2102, /* U+002102: DOUBLE-STRUCK CAPITAL C*/ + 0x2103, /* U+002103: DEGREE CELSIUS*/ + 0x2104, /* U+002104: CENTRE LINE SYMBOL*/ + 0x2105, /* U+002105: CARE OF*/ + 0x2106, /* U+002106: CADA UNA*/ + 0x2107, /* U+002107: EULER CONSTANT*/ + 0x2108, /* U+002108: SCRUPLE*/ + 0x2109, /* U+002109: DEGREE FAHRENHEIT*/ + 0x210a, /* U+00210a: SCRIPT SMALL G*/ + 0x210b, /* U+00210b: SCRIPT CAPITAL H*/ + 0x210c, /* U+00210c: BLACK-LETTER CAPITAL H*/ + 0x210d, /* U+00210d: DOUBLE-STRUCK CAPITAL H*/ + 0x210e, /* U+00210e: PLANCK CONSTANT*/ + 0x210f, /* U+00210f: PLANCK CONSTANT OVER TWO PI*/ + 0x2110, /* U+002110: SCRIPT CAPITAL I*/ + 0x2111, /* U+002111: BLACK-LETTER CAPITAL I*/ + 0x2112, /* U+002112: SCRIPT CAPITAL L*/ + 0x2113, /* U+002113: SCRIPT SMALL L*/ + 0x2114, /* U+002114: L B BAR SYMBOL*/ + 0x2115, /* U+002115: DOUBLE-STRUCK CAPITAL N*/ + 0x2116, /* U+002116: NUMERO SIGN*/ + 0x2117, /* U+002117: SOUND RECORDING COPYRIGHT*/ + 0x2118, /* U+002118: SCRIPT CAPITAL P*/ + 0x2119, /* U+002119: DOUBLE-STRUCK CAPITAL P*/ + 0x211a, /* U+00211a: DOUBLE-STRUCK CAPITAL Q*/ + 0x211b, /* U+00211b: SCRIPT CAPITAL R*/ + 0x211c, /* U+00211c: BLACK-LETTER CAPITAL R*/ + 0x211d, /* U+00211d: DOUBLE-STRUCK CAPITAL R*/ + 0x211e, /* U+00211e: PRESCRIPTION TAKE*/ + 0x211f, /* U+00211f: RESPONSE*/ + 0x2120, /* U+002120: SERVICE MARK*/ + 0x2121, /* U+002121: TELEPHONE SIGN*/ + 0x2122, /* U+002122: TRADE MARK SIGN*/ + 0x2123, /* U+002123: VERSICLE*/ + 0x2124, /* U+002124: DOUBLE-STRUCK CAPITAL Z*/ + 0x2125, /* U+002125: OUNCE SIGN*/ + 0x2126, /* U+002126: OHM SIGN*/ + 0x2127, /* U+002127: INVERTED OHM SIGN*/ + 0x2128, /* U+002128: BLACK-LETTER CAPITAL Z*/ + 0x2129, /* U+002129: TURNED GREEK SMALL LETTER IOTA*/ + 0x212a, /* U+00212a: KELVIN SIGN*/ + 0x212b, /* U+00212b: ANGSTROM SIGN*/ + 0x212c, /* U+00212c: SCRIPT CAPITAL B*/ + 0x212d, /* U+00212d: BLACK-LETTER CAPITAL C*/ + 0x212e, /* U+00212e: ESTIMATED SYMBOL*/ + 0x212f, /* U+00212f: SCRIPT SMALL E*/ + 0x2130, /* U+002130: SCRIPT CAPITAL E*/ + 0x2131, /* U+002131: SCRIPT CAPITAL F*/ + 0x2132, /* U+002132: TURNED CAPITAL F*/ + 0x2133, /* U+002133: SCRIPT CAPITAL M*/ + 0x2134, /* U+002134: SCRIPT SMALL O*/ + 0x2135, /* U+002135: ALEF SYMBOL*/ + 0x2136, /* U+002136: BET SYMBOL*/ + 0x2137, /* U+002137: GIMEL SYMBOL*/ + 0x2138, /* U+002138: DALET SYMBOL*/ + 0x2139, /* U+002139: INFORMATION SOURCE*/ + 0x213a, /* U+00213a: ROTATED CAPITAL Q*/ + 0x213b, /* U+00213b: FACSIMILE SIGN*/ + 0x213c, /* U+00213c: DOUBLE-STRUCK SMALL PI*/ + 0x213d, /* U+00213d: DOUBLE-STRUCK SMALL GAMMA*/ + 0x213e, /* U+00213e: DOUBLE-STRUCK CAPITAL GAMMA*/ + 0x213f, /* U+00213f: DOUBLE-STRUCK CAPITAL PI*/ + 0x2140, /* U+002140: DOUBLE-STRUCK N-ARY SUMMATION*/ + 0x2141, /* U+002141: TURNED SANS-SERIF CAPITAL G*/ + 0x2142, /* U+002142: TURNED SANS-SERIF CAPITAL L*/ + 0x2143, /* U+002143: REVERSED SANS-SERIF CAPITAL L*/ + 0x2144, /* U+002144: TURNED SANS-SERIF CAPITAL Y*/ + 0x2145, /* U+002145: DOUBLE-STRUCK ITALIC CAPITAL D*/ + 0x2146, /* U+002146: DOUBLE-STRUCK ITALIC SMALL D*/ + 0x2147, /* U+002147: DOUBLE-STRUCK ITALIC SMALL E*/ + 0x2148, /* U+002148: DOUBLE-STRUCK ITALIC SMALL I*/ + 0x2149, /* U+002149: DOUBLE-STRUCK ITALIC SMALL J*/ + 0x214a, /* U+00214a: PROPERTY LINE*/ + 0x214b, /* U+00214b: TURNED AMPERSAND*/ + 0x214c, /* U+00214c: PER SIGN*/ + 0x214d, /* U+00214d: AKTIESELSKAB*/ + 0x2132, /* U+00214e: TURNED SMALL F*/ + 0x214f, /* U+00214f: SYMBOL FOR SAMARITAN SOURCE*/ + 0x2150, /* U+002150: VULGAR FRACTION ONE SEVENTH*/ + 0x2151, /* U+002151: VULGAR FRACTION ONE NINTH*/ + 0x2152, /* U+002152: VULGAR FRACTION ONE TENTH*/ + 0x2153, /* U+002153: VULGAR FRACTION ONE THIRD*/ + 0x2154, /* U+002154: VULGAR FRACTION TWO THIRDS*/ + 0x2155, /* U+002155: VULGAR FRACTION ONE FIFTH*/ + 0x2156, /* U+002156: VULGAR FRACTION TWO FIFTHS*/ + 0x2157, /* U+002157: VULGAR FRACTION THREE FIFTHS*/ + 0x2158, /* U+002158: VULGAR FRACTION FOUR FIFTHS*/ + 0x2159, /* U+002159: VULGAR FRACTION ONE SIXTH*/ + 0x215a, /* U+00215a: VULGAR FRACTION FIVE SIXTHS*/ + 0x215b, /* U+00215b: VULGAR FRACTION ONE EIGHTH*/ + 0x215c, /* U+00215c: VULGAR FRACTION THREE EIGHTHS*/ + 0x215d, /* U+00215d: VULGAR FRACTION FIVE EIGHTHS*/ + 0x215e, /* U+00215e: VULGAR FRACTION SEVEN EIGHTHS*/ + 0x215f, /* U+00215f: FRACTION NUMERATOR ONE*/ + 0x2160, /* U+002160: ROMAN NUMERAL ONE*/ + 0x2161, /* U+002161: ROMAN NUMERAL TWO*/ + 0x2162, /* U+002162: ROMAN NUMERAL THREE*/ + 0x2163, /* U+002163: ROMAN NUMERAL FOUR*/ + 0x2164, /* U+002164: ROMAN NUMERAL FIVE*/ + 0x2165, /* U+002165: ROMAN NUMERAL SIX*/ + 0x2166, /* U+002166: ROMAN NUMERAL SEVEN*/ + 0x2167, /* U+002167: ROMAN NUMERAL EIGHT*/ + 0x2168, /* U+002168: ROMAN NUMERAL NINE*/ + 0x2169, /* U+002169: ROMAN NUMERAL TEN*/ + 0x216a, /* U+00216a: ROMAN NUMERAL ELEVEN*/ + 0x216b, /* U+00216b: ROMAN NUMERAL TWELVE*/ + 0x216c, /* U+00216c: ROMAN NUMERAL FIFTY*/ + 0x216d, /* U+00216d: ROMAN NUMERAL ONE HUNDRED*/ + 0x216e, /* U+00216e: ROMAN NUMERAL FIVE HUNDRED*/ + 0x216f, /* U+00216f: ROMAN NUMERAL ONE THOUSAND*/ + 0x2160, /* U+002170: SMALL ROMAN NUMERAL ONE*/ + 0x2161, /* U+002171: SMALL ROMAN NUMERAL TWO*/ + 0x2162, /* U+002172: SMALL ROMAN NUMERAL THREE*/ + 0x2163, /* U+002173: SMALL ROMAN NUMERAL FOUR*/ + 0x2164, /* U+002174: SMALL ROMAN NUMERAL FIVE*/ + 0x2165, /* U+002175: SMALL ROMAN NUMERAL SIX*/ + 0x2166, /* U+002176: SMALL ROMAN NUMERAL SEVEN*/ + 0x2167, /* U+002177: SMALL ROMAN NUMERAL EIGHT*/ + 0x2168, /* U+002178: SMALL ROMAN NUMERAL NINE*/ + 0x2169, /* U+002179: SMALL ROMAN NUMERAL TEN*/ + 0x216a, /* U+00217a: SMALL ROMAN NUMERAL ELEVEN*/ + 0x216b, /* U+00217b: SMALL ROMAN NUMERAL TWELVE*/ + 0x216c, /* U+00217c: SMALL ROMAN NUMERAL FIFTY*/ + 0x216d, /* U+00217d: SMALL ROMAN NUMERAL ONE HUNDRED*/ + 0x216e, /* U+00217e: SMALL ROMAN NUMERAL FIVE HUNDRED*/ + 0x216f, /* U+00217f: SMALL ROMAN NUMERAL ONE THOUSAND*/ + 0x2180, /* U+002180: ROMAN NUMERAL ONE THOUSAND C D*/ + 0x2181, /* U+002181: ROMAN NUMERAL FIVE THOUSAND*/ + 0x2182, /* U+002182: ROMAN NUMERAL TEN THOUSAND*/ + 0x2183, /* U+002183: ROMAN NUMERAL REVERSED ONE HUNDRED*/ + 0x2183, /* U+002184: LATIN SMALL LETTER REVERSED C*/ + 0x2185, /* U+002185: ROMAN NUMERAL SIX LATE FORM*/ + 0x2186, /* U+002186: ROMAN NUMERAL FIFTY EARLY FORM*/ + 0x2187, /* U+002187: ROMAN NUMERAL FIFTY THOUSAND*/ + 0x2188, /* U+002188: ROMAN NUMERAL ONE HUNDRED THOUSAND*/ + 0x2189, /* U+002189: VULGAR FRACTION ZERO THIRDS*/ + 0x218a, /* U+00218a: */ + 0x218b, /* U+00218b: */ + 0x218c, /* U+00218c: */ + 0x218d, /* U+00218d: */ + 0x218e, /* U+00218e: */ + 0x218f, /* U+00218f: */ + 0x2190, /* U+002190: LEFTWARDS ARROW*/ + 0x2191, /* U+002191: UPWARDS ARROW*/ + 0x2192, /* U+002192: RIGHTWARDS ARROW*/ + 0x2193, /* U+002193: DOWNWARDS ARROW*/ + 0x2194, /* U+002194: LEFT RIGHT ARROW*/ + 0x2195, /* U+002195: UP DOWN ARROW*/ + 0x2196, /* U+002196: NORTH WEST ARROW*/ + 0x2197, /* U+002197: NORTH EAST ARROW*/ + 0x2198, /* U+002198: SOUTH EAST ARROW*/ + 0x2199, /* U+002199: SOUTH WEST ARROW*/ + 0x219a, /* U+00219a: LEFTWARDS ARROW WITH STROKE*/ + 0x219b, /* U+00219b: RIGHTWARDS ARROW WITH STROKE*/ + 0x219c, /* U+00219c: LEFTWARDS WAVE ARROW*/ + 0x219d, /* U+00219d: RIGHTWARDS WAVE ARROW*/ + 0x219e, /* U+00219e: LEFTWARDS TWO HEADED ARROW*/ + 0x219f, /* U+00219f: UPWARDS TWO HEADED ARROW*/ + 0x21a0, /* U+0021a0: RIGHTWARDS TWO HEADED ARROW*/ + 0x21a1, /* U+0021a1: DOWNWARDS TWO HEADED ARROW*/ + 0x21a2, /* U+0021a2: LEFTWARDS ARROW WITH TAIL*/ + 0x21a3, /* U+0021a3: RIGHTWARDS ARROW WITH TAIL*/ + 0x21a4, /* U+0021a4: LEFTWARDS ARROW FROM BAR*/ + 0x21a5, /* U+0021a5: UPWARDS ARROW FROM BAR*/ + 0x21a6, /* U+0021a6: RIGHTWARDS ARROW FROM BAR*/ + 0x21a7, /* U+0021a7: DOWNWARDS ARROW FROM BAR*/ + 0x21a8, /* U+0021a8: UP DOWN ARROW WITH BASE*/ + 0x21a9, /* U+0021a9: LEFTWARDS ARROW WITH HOOK*/ + 0x21aa, /* U+0021aa: RIGHTWARDS ARROW WITH HOOK*/ + 0x21ab, /* U+0021ab: LEFTWARDS ARROW WITH LOOP*/ + 0x21ac, /* U+0021ac: RIGHTWARDS ARROW WITH LOOP*/ + 0x21ad, /* U+0021ad: LEFT RIGHT WAVE ARROW*/ + 0x21ae, /* U+0021ae: LEFT RIGHT ARROW WITH STROKE*/ + 0x21af, /* U+0021af: DOWNWARDS ZIGZAG ARROW*/ + 0x21b0, /* U+0021b0: UPWARDS ARROW WITH TIP LEFTWARDS*/ + 0x21b1, /* U+0021b1: UPWARDS ARROW WITH TIP RIGHTWARDS*/ + 0x21b2, /* U+0021b2: DOWNWARDS ARROW WITH TIP LEFTWARDS*/ + 0x21b3, /* U+0021b3: DOWNWARDS ARROW WITH TIP RIGHTWARDS*/ + 0x21b4, /* U+0021b4: RIGHTWARDS ARROW WITH CORNER DOWNWARDS*/ + 0x21b5, /* U+0021b5: DOWNWARDS ARROW WITH CORNER LEFTWARDS*/ + 0x21b6, /* U+0021b6: ANTICLOCKWISE TOP SEMICIRCLE ARROW*/ + 0x21b7, /* U+0021b7: CLOCKWISE TOP SEMICIRCLE ARROW*/ + 0x21b8, /* U+0021b8: NORTH WEST ARROW TO LONG BAR*/ + 0x21b9, /* U+0021b9: LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR*/ + 0x21ba, /* U+0021ba: ANTICLOCKWISE OPEN CIRCLE ARROW*/ + 0x21bb, /* U+0021bb: CLOCKWISE OPEN CIRCLE ARROW*/ + 0x21bc, /* U+0021bc: LEFTWARDS HARPOON WITH BARB UPWARDS*/ + 0x21bd, /* U+0021bd: LEFTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0x21be, /* U+0021be: UPWARDS HARPOON WITH BARB RIGHTWARDS*/ + 0x21bf, /* U+0021bf: UPWARDS HARPOON WITH BARB LEFTWARDS*/ + 0x21c0, /* U+0021c0: RIGHTWARDS HARPOON WITH BARB UPWARDS*/ + 0x21c1, /* U+0021c1: RIGHTWARDS HARPOON WITH BARB DOWNWARDS*/ + 0x21c2, /* U+0021c2: DOWNWARDS HARPOON WITH BARB RIGHTWARDS*/ + 0x21c3, /* U+0021c3: DOWNWARDS HARPOON WITH BARB LEFTWARDS*/ + 0x21c4, /* U+0021c4: RIGHTWARDS ARROW OVER LEFTWARDS ARROW*/ + 0x21c5, /* U+0021c5: UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW*/ + 0x21c6, /* U+0021c6: LEFTWARDS ARROW OVER RIGHTWARDS ARROW*/ + 0x21c7, /* U+0021c7: LEFTWARDS PAIRED ARROWS*/ + 0x21c8, /* U+0021c8: UPWARDS PAIRED ARROWS*/ + 0x21c9, /* U+0021c9: RIGHTWARDS PAIRED ARROWS*/ + 0x21ca, /* U+0021ca: DOWNWARDS PAIRED ARROWS*/ + 0x21cb, /* U+0021cb: LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON*/ + 0x21cc, /* U+0021cc: RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON*/ + 0x21cd, /* U+0021cd: LEFTWARDS DOUBLE ARROW WITH STROKE*/ + 0x21ce, /* U+0021ce: LEFT RIGHT DOUBLE ARROW WITH STROKE*/ + 0x21cf, /* U+0021cf: RIGHTWARDS DOUBLE ARROW WITH STROKE*/ + 0x21d0, /* U+0021d0: LEFTWARDS DOUBLE ARROW*/ + 0x21d1, /* U+0021d1: UPWARDS DOUBLE ARROW*/ + 0x21d2, /* U+0021d2: RIGHTWARDS DOUBLE ARROW*/ + 0x21d3, /* U+0021d3: DOWNWARDS DOUBLE ARROW*/ + 0x21d4, /* U+0021d4: LEFT RIGHT DOUBLE ARROW*/ + 0x21d5, /* U+0021d5: UP DOWN DOUBLE ARROW*/ + 0x21d6, /* U+0021d6: NORTH WEST DOUBLE ARROW*/ + 0x21d7, /* U+0021d7: NORTH EAST DOUBLE ARROW*/ + 0x21d8, /* U+0021d8: SOUTH EAST DOUBLE ARROW*/ + 0x21d9, /* U+0021d9: SOUTH WEST DOUBLE ARROW*/ + 0x21da, /* U+0021da: LEFTWARDS TRIPLE ARROW*/ + 0x21db, /* U+0021db: RIGHTWARDS TRIPLE ARROW*/ + 0x21dc, /* U+0021dc: LEFTWARDS SQUIGGLE ARROW*/ + 0x21dd, /* U+0021dd: RIGHTWARDS SQUIGGLE ARROW*/ + 0x21de, /* U+0021de: UPWARDS ARROW WITH DOUBLE STROKE*/ + 0x21df, /* U+0021df: DOWNWARDS ARROW WITH DOUBLE STROKE*/ + 0x21e0, /* U+0021e0: LEFTWARDS DASHED ARROW*/ + 0x21e1, /* U+0021e1: UPWARDS DASHED ARROW*/ + 0x21e2, /* U+0021e2: RIGHTWARDS DASHED ARROW*/ + 0x21e3, /* U+0021e3: DOWNWARDS DASHED ARROW*/ + 0x21e4, /* U+0021e4: LEFTWARDS ARROW TO BAR*/ + 0x21e5, /* U+0021e5: RIGHTWARDS ARROW TO BAR*/ + 0x21e6, /* U+0021e6: LEFTWARDS WHITE ARROW*/ + 0x21e7, /* U+0021e7: UPWARDS WHITE ARROW*/ + 0x21e8, /* U+0021e8: RIGHTWARDS WHITE ARROW*/ + 0x21e9, /* U+0021e9: DOWNWARDS WHITE ARROW*/ + 0x21ea, /* U+0021ea: UPWARDS WHITE ARROW FROM BAR*/ + 0x21eb, /* U+0021eb: UPWARDS WHITE ARROW ON PEDESTAL*/ + 0x21ec, /* U+0021ec: UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR*/ + 0x21ed, /* U+0021ed: UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR*/ + 0x21ee, /* U+0021ee: UPWARDS WHITE DOUBLE ARROW*/ + 0x21ef, /* U+0021ef: UPWARDS WHITE DOUBLE ARROW ON PEDESTAL*/ + 0x21f0, /* U+0021f0: RIGHTWARDS WHITE ARROW FROM WALL*/ + 0x21f1, /* U+0021f1: NORTH WEST ARROW TO CORNER*/ + 0x21f2, /* U+0021f2: SOUTH EAST ARROW TO CORNER*/ + 0x21f3, /* U+0021f3: UP DOWN WHITE ARROW*/ + 0x21f4, /* U+0021f4: RIGHT ARROW WITH SMALL CIRCLE*/ + 0x21f5, /* U+0021f5: DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW*/ + 0x21f6, /* U+0021f6: THREE RIGHTWARDS ARROWS*/ + 0x21f7, /* U+0021f7: LEFTWARDS ARROW WITH VERTICAL STROKE*/ + 0x21f8, /* U+0021f8: RIGHTWARDS ARROW WITH VERTICAL STROKE*/ + 0x21f9, /* U+0021f9: LEFT RIGHT ARROW WITH VERTICAL STROKE*/ + 0x21fa, /* U+0021fa: LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ + 0x21fb, /* U+0021fb: RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE*/ + 0x21fc, /* U+0021fc: LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE*/ + 0x21fd, /* U+0021fd: LEFTWARDS OPEN-HEADED ARROW*/ + 0x21fe, /* U+0021fe: RIGHTWARDS OPEN-HEADED ARROW*/ + 0x21ff, /* U+0021ff: LEFT RIGHT OPEN-HEADED ARROW*/ + 0x2200, /* U+002200: FOR ALL*/ + 0x2201, /* U+002201: COMPLEMENT*/ + 0x2202, /* U+002202: PARTIAL DIFFERENTIAL*/ + 0x2203, /* U+002203: THERE EXISTS*/ + 0x2204, /* U+002204: THERE DOES NOT EXIST*/ + 0x2205, /* U+002205: EMPTY SET*/ + 0x2206, /* U+002206: INCREMENT*/ + 0x2207, /* U+002207: NABLA*/ + 0x2208, /* U+002208: ELEMENT OF*/ + 0x2209, /* U+002209: NOT AN ELEMENT OF*/ + 0x220a, /* U+00220a: SMALL ELEMENT OF*/ + 0x220b, /* U+00220b: CONTAINS AS MEMBER*/ + 0x220c, /* U+00220c: DOES NOT CONTAIN AS MEMBER*/ + 0x220d, /* U+00220d: SMALL CONTAINS AS MEMBER*/ + 0x220e, /* U+00220e: END OF PROOF*/ + 0x220f, /* U+00220f: N-ARY PRODUCT*/ + 0x2210, /* U+002210: N-ARY COPRODUCT*/ + 0x2211, /* U+002211: N-ARY SUMMATION*/ + 0x2212, /* U+002212: MINUS SIGN*/ + 0x2213, /* U+002213: MINUS-OR-PLUS SIGN*/ + 0x2214, /* U+002214: DOT PLUS*/ + 0x2215, /* U+002215: DIVISION SLASH*/ + 0x2216, /* U+002216: SET MINUS*/ + 0x2217, /* U+002217: ASTERISK OPERATOR*/ + 0x2218, /* U+002218: RING OPERATOR*/ + 0x2219, /* U+002219: BULLET OPERATOR*/ + 0x221a, /* U+00221a: SQUARE ROOT*/ + 0x221b, /* U+00221b: CUBE ROOT*/ + 0x221c, /* U+00221c: FOURTH ROOT*/ + 0x221d, /* U+00221d: PROPORTIONAL TO*/ + 0x221e, /* U+00221e: INFINITY*/ + 0x221f, /* U+00221f: RIGHT ANGLE*/ + 0x2220, /* U+002220: ANGLE*/ + 0x2221, /* U+002221: MEASURED ANGLE*/ + 0x2222, /* U+002222: SPHERICAL ANGLE*/ + 0x2223, /* U+002223: DIVIDES*/ + 0x2224, /* U+002224: DOES NOT DIVIDE*/ + 0x2225, /* U+002225: PARALLEL TO*/ + 0x2226, /* U+002226: NOT PARALLEL TO*/ + 0x2227, /* U+002227: LOGICAL AND*/ + 0x2228, /* U+002228: LOGICAL OR*/ + 0x2229, /* U+002229: INTERSECTION*/ + 0x222a, /* U+00222a: UNION*/ + 0x222b, /* U+00222b: INTEGRAL*/ + 0x222c, /* U+00222c: DOUBLE INTEGRAL*/ + 0x222d, /* U+00222d: TRIPLE INTEGRAL*/ + 0x222e, /* U+00222e: CONTOUR INTEGRAL*/ + 0x222f, /* U+00222f: SURFACE INTEGRAL*/ + 0x2230, /* U+002230: VOLUME INTEGRAL*/ + 0x2231, /* U+002231: CLOCKWISE INTEGRAL*/ + 0x2232, /* U+002232: CLOCKWISE CONTOUR INTEGRAL*/ + 0x2233, /* U+002233: ANTICLOCKWISE CONTOUR INTEGRAL*/ + 0x2234, /* U+002234: THEREFORE*/ + 0x2235, /* U+002235: BECAUSE*/ + 0x2236, /* U+002236: RATIO*/ + 0x2237, /* U+002237: PROPORTION*/ + 0x2238, /* U+002238: DOT MINUS*/ + 0x2239, /* U+002239: EXCESS*/ + 0x223a, /* U+00223a: GEOMETRIC PROPORTION*/ + 0x223b, /* U+00223b: HOMOTHETIC*/ + 0x223c, /* U+00223c: TILDE OPERATOR*/ + 0x223d, /* U+00223d: REVERSED TILDE*/ + 0x223e, /* U+00223e: INVERTED LAZY S*/ + 0x223f, /* U+00223f: SINE WAVE*/ + 0x2240, /* U+002240: WREATH PRODUCT*/ + 0x2241, /* U+002241: NOT TILDE*/ + 0x2242, /* U+002242: MINUS TILDE*/ + 0x2243, /* U+002243: ASYMPTOTICALLY EQUAL TO*/ + 0x2244, /* U+002244: NOT ASYMPTOTICALLY EQUAL TO*/ + 0x2245, /* U+002245: APPROXIMATELY EQUAL TO*/ + 0x2246, /* U+002246: APPROXIMATELY BUT NOT ACTUALLY EQUAL TO*/ + 0x2247, /* U+002247: NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO*/ + 0x2248, /* U+002248: ALMOST EQUAL TO*/ + 0x2249, /* U+002249: NOT ALMOST EQUAL TO*/ + 0x224a, /* U+00224a: ALMOST EQUAL OR EQUAL TO*/ + 0x224b, /* U+00224b: TRIPLE TILDE*/ + 0x224c, /* U+00224c: ALL EQUAL TO*/ + 0x224d, /* U+00224d: EQUIVALENT TO*/ + 0x224e, /* U+00224e: GEOMETRICALLY EQUIVALENT TO*/ + 0x224f, /* U+00224f: DIFFERENCE BETWEEN*/ + 0x2250, /* U+002250: APPROACHES THE LIMIT*/ + 0x2251, /* U+002251: GEOMETRICALLY EQUAL TO*/ + 0x2252, /* U+002252: APPROXIMATELY EQUAL TO OR THE IMAGE OF*/ + 0x2253, /* U+002253: IMAGE OF OR APPROXIMATELY EQUAL TO*/ + 0x2254, /* U+002254: COLON EQUALS*/ + 0x2255, /* U+002255: EQUALS COLON*/ + 0x2256, /* U+002256: RING IN EQUAL TO*/ + 0x2257, /* U+002257: RING EQUAL TO*/ + 0x2258, /* U+002258: CORRESPONDS TO*/ + 0x2259, /* U+002259: ESTIMATES*/ + 0x225a, /* U+00225a: EQUIANGULAR TO*/ + 0x225b, /* U+00225b: STAR EQUALS*/ + 0x225c, /* U+00225c: DELTA EQUAL TO*/ + 0x225d, /* U+00225d: EQUAL TO BY DEFINITION*/ + 0x225e, /* U+00225e: MEASURED BY*/ + 0x225f, /* U+00225f: QUESTIONED EQUAL TO*/ + 0x2260, /* U+002260: NOT EQUAL TO*/ + 0x2261, /* U+002261: IDENTICAL TO*/ + 0x2262, /* U+002262: NOT IDENTICAL TO*/ + 0x2263, /* U+002263: STRICTLY EQUIVALENT TO*/ + 0x2264, /* U+002264: LESS-THAN OR EQUAL TO*/ + 0x2265, /* U+002265: GREATER-THAN OR EQUAL TO*/ + 0x2266, /* U+002266: LESS-THAN OVER EQUAL TO*/ + 0x2267, /* U+002267: GREATER-THAN OVER EQUAL TO*/ + 0x2268, /* U+002268: LESS-THAN BUT NOT EQUAL TO*/ + 0x2269, /* U+002269: GREATER-THAN BUT NOT EQUAL TO*/ + 0x226a, /* U+00226a: MUCH LESS-THAN*/ + 0x226b, /* U+00226b: MUCH GREATER-THAN*/ + 0x226c, /* U+00226c: BETWEEN*/ + 0x226d, /* U+00226d: NOT EQUIVALENT TO*/ + 0x226e, /* U+00226e: NOT LESS-THAN*/ + 0x226f, /* U+00226f: NOT GREATER-THAN*/ + 0x2270, /* U+002270: NEITHER LESS-THAN NOR EQUAL TO*/ + 0x2271, /* U+002271: NEITHER GREATER-THAN NOR EQUAL TO*/ + 0x2272, /* U+002272: LESS-THAN OR EQUIVALENT TO*/ + 0x2273, /* U+002273: GREATER-THAN OR EQUIVALENT TO*/ + 0x2274, /* U+002274: NEITHER LESS-THAN NOR EQUIVALENT TO*/ + 0x2275, /* U+002275: NEITHER GREATER-THAN NOR EQUIVALENT TO*/ + 0x2276, /* U+002276: LESS-THAN OR GREATER-THAN*/ + 0x2277, /* U+002277: GREATER-THAN OR LESS-THAN*/ + 0x2278, /* U+002278: NEITHER LESS-THAN NOR GREATER-THAN*/ + 0x2279, /* U+002279: NEITHER GREATER-THAN NOR LESS-THAN*/ + 0x227a, /* U+00227a: PRECEDES*/ + 0x227b, /* U+00227b: SUCCEEDS*/ + 0x227c, /* U+00227c: PRECEDES OR EQUAL TO*/ + 0x227d, /* U+00227d: SUCCEEDS OR EQUAL TO*/ + 0x227e, /* U+00227e: PRECEDES OR EQUIVALENT TO*/ + 0x227f, /* U+00227f: SUCCEEDS OR EQUIVALENT TO*/ + 0x2280, /* U+002280: DOES NOT PRECEDE*/ + 0x2281, /* U+002281: DOES NOT SUCCEED*/ + 0x2282, /* U+002282: SUBSET OF*/ + 0x2283, /* U+002283: SUPERSET OF*/ + 0x2284, /* U+002284: NOT A SUBSET OF*/ + 0x2285, /* U+002285: NOT A SUPERSET OF*/ + 0x2286, /* U+002286: SUBSET OF OR EQUAL TO*/ + 0x2287, /* U+002287: SUPERSET OF OR EQUAL TO*/ + 0x2288, /* U+002288: NEITHER A SUBSET OF NOR EQUAL TO*/ + 0x2289, /* U+002289: NEITHER A SUPERSET OF NOR EQUAL TO*/ + 0x228a, /* U+00228a: SUBSET OF WITH NOT EQUAL TO*/ + 0x228b, /* U+00228b: SUPERSET OF WITH NOT EQUAL TO*/ + 0x228c, /* U+00228c: MULTISET*/ + 0x228d, /* U+00228d: MULTISET MULTIPLICATION*/ + 0x228e, /* U+00228e: MULTISET UNION*/ + 0x228f, /* U+00228f: SQUARE IMAGE OF*/ + 0x2290, /* U+002290: SQUARE ORIGINAL OF*/ + 0x2291, /* U+002291: SQUARE IMAGE OF OR EQUAL TO*/ + 0x2292, /* U+002292: SQUARE ORIGINAL OF OR EQUAL TO*/ + 0x2293, /* U+002293: SQUARE CAP*/ + 0x2294, /* U+002294: SQUARE CUP*/ + 0x2295, /* U+002295: CIRCLED PLUS*/ + 0x2296, /* U+002296: CIRCLED MINUS*/ + 0x2297, /* U+002297: CIRCLED TIMES*/ + 0x2298, /* U+002298: CIRCLED DIVISION SLASH*/ + 0x2299, /* U+002299: CIRCLED DOT OPERATOR*/ + 0x229a, /* U+00229a: CIRCLED RING OPERATOR*/ + 0x229b, /* U+00229b: CIRCLED ASTERISK OPERATOR*/ + 0x229c, /* U+00229c: CIRCLED EQUALS*/ + 0x229d, /* U+00229d: CIRCLED DASH*/ + 0x229e, /* U+00229e: SQUARED PLUS*/ + 0x229f, /* U+00229f: SQUARED MINUS*/ + 0x22a0, /* U+0022a0: SQUARED TIMES*/ + 0x22a1, /* U+0022a1: SQUARED DOT OPERATOR*/ + 0x22a2, /* U+0022a2: RIGHT TACK*/ + 0x22a3, /* U+0022a3: LEFT TACK*/ + 0x22a4, /* U+0022a4: DOWN TACK*/ + 0x22a5, /* U+0022a5: UP TACK*/ + 0x22a6, /* U+0022a6: ASSERTION*/ + 0x22a7, /* U+0022a7: MODELS*/ + 0x22a8, /* U+0022a8: TRUE*/ + 0x22a9, /* U+0022a9: FORCES*/ + 0x22aa, /* U+0022aa: TRIPLE VERTICAL BAR RIGHT TURNSTILE*/ + 0x22ab, /* U+0022ab: DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ + 0x22ac, /* U+0022ac: DOES NOT PROVE*/ + 0x22ad, /* U+0022ad: NOT TRUE*/ + 0x22ae, /* U+0022ae: DOES NOT FORCE*/ + 0x22af, /* U+0022af: NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE*/ + 0x22b0, /* U+0022b0: PRECEDES UNDER RELATION*/ + 0x22b1, /* U+0022b1: SUCCEEDS UNDER RELATION*/ + 0x22b2, /* U+0022b2: NORMAL SUBGROUP OF*/ + 0x22b3, /* U+0022b3: CONTAINS AS NORMAL SUBGROUP*/ + 0x22b4, /* U+0022b4: NORMAL SUBGROUP OF OR EQUAL TO*/ + 0x22b5, /* U+0022b5: CONTAINS AS NORMAL SUBGROUP OR EQUAL TO*/ + 0x22b6, /* U+0022b6: ORIGINAL OF*/ + 0x22b7, /* U+0022b7: IMAGE OF*/ + 0x22b8, /* U+0022b8: MULTIMAP*/ + 0x22b9, /* U+0022b9: HERMITIAN CONJUGATE MATRIX*/ + 0x22ba, /* U+0022ba: INTERCALATE*/ + 0x22bb, /* U+0022bb: XOR*/ + 0x22bc, /* U+0022bc: NAND*/ + 0x22bd, /* U+0022bd: NOR*/ + 0x22be, /* U+0022be: RIGHT ANGLE WITH ARC*/ + 0x22bf, /* U+0022bf: RIGHT TRIANGLE*/ + 0x22c0, /* U+0022c0: N-ARY LOGICAL AND*/ + 0x22c1, /* U+0022c1: N-ARY LOGICAL OR*/ + 0x22c2, /* U+0022c2: N-ARY INTERSECTION*/ + 0x22c3, /* U+0022c3: N-ARY UNION*/ + 0x22c4, /* U+0022c4: DIAMOND OPERATOR*/ + 0x22c5, /* U+0022c5: DOT OPERATOR*/ + 0x22c6, /* U+0022c6: STAR OPERATOR*/ + 0x22c7, /* U+0022c7: DIVISION TIMES*/ + 0x22c8, /* U+0022c8: BOWTIE*/ + 0x22c9, /* U+0022c9: LEFT NORMAL FACTOR SEMIDIRECT PRODUCT*/ + 0x22ca, /* U+0022ca: RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT*/ + 0x22cb, /* U+0022cb: LEFT SEMIDIRECT PRODUCT*/ + 0x22cc, /* U+0022cc: RIGHT SEMIDIRECT PRODUCT*/ + 0x22cd, /* U+0022cd: REVERSED TILDE EQUALS*/ + 0x22ce, /* U+0022ce: CURLY LOGICAL OR*/ + 0x22cf, /* U+0022cf: CURLY LOGICAL AND*/ + 0x22d0, /* U+0022d0: DOUBLE SUBSET*/ + 0x22d1, /* U+0022d1: DOUBLE SUPERSET*/ + 0x22d2, /* U+0022d2: DOUBLE INTERSECTION*/ + 0x22d3, /* U+0022d3: DOUBLE UNION*/ + 0x22d4, /* U+0022d4: PITCHFORK*/ + 0x22d5, /* U+0022d5: EQUAL AND PARALLEL TO*/ + 0x22d6, /* U+0022d6: LESS-THAN WITH DOT*/ + 0x22d7, /* U+0022d7: GREATER-THAN WITH DOT*/ + 0x22d8, /* U+0022d8: VERY MUCH LESS-THAN*/ + 0x22d9, /* U+0022d9: VERY MUCH GREATER-THAN*/ + 0x22da, /* U+0022da: LESS-THAN EQUAL TO OR GREATER-THAN*/ + 0x22db, /* U+0022db: GREATER-THAN EQUAL TO OR LESS-THAN*/ + 0x22dc, /* U+0022dc: EQUAL TO OR LESS-THAN*/ + 0x22dd, /* U+0022dd: EQUAL TO OR GREATER-THAN*/ + 0x22de, /* U+0022de: EQUAL TO OR PRECEDES*/ + 0x22df, /* U+0022df: EQUAL TO OR SUCCEEDS*/ + 0x22e0, /* U+0022e0: DOES NOT PRECEDE OR EQUAL*/ + 0x22e1, /* U+0022e1: DOES NOT SUCCEED OR EQUAL*/ + 0x22e2, /* U+0022e2: NOT SQUARE IMAGE OF OR EQUAL TO*/ + 0x22e3, /* U+0022e3: NOT SQUARE ORIGINAL OF OR EQUAL TO*/ + 0x22e4, /* U+0022e4: SQUARE IMAGE OF OR NOT EQUAL TO*/ + 0x22e5, /* U+0022e5: SQUARE ORIGINAL OF OR NOT EQUAL TO*/ + 0x22e6, /* U+0022e6: LESS-THAN BUT NOT EQUIVALENT TO*/ + 0x22e7, /* U+0022e7: GREATER-THAN BUT NOT EQUIVALENT TO*/ + 0x22e8, /* U+0022e8: PRECEDES BUT NOT EQUIVALENT TO*/ + 0x22e9, /* U+0022e9: SUCCEEDS BUT NOT EQUIVALENT TO*/ + 0x22ea, /* U+0022ea: NOT NORMAL SUBGROUP OF*/ + 0x22eb, /* U+0022eb: DOES NOT CONTAIN AS NORMAL SUBGROUP*/ + 0x22ec, /* U+0022ec: NOT NORMAL SUBGROUP OF OR EQUAL TO*/ + 0x22ed, /* U+0022ed: DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL*/ + 0x22ee, /* U+0022ee: VERTICAL ELLIPSIS*/ + 0x22ef, /* U+0022ef: MIDLINE HORIZONTAL ELLIPSIS*/ + 0x22f0, /* U+0022f0: UP RIGHT DIAGONAL ELLIPSIS*/ + 0x22f1, /* U+0022f1: DOWN RIGHT DIAGONAL ELLIPSIS*/ + 0x22f2, /* U+0022f2: ELEMENT OF WITH LONG HORIZONTAL STROKE*/ + 0x22f3, /* U+0022f3: ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0x22f4, /* U+0022f4: SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0x22f5, /* U+0022f5: ELEMENT OF WITH DOT ABOVE*/ + 0x22f6, /* U+0022f6: ELEMENT OF WITH OVERBAR*/ + 0x22f7, /* U+0022f7: SMALL ELEMENT OF WITH OVERBAR*/ + 0x22f8, /* U+0022f8: ELEMENT OF WITH UNDERBAR*/ + 0x22f9, /* U+0022f9: ELEMENT OF WITH TWO HORIZONTAL STROKES*/ + 0x22fa, /* U+0022fa: CONTAINS WITH LONG HORIZONTAL STROKE*/ + 0x22fb, /* U+0022fb: CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0x22fc, /* U+0022fc: SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE*/ + 0x22fd, /* U+0022fd: CONTAINS WITH OVERBAR*/ + 0x22fe, /* U+0022fe: SMALL CONTAINS WITH OVERBAR*/ + 0x22ff, /* U+0022ff: Z NOTATION BAG MEMBERSHIP*/ + 0x2300, /* U+002300: DIAMETER SIGN*/ + 0x2301, /* U+002301: ELECTRIC ARROW*/ + 0x2302, /* U+002302: HOUSE*/ + 0x2303, /* U+002303: UP ARROWHEAD*/ + 0x2304, /* U+002304: DOWN ARROWHEAD*/ + 0x2305, /* U+002305: PROJECTIVE*/ + 0x2306, /* U+002306: PERSPECTIVE*/ + 0x2307, /* U+002307: WAVY LINE*/ + 0x2308, /* U+002308: LEFT CEILING*/ + 0x2309, /* U+002309: RIGHT CEILING*/ + 0x230a, /* U+00230a: LEFT FLOOR*/ + 0x230b, /* U+00230b: RIGHT FLOOR*/ + 0x230c, /* U+00230c: BOTTOM RIGHT CROP*/ + 0x230d, /* U+00230d: BOTTOM LEFT CROP*/ + 0x230e, /* U+00230e: TOP RIGHT CROP*/ + 0x230f, /* U+00230f: TOP LEFT CROP*/ + 0x2310, /* U+002310: REVERSED NOT SIGN*/ + 0x2311, /* U+002311: SQUARE LOZENGE*/ + 0x2312, /* U+002312: ARC*/ + 0x2313, /* U+002313: SEGMENT*/ + 0x2314, /* U+002314: SECTOR*/ + 0x2315, /* U+002315: TELEPHONE RECORDER*/ + 0x2316, /* U+002316: POSITION INDICATOR*/ + 0x2317, /* U+002317: VIEWDATA SQUARE*/ + 0x2318, /* U+002318: PLACE OF INTEREST SIGN*/ + 0x2319, /* U+002319: TURNED NOT SIGN*/ + 0x231a, /* U+00231a: WATCH*/ + 0x231b, /* U+00231b: HOURGLASS*/ + 0x231c, /* U+00231c: TOP LEFT CORNER*/ + 0x231d, /* U+00231d: TOP RIGHT CORNER*/ + 0x231e, /* U+00231e: BOTTOM LEFT CORNER*/ + 0x231f, /* U+00231f: BOTTOM RIGHT CORNER*/ + 0x2320, /* U+002320: TOP HALF INTEGRAL*/ + 0x2321, /* U+002321: BOTTOM HALF INTEGRAL*/ + 0x2322, /* U+002322: FROWN*/ + 0x2323, /* U+002323: SMILE*/ + 0x2324, /* U+002324: UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS*/ + 0x2325, /* U+002325: OPTION KEY*/ + 0x2326, /* U+002326: ERASE TO THE RIGHT*/ + 0x2327, /* U+002327: X IN A RECTANGLE BOX*/ + 0x2328, /* U+002328: KEYBOARD*/ + 0x2329, /* U+002329: LEFT-POINTING ANGLE BRACKET*/ + 0x232a, /* U+00232a: RIGHT-POINTING ANGLE BRACKET*/ + 0x232b, /* U+00232b: ERASE TO THE LEFT*/ + 0x232c, /* U+00232c: BENZENE RING*/ + 0x232d, /* U+00232d: CYLINDRICITY*/ + 0x232e, /* U+00232e: ALL AROUND-PROFILE*/ + 0x232f, /* U+00232f: SYMMETRY*/ + 0x2330, /* U+002330: TOTAL RUNOUT*/ + 0x2331, /* U+002331: DIMENSION ORIGIN*/ + 0x2332, /* U+002332: CONICAL TAPER*/ + 0x2333, /* U+002333: SLOPE*/ + 0x2334, /* U+002334: COUNTERBORE*/ + 0x2335, /* U+002335: COUNTERSINK*/ + 0x2336, /* U+002336: APL FUNCTIONAL SYMBOL I-BEAM*/ + 0x2337, /* U+002337: APL FUNCTIONAL SYMBOL SQUISH QUAD*/ + 0x2338, /* U+002338: APL FUNCTIONAL SYMBOL QUAD EQUAL*/ + 0x2339, /* U+002339: APL FUNCTIONAL SYMBOL QUAD DIVIDE*/ + 0x233a, /* U+00233a: APL FUNCTIONAL SYMBOL QUAD DIAMOND*/ + 0x233b, /* U+00233b: APL FUNCTIONAL SYMBOL QUAD JOT*/ + 0x233c, /* U+00233c: APL FUNCTIONAL SYMBOL QUAD CIRCLE*/ + 0x233d, /* U+00233d: APL FUNCTIONAL SYMBOL CIRCLE STILE*/ + 0x233e, /* U+00233e: APL FUNCTIONAL SYMBOL CIRCLE JOT*/ + 0x233f, /* U+00233f: APL FUNCTIONAL SYMBOL SLASH BAR*/ + 0x2340, /* U+002340: APL FUNCTIONAL SYMBOL BACKSLASH BAR*/ + 0x2341, /* U+002341: APL FUNCTIONAL SYMBOL QUAD SLASH*/ + 0x2342, /* U+002342: APL FUNCTIONAL SYMBOL QUAD BACKSLASH*/ + 0x2343, /* U+002343: APL FUNCTIONAL SYMBOL QUAD LESS-THAN*/ + 0x2344, /* U+002344: APL FUNCTIONAL SYMBOL QUAD GREATER-THAN*/ + 0x2345, /* U+002345: APL FUNCTIONAL SYMBOL LEFTWARDS VANE*/ + 0x2346, /* U+002346: APL FUNCTIONAL SYMBOL RIGHTWARDS VANE*/ + 0x2347, /* U+002347: APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW*/ + 0x2348, /* U+002348: APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW*/ + 0x2349, /* U+002349: APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH*/ + 0x234a, /* U+00234a: APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR*/ + 0x234b, /* U+00234b: APL FUNCTIONAL SYMBOL DELTA STILE*/ + 0x234c, /* U+00234c: APL FUNCTIONAL SYMBOL QUAD DOWN CARET*/ + 0x234d, /* U+00234d: APL FUNCTIONAL SYMBOL QUAD DELTA*/ + 0x234e, /* U+00234e: APL FUNCTIONAL SYMBOL DOWN TACK JOT*/ + 0x234f, /* U+00234f: APL FUNCTIONAL SYMBOL UPWARDS VANE*/ + 0x2350, /* U+002350: APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW*/ + 0x2351, /* U+002351: APL FUNCTIONAL SYMBOL UP TACK OVERBAR*/ + 0x2352, /* U+002352: APL FUNCTIONAL SYMBOL DEL STILE*/ + 0x2353, /* U+002353: APL FUNCTIONAL SYMBOL QUAD UP CARET*/ + 0x2354, /* U+002354: APL FUNCTIONAL SYMBOL QUAD DEL*/ + 0x2355, /* U+002355: APL FUNCTIONAL SYMBOL UP TACK JOT*/ + 0x2356, /* U+002356: APL FUNCTIONAL SYMBOL DOWNWARDS VANE*/ + 0x2357, /* U+002357: APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW*/ + 0x2358, /* U+002358: APL FUNCTIONAL SYMBOL QUOTE UNDERBAR*/ + 0x2359, /* U+002359: APL FUNCTIONAL SYMBOL DELTA UNDERBAR*/ + 0x235a, /* U+00235a: APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR*/ + 0x235b, /* U+00235b: APL FUNCTIONAL SYMBOL JOT UNDERBAR*/ + 0x235c, /* U+00235c: APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR*/ + 0x235d, /* U+00235d: APL FUNCTIONAL SYMBOL UP SHOE JOT*/ + 0x235e, /* U+00235e: APL FUNCTIONAL SYMBOL QUOTE QUAD*/ + 0x235f, /* U+00235f: APL FUNCTIONAL SYMBOL CIRCLE STAR*/ + 0x2360, /* U+002360: APL FUNCTIONAL SYMBOL QUAD COLON*/ + 0x2361, /* U+002361: APL FUNCTIONAL SYMBOL UP TACK DIAERESIS*/ + 0x2362, /* U+002362: APL FUNCTIONAL SYMBOL DEL DIAERESIS*/ + 0x2363, /* U+002363: APL FUNCTIONAL SYMBOL STAR DIAERESIS*/ + 0x2364, /* U+002364: APL FUNCTIONAL SYMBOL JOT DIAERESIS*/ + 0x2365, /* U+002365: APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS*/ + 0x2366, /* U+002366: APL FUNCTIONAL SYMBOL DOWN SHOE STILE*/ + 0x2367, /* U+002367: APL FUNCTIONAL SYMBOL LEFT SHOE STILE*/ + 0x2368, /* U+002368: APL FUNCTIONAL SYMBOL TILDE DIAERESIS*/ + 0x2369, /* U+002369: APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS*/ + 0x236a, /* U+00236a: APL FUNCTIONAL SYMBOL COMMA BAR*/ + 0x236b, /* U+00236b: APL FUNCTIONAL SYMBOL DEL TILDE*/ + 0x236c, /* U+00236c: APL FUNCTIONAL SYMBOL ZILDE*/ + 0x236d, /* U+00236d: APL FUNCTIONAL SYMBOL STILE TILDE*/ + 0x236e, /* U+00236e: APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR*/ + 0x236f, /* U+00236f: APL FUNCTIONAL SYMBOL QUAD NOT EQUAL*/ + 0x2370, /* U+002370: APL FUNCTIONAL SYMBOL QUAD QUESTION*/ + 0x2371, /* U+002371: APL FUNCTIONAL SYMBOL DOWN CARET TILDE*/ + 0x2372, /* U+002372: APL FUNCTIONAL SYMBOL UP CARET TILDE*/ + 0x2373, /* U+002373: APL FUNCTIONAL SYMBOL IOTA*/ + 0x2374, /* U+002374: APL FUNCTIONAL SYMBOL RHO*/ + 0x2375, /* U+002375: APL FUNCTIONAL SYMBOL OMEGA*/ + 0x2376, /* U+002376: APL FUNCTIONAL SYMBOL ALPHA UNDERBAR*/ + 0x2377, /* U+002377: APL FUNCTIONAL SYMBOL EPSILON UNDERBAR*/ + 0x2378, /* U+002378: APL FUNCTIONAL SYMBOL IOTA UNDERBAR*/ + 0x2379, /* U+002379: APL FUNCTIONAL SYMBOL OMEGA UNDERBAR*/ + 0x237a, /* U+00237a: APL FUNCTIONAL SYMBOL ALPHA*/ + 0x237b, /* U+00237b: NOT CHECK MARK*/ + 0x237c, /* U+00237c: RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW*/ + 0x237d, /* U+00237d: SHOULDERED OPEN BOX*/ + 0x237e, /* U+00237e: BELL SYMBOL*/ + 0x237f, /* U+00237f: VERTICAL LINE WITH MIDDLE DOT*/ + 0x2380, /* U+002380: INSERTION SYMBOL*/ + 0x2381, /* U+002381: CONTINUOUS UNDERLINE SYMBOL*/ + 0x2382, /* U+002382: DISCONTINUOUS UNDERLINE SYMBOL*/ + 0x2383, /* U+002383: EMPHASIS SYMBOL*/ + 0x2384, /* U+002384: COMPOSITION SYMBOL*/ + 0x2385, /* U+002385: WHITE SQUARE WITH CENTRE VERTICAL LINE*/ + 0x2386, /* U+002386: ENTER SYMBOL*/ + 0x2387, /* U+002387: ALTERNATIVE KEY SYMBOL*/ + 0x2388, /* U+002388: HELM SYMBOL*/ + 0x2389, /* U+002389: CIRCLED HORIZONTAL BAR WITH NOTCH*/ + 0x238a, /* U+00238a: CIRCLED TRIANGLE DOWN*/ + 0x238b, /* U+00238b: BROKEN CIRCLE WITH NORTHWEST ARROW*/ + 0x238c, /* U+00238c: UNDO SYMBOL*/ + 0x238d, /* U+00238d: MONOSTABLE SYMBOL*/ + 0x238e, /* U+00238e: HYSTERESIS SYMBOL*/ + 0x238f, /* U+00238f: OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL*/ + 0x2390, /* U+002390: OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL*/ + 0x2391, /* U+002391: PASSIVE-PULL-DOWN-OUTPUT SYMBOL*/ + 0x2392, /* U+002392: PASSIVE-PULL-UP-OUTPUT SYMBOL*/ + 0x2393, /* U+002393: DIRECT CURRENT SYMBOL FORM TWO*/ + 0x2394, /* U+002394: SOFTWARE-FUNCTION SYMBOL*/ + 0x2395, /* U+002395: APL FUNCTIONAL SYMBOL QUAD*/ + 0x2396, /* U+002396: DECIMAL SEPARATOR KEY SYMBOL*/ + 0x2397, /* U+002397: PREVIOUS PAGE*/ + 0x2398, /* U+002398: NEXT PAGE*/ + 0x2399, /* U+002399: PRINT SCREEN SYMBOL*/ + 0x239a, /* U+00239a: CLEAR SCREEN SYMBOL*/ + 0x239b, /* U+00239b: LEFT PARENTHESIS UPPER HOOK*/ + 0x239c, /* U+00239c: LEFT PARENTHESIS EXTENSION*/ + 0x239d, /* U+00239d: LEFT PARENTHESIS LOWER HOOK*/ + 0x239e, /* U+00239e: RIGHT PARENTHESIS UPPER HOOK*/ + 0x239f, /* U+00239f: RIGHT PARENTHESIS EXTENSION*/ + 0x23a0, /* U+0023a0: RIGHT PARENTHESIS LOWER HOOK*/ + 0x23a1, /* U+0023a1: LEFT SQUARE BRACKET UPPER CORNER*/ + 0x23a2, /* U+0023a2: LEFT SQUARE BRACKET EXTENSION*/ + 0x23a3, /* U+0023a3: LEFT SQUARE BRACKET LOWER CORNER*/ + 0x23a4, /* U+0023a4: RIGHT SQUARE BRACKET UPPER CORNER*/ + 0x23a5, /* U+0023a5: RIGHT SQUARE BRACKET EXTENSION*/ + 0x23a6, /* U+0023a6: RIGHT SQUARE BRACKET LOWER CORNER*/ + 0x23a7, /* U+0023a7: LEFT CURLY BRACKET UPPER HOOK*/ + 0x23a8, /* U+0023a8: LEFT CURLY BRACKET MIDDLE PIECE*/ + 0x23a9, /* U+0023a9: LEFT CURLY BRACKET LOWER HOOK*/ + 0x23aa, /* U+0023aa: CURLY BRACKET EXTENSION*/ + 0x23ab, /* U+0023ab: RIGHT CURLY BRACKET UPPER HOOK*/ + 0x23ac, /* U+0023ac: RIGHT CURLY BRACKET MIDDLE PIECE*/ + 0x23ad, /* U+0023ad: RIGHT CURLY BRACKET LOWER HOOK*/ + 0x23ae, /* U+0023ae: INTEGRAL EXTENSION*/ + 0x23af, /* U+0023af: HORIZONTAL LINE EXTENSION*/ + 0x23b0, /* U+0023b0: UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION*/ + 0x23b1, /* U+0023b1: UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION*/ + 0x23b2, /* U+0023b2: SUMMATION TOP*/ + 0x23b3, /* U+0023b3: SUMMATION BOTTOM*/ + 0x23b4, /* U+0023b4: TOP SQUARE BRACKET*/ + 0x23b5, /* U+0023b5: BOTTOM SQUARE BRACKET*/ + 0x23b6, /* U+0023b6: BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET*/ + 0x23b7, /* U+0023b7: RADICAL SYMBOL BOTTOM*/ + 0x23b8, /* U+0023b8: LEFT VERTICAL BOX LINE*/ + 0x23b9, /* U+0023b9: RIGHT VERTICAL BOX LINE*/ + 0x23ba, /* U+0023ba: HORIZONTAL SCAN LINE-1*/ + 0x23bb, /* U+0023bb: HORIZONTAL SCAN LINE-3*/ + 0x23bc, /* U+0023bc: HORIZONTAL SCAN LINE-7*/ + 0x23bd, /* U+0023bd: HORIZONTAL SCAN LINE-9*/ + 0x23be, /* U+0023be: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT*/ + 0x23bf, /* U+0023bf: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT*/ + 0x23c0, /* U+0023c0: DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE*/ + 0x23c1, /* U+0023c1: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE*/ + 0x23c2, /* U+0023c2: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE*/ + 0x23c3, /* U+0023c3: DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE*/ + 0x23c4, /* U+0023c4: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE*/ + 0x23c5, /* U+0023c5: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE*/ + 0x23c6, /* U+0023c6: DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE*/ + 0x23c7, /* U+0023c7: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE*/ + 0x23c8, /* U+0023c8: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE*/ + 0x23c9, /* U+0023c9: DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL*/ + 0x23ca, /* U+0023ca: DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL*/ + 0x23cb, /* U+0023cb: DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT*/ + 0x23cc, /* U+0023cc: DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT*/ + 0x23cd, /* U+0023cd: SQUARE FOOT*/ + 0x23ce, /* U+0023ce: RETURN SYMBOL*/ + 0x23cf, /* U+0023cf: EJECT SYMBOL*/ + 0x23d0, /* U+0023d0: VERTICAL LINE EXTENSION*/ + 0x23d1, /* U+0023d1: METRICAL BREVE*/ + 0x23d2, /* U+0023d2: METRICAL LONG OVER SHORT*/ + 0x23d3, /* U+0023d3: METRICAL SHORT OVER LONG*/ + 0x23d4, /* U+0023d4: METRICAL LONG OVER TWO SHORTS*/ + 0x23d5, /* U+0023d5: METRICAL TWO SHORTS OVER LONG*/ + 0x23d6, /* U+0023d6: METRICAL TWO SHORTS JOINED*/ + 0x23d7, /* U+0023d7: METRICAL TRISEME*/ + 0x23d8, /* U+0023d8: METRICAL TETRASEME*/ + 0x23d9, /* U+0023d9: METRICAL PENTASEME*/ + 0x23da, /* U+0023da: EARTH GROUND*/ + 0x23db, /* U+0023db: FUSE*/ + 0x23dc, /* U+0023dc: TOP PARENTHESIS*/ + 0x23dd, /* U+0023dd: BOTTOM PARENTHESIS*/ + 0x23de, /* U+0023de: TOP CURLY BRACKET*/ + 0x23df, /* U+0023df: BOTTOM CURLY BRACKET*/ + 0x23e0, /* U+0023e0: TOP TORTOISE SHELL BRACKET*/ + 0x23e1, /* U+0023e1: BOTTOM TORTOISE SHELL BRACKET*/ + 0x23e2, /* U+0023e2: WHITE TRAPEZIUM*/ + 0x23e3, /* U+0023e3: BENZENE RING WITH CIRCLE*/ + 0x23e4, /* U+0023e4: STRAIGHTNESS*/ + 0x23e5, /* U+0023e5: FLATNESS*/ + 0x23e6, /* U+0023e6: AC CURRENT*/ + 0x23e7, /* U+0023e7: ELECTRICAL INTERSECTION*/ + 0x23e8, /* U+0023e8: DECIMAL EXPONENT SYMBOL*/ + 0x23e9, /* U+0023e9: BLACK RIGHT-POINTING DOUBLE TRIANGLE*/ + 0x23ea, /* U+0023ea: BLACK LEFT-POINTING DOUBLE TRIANGLE*/ + 0x23eb, /* U+0023eb: BLACK UP-POINTING DOUBLE TRIANGLE*/ + 0x23ec, /* U+0023ec: BLACK DOWN-POINTING DOUBLE TRIANGLE*/ + 0x23ed, /* U+0023ed: BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR*/ + 0x23ee, /* U+0023ee: BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR*/ + 0x23ef, /* U+0023ef: BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR*/ + 0x23f0, /* U+0023f0: ALARM CLOCK*/ + 0x23f1, /* U+0023f1: STOPWATCH*/ + 0x23f2, /* U+0023f2: TIMER CLOCK*/ + 0x23f3, /* U+0023f3: HOURGLASS WITH FLOWING SAND*/ + 0x23f4, /* U+0023f4: */ + 0x23f5, /* U+0023f5: */ + 0x23f6, /* U+0023f6: */ + 0x23f7, /* U+0023f7: */ + 0x23f8, /* U+0023f8: */ + 0x23f9, /* U+0023f9: */ + 0x23fa, /* U+0023fa: */ + 0x23fb, /* U+0023fb: */ + 0x23fc, /* U+0023fc: */ + 0x23fd, /* U+0023fd: */ + 0x23fe, /* U+0023fe: */ + 0x23ff, /* U+0023ff: */ + 0x2400, /* U+002400: SYMBOL FOR NULL*/ + 0x2401, /* U+002401: SYMBOL FOR START OF HEADING*/ + 0x2402, /* U+002402: SYMBOL FOR START OF TEXT*/ + 0x2403, /* U+002403: SYMBOL FOR END OF TEXT*/ + 0x2404, /* U+002404: SYMBOL FOR END OF TRANSMISSION*/ + 0x2405, /* U+002405: SYMBOL FOR ENQUIRY*/ + 0x2406, /* U+002406: SYMBOL FOR ACKNOWLEDGE*/ + 0x2407, /* U+002407: SYMBOL FOR BELL*/ + 0x2408, /* U+002408: SYMBOL FOR BACKSPACE*/ + 0x2409, /* U+002409: SYMBOL FOR HORIZONTAL TABULATION*/ + 0x240a, /* U+00240a: SYMBOL FOR LINE FEED*/ + 0x240b, /* U+00240b: SYMBOL FOR VERTICAL TABULATION*/ + 0x240c, /* U+00240c: SYMBOL FOR FORM FEED*/ + 0x240d, /* U+00240d: SYMBOL FOR CARRIAGE RETURN*/ + 0x240e, /* U+00240e: SYMBOL FOR SHIFT OUT*/ + 0x240f, /* U+00240f: SYMBOL FOR SHIFT IN*/ + 0x2410, /* U+002410: SYMBOL FOR DATA LINK ESCAPE*/ + 0x2411, /* U+002411: SYMBOL FOR DEVICE CONTROL ONE*/ + 0x2412, /* U+002412: SYMBOL FOR DEVICE CONTROL TWO*/ + 0x2413, /* U+002413: SYMBOL FOR DEVICE CONTROL THREE*/ + 0x2414, /* U+002414: SYMBOL FOR DEVICE CONTROL FOUR*/ + 0x2415, /* U+002415: SYMBOL FOR NEGATIVE ACKNOWLEDGE*/ + 0x2416, /* U+002416: SYMBOL FOR SYNCHRONOUS IDLE*/ + 0x2417, /* U+002417: SYMBOL FOR END OF TRANSMISSION BLOCK*/ + 0x2418, /* U+002418: SYMBOL FOR CANCEL*/ + 0x2419, /* U+002419: SYMBOL FOR END OF MEDIUM*/ + 0x241a, /* U+00241a: SYMBOL FOR SUBSTITUTE*/ + 0x241b, /* U+00241b: SYMBOL FOR ESCAPE*/ + 0x241c, /* U+00241c: SYMBOL FOR FILE SEPARATOR*/ + 0x241d, /* U+00241d: SYMBOL FOR GROUP SEPARATOR*/ + 0x241e, /* U+00241e: SYMBOL FOR RECORD SEPARATOR*/ + 0x241f, /* U+00241f: SYMBOL FOR UNIT SEPARATOR*/ + 0x2420, /* U+002420: SYMBOL FOR SPACE*/ + 0x2421, /* U+002421: SYMBOL FOR DELETE*/ + 0x2422, /* U+002422: BLANK SYMBOL*/ + 0x2423, /* U+002423: OPEN BOX*/ + 0x2424, /* U+002424: SYMBOL FOR NEWLINE*/ + 0x2425, /* U+002425: SYMBOL FOR DELETE FORM TWO*/ + 0x2426, /* U+002426: SYMBOL FOR SUBSTITUTE FORM TWO*/ + 0x2427, /* U+002427: */ + 0x2428, /* U+002428: */ + 0x2429, /* U+002429: */ + 0x242a, /* U+00242a: */ + 0x242b, /* U+00242b: */ + 0x242c, /* U+00242c: */ + 0x242d, /* U+00242d: */ + 0x242e, /* U+00242e: */ + 0x242f, /* U+00242f: */ + 0x2430, /* U+002430: */ + 0x2431, /* U+002431: */ + 0x2432, /* U+002432: */ + 0x2433, /* U+002433: */ + 0x2434, /* U+002434: */ + 0x2435, /* U+002435: */ + 0x2436, /* U+002436: */ + 0x2437, /* U+002437: */ + 0x2438, /* U+002438: */ + 0x2439, /* U+002439: */ + 0x243a, /* U+00243a: */ + 0x243b, /* U+00243b: */ + 0x243c, /* U+00243c: */ + 0x243d, /* U+00243d: */ + 0x243e, /* U+00243e: */ + 0x243f, /* U+00243f: */ + 0x2440, /* U+002440: OCR HOOK*/ + 0x2441, /* U+002441: OCR CHAIR*/ + 0x2442, /* U+002442: OCR FORK*/ + 0x2443, /* U+002443: OCR INVERTED FORK*/ + 0x2444, /* U+002444: OCR BELT BUCKLE*/ + 0x2445, /* U+002445: OCR BOW TIE*/ + 0x2446, /* U+002446: OCR BRANCH BANK IDENTIFICATION*/ + 0x2447, /* U+002447: OCR AMOUNT OF CHECK*/ + 0x2448, /* U+002448: OCR DASH*/ + 0x2449, /* U+002449: OCR CUSTOMER ACCOUNT NUMBER*/ + 0x244a, /* U+00244a: OCR DOUBLE BACKSLASH*/ + 0x244b, /* U+00244b: */ + 0x244c, /* U+00244c: */ + 0x244d, /* U+00244d: */ + 0x244e, /* U+00244e: */ + 0x244f, /* U+00244f: */ + 0x2450, /* U+002450: */ + 0x2451, /* U+002451: */ + 0x2452, /* U+002452: */ + 0x2453, /* U+002453: */ + 0x2454, /* U+002454: */ + 0x2455, /* U+002455: */ + 0x2456, /* U+002456: */ + 0x2457, /* U+002457: */ + 0x2458, /* U+002458: */ + 0x2459, /* U+002459: */ + 0x245a, /* U+00245a: */ + 0x245b, /* U+00245b: */ + 0x245c, /* U+00245c: */ + 0x245d, /* U+00245d: */ + 0x245e, /* U+00245e: */ + 0x245f, /* U+00245f: */ + 0x2460, /* U+002460: CIRCLED DIGIT ONE*/ + 0x2461, /* U+002461: CIRCLED DIGIT TWO*/ + 0x2462, /* U+002462: CIRCLED DIGIT THREE*/ + 0x2463, /* U+002463: CIRCLED DIGIT FOUR*/ + 0x2464, /* U+002464: CIRCLED DIGIT FIVE*/ + 0x2465, /* U+002465: CIRCLED DIGIT SIX*/ + 0x2466, /* U+002466: CIRCLED DIGIT SEVEN*/ + 0x2467, /* U+002467: CIRCLED DIGIT EIGHT*/ + 0x2468, /* U+002468: CIRCLED DIGIT NINE*/ + 0x2469, /* U+002469: CIRCLED NUMBER TEN*/ + 0x246a, /* U+00246a: CIRCLED NUMBER ELEVEN*/ + 0x246b, /* U+00246b: CIRCLED NUMBER TWELVE*/ + 0x246c, /* U+00246c: CIRCLED NUMBER THIRTEEN*/ + 0x246d, /* U+00246d: CIRCLED NUMBER FOURTEEN*/ + 0x246e, /* U+00246e: CIRCLED NUMBER FIFTEEN*/ + 0x246f, /* U+00246f: CIRCLED NUMBER SIXTEEN*/ + 0x2470, /* U+002470: CIRCLED NUMBER SEVENTEEN*/ + 0x2471, /* U+002471: CIRCLED NUMBER EIGHTEEN*/ + 0x2472, /* U+002472: CIRCLED NUMBER NINETEEN*/ + 0x2473, /* U+002473: CIRCLED NUMBER TWENTY*/ + 0x2474, /* U+002474: PARENTHESIZED DIGIT ONE*/ + 0x2475, /* U+002475: PARENTHESIZED DIGIT TWO*/ + 0x2476, /* U+002476: PARENTHESIZED DIGIT THREE*/ + 0x2477, /* U+002477: PARENTHESIZED DIGIT FOUR*/ + 0x2478, /* U+002478: PARENTHESIZED DIGIT FIVE*/ + 0x2479, /* U+002479: PARENTHESIZED DIGIT SIX*/ + 0x247a, /* U+00247a: PARENTHESIZED DIGIT SEVEN*/ + 0x247b, /* U+00247b: PARENTHESIZED DIGIT EIGHT*/ + 0x247c, /* U+00247c: PARENTHESIZED DIGIT NINE*/ + 0x247d, /* U+00247d: PARENTHESIZED NUMBER TEN*/ + 0x247e, /* U+00247e: PARENTHESIZED NUMBER ELEVEN*/ + 0x247f, /* U+00247f: PARENTHESIZED NUMBER TWELVE*/ + 0x2480, /* U+002480: PARENTHESIZED NUMBER THIRTEEN*/ + 0x2481, /* U+002481: PARENTHESIZED NUMBER FOURTEEN*/ + 0x2482, /* U+002482: PARENTHESIZED NUMBER FIFTEEN*/ + 0x2483, /* U+002483: PARENTHESIZED NUMBER SIXTEEN*/ + 0x2484, /* U+002484: PARENTHESIZED NUMBER SEVENTEEN*/ + 0x2485, /* U+002485: PARENTHESIZED NUMBER EIGHTEEN*/ + 0x2486, /* U+002486: PARENTHESIZED NUMBER NINETEEN*/ + 0x2487, /* U+002487: PARENTHESIZED NUMBER TWENTY*/ + 0x2488, /* U+002488: DIGIT ONE FULL STOP*/ + 0x2489, /* U+002489: DIGIT TWO FULL STOP*/ + 0x248a, /* U+00248a: DIGIT THREE FULL STOP*/ + 0x248b, /* U+00248b: DIGIT FOUR FULL STOP*/ + 0x248c, /* U+00248c: DIGIT FIVE FULL STOP*/ + 0x248d, /* U+00248d: DIGIT SIX FULL STOP*/ + 0x248e, /* U+00248e: DIGIT SEVEN FULL STOP*/ + 0x248f, /* U+00248f: DIGIT EIGHT FULL STOP*/ + 0x2490, /* U+002490: DIGIT NINE FULL STOP*/ + 0x2491, /* U+002491: NUMBER TEN FULL STOP*/ + 0x2492, /* U+002492: NUMBER ELEVEN FULL STOP*/ + 0x2493, /* U+002493: NUMBER TWELVE FULL STOP*/ + 0x2494, /* U+002494: NUMBER THIRTEEN FULL STOP*/ + 0x2495, /* U+002495: NUMBER FOURTEEN FULL STOP*/ + 0x2496, /* U+002496: NUMBER FIFTEEN FULL STOP*/ + 0x2497, /* U+002497: NUMBER SIXTEEN FULL STOP*/ + 0x2498, /* U+002498: NUMBER SEVENTEEN FULL STOP*/ + 0x2499, /* U+002499: NUMBER EIGHTEEN FULL STOP*/ + 0x249a, /* U+00249a: NUMBER NINETEEN FULL STOP*/ + 0x249b, /* U+00249b: NUMBER TWENTY FULL STOP*/ + 0x249c, /* U+00249c: PARENTHESIZED LATIN SMALL LETTER A*/ + 0x249d, /* U+00249d: PARENTHESIZED LATIN SMALL LETTER B*/ + 0x249e, /* U+00249e: PARENTHESIZED LATIN SMALL LETTER C*/ + 0x249f, /* U+00249f: PARENTHESIZED LATIN SMALL LETTER D*/ + 0x24a0, /* U+0024a0: PARENTHESIZED LATIN SMALL LETTER E*/ + 0x24a1, /* U+0024a1: PARENTHESIZED LATIN SMALL LETTER F*/ + 0x24a2, /* U+0024a2: PARENTHESIZED LATIN SMALL LETTER G*/ + 0x24a3, /* U+0024a3: PARENTHESIZED LATIN SMALL LETTER H*/ + 0x24a4, /* U+0024a4: PARENTHESIZED LATIN SMALL LETTER I*/ + 0x24a5, /* U+0024a5: PARENTHESIZED LATIN SMALL LETTER J*/ + 0x24a6, /* U+0024a6: PARENTHESIZED LATIN SMALL LETTER K*/ + 0x24a7, /* U+0024a7: PARENTHESIZED LATIN SMALL LETTER L*/ + 0x24a8, /* U+0024a8: PARENTHESIZED LATIN SMALL LETTER M*/ + 0x24a9, /* U+0024a9: PARENTHESIZED LATIN SMALL LETTER N*/ + 0x24aa, /* U+0024aa: PARENTHESIZED LATIN SMALL LETTER O*/ + 0x24ab, /* U+0024ab: PARENTHESIZED LATIN SMALL LETTER P*/ + 0x24ac, /* U+0024ac: PARENTHESIZED LATIN SMALL LETTER Q*/ + 0x24ad, /* U+0024ad: PARENTHESIZED LATIN SMALL LETTER R*/ + 0x24ae, /* U+0024ae: PARENTHESIZED LATIN SMALL LETTER S*/ + 0x24af, /* U+0024af: PARENTHESIZED LATIN SMALL LETTER T*/ + 0x24b0, /* U+0024b0: PARENTHESIZED LATIN SMALL LETTER U*/ + 0x24b1, /* U+0024b1: PARENTHESIZED LATIN SMALL LETTER V*/ + 0x24b2, /* U+0024b2: PARENTHESIZED LATIN SMALL LETTER W*/ + 0x24b3, /* U+0024b3: PARENTHESIZED LATIN SMALL LETTER X*/ + 0x24b4, /* U+0024b4: PARENTHESIZED LATIN SMALL LETTER Y*/ + 0x24b5, /* U+0024b5: PARENTHESIZED LATIN SMALL LETTER Z*/ + 0x24b6, /* U+0024b6: CIRCLED LATIN CAPITAL LETTER A*/ + 0x24b7, /* U+0024b7: CIRCLED LATIN CAPITAL LETTER B*/ + 0x24b8, /* U+0024b8: CIRCLED LATIN CAPITAL LETTER C*/ + 0x24b9, /* U+0024b9: CIRCLED LATIN CAPITAL LETTER D*/ + 0x24ba, /* U+0024ba: CIRCLED LATIN CAPITAL LETTER E*/ + 0x24bb, /* U+0024bb: CIRCLED LATIN CAPITAL LETTER F*/ + 0x24bc, /* U+0024bc: CIRCLED LATIN CAPITAL LETTER G*/ + 0x24bd, /* U+0024bd: CIRCLED LATIN CAPITAL LETTER H*/ + 0x24be, /* U+0024be: CIRCLED LATIN CAPITAL LETTER I*/ + 0x24bf, /* U+0024bf: CIRCLED LATIN CAPITAL LETTER J*/ + 0x24c0, /* U+0024c0: CIRCLED LATIN CAPITAL LETTER K*/ + 0x24c1, /* U+0024c1: CIRCLED LATIN CAPITAL LETTER L*/ + 0x24c2, /* U+0024c2: CIRCLED LATIN CAPITAL LETTER M*/ + 0x24c3, /* U+0024c3: CIRCLED LATIN CAPITAL LETTER N*/ + 0x24c4, /* U+0024c4: CIRCLED LATIN CAPITAL LETTER O*/ + 0x24c5, /* U+0024c5: CIRCLED LATIN CAPITAL LETTER P*/ + 0x24c6, /* U+0024c6: CIRCLED LATIN CAPITAL LETTER Q*/ + 0x24c7, /* U+0024c7: CIRCLED LATIN CAPITAL LETTER R*/ + 0x24c8, /* U+0024c8: CIRCLED LATIN CAPITAL LETTER S*/ + 0x24c9, /* U+0024c9: CIRCLED LATIN CAPITAL LETTER T*/ + 0x24ca, /* U+0024ca: CIRCLED LATIN CAPITAL LETTER U*/ + 0x24cb, /* U+0024cb: CIRCLED LATIN CAPITAL LETTER V*/ + 0x24cc, /* U+0024cc: CIRCLED LATIN CAPITAL LETTER W*/ + 0x24cd, /* U+0024cd: CIRCLED LATIN CAPITAL LETTER X*/ + 0x24ce, /* U+0024ce: CIRCLED LATIN CAPITAL LETTER Y*/ + 0x24cf, /* U+0024cf: CIRCLED LATIN CAPITAL LETTER Z*/ + 0x24b6, /* U+0024d0: CIRCLED LATIN SMALL LETTER A*/ + 0x24b7, /* U+0024d1: CIRCLED LATIN SMALL LETTER B*/ + 0x24b8, /* U+0024d2: CIRCLED LATIN SMALL LETTER C*/ + 0x24b9, /* U+0024d3: CIRCLED LATIN SMALL LETTER D*/ + 0x24ba, /* U+0024d4: CIRCLED LATIN SMALL LETTER E*/ + 0x24bb, /* U+0024d5: CIRCLED LATIN SMALL LETTER F*/ + 0x24bc, /* U+0024d6: CIRCLED LATIN SMALL LETTER G*/ + 0x24bd, /* U+0024d7: CIRCLED LATIN SMALL LETTER H*/ + 0x24be, /* U+0024d8: CIRCLED LATIN SMALL LETTER I*/ + 0x24bf, /* U+0024d9: CIRCLED LATIN SMALL LETTER J*/ + 0x24c0, /* U+0024da: CIRCLED LATIN SMALL LETTER K*/ + 0x24c1, /* U+0024db: CIRCLED LATIN SMALL LETTER L*/ + 0x24c2, /* U+0024dc: CIRCLED LATIN SMALL LETTER M*/ + 0x24c3, /* U+0024dd: CIRCLED LATIN SMALL LETTER N*/ + 0x24c4, /* U+0024de: CIRCLED LATIN SMALL LETTER O*/ + 0x24c5, /* U+0024df: CIRCLED LATIN SMALL LETTER P*/ + 0x24c6, /* U+0024e0: CIRCLED LATIN SMALL LETTER Q*/ + 0x24c7, /* U+0024e1: CIRCLED LATIN SMALL LETTER R*/ + 0x24c8, /* U+0024e2: CIRCLED LATIN SMALL LETTER S*/ + 0x24c9, /* U+0024e3: CIRCLED LATIN SMALL LETTER T*/ + 0x24ca, /* U+0024e4: CIRCLED LATIN SMALL LETTER U*/ + 0x24cb, /* U+0024e5: CIRCLED LATIN SMALL LETTER V*/ + 0x24cc, /* U+0024e6: CIRCLED LATIN SMALL LETTER W*/ + 0x24cd, /* U+0024e7: CIRCLED LATIN SMALL LETTER X*/ + 0x24ce, /* U+0024e8: CIRCLED LATIN SMALL LETTER Y*/ + 0x24cf, /* U+0024e9: CIRCLED LATIN SMALL LETTER Z*/ +}; + +static const RTUNICP g_afRTUniUpper0x002c30[] = +{ + 0x2c00, /* U+002c30: GLAGOLITIC SMALL LETTER AZU*/ + 0x2c01, /* U+002c31: GLAGOLITIC SMALL LETTER BUKY*/ + 0x2c02, /* U+002c32: GLAGOLITIC SMALL LETTER VEDE*/ + 0x2c03, /* U+002c33: GLAGOLITIC SMALL LETTER GLAGOLI*/ + 0x2c04, /* U+002c34: GLAGOLITIC SMALL LETTER DOBRO*/ + 0x2c05, /* U+002c35: GLAGOLITIC SMALL LETTER YESTU*/ + 0x2c06, /* U+002c36: GLAGOLITIC SMALL LETTER ZHIVETE*/ + 0x2c07, /* U+002c37: GLAGOLITIC SMALL LETTER DZELO*/ + 0x2c08, /* U+002c38: GLAGOLITIC SMALL LETTER ZEMLJA*/ + 0x2c09, /* U+002c39: GLAGOLITIC SMALL LETTER IZHE*/ + 0x2c0a, /* U+002c3a: GLAGOLITIC SMALL LETTER INITIAL IZHE*/ + 0x2c0b, /* U+002c3b: GLAGOLITIC SMALL LETTER I*/ + 0x2c0c, /* U+002c3c: GLAGOLITIC SMALL LETTER DJERVI*/ + 0x2c0d, /* U+002c3d: GLAGOLITIC SMALL LETTER KAKO*/ + 0x2c0e, /* U+002c3e: GLAGOLITIC SMALL LETTER LJUDIJE*/ + 0x2c0f, /* U+002c3f: GLAGOLITIC SMALL LETTER MYSLITE*/ + 0x2c10, /* U+002c40: GLAGOLITIC SMALL LETTER NASHI*/ + 0x2c11, /* U+002c41: GLAGOLITIC SMALL LETTER ONU*/ + 0x2c12, /* U+002c42: GLAGOLITIC SMALL LETTER POKOJI*/ + 0x2c13, /* U+002c43: GLAGOLITIC SMALL LETTER RITSI*/ + 0x2c14, /* U+002c44: GLAGOLITIC SMALL LETTER SLOVO*/ + 0x2c15, /* U+002c45: GLAGOLITIC SMALL LETTER TVRIDO*/ + 0x2c16, /* U+002c46: GLAGOLITIC SMALL LETTER UKU*/ + 0x2c17, /* U+002c47: GLAGOLITIC SMALL LETTER FRITU*/ + 0x2c18, /* U+002c48: GLAGOLITIC SMALL LETTER HERU*/ + 0x2c19, /* U+002c49: GLAGOLITIC SMALL LETTER OTU*/ + 0x2c1a, /* U+002c4a: GLAGOLITIC SMALL LETTER PE*/ + 0x2c1b, /* U+002c4b: GLAGOLITIC SMALL LETTER SHTA*/ + 0x2c1c, /* U+002c4c: GLAGOLITIC SMALL LETTER TSI*/ + 0x2c1d, /* U+002c4d: GLAGOLITIC SMALL LETTER CHRIVI*/ + 0x2c1e, /* U+002c4e: GLAGOLITIC SMALL LETTER SHA*/ + 0x2c1f, /* U+002c4f: GLAGOLITIC SMALL LETTER YERU*/ + 0x2c20, /* U+002c50: GLAGOLITIC SMALL LETTER YERI*/ + 0x2c21, /* U+002c51: GLAGOLITIC SMALL LETTER YATI*/ + 0x2c22, /* U+002c52: GLAGOLITIC SMALL LETTER SPIDERY HA*/ + 0x2c23, /* U+002c53: GLAGOLITIC SMALL LETTER YU*/ + 0x2c24, /* U+002c54: GLAGOLITIC SMALL LETTER SMALL YUS*/ + 0x2c25, /* U+002c55: GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL*/ + 0x2c26, /* U+002c56: GLAGOLITIC SMALL LETTER YO*/ + 0x2c27, /* U+002c57: GLAGOLITIC SMALL LETTER IOTATED SMALL YUS*/ + 0x2c28, /* U+002c58: GLAGOLITIC SMALL LETTER BIG YUS*/ + 0x2c29, /* U+002c59: GLAGOLITIC SMALL LETTER IOTATED BIG YUS*/ + 0x2c2a, /* U+002c5a: GLAGOLITIC SMALL LETTER FITA*/ + 0x2c2b, /* U+002c5b: GLAGOLITIC SMALL LETTER IZHITSA*/ + 0x2c2c, /* U+002c5c: GLAGOLITIC SMALL LETTER SHTAPIC*/ + 0x2c2d, /* U+002c5d: GLAGOLITIC SMALL LETTER TROKUTASTI A*/ + 0x2c2e, /* U+002c5e: GLAGOLITIC SMALL LETTER LATINATE MYSLITE*/ + 0x2c5f, /* U+002c5f: */ + 0x2c60, /* U+002c60: LATIN CAPITAL LETTER L WITH DOUBLE BAR*/ + 0x2c60, /* U+002c61: LATIN SMALL LETTER L WITH DOUBLE BAR*/ + 0x2c62, /* U+002c62: LATIN CAPITAL LETTER L WITH MIDDLE TILDE*/ + 0x2c63, /* U+002c63: LATIN CAPITAL LETTER P WITH STROKE*/ + 0x2c64, /* U+002c64: LATIN CAPITAL LETTER R WITH TAIL*/ + 0x23a, /* U+002c65: LATIN SMALL LETTER A WITH STROKE*/ + 0x23e, /* U+002c66: LATIN SMALL LETTER T WITH DIAGONAL STROKE*/ + 0x2c67, /* U+002c67: LATIN CAPITAL LETTER H WITH DESCENDER*/ + 0x2c67, /* U+002c68: LATIN SMALL LETTER H WITH DESCENDER*/ + 0x2c69, /* U+002c69: LATIN CAPITAL LETTER K WITH DESCENDER*/ + 0x2c69, /* U+002c6a: LATIN SMALL LETTER K WITH DESCENDER*/ + 0x2c6b, /* U+002c6b: LATIN CAPITAL LETTER Z WITH DESCENDER*/ + 0x2c6b, /* U+002c6c: LATIN SMALL LETTER Z WITH DESCENDER*/ + 0x2c6d, /* U+002c6d: LATIN CAPITAL LETTER ALPHA*/ + 0x2c6e, /* U+002c6e: LATIN CAPITAL LETTER M WITH HOOK*/ + 0x2c6f, /* U+002c6f: LATIN CAPITAL LETTER TURNED A*/ + 0x2c70, /* U+002c70: LATIN CAPITAL LETTER TURNED ALPHA*/ + 0x2c71, /* U+002c71: LATIN SMALL LETTER V WITH RIGHT HOOK*/ + 0x2c72, /* U+002c72: LATIN CAPITAL LETTER W WITH HOOK*/ + 0x2c72, /* U+002c73: LATIN SMALL LETTER W WITH HOOK*/ + 0x2c74, /* U+002c74: LATIN SMALL LETTER V WITH CURL*/ + 0x2c75, /* U+002c75: LATIN CAPITAL LETTER HALF H*/ + 0x2c75, /* U+002c76: LATIN SMALL LETTER HALF H*/ + 0x2c77, /* U+002c77: LATIN SMALL LETTER TAILLESS PHI*/ + 0x2c78, /* U+002c78: LATIN SMALL LETTER E WITH NOTCH*/ + 0x2c79, /* U+002c79: LATIN SMALL LETTER TURNED R WITH TAIL*/ + 0x2c7a, /* U+002c7a: LATIN SMALL LETTER O WITH LOW RING INSIDE*/ + 0x2c7b, /* U+002c7b: LATIN LETTER SMALL CAPITAL TURNED E*/ + 0x2c7c, /* U+002c7c: LATIN SUBSCRIPT SMALL LETTER J*/ + 0x2c7d, /* U+002c7d: MODIFIER LETTER CAPITAL V*/ + 0x2c7e, /* U+002c7e: LATIN CAPITAL LETTER S WITH SWASH TAIL*/ + 0x2c7f, /* U+002c7f: LATIN CAPITAL LETTER Z WITH SWASH TAIL*/ + 0x2c80, /* U+002c80: COPTIC CAPITAL LETTER ALFA*/ + 0x2c80, /* U+002c81: COPTIC SMALL LETTER ALFA*/ + 0x2c82, /* U+002c82: COPTIC CAPITAL LETTER VIDA*/ + 0x2c82, /* U+002c83: COPTIC SMALL LETTER VIDA*/ + 0x2c84, /* U+002c84: COPTIC CAPITAL LETTER GAMMA*/ + 0x2c84, /* U+002c85: COPTIC SMALL LETTER GAMMA*/ + 0x2c86, /* U+002c86: COPTIC CAPITAL LETTER DALDA*/ + 0x2c86, /* U+002c87: COPTIC SMALL LETTER DALDA*/ + 0x2c88, /* U+002c88: COPTIC CAPITAL LETTER EIE*/ + 0x2c88, /* U+002c89: COPTIC SMALL LETTER EIE*/ + 0x2c8a, /* U+002c8a: COPTIC CAPITAL LETTER SOU*/ + 0x2c8a, /* U+002c8b: COPTIC SMALL LETTER SOU*/ + 0x2c8c, /* U+002c8c: COPTIC CAPITAL LETTER ZATA*/ + 0x2c8c, /* U+002c8d: COPTIC SMALL LETTER ZATA*/ + 0x2c8e, /* U+002c8e: COPTIC CAPITAL LETTER HATE*/ + 0x2c8e, /* U+002c8f: COPTIC SMALL LETTER HATE*/ + 0x2c90, /* U+002c90: COPTIC CAPITAL LETTER THETHE*/ + 0x2c90, /* U+002c91: COPTIC SMALL LETTER THETHE*/ + 0x2c92, /* U+002c92: COPTIC CAPITAL LETTER IAUDA*/ + 0x2c92, /* U+002c93: COPTIC SMALL LETTER IAUDA*/ + 0x2c94, /* U+002c94: COPTIC CAPITAL LETTER KAPA*/ + 0x2c94, /* U+002c95: COPTIC SMALL LETTER KAPA*/ + 0x2c96, /* U+002c96: COPTIC CAPITAL LETTER LAULA*/ + 0x2c96, /* U+002c97: COPTIC SMALL LETTER LAULA*/ + 0x2c98, /* U+002c98: COPTIC CAPITAL LETTER MI*/ + 0x2c98, /* U+002c99: COPTIC SMALL LETTER MI*/ + 0x2c9a, /* U+002c9a: COPTIC CAPITAL LETTER NI*/ + 0x2c9a, /* U+002c9b: COPTIC SMALL LETTER NI*/ + 0x2c9c, /* U+002c9c: COPTIC CAPITAL LETTER KSI*/ + 0x2c9c, /* U+002c9d: COPTIC SMALL LETTER KSI*/ + 0x2c9e, /* U+002c9e: COPTIC CAPITAL LETTER O*/ + 0x2c9e, /* U+002c9f: COPTIC SMALL LETTER O*/ + 0x2ca0, /* U+002ca0: COPTIC CAPITAL LETTER PI*/ + 0x2ca0, /* U+002ca1: COPTIC SMALL LETTER PI*/ + 0x2ca2, /* U+002ca2: COPTIC CAPITAL LETTER RO*/ + 0x2ca2, /* U+002ca3: COPTIC SMALL LETTER RO*/ + 0x2ca4, /* U+002ca4: COPTIC CAPITAL LETTER SIMA*/ + 0x2ca4, /* U+002ca5: COPTIC SMALL LETTER SIMA*/ + 0x2ca6, /* U+002ca6: COPTIC CAPITAL LETTER TAU*/ + 0x2ca6, /* U+002ca7: COPTIC SMALL LETTER TAU*/ + 0x2ca8, /* U+002ca8: COPTIC CAPITAL LETTER UA*/ + 0x2ca8, /* U+002ca9: COPTIC SMALL LETTER UA*/ + 0x2caa, /* U+002caa: COPTIC CAPITAL LETTER FI*/ + 0x2caa, /* U+002cab: COPTIC SMALL LETTER FI*/ + 0x2cac, /* U+002cac: COPTIC CAPITAL LETTER KHI*/ + 0x2cac, /* U+002cad: COPTIC SMALL LETTER KHI*/ + 0x2cae, /* U+002cae: COPTIC CAPITAL LETTER PSI*/ + 0x2cae, /* U+002caf: COPTIC SMALL LETTER PSI*/ + 0x2cb0, /* U+002cb0: COPTIC CAPITAL LETTER OOU*/ + 0x2cb0, /* U+002cb1: COPTIC SMALL LETTER OOU*/ + 0x2cb2, /* U+002cb2: COPTIC CAPITAL LETTER DIALECT-P ALEF*/ + 0x2cb2, /* U+002cb3: COPTIC SMALL LETTER DIALECT-P ALEF*/ + 0x2cb4, /* U+002cb4: COPTIC CAPITAL LETTER OLD COPTIC AIN*/ + 0x2cb4, /* U+002cb5: COPTIC SMALL LETTER OLD COPTIC AIN*/ + 0x2cb6, /* U+002cb6: COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE*/ + 0x2cb6, /* U+002cb7: COPTIC SMALL LETTER CRYPTOGRAMMIC EIE*/ + 0x2cb8, /* U+002cb8: COPTIC CAPITAL LETTER DIALECT-P KAPA*/ + 0x2cb8, /* U+002cb9: COPTIC SMALL LETTER DIALECT-P KAPA*/ + 0x2cba, /* U+002cba: COPTIC CAPITAL LETTER DIALECT-P NI*/ + 0x2cba, /* U+002cbb: COPTIC SMALL LETTER DIALECT-P NI*/ + 0x2cbc, /* U+002cbc: COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI*/ + 0x2cbc, /* U+002cbd: COPTIC SMALL LETTER CRYPTOGRAMMIC NI*/ + 0x2cbe, /* U+002cbe: COPTIC CAPITAL LETTER OLD COPTIC OOU*/ + 0x2cbe, /* U+002cbf: COPTIC SMALL LETTER OLD COPTIC OOU*/ + 0x2cc0, /* U+002cc0: COPTIC CAPITAL LETTER SAMPI*/ + 0x2cc0, /* U+002cc1: COPTIC SMALL LETTER SAMPI*/ + 0x2cc2, /* U+002cc2: COPTIC CAPITAL LETTER CROSSED SHEI*/ + 0x2cc2, /* U+002cc3: COPTIC SMALL LETTER CROSSED SHEI*/ + 0x2cc4, /* U+002cc4: COPTIC CAPITAL LETTER OLD COPTIC SHEI*/ + 0x2cc4, /* U+002cc5: COPTIC SMALL LETTER OLD COPTIC SHEI*/ + 0x2cc6, /* U+002cc6: COPTIC CAPITAL LETTER OLD COPTIC ESH*/ + 0x2cc6, /* U+002cc7: COPTIC SMALL LETTER OLD COPTIC ESH*/ + 0x2cc8, /* U+002cc8: COPTIC CAPITAL LETTER AKHMIMIC KHEI*/ + 0x2cc8, /* U+002cc9: COPTIC SMALL LETTER AKHMIMIC KHEI*/ + 0x2cca, /* U+002cca: COPTIC CAPITAL LETTER DIALECT-P HORI*/ + 0x2cca, /* U+002ccb: COPTIC SMALL LETTER DIALECT-P HORI*/ + 0x2ccc, /* U+002ccc: COPTIC CAPITAL LETTER OLD COPTIC HORI*/ + 0x2ccc, /* U+002ccd: COPTIC SMALL LETTER OLD COPTIC HORI*/ + 0x2cce, /* U+002cce: COPTIC CAPITAL LETTER OLD COPTIC HA*/ + 0x2cce, /* U+002ccf: COPTIC SMALL LETTER OLD COPTIC HA*/ + 0x2cd0, /* U+002cd0: COPTIC CAPITAL LETTER L-SHAPED HA*/ + 0x2cd0, /* U+002cd1: COPTIC SMALL LETTER L-SHAPED HA*/ + 0x2cd2, /* U+002cd2: COPTIC CAPITAL LETTER OLD COPTIC HEI*/ + 0x2cd2, /* U+002cd3: COPTIC SMALL LETTER OLD COPTIC HEI*/ + 0x2cd4, /* U+002cd4: COPTIC CAPITAL LETTER OLD COPTIC HAT*/ + 0x2cd4, /* U+002cd5: COPTIC SMALL LETTER OLD COPTIC HAT*/ + 0x2cd6, /* U+002cd6: COPTIC CAPITAL LETTER OLD COPTIC GANGIA*/ + 0x2cd6, /* U+002cd7: COPTIC SMALL LETTER OLD COPTIC GANGIA*/ + 0x2cd8, /* U+002cd8: COPTIC CAPITAL LETTER OLD COPTIC DJA*/ + 0x2cd8, /* U+002cd9: COPTIC SMALL LETTER OLD COPTIC DJA*/ + 0x2cda, /* U+002cda: COPTIC CAPITAL LETTER OLD COPTIC SHIMA*/ + 0x2cda, /* U+002cdb: COPTIC SMALL LETTER OLD COPTIC SHIMA*/ + 0x2cdc, /* U+002cdc: COPTIC CAPITAL LETTER OLD NUBIAN SHIMA*/ + 0x2cdc, /* U+002cdd: COPTIC SMALL LETTER OLD NUBIAN SHIMA*/ + 0x2cde, /* U+002cde: COPTIC CAPITAL LETTER OLD NUBIAN NGI*/ + 0x2cde, /* U+002cdf: COPTIC SMALL LETTER OLD NUBIAN NGI*/ + 0x2ce0, /* U+002ce0: COPTIC CAPITAL LETTER OLD NUBIAN NYI*/ + 0x2ce0, /* U+002ce1: COPTIC SMALL LETTER OLD NUBIAN NYI*/ + 0x2ce2, /* U+002ce2: COPTIC CAPITAL LETTER OLD NUBIAN WAU*/ + 0x2ce2, /* U+002ce3: COPTIC SMALL LETTER OLD NUBIAN WAU*/ + 0x2ce4, /* U+002ce4: COPTIC SYMBOL KAI*/ + 0x2ce5, /* U+002ce5: COPTIC SYMBOL MI RO*/ + 0x2ce6, /* U+002ce6: COPTIC SYMBOL PI RO*/ + 0x2ce7, /* U+002ce7: COPTIC SYMBOL STAUROS*/ + 0x2ce8, /* U+002ce8: COPTIC SYMBOL TAU RO*/ + 0x2ce9, /* U+002ce9: COPTIC SYMBOL KHI RO*/ + 0x2cea, /* U+002cea: COPTIC SYMBOL SHIMA SIMA*/ + 0x2ceb, /* U+002ceb: COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI*/ + 0x2ceb, /* U+002cec: COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI*/ + 0x2ced, /* U+002ced: COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA*/ + 0x2ced, /* U+002cee: COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA*/ + 0x2cef, /* U+002cef: COPTIC COMBINING NI ABOVE*/ + 0x2cf0, /* U+002cf0: COPTIC COMBINING SPIRITUS ASPER*/ + 0x2cf1, /* U+002cf1: COPTIC COMBINING SPIRITUS LENIS*/ + 0x2cf2, /* U+002cf2: COPTIC CAPITAL LETTER BOHAIRIC KHEI*/ + 0x2cf2, /* U+002cf3: COPTIC SMALL LETTER BOHAIRIC KHEI*/ + 0x2cf4, /* U+002cf4: */ + 0x2cf5, /* U+002cf5: */ + 0x2cf6, /* U+002cf6: */ + 0x2cf7, /* U+002cf7: */ + 0x2cf8, /* U+002cf8: */ + 0x2cf9, /* U+002cf9: COPTIC OLD NUBIAN FULL STOP*/ + 0x2cfa, /* U+002cfa: COPTIC OLD NUBIAN DIRECT QUESTION MARK*/ + 0x2cfb, /* U+002cfb: COPTIC OLD NUBIAN INDIRECT QUESTION MARK*/ + 0x2cfc, /* U+002cfc: COPTIC OLD NUBIAN VERSE DIVIDER*/ + 0x2cfd, /* U+002cfd: COPTIC FRACTION ONE HALF*/ + 0x2cfe, /* U+002cfe: COPTIC FULL STOP*/ + 0x2cff, /* U+002cff: COPTIC MORPHOLOGICAL DIVIDER*/ + 0x10a0, /* U+002d00: GEORGIAN SMALL LETTER AN*/ + 0x10a1, /* U+002d01: GEORGIAN SMALL LETTER BAN*/ + 0x10a2, /* U+002d02: GEORGIAN SMALL LETTER GAN*/ + 0x10a3, /* U+002d03: GEORGIAN SMALL LETTER DON*/ + 0x10a4, /* U+002d04: GEORGIAN SMALL LETTER EN*/ + 0x10a5, /* U+002d05: GEORGIAN SMALL LETTER VIN*/ + 0x10a6, /* U+002d06: GEORGIAN SMALL LETTER ZEN*/ + 0x10a7, /* U+002d07: GEORGIAN SMALL LETTER TAN*/ + 0x10a8, /* U+002d08: GEORGIAN SMALL LETTER IN*/ + 0x10a9, /* U+002d09: GEORGIAN SMALL LETTER KAN*/ + 0x10aa, /* U+002d0a: GEORGIAN SMALL LETTER LAS*/ + 0x10ab, /* U+002d0b: GEORGIAN SMALL LETTER MAN*/ + 0x10ac, /* U+002d0c: GEORGIAN SMALL LETTER NAR*/ + 0x10ad, /* U+002d0d: GEORGIAN SMALL LETTER ON*/ + 0x10ae, /* U+002d0e: GEORGIAN SMALL LETTER PAR*/ + 0x10af, /* U+002d0f: GEORGIAN SMALL LETTER ZHAR*/ + 0x10b0, /* U+002d10: GEORGIAN SMALL LETTER RAE*/ + 0x10b1, /* U+002d11: GEORGIAN SMALL LETTER SAN*/ + 0x10b2, /* U+002d12: GEORGIAN SMALL LETTER TAR*/ + 0x10b3, /* U+002d13: GEORGIAN SMALL LETTER UN*/ + 0x10b4, /* U+002d14: GEORGIAN SMALL LETTER PHAR*/ + 0x10b5, /* U+002d15: GEORGIAN SMALL LETTER KHAR*/ + 0x10b6, /* U+002d16: GEORGIAN SMALL LETTER GHAN*/ + 0x10b7, /* U+002d17: GEORGIAN SMALL LETTER QAR*/ + 0x10b8, /* U+002d18: GEORGIAN SMALL LETTER SHIN*/ + 0x10b9, /* U+002d19: GEORGIAN SMALL LETTER CHIN*/ + 0x10ba, /* U+002d1a: GEORGIAN SMALL LETTER CAN*/ + 0x10bb, /* U+002d1b: GEORGIAN SMALL LETTER JIL*/ + 0x10bc, /* U+002d1c: GEORGIAN SMALL LETTER CIL*/ + 0x10bd, /* U+002d1d: GEORGIAN SMALL LETTER CHAR*/ + 0x10be, /* U+002d1e: GEORGIAN SMALL LETTER XAN*/ + 0x10bf, /* U+002d1f: GEORGIAN SMALL LETTER JHAN*/ + 0x10c0, /* U+002d20: GEORGIAN SMALL LETTER HAE*/ + 0x10c1, /* U+002d21: GEORGIAN SMALL LETTER HE*/ + 0x10c2, /* U+002d22: GEORGIAN SMALL LETTER HIE*/ + 0x10c3, /* U+002d23: GEORGIAN SMALL LETTER WE*/ + 0x10c4, /* U+002d24: GEORGIAN SMALL LETTER HAR*/ + 0x10c5, /* U+002d25: GEORGIAN SMALL LETTER HOE*/ + 0x2d26, /* U+002d26: */ + 0x10c7, /* U+002d27: GEORGIAN SMALL LETTER YN*/ + 0x2d28, /* U+002d28: */ + 0x2d29, /* U+002d29: */ + 0x2d2a, /* U+002d2a: */ + 0x2d2b, /* U+002d2b: */ + 0x2d2c, /* U+002d2c: */ + 0x10cd, /* U+002d2d: GEORGIAN SMALL LETTER AEN*/ +}; + +static const RTUNICP g_afRTUniUpper0x00a641[] = +{ + 0xa640, /* U+00a641: CYRILLIC SMALL LETTER ZEMLYA*/ + 0xa642, /* U+00a642: CYRILLIC CAPITAL LETTER DZELO*/ + 0xa642, /* U+00a643: CYRILLIC SMALL LETTER DZELO*/ + 0xa644, /* U+00a644: CYRILLIC CAPITAL LETTER REVERSED DZE*/ + 0xa644, /* U+00a645: CYRILLIC SMALL LETTER REVERSED DZE*/ + 0xa646, /* U+00a646: CYRILLIC CAPITAL LETTER IOTA*/ + 0xa646, /* U+00a647: CYRILLIC SMALL LETTER IOTA*/ + 0xa648, /* U+00a648: CYRILLIC CAPITAL LETTER DJERV*/ + 0xa648, /* U+00a649: CYRILLIC SMALL LETTER DJERV*/ + 0xa64a, /* U+00a64a: CYRILLIC CAPITAL LETTER MONOGRAPH UK*/ + 0xa64a, /* U+00a64b: CYRILLIC SMALL LETTER MONOGRAPH UK*/ + 0xa64c, /* U+00a64c: CYRILLIC CAPITAL LETTER BROAD OMEGA*/ + 0xa64c, /* U+00a64d: CYRILLIC SMALL LETTER BROAD OMEGA*/ + 0xa64e, /* U+00a64e: CYRILLIC CAPITAL LETTER NEUTRAL YER*/ + 0xa64e, /* U+00a64f: CYRILLIC SMALL LETTER NEUTRAL YER*/ + 0xa650, /* U+00a650: CYRILLIC CAPITAL LETTER YERU WITH BACK YER*/ + 0xa650, /* U+00a651: CYRILLIC SMALL LETTER YERU WITH BACK YER*/ + 0xa652, /* U+00a652: CYRILLIC CAPITAL LETTER IOTIFIED YAT*/ + 0xa652, /* U+00a653: CYRILLIC SMALL LETTER IOTIFIED YAT*/ + 0xa654, /* U+00a654: CYRILLIC CAPITAL LETTER REVERSED YU*/ + 0xa654, /* U+00a655: CYRILLIC SMALL LETTER REVERSED YU*/ + 0xa656, /* U+00a656: CYRILLIC CAPITAL LETTER IOTIFIED A*/ + 0xa656, /* U+00a657: CYRILLIC SMALL LETTER IOTIFIED A*/ + 0xa658, /* U+00a658: CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS*/ + 0xa658, /* U+00a659: CYRILLIC SMALL LETTER CLOSED LITTLE YUS*/ + 0xa65a, /* U+00a65a: CYRILLIC CAPITAL LETTER BLENDED YUS*/ + 0xa65a, /* U+00a65b: CYRILLIC SMALL LETTER BLENDED YUS*/ + 0xa65c, /* U+00a65c: CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS*/ + 0xa65c, /* U+00a65d: CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS*/ + 0xa65e, /* U+00a65e: CYRILLIC CAPITAL LETTER YN*/ + 0xa65e, /* U+00a65f: CYRILLIC SMALL LETTER YN*/ + 0xa660, /* U+00a660: CYRILLIC CAPITAL LETTER REVERSED TSE*/ + 0xa660, /* U+00a661: CYRILLIC SMALL LETTER REVERSED TSE*/ + 0xa662, /* U+00a662: CYRILLIC CAPITAL LETTER SOFT DE*/ + 0xa662, /* U+00a663: CYRILLIC SMALL LETTER SOFT DE*/ + 0xa664, /* U+00a664: CYRILLIC CAPITAL LETTER SOFT EL*/ + 0xa664, /* U+00a665: CYRILLIC SMALL LETTER SOFT EL*/ + 0xa666, /* U+00a666: CYRILLIC CAPITAL LETTER SOFT EM*/ + 0xa666, /* U+00a667: CYRILLIC SMALL LETTER SOFT EM*/ + 0xa668, /* U+00a668: CYRILLIC CAPITAL LETTER MONOCULAR O*/ + 0xa668, /* U+00a669: CYRILLIC SMALL LETTER MONOCULAR O*/ + 0xa66a, /* U+00a66a: CYRILLIC CAPITAL LETTER BINOCULAR O*/ + 0xa66a, /* U+00a66b: CYRILLIC SMALL LETTER BINOCULAR O*/ + 0xa66c, /* U+00a66c: CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O*/ + 0xa66c, /* U+00a66d: CYRILLIC SMALL LETTER DOUBLE MONOCULAR O*/ + 0xa66e, /* U+00a66e: CYRILLIC LETTER MULTIOCULAR O*/ + 0xa66f, /* U+00a66f: COMBINING CYRILLIC VZMET*/ + 0xa670, /* U+00a670: COMBINING CYRILLIC TEN MILLIONS SIGN*/ + 0xa671, /* U+00a671: COMBINING CYRILLIC HUNDRED MILLIONS SIGN*/ + 0xa672, /* U+00a672: COMBINING CYRILLIC THOUSAND MILLIONS SIGN*/ + 0xa673, /* U+00a673: SLAVONIC ASTERISK*/ + 0xa674, /* U+00a674: COMBINING CYRILLIC LETTER UKRAINIAN IE*/ + 0xa675, /* U+00a675: COMBINING CYRILLIC LETTER I*/ + 0xa676, /* U+00a676: COMBINING CYRILLIC LETTER YI*/ + 0xa677, /* U+00a677: COMBINING CYRILLIC LETTER U*/ + 0xa678, /* U+00a678: COMBINING CYRILLIC LETTER HARD SIGN*/ + 0xa679, /* U+00a679: COMBINING CYRILLIC LETTER YERU*/ + 0xa67a, /* U+00a67a: COMBINING CYRILLIC LETTER SOFT SIGN*/ + 0xa67b, /* U+00a67b: COMBINING CYRILLIC LETTER OMEGA*/ + 0xa67c, /* U+00a67c: COMBINING CYRILLIC KAVYKA*/ + 0xa67d, /* U+00a67d: COMBINING CYRILLIC PAYEROK*/ + 0xa67e, /* U+00a67e: CYRILLIC KAVYKA*/ + 0xa67f, /* U+00a67f: CYRILLIC PAYEROK*/ + 0xa680, /* U+00a680: CYRILLIC CAPITAL LETTER DWE*/ + 0xa680, /* U+00a681: CYRILLIC SMALL LETTER DWE*/ + 0xa682, /* U+00a682: CYRILLIC CAPITAL LETTER DZWE*/ + 0xa682, /* U+00a683: CYRILLIC SMALL LETTER DZWE*/ + 0xa684, /* U+00a684: CYRILLIC CAPITAL LETTER ZHWE*/ + 0xa684, /* U+00a685: CYRILLIC SMALL LETTER ZHWE*/ + 0xa686, /* U+00a686: CYRILLIC CAPITAL LETTER CCHE*/ + 0xa686, /* U+00a687: CYRILLIC SMALL LETTER CCHE*/ + 0xa688, /* U+00a688: CYRILLIC CAPITAL LETTER DZZE*/ + 0xa688, /* U+00a689: CYRILLIC SMALL LETTER DZZE*/ + 0xa68a, /* U+00a68a: CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK*/ + 0xa68a, /* U+00a68b: CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK*/ + 0xa68c, /* U+00a68c: CYRILLIC CAPITAL LETTER TWE*/ + 0xa68c, /* U+00a68d: CYRILLIC SMALL LETTER TWE*/ + 0xa68e, /* U+00a68e: CYRILLIC CAPITAL LETTER TSWE*/ + 0xa68e, /* U+00a68f: CYRILLIC SMALL LETTER TSWE*/ + 0xa690, /* U+00a690: CYRILLIC CAPITAL LETTER TSSE*/ + 0xa690, /* U+00a691: CYRILLIC SMALL LETTER TSSE*/ + 0xa692, /* U+00a692: CYRILLIC CAPITAL LETTER TCHE*/ + 0xa692, /* U+00a693: CYRILLIC SMALL LETTER TCHE*/ + 0xa694, /* U+00a694: CYRILLIC CAPITAL LETTER HWE*/ + 0xa694, /* U+00a695: CYRILLIC SMALL LETTER HWE*/ + 0xa696, /* U+00a696: CYRILLIC CAPITAL LETTER SHWE*/ + 0xa696, /* U+00a697: CYRILLIC SMALL LETTER SHWE*/ + 0xa698, /* U+00a698: */ + 0xa699, /* U+00a699: */ + 0xa69a, /* U+00a69a: */ + 0xa69b, /* U+00a69b: */ + 0xa69c, /* U+00a69c: */ + 0xa69d, /* U+00a69d: */ + 0xa69e, /* U+00a69e: */ + 0xa69f, /* U+00a69f: COMBINING CYRILLIC LETTER IOTIFIED E*/ + 0xa6a0, /* U+00a6a0: BAMUM LETTER A*/ + 0xa6a1, /* U+00a6a1: BAMUM LETTER KA*/ + 0xa6a2, /* U+00a6a2: BAMUM LETTER U*/ + 0xa6a3, /* U+00a6a3: BAMUM LETTER KU*/ + 0xa6a4, /* U+00a6a4: BAMUM LETTER EE*/ + 0xa6a5, /* U+00a6a5: BAMUM LETTER REE*/ + 0xa6a6, /* U+00a6a6: BAMUM LETTER TAE*/ + 0xa6a7, /* U+00a6a7: BAMUM LETTER O*/ + 0xa6a8, /* U+00a6a8: BAMUM LETTER NYI*/ + 0xa6a9, /* U+00a6a9: BAMUM LETTER I*/ + 0xa6aa, /* U+00a6aa: BAMUM LETTER LA*/ + 0xa6ab, /* U+00a6ab: BAMUM LETTER PA*/ + 0xa6ac, /* U+00a6ac: BAMUM LETTER RII*/ + 0xa6ad, /* U+00a6ad: BAMUM LETTER RIEE*/ + 0xa6ae, /* U+00a6ae: BAMUM LETTER LEEEE*/ + 0xa6af, /* U+00a6af: BAMUM LETTER MEEEE*/ + 0xa6b0, /* U+00a6b0: BAMUM LETTER TAA*/ + 0xa6b1, /* U+00a6b1: BAMUM LETTER NDAA*/ + 0xa6b2, /* U+00a6b2: BAMUM LETTER NJAEM*/ + 0xa6b3, /* U+00a6b3: BAMUM LETTER M*/ + 0xa6b4, /* U+00a6b4: BAMUM LETTER SUU*/ + 0xa6b5, /* U+00a6b5: BAMUM LETTER MU*/ + 0xa6b6, /* U+00a6b6: BAMUM LETTER SHII*/ + 0xa6b7, /* U+00a6b7: BAMUM LETTER SI*/ + 0xa6b8, /* U+00a6b8: BAMUM LETTER SHEUX*/ + 0xa6b9, /* U+00a6b9: BAMUM LETTER SEUX*/ + 0xa6ba, /* U+00a6ba: BAMUM LETTER KYEE*/ + 0xa6bb, /* U+00a6bb: BAMUM LETTER KET*/ + 0xa6bc, /* U+00a6bc: BAMUM LETTER NUAE*/ + 0xa6bd, /* U+00a6bd: BAMUM LETTER NU*/ + 0xa6be, /* U+00a6be: BAMUM LETTER NJUAE*/ + 0xa6bf, /* U+00a6bf: BAMUM LETTER YOQ*/ + 0xa6c0, /* U+00a6c0: BAMUM LETTER SHU*/ + 0xa6c1, /* U+00a6c1: BAMUM LETTER YUQ*/ + 0xa6c2, /* U+00a6c2: BAMUM LETTER YA*/ + 0xa6c3, /* U+00a6c3: BAMUM LETTER NSHA*/ + 0xa6c4, /* U+00a6c4: BAMUM LETTER KEUX*/ + 0xa6c5, /* U+00a6c5: BAMUM LETTER PEUX*/ + 0xa6c6, /* U+00a6c6: BAMUM LETTER NJEE*/ + 0xa6c7, /* U+00a6c7: BAMUM LETTER NTEE*/ + 0xa6c8, /* U+00a6c8: BAMUM LETTER PUE*/ + 0xa6c9, /* U+00a6c9: BAMUM LETTER WUE*/ + 0xa6ca, /* U+00a6ca: BAMUM LETTER PEE*/ + 0xa6cb, /* U+00a6cb: BAMUM LETTER FEE*/ + 0xa6cc, /* U+00a6cc: BAMUM LETTER RU*/ + 0xa6cd, /* U+00a6cd: BAMUM LETTER LU*/ + 0xa6ce, /* U+00a6ce: BAMUM LETTER MI*/ + 0xa6cf, /* U+00a6cf: BAMUM LETTER NI*/ + 0xa6d0, /* U+00a6d0: BAMUM LETTER REUX*/ + 0xa6d1, /* U+00a6d1: BAMUM LETTER RAE*/ + 0xa6d2, /* U+00a6d2: BAMUM LETTER KEN*/ + 0xa6d3, /* U+00a6d3: BAMUM LETTER NGKWAEN*/ + 0xa6d4, /* U+00a6d4: BAMUM LETTER NGGA*/ + 0xa6d5, /* U+00a6d5: BAMUM LETTER NGA*/ + 0xa6d6, /* U+00a6d6: BAMUM LETTER SHO*/ + 0xa6d7, /* U+00a6d7: BAMUM LETTER PUAE*/ + 0xa6d8, /* U+00a6d8: BAMUM LETTER FU*/ + 0xa6d9, /* U+00a6d9: BAMUM LETTER FOM*/ + 0xa6da, /* U+00a6da: BAMUM LETTER WA*/ + 0xa6db, /* U+00a6db: BAMUM LETTER NA*/ + 0xa6dc, /* U+00a6dc: BAMUM LETTER LI*/ + 0xa6dd, /* U+00a6dd: BAMUM LETTER PI*/ + 0xa6de, /* U+00a6de: BAMUM LETTER LOQ*/ + 0xa6df, /* U+00a6df: BAMUM LETTER KO*/ + 0xa6e0, /* U+00a6e0: BAMUM LETTER MBEN*/ + 0xa6e1, /* U+00a6e1: BAMUM LETTER REN*/ + 0xa6e2, /* U+00a6e2: BAMUM LETTER MEN*/ + 0xa6e3, /* U+00a6e3: BAMUM LETTER MA*/ + 0xa6e4, /* U+00a6e4: BAMUM LETTER TI*/ + 0xa6e5, /* U+00a6e5: BAMUM LETTER KI*/ + 0xa6e6, /* U+00a6e6: BAMUM LETTER MO*/ + 0xa6e7, /* U+00a6e7: BAMUM LETTER MBAA*/ + 0xa6e8, /* U+00a6e8: BAMUM LETTER TET*/ + 0xa6e9, /* U+00a6e9: BAMUM LETTER KPA*/ + 0xa6ea, /* U+00a6ea: BAMUM LETTER TEN*/ + 0xa6eb, /* U+00a6eb: BAMUM LETTER NTUU*/ + 0xa6ec, /* U+00a6ec: BAMUM LETTER SAMBA*/ + 0xa6ed, /* U+00a6ed: BAMUM LETTER FAAMAE*/ + 0xa6ee, /* U+00a6ee: BAMUM LETTER KOVUU*/ + 0xa6ef, /* U+00a6ef: BAMUM LETTER KOGHOM*/ + 0xa6f0, /* U+00a6f0: BAMUM COMBINING MARK KOQNDON*/ + 0xa6f1, /* U+00a6f1: BAMUM COMBINING MARK TUKWENTIS*/ + 0xa6f2, /* U+00a6f2: BAMUM NJAEMLI*/ + 0xa6f3, /* U+00a6f3: BAMUM FULL STOP*/ + 0xa6f4, /* U+00a6f4: BAMUM COLON*/ + 0xa6f5, /* U+00a6f5: BAMUM COMMA*/ + 0xa6f6, /* U+00a6f6: BAMUM SEMICOLON*/ + 0xa6f7, /* U+00a6f7: BAMUM QUESTION MARK*/ + 0xa6f8, /* U+00a6f8: */ + 0xa6f9, /* U+00a6f9: */ + 0xa6fa, /* U+00a6fa: */ + 0xa6fb, /* U+00a6fb: */ + 0xa6fc, /* U+00a6fc: */ + 0xa6fd, /* U+00a6fd: */ + 0xa6fe, /* U+00a6fe: */ + 0xa6ff, /* U+00a6ff: */ + 0xa700, /* U+00a700: MODIFIER LETTER CHINESE TONE YIN PING*/ + 0xa701, /* U+00a701: MODIFIER LETTER CHINESE TONE YANG PING*/ + 0xa702, /* U+00a702: MODIFIER LETTER CHINESE TONE YIN SHANG*/ + 0xa703, /* U+00a703: MODIFIER LETTER CHINESE TONE YANG SHANG*/ + 0xa704, /* U+00a704: MODIFIER LETTER CHINESE TONE YIN QU*/ + 0xa705, /* U+00a705: MODIFIER LETTER CHINESE TONE YANG QU*/ + 0xa706, /* U+00a706: MODIFIER LETTER CHINESE TONE YIN RU*/ + 0xa707, /* U+00a707: MODIFIER LETTER CHINESE TONE YANG RU*/ + 0xa708, /* U+00a708: MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR*/ + 0xa709, /* U+00a709: MODIFIER LETTER HIGH DOTTED TONE BAR*/ + 0xa70a, /* U+00a70a: MODIFIER LETTER MID DOTTED TONE BAR*/ + 0xa70b, /* U+00a70b: MODIFIER LETTER LOW DOTTED TONE BAR*/ + 0xa70c, /* U+00a70c: MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR*/ + 0xa70d, /* U+00a70d: MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR*/ + 0xa70e, /* U+00a70e: MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR*/ + 0xa70f, /* U+00a70f: MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR*/ + 0xa710, /* U+00a710: MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR*/ + 0xa711, /* U+00a711: MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR*/ + 0xa712, /* U+00a712: MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR*/ + 0xa713, /* U+00a713: MODIFIER LETTER HIGH LEFT-STEM TONE BAR*/ + 0xa714, /* U+00a714: MODIFIER LETTER MID LEFT-STEM TONE BAR*/ + 0xa715, /* U+00a715: MODIFIER LETTER LOW LEFT-STEM TONE BAR*/ + 0xa716, /* U+00a716: MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR*/ + 0xa717, /* U+00a717: MODIFIER LETTER DOT VERTICAL BAR*/ + 0xa718, /* U+00a718: MODIFIER LETTER DOT SLASH*/ + 0xa719, /* U+00a719: MODIFIER LETTER DOT HORIZONTAL BAR*/ + 0xa71a, /* U+00a71a: MODIFIER LETTER LOWER RIGHT CORNER ANGLE*/ + 0xa71b, /* U+00a71b: MODIFIER LETTER RAISED UP ARROW*/ + 0xa71c, /* U+00a71c: MODIFIER LETTER RAISED DOWN ARROW*/ + 0xa71d, /* U+00a71d: MODIFIER LETTER RAISED EXCLAMATION MARK*/ + 0xa71e, /* U+00a71e: MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK*/ + 0xa71f, /* U+00a71f: MODIFIER LETTER LOW INVERTED EXCLAMATION MARK*/ + 0xa720, /* U+00a720: MODIFIER LETTER STRESS AND HIGH TONE*/ + 0xa721, /* U+00a721: MODIFIER LETTER STRESS AND LOW TONE*/ + 0xa722, /* U+00a722: LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF*/ + 0xa722, /* U+00a723: LATIN SMALL LETTER EGYPTOLOGICAL ALEF*/ + 0xa724, /* U+00a724: LATIN CAPITAL LETTER EGYPTOLOGICAL AIN*/ + 0xa724, /* U+00a725: LATIN SMALL LETTER EGYPTOLOGICAL AIN*/ + 0xa726, /* U+00a726: LATIN CAPITAL LETTER HENG*/ + 0xa726, /* U+00a727: LATIN SMALL LETTER HENG*/ + 0xa728, /* U+00a728: LATIN CAPITAL LETTER TZ*/ + 0xa728, /* U+00a729: LATIN SMALL LETTER TZ*/ + 0xa72a, /* U+00a72a: LATIN CAPITAL LETTER TRESILLO*/ + 0xa72a, /* U+00a72b: LATIN SMALL LETTER TRESILLO*/ + 0xa72c, /* U+00a72c: LATIN CAPITAL LETTER CUATRILLO*/ + 0xa72c, /* U+00a72d: LATIN SMALL LETTER CUATRILLO*/ + 0xa72e, /* U+00a72e: LATIN CAPITAL LETTER CUATRILLO WITH COMMA*/ + 0xa72e, /* U+00a72f: LATIN SMALL LETTER CUATRILLO WITH COMMA*/ + 0xa730, /* U+00a730: LATIN LETTER SMALL CAPITAL F*/ + 0xa731, /* U+00a731: LATIN LETTER SMALL CAPITAL S*/ + 0xa732, /* U+00a732: LATIN CAPITAL LETTER AA*/ + 0xa732, /* U+00a733: LATIN SMALL LETTER AA*/ + 0xa734, /* U+00a734: LATIN CAPITAL LETTER AO*/ + 0xa734, /* U+00a735: LATIN SMALL LETTER AO*/ + 0xa736, /* U+00a736: LATIN CAPITAL LETTER AU*/ + 0xa736, /* U+00a737: LATIN SMALL LETTER AU*/ + 0xa738, /* U+00a738: LATIN CAPITAL LETTER AV*/ + 0xa738, /* U+00a739: LATIN SMALL LETTER AV*/ + 0xa73a, /* U+00a73a: LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR*/ + 0xa73a, /* U+00a73b: LATIN SMALL LETTER AV WITH HORIZONTAL BAR*/ + 0xa73c, /* U+00a73c: LATIN CAPITAL LETTER AY*/ + 0xa73c, /* U+00a73d: LATIN SMALL LETTER AY*/ + 0xa73e, /* U+00a73e: LATIN CAPITAL LETTER REVERSED C WITH DOT*/ + 0xa73e, /* U+00a73f: LATIN SMALL LETTER REVERSED C WITH DOT*/ + 0xa740, /* U+00a740: LATIN CAPITAL LETTER K WITH STROKE*/ + 0xa740, /* U+00a741: LATIN SMALL LETTER K WITH STROKE*/ + 0xa742, /* U+00a742: LATIN CAPITAL LETTER K WITH DIAGONAL STROKE*/ + 0xa742, /* U+00a743: LATIN SMALL LETTER K WITH DIAGONAL STROKE*/ + 0xa744, /* U+00a744: LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE*/ + 0xa744, /* U+00a745: LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE*/ + 0xa746, /* U+00a746: LATIN CAPITAL LETTER BROKEN L*/ + 0xa746, /* U+00a747: LATIN SMALL LETTER BROKEN L*/ + 0xa748, /* U+00a748: LATIN CAPITAL LETTER L WITH HIGH STROKE*/ + 0xa748, /* U+00a749: LATIN SMALL LETTER L WITH HIGH STROKE*/ + 0xa74a, /* U+00a74a: LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY*/ + 0xa74a, /* U+00a74b: LATIN SMALL LETTER O WITH LONG STROKE OVERLAY*/ + 0xa74c, /* U+00a74c: LATIN CAPITAL LETTER O WITH LOOP*/ + 0xa74c, /* U+00a74d: LATIN SMALL LETTER O WITH LOOP*/ + 0xa74e, /* U+00a74e: LATIN CAPITAL LETTER OO*/ + 0xa74e, /* U+00a74f: LATIN SMALL LETTER OO*/ + 0xa750, /* U+00a750: LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER*/ + 0xa750, /* U+00a751: LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER*/ + 0xa752, /* U+00a752: LATIN CAPITAL LETTER P WITH FLOURISH*/ + 0xa752, /* U+00a753: LATIN SMALL LETTER P WITH FLOURISH*/ + 0xa754, /* U+00a754: LATIN CAPITAL LETTER P WITH SQUIRREL TAIL*/ + 0xa754, /* U+00a755: LATIN SMALL LETTER P WITH SQUIRREL TAIL*/ + 0xa756, /* U+00a756: LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER*/ + 0xa756, /* U+00a757: LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER*/ + 0xa758, /* U+00a758: LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE*/ + 0xa758, /* U+00a759: LATIN SMALL LETTER Q WITH DIAGONAL STROKE*/ + 0xa75a, /* U+00a75a: LATIN CAPITAL LETTER R ROTUNDA*/ + 0xa75a, /* U+00a75b: LATIN SMALL LETTER R ROTUNDA*/ + 0xa75c, /* U+00a75c: LATIN CAPITAL LETTER RUM ROTUNDA*/ + 0xa75c, /* U+00a75d: LATIN SMALL LETTER RUM ROTUNDA*/ + 0xa75e, /* U+00a75e: LATIN CAPITAL LETTER V WITH DIAGONAL STROKE*/ + 0xa75e, /* U+00a75f: LATIN SMALL LETTER V WITH DIAGONAL STROKE*/ + 0xa760, /* U+00a760: LATIN CAPITAL LETTER VY*/ + 0xa760, /* U+00a761: LATIN SMALL LETTER VY*/ + 0xa762, /* U+00a762: LATIN CAPITAL LETTER VISIGOTHIC Z*/ + 0xa762, /* U+00a763: LATIN SMALL LETTER VISIGOTHIC Z*/ + 0xa764, /* U+00a764: LATIN CAPITAL LETTER THORN WITH STROKE*/ + 0xa764, /* U+00a765: LATIN SMALL LETTER THORN WITH STROKE*/ + 0xa766, /* U+00a766: LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER*/ + 0xa766, /* U+00a767: LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER*/ + 0xa768, /* U+00a768: LATIN CAPITAL LETTER VEND*/ + 0xa768, /* U+00a769: LATIN SMALL LETTER VEND*/ + 0xa76a, /* U+00a76a: LATIN CAPITAL LETTER ET*/ + 0xa76a, /* U+00a76b: LATIN SMALL LETTER ET*/ + 0xa76c, /* U+00a76c: LATIN CAPITAL LETTER IS*/ + 0xa76c, /* U+00a76d: LATIN SMALL LETTER IS*/ + 0xa76e, /* U+00a76e: LATIN CAPITAL LETTER CON*/ + 0xa76e, /* U+00a76f: LATIN SMALL LETTER CON*/ + 0xa770, /* U+00a770: MODIFIER LETTER US*/ + 0xa771, /* U+00a771: LATIN SMALL LETTER DUM*/ + 0xa772, /* U+00a772: LATIN SMALL LETTER LUM*/ + 0xa773, /* U+00a773: LATIN SMALL LETTER MUM*/ + 0xa774, /* U+00a774: LATIN SMALL LETTER NUM*/ + 0xa775, /* U+00a775: LATIN SMALL LETTER RUM*/ + 0xa776, /* U+00a776: LATIN LETTER SMALL CAPITAL RUM*/ + 0xa777, /* U+00a777: LATIN SMALL LETTER TUM*/ + 0xa778, /* U+00a778: LATIN SMALL LETTER UM*/ + 0xa779, /* U+00a779: LATIN CAPITAL LETTER INSULAR D*/ + 0xa779, /* U+00a77a: LATIN SMALL LETTER INSULAR D*/ + 0xa77b, /* U+00a77b: LATIN CAPITAL LETTER INSULAR F*/ + 0xa77b, /* U+00a77c: LATIN SMALL LETTER INSULAR F*/ + 0xa77d, /* U+00a77d: LATIN CAPITAL LETTER INSULAR G*/ + 0xa77e, /* U+00a77e: LATIN CAPITAL LETTER TURNED INSULAR G*/ + 0xa77e, /* U+00a77f: LATIN SMALL LETTER TURNED INSULAR G*/ + 0xa780, /* U+00a780: LATIN CAPITAL LETTER TURNED L*/ + 0xa780, /* U+00a781: LATIN SMALL LETTER TURNED L*/ + 0xa782, /* U+00a782: LATIN CAPITAL LETTER INSULAR R*/ + 0xa782, /* U+00a783: LATIN SMALL LETTER INSULAR R*/ + 0xa784, /* U+00a784: LATIN CAPITAL LETTER INSULAR S*/ + 0xa784, /* U+00a785: LATIN SMALL LETTER INSULAR S*/ + 0xa786, /* U+00a786: LATIN CAPITAL LETTER INSULAR T*/ + 0xa786, /* U+00a787: LATIN SMALL LETTER INSULAR T*/ + 0xa788, /* U+00a788: MODIFIER LETTER LOW CIRCUMFLEX ACCENT*/ + 0xa789, /* U+00a789: MODIFIER LETTER COLON*/ + 0xa78a, /* U+00a78a: MODIFIER LETTER SHORT EQUALS SIGN*/ + 0xa78b, /* U+00a78b: LATIN CAPITAL LETTER SALTILLO*/ + 0xa78b, /* U+00a78c: LATIN SMALL LETTER SALTILLO*/ + 0xa78d, /* U+00a78d: LATIN CAPITAL LETTER TURNED H*/ + 0xa78e, /* U+00a78e: LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT*/ + 0xa78f, /* U+00a78f: */ + 0xa790, /* U+00a790: LATIN CAPITAL LETTER N WITH DESCENDER*/ + 0xa790, /* U+00a791: LATIN SMALL LETTER N WITH DESCENDER*/ + 0xa792, /* U+00a792: LATIN CAPITAL LETTER C WITH BAR*/ + 0xa792, /* U+00a793: LATIN SMALL LETTER C WITH BAR*/ + 0xa794, /* U+00a794: */ + 0xa795, /* U+00a795: */ + 0xa796, /* U+00a796: */ + 0xa797, /* U+00a797: */ + 0xa798, /* U+00a798: */ + 0xa799, /* U+00a799: */ + 0xa79a, /* U+00a79a: */ + 0xa79b, /* U+00a79b: */ + 0xa79c, /* U+00a79c: */ + 0xa79d, /* U+00a79d: */ + 0xa79e, /* U+00a79e: */ + 0xa79f, /* U+00a79f: */ + 0xa7a0, /* U+00a7a0: LATIN CAPITAL LETTER G WITH OBLIQUE STROKE*/ + 0xa7a0, /* U+00a7a1: LATIN SMALL LETTER G WITH OBLIQUE STROKE*/ + 0xa7a2, /* U+00a7a2: LATIN CAPITAL LETTER K WITH OBLIQUE STROKE*/ + 0xa7a2, /* U+00a7a3: LATIN SMALL LETTER K WITH OBLIQUE STROKE*/ + 0xa7a4, /* U+00a7a4: LATIN CAPITAL LETTER N WITH OBLIQUE STROKE*/ + 0xa7a4, /* U+00a7a5: LATIN SMALL LETTER N WITH OBLIQUE STROKE*/ + 0xa7a6, /* U+00a7a6: LATIN CAPITAL LETTER R WITH OBLIQUE STROKE*/ + 0xa7a6, /* U+00a7a7: LATIN SMALL LETTER R WITH OBLIQUE STROKE*/ + 0xa7a8, /* U+00a7a8: LATIN CAPITAL LETTER S WITH OBLIQUE STROKE*/ + 0xa7a8, /* U+00a7a9: LATIN SMALL LETTER S WITH OBLIQUE STROKE*/ +}; + +static const RTUNICP g_afRTUniUpper0x00ff41[] = +{ + 0xff21, /* U+00ff41: FULLWIDTH LATIN SMALL LETTER A*/ + 0xff22, /* U+00ff42: FULLWIDTH LATIN SMALL LETTER B*/ + 0xff23, /* U+00ff43: FULLWIDTH LATIN SMALL LETTER C*/ + 0xff24, /* U+00ff44: FULLWIDTH LATIN SMALL LETTER D*/ + 0xff25, /* U+00ff45: FULLWIDTH LATIN SMALL LETTER E*/ + 0xff26, /* U+00ff46: FULLWIDTH LATIN SMALL LETTER F*/ + 0xff27, /* U+00ff47: FULLWIDTH LATIN SMALL LETTER G*/ + 0xff28, /* U+00ff48: FULLWIDTH LATIN SMALL LETTER H*/ + 0xff29, /* U+00ff49: FULLWIDTH LATIN SMALL LETTER I*/ + 0xff2a, /* U+00ff4a: FULLWIDTH LATIN SMALL LETTER J*/ + 0xff2b, /* U+00ff4b: FULLWIDTH LATIN SMALL LETTER K*/ + 0xff2c, /* U+00ff4c: FULLWIDTH LATIN SMALL LETTER L*/ + 0xff2d, /* U+00ff4d: FULLWIDTH LATIN SMALL LETTER M*/ + 0xff2e, /* U+00ff4e: FULLWIDTH LATIN SMALL LETTER N*/ + 0xff2f, /* U+00ff4f: FULLWIDTH LATIN SMALL LETTER O*/ + 0xff30, /* U+00ff50: FULLWIDTH LATIN SMALL LETTER P*/ + 0xff31, /* U+00ff51: FULLWIDTH LATIN SMALL LETTER Q*/ + 0xff32, /* U+00ff52: FULLWIDTH LATIN SMALL LETTER R*/ + 0xff33, /* U+00ff53: FULLWIDTH LATIN SMALL LETTER S*/ + 0xff34, /* U+00ff54: FULLWIDTH LATIN SMALL LETTER T*/ + 0xff35, /* U+00ff55: FULLWIDTH LATIN SMALL LETTER U*/ + 0xff36, /* U+00ff56: FULLWIDTH LATIN SMALL LETTER V*/ + 0xff37, /* U+00ff57: FULLWIDTH LATIN SMALL LETTER W*/ + 0xff38, /* U+00ff58: FULLWIDTH LATIN SMALL LETTER X*/ + 0xff39, /* U+00ff59: FULLWIDTH LATIN SMALL LETTER Y*/ + 0xff3a, /* U+00ff5a: FULLWIDTH LATIN SMALL LETTER Z*/ +}; + +static const RTUNICP g_afRTUniUpper0x010428[] = +{ + 0x10400, /* U+010428: DESERET SMALL LETTER LONG I*/ + 0x10401, /* U+010429: DESERET SMALL LETTER LONG E*/ + 0x10402, /* U+01042a: DESERET SMALL LETTER LONG A*/ + 0x10403, /* U+01042b: DESERET SMALL LETTER LONG AH*/ + 0x10404, /* U+01042c: DESERET SMALL LETTER LONG O*/ + 0x10405, /* U+01042d: DESERET SMALL LETTER LONG OO*/ + 0x10406, /* U+01042e: DESERET SMALL LETTER SHORT I*/ + 0x10407, /* U+01042f: DESERET SMALL LETTER SHORT E*/ + 0x10408, /* U+010430: DESERET SMALL LETTER SHORT A*/ + 0x10409, /* U+010431: DESERET SMALL LETTER SHORT AH*/ + 0x1040a, /* U+010432: DESERET SMALL LETTER SHORT O*/ + 0x1040b, /* U+010433: DESERET SMALL LETTER SHORT OO*/ + 0x1040c, /* U+010434: DESERET SMALL LETTER AY*/ + 0x1040d, /* U+010435: DESERET SMALL LETTER OW*/ + 0x1040e, /* U+010436: DESERET SMALL LETTER WU*/ + 0x1040f, /* U+010437: DESERET SMALL LETTER YEE*/ + 0x10410, /* U+010438: DESERET SMALL LETTER H*/ + 0x10411, /* U+010439: DESERET SMALL LETTER PEE*/ + 0x10412, /* U+01043a: DESERET SMALL LETTER BEE*/ + 0x10413, /* U+01043b: DESERET SMALL LETTER TEE*/ + 0x10414, /* U+01043c: DESERET SMALL LETTER DEE*/ + 0x10415, /* U+01043d: DESERET SMALL LETTER CHEE*/ + 0x10416, /* U+01043e: DESERET SMALL LETTER JEE*/ + 0x10417, /* U+01043f: DESERET SMALL LETTER KAY*/ + 0x10418, /* U+010440: DESERET SMALL LETTER GAY*/ + 0x10419, /* U+010441: DESERET SMALL LETTER EF*/ + 0x1041a, /* U+010442: DESERET SMALL LETTER VEE*/ + 0x1041b, /* U+010443: DESERET SMALL LETTER ETH*/ + 0x1041c, /* U+010444: DESERET SMALL LETTER THEE*/ + 0x1041d, /* U+010445: DESERET SMALL LETTER ES*/ + 0x1041e, /* U+010446: DESERET SMALL LETTER ZEE*/ + 0x1041f, /* U+010447: DESERET SMALL LETTER ESH*/ + 0x10420, /* U+010448: DESERET SMALL LETTER ZHEE*/ + 0x10421, /* U+010449: DESERET SMALL LETTER ER*/ + 0x10422, /* U+01044a: DESERET SMALL LETTER EL*/ + 0x10423, /* U+01044b: DESERET SMALL LETTER EM*/ + 0x10424, /* U+01044c: DESERET SMALL LETTER EN*/ + 0x10425, /* U+01044d: DESERET SMALL LETTER ENG*/ + 0x10426, /* U+01044e: DESERET SMALL LETTER OI*/ + 0x10427, /* U+01044f: DESERET SMALL LETTER EW*/ +}; + + +RT_DECL_DATA_CONST(const RTUNICASERANGE) g_aRTUniUpperRanges[] = +{ + { 0x000000, 0x000587, &g_afRTUniUpper0x000000[0] }, + { 0x001d79, 0x0024ea, &g_afRTUniUpper0x001d79[0] }, + { 0x002c30, 0x002d2e, &g_afRTUniUpper0x002c30[0] }, + { 0x00a641, 0x00a7aa, &g_afRTUniUpper0x00a641[0] }, + { 0x00ff41, 0x00ff5b, &g_afRTUniUpper0x00ff41[0] }, + { 0x010428, 0x010450, &g_afRTUniUpper0x010428[0] }, + { ~(RTUNICP)0, ~(RTUNICP)0, NULL } +}; + diff --git a/src/VBox/Runtime/common/string/uniread.cpp b/src/VBox/Runtime/common/string/uniread.cpp new file mode 100644 index 00000000..c43826e0 --- /dev/null +++ b/src/VBox/Runtime/common/string/uniread.cpp @@ -0,0 +1,1313 @@ +/* $Id: uniread.cpp $ */ +/** @file + * IPRT - Unicode Specification Reader. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/types.h> +#include <iprt/stdarg.h> +#include <iprt/ctype.h> + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#ifdef _MSC_VER +# include <direct.h> +#else +# include <unistd.h> +#endif + + +/********************************************************************************************************************************* +* Global Variables * +*********************************************************************************************************************************/ +/** The file we're currently parsing. */ +static const char *g_pszCurFile; +/** The current line number. */ +static unsigned g_iLine; +/** The current output file. */ +static FILE *g_pCurOutFile; + + +/** + * Exit the program after printing a parse error. + * + * @param pszFormat The message. + * @param ... Format arguments. + */ +static DECL_NO_RETURN(void) ParseError(const char *pszFormat, ...) +{ + va_list va; + va_start(va, pszFormat); + fprintf(stderr, "parse error: %s:%u: ", g_pszCurFile, g_iLine); + vfprintf(stderr, pszFormat, va); + va_end(va); + exit(1); +} + +/** + * Strip a line. + * @returns pointer to first non-blank char. + * @param pszLine The line string to strip. + */ +static char *StripLine(char *pszLine) +{ + while (*pszLine == ' ' || *pszLine == '\t') + pszLine++; + + char *psz = strchr(pszLine, '#'); + if (psz) + *psz = '\0'; + else + psz = strchr(pszLine, '\0'); + while (psz > pszLine) + { + switch (psz[-1]) + { + case ' ': + case '\t': + case '\n': + case '\r': + *--psz = '\0'; + continue; + } + break; + } + + return pszLine; +} + + +/** + * Checks if the line is blank or a comment line and should be skipped. + * @returns true/false. + * @param pszLine The line to consider. + */ +static bool IsCommentOrBlankLine(const char *pszLine) +{ + while (*pszLine == ' ' || *pszLine == '\t' || *pszLine == '\n' || *pszLine == '\r') + pszLine++; + return *pszLine == '#' || *pszLine == '\0'; +} + + +/** + * Get the first field in the string. + * + * @returns Pointer to the next field. + * @param ppsz Where to store the pointer to the next field. + * @param pszLine The line string. (could also be *ppsz from a FirstNext call) + */ +static char *FirstField(char **ppsz, char *pszLine) +{ + char *psz = strchr(pszLine, ';'); + if (!psz) + *ppsz = psz = strchr(pszLine, '\0'); + else + { + *psz = '\0'; + *ppsz = psz + 1; + } + + /* strip */ + while (*pszLine == ' ' || *pszLine == '\t' || *pszLine == '\r' || *pszLine == '\n') + pszLine++; + while (psz > pszLine) + { + switch (psz[-1]) + { + case ' ': + case '\t': + case '\n': + case '\r': + *--psz = '\0'; + continue; + } + break; + } + return pszLine; +} + + +/** + * Get the next field in a field enumeration. + * + * @returns Pointer to the next field. + * @param ppsz Where to get and store the string position. + */ +static char *NextField(char **ppsz) +{ + return FirstField(ppsz, *ppsz); +} + + +/** + * Splits a decomposition field. + * + * This may start with a type that is enclosed in angle brackets. + * + * @returns Pointer to the mapping values following the type. @a *ppsz if empty. + * @param ppszType Pointer to the type field pointer. On input the type + * field contains the combined type and mapping string. On + * output this should only contain the type, no angle + * brackets. If no type specified, it is replaced with an + * empty string (const). + */ +static char *SplitDecompField(char **ppszType) +{ + /* Empty field? */ + char *psz = *ppszType; + if (!*psz) + return psz; + + /* No type? */ + if (*psz != '<') + { + *ppszType = (char *)""; + return psz; + } + + /* Split out the type. */ + *ppszType = ++psz; + psz = strchr(psz, '>'); + if (!psz) + { + ParseError("Bad Decomposition Type/Mappings\n"); + /* not reached: return *ppszType; */ + } + *psz++ = '\0'; + + psz = StripLine(psz); + if (!*psz) + ParseError("Missing decomposition mappings\n"); + return psz; +} + +/** + * Converts a code point field to a number. + * @returns Code point. + * @param psz The field string. + */ +static RTUNICP ToNum(const char *psz) +{ + char *pszEnd = NULL; + unsigned long ul = strtoul(psz, &pszEnd, 16); + if (pszEnd && *pszEnd) + ParseError("failed converting '%s' to a number!\n", psz); + return (RTUNICP)ul; +} + + +/** + * Same as ToNum except that if the field is empty the Default is returned. + */ +static RTUNICP ToNumDefault(const char *psz, RTUNICP Default) +{ + if (*psz) + return ToNum(psz); + return Default; +} + + +/** + * Converts a code point range to numbers. + * @returns The start code point.\ + * @returns ~(RTUNICP)0 on failure. + * @param psz The field string. + * @param pLast Where to store the last code point in the range. + */ +static RTUNICP ToRange(const char *psz, PRTUNICP pLast) +{ + char *pszEnd = NULL; + unsigned long ulStart = strtoul(psz, &pszEnd, 16); + unsigned long ulLast = ulStart; + if (pszEnd && *pszEnd) + { + if (*pszEnd == '.') + { + while (*pszEnd == '.') + pszEnd++; + ulLast = strtoul(pszEnd, &pszEnd, 16); + if (pszEnd && *pszEnd) + { + ParseError("failed converting '%s' to a number!\n", psz); + /* not reached: return ~(RTUNICP)0;*/ + } + } + else + { + ParseError("failed converting '%s' to a number!\n", psz); + /* not reached: return ~(RTUNICP)0; */ + } + } + *pLast = (RTUNICP)ulLast; + return (RTUNICP)ulStart; + +} + +/** + * For converting the decomposition mappings field and similar. + * + * @returns Mapping array or NULL if none. + * @param psz The string to convert. Can be empty. + * @param pcEntries Where to store the number of entries. + * @param cMax The max number of entries. + */ +static PRTUNICP ToMapping(char *psz, unsigned *pcEntries, unsigned cMax) +{ + PRTUNICP paCps = NULL; + unsigned cAlloc = 0; + unsigned i = 0; + + /* Convert the code points. */ + while (psz) + { + /* skip leading spaces */ + while (RT_C_IS_BLANK(*psz)) + psz++; + + /* the end? */ + if (!*psz) + break; + + /* room left? */ + if (i >= cMax) + { + ParseError("Too many mappings.\n"); + /* not reached: break; */ + } + if (i >= cAlloc) + { + cAlloc += 4; + paCps = (PRTUNICP)realloc(paCps, cAlloc * sizeof(paCps[0])); + if (!paCps) + { + fprintf(stderr, "out of memory (%u)\n", (unsigned)(cAlloc * sizeof(paCps[0]))); + exit(1); + } + } + + /* Find the end. */ + char *pszThis = psz; + while (RT_C_IS_XDIGIT(*psz)) + psz++; + if (*psz && !RT_C_IS_BLANK(*psz)) + ParseError("Malformed mappings.\n"); + if (*psz) + *psz++ = '\0'; + + /* Convert to number and add it. */ + paCps[i++] = ToNum(pszThis); + } + + *pcEntries = i; + return paCps; +} + + +/** + * Duplicate a string, optimize certain strings to save memory. + * + * @returns Pointer to string copy. + * @param pszStr The string to duplicate. + */ +static char *DupStr(const char *pszStr) +{ + if (!*pszStr) + return (char*)""; + char *psz = strdup(pszStr); + if (psz) + return psz; + + fprintf(stderr, "out of memory!\n"); + exit(1); +} + + +/** + * Array of all possible and impossible unicode code points as of 4.1 + */ +struct CPINFO +{ + RTUNICP CodePoint; + RTUNICP SimpleUpperCaseMapping; + RTUNICP SimpleLowerCaseMapping; + RTUNICP SimpleTitleCaseMapping; + unsigned CanonicalCombiningClass; + const char *pszDecompositionType; + unsigned cDecompositionMapping; + PRTUNICP paDecompositionMapping; + const char *pszName; + /** Set if this is an unused entry */ + unsigned fNullEntry : 1; + + unsigned fAlphabetic : 1; + unsigned fASCIIHexDigit : 1; + unsigned fBidiControl : 1; + unsigned fCaseIgnorable : 1; + unsigned fCased : 1; + unsigned fChangesWhenCasefolded : 1; + unsigned fChangesWhenCasemapped : 1; + unsigned fChangesWhenLowercased : 1; + unsigned fChangesWhenTitlecased : 1; + unsigned fChangesWhenUppercased : 1; + unsigned fDash : 1; + unsigned fDefaultIgnorableCodePoint : 1; + unsigned fDeprecated : 1; + unsigned fDiacritic : 1; + unsigned fExtender : 1; + unsigned fGraphemeBase : 1; + unsigned fGraphemeExtend : 1; + unsigned fGraphemeLink : 1; + unsigned fHexDigit : 1; + unsigned fHyphen : 1; + unsigned fIDContinue : 1; + unsigned fIdeographic : 1; + unsigned fIDSBinaryOperator : 1; + unsigned fIDStart : 1; + unsigned fIDSTrinaryOperator : 1; + unsigned fJoinControl : 1; + unsigned fLogicalOrderException : 1; + unsigned fLowercase : 1; + unsigned fMath : 1; + unsigned fNoncharacterCodePoint : 1; + unsigned fOtherAlphabetic : 1; + unsigned fOtherDefaultIgnorableCodePoint : 1; + unsigned fOtherGraphemeExtend : 1; + unsigned fOtherIDContinue : 1; + unsigned fOtherIDStart : 1; + unsigned fOtherLowercase : 1; + unsigned fOtherMath : 1; + unsigned fOtherUppercase : 1; + unsigned fPatternSyntax : 1; + unsigned fPatternWhiteSpace : 1; + unsigned fQuotationMark : 1; + unsigned fRadical : 1; + unsigned fSoftDotted : 1; + unsigned fSTerm : 1; + unsigned fTerminalPunctuation : 1; + unsigned fUnifiedIdeograph : 1; + unsigned fUppercase : 1; + unsigned fVariationSelector : 1; + unsigned fWhiteSpace : 1; + unsigned fXIDContinue : 1; + unsigned fXIDStart : 1; + + /** @name DerivedNormalizationProps.txt + * @{ */ + unsigned fFullCompositionExclusion : 1; + unsigned fInvNFC_QC : 2; /**< If 1 (NFC_QC == N) then code point 100% sure not part of NFC string. */ + unsigned fInvNFD_QC : 2; /**< If 1 (NFD_QC == N) then code point 100% sure not part of NFD string. */ + unsigned fInvNFKC_QC : 2; + unsigned fInvNFKD_QC : 2; + unsigned fExpandsOnNFC : 1; + unsigned fExpandsOnNFD : 1; + unsigned fExpandsOnNFKC : 1; + unsigned fExpandsOnNFKD : 1; + /** @} */ + + /* unprocessed stuff, so far. */ + const char *pszGeneralCategory; + const char *pszBidiClass; + const char *pszNumericType; + const char *pszNumericValueD; + const char *pszNumericValueN; + const char *pszBidiMirrored; + const char *pszUnicode1Name; + const char *pszISOComment; +} g_aCPInfo[0x110000]; + + +/** + * Creates a 'null' entry at i. + * @param i The entry in question. + */ +static void NullEntry(unsigned i) +{ + g_aCPInfo[i].CodePoint = i; + g_aCPInfo[i].fNullEntry = 1; + g_aCPInfo[i].SimpleUpperCaseMapping = i; + g_aCPInfo[i].SimpleLowerCaseMapping = i; + g_aCPInfo[i].SimpleTitleCaseMapping = i; + g_aCPInfo[i].pszDecompositionType = ""; + g_aCPInfo[i].cDecompositionMapping = 0; + g_aCPInfo[i].paDecompositionMapping = NULL; + g_aCPInfo[i].pszName = ""; + g_aCPInfo[i].pszGeneralCategory = ""; + g_aCPInfo[i].pszBidiClass = ""; + g_aCPInfo[i].pszNumericType = ""; + g_aCPInfo[i].pszNumericValueD = ""; + g_aCPInfo[i].pszNumericValueN = ""; + g_aCPInfo[i].pszBidiMirrored = ""; + g_aCPInfo[i].pszUnicode1Name = ""; + g_aCPInfo[i].pszISOComment = ""; +} + + +/** + * Open a file for reading, optionally with a base path prefixed. + * + * @returns file stream on success, NULL w/ complaint on failure. + * @param pszBasePath The base path, can be NULL. + * @param pszFilename The name of the file to open. + */ +static FILE *OpenFile(const char *pszBasePath, const char *pszFilename) +{ + FILE *pFile; + if ( !pszBasePath + || *pszFilename == '/' +#if defined(_MSC_VER) || defined(__OS2__) + || *pszFilename == '\\' + || (*pszFilename && pszFilename[1] == ':') +#endif + ) + { + pFile = fopen(pszFilename, "r"); + if (!pFile) + fprintf(stderr, "uniread: failed to open '%s' for reading\n", pszFilename); + } + else + { + size_t cchBasePath = strlen(pszBasePath); + size_t cchFilename = strlen(pszFilename); + char *pszFullName = (char *)malloc(cchBasePath + 1 + cchFilename + 1); + if (!pszFullName) + { + fprintf(stderr, "uniread: failed to allocate %d bytes\n", (int)(cchBasePath + 1 + cchFilename + 1)); + return NULL; + } + + memcpy(pszFullName, pszBasePath, cchBasePath); + pszFullName[cchBasePath] = '/'; + memcpy(&pszFullName[cchBasePath + 1], pszFilename, cchFilename + 1); + + pFile = fopen(pszFullName, "r"); + if (!pFile) + fprintf(stderr, "uniread: failed to open '%s' for reading\n", pszFullName); + free(pszFullName); + } + g_pszCurFile = pszFilename; + g_iLine = 0; + return pFile; +} + + +/** + * Wrapper around fgets that keep track of the line number. + * + * @returns See fgets. + * @param pszBuf The buffer. See fgets for output definition. + * @param cbBuf The buffer size. + * @param pFile The file to read from. + */ +static char *GetLineFromFile(char *pszBuf, int cbBuf, FILE *pFile) +{ + g_iLine++; + return fgets(pszBuf, cbBuf, pFile); +} + + +/** + * Closes a file opened by OpenFile + * + * @param pFile The file to close. + */ +static void CloseFile(FILE *pFile) +{ + g_pszCurFile = NULL; + g_iLine = 0; + fclose(pFile); +} + + +/** + * Read the UnicodeData.txt file. + * @returns 0 on success. + * @returns !0 on failure. + * @param pszBasePath The base path, can be NULL. + * @param pszFilename The name of the file. + */ +static int ReadUnicodeData(const char *pszBasePath, const char *pszFilename) +{ + /* + * Open input. + */ + FILE *pFile = OpenFile(pszBasePath, pszFilename); + if (!pFile) + return 1; + + /* + * Parse the input and spit out the output. + */ + char szLine[4096]; + RTUNICP i = 0; + while (GetLineFromFile(szLine, sizeof(szLine), pFile) != NULL) + { + if (IsCommentOrBlankLine(szLine)) + continue; + + char *pszCurField; + char *pszCodePoint = FirstField(&pszCurField, StripLine(szLine)); /* 0 */ + char *pszName = NextField(&pszCurField); /* 1 */ + char *pszGeneralCategory = NextField(&pszCurField); /* 2 */ + char *pszCanonicalCombiningClass = NextField(&pszCurField); /* 3 */ + char *pszBidiClass = NextField(&pszCurField); /* 4 */ + char *pszDecompositionType = NextField(&pszCurField); /* 5 */ + char *pszDecompositionMapping = SplitDecompField(&pszDecompositionType); + char *pszNumericType = NextField(&pszCurField); /* 6 */ + char *pszNumericValueD = NextField(&pszCurField); /* 7 */ + char *pszNumericValueN = NextField(&pszCurField); /* 8 */ + char *pszBidiMirrored = NextField(&pszCurField); /* 9 */ + char *pszUnicode1Name = NextField(&pszCurField); /* 10 */ + char *pszISOComment = NextField(&pszCurField); /* 11 */ + char *pszSimpleUpperCaseMapping = NextField(&pszCurField); /* 12 */ + char *pszSimpleLowerCaseMapping = NextField(&pszCurField); /* 13 */ + char *pszSimpleTitleCaseMapping = NextField(&pszCurField); /* 14 */ + + RTUNICP CodePoint = ToNum(pszCodePoint); + if (CodePoint >= RT_ELEMENTS(g_aCPInfo)) + { + ParseError("U+05X is out of range\n", CodePoint); + /* not reached: continue;*/ + } + + /* catchup? */ + while (i < CodePoint) + NullEntry(i++); + if (i != CodePoint) + { + ParseError("i=%d CodePoint=%u\n", i, CodePoint); + /* not reached: CloseFile(pFile); + return 1; */ + } + + /* this one */ + g_aCPInfo[i].CodePoint = i; + g_aCPInfo[i].fNullEntry = 0; + g_aCPInfo[i].pszName = DupStr(pszName); + g_aCPInfo[i].SimpleUpperCaseMapping = ToNumDefault(pszSimpleUpperCaseMapping, CodePoint); + g_aCPInfo[i].SimpleLowerCaseMapping = ToNumDefault(pszSimpleLowerCaseMapping, CodePoint); + g_aCPInfo[i].SimpleTitleCaseMapping = ToNumDefault(pszSimpleTitleCaseMapping, CodePoint); + g_aCPInfo[i].CanonicalCombiningClass = ToNum(pszCanonicalCombiningClass); + g_aCPInfo[i].pszDecompositionType = DupStr(pszDecompositionType); + g_aCPInfo[i].paDecompositionMapping = ToMapping(pszDecompositionMapping, &g_aCPInfo[i].cDecompositionMapping, 20); + g_aCPInfo[i].pszGeneralCategory = DupStr(pszGeneralCategory); + g_aCPInfo[i].pszBidiClass = DupStr(pszBidiClass); + g_aCPInfo[i].pszNumericType = DupStr(pszNumericType); + g_aCPInfo[i].pszNumericValueD = DupStr(pszNumericValueD); + g_aCPInfo[i].pszNumericValueN = DupStr(pszNumericValueN); + g_aCPInfo[i].pszBidiMirrored = DupStr(pszBidiMirrored); + g_aCPInfo[i].pszUnicode1Name = DupStr(pszUnicode1Name); + g_aCPInfo[i].pszISOComment = DupStr(pszISOComment); + i++; + } + + /* catchup? */ + while (i < RT_ELEMENTS(g_aCPInfo)) + NullEntry(i++); + CloseFile(pFile); + + return 0; +} + + +/** + * Generates excluded data. + * + * @returns 0 on success, exit code on failure. + */ +static int GenerateExcludedData(void) +{ + /* + * Hangul Syllables U+AC00 to U+D7A3. + */ + for (RTUNICP i = 0xac00; i <= 0xd7a3; i++) + { + g_aCPInfo[i].fNullEntry = 0; + g_aCPInfo[i].fInvNFD_QC = 1; + /** @todo generate the decomposition: http://unicode.org/reports/tr15/#Hangul + * */ + } + + /** @todo + * CJK Ideographs Extension A (U+3400 - U+4DB5) + * CJK Ideographs (U+4E00 - U+9FA5) + * CJK Ideograph Extension B (U+20000 - U+2A6D6) + * CJK Ideograph Extension C (U+2A700 - U+2B734) + */ + + return 0; +} + + + +/** + * Worker for ApplyProperty that handles a yes, no, maybe property value. + * + * @returns 0 (NO), 1 (YES), 2 (MAYBE). + * @param ppszNextField The field cursor, input and output. + */ +static int YesNoMaybePropertyValue(char **ppszNextField) +{ + if (!**ppszNextField) + ParseError("Missing Y/N/M field\n"); + else + { + char *psz = NextField(ppszNextField); + if (!strcmp(psz, "N")) + return 0; + if (!strcmp(psz, "Y")) + return 1; + if (!strcmp(psz, "M")) + return 2; + ParseError("Unexpected Y/N/M value: '%s'\n", psz); + } + /* not reached: return 0; */ +} + + +/** + * Inverted version of YesNoMaybePropertyValue + * + * @returns 1 (NO), 0 (YES), 2 (MAYBE). + * @param ppszNextField The field cursor, input and output. + */ +static int YesNoMaybePropertyValueInv(char **ppszNextField) +{ + unsigned rc = YesNoMaybePropertyValue(ppszNextField); + switch (rc) + { + case 0: return 1; + case 1: return 0; + default: return rc; + } +} + + +/** + * Applies a property to a code point. + * + * @param StartCP The code point. + * @param pszProperty The property name. + * @param pszNextField The next field. + */ +static void ApplyProperty(RTUNICP StartCP, const char *pszProperty, char *pszNextField) +{ + if (StartCP >= RT_ELEMENTS(g_aCPInfo)) + { + ParseError("U+%06X is out of the g_aCPInfo range.\n", StartCP); + /* not reached: return; */ + } + struct CPINFO *pCPInfo = &g_aCPInfo[StartCP]; + /* string switch */ + if (!strcmp(pszProperty, "ASCII_Hex_Digit")) pCPInfo->fASCIIHexDigit = 1; + else if (!strcmp(pszProperty, "Alphabetic")) pCPInfo->fAlphabetic = 1; + else if (!strcmp(pszProperty, "Bidi_Control")) pCPInfo->fBidiControl = 1; + else if (!strcmp(pszProperty, "Case_Ignorable")) pCPInfo->fCaseIgnorable = 1; + else if (!strcmp(pszProperty, "Cased")) pCPInfo->fCased = 1; + else if (!strcmp(pszProperty, "Changes_When_Casefolded")) pCPInfo->fChangesWhenCasefolded = 1; + else if (!strcmp(pszProperty, "Changes_When_Casemapped")) pCPInfo->fChangesWhenCasemapped = 1; + else if (!strcmp(pszProperty, "Changes_When_Lowercased")) pCPInfo->fChangesWhenLowercased = 1; + else if (!strcmp(pszProperty, "Changes_When_Titlecased")) pCPInfo->fChangesWhenTitlecased = 1; + else if (!strcmp(pszProperty, "Changes_When_Uppercased")) pCPInfo->fChangesWhenUppercased = 1; + else if (!strcmp(pszProperty, "Dash")) pCPInfo->fDash = 1; + else if (!strcmp(pszProperty, "Default_Ignorable_Code_Point")) pCPInfo->fDefaultIgnorableCodePoint = 1; + else if (!strcmp(pszProperty, "Deprecated")) pCPInfo->fDeprecated = 1; + else if (!strcmp(pszProperty, "Diacritic")) pCPInfo->fDiacritic = 1; + else if (!strcmp(pszProperty, "Extender")) pCPInfo->fExtender = 1; + else if (!strcmp(pszProperty, "Grapheme_Base")) pCPInfo->fGraphemeBase = 1; + else if (!strcmp(pszProperty, "Grapheme_Extend")) pCPInfo->fGraphemeExtend = 1; + else if (!strcmp(pszProperty, "Grapheme_Link")) pCPInfo->fGraphemeLink = 1; + else if (!strcmp(pszProperty, "Hex_Digit")) pCPInfo->fHexDigit = 1; + else if (!strcmp(pszProperty, "Hyphen")) pCPInfo->fHyphen = 1; + else if (!strcmp(pszProperty, "ID_Continue")) pCPInfo->fIDContinue = 1; + else if (!strcmp(pszProperty, "ID_Start")) pCPInfo->fIDStart = 1; + else if (!strcmp(pszProperty, "Ideographic")) pCPInfo->fIdeographic = 1; + else if (!strcmp(pszProperty, "IDS_Binary_Operator")) pCPInfo->fIDSBinaryOperator = 1; + else if (!strcmp(pszProperty, "IDS_Trinary_Operator")) pCPInfo->fIDSTrinaryOperator = 1; + else if (!strcmp(pszProperty, "Join_Control")) pCPInfo->fJoinControl = 1; + else if (!strcmp(pszProperty, "Logical_Order_Exception")) pCPInfo->fLogicalOrderException = 1; + else if (!strcmp(pszProperty, "Lowercase")) pCPInfo->fLowercase = 1; + else if (!strcmp(pszProperty, "Math")) pCPInfo->fMath = 1; + else if (!strcmp(pszProperty, "Noncharacter_Code_Point")) pCPInfo->fNoncharacterCodePoint = 1; + else if (!strcmp(pszProperty, "Other_Alphabetic")) pCPInfo->fOtherAlphabetic = 1; + else if (!strcmp(pszProperty, "Other_Default_Ignorable_Code_Point")) pCPInfo->fOtherDefaultIgnorableCodePoint = 1; + else if (!strcmp(pszProperty, "Other_Grapheme_Extend")) pCPInfo->fOtherGraphemeExtend = 1; + else if (!strcmp(pszProperty, "Other_ID_Continue")) pCPInfo->fOtherIDContinue = 1; + else if (!strcmp(pszProperty, "Other_ID_Start")) pCPInfo->fOtherIDStart = 1; + else if (!strcmp(pszProperty, "Other_Lowercase")) pCPInfo->fOtherLowercase = 1; + else if (!strcmp(pszProperty, "Other_Math")) pCPInfo->fOtherMath = 1; + else if (!strcmp(pszProperty, "Other_Uppercase")) pCPInfo->fOtherUppercase = 1; + else if (!strcmp(pszProperty, "Pattern_Syntax")) pCPInfo->fPatternSyntax = 1; + else if (!strcmp(pszProperty, "Pattern_White_Space")) pCPInfo->fPatternWhiteSpace = 1; + else if (!strcmp(pszProperty, "Quotation_Mark")) pCPInfo->fQuotationMark = 1; + else if (!strcmp(pszProperty, "Radical")) pCPInfo->fRadical = 1; + else if (!strcmp(pszProperty, "Soft_Dotted")) pCPInfo->fSoftDotted = 1; + else if (!strcmp(pszProperty, "STerm")) pCPInfo->fSTerm = 1; + else if (!strcmp(pszProperty, "Terminal_Punctuation")) pCPInfo->fTerminalPunctuation = 1; + else if (!strcmp(pszProperty, "Unified_Ideograph")) pCPInfo->fUnifiedIdeograph = 1; + else if (!strcmp(pszProperty, "Uppercase")) pCPInfo->fUppercase = 1; + else if (!strcmp(pszProperty, "Variation_Selector")) pCPInfo->fVariationSelector = 1; + else if (!strcmp(pszProperty, "White_Space")) pCPInfo->fWhiteSpace = 1; + else if (!strcmp(pszProperty, "XID_Continue")) pCPInfo->fXIDContinue = 1; + else if (!strcmp(pszProperty, "XID_Start")) pCPInfo->fXIDStart = 1; + /* DerivedNormalizationProps: */ + else if (!strcmp(pszProperty, "FC_NFKC")) return; /* ignored */ + else if (!strcmp(pszProperty, "Full_Composition_Exclusion")) pCPInfo->fFullCompositionExclusion = 1; + else if (!strcmp(pszProperty, "NFC_QC")) pCPInfo->fInvNFC_QC = YesNoMaybePropertyValueInv(&pszNextField); + else if (!strcmp(pszProperty, "NFD_QC")) pCPInfo->fInvNFD_QC = YesNoMaybePropertyValueInv(&pszNextField); + else if (!strcmp(pszProperty, "NFKC_QC")) pCPInfo->fInvNFKC_QC = YesNoMaybePropertyValueInv(&pszNextField); + else if (!strcmp(pszProperty, "NFKD_QC")) pCPInfo->fInvNFKD_QC = YesNoMaybePropertyValueInv(&pszNextField); + else if (!strcmp(pszProperty, "Expands_On_NFC")) pCPInfo->fExpandsOnNFC = 1; + else if (!strcmp(pszProperty, "Expands_On_NFD")) pCPInfo->fExpandsOnNFD = 1; + else if (!strcmp(pszProperty, "Expands_On_NFKC")) pCPInfo->fExpandsOnNFKC = 1; + else if (!strcmp(pszProperty, "Expands_On_NFKD")) pCPInfo->fExpandsOnNFKD = 1; + else if (!strcmp(pszProperty, "NFKC_CF")) return; /*ignore */ + else if (!strcmp(pszProperty, "Changes_When_NFKC_Casefolded")) return; /*ignore */ + else + { + ParseError("Unknown property '%s'\n", pszProperty); + /* not reached: return; */ + } + + if (pszNextField && *pszNextField) + ParseError("Unexpected next field: '%s'\n", pszNextField); +} + + +/** + * Reads a property file. + * + * There are several property files, this code can read all + * of those but will only make use of the properties it recognizes. + * + * @returns 0 on success. + * @returns !0 on failure. + * @param pszBasePath The base path, can be NULL. + * @param pszFilename The name of the file. + */ +static int ReadProperties(const char *pszBasePath, const char *pszFilename) +{ + /* + * Open input. + */ + FILE *pFile = OpenFile(pszBasePath, pszFilename); + if (!pFile) + return 1; + + /* + * Parse the input and spit out the output. + */ + char szLine[4096]; + while (GetLineFromFile(szLine, sizeof(szLine), pFile) != NULL) + { + if (IsCommentOrBlankLine(szLine)) + continue; + char *pszCurField; + char *pszRange = FirstField(&pszCurField, StripLine(szLine)); + char *pszProperty = NextField(&pszCurField); + if (!*pszProperty) + { + ParseError("no property field.\n"); + /* not reached: continue; */ + } + + RTUNICP LastCP; + RTUNICP StartCP = ToRange(pszRange, &LastCP); + if (StartCP == ~(RTUNICP)0) + continue; + + while (StartCP <= LastCP) + ApplyProperty(StartCP++, pszProperty, pszCurField); + } + + CloseFile(pFile); + + return 0; +} + + +/** + * Append a flag to the string. + */ +static char *AppendFlag(char *psz, const char *pszFlag) +{ + char *pszEnd = strchr(psz, '\0'); + if (pszEnd != psz) + { + *pszEnd++ = ' '; + *pszEnd++ = '|'; + *pszEnd++ = ' '; + } + strcpy(pszEnd, pszFlag); + return psz; +} + +/** + * Calcs the flags for a code point. + * @returns true if there is a flag. + * @returns false if the isn't. + */ +static bool CalcFlags(struct CPINFO *pInfo, char *pszFlags) +{ + pszFlags[0] = '\0'; + /** @todo read the specs on this other vs standard stuff, and check out the finer points */ + if (pInfo->fAlphabetic || pInfo->fOtherAlphabetic) + AppendFlag(pszFlags, "RTUNI_ALPHA"); + if (pInfo->fHexDigit || pInfo->fASCIIHexDigit) + AppendFlag(pszFlags, "RTUNI_XDIGIT"); + if (!strcmp(pInfo->pszGeneralCategory, "Nd")) + AppendFlag(pszFlags, "RTUNI_DDIGIT"); + if (pInfo->fWhiteSpace) + AppendFlag(pszFlags, "RTUNI_WSPACE"); + if (pInfo->fUppercase || pInfo->fOtherUppercase) + AppendFlag(pszFlags, "RTUNI_UPPER"); + if (pInfo->fLowercase || pInfo->fOtherLowercase) + AppendFlag(pszFlags, "RTUNI_LOWER"); + //if (pInfo->???) + // AppendFlag(pszFlags, "RTUNI_BSPACE"); +#if 0 + if (pInfo->fInvNFD_QC != 0 || pInfo->fInvNFC_QC != 0) + { + AppendFlag(pszFlags, "RTUNI_QC_NFX"); + if (!pInfo->paDecompositionMapping && pInfo->fInvNFD_QC) + fprintf(stderr, "uniread: U+%05X is QC_NFD but has no mappings.\n", pInfo->CodePoint); + else if (*pInfo->pszDecompositionType && pInfo->fInvNFD_QC) + fprintf(stderr, "uniread: U+%05X is QC_NFD but has no canonical mappings.\n", pInfo->CodePoint); + } + else if (pInfo->paDecompositionMapping && !*pInfo->pszDecompositionType) + fprintf(stderr, "uniread: U+%05X is not QC_NFX but has canonical mappings.\n", pInfo->CodePoint); +#endif + + if (!*pszFlags) + { + pszFlags[0] = '0'; + pszFlags[1] = '\0'; + return false; + } + return true; +} + + +/** + * Closes the primary output stream. + */ +static int Stream1Close(void) +{ + if (g_pCurOutFile && g_pCurOutFile != stdout && g_pCurOutFile != stderr) + { + if (fclose(g_pCurOutFile) != 0) + { + fprintf(stderr, "Error closing output file.\n"); + return -1; + } + } + g_pCurOutFile = NULL; + return 0; +} + + +/** + * Initializes the 1st stream to output to a given file. + */ +static int Stream1Init(const char *pszName) +{ + int rc = Stream1Close(); + if (!rc) + { + g_pCurOutFile = fopen(pszName, "w"); + if (!g_pCurOutFile) + { + fprintf(stderr, "Error opening output file '%s'.\n", pszName); + rc = -1; + } + } + return rc; +} + + +/** + * printf wrapper for the primary output stream. + * + * @returns See vfprintf. + * @param pszFormat The vfprintf format string. + * @param ... The format arguments. + */ +static int Stream1Printf(const char *pszFormat, ...) +{ + int cch; + va_list va; + va_start(va, pszFormat); + cch = vfprintf(g_pCurOutFile, pszFormat, va); + va_end(va); + return cch; +} + + +/** the data store for stream two. */ +static char g_szStream2[10240]; +static unsigned volatile g_offStream2 = 0; + +/** + * Initializes the 2nd steam. + */ +static void Stream2Init(void) +{ + g_szStream2[0] = '\0'; + g_offStream2 = 0; +} + +/** + * Flushes the 2nd stream to stdout. + */ +static int Stream2Flush(void) +{ + g_szStream2[g_offStream2] = '\0'; + Stream1Printf("%s", g_szStream2); + Stream2Init(); + return 0; +} + +/** + * printf to the 2nd stream. + */ +static int Stream2Printf(const char *pszFormat, ...) +{ + unsigned offStream2 = g_offStream2; + va_list va; + va_start(va, pszFormat); + int cch = vsprintf(&g_szStream2[offStream2], pszFormat, va); + va_end(va); + offStream2 += cch; + if (offStream2 >= sizeof(g_szStream2)) + { + fprintf(stderr, "error: stream2 overflow!\n"); + exit(1); + } + g_offStream2 = offStream2; + return cch; +} + + +/** + * Print the unidata.cpp file header and include list. + */ +int PrintHeader(const char *argv0, const char *pszBaseDir) +{ + char szBuf[1024]; + if (!pszBaseDir) + { + memset(szBuf, 0, sizeof(szBuf)); +#ifdef _MSC_VER + if (!_getcwd(szBuf, sizeof(szBuf))) +#else + if (!getcwd(szBuf, sizeof(szBuf))) +#endif + return RTEXITCODE_FAILURE; + pszBaseDir = szBuf; + } + + Stream1Printf("/* $" "Id" "$ */\n" + "/** @file\n" + " * IPRT - Unicode Tables.\n" + " *\n" + " * Automatically Generated from %s\n" + " * by %s (" __DATE__ " " __TIME__ ")\n" + " */\n" + "\n" + "/*\n" + " * Copyright (C) 2006-2017 Oracle Corporation \n" + " *\n" + " * This file is part of VirtualBox Open Source Edition (OSE), as\n" + " * available from http://www.virtualbox.org. This file is free software;\n" + " * you can redistribute it and/or modify it under the terms of the GNU\n" + " * General Public License (GPL) as published by the Free Software\n" + " * Foundation, in version 2 as it comes in the \"COPYING\" file of the\n" + " * VirtualBox OSE distribution. VirtualBox OSE is distributed in the\n" + " * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.\n" + " *\n" + " * The contents of this file may alternatively be used under the terms\n" + " * of the Common Development and Distribution License Version 1.0\n" + " * (CDDL) only, as it comes in the \"COPYING.CDDL\" file of the\n" + " * VirtualBox OSE distribution, in which case the provisions of the\n" + " * CDDL are applicable instead of those of the GPL.\n" + " *\n" + " * You may elect to license modified versions of this file under the\n" + " * terms and conditions of either the GPL or the CDDL or both.\n" + " */\n" + "\n" + "#include <iprt/uni.h>\n" + "\n", + pszBaseDir, argv0); + return 0; +} + + +/** + * Print the flag tables. + */ +int PrintFlags(void) +{ + /* + * Print flags table. + */ + Stream2Init(); + Stream2Printf("RT_DECL_DATA_CONST(const RTUNIFLAGSRANGE) g_aRTUniFlagsRanges[] =\n" + "{\n"); + RTUNICP i = 0; + int iStart = -1; + while (i < RT_ELEMENTS(g_aCPInfo)) + { + /* figure how far off the next chunk is */ + char szFlags[256]; + unsigned iNonNull = i; + while ( iNonNull < RT_ELEMENTS(g_aCPInfo) + && iNonNull >= 256 + && (g_aCPInfo[iNonNull].fNullEntry || !CalcFlags(&g_aCPInfo[iNonNull], szFlags)) ) + iNonNull++; + if (iNonNull - i > 4096 || iNonNull == RT_ELEMENTS(g_aCPInfo)) + { + if (iStart >= 0) + { + Stream1Printf("};\n\n"); + Stream2Printf(" { 0x%06x, 0x%06x, &g_afRTUniFlags0x%06x[0] },\n", iStart, i, iStart); + iStart = -1; + } + i = iNonNull; + } + else + { + if (iStart < 0) + { + Stream1Printf("static const uint8_t g_afRTUniFlags0x%06x[] =\n" + "{\n", i); + iStart = i; + } + CalcFlags(&g_aCPInfo[i], szFlags); + Stream1Printf(" %50s, /* U+%06x: %s*/\n", szFlags, g_aCPInfo[i].CodePoint, g_aCPInfo[i].pszName); + i++; + } + } + Stream2Printf(" { ~(RTUNICP)0, ~(RTUNICP)0, NULL }\n" + "};\n\n\n"); + Stream1Printf("\n"); + return Stream2Flush(); +} + + +/** + * Prints the upper case tables. + */ +static int PrintUpper(void) +{ + Stream2Init(); + Stream2Printf("RT_DECL_DATA_CONST(const RTUNICASERANGE) g_aRTUniUpperRanges[] =\n" + "{\n"); + RTUNICP i = 0; + int iStart = -1; + while (i < RT_ELEMENTS(g_aCPInfo)) + { + /* figure how far off the next chunk is */ + unsigned iSameCase = i; + while ( iSameCase < RT_ELEMENTS(g_aCPInfo) + && g_aCPInfo[iSameCase].SimpleUpperCaseMapping == g_aCPInfo[iSameCase].CodePoint + && iSameCase >= 256) + iSameCase++; + if (iSameCase - i > 4096/sizeof(RTUNICP) || iSameCase == RT_ELEMENTS(g_aCPInfo)) + { + if (iStart >= 0) + { + Stream1Printf("};\n\n"); + Stream2Printf(" { 0x%06x, 0x%06x, &g_afRTUniUpper0x%06x[0] },\n", iStart, i, iStart); + iStart = -1; + } + i = iSameCase; + } + else + { + if (iStart < 0) + { + Stream1Printf("static const RTUNICP g_afRTUniUpper0x%06x[] =\n" + "{\n", i); + iStart = i; + } + Stream1Printf(" 0x%02x, /* U+%06x: %s*/\n", g_aCPInfo[i].SimpleUpperCaseMapping, g_aCPInfo[i].CodePoint, g_aCPInfo[i].pszName); + i++; + } + } + Stream2Printf(" { ~(RTUNICP)0, ~(RTUNICP)0, NULL }\n" + "};\n\n\n"); + Stream1Printf("\n"); + return Stream2Flush(); +} + + +/** + * Prints the lowercase tables. + */ +static int PrintLower(void) +{ + Stream2Init(); + Stream2Printf("RT_DECL_DATA_CONST(const RTUNICASERANGE) g_aRTUniLowerRanges[] =\n" + "{\n"); + RTUNICP i = 0; + int iStart = -1; + while (i < RT_ELEMENTS(g_aCPInfo)) + { + /* figure how far off the next chunk is */ + unsigned iSameCase = i; + while ( iSameCase < RT_ELEMENTS(g_aCPInfo) + && g_aCPInfo[iSameCase].SimpleLowerCaseMapping == g_aCPInfo[iSameCase].CodePoint + && iSameCase >= 256) + iSameCase++; + if (iSameCase - i > 4096/sizeof(RTUNICP) || iSameCase == RT_ELEMENTS(g_aCPInfo)) + { + if (iStart >= 0) + { + Stream1Printf("};\n\n"); + Stream2Printf(" { 0x%06x, 0x%06x, &g_afRTUniLower0x%06x[0] },\n", iStart, i, iStart); + iStart = -1; + } + i = iSameCase; + } + else + { + if (iStart < 0) + { + Stream1Printf("static const RTUNICP g_afRTUniLower0x%06x[] =\n" + "{\n", i); + iStart = i; + } + Stream1Printf(" 0x%02x, /* U+%06x: %s*/\n", + g_aCPInfo[i].SimpleLowerCaseMapping, g_aCPInfo[i].CodePoint, g_aCPInfo[i].pszName); + i++; + } + } + Stream2Printf(" { ~(RTUNICP)0, ~(RTUNICP)0, NULL }\n" + "};\n\n\n"); + Stream1Printf("\n"); + return Stream2Flush(); +} + + +int main(int argc, char **argv) +{ + /* + * Parse args. + */ + if (argc <= 1) + { + printf("usage: %s [-C|--dir <UCD-dir>] [UnicodeData.txt [DerivedCoreProperties.txt [PropList.txt] [DerivedNormalizationProps.txt]]]\n", + argv[0]); + return 1; + } + + const char *pszBaseDir = NULL; + const char *pszUnicodeData = "UnicodeData.txt"; + const char *pszDerivedCoreProperties = "DerivedCoreProperties.txt"; + const char *pszPropList = "PropList.txt"; + const char *pszDerivedNormalizationProps = "DerivedNormalizationProps.txt"; + int iFile = 0; + for (int argi = 1; argi < argc; argi++) + { + if (argv[argi][0] != '-') + { + switch (iFile++) + { + case 0: pszUnicodeData = argv[argi]; break; + case 1: pszDerivedCoreProperties = argv[argi]; break; + case 2: pszPropList = argv[argi]; break; + case 3: pszDerivedNormalizationProps = argv[argi]; break; + default: + fprintf(stderr, "uniread: syntax error at '%s': too many filenames\n", argv[argi]); + return 1; + } + } + else if ( !strcmp(argv[argi], "--dir") + || !strcmp(argv[argi], "-C")) + { + if (argi + 1 >= argc) + { + fprintf(stderr, "uniread: syntax error: '%s' is missing the directory name.\n", argv[argi]); + return 1; + } + argi++; + pszBaseDir = argv[argi]; + } + else + { + fprintf(stderr, "uniread: syntax error at '%s': Unknown argument\n", argv[argi]); + return 1; + } + } + + /* + * Read the data. + */ + int rc = ReadUnicodeData(pszBaseDir, pszUnicodeData); + if (rc) + return rc; + rc = GenerateExcludedData(); + if (rc) + return rc; + rc = ReadProperties(pszBaseDir, pszPropList); + if (rc) + return rc; + rc = ReadProperties(pszBaseDir, pszDerivedCoreProperties); + if (rc) + return rc; + rc = ReadProperties(pszBaseDir, pszDerivedNormalizationProps); + if (rc) + return rc; + + /* + * Produce output files. + */ + rc = Stream1Init("unidata-flags.cpp"); + if (!rc) + rc = PrintHeader(argv[0], pszBaseDir); + if (!rc) + rc = PrintFlags(); + + rc = Stream1Init("unidata-upper.cpp"); + if (!rc) + rc = PrintHeader(argv[0], pszBaseDir); + if (!rc) + rc = PrintUpper(); + + rc = Stream1Init("unidata-lower.cpp"); + if (!rc) + rc = PrintHeader(argv[0], pszBaseDir); + if (!rc) + rc = PrintLower(); + if (!rc) + rc = Stream1Close(); + + /* done */ + return rc; +} + diff --git a/src/VBox/Runtime/common/string/utf-16-case.cpp b/src/VBox/Runtime/common/string/utf-16-case.cpp new file mode 100644 index 00000000..994f01c5 --- /dev/null +++ b/src/VBox/Runtime/common/string/utf-16-case.cpp @@ -0,0 +1,439 @@ +/* $Id: utf-16-case.cpp $ */ +/** @file + * IPRT - UTF-16, Case Sensitivity. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/utf16.h> +#include "internal/iprt.h" + +#include <iprt/uni.h> +#include <iprt/alloc.h> +#include <iprt/asm.h> +#include <iprt/assert.h> +#include <iprt/errcore.h> +#include "internal/string.h" + + +RTDECL(int) RTUtf16ICmp(register PCRTUTF16 pwsz1, register PCRTUTF16 pwsz2) +{ + if (pwsz1 == pwsz2) + return 0; + if (!pwsz1) + return -1; + if (!pwsz2) + return 1; + + PCRTUTF16 pwsz1Start = pwsz1; /* keep it around in case we have to backtrack on a surrogate pair */ + for (;;) + { + register RTUTF16 wc1 = *pwsz1; + register RTUTF16 wc2 = *pwsz2; + register int iDiff = wc1 - wc2; + if (iDiff) + { + /* unless they are *both* surrogate pairs, there is no chance they'll be identical. */ + if ( wc1 < 0xd800 + || wc2 < 0xd800 + || wc1 > 0xdfff + || wc2 > 0xdfff) + { + /* simple UCS-2 char */ + iDiff = RTUniCpToUpper(wc1) - RTUniCpToUpper(wc2); + if (iDiff) + iDiff = RTUniCpToLower(wc1) - RTUniCpToLower(wc2); + } + else + { + /* a damned pair */ + RTUNICP uc1; + RTUNICP uc2; + if (wc1 >= 0xdc00) + { + if (pwsz1Start == pwsz1) + return iDiff; + uc1 = pwsz1[-1]; + if (uc1 < 0xd800 || uc1 >= 0xdc00) + return iDiff; + uc1 = 0x10000 + (((uc1 & 0x3ff) << 10) | (wc1 & 0x3ff)); + uc2 = 0x10000 + (((pwsz2[-1] & 0x3ff) << 10) | (wc2 & 0x3ff)); + } + else + { + uc1 = *++pwsz1; + if (uc1 < 0xdc00 || uc1 >= 0xe000) + return iDiff; + uc1 = 0x10000 + (((wc1 & 0x3ff) << 10) | (uc1 & 0x3ff)); + uc2 = 0x10000 + (((wc2 & 0x3ff) << 10) | (*++pwsz2 & 0x3ff)); + } + iDiff = RTUniCpToUpper(uc1) - RTUniCpToUpper(uc2); + if (iDiff) + iDiff = RTUniCpToLower(uc1) - RTUniCpToLower(uc2); /* serious paranoia! */ + } + if (iDiff) + return iDiff; + } + if (!wc1) + return 0; + pwsz1++; + pwsz2++; + } +} +RT_EXPORT_SYMBOL(RTUtf16ICmp); + + +RTDECL(int) RTUtf16BigICmp(register PCRTUTF16 pwsz1, register PCRTUTF16 pwsz2) +{ + if (pwsz1 == pwsz2) + return 0; + if (!pwsz1) + return -1; + if (!pwsz2) + return 1; + + PCRTUTF16 pwsz1Start = pwsz1; /* keep it around in case we have to backtrack on a surrogate pair */ + for (;;) + { + register RTUTF16 wc1 = *pwsz1; + register RTUTF16 wc2 = *pwsz2; + register int iDiff = wc1 - wc2; + if (iDiff) + { + /* unless they are *both* surrogate pairs, there is no chance they'll be identical. */ + wc1 = RT_BE2H_U16(wc1); + wc2 = RT_BE2H_U16(wc2); + if ( wc1 < 0xd800 + || wc2 < 0xd800 + || wc1 > 0xdfff + || wc2 > 0xdfff) + { + /* simple UCS-2 char */ + iDiff = RTUniCpToUpper(wc1) - RTUniCpToUpper(wc2); + if (iDiff) + iDiff = RTUniCpToLower(wc1) - RTUniCpToLower(wc2); + } + else + { + /* a damned pair */ + RTUNICP uc1; + RTUNICP uc2; + if (wc1 >= 0xdc00) + { + if (pwsz1Start == pwsz1) + return iDiff; + uc1 = RT_BE2H_U16(pwsz1[-1]); + if (uc1 < 0xd800 || uc1 >= 0xdc00) + return iDiff; + uc1 = 0x10000 + (((uc1 & 0x3ff) << 10) | (wc1 & 0x3ff)); + uc2 = 0x10000 + (((RT_BE2H_U16(pwsz2[-1]) & 0x3ff) << 10) | (wc2 & 0x3ff)); + } + else + { + RTUTF16 wcTmp = *++pwsz1; + uc1 = RT_BE2H_U16(wcTmp); + if (uc1 < 0xdc00 || uc1 >= 0xe000) + return iDiff; + uc1 = 0x10000 + (((wc1 & 0x3ff) << 10) | (uc1 & 0x3ff)); + wcTmp = *++pwsz2; + uc2 = 0x10000 + (((wc2 & 0x3ff) << 10) | (RT_BE2H_U16(wcTmp) & 0x3ff)); + } + iDiff = RTUniCpToUpper(uc1) - RTUniCpToUpper(uc2); + if (iDiff) + iDiff = RTUniCpToLower(uc1) - RTUniCpToLower(uc2); /* serious paranoia! */ + } + if (iDiff) + return iDiff; + } + if (!wc1) + return 0; + pwsz1++; + pwsz2++; + } +} +RT_EXPORT_SYMBOL(RTUtf16BigICmp); + + +RTDECL(int) RTUtf16ICmpUtf8(PCRTUTF16 pwsz1, const char *psz2) +{ + /* + * NULL and empty strings are all the same. + */ + if (!pwsz1) + return !psz2 || !*psz2 ? 0 : -1; + if (!psz2) + return !*pwsz1 ? 0 : 1; + + /* + * Compare with a UTF-8 string by enumerating them char by char. + */ + for (;;) + { + RTUNICP uc1; + int rc = RTUtf16GetCpEx(&pwsz1, &uc1); + AssertRCReturn(rc, 1); + + RTUNICP uc2; + rc = RTStrGetCpEx(&psz2, &uc2); + AssertRCReturn(rc, -1); + if (uc1 == uc2) + { + if (uc1) + continue; + return 0; + } + + if (RTUniCpToUpper(uc1) == RTUniCpToUpper(uc2)) + continue; + if (RTUniCpToLower(uc1) == RTUniCpToLower(uc2)) + continue; + return uc1 < uc2 ? -1 : 1; + } +} +RT_EXPORT_SYMBOL(RTUtf16CmpIUtf8); + + +RTDECL(int) RTUtf16NICmp(register PCRTUTF16 pwsz1, register PCRTUTF16 pwsz2, size_t cwcMax) +{ + if (pwsz1 == pwsz2) + return 0; + if (!pwsz1) + return -1; + if (!pwsz2) + return 1; + + PCRTUTF16 pwsz1Start = pwsz1; /* keep it around in case we have to backtrack on a surrogate pair */ + while (cwcMax-- > 0) + { + register RTUTF16 wc1 = *pwsz1; + register RTUTF16 wc2 = *pwsz2; + register int iDiff = wc1 - wc2; + if (iDiff) + { + /* unless they are *both* surrogate pairs, there is no chance they'll be identical. */ + if ( wc1 < 0xd800 + || wc2 < 0xd800 + || wc1 > 0xdfff + || wc2 > 0xdfff) + { + /* simple UCS-2 char */ + iDiff = RTUniCpToUpper(wc1) - RTUniCpToUpper(wc2); + if (iDiff) + iDiff = RTUniCpToLower(wc1) - RTUniCpToLower(wc2); + } + else + { + /* a damned pair */ + RTUNICP uc1; + RTUNICP uc2; + if (wc1 >= 0xdc00) + { + if (pwsz1Start == pwsz1) + return iDiff; + uc1 = pwsz1[-1]; + if (uc1 < 0xd800 || uc1 >= 0xdc00) + return iDiff; + uc1 = 0x10000 + (((uc1 & 0x3ff) << 10) | (wc1 & 0x3ff)); + uc2 = 0x10000 + (((pwsz2[-1] & 0x3ff) << 10) | (wc2 & 0x3ff)); + } + else if (cwcMax-- > 0) + { + uc1 = *++pwsz1; + if (uc1 < 0xdc00 || uc1 >= 0xe000) + return iDiff; + uc1 = 0x10000 + (((wc1 & 0x3ff) << 10) | (uc1 & 0x3ff)); + uc2 = 0x10000 + (((wc2 & 0x3ff) << 10) | (*++pwsz2 & 0x3ff)); + } + else + { + iDiff = wc1 - wc2; + return iDiff; + } + iDiff = RTUniCpToUpper(uc1) - RTUniCpToUpper(uc2); + if (iDiff) + iDiff = RTUniCpToLower(uc1) - RTUniCpToLower(uc2); /* serious paranoia! */ + } + if (iDiff) + return iDiff; + } + if (!wc1) + return 0; + pwsz1++; + pwsz2++; + } + return 0; +} +RT_EXPORT_SYMBOL(RTUtf16NICmp); + + +RTDECL(int) RTUtf16BigNICmp(register PCRTUTF16 pwsz1, register PCRTUTF16 pwsz2, size_t cwcMax) +{ + if (pwsz1 == pwsz2) + return 0; + if (!pwsz1) + return -1; + if (!pwsz2) + return 1; + + PCRTUTF16 pwsz1Start = pwsz1; /* keep it around in case we have to backtrack on a surrogate pair */ + while (cwcMax-- > 0) + { + register RTUTF16 wc1 = *pwsz1; + register RTUTF16 wc2 = *pwsz2; + register int iDiff = wc1 - wc2; + if (iDiff) + { + /* unless they are *both* surrogate pairs, there is no chance they'll be identical. */ + wc1 = RT_BE2H_U16(wc1); + wc2 = RT_BE2H_U16(wc2); + if ( wc1 < 0xd800 + || wc2 < 0xd800 + || wc1 > 0xdfff + || wc2 > 0xdfff) + { + /* simple UCS-2 char */ + iDiff = RTUniCpToUpper(wc1) - RTUniCpToUpper(wc2); + if (iDiff) + iDiff = RTUniCpToLower(wc1) - RTUniCpToLower(wc2); + } + else + { + /* a damned pair */ + RTUNICP uc1; + RTUNICP uc2; + if (wc1 >= 0xdc00) + { + if (pwsz1Start == pwsz1) + return iDiff; + uc1 = RT_BE2H_U16(pwsz1[-1]); + if (uc1 < 0xd800 || uc1 >= 0xdc00) + return iDiff; + uc1 = 0x10000 + (((uc1 & 0x3ff) << 10) | (wc1 & 0x3ff)); + uc2 = 0x10000 + (((RT_BE2H_U16(pwsz2[-1]) & 0x3ff) << 10) | (wc2 & 0x3ff)); + } + else if (cwcMax > 0) + { + RTUTF16 wcTmp = *++pwsz1; + uc1 = RT_BE2H_U16(wcTmp); + if (uc1 < 0xdc00 || uc1 >= 0xe000) + return iDiff; + uc1 = 0x10000 + (((wc1 & 0x3ff) << 10) | (uc1 & 0x3ff)); + wcTmp = *++pwsz2; + uc2 = 0x10000 + (((wc2 & 0x3ff) << 10) | (RT_BE2H_U16(wcTmp) & 0x3ff)); + } + else + { + iDiff = wc1 - wc2; + return iDiff; + } + iDiff = RTUniCpToUpper(uc1) - RTUniCpToUpper(uc2); + if (iDiff) + iDiff = RTUniCpToLower(uc1) - RTUniCpToLower(uc2); /* serious paranoia! */ + } + if (iDiff) + return iDiff; + } + if (!wc1) + return 0; + pwsz1++; + pwsz2++; + } + return 0; +} +RT_EXPORT_SYMBOL(RTUtf16BigNICmp); + + +RTDECL(PRTUTF16) RTUtf16ToLower(PRTUTF16 pwsz) +{ + PRTUTF16 pwc = pwsz; + for (;;) + { + RTUTF16 wc = *pwc; + if (!wc) + break; + if (wc < 0xd800 || wc >= 0xdc00) + { + RTUNICP ucFolded = RTUniCpToLower(wc); + if (ucFolded < 0x10000) + *pwc++ = RTUniCpToLower(wc); + } + else + { + /* surrogate */ + RTUTF16 wc2 = pwc[1]; + if (wc2 >= 0xdc00 && wc2 <= 0xdfff) + { + RTUNICP uc = 0x10000 + (((wc & 0x3ff) << 10) | (wc2 & 0x3ff)); + RTUNICP ucFolded = RTUniCpToLower(uc); + if (uc != ucFolded && ucFolded >= 0x10000) /* we don't support shrinking the string */ + { + uc -= 0x10000; + *pwc++ = 0xd800 | (uc >> 10); + *pwc++ = 0xdc00 | (uc & 0x3ff); + } + } + else /* invalid encoding. */ + pwc++; + } + } + return pwsz; +} +RT_EXPORT_SYMBOL(RTUtf16ToLower); + + +RTDECL(PRTUTF16) RTUtf16ToUpper(PRTUTF16 pwsz) +{ + PRTUTF16 pwc = pwsz; + for (;;) + { + RTUTF16 wc = *pwc; + if (!wc) + break; + if (wc < 0xd800 || wc >= 0xdc00) + *pwc++ = RTUniCpToUpper(wc); + else + { + /* surrogate */ + RTUTF16 wc2 = pwc[1]; + if (wc2 >= 0xdc00 && wc2 <= 0xdfff) + { + RTUNICP uc = 0x10000 + (((wc & 0x3ff) << 10) | (wc2 & 0x3ff)); + RTUNICP ucFolded = RTUniCpToUpper(uc); + if (uc != ucFolded && ucFolded >= 0x10000) /* we don't support shrinking the string */ + { + uc -= 0x10000; + *pwc++ = 0xd800 | (uc >> 10); + *pwc++ = 0xdc00 | (uc & 0x3ff); + } + } + else /* invalid encoding. */ + pwc++; + } + } + return pwsz; +} +RT_EXPORT_SYMBOL(RTUtf16ToUpper); + diff --git a/src/VBox/Runtime/common/string/utf-16-latin-1.cpp b/src/VBox/Runtime/common/string/utf-16-latin-1.cpp new file mode 100644 index 00000000..62445d93 --- /dev/null +++ b/src/VBox/Runtime/common/string/utf-16-latin-1.cpp @@ -0,0 +1,481 @@ +/* $Id: utf-16-latin-1.cpp $ */ +/** @file + * IPRT - Latin-1 and UTF-16. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/latin1.h> +#include "internal/iprt.h" + +#include <iprt/assert.h> +#include <iprt/err.h> +#include <iprt/mem.h> +#include <iprt/string.h> +#include <iprt/utf16.h> +#include <iprt/uni.h> +#include "internal/string.h" + + +/** + * Validate the UTF-16 encoding and calculates the length of a Latin1 encoding. + * + * @returns iprt status code. + * @param pwsz The UTF-16 string. + * @param cwc The max length of the UTF-16 string to consider. + * @param pcch Where to store the length (excluding '\\0') of the Latin1 string. (cch == cb, btw) + */ +static int rtUtf16CalcLatin1Length(PCRTUTF16 pwsz, size_t cwc, size_t *pcch) +{ + int rc = VINF_SUCCESS; + size_t cch = 0; + while (cwc > 0) + { + RTUTF16 wc = *pwsz++; cwc--; + if (!wc) + break; + else if (RT_LIKELY(wc < 0x100)) + ++cch; + else + { + if (wc < 0xd800 || wc > 0xdfff) + { + if (wc >= 0xfffe) + { + RTStrAssertMsgFailed(("endian indicator! wc=%#x\n", wc)); + rc = VERR_CODE_POINT_ENDIAN_INDICATOR; + break; + } + } + else + { + if (wc >= 0xdc00) + { + RTStrAssertMsgFailed(("Wrong 1st char in surrogate! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + if (cwc <= 0) + { + RTStrAssertMsgFailed(("Invalid length! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + wc = *pwsz++; cwc--; + if (wc < 0xdc00 || wc > 0xdfff) + { + RTStrAssertMsgFailed(("Wrong 2nd char in surrogate! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + } + + rc = VERR_NO_TRANSLATION; + break; + } + } + + /* done */ + *pcch = cch; + return rc; +} + + +/** + * Recodes an valid UTF-16 string as Latin1. + * + * @returns iprt status code. + * @param pwsz The UTF-16 string. + * @param cwc The number of RTUTF16 characters to process from pwsz. The recoding + * will stop when cwc or '\\0' is reached. + * @param psz Where to store the Latin1 string. + * @param cch The size of the Latin1 buffer, excluding the terminator. + */ +static int rtUtf16RecodeAsLatin1(PCRTUTF16 pwsz, size_t cwc, char *psz, size_t cch) +{ + unsigned char *pch = (unsigned char *)psz; + int rc = VINF_SUCCESS; + while (cwc > 0) + { + RTUTF16 wc = *pwsz++; cwc--; + if (!wc) + break; + if (RT_LIKELY(wc < 0x100)) + { + if (RT_UNLIKELY(cch < 1)) + { + RTStrAssertMsgFailed(("Buffer overflow! 1\n")); + rc = VERR_BUFFER_OVERFLOW; + break; + } + cch--; + *pch++ = (unsigned char)wc; + } + else + { + if (wc < 0xd800 || wc > 0xdfff) + { + if (wc >= 0xfffe) + { + RTStrAssertMsgFailed(("endian indicator! wc=%#x\n", wc)); + rc = VERR_CODE_POINT_ENDIAN_INDICATOR; + break; + } + } + else + { + if (wc >= 0xdc00) + { + RTStrAssertMsgFailed(("Wrong 1st char in surrogate! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + if (cwc <= 0) + { + RTStrAssertMsgFailed(("Invalid length! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + RTUTF16 wc2 = *pwsz++; cwc--; + if (wc2 < 0xdc00 || wc2 > 0xdfff) + { + RTStrAssertMsgFailed(("Wrong 2nd char in surrogate! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + } + + rc = VERR_NO_TRANSLATION; + break; + } + } + + /* done */ + *pch = '\0'; + return rc; +} + + +RTDECL(int) RTUtf16ToLatin1Tag(PCRTUTF16 pwszString, char **ppszString, const char *pszTag) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(ppszString)); + Assert(VALID_PTR(pwszString)); + *ppszString = NULL; + + /* + * Validate the UTF-16 string and calculate the length of the UTF-8 encoding of it. + */ + size_t cch; + int rc = rtUtf16CalcLatin1Length(pwszString, RTSTR_MAX, &cch); + if (RT_SUCCESS(rc)) + { + /* + * Allocate buffer and recode it. + */ + char *pszResult = (char *)RTMemAllocTag(cch + 1, pszTag); + if (pszResult) + { + rc = rtUtf16RecodeAsLatin1(pwszString, RTSTR_MAX, pszResult, cch); + if (RT_SUCCESS(rc)) + { + *ppszString = pszResult; + return rc; + } + + RTMemFree(pszResult); + } + else + rc = VERR_NO_STR_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16ToLatin1Tag); + + +RTDECL(int) RTUtf16ToLatin1ExTag(PCRTUTF16 pwszString, size_t cwcString, char **ppsz, size_t cch, size_t *pcch, const char *pszTag) +{ + /* + * Validate input. + */ + AssertPtr(pwszString); + AssertPtr(ppsz); + AssertPtrNull(pcch); + + /* + * Validate the UTF-16 string and calculate the length of the Latin1 encoding of it. + */ + size_t cchResult; + int rc = rtUtf16CalcLatin1Length(pwszString, cwcString, &cchResult); + if (RT_SUCCESS(rc)) + { + if (pcch) + *pcch = cchResult; + + /* + * Check buffer size / Allocate buffer and recode it. + */ + bool fShouldFree; + char *pszResult; + if (cch > 0 && *ppsz) + { + fShouldFree = false; + if (cch <= cchResult) + return VERR_BUFFER_OVERFLOW; + pszResult = *ppsz; + } + else + { + *ppsz = NULL; + fShouldFree = true; + cch = RT_MAX(cch, cchResult + 1); + pszResult = (char *)RTMemAllocTag(cch, pszTag); + } + if (pszResult) + { + rc = rtUtf16RecodeAsLatin1(pwszString, cwcString, pszResult, cch - 1); + if (RT_SUCCESS(rc)) + { + *ppsz = pszResult; + return rc; + } + + if (fShouldFree) + RTMemFree(pszResult); + } + else + rc = VERR_NO_STR_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16ToLatin1ExTag); + + +RTDECL(size_t) RTUtf16CalcLatin1Len(PCRTUTF16 pwsz) +{ + size_t cch; + int rc = rtUtf16CalcLatin1Length(pwsz, RTSTR_MAX, &cch); + return RT_SUCCESS(rc) ? cch : 0; +} +RT_EXPORT_SYMBOL(RTUtf16CalcLatin1Len); + + +RTDECL(int) RTUtf16CalcLatin1LenEx(PCRTUTF16 pwsz, size_t cwc, size_t *pcch) +{ + size_t cch; + int rc = rtUtf16CalcLatin1Length(pwsz, cwc, &cch); + if (pcch) + *pcch = RT_SUCCESS(rc) ? cch : ~(size_t)0; + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16CalcLatin1LenEx); + + +/** + * Calculates the UTF-16 length of a Latin1 string. In fact this is just the + * original length, but the function saves us nasty comments to that effect + * all over the place. + * + * @returns IPRT status code. + * @param psz Pointer to the Latin1 string. + * @param cch The max length of the string. (btw cch = cb) + * Use RTSTR_MAX if all of the string is to be examined.s + * @param pcwc Where to store the length of the UTF-16 string as a number of RTUTF16 characters. + */ +static int rtLatin1CalcUtf16Length(const char *psz, size_t cch, size_t *pcwc) +{ + *pcwc = RTStrNLen(psz, cch); + return VINF_SUCCESS; +} + + +/** + * Recodes a Latin1 string as UTF-16. This is just a case of expanding it to + * sixteen bits, as Unicode is a superset of Latin1. + * + * Since we know the input is valid, we do *not* perform length checks. + * + * @returns iprt status code. + * @param psz The Latin1 string to recode. + * @param cch The number of chars (the type char, so bytes if you like) to process of the Latin1 string. + * The recoding will stop when cch or '\\0' is reached. Pass RTSTR_MAX to process up to '\\0'. + * @param pwsz Where to store the UTF-16 string. + * @param cwc The number of RTUTF16 items the pwsz buffer can hold, excluding the terminator ('\\0'). + */ +static int rtLatin1RecodeAsUtf16(const char *psz, size_t cch, PRTUTF16 pwsz, size_t cwc) +{ + int rc = VINF_SUCCESS; + const unsigned char *puch = (const unsigned char *)psz; + PRTUTF16 pwc = pwsz; + while (cch-- > 0) + { + /* read the next char and check for terminator. */ + const unsigned char uch = *puch; + if (!uch) + break; + + /* check for output overflow */ + if (RT_UNLIKELY(cwc < 1)) + { + rc = VERR_BUFFER_OVERFLOW; + break; + } + + /* expand the code point */ + *pwc++ = uch; + cwc--; + puch++; + } + + /* done */ + *pwc = '\0'; + return rc; +} + + +RTDECL(int) RTLatin1ToUtf16Tag(const char *pszString, PRTUTF16 *ppwszString, const char *pszTag) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(ppwszString)); + Assert(VALID_PTR(pszString)); + *ppwszString = NULL; + + /* + * Validate the input and calculate the length of the UTF-16 string. + */ + size_t cwc; + int rc = rtLatin1CalcUtf16Length(pszString, RTSTR_MAX, &cwc); + if (RT_SUCCESS(rc)) + { + /* + * Allocate buffer. + */ + PRTUTF16 pwsz = (PRTUTF16)RTMemAllocTag((cwc + 1) * sizeof(RTUTF16), pszTag); + if (pwsz) + { + /* + * Encode the UTF-16 string. + */ + rc = rtLatin1RecodeAsUtf16(pszString, RTSTR_MAX, pwsz, cwc); + if (RT_SUCCESS(rc)) + { + *ppwszString = pwsz; + return rc; + } + RTMemFree(pwsz); + } + else + rc = VERR_NO_UTF16_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTLatin1ToUtf16Tag); + + +RTDECL(int) RTLatin1ToUtf16ExTag(const char *pszString, size_t cchString, + PRTUTF16 *ppwsz, size_t cwc, size_t *pcwc, const char *pszTag) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(pszString)); + Assert(VALID_PTR(ppwsz)); + Assert(!pcwc || VALID_PTR(pcwc)); + + /* + * Validate the input and calculate the length of the UTF-16 string. + */ + size_t cwcResult; + int rc = rtLatin1CalcUtf16Length(pszString, cchString, &cwcResult); + if (RT_SUCCESS(rc)) + { + if (pcwc) + *pcwc = cwcResult; + + /* + * Check buffer size / Allocate buffer. + */ + bool fShouldFree; + PRTUTF16 pwszResult; + if (cwc > 0 && *ppwsz) + { + fShouldFree = false; + if (cwc <= cwcResult) + return VERR_BUFFER_OVERFLOW; + pwszResult = *ppwsz; + } + else + { + *ppwsz = NULL; + fShouldFree = true; + cwc = RT_MAX(cwcResult + 1, cwc); + pwszResult = (PRTUTF16)RTMemAllocTag(cwc * sizeof(RTUTF16), pszTag); + } + if (pwszResult) + { + /* + * Encode the UTF-16 string. + */ + rc = rtLatin1RecodeAsUtf16(pszString, cchString, pwszResult, cwc - 1); + if (RT_SUCCESS(rc)) + { + *ppwsz = pwszResult; + return rc; + } + if (fShouldFree) + RTMemFree(pwszResult); + } + else + rc = VERR_NO_UTF16_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTLatin1ToUtf16ExTag); + + +RTDECL(size_t) RTLatin1CalcUtf16Len(const char *psz) +{ + size_t cwc; + int rc = rtLatin1CalcUtf16Length(psz, RTSTR_MAX, &cwc); + return RT_SUCCESS(rc) ? cwc : 0; +} +RT_EXPORT_SYMBOL(RTLatin1CalcUtf16Len); + + +RTDECL(int) RTLatin1CalcUtf16LenEx(const char *psz, size_t cch, size_t *pcwc) +{ + size_t cwc; + int rc = rtLatin1CalcUtf16Length(psz, cch, &cwc); + if (pcwc) + *pcwc = RT_SUCCESS(rc) ? cwc : ~(size_t)0; + return rc; +} +RT_EXPORT_SYMBOL(RTLatin1CalcUtf16LenEx); + diff --git a/src/VBox/Runtime/common/string/utf-16.cpp b/src/VBox/Runtime/common/string/utf-16.cpp new file mode 100644 index 00000000..9f0b4690 --- /dev/null +++ b/src/VBox/Runtime/common/string/utf-16.cpp @@ -0,0 +1,1260 @@ +/* $Id: utf-16.cpp $ */ +/** @file + * IPRT - UTF-16. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/utf16.h> +#include "internal/iprt.h" + +#include <iprt/uni.h> +#include <iprt/asm.h> +#include <iprt/mem.h> +#include <iprt/assert.h> +#include <iprt/err.h> +#include "internal/string.h" + + +/** + * Get get length in code points of an UTF-16 encoded string, validating the + * string while doing so. + * + * @returns IPRT status code. + * @param pwsz Pointer to the UTF-16 string. + * @param cwc The max length of the string in UTF-16 units. Use + * RTSTR_MAX if all of the string is to be examined. + * @param pcuc Where to store the length in unicode code points. + * @param pcwcActual Where to store the actual size of the UTF-16 string + * on success. Optional. + */ +static int rtUtf16Length(PCRTUTF16 pwsz, size_t cwc, size_t *pcuc, size_t *pcwcActual) +{ + PCRTUTF16 pwszStart = pwsz; + size_t cCodePoints = 0; + while (cwc > 0) + { + RTUTF16 wc = *pwsz; + if (!wc) + break; + if (wc < 0xd800 || wc > 0xdfff) + { + cCodePoints++; + pwsz++; + cwc--; + } + /* Surrogate pair: */ + else if (wc >= 0xdc00) + { + RTStrAssertMsgFailed(("Lone UTF-16 trail surrogate: %#x (%.*Rhxs)\n", wc, RT_MIN(cwc * 2, 10), pwsz)); + return VERR_INVALID_UTF16_ENCODING; + } + else if (cwc < 2) + { + RTStrAssertMsgFailed(("Lone UTF-16 lead surrogate: %#x\n", wc)); + return VERR_INVALID_UTF16_ENCODING; + } + else + { + RTUTF16 wcTrail = pwsz[1]; + if (wcTrail < 0xdc00 || wcTrail > 0xdfff) + { + RTStrAssertMsgFailed(("Invalid UTF-16 trail surrogate: %#x (lead %#x)\n", wcTrail, wc)); + return VERR_INVALID_UTF16_ENCODING; + } + + cCodePoints++; + pwsz += 2; + cwc -= 2; + } + } + + /* done */ + *pcuc = cCodePoints; + if (pcwcActual) + *pcwcActual = pwsz - pwszStart; + return VINF_SUCCESS; +} + + +RTDECL(PRTUTF16) RTUtf16AllocTag(size_t cb, const char *pszTag) +{ + if (cb > sizeof(RTUTF16)) + cb = RT_ALIGN_Z(cb, sizeof(RTUTF16)); + else + cb = sizeof(RTUTF16); + PRTUTF16 pwsz = (PRTUTF16)RTMemAllocTag(cb, pszTag); + if (pwsz) + *pwsz = '\0'; + return pwsz; +} +RT_EXPORT_SYMBOL(RTUtf16AllocTag); + + +RTDECL(int) RTUtf16ReallocTag(PRTUTF16 *ppwsz, size_t cbNew, const char *pszTag) +{ + PRTUTF16 pwszOld = *ppwsz; + cbNew = RT_ALIGN_Z(cbNew, sizeof(RTUTF16)); + if (!cbNew) + { + RTMemFree(pwszOld); + *ppwsz = NULL; + } + else if (pwszOld) + { + PRTUTF16 pwszNew = (PRTUTF16)RTMemReallocTag(pwszOld, cbNew, pszTag); + if (!pwszNew) + return VERR_NO_STR_MEMORY; + pwszNew[cbNew / sizeof(RTUTF16) - 1] = '\0'; + *ppwsz = pwszNew; + } + else + { + PRTUTF16 pwszNew = (PRTUTF16)RTMemAllocTag(cbNew, pszTag); + if (!pwszNew) + return VERR_NO_UTF16_MEMORY; + pwszNew[0] = '\0'; + pwszNew[cbNew / sizeof(RTUTF16) - 1] = '\0'; + *ppwsz = pwszNew; + } + return VINF_SUCCESS; +} +RT_EXPORT_SYMBOL(RTUtf16ReallocTag); + + +RTDECL(void) RTUtf16Free(PRTUTF16 pwszString) +{ + if (pwszString) + RTMemTmpFree(pwszString); +} +RT_EXPORT_SYMBOL(RTUtf16Free); + + +RTDECL(PRTUTF16) RTUtf16DupTag(PCRTUTF16 pwszString, const char *pszTag) +{ + Assert(pwszString); + size_t cb = (RTUtf16Len(pwszString) + 1) * sizeof(RTUTF16); + PRTUTF16 pwsz = (PRTUTF16)RTMemAllocTag(cb, pszTag); + if (pwsz) + memcpy(pwsz, pwszString, cb); + return pwsz; +} +RT_EXPORT_SYMBOL(RTUtf16DupTag); + + +RTDECL(int) RTUtf16DupExTag(PRTUTF16 *ppwszString, PCRTUTF16 pwszString, size_t cwcExtra, const char *pszTag) +{ + Assert(pwszString); + size_t cb = (RTUtf16Len(pwszString) + 1) * sizeof(RTUTF16); + PRTUTF16 pwsz = (PRTUTF16)RTMemAllocTag(cb + cwcExtra * sizeof(RTUTF16), pszTag); + if (pwsz) + { + memcpy(pwsz, pwszString, cb); + *ppwszString = pwsz; + return VINF_SUCCESS; + } + return VERR_NO_MEMORY; +} +RT_EXPORT_SYMBOL(RTUtf16DupExTag); + + +RTDECL(size_t) RTUtf16Len(PCRTUTF16 pwszString) +{ + if (!pwszString) + return 0; + + PCRTUTF16 pwsz = pwszString; + while (*pwsz) + pwsz++; + return pwsz - pwszString; +} +RT_EXPORT_SYMBOL(RTUtf16Len); + + +RTDECL(int) RTUtf16Cmp(register PCRTUTF16 pwsz1, register PCRTUTF16 pwsz2) +{ + if (pwsz1 == pwsz2) + return 0; + if (!pwsz1) + return -1; + if (!pwsz2) + return 1; + + for (;;) + { + register RTUTF16 wcs = *pwsz1; + register int iDiff = wcs - *pwsz2; + if (iDiff || !wcs) + return iDiff; + pwsz1++; + pwsz2++; + } +} +RT_EXPORT_SYMBOL(RTUtf16Cmp); + + +RTDECL(int) RTUtf16CmpUtf8(PCRTUTF16 pwsz1, const char *psz2) +{ + /* + * NULL and empty strings are all the same. + */ + if (!pwsz1) + return !psz2 || !*psz2 ? 0 : -1; + if (!psz2) + return !*pwsz1 ? 0 : 1; + + /* + * Compare with a UTF-8 string by enumerating them char by char. + */ + for (;;) + { + RTUNICP uc1; + int rc = RTUtf16GetCpEx(&pwsz1, &uc1); + AssertRCReturn(rc, 1); + + RTUNICP uc2; + rc = RTStrGetCpEx(&psz2, &uc2); + AssertRCReturn(rc, -1); + if (uc1 == uc2) + { + if (uc1) + continue; + return 0; + } + return uc1 < uc2 ? -1 : 1; + } +} +RT_EXPORT_SYMBOL(RTUtf16CmpUtf8); + + +RTDECL(int) RTUtf16ValidateEncoding(PCRTUTF16 pwsz) +{ + return RTUtf16ValidateEncodingEx(pwsz, RTSTR_MAX, 0); +} +RT_EXPORT_SYMBOL(RTUtf16ValidateEncoding); + + +RTDECL(int) RTUtf16ValidateEncodingEx(PCRTUTF16 pwsz, size_t cwc, uint32_t fFlags) +{ + AssertReturn(!(fFlags & ~(RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED | RTSTR_VALIDATE_ENCODING_EXACT_LENGTH)), + VERR_INVALID_PARAMETER); + AssertPtr(pwsz); + + /* + * Use rtUtf16Length for the job. + */ + size_t cwcActual = 0; /* Shut up cc1plus. */ + size_t cCpsIgnored; + int rc = rtUtf16Length(pwsz, cwc, &cCpsIgnored, &cwcActual); + if (RT_SUCCESS(rc)) + { + if (fFlags & RTSTR_VALIDATE_ENCODING_EXACT_LENGTH) + { + if (fFlags & RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED) + cwcActual++; + if (cwcActual == cwc) + rc = VINF_SUCCESS; + else if (cwcActual < cwc) + rc = VERR_BUFFER_UNDERFLOW; + else + rc = VERR_BUFFER_OVERFLOW; + } + else if ( (fFlags & RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED) + && cwcActual >= cwc) + rc = VERR_BUFFER_OVERFLOW; + } + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16ValidateEncodingEx); + + +RTDECL(bool) RTUtf16IsValidEncoding(PCRTUTF16 pwsz) +{ + int rc = RTUtf16ValidateEncodingEx(pwsz, RTSTR_MAX, 0); + return RT_SUCCESS(rc); +} +RT_EXPORT_SYMBOL(RTUtf16IsValidEncoding); + + +/** + * Helper for RTUtf16PurgeComplementSet. + * + * @returns true if @a Cp is valid, false if not. + * @param Cp The code point to validate. + * @param puszValidPairs Pair of valid code point sets. + * @param cValidPairs Number of pairs. + */ +DECLINLINE(bool) rtUtf16PurgeIsInSet(RTUNICP Cp, PCRTUNICP puszValidPairs, uint32_t cValidPairs) +{ + while (cValidPairs-- > 0) + { + if ( Cp >= puszValidPairs[0] + && Cp <= puszValidPairs[1]) + return true; + puszValidPairs += 2; + } + return false; +} + + +RTDECL(ssize_t) RTUtf16PurgeComplementSet(PRTUTF16 pwsz, PCRTUNICP puszValidPairs, char chReplacement) +{ + AssertReturn(chReplacement && (unsigned)chReplacement < 128, -1); + + /* + * Calc valid pairs and check that we've got an even number. + */ + uint32_t cValidPairs = 0; + while (puszValidPairs[cValidPairs * 2]) + { + AssertReturn(puszValidPairs[cValidPairs * 2 + 1], -1); + AssertMsg(puszValidPairs[cValidPairs * 2] <= puszValidPairs[cValidPairs * 2 + 1], + ("%#x vs %#x\n", puszValidPairs[cValidPairs * 2], puszValidPairs[cValidPairs * 2 + 1])); + cValidPairs++; + } + + /* + * Do the replacing. + */ + ssize_t cReplacements = 0; + for (;;) + { + PRTUTF16 pwszCur = pwsz; + RTUNICP Cp; + int rc = RTUtf16GetCpEx((PCRTUTF16 *)&pwsz, &Cp); + if (RT_SUCCESS(rc)) + { + if (Cp) + { + if (!rtUtf16PurgeIsInSet(Cp, puszValidPairs, cValidPairs)) + { + for (; pwszCur != pwsz; ++pwszCur) + *pwszCur = chReplacement; + ++cReplacements; + } + } + else + break; + } + else + return -1; + } + return cReplacements; +} +RT_EXPORT_SYMBOL(RTUtf16PurgeComplementSet); + + +/** + * Validate the UTF-16BE encoding and calculates the length of an UTF-8 + * encoding. + * + * @returns iprt status code. + * @param pwsz The UTF-16BE string. + * @param cwc The max length of the UTF-16BE string to consider. + * @param pcch Where to store the length (excluding '\\0') of the UTF-8 string. (cch == cb, btw) + * + * @note rtUtf16LittleCalcUtf8Length | s/RT_LE2H_U16/RT_BE2H_U16/g + */ +static int rtUtf16BigCalcUtf8Length(PCRTUTF16 pwsz, size_t cwc, size_t *pcch) +{ + int rc = VINF_SUCCESS; + size_t cch = 0; + while (cwc > 0) + { + RTUTF16 wc = *pwsz++; cwc--; + if (!wc) + break; + wc = RT_BE2H_U16(wc); + if (wc < 0xd800 || wc > 0xdfff) + { + if (wc < 0x80) + cch++; + else if (wc < 0x800) + cch += 2; + else if (wc < 0xfffe) + cch += 3; + else + { + RTStrAssertMsgFailed(("endian indicator! wc=%#x\n", wc)); + rc = VERR_CODE_POINT_ENDIAN_INDICATOR; + break; + } + } + else + { + if (wc >= 0xdc00) + { + RTStrAssertMsgFailed(("Wrong 1st char in surrogate! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + if (cwc <= 0) + { + RTStrAssertMsgFailed(("Invalid length! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + wc = *pwsz++; cwc--; + wc = RT_BE2H_U16(wc); + if (wc < 0xdc00 || wc > 0xdfff) + { + RTStrAssertMsgFailed(("Wrong 2nd char in surrogate! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + cch += 4; + } + } + + + /* done */ + *pcch = cch; + return rc; +} + + +/** + * Validate the UTF-16LE encoding and calculates the length of an UTF-8 + * encoding. + * + * @returns iprt status code. + * @param pwsz The UTF-16LE string. + * @param cwc The max length of the UTF-16LE string to consider. + * @param pcch Where to store the length (excluding '\\0') of the UTF-8 string. (cch == cb, btw) + * + * @note rtUtf16BigCalcUtf8Length | s/RT_BE2H_U16/RT_LE2H_U16/g + */ +static int rtUtf16LittleCalcUtf8Length(PCRTUTF16 pwsz, size_t cwc, size_t *pcch) +{ + int rc = VINF_SUCCESS; + size_t cch = 0; + while (cwc > 0) + { + RTUTF16 wc = *pwsz++; cwc--; + if (!wc) + break; + wc = RT_LE2H_U16(wc); + if (wc < 0xd800 || wc > 0xdfff) + { + if (wc < 0x80) + cch++; + else if (wc < 0x800) + cch += 2; + else if (wc < 0xfffe) + cch += 3; + else + { + RTStrAssertMsgFailed(("endian indicator! wc=%#x\n", wc)); + rc = VERR_CODE_POINT_ENDIAN_INDICATOR; + break; + } + } + else + { + if (wc >= 0xdc00) + { + RTStrAssertMsgFailed(("Wrong 1st char in surrogate! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + if (cwc <= 0) + { + RTStrAssertMsgFailed(("Invalid length! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + wc = *pwsz++; cwc--; + wc = RT_LE2H_U16(wc); + if (wc < 0xdc00 || wc > 0xdfff) + { + RTStrAssertMsgFailed(("Wrong 2nd char in surrogate! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + cch += 4; + } + } + + + /* done */ + *pcch = cch; + return rc; +} + + +/** + * Recodes an valid UTF-16BE string as UTF-8. + * + * @returns iprt status code. + * @param pwsz The UTF-16BE string. + * @param cwc The number of RTUTF16 characters to process from pwsz. The recoding + * will stop when cwc or '\\0' is reached. + * @param psz Where to store the UTF-8 string. + * @param cch The size of the UTF-8 buffer, excluding the terminator. + * @param pcch Where to store the number of octets actually encoded. + * + * @note rtUtf16LittleRecodeAsUtf8 == s/RT_BE2H_U16/RT_LE2H_U16/g + */ +static int rtUtf16BigRecodeAsUtf8(PCRTUTF16 pwsz, size_t cwc, char *psz, size_t cch, size_t *pcch) +{ + unsigned char *pwch = (unsigned char *)psz; + int rc = VINF_SUCCESS; + while (cwc > 0) + { + RTUTF16 wc = *pwsz++; cwc--; + if (!wc) + break; + wc = RT_BE2H_U16(wc); + if (wc < 0xd800 || wc > 0xdfff) + { + if (wc < 0x80) + { + if (RT_UNLIKELY(cch < 1)) + { + RTStrAssertMsgFailed(("Buffer overflow! 1\n")); + rc = VERR_BUFFER_OVERFLOW; + break; + } + cch--; + *pwch++ = (unsigned char)wc; + } + else if (wc < 0x800) + { + if (RT_UNLIKELY(cch < 2)) + { + RTStrAssertMsgFailed(("Buffer overflow! 2\n")); + rc = VERR_BUFFER_OVERFLOW; + break; + } + cch -= 2; + *pwch++ = 0xc0 | (wc >> 6); + *pwch++ = 0x80 | (wc & 0x3f); + } + else if (wc < 0xfffe) + { + if (RT_UNLIKELY(cch < 3)) + { + RTStrAssertMsgFailed(("Buffer overflow! 3\n")); + rc = VERR_BUFFER_OVERFLOW; + break; + } + cch -= 3; + *pwch++ = 0xe0 | (wc >> 12); + *pwch++ = 0x80 | ((wc >> 6) & 0x3f); + *pwch++ = 0x80 | (wc & 0x3f); + } + else + { + RTStrAssertMsgFailed(("endian indicator! wc=%#x\n", wc)); + rc = VERR_CODE_POINT_ENDIAN_INDICATOR; + break; + } + } + else + { + if (wc >= 0xdc00) + { + RTStrAssertMsgFailed(("Wrong 1st char in surrogate! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + if (cwc <= 0) + { + RTStrAssertMsgFailed(("Invalid length! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + RTUTF16 wc2 = *pwsz++; cwc--; + wc2 = RT_BE2H_U16(wc2); + if (wc2 < 0xdc00 || wc2 > 0xdfff) + { + RTStrAssertMsgFailed(("Wrong 2nd char in surrogate! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + uint32_t CodePoint = 0x10000 + + ( ((wc & 0x3ff) << 10) + | (wc2 & 0x3ff)); + if (RT_UNLIKELY(cch < 4)) + { + RTStrAssertMsgFailed(("Buffer overflow! 4\n")); + rc = VERR_BUFFER_OVERFLOW; + break; + } + cch -= 4; + *pwch++ = 0xf0 | (CodePoint >> 18); + *pwch++ = 0x80 | ((CodePoint >> 12) & 0x3f); + *pwch++ = 0x80 | ((CodePoint >> 6) & 0x3f); + *pwch++ = 0x80 | (CodePoint & 0x3f); + } + } + + /* done */ + *pwch = '\0'; + *pcch = (char *)pwch - psz; + return rc; +} + + +/** + * Recodes an valid UTF-16LE string as UTF-8. + * + * @returns iprt status code. + * @param pwsz The UTF-16LE string. + * @param cwc The number of RTUTF16 characters to process from pwsz. The recoding + * will stop when cwc or '\\0' is reached. + * @param psz Where to store the UTF-8 string. + * @param cch The size of the UTF-8 buffer, excluding the terminator. + * @param pcch Where to store the number of octets actually encoded. + * + * @note rtUtf16LittleRecodeAsUtf8 == s/RT_LE2H_U16/RT_GE2H_U16/g + */ +static int rtUtf16LittleRecodeAsUtf8(PCRTUTF16 pwsz, size_t cwc, char *psz, size_t cch, size_t *pcch) +{ + unsigned char *pwch = (unsigned char *)psz; + int rc = VINF_SUCCESS; + while (cwc > 0) + { + RTUTF16 wc = *pwsz++; cwc--; + if (!wc) + break; + wc = RT_LE2H_U16(wc); + if (wc < 0xd800 || wc > 0xdfff) + { + if (wc < 0x80) + { + if (RT_UNLIKELY(cch < 1)) + { + RTStrAssertMsgFailed(("Buffer overflow! 1\n")); + rc = VERR_BUFFER_OVERFLOW; + break; + } + cch--; + *pwch++ = (unsigned char)wc; + } + else if (wc < 0x800) + { + if (RT_UNLIKELY(cch < 2)) + { + RTStrAssertMsgFailed(("Buffer overflow! 2\n")); + rc = VERR_BUFFER_OVERFLOW; + break; + } + cch -= 2; + *pwch++ = 0xc0 | (wc >> 6); + *pwch++ = 0x80 | (wc & 0x3f); + } + else if (wc < 0xfffe) + { + if (RT_UNLIKELY(cch < 3)) + { + RTStrAssertMsgFailed(("Buffer overflow! 3\n")); + rc = VERR_BUFFER_OVERFLOW; + break; + } + cch -= 3; + *pwch++ = 0xe0 | (wc >> 12); + *pwch++ = 0x80 | ((wc >> 6) & 0x3f); + *pwch++ = 0x80 | (wc & 0x3f); + } + else + { + RTStrAssertMsgFailed(("endian indicator! wc=%#x\n", wc)); + rc = VERR_CODE_POINT_ENDIAN_INDICATOR; + break; + } + } + else + { + if (wc >= 0xdc00) + { + RTStrAssertMsgFailed(("Wrong 1st char in surrogate! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + if (cwc <= 0) + { + RTStrAssertMsgFailed(("Invalid length! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + RTUTF16 wc2 = *pwsz++; cwc--; + wc2 = RT_LE2H_U16(wc2); + if (wc2 < 0xdc00 || wc2 > 0xdfff) + { + RTStrAssertMsgFailed(("Wrong 2nd char in surrogate! wc=%#x\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + break; + } + uint32_t CodePoint = 0x10000 + + ( ((wc & 0x3ff) << 10) + | (wc2 & 0x3ff)); + if (RT_UNLIKELY(cch < 4)) + { + RTStrAssertMsgFailed(("Buffer overflow! 4\n")); + rc = VERR_BUFFER_OVERFLOW; + break; + } + cch -= 4; + *pwch++ = 0xf0 | (CodePoint >> 18); + *pwch++ = 0x80 | ((CodePoint >> 12) & 0x3f); + *pwch++ = 0x80 | ((CodePoint >> 6) & 0x3f); + *pwch++ = 0x80 | (CodePoint & 0x3f); + } + } + + /* done */ + *pwch = '\0'; + *pcch = (char *)pwch - psz; + return rc; +} + + + +RTDECL(int) RTUtf16ToUtf8Tag(PCRTUTF16 pwszString, char **ppszString, const char *pszTag) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(ppszString)); + Assert(VALID_PTR(pwszString)); + *ppszString = NULL; + + /* + * Validate the UTF-16 string and calculate the length of the UTF-8 encoding of it. + */ + size_t cch; +#ifdef RT_BIG_ENDIAN + int rc = rtUtf16BigCalcUtf8Length(pwszString, RTSTR_MAX, &cch); +#else + int rc = rtUtf16LittleCalcUtf8Length(pwszString, RTSTR_MAX, &cch); +#endif + if (RT_SUCCESS(rc)) + { + /* + * Allocate buffer and recode it. + */ + char *pszResult = (char *)RTMemAllocTag(cch + 1, pszTag); + if (pszResult) + { +#ifdef RT_BIG_ENDIAN + rc = rtUtf16BigRecodeAsUtf8(pwszString, RTSTR_MAX, pszResult, cch, &cch); +#else + rc = rtUtf16LittleRecodeAsUtf8(pwszString, RTSTR_MAX, pszResult, cch, &cch); +#endif + if (RT_SUCCESS(rc)) + { + *ppszString = pszResult; + return rc; + } + + RTMemFree(pszResult); + } + else + rc = VERR_NO_STR_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16ToUtf8Tag); + + +RTDECL(int) RTUtf16BigToUtf8Tag(PCRTUTF16 pwszString, char **ppszString, const char *pszTag) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(ppszString)); + Assert(VALID_PTR(pwszString)); + *ppszString = NULL; + + /* + * Validate the UTF-16 string and calculate the length of the UTF-8 encoding of it. + */ + size_t cch; + int rc = rtUtf16BigCalcUtf8Length(pwszString, RTSTR_MAX, &cch); + if (RT_SUCCESS(rc)) + { + /* + * Allocate buffer and recode it. + */ + char *pszResult = (char *)RTMemAllocTag(cch + 1, pszTag); + if (pszResult) + { + rc = rtUtf16BigRecodeAsUtf8(pwszString, RTSTR_MAX, pszResult, cch, &cch); + if (RT_SUCCESS(rc)) + { + *ppszString = pszResult; + return rc; + } + + RTMemFree(pszResult); + } + else + rc = VERR_NO_STR_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16BigToUtf8Tag); + + +RTDECL(int) RTUtf16LittleToUtf8Tag(PCRTUTF16 pwszString, char **ppszString, const char *pszTag) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(ppszString)); + Assert(VALID_PTR(pwszString)); + *ppszString = NULL; + + /* + * Validate the UTF-16LE string and calculate the length of the UTF-8 encoding of it. + */ + size_t cch; + int rc = rtUtf16LittleCalcUtf8Length(pwszString, RTSTR_MAX, &cch); + if (RT_SUCCESS(rc)) + { + /* + * Allocate buffer and recode it. + */ + char *pszResult = (char *)RTMemAllocTag(cch + 1, pszTag); + if (pszResult) + { + rc = rtUtf16LittleRecodeAsUtf8(pwszString, RTSTR_MAX, pszResult, cch, &cch); + if (RT_SUCCESS(rc)) + { + *ppszString = pszResult; + return rc; + } + + RTMemFree(pszResult); + } + else + rc = VERR_NO_STR_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16LittleToUtf8Tag); + + +RTDECL(int) RTUtf16ToUtf8ExTag(PCRTUTF16 pwszString, size_t cwcString, char **ppsz, size_t cch, size_t *pcch, const char *pszTag) +{ + /* + * Validate input. + */ + AssertPtr(pwszString); + AssertPtr(ppsz); + AssertPtrNull(pcch); + + /* + * Validate the UTF-16 string and calculate the length of the UTF-8 encoding of it. + */ + size_t cchResult; +#ifdef RT_BIG_ENDIAN + int rc = rtUtf16BigCalcUtf8Length(pwszString, cwcString, &cchResult); +#else + int rc = rtUtf16LittleCalcUtf8Length(pwszString, cwcString, &cchResult); +#endif + if (RT_SUCCESS(rc)) + { + if (pcch) + *pcch = cchResult; + + /* + * Check buffer size / Allocate buffer and recode it. + */ + bool fShouldFree; + char *pszResult; + if (cch > 0 && *ppsz) + { + fShouldFree = false; + if (RT_UNLIKELY(cch <= cchResult)) + return VERR_BUFFER_OVERFLOW; + pszResult = *ppsz; + } + else + { + *ppsz = NULL; + fShouldFree = true; + cch = RT_MAX(cch, cchResult + 1); + pszResult = (char *)RTStrAllocTag(cch, pszTag); + } + if (pszResult) + { +#ifdef RT_BIG_ENDIAN + rc = rtUtf16BigRecodeAsUtf8(pwszString, cwcString, pszResult, cch - 1, &cch); +#else + rc = rtUtf16LittleRecodeAsUtf8(pwszString, cwcString, pszResult, cch - 1, &cch); +#endif + if (RT_SUCCESS(rc)) + { + *ppsz = pszResult; + return rc; + } + + if (fShouldFree) + RTStrFree(pszResult); + } + else + rc = VERR_NO_STR_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16ToUtf8ExTag); + + +RTDECL(int) RTUtf16BigToUtf8ExTag(PCRTUTF16 pwszString, size_t cwcString, char **ppsz, size_t cch, size_t *pcch, const char *pszTag) +{ + /* + * Validate input. + */ + AssertPtr(pwszString); + AssertPtr(ppsz); + AssertPtrNull(pcch); + + /* + * Validate the UTF-16BE string and calculate the length of the UTF-8 encoding of it. + */ + size_t cchResult; + int rc = rtUtf16BigCalcUtf8Length(pwszString, cwcString, &cchResult); + if (RT_SUCCESS(rc)) + { + if (pcch) + *pcch = cchResult; + + /* + * Check buffer size / Allocate buffer and recode it. + */ + bool fShouldFree; + char *pszResult; + if (cch > 0 && *ppsz) + { + fShouldFree = false; + if (RT_UNLIKELY(cch <= cchResult)) + return VERR_BUFFER_OVERFLOW; + pszResult = *ppsz; + } + else + { + *ppsz = NULL; + fShouldFree = true; + cch = RT_MAX(cch, cchResult + 1); + pszResult = (char *)RTStrAllocTag(cch, pszTag); + } + if (pszResult) + { + rc = rtUtf16BigRecodeAsUtf8(pwszString, cwcString, pszResult, cch - 1, &cch); + if (RT_SUCCESS(rc)) + { + *ppsz = pszResult; + return rc; + } + + if (fShouldFree) + RTStrFree(pszResult); + } + else + rc = VERR_NO_STR_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16BigToUtf8ExTag); + + +RTDECL(int) RTUtf16LittleToUtf8ExTag(PCRTUTF16 pwszString, size_t cwcString, char **ppsz, size_t cch, size_t *pcch, + const char *pszTag) +{ + /* + * Validate input. + */ + AssertPtr(pwszString); + AssertPtr(ppsz); + AssertPtrNull(pcch); + + /* + * Validate the UTF-16LE string and calculate the length of the UTF-8 encoding of it. + */ + size_t cchResult; + int rc = rtUtf16LittleCalcUtf8Length(pwszString, cwcString, &cchResult); + if (RT_SUCCESS(rc)) + { + if (pcch) + *pcch = cchResult; + + /* + * Check buffer size / Allocate buffer and recode it. + */ + bool fShouldFree; + char *pszResult; + if (cch > 0 && *ppsz) + { + fShouldFree = false; + if (RT_UNLIKELY(cch <= cchResult)) + return VERR_BUFFER_OVERFLOW; + pszResult = *ppsz; + } + else + { + *ppsz = NULL; + fShouldFree = true; + cch = RT_MAX(cch, cchResult + 1); + pszResult = (char *)RTStrAllocTag(cch, pszTag); + } + if (pszResult) + { + rc = rtUtf16LittleRecodeAsUtf8(pwszString, cwcString, pszResult, cch - 1, &cch); + if (RT_SUCCESS(rc)) + { + *ppsz = pszResult; + return rc; + } + + if (fShouldFree) + RTStrFree(pszResult); + } + else + rc = VERR_NO_STR_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16BigToUtf8ExTag); + + +RTDECL(size_t) RTUtf16CalcUtf8Len(PCRTUTF16 pwsz) +{ + size_t cch; +#ifdef RT_BIG_ENDIAN + int rc = rtUtf16BigCalcUtf8Length(pwsz, RTSTR_MAX, &cch); +#else + int rc = rtUtf16LittleCalcUtf8Length(pwsz, RTSTR_MAX, &cch); +#endif + return RT_SUCCESS(rc) ? cch : 0; +} +RT_EXPORT_SYMBOL(RTUtf16CalcUtf8Len); + + +RTDECL(size_t) RTUtf16BigCalcUtf8Len(PCRTUTF16 pwsz) +{ + size_t cch; + int rc = rtUtf16BigCalcUtf8Length(pwsz, RTSTR_MAX, &cch); + return RT_SUCCESS(rc) ? cch : 0; +} +RT_EXPORT_SYMBOL(RTUtf16BigCalcUtf8Len); + + +RTDECL(size_t) RTUtf16LittleCalcUtf8Len(PCRTUTF16 pwsz) +{ + size_t cch; + int rc = rtUtf16LittleCalcUtf8Length(pwsz, RTSTR_MAX, &cch); + return RT_SUCCESS(rc) ? cch : 0; +} +RT_EXPORT_SYMBOL(RTUtf16LittleCalcUtf8Len); + + +RTDECL(int) RTUtf16CalcUtf8LenEx(PCRTUTF16 pwsz, size_t cwc, size_t *pcch) +{ + size_t cch; +#ifdef RT_BIG_ENDIAN + int rc = rtUtf16BigCalcUtf8Length(pwsz, cwc, &cch); +#else + int rc = rtUtf16LittleCalcUtf8Length(pwsz, cwc, &cch); +#endif + if (pcch) + *pcch = RT_SUCCESS(rc) ? cch : ~(size_t)0; + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16CalcUtf8LenEx); + + +RTDECL(int) RTUtf16BigCalcUtf8LenEx(PCRTUTF16 pwsz, size_t cwc, size_t *pcch) +{ + size_t cch; + int rc = rtUtf16BigCalcUtf8Length(pwsz, cwc, &cch); + if (pcch) + *pcch = RT_SUCCESS(rc) ? cch : ~(size_t)0; + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16BigCalcUtf8LenEx); + + +RTDECL(int) RTUtf16LittleCalcUtf8LenEx(PCRTUTF16 pwsz, size_t cwc, size_t *pcch) +{ + size_t cch; + int rc = rtUtf16LittleCalcUtf8Length(pwsz, cwc, &cch); + if (pcch) + *pcch = RT_SUCCESS(rc) ? cch : ~(size_t)0; + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16LittleCalcUtf8LenEx); + + +RTDECL(RTUNICP) RTUtf16GetCpInternal(PCRTUTF16 pwsz) +{ + const RTUTF16 wc = *pwsz; + + /* simple */ + if (wc < 0xd800 || (wc > 0xdfff && wc < 0xfffe)) + return wc; + if (wc < 0xfffe) + { + /* surrogate pair */ + if (wc < 0xdc00) + { + const RTUTF16 wc2 = pwsz[1]; + if (wc2 >= 0xdc00 && wc2 <= 0xdfff) + { + RTUNICP uc = 0x10000 + (((wc & 0x3ff) << 10) | (wc2 & 0x3ff)); + return uc; + } + + RTStrAssertMsgFailed(("wc=%#08x wc2=%#08x - invalid 2nd char in surrogate pair\n", wc, wc2)); + } + else + RTStrAssertMsgFailed(("wc=%#08x - invalid surrogate pair order\n", wc)); + } + else + RTStrAssertMsgFailed(("wc=%#08x - endian indicator\n", wc)); + return RTUNICP_INVALID; +} +RT_EXPORT_SYMBOL(RTUtf16GetCpInternal); + + +RTDECL(int) RTUtf16GetCpExInternal(PCRTUTF16 *ppwsz, PRTUNICP pCp) +{ + const RTUTF16 wc = **ppwsz; + + /* simple */ + if (wc < 0xd800 || (wc > 0xdfff && wc < 0xfffe)) + { + (*ppwsz)++; + *pCp = wc; + return VINF_SUCCESS; + } + + int rc; + if (wc < 0xfffe) + { + /* surrogate pair */ + if (wc < 0xdc00) + { + const RTUTF16 wc2 = (*ppwsz)[1]; + if (wc2 >= 0xdc00 && wc2 <= 0xdfff) + { + RTUNICP uc = 0x10000 + (((wc & 0x3ff) << 10) | (wc2 & 0x3ff)); + *pCp = uc; + (*ppwsz) += 2; + return VINF_SUCCESS; + } + + RTStrAssertMsgFailed(("wc=%#08x wc2=%#08x - invalid 2nd char in surrogate pair\n", wc, wc2)); + } + else + RTStrAssertMsgFailed(("wc=%#08x - invalid surrogate pair order\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + } + else + { + RTStrAssertMsgFailed(("wc=%#08x - endian indicator\n", wc)); + rc = VERR_CODE_POINT_ENDIAN_INDICATOR; + } + *pCp = RTUNICP_INVALID; + (*ppwsz)++; + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16GetCpExInternal); + + +RTDECL(int) RTUtf16BigGetCpExInternal(PCRTUTF16 *ppwsz, PRTUNICP pCp) +{ + const RTUTF16 wc = RT_BE2H_U16(**ppwsz); + + /* simple */ + if (wc < 0xd800 || (wc > 0xdfff && wc < 0xfffe)) + { + (*ppwsz)++; + *pCp = wc; + return VINF_SUCCESS; + } + + int rc; + if (wc < 0xfffe) + { + /* surrogate pair */ + if (wc < 0xdc00) + { + const RTUTF16 wc2 = RT_BE2H_U16((*ppwsz)[1]); + if (wc2 >= 0xdc00 && wc2 <= 0xdfff) + { + RTUNICP uc = 0x10000 + (((wc & 0x3ff) << 10) | (wc2 & 0x3ff)); + *pCp = uc; + (*ppwsz) += 2; + return VINF_SUCCESS; + } + + RTStrAssertMsgFailed(("wc=%#08x wc2=%#08x - invalid 2nd char in surrogate pair\n", wc, wc2)); + } + else + RTStrAssertMsgFailed(("wc=%#08x - invalid surrogate pair order\n", wc)); + rc = VERR_INVALID_UTF16_ENCODING; + } + else + { + RTStrAssertMsgFailed(("wc=%#08x - endian indicator\n", wc)); + rc = VERR_CODE_POINT_ENDIAN_INDICATOR; + } + *pCp = RTUNICP_INVALID; + (*ppwsz)++; + return rc; +} +RT_EXPORT_SYMBOL(RTUtf16GetCpExInternal); + + +RTDECL(PRTUTF16) RTUtf16PutCpInternal(PRTUTF16 pwsz, RTUNICP CodePoint) +{ + /* simple */ + if ( CodePoint < 0xd800 + || ( CodePoint > 0xdfff + && CodePoint < 0xfffe)) + { + *pwsz++ = (RTUTF16)CodePoint; + return pwsz; + } + + /* surrogate pair */ + if (CodePoint >= 0x10000 && CodePoint <= 0x0010ffff) + { + CodePoint -= 0x10000; + *pwsz++ = 0xd800 | (CodePoint >> 10); + *pwsz++ = 0xdc00 | (CodePoint & 0x3ff); + return pwsz; + } + + /* invalid code point. */ + RTStrAssertMsgFailed(("Invalid codepoint %#x\n", CodePoint)); + *pwsz++ = 0x7f; + return pwsz; +} +RT_EXPORT_SYMBOL(RTUtf16PutCpInternal); + diff --git a/src/VBox/Runtime/common/string/utf-8-case.cpp b/src/VBox/Runtime/common/string/utf-8-case.cpp new file mode 100644 index 00000000..274d92ae --- /dev/null +++ b/src/VBox/Runtime/common/string/utf-8-case.cpp @@ -0,0 +1,348 @@ +/* $Id: utf-8-case.cpp $ */ +/** @file + * IPRT - UTF-8 Case Sensitivity and Folding, Part 1. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/uni.h> +#include <iprt/alloc.h> +#include <iprt/assert.h> +#include <iprt/errcore.h> +#include "internal/string.h" + + + +/** + * Performs a case insensitive string compare between two UTF-8 strings. + * + * This is a simplified compare, as only the simplified lower/upper case folding + * specified by the unicode specs are used. It does not consider character pairs + * as they are used in some languages, just simple upper & lower case compares. + * + * The result is the difference between the mismatching codepoints after they + * both have been lower cased. + * + * If the string encoding is invalid the function will assert (strict builds) + * and use RTStrCmp for the remainder of the string. + * + * @returns < 0 if the first string less than the second string. + * @returns 0 if the first string identical to the second string. + * @returns > 0 if the first string greater than the second string. + * @param psz1 First UTF-8 string. Null is allowed. + * @param psz2 Second UTF-8 string. Null is allowed. + */ +RTDECL(int) RTStrICmp(const char *psz1, const char *psz2) +{ + if (psz1 == psz2) + return 0; + if (!psz1) + return -1; + if (!psz2) + return 1; + + const char *pszStart1 = psz1; + for (;;) + { + /* Get the codepoints */ + RTUNICP uc1; + int rc = RTStrGetCpEx(&psz1, &uc1); + if (RT_FAILURE(rc)) + { + AssertRC(rc); + psz1--; + break; + } + + RTUNICP uc2; + rc = RTStrGetCpEx(&psz2, &uc2); + if (RT_FAILURE(rc)) + { + AssertRC(rc); + psz2--; + psz1 = RTStrPrevCp(pszStart1, psz1); + break; + } + + /* compare */ + int iDiff = uc1 - uc2; + if (iDiff) + { + iDiff = RTUniCpToUpper(uc1) != RTUniCpToUpper(uc2); + if (iDiff) + { + iDiff = RTUniCpToLower(uc1) - RTUniCpToLower(uc2); /* lower case diff last! */ + if (iDiff) + return iDiff; + } + } + + /* hit the terminator? */ + if (!uc1) + return 0; + } + + /* Hit some bad encoding, continue in case sensitive mode. */ + return RTStrCmp(psz1, psz2); +} +RT_EXPORT_SYMBOL(RTStrICmp); + + +/** + * Performs a case insensitive string compare between two UTF-8 strings, given a + * maximum string length. + * + * This is a simplified compare, as only the simplified lower/upper case folding + * specified by the unicode specs are used. It does not consider character pairs + * as they are used in some languages, just simple upper & lower case compares. + * + * The result is the difference between the mismatching codepoints after they + * both have been lower cased. + * + * If the string encoding is invalid the function will assert (strict builds) + * and use RTStrCmp for the remainder of the string. + * + * @returns < 0 if the first string less than the second string. + * @returns 0 if the first string identical to the second string. + * @returns > 0 if the first string greater than the second string. + * @param psz1 First UTF-8 string. Null is allowed. + * @param psz2 Second UTF-8 string. Null is allowed. + * @param cchMax Maximum string length + */ +RTDECL(int) RTStrNICmp(const char *psz1, const char *psz2, size_t cchMax) +{ + if (cchMax == 0) + return 0; + if (psz1 == psz2) + return 0; + if (!psz1) + return -1; + if (!psz2) + return 1; + + for (;;) + { + /* Get the codepoints */ + RTUNICP uc1; + size_t cchMax2 = cchMax; + int rc = RTStrGetCpNEx(&psz1, &cchMax, &uc1); + if (RT_FAILURE(rc)) + { + AssertRC(rc); + psz1--; + cchMax++; + break; + } + + RTUNICP uc2; + rc = RTStrGetCpNEx(&psz2, &cchMax2, &uc2); + if (RT_FAILURE(rc)) + { + AssertRC(rc); + psz2--; + psz1 -= (cchMax - cchMax2 + 1); /* This can't overflow, can it? */ + cchMax = cchMax2 + 1; + break; + } + + /* compare */ + int iDiff = uc1 - uc2; + if (iDiff) + { + iDiff = RTUniCpToUpper(uc1) != RTUniCpToUpper(uc2); + if (iDiff) + { + iDiff = RTUniCpToLower(uc1) - RTUniCpToLower(uc2); /* lower case diff last! */ + if (iDiff) + return iDiff; + } + } + + /* hit the terminator? */ + if (!uc1 || cchMax == 0) + return 0; + } + + /* Hit some bad encoding, continue in case insensitive mode. */ + return RTStrNCmp(psz1, psz2, cchMax); +} +RT_EXPORT_SYMBOL(RTStrNICmp); + + +RTDECL(char *) RTStrIStr(const char *pszHaystack, const char *pszNeedle) +{ + /* Any NULL strings means NULL return. (In the RTStrCmp tradition.) */ + if (!pszHaystack) + return NULL; + if (!pszNeedle) + return NULL; + + /* The empty string matches everything. */ + if (!*pszNeedle) + return (char *)pszHaystack; + + /* + * The search strategy is to pick out the first char of the needle, fold it, + * and match it against the haystack code point by code point. When encountering + * a matching code point we use RTStrNICmp for the remainder (if any) of the needle. + */ + const char * const pszNeedleStart = pszNeedle; + RTUNICP Cp0; + RTStrGetCpEx(&pszNeedle, &Cp0); /* pszNeedle is advanced one code point. */ + size_t const cchNeedle = strlen(pszNeedle); + size_t const cchNeedleCp0= pszNeedle - pszNeedleStart; + RTUNICP const Cp0Lower = RTUniCpToLower(Cp0); + RTUNICP const Cp0Upper = RTUniCpToUpper(Cp0); + if ( Cp0Lower == Cp0Upper + && Cp0Lower == Cp0) + { + /* Cp0 is not a case sensitive char. */ + for (;;) + { + RTUNICP Cp; + RTStrGetCpEx(&pszHaystack, &Cp); + if (!Cp) + break; + if ( Cp == Cp0 + && !RTStrNICmp(pszHaystack, pszNeedle, cchNeedle)) + return (char *)pszHaystack - cchNeedleCp0; + } + } + else if ( Cp0Lower == Cp0 + || Cp0Upper != Cp0) + { + /* Cp0 is case sensitive */ + for (;;) + { + RTUNICP Cp; + RTStrGetCpEx(&pszHaystack, &Cp); + if (!Cp) + break; + if ( ( Cp == Cp0Upper + || Cp == Cp0Lower) + && !RTStrNICmp(pszHaystack, pszNeedle, cchNeedle)) + return (char *)pszHaystack - cchNeedleCp0; + } + } + else + { + /* Cp0 is case sensitive and folds to two difference chars. (paranoia) */ + for (;;) + { + RTUNICP Cp; + RTStrGetCpEx(&pszHaystack, &Cp); + if (!Cp) + break; + if ( ( Cp == Cp0 + || Cp == Cp0Upper + || Cp == Cp0Lower) + && !RTStrNICmp(pszHaystack, pszNeedle, cchNeedle)) + return (char *)pszHaystack - cchNeedleCp0; + } + } + + + return NULL; +} +RT_EXPORT_SYMBOL(RTStrIStr); + + +RTDECL(char *) RTStrToLower(char *psz) +{ + /* + * Loop the code points in the string, converting them one by one. + * + * ASSUMES that the folded code points have an encoding that is equal or + * shorter than the original (this is presently correct). + */ + const char *pszSrc = psz; + char *pszDst = psz; + RTUNICP uc; + do + { + int rc = RTStrGetCpEx(&pszSrc, &uc); + if (RT_SUCCESS(rc)) + { + RTUNICP uc2 = RTUniCpToLower(uc); + if (RT_LIKELY( uc2 == uc + || RTUniCpCalcUtf8Len(uc2) == RTUniCpCalcUtf8Len(uc))) + pszDst = RTStrPutCp(pszDst, uc2); + else + pszDst = RTStrPutCp(pszDst, uc); + } + else + { + /* bad encoding, just copy it quietly (uc == RTUNICP_INVALID (!= 0)). */ + AssertRC(rc); + *pszDst++ = pszSrc[-1]; + } + Assert((uintptr_t)pszDst <= (uintptr_t)pszSrc); + } while (uc != 0); + + return psz; +} +RT_EXPORT_SYMBOL(RTStrToLower); + + +RTDECL(char *) RTStrToUpper(char *psz) +{ + /* + * Loop the code points in the string, converting them one by one. + * + * ASSUMES that the folded code points have an encoding that is equal or + * shorter than the original (this is presently correct). + */ + const char *pszSrc = psz; + char *pszDst = psz; + RTUNICP uc; + do + { + int rc = RTStrGetCpEx(&pszSrc, &uc); + if (RT_SUCCESS(rc)) + { + RTUNICP uc2 = RTUniCpToUpper(uc); + if (RT_LIKELY( uc2 == uc + || RTUniCpCalcUtf8Len(uc2) == RTUniCpCalcUtf8Len(uc))) + pszDst = RTStrPutCp(pszDst, uc2); + else + pszDst = RTStrPutCp(pszDst, uc); + } + else + { + /* bad encoding, just copy it quietly (uc == RTUNICP_INVALID (!= 0)). */ + AssertRC(rc); + *pszDst++ = pszSrc[-1]; + } + Assert((uintptr_t)pszDst <= (uintptr_t)pszSrc); + } while (uc != 0); + + return psz; +} +RT_EXPORT_SYMBOL(RTStrToUpper); + diff --git a/src/VBox/Runtime/common/string/utf-8-case2.cpp b/src/VBox/Runtime/common/string/utf-8-case2.cpp new file mode 100644 index 00000000..5fdd58b0 --- /dev/null +++ b/src/VBox/Runtime/common/string/utf-8-case2.cpp @@ -0,0 +1,118 @@ +/* $Id: utf-8-case2.cpp $ */ +/** @file + * IPRT - UTF-8 Case Sensitivity and Folding, Part 2 (requires unidata-flags.cpp). + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include "internal/iprt.h" + +#include <iprt/uni.h> +#include <iprt/alloc.h> +#include <iprt/assert.h> +#include <iprt/errcore.h> +#include "internal/string.h" + + +RTDECL(bool) RTStrIsCaseFoldable(const char *psz) +{ + /* + * Loop the code points in the string, checking them one by one until we + * find something that can be folded. + */ + RTUNICP uc; + do + { + int rc = RTStrGetCpEx(&psz, &uc); + if (RT_SUCCESS(rc)) + { + if (RTUniCpIsFoldable(uc)) + return true; + } + else + { + /* bad encoding, just skip it quietly (uc == RTUNICP_INVALID (!= 0)). */ + AssertRC(rc); + } + } while (uc != 0); + + return false; +} +RT_EXPORT_SYMBOL(RTStrIsCaseFoldable); + + +RTDECL(bool) RTStrIsUpperCased(const char *psz) +{ + /* + * Check that there are no lower case chars in the string. + */ + RTUNICP uc; + do + { + int rc = RTStrGetCpEx(&psz, &uc); + if (RT_SUCCESS(rc)) + { + if (RTUniCpIsLower(uc)) + return false; + } + else + { + /* bad encoding, just skip it quietly (uc == RTUNICP_INVALID (!= 0)). */ + AssertRC(rc); + } + } while (uc != 0); + + return true; +} +RT_EXPORT_SYMBOL(RTStrIsUpperCased); + + +RTDECL(bool) RTStrIsLowerCased(const char *psz) +{ + /* + * Check that there are no lower case chars in the string. + */ + RTUNICP uc; + do + { + int rc = RTStrGetCpEx(&psz, &uc); + if (RT_SUCCESS(rc)) + { + if (RTUniCpIsUpper(uc)) + return false; + } + else + { + /* bad encoding, just skip it quietly (uc == RTUNICP_INVALID (!= 0)). */ + AssertRC(rc); + } + } while (uc != 0); + + return true; +} +RT_EXPORT_SYMBOL(RTStrIsLowerCased); + diff --git a/src/VBox/Runtime/common/string/utf-8.cpp b/src/VBox/Runtime/common/string/utf-8.cpp new file mode 100644 index 00000000..1cb5f18d --- /dev/null +++ b/src/VBox/Runtime/common/string/utf-8.cpp @@ -0,0 +1,2033 @@ +/* $Id: utf-8.cpp $ */ +/** @file + * IPRT - UTF-8 Decoding. + */ + +/* + * Copyright (C) 2006-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + */ + + +/********************************************************************************************************************************* +* Header Files * +*********************************************************************************************************************************/ +#include <iprt/string.h> +#include <iprt/latin1.h> +#include "internal/iprt.h" + +#include <iprt/uni.h> +#include <iprt/asm.h> +#include <iprt/alloc.h> +#include <iprt/assert.h> +#include <iprt/err.h> +#include "internal/string.h" + + + +/** + * Get get length in code points of a UTF-8 encoded string. + * The string is validated while doing this. + * + * @returns IPRT status code. + * @param psz Pointer to the UTF-8 string. + * @param cch The max length of the string. (btw cch = cb) + * Use RTSTR_MAX if all of the string is to be examined. + * @param pcuc Where to store the length in unicode code points. + * @param pcchActual Where to store the actual size of the UTF-8 string + * on success (cch = cb again). Optional. + */ +DECLHIDDEN(int) rtUtf8Length(const char *psz, size_t cch, size_t *pcuc, size_t *pcchActual) +{ + const unsigned char *puch = (const unsigned char *)psz; + size_t cCodePoints = 0; + while (cch > 0) + { + const unsigned char uch = *puch; + if (!uch) + break; + if (uch & RT_BIT(7)) + { + /* figure sequence length and validate the first byte */ +/** @todo RT_USE_RTC_3629 */ + unsigned cb; + if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5))) == (RT_BIT(7) | RT_BIT(6))) + cb = 2; + else if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4))) == (RT_BIT(7) | RT_BIT(6) | RT_BIT(5))) + cb = 3; + else if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4) | RT_BIT(3))) == (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4))) + cb = 4; + else if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4) | RT_BIT(3) | RT_BIT(2))) == (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4) | RT_BIT(3))) + cb = 5; + else if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4) | RT_BIT(3) | RT_BIT(2) | RT_BIT(1))) == (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4) | RT_BIT(3) | RT_BIT(2))) + cb = 6; + else + { + RTStrAssertMsgFailed(("Invalid UTF-8 first byte: %.*Rhxs\n", RT_MIN(cch, 10), puch)); + return VERR_INVALID_UTF8_ENCODING; + } + + /* check length */ + if (cb > cch) + { + RTStrAssertMsgFailed(("Invalid UTF-8 length: cb=%d cch=%d (%.*Rhxs)\n", cb, cch, RT_MIN(cch, 10), puch)); + return VERR_INVALID_UTF8_ENCODING; + } + + /* validate the rest */ + switch (cb) + { + case 6: + RTStrAssertMsgReturn((puch[5] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("6/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RT_FALL_THRU(); + case 5: + RTStrAssertMsgReturn((puch[4] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("5/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RT_FALL_THRU(); + case 4: + RTStrAssertMsgReturn((puch[3] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("4/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RT_FALL_THRU(); + case 3: + RTStrAssertMsgReturn((puch[2] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("3/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RT_FALL_THRU(); + case 2: + RTStrAssertMsgReturn((puch[1] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("2/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + break; + } + + /* validate the code point. */ + RTUNICP uc; + switch (cb) + { + case 6: + uc = (puch[5] & 0x3f) + | ((RTUNICP)(puch[4] & 0x3f) << 6) + | ((RTUNICP)(puch[3] & 0x3f) << 12) + | ((RTUNICP)(puch[2] & 0x3f) << 18) + | ((RTUNICP)(puch[1] & 0x3f) << 24) + | ((RTUNICP)(uch & 0x01) << 30); + RTStrAssertMsgReturn(uc >= 0x04000000 && uc <= 0x7fffffff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + break; + case 5: + uc = (puch[4] & 0x3f) + | ((RTUNICP)(puch[3] & 0x3f) << 6) + | ((RTUNICP)(puch[2] & 0x3f) << 12) + | ((RTUNICP)(puch[1] & 0x3f) << 18) + | ((RTUNICP)(uch & 0x03) << 24); + RTStrAssertMsgReturn(uc >= 0x00200000 && uc <= 0x03ffffff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + break; + case 4: + uc = (puch[3] & 0x3f) + | ((RTUNICP)(puch[2] & 0x3f) << 6) + | ((RTUNICP)(puch[1] & 0x3f) << 12) + | ((RTUNICP)(uch & 0x07) << 18); + RTStrAssertMsgReturn(uc >= 0x00010000 && uc <= 0x001fffff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + break; + case 3: + uc = (puch[2] & 0x3f) + | ((RTUNICP)(puch[1] & 0x3f) << 6) + | ((RTUNICP)(uch & 0x0f) << 12); + RTStrAssertMsgReturn(uc >= 0x00000800 && uc <= 0x0000fffd, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), + uc == 0xffff || uc == 0xfffe ? VERR_CODE_POINT_ENDIAN_INDICATOR : VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgReturn(uc < 0xd800 || uc > 0xdfff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), VERR_CODE_POINT_SURROGATE); + break; + case 2: + uc = (puch[1] & 0x3f) + | ((RTUNICP)(uch & 0x1f) << 6); + RTStrAssertMsgReturn(uc >= 0x00000080 && uc <= 0x000007ff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + break; + } + + /* advance */ + cch -= cb; + puch += cb; + } + else + { + /* one ASCII byte */ + puch++; + cch--; + } + cCodePoints++; + } + + /* done */ + *pcuc = cCodePoints; + if (pcchActual) + *pcchActual = puch - (unsigned char const *)psz; + return VINF_SUCCESS; +} + + +/** + * Decodes and UTF-8 string into an array of unicode code point. + * + * Since we know the input is valid, we do *not* perform encoding or length checks. + * + * @returns iprt status code. + * @param psz The UTF-8 string to recode. This is a valid encoding. + * @param cch The number of chars (the type char, so bytes if you like) to process of the UTF-8 string. + * The recoding will stop when cch or '\\0' is reached. Pass RTSTR_MAX to process up to '\\0'. + * @param paCps Where to store the code points array. + * @param cCps The number of RTUNICP items the paCps buffer can hold, excluding the terminator ('\\0'). + */ +static int rtUtf8Decode(const char *psz, size_t cch, PRTUNICP paCps, size_t cCps) +{ + int rc = VINF_SUCCESS; + const unsigned char *puch = (const unsigned char *)psz; + PRTUNICP pCp = paCps; + while (cch > 0) + { + /* read the next char and check for terminator. */ + const unsigned char uch = *puch; + if (uch) + { /* we only break once, so consider this the likely branch. */ } + else + break; + + /* check for output overflow */ + if (RT_LIKELY(cCps >= 1)) + { /* likely */ } + else + { + rc = VERR_BUFFER_OVERFLOW; + break; + } + cCps--; + + /* decode and recode the code point */ + if (!(uch & RT_BIT(7))) + { + *pCp++ = uch; + puch++; + cch--; + } +#ifdef RT_STRICT + else if (!(uch & RT_BIT(6))) + AssertMsgFailed(("Internal error!\n")); +#endif + else if (!(uch & RT_BIT(5))) + { + *pCp++ = (puch[1] & 0x3f) + | ((uint16_t)(uch & 0x1f) << 6); + puch += 2; + cch -= 2; + } + else if (!(uch & RT_BIT(4))) + { + *pCp++ = (puch[2] & 0x3f) + | ((uint16_t)(puch[1] & 0x3f) << 6) + | ((uint16_t)(uch & 0x0f) << 12); + puch += 3; + cch -= 3; + } + else if (!(uch & RT_BIT(3))) + { + *pCp++ = (puch[3] & 0x3f) + | ((RTUNICP)(puch[2] & 0x3f) << 6) + | ((RTUNICP)(puch[1] & 0x3f) << 12) + | ((RTUNICP)(uch & 0x07) << 18); + puch += 4; + cch -= 4; + } + else if (!(uch & RT_BIT(2))) + { + *pCp++ = (puch[4] & 0x3f) + | ((RTUNICP)(puch[3] & 0x3f) << 6) + | ((RTUNICP)(puch[2] & 0x3f) << 12) + | ((RTUNICP)(puch[1] & 0x3f) << 18) + | ((RTUNICP)(uch & 0x03) << 24); + puch += 5; + cch -= 6; + } + else + { + Assert(!(uch & RT_BIT(1))); + *pCp++ = (puch[5] & 0x3f) + | ((RTUNICP)(puch[4] & 0x3f) << 6) + | ((RTUNICP)(puch[3] & 0x3f) << 12) + | ((RTUNICP)(puch[2] & 0x3f) << 18) + | ((RTUNICP)(puch[1] & 0x3f) << 24) + | ((RTUNICP)(uch & 0x01) << 30); + puch += 6; + cch -= 6; + } + } + + /* done */ + *pCp = 0; + return rc; +} + + +RTDECL(size_t) RTStrUniLen(const char *psz) +{ + size_t cCodePoints; + int rc = rtUtf8Length(psz, RTSTR_MAX, &cCodePoints, NULL); + return RT_SUCCESS(rc) ? cCodePoints : 0; +} +RT_EXPORT_SYMBOL(RTStrUniLen); + + +RTDECL(int) RTStrUniLenEx(const char *psz, size_t cch, size_t *pcCps) +{ + size_t cCodePoints; + int rc = rtUtf8Length(psz, cch, &cCodePoints, NULL); + if (pcCps) + *pcCps = RT_SUCCESS(rc) ? cCodePoints : 0; + return rc; +} +RT_EXPORT_SYMBOL(RTStrUniLenEx); + + +RTDECL(int) RTStrValidateEncoding(const char *psz) +{ + return RTStrValidateEncodingEx(psz, RTSTR_MAX, 0); +} +RT_EXPORT_SYMBOL(RTStrValidateEncoding); + + +RTDECL(int) RTStrValidateEncodingEx(const char *psz, size_t cch, uint32_t fFlags) +{ + AssertReturn(!(fFlags & ~(RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED | RTSTR_VALIDATE_ENCODING_EXACT_LENGTH)), + VERR_INVALID_PARAMETER); + AssertPtr(psz); + + /* + * Use rtUtf8Length for the job. + */ + size_t cchActual; + size_t cCpsIgnored; + int rc = rtUtf8Length(psz, cch, &cCpsIgnored, &cchActual); + if (RT_SUCCESS(rc)) + { + if (fFlags & RTSTR_VALIDATE_ENCODING_EXACT_LENGTH) + { + if (fFlags & RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED) + cchActual++; + if (cchActual == cch) + rc = VINF_SUCCESS; + else if (cchActual < cch) + rc = VERR_BUFFER_UNDERFLOW; + else + rc = VERR_BUFFER_OVERFLOW; + } + else if ( (fFlags & RTSTR_VALIDATE_ENCODING_ZERO_TERMINATED) + && cchActual >= cch) + rc = VERR_BUFFER_OVERFLOW; + } + return rc; +} +RT_EXPORT_SYMBOL(RTStrValidateEncodingEx); + + +RTDECL(bool) RTStrIsValidEncoding(const char *psz) +{ + int rc = RTStrValidateEncodingEx(psz, RTSTR_MAX, 0); + return RT_SUCCESS(rc); +} +RT_EXPORT_SYMBOL(RTStrIsValidEncoding); + + +RTDECL(size_t) RTStrPurgeEncoding(char *psz) +{ + size_t cErrors = 0; + for (;;) + { + RTUNICP Cp; + int rc = RTStrGetCpEx((const char **)&psz, &Cp); + if (RT_SUCCESS(rc)) + { + if (!Cp) + break; + } + else + { + psz[-1] = '?'; + cErrors++; + } + } + return cErrors; +} +RT_EXPORT_SYMBOL(RTStrPurgeEncoding); + + +/** + * Helper for RTStrPurgeComplementSet. + * + * @returns true if @a Cp is valid, false if not. + * @param Cp The code point to validate. + * @param puszValidPairs Pair of valid code point sets. + * @param cValidPairs Number of pairs. + */ +DECLINLINE(bool) rtStrPurgeIsInSet(RTUNICP Cp, PCRTUNICP puszValidPairs, uint32_t cValidPairs) +{ + while (cValidPairs-- > 0) + { + if ( Cp >= puszValidPairs[0] + && Cp <= puszValidPairs[1]) + return true; + puszValidPairs += 2; + } + return false; +} + + +RTDECL(ssize_t) RTStrPurgeComplementSet(char *psz, PCRTUNICP puszValidPairs, char chReplacement) +{ + AssertReturn(chReplacement && (unsigned)chReplacement < 128, -1); + + /* + * Calc valid pairs and check that we've got an even number. + */ + uint32_t cValidPairs = 0; + while (puszValidPairs[cValidPairs * 2]) + { + AssertReturn(puszValidPairs[cValidPairs * 2 + 1], -1); + AssertMsg(puszValidPairs[cValidPairs * 2] <= puszValidPairs[cValidPairs * 2 + 1], + ("%#x vs %#x\n", puszValidPairs[cValidPairs * 2], puszValidPairs[cValidPairs * 2 + 1])); + cValidPairs++; + } + + /* + * Do the replacing. + */ + ssize_t cReplacements = 0; + for (;;) + { + char *pszCur = psz; + RTUNICP Cp; + int rc = RTStrGetCpEx((const char **)&psz, &Cp); + if (RT_SUCCESS(rc)) + { + if (Cp) + { + if (!rtStrPurgeIsInSet(Cp, puszValidPairs, cValidPairs)) + { + for (; pszCur != psz; ++pszCur) + *pszCur = chReplacement; + ++cReplacements; + } + } + else + break; + } + else + return -1; + } + return cReplacements; +} +RT_EXPORT_SYMBOL(RTStrPurgeComplementSet); + + +RTDECL(int) RTStrToUni(const char *pszString, PRTUNICP *ppaCps) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(pszString)); + Assert(VALID_PTR(ppaCps)); + *ppaCps = NULL; + + /* + * Validate the UTF-8 input and count its code points. + */ + size_t cCps; + int rc = rtUtf8Length(pszString, RTSTR_MAX, &cCps, NULL); + if (RT_SUCCESS(rc)) + { + /* + * Allocate buffer. + */ + PRTUNICP paCps = (PRTUNICP)RTMemAlloc((cCps + 1) * sizeof(RTUNICP)); + if (paCps) + { + /* + * Decode the string. + */ + rc = rtUtf8Decode(pszString, RTSTR_MAX, paCps, cCps); + if (RT_SUCCESS(rc)) + { + *ppaCps = paCps; + return rc; + } + RTMemFree(paCps); + } + else + rc = VERR_NO_CODE_POINT_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTStrToUni); + + +RTDECL(int) RTStrToUniEx(const char *pszString, size_t cchString, PRTUNICP *ppaCps, size_t cCps, size_t *pcCps) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(pszString)); + Assert(VALID_PTR(ppaCps)); + Assert(!pcCps || VALID_PTR(pcCps)); + + /* + * Validate the UTF-8 input and count the code points. + */ + size_t cCpsResult; + int rc = rtUtf8Length(pszString, cchString, &cCpsResult, NULL); + if (RT_SUCCESS(rc)) + { + if (pcCps) + *pcCps = cCpsResult; + + /* + * Check buffer size / Allocate buffer. + */ + bool fShouldFree; + PRTUNICP paCpsResult; + if (cCps > 0 && *ppaCps) + { + fShouldFree = false; + if (cCps <= cCpsResult) + return VERR_BUFFER_OVERFLOW; + paCpsResult = *ppaCps; + } + else + { + *ppaCps = NULL; + fShouldFree = true; + cCps = RT_MAX(cCpsResult + 1, cCps); + paCpsResult = (PRTUNICP)RTMemAlloc(cCps * sizeof(RTUNICP)); + } + if (paCpsResult) + { + /* + * Encode the UTF-16 string. + */ + rc = rtUtf8Decode(pszString, cchString, paCpsResult, cCps - 1); + if (RT_SUCCESS(rc)) + { + *ppaCps = paCpsResult; + return rc; + } + if (fShouldFree) + RTMemFree(paCpsResult); + } + else + rc = VERR_NO_CODE_POINT_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTStrToUniEx); + + +/** + * Calculates the UTF-16 length of a string, validating the encoding while doing so. + * + * @returns IPRT status code. + * @param psz Pointer to the UTF-8 string. + * @param cch The max length of the string. (btw cch = cb) + * @param pcwc Where to store the length of the UTF-16 string as a number + * of RTUTF16 characters. + * @sa rtUtf8CalcUtf16Length + */ +static int rtUtf8CalcUtf16LengthN(const char *psz, size_t cch, size_t *pcwc) +{ + const unsigned char *puch = (const unsigned char *)psz; + size_t cwc = 0; + while (cch > 0) + { + const unsigned char uch = *puch; + if (!(uch & RT_BIT(7))) + { + /* one ASCII byte */ + if (uch) + { + cwc++; + puch++; + cch--; + } + else + break; + } + else + { + /* + * Multibyte sequence is more complicated when we have length + * restrictions on the input. + */ + /* figure sequence length and validate the first byte */ + unsigned cb; + if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5))) == (RT_BIT(7) | RT_BIT(6))) + cb = 2; + else if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4))) == (RT_BIT(7) | RT_BIT(6) | RT_BIT(5))) + cb = 3; + else if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4) | RT_BIT(3))) == (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4))) + cb = 4; + else if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4) | RT_BIT(3) | RT_BIT(2))) == (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4) | RT_BIT(3))) + cb = 5; + else if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4) | RT_BIT(3) | RT_BIT(2) | RT_BIT(1))) == (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4) | RT_BIT(3) | RT_BIT(2))) + cb = 6; + else + { + RTStrAssertMsgFailed(("Invalid UTF-8 first byte: %.*Rhxs\n", RT_MIN(cch, 10), puch)); + return VERR_INVALID_UTF8_ENCODING; + } + + /* check length */ + if (cb > cch) + { + RTStrAssertMsgFailed(("Invalid UTF-8 length: cb=%d cch=%d (%.*Rhxs)\n", cb, cch, RT_MIN(cch, 10), puch)); + return VERR_INVALID_UTF8_ENCODING; + } + + /* validate the rest */ + switch (cb) + { + case 6: + RTStrAssertMsgReturn((puch[5] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("6/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RT_FALL_THRU(); + case 5: + RTStrAssertMsgReturn((puch[4] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("5/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RT_FALL_THRU(); + case 4: + RTStrAssertMsgReturn((puch[3] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("4/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RT_FALL_THRU(); + case 3: + RTStrAssertMsgReturn((puch[2] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("3/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RT_FALL_THRU(); + case 2: + RTStrAssertMsgReturn((puch[1] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("2/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + break; + } + + /* validate the code point. */ + RTUNICP uc; + switch (cb) + { + case 6: + uc = (puch[5] & 0x3f) + | ((RTUNICP)(puch[4] & 0x3f) << 6) + | ((RTUNICP)(puch[3] & 0x3f) << 12) + | ((RTUNICP)(puch[2] & 0x3f) << 18) + | ((RTUNICP)(puch[1] & 0x3f) << 24) + | ((RTUNICP)(uch & 0x01) << 30); + RTStrAssertMsgReturn(uc >= 0x04000000 && uc <= 0x7fffffff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgFailed(("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch)); + return VERR_CANT_RECODE_AS_UTF16; + case 5: + uc = (puch[4] & 0x3f) + | ((RTUNICP)(puch[3] & 0x3f) << 6) + | ((RTUNICP)(puch[2] & 0x3f) << 12) + | ((RTUNICP)(puch[1] & 0x3f) << 18) + | ((RTUNICP)(uch & 0x03) << 24); + RTStrAssertMsgReturn(uc >= 0x00200000 && uc <= 0x03ffffff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgFailed(("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch)); + return VERR_CANT_RECODE_AS_UTF16; + case 4: + uc = (puch[3] & 0x3f) + | ((RTUNICP)(puch[2] & 0x3f) << 6) + | ((RTUNICP)(puch[1] & 0x3f) << 12) + | ((RTUNICP)(uch & 0x07) << 18); + RTStrAssertMsgReturn(uc >= 0x00010000 && uc <= 0x001fffff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgReturn(uc <= 0x0010ffff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), VERR_CANT_RECODE_AS_UTF16); + cwc++; + break; + case 3: + uc = (puch[2] & 0x3f) + | ((RTUNICP)(puch[1] & 0x3f) << 6) + | ((RTUNICP)(uch & 0x0f) << 12); + RTStrAssertMsgReturn(uc >= 0x00000800 && uc <= 0x0000fffd, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), + uc == 0xffff || uc == 0xfffe ? VERR_CODE_POINT_ENDIAN_INDICATOR : VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgReturn(uc < 0xd800 || uc > 0xdfff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), VERR_CODE_POINT_SURROGATE); + break; + case 2: + uc = (puch[1] & 0x3f) + | ((RTUNICP)(uch & 0x1f) << 6); + RTStrAssertMsgReturn(uc >= 0x00000080 && uc <= 0x000007ff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + break; + } + + /* advance */ + cch -= cb; + puch += cb; + cwc++; + } + } + + /* done */ + *pcwc = cwc; + return VINF_SUCCESS; +} + + +/** + * Calculates the UTF-16 length of a string, validating the encoding while doing so. + * + * @returns IPRT status code. + * @param psz Pointer to the UTF-8 string. + * @param pcwc Where to store the length of the UTF-16 string as a number + * of RTUTF16 characters. + * @sa rtUtf8CalcUtf16LengthN + */ +static int rtUtf8CalcUtf16Length(const char *psz, size_t *pcwc) +{ + const unsigned char *puch = (const unsigned char *)psz; + size_t cwc = 0; + for (;;) + { + const unsigned char uch = *puch; + if (!(uch & RT_BIT(7))) + { + /* one ASCII byte */ + if (uch) + { + cwc++; + puch++; + } + else + break; + } + else + { + /* + * Figure sequence length, implicitly validate the first byte. + * Then validate the additional bytes. + * Finally validate the code point. + */ + unsigned cb; + RTUNICP uc; + if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5))) == (RT_BIT(7) | RT_BIT(6))) + { + RTStrAssertMsgReturn((puch[1] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("2/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + uc = (puch[1] & 0x3f) + | ((RTUNICP)(uch & 0x1f) << 6); + RTStrAssertMsgReturn(uc >= 0x00000080 && uc <= 0x000007ff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + cb = 2; + } + else if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4))) == (RT_BIT(7) | RT_BIT(6) | RT_BIT(5))) + { + RTStrAssertMsgReturn((puch[1] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("2/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgReturn((puch[2] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("3/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + uc = (puch[2] & 0x3f) + | ((RTUNICP)(puch[1] & 0x3f) << 6) + | ((RTUNICP)(uch & 0x0f) << 12); + RTStrAssertMsgReturn(uc >= 0x00000800 && uc <= 0x0000fffd, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), + uc == 0xffff || uc == 0xfffe ? VERR_CODE_POINT_ENDIAN_INDICATOR : VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgReturn(uc < 0xd800 || uc > 0xdfff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), VERR_CODE_POINT_SURROGATE); + cb = 3; + } + else if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4) | RT_BIT(3))) == (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4))) + { + RTStrAssertMsgReturn((puch[1] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("2/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgReturn((puch[2] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("3/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgReturn((puch[3] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("4/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + uc = (puch[3] & 0x3f) + | ((RTUNICP)(puch[2] & 0x3f) << 6) + | ((RTUNICP)(puch[1] & 0x3f) << 12) + | ((RTUNICP)(uch & 0x07) << 18); + RTStrAssertMsgReturn(uc >= 0x00010000 && uc <= 0x001fffff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgReturn(uc <= 0x0010ffff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), VERR_CANT_RECODE_AS_UTF16); + cwc++; + cb = 4; + } + else if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4) | RT_BIT(3) | RT_BIT(2))) == (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4) | RT_BIT(3))) + { + RTStrAssertMsgReturn((puch[1] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("2/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgReturn((puch[2] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("3/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgReturn((puch[3] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("4/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgReturn((puch[4] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("5/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + uc = (puch[4] & 0x3f) + | ((RTUNICP)(puch[3] & 0x3f) << 6) + | ((RTUNICP)(puch[2] & 0x3f) << 12) + | ((RTUNICP)(puch[1] & 0x3f) << 18) + | ((RTUNICP)(uch & 0x03) << 24); + RTStrAssertMsgReturn(uc >= 0x00200000 && uc <= 0x03ffffff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgFailed(("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch)); + return VERR_CANT_RECODE_AS_UTF16; + //cb = 5; + } + else if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4) | RT_BIT(3) | RT_BIT(2) | RT_BIT(1))) == (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4) | RT_BIT(3) | RT_BIT(2))) + { + RTStrAssertMsgReturn((puch[1] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("2/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgReturn((puch[2] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("3/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgReturn((puch[3] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("4/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgReturn((puch[4] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("5/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgReturn((puch[5] & (RT_BIT(7) | RT_BIT(6))) == RT_BIT(7), ("6/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + uc = (puch[5] & 0x3f) + | ((RTUNICP)(puch[4] & 0x3f) << 6) + | ((RTUNICP)(puch[3] & 0x3f) << 12) + | ((RTUNICP)(puch[2] & 0x3f) << 18) + | ((RTUNICP)(puch[1] & 0x3f) << 24) + | ((RTUNICP)(uch & 0x01) << 30); + RTStrAssertMsgReturn(uc >= 0x04000000 && uc <= 0x7fffffff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch), VERR_INVALID_UTF8_ENCODING); + RTStrAssertMsgFailed(("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, cch), puch)); + return VERR_CANT_RECODE_AS_UTF16; + //cb = 6; + } + else + { + RTStrAssertMsgFailed(("Invalid UTF-8 first byte: %.*Rhxs\n", RT_MIN(cch, 10), puch)); + return VERR_INVALID_UTF8_ENCODING; + } + + /* advance */ + puch += cb; + cwc++; + } + } + + /* done */ + *pcwc = cwc; + return VINF_SUCCESS; +} + + + +/** + * Recodes a valid UTF-8 string as UTF-16. + * + * Since we know the input is valid, we do *not* perform encoding or length checks. + * + * @returns iprt status code. + * @param psz The UTF-8 string to recode. This is a valid encoding. + * @param cch The number of chars (the type char, so bytes if you like) to process of the UTF-8 string. + * The recoding will stop when cch or '\\0' is reached. Pass RTSTR_MAX to process up to '\\0'. + * @param pwsz Where to store the UTF-16 string. + * @param cwc The number of RTUTF16 items the pwsz buffer can hold, excluding the terminator ('\\0'). + * + * @note rtUtf8RecodeAsUtf16Big is a duplicate with RT_H2BE_U16 applied. + */ +static int rtUtf8RecodeAsUtf16(const char *psz, size_t cch, PRTUTF16 pwsz, size_t cwc) +{ + int rc = VINF_SUCCESS; + const unsigned char *puch = (const unsigned char *)psz; + PRTUTF16 pwc = pwsz; + while (cch > 0) + { + /* read the next char and check for terminator. */ + const unsigned char uch = *puch; + if (uch) + { /* we only break once, so consider this the likely branch. */ } + else + break; + + /* check for output overflow */ + if (RT_LIKELY(cwc >= 1)) + { /* likely */ } + else + { + rc = VERR_BUFFER_OVERFLOW; + break; + } + cwc--; + + /* decode and recode the code point */ + if (!(uch & RT_BIT(7))) + { + *pwc++ = uch; + puch++; + cch--; + } + else if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5))) == (RT_BIT(7) | RT_BIT(6))) + { + uint16_t uc = (puch[1] & 0x3f) + | ((uint16_t)(uch & 0x1f) << 6); + *pwc++ = uc; + puch += 2; + cch -= 2; + } + else if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4))) == (RT_BIT(7) | RT_BIT(6) | RT_BIT(5))) + { + uint16_t uc = (puch[2] & 0x3f) + | ((uint16_t)(puch[1] & 0x3f) << 6) + | ((uint16_t)(uch & 0x0f) << 12); + *pwc++ = uc; + puch += 3; + cch -= 3; + } + else + { + /* generate surrogate pair */ + Assert((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4) | RT_BIT(3))) == (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4))); + RTUNICP uc = (puch[3] & 0x3f) + | ((RTUNICP)(puch[2] & 0x3f) << 6) + | ((RTUNICP)(puch[1] & 0x3f) << 12) + | ((RTUNICP)(uch & 0x07) << 18); + if (RT_UNLIKELY(cwc < 1)) + { + rc = VERR_BUFFER_OVERFLOW; + break; + } + cwc--; + + uc -= 0x10000; + *pwc++ = 0xd800 | (uc >> 10); + *pwc++ = 0xdc00 | (uc & 0x3ff); + puch += 4; + cch -= 4; + } + } + + /* done */ + *pwc = '\0'; + return rc; +} + + +/** + * Recodes a valid UTF-8 string as UTF-16BE. + * + * Since we know the input is valid, we do *not* perform encoding or length checks. + * + * @returns iprt status code. + * @param psz The UTF-8 string to recode. This is a valid encoding. + * @param cch The number of chars (the type char, so bytes if you like) to process of the UTF-8 string. + * The recoding will stop when cch or '\\0' is reached. Pass RTSTR_MAX to process up to '\\0'. + * @param pwsz Where to store the UTF-16BE string. + * @param cwc The number of RTUTF16 items the pwsz buffer can hold, excluding the terminator ('\\0'). + * + * @note This is a copy of rtUtf8RecodeAsUtf16 with RT_H2BE_U16 applied. + */ +static int rtUtf8RecodeAsUtf16Big(const char *psz, size_t cch, PRTUTF16 pwsz, size_t cwc) +{ + int rc = VINF_SUCCESS; + const unsigned char *puch = (const unsigned char *)psz; + PRTUTF16 pwc = pwsz; + while (cch > 0) + { + /* read the next char and check for terminator. */ + const unsigned char uch = *puch; + if (uch) + { /* we only break once, so consider this the likely branch. */ } + else + break; + + /* check for output overflow */ + if (RT_LIKELY(cwc >= 1)) + { /* likely */ } + else + { + rc = VERR_BUFFER_OVERFLOW; + break; + } + cwc--; + + /* decode and recode the code point */ + if (!(uch & RT_BIT(7))) + { + *pwc++ = RT_H2BE_U16((RTUTF16)uch); + puch++; + cch--; + } + else if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5))) == (RT_BIT(7) | RT_BIT(6))) + { + uint16_t uc = (puch[1] & 0x3f) + | ((uint16_t)(uch & 0x1f) << 6); + *pwc++ = RT_H2BE_U16(uc); + puch += 2; + cch -= 2; + } + else if ((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4))) == (RT_BIT(7) | RT_BIT(6) | RT_BIT(5))) + { + uint16_t uc = (puch[2] & 0x3f) + | ((uint16_t)(puch[1] & 0x3f) << 6) + | ((uint16_t)(uch & 0x0f) << 12); + *pwc++ = RT_H2BE_U16(uc); + puch += 3; + cch -= 3; + } + else + { + /* generate surrogate pair */ + Assert((uch & (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4) | RT_BIT(3))) == (RT_BIT(7) | RT_BIT(6) | RT_BIT(5) | RT_BIT(4))); + RTUNICP uc = (puch[3] & 0x3f) + | ((RTUNICP)(puch[2] & 0x3f) << 6) + | ((RTUNICP)(puch[1] & 0x3f) << 12) + | ((RTUNICP)(uch & 0x07) << 18); + if (RT_UNLIKELY(cwc < 1)) + { + rc = VERR_BUFFER_OVERFLOW; + break; + } + cwc--; + + uc -= 0x10000; + *pwc++ = RT_H2BE_U16(0xd800 | (uc >> 10)); + *pwc++ = RT_H2BE_U16(0xdc00 | (uc & 0x3ff)); + puch += 4; + cch -= 4; + } + } + + /* done */ + *pwc = '\0'; + return rc; +} + + +RTDECL(int) RTStrToUtf16Tag(const char *pszString, PRTUTF16 *ppwszString, const char *pszTag) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(ppwszString)); + Assert(VALID_PTR(pszString)); + *ppwszString = NULL; + + /* + * Validate the UTF-8 input and calculate the length of the UTF-16 string. + */ + size_t cwc; + int rc = rtUtf8CalcUtf16Length(pszString, &cwc); + if (RT_SUCCESS(rc)) + { + /* + * Allocate buffer. + */ + PRTUTF16 pwsz = (PRTUTF16)RTMemAllocTag((cwc + 1) * sizeof(RTUTF16), pszTag); + if (pwsz) + { + /* + * Encode the UTF-16 string. + */ + rc = rtUtf8RecodeAsUtf16(pszString, RTSTR_MAX, pwsz, cwc); + if (RT_SUCCESS(rc)) + { + *ppwszString = pwsz; + return rc; + } + RTMemFree(pwsz); + } + else + rc = VERR_NO_UTF16_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTStrToUtf16Tag); + + +RTDECL(int) RTStrToUtf16BigTag(const char *pszString, PRTUTF16 *ppwszString, const char *pszTag) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(ppwszString)); + Assert(VALID_PTR(pszString)); + *ppwszString = NULL; + + /* + * Validate the UTF-8 input and calculate the length of the UTF-16 string. + */ + size_t cwc; + int rc = rtUtf8CalcUtf16Length(pszString, &cwc); + if (RT_SUCCESS(rc)) + { + /* + * Allocate buffer. + */ + PRTUTF16 pwsz = (PRTUTF16)RTMemAllocTag((cwc + 1) * sizeof(RTUTF16), pszTag); + if (pwsz) + { + /* + * Encode the UTF-16 string. + */ + rc = rtUtf8RecodeAsUtf16Big(pszString, RTSTR_MAX, pwsz, cwc); + if (RT_SUCCESS(rc)) + { + *ppwszString = pwsz; + return rc; + } + RTMemFree(pwsz); + } + else + rc = VERR_NO_UTF16_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTStrToUtf16BigTag); + + +RTDECL(int) RTStrToUtf16ExTag(const char *pszString, size_t cchString, + PRTUTF16 *ppwsz, size_t cwc, size_t *pcwc, const char *pszTag) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(pszString)); + Assert(VALID_PTR(ppwsz)); + Assert(!pcwc || VALID_PTR(pcwc)); + + /* + * Validate the UTF-8 input and calculate the length of the UTF-16 string. + */ + size_t cwcResult; + int rc; + if (cchString != RTSTR_MAX) + rc = rtUtf8CalcUtf16LengthN(pszString, cchString, &cwcResult); + else + rc = rtUtf8CalcUtf16Length(pszString, &cwcResult); + if (RT_SUCCESS(rc)) + { + if (pcwc) + *pcwc = cwcResult; + + /* + * Check buffer size / Allocate buffer. + */ + bool fShouldFree; + PRTUTF16 pwszResult; + if (cwc > 0 && *ppwsz) + { + fShouldFree = false; + if (cwc <= cwcResult) + return VERR_BUFFER_OVERFLOW; + pwszResult = *ppwsz; + } + else + { + *ppwsz = NULL; + fShouldFree = true; + cwc = RT_MAX(cwcResult + 1, cwc); + pwszResult = (PRTUTF16)RTMemAllocTag(cwc * sizeof(RTUTF16), pszTag); + } + if (pwszResult) + { + /* + * Encode the UTF-16 string. + */ + rc = rtUtf8RecodeAsUtf16(pszString, cchString, pwszResult, cwc - 1); + if (RT_SUCCESS(rc)) + { + *ppwsz = pwszResult; + return rc; + } + if (fShouldFree) + RTMemFree(pwszResult); + } + else + rc = VERR_NO_UTF16_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTStrToUtf16ExTag); + + +RTDECL(int) RTStrToUtf16BigExTag(const char *pszString, size_t cchString, + PRTUTF16 *ppwsz, size_t cwc, size_t *pcwc, const char *pszTag) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(pszString)); + Assert(VALID_PTR(ppwsz)); + Assert(!pcwc || VALID_PTR(pcwc)); + + /* + * Validate the UTF-8 input and calculate the length of the UTF-16 string. + */ + size_t cwcResult; + int rc; + if (cchString != RTSTR_MAX) + rc = rtUtf8CalcUtf16LengthN(pszString, cchString, &cwcResult); + else + rc = rtUtf8CalcUtf16Length(pszString, &cwcResult); + if (RT_SUCCESS(rc)) + { + if (pcwc) + *pcwc = cwcResult; + + /* + * Check buffer size / Allocate buffer. + */ + bool fShouldFree; + PRTUTF16 pwszResult; + if (cwc > 0 && *ppwsz) + { + fShouldFree = false; + if (cwc <= cwcResult) + return VERR_BUFFER_OVERFLOW; + pwszResult = *ppwsz; + } + else + { + *ppwsz = NULL; + fShouldFree = true; + cwc = RT_MAX(cwcResult + 1, cwc); + pwszResult = (PRTUTF16)RTMemAllocTag(cwc * sizeof(RTUTF16), pszTag); + } + if (pwszResult) + { + /* + * Encode the UTF-16BE string. + */ + rc = rtUtf8RecodeAsUtf16Big(pszString, cchString, pwszResult, cwc - 1); + if (RT_SUCCESS(rc)) + { + *ppwsz = pwszResult; + return rc; + } + if (fShouldFree) + RTMemFree(pwszResult); + } + else + rc = VERR_NO_UTF16_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTStrToUtf16BigExTag); + + +RTDECL(size_t) RTStrCalcUtf16Len(const char *psz) +{ + size_t cwc; + int rc = rtUtf8CalcUtf16Length(psz, &cwc); + return RT_SUCCESS(rc) ? cwc : 0; +} +RT_EXPORT_SYMBOL(RTStrCalcUtf16Len); + + +RTDECL(int) RTStrCalcUtf16LenEx(const char *psz, size_t cch, size_t *pcwc) +{ + size_t cwc; + int rc; + if (cch != RTSTR_MAX) + rc = rtUtf8CalcUtf16LengthN(psz, cch, &cwc); + else + rc = rtUtf8CalcUtf16Length(psz, &cwc); + if (pcwc) + *pcwc = RT_SUCCESS(rc) ? cwc : ~(size_t)0; + return rc; +} +RT_EXPORT_SYMBOL(RTStrCalcUtf16LenEx); + + +/** + * Calculates the length of the UTF-8 encoding of a Latin-1 string. + * + * @returns iprt status code. + * @param psz The Latin-1 string. + * @param cchIn The max length of the Latin-1 string to consider. + * @param pcch Where to store the length (excluding '\\0') of the UTF-8 string. (cch == cb, btw) + */ +static int rtLatin1CalcUtf8Length(const char *psz, size_t cchIn, size_t *pcch) +{ + size_t cch = 0; + for (;;) + { + RTUNICP Cp; + int rc = RTLatin1GetCpNEx(&psz, &cchIn, &Cp); + if (Cp == 0 || rc == VERR_END_OF_STRING) + break; + if (RT_FAILURE(rc)) + return rc; + cch += RTStrCpSize(Cp); /* cannot fail */ + } + + /* done */ + *pcch = cch; + return VINF_SUCCESS; +} + + +/** + * Recodes a Latin-1 string as UTF-8. + * + * @returns iprt status code. + * @param pszIn The Latin-1 string. + * @param cchIn The number of characters to process from psz. The recoding + * will stop when cch or '\\0' is reached. + * @param psz Where to store the UTF-8 string. + * @param cch The size of the UTF-8 buffer, excluding the terminator. + */ +static int rtLatin1RecodeAsUtf8(const char *pszIn, size_t cchIn, char *psz, size_t cch) +{ + int rc; + for (;;) + { + RTUNICP Cp; + size_t cchCp; + rc = RTLatin1GetCpNEx(&pszIn, &cchIn, &Cp); + if (Cp == 0 || RT_FAILURE(rc)) + break; + cchCp = RTStrCpSize(Cp); + if (RT_UNLIKELY(cch < cchCp)) + { + RTStrAssertMsgFailed(("Buffer overflow! 1\n")); + rc = VERR_BUFFER_OVERFLOW; + break; + } + cch -= cchCp; + psz = RTStrPutCp(psz, Cp); + } + + /* done */ + if (rc == VERR_END_OF_STRING) + rc = VINF_SUCCESS; + *psz = '\0'; + return rc; +} + + + +RTDECL(int) RTLatin1ToUtf8Tag(const char *pszString, char **ppszString, const char *pszTag) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(ppszString)); + Assert(VALID_PTR(pszString)); + *ppszString = NULL; + + /* + * Calculate the length of the UTF-8 encoding of the Latin-1 string. + */ + size_t cch; + int rc = rtLatin1CalcUtf8Length(pszString, RTSTR_MAX, &cch); + if (RT_SUCCESS(rc)) + { + /* + * Allocate buffer and recode it. + */ + char *pszResult = (char *)RTMemAllocTag(cch + 1, pszTag); + if (pszResult) + { + rc = rtLatin1RecodeAsUtf8(pszString, RTSTR_MAX, pszResult, cch); + if (RT_SUCCESS(rc)) + { + *ppszString = pszResult; + return rc; + } + + RTMemFree(pszResult); + } + else + rc = VERR_NO_STR_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTLatin1ToUtf8Tag); + + +RTDECL(int) RTLatin1ToUtf8ExTag(const char *pszString, size_t cchString, char **ppsz, size_t cch, size_t *pcch, const char *pszTag) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(pszString)); + Assert(VALID_PTR(ppsz)); + Assert(!pcch || VALID_PTR(pcch)); + + /* + * Calculate the length of the UTF-8 encoding of the Latin-1 string. + */ + size_t cchResult; + int rc = rtLatin1CalcUtf8Length(pszString, cchString, &cchResult); + if (RT_SUCCESS(rc)) + { + if (pcch) + *pcch = cchResult; + + /* + * Check buffer size / Allocate buffer and recode it. + */ + bool fShouldFree; + char *pszResult; + if (cch > 0 && *ppsz) + { + fShouldFree = false; + if (RT_UNLIKELY(cch <= cchResult)) + return VERR_BUFFER_OVERFLOW; + pszResult = *ppsz; + } + else + { + *ppsz = NULL; + fShouldFree = true; + cch = RT_MAX(cch, cchResult + 1); + pszResult = (char *)RTStrAllocTag(cch, pszTag); + } + if (pszResult) + { + rc = rtLatin1RecodeAsUtf8(pszString, cchString, pszResult, cch - 1); + if (RT_SUCCESS(rc)) + { + *ppsz = pszResult; + return rc; + } + + if (fShouldFree) + RTStrFree(pszResult); + } + else + rc = VERR_NO_STR_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTLatin1ToUtf8ExTag); + + +RTDECL(size_t) RTLatin1CalcUtf8Len(const char *psz) +{ + size_t cch; + int rc = rtLatin1CalcUtf8Length(psz, RTSTR_MAX, &cch); + return RT_SUCCESS(rc) ? cch : 0; +} +RT_EXPORT_SYMBOL(RTLatin1CalcUtf8Len); + + +RTDECL(int) RTLatin1CalcUtf8LenEx(const char *psz, size_t cchIn, size_t *pcch) +{ + size_t cch; + int rc = rtLatin1CalcUtf8Length(psz, cchIn, &cch); + if (pcch) + *pcch = RT_SUCCESS(rc) ? cch : ~(size_t)0; + return rc; +} +RT_EXPORT_SYMBOL(RTLatin1CalcUtf8LenEx); + + +/** + * Calculates the Latin-1 length of a string, validating the encoding while + * doing so. + * + * @returns IPRT status code. + * @param psz Pointer to the UTF-8 string. + * @param cchIn The max length of the string. (btw cch = cb) + * Use RTSTR_MAX if all of the string is to be examined. + * @param pcch Where to store the length of the Latin-1 string in bytes. + */ +static int rtUtf8CalcLatin1Length(const char *psz, size_t cchIn, size_t *pcch) +{ + size_t cch = 0; + for (;;) + { + RTUNICP Cp; + size_t cchCp; + int rc = RTStrGetCpNEx(&psz, &cchIn, &Cp); + if (Cp == 0 || rc == VERR_END_OF_STRING) + break; + if (RT_FAILURE(rc)) + return rc; + cchCp = RTLatin1CpSize(Cp); + if (cchCp == 0) + return VERR_NO_TRANSLATION; + cch += cchCp; + } + + /* done */ + *pcch = cch; + return VINF_SUCCESS; +} + + +/** + * Recodes a valid UTF-8 string as Latin-1. + * + * Since we know the input is valid, we do *not* perform encoding or length checks. + * + * @returns iprt status code. + * @param pszIn The UTF-8 string to recode. This is a valid encoding. + * @param cchIn The number of chars (the type char, so bytes if you like) to process of the UTF-8 string. + * The recoding will stop when cch or '\\0' is reached. Pass RTSTR_MAX to process up to '\\0'. + * @param psz Where to store the Latin-1 string. + * @param cch The number of characters the pszOut buffer can hold, excluding the terminator ('\\0'). + */ +static int rtUtf8RecodeAsLatin1(const char *pszIn, size_t cchIn, char *psz, size_t cch) +{ + int rc; + for (;;) + { + RTUNICP Cp; + size_t cchCp; + rc = RTStrGetCpNEx(&pszIn, &cchIn, &Cp); + if (Cp == 0 || RT_FAILURE(rc)) + break; + cchCp = RTLatin1CpSize(Cp); + if (RT_UNLIKELY(cch < cchCp)) + { + RTStrAssertMsgFailed(("Buffer overflow! 1\n")); + rc = VERR_BUFFER_OVERFLOW; + break; + } + cch -= cchCp; + psz = RTLatin1PutCp(psz, Cp); + } + + /* done */ + if (rc == VERR_END_OF_STRING) + rc = VINF_SUCCESS; + *psz = '\0'; + return rc; +} + + + +RTDECL(int) RTStrToLatin1Tag(const char *pszString, char **ppszString, const char *pszTag) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(ppszString)); + Assert(VALID_PTR(pszString)); + *ppszString = NULL; + + /* + * Validate the UTF-8 input and calculate the length of the Latin-1 string. + */ + size_t cch; + int rc = rtUtf8CalcLatin1Length(pszString, RTSTR_MAX, &cch); + if (RT_SUCCESS(rc)) + { + /* + * Allocate buffer. + */ + char *psz = (char *)RTMemAllocTag(cch + 1, pszTag); + if (psz) + { + /* + * Encode the UTF-16 string. + */ + rc = rtUtf8RecodeAsLatin1(pszString, RTSTR_MAX, psz, cch); + if (RT_SUCCESS(rc)) + { + *ppszString = psz; + return rc; + } + RTMemFree(psz); + } + else + rc = VERR_NO_STR_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTStrToLatin1Tag); + + +RTDECL(int) RTStrToLatin1ExTag(const char *pszString, size_t cchString, + char **ppsz, size_t cch, size_t *pcch, const char *pszTag) +{ + /* + * Validate input. + */ + Assert(VALID_PTR(pszString)); + Assert(VALID_PTR(ppsz)); + Assert(!pcch || VALID_PTR(pcch)); + + /* + * Validate the UTF-8 input and calculate the length of the UTF-16 string. + */ + size_t cchResult; + int rc = rtUtf8CalcLatin1Length(pszString, cchString, &cchResult); + if (RT_SUCCESS(rc)) + { + if (pcch) + *pcch = cchResult; + + /* + * Check buffer size / Allocate buffer. + */ + bool fShouldFree; + char *pszResult; + if (cch > 0 && *ppsz) + { + fShouldFree = false; + if (cch <= cchResult) + return VERR_BUFFER_OVERFLOW; + pszResult = *ppsz; + } + else + { + *ppsz = NULL; + fShouldFree = true; + cch = RT_MAX(cchResult + 1, cch); + pszResult = (char *)RTMemAllocTag(cch, pszTag); + } + if (pszResult) + { + /* + * Encode the Latin-1 string. + */ + rc = rtUtf8RecodeAsLatin1(pszString, cchString, pszResult, cch - 1); + if (RT_SUCCESS(rc)) + { + *ppsz = pszResult; + return rc; + } + if (fShouldFree) + RTMemFree(pszResult); + } + else + rc = VERR_NO_STR_MEMORY; + } + return rc; +} +RT_EXPORT_SYMBOL(RTStrToLatin1ExTag); + + +RTDECL(size_t) RTStrCalcLatin1Len(const char *psz) +{ + size_t cch; + int rc = rtUtf8CalcLatin1Length(psz, RTSTR_MAX, &cch); + return RT_SUCCESS(rc) ? cch : 0; +} +RT_EXPORT_SYMBOL(RTStrCalcLatin1Len); + + +RTDECL(int) RTStrCalcLatin1LenEx(const char *psz, size_t cchIn, size_t *pcch) +{ + size_t cch; + int rc = rtUtf8CalcLatin1Length(psz, cchIn, &cch); + if (pcch) + *pcch = RT_SUCCESS(rc) ? cch : ~(size_t)0; + return rc; +} +RT_EXPORT_SYMBOL(RTStrCalcLatin1LenEx); + + +/** + * Handle invalid encodings passed to RTStrGetCp() and RTStrGetCpEx(). + * @returns rc + * @param ppsz The pointer to the string position point. + * @param pCp Where to store RTUNICP_INVALID. + * @param rc The iprt error code. + */ +static int rtStrGetCpExFailure(const char **ppsz, PRTUNICP pCp, int rc) +{ + /* + * Try find a valid encoding. + */ + (*ppsz)++; /** @todo code this! */ + *pCp = RTUNICP_INVALID; + return rc; +} + + +RTDECL(RTUNICP) RTStrGetCpInternal(const char *psz) +{ + RTUNICP Cp; + RTStrGetCpExInternal(&psz, &Cp); + return Cp; +} +RT_EXPORT_SYMBOL(RTStrGetCpInternal); + + +RTDECL(int) RTStrGetCpExInternal(const char **ppsz, PRTUNICP pCp) +{ + const unsigned char *puch = (const unsigned char *)*ppsz; + const unsigned char uch = *puch; + RTUNICP uc; + + /* ASCII ? */ + if (!(uch & RT_BIT(7))) + { + uc = uch; + puch++; + } + else if (uch & RT_BIT(6)) + { + /* figure the length and validate the first octet. */ +/** @todo RT_USE_RTC_3629 */ + unsigned cb; + if (!(uch & RT_BIT(5))) + cb = 2; + else if (!(uch & RT_BIT(4))) + cb = 3; + else if (!(uch & RT_BIT(3))) + cb = 4; + else if (!(uch & RT_BIT(2))) + cb = 5; + else if (!(uch & RT_BIT(1))) + cb = 6; + else + { + RTStrAssertMsgFailed(("Invalid UTF-8 first byte: %.*Rhxs\n", RT_MIN(strlen((char *)puch), 10), puch)); + return rtStrGetCpExFailure(ppsz, pCp, VERR_INVALID_UTF8_ENCODING); + } + + /* validate the rest */ + switch (cb) + { + case 6: + RTStrAssertMsgReturn((puch[5] & 0xc0) == 0x80, ("6/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpExFailure(ppsz, pCp, VERR_INVALID_UTF8_ENCODING)); + RT_FALL_THRU(); + case 5: + RTStrAssertMsgReturn((puch[4] & 0xc0) == 0x80, ("5/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpExFailure(ppsz, pCp, VERR_INVALID_UTF8_ENCODING)); + RT_FALL_THRU(); + case 4: + RTStrAssertMsgReturn((puch[3] & 0xc0) == 0x80, ("4/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpExFailure(ppsz, pCp, VERR_INVALID_UTF8_ENCODING)); + RT_FALL_THRU(); + case 3: + RTStrAssertMsgReturn((puch[2] & 0xc0) == 0x80, ("3/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpExFailure(ppsz, pCp, VERR_INVALID_UTF8_ENCODING)); + RT_FALL_THRU(); + case 2: + RTStrAssertMsgReturn((puch[1] & 0xc0) == 0x80, ("2/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpExFailure(ppsz, pCp, VERR_INVALID_UTF8_ENCODING)); + break; + } + + /* get and validate the code point. */ + switch (cb) + { + case 6: + uc = (puch[5] & 0x3f) + | ((RTUNICP)(puch[4] & 0x3f) << 6) + | ((RTUNICP)(puch[3] & 0x3f) << 12) + | ((RTUNICP)(puch[2] & 0x3f) << 18) + | ((RTUNICP)(puch[1] & 0x3f) << 24) + | ((RTUNICP)(uch & 0x01) << 30); + RTStrAssertMsgReturn(uc >= 0x04000000 && uc <= 0x7fffffff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpExFailure(ppsz, pCp, VERR_INVALID_UTF8_ENCODING)); + break; + case 5: + uc = (puch[4] & 0x3f) + | ((RTUNICP)(puch[3] & 0x3f) << 6) + | ((RTUNICP)(puch[2] & 0x3f) << 12) + | ((RTUNICP)(puch[1] & 0x3f) << 18) + | ((RTUNICP)(uch & 0x03) << 24); + RTStrAssertMsgReturn(uc >= 0x00200000 && uc <= 0x03ffffff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpExFailure(ppsz, pCp, VERR_INVALID_UTF8_ENCODING)); + break; + case 4: + uc = (puch[3] & 0x3f) + | ((RTUNICP)(puch[2] & 0x3f) << 6) + | ((RTUNICP)(puch[1] & 0x3f) << 12) + | ((RTUNICP)(uch & 0x07) << 18); + RTStrAssertMsgReturn(uc >= 0x00010000 && uc <= 0x001fffff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpExFailure(ppsz, pCp, VERR_INVALID_UTF8_ENCODING)); + break; + case 3: + uc = (puch[2] & 0x3f) + | ((RTUNICP)(puch[1] & 0x3f) << 6) + | ((RTUNICP)(uch & 0x0f) << 12); + RTStrAssertMsgReturn(uc >= 0x00000800 && uc <= 0x0000fffd, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpExFailure(ppsz, pCp, uc == 0xffff || uc == 0xfffe ? VERR_CODE_POINT_ENDIAN_INDICATOR : VERR_INVALID_UTF8_ENCODING)); + RTStrAssertMsgReturn(uc < 0xd800 || uc > 0xdfff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpExFailure(ppsz, pCp, VERR_CODE_POINT_SURROGATE)); + break; + case 2: + uc = (puch[1] & 0x3f) + | ((RTUNICP)(uch & 0x1f) << 6); + RTStrAssertMsgReturn(uc >= 0x00000080 && uc <= 0x000007ff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpExFailure(ppsz, pCp, VERR_INVALID_UTF8_ENCODING)); + break; + default: /* impossible, but GCC is bitching. */ + uc = RTUNICP_INVALID; + break; + } + puch += cb; + } + else + { + /* 6th bit is always set. */ + RTStrAssertMsgFailed(("Invalid UTF-8 first byte: %.*Rhxs\n", RT_MIN(strlen((char *)puch), 10), puch)); + return rtStrGetCpExFailure(ppsz, pCp, VERR_INVALID_UTF8_ENCODING); + } + *pCp = uc; + *ppsz = (const char *)puch; + return VINF_SUCCESS; +} +RT_EXPORT_SYMBOL(RTStrGetCpExInternal); + + +/** + * Handle invalid encodings passed to RTStrGetCpNEx(). + * @returns rc + * @param ppsz The pointer to the string position point. + * @param pcch Pointer to the string length. + * @param pCp Where to store RTUNICP_INVALID. + * @param rc The iprt error code. + */ +static int rtStrGetCpNExFailure(const char **ppsz, size_t *pcch, PRTUNICP pCp, int rc) +{ + /* + * Try find a valid encoding. + */ + (*ppsz)++; /** @todo code this! */ + (*pcch)--; + *pCp = RTUNICP_INVALID; + return rc; +} + + +RTDECL(int) RTStrGetCpNExInternal(const char **ppsz, size_t *pcch, PRTUNICP pCp) +{ + const unsigned char *puch = (const unsigned char *)*ppsz; + const unsigned char uch = *puch; + size_t cch = *pcch; + RTUNICP uc; + + if (cch == 0) + { + *pCp = RTUNICP_INVALID; + return VERR_END_OF_STRING; + } + + /* ASCII ? */ + if (!(uch & RT_BIT(7))) + { + uc = uch; + puch++; + cch--; + } + else if (uch & RT_BIT(6)) + { + /* figure the length and validate the first octet. */ +/** @todo RT_USE_RTC_3629 */ + unsigned cb; + if (!(uch & RT_BIT(5))) + cb = 2; + else if (!(uch & RT_BIT(4))) + cb = 3; + else if (!(uch & RT_BIT(3))) + cb = 4; + else if (!(uch & RT_BIT(2))) + cb = 5; + else if (!(uch & RT_BIT(1))) + cb = 6; + else + { + RTStrAssertMsgFailed(("Invalid UTF-8 first byte: %.*Rhxs\n", RT_MIN(strlen((char *)puch), 10), puch)); + return rtStrGetCpNExFailure(ppsz, pcch, pCp, VERR_INVALID_UTF8_ENCODING); + } + + if (cb > cch) + return rtStrGetCpNExFailure(ppsz, pcch, pCp, VERR_INVALID_UTF8_ENCODING); + + /* validate the rest */ + switch (cb) + { + case 6: + RTStrAssertMsgReturn((puch[5] & 0xc0) == 0x80, ("6/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpNExFailure(ppsz, pcch, pCp, VERR_INVALID_UTF8_ENCODING)); + RT_FALL_THRU(); + case 5: + RTStrAssertMsgReturn((puch[4] & 0xc0) == 0x80, ("5/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpNExFailure(ppsz, pcch, pCp, VERR_INVALID_UTF8_ENCODING)); + RT_FALL_THRU(); + case 4: + RTStrAssertMsgReturn((puch[3] & 0xc0) == 0x80, ("4/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpNExFailure(ppsz, pcch, pCp, VERR_INVALID_UTF8_ENCODING)); + RT_FALL_THRU(); + case 3: + RTStrAssertMsgReturn((puch[2] & 0xc0) == 0x80, ("3/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpNExFailure(ppsz, pcch, pCp, VERR_INVALID_UTF8_ENCODING)); + RT_FALL_THRU(); + case 2: + RTStrAssertMsgReturn((puch[1] & 0xc0) == 0x80, ("2/%u: %.*Rhxs\n", cb, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpNExFailure(ppsz, pcch, pCp, VERR_INVALID_UTF8_ENCODING)); + break; + } + + /* get and validate the code point. */ + switch (cb) + { + case 6: + uc = (puch[5] & 0x3f) + | ((RTUNICP)(puch[4] & 0x3f) << 6) + | ((RTUNICP)(puch[3] & 0x3f) << 12) + | ((RTUNICP)(puch[2] & 0x3f) << 18) + | ((RTUNICP)(puch[1] & 0x3f) << 24) + | ((RTUNICP)(uch & 0x01) << 30); + RTStrAssertMsgReturn(uc >= 0x04000000 && uc <= 0x7fffffff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpNExFailure(ppsz, pcch, pCp, VERR_INVALID_UTF8_ENCODING)); + break; + case 5: + uc = (puch[4] & 0x3f) + | ((RTUNICP)(puch[3] & 0x3f) << 6) + | ((RTUNICP)(puch[2] & 0x3f) << 12) + | ((RTUNICP)(puch[1] & 0x3f) << 18) + | ((RTUNICP)(uch & 0x03) << 24); + RTStrAssertMsgReturn(uc >= 0x00200000 && uc <= 0x03ffffff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpNExFailure(ppsz, pcch, pCp, VERR_INVALID_UTF8_ENCODING)); + break; + case 4: + uc = (puch[3] & 0x3f) + | ((RTUNICP)(puch[2] & 0x3f) << 6) + | ((RTUNICP)(puch[1] & 0x3f) << 12) + | ((RTUNICP)(uch & 0x07) << 18); + RTStrAssertMsgReturn(uc >= 0x00010000 && uc <= 0x001fffff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpNExFailure(ppsz, pcch, pCp, VERR_INVALID_UTF8_ENCODING)); + break; + case 3: + uc = (puch[2] & 0x3f) + | ((RTUNICP)(puch[1] & 0x3f) << 6) + | ((RTUNICP)(uch & 0x0f) << 12); + RTStrAssertMsgReturn(uc >= 0x00000800 && uc <= 0x0000fffd, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpNExFailure(ppsz, pcch, pCp, uc == 0xffff || uc == 0xfffe ? VERR_CODE_POINT_ENDIAN_INDICATOR : VERR_INVALID_UTF8_ENCODING)); + RTStrAssertMsgReturn(uc < 0xd800 || uc > 0xdfff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpNExFailure(ppsz, pcch, pCp, VERR_CODE_POINT_SURROGATE)); + break; + case 2: + uc = (puch[1] & 0x3f) + | ((RTUNICP)(uch & 0x1f) << 6); + RTStrAssertMsgReturn(uc >= 0x00000080 && uc <= 0x000007ff, + ("%u: cp=%#010RX32: %.*Rhxs\n", cb, uc, RT_MIN(cb + 10, strlen((char *)puch)), puch), + rtStrGetCpNExFailure(ppsz, pcch, pCp, VERR_INVALID_UTF8_ENCODING)); + break; + default: /* impossible, but GCC is bitching. */ + uc = RTUNICP_INVALID; + break; + } + puch += cb; + cch -= cb; + } + else + { + /* 6th bit is always set. */ + RTStrAssertMsgFailed(("Invalid UTF-8 first byte: %.*Rhxs\n", RT_MIN(strlen((char *)puch), 10), puch)); + return rtStrGetCpNExFailure(ppsz, pcch, pCp, VERR_INVALID_UTF8_ENCODING); + } + *pCp = uc; + *ppsz = (const char *)puch; + (*pcch) = cch; + return VINF_SUCCESS; +} +RT_EXPORT_SYMBOL(RTStrGetCpNExInternal); + + +RTDECL(char *) RTStrPutCpInternal(char *psz, RTUNICP uc) +{ + unsigned char *puch = (unsigned char *)psz; + if (uc < 0x80) + *puch++ = (unsigned char )uc; + else if (uc < 0x00000800) + { + *puch++ = 0xc0 | (uc >> 6); + *puch++ = 0x80 | (uc & 0x3f); + } + else if (uc < 0x00010000) + { +/** @todo RT_USE_RTC_3629 */ + if ( uc < 0x0000d8000 + || ( uc > 0x0000dfff + && uc < 0x0000fffe)) + { + *puch++ = 0xe0 | (uc >> 12); + *puch++ = 0x80 | ((uc >> 6) & 0x3f); + *puch++ = 0x80 | (uc & 0x3f); + } + else + { + AssertMsgFailed(("Invalid code point U+%05x!\n", uc)); + *puch++ = 0x7f; + } + } +/** @todo RT_USE_RTC_3629 */ + else if (uc < 0x00200000) + { + *puch++ = 0xf0 | (uc >> 18); + *puch++ = 0x80 | ((uc >> 12) & 0x3f); + *puch++ = 0x80 | ((uc >> 6) & 0x3f); + *puch++ = 0x80 | (uc & 0x3f); + } + else if (uc < 0x04000000) + { + *puch++ = 0xf8 | (uc >> 24); + *puch++ = 0x80 | ((uc >> 18) & 0x3f); + *puch++ = 0x80 | ((uc >> 12) & 0x3f); + *puch++ = 0x80 | ((uc >> 6) & 0x3f); + *puch++ = 0x80 | (uc & 0x3f); + } + else if (uc <= 0x7fffffff) + { + *puch++ = 0xfc | (uc >> 30); + *puch++ = 0x80 | ((uc >> 24) & 0x3f); + *puch++ = 0x80 | ((uc >> 18) & 0x3f); + *puch++ = 0x80 | ((uc >> 12) & 0x3f); + *puch++ = 0x80 | ((uc >> 6) & 0x3f); + *puch++ = 0x80 | (uc & 0x3f); + } + else + { + AssertMsgFailed(("Invalid code point U+%08x!\n", uc)); + *puch++ = 0x7f; + } + + return (char *)puch; +} +RT_EXPORT_SYMBOL(RTStrPutCpInternal); + + +RTDECL(char *) RTStrPrevCp(const char *pszStart, const char *psz) +{ + if (pszStart < psz) + { + /* simple char? */ + const unsigned char *puch = (const unsigned char *)psz; + unsigned uch = *--puch; + if (!(uch & RT_BIT(7))) + return (char *)puch; + RTStrAssertMsgReturn(!(uch & RT_BIT(6)), ("uch=%#x\n", uch), (char *)pszStart); + + /* two or more. */ + uint32_t uMask = 0xffffffc0; + while ( (const unsigned char *)pszStart < puch + && !(uMask & 1)) + { + uch = *--puch; + if ((uch & 0xc0) != 0x80) + { + RTStrAssertMsgReturn((uch & (uMask >> 1)) == (uMask & 0xff), + ("Invalid UTF-8 encoding: %.*Rhxs puch=%p psz=%p\n", psz - (char *)puch, puch, psz), + (char *)pszStart); + return (char *)puch; + } + uMask >>= 1; + } + RTStrAssertMsgFailed(("Invalid UTF-8 encoding: %.*Rhxs puch=%p psz=%p\n", psz - (char *)puch, puch, psz)); + } + return (char *)pszStart; +} +RT_EXPORT_SYMBOL(RTStrPrevCp); + diff --git a/src/VBox/Runtime/common/string/watcom/bzero.asm b/src/VBox/Runtime/common/string/watcom/bzero.asm new file mode 100644 index 00000000..ce42cfad --- /dev/null +++ b/src/VBox/Runtime/common/string/watcom/bzero.asm @@ -0,0 +1,32 @@ +; $Id: bzero.asm $ +;; @file +; IPRT - No-CRT bzero - Watcom register calling convention. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +%define ASM_CALL32_WATCOM +%define NAME(name) name %+ _ +%include "common/string/bzero.asm" + diff --git a/src/VBox/Runtime/common/string/watcom/memchr.asm b/src/VBox/Runtime/common/string/watcom/memchr.asm new file mode 100644 index 00000000..e51ef046 --- /dev/null +++ b/src/VBox/Runtime/common/string/watcom/memchr.asm @@ -0,0 +1,32 @@ +; $Id: memchr.asm $ +;; @file +; IPRT - No-CRT memchr - Watcom register calling convention. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +%define ASM_CALL32_WATCOM +%define NAME(name) name %+ _ +%include "common/string/memchr.asm" + diff --git a/src/VBox/Runtime/common/string/watcom/memcmp.asm b/src/VBox/Runtime/common/string/watcom/memcmp.asm new file mode 100644 index 00000000..5254da34 --- /dev/null +++ b/src/VBox/Runtime/common/string/watcom/memcmp.asm @@ -0,0 +1,32 @@ +; $Id: memcmp.asm $ +;; @file +; IPRT - No-CRT memcmp - Watcom register calling convention. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +%define ASM_CALL32_WATCOM +%define NAME(name) name %+ _ +%include "common/string/memcmp.asm" + diff --git a/src/VBox/Runtime/common/string/watcom/memcpy.asm b/src/VBox/Runtime/common/string/watcom/memcpy.asm new file mode 100644 index 00000000..f0607466 --- /dev/null +++ b/src/VBox/Runtime/common/string/watcom/memcpy.asm @@ -0,0 +1,32 @@ +; $Id: memcpy.asm $ +;; @file +; IPRT - No-CRT memcpy - Watcom register calling convention. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +%define ASM_CALL32_WATCOM +%define NAME(name) name %+ _ +%include "common/string/memcpy.asm" + diff --git a/src/VBox/Runtime/common/string/watcom/memmove.asm b/src/VBox/Runtime/common/string/watcom/memmove.asm new file mode 100644 index 00000000..92fc5e47 --- /dev/null +++ b/src/VBox/Runtime/common/string/watcom/memmove.asm @@ -0,0 +1,32 @@ +; $Id: memmove.asm $ +;; @file +; IPRT - No-CRT memmove - Watcom register calling convention. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +%define ASM_CALL32_WATCOM +%define NAME(name) name %+ _ +%include "common/string/memmove.asm" + diff --git a/src/VBox/Runtime/common/string/watcom/mempcpy.asm b/src/VBox/Runtime/common/string/watcom/mempcpy.asm new file mode 100644 index 00000000..92f6b61e --- /dev/null +++ b/src/VBox/Runtime/common/string/watcom/mempcpy.asm @@ -0,0 +1,32 @@ +; $Id: mempcpy.asm $ +;; @file +; IPRT - No-CRT mempcpy - Watcom register calling convention. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +%define ASM_CALL32_WATCOM +%define NAME(name) name %+ _ +%include "common/string/mempcpy.asm" + diff --git a/src/VBox/Runtime/common/string/watcom/memrchr.asm b/src/VBox/Runtime/common/string/watcom/memrchr.asm new file mode 100644 index 00000000..00d50664 --- /dev/null +++ b/src/VBox/Runtime/common/string/watcom/memrchr.asm @@ -0,0 +1,32 @@ +; $Id: memrchr.asm $ +;; @file +; IPRT - No-CRT memrchr - Watcom register calling convention. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +%define ASM_CALL32_WATCOM +%define NAME(name) name %+ _ +%include "common/string/memrchr.asm" + diff --git a/src/VBox/Runtime/common/string/watcom/memset.asm b/src/VBox/Runtime/common/string/watcom/memset.asm new file mode 100644 index 00000000..2e3f02fe --- /dev/null +++ b/src/VBox/Runtime/common/string/watcom/memset.asm @@ -0,0 +1,32 @@ +; $Id: memset.asm $ +;; @file +; IPRT - No-CRT memset - Watcom register calling convention. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +%define ASM_CALL32_WATCOM +%define NAME(name) name %+ _ +%include "common/string/memset.asm" + diff --git a/src/VBox/Runtime/common/string/watcom/strchr.asm b/src/VBox/Runtime/common/string/watcom/strchr.asm new file mode 100644 index 00000000..e1952f34 --- /dev/null +++ b/src/VBox/Runtime/common/string/watcom/strchr.asm @@ -0,0 +1,32 @@ +; $Id: strchr.asm $ +;; @file +; IPRT - No-CRT strchr - Watcom register calling convention. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +%define ASM_CALL32_WATCOM +%define NAME(name) name %+ _ +%include "common/string/strchr.asm" + diff --git a/src/VBox/Runtime/common/string/watcom/strcmp.asm b/src/VBox/Runtime/common/string/watcom/strcmp.asm new file mode 100644 index 00000000..6f5c7166 --- /dev/null +++ b/src/VBox/Runtime/common/string/watcom/strcmp.asm @@ -0,0 +1,32 @@ +; $Id: strcmp.asm $ +;; @file +; IPRT - No-CRT strcmp - Watcom register calling convention. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +%define ASM_CALL32_WATCOM +%define NAME(name) name %+ _ +%include "common/string/strcmp.asm" + diff --git a/src/VBox/Runtime/common/string/watcom/strcpy.asm b/src/VBox/Runtime/common/string/watcom/strcpy.asm new file mode 100644 index 00000000..c1a3b5f1 --- /dev/null +++ b/src/VBox/Runtime/common/string/watcom/strcpy.asm @@ -0,0 +1,32 @@ +; $Id: strcpy.asm $ +;; @file +; IPRT - No-CRT strcpy - Watcom register calling convention. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +%define ASM_CALL32_WATCOM +%define NAME(name) name %+ _ +%include "common/string/strcpy.asm" + diff --git a/src/VBox/Runtime/common/string/watcom/strlen.asm b/src/VBox/Runtime/common/string/watcom/strlen.asm new file mode 100644 index 00000000..df918084 --- /dev/null +++ b/src/VBox/Runtime/common/string/watcom/strlen.asm @@ -0,0 +1,32 @@ +; $Id: strlen.asm $ +;; @file +; IPRT - No-CRT strlen - Watcom register calling convention. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +%define ASM_CALL32_WATCOM +%define NAME(name) name %+ _ +%include "common/string/strlen.asm" + diff --git a/src/VBox/Runtime/common/string/watcom/strncmp.asm b/src/VBox/Runtime/common/string/watcom/strncmp.asm new file mode 100644 index 00000000..c2753277 --- /dev/null +++ b/src/VBox/Runtime/common/string/watcom/strncmp.asm @@ -0,0 +1,32 @@ +; $Id: strncmp.asm $ +;; @file +; IPRT - No-CRT strncmp - Watcom register calling convention. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +%define ASM_CALL32_WATCOM +%define NAME(name) name %+ _ +%include "common/string/strncmp.asm" + diff --git a/src/VBox/Runtime/common/string/watcom/strncpy.asm b/src/VBox/Runtime/common/string/watcom/strncpy.asm new file mode 100644 index 00000000..f63c02bf --- /dev/null +++ b/src/VBox/Runtime/common/string/watcom/strncpy.asm @@ -0,0 +1,32 @@ +; $Id: strncpy.asm $ +;; @file +; IPRT - No-CRT strncpy - Watcom register calling convention. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; + +%include "iprt/asmdefs.mac" + +%define ASM_CALL32_WATCOM +%define NAME(name) name %+ _ +%include "common/string/strncpy.asm" + |