#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This file incorporates work covered by the following license notice:
#
#   Licensed to the Apache Software Foundation (ASF) under one or more
#   contributor license agreements. See the NOTICE file distributed
#   with this work for additional information regarding copyright
#   ownership. The ASF licenses this file to you 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 .
#

UDK_3_0_0 {
    global:
        _ZTI*; _ZTS*; # weak RTTI symbols for C++ exceptions

        osl_acceptConnectionOnSocket;
        osl_acceptPipe;
        osl_acquireSocket;
        osl_acquirePipe;
        osl_acquireMutex;
        osl_acquireSemaphore;
        osl_addSignalHandler;
        osl_addToSocketSet;
        osl_assertFailedLine;
        osl_bindAddrToSocket;
        osl_breakDebug;
        osl_checkCondition;
        osl_clearSocketSet;
        osl_closeDirectory;
        osl_closePipe;
        osl_closeProfile;
        osl_connectSocketTo;
        osl_copyHostAddr;
        osl_copySocketAddr;
        osl_createCondition;
        osl_createEmptySocketAddr;
        osl_createHostAddr;
        osl_createHostAddrByAddr;
        osl_createHostAddrByName;
        osl_createInetSocketAddr;
        osl_createMutex;
        osl_createPipe;
        osl_createSemaphore;
        osl_createSocket;
        osl_createSocketSet;
        osl_createSuspendedThread;
        osl_createThread;
        osl_createThreadKey;
        osl_decrementInterlockedCount;
        osl_demultiplexSocketEvents;
        osl_destroyCondition;
        osl_destroyHostAddr;
        osl_destroyMutex;
        osl_destroySemaphore;
        osl_destroySocketAddr;
        osl_destroySocketSet;
        osl_destroyThread;
        osl_destroyThreadKey;
        osl_enableNonBlockingMode;
        osl_executeProcess;
        osl_executeProcess_WithRedirectedIO;
        osl_flushProfile;
        osl_freeProcessHandle;
        osl_freeSecurityHandle;
        osl_getAddrOfSocketAddr;
        osl_getCommandArg;
        osl_getCommandArgCount;
        osl_getConfigDir;
        osl_getCurrentSecurity;
        osl_getDirectoryItem;
        osl_getDottedInetAddrOfSocketAddr;
        osl_getEnvironment;
        osl_getEthernetAddress;
        osl_getExecutableFile;
        osl_getFamilyOfSocketAddr;
        osl_getFileStatus;
        osl_getFileURLFromSystemPath;
        osl_getGlobalMutex;
        osl_getHomeDir;
        osl_getHostnameOfHostAddr;
        osl_getHostnameOfSocketAddr;
        osl_getInetPortOfSocketAddr;
        osl_getLastPipeError;
        osl_getLastSocketError;
        osl_getLastSocketErrorDescription;
        osl_getLocalAddrOfSocket;
        osl_getLocalHostname;
        osl_getModuleURLFromAddress;
        osl_getNextDirectoryItem;
        osl_getPeerAddrOfSocket;
        osl_getProcess;
        osl_getProcessInfo;
        osl_getProcessWorkingDir;
        osl_getProfileSectionEntries;
        osl_getProfileSections;
        osl_getServicePort;
        osl_getSocketAddrOfHostAddr;
        osl_getSocketOption;
        osl_getSocketType;
        osl_getSymbol;
        osl_getSystemPathFromFileURL;
        osl_getSystemTime;
        osl_getThreadIdentifier;
        osl_getThreadKeyData;
        osl_getThreadPriority;
        osl_getThreadTextEncoding;
        osl_getUserIdent;
        osl_getUserName;
        osl_getVolumeInformation;
        osl_incrementInterlockedCount;
        osl_isAdministrator;
        osl_isEndOfFile;
        osl_isEqualSocketAddr;
        osl_isExceptionPending;
        osl_isInSocketSet;
        osl_isNonBlockingMode;
        osl_isReceiveReady;
        osl_isSendReady;
        osl_isThreadRunning;
        osl_joinProcess;
        osl_joinWithThread;
        osl_listenOnSocket;
        osl_loadModule;
        osl_loginUser;
        osl_loginUserOnFileServer;
        osl_openDirectory;
        osl_openProfile;
        osl_raiseSignal;
        osl_readProfileBool;
        osl_readProfileIdent;
        osl_readProfileString;
        osl_readPipe;
        osl_readSocket;
        osl_receiveFromSocket;
        osl_receivePipe;
        osl_receiveSocket;
        osl_releaseDirectoryItem;
        osl_releaseMutex;
        osl_releasePipe;
        osl_releaseSemaphore;
        osl_releaseSocket;
        osl_removeFromSocketSet;
        osl_removeProfileEntry;
        osl_removeSignalHandler;
        osl_reportError;
        osl_resetCondition;
        osl_resolveHostname;
        osl_resumeThread;
        osl_scheduleThread;
        osl_searchFileURL;
        osl_sendPipe;
        osl_sendSocket;
        osl_sendToSocket;
        osl_setCondition;
        osl_setFileAttributes;
        osl_setFileTime;
        osl_setInetPortOfSocketAddr;
        osl_setAddrOfSocketAddr;
        osl_setSocketOption;
        osl_setThreadKeyData;
        osl_setThreadPriority;
        osl_setThreadTextEncoding;
        osl_shutdownSocket;
        osl_suspendThread;
        osl_terminateProcess;
        osl_terminateThread;
        osl_trace;
        osl_tryToAcquireMutex;
        osl_tryToAcquireSemaphore;
        osl_unloadModule;
        osl_waitCondition;
        osl_waitThread;
        osl_writePipe;
        osl_writeSocket;
        osl_writeProfileBool;
        osl_writeProfileIdent;
        osl_writeProfileString;
        osl_yieldThread;
        osl_loadUserProfile;
        osl_unloadUserProfile;
        osl_sendResourcePipe;
        osl_receiveResourcePipe;
        rtl_allocateMemory;
        rtl_compareMemory;
        rtl_copyMemory;
        rtl_fillMemory;
        rtl_freeMemory;
        rtl_moveMemory;
        rtl_reallocateMemory;
        rtl_zeroMemory;
        rtl_findInMemory;
        rtl_locale_equals;
        rtl_locale_getCountry;
        rtl_locale_getDefault;
        rtl_locale_getLanguage;
        rtl_locale_getVariant;
        rtl_locale_hashCode;
        rtl_locale_register;
        rtl_locale_setDefault;
        rtl_str_getLength;
        rtl_str_compare;
        rtl_str_compare_WithLength;
        rtl_str_shortenedCompare_WithLength;
        rtl_str_reverseCompare_WithLength;
        rtl_str_compareIgnoreAsciiCase;
        rtl_str_compareIgnoreAsciiCase_WithLength;
        rtl_str_shortenedCompareIgnoreAsciiCase_WithLength;
        rtl_str_hashCode;
        rtl_str_hashCode_WithLength;
        rtl_str_indexOfChar;
        rtl_str_indexOfChar_WithLength;
        rtl_str_indexOfStr;
        rtl_str_indexOfStr_WithLength;
        rtl_str_lastIndexOfChar;
        rtl_str_lastIndexOfChar_WithLength;
        rtl_str_lastIndexOfStr;
        rtl_str_lastIndexOfStr_WithLength;
        rtl_str_replaceChar;
        rtl_str_replaceChar_WithLength;
        rtl_str_toAsciiLowerCase;
        rtl_str_toAsciiLowerCase_WithLength;
        rtl_str_toAsciiUpperCase;
        rtl_str_toAsciiUpperCase_WithLength;
        rtl_str_trim;
        rtl_str_trim_WithLength;
        rtl_str_valueOfBoolean;
        rtl_str_valueOfChar;
        rtl_str_valueOfInt32;
        rtl_str_valueOfInt64;
        rtl_str_valueOfDouble;
        rtl_str_valueOfFloat;
        rtl_str_toBoolean;
        rtl_str_toInt32;
        rtl_str_toInt64;
        rtl_str_toDouble;
        rtl_str_toFloat;
        rtl_string_acquire;
        rtl_string_assign;
        rtl_string_getLength;
        rtl_string_getStr;
        rtl_string_getToken;
        rtl_string_new;
        rtl_string_newConcat;
        rtl_string_newFromStr;
        rtl_string_newFromStr_WithLength;
        rtl_string_newFromLiteral;
        rtl_string_newFromString;
        rtl_string_newReplace;
        rtl_string_newReplaceStrAt;
        rtl_string_newToAsciiLowerCase;
        rtl_string_newToAsciiUpperCase;
        rtl_string_newTrim;
        rtl_string_new_WithLength;
        rtl_string_release;
        rtl_stringbuffer_ensureCapacity;
        rtl_stringbuffer_insert;
        rtl_stringbuffer_newFromStr_WithLength;
        rtl_stringbuffer_newFromStringBuffer;
        rtl_ustr_compare;
        rtl_ustr_compare_WithLength;
        rtl_ustr_shortenedCompare_WithLength;
        rtl_ustr_reverseCompare_WithLength;
        rtl_ustr_compareIgnoreAsciiCase;
        rtl_ustr_compareIgnoreAsciiCase_WithLength;
        rtl_ustr_shortenedCompareIgnoreAsciiCase_WithLength;
        rtl_ustr_ascii_compare;
        rtl_ustr_ascii_compare_WithLength;
        rtl_ustr_ascii_shortenedCompare_WithLength;
        rtl_ustr_asciil_reverseCompare_WithLength;
        rtl_ustr_ascii_compareIgnoreAsciiCase;
        rtl_ustr_ascii_compareIgnoreAsciiCase_WithLength;
        rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength;
        rtl_ustr_getLength;
        rtl_ustr_hashCode;
        rtl_ustr_hashCode_WithLength;
        rtl_ustr_indexOfChar;
        rtl_ustr_indexOfChar_WithLength;
        rtl_ustr_indexOfStr;
        rtl_ustr_indexOfStr_WithLength;
        rtl_ustr_lastIndexOfChar;
        rtl_ustr_lastIndexOfChar_WithLength;
        rtl_ustr_lastIndexOfStr;
        rtl_ustr_lastIndexOfStr_WithLength;
        rtl_ustr_replaceChar;
        rtl_ustr_replaceChar_WithLength;
        rtl_ustr_toAsciiLowerCase;
        rtl_ustr_toAsciiLowerCase_WithLength;
        rtl_ustr_toAsciiUpperCase;
        rtl_ustr_toAsciiUpperCase_WithLength;
        rtl_ustr_trim;
        rtl_ustr_trim_WithLength;
        rtl_ustr_valueOfBoolean;
        rtl_ustr_valueOfChar;
        rtl_ustr_valueOfInt32;
        rtl_ustr_valueOfInt64;
        rtl_ustr_valueOfDouble;
        rtl_ustr_valueOfFloat;
        rtl_ustr_toBoolean;
        rtl_ustr_toInt32;
        rtl_ustr_toInt64;
        rtl_ustr_toDouble;
        rtl_ustr_toFloat;
        rtl_uString_acquire;
        rtl_uString_assign;
        rtl_uString_getLength;
        rtl_uString_getStr;
        rtl_uString_getToken;
        rtl_uString_new;
        rtl_uString_newConcat;
        rtl_uString_newFromStr;
        rtl_uString_newFromStr_WithLength;
        rtl_uString_newFromAscii;
        rtl_uString_newFromLiteral;
        rtl_uString_newFromString;
        rtl_uString_newReplace;
        rtl_uString_newReplaceStrAt;
        rtl_uString_newToAsciiLowerCase;
        rtl_uString_newToAsciiUpperCase;
        rtl_uString_newTrim;
        rtl_uString_new_WithLength;
        rtl_uString_release;
        rtl_uStringbuffer_ensureCapacity;
        rtl_uStringbuffer_insert;
        rtl_uStringbuffer_insert_ascii;
        rtl_uStringbuffer_newFromStr_WithLength;
        rtl_uStringbuffer_newFromStringBuffer;
        rtl_string2UString;
        rtl_uString2String;
        rtl_createTextToUnicodeConverter;
        rtl_destroyTextToUnicodeConverter;
        rtl_createTextToUnicodeContext;
        rtl_destroyTextToUnicodeContext;
        rtl_resetTextToUnicodeContext;
        rtl_convertTextToUnicode;
        rtl_createUnicodeToTextConverter;
        rtl_destroyUnicodeToTextConverter;
        rtl_createUnicodeToTextContext;
        rtl_destroyUnicodeToTextContext;
        rtl_resetUnicodeToTextContext;
        rtl_convertUnicodeToText;
        rtl_isOctetTextEncoding;
        rtl_getTextEncodingInfo;
        rtl_getTextEncodingFromWindowsCharset;
        rtl_getTextEncodingFromUnixCharset;
        rtl_getTextEncodingFromMimeCharset;
        rtl_getBestWindowsCharsetFromTextEncoding;
        rtl_getMimeCharsetFromTextEncoding;
        rtl_getBestMimeCharsetFromTextEncoding;
        rtl_getBestUnixCharsetFromTextEncoding;
        rtl_allocateZeroMemory;
        rtl_freeZeroMemory;
        rtl_crc32;
        rtl_digest_create;
        rtl_digest_createMD2;
        rtl_digest_createMD5;
        rtl_digest_createSHA;
        rtl_digest_createSHA1;
        rtl_digest_createHMAC_MD5;
        rtl_digest_createHMAC_SHA1;
        rtl_digest_destroy;
        rtl_digest_destroyMD2;
        rtl_digest_destroyMD5;
        rtl_digest_destroySHA;
        rtl_digest_destroySHA1;
        rtl_digest_destroyHMAC_MD5;
        rtl_digest_destroyHMAC_SHA1;
        rtl_digest_get;
        rtl_digest_getMD2;
        rtl_digest_getMD5;
        rtl_digest_getSHA;
        rtl_digest_getSHA1;
        rtl_digest_getHMAC_MD5;
        rtl_digest_getHMAC_SHA1;
        rtl_digest_init;
        rtl_digest_initHMAC_MD5;
        rtl_digest_initHMAC_SHA1;
        rtl_digest_queryAlgorithm;
        rtl_digest_queryLength;
        rtl_digest_update;
        rtl_digest_updateMD2;
        rtl_digest_updateMD5;
        rtl_digest_updateSHA;
        rtl_digest_updateSHA1;
        rtl_digest_updateHMAC_MD5;
        rtl_digest_updateHMAC_SHA1;
        rtl_digest_MD2;
        rtl_digest_MD5;
        rtl_digest_SHA;
        rtl_digest_SHA1;
        rtl_digest_HMAC_MD5;
        rtl_digest_HMAC_SHA1;
        rtl_digest_PBKDF2;

        rtl_random_createPool;
        rtl_random_destroyPool;
        rtl_random_addBytes;
        rtl_random_getBytes;

        rtl_createUuid;
        rtl_createNamedUuid;
        rtl_compareUuid;
        rtl_getGlobalProcessId;

        osl_openFile;
        osl_setFilePos;
        osl_getFilePos;
        osl_setFileSize;
        osl_readFile;
        osl_writeFile;
        osl_closeFile;
        osl_createDirectory;
        osl_removeDirectory;
        osl_removeFile;
        osl_copyFile;
        osl_moveFile;

        osl_closeSocket;
        osl_createInetBroadcastAddr;

        rtl_cipher_create;
        rtl_cipher_createBF;
        rtl_cipher_init;
        rtl_cipher_initBF;
        rtl_cipher_encode;
        rtl_cipher_encodeBF;
        rtl_cipher_decode;
        rtl_cipher_decodeBF;
        rtl_cipher_destroy;
        rtl_cipher_destroyBF;

        rtl_byte_sequence_reference2One;
        rtl_byte_sequence_realloc;
        rtl_byte_sequence_acquire;
        rtl_byte_sequence_release;
        rtl_byte_sequence_construct;
        rtl_byte_sequence_constructNoDefault;
        rtl_byte_sequence_constructFromArray;
        rtl_byte_sequence_assign;
        rtl_byte_sequence_equals;
        rtl_byte_sequence_getConstArray;
        rtl_byte_sequence_getLength;

        osl_acquireDirectoryItem;

        osl_abbreviateSystemPath;
        osl_getDateTimeFromTimeValue;
        osl_getTimeValueFromDateTime;
        osl_getLocalTimeFromSystemTime;
        osl_getSystemTimeFromLocalTime;
        osl_getAbsoluteFileURL;

        osl_releaseVolumeDeviceHandle;
        osl_getVolumeDeviceMountPath;
        osl_acquireVolumeDeviceHandle;

        osl_setDebugMessageFunc;
        osl_setDetailedDebugMessageFunc;
        osl_readLine;
        osl_getGlobalTimer;
        osl_getCanonicalName;
        osl_getTextEncodingFromLocale;

        rtl_getUriCharClass;
        rtl_uriConvertRelToAbs;
        rtl_uriEncode;
        rtl_uriDecode;

        rtl_bootstrap_get;
        rtl_bootstrap_set;
        rtl_bootstrap_setIniFileName;
        rtl_bootstrap_args_open;
        rtl_bootstrap_args_close;
        rtl_bootstrap_get_from_handle;
        rtl_bootstrap_get_iniName_from_handle;
    rtl_bootstrap_expandMacros_from_handle;
    rtl_bootstrap_expandMacros;
        rtl_getAppCommandArgCount;
        rtl_getAppCommandArg;

        rtl_moduleCount_acquire;
        rtl_moduleCount_release;
        rtl_moduleCount_canUnload;
        rtl_registerModuleForUnloading;
        rtl_unregisterModuleForUnloading;
        rtl_unloadUnusedModules;
        rtl_addUnloadingListener;
        rtl_removeUnloadingListener;

        rtl_logfile_trace;
        osl_getProcessLocale;
        osl_setProcessLocale;
    local:
        *;
};

UDK_3.1 {
    global:
        osl_getTempDirURL;
        osl_createTempFile;

        rtl_math_doubleToString;
        rtl_math_doubleToUString;
        rtl_math_pow10Exp;
        rtl_math_round;
        rtl_math_stringToDouble;
        rtl_math_uStringToDouble;
        rtl_convertUStringToString;

        osl_joinProcessWithTimeout;

        rtl_getTextEncodingFromWindowsCodePage;
        rtl_getWindowsCodePageFromTextEncoding;
} UDK_3_0_0;

UDK_3.2 {
    global:
        osl_syncFile;
} UDK_3.1;

UDK_3.3 {
    global:
        osl_createDirectoryPath;
        osl_getFunctionSymbol;
        osl_getModuleURLFromFunctionAddress;
        rtl_cipher_createARCFOUR;
        rtl_cipher_initARCFOUR;
        rtl_cipher_decodeARCFOUR;
        rtl_cipher_encodeARCFOUR;
        rtl_cipher_destroyARCFOUR;
        rtl_digest_rawMD5;
        osl_getFileSize;
        osl_setCommandArgs;
        rtl_uStringbuffer_insertUtf32;
        rtl_ustr_ascii_compareIgnoreAsciiCase_WithLengths;
        rtl_logfile_longTrace;
        rtl_ustr_asciil_reverseEquals_WithLength;
} UDK_3.2;

UDK_3.4 {
    global:
        osl_setErrorReporting;
} UDK_3.3;

UDK_3.5 {
    global:
        rtl_arena_create;
        rtl_arena_destroy;
        rtl_arena_alloc;
        rtl_arena_free;

        rtl_cache_create;
        rtl_cache_destroy;
        rtl_cache_alloc;
        rtl_cache_free;
} UDK_3.4;

UDK_3.6 { # OOo 2.3
    global:
        osl_loadModuleAscii;
        osl_getAsciiFunctionSymbol;
        osl_getModuleHandle;
        rtl_uString_intern;
        rtl_uString_internConvert;
        rtl_ustr_indexOfAscii_WithLength;
        rtl_ustr_lastIndexOfAscii_WithLength;
        rtl_uString_iterateCodePoints;
        rtl_uString_newFromCodePoints;
} UDK_3.5;

UDK_3.7 { # OOo 2.4
    global:
        osl_loadModuleRelative;
} UDK_3.6;

UDK_3.8 { # OOo 3.0
    global:
        rtl_bootstrap_encode;
        rtl_convertStringToUString;
        rtl_math_approxValue;
} UDK_3.7;

UDK_3.9 { # OOo 3.1
    global:
        osl_mapFile;
        osl_unmapFile;

        osl_readFileAt;
        osl_writeFileAt;

        rtl_math_expm1;
        rtl_math_log1p;
        rtl_math_atanh;
} UDK_3.8;

UDK_3.10 { # OOo 3.2
    global:
        rtl_logfile_hasLogFile;
        rtl_math_erf;
        rtl_math_erfc;
        rtl_math_asinh;
        rtl_math_acosh;
} UDK_3.9;

UDK_3.11 { # symbols available in >= OOo/LibO 3.4
    global:
        osl_setEnvironment;
        osl_clearEnvironment;
        osl_setThreadName;
} UDK_3.10;

LIBO_UDK_3.5 { # symbols available in >= LibO 3.5
    global:
        rtl_stringbuffer_remove;
        rtl_uStringbuffer_remove;
} UDK_3.10;

LIBO_UDK_3.6 { # symbols available in >= LibO 3.6
    global:
        osl_unmapMappedFile;
        osl_identicalDirectoryItem;
        osl_loadModuleRelativeAscii;
        rtl_string_newReplaceAll;
        rtl_string_newReplaceFirst;
        rtl_uString_newReplaceAll;
        rtl_uString_newReplaceAllAsciiL;
        rtl_uString_newReplaceAllAsciiLAsciiL;
        rtl_uString_newReplaceFirst;
        rtl_uString_newReplaceFirstAsciiL;
        rtl_uString_newReplaceFirstAsciiLAsciiL;
	rtl_uStringBuffer_refReturn;
	rtl_uStringBuffer_makeStringAndClear;
} UDK_3.10;

LIBO_UDK_4.0 { # symbols available in >= LibO 4.0
    global:
        rtl_string_newFromSubString;
        rtl_uString_newFromSubString;
        rtl_uString_newReplaceAllFromIndex;
} LIBO_UDK_3.6;

LIBO_UDK_4.1 { # symbols available in >= LibO 4.1
    global:
        rtl_string_ensureCapacity;
        rtl_uString_ensureCapacity;
        rtl_string_alloc;
        rtl_uString_alloc;
        rtl_str_toUInt64;
        rtl_str_valueOfUInt64;
        rtl_ustr_valueOfUInt64;
        rtl_ustr_toUInt64;
} LIBO_UDK_4.0;

LIBO_UDK_4.2 { # symbols available in >= LibO 4.2
    global:
        rtl_str_toUInt32;
        rtl_ustr_toUInt32;
} LIBO_UDK_4.1;

LIBO_UDK_4.3 { # symbols available in >= LibO 4.3
    global:
        osl_createDirectoryWithFlags;
        rtl_allocateAlignedMemory;
        rtl_freeAlignedMemory;
        osl_areCommandArgsSet;
} LIBO_UDK_4.2;

LIBO_UDK_5.0 { # symbols available in >= LibO 5.0
    global:
        rtl_secureZeroMemory;
} LIBO_UDK_4.3;

LIBO_UDK_5.1 { # symbols available in >= LibO 5.1
    global:
        rtl_uString_newConcatAsciiL;
        rtl_uString_newReplaceAllToAsciiL;
        rtl_uString_newReplaceFirstToAsciiL;
} LIBO_UDK_5.0;

LIBO_UDK_5.2 { # symbols available in >= LibO 5.2
    global:
        osl_getShortUserName;
} LIBO_UDK_5.1;

LIBO_UDK_5.3 { # symbols available in >= LibO 5.3
    global:
        rtl_math_approxEqual;
        rtl_uString_newConcatUtf16L;
        rtl_uString_newReplaceAllAsciiLUtf16L;
        rtl_uString_newReplaceAllUtf16LAsciiL;
        rtl_uString_newReplaceAllUtf16LUtf16L;
        rtl_uString_newReplaceFirstAsciiLUtf16L;
        rtl_uString_newReplaceFirstUtf16LAsciiL;
        rtl_uString_newReplaceFirstUtf16LUtf16L;
} LIBO_UDK_5.2;

LIBO_UDK_6.2 { # symbols available in >= LibO 6.2
    global:
        osl_replaceFile;
} LIBO_UDK_5.3;

PRIVATE_1.0 {
    global:
        osl_detail_ObjectRegistry_storeAddresses;
        osl_detail_ObjectRegistry_checkObjectCount;
        osl_detail_ObjectRegistry_registerObject;
        osl_detail_ObjectRegistry_revokeObject;
        osl_detail_ObjectRegistry_getMutex;
};

PRIVATE_1.1 {
    global:
        sal_detail_initialize;
        sal_detail_deinitialize;
} PRIVATE_1.0;

PRIVATE_1.2 { # LibreOffice 3.5
    global:
        sal_detail_log;
        sal_detail_logFormat;
} PRIVATE_1.1;

PRIVATE_1.3 { # LibreOffice 5.4
    global:
        sal_detail_log_report;
} PRIVATE_1.2;

PRIVATE_1.4 { # LibreOffice 6.0
    global:
        _ZN3sal13backtrace_getEj;
        _ZN3sal13backtrace_getEm;
        _ZN3sal19backtrace_to_stringEPNS_14BacktraceStateE;
} PRIVATE_1.3;

PRIVATE_1.5 { # LibreOffice 6.1
    global:
        rtl_alloc_preInit;
} PRIVATE_1.4;

PRIVATE_1.6 { # LibreOffice 6.4
    global:
        rtl_str_toInt64_WithLength;
        rtl_ustr_toInt64_WithLength;
        sal_detail_set_log_selector;
} PRIVATE_1.5;

PRIVATE_1.7 { # LibreOffice 7.1
    global:
        rtl_uString_newReplaceAllFromIndexUtf16LUtf16L;
} PRIVATE_1.5;

PRIVATE_1.8 { # LibreOffice 7.3
    global:
        rtl_string_newReplaceStrAt_WithLength;
        rtl_uString_newReplaceStrAtUtf16L;
} PRIVATE_1.7;

PRIVATE_textenc.1 { # LibreOffice 3.6
    global:
        _ZN3sal6detail7textenc20convertCharToUnicode*;
        _ZN3sal6detail7textenc20convertUnicodeToChar*;
        _ZN3sal6detail7textenc32handleUndefinedUnicodeToTextChar*;
        _ZN3sal6detail7textenc37handleBadInputTextToUnicodeConversion*;
        _ZN3sal6detail7textenc37handleBadInputUnicodeToTextConversion*;
};

# Unique libstdc++ symbols:
GLIBCXX_3.4 {
    global:
        _ZGVNSt7num_put*; _ZNSt7num_put*;
        _ZNSs4_Rep20_S_empty_rep_storageE;
};