# GENERATED SOURCE. DO NOT MODIFY.
# Run external/icu/tools/icu4c_srcgen/generate_libandroidicu.py to regenerate
#
# Copyright (C) 2018 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
LIBICU_31 { # introduced=31
  global:
    u_charAge;
    u_charDigitValue;
    u_charDirection;
    u_charFromName;
    u_charMirror;
    u_charName;
    u_charType;
    u_countChar32;
    u_digit;
    u_enumCharNames;
    u_enumCharTypes;
    u_errorName;
    u_foldCase;
    u_forDigit;
    u_getBidiPairedBracket;
    u_getCombiningClass;
    u_getIntPropertyMaxValue;
    u_getIntPropertyMinValue;
    u_getIntPropertyValue;
    u_getNumericValue;
    u_getPropertyEnum;
    u_getPropertyName;
    u_getPropertyValueEnum;
    u_getPropertyValueName;
    u_getUnicodeVersion;
    u_getVersion;
    u_hasBinaryProperty;
    u_isIDIgnorable;
    u_isIDPart;
    u_isIDStart;
    u_isISOControl;
    u_isJavaIDPart;
    u_isJavaIDStart;
    u_isJavaSpaceChar;
    u_isMirrored;
    u_isUAlphabetic;
    u_isULowercase;
    u_isUUppercase;
    u_isUWhiteSpace;
    u_isWhitespace;
    u_isalnum;
    u_isalpha;
    u_isbase;
    u_isblank;
    u_iscntrl;
    u_isdefined;
    u_isdigit;
    u_isgraph;
    u_islower;
    u_isprint;
    u_ispunct;
    u_isspace;
    u_istitle;
    u_isupper;
    u_isxdigit;
    u_memcasecmp;
    u_memchr;
    u_memchr32;
    u_memcmp;
    u_memcmpCodePointOrder;
    u_memcpy;
    u_memmove;
    u_memrchr;
    u_memrchr32;
    u_memset;
    u_strCaseCompare;
    u_strCompare;
    u_strFindFirst;
    u_strFindLast;
    u_strFoldCase;
    u_strFromUTF32;
    u_strFromUTF32WithSub;
    u_strFromUTF8;
    u_strFromUTF8Lenient;
    u_strFromUTF8WithSub;
    u_strHasMoreChar32Than;
    u_strToLower;
    u_strToTitle;
    u_strToUTF32;
    u_strToUTF32WithSub;
    u_strToUTF8;
    u_strToUTF8WithSub;
    u_strToUpper;
    u_strcasecmp;
    u_strcat;
    u_strchr;
    u_strchr32;
    u_strcmp;
    u_strcmpCodePointOrder;
    u_strcpy;
    u_strcspn;
    u_strlen;
    u_strncasecmp;
    u_strncat;
    u_strncmp;
    u_strncmpCodePointOrder;
    u_strncpy;
    u_strpbrk;
    u_strrchr;
    u_strrchr32;
    u_strrstr;
    u_strspn;
    u_strstr;
    u_strtok_r;
    u_tolower;
    u_totitle;
    u_toupper;
    u_versionToString;
    ubidi_close;
    ubidi_countParagraphs;
    ubidi_countRuns;
    ubidi_getBaseDirection;
    ubidi_getClassCallback;
    ubidi_getCustomizedClass;
    ubidi_getDirection;
    ubidi_getLength;
    ubidi_getLevelAt;
    ubidi_getLevels;
    ubidi_getLogicalIndex;
    ubidi_getLogicalMap;
    ubidi_getLogicalRun;
    ubidi_getParaLevel;
    ubidi_getParagraph;
    ubidi_getParagraphByIndex;
    ubidi_getProcessedLength;
    ubidi_getReorderingMode;
    ubidi_getReorderingOptions;
    ubidi_getResultLength;
    ubidi_getText;
    ubidi_getVisualIndex;
    ubidi_getVisualMap;
    ubidi_getVisualRun;
    ubidi_invertMap;
    ubidi_isInverse;
    ubidi_isOrderParagraphsLTR;
    ubidi_open;
    ubidi_openSized;
    ubidi_orderParagraphsLTR;
    ubidi_reorderLogical;
    ubidi_reorderVisual;
    ubidi_setClassCallback;
    ubidi_setContext;
    ubidi_setInverse;
    ubidi_setLine;
    ubidi_setPara;
    ubidi_setReorderingMode;
    ubidi_setReorderingOptions;
    ubidi_writeReordered;
    ubidi_writeReverse;
    ubrk_clone;
    ubrk_close;
    ubrk_countAvailable;
    ubrk_current;
    ubrk_first;
    ubrk_following;
    ubrk_getAvailable;
    ubrk_getRuleStatus;
    ubrk_getRuleStatusVec;
    ubrk_isBoundary;
    ubrk_last;
    ubrk_next;
    ubrk_open;
    ubrk_preceding;
    ubrk_previous;
    ubrk_setText;
    ubrk_setUText;
    uenum_close;
    uenum_count;
    uenum_next;
    uenum_openCharStringsEnumeration;
    uenum_openUCharStringsEnumeration;
    uenum_reset;
    uenum_unext;
    uldn_close;
    uldn_getContext;
    uldn_getDialectHandling;
    uldn_getLocale;
    uldn_keyDisplayName;
    uldn_keyValueDisplayName;
    uldn_languageDisplayName;
    uldn_localeDisplayName;
    uldn_open;
    uldn_openForContext;
    uldn_regionDisplayName;
    uldn_scriptCodeDisplayName;
    uldn_scriptDisplayName;
    uldn_variantDisplayName;
    uloc_acceptLanguage;
    uloc_addLikelySubtags;
    uloc_canonicalize;
    uloc_countAvailable;
    uloc_forLanguageTag;
    uloc_getAvailable;
    uloc_getBaseName;
    uloc_getCharacterOrientation;
    uloc_getCountry;
    uloc_getDefault;
    uloc_getDisplayCountry;
    uloc_getDisplayKeyword;
    uloc_getDisplayKeywordValue;
    uloc_getDisplayLanguage;
    uloc_getDisplayName;
    uloc_getDisplayScript;
    uloc_getDisplayVariant;
    uloc_getISO3Country;
    uloc_getISO3Language;
    uloc_getISOCountries;
    uloc_getISOLanguages;
    uloc_getKeywordValue;
    uloc_getLanguage;
    uloc_getLineOrientation;
    uloc_getName;
    uloc_getScript;
    uloc_getVariant;
    uloc_isRightToLeft;
    uloc_minimizeSubtags;
    uloc_openKeywords;
    uloc_setKeywordValue;
    uloc_toLanguageTag;
    uloc_toLegacyKey;
    uloc_toLegacyType;
    uloc_toUnicodeLocaleKey;
    uloc_toUnicodeLocaleType;
    ulocdata_getCLDRVersion;
    unorm2_append;
    unorm2_close;
    unorm2_composePair;
    unorm2_getCombiningClass;
    unorm2_getDecomposition;
    unorm2_getNFCInstance;
    unorm2_getNFDInstance;
    unorm2_getNFKCCasefoldInstance;
    unorm2_getNFKCInstance;
    unorm2_getNFKDInstance;
    unorm2_getRawDecomposition;
    unorm2_hasBoundaryAfter;
    unorm2_hasBoundaryBefore;
    unorm2_isInert;
    unorm2_isNormalized;
    unorm2_normalize;
    unorm2_normalizeSecondAndAppend;
    unorm2_quickCheck;
    unorm2_spanQuickCheckYes;
    uscript_breaksBetweenLetters;
    uscript_getCode;
    uscript_getName;
    uscript_getSampleString;
    uscript_getScript;
    uscript_getScriptExtensions;
    uscript_getShortName;
    uscript_getUsage;
    uscript_hasScript;
    uscript_isCased;
    uscript_isRightToLeft;
    utext_char32At;
    utext_clone;
    utext_close;
    utext_current32;
    utext_equals;
    utext_extract;
    utext_getNativeIndex;
    utext_moveIndex32;
    utext_nativeLength;
    utext_next32;
    utext_next32From;
    utext_openUChars;
    utext_openUTF8;
    utext_previous32;
    utext_previous32From;
    utext_setNativeIndex;
  local:
    *;
};